VMAF:未畢之旅

 

VMAF是一種將人類視覺模型與機器學習相結合的視頻質量評價指標。本文來自Netflix高級軟件工程師 李智在LiveVideoStackCon 2019北京大會的演講,詳細介紹了Netflix針對VMAF在性能提高,算法改進等方面的探索與實踐。算法

 

文 / 李智網絡

整理 / LiveVideoStack架構

你們好,我是來自Netflix視頻算法組的李智,本次將主要爲你們分享咱們針對VMAF的探索歷程,包括VMAP的簡史、基本原理和咱們近期的一些工做。併發

 

1. VMAF 簡介

 

1.1 咱們是誰?VMAF是誰?

想必你們不會對我所在的Netflix感到陌生,Netflix目前在全球超過190個國家和地區運營流媒體服務,有超過1.5億的付費用戶。框架

Netflix的總體規模能始終保持高速增加,其中一個很大的緣由是咱們給用戶提供足夠高質量的內容並使用最優的編碼和流媒體技術爲世界各地的用戶帶來最佳的觀看體驗,不管地區、設備、網絡狀況差別。機器學習

幾年前咱們開始朝着這一目標努力時,一系列問題浮如今咱們腦海之中:Netflix用戶會如何評價一段視頻的質量:極差、通常或者很是好?ide

 

對於這樣一段視頻,是編碼器A仍是編碼器B的質量表現更好?當碼率被限制在1000Kbps的條件下,這一個劇集是應該採用標清仍是高清的分辨率來進行編碼?咱們發現傳統的主觀評議不能全面回答以上問題,由於咱們有成千上萬的電影電視劇集,每一個劇集所採起的碼率與編解碼器都是不一樣的。傳統的主觀評議沒法實現大規模部署,而客觀評議標準雖然能實現大規模部署但沒法達到咱們對於準確度的要求。函數

最後咱們發現,咱們須要的是一個準確的視頻質量評估工具,它可以預測人對視頻質量的主觀認知,同時很重要的一點是保證跨內容的一致性:例如用戶在觀看動畫片或動做片時,用於預估用戶觀看的質量的評測標準應當保持一致;而爲了確保此工具可以在雲端進行大規模的部署,其複雜度不能太高;一樣關鍵的是,此工具應當可以準確地預測在HTTP流媒體技術下的圖像質量失真,包括壓縮失真和縮放失真。工具

 

咱們給出的解決方案是VMAF——視頻多方法評估融合體系。性能

1.2 VMAF的編年史

 

VMAF項目最先開始於和南加州大學的合做,南加大的團隊早先已經開始嘗試基於圖像的視頻質量評估研究,在合做中咱們共同探索針對Netflix平臺上數以萬計的動態影像內容的質量評估;大約在合做開始一年以後咱們擁有了第一個可運行於Netflix運營環境的VMAF版本;接下來咱們開始與更多的大學相關學者進行合做,其中包括法國南特大學、德州奧斯汀分校等高校的圖像評估領域最頂級的專家。

2015年咱們第一次對外公開VMAF並將其發表於ICP,2016年中旬咱們在GitHub上實現了VMAF的開源並發表了第一個關於VMAF的科技博客文章;2017年初VMAF迎來了一次大版本更新並增長了針對手機等移動設備的視頻播放模型;同年後期咱們將FFmpeg集成至VMAF中,今後FFmpeg與VMAF得以協同工做處理視頻進行質量評估。

2018年初咱們實現了第一個基於VMAF的視頻編碼優化,同時咱們開始將VMAF運用到Netflix的生產環境當中;2018年中旬咱們對VMAF的運行速度進行了優化並增長了一個針對4K視頻的模型;除此以外咱們也爲VMAF賦予了支持置信區間計算的能力,使其結果顯示更爲科學,同年咱們發表了第二篇科技博客。今年早些時候咱們對VMAF的運行速度再一次進行了更新並使其擁有40%左右的速度提高。

VMAF開源項目始於2016年中,在其開源包中咱們寫入了一段能夠獨立運行的C語言程序,其中包括一個Python庫,用以讓任何用戶均可以根據本身的應用場景或者觀看條件訓練所需的模型,高度契合用戶的使用條件。得益於上述一系列改進優化,咱們在過去三年中一直保持用戶的穩步增加。

 

