圖像的編解碼技術是多媒體技術的關鍵,H.264/AVC是國際上最先進的視頻壓縮技術,其主要特點是采用小尺寸整數(shù)余弦變換、1/4像素的運動估計精度、多參考幀預測,基于上下文可變長度編碼和環(huán)路內(nèi)去塊效應濾波器等技術。由于去塊效應濾波器大約占整個解碼器1/3的運算量,因此該部分的設計成為整個解碼器設計的瓶頸,在此研究了一種新穎的環(huán)路內(nèi)去塊效應濾波器設計。設計中采用5階流水線的去塊效應模塊,利用混合濾波順序與打亂的存儲更新機制的方法提高了流水線暢順性,濾波一個16×16大小的宏塊僅需要198個時鐘周期。
1 H.264/AVC的去塊效應
在基于塊的視頻編碼方法中,各個塊的編解碼是互相獨立的,由于預測、補償、變化、量化等引起塊與塊之間的邊界處會產(chǎn)生不連續(xù),因此新版H.264/AVC標準采用了環(huán)路內(nèi)去塊濾波器來解決每個16×16宏塊重建后的邊界扭曲問題。去塊效應濾波有兩種方法:后處理去塊效應濾波;環(huán)路內(nèi)去塊效應濾波。H.264/AVC采用環(huán)路內(nèi)去塊效應濾波(見圖1),即濾波后的幀作為后面預測的參考幀。與之前的H.263或MPEG的濾波器相比較,新版H.264標準采用的濾波器基于更小的4×4的基本宏塊,基本宏塊的邊界根據(jù)片級/宏塊級的特性與根據(jù)像素穿過濾波邊界的漸變度,對需要濾波的宏塊邊界進行有條件的濾波。重建幀的每個像素都需要從外部存儲器中重調(diào)出來以進行濾波處理或作為相鄰像素來判斷當前像素是否需要進行濾波。顯然,這些操作需要消耗巨大的存儲器帶寬,對像素值進行修改。
本文設計的去塊效應濾波模塊采用流水線技術來提高系統(tǒng)吞吐量。理想流水線的高效率實現(xiàn)基于相鄰的濾波操作沒有數(shù)據(jù)性。文獻[3,4]采用了非流水線的架構,因此無法提高系統(tǒng)的吞吐量。而對于流水線架構,如若不優(yōu)化濾波順序與存儲器訪問次序,則所產(chǎn)生的數(shù)據(jù)與結構冒險也將大大降低流水線的效率。有人使用雙端口的片上SRAM來減少片外存儲器的帶寬,增加了系統(tǒng)的吞吐量,但是雙端口存儲器面積較大且增加功耗。與流水線的濾波器相比,非流水線濾波器的操作(包括條件判斷、查表、像素計算等)是順序化的,即每個時鐘僅處理一個操作類型,因此它所能達到的最大系統(tǒng)頻率要低很多。