跳到主要内容

hi_venc_rc_mode

hi_venc_rc_attr

说明

定义编码通道码率控制器属性。

定义

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h264_cbr": hi_venc_h264_cbr}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h264_vbr": hi_venc_h264_vbr}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h264_avbr": hi_venc_h264_avbr}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h264_qvbr": hi_venc_h264_qvbr}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h264_cvbr": hi_venc_h264_cvbr}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h264_fixqp": hi_venc_h264_fixqp}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h264_qpmap": hi_venc_h264_qpmap}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"mjpeg_cbr": hi_venc_mjpeg_cbr}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"mjpeg_vbr": hi_venc_mjpeg_vbr}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"mjpeg_fixqp": hi_venc_mjpeg_fixqp}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h265_cbr": hi_venc_h265_cbr}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h265_vbr": hi_venc_h265_vbr}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h265_avbr": hi_venc_h265_avbr}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h265_qvbr": hi_venc_h265_qvbr}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h265_cvbr": hi_venc_h265_cvbr}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h265_fixqp": hi_venc_h265_fixqp}

hi_venc_rc_attr = {"rc_mode": rc_mode, # RW; the type of rc
"h265_qpmap": hi_venc_h265_qpmap}

成员

成员名称描述
rc_modeRC模式。
- CBR(Constant Bit Rate)固定比特率。即在码率统计时间内保证编码码率平稳。
- VBR(Variable Bit Rate)可变比特率,即允许在码率统计时间内编码码率波动,从而保证编码图像质量平稳。
- AVBR(Adaptive Variable Bit Rate) 自适应可变比特率,即允许在码率统计时间内编码码率波动,从而保证编码图像质量平稳。码率控制内部会检测当前场景的运动静止状态,在运动时用较高码率编码,在静止时主动降低目标码率。
- QVBR (Quality Variable Bit Rate)基于主观图像质量的可变比特率,该码控调节方式是利用实时统计的 PSNR(图像质量客观评价指标)的大小来动态调整码率,从而保证编码图像质量平稳。在PSNR较小时主动升高目标码率,PSNR较大时主动降低目标码率。
- CVBR (Constrained Variable Bit Rate) 是以VBR为基础,旨在提供平稳的图像质量的码控算法,同时对VBR的码率进行限制,以满足传输带宽以及存储空间的要求。具体来说, CVBR设置了瞬时,短期与长期码率的限制。其中,瞬时码率的限制保证了网络带宽对传输的要求;长期码率限制保证了在长时间视频录制时,存储设备有足够的空间储存数据;同时,短期码率会根据长期码率的设置和实际使用情况进行调节,以在场景复杂的情况下提供更加平稳的图像质量,并在场景简单时节省码率。
- FIXQP(Fix Quantisation Parameter)固定QP值。在码率统计时间内,编码图像所有宏块QP值相同,采用用户设定的图像QP值,I帧和P帧的QP值可以分别设置。
对于不同协议,相同 RC 模式的属性变量基本一致。表1介绍了几种RC模式的公共的属性。
h264_cbr字典,H.264协议编码通道CBR模式属性。
h264_vbr字典,H.264协议编码通道VBR模式属性。
h264_avbr字典,H.264协议编码通道AVBR模式属性。
h264_qvbr字典,H.264协议编码通道QVBR模式属性。
h264_cvbr字典,H.264协议编码通道CVBR模式属性。
h264_fixqp字典,H.264协议编码通道FIXQP模式属性。
h264_qpmap字典,H.264协议编码通道QPMAP模式属性。预留参数,暂不支持。
mjpeg_fixqp字典,Mjpeg(Motion Joint Photographic Experts Group)协议编码通道FIXQP模式属性。预留参数,暂不支持。
mjpeg_cbr字典,Mjpeg协议编码通道CBR模式属性。预留参数,暂不支持。
mjpeg_vbr字典,Mjpeg协议编码通道VBR模式属性。预留参数,暂不支持。
h265_cbr字典,H.265协议编码通道CBR模式属性。
h265_vbr字典,H.265协议编码通道VBR模式属性。
h265_avbr字典,H.265协议编码通道AVBR模式属性。
h265_qvbr字典,H.265协议编码通道QVBR模式属性。
h265_cvbr字典,H.265协议编码通道CVBR模式属性。
h265_fixqp字典,H.265协议编码通道FIXQP模式属性。
h265_qpmap字典,H.265协议编码通道QPMAP模式属性。预留参数,暂不支持。

