跳到主要内容

hi_venc_scene_mode

hi_venc_jpeg_attr

说明

定义JPEG编码属性结构体,暂不支持。

定义

typedef enum {
HI_VENC_PIC_RECV_SINGLE = 0,
HI_VENC_PIC_RECV_MULTI,

HI_VENC_PIC_RECV_BUTT
} hi_venc_pic_recv_mode;

typedef struct {
hi_bool dcf_en;
hi_venc_mpf_cfg mpf_cfg;
hi_venc_pic_recv_mode recv_mode;
} hi_venc_jpeg_attr;

父主题: VENC视频/JPEGE图像编码

hi_venc_prores_attr

说明

定义PRORES属性结构体,暂不支持。

定义

typedef enum {
HI_VENC_PRORES_FRAME_RATE_UNKNOWN = 0,
HI_VENC_PRORES_FRAME_RATE_23_976,
HI_VENC_PRORES_FRAME_RATE_24,
HI_VENC_PRORES_FRAME_RATE_25,
HI_VENC_PRORES_FRAME_RATE_29_97,
HI_VENC_PRORES_FRAME_RATE_30,
HI_VENC_PRORES_FRAME_RATE_50,
HI_VENC_PRORES_FRAME_RATE_59_94,
HI_VENC_PRORES_FRAME_RATE_60,
HI_VENC_PRORES_FRAME_RATE_100,
HI_VENC_PRORES_FRAME_RATE_119_88,
HI_VENC_PRORES_FRAME_RATE_120,
HI_VENC_PRORES_FRAME_RATE_BUTT
} hi_venc_prores_frame_rate;

// the aspect ratio of PRORES
typedef enum {
HI_VENC_PRORES_ASPECT_RATIO_UNKNOWN = 0,
HI_VENC_PRORES_ASPECT_RATIO_SQUARE,
HI_VENC_PRORES_ASPECT_RATIO_4_3,
HI_VENC_PRORES_ASPECT_RATIO_16_9,
HI_VENC_PRORES_ASPECT_RATIO_BUTT
} hi_venc_prores_aspect_ratio;

// the attribute of PRORES
typedef struct {
hi_char identifier[HI_VENC_PRORES_MAX_ID_CHAR_NUM];
hi_venc_prores_frame_rate frame_rate_code;
hi_venc_prores_aspect_ratio aspect_ratio;
} hi_venc_prores_attr;

父主题: VENC视频/JPEGE图像编码

hi_venc_scene_mode

说明

定义编码模式场景。

定义

typedef enum {
HI_VENC_SCENE_0 = 0, // 摄像机不运动或周期性连续运动的场景,支持h.264/h.265
HI_VENC_SCENE_1 = 1, // 高码率下运动场景,支持h.265
HI_VENC_SCENE_2 = 2, // 暂不支持
HI_VENC_SCENE_BUTT
}hi_venc_scene_mode;

安防场景配置为HI_VENC_SCENE_0;自动驾驶、直播、游戏、动画、电影配置为HI_VENC_SCENE_1。

父主题: VENC视频/JPEGE图像编码

hi_venc_rc_param

说明

定义编码通道码率控制器的高级参数。

定义

typedef struct {
hi_u32 threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE];
hi_u32 threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE];
hi_u32 threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE];
hi_u32 direction;
hi_u32 row_qp_delta;
hi_s32 first_frame_start_qp;
hi_venc_scene_chg_detect scene_chg_detect;
union {
hi_venc_h264_cbr_param h264_cbr_param;
hi_venc_h264_vbr_param h264_vbr_param;
hi_venc_h264_avbr_param h264_avbr_param;
hi_venc_h264_qvbr_param h264_qvbr_param;
hi_venc_h264_cvbr_param h264_cvbr_param;
hi_venc_h265_cbr_param h265_cbr_param;
hi_venc_h265_vbr_param h265_vbr_param;
hi_venc_h265_avbr_param h265_avbr_param;
hi_venc_h265_qvbr_param h265_qvbr_param;
hi_venc_h265_cvbr_param h265_cvbr_param;
hi_venc_mjpeg_cbr_param mjpeg_cbr_param;
hi_venc_mjpeg_vbr_param mjpeg_vbr_param;
};
}hi_venc_rc_param;

