HEVC去方塊濾波原理以及代碼流程

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

環路濾波以及SAO在代碼中的大概流程如下圖所示:
這裏寫圖片描述
下面分別對去方塊濾波和SAO的原理和相關代碼作分析。

去方塊濾波:
去方塊濾波的主要步驟流程圖如下:
這裏寫圖片描述
濾波順序:
以參考代碼版本爲例,去方塊濾波的濾波順序是以CTU爲基本單位,按照光柵掃描進行濾波;在CTU內部以CU爲基本單位,按照Z掃描方式進行處理。
將相關邊界分爲垂直邊界和水平邊界;分別進行垂直濾波與水平濾波。

確定濾波邊界:
1、濾波邊界必須爲Pu或者Tu的邊界;
2、無論亮度分量還是色度分量,去方塊濾波均對8x8的塊邊界濾波;
3、將8x8塊分爲獨立的兩部分進行去方塊濾波處理,垂直邊界以8x4爲基本單位,水平邊界以4x8爲基本單位;
以大小爲32x32的CU 亮度塊的垂直濾波爲例:
這裏寫圖片描述

計算邊界強度:
1、邊界強度共有三個等級,分別爲0,1,2;
2、根據邊界塊的編碼參數,初步判斷邊界是否需要濾波,以及邊界強度;
3、亮度塊邊界強度非零時,需要後續判斷是否需要濾波(濾波開關&濾波強弱 選擇);
4、色度塊邊界強度爲2時(直接複試相應亮度塊的邊界強度),直接判斷需要濾 波,其他情況不需要。
具體流程圖如下:
這裏寫圖片描述
這裏寫圖片描述

濾波開關決策與濾波強弱選擇:

濾波開關決策與濾波強弱選擇只適用於邊界強度非零的亮度塊邊界。其中濾波開關決策是進一步分析邊界兩邊像素值的變化程度(平緩,劇烈),進而判斷該區域的內容特點,再根據區域的內容特點來決定是否需要濾波。

若判定濾波開關打開,則邊界一定要進行濾波處理,需要進一步決定採用強濾波還是弱濾波。
採用強濾波還是弱濾波,從以下三個方面考慮:
1、邊界兩邊像素值的變化率;
2、邊界兩側像素值是否平坦;
3、邊界兩邊像素的跨度是否控制在一定範圍之內;
以上三個條件均滿足,則採用強濾波,否則採用弱濾波。
流程如下:
這裏寫圖片描述
強濾波:對兩側像素大範圍,大幅度修正,一般爲兩側各三個像素修正。
弱濾波:對像素小範圍,小幅度修正,對邊界兩邊一到兩個像素修正。
色度塊濾波:對邊界兩邊各一個像素修正。

去方塊濾波的函數流程如下圖所示:
這裏寫圖片描述

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