hi_venc_h264_cbr_param
hi_crop_info
说明
预留字典,暂不支持。
定义
hi_crop_info= {"enable": enable, # RW; Range:[0, 1]; Crop region enable
"rect": hi_rect} # RW; Crop region, note: s32X must be multi of 16
父主题: 视频/图像编码
hi_venc_scene_mode
说明
定义编码模式场景。
定义
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 = 3
安防场景配置为HI_VENC_SCENE_0;自动驾驶、直播、游戏、动画、电影配置为HI_VENC_SCENE_1。
父主题: 视频/图像编码
hi_venc_rc_param
说明
定义编码通道码率控制器的高级参数。
定义
hi_venc_rc_param = {"threshold_i": threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_p": threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_b": threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"direction": direction,
"row_qp_delta": row_qp_delta,
"first_frame_start_qp": first_frame_start_qp,
"scene_chg_detect": scene_chg_detect,
"h264_cbr_param": hi_venc_h264_cbr_param }
hi_venc_rc_param = {"threshold_i": threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_p": threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_b": threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"direction": direction,
"row_qp_delta": row_qp_delta,
"first_frame_start_qp": first_frame_start_qp,
"scene_chg_detect": scene_chg_detect,
"h264_vbr_param": hi_venc_h264_vbr_param}
hi_venc_rc_param = {"threshold_i": threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_p": threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_b": threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"direction": direction,
"row_qp_delta": row_qp_delta,
"first_frame_start_qp": first_frame_start_qp,
"scene_chg_detect": scene_chg_detect,
"h264_avbr_param": hi_venc_h264_avbr_param}
hi_venc_rc_param = {"threshold_i": threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_p": threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_b": threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"direction": direction,
"row_qp_delta": row_qp_delta,
"first_frame_start_qp": first_frame_start_qp,
"scene_chg_detect": scene_chg_detect,
"h264_qvbr_param": hi_venc_h264_qvbr_param}
hi_venc_rc_param = {"threshold_i": threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_p": threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_b": threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"direction": direction,
"row_qp_delta": row_qp_delta,
"first_frame_start_qp": first_frame_start_qp,
"scene_chg_detect": scene_chg_detect,
"h264_cvbr_param": hi_venc_h264_cvbr_param}
hi_venc_rc_param = {"threshold_i": threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_p": threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_b": threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"direction": direction,
"row_qp_delta": row_qp_delta,
"first_frame_start_qp": first_frame_start_qp,
"scene_chg_detect": scene_chg_detect,
"h265_cbr_param": hi_venc_h265_cbr_param}
hi_venc_rc_param = {"threshold_i": threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_p": threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_b": threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"direction": direction,
"row_qp_delta": row_qp_delta,
"first_frame_start_qp": first_frame_start_qp,
"scene_chg_detect": scene_chg_detect,
"h265_vbr_param": hi_venc_h265_vbr_param}
hi_venc_rc_param = {"threshold_i": threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_p": threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_b": threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"direction": direction,
"row_qp_delta": row_qp_delta,
"first_frame_start_qp": first_frame_start_qp,
"scene_chg_detect": scene_chg_detect,
"h265_avbr_param": hi_venc_h265_avbr_param}
hi_venc_rc_param = {"threshold_i": threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_p": threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_b": threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"direction": direction,
"row_qp_delta": row_qp_delta,
"first_frame_start_qp": first_frame_start_qp,
"scene_chg_detect": scene_chg_detect,
"h265_qvbr_param": hi_venc_h265_qvbr_param}
hi_venc_rc_param = {"threshold_i": threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_p": threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_b": threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"direction": direction,
"row_qp_delta": row_qp_delta,
"first_frame_start_qp": first_frame_start_qp,
"scene_chg_detect": scene_chg_detect,
"h265_cvbr_param": hi_venc_h265_cvbr_param}
hi_venc_rc_param = {"threshold_i": threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_p": threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_b": threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"direction": direction,
"row_qp_delta": row_qp_delta,
"first_frame_start_qp": first_frame_start_qp,
"scene_chg_detect": scene_chg_detect,
"mjpeg_cbr_param": hi_venc_mjpeg_cbr_param}
hi_venc_rc_param = {"threshold_i": threshold_i[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_p": threshold_p[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"threshold_b": threshold_b[HI_VENC_TEXTURE_THRESHOLD_SIZE],
"direction": direction,
"row_qp_delta": row_qp_delta,
"first_frame_start_qp": first_frame_start_qp,
"scene_chg_detect": scene_chg_detect,
"mjpeg_vbr_param": hi_venc_mjpeg_vbr_param}
成员
| 成员名称 | 描述 |
|---|---|
| threshold_i | 列表, I帧宏块级码率控制的Madi(用于度量当前帧的空域纹理复杂度)门限。 取值范围:[0, 255]。 默认值:[0,0,0,0,3,3,5,5,8,8,8,15,15,20,25,25]。 减方向的数值设置为0,表示关闭当前级;加方向的数值设置为255,表示关闭当前级。 |
| threshold_p | 列表, P帧宏块级码率控制的Madi门限。 取值范围:[0, 255]。 默认值:[0,0,0,0,3,3,5,5,8,8,8,15,15,20,25,25]。 减方向的数值设置为0,表示关闭当前级;加方向的数值设置为255,表示关闭当前级。 |
| threshold_b | 列表, B帧宏块级码率控制的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_param | 字典,H.264通道CBR(Constant Bit Rate)码率控制模式高级参数。 |
| h264_vbr_param | 字典,H.264通道VBR(Variable Bit Rate)码率控制模式高级参数。 |
| h264_avbr_param | 字典,H.264通道AVBR(Adaptive Variable Bit Rate)码率控制模式高级参数。 |
| h264_qvbr_param | 字典,H.264通道QVBR (Quality Variable Bit Rate)码率控制模式高级参数。 |
| h264_cvbr_param | 字典,H.264通道CVBR (Constrained Variable Bit Rate)码率控制模式高级参数。 |
| h265_cbr_param | 字典,H.265通道CBR(Constant Bit Rate)码率控制模式高级参数。 |
| h265_vbr_param | 字典,H.265通道VBR(Variable Bit Rate)码率控制模式高级参数。 |
| h265_avbr_param | 字典,H.265通道AVBR(Adaptive Variable Bit Rate)码率控制模式高级参数。 |
| h265_qvbr_param | 字典,H.265通道QVBR (Quality Variable Bit Rate)码率控制模式高级参数。 |
| h265_cvbr_param | 字典,H.265通道CVBR (Constrained Variable Bit Rate)码率控制模式高级参数。 |
| mjpeg_cbr_param | 字典,MJPEG通道CBR(Constant Bit Rate)码率控制模式高级参数。预留参数,暂不支持。 |
| mjpeg_vbr_param | 字典,MJPEG通道VBR(Variable Bit Rate)码率控制模式高级参数。预留参数,暂不支持。 |
父主题: 视频/图像编码
hi_venc_h264_cbr_param
说明
定义H264协议编码通道CBR码率控制模式的高级参数。
定义
hi_venc_h264_cbr_param = {"max_i_proportion": max_i_proportion,
"min_i_proportion": min_i_proportion,
"max_qp": max_qp,
"min_qp": min_qp,
"max_i_qp": max_i_qp,
"min_i_qp": min_i_qp,
"max_reencode_times": max_reencode_times,
"qpmap_en": qpmap_en}
成员
| 成员名称 | 描述 |
|---|---|
| min_i_proportion | 整型,最小IP帧比例,预留参数,暂不支持。 |
| max_i_proportion | 最大IP帧比例。 取值范围:[1, 100]。 该参数默认值为100。 |
| max_qp | 整型,帧最大QP,用于钳位质量。 取值范围:[0, 51]。 默认值:51。 |
| min_qp | 整型,帧最小QP,用于钳位码率波动。 取值范围:[0, max_qp]。 默认值:10。 |
| max_reencode_times | 整型,每帧重编码次数。0表示不进行重编码。 取值范围:[0, 3]。 默认值:2。 |
| min_i_qp | 整型,I帧的最小QP。用于控制I帧的最大bits数。 取值范围:[0, max_i_qp]。 默认值:10。 |
| max_i_qp | 整型,I帧的最大QP。用于控制I帧的最小bits数。 取值范围:[0, 51]。 默认值:51。 |
| qpmap_en | 整型,预留参数,暂不支持。 |
父主题: 视频/图像编码
hi_venc_h264_vbr_param
说明
定义H264协议编码通道VBR码率控制模式的高级参数。
定义
hi_venc_h264_vbr_param = {"chg_pos": chg_pos,
"max_i_proportion": max_i_proportion,
"min_i_proportion": min_i_proportion,
"max_reencode_times": max_reencode_times,
"qpmap_en": qpmap_en,
"max_qp": max_qp,
"min_qp": min_qp,
"max_i_qp": max_i_qp,
"min_i_qp": min_i_qp}
成员
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_pos | 整型,VBR开始调整Qp时的码率相对于最大码率的比例。 取值范围:[50, 100]。 默认值:90。 |
| min_i_proportion | 整型,预留参数,暂不支持。 |
| max_i_proportion | 最大IP帧码率的比值。 取值范围:[1,100]。 该参数默认值为100。 |
| max_reencode_times | 整型,每帧重编码次数。0 表示不进行重编码。 取值范围:[0, 3]。 默认值:2。 |
| qpmap_en | 整型,预留参数,暂不支持。 |
| max_qp | 整型,P、B帧的最大QP。 取值范围:[0, 51]。 默认值:51。 |
| min_qp | 整型,P、B帧的最小QP。 取值范围:[0, max_qp]。 默认值:24。 |
| max_i_qp | 整型,I帧的最大QP。 取值范围:[0, 51]。 默认值:51。 |
| min_i_qp | 整型,I帧的最小QP。 取值范围:[0, max_i_qp]。 默认值:24。 |
父主题: 视频/图像编码
hi_venc_h264_avbr_param
说明
定义H264协议编码通道AVBR码率控制模式的高级参数。
定义
hi_venc_h264_avbr_param = {"chg_pos": chg_pos,
"max_i_proportion": max_i_proportion,
"min_i_proportion": min_i_proportion,
"max_reencode_times": max_reencode_times,
"qpmap_en": qpmap_en,
"min_still_percent": min_still_percent,
"max_still_qp": max_still_qp,
"min_still_psnr": min_still_psnr,
"max_qp": max_qp,
"min_qp": min_qp,
"max_i_qp": max_i_qp,
"min_i_qp": min_i_qp,
"min_qp_delta": min_qp_delta,
"motion_sensitivity": motion_sensitivity,
"save_bitrate_en": save_bitrate_en}
成员
max_bit_rate表示运动场景下的最大码率,max_bit_rate*chg_pos*min_still_percent 表示静止情况下的最小码率。
根据运动程度的不同,目标码率会在最大码率和最小码率间调整。max_qp,min_qp用于控制图像的质量范围,码率控制以QP钳位为最高优先级,超出min_qp,max_qp范围内码率控制将失效。
:::note 说明 max_bit_rate参数在创建VENC通道时设置,是hi_venc_chn_attr.rc_attr内的成员变量。 :::
| 成员名称 | 描述 |
|---|---|
| chg_pos | 整型,AVBR开始调整Qp时的码率相对于最大码率的比例。 取值范围:[50, 100]。 默认值:65。 |
| min_i_proportion | 整型,预留参数,暂不支持。 |
| max_i_proportion | 整型,最大IP帧码率的比值。 取值范围:[1,100]。 默认值:100。 |
| max_reencode_times | 整型,每帧重编码次数。0 表示不进行重编码。 取值范围:[0, 3]。 默认值:2。 |
| qpmap_en | 整型,预留参数,暂不支持。 |
| min_still_percent | 整型,静止状态下目标码率的最小百分比。此变量设置为100,AVBR将不会在判别为静止时主动调低目标码率。 取值范围:[5, 100]。 默认值:25。 |
| max_still_qp | 整型,静止场景I帧QP的最大值。 取值范围:[MinIQp, MaxIQp]。 默认值:35。 |
| min_still_psnr | 整型,预留参数,暂不支持。 |
| max_qp | 整型,P、B帧的最大QP。 取值范围:[0, 51]。 默认值:51。 |
| min_qp | 整型,P、B帧的最小QP。 取值范围:[0, max_qp]。 默认值:24。 |
| max_i_qp | 整型,I帧的最大QP。 取值范围:[0, 51]。 默认值:51。 |
| min_i_qp | 整型,I帧的最小QP。 取值范围:[0, max_i_qp]。 默认值:24。 |
| min_qp_delta | 整型,帧级QP最小值和CU级QP最小值的差值。 I帧,帧级QP最小值= min_qp_delta + min_i_qp P、B帧,帧级QP最小值= min_qp_delta+min_qp 取值范围:[0, 4]; 默认值:0。 |
| motion_sensitivity | 整型,运动敏感度。 取值范围:[0, 100]。 默认值:100。 |
| save_bitrate_en | 整型,预留参数,暂不支持。 |
父主题: 视频/图像编码
hi_venc_h264_qvbr_param
说明
定义H264协议编码通道QVBR码率控制模式的高级参数。
定义
hi_venc_h264_qvbr_param = {"max_i_proportion": max_i_proportion,
"min_i_proportion": min_i_proportion,
"max_reencode_times": max_reencode_times,
"qpmap_en": qpmap_en,
"max_qp": max_qp,
"min_qp": min_qp,
"max_i_qp": max_i_qp,
"min_i_qp": min_i_qp,
"max_bit_percent": max_bit_percent,
"min_bit_percent": min_bit_percent,
"max_psnr_fluctuate": max_psnr_fluctuate,
"min_psnr_fluctuate": min_psnr_fluctuate}
成员
当实时统计的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要求,则码率不会再继续上调。
:::note 说明 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。 取值范围:[MinQp, 51]。 默认值:51。 |
| min_qp | 整型,P、B帧的最小QP。 取值范围:[0, 51]。 默认值:16。 |
| max_i_qp | 整型,I帧的最大QP。 取值范围:[MinIQp, 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。 |
父主题: 视频/图像编码
在线提单