1. 程式人生 > >編碼壓縮新思路:面向QoE的感知視訊編碼

編碼壓縮新思路:面向QoE的感知視訊編碼

640?wx_fmt=jpeg


面向使用者體驗的感知視訊編碼即通過機器學習檢測使用者感興趣的視覺感知區域,並重新分配以更多的位元速率與複雜度。本文來自北京航空航天大學副教授、博士生導師 徐邁在LiveVideoStack 線上交流分享,並由LiveVideoStack整理而成。


文 / 徐邁

整理 / LiveVideoStack

直播回放 

https://www.baijiayun.com/web/playback/index?classid=18112964499258&token=5dFgxkkpuYbhKKZLIMQ5hgKPqOIijlSRsWLoDDpbtItXCKK6WvKjkj-sWrDs8Px_CqdH1zJ1Si0


大家好,我是來自北京航空航天大學的徐邁。本次我將為大家分享面向QoE的感知視訊編碼。我們希望通過基於感知模型的視訊壓縮編碼技術,優化產品使用者體驗。


本次的分享將圍繞以下四個方面展開:


640?wx_fmt=png


1. 技術發展背景


使用者的需求升級推動技術的不斷前行,技術的進步也在不斷優化產品使用者體驗。


640?wx_fmt=png


十幾年前,人們聚在一起慶祝新年,藉助電話或簡訊噓寒問暖,一起在溫馨氛圍中為新年到來而歡呼;而現在,人們相聚在一起慶祝新年,更多的是拿出智慧手機、平板電腦等移動智慧終端記錄這樣一個美好的瞬間。十幾年的發展帶來的首要影響就是資料量的激增,如何穩定高效傳輸大量使用者隨時隨地採集到的音視訊資料成為我們亟待解決的問題。


資料量的激增雖然為網路傳輸帶來了巨大挑戰,但也為人工智慧等高新技術帶來了需求與發展契機。


640?wx_fmt=png


於是在2009年,斯坦福的李飛飛等科學家一起構築了用於測試視覺識別效能的ImageNet資料庫。初期ImageNet包含了四千多個類別的四百多萬張影象,而到了2017年底其已包含兩萬多個類別的1400~1500萬張影象。2009年ImageNet資料庫的建立與當時網際網路上出現的大量影象資料密切相關,直到2018年的ImageNet中已包括了5400萬餘張圖片,不得不說這加速了機器學習在視覺識別領域的運用程序。視覺識別離不開通過大量的圖片訓練增強其對相似視覺元素特性的規律總結能力,我們可以將這一思路運用在編碼壓縮領域,通過大量的視訊壓縮訓練使機器學習掌握洞悉視訊壓縮結構規律的能力,極大程度優化視訊編碼效能,提升使用者體驗。


640?wx_fmt=png


根據統計,過去的2017年全球網際網路上有1.2萬億幅影象產生,每一分鐘就有幾百萬張圖片被上傳至包括Facebook、Snapchat在內的各大網際網路平臺;而視訊的資料量則更為龐大,預計全球網際網路視訊資料總量將在2021年達到近2000EB。


640?wx_fmt=png


如此龐大的資料量無疑會為影象識別與通訊網路的發展帶來巨大挑戰,受限於通訊資源,我們的實際傳輸頻寬資源遠沒有視訊資料量所要求的那麼充裕;若想借助有限的頻寬資源快速穩定傳輸大量的影象與視訊資料,則離不開高效的視訊編碼解決方案。


640?wx_fmt=png


