第三章 濾波器係數優化演算法
3.2 不規則四分樹合併演算法
3.2.1 四分樹分割 (Quadtree Splitting)
首先我們將整張畫面利用四分樹分割法切割出區域[16][17],四分樹分割法的 觀念如圖(3.2)所示:
圖(3.2)四分樹區域(Quadtree splitting)分割
深度 0 的區域(區域 0)大小為畫面整體大小,進一步將畫面做四等份的切割後可 得深度 1 的切割方式(區域 1~區域 4),則區域 1,區域 2,區域 3 以及區域 4 為 區域 0 的子節點區域,換句話說區域 0 為父節點區域。區域 1 可再做進一步的四 等份區域切割,得到區域 5,區域 6,區域 7 以及區域 8;區域 2,區域 3,區域 4 以此類推也可以個別切割出四個子節點區域,所以深度 2 一共可切割出 16 個區域。
若是畫面解析度夠高,則可以再做更深度的切割,但是一定要保持 LCU alignment。
將畫面切割至最大深度後,接著會利用 Bottom-up 的方式找出各種區域之間的 最佳合併方式如圖(3.3)所示,使得合併在一起的區域可以共享同樣的濾波器係 數,在圖(3.3)的例子中我們有別於以往四分樹的合併方式,另外提供了多種區 域合併的方式以增加濾波器係數優化的彈性。
19
圖(3.3)不規則合併 Bottom-up 合併方式
20
3.2.2 不規則合併法
子節點區域之間的合併方式有別於以往四分樹一次將四個子節點區域合併為 一,使用如圖(3.4)所示之合併方式進行區域之間的合併,共有 12 種子節點區域 合併方式,標記為相同顏色代表合併區域且共享同樣的濾波器。
1 組濾波器
2 組濾波器
3 組濾波器
4 組濾波器
圖(3.4) 不規則四分樹區域合併方式
21
3.2.3 演算法流程
圖(3.5)不規則四分樹合併之演算法流程
1. 根 據 畫 面 解 析 度 大 小 將 畫 面 利 用 四 分 樹 切 割 方 式 切 至 最 深 深 度 , 利 用 Bottom-Up 的方式決定各階層之子節點是否進行合併,合併方式使用不規則合 併法。畫面得到最佳分割方式後,此時各區域已得其濾波器係數。
2. 考慮 LCU 開關控制,利用位元-失真率決定各個 LCU 是否使用濾波器。決定 使用濾波器的 LCU 設為 ALF on; 否則設為 ALF off。將設定為 ALF on 之濾波 器挑選出來,根據其資訊重新設計濾波器係數。
3. 再次使用不規則四分樹合併演算法決定 Chroma 的濾波器係數,對於 Chroma 並不考慮 LCU 開關控制。也就是說所有的 LCU 都要使用 Chroma 的適應性迴 圈濾波器。
4. 分別將 Luma 以及 Chroma 的濾波器套用在畫面中。
5. 根據位元-失真率比較後決定該張畫面是否使用 Luma 的濾波器或是 Chroma 的濾波器。
22
3.2.4 演算法比較
此章節中我們比較區域分類與不規則四分樹合併演算法兩者之間的差異與相 同之處。如圖(3.6)所示:做濾波器優化時使用區域分類方式我們無法達成某些 區域的直接合併,而使用不規則四分樹合併演算法的話可以解決這樣的問題。但 圖(3.6)b 中有些區域在區域分類下是可以達成合併,但不規則四分樹合併演算 法則無法達成
a 不規則四分樹演算法可達成之濾波器優化
b 區域分類可達成之濾波器優化
圖(3.6) 區域分類與不規則四分樹合併演算法之濾波器優化差異
23
以 Syntax 傳輸方面來比較,圖(3.7)a 我們可以看到若是區域 3 與區域 6 使 用相同的濾波器係數的話,以目前的 syntax 設計架構下必須要傳送兩份相同的濾 波器係數。但是圖(3.7)b 我們是使用 LCU-based syntax,只需要一個 flag 告訴區 域 12 中的 LCU 直接取用左邊已編碼完成 LCU 的濾波器係數即可。
a 區域分類 b 不規則四分樹合併 圖(3.7)區域分類與不規則四分樹演算法之 syntax 表示法差異
24