跳到主要内容

hi_mpi_vpc_resize

性能指标说明

性能指标说明(Atlas 200/500 A2推理产品)

单个Device场景下的性能指标参考如下(1路对应一个通道,一个通道对应一个线程,或者n路对应一个通道,一个通道对应n个线程):

场景举例总帧率
- 输入图片分辨率:1080p(1920*1080)
- 输出图片分辨率:1080p(1920*1080)
- 输入/输出图片格式:YUV420SP
- n路(n<2)
n*800fps
- 输入图片分辨率:1080p(1920*1080)
- 输出图片分辨率:1080p(1920*1080)
- 输入/输出图片格式:YUV420SP
- n路(n≥2)
1600fps
- 输入图片分辨率:4K图像(3840*2160)
- 输出图片分辨率:4K图像(3840*2160)
- 输入/输出图片格式:YUV420SP
- n路(n<2)
n*200fps
- 输入图片分辨率:4K图像(3840*2160)
- 输出图片分辨率:4K图像(3840*2160)
- 输入/输出图片格式:YUV420SP
- n路(n≥2)
400fps
- 输入图片分辨率:8K图像(7680*4320)
- 输出图片分辨率:4K图像(3840*2160)
- 输入/输出图片格式:YUV420SP
- n路(n<2)
n*100fps
- 输入图片分辨率:8K图像(7680*4320)
- 输出图片分辨率:4K图像(3840*2160)
- 输入/输出图片格式:YUV420SP
- n路(n≥2)
200fps

:::note 说明

  • VPC处理性能与处理过程中的图像分辨率强相关,以输入图像和输出图像中的最大分辨率作为基准分辨率,基准分辨率越大,处理耗时越久,性能越低。
  • 调用VPC批处理接口(接口命名中包含batch,例如hi_mpi_vpc_batch_crop_resize_paste接口)时,由于图像处理单元DVPP(Digital Video Pre-Processing)内部多个VPC硬件单元会并行处理图片任务,因此单路就可以达到最大总帧率。 :::

父主题: VPC图像处理功能

hi_mpi_vpc_create_chn

函数功能

根据设置的通道属性创建图像处理通道,由用户指定通道号。

约束说明

  • 如果参数attr为空,会返回错误码HI_ERR_VPC_NULL_PTR。
  • 在创建图像处理通道之前必须保证通道未创建(或者已经销毁),否则会直接返回失败。

函数原型

hi_s32 hi_mpi_vpc_create_chn(hi_vpc_chn chn, const hi_vpc_chn_attr *attr)

参数说明

参数名输入/输出说明
chn输入图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 (说明:对于 Atlas 200/500 A2推理产品 , 昇腾虚拟化实例(Ascend Virtual Instance)场景下,通道总数最多128。)
attr输入图片处理通道属性指针。

返回值说明

参考资源

接口调用流程及示例,参见VPC图片处理典型功能

父主题: VPC图像处理功能

hi_mpi_vpc_destroy_chn

函数功能

销毁创建的图像处理通道。

约束说明

通道号不能超出最大的通道号范围。

函数原型

hi_s32 hi_mpi_vpc_destroy_chn(hi_vpc_chn chn)

参数说明

参数名输入/输出说明
chn输入图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。

返回值说明

参考资源

接口调用流程及示例,参见VPC图片处理典型功能

父主题: VPC图像处理功能

hi_mpi_vpc_resize

函数功能

对图像进行按照一定比例进行缩放或者缩放到固定尺寸。异步接口。

约束说明

版本约束
Atlas 200/500 A2推理产品- 使用本接口对输入、输出图片分辨率的要求如下:
- 输入图片分辨率:10*616384*16384 当输出图片宽度大于4096时,输入图片最小分辨率为128*16。 当输入图片宽度大于8192时,输入图片高度最小为16。
- 输出图片分辨率:10*6
16384*16384
- 关于图片格式、宽高对齐、内存等约束,请参见图片格式、宽高对齐、内存约束
- 当输入、输出图片格式都为ARGB8888、ABGR8888、RGBA8888、BGRA8888格式时,在经过本接口缩放处理后,A分量值会变为0。
- 设置fx/fy之后,缩放后的图片的分辨率必须在[10*6~16384*16384]范围内,否则返回错误。
- 缩放可以通过fx/fy或者目标图片宽高两种方式来指定,但是两者均配置以目标尺寸缩放优先。两者不可同时为0。

函数原型

hi_s32 hi_mpi_vpc_resize(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_pic_info *dest_pic, hi_double fx, hi_double fy, hi_u32 interpolation, hi_u32 *task_id, hi_s32 milli_sec)

参数说明