VMAF也被集成到了很多第三方軟件當中,包括FFmpeg、MSU Video Quality Measurement Tool、Elecard等。這裏我要着重介紹的一個VMAF的典型應用場景之一是編解碼器的性能比較。

如下展現了在最近在瑞典舉辦的JVET會議上公佈的研究——使用包括PSNR和MOS在內的三種不一樣的評測方法對比VVC和HEVC兩個編解碼器的性能並根據結果構建出可以反映比特率和圖像質量之間關係的圖線以計算出BD-rate——相同質量下的平均碼率節省比例。

 

根據以上結果咱們不難發現,對比VMAF和MOS也就是主觀視覺質量,兩者預測結果十分接近,而PSNR的評分結果偏低。也就是說若是咱們使用PSNR做爲評測工具那麼最新一代的編解碼器性能將會被低估,而若是使用主觀視覺質量測試的話那麼對應預測結果將偏高;但使用VMAF將妥善規避以上偏差。

另外一個比較典型的使用案例是將VMAF用於編碼優化當中。Dynamic Optimizer是Netflix內部使用的一種編碼優化構架。其主要思想是對一個指定平均碼率的視頻文件,經過Dynamic Optimizer找到使其可以達到平均最優化VMAF的編碼路徑。這一框架也考慮到了不一樣的限制條件,當使用Dynamic Optimizer得出最優化的編碼途徑以後,咱們能夠對比得出其質量的提高幅度並用下圖右側那樣的曲線展現出來。

上圖右側圖線展現出不一樣曲線,每條曲線表明編解碼器爲圖像質量提高帶來的影響。對同一個編解碼器而言,使用不一樣路徑優化一樣也能夠帶來顯著的圖像質量提高。

 

1.3 VMAF基本架構

VMAF的基本架構須要從像素級的特徵提取展開——首先咱們會提取一些通過篩選的可以體現畫面質量的空間域和時間域特徵,這一過程精確到像素級別;隨後咱們進行幀級別的幀內空間域池化,若是你深刻研究便不難發現上述兩項過程實際上是計算機對人類視覺系統神經元處理過程的模擬。

具體來講這種模擬基於對比度的掩蔽效應(ContrastMasking),這是人眼視覺系統中一個很是顯著的效應。其原理是當圖像出現損失,如壓縮失真等被疊加到原視頻上時,若是其頻率與方向和源信號一致,則這些失真會變得更加難以被人眼察覺,相反則更容易被人眼察覺。例如上圖右側展現的那樣,編碼上圖展現的畫面,平靜的湖面與樹林之間存在很是明顯的對比區分。咱們添加同一段預設失真噪聲至畫面中的紅圈與藍圈所示位置並分別進行編碼,若是把失真添加至紅圈所示平靜湖水區域,便會獲得比較高的dB也就是失真較爲明顯,由於平靜的湖面沒有能夠有效遮蔽或掩蓋噪聲的元素,人的肉眼對這些失真噪聲更加敏感;但若是把這些失真疊加在藍圈所示樹林區域,dB值相對更低而失真難以被人眼察覺,由於藍圈所示區域內的樹林和山體都是良好的能夠用來遮蔽掩蓋失真噪聲的元素。固然,除了基於對比度的掩蔽效應,咱們還會把基於亮度的掩蔽效應(Luminance Masking)做爲一項重要參考因素。

當提取了空間域和時域特徵以後,咱們須要作的是經過機器學習的方法,借訓練成的模型將這些特徵值和主觀數據聯繫在一塊兒,也就是進行數據融合,這一步咱們使用SVM預測來實現。

 

咱們須要作的第一步是收集主觀分數,也就是經過主觀實驗的方法來收集用戶對於特定畫面的主觀質量評分。上圖展現的是咱們與法國南特大學合做進行的主觀視覺評分實驗,在不管是環境總體亮度、屏幕亮度仍是背景亮度都被嚴格控制的實驗室條件下,觀測者在精確固定的位置觀看視頻畫面並對其打分,咱們使用以上五個尺度(ACR——Absolute Category Rating)做爲打分參照。

