# 編碼框架
2013年4月13日HEVC/H.265被ITU-T正式接受為國際標準。類似以往的國際標準,HEVC仍舊采用“預測+變換”的混合編碼框架,如下圖所示,包括變換、量化、熵編碼、幀內預測、幀間預測以及環路濾波等模塊。在HEVC中,幾乎每個模塊都引入了新的編碼技術。

本博文主要介紹HEVC編碼框架,從整體結構出發介紹HEVC各個模塊的大致功能以及相應的特色編碼技術。
HEVC的編碼框架主要包括變換、量化、熵編碼、幀內預測、幀間預測以及環路濾波等模塊。下面依次對各個模塊做簡單介紹。
### 1、幀內預測
幀內預測的主要功能是去除圖像的空間相關性,通過編碼后的重構信息塊來預測當前像素塊以去除空間冗余信息,提高圖像的壓縮效率。
在H.264/AVC中,基于4x4大小的編碼塊采用9種預測模式,而基于16x16大小的編碼塊采用4種預測模式。
在HEVC中,為了更準確地反映紋理特性,降低預測誤差,提出了更為精確的幀內預測技術。對于亮度信號,HEVC提供了35種幀內預測模式,包括33種角度預測以及DC預測模式和Planar預測模式。增加的預測模式可以更好地匹配視頻中復雜的紋理,得到更好的預測效果,更加有效地去除空間冗余。
### 2、幀間預測
幀間預測的主要功能是去除時間相關性,通過將已編碼的圖像作為當前幀的參考圖像,來獲取各個塊的運動信息,從而去除時間冗余,提高壓縮效率。
為了提升幀間預測性能,HEVC引入了一些新的技術,包括運動信息融合技術(Merge)、先進的運動矢量預測技術(Advanced Motion Vector Predictor,AMVP)和基于Merge的Skip模式。
運動信息融合技術(Merge):利用空域相關性和時域相關性來減少相鄰塊之間的運動參數冗余,具體來說就是取其相鄰PU的運動參數作為當前PU的運動參數。
先進的運動矢量預測技術(Advanced Motion Vector Predictor,AMVP):AMVP技術的作用與Merge技術類似,也是利用空域相關性和時域相關性來減少運動參數的冗余。AMVP技術得到的運動矢量一方面為運動估計提供搜索起點,另一方面作為預測運動矢量使用。
基于Merge的Skip模式:后續重點介紹。。。
在HEVC中,幀間預測可以采用單向和雙向的參考圖像來進行預測,包括類似H.264/AVC中的分層B幀的預測結構。
### 3、變換量化
通過對殘差數據進行變換量化以去除頻域相關性,對數據進行有損壓縮。變換編碼將圖像從時域信號變換至頻域,將能量集中至低頻區域。量化模塊可以減小圖像編碼的動態范圍。
RQT(Residual Quad-tree Transform)技術是一種基于四叉樹結構的自適應變換技術,它為最優TU模式選擇提供了很高的靈活性。大塊的TU模式能夠將能量更好地集中,小塊的TU模式能夠保存更多的圖像細節。根據當前CU內殘差特性,自適應選擇變換塊大小,可以在能量集中和細節保留兩者做最優的折中,與傳統的固定塊大小的變換相比,RQT對編碼效率貢獻更大。
變換編碼和量化模塊從原理上屬于兩個相互獨立的過程,但是在HEVC中,兩個過程相互結合,減少了計算的復雜度。
### 4、環路濾波
在HEVC中,環路濾波模塊主要包括去塊濾波器(DBF)和樣點自適應補償濾波(SAO)。DBF的主要作用是去方塊效應,而SAO的主要作用是去除振鈴效應。這部分的具體分析在[《HEVC算法和體系結構:環路濾波技術》](http://blog.csdn.net/frd2009041510/article/details/49736199)中已有詳細介紹。
### 5、熵編碼
熵編碼模塊將編碼控制數據、量化變換系數、幀內預測數據、運動數據、濾波器控制數據編碼為二進制進行存儲和傳輸。熵編碼模塊的輸出數據即是原始視頻壓縮后的碼流。
在HEVC中,采用了基于上下文的自適應二進制算術編碼(CABAC)進行熵編碼,引入了并行處理架構,在速度、壓縮率和內存占用等方面均得到了大幅度改善。
接下來介紹HEVC的兩個容易被忽略的新技術:ACS和IBDI。
### 6、ACS技術
ACS(Adaptive Coefficient Scanning)包括三類:對角掃描、水平掃描和垂直掃描。ACS技術是基于4x4塊單元進行的,將一個TU劃分為多個4x4塊單元,每個4x4塊單元內部以及各個4x4塊單元之間都按照相同的掃描順序進行掃描。
對于幀內預測區域的4x4和8x8尺寸的TU,根據所采用的幀內預測方向來選擇掃描方法:當預測方向接近水平方向時采用垂直掃描;當預測方向接近于垂直方向時就選用水平掃描,對于其他預測方向使用對角掃描。
對于幀間預測區域,無論TU尺寸多大都采用對角掃描方式。
### 7、IBDI技術
IBDI(Internal Bit Depth Increase)技術是指在編碼器的輸入端將未壓縮圖像像素深度由P比特增加到Q比特(Q>P),在解碼器的輸出端又將解壓縮圖像像素深度從Q比特恢復至P比特。
IBDI技術提高了編碼器的編碼精度,降低了幀內/幀間預測誤差。但由于要建立參考隊列,像素深度為Q比特的重構圖像須占用較大的內存空間。此外,在進行幀間運動估計和補償時,需要較多的內存訪問帶寬,這樣會給內存受限的系統帶來不便,解決的方法是引入參考幀壓縮算法,來減小重構圖像的數據量。
- 前言
- HEVC算法和體系結構:資源獲取和章節安排
- HEVC算法和體系結構:HEVC概括性介紹
- HEVC算法和體系結構:環路濾波技術
- HEVC算法和體系結構:編碼框架
- HEVC算法和體系結構:編碼結構之編碼時的分層處理架構
- HEVC算法和體系結構:編碼結構之編碼完后碼流的語法架構
- HEVC算法和體系結構:預測編碼之幀內預測
- HEVC算法和體系結構:預測編碼之幀間預測
- x265探索與研究(一):x265下載安裝與配置
- x265探索與研究(二):x265使用基本方法
- x265探索與研究(三):如何播放*.265格式的視頻或解碼視頻流
- x265探索與研究(四):如何編碼視頻?
- x265探索與研究(五):如何用VS調試x265?