跳到主要内容

hi_mpi_vpc_pyrdown

hi_mpi_vpc_convert_color_v2

函数功能

转换图片的格式,在hi_mpi_vpc_convert_color接口的基础上扩展功能,支持设置RGBA格式图片的透明度。异步接口。

约束说明

版本约束
Atlas 200/500 A2推理产品- 输入、输出图片分辨率为10*6~4096*8192(包括4096*8192)。
- 输入图片格式、输出图片格式、宽高对齐约束、内存约束请参见图片格式、宽高对齐、内存约束

函数原型

hi_s32 hi_mpi_vpc_convert_color_v2(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_pic_info *dest_pic, hi_csc_conf *conf, hi_u32 *task_id, hi_s32 milli_sec)

参数说明

参数名输入/输出说明
chn输入图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。
source_pic输入原始图片信息的指针。
dest_pic输入目标图片信息的指针。 需指定输出图片的宽、高、宽stride、高stride、内存地址、内存大小、格式等。
- 配置输出图片的宽、高时,需与输入图片的宽、高保持一致,否则会返回报错。 如果将输出图片的宽或高配置为0,则VPC内部会将输入图片的宽、高分别作为输出图片的宽、高;同时,VPC内部会按对齐要求计算宽stride、高stride,不同图片格式的对齐要求不同,请参见表2
- 配置输出图片的宽stride、高stride时,满足对齐要求即可,不同图片格式的对齐要求不同,请参见表2
conf输入输出图片透明度值的指针。 透明度只针对以下图像格式有效:
text<br>PIXEL_FORMAT_ARGB_8888 = 14,<br>PIXEL_FORMAT_ABGR_8888 = 15,<br>PIXEL_FORMAT_RGBA_8888 = 16,<br>PIXEL_FORMAT_BGRA_8888 = 17,<br>
task_id输出任务ID的指针,用来区分任务。
milli_sec输入超时时间配置,单位是毫秒,取值范围如下:
- -1:阻塞方式
- 0:非阻塞方式
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

父主题: VPC图像处理功能

hi_mpi_vpc_convert_color_to_yuv420

函数功能

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

约束说明

  • 本接口兼容旧昇腾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
    • 在以上输入图片格式、输出图片格式场景下,本接口与hi_mpi_vpc_convert_color接口输出的二进制不一致。
  • 关于输入分辨率的要求:

    版本约束
    Atlas 200/500 A2推理产品输入图片分辨率:10*6~4096*8192(包括4096*8192)。
  • 输入图片格式支持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
  • 输出图片格式支持hi_pixel_format枚举值中的如下枚举项,设置其它图片格式无效,接口会返回失败:

    HI_PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1, // YUV420SP NV12 8bit
    HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2, // YUV420SP NV21 8bit
  • 关于各图片格式的宽高对齐、内存大小约束,请参见图片格式、宽高对齐、内存约束

函数原型

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)

参数说明

参数名输入/输出说明
chn输入图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。
source_pic输入原始图片信息的指针。
dest_pic输入目标图片信息的指针。 需指定输出图片的宽、高、宽stride、高stride、内存地址、内存大小、格式等。
- 配置输出图片的宽、高时,需与输入图片的宽、高保持一致,否则会返回报错。 如果将输出图片的宽或高配置为0,则VPC内部会将输入图片的宽、高分别作为输出图片的宽、高;同时,VPC内部会按对齐要求计算宽stride、高stride,不同图片格式的对齐要求不同,请参见表2
- 配置输出图片的宽stride、高stride时,满足对齐要求即可,不同图片格式的对齐要求不同,请参见表2
task_id输出任务ID的指针,用来区分任务。
milli_sec输入超时时间配置,单位是毫秒,取值范围如下:
- -1:阻塞方式
- 0:非阻塞方式
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

父主题: VPC图像处理功能

hi_mpi_vpc_copy_make_border

函数功能

对输入图像进行边界填充。异步接口。

约束说明

版本约束
Atlas 200/500 A2推理产品- 输入、输出图片分辨率为10*6~4096*8192。
- 输入、输出图片的格式、各图片格式的宽高对齐、内存大小约束,请参见请参见图片格式、宽高对齐、内存约束
- 由于YUV格式图像下采样约束,当输出图片格式为YUV420SP或YUV422SP格式时,需注意:
- 对于YUV420SP输出格式,上下左右填充的尺寸建议为偶数;
- 对于YUV422SP输出格式,左右填充的尺寸建议为偶数。