隨後咱們統計觀看同一個視頻畫面的三四十位被測試者給出的分數並求其平均分獲得MOS分數,接下來咱們要作的就是將ACR尺度映射到VMAF尺度上。通常來講,「極差」的ACR尺度映射到VMAF大約是20分而「極好」的ACR尺度映射到VMAF爲100分。緊接着咱們用這些映射完畢的數據進行訓練,最後獲得的VMAF尺度模型所預測的分數會在0到100分之間。

上述過程當中咱們須要考慮到的一個重要因素是觀看者到屏幕的距離和屏幕尺寸對於圖像質量的影響。這裏展現一個很直觀的例子:使用不一樣的顯示面積顯示同一張視頻的畫面截圖,咱們能夠發現大面積的顯示容易放大更多壓縮失真而較小顯示區域則會讓壓縮失真再也不那麼明顯。這裏主要用以探索用戶使用手機和電視觀看視頻時,屏幕尺寸和肉眼距離屏幕距離對用戶觀看體驗的影響。

基於此,咱們從新收集數據,訓練了一個針對手機屏幕觀看條件下的VMAF模型:上圖展現了編碼器編碼一系列碼率不一樣但內容相同的視頻所得出的VMAF分數隨碼率(Mbps)變化的曲線圖,兩條曲線中綠色線表明使用針對手機屏幕的VMAF模型,而紅色線則表明常規VMAF。觀察上圖咱們不難發現,用戶會給手機呈現的畫面打出更高的視覺質量分數,但這一分數不能反映該視頻畫面的絕對畫面質量;除此以外咱們還能夠發現,分辨率從720P提高到1080P,VMAF的提高幅度有限,這也說明在手機端,720P到1080P的分辨率提高爲用戶帶來的主觀視覺質量提高十分有限。

2. 近期的工做

圍繞VMAF咱們主要作了如下三方面工做:

 

2.1 HDR

 

 

毋庸置疑的是,如今愈來愈多的視頻使用HDR技術拍攝,特別是那些Netflix的原創劇集,這些使用HDR技術拍攝的視頻若是在支持HDR顯示的設備上播放無疑會給觀衆帶來無與倫比的視覺體驗。而咱們想要探索的是如何量化這種「體驗」?舉例說明——一段每秒120幀的HDR視頻源其最高亮度可達3000cd/m^2。而如今市場上主流商用支持HDR的電視大概能夠實現1000cd/m^2的亮度,此時擺在咱們面前的問題即是:若是使用一臺最高支持1000cd/m^2 HDR顯示的電視播放最高亮度可達3000cd/m^2的HDR視頻,具體能爲用戶帶來多少視覺上的質量提高?

爲解決以上命題,咱們正在研發一套針對HDR的VMAF模型,旨在預測HDR視頻相對於SDR在主觀體驗上的優點,並從更廣義的角度將VMAF的適用範圍擴展到HDR。固然,咱們還面臨諸多挑戰,例如咱們須要能捕捉到和主觀質量最相關的一些物理特徵——對於一個顯示器來講,其實這些物理特徵有不一樣的維度。引進全部維度併科學判斷每個維度與主觀質量之間的關係無疑是一件頗具挑戰的事情,而將這些維度疊加起來並結合機器學習無疑又是一項艱鉅任務。所以咱們須要肯定那些與主觀質量最相關的一系列物理特徵,包括但不限於最大亮度、背光的分辨率、最小量度、比特深度和色域。爲實現這樣一個全新的針對HDR的VMAF模型,咱們須要在這些和主觀視覺質量最相關的物理特性中尋找哪些能夠在針對HDR的VMAF模型中被捕捉到。

第二項挑戰是須要全新的可以擴展到HDR域的人類視覺模型。在現有的基於SDR的VMAF模型當中,咱們使用了一些人類視覺模型;但若是把它們直接運用到HDR中就會形成模型的不許確,那麼咱們須要作的就是找到一些更準確的人類視覺模型並提取新模型中的一些特徵,再基於主觀實驗結果進行打分。

