The uyvy2nv12 function converts a UYVY (YUV 4:2:2) single-channel
image to NV12 format. The outputs are separate Y and UV planes. UYVY is
sub sampled format, 1 set of UYVY value gives 2 Y values and 1 U and V
value each.
API Syntax
template<int SRC_T, int Y_T, int UV_T, int ROWS, int COLS, int NPC=1, int NPC_UV=1, XFCVDEPTH_IN_0 = _XFCVDEPTH_DEFAULT, int XFCVDEPTH_IN_1 = _XFCVDEPTH_DEFAULT, int XFCVDEPTH_IN_2 = _XFCVDEPTH_DEFAULT>
void uyvy2nv12(xf::cv::Mat<SRC_T, ROWS, COLS, NPC, XFCVDEPTH_IN_0> & _src,xf::cv::Mat<Y_T, ROWS, COLS, NPC, XFCVDEPTH_IN_1> & _y_image,xf::cv::Mat<UV_T, ROWS/2, COLS/2, NPC_UV, XFCVDEPTH_IN_2> & _uv_image)
Parameter Descriptions
The following table describes the template and the function parameters.
| Parameter | Description |
|---|---|
| SRC_T | Input pixel type. Only 16-bit, unsigned, 1-channel is supported (XF_16UC1). |
| Y_T | Output pixel type. Only 8-bit, unsigned, 1-channel is supported (XF_8UC1). |
| UV_T | Output UV image pixel type. Only 8-bit, unsigned, 2-channel is supported (XF_8UC2). |
| 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 mode. |
| 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. |
| NPC_UV | Number of UV image Pixels to be processed per cycle; possible options are XF_NPPC1 and XF_NPPC4 for 1 pixel and 8 pixel operations respectively. |
| XFCVDEPTH_IN_0 | Depth of input image |
| XFCVDEPTH_IN_1 | Depth of input image |
| XFCVDEPTH_IN_2 | Depth of input image |
| _src | Input image of size (ROWS, COLS). |
| _y_image | Output Y plane of size (ROWS, COLS). |
| _uv_image | Output U plane of size (ROWS/2, COLS/2). |
Resource Utilization
The following table summarizes the resource utilization of UYVY to NV12 for different configurations, generated using Vivado HLS 2019.1 tool for the Xczu9eg-ffvb1156-1-i-es1 FPGA, to process a HD (1080x1920) image.
| Operating Mode | Operating Frequency (MHz) | Utilization Estimate | ||||
|---|---|---|---|---|---|---|
| BRAM_18K | DSP_48Es | FF | LUT | CLB | ||
| 1 Pixel | 300 | 0 | 0 | 831 | 488 | 131 |
| 8 Pixel | 150 | 0 | 0 | 1235 | 677 | 168 |
Performance Estimate
The following table summarizes the performance of UYVY to NV12 for different configurations, as generated using Vivado HLS 2019.1 tool for the Xczu9eg-ffvb1156-1-i-es1, to process a grayscale HD (1080x1920) image.
| Operating Mode | Latency Estimate |
|---|---|
| Max Latency (ms) | |
| 1 pixel operation (300 MHz) | 6.9 |
| 8 pixel operation (150 MHz) | 1.7 |