HEVC 學習簡介

轉載自:http://blog.csdn.net/fengliang191/article/details/28279271


HEVC 學習簡介

HEVC(high efficient advanced code)(即H.265),是繼AVC(advanced video code)(H.264)以後的新一代視頻編碼技術。2013標準已經發布,目前已經開始商用。

商用領域:高清及超高清(4K,8K)領域

實現目標:HEVC目標在H.264/AVC 的基礎上,對高分辨率/高保真的視頻圖像壓縮效率提高一倍,也就是在保證相同 視頻圖像質量的前提下,視頻流的碼率減少50%

H.265視頻編碼框架:

H.265仍然沿用了自H.263就開始採用的廣爲接受的混合編碼框架(幀內編碼,幀間編碼,變換,量化,編碼四個部分),比如幀內預測和基於運動補償的幀間預測,以及轉換編碼和高性能的熵編碼。和之前的編碼標準相比,H.265採用了很多創新的技術,比如靈活的基於大尺寸四叉樹的分割結構和殘差編碼結構、自適應運動參數編碼(Adaptive Motion Parameter)、自適應內嵌式濾波器(Adaptive In-loop Filtering)等等。這些嶄新的技術提升了H.265標準的編碼效率。

具體模塊分爲:

1.      編碼單元(CU)

在H.265中,定義CU是最基本的正方形編碼單元,他所扮演的角色類似於

H.264/AVC的MB(MacroBlock),但是相比(MB)只有4×4和16×16兩種尺寸,

H.265中CU的尺寸可以從8×8到最大的編碼單元64×64,並且以深度(depth)

表示其大小,Depth=0爲64×64,Depth=3爲8×8。由此可知Depth=k和Depth=k+1

的CU長寬差兩倍,故對於一塊大小2N×2N、Depth=k的CU,它的大小往下可

以分成4塊大小N×N、Depth=k+1的CU,可用四叉樹結構表示,此外,每個CU內部都包含了一個或一個以上的PU和TU結構,因此我們可以把CU視爲最外層的框架,PU和TU的尺寸不能夠超過CU。

2. 預測單元(PU)

在H.265中,PU是進行幀內預測和幀間預測的基本單元,大小可以從4×4

到64×64,並且除了對稱模式(symmetric motion partition)的2N×2N、N×N、

2N×N和N×2N類似H.264的分割方法之外,H.265還提供了非對稱的模式

(asymmetricmotion partition,AMP),包含了2N×nU、2N×nD、nL×2N和nR

×2N,大寫的英文字母代表邊長較短分割塊的位置。

2.1幀內預測

H.264視頻編碼中首次出現了幀內預測,最早的H.263和MPEG—2都沒有幀內預測概念,由於幀內預測可以高效的壓縮幀內編碼,故在H.265中繼續沿用。H.264採用4*4(圖像比較複雜是用)和16*16(圖像比較平滑是用),供9中預測模式。兩種模式結合使用,可以靈活的對於圖像質量和紋理細節不同的區域採用不同的處理方式和大小。

在H.265 提供了多達33種有向性和2種無向性共35種預測模式,使預測更加精準。

2.2 幀間預測

   從MPEG-2開始,視頻編碼採用幀間預測,即視頻流中各個幀並不需要每個幀都是一副完整的圖像,因爲各個前後畫面存在時間上的相關性,後面的畫面可以在前面的畫面的基礎上通過加上一個運動矢量,預測出來。典型的IPB幀,只有I幀纔是完整的畫面,其他P真就是在I幀的基礎上參考預測出來的,而B幀是雙向預測,也需要參考I幀或P幀,通過計算誤差信息來構造出一幅完整的畫面。由此可見,視頻並不是簡單的圖形的連續播放形成的。視頻由於存在時間上的相關性,可以利用時間相關性,消除時間冗餘信息,完成幀間編碼。

H.265的幀間預測使用對稱和非對稱的兩種不同分割模式來進行運動矢量補償。每一個預測單元中都擁有運動矢量。根據不同的圖像複雜度使用不同的分塊大小,以此獲得更好的壓縮性能。通常來說,對於較爲平滑的區域通常會選擇大分塊的分割模式;而圖像複雜度較高的編碼單元傾向於使用小分塊的分割模式。運動矢量與鄰近的預測單元有着明確的時間和空間相關性。根據時間相關性,列出所有可能的運動矢量,根據中位數,刪除多餘的候選運動

矢量,加入零向量,作爲運動矢量預測子候選列表。在編碼過程中,通過搜尋候選列表,找到最佳的運動矢量預測子,通過其索引值來表示選擇對應的運動矢量。

3. 變換單元(TU)

變換單元是作爲變換和量化過程的基本單元。變換單元的形狀取決於預測單

元的分割模式,當預測單元爲正方形,變換單元也爲正方形,大小爲4×4到32

×32;當預測單元不是正方形,變換單元也不會是正方形,尺寸爲32×8、8×32、

16×4、4×16。每一個編碼單元包含一個或多個變換單元,但變換單元的分割必

須在編碼單元的四叉樹結構內。

4.量化

H.265中,預測之後需要對對應的單元進行壓縮,有效的壓縮需要使用一些,變化算法。變換單元的尺寸從4×4至32×32,不論是空間性或者是時間性預測其殘差都使用轉換矩陣進行信號能量的集中,在解碼端得到的結果和編碼端完全相同,這樣就不會產生失配的結果。

量化和反量化的過程被整合在變換矩陣的運算當中,量化步長大小(QStep)是由量化參數(QP)決定的。當步長越長,誤差越大,但壓縮效果越好;反之,步長越短,誤差越小,但壓縮效果越差。H.265中QP的範圍爲0到51,QP值之間並非等距,而是每個QStep以12%的比例增加;也就是每增加6個Size的QP值後,QStep的值比原先增加一倍。

 

5.熵編碼

變換單元在經過轉換和量化後的最後一個步驟是熵編碼。熵編碼將出現頻率

高的符號賦以短的碼字,頻率低的賦以較長的碼字,比起傳統固定長度的碼字有

更好的壓縮率。編碼器傳送給解碼端採用熵編碼的方式的部分包括預測殘差、運

動矢量和文件頭。在H.264中,對於熵編碼部分提供兩種選擇:一種爲適應性二

進制算術編碼(CABAC);另一種是適應性可變長度編碼(CAVLC)。CABAC較CAVLC編碼方法大約可以節省5-15%的碼率,所以目前H.265已經將CAVLC移除,任何配置文件都使用CABAC的熵編碼方式進行壓縮。

 

相關資源網站:

 

第三方參考軟件下載:http://x264.fushizen.eu/builds/hevc-hm/

 

中國HEVC論壇  http://www.oschina.net/p/hevc 

HEVC詳細介紹:http://www.itu.int/rec/T-REC-H.265-201304-P/en

官方 HEVC參考軟件:https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/

 HEVC測試序列:ftp://hvc:[email protected]/testsequences

YUV工具:http://www.sunrayimage.com/download/YUVTools_3.0_trial.zip

參考資源:

1.      MPEG2協議及其指南

2.      H.264協議中文版

3.     嚴順卿,HEVC幀內預測快速模式選擇算法研究【碩士論文】【上海交通大學】

4.      畢厚傑,王健.新一代視頻壓縮編碼標準——H.264/AVC(第二版).人民郵電出版社1,2009年11月.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章