hi_venc_h264_qvbr_param
说明
定义H264协议编码通道QVBR码率控制模式的高级参数。
定义
typedef struct { 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_s32 max_bit_percent; hi_s32 min_bit_percent; hi_s32 max_psnr_fluctuate; hi_s32 min_psnr_fluctuate; } hi_venc_h264_qvbr_param;
成员
当实时统计的PSNR小于max_psnr_fluctuate时,适当增加目标码率,最大码率=target_bit_rate* max_bit_percent。
当实时统计的PSNR大于max_psnr_fluctuate时,适当减小目标码率,最小码率=target_bit_rate* min_bit_percent。
根据当前PSNR的不同,目标码率会在最大码率和最小码率间调整,当PSNR值范围超过[min_psnr_fluctuate-4,max_psnr_fluctuate+4]∩[20,40]时,PSNR不再起作用,码率会在最大码率和最小码率间调整。
max_qp,min_qp用于控制图像的质量范围,码率控制以QP钳位为最高优先级,超出min_qp,max_qp范围内码率控制将失效。
码率浮动上下限的优先级高于PSNR的优先级,例如,当码率浮动到上限依然不能满足PSNR要求,则码率不会再继续上调。
target_bit_rate参数在创建VENC通道时设置,是hi_venc_chn_attr.rc_attr结构体内的成员变量。
成员名称 |
描述 |
---|---|
min_i_proportion |
预留参数,暂不支持。 |
max_i_proportion |
最大IP帧码率的比值。 取值范围:[1,100]。 默认值:100。 |
max_reencode_times |
每帧重编码次数。0表示不进行重编码。 取值范围:[0, 3]。 默认值:2。 |
qpmap_en |
预留参数,暂不支持。 |
max_qp |
P、B帧的最大QP。 取值范围:[min_qp, 51]。 默认值:51。 |
min_qp |
P、B帧的最小QP。 取值范围:[0, 51]。 默认值:16。 |
max_i_qp |
I帧的最大QP。 取值范围:[min_i_qp, 51]。 默认值:51。 |
min_i_qp |
I帧的最小QP。 取值范围:[0, 51]。 默认值:16。 |
max_bit_percent |
码率百分比上限。 取值范围:[min_bit_percent, 180]。 默认值:110。 |
min_bit_percent |
码率百分比下限。 取值范围:[30, 180]。 默认值:45。 |
max_psnr_fluctuate |
Psnr上限。 取值范围:[min_psnr_fluctuate, 40]。 默认值:40。 |
min_psnr_fluctuate |
Psnr下限。 取值范围:[18, 40]。 默认值:23。 |