基于VHDL的AVS環(huán)路濾波器設(shè)計
0 引言
我國數(shù)字音頻編解碼技術(shù)標(biāo)準(zhǔn)AVS 第二部分主要是針對高清晰度數(shù)字電視廣播和高密度存儲媒體應(yīng)用,采用了與H.264 類似的技術(shù)框架,包括變換、量化、熵編碼、幀內(nèi)預(yù)測、幀間預(yù)測、環(huán)路濾波等技術(shù)模塊,與H.264 性能相同,當(dāng)技術(shù)簡潔,實現(xiàn)復(fù)雜度低。但在低碼率的情況下,由于不同圖像塊做了不同的量化處理,有時是量化步長不同,有時是舍入的高頻分量不一樣,這樣就造成圖像塊之間的相關(guān)性被破壞,在塊的邊界處就出現(xiàn)不連續(xù)或整塊的塊斑現(xiàn)象,稱為塊效應(yīng)。
為了減小塊效應(yīng),AVS 引入了環(huán)路濾波器。根據(jù)AVS 視頻標(biāo)準(zhǔn)可知,環(huán)路濾波的復(fù)雜度很高,包含了很多的條件跳轉(zhuǎn)運算和數(shù)學(xué)運算,對存儲數(shù)據(jù)有大量且頻繁的讀寫操作,完成一個16×16 的宏塊濾波,對同一個子塊需要讀寫四次。并且運動補(bǔ)償、幀間插值等運算已經(jīng)占用很大部分的帶寬資源。對整個系統(tǒng)而言,由于總線本身的利用效率的因素,在一定的時鐘頻率下,系統(tǒng)實際可用的帶寬是很有限的。
本文正是基于降低環(huán)路濾波的計算復(fù)雜度,減少與片外存儲器的數(shù)據(jù)交換,提高濾波速率,實現(xiàn)實時解碼的應(yīng)用需求,對AVS 解碼標(biāo)準(zhǔn)進(jìn)行了研究。依據(jù)AVS 環(huán)路濾波算法的特點提出以8x8 塊為單位進(jìn)行濾波,適當(dāng)增加片上存儲空間的方式來提高濾波模塊的效率,以實現(xiàn)實時解碼。
1 環(huán)路濾波算法
AVS 環(huán)路濾波器放在幀間預(yù)測和運動補(bǔ)償之前,用濾波后的幀做后續(xù)幀的參考幀。參考幀性能的提高能提高預(yù)測效果,從而提高編碼效率。環(huán)路濾波去除了虛假的塊邊界,使得重構(gòu)圖像的主觀質(zhì)量有了明顯地提高。
AVS 視頻標(biāo)準(zhǔn)中, 變換采用了8×8 的整數(shù)DCT 變換, 運動估計的最小塊尺寸也是8×8,因此塊效應(yīng)可能會出現(xiàn)在每個8×8 塊的邊界上。標(biāo)準(zhǔn)中規(guī)定,除圖像邊界及條帶的邊界之外宏塊的所有邊界都應(yīng)進(jìn)行濾波。這里的宏塊邊界定義為宏塊內(nèi)部各個8×8 塊的邊界以及當(dāng)前宏塊與與相鄰宏塊的上邊界和左邊界。
環(huán)路濾波以宏塊為單位, 按照光柵掃描順序依次處理。每個宏塊對亮度和色度分別進(jìn)行環(huán)路濾波, 首先從左到右對垂直邊界濾波, 然后從上到下對水平邊界濾波。當(dāng)前宏塊的上邊或者左邊像素值可能在以前的環(huán)路濾波過程中被修改,當(dāng)前宏塊的濾波處理的輸入為這些可能被修改的像素值,并且當(dāng)前宏塊的環(huán)路濾波還可能進(jìn)一步修改這些像素值。
1.1 濾波算法流程
AVS 標(biāo)準(zhǔn)的去塊濾波操作大致可以分為兩個步驟:首先,進(jìn)行邊界濾波強(qiáng)度(Bs)的判別;然后根據(jù)不同的Bs 取值來進(jìn)行相應(yīng)的強(qiáng)濾波(STrONg Filter)、標(biāo)準(zhǔn)濾波(Normal Filter)或者不濾波(Skip)的操作。濾波算法流程如圖1 所示。
基于FPGA的AVS的環(huán)路濾波器的實現(xiàn)+.pdf
評論