acl.himpi.vpc_batch_crop_resize_paste

c函数原型

hi_s32 hi_mpi_vpc_batch_crop_resize_paste (hi_vpc_chn chn, const hi_vpc_pic_info *source_pic[], hi_u32 pic_num, hi_vpc_crop_resize_paste_region crop_resize_paste_info[], hi_u32 count[], hi_u32 *task_id, hi_s32 milli_sec);

Python函数

task_id, ret =acl.himpi.vpc_batch_crop_resize_paste(chn, source_pic, pic_num, crop_resize_paste_info, count, milli_sec)

函数功能

acl.himpi.vpc_crop_resize_paste的扩展接口,支持一次处理多张输入图片。可输入多张原图,从每张原图中抠一张或多张子图缩放并贴图到每张目标图上,目标图片的数量与子图数量保持一致。异步接口。

输入说明

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

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

  • source_pic:原始图片信息的指针数组。
  • pic_num:原始图片数量,与source_pic数组长度、count数组长度保持一致。
  • crop_resize_paste_info:抠图缩放并贴图信息字典链表,需要用户设置抠图、缩放、贴图信息以及目标图片的内存地址,VPC将抠图缩放贴图后的结果数据存放在用户指定的内存地址中。
  • count:每张原图抠图缩放贴图的图片数量,数组内第一个元素的值表示第一张原图的抠图缩放贴图的图片数量,第二个元素的值表示第二张原图的抠图缩放贴图的图片数量,以此类推。count数组内元素值之和等于crop_resize_paste_info数组的长度。count数组内元素值之和的取值范围[1,256]。
  • milli_sec:超时时间配置,单位是毫秒,取值范围如下。
    • “-1”:阻塞方式。
    • “0”:非阻塞方式。
    • >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

  • task_id:任务分配的ID,用来区分任务。

注意事项

参考资源

约束说明

昇腾AI处理器

约束

Atlas 200/500 A2推理产品

  • 关于图片分辨率、各图片格式的宽高对齐、内存大小约束,请参见约束说明
  • 由于YUV格式图像下采样约束,当输出图片格式为YUV420SP或YUV422SP格式时,贴图的顶部偏移、左侧偏移建议为偶数。
  • 由于hi_vpc_crop_resize_paste_region结构体内容比较丰富,使用者可以自由组合功能。但存在一些通用约束,例如:
    • 若是crop的宽高和原图宽高一致,则不进行crop。
    • 若是crop的宽高与resize之后的宽高一致,则不进行缩放。
    • 若是crop、resize之后的宽高和目标图片一致,并且贴图左上角坐标等于(0,0),则不进行贴图。