参数名输入/输出说明
chn输入图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。
source_pic输入原始图片信息的指针。
dest_pic输入目标图片信息的指针。
fx输入宽的缩放比例。
fy输入高的缩放比例。
interpolation输入缩放算法。此处配置的缩放算法建议与训练模型时的缩放算法保持一致。 Atlas 200/500 A2推理产品,支持如下缩放算法:
- 0:业界通用的Bilinear算法(与OpenCV-3.4.2版本算法的计算结果相同)
- 1:业界通用的Nearest neighbor 算法(与OpenCV-3.4.2版本算法的计算结果相同)
task_id输出任务ID的指针,用来区分任务。
milli_sec输入超时时间配置,单位是毫秒,取值范围如下:
- -1:阻塞方式
- 0:非阻塞方式
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

参考资源

接口调用流程及示例,参见VPC图片处理典型功能

父主题: VPC图像处理功能

hi_mpi_vpc_crop

函数功能

按照指定区域从一张输入图片中抠出一张或多张子图。异步接口。

约束说明

版本约束
Atlas 200/500 A2推理产品- 关于图片分辨率、图片格式、宽高对齐、内存等约束,请参见约束说明
- 单张1080P的图像处理超时时间建议设置3ms,以此类推,如果是2张1080P的图像,建议设置超时间为6ms;如果是3张1080P图片,建议设置超时时间为9ms。其他分辨率,按照图像尺寸进行近似的等价折算,例如,3840*2160分辨率的图像建议超时时间设置为12ms。

函数原型

hi_s32 hi_mpi_vpc_crop(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_crop_region_info crop_info[], hi_u32 count, hi_u32 *task_id, hi_s32 milli_sec)

参数说明

参数名输入/输出说明
chn输入图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。
source_pic输入原始图片信息的指针。
crop_info输入抠图图片信息数组,该数组长度与count参数值保持一致。
count输入抠图区域的数量,取值范围[1,256]。
task_id输出任务ID的指针,用来区分任务。
milli_sec输入超时时间配置,单位是毫秒,取值范围如下:
- -1:阻塞方式
- 0:非阻塞方式
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

参考资源

接口调用流程及示例,参见VPC图片处理典型功能

父主题: VPC图像处理功能

hi_mpi_vpc_crop_resize

函数功能

从一张大图中扣出一张或多张子图,并缩放到指定尺寸。异步接口。

约束说明

版本约束
Atlas 200/500 A2推理产品- 关于图片分辨率、图片格式、宽高对齐、内存等约束,请参见约束说明
- 当输入、输出图片格式都为ARGB8888、ABGR8888、RGBA8888、BGRA8888格式时,在经过本接口缩放处理后,A分量值会变为0。
- 若是crop的宽高与resize之后的宽高一致,则不进行缩放;resize宽高必须与输出宽高一致。

函数原型

hi_s32 hi_mpi_vpc_crop_resize(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_crop_resize_region crop_resize_info[], hi_u32 count, hi_u32 *task_id, hi_s32 milli_sec)

参数说明

参数名输入/输出说明
chn输入图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。
source_pic输入原始图片信息的指针。
crop_resize_info输入抠图并缩放的图片信息数组,该数组长度与count参数值保持一致。
count输入抠图并缩放的图片数量,取值范围[1,256]。
task_id输出任务ID的指针,用来区分任务。
milli_sec输入超时时间配置,单位是毫秒,取值范围如下:
- -1:阻塞方式
- 0:非阻塞方式
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

父主题: VPC图像处理功能

hi_mpi_vpc_crop_resize_paste

函数功能

从输入图片中抠图,对抠出的子图进行缩放后,贴在用户输出图片的指定区域。异步接口。

约束说明

版本约束
Atlas 200/500 A2推理产品- 关于图片分辨率、图片格式、宽高对齐、内存等约束,请参见约束说明
- 当输入、输出图片格式都为ARGB8888、ABGR8888、RGBA8888、BGRA8888格式时,在经过本接口缩放处理后,A分量值会变为0。
- 由于YUV格式图像下采样约束,当输出图片格式为YUV420SP或YUV422SP格式时,贴图的顶部偏移、左侧偏移需为偶数。
- 输出图片的数量最多等于抠图区域的数量,最少是一张图片。也就是说,如果从输入图片中扣n张子图,那么贴图的目标图片可以是同一张大图,也可以是多张大图。取决于hi_vpc_crop_resize_paste_region结构体中指定的地址。
- 由于hi_vpc_crop_resize_paste_region结构体内容比较丰富,使用者可以自由组合功能。例如:若是crop的宽高与resize之后的宽高一致,则不进行缩放。

函数原型

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

参数说明

参数名输入/输出说明
chn输入图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。
source_pic输入原始图片信息的指针。
crop_resize_paste_info输入抠图缩放并贴图的图片信息数组,该数组长度与count参数值保持一致。
count输入抠图缩放贴图的图片数量,取值范围[1,256]。
task_id输出任务ID的指针,用来区分任务。
milli_sec输入超时时间配置,单位是毫秒,取值范围如下:
- -1:阻塞方式
- 0:非阻塞方式
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

父主题: VPC图像处理功能

在线提单