講到這裡,我想我們需要回顧一下視訊編碼的發展歷程。早期視訊編碼變革較快:四年間MPEG-1發展到MPEG-2,所帶來的位元速率節省約為50%,編碼效率翻倍,複雜度增長為5%左右;而H.264(AVC)發展到H.265(HEVC),雖然編碼效率仍有部分提高,但其背後複雜度增長卻十分顯著達到了二至十倍,實測可能更高。複雜度增長是現在編碼發展的一個明顯趨勢,而從右側資料中我們可以看出,隨著編碼標準的演進,編碼增益的成長也十分顯著:從初期AVC的9個Modes發展到HEVC的35個Modes;除此之外,早期的MPEG-1與MPEG-2是基於8x8的DCT變換,而發展到了AVC則實現了4x4與8x8的DCT,HEVC更是實現了4x4~32x32 DCT與4x4 DST;至於H.266還引入了預測模式,60多種預測模式使得相關引數複雜程度進一步提升。從中我們不難看出,視訊壓縮一直基於訊號處理技術並不斷進行演進,而訊號處理技術發展到現在已經很難再產生顛覆性革新。隨著技術的發展,邊際效應愈發明顯,技術突破愈發困難,因此我們迫切需要一種編碼壓縮的新思路。


640?wx_fmt=png


這種新思路就是結合使用者感知對編碼過程進行優化。使用者感知與QoE緊密相關,人類視網膜大約擁有十億視覺細胞,這使得人眼成為一臺十億畫素的高清相機;大腦皮層會識別分析處理這些視覺訊號,但連線人眼與大腦皮層的神經細胞僅有一萬個左右,這就像一個資源十分有限的窄帶頻寬,那麼人眼是如何利用這樣一個窄帶頻寬傳輸畫素高達十億的高清視覺訊號呢?這就是人作為高階動物的智慧所在:研究人的視覺感知模型我們可以發現,在人眼可感知的視角內,真正會引起大腦皮層明顯興奮的區域僅為2~3度;換句話說,人的視覺會將感知重點放在感興趣的目標區域。由此啟發,我們可通過降低感知冗餘進一步提升視訊壓縮效率。


640?wx_fmt=png


基於人類智慧我們提出了感知視訊壓縮並努力降低感知冗餘。首先我們明確瞭如何察覺到視訊感知冗餘的出現,解決方案是藉助機器學習與計算機視覺檢測出視訊畫面裡使用者會重點關注的部分;當監測到感知冗餘出現之後,我們嘗試減少感知冗餘與其影響,解決方案是重新分配資源,將更多位元速率與複雜度分配到使用者感興趣的視覺感知區域;接下來我們嘗試將視訊感知冗餘的優化運用在全景視訊之上,使得視訊壓縮更加契合人類的視覺習慣,也就是我們所說的面向QoE的感知視訊編碼。


2. 基於資料驅動實現視訊顯著性檢測


640?wx_fmt=png


視訊顯著性檢測是指通過計算機視覺技術推斷使用者觀看視訊時視覺感知重點集中的區域,主要藉助基於機器學習的CV。其大致步驟為建庫、分析與建模;我們的建庫工作開始於2015年,初期主要依靠眼動儀檢測志願者觀看視訊時視覺關注重點的變化從而生成熱點圖資料庫;建庫之後我們對熱點資料進行了特徵分析,隨後依據特徵分析結果建立深度學習模型從而初步實現了視訊顯著性檢測。

 

640?wx_fmt=png


現在我們針對視訊已建立三個包括八百多個視訊的資料庫,共積累七百多萬個關注點。


640?wx_fmt=png


在完成資料庫的建立之後,我們對資料庫進行分析,並對顯著性進行視覺化。上圖展示的就是多位志願者觀看視訊時視覺重點關注的位置變化資料,藉助此資料可生成視覺熱點圖,偏向紅色的區域代表視覺關注重點而偏向藍色的區域則代表視覺關注程度較少,沒有顏色則代表不被關注。通過上圖展示的實驗資料我們可以發現,人在觀看視訊時視覺感知系統不會過多關注視訊畫面的背景部分而會重點關注目標元素尤其是運動的人與物。

 

640?wx_fmt=png


