Netflix:用神經網絡改善視頻質量

livevideostack 發佈 2022-12-13T10:34:07.327620+00:00

我們想感謝以下人對「深度降分器」項目的幫助:Lishan Zhu, Liwei Guo, Aditya Mavlankar, Kyle Swanson and Anush Moorthy , Mariana Afonso and Lukas Krasula , Ameya Vasani , Prudhvi Kumar Chaganti , Chris Pham and Andy Rhines , Amer Ather , the Netflix Metaflow team and Prof. Alan Bovik .

作者:Christos G. Bampis,Li-Heng Chen and Zhi Li

譯者:李翔

審校:Zhi Li

當你在狂熱地觀看最新一季的 《怪奇物語》或《黑錢勝地》時,我們努力為你提供最好的視頻質量。為此,我們不斷突破流媒體視頻質量的界限,並利用最好的視頻技術。例如,我們投資於下一代、免版稅的編解碼器和複雜的視頻編碼優化。最近,我們為平台添加了另一個強大的工具:用於視頻降解析度的神經網絡。在這篇技術博客中,我們描述了我們是如何利用神經網絡改善Netflix視頻質量的,我們面臨的挑戰以及未來的發展。

我們如何在Netflix視頻編碼流程中使用神經網絡?粗略地說,在我們的編碼視頻流程中有兩個步驟:

1. 視頻預處理,它包括編碼前應用於高質量源視頻的任何轉換。視頻降解析度是這裡最相關的例子,它根據不同設備的屏幕解析度定製我們的編碼,並在不同的網絡條件下優化圖像質量。通過視頻降解析度,一個源視頻能產生多個解析度的視頻。例如,一個4K源視頻將被縮小到1080p、720p、540p等。這通常是通過傳統的濾波器來完成的,比如Lanczos算法.

2. 視頻編碼,使用傳統的視頻編解碼器,就像AV1。編碼通過利用視頻中存在的空間和時間冗餘,大大減少了需要通過流傳輸到設備的視頻數據量。

我們認為,我們可以利用神經網絡來提高Netflix的視頻質量,方法是用神經網絡代替傳統的濾波器來進行視頻降解析度。這種被我們稱為「深度降分器」的方法有幾個關鍵的優點:

• 一種基於學習的方法可以提高視頻質量,並針對Netflix內容進行定製。

• 它可以看做是一個直接替代方案,也就是說,我們不需要在Netflix編碼端或客戶端設備端進行任何其他更改。數以百萬計的支持Netflix流媒體的設備自動受益於此解決方案。

• 一個基於神經網絡的視頻處理模塊可以被獨立開發,可以在視頻降解析度之外使用,並且可以與不同的編解碼器相結合。

當然,我們相信神經網絡在整個視頻應用中的革命性潛力,不僅僅是視頻降解析度。雖然傳統的視頻編解碼器仍然流行,基於神經網絡的視頻編碼工具蓬勃發展,並縮小了壓縮效率方面的性能差距。深度降分器是我們用神經網絡改善視頻質量的實際方法。

Instagram會為用戶上傳的視頻創建多種編碼版本,不同版本間各有特性。而只要利用一種類型的視頻編碼輔助生成另一種類型,即可將觀看次數較少的視頻所占用的編碼計算資源減少94%。由此釋放出的更多資源可用於生成更多高清編碼視頻流,讓更多用戶獲得更清晰、更流暢的播放體驗。

基於神經網絡的視頻降解析度方法

深度降分器是一種神經網絡架構,旨在通過學習更高質量的視頻尺度器來提高端到端的視頻質量。它由兩個構建模塊組成,一個預處理模塊和一個調整大小模塊。預處理塊的目的是在調整大小操作之前對視頻信號進行預濾波。調整大小塊產生作為編碼器輸入的低解析度視頻信號。我們採用了自適應網絡設計,適用於各種各樣的實際編碼中會用到的解析度。

深壓縮模型的體系結構,由預處理模塊和調整大小模塊組成。

在訓練過程中,我們的目標是生成最佳的降分表示,以使得在升分以後後均方誤差被最小化。因為常規的視頻編碼器是不能微分的,我們在將其排除在考慮之外。在客戶端的升分器是bicubic的前提下,我們集中訓練一個魯棒的深度降分器。我們的訓練方法是直觀的,並且產生的降分器並不和特定的編碼器及其相關實現方式相關聯。儘管如此,我們需要對訓練結果進行徹底的評估,以證明它在Netflix編碼流程里的廣泛應用潛力。

