天天看點

Netflix:我們是如何評估Codec性能的?編解碼器對比中的因素編碼器的實作編碼設定方法内容度量編解碼器比較結果自适應流媒體視角的結果要點

文 / 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中美味的食物片段的要求。

Netflix:我們是如何評估Codec性能的?編解碼器對比中的因素編碼器的實作編碼設定方法内容度量編解碼器比較結果自适應流媒體視角的結果要點
廚師的桌子

編解碼器對比中的因素

在已發表的許多比較視訊編解碼器性能的文章中。這些文章的讀者可能經常被它們看似沖突的結論弄糊塗。一篇文章可能聲稱編解碼器A比編解碼器B好15%,而下一篇文章可能斷言編解碼器B比編解碼器A好10%。

Netflix:我們是如何評估Codec性能的?編解碼器對比中的因素編碼器的實作編碼設定方法内容度量編解碼器比較結果自适應流媒體視角的結果要點

如果深入研究這個話題就會發現,這些明顯的沖突是可以預料到的。為什麼?因為測試方法和内容在視訊編解碼器的評估中起着至關重要的作用。選擇不同的測試條件可能導緻不同的結果。接下來我們将讨論影響視訊編解碼器評估的幾個因素:

1. 編碼器的實作

2. 編碼器的設定

3. 方法

4. 内容

5. 度量

在适用的情況下,我們對傳統的比較方法和自适應流媒體的方法進行了區分。

編碼器的實作

視訊編碼标準有軟體和硬體的實作,基于不同的目的,比如研究領域、廣播、或者流媒體。 “參考編碼器”是在視訊标準化過程和研究期間使用的軟體實作,并且作為實作者的參考軟體。通常,這是标準的第一個實作,一般不用于産品。之後,由開源社群或商業實體開發的産品編碼器出現。這些是大多數公司為其編碼需求和應用中的速度和資源的限制而部署的實際實作。是以,參考和産品編碼器的性能會大不相同。此外,标準配置檔案和特定版本會影響觀測到的性能,特别是對于新标準的還不怎麼成熟的實作。Netflix部署了在流媒體應用中以獲得最高主觀品質的産品編碼器。

編碼設定

編碼參數,例如編碼的次數,并行化工具,碼率控制,主觀品質調節等,在結果中引入了高度的可變性。這些編碼設定的選擇主要是由應用背景而決定的。

标準化機構傾向于使用測試條件,讓他們将一種工具與另一種工具進行比較,通常最大化特定的客觀名額并減少不同實驗的可變性。例如,通常禁用碼率控制和主觀品質調節,以專注于核心編碼工具的有效性。

Netflix編碼配方專注于實作最佳品質,支援可用的編碼器工具,增強主觀品質,進而減少編碼速度或編碼器占用記憶體空間等名額的權重,盡管這些名額在其他應用中至關重要。

方法

編解碼器标準化中的測試方法建立了明确定義的“通用測試條件”,以評估新的編碼工具并允許實驗的可重複性。常見的測試條件包括一組相對較小的測試序列(1到10秒的單次拍攝),這些測試序列僅在輸入分辨率下使用一組固定的品質參數進行編碼。針對這些品質點中的每一個收集的品質(PSNR)和比特率,并用于計算平均比特率節省,即所謂的BD率,如下圖所示。

Netflix:我們是如何評估Codec性能的?編解碼器對比中的因素編碼器的實作編碼設定方法内容度量編解碼器比較結果自适應流媒體視角的結果要點

雖然标準中的方法已經适用于其預期目的,但在自适應流媒體界中還需要考慮其他因素。值得注意的是,可以選擇以不同的比特率和分辨率提供相同視訊的多個版本,以比對網絡帶寬和用戶端處理和顯示功能。内容,編碼和顯示分辨率不一定捆綁在一起。去掉這個限制意味着可以通過以不同分辨率進行編碼來優化品質。

Netflix:我們是如何評估Codec性能的?編解碼器對比中的因素編碼器的實作編碼設定方法内容度量編解碼器比較結果自适應流媒體視角的結果要點

每個分辨率碼率 - 品質曲線交叉,是以每個編碼分辨率都有一系列碼率可以提供最佳品質。通過在整個範圍内選擇每個碼率點的最佳曲線來導出“凸包”。然後,在凸包上計算BD-rate差,而不是使用單分辨率曲線。

Netflix:我們是如何評估Codec性能的?編解碼器對比中的因素編碼器的實作編碼設定方法内容度量編解碼器比較結果自适應流媒體視角的結果要點

