中国队世界杯_2014世界杯德国 - dyhdcw.com

什么是 CBR、VBR、CRF、Capped

原文地址:What

is CBR, VBR, CRF, Capped-CRF? Rate Control Modes Explained作者:Jan Ozer

序当你用 H.264、HEVC、VP9、AV1

等编码分发视频文件时,你都需要选择流控制模式,以在码率、整体质量、瞬态质量、编码耗时间平衡,得出具体场景下的最佳选择。常见的流控制模式有

CBR、VBR、CRF、Capped-CRF。本文将介绍这些模式的运作方式、优缺点、使用场景。

本文将会首先讨论 CBR(恒定码率,Constant Bitrate Encoding)和

VBR(可变码率,Variable Bitrate

Encoding)。所有编码器都支持这两个模式。而 CRF 和 Capped-CRF 仅在 FFmpeg

x264、x265、libvpx-VP9、libaom-AV1

编码器中可用,尽管本文仅讨论 x264。

以下是本文会用到的视频文件,之后将会以此指代:

测试:时长两分钟,前 \(30\) 秒为朝着镜头说话的视频,之后为 \(30\)

秒的芭蕾舞视频,之后再将整个视频重复一次。足球:时长两分钟,整体高动态的足球视频,同时包含较低动态和较高动态的片段。对话:时长两分钟,低动态的近距离对话视频。当以分发为目的时(而非以归档或上传会被二压的视频为目的),这五个因素值得注意:

兼容性:播放器可以解码并播放你分发的文件吗?本文讨论

H.264,所以兼容性不成问题。但如果使用

HEVC、VP9、AV1,则需要考虑兼容性。整体质量:文件的整体质量,在本文中以 VMAF1 度量。瞬态质量:编码后视频可能会存在瞬态质量问题,在本文中以低帧

VMAF 或 VMAF 的单帧最小值衡量。交付能力:顺畅地将文件传送给远程受众的能力。对于使用高速带宽连接的观众来说,自然不用考虑;但对于通过

3G 等低速网络接收视频的受众,可能是大问题。编码耗时:如果使用涉及多通2的编码模式,会显著提高编码时间。如果你使用付费云编码服务(典型的如

AWS Elemental MediaConvert),多通编码会显著提高花费。最后,在 FFmpeg 及大多数带有 x264、x265

编码器的工具中,有三个控制比特率的选项:

b:v: 设置整体码率maxrate: 设置最大码率bufsize: 设置编码缓冲区大小,参见:摘抄:VBV

缓冲区详解(英语)让我们从 CBR 开始。

CBR顾名思义,使用 CBR

会使整个文件都是固定码率,而不会随场景复杂度变化。在 FFmpeg 中,将

b:v、maxrate、bufsize

的值设为一个,即为 CBR,如:

-b:v 5000k -maxrate 5000k -bufsize 5000k在测试视频中,\(30\) 秒的谈话和 \(30\) 秒的芭蕾舞片段交替出现,CBR

编码后的文件如下图所示。可以看到平均比特率(绿线)徘徊在 \(\pu{5000 Kbps}\) 附近。

被 CBR 模式编码的测试视频在右侧,可以看到平均比特率为 \(\pu{4938

Kbps}\),峰值比特率为 \(\pu{6013

Kbps}\),较平均多 \(20\%\)。对于大多数软件编码器,CBR

的码率图并不是一条直线。但相比于下文的其他模式,CBR

的可变性明显更小。

我们稍后会回顾 CBR 编码的质量影响。

从交付能力来看,CBR

的优势显而易见。如果你的目的是云端直播,网络速率有限;或者通过低速连接将视频发送给远端受众,那么

CBR 缺乏可变性将确保连接稳定。CBR 是单通技术,编码成本也比接下来要讨论的

VBR 低。

VBRVBR

编码的目的是达到码率目标,但在过程中根据视频内容的复杂度调整码率。VBR

通常还使用 2-pass

技术:第一遍扫描视频,识别复杂度;第二遍进行实际的编码。

VBR 通常通过最大码率和目标码率的比值来描述,如以下参数,分别称为

\(200\%\)、\(150\%\)、\(110\%\) 受限 VBR(也可称 CVBR,constrained

VBR):

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

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

-b:v 5000k -maxrate 5500k -bufsize 5500k如下图所示,比特率在高动态(芭蕾舞)和低动态场景(谈话)之间明显波动。尽管平均比特率类似于

