vpc_convert_color_to_yuv420

Applicability

Product

Supported (√/x)

Atlas A3 training products/Atlas A3 inference products

Atlas A2 training products/Atlas A2 inference products

Atlas training products

x

Atlas inference products

Atlas 200I/500 A2 inference products

Function Usage

Converts the image format to semi-planar YUV420SP or semi-planar YVU420SP. This API is asynchronous.

Prototype

  • C Prototype
    1
    hi_s32 hi_mpi_vpc_convert_color_to_yuv420 (hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_pic_info *dest_pic, hi_u32 *task_id, hi_s32 milli_sec);
    
  • Python Function
    1
    task_id, ret = acl.himpi.vpc_convert_color_to_yuv420(chn, source_pic, dest_pic, milli_sec)
    

Parameter Description

Parameter

Description

chn

Int, channel ID for image processing.

  • Atlas inference products: The value range of this parameter is [0, 256). The maximum number of channels is 256.
  • Atlas A2 training products/Atlas A2 inference products: The value range of this parameter is [0, 256). The maximum number of channels is 256.
  • Atlas 200I/500 A2 inference products: The value range of this parameter is [0, 128). The maximum number of channels is 128.
  • Atlas A3 training products/Atlas A3 inference products: The value range of this parameter is [0, 256). The maximum number of channels is 256.

source_pic

Dict, original image information. For details, see hi_vpc_pic_info. For details about related restrictions, see Restrictions.

dest_pic

Dict, target image information. For details, see hi_vpc_pic_info.

Specify the width, height, width stride, height stride, memory address, memory size, and format of the output image.

  • The width and height of the output image must be the same as those of the input image. Otherwise, an error is reported.

    If the width or height of the output image is set to 0, VPC uses the width and height of the input image as the width and height of the output image respectively. In addition, VPC calculates the width stride and height stride based on the alignment requirements, which vary with the image format. For details, see Restrictions on Image Formats, Width and Height Alignment, and Buffers.

  • The width stride and height stride of the output image must meet the alignment requirements, which vary with the image format. For details, see Restrictions on Image Formats, Width and Height Alignment, and Buffers.

milli_sec

Int, timeout interval, in milliseconds.
  • -1: blocking mode.
  • 0: non-blocking mode.
  • > 0: timeout interval (timeout mode). The timeout interval varies with the operating system. The deviation is generally within a time slice of an operating system. For example, if the time slice of an operating system is 4 ms and the value of milli_sec is set to 1, the actual timeout interval ranges from 1 ms to 5 ms. When the CPU load is high, the timeout interval may fluctuate.

Return Value Description

Return Value

Description

task_id

Int, task ID, used to identify a task.

ret

Int, error code.

Restrictions

  • This API is compatible with the format conversion API provided by earlier versions of the Ascend AI Processor. Compatible input and output image formats are listed below. The same binary format is output in the compatible scenario.
    • Input formats: YUV420SP, YVU420SP, YUV422SP, YVU422SP, YUV444 Packed, YUV444SP, and YVU444SP
    • Output formats: YUV420SP and YVU420SP
    • For the preceding formats, the binary output of this API is different from that of vpc_convert_color.
  • Requirements on the input resolution:

    Version

    Restriction

    Atlas inference products

    Input image resolution: [10 x 6, 4096 x 4096].

    Atlas 200I/500 A2 inference products

    Atlas A2 training products/Atlas A2 inference products

    Atlas A3 training products/Atlas A3 inference products

    Input image resolution: [10 x 6, 4096 x 8192].

  • The following enum values of hi_pixel_format are supported for the source image format:
    HI_PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1,       // YUV420SP NV12 8bit   
    HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2,       // YUV420SP NV21 8bit 
    HI_PIXEL_FORMAT_YUV_SEMIPLANAR_422 = 3,       // YUV422SP 8bit
    HI_PIXEL_FORMAT_YVU_SEMIPLANAR_422 = 4,       // YVU422SP 8bit
    HI_PIXEL_FORMAT_YUV_SEMIPLANAR_444 = 5,       // YUV444SP 8bit
    HI_PIXEL_FORMAT_YVU_SEMIPLANAR_444 = 6,       // YVU444SP 8bit
    HI_PIXEL_FORMAT_YUYV_PACKED_422 = 7,          // YUV422Packed YUYV 8bit
    HI_PIXEL_FORMAT_UYVY_PACKED_422 = 8,          // YUV422Packed UYVY 8bit
    HI_PIXEL_FORMAT_YVYU_PACKED_422 = 9,          // YUV422Packed YVYU 8bit
    HI_PIXEL_FORMAT_VYUY_PACKED_422 = 10,         // YUV422Packed VYUY 8bit
    HI_PIXEL_FORMAT_YUV_PACKED_444 = 11,          // YUV444Packed 8bit
    HI_PIXEL_FORMAT_RGB_888 = 12,                 // RGB888
    HI_PIXEL_FORMAT_BGR_888 = 13,                 // BGR888
    HI_PIXEL_FORMAT_ARGB_8888 = 14,               // ARGB8888
    HI_PIXEL_FORMAT_ABGR_8888 = 15,               // ABGR8888
    HI_PIXEL_FORMAT_RGBA_8888 = 16,               // RGBA8888
    HI_PIXEL_FORMAT_BGRA_8888 = 17,               // BGRA8888
    HI_PIXEL_FORMAT_YUV_SEMIPLANAR_440 = 1000,    // YUV440SP 8bit 
    HI_PIXEL_FORMAT_YVU_SEMIPLANAR_440 = 1001,    // YVU440SP 8bit 
  • If the output image formats can be the following enumerated values of hi_pixel_format. Other image formats are not supported and would cause a failure return.
    HI_PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1,       // YUV420SP NV12 8bit   
    HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2,       // YUV420SP NV21 8bit 
  • For details about the restrictions on the width and height alignment, buffer size, and image format, see Restrictions on Image Formats, Width and Height Alignment, and Buffers.