作者:Christos G. Bampis,Li-Heng Chen and 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%的測試受試者在編碼配方和升級算法的廣泛范圍內更喜歡深度降分器呈現的最終質量。受試者報告了更好的細節保存和更清晰的視覺外觀。個可視化的例子如下所示。
我們還進行了A/B測試,以了解深度降分器對流媒體播放的整體影響,并嘗試檢測任何設備的播放問題。通過A/B測試,我們看到了QoE的改善,并確認了深度降分器并沒有對某些設備產生不利的影響。
我們如何有效地大規模部署神經網絡?
鑒于我們的規模,應用神經網絡可能導致編碼成本的顯著增加。為了有一個可行的解決方案,我們采取了幾個步驟來提高成本效率。
?深度降分器的神經網絡架構的設計原則是:在避免負面的視覺質量影響的前提下提升計算效率。例如,我們發現只需幾個神經網絡層就足以滿足我們的需求。為了進一步減少輸入通道的使用,我們只對亮度通道采用神經網絡,而對色度通道采用傳統的Lanczos濾波器進行縮放。
?深度降分器的實現使用了FFmpeg軟件的濾波器接口。這樣的好處是可以與其他視頻轉換(如像素格式轉換)等已實現的功能一起運行。我們的過濾器可以在CPU和GPU上運行。在一個CPU上,我們利用Intel的oneDnn以進一步減少延時。
將神經網絡集成到我們的下一代編碼平臺中
Netflix 的編碼技術團隊和媒體云工程團隊共同創新開發了名為Cosmos 的下一代編碼平臺。通過深度降分器在其上面的實現,我們很好地展示了Cosmos能夠如何推動Netflix未來的媒體創新。下圖顯示了深度降分器是如何被集成到Cosmos的編碼微服務中來的。
將神經網絡集成到我們的下一代編碼平臺中
Cosmos編碼微服務可以應用于多個編碼工作流程。例如,可以調用其服務來分析視頻的復雜度,或者生成用于實際Netflix流媒體的編碼。其底層函數是一個無服務器層,專門用于運行無狀態和密集型計算。在底層函數調用中,我們的深度降分器是在編碼之前應用的。在Cosmos的推動下,我們可以利用Titus基礎設施并在我們所有的多CPU/GPU環境中大規模運行深度降分器。
下一步
深度降分器為在Netflix視頻編碼中的更多地使用神經網絡應用鋪平了道路。我們的創新嘗試才剛剛開始。例如,我們正在研究一些其他的案例,比如視頻去噪。我們也在尋找更有效的大規模部署神經網絡的方案。我們也在研究如何在下一代編碼器中應用基于神經網絡的工具。
審核編輯:郭婷
-
神經網絡
+關注
關注
42文章
4772瀏覽量
100857 -
編解碼器
+關注
關注
0文章
259瀏覽量
24246
原文標題:Netflix:用神經網絡改善視頻質量
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論