1. 程式人生 > >視訊編碼未來簡史

視訊編碼未來簡史


首先我們回顧一下視訊編碼的歷史,視訊編碼起源於廣播電視,在很長一段時間裡視訊編解碼的變革主要推動力是來自於廣播電視。當然,今天我們看網際網路的視訊編碼是速度越來越快,昨天在ICET2017年世界大會上,ICET的主席還說到以前一個編碼是十年更新一版,但是現在從H.265最新進展的來看,可能不到十年。

我們看到這個圖,大家可能在小的時候見到過,電視上一個圓盤,這是最主要的電視測試訊號,這是1951年第一部數字電視和廣播。這個起源是脈衝調製編碼,相當於一個脈衝一個象素值,比較早的是用固定的位元,用8位元表示圖象電視訊號編碼傳輸。這是在廣播電視領域。

 

到了我們計算機行業,計算機誕生於1946年,但是在計算機上出現圖象是到了1957年, Kirsch是第一幅數字圖象的創造者,他用他的兒子做了第一章數字影象。2007年是這一幅圖象誕生50週年,現在是60週年了,原來的小baby現在也已經是50、60歲的老頭了。今天的數字圖象,已經到了4K甚至8K。

 

到了編碼,編碼的原理是因為視訊裡面有很多冗餘,包括連續兩幅圖象出現的時域冗餘,還有人眼對高頻資訊不敏感的感知冗餘,還有對感知不敏感的感知冗餘。基於這個原理,我現在視訊編解碼框架早期261開始,一直到今天266快出來了,框架基本上沒有太多變化。

 

 在這個框架裡面,我們說它的編碼技術可以主要分成三大塊。其中一部分是變換編碼,剛剛提到通過變換把高頻資訊把冗餘資訊去除掉。其中還有空域、時域把冗餘資訊去除掉。還有預測編碼,還有熵編碼。這是三大塊編碼的技術。

如果看三大塊的編碼技術,實際上是1950年差不多,1946年計算機誕生,1948年是相對資訊理論,50年代初開始了數字化開始視訊數字編碼時代。在早期由於計算能力限制,基本上是基於象素去處理,都是機遇統計去處理,像我們看到的huffma程式設計統計編碼技術。計算能力增強了之後現在有基於塊的處理。原來只能是基於圖象去做,後面才可以基於塊的處理,基於塊的運動估計、運動補償,像塊大小也可以變化,今天我們看到的H.264、265都是這樣。

變換,在70年代末的時候,基本上奠定了我們今天的視訊編碼行業,也就是說40年來基本上都是處於老瓶新酒的狀態。再看後面這是最近幾年的情況,當然265也有幾年歷史了,這是看到這塊的進展,包括像變換這塊有正象變換。這是視訊編碼的技術發展。

 

再看當下的視訊編碼技術進展。首先是空間的解析度,從原來的小圖象到標清、到高清、再到超高清。第二,是時間解析度,從原來的15幀,還有更高的20幀,到120。第三,取樣精度,現在的 HDR高動態範圍電視,至少是10位元了,但是10位元夠不夠,將來還會發展,也可能到了20位元。第四,視點數和視場範圍,這兩個是密切相關的。視訊傳的不是一路視訊,可能是兩路,可能是多路,這是視點數。視訊的範圍,看到的角度,越來越寬,這是視場範圍。第五,模型資料。模型資料是包括輪廓物件的刻劃。深度資料,還包括特徵,對影象內容、物件的認識。還有是點雲,完全可以把物件重建出來,遠景重現就依賴這項技術。

 

模型編碼,是標準之外的編碼。模型編碼這個概念也是比較久了,大概在80年代後期,一直到90年代中期的時候,曾經有一個很大的呼聲,模型編碼是第二類編碼,但是今天為止我們發現二代始終沒上臺,始終在用原來的二代。模型編碼的概念很光,可以把原基於象素的編碼都可以涵蓋,也是模型,只不過它的模型是基於訊號模型。當然我們熟悉的是物件模型,這個概念很新,但是它也沒有用起來,也是有很多問題,在這裡提到場景的解析,人和場地的解析。

更進一步,包括對人這塊,對人的身體、人的臉可以更精度的建模型,這對於編碼嘗試也很多。所以這對應表格上是在早期過去編碼歷史也有反應,包括基於人臉模型,甚至人臉哭和笑,只要是做好模型,將來傳很少的資料就可以還原。

當然最後邊的發展最後還提到智慧編碼,這是綜合了訊號與視覺的模型,基於學習的視訊編碼。


再看看視訊編碼的發展趨勢。4K越來越流行。我們看到網際網路廣播,包括最近廣東也開會提出下一步要提出4K電視廣播技術,我們北京也提出2022年冬奧會是8K的試播。上圖可以對比一下,有測試8K,左上角的高清多麼小。當然8K視訊不只是解析度的問題,還有配套的技術,包括取樣精度、幀率和聲音。  

 

這是關於壓縮的發展趨勢是8K。但是我們說的8K它並不只是解析度的問題,下面還有象素、更高精度。這是10億象素的相機拍攝的一張照片,圖片一直放大,可以清楚的看到“太和殿”三個字。

 

