跳到主要内容

acl.himpi.pngd_get_image_data

acl.himpi.pngd_get_image_data

c函数原型hi_s32 hi_mpi_pngd_get_image_data(hi_pngd_chn chn, hi_pic_info *png_pic_info, hi_img_stream *stream, hi_s32 milli_sec)
Python函数png_pic_info, stream, ret = acl.himpi.pngd_get_image_data**(chn, milli_sec)**
函数功能解码后,获取解码通道的解码图像及输入Stream。
输入说明chn:解码通道号。 该参数的取值范围为[0, 128),通道总数最多128。 milli_sec:超时时间,单位是毫秒。
- -1:阻塞方式
- 0:非阻塞方式
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。
返回值说明- stream**(hi_img_stream):获取已完成解码的输入码流信息字典。
- png_pic_info
(hi_pic_info)**:获取已经完成解码的图像信息字典。解码后的数据存放在Device内存中。
- ret:int,
- 返回0表示获取数据成功。
- 返回非0表示失败,参见PNGD图像解码返回码。HI_ERR_PNGD_BUF_EMPTY表示无数据,其他错误码表示解码异常
约束说明- 此接口通过改变milli_sec值支持阻塞方式、非阻塞方式、超时方式获取解码图像。
- 获取解码图像时必须保证通道已经被创建,否则直接返回通道未创建的错误码HI_ERR_PNGD_UNEXIST。如果在获取图像的过程中销毁通道,就会立刻返回错误码HI_ERR_PNGD_UNEXIST。
- 以非阻塞方式获取解码图像,如果缓冲区内无图像,会立刻返回错误码HI_ERR_PNGD_BUF_EMPTY。
- 以超时方式获取解码图像,到达设定的超时时间还不能获取到图像则会返回错误码HI_ERR_PNGD_BUF_EMPTY。
- 向PNGD获取解码结果,输入buffer和输出buffer一起获取。
- PNGD图片解码时,关于输入、输出图片的要求请参见功能及约束说明

父主题: PNGD图像处理接口

acl.himpi.png_get_image_info

c函数原型hi_s32 hi_mpi_png_get_image_info(const hi_img_stream *png_stream, hi_img_info *img_info)
Python函数img_info, ret = acl.himpi.png_get_image_info(png_stream)
函数功能根据输入码流,获取png源图片的宽、高、源格式及源格式解码时输出图片的宽stride、高stride、以及所需的内存大小等信息。
输入说明png_stream**(hi_img_stream)**:输入码流信息。
返回值说明img_info(hi_img_info):图片信息字典。 ret:int,错误码。
- 返回0表示成功。
- 返回非0表示失败,参见PNGD图像解码返回码
约束说明提供给用户来计算解码后输出图片占用的内存大小。当前仅支持解析png图片。通过本接口获取的widthStride向上128对齐、heightStride向上16对齐。
参考资源

父主题: PNGD图像处理接口

总体说明

本章节描述DVPP各个模块所用到的字典、全局变量等,预留的字段需要手动设置为0,避免后续版本的兼容性问题。

命名规则:

  • 各模块均需要的模块放在公共部分,各模块特性部分尽量放在各模块内,并且以模块名开头。
  • 例如HI_COMPRESS_MODE_BUTT,表示保留值。

父主题: 数据类型

基本数据类型说明

HI_FALSE = 0
HI_TRUE = 1

父主题: 公共

hi_pixel_format

说明

DVPP所支持的各种图片格式。

