Netflix:我们是如何评估Codec性能的?
Netflix會定期評估現有和即將推出的視頻編解碼器,不斷優化視頻編碼技術以提供更高質量的服務。本文介紹了視頻編碼器性能評估中的幾項重要元素以及如何從傳統與自適應流媒體兩種視角進行編解碼器性能對比。本文來自Netflix技術博客,LiveVideoStack進行了翻譯。
文 / Joel Sole,Liwei Guo,Andrey Norkin,Mariana Afonso,Kyle Swanson,Anne Aaron
譯 / 許海燕
審校 /?Yunfei
原文:?
https://medium.com/netflix-techblog/performance-comparison-of-video-coding-standards-an-adaptive-streaming-perspective-d45d0183ca95
“這是我對人們的建議:學習如何烹飪,嘗試新的食譜,從錯誤中吸取教訓,無所畏懼,最重要的是享受樂趣”? - Julia Child(美國廚師,作家和電視名人)
在Netflix,我們不斷改進配方,以盡可能高的質量為您喜愛的節目和電影提供服務。這道菜中的一個基本元素是視頻編碼技術,我們用它將視頻內容轉換為壓縮比特流(適用于您正好在Netflix上使用的任何帶寬)。視頻編碼界已經做了大量的工作來開發視頻編碼標準(編解碼器),目標是實現更好的壓縮比。因此,一項基本任務是評估我們使用的材料的質量,在Netflix編碼廚房中,我們通過定期評估現有和即將推出的視頻編解碼器和編碼器的性能來實現這一目標。我們選擇最新鮮和最好的編碼技術來調味我們的視頻內容, 以滿足從《Salt, Fat, Acid, Heat》這樣的紀錄片到Chef’s Table中美味的食物片段的要求。
廚師的桌子
編解碼器對比中的因素
在已發表的許多比較視頻編解碼器性能的文章中。這些文章的讀者可能經常被它們看似矛盾的結論弄糊涂。一篇文章可能聲稱編解碼器A比編解碼器B好15%,而下一篇文章可能斷言編解碼器B比編解碼器A好10%。
如果深入研究這個話題就會發現,這些明顯的矛盾是可以預料到的。為什么?因為測試方法和內容在視頻編解碼器的評估中起著至關重要的作用。選擇不同的測試條件可能導致不同的結果。接下來我們將討論影響視頻編解碼器評估的幾個因素:
1. 編碼器的實現
2. 編碼器的設置
3. 方法
4. 內容
5. 度量
在適用的情況下,我們對傳統的比較方法和自適應流媒體的方法進行了區分。
編碼器的實現
視頻編碼標準有軟件和硬件的實現,基于不同的目的,比如研究領域、廣播、或者流媒體。 “參考編碼器”是在視頻標準化過程和研究期間使用的軟件實現,并且作為實現者的參考軟件。通常,這是標準的第一個實現,一般不用于產品。之后,由開源社區或商業實體開發的產品編碼器出現。這些是大多數公司為其編碼需求和應用中的速度和資源的限制而部署的實際實現。因此,參考和產品編碼器的性能會大不相同。此外,標準配置文件和特定版本會影響觀測到的性能,特別是對于新標準的還不怎么成熟的實現。Netflix部署了在流媒體應用中以獲得最高主觀質量的產品編碼器。
編碼設置
編碼參數,例如編碼的次數,并行化工具,碼率控制,主觀質量調節等,在結果中引入了高度的可變性。這些編碼設置的選擇主要是由應用背景而決定的。
標準化機構傾向于使用測試條件,讓他們將一種工具與另一種工具進行比較,通常最大化特定的客觀指標并減少不同實驗的可變性。例如,通常禁用碼率控制和主觀質量調節,以專注于核心編碼工具的有效性。
Netflix編碼配方專注于實現最佳質量,支持可用的編碼器工具,增強主觀質量,從而減少編碼速度或編碼器占用內存空間等指標的權重,盡管這些指標在其他應用中至關重要。
方法
編解碼器標準化中的測試方法建立了明確定義的“通用測試條件”,以評估新的編碼工具并允許實驗的可重復性。常見的測試條件包括一組相對較小的測試序列(1到10秒的單次拍攝),這些測試序列僅在輸入分辨率下使用一組固定的質量參數進行編碼。針對這些質量點中的每一個收集的質量(PSNR)和比特率,并用于計算平均比特率節省,即所謂的BD率,如下圖所示。
雖然標準中的方法已經適用于其預期目的,但在自適應流媒體界中還需要考慮其他因素。值得注意的是,可以選擇以不同的比特率和分辨率提供相同視頻的多個版本,以匹配網絡帶寬和客戶端處理和顯示功能。內容,編碼和顯示分辨率不一定捆綁在一起。去掉這個約束意味著可以通過以不同分辨率進行編碼來優化質量。
每個分辨率碼率 - 質量曲線交叉,因此每個編碼分辨率都有一系列碼率可以提供最佳質量。通過在整個范圍內選擇每個碼率點的最佳曲線來導出“凸包”。然后,在凸包上計算BD-rate差,而不是使用單分辨率曲線。
與單一分辨率相比,這種考慮多分辨率的靈活性帶來了非常顯著質量提高。動態優化器(DO)方法將此概念推廣到具有多個場景的序列。DO對視頻中所有場景的凸包進行操作,通過尋找質量,分辨率和場景編碼的最佳壓縮路徑,共同優化整體碼率 - 失真。
DO是在這個技術博客(https://medium.com/netflix-techblog/dynamic-optimizer-a-perceptual-video-encoding-optimization-framework-e19f1e3a277f)中介紹的。結果顯示多場景視頻可以節省25%的BD-rate。使DO特別適用于自適應流和編解碼器比較的三個特征是:
1. 它與編解碼器無關,因為它可以以相同的方式應用于任何編碼器。
2. 它可以使用任何指標來指導其優化過程。
3. 它消除了對編碼器中各種場景之間的高級碼率控制的需要。較低級別的碼率控制,如幀內的自適應量化,是仍然有用的,因為DO不會低于場景級別。
DO,如最初提出的,是一種非實時的,計算代價高昂的算法。然而,由于窮舉搜索,DO可被視為高層碼率控制算法的性能上限。
內容
為了公平比較,測試內容應該要平衡,涵蓋各種不同類型的視頻(普通視頻與動畫片,平緩運動和復雜運動等)或者反映當前應用的內容。
在編解碼器的開發過程中不應使用測試內容。Netflix制作并公開了多場景長視頻序列,例如“El Fuente”或“Chimera”,以擴展可用于研發的視頻,并緩解將訓練和測試內容混淆的問題。在內部,我們使用目錄中的完整標題廣泛地評估算法。
度量
傳統上,PSNR因其簡單而成為一個度量標準的選擇,并且它與主觀意見得分相當匹配。其他指標,如VIF或SSIM,與主觀得分有更好的相關聯。度量通常是根據編碼分辨率計算的。
Netflix 在整個視頻生產線中高度依賴VMAF。VMAF是一種感知視頻質量度量標準,用于模擬人類視覺系統。在廣泛的質量范圍和內容上,它與主觀意見的相關性比PSNR更好。VMAF可在自適應流傳輸中的各種比特率和分辨率上實現可靠的編解碼器比較。此技術博客(https://medium.com/netflix-techblog/vmaf-the-journey-continues-44b51ee9ed12)有助于了解更多有關VMAF及其當前部署狀態的信息。
VMAF值與主觀意見之間的近似對應關系
使用度量標準時的兩個相關方面是計算它們的分辨率和時間平均值:
1. 縮放度量:VMAF不是以編碼分辨率計算的,而是以顯示分辨率計算的,這更好地模擬了我們的用戶觀看體驗。這并不是VMAF所獨有的,因為PSNR和其他指標可以通過適當縮放視頻應用于任何需要的分辨率。
2. 時間平均:度量是基于每幀計算的。通常,算術平均值是獲得整個序列的時間平均值的一種選擇方法。我們使用調和平均值,它給異常值提供了比算術平均值更多的權重。使用調和平均值的原因是,如果在你正在觀看的節目的鏡頭中有很少的幀看起來很糟糕,那么不管剩下的鏡頭質量有多好,你的體驗都不會那么好。調和VMAF的首字母縮寫詞是HVMAF。
編解碼器比較結果
將上述因素應用到實際中,我們給出了兩種不同的編解碼器比較方法的結果,一種是傳統的,另一種是自適應流媒體的。
測試了三種常用的視頻編碼標準:ITU.T和ISO / MPEG的H.264 / AVC和H.265 / HEVC以及Google的VP9。對于每個標準,我們使用參考編碼器和產品編碼器。
采用傳統方法的結果
傳統方法對一組短序列使用固定QP(質量)編碼。
編碼器設置如下表所示。
? 方法:生成內容分辨率下每個序列的五個固定質量編碼。
? 內容:來自MPEG通用測試條件集(主要來自JVET)的14條標準序列和來自開放媒體聯盟(AOM)的14條標準序列。所有序列都是1080p。這些是短片段:MPEG集約10秒,AOM集約1秒。大多數情況下,它們是單場景序列。
? 度量標準:使用經典的PSNR為亮度分量計算BD-rate節省。
結果總結在下表中。BD-rate是相對于x264的百分比給出的。正數表示比特率的平均增加,而負數表示比特率減少。
使用6個PSNR調諧視頻編碼器的PSNR的BD-rate(%)
有趣的是,并沒有看到使用MPEG集會有利于HEVC編碼器,或使用AOM集會有利于VP9編碼器。
自適應流媒體視角的結果
本節介紹一個更全面的實驗。它建立在傳統方法之上,修改了每個因素的某些方面:
編碼器設置:更改設置以包含感知調整。其余的設置保持原先的定義。
方法:每個場景都以10種不同的分辨率進行編碼,從1920x1080到256x144。DO使用HVMAF進行整體編碼優化。
內容:Netflix的8部完整劇集(如Orange is the New Black、House of Cards或Bojack)被添加到另外兩個測試集中。Netflix的這些劇集是1080p,30fps,8位/分量。在大約8小時的視頻里面,它們包含了很多類型的內容。
度量:HVMAF用于評估這些感知調整的編碼。該度量是在凸包的相關質量范圍內計算的。HVMAF是在將編碼縮放到顯示分辨率(假設為1080p)后計算的,該分辨率也與源內容的分辨率匹配。
此外,我們將結果分成兩個范圍,以可視化不同質量的性能。低范圍是指30到63之間的HVMAF,而高范圍是指63到96之間的HVMAF,這與高主觀質量相關。
HVMAF BD-rates表中高亮顯示的行是Netflix最相關的操作點。
BD-rate(以%為單位)使用6個視頻編碼器的HVMAF調整感知質量。BD-rates百分比使用x264作為參考。
要點
編碼器,編碼設置,方法,測試內容和度量應在任何編解碼器比較中進行詳細描述,因為它們會極大地影響結果。如上所述,對測試條件的不同選擇導致對編碼器的相對性能的不同結論。
考慮到Netflix等服務壓縮和提供的大量視頻,傳統和自適應流媒體方法不一定會收斂到相同的結果,如果視頻編碼社區在比較中考慮自適應流媒體的應用,這將是有益的。例如,在凸包上計算度量或將HVMAF數添加到報告的度量中相對容易。
就像偉大的食譜一樣,視頻編碼也有核心的元素; VMAF,動態優化和出色的編解碼器。憑借這些材料和不斷創新,我們正在努力完善我們的配方 - 以盡可能低的比特率進行高質量的視頻編碼。
精品文章推薦
技術干貨:
VMAF:未畢之旅
2018:視頻標準混戰的元年序幕
網上的無形稅:視頻編解碼器
Demuxed:編解碼器和壓縮的未來
Capped CRF:節省編碼成本和數據流
Netflix:通過可視化和統計學改進用戶QoE
VP9如何給Twitch的電競直播帶來價值?
編解碼器之戰:AV1、HEVC、VP9和VVC
總結
以上是生活随笔為你收集整理的Netflix:我们是如何评估Codec性能的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 音视频技术开发周刊 80期
- 下一篇: 舞台现场直播技术实践