為了找到能夠支撐上述結論的有力依據,我們嘗試通過深度學習模型預測視覺關注重點。首先我們基於對目標物體的檢測來構建網路,接下來針對容易吸引視覺關注的運動物體我們構建了Motion Subnet用以優化對運動物體的檢測識別;在分別準確識別了物體與其運動狀態之後,我們藉助藉助Cross-net mask實現綜合分析二者資料得到運動物體的動態引數,並通過經歷多次迭代的深度學習得出具備預測視覺關注重點的深度學習網路。初期此網路檢測精度依舊有限只能檢測識別整個運動的物體,但經過多達150K代的迭代以後,現已可實現對物體區域性的某一運動部分(如汽車正在旋轉的車輪)進行準確識別檢測。


640?wx_fmt=png


完成了CNN網路的構建,隨後我們又將CNN網路特徵輸入進SS-ConvLSTM從而使得系統能夠準確推測幀與幀間視覺關注重點的相關性。為了實現這樣的功能,我們提出了Center-bias Dropout ,其依據在於人眼更容易將畫面的中心區域作為視覺關注重點,除了人類遺傳導致人的視覺系統會將視覺中央附近的物體作為感知重點之外,主要的原因還有攝影師拍攝畫面時自然會把拍攝主體放在畫面中央。這就使得即使系統不對視訊進行內容分析,也能大致確定某視訊使用者的視覺關注重點會分佈在畫面中央附近。


640?wx_fmt=png


除此之外我們也提出了Sparsity-weighted loss(稀疏加權損失函式),主要用於對目標物體與關注重點區域的定量分析,下圖展示的是我們的定量結果,可以看到效能好於其他多種演算法。


640?wx_fmt=png640?wx_fmt=png


通過測試上述的分析流程我們得到了上圖展示的測試資料:以人臉檢測為例,“Human”行代表人類視覺實際的重點關注區域,“Ours”行代表計算機預測的視覺顯著性結果,可以看到與真實區域基本重疊,而相對於下面幾行代表的傳統方法在準確度上優勢明顯。


下圖展示的是我們在此研究上主要發表的論文。


640?wx_fmt=png


3. 面向一般視訊的感知視訊壓縮編碼


接下來將重點介紹有關感知視訊編碼在一般視訊場景中的應用。


3.1 編碼優化


640?wx_fmt=png


編碼優化是必不可少的優化思路。


  • 速率失真優化


首先我們進行了速率失真優化,也就是在控制一定位元速率的同時儘可能降低失真或在控制失真的同時儘可能降低位元速率。速率失真優化主要包括藉助基於感知模型的位元速率控制實現指標優化與基於機器學習預測壓縮失真的位置與特性實現質量增強。


  • 複雜度失真優化


複雜度失真優化主要包括以下兩方面工作:首先是在保證質量的同時儘可能降低複雜度,其次是將複雜度控制在目標值之下並確保失真儘可能少。


進一步落實優化演算法,我們期待通過演算法儘可能減少失真與其帶來的影響。


1)針對HEVC感知視訊編碼的閉型質量優化


640?wx_fmt=png


根據上圖展示的公式我們可以看到演算法的原理是儘可能(減少第n塊的位元速率分配)並引入Wn(Predicted Saliency)顯著性預測,將其作為權重加入失真優化當中,顯著性越高失真影響越大那麼系統對其優化越明顯。如果不引入Wn僅依賴(it模型),經過多次迭代之後客觀情況下可達到5%的位元速率節省而在主觀情況下基本可達到一半左右的位元速率節省。


640?wx_fmt=png


例如上圖中下半部分展示的視訊畫面中左側熱力圖表示觀眾對人臉的關注重點發布,但可以比較明顯地看到人物眼睛與嘴巴的位置較為模糊,嚴重影響觀看體驗;此時我們就會著重對眼睛與嘴巴區域的畫面進行優化,將更多位元速率調整至人臉部位尤其眼睛和嘴巴的位置從而儘可能降低眼睛與嘴巴所在畫面位置的失真。這種位元速率調整會將更多位元速率資源用在人臉的眼睛與嘴巴等視覺重點區域,也會同時降低背景部分的位元速率,這種主觀保證視覺重點區域編碼質量的方案可使編碼效率與效能提升一倍。


