?

3D視頻編碼原理簡介

2019-07-20 08:21劉恩亞崔軍峰
數字通信世界 2019年6期
關鍵詞:編碼深度預測

劉恩亞,崔軍峰,南 楠

(國家無線電監測中心,北京 100037)

3D技術以其栩栩如生的真實感極大地豐富了大眾的娛樂生活,但是為了達到自然真實的效果,需要巨大的數據存儲與傳輸。自20世紀90年代開始,視頻編碼標準不斷迭代升級,以適應日新月異的技術發展需求。結合文獻調研,本文簡單介紹了3D視頻編碼的基本原理。

1 圖像與視頻編碼基本原理

視頻是連續的圖像序列[1-3],由連續的幀構成,一幀即為一幅圖像。由于人眼的視覺暫留效應,當幀序列以一定的速率播放時,我們看到的就是動作連續的視頻。由于連續的幀之間相似性極高,為便于儲存傳輸,我們需要對原始的視頻進行編碼壓縮,以去除空間、時間維度的冗余。

1.1 圖像編碼基本原理

視頻編碼是建立在圖像編碼的基礎上,以JPEG(Joint Photographic Experts Group,聯合圖像專家小組)格式為例,圖像編解碼原理如圖1所示[1]:

圖1 圖像編解碼原理示意圖

圖像編碼流程如下:

(1)首先將圖像分塊(Block),JPEG中通常為8*8像素。

(2)對分塊進行DCT(Discrete Cosine Transform,離散余弦變換),將圖像數據變換到空間頻域。

(3)對變換后的空間頻域矩陣進行量化(Quantize),通常需設定一個QP值(Quantization Parameter,量化參數)。把空間頻域矩陣的每一個DCT系數除以QP值,再取整,從而DCT矩陣中較小的系數就被忽略掉了,以此達到壓縮效果,如圖2所示。

QP值是視頻編碼中的一個重要的參數,QP值越大,壓縮后的文件越小,但是視覺上效果越差;QP值越小,則反之。

(4)經過量化后的矩陣含有大量0值,為進一步壓縮,進行Zigzag掃描,如圖3所示。

(5)將Zigzag掃描后得到的序列進行壓縮編碼(通常稱作熵編碼,Entropy Coding)。編碼方法可采用RLE(Run-Level Encoding,游程編碼)或VLC(Variable-Length Coding,變長編碼)[1]。

圖2 DCT及量化示意圖

圖3 Zigzag掃描示意圖

1.2 視頻編碼基本原理

視頻編碼時,要重點考慮消除幀與幀之間的冗余信息。相比于圖像編碼,視頻編碼增加了Motion Est.和Motion Comp.兩個模塊,如圖4所示。Motion Esti.為運動估計(Motion Estimation),即計算兩幅圖像中變化的部分;Motion Comp.為運動補償(Motion Compensation),即利用運動估計的結果和前一幅圖像,計算得到新的圖像。也即,運動估計去掉了時序上相鄰的兩幅圖像中的冗余部分,僅保留其變化部分,以達到壓縮的效果。

圖4 視頻編碼原理示意圖

視頻解碼過程如圖5所示。

圖5 視頻解碼原理示意圖

2 視頻編碼標準簡介

2.1 視頻編碼標準化進程

