函数:dvpp_destroy_resize_config
函数:dvpp_set_roi_config_bottom
| C函数原型 | aclError acldvppSetRoiConfigBottom(acldvppRoiConfig *config, uint32_t bottom) |
|---|---|
| Python函数 | ret = acl.media.dvpp_set_roi_config_bottom(roi_config, bottom) |
| 函数功能 | 设置某个区域的位置信息:下偏移。 |
| 输入说明 | roi_config:int,描述某个区域位置的数据。调用acl.media.dvpp_create_roi_config接口创建的数据。 bottom:int,下偏移。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
父主题: VPC功能
函数:dvpp_create_resize_config
| C函数原型 | acldvppResizeConfig *acldvppCreateResizeConfig() |
|---|---|
| Python函数 | dvpp_resize_config = acl.media.dvpp_create_resize_config() |
| 函数功能 | 创建acldvppResizeConfig类型的数据,表示图片缩放配置数据。同步接口。 如需销毁acldvppResizeConfig类型的数据,请参见acl.media.dvpp_destroy_resize_config。 Atlas 200/500 A2推理产品,默认缩放算法为“业界通用的Bilinear算法”。 |
| 返回值说明 | dvpp_resize_config:int。 - 返回非0值,表示成功。 - 返回0,表示失败。 |
父主题: VPC功能
函数:dvpp_destroy_resize_config
| C函数原型 | aclError acldvppDestroyResizeConfig(acldvppResizeConfig *resizeConfig) |
|---|---|
| Python函数 | ret = acl.media.dvpp_destroy_resize_config(dvpp_resize_config) |
| 函数功能 | 销毁通过acl.media.dvpp_create_resize_config接口创建的缩放配置数据。同步接口。 |
| 输入说明 | dvpp_resize_config:int,指定待销毁的数据。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
父主题: VPC功能
函数:dvpp_set_resize_config_interpolation
| C函数原型 | aclError acldvppSetResizeConfigInterpolation(acldvppResizeConfig *resizeConfig, uint32_t interpolation) |
|---|---|
| Python函数 | ret = acl.media.dvpp_set_resize_config_interpolation(dvpp_resize_config, interpolation) |
| 函数功能 | 设置图片缩放算法。同步接口。 |
| 输入说明 | dvpp_resize_config:int,指定待设置的缩放配置数据。需提前调用acl.media.dvpp_create_resize_config接口创建acldvppResizeConfig类型的数据。 interpolation:int,指定缩放算法。此处配置的缩放算法建议与训练模型时的缩放算法保持一致。 Atlas 200/500 A2推理产品,支持如下缩放算法: - 0:默认值,表示华为自研的高阶滤波算法。 - 1:业界通用的Bilinear算法(与OpenCV-3.4.2版本算法的计算结果相同)。 - 2:业界通用的Nearest neighbor 算法(与OpenCV-3.4.2版本算法的计算结果相同)。 - 3:业界通用的Bilinear算法(与1相同)。 - 4:业界通用的Nearest neighbor算法(与2相同)。 - 5:华为自研的高阶滤波算法。 当前该缩放算法仅支持输入图片分辨率范围为10*6 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
父主题: VPC功能
函数:dvpp_get_resize_config_interpolation
| C函数原型 | uint32 acldvppGetResizeConfigInterpolation(const acldvppResizeConfig * resizeConfig) |
|---|---|
| Python函数 | interpolation = acl.media.dvpp_get_resize_config_interpolation(dvpp_resize_config) |
| 函数功能 | 获取图片缩放算法。同步接口。 |
| 输入说明 | dvpp_resize_config:int,指定待获取的缩放配置数据。 需提前调用acl.media.dvpp_create_resize_config接口创建acldvppResizeConfig类型的数据,调用acl.media.dvpp_set_resize_config_interpolation接口设置缩放算法。 |
| 返回值说明 | interpolation:int,缩放算法,具体请参见acl.media.dvpp_create_resize_config。 |
父主题: VPC功能
功能及约束说明
功能说明
JPEGD(JPEG Decoder)实现.jpg、.jpeg、.JPG、.JPEG图片文件的解码。
-
JPEGD在解码图片时,支持对图片进行旋转。
如果输入图片的码流中包含Orientation信息(代表捕获图像时摄像机相对于场景的方向),则JPEGD在解码时会解析Orientation信息,将图片进行90度、180度、270度或镜像旋转。旋转后输出图片的宽stride、高stride、输出内存仍需满足图片格式、宽高对齐、内存约束中的要求。
如果输入图片的码流异常,导致JPEGD解码时无法读取Orientation信息,则不能实现图片旋转的功能。
:::note 说明 Atlas 200/500 A2推理产品上,JPEGD 422格式旋转那图片,若原图高为奇数,并且旋转方式为宽高对换,则旋转后宽存在黑边,建议用户将宽向下对齐到偶数使用(即去除黑边),比如原图为200*101,若旋转后为101*200,则建议用户实际使用区域为100*200。
Atlas 200/500 A2推理产品上,JPEGD 440格式旋转那图片,若原图宽为奇数,并且旋转方式为宽高对换,则旋转后高存在黑边,建议用户将高向下对齐到偶数使用(即去除黑边),比如原图为201*101,若旋转后为100*201,则建议用户实际使用区域为100*200。 :::
-
JPEGD在解码图片时,支持按源图片格式解码。
源图片格式解码是指解码前后图片的编码格式保持一致,例如解码前输入图片为jpeg(440),解码后输出图片为YUV440SP V在前U在后或YUV440SP U在前V在后。
使用源图片格式解码,有以下方式:
- 调用acl.media.dvpp_jpeg_get_image_info_v2接口,获取JPEGD解码前输入图片的编码格式,在调用JPEGD解码接口时,将输出图片格式设置的与输入图片编码格式一致。
- 在调用JPEGD解码接口时,将输出图片格式配置为PIXEL_FORMAT_UNKNOWN,输出格式默认按源图片格式输出、且是V在前U在后的Semi-Planar格式。例如,JPEG输入图片编码格式为jpeg(440),输出图片格式配置为PIXEL_FORMAT_UNKNOWN,JPEGD解码后,实际输出图片格式为YUV440SP V在前U在后。
:::note 说明 JPEGD解码后的输出图片,如果要直接作为模型推理的输入,建议将输出图片格式配置为PIXEL_FORMAT_UNKNOWN,这时JPEGD使用源图片格式解码(但这里要确保解码后的图片格式模型是支持的),保证模型推理的精度。
JPEGD解码后的输出图片,如果直接作为VPC的输入,该场景下若使用源图片格式解码时,则需要关注解码后的输出图片格式VPC是否支持(VPC输入图片的格式请参见约束说明),如果VPC不支持,则用户需按VPC支持的情况指定JPEGD的输出图片格式。 :::
图片分辨率约束
-
输入图片分辨率
昇腾AI处理器 分辨率范围 Atlas 200/500 A2推理产品 最大分辨率:16384*16384,最小分辨率:32*32。 -
输出图片分辨率
JPEGD只对图片解码,不会改变图片分辨率,因此输出与输入的图片分辨率保持一致。
图片格式、宽高对齐、内存约束
实现JPEGD图片解码功能时,需调用acl.media.dvpp_malloc接口申请Device上的输入、输出内存,调用acl.media.dvpp_free接口释放输入、输出内存,这部分内存的生命周期由用户自行管理。
- 输入内存的大小就是指实际的输入图片所占用的大小。
- 输出内存的大小,可调用acl.media.dvpp_jpeg_predict_dec_size接口预估,计算公式参见下表。
实现JPEGD图片解码功能时,仅支持Huffman编码,压缩前的原图像色彩空间为YUV,像素的各分量比例为4:4:4或4:2:2或4:2:0或4:0:0或4:4:0,不支持算术编码、不支持渐进JPEG格式、不支持JPEG2000格式。
:::note 说明 输出图片格式的定义请参见acldvppPixelFormat,宽stride、高stride等概念请参见基本概念。 :::
表1 图片格式、宽高对齐、内存大小约束
输入图片格式(YUV分量比例) | 输出图片格式 | 输出图片宽、高对齐要求 | 输出图片宽stride、高stride、内存大小要求 Atlas 200/500 A2推理产品 |
|---|---|---|---|
jpeg(444) | YVU444SP 8bit | 无对齐要求 | 宽stride为宽64对齐后的值。 高stride为高16对齐后的值。 内存大小(单位Byte)≥ 宽stride * 高stride * 3 |
YUV444SP 8bit | |||
YUV420SP NV12 8bit | 宽2对齐 高2对齐 | 宽stride为宽64对齐后的值。 高stride为高16对齐后的值。 内存大小(单位Byte)≥ 宽stride * 高stride * 3/2 | |
YUV420SP NV21 8bit | |||
jpeg(422) | YVU422SP 8bit | 宽2对齐 高2对齐 | 宽stride为宽64对齐后的值。 高stride为高16对齐后的值。 内存大小(单位Byte)≥ 宽stride * 高stride * 2 |
YUV422SP 8bit | |||
YUV420SP NV12 8bit | 宽2对齐 高2对齐 | 宽stride为宽64对齐后的值。 高stride为高16对齐后的值。 内存大小(单位Byte)≥ 宽stride * 高stride * 3/2 | |
YUV420SP NV21 8bit | |||
jpeg(420) | YUV420SP NV12 8bit | 宽2对齐 高2对齐 | 宽stride为宽64对齐后的值。 高stride为高16对齐后的值。 内存大小(单位Byte)≥ 宽stride * 高stride * 3/2 |
YUV420SP NV21 8bit | |||
jpeg(400) | YUV420SP NV12 8bit | 宽2对齐 高2对齐 | 宽stride为宽64对齐后的值。 高stride为高16对齐后的值。 内存大小(单位Byte)≥ 宽stride * 高stride * 3/2 |
YUV420SP NV21 8bit | |||
YUV400 8bit | 无对齐要求 | 宽stride为宽64对齐后的值。 高stride为高16对齐后的值。 内存大小(单位Byte)≥ 宽stride * 高stride | |
jpeg(440) | YVU440SP 8bit | 宽2对齐 高2对齐 | 宽stride为宽64对齐后的值。 高stride为高16对齐后的值。 内存大小(单位Byte)≥ 宽stride * 高stride * 2 |
YUV440SP 8bit | |||
YUV420SP NV12 8bit | 宽2对齐 高2对齐 | 宽stride为宽64对齐后的值。 高stride为高16对齐后的值。 内存大小(单位Byte)≥ 宽stride * 高stride * 3/2 | |
YUV420SP NV21 8bit |
软、硬件约束
- 硬件约束:
- 最多支持4张Huffman表,其中包括2 张DC(直流)表和2 张AC(交流)表。
- 最多支持3张量化表。
- 只支持8bit采样精度。
- 只支持对顺序式编码的图片进行解码。
- 只支持基于DCT(Discrete Cosine Transform)变换的JPEG 格式解码。
- 只支持一个SOS(Start of Scan)标志的图片解码。
- 软件约束:
- 支持3个SOS标志的图片解码。
- 支持mcu(Minimum Coded Unit)数据不足的异常图片解码。
精度相关约束
- 在Atlas 200/500 A2推理产品,JPEGD+VPC串联使用时,由于JPEGD解码后的输出图片的宽stride*高stride有64*16对齐的约束,因此解码后的输出图片的宽、高有一些补边的无效数据,所以在执行VPC功能时(例如缩放时),需调用acl.media.dvpp_set_pic_desc_width和acl.media.dvpp_set_pic_desc_height接口正确设置输入图片的原图宽高,这样VPC在缩放图片前会先根据原图宽高自行抠图,目的是去除无效数据对图像精度的影响。
父主题: JPEGD功能
在线提单