2)針對視訊壓縮的多幀質量提升


640?wx_fmt=png


接下來我們需要將此技術用於提升多幀畫面的編碼質量。通過實驗我們發現,幾乎所有的編碼標準都會使視訊質量出現明顯波動,尤其HEVC編碼會導致幀與幀之間的編碼質量差異過大。體現在畫面上的結果可能是第50、61幀質量較高畫面較為清晰而到了第87幀則被遭到丟棄使其難以恢復原有質量。此時我們需要依賴87幀前後質量較高幀的幫助,進一步還原提升87幀的質量,這就是多幀質量提升操作。進行多幀質量提升之前,我們需要藉助SVM對每一幀進行質量評估並選取其中質量不一的幀構造其特徵並分類:ln=1代表高質量幀ln=0代表低質量幀。


640?wx_fmt=png


在確定高質量幀與低質量幀後,系統會在處理視訊的同時將低質量目標幀與其前後相鄰高質量幀一併輸入神經網路,藉助運動補全方法使得目標幀與其前後相鄰兩幀畫素內容一致,編碼近似,憑藉機器學習得到的優化演算法處理這三幀從而顯著提高其壓縮質量。如畫面當中球所在的區域,畫面質量較高。


640?wx_fmt=png


上圖展示的是我們測試得到的主觀指標,Ave一行代表平均測試結果。可以看到我們MFQE的質量提升平均值達到了0.5102dB,領先於前者多種演算法。下圖展示的是直觀帶來的優化體驗,可以看到畫面中籃球所在畫面區域的質量重建提升十分明顯。


640?wx_fmt=png


3.2 複雜度降低


640?wx_fmt=png


大家知道,H.265、H.266的最大貢獻是CTU分割,並且H.266引入了二叉樹與三叉樹,其背後複雜程度十分驚人。例如在CU分割時,由於無法準確預判分割塊的編碼效能優劣,只能通過預編碼也就是對RDO進行全域性搜尋的形式確定分割塊的編碼效能;由此導致的編譯次數增多會使其複雜度佔總體高達80%。

 

640?wx_fmt=png


為了進一步降低複雜程度,我們可藉助內容分析推測合適的CU分割策略。對於單幀可通過CNN挖掘其在空間上的相關性;


而對於多個相連幀可通過CNN+LSTM分析得出其在分割上的相關性與一致性。


640?wx_fmt=png640?wx_fmt=png


之後我們的探索主要分為三步完成:首先是建立一個包括115個視訊與兩千多幅影象的資料庫,接下來我們運用特徵分析方法構建結構性輸出,最後利用卷積神經網路預測塊分割策略。


640?wx_fmt=png


上圖展示的是降低複雜度帶來的效能提升。在幀間模式上我們的複雜度可降低約54%,與此同時BDBR增加約1.459%,BDPSNR損失約0.046%;對於幀內模式而言同時測試影象與視訊,無論是視訊還是影象其複雜度都會降低約60%,與此同時BDBR增加約2%。下圖展示的是我們與此技術相關的部分技術專利。


640?wx_fmt=png


4. 面向全景視訊的感知視訊壓縮編碼


接下來將為大家介紹我們針對全景視訊進行的感知壓縮編碼優化。


640?wx_fmt=png


全景視訊的感知壓縮編碼主要分為以下三個步驟:第一步進行的Model預測主要是用於判斷使用者觀看全景視訊時人眼視野關注到的畫面區域;第二步進行全景視訊質量評估。最後進行視訊編碼優化。


4.1 Model預測

 

640?wx_fmt=png


