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