In image processing pipelines, it is possible that the inputs to a function with FIFO interfaces are not synchronized. That is, the first data packet for first input might arrive a finite number of clock cycles after the first data packet of the second input. If the function has FIFOs at its interface with insufficient depth, this causes the whole design to stall on hardware. To synchronize the inputs, we provide this function to delay the input packet that arrives early, by a finite number of clock cycles.
API Syntax
template<int MAXDELAY, int SRC_T, int ROWS, int COLS,int NPC=1, int XFCVDEPTH_IN_1 = _XFCVDEPTH_DEFAULT, int XFCVDEPTH_OUT_1 = _XFCVDEPTH_DEFAULT>
void delayMat(xf::cv::Mat<SRC_T, ROWS, COLS, NPC, XFCVDEPTH_IN_1> & _src, xf::cv::Mat<SRC_T, ROWS, COLS, NPC, XFCVDEPTH_OUT_1> & _dst)
Parameter Descriptions
The table below describes the template and the function parameters.
Parameter Description SRC_T Input and output pixel type ROWS Maximum height of input and output image. COLS Maximum width of input and output image (must be a multiple of 8, for 8 pixel operation) NPC Number of pixels to be processed per cycle; possible options are XF_NPPC1 and XF_NPPC8 for 1 pixel and 8 pixel operations respectively. XFCVDEPTH_IN_1 Depth of input image XFCVDEPTH_OUT_1 Depth of output image MAXDELAY Maximum delay that the function is to be instantiated for. _src Input image _dst Output image