人類視覺系統對全景視訊的感知與普通視訊存在明顯區別:使用者在觀看全景視訊時視覺不會受到畫幅的限制,但人眼110度的視覺角度只佔全景視訊180度甚至360度廣幅畫面中的一部分,而人眼真正關注的視覺重點可能最多在60度左右;通俗來說使用者在觀看全景視訊時畫面中的很多內容是無法感知的。這就是我們在實現全景視訊的感知壓縮編碼時首要解決的問題:哪些區域是使用者視覺重點關注的?全景視訊的視角變化與使用者頭部運動的狀態有關,我們可從使用者頭部運動入手,藉助機器學習對使用者頭部運動與裝置的互動所決策的視野角度進行強化學習訓練;而人類頭部的運動狀態與互動行為是根據全景視訊內容展現的環境而改變的;這種根據環境變化得到的頭部運動狀態與互動反饋資訊能讓我們準確得到經優化構造而成的最優回報函式(Reward),讓使用者在自己最為感興趣的目標畫面上得到最佳的使用者體驗;最後我們通過深度學習進一步優化此回報函式得出其最佳策略,再將此策略運用於對使用者頭部運動狀態的預測判斷;擁有了使用者頭部運動狀態的預測資訊,我們就可以預測推斷使用者視野的變化並將其用於視訊畫面的感知壓縮編碼。


640?wx_fmt=png


圖中上半部分展示的是我們通過多人實驗得到的可用於全景識別感知預測的DRL Network模型的架構。根據圖中下半部分展示的測試結果,我們能從中得出視覺熱點圖。

 

640?wx_fmt=png


下圖同樣展示了我們的定量測試結果。

 

640?wx_fmt=png


4.2 全景識別與質量評估

 

640?wx_fmt=png


為了實現質量評估,我們首先構建了有包括60個無失真的基準視訊在內的600個全景視訊的全景識別資料庫。其中的基準視訊採用了ERP、RCMP、TSP三種對映模式並使用27、37、42三種QP規格的壓縮方式。我們請大約221個觀測物件為多個全景視訊集評分並使每個全景視訊擁有約20個評分資料;評分同時我們也會收集被測物件頭部的運動狀態、視野位置、眼部運動狀態等關鍵資料。

整理分析這些資訊我們可得到多項結論:

 

640?wx_fmt=png


1)左側圖線代表是人們視野不關注的比例變化,平均有35%的區域是使用者從未關注到的;側圖線代表頭部與眼睛運動的一致性,縱座標代表視訊而橫座標代表相關係數,可以看到頭部運動狀態與眼部運動狀態相關性保持較高,由此我們可得出結論:使用者觀看全景視訊時的行為習慣相似,畫面中有約30%的內容被視覺系統忽視。


640?wx_fmt=png


2)使用者行為與全景視訊質量的關係:畫面中使用者看不到或者不願意觀看的非重點部分的質量變化對使用者觀看體驗的影響微乎其微;將使用者頭部運動狀態、視野變化、眼動狀態與PSNR相結合可大幅度提升PSNR效能,即可推斷出頭部運動狀態、眼動狀態等使用者行為可被用於提升全景視訊質量評估效能。

 

640?wx_fmt=png


基於以上研究,我們可針對全景視訊提出基於深度學習的質量預測方法,也就是將頭部運動狀態檢測與眼動狀態檢測得到的資料用於評估不同優化模型得出的全景視訊質量並將輸出的質量分數與其相關性進行比較。如傳統方法得到的PCC模型預測值約為0.78,而SRCC模型則可達到0.81,從而進一步提升全景視訊質量評估結果。


下圖展示的是與此項研究相關的一些References。

 

640?wx_fmt=png


5. 總結


最後總結一下,首先我們的這些技術離不開資料的澎湃力量;其次全新的感知模型擁有非凡的編碼優化潛力,最後是未來層出不窮的創新媒體渠道與應用模式離不開技術的強大力量。



精品文章推薦






技術乾貨:



人物專訪: