hi_mpi_vpc_sys_create_chn
hi_mpi_vpc_batch_crop_resize_make_border
函数功能
hi_mpi_vpc_crop_resize_make_border的扩展接口,支持批处理模式。可输入多张原图,按指定区域从每张输入图片中抠出一个或多个子图,对子图缩放后,再将子图贴到每张目标图片(目标图片的数量与子图数量保持一致)的指定位置,区域之外按指定类型填充。异步接口。
约束说明
| 版本 | 约束 |
|---|---|
| Atlas 200/500 A2推理产品 | - 关于图片分辨率、各图片格式的宽高对齐、内存大小约束,请参见约束说明。 - 当输入、输出图片格式都为ARGB8888、ABGR8888、RGBA8888、BGRA8888格式时,在经过本接口缩放处理后,A分量值会变为0。 - 由于hi_vpc_crop_resize_border_region结构体内容比较丰富,使用者可以自由组合功能。但存在一些通用约束,例如: - 若是crop的宽高和原图宽高一致,则不进行crop。 - 若是crop的宽高与resize之后的宽高一致,则不进行缩放。 - 若是crop、resize之后的宽高和目标图片的宽高一致,并且左上角坐标等于(0,0),则不进行填充。 - 使用本接口实现等比例缩放功能时,相关的描述及约束请参见抠图、贴图约束。 - 由于YUV格式图像下采样约束,当输出图片格式为YUV420SP或YUV422SP格式时,需注意: - 对于YUV420SP输出格式,上下左右填充的尺寸建议为偶数; - 对于YUV422SP输出格式,左右填充的尺寸建议为偶数。 |
函数原型
hi_s32 hi_mpi_vpc_batch_crop_resize_make_border(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic[], hi_u32 pic_num, hi_vpc_crop_resize_border_region crop_resize_make_border_info[], hi_u32 count[], hi_u32 *task_id, hi_s32 milli_sec)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 |
| source_pic | 输入 | 原始图片信息的指针数组。 |
| pic_num | 输入 | 原始图片数量,与source_pic数组长度、count数组长度保持一致。 |
| crop_resize_make_border_info | 输入 | 抠图缩放填充的信息结构体,需要用户设置抠图、缩放、填充信息以及目标图片的内存地址,VPC将抠图缩放填充后的结果数据存放在用户指定的内存地址中。当前填充类型仅支持HI_BORDER_CONSTANT和HI_BORDER_REPLICATE,可以填充到4096*4096。 |
| count | 输入 | 每张原图抠图缩放填充的图片数量,count数组内元素值之和等于crop_resize_make_border_info数组的长度。count数组内元素值之和的取值范围[1,256]。 |
| task_id | 输出 | 任务ID的指针,用来区分任务。 |
| milli_sec | 输入 | 超时时间配置,单位是毫秒,取值范围如下: - -1:阻塞方式 - 0:非阻塞方式 - >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
返回值说明
- 0:成功
- 非0:失败,参见VPC图像处理返回码
父主题: VPC图像处理功能
hi_mpi_vpc_get_process_result
函数功能
等待任务处理完成,再获取图片处理结果。
由于VPC功能接口是异步接口(例如:hi_mpi_vpc_crop),因此在调用VPC功能接口之后,还需要调用本接口等待任务处理完成,然后再获取处理结果。
函数原型
hi_s32 hi_mpi_vpc_get_process_result(hi_vpc_chn chn, hi_u32 task_id, hi_s32 milli_sec)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 |
| task_id | 输入 | 任务ID。 此处通过任务ID来明确需要获取哪次任务执行后的结果数据。 任务ID可以在调用抠图、缩放等接口后获取,请参见hi_mpi_vpc_resize~hi_mpi_vpc_batch_crop_resize_make_border。 |
| milli_sec | 输入 | 超时时间配置,单位是毫秒,取值范围如下: - -1:阻塞方式 - 0:非阻塞方式 - >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
返回值说明
- 0:成功
- 非0:失败,参见VPC图像处理返回码
父主题: VPC图像处理功能
hi_mpi_vpc_sys_create_chn
函数功能
根据设置的通道属性创建图像处理通道,由系统返回可用通道号给用户。
函数原型
hi_s32 hi_mpi_vpc_sys_create_chn(hi_vpc_chn *chnl, const hi_vpc_chn_attr *attr)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chnl | 输出 | 图片处理通道号的指针,调用该接口后,由系统返回可用通道号给用户。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 |
| attr | 输入 | 图片处理通道属性指针。 如果参数attr为空,会返回错误码HI_ERR_VPC_NULL_PTR。 |
返回值说明
- 0:成功
- 非0:失败,参见VPC图像处理返回码
父主题: VPC图像处理功能
hi_mpi_vpc_set_roundview_stitching_param
函数功能
设置环视拼接参数,包括畸变矫正、增益补偿参数。
Atlas 200/500 A2推理产品,不支持该接口。
约束说明
- 输入、输出图片宽高必须准确配置,分辨率为[10, 6]到[4096,4096]。
- 一个通道创建后,只能调用本接口设置一次环视拼接参数。
- 设置拼接参数时,拼接表中的图片编号需设置成功,否则可能出现拼接后的输出图片异常,具体图片编号的设置请参见hi_stiching_ipm_table。
函数原型
hi_s32 hi_mpi_vpc_set_roundview_stitching_param(hi_vpc_chn chn, const hi_roundview_stitching_param *stitch_param)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 |
| stitch_param | 输入 | 环视拼接参数信息,包括畸变矫正、增益补偿参数。 |
返回值说明
- 0:成功
- 非0:失败,参见VPC图像处理返回码
父主题: VPC图像处理功能
hi_mpi_vpc_get_roundview_stitching_param
函数功能
获取环视拼接参数,包括畸变矫正、增益补偿参数。
Atlas 200/500 A2推理产品,不支持该接口。
约束说明
调用本接口前,必须正确设置ipm_table_address、dest_pic_width、dest_pic_height和ipm_table_size参数。
函数原型
hi_s32 hi_mpi_vpc_get_roundview_stitching_param(hi_vpc_chn chn, hi_roundview_stitching_param *stitch_param)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 |
| stitch_param | 输出 | 环视拼接参数。 输出结果中的imp_param.ipm_table_address中的float类型参数值,与用户设置输入时的参数存在浮点精度差异(不超过0.01)。 |
返回值说明
- 0:成功
- 非0:失败,参见VPC图像处理返回码
父主题: VPC图像处理功能
hi_mpi_vpc_roundview_stitching
函数功能
下发环视拼接任务。
Atlas 200/500 A2推理产品,不支持该接口。
约束说明
不能在一个通道内并发下发多个环视拼接任务。需要hi_mpi_vpc_get_process_result后,再通过hi_mpi_vpc_roundview_stitching接口下发环视拼接任务。
函数原型
hi_s32 hi_mpi_vpc_roundview_stitching(hi_vpc_chn chn, hi_roundview_stitching_pic_param *roundview_stitching_pic_param, hi_u32 *task_id, hi_s32 milli_sec)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。 |
| roundview_stitching_pic_param | 输入 | 输入和输出图片信息。 - 输入: - 输入图片数量:当前环视拼接功能仅支持对4张输入图片; - 输入图片格式:支持YUV420SP、YVU420SP; - 输入图片分辨率:取值范围在10*6 - 输出: - 输出图片数量:1张图片; - 输出图片格式:支持YUV420SP、YVU420SP、RGB888、BGR888; - 输出图片分辨率:取值范围在10*6 |
| milli_sec | 输入 | 超时时间,单位是毫秒。 - -1:阻塞方式 - 0:非阻塞方式 - >0:超时方式,配置具体的超时时间。 |
| task_id | 输出 | 此次任务分配的ID,用来区分任务。 |
返回值说明
- 0:成功
- 非0:失败,参见VPC图像处理返回码
父主题: VPC图像处理功能
在线提单