H264 去塊濾波deblocking

2021-10-09 06:26:05 字數 2889 閱讀 5799

在運動劇烈的場景常能觀察到影象出現小方塊,小方塊在邊界處呈現不連續的效果

1、h.264在編碼過程中對畫素殘差進行了dct變換,變換後得到的dct係數是與每個畫素都相關的,這些係數代表了被變換資料的基礎色調與細節。h.264在dct變換後對dct係數進行了量化,量化能有效去除相鄰畫素間的空間冗餘,也就是說會抹去元素資料的部分細節。比較理想的情況是量化抹去人眼無法識別的細節部分,但是在低位元速率的情況下就會導致原始資料的細節丟失過多。而且,dct變換時基於塊的,即將8x8或者4x4的畫素殘差進行變換後得到8x8或者4x4dct係數,此時如果進行了低位元速率的量化,就會使得相鄰兩個塊的相關性變差,從而出現塊效應。

2、h.264的運動補償加劇了由變換量化導致的塊效應。

由於運動補償塊的匹配不可能絕對準確,各個塊的殘差大小程度存在差異,尤其是當相鄰兩個塊所用參考幀不同、運動向量或參考塊的差距過大時,塊邊界上產生的資料不連續就更加明顯。

塊效應主要有兩種形式:

1、梯形雜訊:由於dct高頻係數被量化為0,使得強邊緣在跨邊界處出現鋸齒狀

2、格形雜訊:經常出現在平坦區域,由於量化導致本來平緩變換的亮度塊dc係數發生跳躍,造成變換塊的基礎色調改變

標準8.7小節中規定了去塊濾波的內容,這部分被稱為環路濾波器(loop filter)。環路濾波器是被放置在編譯碼的影象重建環路當中。

在啟用了環路濾波的編譯碼環境中,無論是編碼器還是解碼器,都是在影象被重建後才進行濾波。

1、在編碼器中,濾波後的影象會作為後續編碼運動補償的參考影象;

2、在解碼器中,濾波後的影象會作為後續影象解碼重建的參考影象和被輸出顯示。

slice_header?disable_deblocking_filter_idc:

0:開啟去塊濾波功能,去塊濾波能穿越slice邊界。

1:關閉去塊濾波功能。

2:開啟去塊濾波功能,僅限slice內部

1、預設對4x4塊的邊界進行變換和濾波

2、如果transform_8x8_mode_flag為1,則代表亮度巨集塊以及4:4:4的色度巨集塊會採用8x8的dct,此時亮度巨集塊以及4:4:4的色度巨集塊的濾波邊界會把巨集塊分割成8x8的塊。

濾波會把巨集塊分割成多個4x4的塊。

故濾波邊界為:4x4塊的邊界和巨集塊之間的邊界

濾波邊界還能根據濾波過程是否會用到當前巨集塊以外巨集塊來進行細分。巨集塊的頂部邊界、左邊界由於處於巨集塊邊緣,濾波的時候肯定需要用到相鄰巨集塊,而其餘的濾波邊界在濾波時只會用到當前巨集塊內部的畫素。

濾波發生在巨集塊間,巨集塊內部(拆分成4x4後在4x4子塊間濾波),而影象邊緣的巨集塊邊界沒法濾波

濾波先進行亮度巨集塊濾波後進行色度巨集塊濾波,對乙個巨集塊濾波邊界的濾波也需要遵循一定順序

先進行垂直邊界濾波,從左到右

後進行水平邊界濾波,從上到下

去塊濾波所用的源畫素分布在邊界的兩邊,分別有4個畫素點,如下圖所示

上述**用於亮度bs的計算,色度巨集塊的bs沿用其相應亮度巨集塊的bs。由於**的描述不盡詳細,詳情請參考標準8.7.2.1

區分真假邊界基於下面兩個假設:

1、真實邊界兩邊畫素點的差值通常比虛假邊界兩邊畫素值要大

2、對於兩邊畫素值差別很小的真實邊界,即使使用了去塊濾波,對它的主觀效果不會有太大影響

1、在平坦區域,即使很小的畫素不連續也很容易被人察覺,所以要使用比較強的去塊濾波,可以改變較多的畫素點

2、對於複雜的區域,為了保持影象細節,要使用較弱的去塊濾波,改變較少的畫素點

slice_header中對濾波強度進行控制:

filteroffseta = slice_alpha_c0_offset_div2 << 1  注:slice_alpha_c0_offset_div2 給出用於增強 α 和 tc0 的偏移值

filteroffsetb = slice_beta_offset_div2 << 1    注:slice_beta_offset_div2 給出用於增強 β 和 tc0 的偏移值

(兩個語法元素的範圍均為-6~6)

判定是否需要濾波:

1、indexa(indexb)=qp+offseta(offsetb) 並限幅在[0,51]內

2、查表:indexa(indexb)?α(indexa)和β(indexb)

3、只有滿足下面3個條件才能進行濾波:

0:不需要濾波

bs =1,

2,3:弱濾波器:必定改變p0、q0(調整值=原始+限幅後的濾波修正值),而p1和q1則需要滿足一定條件

bs =

4:此時有兩種強度的濾波器

1、先判斷使用強or弱濾波

2、(滿足條件的亮度濾波)強濾波器:改變6個畫素點(p0、p1、p2、q0、q1、q2)

3、(色度和不滿足條件的亮度濾波)弱濾波器:只改變p0、q0

H 264中IPCM巨集塊簡介

在h.264中,乙個巨集塊包括16 16個畫素,i巨集塊有三種形式 1.16個i4x4編碼方式組成的巨集塊 為了方便,簡稱i4x4方式的巨集塊 2.i16x16巨集塊 3.ipcm巨集塊 特殊 1 在某些特別的情況下 這種情況極少 某種編碼方式並不是data compressor而是data exp...

H264巨集塊型別及Intra Inter介紹

h264巨集塊型別及intra inter介紹 本文使用工具 elecard streameye tools 首先看下i slice幀的情況 可以看到下圖都是紅色mb型別 i slice幀包含的巨集塊型別有0 25,主要有intra 4x4 intra 16x16 i pcm,都屬於幀内巨集塊 模式...

H 264效能優化

h.264 優化 2007 05 24 2 20 h.264的dsp實現流程分為三個階段 第乙個階段產生和評估c 第二個階段優化和評估c 第三個階段編寫和評估線性彙編。每個階段完成任務如下 第一階段 首先,產生c 並進行時間評估。一般情況下,這個階段的 效能很低。如果經過評估後,仍然滿足不了實時要求...