剛剛說的主要是解析度的增長。解析度上去之後,並不是說要傳一個更大的視訊,對於後端來說,意味著可以可以提供更多的視訊應用形式。其中一個是AR和VR。現在4K做VR的視覺效果還是有問題的,還是需要更高的視訊頻寬和視訊精度去傳輸。模型編碼,對AR也有更大的提升作用。

 

剛剛講了這麼多,如果看挑戰,一個是說資料量的壓縮,依然是比較嚴峻的。8K、4K、HDR這樣的視訊,原始資料級是60Gbps。

 

第二個挑戰是,從壓縮到分析。剛剛講到視訊編碼的第一個推動作用是廣播電視,看到更好的視覺質量。但是到今天為止,世界上好多視訊,比如監控,並不是人要去看的,是計算機要去看的。我們沒有人去盯監控視訊,希望計算機來能夠完成分析。目前的壓縮是面向儲存和傳輸,降低頻寬佔用,但是分析的支援相當弱。所以,很多視訊分析的研究是在壓縮完之後進行。但是,隨著現在前期分析識別技術越來越強,很多視訊分析開始在視訊編碼時就進行智慧分析、智慧編碼。

 

最新進展我也快速過一下,一個是最關心的JEM266,高通推動新一代的發展,最早是在MPEG會議提出,提出HM—KTA—1.0,到2020年制定新的標準。

 

 

JEM的效能有很大提升。客觀性測試上,編碼效率已經提升了30%,複雜度增加了12倍,這對編碼實現還是很有壓力的。這是剛剛出來的雛形,後端肯定會在複雜度和效能之間的做更多優化做更多技術。

 

最近已經有幾家平臺基於JEM做了一些嘗試,可以看到他們的測試結果。在SDR、HDR、360video三個平臺,可以看到基本上原來的位元速率下一半的時候可以達到同等的要求。這個對8K很有吸引力。

 

從固定精度運動向量到自適應精度運動向量,離預測中心比較近是,用高精度,比較遠時用低精度,以此來節省運動向量編碼的位元速率。


第二個是關於劃分,劃分模式太多,大家在選擇起來比較頭疼。


再說一下360,基本上是把投影拼接,拼接完了之後再壓縮編碼。在這個環節裡面最重要的是投影資料,投影資料決定你要壓縮什麼、丟失什麼,對整個VR的體驗影響很多。這是很重要的方向。


從圖象這塊我們可以看到全景視訊投影,從立方體、八面體、二十面體、球體,JEM裡面有十幾種投影方式。

 

對於質量評價不一樣,當然這種質量評價也是影響你編碼工具的設計,這兒有一個WSPSNR的概念因為它是從球面投到平面上去,有些資料丟了,如何計算WSPSNR很難,當然還有很多其他的方式。

 

剛剛講到JEM的技術。像光場這塊原來是聚焦一個圖象,現在是把不同方向的內容光線記錄下來,一遍是利用相機陣列,或者微透鏡成像。


廣場影象壓縮,JPEG比較積極,它是在2017年1月份釋出光場圖象壓縮平臺。

 

在這裡我們做了初步探索,對光場圖象裡面有很多問題,每一個小透鏡採集的光和圖象不一樣,中間有很多差異。弄完之後實際上每個濾波就是一個視訊,每一個小透鏡就是一個小圖象,這些差異需要處理。

 

再後來資料採集就是點雲採集,把人臉模型變成動畫場面。後面我們要把三維場景傳輸過去,這是下一步場景三維模型建模的技術發展方向。在這塊MPE也是比較迅速。

 

在今年4微分發布的CFP,大概10月份確立第一個驗證平臺,這個是類似於AR、VR可以把動態模型用三維模型傳輸過去。

 

這塊是序列編碼框架,把編碼資料包裝到每一個盒子裡面,當然對於點雲的資料要複雜的多一些。

 

這是對比的效果圖,可以看到這是原始資料,一幀電暈可能是136MB,我們看到壓縮一千倍、一萬倍,資訊會丟掉不少。


下面討論關於未來,本來簡史我們很熟悉,包括人類簡史、未來簡史,包括赫拉利講到人類簡史說三個革命,一個是認知革命,因為認知革命會製造工具,還有一個是農業革命可以養活更多的人,因為有個更多的人,才有人力去搞科學革命。

在視訊編碼方面,我把認知革命改成“採集革命”。視訊採集的深度、點雲、以及壓縮感知,Nyquist取樣定理等對採集有很大影響。採集是編碼的源頭,採集會影響到編碼的框架設計。

第二個計算革命,剛剛說農業可以創造更多的糧產,可以養活更多的人。在視訊編碼領域,能編碼,是因為計算能力的支援。計算的初期是基於畫素、後來是基於塊,現在有更多更復雜的計算。早期是CPU,後來GPU,現在有NPU。這些計算能力很強大,但是視訊編碼目前還沒有利用上這些計算能力。目前正在探索,利用這些計算能力現在在探索基於神經網路的編碼,就是想利用這種更高效的計算能力。

