每次在使用H.264、HEVC、VP9或者AV1等面向分發(fā)的編解碼器對(duì)視頻文件進(jìn)行編碼時(shí),你都要選擇一種碼率控制機(jī)制來(lái)控制碼率、整體質(zhì)量、瞬態(tài)質(zhì)量和編碼成本。常見(jiàn)的碼率控制模式包括CBR、VBR、CRF和Capped-CRF。本篇文章將向大家介紹這些模式的工作原理,它們各自的優(yōu)點(diǎn)和缺點(diǎn),如何以及何時(shí)實(shí)現(xiàn)它們。
我們要討論的前兩個(gè)模式,CBR(恒定碼率編碼)和VBR(可變碼率編碼)幾乎可用于每一個(gè)分發(fā)出來(lái)的編碼器。后兩個(gè)模式CRF(恒定碼率系數(shù))和Capped CRF(上限恒定碼率系數(shù))可用于FFmpeg中的x264、x265、libvpx-VP9和libaom-AV1,但本文中只討論x264。
在本文的討論中,我將用到三個(gè)文件:
測(cè)試文件(Test):這個(gè)兩分鐘的短片包括30秒的人物對(duì)著鏡頭講話的視頻和30秒的芭蕾舞視頻,分別重復(fù)兩次。
足球視頻:這是一個(gè)兩分鐘的含有大量動(dòng)作(高幀率)的足球測(cè)試視頻,其中既有高幀率的區(qū)域,又有低幀率的區(qū)域。
人物近距離講話視頻:這是一個(gè)兩分鐘的慢動(dòng)作(低幀率)人物近距離講話視頻。
每當(dāng)你為了分發(fā)視頻(而非為了存檔或者轉(zhuǎn)碼上傳文件)而編碼視頻文件時(shí),你都應(yīng)該考慮到五個(gè)因素:兼容性、整體質(zhì)量、瞬態(tài)質(zhì)量、可傳輸性和編碼成本。下面是對(duì)這五個(gè)因素的簡(jiǎn)單描述:
兼容性:當(dāng)把視頻傳輸給播放器,它能解碼和播放文件嗎?這里我們討論的是H.264,它幾乎可以和任何播放器兼容。而HEVC、 VP9和AV1都可能存在兼容問(wèn)題。
整體質(zhì)量:是指視頻文件的整體質(zhì)量,在本文中,使用計(jì)算調(diào)和平均數(shù)的VMAF測(cè)量。
瞬態(tài)質(zhì)量:是指視頻文件顯示時(shí)所可能出現(xiàn)的瞬間質(zhì)量問(wèn)題。在本文中,由低幀VMAF或者文件中任意幀的最低VMAF分值測(cè)量。
可傳輸性:向遠(yuǎn)在天邊的觀眾傳輸無(wú)中斷的視頻是你應(yīng)具備的能力。通常情況下,擁有高帶寬連接的觀眾無(wú)需擔(dān)心,但使用3G或類似網(wǎng)絡(luò)連接傳輸視頻肯定會(huì)出現(xiàn)問(wèn)題
編碼成本:涉及多次編碼的技術(shù)明顯增加編碼時(shí)間,如果你需要為編碼farm付費(fèi)或者使用了很多云廠商的編碼基礎(chǔ)設(shè)施(如AWS Elemental Media Convert),那么兩次編碼將顯著提高成本。
最后,在FFmpeg中,大多數(shù)編碼工具都部署了x264和x265編解碼器,其中有三個(gè)開(kāi)關(guān)控制碼率,它們分別是:
b:v :設(shè)置整體碼率
maxrate:設(shè)置最大碼率
bufsize :設(shè)置VBV(Video Buffer Verifier,視頻緩存檢驗(yàn)器)大小。
讓我們先從CBR開(kāi)始。
CBR:恒定碼率編碼
顧名思義,當(dāng)你使用CBR(Constant Bitrate Encoding)編碼時(shí),意味著你對(duì)全部文件都使用了恒定的碼率(無(wú)論視頻文件中場(chǎng)景的復(fù)雜度如何)。當(dāng)使用FFmpeg編碼時(shí),你可以通過(guò)對(duì)b:v、maxrate和bufsize使用相同的數(shù)據(jù)率實(shí)現(xiàn)CBR,如下所示:
-b:v 5000k -maxrate 5000k -bufsize 5000k
在測(cè)試文件中,交替播放30秒人物近距離講話和30秒芭蕾舞的視頻內(nèi)容,CBR編碼文件如圖1(在Bitrate Viewer中)。如果你仔細(xì)觀察,你會(huì)看到跟蹤平均碼率的藍(lán)色波浪線在碼率5000kbps左右徘徊。
在右側(cè),你可以看到平均碼率為4938kbps,峰值碼率為6013kbps,高出平均碼率約20%。大多數(shù)編碼器軟件中,CBR的顯示都不是一條直線,但相比于下文的其他控制技術(shù),它的可變性明顯更小。
圖1 使用CBR編碼的測(cè)試文件
我們稍后將回顧C(jī)BR的質(zhì)量影響。
從可傳輸性的角度來(lái)說(shuō),CBR的優(yōu)勢(shì)非常明顯。
如果你將直播視頻通過(guò)固定碼率連接上傳到云,或者通過(guò)受限連接將視頻發(fā)送給遙遠(yuǎn)的觀看者,那么視頻流缺乏可變性將確保其不會(huì)中斷。CBR也是單Pass(Single-Pass)技術(shù),這意味著它的成本要比接下來(lái)討論的VBR低。
VBR:可變碼率編碼
VBR(Variable Bitrate Encoding)編碼的目的是達(dá)到碼率目標(biāo),但是在播放期間能夠根據(jù)視頻內(nèi)容的復(fù)雜度來(lái)調(diào)整碼率。VBR通常要求2 pass:第一遍掃描視頻,識(shí)別不同區(qū)域的復(fù)雜度;第二遍進(jìn)行實(shí)際的編碼。
VBR通常通過(guò)描述最大碼率在目標(biāo)碼率上的變化來(lái)進(jìn)一步明確。你可以稱下文中第一個(gè)示例為200%受限VBR,因?yàn)樽畲蟠a率為目標(biāo)碼率的兩倍;第二個(gè)示例為150%受限VBR,因?yàn)樽畲蟠a率為目標(biāo)碼率的150%;第三個(gè)示例為110%受限VBR。
-b:v 5000k -maxrate 10000k -bufsize 10000k-b:v 5000k -maxrate 7500k -bufsize 7500k-b:v 5000k -maxrate 5500k -bufsize 5500k
圖2 使用200%受限VBR編碼的測(cè)試文件
圖2顯示了使用200%受限VBR編碼的測(cè)試文件的碼率配置。在交替的慢動(dòng)作近距離講話視頻與高速動(dòng)作的芭蕾舞之間,數(shù)據(jù)波動(dòng)明顯。即使平均碼率與CBR相似(分別為5041kbps和4938kbps),但最大碼率顯著提高(分別為11137kbps和6013kbps)。150%受限VBR視頻擁有相似的平均碼率(5036kbps)和降低了20%的峰值碼率(9090kbps)。
從可傳輸性角度來(lái)說(shuō),VBR明顯更具挑戰(zhàn),但這只有在受限連接與視頻流碼率接近時(shí)才會(huì)出現(xiàn)。如果你正在向美國(guó)、歐洲、斯堪的納維亞地區(qū)的觀眾通過(guò)50 mbps或者更高的網(wǎng)速傳輸5000kbps、1080p的視頻,你很可能不會(huì)出現(xiàn)任何傳輸問(wèn)題。但是如果是向相同地區(qū)的觀眾以40mbps網(wǎng)速傳輸8K視頻,那么使用200%受限VBR就有點(diǎn)嚇人了。當(dāng)然,如果是3G連接上的500kbps 200%受限VBR,那么使用CBR(或110%受限VBR)聽(tīng)起來(lái)就好多了。
這一切所帶來(lái)的質(zhì)量影響都有哪些?
表1顯示了真實(shí)世界中足球視頻片段所使用的四種模式的得分。平均碼率非常相似,峰值碼率差異明顯。整體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 碼率控制技術(shù)的質(zhì)量影響
最大的不同在低幀分值(審校者注:指以幀的粒度看VMAF分?jǐn)?shù),其最低單幀VMAF分),即瞬態(tài)質(zhì)量問(wèn)題的指標(biāo),其中CBR比200%受限VBR低了約5.5分。這表示一些觀眾有可能注意到瞬間出現(xiàn)的問(wèn)題。有趣的是,在200%受限VBR和150%受限VBR的低幀VMAF之間只有1分之差,150%受限VBR和110%受限VBR之間有兩分之差。
為了進(jìn)一步探索,我對(duì)比了莫斯科國(guó)立大學(xué)視頻質(zhì)量衡量工具中的CBR和200%受限VBR文件(圖3)。
上圖是整個(gè)視頻文件播放期間,CBR和200%受限VBR文件的VMAF分值,其中CBR為紅色,200%受限VBR為綠色。
下圖是上圖中突出顯示區(qū)域的放大圖(大致為2100幀到3400幀),紅色鐘乳石狀所表示的幀中的CBR質(zhì)量明顯低于VBR。
圖3 使用200%受限VBR編碼的測(cè)試文件
在圖中,你可以在右下角看到Show frame按鈕。在這段視頻中,使用了相當(dāng)保守的編碼參數(shù),CBR幀和VBR幀之間的區(qū)別幾乎忽略不計(jì),因?yàn)槠渲凶蠲黠@的差異只有1~2幀。
其他視頻片段中,如果使用較低的碼率編碼,那么瞬態(tài)問(wèn)題就會(huì)更加明顯。所以大部分VOD生產(chǎn)商為了避免這些問(wèn)題選擇使用VBR(而非CBR),尤其是在向高帶寬觀眾分發(fā)1080p視頻時(shí)。
有趣的是,Apple在HLS Authoring Specifications中支持了200%受限VBR,其說(shuō)明如下:“1.30. 對(duì)于VOD內(nèi)容來(lái)說(shuō),峰值碼率不應(yīng)該超過(guò)平均碼率的200%。”但是200%受限VBR是否適用于高幀率8K內(nèi)容(可能需要40mbps才能達(dá)到可接受的質(zhì)量)還有待觀察。
現(xiàn)在讓我們來(lái)總結(jié)一下,CBR在成本和可傳輸性上勝出一籌,而VBR在整體質(zhì)量上扳回一局。然而,CBR所帶來(lái)的瞬態(tài)質(zhì)量問(wèn)題風(fēng)險(xiǎn)卻是實(shí)實(shí)在在的。
CRF:恒定碼率系數(shù)
使用CBR和VBR時(shí),你需要選擇一個(gè)目標(biāo)碼率,編碼器會(huì)調(diào)整視頻質(zhì)量以達(dá)到該目標(biāo)。這種方法的問(wèn)題是,如果你對(duì)所有視頻片段使用了相同的碼率階梯,那么就會(huì)在容易編碼的視頻(如近距離講話視頻)上浪費(fèi)很多不必要的帶寬。
圖4顯示了使用200%受限VBR編碼、目標(biāo)碼率為5mbps(與足球視頻相同)的近距離人物講話視頻。平均碼率和峰值碼率與上面的足球視頻一致,但是VMAF分值為97.61。
研究顯示,VMAF值一旦超過(guò)93分,觀眾便無(wú)法感知。這也是我推薦生產(chǎn)商把VMAF目標(biāo)值設(shè)置為95作為上限的原因。如下圖所示,使用該視頻,你可以減少至少60%的碼率,但仍然能夠達(dá)到VMAF 95的目標(biāo)。
圖4 VBR編碼的問(wèn)題在于,即使對(duì)于該視頻來(lái)說(shuō)數(shù)據(jù)率和質(zhì)量水平過(guò)高,它也會(huì)達(dá)到目標(biāo)碼率
所以,當(dāng)使用CBR和VBR編碼時(shí),編碼器會(huì)調(diào)整所需的視頻質(zhì)量進(jìn)而達(dá)到目標(biāo)碼率。相比之下,使用CRF編碼(Constant Rate Factor Encoding,一種單pass編碼模式),你選擇一種目標(biāo)質(zhì)量,編碼器會(huì)通過(guò)調(diào)整碼率達(dá)到該質(zhì)量水平。CRF值分布為從0到51,數(shù)值越低,質(zhì)量越高。使用CRF和FFmpeg編碼如下所示:
ffmpeg -i input_file -crf 23 output_file
CRF適用于存檔或者生成需上傳和轉(zhuǎn)碼的mezzanine文件。然而,從可傳輸性的角度來(lái)說(shuō),它并不是最理想的方法:因?yàn)槟悴⒉恢缹a(chǎn)生的數(shù)據(jù)率,直到你編碼了文件。
在人物近距離講話視頻中,CRF值22生成了平均碼率為1878kbps和VMAF分值為96.29的文件,比VBR編碼的碼率降低了60%以上,且質(zhì)量沒(méi)有明顯影響。
然而,在足球視頻中,CRF值22產(chǎn)生了10650的平均碼率,這對(duì)于1080p編碼階梯來(lái)說(shuō)太高了。
如何才能在確保合理碼率限制的同時(shí)節(jié)省可用帶寬?將CRF和碼率上限組合使用就可以,也就是Capped CRF。
Capped CRF :上限恒定碼率系數(shù)
顧名思義,Capped CRF就是將CRF值與碼率上限組合使用。相關(guān)的命令如下所示:
-crf 22 -maxrate 5000k -bufsize 10000k
圖5顯示了在人物近距離講話和芭蕾舞交替出現(xiàn)的視頻中,該命令所生成的結(jié)果。同樣,雖然最大碼率不是一條水平直線,但芭蕾舞GOP與5000kbps線非常接近,碼率峰值為6302kbps。在操作中,編碼器使用CRF值對(duì)人物近距離講話區(qū)域進(jìn)行編碼,并在芭蕾舞區(qū)域應(yīng)用Capped CRF。
這與200%受限VBR相比效果如何?
200%受限VBR編碼產(chǎn)生了一個(gè)平均的VMAF分值:97.30(以及碼率5041 kbps)。所以Capped CRF編碼節(jié)省了約30%帶寬,并產(chǎn)生一個(gè)96.55的平均VMAF值,與200%受限VBR編碼相比,它們之間的差異肉眼無(wú)法察覺(jué)。然而,如你所見(jiàn),碼率變化顯著,所以在使用受限網(wǎng)絡(luò)連接時(shí),很可能會(huì)影響傳輸能力。
圖5 Capped CRF與人物近距離講話和芭蕾舞交替出現(xiàn)的視頻
在含有大量動(dòng)作的視頻中,如足球測(cè)試視頻中,CRF值在視頻中許多區(qū)域所產(chǎn)生的碼率要高于上限。在這些區(qū)域,碼率由上限控制,而非CRF值。這種情況下,Capped CRF不會(huì)節(jié)省太多帶寬,因?yàn)榫幋a器在不超過(guò)上限的情況下生成特定質(zhì)量的視頻區(qū)域很少。
表2顯示了分別使用200%受限VBR編碼和Capped CRF(CRF 22/5 上限)的足球視頻的碼率數(shù)據(jù)和VMAF分值。可以看到它們的平均碼率相近,但使用了Capped CRF的視頻的峰值碼率卻低很多。平均VMAF分值也非常相似。
表2 足球視頻;200%受限VBR vs. Capped CRF
而使用CBR,最主要的差異就是瞬態(tài)質(zhì)量問(wèn)題的指標(biāo)——低幀VMAF。圖6顯示了來(lái)自VQMT的對(duì)比結(jié)果。同樣,我在觀察主要的鐘乳石狀所代表的幀的位置時(shí),沒(méi)有發(fā)現(xiàn)明顯的差異。
然而,其中CBR只是提高了可傳輸性,Capped CRF被應(yīng)用于容易編碼的文件中,可以提升可傳輸性且節(jié)省帶寬。本質(zhì)上,這使得Capped CRF成為一種Per-Title編碼技術(shù),你可以通過(guò)幾乎所有基于FFmpeg的編碼工具(直播和點(diǎn)播)來(lái)實(shí)現(xiàn)它。
圖6 200%受限VBR與Capped CRF之間的對(duì)比
Capped CRF也不是銀彈。你應(yīng)該運(yùn)行自己的測(cè)試文件,然后確定視頻中的瞬態(tài)問(wèn)題是否比我在足球視頻中看到的更明顯。如果瞬態(tài)問(wèn)題很少,而你在考慮使用Capped CRF,這個(gè)時(shí)候你應(yīng)該嘗試不同的CRF級(jí)別(參見(jiàn):
https://streaminglearningcenter.com/learning/choosing-the-optimal-crf-value-for-capped-crf-encoding.html)。
同樣,并不是所有編碼器和Codec都能夠使用CRF和Capped CRF;如果你正在使用第三方的編碼器(該編碼器并不是基于FFmpeg,且沒(méi)有使用x264、x265、libvpx-VP9或者libaom-AV1 Codec),那么CRF和Capped CRF就可能不可用。
表3總結(jié)了上文討論的四種編碼方法的優(yōu)點(diǎn)和缺點(diǎn)。
表3 四種碼率控制模式對(duì)比
審核編輯 :李倩
-
編解碼器
+關(guān)注
關(guān)注
0文章
270瀏覽量
24595 -
CBR
+關(guān)注
關(guān)注
0文章
14瀏覽量
11593
原文標(biāo)題:了解速率控制模式:什么是 CBR、VBR、CRF和Capped-CRF?
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
常見(jiàn)的PFC拓?fù)浼軜?gòu)及控制方法

IGBT在中頻電源中常見(jiàn)的故障模式及解決方法

EE-102:模式D和ADSP-218x引腳兼容性-常見(jiàn)問(wèn)題

誤碼率測(cè)試儀的技術(shù)原理和應(yīng)用場(chǎng)景
內(nèi)置誤碼率測(cè)試儀(BERT)和采樣示波器一體化測(cè)試儀器安立MP2110A

數(shù)字信號(hào)的通信指標(biāo)誤碼率體現(xiàn)了什么
MPS獨(dú)特的固定頻率電源控制方法:零延遲脈寬調(diào)制控制

常見(jiàn)的電機(jī)速度控制方法
伺服驅(qū)動(dòng)器控制模式有哪幾種?
伺服電機(jī)常用的三種控制模式有哪些
伺服電機(jī)位置模式和速度模式的區(qū)別
淺談伺服電機(jī)的控制模式
多模式 PFC + 電流模式 LLC 組合控制器

快速搞懂GPIO控制器的六種模式

評(píng)論