NV21 to IYUV - 2024.1 English

Vitis Libraries

Release Date
2024-05-30
Version
2024.1 English

The nv212iyuv function converts a NV21 image format to an IYUV image format. The input to the function is the interleaved VU plane only and the outputs are separate U and V planes. There is no need of processing Y plane as both the formats have same the Y plane. U and V values are rearranged from pixel interleaved to plane interleaved.

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 nv212iyuv(xf::cv::Mat<SRC_T, ROWS, COLS, NPC, XFCVDEPTH_IN_0> & 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/4, COLS, NPC, XFCVDEPTH_IN_3> & _u_image,xf::cv::Mat<SRC_T, ROWS/4, COLS, NPC, XFCVDEPTH_IN_4> & _v_image)

Parameter Descriptions

The following table describes the template and the function parameters.

Table 410 Table nv212iyuv 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/4, COLS).
_v_image Output V plane of size (ROWS/4, COLS).

Resource Utilization

The following table summarizes the resource utilization of NV21 to IYUV 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 411 Table nv212iyuv Function Resource Utilization Summary
Operating Mode Operating Frequency (MHz) Utilization Estimate
BRAM_18K DSP_48Es FF LUT CLB
1 Pixel 300 0 1 1377 730 219
8 Pixel 150 0 1 1975 1012 279

Performance Estimate

The following table summarizes the performance of NV21 to IYUV 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 412 Table nv212iyuv Function Performance Estimate Summary
Operating Mode Latency Estimate
Max Latency (ms)
1 pixel operation (300 MHz) 6.9
8 pixel operation (150 MHz) 1.7