專利名稱:去塊濾波器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種視頻編解碼用去塊濾波器,特別涉及一種基于H.264/MPEG-4 AVC視頻標(biāo)準(zhǔn)的去塊濾波器。
背景技術(shù):
H.264/MPEG-4 AVC是由Joint Video Team(JVT)制訂的最新的視頻標(biāo)準(zhǔn),這個新標(biāo)準(zhǔn)對于消除塊之間的虛擬邊界作了重大改進(jìn),大幅度提高了圖象的質(zhì)量。但在該標(biāo)準(zhǔn)中,編解碼器反變換量化后圖像會出現(xiàn)方塊效應(yīng)。產(chǎn)生的原因有兩個,其中最主要的原因是基于塊的幀內(nèi)和幀間預(yù)測殘差的離散余弦變換(DCT),由于其變換系數(shù)的量化過程相對粗糙,因而反量化過程恢復(fù)的變換系數(shù)帶有誤差,會造成在圖像塊邊界上的視覺不連續(xù)。第二個原因是來自運(yùn)動補(bǔ)償預(yù)測,運(yùn)動補(bǔ)償塊可能是從不同幀的不同位置上的內(nèi)插樣點(diǎn)數(shù)據(jù)中復(fù)制而來的。由于運(yùn)動補(bǔ)償塊的匹配不可能是絕對準(zhǔn)確的,所以就會在復(fù)制塊的邊界上產(chǎn)生數(shù)據(jù)不連續(xù)。
為了克服這個問題,可以采用交疊運(yùn)動補(bǔ)償(OBMC)在一定程度上解決這個問題,但是效果不是很理想。如圖1所示,對于新的視頻標(biāo)準(zhǔn)由于采用在編解碼環(huán)中加入去塊濾波器實(shí)現(xiàn)去塊濾波,提高了視頻質(zhì)量。但去塊濾波處于環(huán)路之中,需要很大的計算量以及數(shù)據(jù)訪問量,在整個解碼器中輕易占據(jù)了三分之一以上的計算復(fù)雜度,濾波器的濾波速度影響整個編解碼的速度,因此采用一種快速的濾波器是必要的。
目前的去塊濾波器結(jié)構(gòu)多采用單個邊界濾波單元來同時支持水平濾波和垂直濾波兩種操作,在很大程度上限制了去塊濾波的速度,影響了整個編碼解碼過程的速度。此外,傳統(tǒng)的去塊濾波器采用轉(zhuǎn)置電路來處理水平邊盡濾波過程中對列數(shù)據(jù)的訪問,使得垂直濾波與水平濾波的速率幾乎相差一倍,不利于同時對兩個方向的并行訪問,并且同時還增大了電路面積。
發(fā)明內(nèi)容為了解決現(xiàn)有技術(shù)去塊濾波器采用單個邊界濾波單元來同時支持水平濾波和垂直濾波兩種操作,因而限制了去塊濾波的速度的技術(shù)問題,本發(fā)明提供了一種能夠通過并行濾波方式進(jìn)行快速濾波的去塊濾波器。此外,本發(fā)明還進(jìn)一步通過并行存儲機(jī)制省略了對行數(shù)據(jù)進(jìn)行轉(zhuǎn)置的裝置單元,從而節(jié)省了芯片面積。
本發(fā)明解決現(xiàn)有技術(shù)去塊濾波器采用單個邊界濾波單元來同時支持水平濾波和垂直濾波兩種操作,因而限制了去塊濾波的速度的技術(shù)問題所采用的技術(shù)方案是提供一種去塊濾波器,該去塊濾波器包括用于對去塊濾波器進(jìn)行控制的控制單元;與控制單元相連接的閾值計算單元;用于存儲當(dāng)前濾波宏塊的宏塊數(shù)據(jù)存儲單元;用于存儲與當(dāng)前濾波宏塊相鄰的上方塊的上部數(shù)據(jù)存儲單元;用于存儲與當(dāng)前濾波宏塊相鄰的左邊塊的左邊數(shù)據(jù)存儲單元;中間數(shù)據(jù)存儲單元;用于依次對上方塊和當(dāng)前濾波宏塊中的相鄰塊數(shù)據(jù)進(jìn)行垂直濾波的水平邊界濾波單元;以及用于依次對左邊塊和當(dāng)前濾波宏塊中的相鄰塊數(shù)據(jù)進(jìn)行水平濾波的垂直邊界濾波單元,其中,當(dāng)前濾波宏塊中的塊數(shù)據(jù)經(jīng)垂直邊界濾波單元進(jìn)行一次水平濾波后存儲到左邊數(shù)據(jù)存儲單元,當(dāng)前濾波宏塊中的塊數(shù)據(jù)經(jīng)垂直邊界濾波單元進(jìn)行兩次水平濾波后存儲在中間數(shù)據(jù)存儲器內(nèi),當(dāng)前濾波宏塊中的塊數(shù)據(jù)經(jīng)水平邊界濾波單元進(jìn)行一次垂直濾波后存儲到上部數(shù)據(jù)存儲單元,上方塊和左邊塊的塊數(shù)據(jù)經(jīng)一次濾波以及當(dāng)前濾波宏塊經(jīng)水平邊界濾波單元兩次垂直濾波后需要輸出的數(shù)據(jù)存儲在宏塊數(shù)據(jù)存儲單元中。
根據(jù)本發(fā)明一優(yōu)選實(shí)施例,垂直邊界濾波單元和水平邊界濾波單元以交錯濾波順序進(jìn)行水平濾波和垂直濾波。
根據(jù)本發(fā)明一優(yōu)選實(shí)施例,當(dāng)前濾波宏塊中的同行塊數(shù)據(jù)經(jīng)垂直邊界濾波單元進(jìn)行一次水平濾波后存儲到左邊數(shù)據(jù)存儲單元中與同行塊數(shù)據(jù)同行的左邊塊數(shù)據(jù)的對應(yīng)地址。
根據(jù)本發(fā)明一優(yōu)選實(shí)施例,同行塊數(shù)據(jù)經(jīng)垂直邊界濾波單元進(jìn)行兩次水平濾波后存儲在中間數(shù)據(jù)存儲器的同一地址。
根據(jù)本發(fā)明一優(yōu)選實(shí)施例,當(dāng)前濾波宏塊中的同列塊數(shù)據(jù)經(jīng)水平邊界濾波單元進(jìn)行一次垂直濾波后存儲到上部數(shù)據(jù)存儲單元中與同列塊數(shù)據(jù)同列的上方塊數(shù)據(jù)的對應(yīng)地址。
根據(jù)本發(fā)明一優(yōu)選實(shí)施例,將右邊緣數(shù)據(jù)塊經(jīng)垂直邊界濾波單元進(jìn)行一次水平濾波后存儲到左邊數(shù)據(jù)存儲單元的中間數(shù)據(jù)存儲到中間存儲單元作為右邊緣數(shù)據(jù)塊的兩次水平濾波數(shù)據(jù)。
根據(jù)本發(fā)明一優(yōu)選實(shí)施例,當(dāng)前濾波宏塊經(jīng)水平邊界濾波單元兩次垂直濾波后需要輸出的數(shù)據(jù)覆蓋宏塊數(shù)據(jù)存儲單元對應(yīng)地址的數(shù)據(jù)。
根據(jù)本發(fā)明一優(yōu)選實(shí)施例,將與當(dāng)前濾波宏塊的下邊緣塊數(shù)據(jù)經(jīng)水平邊界濾波單元進(jìn)行一次垂直濾波后存儲在上部數(shù)據(jù)存儲單元內(nèi)的中間數(shù)據(jù)存儲到宏塊數(shù)據(jù)存儲單元中并覆蓋下邊緣塊數(shù)據(jù)。
根據(jù)本發(fā)明一優(yōu)選實(shí)施例,宏塊數(shù)據(jù)存儲單元、上部數(shù)據(jù)存儲單元、左邊數(shù)據(jù)存儲單元以及中間數(shù)據(jù)存儲單元為并行存儲模塊,并行存儲模塊包括數(shù)據(jù)輸入對齊模塊;地址生成器;4個并聯(lián)的雙口靜態(tài)存儲器和數(shù)據(jù)輸出對齊模塊。
根據(jù)本發(fā)明一優(yōu)選實(shí)施例,地址生成器將4×4象素的塊數(shù)據(jù)中的象素在并行存儲模塊映射為x’=(x+(ymod4))mod4;y’=y(tǒng);其中,x,y為象素在4×4象素塊數(shù)據(jù)中的坐標(biāo)值,mod為取模操作,x’對應(yīng)于4個靜態(tài)存儲器中的不同存儲器,y’對應(yīng)與4個靜態(tài)存儲器中同一存儲器的不同地址。
本發(fā)明給出的算法是基于交錯濾波順序,為了提高濾波速度,采用兩個一維濾波單元,大幅度的提高了濾波速度,通過選擇合適的濾波順序從而很好利用了數(shù)據(jù)之間的依賴性,該濾波器所需的每個塊的數(shù)據(jù)只從外部讀取一次,減少了外部SRAM/SDRAM的訪問,降低了濾波器操作的復(fù)雜度。同時,在存儲子系統(tǒng)和數(shù)據(jù)路徑中采用了并行存儲機(jī)制,以同時支持垂直和水平兩個方向的并行訪問,引入這樣的存儲結(jié)構(gòu)后,不再需要傳統(tǒng)的轉(zhuǎn)置電路。
圖1是現(xiàn)有技術(shù)中使用去塊濾波器的編解碼器的示意框圖;圖2是宏塊中的亮度塊和色度塊以及去塊濾波過程中所使用到的相鄰塊的示意圖3是在去塊濾波過程中所使用的三種濾波順序;圖4是本發(fā)明去塊濾波器的結(jié)構(gòu)框圖;圖5是本發(fā)明中一個塊內(nèi)部像素的存儲映射圖;圖6是本發(fā)明中存儲器的映射示意圖;圖7是本發(fā)明中的并行存儲單元結(jié)構(gòu)。
具體實(shí)施方式下面結(jié)合附圖和實(shí)施例對本發(fā)明進(jìn)行詳細(xì)說明。
參見圖2,圖2是宏塊中的亮度塊和色度塊以及去塊濾波過程中所使用到的相鄰塊的示意圖。在H.264/MPEG-4 AVC標(biāo)準(zhǔn)中,圖象的預(yù)測、量化和變換都是基于4×4塊進(jìn)行的,所以濾波也是在4×4塊的基礎(chǔ)上進(jìn)行的。該標(biāo)準(zhǔn)規(guī)定了先對亮度,色度塊以及相鄰塊的垂直邊界進(jìn)行水平濾波,再對水平邊界進(jìn)行垂直濾波。
參見圖3,圖3是在去塊濾波過程中所使用的三種濾波順序。在圖3中,每個塊在整個濾波過程中,需要經(jīng)過兩次垂直邊界濾波和兩次水平邊界濾波,目前比較典型的濾波順序包括a.標(biāo)準(zhǔn)中介紹的基本濾波順序,先對垂直邊界進(jìn)行水平濾波,再對水平邊界進(jìn)行垂直濾波,這種順序不能充分利用相鄰4×4塊之間的數(shù)據(jù)依賴性,使得對宏塊濾波過程中,每個4×4塊的數(shù)據(jù)都需要從外部存取4次,具有很高的帶寬要求;b.改進(jìn)的濾波順序,這種方法利用了一維數(shù)據(jù)依賴性;以及c.交錯濾波順序,這種方法充分利用了數(shù)據(jù)依賴性。本發(fā)明采用的是最后一種交錯濾波順序。
如圖4所示,圖4是本發(fā)明去塊濾波器結(jié)構(gòu)框圖。包括對整個去塊濾波器中各單元進(jìn)行控制的控制單元;與控制單元相連接的的閾值計算單元;分別進(jìn)行水平濾波和垂直濾波的垂直邊界濾波單元和水平邊界濾波單元。以及并行存儲存儲單元。其中閾值計算單元計算閾值α,β和C0,從而決定濾波強(qiáng)度Bs;色度塊的Bs值不需要重新計算,只需調(diào)用亮度塊的Bs值進(jìn)行計算??刂茊卧刂普麄€濾波器各個單元的操作,通過濾波參數(shù)控制濾波器操作,通過讀寫和地址線控制并行存儲單元。垂直邊界濾波單元和水平邊界濾波單元結(jié)構(gòu)上為兩個一維濾波單元,分別完成垂直邊界的水平濾波和水平邊界的垂直濾波,兩個單元的內(nèi)部結(jié)構(gòu)相同。并行存儲單元可以進(jìn)行并行輸入/并行輸出訪問(輸入4像素,輸出4像素,一個像素由8個bit表示,圖2中的每個塊包含16個像素)。如圖5所示,并行存儲單元由四部分組成,分別為上部數(shù)據(jù)存儲單元、左邊數(shù)據(jù)存儲單元、宏塊數(shù)據(jù)存儲單元以及中間數(shù)據(jù)存儲單元,其中上部數(shù)據(jù)存儲單元存儲水平邊界塊e、f、g、h、k,l、o和p塊的內(nèi)容和當(dāng)前濾波宏塊經(jīng)過一次水平邊界濾波后的中間數(shù)據(jù),其可由4個8bit×32的雙口(一讀端口,一寫端口)靜態(tài)存儲器(SRAM)組成;左邊數(shù)據(jù)存儲單元存儲垂直邊界塊a、b、c、d、i、j、m和n塊內(nèi)容以及當(dāng)前濾波宏塊經(jīng)過一次垂直邊界濾波后的中間數(shù)據(jù),由4個8bit×32的雙口SRAM組成;宏塊數(shù)據(jù)存儲單元存儲當(dāng)前濾波宏塊數(shù)據(jù)(包含亮度塊和色度塊)、當(dāng)前濾波宏塊數(shù)據(jù)經(jīng)兩次水平邊界濾波后以及上部和左邊的16個塊經(jīng)過一次濾波后需要輸出的數(shù)據(jù),其中宏塊數(shù)據(jù)共32×160bit,可由4個8bit×96的SRAM組成,另外上部和左邊的16個塊經(jīng)過一次濾波后需要輸出的數(shù)據(jù)可由4個8bit×64的雙口SRAM進(jìn)行存儲;中間數(shù)據(jù)存儲單元用來存儲經(jīng)過兩次垂直邊界濾波后的塊數(shù)據(jù),其可有32bit×4的SRAM組成。
在濾波過程中,當(dāng)接收到控制單元單元發(fā)出的使能信號時,去塊濾波器從外部的SRAM/SDRAM通過路徑1讀取左邊相鄰塊a、b、c、d、i、j、m、n的塊內(nèi)容,存儲到左邊數(shù)據(jù)存儲單元;讀取上方相鄰塊e、f、g、h、k、l、o、p塊內(nèi)容存儲到上部數(shù)據(jù)存儲單元,并讀取宏塊0-23的數(shù)據(jù)存儲到宏塊數(shù)據(jù)存儲單元,這里數(shù)據(jù)存儲地址由控制單元生成地址信號。在下一個時間段由垂直邊界濾波單元經(jīng)路徑3從宏塊數(shù)據(jù)存儲單元中讀取塊0的數(shù)據(jù)并通過路徑2從左邊數(shù)據(jù)存儲單元讀取塊a數(shù)據(jù),對0塊與a塊進(jìn)行垂直邊界的水平濾波,濾波后的0’數(shù)據(jù)通過路徑2寫回到左邊數(shù)據(jù)存儲單元并覆蓋a塊的數(shù)據(jù),將濾波后的a’數(shù)據(jù)經(jīng)路徑3存儲到宏塊數(shù)據(jù)存儲單元;在第二個時間段,對0’數(shù)據(jù)與1塊進(jìn)行垂直邊界的水平濾波,濾波后的0”數(shù)據(jù)通過路徑4存儲到中間數(shù)據(jù)存儲單元,相應(yīng)的濾波結(jié)果1’通過路徑2覆蓋0’數(shù)據(jù);在下一個時間段,由水平邊界濾波單元對0”數(shù)據(jù)與e塊進(jìn)行垂直濾波并由垂直邊界濾波單元對2塊與1’數(shù)據(jù)進(jìn)行水平濾波,濾波后的0數(shù)據(jù)通過路徑6覆蓋e塊的數(shù)據(jù)存到上部數(shù)據(jù)存儲單元,e’數(shù)據(jù)通過路徑7存入宏塊數(shù)據(jù)存儲單元,1”數(shù)據(jù)通過路徑4存儲到中間數(shù)據(jù)存儲單元覆蓋0”數(shù)據(jù),2’數(shù)據(jù)通過路徑2覆蓋濾波前1’數(shù)據(jù)。依次類推,直到塊4經(jīng)過兩次水平濾波存儲到中間數(shù)據(jù)存儲單元,在下一個時間段,通過水平邊界濾波單元0與4”進(jìn)行垂直濾波,濾波后的數(shù)據(jù)0””經(jīng)過路徑7存儲到宏塊數(shù)據(jù)存儲單元覆蓋塊0,4經(jīng)過路徑6存到上部數(shù)據(jù)存儲單元覆蓋0的數(shù)據(jù)。依照此順序完成整個MB的濾波。
在濾波過程中,水平邊界濾波單元和垂直邊界濾波單元有可能同時對宏塊數(shù)據(jù)存儲單元進(jìn)行寫操作,但由于水平邊界濾波單元只寫宏塊0-23的濾波結(jié)果,而垂直邊界濾波單元只寫a、b、c、d、i、j、m、n塊的濾波結(jié)果,因此二者不可能同時寫宏塊數(shù)據(jù)存儲區(qū)中的同一個存儲單元,因此不會產(chǎn)生訪問沖突,另外,由于在宏塊數(shù)據(jù)存儲單元中,0-23塊的數(shù)據(jù)與a-p塊的數(shù)據(jù)是分別在不同的SRAM模塊中存儲的,這樣的訪問在實(shí)際中可以實(shí)現(xiàn)。
對應(yīng)于宏塊中右側(cè)邊緣上的塊3、7、11、15、17、19、21、23,由于在本宏塊濾波中只需經(jīng)歷一次垂直邊界濾波就可以進(jìn)行水平邊界濾波,因此為了避免兩個濾波結(jié)果同時寫中間數(shù)據(jù)存儲單元的數(shù)據(jù)沖突,如塊2和塊3之間的垂直邊界濾波完成并且在2”與塊g進(jìn)行水平邊界濾波后所出現(xiàn)的情況,就需要由控制單元控制,進(jìn)行一次虛擬的垂直邊界濾波,即在2”與塊g進(jìn)行水平邊界濾波后從左邊數(shù)據(jù)存儲單元中讀出塊3’內(nèi)容后,不從宏塊數(shù)據(jù)單元中讀取數(shù)據(jù),不進(jìn)行實(shí)際濾波,直接將經(jīng)過一次垂直邊界濾波后的結(jié)果塊3’通過垂直邊界濾波單元存儲到中間數(shù)據(jù)存儲單元代替2”作為3”。
在單個MB濾波過程中,塊3、7、11、15、17、19、21、23的數(shù)據(jù)只進(jìn)行一次垂直邊界的水平濾波和兩次水平邊界的垂直濾波,結(jié)果數(shù)據(jù)存儲在宏塊數(shù)據(jù)存儲單元中;相應(yīng)的,塊12、13、14、15、18、19、22、23的數(shù)據(jù)只進(jìn)行兩次垂直邊界的水平濾波和一次水平邊界的垂直濾波,結(jié)果數(shù)據(jù)存儲在上部數(shù)據(jù)存儲單元中。在進(jìn)行相鄰的右邊和下面MB濾波過程中,進(jìn)行第二次濾波。綜上所述,該宏塊濾波結(jié)束后,塊a-p、塊0-11、16、17、20、21的濾波結(jié)果存儲在宏塊數(shù)據(jù)存儲單元中,而塊12-15、18,19,22,23由于只經(jīng)過一次水平邊界的垂直濾波,有效的濾波結(jié)果存儲在上部數(shù)據(jù)存儲單元中,而不在宏塊數(shù)據(jù)存儲單元中,為了簡化輸出過程,對每個這樣的塊引入第二次虛擬濾波過程,即由控制單元控制,不進(jìn)行實(shí)際的濾波,而通過水平邊界濾波單元將經(jīng)過一次水平邊界濾波的數(shù)據(jù)存儲到宏塊數(shù)據(jù)存儲單元中,這樣做雖然引入了額外的周期,但輸出結(jié)果時,只需通過系統(tǒng)總線輸出宏塊數(shù)據(jù)存儲單元中的數(shù)據(jù)。
在新的視頻標(biāo)準(zhǔn)中,進(jìn)行水平濾波(垂直邊界濾波)和垂直濾波(水平邊界濾波)所用的數(shù)據(jù)格式有所不同,水平濾波取兩個4×4象素的塊數(shù)據(jù)中的行數(shù)據(jù)進(jìn)行濾波,而垂直濾波是對兩個塊數(shù)據(jù)中的列數(shù)據(jù)進(jìn)行濾波。在傳統(tǒng)的方法中,采用直接存儲映射,如圖5中左圖所示,由于列中的采樣數(shù)據(jù)存儲在同一個SRAM模塊中,當(dāng)進(jìn)行列數(shù)據(jù)的訪問時會引起訪問沖突,因此,只能進(jìn)行同行中數(shù)據(jù)的并行訪問而無法支持同一列中數(shù)據(jù)的并行訪問,因此每個塊的數(shù)據(jù)都要經(jīng)過T(矩陣轉(zhuǎn)換單元)進(jìn)行一次行列轉(zhuǎn)換,為垂直濾波準(zhǔn)備數(shù)據(jù),這使得垂直濾波與水平濾波相比,需要幾乎兩倍的時鐘周期,并帶來了轉(zhuǎn)置電路的附加代價。
對此,本發(fā)明采用了并行存儲單元結(jié)構(gòu),圖5中右圖所示,是一個4×4塊內(nèi)像素到存儲區(qū)域內(nèi)的映射,采用了移位/旋轉(zhuǎn)方式,4行中的像素分別相對移位/旋轉(zhuǎn)0、1、2、3個像素。對于一個4×4塊內(nèi)的一個像素Px,y,它在存儲區(qū)域中的新坐標(biāo)(x′,y′)的計算方式如下x′=(x+(y mod 4))mod 4 (1)y′=y(tǒng) (2)這里mod表示取模操作,x’對應(yīng)于4個靜態(tài)存儲器中的不同存儲器,y’對應(yīng)與4個靜態(tài)存儲器中同一存儲器的不同地址。例如,P2,3所映射到的新坐標(biāo)位置為(1,3)。通過采用這個機(jī)制,無論是同一行中還是同一列中的每個像素,都存儲在一個單獨(dú)的SRAM模塊中,通過這種方式,就同時支持了兩個方向上的并行存取。尋址可以根據(jù)公式(1)和(2)通過簡單的邏輯和加法操作而實(shí)現(xiàn)。由于像素是以移位/旋轉(zhuǎn)的方式映射和存儲的,在讀寫中就需要增加對齊電路,但總的來說,這種方法依然比采用T單元的傳統(tǒng)方法節(jié)省面積,并平衡了行濾波與列濾波操作的速度。
圖6更清楚的說明了宏塊中的相鄰4×4塊數(shù)據(jù)是如何映射到存儲器中。并行存儲模塊的結(jié)構(gòu)如圖7所示,其中,并行存儲模塊包括數(shù)據(jù)輸入對齊模塊、地址生成器、4個并聯(lián)的雙口SRAM M0-M3和數(shù)據(jù)輸出對齊模塊。地址生成器生成讀寫操作的地址。地址模式在行訪問和列訪問的兩種不同模式之間進(jìn)行切換。
在濾波器結(jié)構(gòu)中,垂直邊界濾波單元和水平邊界濾波單元的內(nèi)部結(jié)構(gòu)相同,根據(jù)Bs值的不同,包括有強(qiáng)濾波(Bs=4),標(biāo)準(zhǔn)濾波(Bs=1,2,3)和不濾波三個單元,不濾波就是不改變輸入一維濾波單元的象素值,其它兩種情況都對輸入值進(jìn)行了修正。根據(jù)H.264標(biāo)準(zhǔn),標(biāo)準(zhǔn)濾波(Bs=1,2,3)要對輸入濾波單元的四個象素中的兩個值進(jìn)行修正,即Δ=Clip3(-tc,tc,((((q0-p0)<<2)+(p1-q1)+4)>>3))P0=Clip1(p0+Δ);當(dāng)條件chromaEdgeFlag=0&&|p2-p0|<Beta成立時,P1=p1+Clip3(-tc0,tc0,(p2+((p0+q0+1)-(p1<<1))>>1);否則P1=p1。
標(biāo)準(zhǔn)中給出了強(qiáng)濾波(Bs=4)的濾波結(jié)果(對三個象素值進(jìn)行了修正)當(dāng)條件chromaEdgeFlag=0&&|p2-p0|<Beta&&|p0-q0|<((alph>>2)+2)成立時P0=(p2+2*p1+2*p0+2*q0+q1+4)>>3P1=(p2+p1+p0+q0+2)>>2P2=(2*p3+3*p2+p1+p0+q0+4)>>3否則P0=(2*p1+p0+q1+2)>>2P1=p1P2=p2。
本發(fā)明給出的算法是基于交錯濾波順序,為了提高濾波速度,采用兩個一維濾波單元,大幅度的提高了濾波速度,通過選擇合適的濾波順序從而很好利用了數(shù)據(jù)之間的依賴性,該濾波器所需的每個塊的數(shù)據(jù)只從外部讀取一次,減少了外部SRAM/SDRAM的訪問,降低了濾波器操作的復(fù)雜度。同時,在存儲子系統(tǒng)和數(shù)據(jù)路徑中采用了并行存儲機(jī)制,以同時支持垂直和水平兩個方向的并行訪問,引入這樣的存儲結(jié)構(gòu)后,不再需要傳統(tǒng)的轉(zhuǎn)置電路。
本發(fā)明提出的去塊濾波器結(jié)構(gòu)在濾波速度方面與其他濾波器結(jié)構(gòu)相比有著顯著的提高和改善,適用于目前廣泛使用的視頻通信編解碼器。
權(quán)利要求
1.一種去塊濾波器,所述去塊濾波器包括用于對所述去塊濾波器進(jìn)行控制的控制單元;與所述控制單元相連接的閾值計算單元;其特征在于所述去塊濾波器進(jìn)一步包括用于存儲當(dāng)前濾波宏塊的宏塊數(shù)據(jù)存儲單元;用于存儲與所述當(dāng)前濾波宏塊相鄰的上方塊的上部數(shù)據(jù)存儲單元;用于存儲與所述當(dāng)前濾波宏塊相鄰的左邊塊的左邊數(shù)據(jù)存儲單元;中間數(shù)據(jù)存儲單元;用于依次對所述上方塊和所述當(dāng)前濾波宏塊中的相鄰塊數(shù)據(jù)進(jìn)行垂直濾波的水平邊界濾波單元;以及用于依次對所述左邊塊和所述當(dāng)前濾波宏塊中的相鄰塊數(shù)據(jù)進(jìn)行水平濾波的垂直邊界濾波單元,其中,所述當(dāng)前濾波宏塊中的塊數(shù)據(jù)經(jīng)所述垂直邊界濾波單元進(jìn)行一次水平濾波后存儲到所述左邊數(shù)據(jù)存儲單元,所述當(dāng)前濾波宏塊中的塊數(shù)據(jù)經(jīng)所述垂直邊界濾波單元進(jìn)行兩次水平濾波后存儲在所述中間數(shù)據(jù)存儲器內(nèi),所述當(dāng)前濾波宏塊中的塊數(shù)據(jù)經(jīng)所述水平邊界濾波單元進(jìn)行一次垂直濾波后存儲到所述上部數(shù)據(jù)存儲單元,所述上方塊和所述左邊塊的塊數(shù)據(jù)經(jīng)一次濾波以及所述當(dāng)前濾波宏塊經(jīng)所述水平邊界濾波單元兩次垂直濾波后需要輸出的數(shù)據(jù)存儲在所述宏塊數(shù)據(jù)存儲單元中。
2.根據(jù)權(quán)利要求1所述的去塊濾波器,其特征在于所述垂直邊界濾波單元和所述水平邊界濾波單元以交錯濾波順序進(jìn)行水平濾波和垂直濾波。
3.根據(jù)權(quán)利要求2所述的去塊濾波器,其特征在于所述當(dāng)前濾波宏塊中的同行塊數(shù)據(jù)經(jīng)所述垂直邊界濾波單元進(jìn)行一次水平濾波后存儲到所述左邊數(shù)據(jù)存儲單元中與所述同行塊數(shù)據(jù)同行的左邊塊數(shù)據(jù)的對應(yīng)地址。
4.根據(jù)權(quán)利要求3所述的去塊濾波器,其特征在于所述同行塊數(shù)據(jù)經(jīng)所述垂直邊界濾波單元進(jìn)行兩次水平濾波后存儲在所述中間數(shù)據(jù)存儲器的同一地址。
5.根據(jù)權(quán)利要求3所述的去塊濾波器,其特征在于所述當(dāng)前濾波宏塊中的同列塊數(shù)據(jù)經(jīng)所述水平邊界濾波單元進(jìn)行一次垂直濾波后存儲到所述上部數(shù)據(jù)存儲單元中與所述同列塊數(shù)據(jù)同列的上方塊數(shù)據(jù)的對應(yīng)地址。
6.根據(jù)權(quán)利要求4所述的去塊濾波器,其特征在于將所述右邊緣數(shù)據(jù)塊經(jīng)所述垂直邊界濾波單元進(jìn)行一次水平濾波后存儲到所述左邊數(shù)據(jù)存儲單元的中間數(shù)據(jù)存儲到所述中間存儲單元作為所述右邊緣數(shù)據(jù)塊的兩次水平濾波數(shù)據(jù)。
7.根據(jù)權(quán)利要求4所述的去塊濾波器,其特征在于所述當(dāng)前濾波宏塊經(jīng)所述水平邊界濾波單元兩次垂直濾波后需要輸出的數(shù)據(jù)覆蓋所述宏塊數(shù)據(jù)存儲單元對應(yīng)地址的數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的去塊濾波器,其特征在于將與所述當(dāng)前濾波宏塊的下邊緣塊數(shù)據(jù)經(jīng)所述水平邊界濾波單元進(jìn)行一次垂直濾波后存儲在所述上部數(shù)據(jù)存儲單元內(nèi)的中間數(shù)據(jù)存儲到所述宏塊數(shù)據(jù)存儲單元中并覆蓋所述下邊緣塊數(shù)據(jù)。
9.根據(jù)上述權(quán)利要求任意一項所述的去塊濾波器,其特征在于所述宏塊數(shù)據(jù)存儲單元、所述上部數(shù)據(jù)存儲單元、所述左邊數(shù)據(jù)存儲單元以及所述中間數(shù)據(jù)存儲單元為并行存儲模塊,所述并行存儲模塊包括數(shù)據(jù)輸入對齊模塊;地址生成器;4個并聯(lián)的雙口靜態(tài)存儲器和數(shù)據(jù)輸出對齊模塊。
10.根據(jù)權(quán)利要求9所述的去塊濾波器,其特征在于所述地址生成器將4×4象素的塊數(shù)據(jù)中的象素在所述并行存儲模塊映射為x’=(x+(ymod4))mod4y’=y(tǒng);其中,x,y為所述象素在所述4×4象素塊數(shù)據(jù)中的坐標(biāo)值,mod為取模操作,x’對應(yīng)于所述4個靜態(tài)存儲器中的不同存儲器,y’對應(yīng)與所述4個靜態(tài)存儲器中同一存儲器的不同地址。
全文摘要
本發(fā)明涉及一種視頻編碼用去塊濾波器,該去塊濾波器基于交錯濾波順序,其采用兩個一維濾波單元配合宏塊數(shù)據(jù)存儲單元、上部數(shù)據(jù)存儲單元、左邊數(shù)據(jù)存儲單元以及中間數(shù)據(jù)存儲單元,大幅度的提高了濾波速度,通過選擇合適的濾波順序從而很好利用了數(shù)據(jù)之間的依賴性,該濾波器所需的每個塊的數(shù)據(jù)只從外部讀取一次,減少了外部SRAM/SDRAM的訪問,降低了濾波器操作的復(fù)雜度。同時,在存儲子系統(tǒng)和數(shù)據(jù)路徑中采用了并行存儲機(jī)制,以同時支持垂直和水平兩個方向的并行訪問,引入這樣的存儲結(jié)構(gòu)后,不再需要傳統(tǒng)的轉(zhuǎn)置電路。
文檔編號H04N7/26GK101076124SQ20061006061
公開日2007年11月21日 申請日期2006年5月18日 優(yōu)先權(quán)日2006年5月18日
發(fā)明者李揮, 王繼山, 陳慕羿, 張志軍, 馬建設(shè), 胡海軍, 高金璐, 林茫茫 申請人:北京大學(xué)深圳研究生院