騰訊技術開放日 | 騰訊會議如何進行視頻質量評估與優化?

 

 

騰訊會議系統中,視頻質量是影響用戶體驗的主要因素,對視頻質量進行評估和優化是吸引和留住用戶的關鍵。在開發騰訊會議質量評估系統的過程當中,有哪些技術難點和相應的解決方案?在【騰訊技術開放日 · 雲視頻會議專場】中,騰訊多媒體實驗室高級研究員王海強進行了分享。算法

 

本次分享共包括四部分,第一部分是視頻質量評估的背景介紹;第二部分,介紹在視頻會議這種實時通訊系統中,與質量損傷相關的環節及對應的優化策略;第三部分,介紹針對騰訊會議場景所開發的基於深度學習的全參考視頻質量評估算法;第四部分是圍繞騰訊會議搭建的一個端到端的質量評估系統,它可以對會議進行自動化評估和監測。數據庫

 

什麼是視頻質量評估?網絡

 

視頻質量評估致力於評估視頻的人眼感知質量,總的來講有兩種評估方式:框架

  1. 主觀質量評估,依賴人眼觀看並打分,這種獲得的分數比較精確,可是很耗時間,並且不方便大規模部署。
  2. 客觀質量評估,主要是計算損傷視頻的質量分數。評價一個算法的好壞就是衡量主觀分數和客觀分數的相關係數,通常來講係數越高越好。

 

客觀質量評估算法大概分三類,主要取決因而否使用無損的源視頻做爲參考。ide

  1. 全參考,好比PSNR就是典型的全參考算法,經過與源視頻進行各類層面比對,來衡量損傷視頻的質量。
  2. 無參考,有的算法不使用源視頻,只使用接收端的視頻,來衡量它本身自己的質量。
  3. 部分參考, 好比從源視頻中提取一個特徵向量,特徵向量隨着損傷視頻一塊發送到用戶端用來計算質量。視頻會議這種場景要作全參考原本是不現實的,由於不可能把本地無損的源視頻送到用戶端或者其餘地方計算質量,咱們此次所作的工做就是把會議這種典型的實時場景轉化成一個可使用全參考算法離線優化的場景

 

根據視頻內容,視頻質量評估能夠分爲PGC質量評估和UGC質量評估。PGC,就是專業製做內容,好比傳統的電影、電視劇,它的內容,設備、光照、演員各類指標都是接近完美的狀態。UGC是用戶原創內容,像短視頻、直播、實時視頻通話都屬於這一類。性能

 

UGC對視頻質量優化提出了更多挑戰。下面的圖表給出了緣由,右上角這個表明着傳統的PGC,而UGC可能屬於四種狀況中的任意一個。對於傳統的PGC,你們基本默認很難加強它的質量,像素改變越多它的質量會越低。而UGC狀況就比較複雜,有的視頻能夠經過算法,漸漸加強質量,可是若是作的過的話反而又會下降質量;有些視頻的特性是,在小範圍內調整它的質量幾乎是不變的;還有些視頻,這種比較少,質量改變和象素改變幾乎成線性關係。會議這種場景就屬於典型的UGC場景。學習

 

考慮到拍攝、構圖、色彩、相機的穩定度等,相比PGC,UGC都更難優化。並且,PGC優化能夠參考源視頻,運用全參考算法,而UGC並非傳統意義的無損源,因此UGC對視頻質量評估領域提出不少挑戰。測試

 

實時音視頻通訊系統中質量相關模塊優化

 

下面結合會議這種實時通訊系統來介紹和質量損傷有關的模塊。整體來講,實時通訊包括髮送端採集「源視頻」,這裏加了個引號,來講明並非傳統意義上的無損源。採集環節以後,是預處理環節,好比背景虛化、各類加強,而後是編碼、上行碼流通過網絡傳輸,接收端接收下行碼流,而後解碼再通過後處理,再渲染獲得損傷視頻。質量評估在於哪兒呢?在接收端,質量評估去評估損傷視頻的質量,後面的全部模塊對質量評估來講都是一個黑盒。編碼

