色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 設計應用 > 去塊效應濾波器的結構設計

          去塊效應濾波器的結構設計

          ——
          作者:同濟大學 張婉 時間:2007-01-26 來源:《世界電子元器件》 收藏

          引言

          avc/h.264 標準為新一代全球性互操作標準奠定了技術基礎,得到了廣播、電信、移動通信和流媒體等領域的廣泛關注,在低碼率傳輸中尤其表現突出。為了消除方塊效應以獲得最佳的主觀視覺效果,h. 264標準引入了去方塊濾波器。它是一種自適應濾波器,不會將真正的圖像輪廓弄得模糊不清,同樣也比普通的fir濾波器要復雜很多。首先需要確定方塊是什么原因造成的,粗燥的量化、相異的運動矢量還是真實輪廓。然后根據決策器選擇不同類型的濾波器來維持真實輪廓的清晰度而減少方塊效應產生的銳化效果。其中抽頭個數,濾波器系數的設置以及閾值都是隨編碼方式的不同而各異的。

          本文引用地址:http://cafeforensic.com/article/20768.htm


          方塊效應產生的原因

          目前,基于塊變換的編解碼器已廣泛應用于靜態(tài)及動態(tài)圖像的壓縮技術中。在這些編解碼器中,將圖像像素分割成互不重疊的小方塊,然后使用離散dct變換對這些小方塊的數據從空間域轉換到頻域,然后將所得的dct系數進行量化、可變長編碼。bdct變換原理是利用圖像的空間相關性,但是由于像素方塊是當作單個整體并分別編碼的,因此編碼過程中并沒有考慮到相鄰塊之間的相關性,從而在重建的圖像中可能會看到方塊邊界。粗燥的量化也是造成方塊效應的原因之一。尤其是當量化步長比較大時,有可能將原來相鄰像素之灰度的連續(xù)變化演變成“臺階”變化,看起來就有“偽邊界”的方塊現象,影響人們的主觀視覺感受。

          通過消除或減少方塊現象,圖像質量可以大幅度改善。當然增加傳輸帶寬或提高碼率可以獲得更佳的圖像質量,但是其代價比較昂貴。另一種方法就是提高退化圖像的主觀質量。為了獲得高壓縮率而使用bdct變換,但必須減少隨之產生的偽邊界現象對人們主觀感受的影響。這一過程就是“去除方塊效應”(deblocking)。去方塊效應就是在盡量使圖像總能量保持不變的條件下,把這些“臺階”很高的階躍型變化重新變成“臺階”很小或者近似連續(xù)的變化。


          算法

          在h.264/avc編解碼器中,去方塊濾波器所處的位置是在反dct變換之后。dct變換采用的方塊大小是4 4,運動估計時采用的最小塊大小也是4 4,所以去方塊效應濾波同樣應用于大小為4 4的方塊邊緣。根據h.264/avc,濾波順序是按照宏塊(microblock)順序進行的,各個宏塊的亮度、色度數據都要進行濾波。先從左至右對豎直邊界進行濾波,隨后從上至下對水平邊界進行濾波,如圖1所示。

          消除豎直邊界上的偽邊界現象時,參與濾波的有當前宏塊的數據、其左側宏塊中與當前宏塊相鄰的四小塊數據。同樣的,消除水平邊界上的偽邊界現象時,參與濾波的有當前宏塊的數據、其上方宏塊中與當前宏塊相鄰的四小塊數據。

          濾波過程是可選的,邊緣強度(boundary strength,bs)的可能值為0、1、2、3、4。圖2是用于確定 bs 的判決樹。

          從邊緣強度判決樹的結構可以發(fā)現強度的大小主要取決于編碼中產生的殘差大小。幀內編碼時由于幀內預測所涉及的參考像素相對較少,產生的殘差通常比幀間編碼要大。因此對殘差變換量化后產生的誤差就比較大,塊邊緣就有可能存在較強的虛假邊界。此時 bs = 4 或3。而幀間預測相對比較準確,殘差較小,所以邊緣強度也較小。當運動搜索的時候找到完全一樣的參考塊時,殘差的變換系數為0,此時相鄰兩個像素塊如果使用的參考塊在同一幀內并且也相鄰,在解碼后邊界上就不會出現不連續(xù)的現象,因此不需要濾波,也就是 bs = 0 的情況。參考塊不相鄰則 bs=1。如果參考塊和當前塊并不完全相同時,變換系數不為 0,則bs = 0。色度塊的邊緣強度與亮度宏塊中相應位置的邊緣強度一致。

          圖3是跨塊邊界像素圖。對于每次濾波操作,位于邊界兩側的八個像素 (p0,p1,p2,p3 及 q0,q1,q2,q3) 將輸入到濾波器。

          只有當位于塊邊界兩側的采樣數據同時滿足以下四個條件時才進行濾波處理:其中 、 是與量化參數qp有關的閾值。當bs確定后,主要有兩種類型的濾波處理過程。當0< bs <4時,一般情況下都會修改 p0、q0的值,而亮度塊中的p1、q1可能會更改。當bs = 4時,濾波器可能是三抽頭、四抽頭或五抽頭的。同時根據八個采樣數據以及跟qp有關的一些參數,對不同位置上的像素分別應用不同抽頭的濾波器。


          結構設計

          圖4中,我們將整個宏塊分割成大小為4 4的方塊,亮度部分有16個,色度部分共有8個。并且整個宏塊的所有數據(亮度、色度部分)分成三大部分,第一部分(i)是亮度模塊的0-7塊數據,第二部分(ii)是亮度部分模塊中的8-15塊數據,第三部分(iii)是色度模塊的cb、cr數據。

          根據h.264視頻標準中的描述,先進行跨豎直邊界上的水平方向濾波,然后是跨水平邊界上的豎直方向濾波,可以得到最基本的濾波順序,如圖5所示。

          反dct變換后,每個像素的取值范圍是0~255,可以按8位存儲。將一小塊同一行上四個像素的值拼接組合成一個32位的單元,正好可以存儲于32位數據寬度的存儲器并在32位的數據總線上傳送。由前端反dct變換模塊輸入至塊效應消除模塊ram的空間大小為1688位,因此同時只有上述i、ii、iii部分中的一個部分數據可以存儲到緩存區(qū)中供使用。
          考慮如果按照基本的濾波順序運行去方塊濾波程序時,沒有充分利用相鄰4 4數據之間的相關性,譬如完成“1”濾波后需要將其右側方塊的數據寫回ram中,等到要進行“5”之前再從ram中讀取將這個方塊的數據。對于每一個方塊都要從ram中讀取數據,完成濾波后還需要將數據寫回至相應的地址,如此頻繁讀取ram,對ram的帶寬要求比較高。因此提出了一種改進的濾波順序,如圖6所示。

          如果當前處理的是i部分數據,則依次執(zhí)行序號為1 - 16號濾波過程;如果處理第ii部分數據,則執(zhí)行序號為17 - 32號濾波步驟;若處理色度模塊數據即iii部分時,則執(zhí)行序號為33 - 40號濾波步驟。
          一般來說,每個4 4塊會經過四次去方塊濾波過程。采用改進的濾波順序時,如果4 4塊尚未完成所有的濾波處理,則這些塊可以存儲到一些buffer或寄存器中。例如:當執(zhí)行完上圖中的“1”后,不需要將右側方塊數據回送至ram中而是先在buffer中暫存一下,以便在執(zhí)行“2”時可以直接從buffer中讀取。同樣當執(zhí)行完“2”后將左側的數據存放至寄存器(re)組中,右側方塊的數據替換buffer中的數據。這樣做減少ram的訪問次數,可以提高整個濾波器模塊的處理速度。

          圖7中l(wèi)uma_mem、chroma_mem、prediction_mem,output_mem均是采用32位數據線的ram。luma_mem、chroma_mem中分別存儲當前處理宏塊上方4行,左側4列像素的亮度及色度數據。prediction_mem中存儲由前端預測模塊輸入至此的、位于當前宏塊的一部分數據,也即前文中講述的第i、第ii或第iii部分的數據。 而output_mem中是用于存儲經過濾波處理的輸出數據,包括當前宏塊上方四行、左側四列數據及當前宏塊數據。

          get_strength模塊的功能是按照h.264視頻標準中的描述,根據相鄰塊與本塊像素的編碼方式等參數得出邊界強度(bs)。do_filter模塊則是處理八個采樣數據的濾波過程。 根據計算,完成整個宏塊的去塊效應濾波需要近500個周期,而不采用buffer及re寄存器組的結構由于每次濾波都需要從ram中讀取數據,完成之后又需要將數據寫回至ram中,消耗了很多時鐘周期在讀寫ram上??梢娊Y構設計具有一定的可行性。


          驗證與仿真

          為了驗證濾波器結構的正確性,已經在c 語言環(huán)境下進行了測試并通過。上述結構也將用硬件描述語言verilog hdl代碼加以實現并進行仿真。


          結論

          本文首先分析了動態(tài)圖像中“虛假邊緣”產生的原因,簡單介紹h. 264標準中清除方塊效應的算法,然后提出了一種用于實現該濾波器的大規(guī)模集成電路結構。這種結構充分利用相鄰塊數據之間的相關性,通過增加寄存器組暫存數據來減少對ram的訪問次數,從而可以提高該濾波器的運行速度。這種結構對h.264編解碼器具有一定的實用價值。




          關鍵詞:

          評論


          相關推薦

          技術專區(qū)

          關閉