函数原型

hi_s32 hi_mpi_vpc_copy_make_border(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_pic_info *dest_pic, hi_vpc_make_border_info make_border_info, hi_u32 *task_id, hi_s32 milli_sec)

参数说明

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

返回值说明

父主题: VPC图像处理功能

hi_mpi_vpc_pyrdown

函数功能

对图像进行金字塔缩放,当前仅支持YUV400的图片格式。异步接口。

Atlas 200/500 A2推理产品,不支持该接口。

函数原型

hi_s32 hi_mpi_vpc_pyrdown(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_pic_info dest_pic[], hi_u32 filter_level, hi_s8 gaussian_filter[][5], hi_u16 divisor, hi_vpc_make_border_info make_border_info, hi_u32 *task_id, hi_s32 milli_sec)

参数说明

参数名输入/输出说明
chn输入图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。
source_pic输入输入图片信息的指针。输入图片分辨率最大支持2048*2048,仅支持YUV 400格式输入。根据filter_level, 最小输入分辨率限制如下: filter_level = 1,最小输入分辨率为20*12 filter_level = 2,最小输入分辨率为40*24 filter_level = 3,最小输入分辨率为80*48 filter_level = 4,最小输入分辨率为160*96
dest_pic输入目标图片信息,该数组长度与filter_level参数值保持一致。 dest_pic[0]保存的是原图宽高都缩小为1/2的图,dest_pic[1]保存的是原图宽高都缩小为1/4的图,dest_pic[2]保存的是原图宽高都缩小为1/8的图,dest_pic[3]保存的是原图宽高都缩小为1/16的图。
filter_level输入参数有效范围是1-4,指定金字塔图像层数以及图像数量。
gaussian_filter输入高斯滤波参数,有默认值,如下: {{1, 4, 6, 4, 1}, {4, 16, 24, 16, 4}, {6, 24, 36, 24, 6}, {4, 16, 24, 16, 4}, {1, 4, 6, 4, 1}}
divisor输入滤波器除数,必须是2的幂次方。
make_border_info输入边界填充信息。 固定填充2个像素,支持的填充类型为:HI_BORDER_CONSTANT、HI_BOARD_REPLICATE和HI_BOARD_REFLECT。
task_id输出任务ID的指针,用来区分任务。
milli_sec输入超时时间配置,单位是毫秒,取值范围如下:
- -1:阻塞方式
- 0:非阻塞方式
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

父主题: VPC图像处理功能

hi_mpi_vpc_calc_hist

函数功能

统计图像每个通道的像素值分布。异步接口。

函数原型

hi_s32 hi_mpi_vpc_calc_hist(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_histogram_config *hist_config, hi_u32 *task_id, hi_s32 milli_sec)

约束说明

  • 关于输入分辨率的要求:

    版本约束
    Atlas 200/500 A2推理产品输入图片分辨率:10*6~4096*8192(包括4096*8192)。
  • 输入图片格式支持hi_pixel_format枚举值中的如下枚举项:

    HI_PIXEL_FORMAT_YUV_400 = 0, // YUV400 8bit
    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, // YUV444P 8bit
    HI_PIXEL_FORMAT_RGB_888 = 12, // RGB888
    HI_PIXEL_FORMAT_BGR_888 = 13, // BGR888
    HI_PIXEL_FORMAT_YUV_SEMIPLANAR_440 = 1000, // YUV440SP 8bit
    HI_PIXEL_FORMAT_YVU_SEMIPLANAR_440 = 1001, // YVU440SP 8bit
  • 关于各图片格式的宽高对齐、内存大小约束,请参见图片格式、宽高对齐、内存约束

参数说明

参数名输入/输出说明
chn输入图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。
source_pic输入输入图片信息的指针。(说明:当图片格式为YUV440SP 8bit、YVU440SP 8bit时,Y分量统计准确,UV分量统计上存在误差。)
hist_config输出统计结果的指针。 hist_config是一个包含3个数组的结构体,用来存放每张图像3个分量的0-255的分布情况。
task_id输出任务ID的指针,用来区分任务。
milli_sec输入超时时间配置,单位是毫秒,取值范围如下:
- -1:阻塞方式
- 0:非阻塞方式
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

  • hist_config:统计结果。
  • task_id:此次任务分配的ID,用来区分任务。