第三個是科學革命,我認為對於編碼來說是認知革命。認識視訊裡的內容,對內容有所識別。這裡麵包括簡單的視覺特徵,高階一點是深度學習,更高階是類腦計算學習。這個過程是支援未來視訊編碼的方向。

這三者相輔相成,採集有新東西了,計算能力要跟上。計算越強會支援採集。同樣對於認知也是,計算能力更強也會加強認知。所以這三者是相互支撐的關係。

 

我們下面看採集革命,輸出的時候是離散的數字訊號,這裡面最有名的就是奈奎斯特取樣定理,是要過取樣。4K、8K那麼大,採集到的資料有很多是冗餘的,是為了重建。


但是這種採集,與人眼的處理差別是很大的。這裡引入了壓縮感知,取樣時強調稀疏取樣。

這裡面一個直接的應用,e是原圖象。取樣時通過係數取樣,只採樣20%的象素,採集到的是a,再基於稀疏圖象的原理還原成e。資料量大大降低。


訊號採集在時間上和幅度上都是離散的,這就是離散訊號。但是離散訊號帶來的問題就是資料量增加特別多。這都是過取樣的方式。

 

但是人腦的採集過程是,一開始是光刺激發生,通過視網膜光電轉換和編碼,最後通過視網膜認出來。從影象出來到人腦把這個影象認出來,需要經過160ms。肯定今天的採集技術是比人眼採集頻率高很多,但是智慧分析識別上人要比裝置高很多。

 

人臉採集不一樣,上面是模擬訊號,下面是資料訊號,實際上我們人眼被稱之為神經脈衝編碼,是指當人看到一個東西如果沒有發生變化,是不發放神經脈衝的,相當於不傳訊號。所以,人腦的功耗是特別的。如果人腦的功耗也很高,就會把大腦燒掉。所以,人是靠很低功耗的計算,來實現分析識別。

 

這是一個很低功耗的圖象感測器,區別於傳統的CMOS、CCD,做陣列重新整理。這是一種事件驅動的採集,對於事件的發生分析,精度要求是很高效。

 

計算革命我也有一些思考.一個是我們知道前端計算,對於視訊編解碼都有專門的晶片,比如早期的C-Cube的處理器,VCD、DVD都使用這種處理器。最近有很強的ARM處理器可以支援4K,Tesla在使用的H.265編解碼器,可以處理8K。最新的寒武紀深度學習神經網路處理器。

 

這裡我們還是從變換說起,變換是視訊編碼很重要的模組,最早的變化是基於8x8 DCT。DCT的好處是當訊號相關性很強,相關係數達到0.95的時候,DCT就是最優的變換。但是實際訊號差別很大,如果影象一旦有邊緣,DCT就變得不高效,因為相關性降低了。這是就提出了基於方向的變化,排列一下,分別進行相關性變換。基於這種原理,擴展出了DST,離散正弦變化。到了正弦變化之後還不算完,在H.265發展過程開始通過尋來找KLT最優變換。在H.266提出了更新的做法,原來是離線訓練,H.266中使用線上訓練,通過前面一兩幀的資料線上訓練。

 

1987年,神經網路編碼提出。最近,Google開始引發關於神經網路編碼的革命。這麼多年的發展,神經網路編碼的原理,基本上還是想通的。

 

上文講的是神經網路可以進行更多的計算,那麼這裡給一個例子,進行這麼多計算,作用在哪?左邊是縮倍率示意圖,右邊是編碼複雜度示意圖,我們關注最後面兩個,一個是JPEG和Residual(基於神經網路的編碼)的GRU和CPU。壓縮倍率,JPEG和Residual的都是15倍。在計算複雜度上,如果把JPEG當做是1,那麼Residual在GPU上進行的編碼複雜度是3200,在CPU上的是26萬。

 

原來做濾波是做統計,求一個最優的濾波係數。這也可以用神經網路代替,基於神經網路做濾波,不訓練,直接通過神經網路就能計算的特別好。

 

前文是基於空域的濾波。還有基於時域的,像和幀之間的相關性,也可以用上,通過訓練改善優化,都能獲得性能的提升。

 

神經網路也可以做生成預測。

 

最後一塊是認知革命。認知革命是講前端處理都是基於塊,我們看到的塊都是畫素值、是數。但是人腦處理的時候從邊緣到輪廓到物件,差別很大。如果更高效、更智慧的編碼,應該是基於特徵的編碼,才可以做更高效的分析處理。

 

近期就是基於特徵的編碼(CDVA),最新的2018年的標準。視訊監控是一個典型應用。上百萬路視訊,如果是傳統的編碼,資料量達到1Tbps,如果是CDVA,則資料量降到10Gbps,上萬倍壓縮比。傳很少的資料達到分析識別的目的。

 

 

紋理特徵聯合編碼,現在已經有一些方案了。一路傳視訊、一路傳特徵,來輔助分析識別。

總結:

4K正在普 ,8K是未來趨勢,下一代標準值得關注

採集革命進一步擴充套件了視覺資料的維度,豐富了視覺資料編碼的多樣性

採集、計算和認知技術的融合,使得智慧編碼成為可能