定义

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// YUV422 Package YUYV 8bit
HI_PIXEL_FORMAT_UYVY_PACKED_422 = 8// YUV422 Package UYVY 8bit
HI_PIXEL_FORMAT_YVYU_PACKED_422 = 9// YUV422 Package YVYU 8bit
HI_PIXEL_FORMAT_VYUY_PACKED_422 = 10// YUV422 Package VYUY 8bit
HI_PIXEL_FORMAT_YUV_PACKED_444 = 11// YUV444 Package 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_SEMI_PLANNER_420_10BIT = 18 // YUV420SP 10bit
HI_PIXEL_FORMAT_YVU_SEMI_PLANNER_420_10BIT = 19 // YVU420sp 10bit
HI_PIXEL_FORMAT_YVU_PLANAR_420 = 20// YVU420P 8bit
HI_PIXEL_FORMAT_YVU_PLANAR_422 = 21// YVU422P 8bit
HI_PIXEL_FORMAT_YVU_PLANAR_444 = 22// YVU444P 8bit
HI_PIXEL_FORMAT_RGB_444 = 23// RGB444 R:4bit G:4bit B:4bit,当前不支持该格式
HI_PIXEL_FORMAT_BGR_444 = 24// BGR444 R:4bit G:4bit B:4bit,当前不支持该格式
HI_PIXEL_FORMAT_ARGB_4444 = 25// ARGB4444 A:4bit R:4bit G:4bit B:4bit,当前不支持该格式
HI_PIXEL_FORMAT_ABGR_4444 = 26// ABGR4444 A:4bit B:4bit G:4bit R:4bit,当前不支持该格式
HI_PIXEL_FORMAT_RGBA_4444 = 27// RGBA4444 R:4bit G:4bit B:4bit A:4bit,当前不支持该格式
HI_PIXEL_FORMAT_BGRA_4444 = 28// BGRA4444 B:4bit G:4bit R:4bit A:4bit,当前不支持该格式
HI_PIXEL_FORMAT_RGB_555 = 29// RGB555 R:5bit G:5bit B:5bit,当前不支持该格式
HI_PIXEL_FORMAT_BGR_555 = 30// BGR555 B:5bit G:5bit R:5bit,当前不支持该格式
HI_PIXEL_FORMAT_RGB_565 = 31// RGB565 R:5bit G:6bit B:5bit,当前不支持该格式
HI_PIXEL_FORMAT_BGR_565 = 32// BGR565 B:5bit G:6bit R:5bit,当前不支持该格式
HI_PIXEL_FORMAT_ARGB_1555 = 33// ARGB1555 A:1bit R:5bit G:6bit B:5bit,当前不支持该格式
HI_PIXEL_FORMAT_ABGR_1555 = 34// ABGR1555 A:1bit B:5bit G:6bit R:5bit,当前不支持该格式
HI_PIXEL_FORMAT_RGBA_1555 = 35// RGBA1555 A:1bit B:5bit G:6bit R:5bit,当前不支持该格式
HI_PIXEL_FORMAT_BGRA_1555 = 36// BGRA1555 A:1bit B:5bit G:6bit R:5bit,当前不支持该格式
HI_PIXEL_FORMAT_ARGB_8565 = 37// ARGB8565 A:8bit R:5bit G:6bit B:5bit,当前不支持该格式
HI_PIXEL_FORMAT_ABGR_8565 = 38// ABGR8565 A:8bit B:5bit G:6bit R:5bit,当前不支持该格式
HI_PIXEL_FORMAT_RGBA_8565 = 39// RGBA8565 A:8bit R:5bit G:6bit B:5bit,当前不支持该格式
HI_PIXEL_FORMAT_BGRA_8565 = 40// BGRA8565 A:8bit B:5bit G:6bit R:5bit,当前不支持该格式
HI_PIXEL_FORMAT_ARGB_CLUT2 = 41// ARGB Color Lookup Table 2bit
HI_PIXEL_FORMAT_ARGB_CLUT4 = 42// ARGB Color Lookup Table 4bit

