功能及约束说明
功能说明
PNGD(PNG Decoder)功能:实现PNG格式图片的硬件解码。
PNGD在解码图片时,支持按源图片格式解码。在调用PNGD解码接口时,直接将输出图片格式配置为PIXEL_FORMAT_UNKNOWN,输出格式默认按源图片格式输出。
源图片格式解码是指解码前后图片的编码格式保持一致,例如解码前输入图片格式为RGB,解码后输出图片格式为RGB888。
图片格式、宽高对齐、内存约束
实现图片解码功能时,需调用acl.media.dvpp_malloc接口申请Device上的输入、输出内存,调用acl.media.dvpp_free接口释放输入、输出内存,这部分内存的生命周期由用户自行管理。
- 输入内存的大小就是指实际的输入图片所占用的大小。
- 输出内存的大小可调用acl.media.dvpp_png_predict_dec_size接口预估。
输出图片格式的定义请参见acldvppPixelFormat,宽stride、高stride等概念请参见基本概念。
输入图片格式 |
输出图片格式 |
输出图片宽、高对齐要求 |
输出图片宽stride、高stride、内存大小要求 |
---|---|---|---|
RGB |
RGB888 |
无对齐要求 |
宽stride为宽128对齐后再乘以3的值。 高stride为高16对齐后的值。 输出内存的大小可调用acl.media.dvpp_png_predict_dec_size接口预估。 |
GRAY |
RGB888 |
无对齐要求 |
宽stride为宽128对齐后再乘以3的值。 高stride为高16对齐后的值。 输出内存的大小可调用acl.media.dvpp_png_predict_dec_size接口预估。 |
RGBA |
RGB888 |
无对齐要求 |
宽stride为宽128对齐后再乘以3的值。 高stride为高16对齐后的值。 输出内存的大小可调用acl.media.dvpp_png_predict_dec_size接口预估。 |
RGBA8888 8bit |
无对齐要求 |
宽stride为宽128对齐后再乘以4的值。 高stride为高16对齐后的值。 输出内存的大小可调用acl.media.dvpp_png_predict_dec_size接口预估。 |
|
AGRAY |
RGB888 |
无对齐要求 |
宽stride为宽128对齐后再乘以3的值。 高stride为高16对齐后的值。 输出内存的大小可调用acl.media.dvpp_png_predict_dec_size接口预估。 |
RGBA8888 8bit |
无对齐要求 |
宽stride为宽128对齐后再乘以4的值。 高stride为高16对齐后的值。 输出内存的大小可调用acl.media.dvpp_png_predict_dec_size接口预估。 |