專利名稱:去塊效應(yīng)濾波器的濾波方法與系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻編解碼的集成電路設(shè)計(jì)領(lǐng)域。
背景技術(shù):
H.264標(biāo)準(zhǔn)是ITU-T的VCEG(視頻編碼專家組)和ISO/IEC的MPEG(活動(dòng)圖像專家組)的聯(lián)合視頻組(JVT,Joint Video Team)開發(fā)的視頻編碼標(biāo)準(zhǔn)。這是目前最新的視頻編碼標(biāo)準(zhǔn),與先前的標(biāo)準(zhǔn)相同,都是采用基于塊變換的混合編碼方案。在H.264視頻編碼標(biāo)準(zhǔn)中,解碼器反變換量化之后的圖像會(huì)出現(xiàn)“塊效應(yīng)”,這是基于塊編碼的壓縮算法常見的人工瑕疵。其產(chǎn)生的原因有兩個(gè)一個(gè)原因在于基于塊的幀內(nèi)和幀間預(yù)測殘差的DCT變換;第二個(gè)原因來自于運(yùn)動(dòng)補(bǔ)償預(yù)測。
為了去除解碼器反變換量化之后的圖像出現(xiàn)的塊效應(yīng),H.264標(biāo)準(zhǔn)引入了去塊效應(yīng)濾波器,對(duì)塊的邊界進(jìn)行濾波。經(jīng)過濾波處理,減少了塊效應(yīng),而圖像的質(zhì)量基本不受影響,因此主觀質(zhì)量大大改善。如果不采用去塊效應(yīng)濾波,同樣的主觀質(zhì)量,需要多出5%~10%的碼率。在有效地改善視頻圖像質(zhì)量和壓縮效率的同時(shí),去塊效應(yīng)濾波也引入了極大的計(jì)算復(fù)雜度,其運(yùn)算量大約占到了解碼器計(jì)算總量的1/3。另一方面,去塊效應(yīng)濾波過程需要反復(fù)從片外的存儲(chǔ)器中讀出待濾波的像素?cái)?shù)據(jù),并將濾波后的像素?cái)?shù)據(jù)寫入片外存儲(chǔ)器,頻繁的讀寫操作往往成為制約濾波處理能力的瓶頸。
下面介紹H.264標(biāo)準(zhǔn)中的去塊效應(yīng)濾波過程濾波對(duì)象和順序H.264的去塊效應(yīng)濾波是基于宏塊基礎(chǔ)上進(jìn)行的,應(yīng)用于每一個(gè)已解碼完成的宏塊,對(duì)每個(gè)宏塊內(nèi)的每個(gè)4×4塊的4個(gè)邊(整幅圖像的邊緣除外)都要進(jìn)行。圖1中的虛線表示每個(gè)宏塊中需要濾波的邊界,其中a、b、c、d、i、j、m、n是豎直邊界,e、f、g、h、k、l、o、p是水平邊界。具體的濾波順序就是按照字母順序進(jìn)行,即a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p。
邊界濾波強(qiáng)度邊界濾波強(qiáng)度(BS)決定了濾波器選擇的濾波參數(shù),控制去塊效應(yīng)濾波的強(qiáng)度。對(duì)所有的4×4亮度塊的邊界,邊界濾波強(qiáng)度的數(shù)值r與邊界兩邊相鄰塊的性質(zhì)有關(guān)。假定邊界兩邊的圖像塊為P和Q,可以得到確定r值的判決樹如圖2所示。判斷時(shí)按照從上到下的順序?qū)D中的條件進(jìn)行判斷,直到滿足某一條件,就給出r的相應(yīng)值。
虛假邊界的判斷去方塊濾波的作用是去除H.264編解碼算法帶來的塊效應(yīng),但是塊的邊界如果正好是圖像的邊界,如家具邊緣等,若不加以判斷而誤認(rèn)為是塊效應(yīng)并進(jìn)行了濾波,則可能造成新的誤差。所以,在濾波之前,首先應(yīng)該判斷該邊界是圖像的真實(shí)邊界還是塊效應(yīng)形成的虛假邊界,對(duì)真實(shí)邊界不進(jìn)行濾波處理。H.264標(biāo)準(zhǔn)中設(shè)定了兩個(gè)門限α和β來判斷虛假邊界。α表示塊間的邊界門限,β表示塊內(nèi)的邊界門限,高于門限就判定為真實(shí)邊界,否則就判定為虛假邊界。α和β的取值取決于量化步長的大小,當(dāng)量化步長大時(shí),量化誤差大,塊效應(yīng)明顯,因此門限值隨之變大,反之量化值步長小時(shí)門限值隨之變小。
濾波計(jì)算在確定了邊界的濾波強(qiáng)度之后,就可以按照?qǐng)D1所示的濾波順序依次完成各個(gè)邊界的濾波計(jì)算。在每個(gè)豎直邊界或者水平邊界兩邊相鄰的兩個(gè)塊中,取出圖3所示的與邊界垂直的8個(gè)像素點(diǎn)p0~p3和q0~q3,作為待濾波的數(shù)據(jù),根據(jù)邊界的濾波強(qiáng)度的不同采用不同的濾波過程,得到濾波后的數(shù)據(jù)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出了一種將對(duì)外部存儲(chǔ)器的讀寫操作與濾波計(jì)算并行執(zhí)行的濾波方法,并給出了該方法的電路實(shí)現(xiàn)。
本發(fā)明的思路在于1)將濾波過程的中間數(shù)據(jù)全部緩存,只將濾波后的最終結(jié)果輸出,可以達(dá)到對(duì)片外存儲(chǔ)器的讀寫次數(shù)的下限,從而將外部存儲(chǔ)器的帶寬對(duì)處理能力的影響降到最小。2)基于一種改進(jìn)的濾波順序,相對(duì)于基本的濾波順序,可以減小片內(nèi)緩存的中間數(shù)據(jù)量,從而減小電路規(guī)模。3)將對(duì)外部存儲(chǔ)器的讀寫操作與濾波計(jì)算并行執(zhí)行,減少了整個(gè)濾波過程需要的時(shí)鐘周期數(shù),從而提高了處理能力。
以下詳細(xì)說明這三個(gè)思路1)對(duì)外部存儲(chǔ)器讀寫次數(shù)的下限對(duì)一個(gè)宏塊內(nèi)所有需要濾波的4×4大小的塊進(jìn)行標(biāo)記,如圖4所示,其中字母a-p標(biāo)記的是相鄰的參考?jí)K,字母A-Y標(biāo)記的是宏塊內(nèi)的塊。為了減少對(duì)外部存儲(chǔ)器的讀寫次數(shù),應(yīng)該避免把濾波過程的中間數(shù)據(jù)寫入外部存儲(chǔ)器中,而只將每個(gè)塊濾波后的最終結(jié)果寫入外部存儲(chǔ)器。設(shè)定外部存儲(chǔ)器的位寬為32bit,每次可以讀出或?qū)懭胍粋€(gè)塊的同一行的4個(gè)像素點(diǎn)的數(shù)據(jù),那么從外部存儲(chǔ)器中讀出圖4所示的待濾波數(shù)據(jù)需要4×40=160個(gè)時(shí)鐘周期,將濾波后的最終結(jié)果寫入外部存儲(chǔ)器也需要4×40=160個(gè)時(shí)鐘周期。由于將所有中間數(shù)據(jù)都緩存在片內(nèi),所以160個(gè)時(shí)鐘周期就是一個(gè)宏塊的濾波過程對(duì)外部存儲(chǔ)器讀寫次數(shù)的下限。
2)需要緩存的中間數(shù)據(jù)量根據(jù)圖1所示的濾波順序,得到基本的去塊效應(yīng)濾波順序,如圖5a所示,其中的數(shù)字表示邊界的濾波順序。該順序不利于盡早得到濾波后的最終結(jié)果,增加了對(duì)中間數(shù)據(jù)緩存的需求。一種改進(jìn)后的濾波順序,如圖5b所示,其中的數(shù)字表示邊界的濾波順序。改進(jìn)的濾波順序能夠盡早地完成同一個(gè)塊的4個(gè)邊界的濾波,從而減少了需要緩存的中間數(shù)據(jù)量。以圖4的亮度宏塊中的塊A為例,說明兩種不同的濾波順序需要緩存的中間數(shù)據(jù)量的不同。按照?qǐng)D5a所示的基本的濾波順序,最早在完成第21個(gè)邊界的濾波之后才能得到該塊濾波后的最終結(jié)果,需要緩存整個(gè)宏塊內(nèi)的塊A~P的中間數(shù)據(jù),即16個(gè)4×4大小的塊;而按照?qǐng)D5b所示的改進(jìn)后的濾波順序,最早在完成第11個(gè)邊界的濾波之后就能得到該塊濾波后的最終結(jié)果,需要緩存的中間數(shù)據(jù)最多為A、B、C、D、E、F這6個(gè)塊,即6×4×4×8=768bit。
3)讀寫操作與濾波計(jì)算并行執(zhí)行使得對(duì)外部存儲(chǔ)器的讀寫操作與濾波計(jì)算并行執(zhí)行,可以減少濾波過程需要的時(shí)鐘周期數(shù),從而提高處理能力。由于每次讀出或?qū)懭氲氖且粋€(gè)4×4大小的塊同一行的4個(gè)像素點(diǎn)的數(shù)據(jù),所以塊的讀操作和寫操作可以和該塊的豎直邊界的濾波計(jì)算并行執(zhí)行,而不能和該塊的水平邊界的濾波計(jì)算并行執(zhí)行。所以,對(duì)圖4和圖5b所示的亮度宏塊,從外部存儲(chǔ)器中讀出塊A~P的操作可以分別和豎直邊界1、2、4、6、9、10、12、14、17、18、20、22、25、26、28、30的濾波計(jì)算并行執(zhí)行;將塊e、f、g、h的濾波后的最終結(jié)果寫入外部存儲(chǔ)器的操作可以分別和豎直邊界1、9、17、25的濾波操作并行執(zhí)行。另外,如果塊的水平邊界濾波之后得到該塊濾波后的最終結(jié)果,那么將該結(jié)果寫入外部存儲(chǔ)器的操作可以和下一個(gè)邊界的濾波計(jì)算或者下一個(gè)塊的讀操作并行執(zhí)行。所以,對(duì)圖4和圖5b所示的亮度宏塊,將a、b、c、A、B、C、E、F、G、I、J、K這12個(gè)塊的濾波后的最終結(jié)果寫入外部存儲(chǔ)器的操作可以分別和邊界4、6、8、12、14、16、20、22、24、28、30、32的濾波操作并行執(zhí)行;將塊d、D、H的濾波后的最終結(jié)果寫入外部存儲(chǔ)器的操作可以分別和讀出塊f、g、h的操作并行執(zhí)行。
根據(jù)以上三個(gè)思路,本發(fā)明提出了具體的濾波方法,其流程如圖6所示,并且本發(fā)明還給出了該濾波方法的電路實(shí)現(xiàn),如圖7和圖8所示。
本發(fā)明的特征在于1.所述方法是根據(jù)H.264標(biāo)準(zhǔn)利用大規(guī)模集成電路設(shè)計(jì)去塊效應(yīng)濾波器,對(duì)每個(gè)宏塊內(nèi)的每個(gè)4×4塊的除去整幅圖像邊緣的4個(gè)邊界進(jìn)行濾波的方法,該方法又分為亮度宏塊的濾波方法和色度宏塊的濾波方法,其中亮度宏塊的濾波方法依次有以下步驟
步驟(1).對(duì)亮度宏塊進(jìn)行標(biāo)記并存入外部存儲(chǔ)器亮度宏塊內(nèi)每一行的4×4塊從左到右依次標(biāo)記為A,B,C,D;E,F(xiàn),G, H;I,J,K,L,以及M,N,O,P;與A,B,C,D從左到右依次水平相鄰的參考?jí)K分別標(biāo)記為a,b,c,d;與A,E,I,M從上到下依次垂直相鄰的參考?jí)K分別標(biāo)記為e,f,g,h;分別把參考?jí)Ke,f,g,h和亮度宏塊內(nèi)的塊A,E,I,M間的豎直邊界從上到下依次標(biāo)記為1,9,17,25;分別把塊A,E,I,M和塊B,F(xiàn),J,N之間,把塊B,F(xiàn),J,N和塊C,G, K,O之間,把塊C,G,K,O和塊D,H,L,P之間的豎直邊界從上到下依次各標(biāo)記為2,10,18,26;4,12,20,28;6,14,22,30;分別把參考?jí)Ka,b,c,d和亮度宏塊內(nèi)的塊A,B,C,D間的水平邊界從左到右依次標(biāo)記為3,5,7,8;分別把塊A,B,C,D和塊E,F(xiàn),G,H之間,把塊E,F(xiàn),G,H和塊I,J,K,L之間,把塊I,J,K,L和塊M,N,O,P之間的水平邊界從左到右依次各標(biāo)記為11,13,15,16;19,21,23,24;27,29,31,32;步驟(2).從外部存儲(chǔ)器中讀出參考?jí)Ka、b、c、d并通過數(shù)據(jù)緩存選擇器存入中間數(shù)據(jù)緩存器中;步驟(3).按以下步驟,分別從外部存儲(chǔ)器中依次讀出參考?jí)Ke和塊A,B,C,D,完成邊界1~8的濾波計(jì)算,把參考?jí)Ke、a、b、c、d的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(3.1).從外部存儲(chǔ)器中讀出參考?jí)Ke并通過數(shù)據(jù)緩存選擇器存入中間數(shù)據(jù)緩存器中;步驟(3.2).從外部存儲(chǔ)器中讀出塊A,依次經(jīng)過數(shù)據(jù)緩存選擇器和中間數(shù)據(jù)緩存器后,送往多路選擇器,再由多路選擇器送到邊界濾波器完成邊界1的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為參考?jí)Ke的最終濾波結(jié)果和塊A的中間數(shù)據(jù)分別寫入外部存儲(chǔ)器和經(jīng)數(shù)據(jù)緩存選擇器寫入中間數(shù)據(jù)緩存器;步驟(3.3).從外部存儲(chǔ)器中讀出塊B,按照步驟(3.2)所述途徑送往邊界濾波器,完成邊界2的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為塊A的中間數(shù)據(jù)和塊B的中間數(shù)據(jù)經(jīng)數(shù)據(jù)緩存選擇器寫入中間數(shù)據(jù)緩存器;步驟(3.4).所述邊界濾波器完成邊界3的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為參考?jí)Ka的最終濾波結(jié)果和塊A的中間數(shù)據(jù)按照步驟(3.2)的方式處理;步驟(3.5).從外部存儲(chǔ)器中讀出塊C,按照步驟(3.2)所述途徑送往邊界濾波器,完成邊界4的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為塊B的中間數(shù)據(jù)和塊C的中間數(shù)據(jù)經(jīng)數(shù)據(jù)緩存選擇器寫入中間數(shù)據(jù)緩存器,并且將參考?jí)Ka的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(3.6).所述邊界濾波器完成邊界5的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為參考?jí)Kb的最終濾波結(jié)果和塊B的中間數(shù)據(jù)按照步驟(3.2)的方式處理;
步驟(3.7).從外部存儲(chǔ)器中讀出塊D,按照步驟(3.2)所述途徑送往邊界濾波器,完成邊界6的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為塊C的中間數(shù)據(jù)和塊D的中間數(shù)據(jù)經(jīng)數(shù)據(jù)緩存選擇器寫入中間數(shù)據(jù)緩存器,并且將參考?jí)Kb的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(3.8).所述邊界濾波器完成邊界7的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為參考?jí)Kc的最終濾波結(jié)果和塊C的中間數(shù)據(jù)按照步驟(3.2)的方式處理;步驟(3.9).所述邊界濾波器完成邊界8的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為參考?jí)Kd的最終濾波結(jié)果和塊D的中間數(shù)據(jù)經(jīng)數(shù)據(jù)緩存選擇器寫入中間數(shù)據(jù)緩存器,并且將參考?jí)Kc的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(3.10).將參考?jí)Kd的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(4).從外部存儲(chǔ)器中讀出參考?jí)Kf和塊E,F(xiàn),G,H,按照步驟(3)所述方法完成邊界9~16的濾波計(jì)算,將參考?jí)Kf和塊A,B,C,D的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(5).從外部存儲(chǔ)器中讀出參考?jí)Kg和塊I,J,K,L,按照步驟(3)所述方法完成邊界17~24的濾波計(jì)算,將參考?jí)Kg和塊E,F(xiàn),G,H的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(6).從外部存儲(chǔ)器中讀出參考?jí)Kh和塊M,N,O,P,按照步驟(3)所述方法完成邊界25~32的濾波計(jì)算,將參考?jí)Kh和塊I,J,K,L的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(7).將塊M、N、O、P的最終濾波結(jié)果寫入外部存儲(chǔ)器;所述的邊界濾波器是通過一個(gè)輸出選擇與緩存器把各塊的最終濾波結(jié)果送往外部存儲(chǔ)器的。
2.根據(jù)權(quán)利要求,所述的去塊效應(yīng)濾波器的濾波方法,其特征在于所述方法是通過一個(gè)控制器采用下述的三級(jí)流水線的并行結(jié)構(gòu)實(shí)現(xiàn)的在第一級(jí)流水線中,待濾波數(shù)據(jù)和濾波過程的中間數(shù)據(jù)通過控制信號(hào),經(jīng)過數(shù)據(jù)緩存選擇器存儲(chǔ)在中間數(shù)據(jù)緩存器中;在第二級(jí)流水線中,控制器將中間數(shù)據(jù)緩存器中存儲(chǔ)的數(shù)據(jù)通過一個(gè)多路選擇器送給邊界濾波器完成一個(gè)邊界的濾波,并將得到的濾波過程的中間數(shù)據(jù)送回給數(shù)據(jù)緩存選擇器;在第三級(jí)流水線中,在控制器的控制下,最終濾波結(jié)果由輸出選擇與緩存器選擇已經(jīng)完成濾波的像素點(diǎn)輸出。
本設(shè)計(jì)硬件上用FGPA實(shí)現(xiàn),用Matlab進(jìn)行行為級(jí)建模,用Verilog進(jìn)行RTL級(jí)編碼和功能仿真?;赟MIC 0.18μm最壞的工藝,綜合后的電路的關(guān)鍵路徑最大時(shí)延為7ns,即時(shí)鐘頻率達(dá)到140MHz,電路規(guī)模約為1.62萬門。完成一個(gè)宏塊的濾波過程需要348個(gè)時(shí)鐘周期,能夠以111.7幀/s的幀率對(duì)1280×720分辨率的圖像進(jìn)行濾波處理。與現(xiàn)有的設(shè)計(jì)相比,本發(fā)明減小了電路規(guī)模,并且減少了完成一個(gè)宏塊的去塊效應(yīng)濾波過程的時(shí)鐘周期數(shù),從而提高了處理能力。
圖1濾波對(duì)象和順序;圖2確定邊界濾波強(qiáng)度的判決樹;圖3豎直邊界與水平邊界;圖4宏塊的塊標(biāo)記;圖5基本的和改進(jìn)的濾波順序;(a)基本的濾波順序;(b)改進(jìn)的濾波順序;圖6濾波流程圖;圖7去塊效應(yīng)濾波器的結(jié)構(gòu)圖;圖8邊界濾波器的結(jié)構(gòu)圖。
具體實(shí)施例方式
按照?qǐng)D5b所示的濾波順序,對(duì)于圖4中的亮度宏塊,按照?qǐng)D6所示的流程依次完成宏內(nèi)所有邊界的濾波,其具體步驟說明如下步驟0從外部存儲(chǔ)器中讀出塊a、b、c、d并緩存;步驟1從外部存儲(chǔ)器中讀出塊e、A、B、C、D,完成邊界1~8的濾波計(jì)算,將塊e、a、b、c、d濾波后的最終結(jié)果寫入外部存儲(chǔ)器;步驟2從外部存儲(chǔ)器中讀出塊f、E、F、G、H,完成邊界9~16的濾波計(jì)算,將塊f、A、B、C、D濾波后的最終結(jié)果寫入外部存儲(chǔ)器;步驟3從外部存儲(chǔ)器中讀出塊g、I、J、K、L,完成邊界17~24的濾波計(jì)算,將塊g、E、F、G、H濾波后的最終結(jié)果寫入外部存儲(chǔ)器;步驟4從外部存儲(chǔ)器中讀出塊h、M、N、O、P,完成邊界25~32的濾波計(jì)算,將塊h、I、J、K、L濾波后的最終結(jié)果寫入外部存儲(chǔ)器;步驟5將塊M、N、O、P濾波后的最終結(jié)果寫入外部存儲(chǔ)器。
由于數(shù)據(jù)的相關(guān)性,步驟O的讀操作和步驟5的寫操作都不能與濾波計(jì)算并行執(zhí)行。步驟1、2、3、4中的讀寫操作與濾波計(jì)算可以并行執(zhí)行,并且這4個(gè)步驟是類似的,只是處理的塊不同。下面只討論步驟1的具體實(shí)現(xiàn)過程,步驟2、3、4可以采用與其類似的過程完成。步驟1的具體過程如下1)從外部存儲(chǔ)器中讀出塊e并緩存;2)從外部存儲(chǔ)器中讀出塊A,完成邊界1的濾波計(jì)算,同時(shí)將塊e濾波后的最終結(jié)果寫入外部存儲(chǔ)器,緩存塊A的中間數(shù)據(jù);3)從外部存儲(chǔ)器中讀出塊B,完成邊界2的濾波計(jì)算,緩存塊A和塊B的中間數(shù)據(jù);
4)完成邊界3的濾波計(jì)算,緩存塊a濾波后的最終結(jié)果和塊A的中間數(shù)據(jù);5)從外部存儲(chǔ)器中讀出塊C,完成邊界4的濾波計(jì)算,同時(shí)將塊a濾波后的最終結(jié)果寫入外部存儲(chǔ)器,緩存塊B和塊C的中間數(shù)據(jù);6)完成邊界5的濾波計(jì)算,緩存塊b濾波后的最終結(jié)果和塊B的中間數(shù)據(jù);7)從外部存儲(chǔ)器中讀出塊D,完成邊界6的濾波計(jì)算,同時(shí)將塊b濾波后的最終結(jié)果寫入外部存儲(chǔ)器,緩存塊C和塊D的中間數(shù)據(jù);8)完成邊界7的濾波計(jì)算,緩存塊c濾波后的最終結(jié)果和塊C的中間數(shù)據(jù);9)完成邊界8的濾波計(jì)算,同時(shí)將塊c濾波后的最終結(jié)果寫入外部存儲(chǔ)器,緩存塊d濾波后的最終結(jié)果和塊D的中間數(shù)據(jù)。
10)將塊d濾波后的最終結(jié)果寫入外部存儲(chǔ)器,該操作與步驟2的第1)步并行執(zhí)行。
按照?qǐng)D5b所示的濾波順序,對(duì)于圖4中的一個(gè)色度宏塊,濾波方法的具體步驟如下步驟0從外部存儲(chǔ)器中讀出塊i、j并緩存;步驟1從外部存儲(chǔ)器中讀出塊k、R、S,完成邊界33~36的濾波計(jì)算,將塊k、i、j濾波后的最終結(jié)果寫入外部存儲(chǔ)器;步驟2從外部存儲(chǔ)器中讀出塊l、T、U,完成邊界37~40的濾波計(jì)算,將塊l、R、S濾波后的最終結(jié)果寫入外部存儲(chǔ)器;步驟3將塊T、U濾波后的最終結(jié)果寫入存儲(chǔ)器。
根據(jù)本發(fā)明提出的濾波流程圖,可以得到去塊效應(yīng)濾波器的系統(tǒng)如圖7所示,這是一個(gè)三級(jí)流水線加旁路的并行處理結(jié)構(gòu),其中帶箭頭的細(xì)線表示控制信號(hào),帶箭頭的粗線表示數(shù)據(jù)流,數(shù)據(jù)流的位寬都是32bit。
第一級(jí)流水線中,待濾波數(shù)據(jù)和濾波過程的中間數(shù)據(jù)通過數(shù)據(jù)緩存選擇器存儲(chǔ)在中間數(shù)據(jù)緩存器中。中間數(shù)據(jù)緩存器是6個(gè)4×32bit大小的寄存器,數(shù)據(jù)緩存選擇器根據(jù)控制信號(hào),將數(shù)據(jù)存入中間數(shù)據(jù)緩存器的不同存儲(chǔ)單元中。
第二級(jí)流水線中,緩存的數(shù)據(jù)通過多路選擇器送給邊界濾波器完成一個(gè)邊界的濾波,并將得到的濾波過程的中間數(shù)據(jù)經(jīng)旁路送回第一級(jí)流水線。其中邊界濾波器的結(jié)構(gòu)如圖8所示,它完成對(duì)圖3所示的豎直邊界或水平邊界的濾波計(jì)算。圖8中的控制信號(hào)給出了濾波計(jì)算模塊所需要的濾波參數(shù),(p0,p1,p2,p3)和(q0,q1,q2,q3)是待濾波的像素點(diǎn),(p0′,p1′,p2′,p3′)和(q0′,q1′,q2′,q3′)是濾波后的像素點(diǎn),濾波計(jì)算模塊按照H.264標(biāo)準(zhǔn)中規(guī)定的計(jì)算過程在控制信號(hào)的控制下分別完成(p0′,q0′)、(p1′,q1′)、(p2′,q2′)、(p3′,q3′)的計(jì)算。為了減小電路的關(guān)鍵路徑長度,邊界濾波器的輸出通過一級(jí)寄存器緩存,所以輸出相對(duì)于輸入會(huì)有1個(gè)時(shí)鐘周期的延遲,于是完成一個(gè)邊界的濾波需要5個(gè)時(shí)鐘周期。圖8所示的邊界濾波器每個(gè)時(shí)鐘周期處理8個(gè)像素點(diǎn),所以完成一個(gè)邊界的32個(gè)像素點(diǎn)的處理需要4個(gè)時(shí)鐘周期。
第三級(jí)流水線中,如果Out_1與Out_2中有一路得到了濾波后的最終結(jié)果,就通過輸出選擇與緩存器選擇該路緩存并輸出,緩存的大小是1個(gè)4×32bit的寄存器。
統(tǒng)計(jì)各個(gè)步驟需要的時(shí)鐘周期數(shù),可以得到,完成一個(gè)亮度宏塊的濾波需要212個(gè)時(shí)鐘周期,完成一個(gè)色度宏塊的濾波需要68個(gè)時(shí)鐘周期。所以,完成一個(gè)包含亮度分量和色度分量的宏塊的濾波一共需要212+68×2=348個(gè)時(shí)鐘周期。
權(quán)利要求
1.去塊效應(yīng)濾波器的濾波方法,其特征在于所述方法是根據(jù)H.264標(biāo)準(zhǔn)利用大規(guī)模集成電路設(shè)計(jì)去塊效應(yīng)濾波器,對(duì)每個(gè)宏塊內(nèi)的每個(gè)4×4塊的除去整幅圖像邊緣的4個(gè)邊界進(jìn)行濾波的方法,該方法又分為亮度宏塊的濾波方法和色度宏塊的濾波方法,其中亮度宏塊的濾波方法依次有以下步驟步驟(1).對(duì)亮度宏塊進(jìn)行標(biāo)記并存入外部存儲(chǔ)器亮度宏塊內(nèi)每一行的4×4塊從左到右依次標(biāo)記為A,B,C,D;E,F(xiàn),G,H;I,J,K,L,以及M,N,O,P;與A,B,C,D從左到右依次水平相鄰的參考?jí)K分別標(biāo)記為a,b,c,d;與A,E,I,M從上到下依次垂直相鄰的參考?jí)K分別標(biāo)記為e,f,g,h;分別把參考?jí)Ke,f,g,h和亮度宏塊內(nèi)的塊A,E,I,M間的豎直邊界從上到下依次標(biāo)記為1,9,17,25;分別把塊A,E,I,M和塊B,F(xiàn),J,N之間,把塊B,F(xiàn),J,N和塊C,G,K,O之間,把塊C,G,K,O和塊D,H,L,P之間的豎直邊界從上到下依次各標(biāo)記為2,10,18,26;4,12,20,28;6,14,22,30;分別把參考?jí)Ka,b,c,d和亮度宏塊內(nèi)的塊A,B,C,D間的水平邊界從左到右依次標(biāo)記為3,5,7,8;分別把塊A,B,C,D和塊E,F(xiàn),G,H之間,把塊E,F(xiàn),G,H和塊I,J,K,L之間,把塊I,J,K,L和塊M,N,O,P之間的水平邊界從左到右依次各標(biāo)記為11,13,15,16;19,21,23,24;27,29,31,32;步驟(2).從外部存儲(chǔ)器中讀出參考?jí)Ka、b、c、d并通過數(shù)據(jù)緩存選擇器存入中間數(shù)據(jù)緩存器中;步驟(3).按以下步驟,分別從外部存儲(chǔ)器中依次讀出參考?jí)Ke和塊A,B,C,D,完成邊界1~8的濾波計(jì)算,把參考?jí)Ke、a、b、c、d的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(3.1).從外部存儲(chǔ)器中讀出參考?jí)Ke并通過數(shù)據(jù)緩存選擇器存入中間數(shù)據(jù)緩存器中;步驟(3.2).從外部存儲(chǔ)器中讀出塊A,依次經(jīng)過數(shù)據(jù)緩存選擇器和中間數(shù)據(jù)緩存器后,送往多路選擇器,再由多路選擇器送到邊界濾波器完成邊界1的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為參考?jí)Ke的最終濾波結(jié)果和塊A的中間數(shù)據(jù)分別寫入外部存儲(chǔ)器和經(jīng)數(shù)據(jù)緩存選擇器寫入中間數(shù)據(jù)緩存器;步驟(3.3).從外部存儲(chǔ)器中讀出塊B,按照步驟(3.2)所述途徑送往邊界濾波器,完成邊界2的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為塊A的中間數(shù)據(jù)和塊B的中間數(shù)據(jù)經(jīng)數(shù)據(jù)緩存選擇器寫入中間數(shù)據(jù)緩存器;步驟(3.4).所述邊界濾波器完成邊界3的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為參考?jí)Ka的最終濾波結(jié)果和塊A的中間數(shù)據(jù)按照步驟(3.2)的方式處理;步驟(3.5).從外部存儲(chǔ)器中讀出塊C,按照步驟(3.2)所述途徑送往邊界濾波器,完成邊界4的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為塊B的中間數(shù)據(jù)和塊C的中間數(shù)據(jù)經(jīng)數(shù)據(jù)緩存選擇器寫入中間數(shù)據(jù)緩存器,并且將參考?jí)Ka的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(3.6).所述邊界濾波器完成邊界5的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為參考?jí)Kb的最終濾波結(jié)果和塊B的中間數(shù)據(jù)按照步驟(3.2)的方式處理;步驟(3.7).從外部存儲(chǔ)器中讀出塊D,按照步驟(3.2)所述途徑送往邊界濾波器,完成邊界6的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為塊C的中間數(shù)據(jù)和塊D的中間數(shù)據(jù)經(jīng)數(shù)據(jù)緩存選擇器寫入中間數(shù)據(jù)緩存器,并且將參考?jí)Kb的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(3.8).所述邊界濾波器完成邊界7的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為參考?jí)Kc的最終濾波結(jié)果和塊C的中間數(shù)據(jù)按照步驟(3.2)的方式處理;步驟(3.9).所述邊界濾波器完成邊界8的濾波計(jì)算,同時(shí)將計(jì)算結(jié)果作為參考?jí)Kd的最終濾波結(jié)果和塊D的中間數(shù)據(jù)經(jīng)數(shù)據(jù)緩存選擇器寫入中間數(shù)據(jù)緩存器,并且將參考?jí)Kc的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(3.10).將參考?jí)Kd的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(4).從外部存儲(chǔ)器中讀出參考?jí)Kf和塊E,F(xiàn),G,H,按照步驟(3)所述方法完成邊界9~16的濾波計(jì)算,將參考?jí)Kf和塊A,B,C,D的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(5).從外部存儲(chǔ)器中讀出參考?jí)Kg和塊I,J,K,L,按照步驟(3)所述方法完成邊界17~24的濾波計(jì)算,將參考?jí)Kg和塊E,F(xiàn),G,H的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(6).從外部存儲(chǔ)器中讀出參考?jí)Kh和塊M,N,O,P,按照步驟(3)所述方法完成邊界25~32的濾波計(jì)算,將參考?jí)Kh和塊I,J,K,L的最終濾波結(jié)果寫入外部存儲(chǔ)器;步驟(7).將塊M、N、O、P的最終濾波結(jié)果寫入外部存儲(chǔ)器;所述的邊界濾波器是通過一個(gè)輸出選擇與緩存器把各塊的最終濾波結(jié)果送往外部存儲(chǔ)器的。
2.根據(jù)權(quán)利要求,所述的去塊效應(yīng)濾波器的濾波方法,其特征在于所述方法是通過一個(gè)控制器采用下述的三級(jí)流水線的并行結(jié)構(gòu)實(shí)現(xiàn)的在第一級(jí)流水線中,待濾波數(shù)據(jù)和濾波過程的中間數(shù)據(jù)通過控制信號(hào),經(jīng)過數(shù)據(jù)緩存選擇器存儲(chǔ)在中間數(shù)據(jù)緩存器中;在第二級(jí)流水線中,控制器將中間數(shù)據(jù)緩存器中存儲(chǔ)的數(shù)據(jù)通過一個(gè)多路選擇器送給邊界濾波器完成一個(gè)邊界的濾波,并將得到的濾波過程的中間數(shù)據(jù)送回給數(shù)據(jù)緩存選擇器;在第三級(jí)流水線中,在控制器的控制下,最終濾波結(jié)果由輸出選擇與緩存器選擇已經(jīng)完成濾波的像素點(diǎn)輸出。
全文摘要
本發(fā)明屬于視頻編解碼的集成電路設(shè)計(jì)領(lǐng)域,提出了一種將對(duì)外部存儲(chǔ)器的讀寫操作與濾波計(jì)算并行執(zhí)行的濾波方法,并給出了該方法的電路結(jié)構(gòu),來完成符合H.264視頻編碼標(biāo)準(zhǔn)的去塊效應(yīng)濾波計(jì)算。其特征在于1)將濾波過程的中間數(shù)據(jù)全部緩存,只將濾波后的最終結(jié)果輸出,可以達(dá)到對(duì)片外存儲(chǔ)器的讀寫次數(shù)的下限,從而將外部存儲(chǔ)器的帶寬對(duì)處理能力的影響降到最小。2)基于一種改進(jìn)的濾波順序,相對(duì)于基本的濾波順序,可以減小片內(nèi)緩存的中間數(shù)據(jù)量,從而減小電路規(guī)模。3)將對(duì)外部存儲(chǔ)器的讀寫操作與濾波計(jì)算并行執(zhí)行,減少了整個(gè)濾波過程需要的時(shí)鐘周期數(shù),從而提高了處理能力。因而,本發(fā)明減小了電路規(guī)模,降低了對(duì)外部存儲(chǔ)器的帶寬要求,提高了數(shù)據(jù)的吞吐率。
文檔編號(hào)H04N9/77GK1921625SQ20061011311
公開日2007年2月28日 申請(qǐng)日期2006年9月15日 優(yōu)先權(quán)日2006年9月15日
發(fā)明者李樹國, 楊晨 申請(qǐng)人:清華大學(xué)