参考信息

表1 码率控制器属性的约束

RC 模式GOPStatTime(s)FrmRate(src_frame_rate/dst_frame_rate)
CBR≥1≥1src_frame_rate ≥ dst_frame_rate
VBR≥1≥1src_frame_rate ≥ dst_frame_rate
AVBR≥1≥1src_frame_rate ≥ dst_frame_rate
FIXQP≥1≥1src_frame_rate ≥ dst_frame_rate
QPMAP≥1≥1src_frame_rate ≥ dst_frame_rate

父主题: 视频/图像编码

hi_venc_rc_mode

说明

定义编码通道码率控制器模式。

定义

HI_VENC_RC_MODE_H264_CBR = 1
HI_VENC_RC_MODE_H264_VBR = 2
HI_VENC_RC_MODE_H264_AVBR = 3
HI_VENC_RC_MODE_H264_QVBR = 4
HI_VENC_RC_MODE_H264_CVBR = 5
HI_VENC_RC_MODE_H264_FIXQP = 6
HI_VENC_RC_MODE_H264_QPMAP = 7
HI_VENC_RC_MODE_MJPEG_CBR = 8
HI_VENC_RC_MODE_MJPEG_VBR = 9
HI_VENC_RC_MODE_MJPEG_FIXQP = 10
HI_VENC_RC_MODE_H265_CBR = 11
HI_VENC_RC_MODE_H265_VBR = 12
HI_VENC_RC_MODE_H265_AVBR = 13
HI_VENC_RC_MODE_H265_QVBR = 14
HI_VENC_RC_MODE_H265_CVBR = 15
HI_VENC_RC_MODE_H265_FIXQP = 16
HI_VENC_RC_MODE_H265_QPMAP = 17
HI_VENC_RC_MODE_BUTT = 18

成员

成员名称描述
HI_VENC_RC_MODE_H264_CBRH.264 CBR模式。
HI_VENC_RC_MODE_H264_VBRH.264 VBR模式。
HI_VENC_RC_MODE_H264_AVBRH.264 AVBR模式。
HI_VENC_RC_MODE_H264_QVBRH.264 QVBR模式。
HI_VENC_RC_MODE_H264_CVBRH.264 CVBR模式。
HI_VENC_RC_MODE_H264_FIXQPH.264 FIXQP模式。
HI_VENC_RC_MODE_H264_QPMAPH.264 QPMAP模式。预留参数,暂不支持。
HI_VENC_RC_MODE_MJPEG_CBRMJPEG CBR模式。预留参数,暂不支持。
HI_VENC_RC_MODE_MJPEG_VBRMJPEG VBR模式。预留参数,暂不支持。
HI_VENC_RC_MODE_MJPEG_FIXQPMJPEG FIXQP模式。预留参数,暂不支持。
HI_VENC_RC_MODE_H265_CBRH.265 CBR模式。
HI_VENC_RC_MODE_H265_VBRH.265 VBR模式。
HI_VENC_RC_MODE_H265_AVBRH.265 AVBR模式。
HI_VENC_RC_MODE_H265_QVBRH.265 QVBR模式。
HI_VENC_RC_MODE_H265_CVBRH.265 CVBR模式。
HI_VENC_RC_MODE_H265_FIXQPH.265 FIXQP模式。
HI_VENC_RC_MODE_H265_QPMAPH.265 QPMAP模式。预留参数,暂不支持。

父主题: 视频/图像编码

hi_venc_h264_cbr

说明

定义H.264编码通道CBR属性字典。

定义

hi_venc_h264_cbr = {"gop": gop,
"stats_time": stats_time,
"src_frame_rate": src_frame_rate,
"dst_frame_rate": dst_frame_rate,
"bit_rate": bit_rate }

成员

