擁抱智慧,AI 視訊編碼技術的新探索

阿里雲視訊雲發表於2021-11-23

隨著視訊與互動在日常生活中的作用日益突顯,愈發多樣的視訊場景與不斷提高的視覺追求對視訊編碼提出更高的挑戰。相較於人們手工設計的多種視訊編碼技術,AI 編碼可以從大資料中自我學習到更廣泛的訊號內在編碼規律。工業界與學術界發力推動 AI 視訊編碼標準並進行新框架的探索。

阿里雲視訊雲在 JVET 面向人眼的視訊編碼標準和 MPEG 面向機器視覺的視訊編碼標準上均做出重要貢獻,對標準發展產生強有力的推動。結合產業需求強勁的視訊會議、視訊直播等場景,阿里雲視訊雲還開發了 AI 生成式壓縮系統,在同等質量下比 VVC 節省 2-3 倍位元速率,實現真正的超低位元速率視訊通訊。

在 LiveVideoStackCon 2021 北京峰會,阿里雲智慧視訊雲演算法專家王釗,為大家解讀阿里雲在 AI 視訊編碼技術的新探索。

文 | 王釗

整理 | LiveVideoStack

image.png

大家好,我是王釗,就職於阿里雲視訊雲,今天的分享主題是 “擁抱智慧,AI 視訊編碼技術的新探索”。主要想和大家介紹阿里雲視訊雲的兩個前沿工作。

image.png

分享包括四部分,背景與動機、人物視訊生成編碼、機器視覺編碼和未來展望。

1. 背景與動機

我將從人眼視覺、機器視覺兩方面延伸介紹阿里雲視訊雲探索 AI 視訊編碼技術的背景與動機。

image.png

視訊本身的資料量非常大,一張 4K 影像原始大小為 24.3MB、4K 未壓縮視訊的頻寬需求約為 6Gbps、一個超清攝像頭每天產生的原始視訊高達 63TB,只有進行了視訊編碼才可以傳輸、儲存。

image.png

隨著時代的發展,智慧安防、自動駕駛、智慧城市、工業網際網路等場景中的視訊也可以被機器接收、感知、理解。

image.png

以自動駕駛為例,一輛車主要具備的系統或裝置包括攝像頭系統(檢測前方物體)、夜視紅外、雷達測距器、慣性感測器、GPS 定位器及鐳射雷達(360° 進行掃描),這些都由機器採集影像和視訊,再交付給機器進行分析、發現並解決問題、完善功能。

機器在某些維度上的能力優於人類,比如觀測精度、感知靈敏度、工作強度耐受性(機器可以全天候運轉)、客觀性、可量化性。

據 Cisco 統計,以機器視覺為主的從機器到機器的資料傳輸將佔據全球資料傳輸的 50%,這是非常大的量。

image.png

無論是人眼視覺還是機器視覺,視訊編碼的原理都是一樣的,即依靠視訊訊號本身存在的相關性:一幅影像中相鄰的畫素值接近,這是空域相關性;相鄰影像的畫素值接近,這是時域相關性;如果將畫素從空域變換為頻域,其中也存在相關性。這就是視訊壓縮的三個最基本相關性,空域冗餘、時域冗餘,資訊熵冗餘,由此誕生了視訊編解碼的三個主要模組,幀內預測、幀間預測,變換 / 熵編碼。

冗餘消除本身是無損的,但視訊壓縮會出現失真,失真是如何造成的呢?這是為了進一步提高壓縮率,把視訊資訊變換到某個域上,例如傳統編碼通常變換到頻域,再按照其重要性進行優先順序排序,把優先順序低的如高頻資訊直接丟棄或量化操作進行消除從而大幅度提高壓縮率,所以是量化在提高壓縮率的同時帶來了失真。

綜上,視訊壓縮依靠兩個維度,一是相關性的消除,不會造成失真。二是將資訊變換到某個域上進行優先順序排序,對優先順序低的資訊進行丟棄、消除或量化。

image.png