第三項挑戰是須要能捕捉在亮度和壓縮損失之間的複雜反應,也就是我以前提到的基於亮度的掩蔽效應。由於咱們所考慮的壓縮損失在SDR的顯示條件下並不會很明顯而在HDR條件下則會異常明顯。咱們須要捕捉到這樣的效應,以便於使用全新模型對編解碼器進行優化時該模型能夠儘量地發揮做用。

2.2 用戶體驗判斷

第二個方面的工做是科學判斷用戶體驗。用戶的褒貶層出不窮,而咱們須要關注的是問題的根源。咱們對用戶體驗進行診斷,但影響用戶體驗的因素有不少,例如ABR算法好壞、編碼的好壞、網絡情況、CDN狀態甚至視頻創做問題等。

一旦用戶體驗出現異常,咱們須要回溯並定位使用戶體驗大打折扣的影響因素,這項工做頗具挑戰性。爲此咱們提出的解決方案是Hindsight

中文翻譯是「後見之明」,這是一種過後評估ABR算法的方法:當用戶端出現體驗異常,系統能夠收集到用戶網絡帶寬狀況並將其記錄,同時基於用戶帶寬狀況和編碼階梯,咱們會計算出實時狀態下ABR算法能夠達到的一個最佳選擇;同時咱們把該最佳選擇和運營環境下的選擇進行對比並得出兩者之間差距,若是該差距很小那麼咱們幾乎能夠判斷此時此刻ABR算法是正確的,隨後咱們能夠繼續尋找其餘影響用戶體驗的因素例如網絡或編碼故障;若是兩者差距過大那麼咱們即可以推斷出此時的ABR算法還有繼續優化提高的空間。藉助Hindsight,咱們能夠迅速準肯定位形成用戶體驗異常的因素並及時對症下藥。

2.3 使用VMAF實現基於卷積網絡的圖像壓縮

第三個咱們正在努力的方面是使用VMAF實現基於卷積網絡的圖像壓縮。基於卷積網絡的圖像壓縮是最近一個比較熱門的話題,業界比較流行的思路是上圖展現的2017年提出的框架。若是你使用被沿用多年的JPEG格式壓縮的圖像那麼其可以適用於這一框架:設一源信號x在進行變換編碼後得出信號y,隨後咱們對信號y進行量化和熵編碼,最後獲得編碼的流;緊接着咱們再把整個過程

逆向進行即可以獲得一個重構信號,咱們能夠計算從X到過程信號的損失值:

 

 

咱們將卷積網絡運用至該框架中,實際上就是使用一個非線性的卷積網絡替代兩個線性的變換編碼。替代以後咱們便經過反向傳播的方式對其進行端對端優化,該反向傳播優化過程須要考慮一個優化參數,通常你們會選取MSE或PSNR,也可能會選用更復雜的SSIM或MS-SSIM。沿用此思路彷佛能夠將VMAF運用在基於卷積網絡的圖像壓縮當中,但實際上該思路的致命傷是VMAF不可求導。

反向傳播所須要的關鍵是一個可導目標函數,如何解決該致命傷?咱們和德州大學的研究者一塊兒提出了這一思路:可經過訓練一個可導的代理VMAF網絡而非真實的VMAF網絡來實現上述過程。須要強調的是真實的VMAF依然在被訓練的網絡當中用於制定分數,而訓練這一網絡的方法是經過迭代將代理的VMAF網絡和壓縮網絡一塊兒訓練。

經過壓縮網絡的訓練,咱們能夠找到真實壓縮下出現失真的信號並將這些信號信號用於訓練的VMAF網絡中;同時,代理的VMAF網絡也可爲壓縮網絡提供指導使其朝着正確的優化途徑發展。

上圖展現了分別使用代理VMAF網絡與MSE網絡優化圖像質量的基線實驗結果,其中MSE被做爲實驗基線。觀察曲線你們不難發現,使用代理VMAF網絡的確能夠獲得咱們想要的結果;同時咱們對比其餘一些傳統意義上的圖像編碼器,包括HEVC、JPEG、JP2K等,觀察上圖右側結果咱們能夠看到,在其中一些特定領域中VMAFp可以實現更好的效果。

在將來Netflix將與衆多開源社區一塊兒,致力於完善提升VMAF的性能,以及擴展其應用場景,VMAF將來可期!

相關文章
相關標籤/搜索