在會議實時通訊過程當中,網絡可用帶寬是限制整個系統的瓶頸。能夠經過二階統計量來描述帶寬,一個是平都可用帶寬,它決定了視頻編碼出來的平均碼率,另一個是網絡實時抖動決定了最高碼率。由於若是網絡在某一段時間帶寬比較低,而碼率持續的比較高,就會引發卡頓、丟幀甚至掉線等等,固然也能夠經過在某些部位加一些緩衝區加強它的穩定性,可是緩衝期通常會增大時延。

 

對於編碼器來講,就是給定一個恆定碼率,編碼器要調整編碼策略,通常經過調節QP,也能夠經過調分辨率、或者調幀率來把編碼碼流對齊到目標碼流

 

先說一下幀率,由於幀率對視頻質量的影響遠遠大於分辨率和QP。對比下面兩個視頻,左邊是24 fps其實它壓的比較厲害,QP是36;右邊的通過兩次時域SVC,只有6fps,QP18。原本右邊畫面質量更好,可是它幀率更低,跳幀對質量的影響很大,因此有些人會以爲右邊視頻質量反而沒有左邊的好。

接下來看QP和分辨率。視頻壓縮失真引發主要的質量損傷,也就是說給定一個目標碼率,要經過適配必定的QP和分辨率策略,來達到給到的碼率目標。

下面以傳統的PGC優化分辨率和壓縮比的組合做爲例子,講一下優化編碼策略,這兩個材料都來自VMAF。

 

左邊這個圖給出了一些碼率和視頻質量的組合,這裏面有三條黑色的線,表明着同一個視頻不一樣分辨率的版本,紅色的線Convex Hull是結合這三個分辨率找出最優曲線,在碼率肯定的時候,只要找到和Convex Hull接近的點就是在當前場景下應該採用的分辨率。

 

右邊是傳統的基於反覆測試獲得的關於PGC視頻的碼率表,可能如今業界也有些人用固定的碼率表,可是那個碼率表要麼是基於經驗,要麼是基於本身的反覆測量的結果,沒有通過太多優化。對於會議這樣一個場景,騰訊會議也想要一個它的convex  Hull和碼率表。

 

追求更高精確度,騰訊會議開發全參考視頻質量評估算法

 

基於前面講到的內容,騰訊會議開發了一個實時視頻全參考質量評估算法。由於視頻編解碼是整個系統中的核心模塊,因此咱們但願這個視頻質量準則有足夠的精確度和區分度來衡量編解碼器細微的差別。

 

咱們測試了已有的圖像質量評估算法,包括PSNR、VMAF等等,發現他們有的對於網絡波動區分度不夠,有的對時域上的運動信息或質量波動把控不夠,測試完後以爲這些算法並不知足需求

 

因而騰訊會議使用深度學習設計了一個新的網絡,來自動學習視頻質量的相關特徵,而後在PGC數據集上訓練獲得一個通用的網絡。而對於UGC的網絡,咱們構建了一個新的主觀質量數據庫來調優模型。

這是騰訊會議開發的視頻質量評估算法,名字是Video Quality Assessment with 3D Convolutional Neural Network。這裏面一個大的創新點是使用三維卷積核來提取時空聯合特徵,使得視頻質量和時域運動大小更相關。

 

這個模型是用PyTorch開發的,也在VideoSet這個PGC主觀數據庫上進行了預訓練,用額外收集的會議視頻質量數據庫進行微調。對應的算法開源在騰訊的官方Github上,算法名字叫作DVQA,感興趣的話能夠看一下。

下圖給出咱們所設計的神經網絡結構圖,它的輸入包含兩部分,損傷的視頻幀 (distorted frames)和residual frames,這兩部分相加就是源視頻幀。前面黃色框是兩層二維卷積網絡,而後通過四層三維卷積獲得失幀可感知度的閾值,再把閾值和residual frames乘起來,最後是一個Pooling和兩層FC層,來把獲得的特徵regression到最終的score上面。

 

下面的例子更直觀一些,圖(b)中小女孩的頭髮區域,頭髮比較黑並且紋理複雜,在人眼視覺下,若是頭髮區域有一些壓縮失幀是很難看出來的,圖(g)是神經網絡學習的結果,這片是黑色,也就是說可感知失真很小,那麼這個神經網絡學習到的特徵和人眼視覺感知特徵是一致的。圖(i)中磚塊是相對平滑的區域,若是在這裏有損傷應該是比較容易被看出來,那麼在神經網絡學習的圖(n)中也是一樣的結果。