利用神經網絡改善Netflix視頻質量

深度降分器的目標是提高Netflix端到端的視頻質量。通過我們的實驗,包括客觀測量和主觀視覺測試,我們發現深度深壓縮提高了各種傳統視頻編解碼器和編碼配置的質量。

例如,對於VP9編碼,並假設一個bicubic升分器,我們測量到深度降分器比傳統的Lanczos降分方法平均提高了5.4%的VMAF Bjøntegaard-Delta (BD)率。我們還測量了約4.4%的VMAF-NEG BD率的增益。下面我們展示了Netflix標題中的一個例子。深度降分器(紅點)在類似比特率下提供了更高的VMAF,或在更低比特率下產生類似的VMAF分數。

除了客觀的測試以外,我們還進行了主觀測試研究,以驗證深度降分器的主觀視覺改善。在我們的基於偏好的視覺測試中,我們發現,約77%的測試受試者在編碼配方和升級算法的廣泛範圍內更喜歡深度降分器呈現的最終質量。受試者報告了更好的細節保存和更清晰的視覺外觀。個可視化的例子如下所示。

左:Lanczos降分器;右:深度降分器。這兩個視頻編碼與VP9在相同的比特率和升級到全高清解析度(1920x1080)。您可能需要放大查看視覺差異。

我們還進行了A/B測試,以了解深度降分器對流媒體播放的整體影響,並嘗試檢測任何設備的播放問題。通過A/B測試,我們看到了QoE的改善,並確認了深度降分器並沒有對某些設備產生不利的影響。

我們如何有效地大規模部署神經網絡?

鑑於我們的規模,應用神經網絡可能導致編碼成本的顯著增加。為了有一個可行的解決方案,我們採取了幾個步驟來提高成本效率。

• 深度降分器的神經網絡架構的設計原則是:在避免負面的視覺質量影響的前提下提升計算效率。例如,我們發現只需幾個神經網絡層就足以滿足我們的需求。為了進一步減少輸入通道的使用,我們只對亮度通道採用神經網絡,而對色度通道採用傳統的Lanczos濾波器進行縮放。

• 深度降分器的實現使用了FFmpeg軟體的濾波器接口。這樣的好處是可以與其他視頻轉換(如像素格式轉換)等已實現的功能一起運行。我們的過濾器可以在CPU和GPU上運行。在一個CPU上,我們利用Intel的oneDnn以進一步減少延時。

將神經網絡集成到我們的下一代編碼平台中

Netflix 的編碼技術團隊和媒體雲工程團隊共同創新開發了名為Cosmos 的下一代編碼平台。通過深度降分器在其上面的實現,我們很好地展示了Cosmos能夠如何推動Netflix未來的媒體創新。下圖顯示了深度降分器是如何被集成到Cosmos的編碼微服務中來的。

將神經網絡集成到我們的下一代編碼平台中

Cosmos編碼微服務可以應用於多個編碼工作流程。例如,可以調用其服務來分析視頻的複雜度,或者生成用於實際Netflix流媒體的編碼。其底層函數是一個無伺服器層,專門用於運行無狀態和密集型計算。在底層函數調用中,我們的深度降分器是在編碼之前應用的。在Cosmos的推動下,我們可以利用Titus基礎設施並在我們所有的多CPU/GPU環境中大規模運行深度降分器。

下一步

深度降分器為在Netflix視頻編碼中的更多地使用神經網絡應用鋪平了道路。我們的創新嘗試才剛剛開始。例如,我們正在研究一些其他的案例,比如視頻去噪。我們也在尋找更有效的大規模部署神經網絡的方案。我們也在研究如何在下一代編碼器中應用基於神經網絡的工具。歸根結底,我們熱衷於使用新技術來提高Netflix的視頻質量,只為你的觀感!

我們想感謝以下人對「深度降分器」項目的幫助:
Lishan Zhu, Liwei Guo, Aditya Mavlankar, Kyle Swanson and Anush Moorthy (Video Image and Encoding team), Mariana Afonso and Lukas Krasula (Video Codecs and Quality team), Ameya Vasani (Media Cloud Engineering team), Prudhvi Kumar Chaganti (Streaming Encoding Pipeline team), Chris Pham and Andy Rhines (Data Science and Engineering team), Amer Ather (Netflix performance team), the Netflix Metaflow team and Prof. Alan Bovik (University of Texas at Austin).

原文連結:https://netflixtechblog.com/for-your-eyes-only-improving-netflix-video-quality-with-neural-networks-5b8d032da09c

關鍵字: