HEVC 樣點自適應補償(SAO)原理詳解

代碼版本:HM-16.2+SCM-3.0rc1
時間: 2015/07/20
作者:LB

SAO應用於去方塊濾波之後,首先將Frame劃分成若干個LCU,SAO對處於不同圖像區域的LCU進行局部信息補償,以減少源圖像與重構圖像之間的失真。HEVC中根本上說只有兩種SAO類型:邊緣補償(EO,Edge Offset),帶狀補償(BO,Band Offset),在實際操作過程中還引入了參數融合模式(Merge)。

對於每一個LCU都有三種SAO模式進行選擇,BO,EO,OFF(不採用SAO)。如下圖所示,虛線爲LCU的邊界。可以直觀的看出相鄰的LCU往往會採用相同的的SAO模式,此時採用Merge模式,對應的SAO採用相鄰塊的SAO參數,可以降低碼率。
這裏寫圖片描述
重點內容帶狀補償與邊緣補償分佈示意圖
因爲SAO實在整個幀編碼完成得到重建幀之後進行的,因此它屬於Slice級別,在實際的操作過程中,若採用了Merge模式,需要判斷相鄰塊是否在同一個Slice,同一個Tile,以及是否可以跨越Slice,跨越Tile。

Merge模式:
這裏寫圖片描述
C的SAO參數有以下三種選擇:
① 直接使用A塊的參數;
② 直接使用B塊的參數;
③ 通過分析自身的像素塊特點,選擇不同的參數。

前兩種選擇屬於Merge模式。對於這兩種情況,C塊僅需要傳送融合標誌位即可。在使用Merge模式時,同一個LCU的亮度塊與色度塊均要同時使用相同塊的SAO參數。
這裏寫圖片描述
若不使用Merge模式,則亮度塊與色度塊分開考慮計算, 計算亮度塊,再計算色度塊。如下圖所示:
這裏寫圖片描述
邊界補償(EO):
邊界補償模式是通過比較當前像素值與相鄰像素值的大小進行分類,然後根據類別對屬於同一類別的像素值補償相同的數值。
邊界補償具體可分爲四種模式,分別是:水平方向(E0_0)、垂直方向(E0_1)、135°方向(E0_2)和45°方向(E0_3)。如下圖所示:
這裏寫圖片描述
對於上圖所示的任意一種模式,根據以下表格可以將去方塊濾波之後的重構像素分爲5個不同的類別。
這裏寫圖片描述
以圖的形式表示,如下圖:
這裏寫圖片描述
Category 1 category 2 屬於Positive offset,補償值要大於等於0;Category 3 category 4 屬於Negative offset,補償值要小於等於0;從而濾波器達到平滑的效果。
對於不屬於以上四個類別的像素值不進行補償,。編碼器只需要傳輸補償值的絕對值,在解碼端會根據當前像素點屬於什麼類別,給補償值加正負符號。

帶狀補償:
帶狀補償將像素範圍內等分爲32個相同大小的條帶,對屬於同一個條帶內的像素值,它們的像素補償值均相同。例如對於8位像素點,有效像素值爲[0,255],將其劃分爲32個條帶,每個條帶的有效像素範圍爲[k,8k]。

在解碼端進行補償時,根據當前像素點所屬的條帶,選擇對應的帶狀補償值進行補償。一般情況下,同一個CTB的像素值的波動不會特別大,這些像素值會集中屬於相鄰的若干個條帶中。HEVC規定一個CTB(亮度或者色度)只能選擇4條連續的邊帶,並只對這4個邊帶的像素進行補償。

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