什么是码率?

码率就是数据传输时单位时间传送的数据位数。一般我们用的单位是kbps即千位每秒。

通俗一点理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。

但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真。
就是占用空间小,图像质量也高

码率控制器实现对编码码率进行控制。

为什么要控制码率?

从信息学的角度分析,图像的压缩比越低,压缩图像的质量越高;图像压缩比例越高,压缩图像的质量越低。对于场景变化的真实场景,图像质量稳定,编码码率会波动;编码码率稳定,图像质量会波动。

通俗点就是,每个图像的质量,压缩程度不一样。如果使用固定的码率进行传输,那么图像的质量就会出现波动(有的图像占用带宽大有的图像占用小)。为了保证图像质量稳定,就需要进行码率控制。

以 H.264 编码为例,通常图像 Qp(量化参数,反应压缩效果) 越低,图像的质量越好,码率越高;图像 Qp 越高,图像质量越差,码率越低。码率控制是针对连续的编码码流而言,所以, JPEG 协议编码通道不包括码率控制功能。

码率控制器分别提供了对 H.264\H.265\MJPEG 协议编码通道 CBR、 VBR、 FIXQP 等三种码率控制模式,对图像质量和码率进行调节。

码率控制模式

CBR

CBR( Constant Bit Rate)固定比特率。
即在码率统计时间内保证编码码率平稳。

有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳定
优点是压缩速度快,缺点是每秒流量都相同容易导致空间浪费。
多用于网络流媒体视频编码,持续的码率可以保证视频在播放时,不会有卡顿缓冲等现象

码率稳定主要由两个量来评估(码率统计时间,Qp),这两个量都可以由用户在创建编码通道时指定。

  • 码率统计时间 u32StatTime
    单位为秒(s),码率统计时间越长,每帧图像的码率波动对于码率调节的影响越弱,码率的调节会更缓慢,图像质量的波动会更轻微;码率统计时间越短,每帧图像的码率波动对于码率调节的影响越强,图像码率的调节会更灵敏,图像质量的波动会更剧烈。
  • 行级码率控制调节幅度 u32RowQpDelta
    行级码率控制调节幅度是一帧内行级调节的最大范围,其中行级以宏块行为单位。调节幅度越大,允许行级调整的 QP 范围越大,码率越平稳。对于图像复杂度分布不均匀的场景,行级码率控制调节幅度设置过大会带来图像质量不均匀。

VBR

VBR( Variable Bit Rate)动态比特率
即允许在码率统计时间内编码码率波动,从而保证编码图像质量平稳。

码率可以随着图像的复杂程度的不同而变化,因此其编码效率比较高,Motion发生时,马赛克很少。
码率控制算法根据图像内容确定使用的比特率,图像内容比较简单则分配较少的码率(似乎码字更合适),图像内容复杂则分配较多的码字,这样既保证了质量,又兼顾带宽限制。这种算法在画质相同的前提下,可以缩小文件体积

以 H.264 编码为例, VENC 模块提供用户可设置 MaxQp,MinQp, MaxBitrate 和 ChangePos。

  • MaxQp, MinQp 用于控制图像的质量范围
  • MaxBitrate 用于钳位码率统计时间内的最大编码码率
  • ChangePos 用于控制开始调整Qp 的码率基准线

当编码码率大于 MaxBitrateChangePos 时,图像 qp 会逐步向MaxQp 调整,如果图像 QP 达到 MaxQp, QP 会被钳位到最大值, MaxBitrate 的钳位效果失效,编码码率有可能会超出 MaxBitrate。当编码码率小于 MaxBitrateChangePos时,图像 QP 会逐步向 MinQp 调整,如果图像 QP 达到 MinQp,此时编码的码率已经达到最大值,而且图像质量最好。

这种用法也被称为CVBR

CVBR

(Constrained Variable Bit Rate)
VBR的一种改进,兼顾了CBR和VBR的优点:在图像内容静止时,节省带宽,有Motion发生时,利用前期节省的带宽来尽可能的提高图像质量,达到同时兼顾带宽和图像质量的目的。

这种方法通常会让用户输入最大码率和最小码率,静止时,码率稳定在最小码率,运动时,码率大于最小码率,但是又不超过最大码率。比较理想的模型如下
在这里插入图片描述

FIXQP

Fix Qp 固定 Qp 值。在码率统计时间内,编码图像所有宏块 Qp 值相同,采用用户设定的图像 Qp 值, I 帧和 P 帧的 QP 值可以分别设置。


以上三种是海思支持的编码模式

还有另外的编码模式

ABR

(Average BitRate)平均比特率 是VBR的一种插值参数

ABR在指定的文件大小内,以每50帧 (30帧约1秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现时使用高流量,可以做为VBR和CBR的一种折中选择。

编码时的码率控制模式选择

1.当你在视频网站上传视频时,视频网站会对视频进行二次编码,为了保证网站上播放的视频有高质量画质,应尽量使用高码率的视频。

2.当编码视频时,应考带宽等因素,比如在你自己的网站发布视频时,如果码率很高,那么你就需要高带宽支持,如果没有很高的带宽,应酌情降低码率。

3.当你的视频用于移动设备的播放时,最好将码率设置的低一点,移动设备的性能及文件读取速度不是很高,所以在移动设备播放高码率视频会有卡顿现象。

Logo

致力于链接即构和开发者,提供实时互动和元宇宙领域的前沿洞察、技术分享和丰富的开发者活动,共建实时互动世界。

更多推荐