0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

常见的码率控制模式CBR、VBR、CRF和Capped-CRF

LiveVideoStack 来源:OTTVerse 作者:Jan Ozer 2022-06-02 10:09 次阅读

每次在使用H.264、HEVC、VP9或者AV1等面向分发的编解码器对视频文件进行编码时,你都要选择一种码率控制机制来控制码率、整体质量、瞬态质量和编码成本。常见的码率控制模式包括CBR、VBR、CRF和Capped-CRF。本篇文章将向大家介绍这些模式的工作原理,它们各自的优点和缺点,如何以及何时实现它们。

我们要讨论的前两个模式,CBR(恒定码率编码)和VBR(可变码率编码)几乎可用于每一个分发出来的编码器。后两个模式CRF(恒定码率系数)和Capped CRF(上限恒定码率系数)可用于FFmpeg中的x264、x265、libvpx-VP9和libaom-AV1,但本文中只讨论x264。

在本文的讨论中,我将用到三个文件:

测试文件(Test):这个两分钟的短片包括30秒的人物对着镜头讲话的视频和30秒的芭蕾舞视频,分别重复两次。

足球视频:这是一个两分钟的含有大量动作(高帧率)的足球测试视频,其中既有高帧率的区域,又有低帧率的区域。

人物近距离讲话视频:这是一个两分钟的慢动作(低帧率)人物近距离讲话视频。

每当你为了分发视频(而非为了存档或者转码上传文件)而编码视频文件时,你都应该考虑到五个因素:兼容性、整体质量、瞬态质量、可传输性和编码成本。下面是对这五个因素的简单描述:

兼容性:当把视频传输给播放器,它能解码和播放文件吗?这里我们讨论的是H.264,它几乎可以和任何播放器兼容。而HEVC、 VP9和AV1都可能存在兼容问题。

整体质量:是指视频文件的整体质量,在本文中,使用计算调和平均数的VMAF测量。

瞬态质量:是指视频文件显示时所可能出现的瞬间质量问题。在本文中,由低帧VMAF或者文件中任意帧的最低VMAF分值测量。

可传输性:向远在天边的观众传输无中断的视频是你应具备的能力。通常情况下,拥有高带宽连接的观众无需担心,但使用3G或类似网络连接传输视频肯定会出现问题

编码成本:涉及多次编码的技术明显增加编码时间,如果你需要为编码farm付费或者使用了很多云厂商的编码基础设施(如AWS Elemental Media Convert),那么两次编码将显著提高成本。

最后,在FFmpeg中,大多数编码工具都部署了x264和x265编解码器,其中有三个开关控制码率,它们分别是:

b:v :设置整体码率

maxrate:设置最大码率

bufsize :设置VBV(Video Buffer Verifier,视频缓存检验器)大小。

让我们先从CBR开始。

CBR:恒定码率编码

顾名思义,当你使用CBR(Constant Bitrate Encoding)编码时,意味着你对全部文件都使用了恒定的码率(无论视频文件中场景的复杂度如何)。当使用FFmpeg编码时,你可以通过对b:v、maxrate和bufsize使用相同的数据率实现CBR,如下所示:

-b:v 5000k -maxrate 5000k -bufsize 5000k

在测试文件中,交替播放30秒人物近距离讲话和30秒芭蕾舞的视频内容,CBR编码文件如图1(在Bitrate Viewer中)。如果你仔细观察,你会看到跟踪平均码率的蓝色波浪线在码率5000kbps左右徘徊。

在右侧,你可以看到平均码率为4938kbps,峰值码率为6013kbps,高出平均码率约20%。大多数编码器软件中,CBR的显示都不是一条直线,但相比于下文的其他控制技术,它的可变性明显更小。

fcf12fc2-e208-11ec-ba43-dac502259ad0.png

图1 使用CBR编码的测试文件

我们稍后将回顾CBR的质量影响。

从可传输性的角度来说,CBR的优势非常明显。

如果你将直播视频通过固定码率连接上传到云,或者通过受限连接将视频发送给遥远的观看者,那么视频流缺乏可变性将确保其不会中断。CBR也是单Pass(Single-Pass)技术,这意味着它的成本要比接下来讨论的VBR低。

VBR:可变码率编码

VBR(Variable Bitrate Encoding)编码的目的是达到码率目标,但是在播放期间能够根据视频内容的复杂度来调整码率。VBR通常要求2 pass:第一遍扫描视频,识别不同区域的复杂度;第二遍进行实际的编码。

VBR通常通过描述最大码率在目标码率上的变化来进一步明确。你可以称下文中第一个示例为200%受限VBR,因为最大码率为目标码率的两倍;第二个示例为150%受限VBR,因为最大码率为目标码率的150%;第三个示例为110%受限VBR。

