PNGD功能
昇腾310 AI处理器上,当前版本不支持该功能。
昇腾910 AI处理器上,当前版本不支持该功能。
功能说明
PNGD(PNG decoder)实现.png、.PNG图片的解码。
- 关于输入
- 输入码流分辨率
- 输入图片格式
- 输入内存
Device的内存,调用acl.himpi.dvpp_malloc接口/acl.himpi.dvpp_free接口申请或释放内存。
输入内存的大小就是指实际的输入图片所占用的大小。
- 关于输出
- 输出图片格式
支持hi_pixel_format枚举值中的如下枚举项,如果输入图片格式为RGB或GRAY,则输出只能为RGB;如果输入图片格式为RGBA或AGRAY,则输出支持RGB或RGBA。
HI_PIXEL_FORMAT_RGB_888 = 12, // RGB888 HI_PIXEL_FORMAT_RGBA_8888 = 16, // RGBA_8888 8bit HI_PIXEL_FORMAT_UNKNOWN = 10000 //不确定输出格式
如果不清楚PNG源图片格式、但想使用源格式解码时,有以下两种方式:
- 在调用PNGD解码接口时,直接将输出图片格式配置为HI_PIXEL_FORMAT_UNKNOWN,输出格式默认按源图片格式输出。此种方式,由于不知道输出图片格式,因此需要用户申请尽量大的内存,防止内存不够,无法存放输出图片。
输入图片格式
操作
实际输出图片格式
RGB/GRAY
将输出图片格式设置为PIXEL_FORMAT_UNKNOWN
RGB888
RGBA/AGRAY
将输出图片格式设置为PIXEL_FORMAT_UNKNOWN
RGBA8888
- 先调用acl.himpi.png_get_image_info接口根据传入的PNG源图片,获取按源图解码时的输出图片的宽、高、宽stride、高stride、解码输出内存大小、图片格式等信息后,再调用PNGD解码接口,使用通过acl.himpi.png_get_image_info接口获取的图片格式来设置输出图片格式。
- 在调用PNGD解码接口时,直接将输出图片格式配置为HI_PIXEL_FORMAT_UNKNOWN,输出格式默认按源图片格式输出。此种方式,由于不知道输出图片格式,因此需要用户申请尽量大的内存,防止内存不够,无法存放输出图片。
- 输出内存
- Device的内存,调用acl.himpi.dvpp_malloc接口/acl.himpi.dvpp_free接口申请或释放内存。
- 输出内存大小(单位byte)的计算公式:widthStride*heightStride。
- 输出图片的widthStride、heightStride对齐要求:
- widthStride:
- RGB_888:输出图片的宽(width)先向上1对齐、或16对齐、或128对齐,再乘以3。
- RGBA_8888:输出图片的宽(width)先向上1对齐、或16对齐、或128对齐,再乘以4。
- 不确定输出格式时:如果输入图片是RGB或GRAY格式,则widthStride为输出图片的宽(width)先向上128对齐,再乘以3;如果输入图片是RGBA或AGRAY格式,则widthStride为输出图片的宽(width)先向上128对齐,再乘以4。
- heightStride:
- RGB_888/RGBA_8888:heightStride取值范围:[输出图片的高, 输出图片的高向上128对齐]。
- 不确定输出格式时:heightStride为输出图片的高(height)向上16对齐。
如果用户将widthStride、heightStride设置为0,传入对应的接口,PNGD内部在处理时,会默认根据输出图片格式将widthStride向上128对齐、heightStride向上16对齐。
- widthStride:
- 输出图片格式
- PNGD只支持对完整PNG图片进行解码,不支持将一张PNG图片分割成多个数据包后,由PNGD解码。
父主题: PNGD图像处理接口