與單一分辨率相比,這種考慮多分辨率的靈活性帶來了非常顯著品質提高。動态優化器(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及其目前部署狀态的資訊。

Netflix:我們是如何評估Codec性能的?編解碼器對比中的因素編碼器的實作編碼設定方法内容度量編解碼器比較結果自适應流媒體視角的結果要點

VMAF值與主觀意見之間的近似對應關系

使用度量标準時的兩個相關方面是計算它們的分辨率和時間平均值:

1. 縮放度量:VMAF不是以編碼分辨率計算的,而是以顯示分辨率計算的,這更好地模拟了我們的使用者觀看體驗。這并不是VMAF所獨有的,因為PSNR和其他名額可以通過适當縮放視訊應用于任何需要的分辨率。

2. 時間平均:度量是基于每幀計算的。通常,算術平均值是獲得整個序列的時間平均值的一種選擇方法。我們使用調和平均值,它給異常值提供了比算術平均值更多的權重。使用調和平均值的原因是,如果在你正在觀看的節目的鏡頭中有很少的幀看起來很糟糕,那麼不管剩下的鏡頭品質有多好,你的體驗都不會那麼好。調和VMAF的首字母縮寫詞是HVMAF。

編解碼器比較結果

将上述因素應用到實際中,我們給出了兩種不同的編解碼器比較方法的結果,一種是傳統的,另一種是自适應流媒體的。

測試了三種常用的視訊編碼标準:ITU.T和ISO / MPEG的H.264 / AVC和H.265 / HEVC以及Google的VP9。對于每個标準,我們使用參考編碼器和産品編碼器。

采用傳統方法的結果

傳統方法對一組短序列使用固定QP(品質)編碼。

Netflix:我們是如何評估Codec性能的?編解碼器對比中的因素編碼器的實作編碼設定方法内容度量編解碼器比較結果自适應流媒體視角的結果要點

編碼器設定如下表所示。

• 方法:生成内容分辨率下每個序列的五個固定品質編碼。

• 内容:來自MPEG通用測試條件集(主要來自JVET)的14條标準序列和來自開放媒體聯盟(AOM)的14條标準序列。所有序列都是1080p。這些是短片段:MPEG集約10秒,AOM集約1秒。大多數情況下,它們是單場景序列。

• 度量标準:使用經典的PSNR為亮度分量計算BD-rate節省。

結果總結在下表中。BD-rate是相對于x264的百分比給出的。正數表示比特率的平均增加,而負數表示比特率減少。

Netflix:我們是如何評估Codec性能的?編解碼器對比中的因素編碼器的實作編碼設定方法内容度量編解碼器比較結果自适應流媒體視角的結果要點

使用6個PSNR調諧視訊編碼器的PSNR的BD-rate(%)

有趣的是,并沒有看到使用MPEG集會有利于HEVC編碼器,或使用AOM集會有利于VP9編碼器。

自适應流媒體視角的結果

本節介紹一個更全面的實驗。它建立在傳統方法之上,修改了每個因素的某些方面:

編碼器設定:更改設定以包含感覺調整。其餘的設定保持原先的定義。

Netflix:我們是如何評估Codec性能的?編解碼器對比中的因素編碼器的實作編碼設定方法内容度量編解碼器比較結果自适應流媒體視角的結果要點

方法:每個場景都以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最相關的操作點。

Netflix:我們是如何評估Codec性能的?編解碼器對比中的因素編碼器的實作編碼設定方法内容度量編解碼器比較結果自适應流媒體視角的結果要點

BD-rate(以%為機關)使用6個視訊編碼器的HVMAF調整感覺品質。BD-rates百分比使用x264作為參考。

要點

編碼器,編碼設定,方法,測試内容和度量應在任何編解碼器比較中進行較長的描述,因為它們會極大地影響結果。如上所述,對測試條件的不同選擇導緻對編碼器的相對性能的不同結論。

考慮到Netflix等服務壓縮和提供的大量視訊,傳統和自适應流媒體方法不一定會收斂到相同的結果,如果視訊編碼社群在比較中考慮自适應流媒體的應用,這将是有益的。例如,在凸包上計算度量或将HVMAF數添加到報告的度量中相對容易。

就像偉大的食譜一樣,視訊編碼也有核心的元素; VMAF,動态優化和出色的編解碼器。憑借這些材料和不斷創新,我們正在努力完善我們的配方 - 以盡可能低的比特率進行高品質的視訊編碼。

————————————————

版權聲明:本文為CSDN部落客「LiveVideoStack_」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:

https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/85814638
「視訊雲技術」你最值得關注的音視訊技術公衆号,每周推送來自阿裡雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。
Netflix:我們是如何評估Codec性能的?編解碼器對比中的因素編碼器的實作編碼設定方法内容度量編解碼器比較結果自适應流媒體視角的結果要點

繼續閱讀