HI_PIXEL_FORMAT_RGB_BAYER_8BPP = 50
HI_PIXEL_FORMAT_RGB_BAYER_10BPP = 51
HI_PIXEL_FORMAT_RGB_BAYER_12BPP = 52
HI_PIXEL_FORMAT_RGB_BAYER_14BPP = 53
HI_PIXEL_FORMAT_RGB_BAYER_16BPP = 54// RGB Bayer 16bit,Bayer图像,当前不支持该格式
HI_PIXEL_FORMAT_YUV_PLANAR_420 = 55// YUV420P 8bit
HI_PIXEL_FORMAT_YUV_PLANAR_422 = 56// YUV422P 8bit
HI_PIXEL_FORMAT_YUV_PLANAR_444 = 57// YUV444P 8bit
HI_PIXEL_FORMAT_YVU_PACKED_444 = 58// YVU444 Package 8bit
HI_PIXEL_FORMAT_XYUV_PACKED_444 = 59// AYUV444 Package 8bit
HI_PIXEL_FORMAT_XYVU_PACKED_444 = 60// AYVU444 Package 8bit
HI_PIXEL_FORMAT_YUV_SEMIPLANAR_411 = 61// YUV411SP 8bit
HI_PIXEL_FORMAT_YVU_SEMIPLANAR_411 = 62// YVU411SP 8bit
HI_PIXEL_FORMAT_YUV_PLANAR_411 = 63// YUV411P 8bit
HI_PIXEL_FORMAT_YVU_PLANAR_411 = 64// YVU411P 8bit
HI_PIXEL_FORMAT_YUV_PLANAR_440 = 65// YUV440P 8bit
HI_PIXEL_FORMAT_YVU_PLANAR_440 = 66// YVU440P 8bit

HI_PIXEL_FORMAT_RGB_888_PLANAR = 69// RGB888 Planar
HI_PIXEL_FORMAT_BGR_888_PLANAR = 70// BGR888 Planar
HI_PIXEL_FORMAT_HSV_888_PACKAGE = 71// HSV Package,HSV图像package格式,当前不支持该格式
HI_PIXEL_FORMAT_HSV_888_PLANAR = 72// HSV Planar,HSV图像Planar格式,当前不支持该格式
HI_PIXEL_FORMAT_LAB_888_PACKAGE = 73// LAB Package,LAB图像package格式,当前不支持该格式
HI_PIXEL_FORMAT_LAB_888_PLANAR = 74// LAB Planar,LAB图像Planar格式,当前不支持该格式
HI_PIXEL_FORMAT_S8C1 = 75// Signed 8bit for 1pixel 1Channel,每个像素用1个8bit有符号数据表示的单通道图像,当前不支持该格式
HI_PIXEL_FORMAT_S8C2_PACKAGE = 76// Signed 8bit for 1pixel 2Channel Package,每个像素用2个8bit有符号数表示的双通道图像Package格式,当前不支持该格式
HI_PIXEL_FORMAT_S8C2_PLANAR = 77// Signed 8bit for 1pixel 2Channel Planar,每个像素用2个8bit有符号数据表的双通道图像Planar格式,当前不支持该格式
HI_PIXEL_FORMAT_S16C1 = 78// Signed 16bit 1pixel 1Channel,每个像素用1个16bit有符号数据表示的单通道图像,当前不支持该格式
HI_PIXEL_FORMAT_U8C1 = 79// Unsigned 8bit 1pixel 1Channel,每个像素用1个8bit无符号数据表示的单通道图像,当前不支持该格式
HI_PIXEL_FORMAT_U16C1 = 80// Unsigned 16bit 1pixel 1Channel,每个像素用1个16bit无符号数据表示的单通道图像,当前不支持该格式
HI_PIXEL_FORMAT_S32C1 = 81// Signed 32bit 1pixel 1Channel,每个像素用1个32bit有符号数据表示的单通道图像,当前不支持该格式
HI_PIXEL_FORMAT_U32C1 = 82// Unsigned 32bit 1pixel 1Channel,每个像素用1个32bit无符号数据表示的单通道图像,当前不支持该格式
HI_PIXEL_FORMAT_U64C1 = 83// Unsigned 64bit 1pixel 1Channel,每个像素用1个64bit无符号数据表示的单通道图像,当前不支持该格式
HI_PIXEL_FORMAT_S64C1 = 84// Signed 64bit 1pixel 1Channel,每个像素用1个64bit有符号数据表示的单通道图像,当前不支持该格式