目前,主要有兩家國際機構負責制定視頻編碼標準:國際電信聯盟的視頻編碼專家組(ITU-T's Video Coding Experts Group)和國際標準化組織和國際電工委員會的動態圖像專家組(ISO/IEC Moving Picture Experts Group,MPEG)。

表1 視頻編碼標準演進情況表

簡單回顧一下20世紀90年代以來的主流編碼標準[9,12]。表1中,ITU-T的標準包括H.261、H.263、H.264,主要應用于實時視頻通信領域,如視頻會議;MPEG系列標準是由ISO/IEC制定的,主要應用于視頻存儲(DVD)、廣播電視、互聯網或無線網絡的流媒體等。兩個組織也共同制定了一些標準,H.262標準等同于MPEG-2的視頻編碼標準,而H.264標準則被納入MPEG-4的第10部分。

表1中提到的各個標準在[8-12]中有著比較詳盡的介紹,本文不再展開,值得一提的是AVS和HEVC這兩種較新的編碼標準。AVS的全稱是The Audio Video Standard of China,即中國音視頻編碼[10],與其他標準相比,AVS可以在顯著降低復雜度的同時提供近乎最優的性能。2006年,AVS作為中國國家標準正式發布[11]。HEVC全稱是High Efficiency Video coding,即高效視頻編碼[13]。2013年1月26日,HEVC正式被批準稱為國際標準,ISO/IEC將其納入MPEG-H Part 2,而ITU-T則將其納入H.265。HEVC主要針對高清、超高清視頻,比起H.264/AVC而言,可以提高50%的編碼效率,其代價是算法復雜度的升高。

2.2 H.264/AVC標準

H.264編碼標準最初發表于2003年,是ITU-T和ISO/IEC兩家機構的聯合產品[3,4]。H.264是ITU-T沿用的標準名,而ISO/IEC則將其命名為MPEG-4 Part 10/AVC,AVC是高級視頻編碼(Advanced Video Coding)的首字母。H.264編解碼大致流程如圖6所示[3],分為三個步驟:預測(Prediction)、變換(Transform)和編碼(Encode),解碼則反之。

圖6 H.264/AVC編解碼原理示意圖

圖7 I,P,B幀示意圖

在H.264編碼的視頻序列中,共分I,P,B三類幀(圖7):I幀,即Intra Frame,是獨立編解碼的幀,不需要其他的幀作為參考。視頻序列的第一幀一定是I幀,I幀通常包含較多的比特數。P幀,即Predictive Inter Frame,它以之前的I或P幀作為參考幀來進行編碼。P幀通常比I幀包含更少的比特數,比I幀更易受到傳輸錯誤的干擾。B幀,即Bi-predictive Inter Frame,它的壓縮編碼不但需要參考之前的I或P幀,還需要參考之后的I或P幀。

諸如“IBBPBBPBB”這樣的結構被稱作一個GOP(Group of Pictures)。

2.2.1 預測模塊(Prediction)

編碼器在處理一幀圖像時是基于宏塊(Macroblock)進行的,一個宏塊是16*16個像素點。每個宏塊的預測都是參考之前已編碼的宏塊。根據已編碼的宏塊的來源不同,預測編碼可以分為兩類:一類是幀內預測編碼(Intra Prediction),即以同一幀內的已編碼的宏塊作為參考;另一類是幀間預測編碼(Inter Prediction),即以之前已被編碼并且已被發送的幀的相關宏塊作為參考。編碼器將預測得到的數據從當前宏塊中去掉,于是便得到剩余數據(residual)。

圖8 幀內預測編碼

幀內預測編碼如圖8所示,相對之前的編碼標準來說,H.264的塊大小較為靈活(可為16×16或者4×4個像素點),這也使得其在預測精度和編碼效率上得到很大提高。

幀間預測編碼需要考察連續幀之間的差異來進行壓縮[4]。如圖9所示,連續的三幀描述了一個人跑向房屋的場景。在三幅圖像中,房屋不變,故在后兩幀中可以視為冗余數據。針對這種情況,可采用差分編碼(difference coding)的方法來進行壓縮,即只編碼那些相對于參考幀有變化的像素點。僅通過差分編碼來進行幀間預測編碼不足以較好地壓縮圖像中運動的部分,這時要采用運動補償(motion compensation),運動補償的基本思想是:當前幀中的圖像數據大體上都可從之前已編碼的幀中找到,只不過是位置不同而已,如果將其位置的變化找到并儲存,即可預測得到當前幀,詳見[4]。

2.2.2 變換及量化(Transform and Quantization)

在預測部分提到,編碼器將預測得到的塊的數據從當前的塊中去掉,從而獲得剩余數據(residual),繼而對每一塊剩余數據進行4×4或者8×8的整數變換(integer transform,整數變換是DCT變換的近似形式),隨后再對變換后得到的系數進行量化,具體過程已在前文介紹。

圖9 Inter預測編碼應用場景

2.2.3 比特流編碼(Bitstream Encoding)

經過前述步驟后,我們得到了若干待壓縮為比特流的數據。這些數據分別是:量化后的變換系數、解碼器預測重建數據的有關信息、壓縮數據的結構信息和編碼時使用的壓縮工具的信息、關于整個視頻序列的有關信息。利用變長編碼(Variable Length Coding,VLC)或算數編碼(Arithmetic Coding),將上述提到的數據、參數(語法元素,syntax elements)轉換為二進制碼,即為比特流編碼。經比特流編碼后的二進制序列可用于傳輸或儲存。本小節簡單介紹了H.264/AVC的編碼原理,詳細的算法介紹可以參考[5-7]。

3 3D視頻編碼原理簡介

如何在有限帶寬前提下,成功展示滿意的3D效果是擺在研究人員面前的一項艱巨任務。不同的3D顯示技術需要用到不同的3D數據格式,也即需要采用不同的3D編碼方法。但是,各種方法的目的是相同的,即有效地去除待編碼視頻之間的時間、空間冗余?;谥敖榻B的H.264/AVC,文獻[14-21]中提出的3D視頻編碼方法大致可以分為兩類:一類是基于多視角(multi-view)的編碼方法;另一類是基于視頻加深度(video plus depth)的編碼方法。

3.1 多視角3D視頻編碼方法

3.1.1 傳統立體視頻編碼(CSV)

傳統立體視頻編碼(Conventional Stereo Video Coding,CSV)是最經典的3D視頻編碼方式[14]。兩臺攝像機參考人眼的距離放置,同時拍攝同一場景。在壓縮編碼時,某一路視角的視頻可以參考另一路視角來進行編碼,提高壓縮效率。采用CSV時,兩路視角的視頻分為基礎層(base layer)和增強層(enhancement layer)?;A層完全當做獨立的二維視頻來進行編碼,而增強層則在編碼時需要以基礎層作為參考。3D視頻編碼通常將左視作為基礎層,右視作為增強層;左視具有后向兼容性,可以作為二維視頻在常規顯示設備上播放。CSV方法的缺陷在于其只能保證在拍攝視角觀看視頻時會有3D效果,而其他視角則不能。

圖10 CSV編碼方法視頻結構示意

3.1.2 多視角視頻編碼(MVC)

多視角視頻編碼(Multi-view Video Coding,MVC)是CSV的升級版,即多個攝像機同時拍攝同一場景。這樣,在觀看時可以從多個位置看到立體效果。在編碼壓縮多視角視頻信號時,可采用視差補償(disparity compensation)來去除視角間的冗余(Inter-view Redundancy)[14]?;贖.264/AVC的“分層B幀(hierarchical B-pictures)”結構如圖12所示。MVC方法也存在兩個缺陷,一是其計算復雜度高,尤其不適合移動設備;二是雖然較CSV而言,MVC可以給觀眾更多的觀看視角,但是這些視角在錄制視頻之初就固定了,缺乏一定的靈活性。

圖11 MVC編碼方法視頻結構示意

3.1.3 雙視抑制理論(BST)

L. Stelmach等學者于2000年提出了利用“雙視抑制理論(Binocular Suppression Theory,BST)”來進行3D視頻編碼[15,22]。BST的理論指出:觀眾的主觀測評結果是由高質量的視頻(左視)決定的。在編碼時可將右視的分辨率下采樣至原始大小的二分之一或四分之一,如圖13所示。BST在學術研究上是一個有意義的嘗試,但其商業化應用較為有限。

3.2 視頻加深度編碼方法

3.2.1 視頻加深度編碼(V+D)

視頻加深度編碼方法(Coding of Video Plus Depth,V+D)是在歐洲信息社會技術(The European Information Society Technologies,IST)發起的“先進3D電視系統技術(Advanced Three-Dimensional Television System Technologies,ATTEST)”項目中提出的。V+D編碼中3D圖像表達為:單視角圖像(monoscopic color video),外加一個深度信息(per-pixel depth information),如圖13所示:

圖12 BST編碼方法視頻結構示意 圖13 V+D編碼方法視頻結構示意

單視角圖像即為普通2D視頻,深度圖的每一個像素點與單視角圖像的像素點一一對應,用8比特的灰度值(gray value)來代表原圖像該像素的深度信息?;叶戎禐?表示“最遠/深端”,灰度值為255則表示“最近/淺端”??赏ㄟ^兩種方法獲取深度圖[17]:一種方法是利用特殊設備,如“測距”相機(time of flight cameras);另一種是利用算法估計得到,如分析同一場景中同一物品的位移或差異(displacement or disparity)。在接收端,利用DIBR算法(Depth-Image-Based-Rendering Technique)可以從V+D格式的數據中恢復出適合人眼觀看的3D視頻效果。

V+D編碼方式有兩個顯著的特點:一是它可實現非常高的壓縮效率,由于深度信息為單色圖像,所以在使用V+D方法壓縮視頻后會比壓縮兩路彩色視頻節省資源;二是它具有“互動性”,接收端的3D效果展示是通過數學手段計算而得,故可將深度信息設置為與亮度、對比度類似的可調參數,通過調節深度來達到個性化的3D觀看效果。V+D編碼方式的也存在較為明顯的缺陷,即圖像中前景對后景的遮擋:如在圖13中,我們無法獲得被人臉遮擋部分的深度信息,如果觀看者調整了觀看角度,則DIBR算法無法算出被遮擋部分的深度,導致觀看3D視頻的主觀體驗下降。

3.2.2 多視角視頻加深度編碼(MVD)

MVD是Multi-view Video Plus Depth的縮寫,它是V+D編碼方法的擴展[14]。MVD需錄制多視角的原始視頻和深度信息(見圖14)。MVD相比MVC來說更節省資源,但是隨著視角數的增多,MVD會產生大量的數據。

圖14 MVD編碼方法視頻結構示意

3.2.3 分層深度編碼(LDV)

LDV是Layered Depth Video的縮寫,LDV編碼是針對V+D的不足而提出的[14]。LDV將原始視頻中的前后景區分出來,分別進行V+D編碼,以克服單純使用V+D的不足,如圖15所示。

圖15 LDV編碼方法視頻結構示意

3.2.4 MVC與MVD的比較

MVC與MVD相比,其優勢在于不需要額外的深度感知設備,當前的3D電影基本都是參考MVC標準制作的;而MVD相比MVC而言,在某些場景中會更節省資源,具體分析見[15]。誠然MVD有自己的優勢,但是由于MVD方法與工業界的慣例做法沒有傳承關系,而且需要有特殊的深度感知設備,所以工業界一直沒有采用并且推廣MVD。[15]中也指出,未來市場中通用的3D編碼方式將會是MVC。

4 結束語

結合文獻調研,本文簡要介紹了圖像和視頻壓縮編碼的基本原理,進一步介紹了3D視頻編碼基本原理和多種編碼方法。隨著5G時代的到來,從原理上了解3D視頻編碼方法,將對3D視頻數據在通信(尤其是無線通信)網絡中傳輸建模及分析應用大有裨益。

猜你喜歡
編碼深度預測
無可預測
選修2-2期中考試預測卷(A卷)
選修2-2期中考試預測卷(B卷)
選修2—2期中考試預測卷(A卷)
基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達圖像配準
深度理解一元一次方程
《全元詩》未編碼疑難字考辨十五則
子帶編碼在圖像壓縮編碼中的應用
深度觀察
深度觀察
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合