-b:v 5000k -maxrate 10000k -bufsize 10000k-b:v 5000k -maxrate 7500k -bufsize 7500k-b:v 5000k -maxrate 5500k -bufsize 5500k

fd1de3f0-e208-11ec-ba43-dac502259ad0.png

图2 使用200%受限VBR编码的测试文件

图2显示了使用200%受限VBR编码的测试文件的码率配置。在交替的慢动作近距离讲话视频与高速动作的芭蕾舞之间,数据波动明显。即使平均码率与CBR相似(分别为5041kbps和4938kbps),但最大码率显著提高(分别为11137kbps和6013kbps)。150%受限VBR视频拥有相似的平均码率(5036kbps)和降低了20%的峰值码率(9090kbps)。

从可传输性角度来说,VBR明显更具挑战,但这只有在受限连接与视频流码率接近时才会出现。如果你正在向美国、欧洲、斯堪的纳维亚地区的观众通过50 mbps或者更高的网速传输5000kbps、1080p的视频,你很可能不会出现任何传输问题。但是如果是向相同地区的观众以40mbps网速传输8K视频,那么使用200%受限VBR就有点吓人了。当然,如果是3G连接上的500kbps 200%受限VBR,那么使用CBR(或110%受限VBR)听起来就好多了。

这一切所带来的质量影响都有哪些?

表1显示了真实世界中足球视频片段所使用的四种模式的得分。平均码率非常相似,峰值码率差异明显。整体VMAF得分非常接近。CBR与最高VBR值之间的分值差小于0.7。

编码模式 平均码率 峰值码率 VMAF 低帧VMAF
CBR 4938 6013 95.17 79.76
200% CVBR 5041 11137 95.69 85.39
150% CVBR 5036 9090 95.80 84.47
110% CVBR 4944 6662 95.57 82.59

表1 码率控制技术的质量影响

最大的不同在低帧分值(审校者注:指以帧的粒度看VMAF分数,其最低单帧VMAF分),即瞬态质量问题的指标,其中CBR比200%受限VBR低了约5.5分。这表示一些观众有可能注意到瞬间出现的问题。有趣的是,在200%受限VBR和150%受限VBR的低帧VMAF之间只有1分之差,150%受限VBR和110%受限VBR之间有两分之差。

为了进一步探索,我对比了莫斯科国立大学视频质量衡量工具中的CBR和200%受限VBR文件(图3)。

上图是整个视频文件播放期间,CBR和200%受限VBR文件的VMAF分值,其中CBR为红色,200%受限VBR为绿色。

下图是上图中突出显示区域的放大图(大致为2100帧到3400帧),红色钟乳石状所表示的帧中的CBR质量明显低于VBR。

fd4f0d9a-e208-11ec-ba43-dac502259ad0.png

图3 使用200%受限VBR编码的测试文件

在图中,你可以在右下角看到Show frame按钮。在这段视频中,使用了相当保守的编码参数,CBR帧和VBR帧之间的区别几乎忽略不计,因为其中最明显的差异只有1~2帧。

其他视频片段中,如果使用较低的码率编码,那么瞬态问题就会更加明显。所以大部分VOD生产商为了避免这些问题选择使用VBR(而非CBR),尤其是在向高带宽观众分发1080p视频时。

有趣的是,Apple在HLS Authoring Specifications中支持了200%受限VBR,其说明如下:“1.30. 对于VOD内容来说,峰值码率不应该超过平均码率的200%。”但是200%受限VBR是否适用于高帧率8K内容(可能需要40mbps才能达到可接受的质量)还有待观察。

现在让我们来总结一下,CBR在成本和可传输性上胜出一筹,而VBR在整体质量上扳回一局。然而,CBR所带来的瞬态质量问题风险却是实实在在的。

CRF:恒定码率系数

使用CBR和VBR时,你需要选择一个目标码率,编码器会调整视频质量以达到该目标。这种方法的问题是,如果你对所有视频片段使用了相同的码率阶梯,那么就会在容易编码的视频(如近距离讲话视频)上浪费很多不必要的带宽。

图4显示了使用200%受限VBR编码、目标码率为5mbps(与足球视频相同)的近距离人物讲话视频。平均码率和峰值码率与上面的足球视频一致,但是VMAF分值为97.61。

研究显示,VMAF值一旦超过93分,观众便无法感知。这也是我推荐生产商把VMAF目标值设置为95作为上限的原因。如下图所示,使用该视频,你可以减少至少60%的码率,但仍然能够达到VMAF 95的目标。

fd746e78-e208-11ec-ba43-dac502259ad0.png

图4 VBR编码的问题在于,即使对于该视频来说数据率和质量水平过高,它也会达到目标码率

