視頻編碼未來簡史
轉自:http://blog.csdn.net/agora_cloud/article/details/78136259
首先我們回顧一下視頻編碼的歷史,視頻編碼起源於廣播電視,在很長一段時間裏視頻編解碼的變革主要推動力是來自於廣播電視。當然,今天我們看互聯網的視頻編碼是速度越來越快,昨天在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是未來趨勢,下一代標準值得關註
采集革命進一步擴展了視覺數據的維度,豐富了視覺數據編碼的多樣性
采集、計算和認知技術的融合,使得智能編碼成為可能
視頻編碼未來簡史