本文來自Netflix的科技博客,闡述了VMAF的最新應用進展,以及VMAF正在做的改進工作。感謝鄧斌的翻譯,及快手相關同學的技術審校。
Netflix會員會如何評價一段視頻的質量—— 差、一般或非常好? 對于同一段視頻,是用A編碼器還是B編碼器進行編碼看起來效果更好?對于一集視頻,同樣是1000 kbps碼率,是應該選擇具有一些塊效應的高清版本,還是塊效應較少的標清版本?
這些都是我們在嘗試為Netflix會員提供最佳觀看體驗時會面臨的實際問題。幾年前,我們意識到無法通過簡單地依賴“黃金眼”來有力地解決這些問題。專業的“黃金眼”的主觀測試并不能在海量內容,不同的編碼配置和整體編碼流程之間進行擴展。PSNR和SSIM等這種現有的客觀視頻質量評價指標雖然可以大規模部署,但它們無法準確捕捉人類的主觀感受。因此,我們開啟了一段尋找能夠自動回答 “Netflix會員將如何評價這樣編碼的質量?” 這個問題的方法的旅程,這就是VMAF誕生的契機。
視頻多評估方法融合(Video Multi-method Assessment Fusion簡稱VMAF)指標是一種將人類視覺模型與機器學習相結合的視頻質量評價指標。該項目始于我們團隊與來自南加州大學的C.-C Jay Kuo教授之間的研究合作。他的研究小組之前曾研究過圖像的感知質量指標,我們跟他們一起將這些想法擴展到視頻。隨著時間的推移,更多的研究團隊加入了我們,如德克薩斯大學奧斯汀分校的Alan Bovik教授和南特大學的Patrick Le Callet教授,我們共同的目標是提高VMAF模型與人類主觀感知的相關性,并擴大其范圍以涵蓋更多場景。2016年6月,我們在Github上開源了VMAF,并發布了第一篇介紹VMAF 的博客文章。在本篇文章中,我們希望分享我們的VMAF旅程。
一、工業界采用
除了在Netflix公司內部,視頻社區的一些成員也發現了VMAF作為質量評估工具的價值。由于工業界的采用,該項目受到了研究人員,視頻相關公司的工程師和開源社區的成員的廣泛支持。
VMAF已經集成到第三方視頻分析工具中(例如,FFmpeg,Elecard StreamEye,MSU視頻質量測量工具和iswecompressedyet),并將其與已得到認可的指標(如PSNR和SSIM)一同被用作參考指標。
在NAB,Video@Scale和Demuxed等展會中,其中的一些demo和演講使用了VMAF指標來比較各種編碼技術的質量和效率。
視頻質量評價專家組成的國際機構視頻質量專家組(VQEG)在最近的Los Gatos,Krakow和Madrid VQEG會議上,多次對VMAF模型進行了評估。
我們很高興看到其他研究小組已經對VMAF的感知準確性進行了交叉驗證。Rassool(RealNetworks)確認了在4K內容上,VMAF和DMOS得分之間的高度相關性。Barman等人(金斯頓大學)在游戲內容上測試了幾個質量評估指標,并得出結論:VMAF在預測主觀質量方面是最好的。Lee等人(延世大學)應用各種視頻質量指標到多分辨率自適應流傳輸方面,結果表明VMAF和EPSNR與人的感知質量的相關性最高。Gutiérrez等人(Université de Nantes)的研究表明,在高清(HD)和超高清(UHD)內容上,VMAF和VQM是表現最佳的兩個質量指標。此外,我們還注意到了一些研究指出VMAF并沒有達到預期效果。對于最新的VMAF模型,我們會邀請行業專家和研究人員對其進行評估,并鼓勵其與我們分享其中的一些反例和極端情況,用于改進出下一個版本的VMAF模型。我們還將在后面的部分介紹VMAF工具的使用方法,以解決一些實際使用中可能遇到的問題。
當然,VMAF指標也可用作更好的編碼決策的優化標準,我們已經看到其他一些公司應用VMAF進行優化的相關報告。
二、VMAF在Netflix產品中的應用
2.1 編解碼器性能比較
傳統意義上比較編解碼器之間的性能,通常使用這樣的方法:首先,在一套測試條件下(固定分辨率和量化步長)對每個視頻序列進行編碼;然后,對多個視頻序列計算PSNR值;接著,構建碼率--質量曲線,并計算這些曲線之間的平均差異(BD-rate)。這種比較方法適用于評價不同編解碼器中的簡單區別,或評估同一編解碼器中的各種工具。對于我們的應用場景(視頻流)使用PSNR是不合適的,因為它與感知質量的相關性比較差。
而VMAF的提出填補了這一空白,它可以評估編解碼器之間的具有較大差異的情況,也可以評估視頻的縮放失真,且該指標與主觀感知質量的相關性更高。它能夠幫助我們比較出編解碼器中真正重要的部分,即在碼率與主觀質量之間找到一個最優平衡點。具體而言,比較不同編解碼器和/或不同配置之間的碼率--質量曲線,構建其對應的凸包(https://en.wikipedia.org/wiki/Convex_hull)進而可以得到相應的最優解帕雷托前沿( https://blog.csdn.net/u010180815/article/details/78994486)。我們團隊最近關于編解碼器性能比較的一些工作發表在基于場景編碼的技術博客上,以及Picture Coding Symposium 2018 和SPIE Applications of Digital Image Processing XLI學術論文中。
2.2 編碼決策
VMAF在我們的整個工作流程中廣泛應用,不僅用于衡量編碼的結果,還用于指導編碼器編碼到最佳質量。在編碼中使用VMAF的一個典型例子是我們的動態優化器,其中每個單個場景的編碼決策由每個編碼階段的碼率和質量指標來指導。在此優化過程中,VMAF分數非常重要,主要用于獲得最佳的碼率與質量之間的平衡點。
2.3 A / B實驗
不同商業領域的研究人員——例如電視UI團隊和流媒體客戶團隊——正在不斷創新,以提高流媒體的觀看體驗。借助VMAF模型,我們可以在系統范圍內進行A / B測試,并可以量化不同視頻質量對用戶的影響。例如,如果研究人員改變自適應流傳輸算法或部署新的編碼器,可以進行實驗比較新舊算法或編碼器之間的VMAF分數變化情況。VMAF指標非常適合評估這類實驗的效果,因為它對于不同內容的有很好的一致性,并且對于反映人類感知質量相當準確。例如,對于不同的視頻內容,VMAF得分為85意味著視頻主觀質量“良好”,但是從碼率的角度卻無法反映視頻主觀質量,因為同一個碼率點在不同內容中可能對應不同的主觀質量。
三、我們所為之事
3.1 速度優化
2016年6月我們首次在Github上開源VMAF,它的核心特征提取庫用C編寫,控制代碼用Python編寫,主要目標是支持算法實驗和快速原型設計。順應用戶的需求,我們很快添加了一個獨立的C ++可執行文件,可以在實際環境中更輕松地部署。2016年12月,我們將AVX優化添加到VMAF的卷積函數(VMAF中計算量最大的操作)中,使得VMAF的執行速度提高了大約3倍。在2018年6月,我們增加了幀級多線程,還實現了跳幀功能,允許在每N幀里的一幀上計算VMAF。這使得VMAF指標首次能達到實時計算,即使在4K視頻中也可以(有很小的精度損失)。
3.2 FFmpeg的libvmaf庫
在FFmpeg社區的幫助下,我們將VMAF模型打包到一個名為libvmaf的C代碼庫中。該庫提供了一個接口,可將VMAF指標計算過程添加到自己的C / C ++代碼中。VMAF是作為一個濾波器添加到FFmpeg中。FFmpeg的libvmaf濾波器目前是一個非常便捷的計算壓縮視頻碼流的VMAF指標的方法。
3.3 準確性提高
VMAF項目開源之后,我們一直在不斷提高其預測準確性。隨著時間的推移,我們修復了其中許多基本度量指標和機器學習模型中的問題,從而在整體上能得到更準確的預測。例如,修改了基本度量指標可以改進VMAF指標與亮度掩蔽特性的一致性;更新場景邊界處的運動得分以避免場景變化帶來的影響; 現在,在高QP區域,VMAF的單調性能夠保持。顯然VMAF模型的準確性在很大程度上取決于用于訓練的主觀打分的覆蓋范圍和準確度。我們建立了一個主觀數據集,其范圍比我們以前的數據集更廣泛,包括更多樣化的內容和采集源失真(如膠片顆粒和相機噪音)以及更全面的編碼分辨率和壓縮參數。我們還開發了一個新的數據清理技術來消除原始數據中人為偏見和不一致性,并在Github上開源。該方法使用最大似然估計來聯合優化其參數,消除主觀偏差。
3.4 不同觀看條件下的VMAF模型
VMAF框架支持在特定觀看條件下訓練特定的預測模型,無論是在移動終端上還是在超高清電視上。我們之前開源的VMAF原始模型基于如下觀看條件:觀眾坐在1080p顯示器前面,在類似客廳的環境中,觀看距離是屏幕高度的3倍(3H)。這組觀看參數在許多場景中較為常用,然而,在將該模型應用于移動端視頻時,我們發現它并沒有準確地反映觀看者的視覺感知。特別是在較小的屏幕和相對于屏幕高度較遠(> 3H)的觀看距離時,即使是觀看高質量視頻,觀眾也只能感知到較小的視覺差異。例如,在手機上,與其他設備相比,720p和1080p視頻之間的區別較小。考慮到這一點,我們訓練并發布了VMAF手機模型。
上圖展示了VMAF的默認模型和手機模型關于VMAF分數與碼率之間的關系。一個可行的解釋是,在手機屏幕上觀看時,相同的失真的視頻具有比在高清電視上更高的質量,使用手機模型時,720p和1080p視頻之間的VMAF分值差異更小。
最近,我們添加了一個新的4K VMAF模型,該模型可以預測在1.5H距離下的4K電視上顯示的視頻的主觀質量(1.5H的觀看距離是普通觀眾能夠充分感受4K內容清晰度的最大距離)。4K模型類似于所給的默認模型,因為兩種模型所使用的主觀實驗數據都是在1/60(度/像素)的臨界角頻率下的主觀質量。不同之處在于,4K模型使用了更寬的視角,會影響受試者的余光和聚焦點的成像。
3.5 對預測的不確定性進行定量
VMAF模型主要在一些具有代表性的視頻和不同失真類型上進行訓練。由于實驗室條件下進行主觀實驗的一些限制,選擇的視頻序列可能無法涵蓋整個視頻感知質量空間。因此,VMAF模型的分值預測可以與置信區間(CI)相關聯,以表征訓練過程的內在不確定性。因此,我們最近提出了一種可以得出VMAF預測分數及其95%的置信區間的方法,從而定量預測的置信水平。主要通過使用完整的訓練數據引導預測殘差來得到置信區間,從本質上講,它通過對預測的殘差使用“有替換的重采樣”來得到更多模型。每個模型都會引入略有不同的預測,這些預測的可變性量化了置信水平——這些預測越接近,使用完整數據的預測就越可靠。
上面的示例圖基于NFLX公共數據集得到了與每個數據點相關聯的95%置信區間。值得注意的是,得分較高的一方往往比得分較低的一方具有更小的置信區間。一個可行的解釋是:在訓練VMAF模型的數據集中,分數較高的一端比分數較低的一端具有更密集的數據點采樣。值得注意的是,引導技術不一定會提高訓練模型的準確性,但會為其預測提供一定統計意義。
四、實戰攻略
我們經常會被問到用特定方式計算VMAF分數是否合適,或者算得的分數應當如何解釋。本節將重點解釋一些使用VMAF的注意事項。
4.1 VMAF分數的解釋
VMAF分數取值范圍為0-100,其中0表示最低質量,100表示最高質量。理解VMAF分數的一種很好的方法是,將其線性映射到用于訓練的主觀測試時的分數域。例如,默認模型v0.6.1使用絕對類別評級(ACR)方法收集的分數進行訓練,使用1080p顯示器,觀看距離為3H。觀眾在“很差”,“較差”,“一般”,“良好”和“優秀”這5個范圍對視頻質量進行打分。粗略地說,“很差”映射到VMAF分數的20,“優秀”映射到100分。因此,在1080p和3H條件下,普通觀眾可以將VMAF得分70解釋為“良好”和“一般”之間的質量。另一個需要注意的是測試者給出的最好和最差分數往往是整套視頻中質量最高和最低的視頻(在進行實際測試開始之前,受試者通常習慣于實驗條件下的視頻質量范圍)。在默認模型v0.6.1的條件下,最佳和最差視頻分別對應的是通過低量化參數(QP)的1080p壓縮視頻和通過高QP的240p壓縮視頻。
4.2 以正確的分辨率計算VMAF
典型的用于自適應流傳輸的編碼過程一般引入了兩種類型的失真——壓縮失真(編碼器有損壓縮)和縮放失真(對于低碼率,源視頻在壓縮之前被下采樣,并且稍后在顯示設備上上采樣)。使用VMAF評估感知質量時,必須考慮這兩種類型的失真。例如,當源視頻為1080p但被編碼為480p時,計算VMAF的正確方法是將編碼后的視頻上采樣至1080p以匹配源視頻的分辨率。反之,如果將源視頻下采樣到480p以匹配編碼后的視頻,則獲得的VMAF分數將無法體現縮放失真。在對不同視頻進行編碼時顯得尤為重要,因為其中凸包的構造對于選擇最佳編碼參數是至關重要的。
上面的例子說明了正確計算(左)和錯誤計算(右)VMAF時形成的凸包的結果。當對編碼后視頻進行上采樣后計算VMAF,可以很容易地發現不同分辨率的曲線會交叉而過。另一方面,如果對源視頻進行下采樣,則低分辨率編碼將偏向于高分,并且會發現曲線之間沒有交叉。
4.3上采樣算法的選取
當對編碼進行上采樣以匹配源視頻的分辨率時,可以使用許多上采樣算法,包括雙線性,雙三次,lanczos,甚至更高級的基于神經網絡的方法。“上采樣算法的質量越高對應的結果越好”這個觀點是不正確的。原則上,應該選擇能夠最好地匹配顯示設備的算法。在許多情況下,顯示器中對視頻進行上采樣的硬件是未知的,因此,我們建議使用雙三次上采樣方法的結果作為一個通用的方法。
4.4 解讀非1080p視頻的VMAF分數
常常有人會問:如果源視頻和編碼后視頻的分辨率都低于1080p,那么1080p模型(例如默認的v0.6.1模型)是否仍然適用?默認模型反映的是 “1/60(度/像素)”(意味著它假設在一度的視角內具有60個像素)的臨界角頻率對應的視頻質量的模型。根據幾何學知識,可以發現觀看距離為3H的1080p視頻,與距離為4.5H的720p視頻和距離為6.75H的480p視頻效果基本相同。換句話說,如果將1080p模型應用于720p或 480p視頻,則得到的分數可以解釋為分別以4.5H或 6.75H的觀看距離下觀看而得的分數。在這樣遠的觀看距離下,許多失真人眼無法察覺,因此反而會得到更高的分數。值得注意的是,這種解釋并沒有校準其他因素,如眼睛焦距,中央凹視力和觀眾對標清視頻與高清視頻的心理預期。
4.5 時域池化操作
VMAF模型會為每幀打出一個分數,在實際應用中,通常一個較長持續時間內的綜合分數比較有用,譬如對于幾秒鐘的視頻片段,或者甚至是兩小時的電影。盡管有許多復雜的在時域池化的技術,我們的實踐結果表明,簡單的算術平均值(AM)是取平均操作的最佳方式,因為它的結果與主觀分數的相關性最高。另一種實用的取平均技術是調和平均值(HM)。通常情況它的結果與AM非常相似,除了在存在異常值的情況下,HM更加突出小值的影響。
上面的例子證明了在有無小的異常值情況下AM 和 HM之間的差異。當人們想要基于VMAF優化質量同時避免偶爾的低質量視頻編碼時,基于HM的時域池化是有用的。
4.6 A / B測試的度量準則
為了理解不同操作在A / B測試中的影響,我們需要將幀級VMAF分數綜合為每次測試的結果(即每次測試一個分數)。自適應流傳輸中選擇的最佳碼率受各種因素(例如吞吐量)影響,每次測試將基于每個流播放的時長以及在何時播放對每幀VMAF分值進行不同的“結合”。要對每次測試的單個VMAF分值進行綜合,我們必須注意:1)確定適當的聚合程度;2)使用反映不同方面的感知質量指標進行聚合。
如果我們將每個流的每幀的VMAF分數進行平均,我們將漏掉在此間發生的質量下降。如果我們不平均,就使用每幀的值,則對于每次測試,最終在綜合每幀分值時的計算復雜度將會很高。因此,我們建議使用秒為粒度的時間間隔,以在準確性和易實施性之間達到一個較好的平衡。
為了理解不同處理方法在A / B測試中的影響,我們建議采用能反映三個方面質量的關鍵指標:總體質量,開播質量和可變性。這三個量可以分別是整個測試中的平均VMAF分值,前N秒的平均VMAF分值,以及VMAF值相對于先前一個值下降到某個閾值以下的次數。
五、旅程繼續
從一個公司內部項目到成為一個為Netflix的所有會員提供最佳視頻觀看體驗的有效工具,以及到現在的一個開始吸引用戶和社區貢獻者維護的開源項目,VMAF一直在不斷發展,不斷尋找新的應用領域。我們很高興看到除了在Netflix公司內部,VMAF已應用于編解碼器的比較、編碼優化、A / B實驗、視頻分析和后處理優化等諸多方面。此外,我們還看到了獨立的研究人員交叉驗證了VMAF的感知準確性、開源社區對VMAF的計算進行了加速、創建了易于使用的界面等,它正在不斷的被優化著。
但我們的旅途才剛剛開始~
通過與一些研究人員和VMAF使用者進行交流,我們意識到目前的VMAF模型在很多方面可以改進。舉幾個例子:
VMAF模型只使用了簡單的時域特征,即相鄰幀之間的平均低通濾波差異。進一步,VMAF模型還可以借鑒學習更復雜的時域模型來更好地度量時域感知特征來提升性能;
VMAF模型并沒有完全體現許多編解碼器中的感知優化帶來的效果,盡管與PSNR相比,它正朝著正確的方向更進了一步;
目前VMAF尚未使用色度特征,且并不能充分表達HDR 或 WCG視頻的感知方面的特點;
VMAF模型在時長為幾秒鐘的短視頻中表現最佳,但是它對反映卡頓造成的QoE影響無能為力,同時也無法捕捉(用戶)在長時間觀看后的一些主觀感知特性,比如首因效應(primacy effect)和近因效應(recency effect)
在未來幾年,我們將繼續努力改進VMAF模型,并邀請行業、學術界和開源社區與我們進行合作。
六、致謝
我們要感謝以下個人對VMAF項目的幫助:C.-C Jay Kuo教授(南加州大學),Joe Yuchieh Lin,Eddy Chi-Hao Wu,Haiqiang Wang,Patrick Le Callet教授( UniversitédeNantes),Jing Li,Yoann Baveye,Lukas Krasula,Alan Bovik教授(德克薩斯大學奧斯汀分校),Todd Goodall,Ioannis Katsavounidis,視頻算法團隊成員,Martin Tingley和Lavanya Sharan of Streaming S&A,以及VMAF項目的開源貢獻者。
-
濾波器
+關注
關注
161文章
7805瀏覽量
178065 -
編解碼器
+關注
關注
0文章
258瀏覽量
24230 -
機器學習
+關注
關注
66文章
8414瀏覽量
132607
原文標題:VMAF:未畢之旅
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論