父主题: VPC图像处理功能

hi_mpi_vpc_equalize_hist

函数功能

将输入图片中指定分量的指定像素值重映射成其它像素值,作为输出图片,主要用于图像增强的场景。通过图片的色彩重映射以达到图片对比度更好,清晰度更好的效果。异步接口。

约束说明

  • 输入图片分辨率为10*6~4096*4096(包括4096)。

  • 输入图片格式支持hi_pixel_format枚举值中的如下枚举项:

    HI_PIXEL_FORMAT_YUV_400 = 0, // YUV400 8bit
    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_PACKED_444 = 11, // YUV444P 8bit
    HI_PIXEL_FORMAT_RGB_888 = 12, // RGB888
    HI_PIXEL_FORMAT_BGR_888 = 13, // BGR888
  • 输出图片格式与输入图片格式保持一致。

  • 关于各图片格式的宽高对齐、内存大小约束,请参见图片格式、宽高对齐、内存约束

函数原型

hi_s32 hi_mpi_vpc_equalize_hist(hi_vpc_chn chn, const hi_vpc_pic_info* source_pic, hi_vpc_pic_info *dest_pic, const hi_vpc_lut_remap *lut_remap, hi_u32 *task_id, hi_s32 milli_sec)

参数说明

参数名输入/输出说明
chn输入图片处理通道号。 Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),通道总数最多128。
source_pic输入输入图片信息的指针。
dest_pic输入目标图片信息的指针。
lut_remap输入图像lut_remap的配置的指针。 lut_remap是一个768 Byte的数组,配置给硬件进行图片像素重映射。
task_id输出任务ID的指针,用来区分任务。
milli_sec输入超时时间配置,单位是毫秒,取值范围如下:
- -1:阻塞方式
- 0:非阻塞方式
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

父主题: VPC图像处理功能

hi_mpi_vpc_crop_resize_make_border

函数功能

按指定区域从一张输入图片中抠出一个或多个子图,对子图缩放后,再将每个子图按指定类型填充,作为一张或多张目标图片输出,主要用于等比例缩放场景。异步接口。

约束说明

版本约束
Atlas 200/500 A2推理产品- 关于图片分辨率、图片格式、宽高对齐、内存等约束,请参见约束说明
- 设置fx/fy之后,缩放后的图片的分辨率必须在[10*6~16384*16384]范围内,否则返回错误。
- 当输入、输出图片格式都为ARGB8888、ABGR8888、RGBA8888、BGRA8888格式时,在经过本接口缩放处理后,A分量值会变为0。
- 由于hi_vpc_crop_resize_border_region结构体内容比较丰富,使用者可以自由组合功能。但存在一些约束,例如:若是crop的宽高与resize之后的宽高一致,则不进行缩放;若偏移值为0,则不进行填充。
- 使用本接口实现等比例缩放功能时,相关的描述及约束请参见抠图、贴图约束
- 由于YUV格式图像下采样约束,当输出图片格式为YUV420SP或YUV422SP格式时,需注意:
- 对于YUV420SP输出格式,上下左右填充的尺寸建议为偶数;
- 对于YUV422SP输出格式,左右填充的尺寸建议为偶数。

函数原型

hi_s32 hi_mpi_vpc_crop_resize_make_border(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, 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输入原始图片信息的指针。
crop_resize_make_border_info输入抠图缩放填充的图片信息数组,需要用户设置抠图、缩放、填充信息以及目标图片的内存地址,VPC将抠图缩放填充后的结果数据存放在用户指定的内存地址中。如果多个填充结果的数据都指向同一个内存地址,后一次的结果数据会覆盖前一次的结果数据,导致输出图片跟预期不一致。 当前填充类型仅支持HI_BORDER_CONSTANT和HI_BORDER_REPLICATE,可以Padding到4096*4096。crop_resize_make_border_info数组的长度与count参数值保持一致。
count输入抠图缩放填充的图片数量,取值范围[1,256]。
task_id输出任务ID的指针,用来区分任务。
milli_sec输入超时时间配置,单位是毫秒,取值范围如下:
- -1:阻塞方式
- 0:非阻塞方式
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

父主题: VPC图像处理功能

在线提单