CBR(\(\pu{5041 Kbps}\) 与 \(\pu{4938 Kbps}\)

相比),但最大比特率明显更高(\(\pu{11137

Kbps}\) 与 \(\pu{6013 Kbps}\)

相比)。\(150\%\) CVBR

具有类似平均比特率(\(\pu{5036

Kbps}\)),但峰值比特率低 \(20\%\)(\(\pu{9090 Kbps}\))。

\(200\%\) CVBR

模式编码的测试视频所有这些对质量有何影响?

下表显示了使用四种模式压缩足球视频的分数。平均比特率与峰值比特率的显着增量非常相似。整体

VMAF 得分非常接近;低帧 VMAF 得分正是 CBR 和 VBR 的区别。

编码模式平均码率峰值码率VMAF低帧 VMAFCBR4938601395.1779.76\(200\%\)

CVBR50411113795.6985.39\(150\%\)

CVBR5036909095.8084.47\(110\%\)

CVBR4944666295.5782.59最大的区别在于低帧分数,即瞬态质量问题的指标,其中 CBR 比 \(200\%\) CVBR 低约 \(5.5\)

分。一些观众可能会注意到这种瞬时质量问题。有趣的是,\(200\%\) 和 \(150\%\) CVBR 之间的低帧 VMAF 仅相差约 1

点,而 \(150\%\) 和 \(110\%\) CVBR 之间相差两点。

为了进一步探索,我在 MSU(Moscow State

University,莫斯科国立大学)研发的视频质量测量工具中,比较了 CBR 和

\(200\%\) CVBR,见下图。

MSU 测量工具中的 CBR 和 CVBR 对比图顶部是两个文件的整体 VMAF 分数,CBR 为红色,\(200\%\) CVBR 为绿色。底部图表是顶部图表中突出显示区域的放大图,大致范围为 \(2100\) 帧到 \(3400\)

帧。若红色折线在绿色折线之下,表示这一部分 CBR 质量明显差于 VBR。有趣的是,Apple 支持 \(200\%\)

CVBR,《HLS创作规范》

中写到,「1.30. 对于 VOD

内容,峰值比特率不应超过平均比特率的 \(200\%\)」。也就是说,\(200\%\) CVBR 是否适合高帧率 8K

内容还有待观察,实质上可能需要 \(\pu{40

Mbps}\)3 才能达到可接受的质量。

小结CBR 在编码耗时和交付能力方面胜出,而 VBR

在质量方面领先。然而,瞬时质量问题对于 CBR

来说也非常值得注意。

CRF使用

CBR、VBR,我们可以选择目标比特率,编码器会调整质量以满足该比特率。这种方式的问题在于,如果对所有视频剪辑使用相同的参数,那么会浪费大量不必要的宽带,而实际上该视频可能是易于编码的,如对话视频。

VBR

的问题在于,它会无条件达到目标比特率,即使该视频的比特率和质量过高也是如此。上图显示了被 \(200\%\) CVBR \(\pu{5 Mbps}\)

目标编码的对话视频,参数和先前编码足球视频一样。平均码率和峰值码率也和其一致,但

VMAF 分数达到了 \(97.61\)。

研究4表明,一旦 VMAF 值超过 \(93\) 观众就无法感知,我也建议制作者不要让

VMAF 值超过 \(95\)。正如后面将要讲到的,对于此视频,可以将比特率降低至少

\(60\%\),但仍能达到 \(95\) VMAF 的目标。

因此,同样,当使用 CBR 和 VBR

时,编码器会根据需要调整质量以达到目标比特率。相比之下,当使用

CRF(恒定质量因子编码,Constant Rate

Factor)时,编码器则是根据质量目标调整比特率。CRF 值的范围为 \(0\) 到 \(51\),数字越低质量越高。通过命令调用 FFmpeg

使用 CRF 模式编码:

ffmpeg -i input_file -crf 23 output_fileCRF

编码适用于归档视频,或生成用于上传和转码的中间文件。但是,从交付能力的角度来看,它不是最佳选择,因为在编码之前,产生文件的比特率是未知的。

对于对话视频,值为 22 的 CRF

编码的文件,平均比特率为 \(\pu{1878

Kbps}\),VMAF 得分为 \(96.26\),将VBR的比特率削减 \(60\%\) 以上,而对质量没有明显影响。然而,对于足球视频,CRF 22 产生了 \(\pu{10650 Kbps}\)