所以,当使用CBR和VBR编码时,编码器会调整所需的视频质量进而达到目标码率。相比之下,使用CRF编码(Constant Rate Factor Encoding,一种单pass编码模式),你选择一种目标质量,编码器会通过调整码率达到该质量水平。CRF值分布为从0到51,数值越低,质量越高。使用CRF和FFmpeg编码如下所示:

ffmpeg -i input_file -crf 23 output_file

CRF适用于存档或者生成需上传和转码的mezzanine文件。然而,从可传输性的角度来说,它并不是最理想的方法:因为你并不知道将产生的数据率,直到你编码了文件。

在人物近距离讲话视频中,CRF值22生成了平均码率为1878kbps和VMAF分值为96.29的文件,比VBR编码的码率降低了60%以上,且质量没有明显影响。

然而,在足球视频中,CRF值22产生了10650的平均码率,这对于1080p编码阶梯来说太高了。

如何才能在确保合理码率限制的同时节省可用带宽?将CRF和码率上限组合使用就可以,也就是Capped CRF。

Capped CRF :上限恒定码率系数

顾名思义,Capped CRF就是将CRF值与码率上限组合使用。相关的命令如下所示:

-crf 22 -maxrate 5000k -bufsize 10000k

图5显示了在人物近距离讲话和芭蕾舞交替出现的视频中,该命令所生成的结果。同样,虽然最大码率不是一条水平直线,但芭蕾舞GOP与5000kbps线非常接近,码率峰值为6302kbps。在操作中,编码器使用CRF值对人物近距离讲话区域进行编码,并在芭蕾舞区域应用Capped CRF。

这与200%受限VBR相比效果如何?

200%受限VBR编码产生了一个平均的VMAF分值:97.30(以及码率5041 kbps)。所以Capped CRF编码节省了约30%带宽,并产生一个96.55的平均VMAF值,与200%受限VBR编码相比,它们之间的差异肉眼无法察觉。然而,如你所见,码率变化显著,所以在使用受限网络连接时,很可能会影响传输能力。

fda3a490-e208-11ec-ba43-dac502259ad0.png

图5 Capped CRF与人物近距离讲话和芭蕾舞交替出现的视频

在含有大量动作的视频中,如足球测试视频中,CRF值在视频中许多区域所产生的码率要高于上限。在这些区域,码率由上限控制,而非CRF值。这种情况下,Capped CRF不会节省太多带宽,因为编码器在不超过上限的情况下生成特定质量的视频区域很少。

表2显示了分别使用200%受限VBR编码和Capped CRF(CRF 22/5 上限)的足球视频的码率数据和VMAF分值。可以看到它们的平均码率相近,但使用了Capped CRF的视频的峰值码率却低很多。平均VMAF分值也非常相似。

fddaafc6-e208-11ec-ba43-dac502259ad0.png

表2 足球视频;200%受限VBR vs. Capped CRF

而使用CBR,最主要的差异就是瞬态质量问题的指标——低帧VMAF。图6显示了来自VQMT的对比结果。同样,我在观察主要的钟乳石状所代表的帧的位置时,没有发现明显的差异。

然而,其中CBR只是提高了可传输性,Capped CRF被应用于容易编码的文件中,可以提升可传输性且节省带宽。本质上,这使得Capped CRF成为一种Per-Title编码技术,你可以通过几乎所有基于FFmpeg的编码工具(直播和点播)来实现它。

fe273de6-e208-11ec-ba43-dac502259ad0.png

图6 200%受限VBR与Capped CRF之间的对比

