NV21 to YUV4 - 2023.2 English

Vitis Libraries

Release Date
2023-12-20
Version
2023.2 English

The nv212yuv4 function converts an image in the NV21 format to a YUV444 format. The function outputs separate U and V planes. Y plane is same for both formats. The UV planes are duplicated 2x2 times to represent one U plane and V plane of YUV444 format.

API Syntax

template<int SRC_T, int UV_T, int ROWS, int COLS, int NPC=1,int NPC_UV=1, int XFCVDEPTH_IN_0 = _XFCVDEPTH_DEFAULT, int XFCVDEPTH_IN_1 = _XFCVDEPTH_DEFAULT, int XFCVDEPTH_IN_2 = _XFCVDEPTH_DEFAULT, int XFCVDEPTH_IN_3 = _XFCVDEPTH_DEFAULT, int XFCVDEPTH_IN_4 = _XFCVDEPTH_DEFAULT>
void nv212yuv4(xf::cv::Mat<SRC_T, ROWS, COLS, NP, XFCVDEPTH_IN_0C> & src_y, xf::cv::Mat<UV_T, ROWS/2, COLS/2, NPC_UV, XFCVDEPTH_IN_1> & src_uv, xf::cv::Mat<SRC_T, ROWS, COLS, NPC, XFCVDEPTH_IN_2> & _y_image, xf::cv::Mat<SRC_T, ROWS, COLS, NPC, XFCVDEPTH_IN_3> & _u_image, xf::cv::Mat<SRC_T, ROWS, COLS, NPC, XFCVDEPTH_IN_4> & _v_image)

Parameter Descriptions

The following table describes the template and the function parameters.

Table 403 Table nv212yuv4 Parameter Description
Parameter Description
SRC_T Input pixel type. Only 8-bit, unsigned, 1-channel is supported (XF_8UC1).
UV_T Input 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 4-pixel operations respectively.
XFCVDEPTH_IN_0 Depth of input image
XFCVDEPTH_IN_1 Depth of input image
XFCVDEPTH_IN_2 Depth of input image
XFCVDEPTH_IN_3 Depth of input image
XFCVDEPTH_IN_4 Depth of input image
src_y Input Y plane of size (ROWS, COLS).
src_uv Input UV plane of size (ROWS/2, COLS/2).
_y_image Output Y plane of size (ROWS, COLS).
_u_image Output U plane of size (ROWS, COLS).
_v_image Output V plane of size (ROWS, COLS).

Resource Utilization

The following table summarizes the resource utilization of NV21 to YUV4 for different configurations, as generated in the Vivado HLS 2019.1 version tool for the Xczu9eg-ffvb1156-1-i-es1 FPGA, to process a HD (1080x1920) image.

Table 404 Table nv212yuv4 Function Resource Utilization Summary
Operating Mode Operating Frequency (MHz) Utilization Estimate
BRAM_18K DSP_48Es FF LUT CLB
1 Pixel 300 0 0 1383 817 233
8 Pixel 150 0 0 1887 1087 287

Performance Estimate

The following table summarizes the performance of NV21 to YUV4 for different configurations, as generated using the Vivado HLS 2019.1 version tool for the Xczu9eg-ffvb1156-1-i-es1, to process a grayscale HD (1080x1920) image.

Table 405 Table nv212yuv4 Function Performance Estimate Summary
Operating Mode Latency Estimate
Max Latency (ms)
1 pixel operation (300 MHz) 13.8
8 pixel operation (150 MHz) 3.5