的平均比特率,这对于大多数 1080P 编码而言都太高了。如何在确保合理的比特率限制的同时,节省带宽?CRF

加上最高比特率限制(或称 Capped-CRF)就是答案。

Capped-CRF顾名思义,使用 Capped-CRF,可以将 CRF 与最大比特率限制结合。FFmpeg

参数如下:

-crf 22 -maxrate 5000k -bufsize 10000k 使用测试视频作为输入,此参数产生了下图的结果。虽然最大速率不是一条平坦的线,但芭蕾舞的部分非常接近

\(\pu{5000 Kbps}\),峰值比特率为 \(\pu{6302

Kbps}\)。在编码过程中,编码器在对话部分使用 CRF

值,而在芭蕾舞部分被最大比特率限制。

Capped-CRF 编码的测试视频这与 \(200\%\) CVBR 相比如何?

\(200\%\) CVBR 编码产生了 \(97.30\) 的平均 VMAF,\(\pu{5041 Kbps}\)的比特率。因此,Capped-CRF

节省了大约 \(30\%\) 的带宽并取得了

\(96.55\) 的 VMAF

分数,这在视觉上是无法区分的。而比特率存在显着差异,显著影响对受限连接的交付能力。

在高动态视频中,如足球视频,有许多部分 CRF

值产生高于上限的数据速率。在这些部分中,由最大上限控制比特率,而不是

CRF值。在这些情况下,Capped-CRF

不会节省太多带宽,因为编码器在不超过上限的情况下产生指定质量的部分很少。

如下表,该表显示了使用 \(200\%\)

CVBR 和 Capped-CRF(CRF 22,\(\pu{5

Mbps}\)上限) 分别压缩足球视频的比特率和 VMAF

分数平均比特率大致相同,尽管 Capped-CRF 视频的峰值要低得多。平均 VMAF

分数也非常相似。

编码模式平均码率峰值码率VMAF低帧 VMAF\(200\%\) CVBR50411113795.6985.39Capped-CRF5025599395.3079.83与 CBR 一样,主要区别出现在低帧 VMAF 中。下图显示了 VQMT

的比较结果图;当我查看折线图时,我没有看到明显的差异。

对比 \(200\%\) CVBR 和

Capped-CRF然而,CBR 仅提高交付能力,Capped-CRF

除了可以做到这一点,还能在更易于编码的文件上节省带宽。从本质上讲,这使

Capped-CRF 成为一种按内容编码的技术,可以使用几乎所有基于 FFmpeg

的编码工具应用 Capped-CRF。

Capped-CRF

不是灌篮高手;你应该在自己的场景下测试,并确定视频中的瞬态问题是否比足球视频更为明显。如果瞬态问题很小,并且考虑使用

Capped-CRF,那么应该尝试不同的 CRF 等级(参见:为

Capped-CRF 编码选择最佳的CRF值)。

重复一次,CRF 和 Capped-CRF

并非适用于所有编码器;因此,如果您使用的第三方编码器不是基于 FFmpeg

的,或者你不使用

x264、x265、libvpx-VP9、libaom-AV1

编码器,则它们可能不可用。

下表总结了所讨论的四种编码方法的优缺点。

模式方式优点缺点使用场景CBR调整质量以达成比特率目标整体比特率恒定比特率固定单通编码整体质量瞬态质量直播受限宽带下的点播CVBR调整质量以达成比特率目标根据场景复杂度调整比特率整体质量瞬态质量比特率可变性编码耗时(多通编码)大多数其他点播CRF根据质量要求调整比特率单通分发时设置质量无码率控制归档待二压的中间文件Capped-CRF带有最大比特率的CRF按内容调整编码单通瞬态质量比特率可变性直播点播VMAF:视频多方法评估融合,Video

Multimethod Assessment Fusion,Netflix 等研发的全参考视频质量指标 https://en.wikipedia.org/wiki/Video_Multimethod_Assessment_Fusion↩︎

多通:即 multi-pass,常见于 VBR

模式的二通(2-pass)。这种模式会扫描多次文件以提高编码质量。与之相反的为单通,1-pass

或 single-pass,只会扫描一次文件。↩︎

参见:https://streaminglearningcenter.com/metrics/8k-video-per-title-encoding-hdr-metrics.html↩︎

https://realnetworks.com/sites/default/files/vmaf_reproducibility_ieee.pdf↩︎

最新发表
友情链接

Copyright © 2022 中国队世界杯_2014世界杯德国 - dyhdcw.com All Rights Reserved.