DSP

【Codec系列】之常用码率控制算法分析

2019-07-13 18:34发布

DATE: 2019-1-12


0、前言

    视频编码中的码率控制是一种重要的编码技术,旨在保证码率平稳或者图像质量平稳,在实际应用中,码率控制应用很多,这里分析一下常用的码率控制算法。主要以当前海思IPC芯片中实现的码率控制方式为例进行分析。
1、常用码率控制算法分析
1.1、CBR
CBR(Constant Bit Rate)固定比特率。 即在码率统计时间内保证编码码率平稳。码率
稳定主要由两个量来评估。
  1. 码率统计时间 u32StatTime
    单位为秒(s),码率统计时间越长,每帧图像的码率波动对于码率调节的影响越
    弱,码率的调节会更缓慢,图像质量的波动会更轻微;码率统计时间越短,每帧
    图像的码率波动对于码率调节的影响越强,图像码率的调节会更灵敏,图像质量
    的波动会更剧烈。
  2. 行级码率控制调节幅度 u32RowQpDelta
    行级码率控制调节幅度是一帧内行级调节的最大范围,其中行级以宏块行为单
    位。调节幅度越大,允许行级调整的 QP 范围越大,码率越平稳。对于图像复杂
    度分布不均匀的场景,行级码率控制调节幅度设置过大会带来图像质量不均匀。
1.2、VBR
VBR(Variable Bit Rate)可变比特率,即允许在码率统计时间内编码码率波动,从而保证编码图像质量平稳。
以 H.264 编码为例,VENC 模块提供用户可设置 MaxQp,MinQp,MaxBitrate 和 ChangePos。MaxQp,MinQp 用于控制图像的质量范围,MaxBitrate 用于钳位码率统计时间内的最大编码码率,ChangePos 用于控制开始调整Qp 的码率基准线。
  • 当编码码率大于 MaxBitrate*ChangePos 时,图像 qp 会逐步向MaxQp 调整,如果图像 QP 达到 MaxQp,QP 会被钳位到最大值,MaxBitrate 的钳位效果失效,编码码率有可能会超出 MaxBitrate。
  • 当编码码率小于 MaxBitrate*ChangePos时,图像 QP 会逐步向 MinQp 调整,如果图像 QP 达到 MinQp,此时编码的码率已经达到最大值,而且图像质量最好。
1.3、FIXQP
Fix Qp 固定 Qp 值。在码率统计时间内,编码图像所有宏块 Qp 值相同,采用用户设定的图像 Qp 值,I 帧、P 帧和B帧的 QP 值可以分别设置。
1.4、AVBR
AVBR(Adaptive Variable Bit Rate)可变比特率,即允许在码率统计时间内编码码率波动,从而保证编码图像质量平稳。
核心思想:码率控制内部会检测当前场景的运动静止状态,在运动时用较高码率编码,在静止时主动降低目标码率。
以 H.264 编码为例,VENC 模块提供用户可设置 MaxBitrate,ChangePos 和 MinStillPercent。MaxBitrate 表示运动场景下的最大码率,MaxBitrate*ChangePos*MinStillPercent 表示静止情况下的最小码率。根据运动程度的不同目标码率会在最大码率和最小码率间调整。MaxQp,MinQp 用于控制图像的质量范围,码率控制以 QP 钳位为最高优先级,超出 MinQp,MaxQp 范围内码率控制将失效。
1.5、QPMAP
QPMAP Qp 表,该码控模式下,码控的策略由用户决定,且一帧编码图像以 16*16 块为单位,每一个 16*16 块的 Qp 值,采用用户设定的相应块的 Qp 值。所有这些块的QP 值组成 QP 表,该表中 QP 值的组织方式如图 6-3 所示。
在这里插入图片描述 在这里插入图片描述
1.6、CVBR
CVBR(Constrained Variable Bit Rate) 是以VBR为基础,旨在提供平稳的图像质量的码率,同时对VBR的码率进行限制,以满足传输宽带以及存储空间的要求。
具体来说,CVBR设置了瞬时,短期和长期码率的限制。其中,瞬时码率的限制保证网络带宽对传输带宽的要求;长期码率保证了在长时间视频录制时,存储设备有足够的空间存储数据;同时,短期码率会根据长期码率的设置和实际使用情况进行调节,以在场景复杂的情况下提供更加平稳的图像质量,并在场景简单时节省码率。
1.7、QVBR
QVBR(Quality Variable Bit Rate) 基于主观质量的可变比特率,该方式是利用实时统计的PSNR的大小来动态调整码率,从而保证编码图像质量平稳。在PSNR较小时主动升高目标码率,PSNR较大时主动降低码率。 参考:《Hi3559A HiMPP V4.0 媒体处理软件开发参考.pdf》

THE END!