成员

成员名称描述
threshold_iI帧宏块级码率控制的Madi(用于度量当前帧的空域纹理复杂度)门限。 取值范围:[0, 255]。 默认值:[0,0,0,0,3,3,5,5,8,8,8,15,15,20,25,25]。 减方向的数值设置为0,表示关闭当前级;加方向的数值设置为255,表示关闭当前级。
threshold_pP帧宏块级码率控制的Madi门限。 取值范围:[0, 255]。 默认值:[0,0,0,0,3,3,5,5,8,8,8,15,15,20,25,25]。 减方向的数值设置为0,表示关闭当前级;加方向的数值设置为255,表示关闭当前级。
threshold_bB帧宏块级码率控制的Madi门限。 取值范围:[0, 255]。 默认值:[0,0,0,0,3,3,5,5,8,8,8,15,15,20,25,25]。 减方向的数值设置为0,表示关闭当前级;加方向的数值设置为255,表示关闭当前级。
direction在基于纹理宏块级码率控制时,用于控制加减方向。 取值范围:[0, 16]。 默认值:8。 举例,direction=7 表示threshold_i、threshold_p、threshold_b的前7个参数用于 QP减方向;后9个参数用于QP加方向。
row_qp_delta行级码率控制调节幅度是一帧内行级调节的最大范围,其中行级以宏块行为单位。调节幅度越大,允许行级调整的QP范围越大,码率越平稳。对于图像复杂度分布不均匀的场景,行级码率控制调节幅度设置过大会带来图像质量不均匀。 取值范围:[0, 10],设置为0表示关闭基于行的宏块级码率控制。 默认值:1。
first_frame_start_qp设置第一帧的起始Qp值,CBR/VBR/AVBR/QVBR/CVBR模式下,该参数有效。此处第一帧的含义是:通道创建,GOP模式切换,RC模式切换,或分辨率切换后,序列的第一个IDR帧。需要注意如果第一帧编码完成后判定为重编,重编的帧不是第一帧,不受 first_frame_start_qp的约束。 取值范围:[MinIQP, MaxIQP]和-1。MinIQP参数值、MaxIQP参数值在码率控制模式的高级参数结构体内设置。 默认值:-1。如果为-1,则第一帧的起始QP由编码器内部计算,如果为其它合法值则由用户通过该参数设置第一帧的起始QP。 在低码率、少量运动场景下,如果编码效果不好,可以通过降低该参数值来提升图像质量和效果,例如,在“352*288分辨率,帧率25fps,GOP=50”场景下,将first_frame_start_qp设置为32,同时将max_reencode_times参数设置为0(表示不重编码,该参数是以下码率控制模式高级参数之一)。
scene_chg_detect场景检测相关的控制参数,自适应检测当前编码场景是否发生变化,使能后会改善场景切换时的码率波动,VBR/AVBR/QVBR/CVBR 有效。使能场景切换检测时可使能自适应插入IDR帧,在场景切换时编码IDR帧,需要注意关闭重编后检测场景切换会失效。该参数建议与编码场景模式的SCENE_0模式配合使用。
h264_cbr_paramH.264通道CBR(Constant Bit Rate)码率控制模式高级参数。
h264_vbr_paramH.264通道VBR(Variable Bit Rate)码率控制模式高级参数。
h264_avbr_paramH.264通道AVBR(Adaptive Variable Bit Rate)码率控制模式高级参数。
h264_qvbr_paramH.264通道QVBR (Quality Variable Bit Rate)码率控制模式高级参数。
h264_cvbr_paramH.264通道CVBR (Constrained Variable Bit Rate)码率控制模式高级参数。
h265_cbr_paramH.265通道CBR(Constant Bit Rate)码率控制模式高级参数。
h265_vbr_paramH.265通道VBR(Variable Bit Rate)码率控制模式高级参数。
h265_avbr_paramH.265通道AVBR(Adaptive Variable Bit Rate)码率控制模式高级参数。
h265_qvbr_paramH.265通道QVBR (Quality Variable Bit Rate)码率控制模式高级参数。
h265_cvbr_paramH.265通道CVBR (Constrained Variable Bit Rate)码率控制模式高级参数。
mjpeg_cbr_paramMJPEG通道CBR(Constant Bit Rate)码率控制模式高级参数。预留参数,暂不支持。
mjpeg_vbr_paramMJPEG通道VBR(Variable Bit Rate)码率控制模式高级参数。预留参数,暂不支持。