HI_PIXEL_FORMAT_RGB_888_INT8 = 110// RGB888 Package 每个像素的单分量占用1个8bit有符号数
HI_PIXEL_FORMAT_BGR_888_INT8 = 111// BGR888 Package 每个像素的单分量占用1个8bit有符号数
HI_PIXEL_FORMAT_RGB_888_INT16 = 112// RGB888 Package 每个像素的单分量占用1个16bit有符号数
HI_PIXEL_FORMAT_BGR_888_INT16 = 113// BGR888 Package 每个像素的单分量占用1个16bit有符号数
HI_PIXEL_FORMAT_RGB_888_INT32 = 114// RGB888 Package 每个像素的单分量占用1个32bit有符号数
HI_PIXEL_FORMAT_BGR_888_INT32 = 115// BGR888 Package 每个像素的单分量占用1个32bit有符号数
HI_PIXEL_FORMAT_RGB_888_UINT16 = 116// RGB888 Package 每个像素的单分量占用1个16bit无符号数
HI_PIXEL_FORMAT_BGR_888_UINT16 = 117// BGR888 Package 每个像素的单分量占用1个16bit无符号数
HI_PIXEL_FORMAT_RGB_888_UINT32 = 118// RGB888 Package 每个像素的单分量占用1个32bit无符号数
HI_PIXEL_FORMAT_BGR_888_UINT32 = 119// BGR888 Package 每个像素的单分量占用1个32bit无符号数
HI_PIXEL_FORMAT_RGB_888_PLANAR_INT8 = 120// RGB888 Planar 每个像素的单分量占用1个8bit有符号数
HI_PIXEL_FORMAT_BGR_888_PLANAR_INT8 = 121// BGR888 Planar 每个像素的单分量占用1个8bit有符号数
HI_PIXEL_FORMAT_RGB_888_PLANAR_INT16 = 122// RGB888 Planar 每个像素的单分量占用1个16bit有符号数
HI_PIXEL_FORMAT_BGR_888_PLANAR_INT16 = 123// BGR888 Planar 每个像素的单分量占用1个16bit有符号数
HI_PIXEL_FORMAT_RGB_888_PLANAR_INT32 = 124// RGB888 Planar 每个像素的单分量占用1个32bit有符号数
HI_PIXEL_FORMAT_BGR_888_PLANAR_INT32 = 125// BGR888 Planar 每个像素的单分量占用1个32bit有符号数
HI_PIXEL_FORMAT_RGB_888_PLANAR_UINT16 = 126// RGB888 Planar 每个像素的单分量占用1个16bit无符号数
HI_PIXEL_FORMAT_BGR_888_PLANAR_UINT16 = 127// BGR888 Planar 每个像素的单分量占用1个16bit无符号数
HI_PIXEL_FORMAT_RGB_888_PLANAR_UINT32 = 128// RGB888 Planar 每个像素的单分量占用1个32bit无符号数
HI_PIXEL_FORMAT_BGR_888_PLANAR_UINT32 = 129// BGR888 Planar 每个像素的单分量占用1个32bit无符号数
HI_PIXEL_FORMAT_YUV400_UINT16 = 130// YUV400 Package 每个像素的单分量占用1个16bit无符号数
HI_PIXEL_FORMAT_YUV400_UINT32 = 131// YUV400 Package 每个像素的单分量占用1个32bit无符号数
HI_PIXEL_FORMAT_YUV400_UINT64 = 132// YUV400 Package 每个像素的单分量占用1个64bit无符号数
HI_PIXEL_FORMAT_YUV400_INT8 = 133// YUV400 Package 每个像素的单分量占用1个8bit有符号数
HI_PIXEL_FORMAT_YUV400_INT16 = 134// YUV400 Package 每个像素的单分量占用1个16bit有符号数
HI_PIXEL_FORMAT_YUV400_INT32 = 135// YUV400 Package 每个像素的单分量占用1个32bit有符号数
HI_PIXEL_FORMAT_YUV400_INT64 = 136// YUV400 Package 每个像素的单分量占用1个64bit有符号数
HI_PIXEL_FORMAT_YUV400_FP16 = 137// YUV400 Package 每个像素用1个float16数据表示
HI_PIXEL_FORMAT_YUV400_FP32 = 138// YUV400 Package 每个像素用1个float32数据表示
HI_PIXEL_FORMAT_YUV400_FP64 = 139// YUV400 Package 每个像素用1个float64数据表示
HI_PIXEL_FORMAT_YUV400_BF16 = 140// YUV400 Package 每个像素用1个BFloat16数据表示,当前不支持该格式