基於以上視訊壓縮原理,在過去的 50 年中,全球範圍內的視訊編解碼工作人員推出了一代又一代的視訊標準,雖然標準一代一代更新,但都是基於劃分、預測、變換、量化、熵編碼的框架沒有變過去年 JVET 社群定稿了 VVC 標準,在 VVC 之後也致力於傳統編碼和神經網路編碼的兩方面探索。

國內在定稿了 AVS3 之後,也在深挖傳統編碼和神經網路編碼以希望進一步提高視訊編碼效率。在機器視覺領域,MPEG 成立了面向機器的視訊編碼工作組(VCM),國內成立了面向機器智慧的資料編碼工作組(DCM)。

image.png

以 VVC 為例,去年制定的 VVC 對比 2013 年頒佈的 HEVC 標準,雖然壓縮效能提升一倍,但深入研究每個模組中模式數量的變化,會發現幀內預測、幀間預測及變換都增加了很多模式,這意味著平均每個模式能夠帶來的壓縮效能增益變得更小。

每個編碼模式都是由視訊編解碼專家根據自身所學及理解對視訊訊號進行數學化表達,每個模式的本質都是數學模型,而人們掌握的數學模型都很簡單,比如線性模型、指數函式、對數函式、多項式等。模型的引數量不會很多,一般是幾個,最多是幾十個。壓縮效能提升愈發困難的原因也在此,人們能夠規律化總結的數學模型相對簡單,表達能力有限,但視訊內在的規律性卻是無限的。

image.png

從模型角度,基於人工智慧的神經網路模型可以通過更多的引數不斷提高數學表達能力。數學領域已嚴格證明神經網路能夠表達任意函式空間,只要引數足夠,表達能力就會越來越強。手動設定的引數只有幾個或幾十個,但神經網路設計的模型中引數可以多達幾百萬個,甚至 Google 推出了億級引數的超大模型。

從上限來看,基於 AI 編碼的視訊壓縮一定會比基於傳統編碼的視訊壓縮有著更高的效能上限。

從視訊訊號本身的冗餘性角度,上文提到傳統的視訊編解碼在過去的五十年裡都在消除空域冗餘、時域冗餘和資訊熵冗餘。

除了這三個冗餘,其實還有其它的冗餘對視訊壓縮來說有很大的效能提升空間。首先是結構冗餘,右下方的兩朵花很相似,在編碼中,如果已經編碼好第一朵花,那麼編碼第二朵花時的很多資訊就可以從第一朵花的編碼中推匯出來,無需完全編碼。第二個是先驗知識冗餘,見右上圖,如果用手遮住右半部分人臉,只留左半部分,由於人臉接近對稱,我們依然可以想象出被遮住的部分,這是因為人們的腦海裡有了人臉近似對稱的先驗知識。那麼也可以讓機器記憶先驗知識,就無需把資訊從編碼端編碼到解碼端。

所以對於視訊壓縮來講,結構冗餘和先驗知識冗餘也很重要,傳統編碼並不是不能利用這兩者,只是人工智慧和神經網路在額外利用結構冗餘和先驗知識冗餘上更高效,更遊刃有餘。

2. 人物視訊生成編碼

image.png

首先看一個簡單的兩幀編碼問題,編碼端先將第一張影像的資訊告訴解碼端,解碼端已經接受了第一張影像並且解碼出來,我們將其作為參考幀。此時,如何壓縮當前幀?

(右上兩圖)在傳統編碼中,方法是將當前影像分為一個個影像塊,每個影像塊在參考幀中找到最相似的參考塊,當前影像塊與參考塊之間的相對位移稱為運動向量,這樣就可以基於參考塊預測當前塊的預測值,拿到當前影像最可能的預測幀,再將預測幀和當前幀的差值編碼過去就可以了。

相對於影像壓縮來說,視訊編碼的效率非常高,因為視訊編碼的時域預測、時域相關性非常強。但這個位元速率也不會很低,因為要編碼的東西很多,比如影像塊劃分的劃分資訊,每個影像塊的運動資訊、殘差值等。所以壓縮效率雖然相比影像壓縮高很多,但也達不到超低位元速率。