父主题: VENC视频/JPEGE图像编码

hi_venc_h264_cbr_param

说明

定义H264协议编码通道CBR码率控制模式的高级参数。

定义

typedef struct {
hi_u32 max_i_proportion;
hi_u32 min_i_proportion;
hi_u32 max_qp;
hi_u32 min_qp;
hi_u32 max_i_qp;
hi_u32 min_i_qp;
hi_s32 max_reencode_times;
hi_bool qpmap_en;
}hi_venc_h264_cbr_param;

成员

成员名称描述
min_i_proportion最小IP帧比例,预留参数,暂不支持。
max_i_proportion最大IP帧比例。 取值范围:[1, 100]。 该参数默认值为100。
max_qp帧最大QP,用于钳位质量。 取值范围:[0, 51]。 默认值:51。
min_qp帧最小QP,用于钳位码率波动。 取值范围:[0, max_qp]。 默认值:10。
min_i_qpI帧的最小QP。用于控制I帧的最大bits数。 取值范围:[0, max_i_qp]。 默认值:10。
max_i_qpI帧的最大QP。用于控制I帧的最小bits数。 取值范围:[0, 51]。 默认值:51。
max_reencode_times每帧重编码次数。0表示不进行重编码。 取值范围:[0, 3]。 默认值:2。
qpmap_en预留参数,暂不支持。

父主题: VENC视频/JPEGE图像编码

hi_venc_h264_vbr_param

说明

定义H264协议编码通道VBR码率控制模式的高级参数。

定义

typedef struct {
hi_s32 chg_pos;
hi_u32 max_i_proportion;
hi_u32 min_i_proportion;
hi_s32 max_reencode_times;
hi_bool qpmap_en;
hi_u32 max_qp;
hi_u32 min_qp;
hi_u32 max_i_qp;
hi_u32 min_i_qp;
} hi_venc_h264_vbr_param;

成员

max_qp、min_qp用于控制图像的质量范围,max_bit_rate用于钳位码率统计时间内的最大编码码率,chg_pos用于控制开始调整QP的码率基准线。

当编码码率大于max_bit_rate*chg_pos时,图像QP会逐步向max_qp调整,如果图像QP达到max_qp,QP会被钳位到最大值,max_bit_rate的钳位效果失效,编码码率有可能会超出max_bit_rate。

当编码码率小于max_bit_rate*chg_pos时,图像QP会逐步向min_qp调整,如果图像QP达到min_qp,此时编码的码率已经达到最大值,而且图像质量最好。

:::note 说明 max_bit_rate参数在创建VENC通道时设置,是hi_venc_chn_attr.rc_attr结构体内的成员变量。 :::

成员名称描述
chg_posVBR开始调整Qp时的码率相对于最大码率的比例。 取值范围:[50, 100]。 默认值:90。
min_i_proportion预留参数,暂不支持。
max_i_proportion最大IP帧码率的比值。 取值范围:[1,100]。 该参数默认值为100。
max_reencode_times每帧重编码次数。0 表示不进行重编码。 取值范围:[0, 3]。 默认值:2。
qpmap_en预留参数,暂不支持。
max_qpP、B帧的最大QP。取值范围:[0, 51]。 默认值:51。
min_qpP、B帧的最小QP。 取值范围:[0, max_qp]。 默认值:24。
max_i_qpI帧的最大QP。 取值范围:[0, 51]。 默认值:51。
min_i_qpI帧的最小QP。 取值范围:[0, max_i_qp]。 默认值:24。

父主题: VENC视频/JPEGE图像编码

在线提单