成员名称描述
gop整型,Group Of Pictures, 视频序列由若干时间连续的图像构成,在对其进行编码时,先将该视频序列分割成若干个小的图像组,该参数即指一个图像组的帧数。 由于GOP结构仅支持Normalp(第一帧为I帧,其余帧为P帧),此参数也为I帧间隔,默认值65535。 由于编码I帧不需参考之前的帧,之前帧的编码质量影响从此帧开始不再传递,故该值越小,编码质量越好,但不建议小于帧率,因为I帧仅有帧内预测块,大部分场景需要有一定的P帧(有帧间预测块)才能保证编码质量。 取值范围:[1, 65536]。
stats_time整型,CBR码率统计时间,以秒为单位,一般场景下,stats_time= gop / dst_frame_rate,编码质量较好。 码率统计时间越长,每帧图像的码率波动对于码率调节的影响越弱,码率的调节会更缓慢,图像质量的波动会更轻微;码率统计时间越短,每帧图像的码率波动对于码率调节的影响越强,图像码率的调节会更灵敏,图像质量的波动会更剧烈。 取值范围:[1, 60]。
src_frame_rate整型,输入帧率,以fps为单位,即每秒进入编码器的帧数,默认值为30;码率一定的情况下,该值越小,编码质量越好,但小于25播放时画面会不连贯。 该参数取值范围:[1, 240]。
dst_frame_rate整型,编码器输出帧率,以fps为单位,即每秒编码器输出的帧数,默认值为30;码率一定的情况下,该值越小,编码质量越好,但小于25播放时画面会不连贯。 取值范围:[1, src_frame_rate]。 暂不支持分数帧率。
bit_rate整型,编码器输出平均码率,以kbps为单位,即编码码流每秒比特数,该值越大,编码质量越好;默认值2000。 该参数取值范围:[2, 614400]。 平均比特率的设置与编码通道宽高以及图像帧率都有关系。典型的平均比特率的设置如表1所示。注意,表1中的平均比特率的设置是在通道编码帧率为满帧率(30fps)时的设置。当用户设置编码输出帧率不为满帧率时,可以对下表中的码率按用户设置帧率与满帧率(30fps)的比例进行换算。

表1 典型平均比特率配置

图像宽高/码率等级1080p(1920x1080)4K(3840x2160)
低码率<2Mbps<8Mbps
中码率2Mbps~8Mbps8Mbps~30Mbps
高码率>8Mbps>30Mbps

父主题: 视频/图像编码

hi_venc_h264_vbr

说明

定义H.264编码通道VBR属性字典。

定义

hi_venc_h264_vbr = {"gop": gop,
"stats_time": stats_time,
"src_frame_rate": src_frame_rate,
"dst_frame_rate": dst_frame_rate,
"max_bit_rate": max_bit_rate}

成员

成员名称描述
gop整型,Group Of Pictures, 视频序列由若干时间连续的图像构成,在对其进行编码时,先将该视频序列分割成若干个小的图像组,该参数即指一个图像组的帧数。 由于GOP结构仅支持Normalp(第一帧为I帧,其余帧为P帧),此参数也为I帧间隔,默认值65535。 由于编码I帧不需参考之前的帧,之前帧的编码质量影响从此帧开始不再传递,故该值越小,编码质量越好,但不建议小于帧率,因为I帧仅有帧内预测块,大部分场景需要有一定的P帧(有帧间预测块)才能保证编码质量。 取值范围:[1, 65536]。
stats_time整型,VBR码率统计时间,以秒为单位,一般场景下,stats_time= gop / dst_frame_rate,编码质量较好。 码率统计时间越长,每帧图像的码率波动对于码率调节的影响越弱,码率的调节会更缓慢,图像质量的波动会更轻微;码率统计时间越短,每帧图像的码率波动对于码率调节的影响越强,图像码率的调节会更灵敏,图像质量的波动会更剧烈。 取值范围:[1, 60]。
src_frame_rate整型,输入帧率,以fps为单位,即每秒进入编码器的帧数,默认值为30;码率一定的情况下,该值越小,编码质量越好,但小于25播放时画面会不连贯。 该参数取值范围:[1, 240]。
dst_frame_rate整型,编码器输出帧率,以fps为单位,即每秒编码器输出的帧数,默认值为30;码率一定的情况下,该值越小,编码质量越好,但小于25播放时画面会不连贯。 取值范围:[1, src_frame_rate]。 暂不支持分数帧率。
max_bit_rate整型,编码器输出最大码率,以kbps为单位,即编码码流每秒比特数,该值越大,编码质量越好;默认值2000。 该参数取值范围:[2, 614400]。

父主题: 视频/图像编码

在线提单