第二章 SHVC 視訊編碼系統
2.1 H.265/HEVC 視訊編碼標準
2.1.2 HEVC 視訊編碼架構與規範
H.265/HEVC 編碼架構,其主要分為兩個部分,網路提取層(network access layer: NAL)和視訊編碼層(video coding layer: VCL)。H.265/HEVC 架構類似於 H.264/AVC,其視訊編碼系統的基礎都建立於區塊上,但額外新增了一些技術,,
例如:大面積的適應性分割編碼區塊(通常使用 64×64)、畫面間(intra)預測模式增 加至 35 種使預測方向更加準確、畫面間(inter)預測模式提供更多樣的預測單位尺 寸等等。
畫面的處理上也提供了三種組態供其選擇,個別為 All Intra、Low Delay (LD) 及 Random Access (RA),All Intra 這個組態的每張畫面都是 I 畫面,這種處理的畫 面品質非常高,但其代價是耗費大量的編碼時間,結構如圖 2-2 ,LD 的結構為 第一張畫面為 I 畫面,除此之外皆為 P 畫面,這組態利用參考已完成的畫面資訊 來做預測,因此影像品質會隨著 P 畫面的多寡而有高低,但其編碼時間最短並且 資料量最少,結構如圖 2-3;組態 RA 畫面編碼順序為將完成之 I 畫面預測出 P 畫 面,再利用 I 畫面與 P 畫面預測出兩者間的 B 畫面,此組態編碼結果如: 畫面品 質、編碼時間及資料量介於 All Intra 和 LD 之間,結構如圖 2-4。
圖 2-2、All Intra 示意圖
8
圖 2-3、Low Delay 示意圖
圖 2-4、Random Access 示意圖
9
圖 2-5、HEVC 編碼系統方塊圖
圖 2-5 為 H.265/HEVC 編碼系統方塊圖,而整個編碼結構主要區分為 3 種編 碼單位,分別為編碼單位 CU、預測單位 PU 和轉換單位(transform unit: TU)。PU 包含了畫面內預測(intra prediction)、畫面間預測(inter prediction),而畫面間預測 當中包括運動估測和運動補償;TU 則是轉換(transformation)及量化(quantization);
而 CU 包括 PU、TU、去區塊濾波器(deblocking filter)和熵編碼(entropy coding)。
H.265/HEVC 採用大小為 64×64 的編碼樹單位(coding tree unit: CTU),如圖 2-6 所示。並將 CTU 進行階層式四分樹劃分(hierarchical quadtree partitioning)如圖 2-7,CTU 中定義 CU 為最基本的編碼單位,其功能與 H.264/AVC 基本編碼單位 (macro block: MB)相同,不同的是 CU 以遞迴方式分割,尺寸從 8×8 最小編碼單 位(smallest coding unit: SCU)到 64×64 最大編碼單位(largest coding unit: LCU),並 依大小定義其深度 64×64 為 Depth = 0,32×32 為 Depth =1 依此類推。
Coding Unit (CU)
Prediction Unit (PU)
Transform
Intra Prediction Quantization
Inverse Compensation (MC)
Deblocking Coefficients Data
Prediction Mode Motion Data
10
圖 2-6、影像以 CTU 劃分示意圖
圖 2-7、CTU 之 CU 四分樹劃分示意圖
CTU CTU CTU CTU CTU CTU CTU CTU
CTU CTU CTU CTU CTU CTU CTU
CTU CTU CTU CTU CTU CTU
CTU CTU CTU CTU CTU CTU
CTU CTU CTU CTU CTU CTU
CTU CTU CTU CTU CTU CTU CTU
CTU CTU ……….. CTU CTU CTU CTU CTU CTU
………..
………..
………..
………..
………..
………..
CTU CU splitting
CU
64 64 Depth = 0
32 32 Depth = 1
...
16 16 Depth = 2
8 8 Depth = 3
…….
11
經四分樹劃分之 CU 進入 PU 執行畫面內/畫面間預測(intra/inter prediction),
,共有 7 種預測模式分別為 SKIP、intra 2N2N、intra NN、inter 2N2N、inter NN、
inter 2NN 和 inter N2N,如圖 2-8 所示,而畫面間預測 inter 2N2N、inter NN、
inter 2NN 和 inter N2N 預測均需進行 ME 來得到 MV。
圖 2-8、PU 模式示意圖
最後進行 TU 的編碼,TU 為轉換和量化的基本單位,尺寸從最小 4×4 (Level
= 3)到最大 32×32 (Level = 1),TU 與 CU 的劃分方式相同使用 Quadtree 編碼結構,
如圖 2-9,而 TU 的 Quadtree 結構又稱差值四分樹(residual quadtree: RQT),RQT 提供高度靈活性以應變局部變化的差值預測,對於畫面間預測 TU 根據 MC 得到 的重建差值進行適應性的調整。
CU splitting
畫面內/畫面間預測(intra/inter prediction)
skip :
2N 2N inter :
2N 2N N 2N 2N N N N intra :
2N 2N N N
12
圖 2-9、TU 結構示意圖
整個尋找最佳 Quadtree 的過程,需要經過每種尺寸的 CU 考慮 PU 畫面內預 測模式 2N×2N 和 N×N,和畫面間預測模式 2N×2N、N×N、2N×N 和 N×2N 之 間的所有模式,再經由比較位元-失真成本(rate-distortion cost: RDcost),找出最佳 PU 模式;並進行 TU 差值編碼,經由轉換與量化後,同樣利用比較 RDcost 方式,
尋找最佳 RQT 結構,如圖 2-10,最後各深度 CU 再經由 RDO 之過程,修剪(pruning) 出最佳 CTU 之 Quadtree 樹狀結構。
圖 2-10、每一 CU 尋找最佳 PU、TU 示意圖
CU TU splitting
32 32 Level = 1 Best CTU structure
CTU 64×64 CU
13
在整個過程中運用的工具 RDcost,其同時考量了失真(distortion)與位元率 (bitrate)兩個變數,並且利用 Lagrange 乘數()在兩變數間取得最佳 RDcost,其決 策目標之工具分別如下:
(1) 畫面內預測模式(intra)
H.265/HEVC 採用 35 種預測模式,分別是 33 種方向預測加上平均模式(DC mode)和平面預測模式(planar mode),並且應用周圍已完成的點,利用預測的 方式增加編碼效率,所使用的 RDcost 數學式表示如下:
J = SATD + Pred BPred (2.1)
𝑆𝐴𝑇𝐷 = (∑ |𝐷𝑖𝑓𝑓𝑇(𝑖, 𝑗)|𝑖,𝑗 ) ×12 (2.2) (2.1)式中,J為RDcost,BPred為使用各intra預測模式中預測後編碼時所用的 資料量,SATD (Sum of absolute transformed differences)則是將重建與原始區 塊間的差值利用Hadamard轉換所得之絕對誤差總合如(2.2)式。
(2) 畫面間預測模式(inter)
視訊編碼標準為了減少影像時間上的冗餘(temporal redundancy),利用畫面之 間的高相關性做畫面預測,其方式是以區塊為單位進行 ME,經過逐步比較得 到 MV,接著做 MC 完成,所使用的 RDcost 數學式表示如下:
J = SAD + Pred BPred (2.3) 𝑆𝐴𝐷 = ∑ |𝐷𝑖𝑓𝑓(𝑖, 𝑗)|𝑖,𝑗 (2.4) 𝐷𝑖𝑓𝑓(𝑖, 𝑗) = Blockorg(𝑖, 𝑗) − Blockpred(𝑖, 𝑗) (2.5)
(2.3)式中,J為RDcost,BPred為inter預測模式中預測後的資料量,(2.4)式之SAD (sum of absolute differences)則是重建影像與原始影像的絕對誤差總和,(2.5) 式中Diff(i,j)為原始區塊與重建區塊在相對位置(i, j)的差值。
14
H.265/HEVC之ME首先在參考畫面相對位置開搜尋視窗(search window)如圖 2-11藍色框所示,在搜尋視窗內比較RDcost找出一個最佳匹配的區塊,最佳 匹配的區塊與原始區塊位置的距離就是MV如圖2-12箭頭所示,重建回去就是 MC。
Reference Frame Current Frame 圖 2-11、搜尋視窗(藍色框)示意圖
圖 2-12、ME 找尋 MV 示意圖
Search Window
Source block (0,0)
(u,v)
Candidate block
15
(3) 決策 CU、PU 及 TU 尺寸預測模式之 RDcost 數學式:
J = SSE + 𝑀𝑂𝐷𝐸 BMODE (2.6) 𝑆𝑆𝐸 = ∑ 𝐷𝑖𝑓𝑓(𝑖, 𝑗)𝑖,𝑗 2 (2.7)
(2.6)式中,J為RDcost,BMODE為當前編碼模式所需的資料量,(2.7)式SSE (sum of square error)則為原始影像與重建影像之均方誤差。