為了實現超低位元速率壓縮,我們提出了 AI 生成壓縮方法。(右下兩圖)不再將整張影像劃分為一個個的影像塊,而是將它當做整體,將整張影像通過神經網路轉換至某種特徵域,在特徵域上提取少數關鍵點,只需將關鍵點傳輸到解碼端,解碼端收到後並基於參考幀就能夠驅動生成當前幀的影像。

其中,關鍵點數目可變,例如例項中有十個點,所以每幅影像只需傳輸幾十個數值即可,位元速率高出傳統編碼方式非常多。

image.png

對於整個視訊來說,可以先用傳統編碼傳輸第一幅影像,再用 AI 生成編碼傳輸接下來的影像,在編碼端提取每一幀的關鍵點傳輸到解碼端。解碼端如何生成這一幀?首先提取參考幀關鍵點將其和當前幀解碼的關鍵點一起送入神經網路中,得到特徵域上的稀疏運動場。

兩幅稀疏運動場都會被送入 Dense motion Net 中得到密集運動場,並同時得到一張遮擋圖。參考幀、密集運動場和遮擋圖再一起被送入生成器中,從而生成當前幀。

image.png

這是關鍵點在特徵域的視覺化結果。

以第一行的影像為例,第一副是參考影像及其關鍵點,第二副是當前需要編碼的影像及其關鍵點,中間十副帶顏色的影像是每個關鍵點在特徵域上反映的運動資訊。其中第三副反映的是整體人臉正面的運動情況,後面幾副可能反映頭部外側的運動情況,靠近右側的幾副可能反映下巴或嘴脣的運動情況。最後,十副特徵圖上的運動場會融合在一起得到密集的運動場。

image.png

這是在整個驅動生成的 pipeline 過程中每個環節的主觀展示。

第一列是參考幀,第二列是當前幀,第三列是編碼過去關鍵點之後在解碼第一步首先生成的稀疏運動場,在目前的案例中,稀疏運動場對每個影像來說使用的是 4圖片4 矩陣,圖中可以看到有 4圖片4 個方格,這是一個稀疏的運動圖。將稀疏運動場作用在參考幀上就可以得到第四列中當前影像的簡圖,可以看到第四列人臉的位置和運動已經非常接近當前幀,只是在紋理細節上還存在差距。接著,稀疏運動場通過更加複雜的運動模型後得到密集運動場,再重新將密集運動場作用到簡圖上得到第六列中運動場作用後的更精細的影像。最後將遮擋圖作用到運動場後的圖得到當前幀的生成圖。

image.png

在人物講話的資料集上對 AI 生成壓縮方案進行測試,能夠看到以下主觀上的對比。

螢幕錄製2021-11-11 下午3.20.46_2.gif

左邊兩列視訊是最新的 VVC 參考軟體編碼的結果,右邊兩列是 AI 生成壓縮方案編碼的結果,我們的位元速率略低於 VVC,但能明顯對比發現畫面質量遠遠好於 VVC。VVC 本身的塊效應、模糊度都非常嚴重,而 AI 生成壓縮方案無論是在頭髮、眼睛、眉毛上的細節圖都更優,在整個頭部運動的流暢度、表情的自然度方面也有明顯提升。

這是在位元速率接近的情況下的質量對比,可以說已經達到了代差級的質量提升。

螢幕錄製2021-11-11 下午3.20.46.gif

在更低的位元速率場景下使用 AI 生成壓縮方案會有什麼效果呢?

實驗中,VVC 位元速率不變,AI 生成壓縮方案的位元速率變為 VVC 的 1/3,結果顯示生成質量依然優於 VVC 的畫面質量。

這裡的測試視訊解析度是 256圖片256,對於這個解析度,AI 生成壓縮方案只需使用 3~5k 的位元速率就可以實現使用者之間的視訊通話。由此可以推斷,在弱網甚至是超弱網環境下,AI 生成壓縮方案依然能夠支援使用者進行音視訊通話。