HI_PIXEL_FORMAT_YUV_SEMIPLANAR_440 = 1000// YUV440SP 8bit
HI_PIXEL_FORMAT_YVU_SEMIPLANAR_440 = 1001// YVU440SP 8bit
HI_PIXEL_FORMAT_FLOAT32 = 1002// Float 32bit for 1pixel,每个像素用1个float32数据表示,当前不支持该格式
HI_PIXEL_FORMAT_BUTT = 1003

HI_PIXEL_FORMAT_RGB_888_PLANAR_FP16 = 1004// RGB888 Planar 每个像素用1个float16数据表示
HI_PIXEL_FORMAT_BGR_888_PLANAR_FP16 = 1005// BGR888 Planar 每个像素用1个float16数据表示
HI_PIXEL_FORMAT_RGB_888_PLANAR_FP32 = 1006// RGB888 Planar 每个像素用1个float32数据表示
HI_PIXEL_FORMAT_BGR_888_PLANAR_FP32 = 1007// BGR888 Planar 每个像素用1个float32数据表示
HI_PIXEL_FORMAT_RGB_888_PLANAR_BF16 = 1008// RGB888 Planar 每个像素用1个BFloat16数据表示,当前不支持该格式
HI_PIXEL_FORMAT_BGR_888_PLANAR_BF16 = 1009// BGR888 Planar 每个像素用1个BFloat16数据表示,当前不支持该格式
HI_PIXEL_FORMAT_RGB_888_FP16 = 1010// RGB888 Package,每个像素用1个float16数据表示
HI_PIXEL_FORMAT_BGR_888_FP16 = 1011// BGR888 Package,每个像素用1个float16数据表示
HI_PIXEL_FORMAT_RGB_888_FP32 = 1012// RGB888 Package,每个像素用1个float32数据表示
HI_PIXEL_FORMAT_BGR_888_FP32 = 1013// BGR888 Package,每个像素用1个float32数据表示
HI_PIXEL_FORMAT_RGB_888_BF16 = 1014// RGB888 Package 每个像素用1个BFloat16数据表示,当前不支持该格式
HI_PIXEL_FORMAT_BGR_888_BF16 = 1015// BGR888 Package 每个像素用1个BFloat16数据表示,当前不支持该格式

HI_PIXEL_FORMAT_UNKNOWN = 10000

参考信息

下文以HI_PIXEL_FORMAT_S8C1、HI_PIXEL_FORMAT_S8C2_PACKAGE、HI_PIXEL_FORMAT_S8C2_PLANAR为例说明排布格式,供参考。

图1 HI_PIXEL_FORMAT_S8C1

图2 HI_PIXEL_FORMAT_S8C2_PACKAGE

图3 HI_PIXEL_FORMAT_S8C2_PLANAR

父主题: 公共

在线提单