Capped CRF也不是银弹。你应该运行自己的测试文件,然后确定视频中的瞬态问题是否比我在足球视频中看到的更明显。如果瞬态问题很少,而你在考虑使用Capped CRF,这个时候你应该尝试不同的CRF级别(参见:

https://streaminglearningcenter.com/learning/choosing-the-optimal-crf-value-for-capped-crf-encoding.html)。

同样,并不是所有编码器和Codec都能够使用CRF和Capped CRF;如果你正在使用第三方的编码器(该编码器并不是基于FFmpeg,且没有使用x264、x265、libvpx-VP9或者libaom-AV1 Codec),那么CRF和Capped CRF就可能不可用。

表3总结了上文讨论的四种编码方法的优点和缺点。

fe67dd06-e208-11ec-ba43-dac502259ad0.png

表3 四种码率控制模式对比

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编解码器
    +关注

    关注

    0

    文章

    227

    浏览量

    23987
  • CBR
    CBR
    +关注

    关注

    0

    文章

    13

    浏览量

    11465

原文标题:了解速率控制模式:什么是 CBR、VBR、CRF和Capped-CRF?

文章出处:【微信号:livevideostack,微信公众号:LiveVideoStack】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    数字信号处理实验操作教程:3-3 mp3音频编码实验(AD7606采集)

    声道数一样。 第五个是设置比特率控制模式,默认是CBR,但是通常我们都会设置VBR 第六个是设置CBR的比特率,只有在
    发表于 04-03 16:41

    TVS二极管长时间加载Vbr电压会不会烧毁?

    TVS二极管长时间加载Vbr电压会不会烧毁? 当一个TVS二极管长时间加载其Vbr(反向击穿电压)时,不会导致烧毁。事实上,这正是TVS二极管的设计目的之一。在下面的文章中,我将详尽阐述TVS二极管
    的头像 发表于 02-05 18:14 1138次阅读

    浅析电子负载常见的的四种工作模式

    浅析电子负载常见的的四种工作模式 电子负载是电子设备的一种,用于模拟负载并测试电源的性能。它在电子行业和电力领域有广泛的应用。电子负载常见的四种工作模式是恒阻
    的头像 发表于 01-22 13:43 389次阅读

    为什么监控设备会有主码率和子码率之分呢?

    为什么监控设备会有主码率和子码率之分呢? 监控设备主码率和子码率的区分是为了满足不同监控场景下的需求和性能要求。主码率和子
    的头像 发表于 01-09 11:35 297次阅读

    芯知识 | 什么是语音芯片的IIC控制模式

    随着科技的不断发展,语音芯片作为现代电子产品中的重要组成部分,其功能和性能也在不断提升。其中,IIC控制模式是一种常见的语音芯片控制方式,具有高效、灵活的特点。IIC
    的头像 发表于 12-20 08:41 185次阅读
    芯知识 | 什么是语音芯片的IIC<b class='flag-5'>控制</b><b class='flag-5'>模式</b>?

    直流电源如何控制CC/CV模式的?

    要求。 直流电源的控制模式中最常见的是CC(恒流)和CV(恒压)模式。在CC模式下,电源输出的电流保持不变,而在CV
    的头像 发表于 11-16 14:15 1254次阅读

    码率是怎么计算的?

    码率是怎么计算的
    发表于 11-02 07:51

    简述控制器的多种工作模式

    引言:和降压控制器类似,升压控制器也有多种工作模式,在中/重负载模式工作时,控制器以固定频率连续规律工作,在轻载
    的头像 发表于 10-26 14:41 1123次阅读
    简述<b class='flag-5'>控制</b>器的多种工作<b class='flag-5'>模式</b>

    什么是定长控制功能?变频器要如何设置定长控制模式

    定长控制功能是变频器控制系统中的一种模式,其主要作用是控制控制中所需轴的行程长度,从而实现工作流程中精确的工作时间和产量
    的头像 发表于 10-26 12:00 672次阅读
    什么是定长<b class='flag-5'>控制</b>功能?变频器要如何设置定长<b class='flag-5'>控制</b><b class='flag-5'>模式</b>?

    什么是定长控制功能?变频器要如何设置定长控制模式

    的工作时间和产量控制。定长控制功能应用广泛,常见于纺织、塑料、包装等制造行业中的自动生产流程中。 变频器定长控制模式设置与实现的细节如下:
    的头像 发表于 10-22 14:38 1050次阅读

    理解STM32控制常见的PID算法

    理解STM32控制常见的PID算法
    的头像 发表于 10-17 17:28 1720次阅读
    理解STM32<b class='flag-5'>控制</b>中<b class='flag-5'>常见</b>的PID算法

    为什么信噪比越高误码率越低?

    为什么信噪比越高误码率越低?  信噪比是指在无线通信中,信号的强度与背景噪声的强度之比。在传输过程中,信号受到各种干扰,如天气、建筑物、电子设备等的影响,造成信号变弱,同时背景噪声也会干扰信号
    的头像 发表于 09-20 17:41 2994次阅读

    成像雷达系统最常见的极化模式

    成像雷达系统通常发射平面极化雷达脉冲。与这种脉冲相关的电场在垂直于波传播方向的单一平面内振荡。最常见的极化模式是发射和接收水平极化信号(指定为HH模式,第一个字母表示发射的极化)。 有些系统发射
    的头像 发表于 06-27 11:25 2408次阅读
    成像雷达系统最<b class='flag-5'>常见</b>的极化<b class='flag-5'>模式</b>

    嵌入式教程_教学实验箱实验操作_音频处理:3-2 mp3音频编码实验

    ,如果不设置则和输入声道数一样。 第五个是设置比特率控制模式,默认是CBR,但是通常我们都会设置VBR 第六个是设置CBR的比特率,只有在
    发表于 06-02 16:17

    一文详细告诉你如何避免MOSFET常见问题和失效模式

    今天给大家分享一个infineon的文档《使用功率MOSFET进行设计,如何避免常见问题和故障模式》。
    发表于 06-01 09:27 946次阅读
    一文详细告诉你如何避免MOSFET<b class='flag-5'>常见</b>问题和失效<b class='flag-5'>模式</b>