作者:Christos G. Bampis,Li-Heng Chen and Zhi Li
當(dāng)你在狂熱地觀看最新一季的 《怪奇物語(yǔ)》或《黑錢(qián)勝地》時(shí),我們努力為你提供最好的視頻質(zhì)量。為此,我們不斷突破流媒體視頻質(zhì)量的界限,并利用最好的視頻技術(shù)。例如,我們投資于下一代、免版稅的編解碼器和復(fù)雜的視頻編碼優(yōu)化。最近,我們?yōu)槠脚_(tái)添加了另一個(gè)強(qiáng)大的工具:用于視頻降分辨率的神經(jīng)網(wǎng)絡(luò)。在這篇技術(shù)博客中,我們描述了我們是如何利用神經(jīng)網(wǎng)絡(luò)改善Netflix視頻質(zhì)量的,我們面臨的挑戰(zhàn)以及未來(lái)的發(fā)展。
我們?nèi)绾卧贜etflix視頻編碼流程中使用神經(jīng)網(wǎng)絡(luò)?粗略地說(shuō),在我們的編碼視頻流程中有兩個(gè)步驟:
1. 視頻預(yù)處理,它包括編碼前應(yīng)用于高質(zhì)量源視頻的任何轉(zhuǎn)換。視頻降分辨率是這里最相關(guān)的例子,它根據(jù)不同設(shè)備的屏幕分辨率定制我們的編碼,并在不同的網(wǎng)絡(luò)條件下優(yōu)化圖像質(zhì)量。通過(guò)視頻降分辨率,一個(gè)源視頻能產(chǎn)生多個(gè)分辨率的視頻。例如,一個(gè)4K源視頻將被縮小到1080p、720p、540p等。這通常是通過(guò)傳統(tǒng)的濾波器來(lái)完成的,比如Lanczos算法.
2. 視頻編碼,使用傳統(tǒng)的視頻編解碼器,就像AV1。編碼通過(guò)利用視頻中存在的空間和時(shí)間冗余,大大減少了需要通過(guò)流傳輸?shù)皆O(shè)備的視頻數(shù)據(jù)量。
我們認(rèn)為,我們可以利用神經(jīng)網(wǎng)絡(luò)來(lái)提高Netflix的視頻質(zhì)量,方法是用神經(jīng)網(wǎng)絡(luò)代替?zhèn)鹘y(tǒng)的濾波器來(lái)進(jìn)行視頻降分辨率。這種被我們稱為“深度降分器”的方法有幾個(gè)關(guān)鍵的優(yōu)點(diǎn):
?一種基于學(xué)習(xí)的方法可以提高視頻質(zhì)量,并針對(duì)Netflix內(nèi)容進(jìn)行定制。
?它可以看做是一個(gè)直接替代方案,也就是說(shuō),我們不需要在Netflix編碼端或客戶端設(shè)備端進(jìn)行任何其他更改。數(shù)以百萬(wàn)計(jì)的支持Netflix流媒體的設(shè)備自動(dòng)受益于此解決方案。
?一個(gè)基于神經(jīng)網(wǎng)絡(luò)的視頻處理模塊可以被獨(dú)立開(kāi)發(fā),可以在視頻降分辨率之外使用,并且可以與不同的編解碼器相結(jié)合。
當(dāng)然,我們相信神經(jīng)網(wǎng)絡(luò)在整個(gè)視頻應(yīng)用中的革命性潛力,不僅僅是視頻降分辨率。雖然傳統(tǒng)的視頻編解碼器仍然流行,基于神經(jīng)網(wǎng)絡(luò)的視頻編碼工具蓬勃發(fā)展,并縮小了壓縮效率方面的性能差距。深度降分器是我們用神經(jīng)網(wǎng)絡(luò)改善視頻質(zhì)量的實(shí)際方法。
Instagram會(huì)為用戶上傳的視頻創(chuàng)建多種編碼版本,不同版本間各有特性。而只要利用一種類型的視頻編碼輔助生成另一種類型,即可將觀看次數(shù)較少的視頻所占用的編碼計(jì)算資源減少94%。由此釋放出的更多資源可用于生成更多高清編碼視頻流,讓更多用戶獲得更清晰、更流暢的播放體驗(yàn)。
基于神經(jīng)網(wǎng)絡(luò)的視頻降分辨率方法
深度降分器是一種神經(jīng)網(wǎng)絡(luò)架構(gòu),旨在通過(guò)學(xué)習(xí)更高質(zhì)量的視頻尺度器來(lái)提高端到端的視頻質(zhì)量。它由兩個(gè)構(gòu)建模塊組成,一個(gè)預(yù)處理模塊和一個(gè)調(diào)整大小模塊。預(yù)處理塊的目的是在調(diào)整大小操作之前對(duì)視頻信號(hào)進(jìn)行預(yù)濾波。調(diào)整大小塊產(chǎn)生作為編碼器輸入的低分辨率視頻信號(hào)。我們采用了自適應(yīng)網(wǎng)絡(luò)設(shè)計(jì),適用于各種各樣的實(shí)際編碼中會(huì)用到的分辨率。
深壓縮模型的體系結(jié)構(gòu),由預(yù)處理模塊和調(diào)整大小模塊組成。
在訓(xùn)練過(guò)程中,我們的目標(biāo)是生成最佳的降分表示,以使得在升分以后后均方誤差被最小化。因?yàn)槌R?guī)的視頻編碼器是不能微分的,我們?cè)趯⑵渑懦诳紤]之外。在客戶端的升分器是bicubic的前提下,我們集中訓(xùn)練一個(gè)魯棒的深度降分器。我們的訓(xùn)練方法是直觀的,并且產(chǎn)生的降分器并不和特定的編碼器及其相關(guān)實(shí)現(xiàn)方式相關(guān)聯(lián)。盡管如此,我們需要對(duì)訓(xùn)練結(jié)果進(jìn)行徹底的評(píng)估,以證明它在Netflix編碼流程里的廣泛應(yīng)用潛力。
利用神經(jīng)網(wǎng)絡(luò)改善Netflix視頻質(zhì)量
深度降分器的目標(biāo)是提高Netflix端到端的視頻質(zhì)量。通過(guò)我們的實(shí)驗(yàn),包括客觀測(cè)量和主觀視覺(jué)測(cè)試,我們發(fā)現(xiàn)深度深壓縮提高了各種傳統(tǒng)視頻編解碼器和編碼配置的質(zhì)量。
例如,對(duì)于VP9編碼,并假設(shè)一個(gè)bicubic升分器,我們測(cè)量到深度降分器比傳統(tǒng)的Lanczos降分方法平均提高了5.4%的VMAF Bj?ntegaard-Delta (BD)率。我們還測(cè)量了約4.4%的VMAF-NEG BD率的增益。下面我們展示了Netflix標(biāo)題中的一個(gè)例子。深度降分器(紅點(diǎn))在類似比特率下提供了更高的VMAF,或在更低比特率下產(chǎn)生類似的VMAF分?jǐn)?shù)。
除了客觀的測(cè)試以外,我們還進(jìn)行了主觀測(cè)試研究,以驗(yàn)證深度降分器的主觀視覺(jué)改善。在我們的基于偏好的視覺(jué)測(cè)試中,我們發(fā)現(xiàn),約77%的測(cè)試受試者在編碼配方和升級(jí)算法的廣泛范圍內(nèi)更喜歡深度降分器呈現(xiàn)的最終質(zhì)量。受試者報(bào)告了更好的細(xì)節(jié)保存和更清晰的視覺(jué)外觀。個(gè)可視化的例子如下所示。
我們還進(jìn)行了A/B測(cè)試,以了解深度降分器對(duì)流媒體播放的整體影響,并嘗試檢測(cè)任何設(shè)備的播放問(wèn)題。通過(guò)A/B測(cè)試,我們看到了QoE的改善,并確認(rèn)了深度降分器并沒(méi)有對(duì)某些設(shè)備產(chǎn)生不利的影響。
我們?nèi)绾斡行У卮笠?guī)模部署神經(jīng)網(wǎng)絡(luò)?
鑒于我們的規(guī)模,應(yīng)用神經(jīng)網(wǎng)絡(luò)可能導(dǎo)致編碼成本的顯著增加。為了有一個(gè)可行的解決方案,我們采取了幾個(gè)步驟來(lái)提高成本效率。
?深度降分器的神經(jīng)網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì)原則是:在避免負(fù)面的視覺(jué)質(zhì)量影響的前提下提升計(jì)算效率。例如,我們發(fā)現(xiàn)只需幾個(gè)神經(jīng)網(wǎng)絡(luò)層就足以滿足我們的需求。為了進(jìn)一步減少輸入通道的使用,我們只對(duì)亮度通道采用神經(jīng)網(wǎng)絡(luò),而對(duì)色度通道采用傳統(tǒng)的Lanczos濾波器進(jìn)行縮放。
?深度降分器的實(shí)現(xiàn)使用了FFmpeg軟件的濾波器接口。這樣的好處是可以與其他視頻轉(zhuǎn)換(如像素格式轉(zhuǎn)換)等已實(shí)現(xiàn)的功能一起運(yùn)行。我們的過(guò)濾器可以在CPU和GPU上運(yùn)行。在一個(gè)CPU上,我們利用Intel的oneDnn以進(jìn)一步減少延時(shí)。
將神經(jīng)網(wǎng)絡(luò)集成到我們的下一代編碼平臺(tái)中
Netflix 的編碼技術(shù)團(tuán)隊(duì)和媒體云工程團(tuán)隊(duì)共同創(chuàng)新開(kāi)發(fā)了名為Cosmos 的下一代編碼平臺(tái)。通過(guò)深度降分器在其上面的實(shí)現(xiàn),我們很好地展示了Cosmos能夠如何推動(dòng)Netflix未來(lái)的媒體創(chuàng)新。下圖顯示了深度降分器是如何被集成到Cosmos的編碼微服務(wù)中來(lái)的。
將神經(jīng)網(wǎng)絡(luò)集成到我們的下一代編碼平臺(tái)中
Cosmos編碼微服務(wù)可以應(yīng)用于多個(gè)編碼工作流程。例如,可以調(diào)用其服務(wù)來(lái)分析視頻的復(fù)雜度,或者生成用于實(shí)際Netflix流媒體的編碼。其底層函數(shù)是一個(gè)無(wú)服務(wù)器層,專門(mén)用于運(yùn)行無(wú)狀態(tài)和密集型計(jì)算。在底層函數(shù)調(diào)用中,我們的深度降分器是在編碼之前應(yīng)用的。在Cosmos的推動(dòng)下,我們可以利用Titus基礎(chǔ)設(shè)施并在我們所有的多CPU/GPU環(huán)境中大規(guī)模運(yùn)行深度降分器。
下一步
深度降分器為在Netflix視頻編碼中的更多地使用神經(jīng)網(wǎng)絡(luò)應(yīng)用鋪平了道路。我們的創(chuàng)新嘗試才剛剛開(kāi)始。例如,我們正在研究一些其他的案例,比如視頻去噪。我們也在尋找更有效的大規(guī)模部署神經(jīng)網(wǎng)絡(luò)的方案。我們也在研究如何在下一代編碼器中應(yīng)用基于神經(jīng)網(wǎng)絡(luò)的工具。
審核編輯:郭婷
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4774瀏覽量
100891 -
編解碼器
+關(guān)注
關(guān)注
0文章
261瀏覽量
24251
原文標(biāo)題:Netflix:用神經(jīng)網(wǎng)絡(luò)改善視頻質(zhì)量
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論