跳到主要内容

hi_vdec_frame_type

hi_vdec_chn

说明

描述解码通道。

定义

typedef hi_s32 hi_vdec_chn;

父主题: VDEC视频/JPEGD图像解码

hi_vdec_send_mode

说明

定义码流发送方式。

定义

typedef enum {
HI_VDEC_SEND_MODE_STREAM = 0,
HI_VDEC_SEND_MODE_FRAME ,
HI_VDEC_SEND_MODE_COMPAT,
HI_VDEC_SEND_MODE_BUTT
}hi_vdec_send_mode;

成员

成员名称描述
HI_VDEC_SEND_MODE_STREAM流模式,当前不支持。
HI_VDEC_SEND_MODE_FRAME帧模式,当前仅支持按帧发送。
HI_VDEC_SEND_MODE_COMPAT兼容模式,当前不支持。
HI_VDEC_SEND_MODE_BUTT保留值。

注意事项

  1. 仅支持HI_VDEC_SEND_MODE_FRAME;
  2. 当一帧码流的最后一包没有把end_of_frame为HI_TRUE时,还可以再发送一个end_of_frame为HI_TRUE的空包(注意带上当前帧的PTS(Presentation Time Stamp))给解码器内部标识当前帧码流已发送完毕。
  3. 不支持一帧图像分多包进行发送的模式;

父主题: VDEC视频/JPEGD图像解码

hi_vdec_frame_type

说明

定义码流发送方式。

定义

typedef enum {
HI_VDEC_FRAME_TYPE_I = 0,
HI_VDEC_FRAME_TYPE_P = 1,
HI_VDEC_FRAME_TYPE_B = 2,
HI_VDEC_FRAME_TYPE_BUTT
}hi_vdec_frame_type;

成员

成员名称描述
HI_VDEC_FRAME_TYPE_IIDR帧。
HI_VDEC_FRAME_TYPE_PP帧。
HI_VDEC_FRAME_TYPE_BB帧。
HI_VDEC_FRAME_TYPE_BUTT保留值。

父主题: VDEC视频/JPEGD图像解码

hi_quick_mark_mode

说明

定义快速释放参考帧模式枚举。

定义

typedef enum {
HI_QUICK_MARK_ADAPT = 0,
HI_QUICK_MARK_FORCE,
HI_QUICK_MARK_NONE,
HI_QUICK_MARK_BUTT
}hi_quick_mark_mode;

成员

成员名称描述
HI_QUICK_MARK_ADAPT自适应模式。预留参数,暂未支持。
HI_QUICK_MARK_FORCE强制模式。预留参数,暂未支持。
HI_QUICK_MARK_NONE普通模式。预留参数,暂未支持。
HI_QUICK_MARK_BUTT保留值。

父主题: VDEC视频/JPEGD图像解码

hi_vdec_pic_info

说明

定义视频原始图像帧结构。

定义

typedef struct {
hi_u32 width;
hi_u32 height;
hi_u32 width_stride;
hi_u32 height_stride;
hi_pixel_format pixel_format;
hi_u64 vir_addr;
hi_u32 buffer_size;
hi_s16 offset_top;
hi_s16 offset_bottom;
hi_s16 offset_left;
hi_s16 offset_right;
}hi_vdec_pic_info;

成员

成员名称描述
width图像宽度,视频解码时使用该参数。
- Atlas 200/500 A2推理产品,视频解码场景下,支持对输出图片进行缩放,缩放算法默认为业界通用的Bilinear算法(与OpenCV算法的计算过程类似),当输入码流宽度小于或等于4096时,解码图像经过缩放后的输出宽度范围为[10, 8192];当输入码流宽度大于4096时,解码图像经过缩放后的输出宽度范围为[128, 8192]。 以下场景,VDEC不对输出图片进行缩放:在hi_vdec_pic_info结构体内,将width参数值和height参数值同时设置为0。
height图像高度,视频解码时使用该参数。
- Atlas 200/500 A2推理产品,视频解码场景下,支持对输出图片进行缩放,缩放算法默认为业界通用的Bilinear算法(与OpenCV算法的计算过程类似),当输入码流宽度小于或等于4096时,解码图像经过缩放后的输出高度范围为[6, 8192];当输入码流宽度大于4096时,解码图像经过缩放后的输出高度范围为[128, 8192]。
width_stride图像宽度步长,视频解码时,YUV420 semi-planar/YVU420 semi-planar输出时,该值为宽向上16对齐;RGB888/BGR888输出时,该值为宽向上16对齐,再乘3。 取值范围:[32, 16384]。
height_stride图像高度步长,视频解码时,YUV420 semi-planar/YVU420 semi-planar输出时,该值为高向上2对齐;RGB888/BGR888输出时,该值等于高。 取值范围:[6, 16384]。
pixel_format图像像素格式。图像或视频解码时使用该参数。VDEC视频解码输出图片格式参见VDEC功能及约束说明,JPEGD图片解码输出图片格式参见JPEGD功能及约束说明
vir_addr解码输出数据在内存中的起始地址。 隔行码流场景下,隔行码流每帧发送两场,带两块输出内存;解码时其中一块内存无图像输出,属于正常现象,用户需及时释放内存;隔行码流的解码输出数据都在奇数场对应的输出buffer中。
buffer_size存放解码图像的缓冲区大小。
offset_top解码区域相对原图的顶部偏移,JPEG图片解码场景下按指定区域解码时配置,如图1所示,若无需按指定区域解码,需将此值初始化为0。
offset_bottom解码区域相对原图的底部偏移,JPEG图片解码场景下按指定区域解码时配置,如图1所示,若无需按指定区域解码,需将此值初始化为0。
offset_left解码区域相对原图的左侧偏移,JPEG图片解码场景下按指定区域解码时配置,如图1所示,若无需按指定区域解码,需将此值初始化为0。
offset_right解码区域相对原图的右侧偏移,JPEG图片解码场景下按指定区域解码时配置,如图1所示,若无需按指定区域解码,需将此值初始化为0。

注意事项

10bit的数据经过VPC处理(图像处理)之后均会变成8bit。

参考信息

JPEG图片解码场景下,按区域解码的功能示意图如下。

使用区域解码存在以下约束:

  • 对于jpeg图片解码进行区域解码,不支持旋转、软件解码图片;
  • 区域解码的范围不能超出原图大小,并且最小支持32*32,最大支持16384*16384;
  • 使用以下图片格式时,对各偏移值的约束如下:
    • HI_PIXEL_FORMAT_YUV_SEMIPLANAR_420或HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420格式:offset_top和offset_left必须为偶数,(height - offset_bottom)和(width - offset_right)必须为偶数。
    • HI_PIXEL_FORMAT_YUV_SEMIPLANAR_422或HI_PIXEL_FORMAT_YVU_SEMIPLANAR_422格式:offset_left必须为偶数,(width - offset_right)必须为偶数。
    • HI_PIXEL_FORMAT_YUV_SEMIPLANAR_440或HI_PIXEL_FORMAT_YVU_SEMIPLANAR_440:offset_top必须为偶数,(height - offset_bottom)必须为偶数。

图1 按区域解码功能示意图

父主题: VDEC视频/JPEGD图像解码

在线提单