1. 程式人生 > >Netflix最新視訊優化實踐:用更少的頻寬打造完美畫質

Netflix最新視訊優化實踐:用更少的頻寬打造完美畫質

馬賽克、模糊、扭曲的面孔和物體……糟糕的影象質量會大幅降低觀眾通過Netflix觀賞喜愛的劇集或電影時的觀賞體驗。很多情況下,網路頻寬不足或資料限流會導致我們無法為觀眾提供完美畫質,為此Netflix視訊演算法團隊一直在努力開發更高效的壓縮演算法,以便讓Netflix能夠在使用更少頻寬的情況下提供相同甚至更出色的畫質。我們還會與Netflix的其他團隊合作,更新客戶端應用以及流媒體基礎架構,為新的視訊流播技術提供支援,確保使用者可以在任何裝置上通過Netflix獲得無縫播放體驗。

為了進一步改善畫質,我們早已於2015年開發並部署了Per-title編碼優化技術(譯註:該技術可針對每段視訊的具體特徵應用最優化的編碼引數),並在一年後應用了針對移動裝置視訊下載進行優化的編碼技術。在那之後,我們的目標是開發一種基於視訊中每個分鏡(Shot)進行編碼的框架,該框架名為動態優化器(Dynamic Optimizer),藉此可對視訊流中的內容進行更細緻的優化。本文將介紹為了在生產環境中運用該技術,我們所面臨的挑戰以及應對措施,以及這些技術對視訊畫質的改善情況。

在生產環境中實現動態優化技術

640?wx_fmt=png&wxfrom=5&wx_lazy=1

640?wx_fmt=png
圖1:分鏡通過合併序列組成的“塊”。(A) 代表整個視訊的時間軸,豎直虛線代表兩個分鏡的邊界。(B) 一個分鏡成為一個塊:將每個分鏡分配為一個塊。(C) 將多個分鏡合併為一個塊:在一個目標塊的時長內累積整數個分鏡。

在一個合併序列中,我們會將多個分鏡整理到一起,這樣一系列連續分鏡就可以組成一個塊。隨後,考慮到我們已經可以靈活地決定這種合併序列的組成方式,因此可將整數個分鏡組合起來,形成時長大約為3分鐘的塊,這樣的結果與最初所用的基於視訊塊的編碼模式就較為類似了(圖1,C)。通過配置,這些塊可維持近似相同的大小,這樣在由原本針對數分鐘長的視訊塊進行編碼而提供的計算例項進行處理時,可簡化資源的分配工作。在每個塊中,計算例項可獨立對其中的分鏡進行編碼,並分別應用預先定義好的編碼引數。

640?wx_fmt=png
圖2:檢查點

通過合併序列,對每個視訊塊中包含的分鏡單獨編碼,還為系統帶來了額外的好處,我們將其稱之為檢查點。以前,如果丟失一個計算例項(因為這些例項可能是借來的,但突然需要使用這些例項處理優先順序更高的任務),隨後就需要重新編碼整個塊。但在基於分鏡的系統中,每個分鏡都是單獨編碼的。一旦某個分鏡編碼完成,如果在對塊中其他分鏡進行編碼的過程中例項丟失,已完成編碼的分鏡將無需重新編碼。我們建立了這樣的檢查點系統(圖2),藉此確保分鏡及其元資料可在編碼完成後立即儲存起來。通過這種方式,如果需要在另一個計算例項上重新處理同一個塊,並不需要從頭開始重新編碼,只要從上次停止的地方開始處理即可,這樣可以節約大量運算資源。

壓縮效能

640?wx_fmt=png

640?wx_fmt=png
圖3:每視訊、每塊以及優化後的全新編碼方式的壓縮效果

一起看看質量相等的情況下,位元速率的降低幅度,為此可以在VMAF=80(質量良好)處畫一條橫線,隨後可以獲得下列位元速率資訊:

640?wx_fmt=png

從中可見,相比AVCMain所代表的每視訊編碼方式,優化後的編碼器只需要不到一半的位元速率即可實現相等質量。對於VP9-Opt,只需要相比AVCMain不足1/3的位元速率即可實現相同質量的流播。而如果使用AVCHi-Mobile和VP9-Mobile,分別也可以節約17%和30%的頻寬。

我們還研究了頻寬相同情況下視覺質量受到的影響。例如,手機蜂窩網路的頻寬平均為250 kbps,這樣的頻寬可以獲得下表所示的VMAF分數。相比AVCMain,優化後的編碼器可以顯著提升視訊質量。

640?wx_fmt=png

為了展現視訊質量的差異,下文列舉了主廚的餐桌(Chef’s Table)劇集中的一幀畫面,不同圖片為250 kbps左右位元速率下不同編碼方式產生的視訊截圖。對比發現畫面中的材質(磚塊、樹木、岩石、水面等)質量有了可觀的提升。其中AVCMain(圖4A,VMAF=58)和AVCHi-Opt(圖4B,VMAF=73)的視覺差異最顯著,VP9-Opt(圖4C,VMAF=79)看起來最銳利。

640?wx_fmt=png
圖4 (A):AVCMain,250 kbps,VMAF=58

640?wx_fmt=png
圖4 (B):AVCHi-Opt,254 kbps,VMAF=73

640?wx_fmt=png
圖4 (C):VP9-Opt,248 kbps,VMAF=79

下文我們將以十三個原因(13 Reasons Why)劇集開場的一幕作為例子,展示碼率同為250 kbps左右時的效果。使用AVCMain(圖5A)時,圖片上方的文字幾乎不可辨認,而此時的VMAF得分為60分;使用AVCHi-Opt(圖5B)時,畫質已有較大改善,此時VMAF得分為74;使用VP9-Opt(圖5C)時,文字和形狀邊緣變得非常清晰,同時畫質有了顯著提升,此時的VMAF得分為81。

640?wx_fmt=png
圖5:(A) AVCMain,260 kbps,VMAF=60;(B) AVCHi-Opt,257 kbps,VMAF=74;(C) VP9-Opt,252 kbps,VMAF=81

優化編碼器的現場測試

640?wx_fmt=png

重編碼與裝置支援

過去幾個月來,我們已經對Netflix的整個視訊庫生成了AVCHi-Opt編碼的內容,並開始將其用於很多平臺的流播。現在,當用戶通過iOS、Android、PS4以及Xbox One觀看Netflix內容時,就已經在享受這項技術帶來的好處。另外針對一些非常受歡迎的內容,我們也已提供了VP9-Opt流播,目前部分Android裝置已經可以支援這個技術。同時我們也在積極針對其他裝置和瀏覽器對這種新的流播方式進行測試。

無論你正在智慧電視上通過最快速度的寬頻連線觀賞“主廚的餐桌”,或在移動裝置上通過不穩定的蜂窩網路觀看“傑西卡·瓊斯”,Netflix都在致力於提供儘可能一流的觀看體驗。而此次釋出的優化編碼技術也很好地證明了將創新的研究成果,積極有效的跨團隊合作,以及資料驅動的部署方式配合使用後,確實能為我們的使用者提供更卓越的觀影體驗。

公眾號推薦:

公眾號:VOA英語每日一聽

微訊號: voahk01

可長按掃碼關注,謝謝

640?wx_fmt=jpeg