3. 機器視覺編碼

我們在機器視覺編碼這塊工作的最初動機是,現在的視訊應用場景中,視訊的編解碼、視訊的處理和機器視覺的分析都是分開的,而我們希望在未來能夠將這幾點結合,形成統一的系統進行端到端的優化和訓練。

image.png

我們選擇了物體檢測任務,例如這張影像(右上圖),可能來源於監控攝像頭或自動汽車攝像頭,物體檢測就是判斷影像中有哪些物體,這裡的物體包括兩個資訊,物體定位 (圖中的方框) 和類別識別(判斷是行人、車輛等物體類別)。

選擇物體檢測任務的原因在於物體檢測在當代機器視覺領域中,是應用最廣需求最大的技術,其次它是眾多機器視覺任務的基礎,只有先完成了物體檢測,才能進行姿態識別,例如只有先檢測出 “物體” 是人,才能進一步判斷他是摔倒或是行走等其他行為,在姿態識別完成後才能繼續做事件分析。

image.png

對於一張輸入影像來說,在編碼端會有神經網路將影像從畫素域轉換到多個特徵圖,將特徵圖通過熵編碼傳輸到解碼端,解碼端基於特徵圖進行解析,在重構出影像的同時完成機器視覺檢測任務。

image.png

我們在編碼端提出了創新性的 Inverse-bottleneck 結構(右圖),網路模型是先寬後窄的設計。機器視覺領域的網路模型一般隨著層數的加深通道越來越多,這樣每一層才會更密集,視覺任務精度更高。但對於壓縮來說不行,壓縮是為了降低位元速率,不可能傳輸太多的資料,那麼如何統一壓縮和視覺呢?

我們發現,在特徵通道圖之間存在大量的、高度的冗餘,而這些冗餘資訊是可以被壓縮的,所以我們將模型設計為先寬後窄的反瓶頸結構,在基本不影響機器視覺檢測精度的前提下大大提高壓縮效率。

image.png

由於整個系統既要做壓縮任務又要做機器視覺識別任務,我們把人眼視覺和機器視覺的損失放在一起形成了聯合損失函式進行整體優化,並提出了迭代搜尋來確定各損失項之間的權重關係。

image.png

在 MPEG-VCM 標準組上,全球很多公司進行提案。

我們的機器視覺壓縮方案對比最新的 VVC 標準,在 COCO 資料集上的測試結果顯示壓縮效能提升了 41.74%,在近幾次的 MPEG-VCM 會議上,我們的提案效能都保持第一名。

image.png

這是效能對比的幾個例子。

左上方影像,拍攝環境光線很暗,對於機器來說需要識別影像中有多少人,最左邊是 ground truth,它會框出人像位置,並標註 “person“,預測概率是 100%。VVC 和我們的方案均使用相同的位元速率來壓縮這樣一張影像,解碼端各自得到失真後的解碼影像。

在 VVC 的解碼影像上進行識別,沒有檢測出穿紅色短袖的男生,而我們的方案能夠檢測出這個男生,並框出位置,標註 “person”,預測概率是 98%,雖然沒有達到 100%,但相比 VVC,已經提升了很多。

image.png

右下角的 ground truth 框出了六個人,同樣在相同的位元速率下壓縮這張影像,在 VVC 的解碼影像上只能識別出一個人(白框),而我們的方案可以識別出四個人,對比 VVC 有非常大的效能提升。

4. 未來與展望

image.png

首先在人物視訊編碼方面,我們的目標是實現多人、多物、多運動的複雜場景下的超低位元速率視訊通話及視訊會議。

image.png

在視覺分析任務方面,我們的目標是實現可分離的多工編碼,編碼端單通道、解碼端多分支來實現多工的統一系統。

以上是本次的分享內容,謝謝!

「視訊雲技術」你最值得關注的音視訊技術公眾號,每週推送來自阿里雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。公眾號後臺回覆【技術】可加入阿里雲視訊雲產品技術交流群,和業內大咖一起探討音視訊技術,獲取更多行業最新資訊。

相關文章