轉載自:https://blog.csdn.net/fireroll/article/details/77827156
目錄:
1.編解碼框架差異
2.壓縮性能比較
3.各模塊技術差異彙總
4.塊劃分結構
5.幀內預測
6.幀間預測
7.去塊濾波
8.SAO濾波
9.Tile
10.WPP
11.Dependent slice
12.其他技術
1. H.264與H.265的主要差異
H.265仍然採用混合編解碼,編解碼結構域H.264基本一致,
主要的不同在於:
Ø 編碼塊劃分結構:採用CU (CodingUnit)、PU(PredictionUnit)和TU(TransformUnit)的遞歸結構。
Ø 基本細節:各功能塊的內部細節有很多差異
Ø 並行工具:增加了Tile以及WPP等並行工具集以提高編碼速度
Ø 濾波器:在去塊濾波之後增加了SAO(sample adaptive offset)濾波模塊
Fig.H.265的框架圖
2. 壓縮性能比較
PSNR計算方式
H.265/HEVC HM-9.0 和H.264 JM-18.4 的BD-rate 比較:
AllIntra case: 22%
RandomAccess case: 34%
LowDelay case: 37%
3. 各模塊技術差異彙總
4. 塊劃分結構
在H.265中,將宏塊的大小從H.264的16×16擴展到了64×64,以便於高分辨率視頻的壓縮。
同時,採用了更加靈活的編碼結構來提高編碼效率,
包括編碼單元(CodingUnit)、預測單元(PredictUnit)和變換單元(TransformUnit)。
如下圖所示:
其中:
編碼單元類似於H.264/AVC中的宏塊的概念,用於編碼的過程。
預測單元是進行預測的基本單元,
變換單元是進行變換和量化的基本單元。
這三個單元的分離,使得變換、預測和編碼各個處理環節更加靈活,
也有利於各環節的劃分更加符合視頻圖像的紋理特徵,
有利於各個單元更優化的完成各自的功能。
RQT是一種自適應的變換技術,這種思想是對H.264/AVC中ABT(AdaptiveBlock-size Transform)技術的延伸和擴展。
對於幀間編碼來說,它允許變換塊的大小根據運動補償塊的大小進行自適應的調整;
對於幀內編碼來說,它允許變換塊的大小根據幀內預測殘差的特性進行自適應的調整。
大塊的變換相對於小塊的變換,一方面能夠提供更好的能量集中效果,並能在量化後保存更多的圖像細節,但是另一方面在量化後卻會帶來更多的振鈴效應。
因此,根據當前塊信號的特性,自適應的選擇變換塊大小,如下圖所示,可以得到能量集中、細節保留程度以及圖像的振鈴效應三者最優的折中。
Fig. 靈活的塊結構示意圖
5. 幀內預測模式
本質上H.265是在H.264的預測方向基礎上增加了更多的預測方向
H.265:所有尺寸的CU塊,亮度有35種預測方向,色度有5種預測方向
H.264:亮度 4x4塊9個方向,8x8塊9個方向,16x16塊4種方向,色度4種方向
H.264的幀內預測方向:
H.265的幀內預測方向:
6. 幀間預測
本質上H.265是在H.264基礎上增加插值的抽頭係數個數,改變抽頭係數值以及增加運動矢量預測值的候選個數,以達到減少預測殘差的目的。
H.265與H.264一樣插值精度都是亮度到1/4,色度到1/8精度,但插值濾波器抽頭長度和係數不同.
H.265的增加了運動矢量預測值候選的個數,而H.264預測值只有一個
H.265的空域候選項:
H.265時域共同位置候選項
7. 去塊濾波
本質上H.265的去塊濾波與H.264的去塊濾波及流程是一致的,做了如下最顯著的改變:
Ø 濾波邊界: H.264最小到4x4邊界濾波;而H.265適應最新的CU、PU和TU劃分結構的濾波邊緣,最小濾波邊界爲8x8,
Ø 濾波順序:H264先宏塊內採用垂直邊界,再當前宏塊內水平邊界;而H.265先整幀的垂直邊界,再整幀的水平邊界
ALF在編解碼環路內,位於Deblock和SAO之後,
用於恢復重建圖像以達到重建圖像與原始圖像之間的均方差(MSE)最小。
ALF的係數是在幀級計算和傳輸的,可以整幀應用ALF,
也可以對於基於塊或基於量化樹(quadtree)的部分區域進行ALF,
如果是基於部分區域的ALF,還必須傳遞指示區域信息的附加信息。
8. 採樣點自適應偏移(Sample AdaptiveOffset)濾波
SAO(sample adaptive offset)濾波其實就是對去塊濾波後的重建像素按照不同的模板進行分類,並對每一種分類像素進行補償, 分類模板分爲BO(Band offset)和EO(Edge offset)。
BO分類:
EO分類模塊:
SAO在編解碼環路內,位於Deblock之後,通過對重建圖像的分類,對每一類圖像像素值加減一個偏移,達到減少失真的目的,從而提高壓縮率,減少碼流。
採用SAO後,平均可以減少2%~6%的碼流,而編碼器和解碼器的性能消耗僅僅增加了約2%。
9. Tile
Tile: 將圖像分割爲矩形區域。
其主要目的是增強並行處理性能。
每個tile區域相當於一幅子圖像,可獨立的以LCU塊爲單位進行編解碼。
一個Tile塊爲基本的並行單元,每個Tile爲一個子碼流
10. WPP
WPP: 全稱爲wavefront parallel process,以LCU行爲基本的編碼單位。
以一行LCU塊爲基本的並行單元,每一行LCU爲一個子碼流
11. Dependentslice
Dependent slice:該技術可以理解爲對原先Slice NALU的數據劃分,使其可以適合更加靈活的打包方式。
Slice 和dependent slice 的示意圖如下
12. 其他相關技術
Ø Transform_skip模式:transform_skip_flag,該模式不進行變換,但是要進行量化,該模式對文本桌面視頻有較好效果
Ø 內部比特深度增加:爲了保證中間預測、變換以及量化過程中的內部比特精度,以達到更好的壓縮性能