前面講的都是基於PGC數據庫的例子,咱們的UGC的數據庫尚未公開出來。咱們在LIVE和CSIQ兩個公開數據集上把咱們的算法同其它算法進行比較。從下面的表格能夠看出,咱們算法的性能在大部分狀況下是領先的。

你們知道,要訓練一個深度學習算法,須要很大的數據庫來支持。可能會有人問,大家這個算法用的數據庫是什麼?左邊這個表給出瞭如今業界常規的主觀質量數據庫的大小,總共的視頻包括源和損傷視頻大概在100、200左右甚至幾十個,這裏面還包含着一個源和一個源對應的五個或者幾個損傷視頻。其實真正的源算下來也就十個左右。用這樣的數據量去訓練網絡仍是是比較困難的。

 

因此,騰訊會議搭建了一個在線視頻質量打分平臺來收集視頻的主觀數據,這個打分平臺既有PGC也有UGC。網址是mos.medialab.qq.com,你們能夠體驗,右邊是看完視頻展現以後的打分界面。

 

這裏的例子是採用AB tst模式,每次播放兩個視頻,一個源,另一個是處理過的。兩個是隨機模式,看完以後會問志願者,以爲第一個視頻質量效果好仍是第二個好,仍是以爲兩個都同樣,選完以後能夠進入下一個比較。騰訊會議收集了超過100多萬次打分,對上百個源視頻進行了打分。

我所在的質量平臺組負責騰訊會議的專項測試工做,包含性能、碼率、抗性、時延、音畫同步,其實這也是網絡組須要的參數,還包括最終的視頻質量。根據實踐,前面這些像性能、碼率、抗性、時延、音畫同步均可以藉助專門的硬件和軟件測出來,而對於視頻的主觀質量,咱們更多時候是經過人工看來判斷。

 

另外,視頻會議一直在快速迭代,有不少版本,其中比較頭疼的是須要對齊電腦當前的本地環境和網絡環境,若是這兩個對不齊的話,版本比較結果不容易讓人信服

 

 

自動化評估與檢測,開發端到端視頻質量評估系統

 

騰訊視頻也開發了端到端自動的質量評測系統,這是總體的框架圖。其實它的策略相對來講沒那麼複雜,就是在發送端播放源視頻,通過可控的損傷網絡以後,另外一邊是接收端,在接收端捕獲會議呈現的畫面,把這個畫面拿出來再結合發送端的源視頻去計算它的質量分數。前面提到的性能、碼率這些絕對的指標均可以獲得,抗性更多取決於什麼樣的網絡狀況下體驗特別糟糕,時延、卡頓、音畫同步、包括幀率均可以經過比對這兩個視頻獲得結果。通過幾個月的努力,這個系統已經實現徹底自動化。

這是端到端質量評估系統的外部交互界面,叫RTQoE-Real  Time  Quality  of  Experience。在這個系統中,能夠選定源視頻,能夠選定上行和下行的網絡情況,提交任務以後就是發送端、接收端各自完成以後去算對應的指標,而後在這裏展現出來。

下一步的計劃,是在RTQoE系統中引入temporal緯度。上面的模型目前只能作調QP和調分辨率這兩個組合的方式,引入temporal緯度後就變成QP、分辨率、幀三個組合,一塊兒衡量網絡波動對視頻質量的影響。

 

Q&A

 

Q: 能介紹一些公開的PGC數據庫嗎?

A: 騰訊會議的PGC數據庫是公開的,搜索Videoset應該能搜到,若是找不到的話能夠查一下代碼庫,裏面提到了數據庫在那裏能夠下載。

 

Q: 網絡如何影響視頻質量評估?

A: 這裏麪包含丟幀的狀況。由於網絡決定了分辨率和編碼器的編碼策略,調QP、調分辨率、調幀率可能取決於不一樣的廠商。實時的網絡波動也會影響丟幀的狀況。騰訊會議計劃引入temporal緯度衡量網絡波動,這裏有兩個目的:一個是網絡波動對丟幀的影響,另一個是網絡可用狀況對編碼策略的影響,怎麼調QP的、怎麼調分辨率、怎麼調幀率的,是這樣一個問題。

相關文章
相關標籤/搜索