acl.himpi.vpc_convert_color_to_yuv420

c函数原型

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函数

task_id, ret = acl.himpi.vpc_convert_color_to_yuv420(chn, source_pic, dest_pic, milli_sec)

函数功能

转换图片的格式,且转换后的格式仅支持YUV420 semi-planar/YVU420 semi-planar。异步接口。

Atlas 200/300/500 推理产品,当前版本不支持该接口。

Atlas 训练系列产品,当前版本不支持该接口。

输入说明

  • chn:int,图片处理通道号。

    该参数的取值范围:[0, 256),通道总数最多256。

  • source_pic:原始图片信息。
    • 输入分辨率为10*6~4096*4096(包括4096)。
      输入图片格式支持hi_pixel_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 
  • dest_pic:目标图片信息。

    需指定输出图片的宽、高、宽stride、高stride、内存地址、内存大小、格式等。

    • 配置图片格式时,当前仅支持hi_pixel_format枚举值中的如下枚举项,设置其它图片格式无效,接口会返回失败:
      HI_PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1,       // YUV420SP NV12 8bit   
      HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2,       // YUV420SP NV21 8bit 
    • 配置输出图片的宽、高时,需与输入图片的宽、高保持一致,否则会返回报错。

      如果将输出图片的宽或高配置为0,则VPC内部会将输入图片的宽、高分别作为输出图片的宽、高;同时,VPC内部会按对齐要求计算宽stride、高stride,不同图片格式的对齐要求不同,请参见图片格式、宽高对齐、内存约束

    • 配置输出图片的宽stride、高stride时,满足对齐要求即可,不同图片格式的对齐要求不同,请参见图片格式、宽高对齐、内存约束
  • milli_sec:超时时间配置,单位是毫秒,取值范围如下。
    • “-1”:阻塞方式。
    • “0”:非阻塞方式。
    • >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

  • ret:int,错误码。
  • task_id:此次任务分配的ID,用来区分任务。

约束说明

本接口兼容旧昇腾AI处理器版本上的格式转换接口,兼容场景下的输入、输出图片格式如下,兼容场景下输出的二进制相同。

  • 输入图片格式:YUV420 semi-planar/YVU420 semi-planar/YUV422 semi-planar/YVU422 semi-planar/YUV444 packed/YUV444 semi-planar/YVU444 semi-planar
  • 输出图片格式:YUV420 semi-planar/YVU420 semi-planar

在以上输入图片格式、输出图片格式场景下,本接口与acl.himpi.vpc_convert_color接口输出的二进制不一致。