VXLIB_colorConvert_IYUVtoYUV4_i8u_o8u


Detailed Description


Functions

VXLIB_STATUS VXLIB_colorConvert_IYUVtoYUV4_i8u_o8u (const uint8_t src0[restrict], const VXLIB_bufParams2D_t *src0_addr, const uint8_t src1[restrict], const VXLIB_bufParams2D_t *src1_addr, const uint8_t src2[restrict], const VXLIB_bufParams2D_t *src2_addr, uint8_t dst0[restrict], const VXLIB_bufParams2D_t *dst0_addr, uint8_t dst1[restrict], const VXLIB_bufParams2D_t *dst1_addr, uint8_t dst2[restrict], const VXLIB_bufParams2D_t *dst2_addr)
VXLIB_STATUS VXLIB_colorConvert_IYUVtoYUV4_i8u_o8u_checkParams (const uint8_t src0[], const VXLIB_bufParams2D_t *src0_addr, const uint8_t src1[], const VXLIB_bufParams2D_t *src1_addr, const uint8_t src2[], const VXLIB_bufParams2D_t *src2_addr, const uint8_t dst0[], const VXLIB_bufParams2D_t *dst0_addr, const uint8_t dst1[], const VXLIB_bufParams2D_t *dst1_addr, const uint8_t dst2[], const VXLIB_bufParams2D_t *dst2_addr)


Function Documentation

VXLIB_STATUS VXLIB_colorConvert_IYUVtoYUV4_i8u_o8u ( const uint8_t  src0[restrict],
const VXLIB_bufParams2D_t src0_addr,
const uint8_t  src1[restrict],
const VXLIB_bufParams2D_t src1_addr,
const uint8_t  src2[restrict],
const VXLIB_bufParams2D_t src2_addr,
uint8_t  dst0[restrict],
const VXLIB_bufParams2D_t dst0_addr,
uint8_t  dst1[restrict],
const VXLIB_bufParams2D_t dst1_addr,
uint8_t  dst2[restrict],
const VXLIB_bufParams2D_t dst2_addr 
)

Description:
Performs a color conversion operation from IYUV to YUV4.
Method:
Copy src0 to dst0 and upsamples src1 and src2 to form dst1 and dst2.
Parameters:
[in] src0[] Pointer to array containing input luma plane (UQ8.0)
[in] src0_addr[] Pointer to structure containing dimensional information of src0
[in] src1[] Pointer to array containing input U plane (UQ8.0)
[in] src1_addr[] Pointer to structure containing dimensional information of src1
[in] src2[] Pointer to array containing input V plane (UQ8.0)
[in] src2_addr[] Pointer to structure containing dimensional information of src2
[out] dst0[] Pointer to array containing output luma plane (UQ8.0)
[in] dst0_addr[] Pointer to structure containing dimensional information of dst0
[out] dst1[] Pointer to array containing output interleaved UV plane (UQ8.0)
[in] dst1_addr[] Pointer to structure containing dimensional information of dst1
[out] dst2[] Pointer to array containing output V plane (UQ8.0)
[in] dst2_addr[] Pointer to structure containing dimensional information of dst
Assumptions:
  • I/O buffer pointers are assumed to be not aliased.
  • IYUV (3 planes)
    • src0_addr
      • 'dim_x' refers to the number of luma pixel units per line
      • 'dim_y' refers to the number of lines in the luma plane
      • 'stride_y' refers to the stride of the luma plane, and should be at least ('dim_x' * 1) bytes
    • src1_addr
      • 'dim_x' refers to the number of chroma pixel units per line (should be equal to src0_addr.dim_x / 2)
      • 'dim_y' refers to the number of lines in the chroma plane (should be equal to src0_addr.dim_y / 2)
      • 'stride_y' refers to the stride of the chroma plane, and should be at least ('dim_x' * 1) bytes
    • src2_addr
      • 'dim_x' refers to the number of chroma pixel units per line (should be equal to src0_addr.dim_x / 2)
      • 'dim_y' refers to the number of lines in the chroma plane (should be equal to src0_addr.dim_y / 2)
      • 'stride_y' refers to the stride of the chroma plane, and should be at least ('dim_x' * 1) bytes
  • YUV4 (3 planes)
    • dst0_addr
      • 'dim_x' refers to the number of luma pixel units per line
      • 'dim_y' refers to the number of lines in the luma plane
      • 'stride_y' refers to the stride of the luma plane, and should be at least ('dim_x' * 1) bytes
    • dst1_addr
      • 'dim_x' refers to the number of chroma pixel units per line (should be equal to dst0_addr.dim_x)
      • 'dim_y' refers to the number of lines in the chroma plane (should be equal to dst0_addr.dim_y)
      • 'stride_y' refers to the stride of the chroma plane, and should be at least ('dim_x' * 1 bytes
    • dst2_addr
      • 'dim_x' refers to the number of chroma pixel units per line (should be equal to dst0_addr.dim_x)
      • 'dim_y' refers to the number of lines in the chroma plane (should be equal to dst0_addr.dim_y)
      • 'stride_y' refers to the stride of the chroma plane, and should be at least ('dim_x' * 1) bytes
Performance Considerations:
  • For best performance, the following parameter settings are recommended:
    • Set widths equal to strides
    • Align all pointers to 8 byte boundaries
    • Set all stride and width values to a multiple of 8

VXLIB_STATUS VXLIB_colorConvert_IYUVtoYUV4_i8u_o8u_checkParams ( const uint8_t  src0[],
const VXLIB_bufParams2D_t src0_addr,
const uint8_t  src1[],
const VXLIB_bufParams2D_t src1_addr,
const uint8_t  src2[],
const VXLIB_bufParams2D_t src2_addr,
const uint8_t  dst0[],
const VXLIB_bufParams2D_t dst0_addr,
const uint8_t  dst1[],
const VXLIB_bufParams2D_t dst1_addr,
const uint8_t  dst2[],
const VXLIB_bufParams2D_t dst2_addr 
)

Description:
Checks the parameters for programming errors for the VXLIB_colorConvert_IYUVtoYUV4_i8u_o8u function.
Method:
The following checks are made:
  • There shall be no NULL pointers
  • Both images shall have the same x and y dimensions
  • The stride_y of the src image shall be equal to or greater than dim_x
  • The stride_y of the dst image shall be equal to or greater than dim_x
Parameters:
[in] src0[] Pointer to array containing input luma plane (UQ8.0)
[in] src0_addr[] Pointer to structure containing dimensional information of src
[in] src1[] Pointer to array containing input U plane (UQ8.0)
[in] src1_addr[] Pointer to structure containing dimensional information of src
[in] src2[] Pointer to array containing input V plane (UQ8.0)
[in] src2_addr[] Pointer to structure containing dimensional information of src
[in] dst0[] Pointer to array containing output luma plane (UQ8.0)
[in] dst0_addr[] Pointer to structure containing dimensional information of dst
[in] dst1[] Pointer to array containing output U plane (UQ8.0)
[in] dst1_addr[] Pointer to structure containing dimensional information of dst
[in] dst2[] Pointer to array containing output V plane (UQ8.0)
[in] dst2_addr[] Pointer to structure containing dimensional information of dst


Copyright 2020, Texas Instruments Incorporated