專利名稱:基于avs的去塊效應(yīng)濾波器vlsi實現(xiàn)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)字視頻編解碼領(lǐng)域的裝置,具體是一種基于AVS的去塊效應(yīng)濾波器VLSI實現(xiàn)裝置。
背景技術(shù):
數(shù)字音視頻編解碼技術(shù)標(biāo)準(zhǔn)工作組(AVS工作組)由國家信息產(chǎn)業(yè)部科學(xué)技術(shù)司于2002年6月批準(zhǔn)成立。工作組的任務(wù)是面向我國的信息產(chǎn)業(yè)需求,聯(lián)合國內(nèi)企業(yè)和科研機(jī)構(gòu),制(修)訂數(shù)字音視頻的壓縮、解壓縮、處理和表示等共性技術(shù)標(biāo)準(zhǔn),為數(shù)字音視頻設(shè)備與系統(tǒng)提供高效經(jīng)濟(jì)的編解碼技術(shù),服務(wù)于高分辨率數(shù)字廣播、高密度激光數(shù)字存儲媒體、無線寬帶多媒體通訊、互聯(lián)網(wǎng)寬帶流媒體等重大信息產(chǎn)業(yè)應(yīng)用。
由該工作組制定的AVS音視頻編解碼技術(shù)標(biāo)準(zhǔn)的視頻部分于2006年2月22日被頒布為中華人民共和國國家標(biāo)準(zhǔn),標(biāo)準(zhǔn)號GB/T 20090.2-2006,于2006年3月1日起實施。
去塊效應(yīng)濾波器又叫環(huán)路濾波(loopfilter)是AVS解碼算法最重要的組成部分之一,在視頻系統(tǒng)中的主要作用一是平滑圖像中由于運動補償、變換及量化產(chǎn)生的虛假邊界,降低圖像塊效應(yīng),提高主觀視覺效果;二是濾波后的幀用于后續(xù)幀的運動補償預(yù)測,從而避免了虛假邊界的積累誤差導(dǎo)致的圖像質(zhì)量進(jìn)一步的降低。
由于去塊效應(yīng)濾波一方面需要對塊數(shù)據(jù)的各個邊界上的象素點進(jìn)行濾波操作,另一方面需要對象素值進(jìn)行不規(guī)則的訪問,所以采取一般的硬件設(shè)計結(jié)構(gòu)會極大地影響整個濾波地速度,進(jìn)而可能會影響整個編解碼的實時性。
根據(jù)對有關(guān)AVS去塊效應(yīng)濾波實現(xiàn)方面技術(shù)文獻(xiàn)的檢索,發(fā)現(xiàn)Sheng Bin等人在IEEE proceeding上發(fā)表的“A plat form based architecture ofloopfilter for AVS”(AVS環(huán)路濾波器的一種基于平臺的架構(gòu))一文中,設(shè)計了一種適用于AVS的自適應(yīng)環(huán)路濾波器,但是該方法的不足在于該文中提到的濾波順序在實現(xiàn)時會造成對于某一塊的數(shù)據(jù)需要對存儲器進(jìn)行兩次重復(fù)的讀取,增加了存儲器數(shù)據(jù)帶寬的壓力;并且在實現(xiàn)中針對垂直濾波和水平濾波分別用了一個轉(zhuǎn)置寄存器,造成了冗余。
發(fā)明內(nèi)容
為了解決上述問題,本發(fā)明的目的在于,提出一種基于AVS的去塊效應(yīng)濾波器VLSI實現(xiàn)裝置。本發(fā)明裝置實現(xiàn)時改進(jìn)了標(biāo)準(zhǔn)中濾波的順序、提出了一種對相鄰塊數(shù)據(jù)的組織存儲形式并且針對這種存儲方式提出了相應(yīng)的數(shù)據(jù)輸出方式。該裝置采用流水線結(jié)構(gòu)進(jìn)行計算和濾波,減少了對數(shù)據(jù)存儲器的讀寫,提高了濾波處理的速度,保證了圖像編解碼過程中濾波操作的實時性,并且控制了整個硬件結(jié)構(gòu)的復(fù)雜性。
本發(fā)明是通過以下技術(shù)方案實現(xiàn)的一種基于AVS的去塊效應(yīng)濾波器VLSI實現(xiàn)裝置,包括輸入暫存模塊,閾值計算模塊,參數(shù)存儲模塊、濾波模塊,控制模塊,存儲模塊及輸出暫存模塊。
所述的輸入暫存模塊是一種先進(jìn)先出的緩存,并且由于前面各級解碼模塊輸出的到達(dá)時間不一樣,而在閾值計算時要求所用的參數(shù)必須是同時到達(dá)的,這個就需要在輸入暫存模塊不僅僅是緩存作用,而且要控制輸出到閾值計算模塊;所述的閾值計算模塊包括濾波強度計算模塊和塊邊界閾值計算模塊。濾波強度計算模塊、塊邊界閾值計算模塊從輸入暫存模塊和參數(shù)存儲模塊中讀出相應(yīng)的參數(shù)進(jìn)行計算,每次計算完一個宏塊各邊界的濾波強度及塊邊界閾值則需要參數(shù)存儲模塊中的參數(shù)進(jìn)行更新;所述的參數(shù)存儲模塊用于存儲相鄰塊的參數(shù);所述的濾波模塊用于根據(jù)濾波強度和塊邊界閾值將輸入的待濾波數(shù)據(jù)進(jìn)行濾波;所述的控制模塊用來控制整個濾波過程中的數(shù)據(jù)選擇和數(shù)據(jù)流向;所述的儲存模塊包括暫存模塊、轉(zhuǎn)置模塊、當(dāng)前宏塊存儲模塊、鄰塊數(shù)據(jù)存儲模塊;所述的暫存模塊用于暫時存儲濾波結(jié)束的數(shù)據(jù);所述的轉(zhuǎn)置模塊在控制的作用下可以用于暫存或者轉(zhuǎn)置;所述的當(dāng)前宏塊存儲模塊用于垂直濾波結(jié)束后存儲當(dāng)前宏塊數(shù)據(jù);所述的鄰塊數(shù)據(jù)存儲模塊包括左鄰塊存儲模塊和上面鄰塊存儲模塊,所述的左鄰塊存儲模塊存儲當(dāng)前宏塊的左邊兩個8×8的塊,所述的上面鄰塊存儲模塊存儲的時當(dāng)前宏塊行的上面1920×3個象素。
所述的輸出暫存模塊包括一個先進(jìn)先出數(shù)據(jù)緩存器,緩存器的數(shù)據(jù)來自轉(zhuǎn)置模塊,當(dāng)緩存器中有數(shù)據(jù)時,輸出模塊對外請求數(shù)據(jù)輸出,等到接收到輸出確認(rèn)信號時將數(shù)據(jù)輸出。
在整個裝置中由控制模塊控制流程,針對不同塊邊界在不同模塊中的操作可以并行地進(jìn)行,從而提高濾波速度。
本發(fā)明完成對宏塊邊界的濾波的工作過程如下首先進(jìn)行邊界濾波強度和邊界閾值的計算,在控制模塊作用下將待濾波數(shù)據(jù)的參數(shù)從輸入暫存模塊輸入到閾值計算模塊中進(jìn)行計算,計算完畢的邊界濾波強度和邊界閾值在控制模塊作用下輸出到濾波模塊,并且計算完邊界濾波強度和邊界閾值以后需要將參數(shù)存儲模塊中的值更新;然后進(jìn)行垂直邊的濾波,由控制模塊控制濾波輸入數(shù)據(jù)來源于左鄰塊存儲模塊和輸入暫存模塊或者是暫存模塊和輸入暫存模塊,并且由控制模塊控制濾波后數(shù)據(jù)的輸出流向,垂直邊濾波結(jié)束后當(dāng)前宏塊的數(shù)據(jù)進(jìn)入當(dāng)前宏塊存儲模塊暫存,左鄰塊的數(shù)據(jù)在控制模塊控制下決定是直接輸出還是轉(zhuǎn)置后進(jìn)入上面鄰塊存儲模塊進(jìn)行存儲;最后進(jìn)行水平邊的濾波,由控制模塊控制濾波輸入數(shù)據(jù)來源于當(dāng)前宏塊存儲模塊和上面鄰塊存儲模塊或者是當(dāng)前宏塊存儲模塊和暫存模塊,并且由控制模塊控制濾波后數(shù)據(jù)的輸出流向,水平邊濾波結(jié)束后將上面鄰塊的數(shù)據(jù)轉(zhuǎn)置后直接輸出,由控制模塊決定當(dāng)前塊的數(shù)據(jù)是轉(zhuǎn)置后直接輸出、直接進(jìn)上面鄰塊存儲模塊進(jìn)行存儲、還是進(jìn)入左鄰塊存儲模塊進(jìn)行存儲。
上述過程完成后,一個宏塊中所有塊邊界的濾波操作都已完成。在進(jìn)行邊界濾波強度和邊界閾值的計算中,由參數(shù)存儲模塊提出了一種參數(shù)存儲方式;在進(jìn)行垂直邊的濾波和進(jìn)行水平邊的濾波中,本發(fā)明改進(jìn)了標(biāo)準(zhǔn)定義的濾波順序,減少了對數(shù)據(jù)存儲模塊的讀寫操作,并且優(yōu)化了相鄰宏塊行的數(shù)據(jù)存儲方式。其中,在進(jìn)行垂直邊的濾波和進(jìn)行水平邊的濾波中,對于各個塊的邊界濾波可以采用流水結(jié)構(gòu)實現(xiàn),這樣可以精確的時序控制為保證,提高計算速度。
本發(fā)明主要面向高清晰度視頻解碼(如1920×1080的視頻解碼),但又不局限于解碼高清晰度視頻。根據(jù)圖像的大小,通過改變左鄰塊存儲模塊和上面鄰塊存儲模塊存儲單元的大小,可以使該實現(xiàn)方法適用于各種規(guī)格的AVS解碼器,并同時保證硬件資源的合理分配。
圖1是AVS去塊效應(yīng)濾波器的總體結(jié)構(gòu)圖;圖中虛線表示的是控制信號流向,實線表示的象素數(shù)據(jù)的流向,箭頭表示的是參數(shù)數(shù)據(jù)。
圖2-A是標(biāo)準(zhǔn)中定義的濾波順序,小矩形塊中的數(shù)據(jù)表示濾波的順序,本發(fā)明中都以4:2:0格式大小為1920×1080的圖像說明濾波的順序和數(shù)據(jù)的存儲。
圖2-B是本發(fā)明修正后的濾波順序;其中,數(shù)字標(biāo)志的塊0-3是當(dāng)前宏塊的亮度塊,4、5是色度塊,含有字母標(biāo)志的塊a,b是亮度塊的左邊相鄰塊,e、g是色度塊的左邊相鄰塊,c,d,是亮度塊上面宏塊行的相鄰塊,f、h是色度塊上面宏塊行的相鄰塊,并且塊c,d,f,h包含的象素僅僅只有3行。
圖2-C是濾波過程說明圖。
圖3是參數(shù)存儲模塊的地址分配;0-119存放的是上面一個宏塊行各宏塊的參數(shù),120存放的是左邊宏塊的參數(shù)。
圖4是垂直邊濾波的流水圖,其中花括號內(nèi)標(biāo)明了數(shù)據(jù)的來源,方框內(nèi)表明各個模塊對數(shù)據(jù)進(jìn)行的操作及數(shù)據(jù)的流向。
圖5是水平邊濾波的流水圖,其中花括號內(nèi)標(biāo)明了數(shù)據(jù)的來源,方框內(nèi)表明各個模塊對數(shù)據(jù)進(jìn)行的操作及數(shù)據(jù)的流向。
圖6是存儲左鄰塊存儲模塊的地址分配,以及更新后的情況;存儲器每個單元為64bit,存儲每個塊的8個象素數(shù)據(jù)。
圖7是存儲上面鄰塊存儲模塊(亮度鄰塊)的地址分配,此存儲器的地址按照象素點的地址進(jìn)行存儲,共有1920個單元,存儲器每個單元為24bit,存儲的是上面一個宏塊行待濾波的三個象素。
圖8是存儲上面鄰塊存儲模塊(色度鄰塊)的地址分配,此存儲器的地址按照象素點的地址進(jìn)行存儲,共有1920個單元,地址0-959存儲的是色度塊Cb的象素,地址960-1919存儲的是色度塊Cr的象素數(shù)據(jù),存儲器每個單元為24bit,存儲的是上面一個宏塊行待濾波的三個象素。
具體實現(xiàn)方式下面結(jié)合本發(fā)明的具體實施例子來說明一種基于AVS去塊效應(yīng)濾波器的VLSI實現(xiàn)裝置,整體結(jié)構(gòu)如圖1所示。為方便敘述,本發(fā)明中以圖像格式為4:2:0、圖像大小為1920×1080的圖像為例來說明實施的過程。
如圖1所示,一種基于AVS的去塊效應(yīng)濾波器的實現(xiàn)裝置包括以下的模塊輸入暫存模塊(Input Fifo),閾值計算模塊(BS Thresholdcal),參數(shù)存儲模塊,濾波模塊(Filter),控制單元(Control),轉(zhuǎn)置模塊(REG2),暫存模塊(REGl),當(dāng)前宏塊數(shù)據(jù)暫存模塊(SRAM),左邊鄰塊存儲模塊(HBUF),上面鄰塊存儲模塊(VBUF),輸出暫存模塊(FIFO OUT)。
圖1中MUX1選擇數(shù)據(jù)是來源于輸入暫存模塊還是SRAM,分別對應(yīng)垂直邊濾波和水平邊濾波;MUX2選擇數(shù)據(jù)是來源于MUX1的結(jié)果、暫存模塊還是MUX4結(jié)果中的兩個;MUX3選擇數(shù)據(jù)是來源于濾波后的數(shù)據(jù)或者是暫存的數(shù)據(jù)進(jìn)入轉(zhuǎn)置模塊;MUX4選擇HBUF或者VBUF里的數(shù)據(jù)進(jìn)入MUX2的輸入,即對應(yīng)垂直邊或者水平邊濾波。
所述的輸入暫存模塊是一種先進(jìn)先出的緩存,并且由于前面各級解碼模塊輸出的到達(dá)時間不一樣,而在閾值計算時要求所用的參數(shù)必須是同時到達(dá)的,這個就需要在輸入暫存模塊不儀僅是緩存作用,而且要控制輸出到閾值計算模塊。
所述的閾值計算模塊包括邊界濾波強度閾值計算模塊和塊邊界閾值計算模塊。其中,邊界濾波強度計算模塊和塊邊界閾值計算模塊用來從輸入暫存模塊取出參數(shù)進(jìn)行計算,每次計算完一個宏塊中各個邊界濾波強度和各個塊邊界閾值都需要將存儲的相鄰塊的參數(shù)進(jìn)行更新。
所述的參數(shù)存儲模塊在進(jìn)行鄰塊參數(shù)存儲的時候,左邊鄰塊的參數(shù)存儲在位置120,上面宏塊行的參數(shù)按照宏塊的水平坐標(biāo)進(jìn)行存儲,以1920×1080的圖像為例,每行有120個宏塊,即存儲上面宏塊行參數(shù)的地址為0-119。
所述的濾波模塊是根據(jù)計算出來的每個塊邊界濾波強度及塊邊界閾值對輸入的象素數(shù)據(jù)進(jìn)行相應(yīng)的濾波。其中相應(yīng)的塊邊界濾波強度、塊邊界閾值以及待濾波數(shù)據(jù)的選擇是由控制單元控制的,濾波完的數(shù)據(jù)根據(jù)控制輸出到中間數(shù)據(jù)暫存器或者是轉(zhuǎn)置模塊。
所述的暫存模塊有兩個作用,在控制模塊的控制下,一是進(jìn)行宏塊邊界濾波的時候暫存當(dāng)前塊的數(shù)據(jù)以用來進(jìn)行下一步的濾波,二是在進(jìn)行宏塊內(nèi)邊界濾波的時候作為一個暫存以用來向轉(zhuǎn)置模塊輸出當(dāng)前塊的數(shù)據(jù)。
所述的轉(zhuǎn)置模塊在流程控制模塊的控制下對輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)置輸出,或者不進(jìn)行轉(zhuǎn)置直接輸出。
所述的當(dāng)前宏塊數(shù)據(jù)暫存模塊主要是利用的片上的存儲器實現(xiàn),用來對當(dāng)前宏塊進(jìn)行完垂直邊的濾波并且轉(zhuǎn)置后暫時存儲當(dāng)前宏塊的數(shù)據(jù)。
所述的左邊鄰塊存儲模塊也是通過片上存儲器來實現(xiàn),用來存儲當(dāng)前宏塊左邊兩個相鄰塊的數(shù)據(jù)(即存儲圖2,3中塊a,b,e,g),數(shù)據(jù)存儲方式及更新后的數(shù)據(jù)如圖8。
所述的上面鄰塊存儲模塊同樣也是通過片上存儲器來實現(xiàn),用來存儲當(dāng)前宏塊行上面一整行的宏塊數(shù)據(jù),并且在當(dāng)前宏塊進(jìn)行完所有邊的濾波后將存儲的鄰塊數(shù)據(jù)更新。亮度塊和色度塊的存儲方式見圖9,10。
所述的輸出暫存模塊包括一個先進(jìn)先出數(shù)據(jù)緩存器,緩存器的數(shù)據(jù)來自轉(zhuǎn)置模塊,當(dāng)緩存器中有數(shù)據(jù)時,輸出模塊對外請求數(shù)據(jù)輸出,等到接收到輸出確認(rèn)信號時將數(shù)據(jù)輸出。
本發(fā)明裝置完成一個宏塊所有邊界的濾波操作的具體實施過程如下步驟一當(dāng)輸入暫存模塊檢測到去塊效應(yīng)濾波器裝置的端口有新的參數(shù)和數(shù)據(jù)輸入時,將新的輸入數(shù)據(jù)存進(jìn)此暫存模塊中。
步驟二在控制模塊的控制下從輸入暫存模塊中讀出當(dāng)前宏塊的參數(shù)送入閾值計算模塊,閾值計算模塊根據(jù)參數(shù)中表征當(dāng)前宏塊位置的信息去存儲相鄰塊參數(shù)的模塊中讀取相應(yīng)鄰塊的參數(shù),而后計算所有塊邊界的濾波強度及塊邊界閾值,計算完后將存儲的參數(shù)信息進(jìn)行更新。具體存儲和更新的方式如下當(dāng)前宏塊的左鄰塊(即圖2-A中塊a,b)的參數(shù)存儲在存儲器的最高地址即地址120處,當(dāng)前宏塊行上面一行宏塊的參數(shù)按照宏塊的水平坐標(biāo)進(jìn)行存儲,每次濾波完結(jié)束后當(dāng)前宏塊右邊的兩個8×8塊(即圖2-A中塊1,3)的參數(shù)需要將存儲器最高地址里面的參數(shù)進(jìn)行更新,并且當(dāng)前宏塊下面的兩個8×8塊(即圖2-A中塊2,3)的參數(shù)需要根據(jù)當(dāng)前宏塊的水平坐標(biāo)將相應(yīng)地址里的參數(shù)進(jìn)行更新。
步驟三進(jìn)行濾波,此處進(jìn)行了濾波順序的改進(jìn),將標(biāo)準(zhǔn)中定義的先從左到右對垂直邊界濾波,然后從上到下對水平邊界濾波的順序(濾波順序即圖2-A邊界小框內(nèi)數(shù)字表示)改進(jìn)成為如圖2-B中所示的先進(jìn)行所有垂直邊界的濾波后進(jìn)行所有水平邊界濾波的順序,其中,在進(jìn)行垂直邊界濾波時,先進(jìn)行左上垂直邊界濾波后進(jìn)行右上垂直邊界濾波接著進(jìn)行左下垂直邊界濾波再進(jìn)行右下垂直邊界的濾波,最后進(jìn)行兩個色度塊的垂直邊界的濾波;在進(jìn)行水平邊界濾波時,先進(jìn)行左上水平邊界濾波后進(jìn)行左下水平邊界濾波接著進(jìn)行右上水平邊界濾波再進(jìn)行右下水平邊界的濾波,最后進(jìn)行兩個色度塊的水平邊界的濾波。待濾波的數(shù)據(jù)流向、相應(yīng)的邊的濾波強度和塊邊界閾值的選擇都由控制模塊控制,濾波強度和塊邊界閾值來源于閾值計算模塊,待濾波的數(shù)據(jù)由控制模塊決定來源于輸入暫存模塊、暫存模塊、左邊鄰塊存儲模塊、上面鄰塊存儲模塊或者是當(dāng)前宏塊數(shù)據(jù)暫存模塊中的兩個。濾波流水圖、濾波數(shù)據(jù)來源的選擇、以及各個模塊對數(shù)據(jù)的處理見圖4、5。第一步需要進(jìn)行的濾波是邊h1(對圖2-C所示的各邊界進(jìn)行濾波),塊a的數(shù)據(jù)來源于左邊鄰塊存儲模塊,塊0的數(shù)據(jù)來源于輸入暫存模塊,濾波操作結(jié)束后塊a的數(shù)據(jù)輸出到轉(zhuǎn)置模塊但不經(jīng)轉(zhuǎn)置直接輸出到輸出暫存模塊,塊0的數(shù)據(jù)輸出到暫存模塊暫存;第二步要進(jìn)行濾波的邊是h2,塊0的數(shù)據(jù)來自暫存模塊,塊1的數(shù)據(jù)來自輸入暫存模塊,濾波結(jié)束后塊0的數(shù)據(jù)經(jīng)過轉(zhuǎn)置模塊轉(zhuǎn)置以后存入當(dāng)前宏塊數(shù)據(jù)暫存模塊,塊1的數(shù)據(jù)先經(jīng)過暫存模塊然后經(jīng)過轉(zhuǎn)置模塊存入當(dāng)前宏塊數(shù)據(jù)暫存模塊;第三步要進(jìn)行濾波的邊是h3,塊b的數(shù)據(jù)來源于左邊鄰塊存儲模塊,塊2的數(shù)據(jù)來源于輸入暫存模塊,濾波操作結(jié)束后塊b的數(shù)據(jù)的上面5行經(jīng)過轉(zhuǎn)置模塊不進(jìn)行轉(zhuǎn)置直接輸出,下面3行經(jīng)過轉(zhuǎn)置模塊轉(zhuǎn)置后存儲到上面鄰塊存儲模塊中,塊2的數(shù)據(jù)輸出到暫存模塊暫存;第叫步要進(jìn)行濾波的邊是h4,塊2的數(shù)據(jù)來自暫存模塊,塊3的數(shù)據(jù)來自輸入暫存模塊,濾波結(jié)束后塊2的數(shù)據(jù)經(jīng)過轉(zhuǎn)置模塊以后存入當(dāng)前宏塊數(shù)據(jù)暫存模塊,塊3的數(shù)據(jù)先經(jīng)過暫存模塊然后經(jīng)過轉(zhuǎn)置模塊存入當(dāng)前宏塊數(shù)據(jù)暫存模塊;第五步需要進(jìn)行濾波的是h5,塊e的數(shù)據(jù)來源于左邊鄰塊存儲模塊,塊4的數(shù)據(jù)來源于輸入暫存模塊,濾波結(jié)束后塊e的數(shù)據(jù)的上面5行經(jīng)過轉(zhuǎn)置模塊不經(jīng)轉(zhuǎn)置直接輸出,下面3行經(jīng)過轉(zhuǎn)置模塊轉(zhuǎn)置后存儲到上面鄰塊存儲模塊中,塊4的數(shù)據(jù)先經(jīng)過暫存模塊然后經(jīng)過轉(zhuǎn)置模塊轉(zhuǎn)置后存入當(dāng)前宏塊數(shù)據(jù)暫存模塊;第六步需要進(jìn)行濾波的是邊h6,塊f的數(shù)據(jù)來源于左邊鄰塊存儲模塊,塊5的數(shù)據(jù)來源于輸入暫存模塊,濾波結(jié)束后塊f數(shù)據(jù)的上面5行通過轉(zhuǎn)置模塊不經(jīng)轉(zhuǎn)置直接輸出,下面3行經(jīng)過轉(zhuǎn)置模塊轉(zhuǎn)置后存儲到上面鄰塊存儲模塊中,塊5的數(shù)據(jù)先經(jīng)過暫存模塊然后經(jīng)過轉(zhuǎn)置模塊轉(zhuǎn)置后存入當(dāng)前宏塊數(shù)據(jù)暫存模塊;第七步需要濾波的邊是v1,塊c的數(shù)據(jù)來源于上面鄰塊存儲模塊,塊0的數(shù)據(jù)來源于當(dāng)前宏塊數(shù)據(jù)暫存模塊,濾波結(jié)束后塊c的數(shù)據(jù)經(jīng)過轉(zhuǎn)置模塊轉(zhuǎn)置輸出,塊0的數(shù)據(jù)進(jìn)入暫存模塊暫存;第八步需要濾波的是邊v2,塊0的數(shù)據(jù)來源于數(shù)據(jù)暫存模塊,塊2的數(shù)據(jù)來源于當(dāng)前宏塊數(shù)據(jù)暫存模塊,濾波結(jié)束后塊0的數(shù)據(jù)經(jīng)過轉(zhuǎn)置模塊轉(zhuǎn)置輸出,塊2的上面5行通過轉(zhuǎn)置模塊不經(jīng)轉(zhuǎn)置直接輸出,下面3行經(jīng)過轉(zhuǎn)置模塊轉(zhuǎn)置后存儲上面鄰塊存儲模塊中;第九步需要濾波的是邊v3,塊d的數(shù)據(jù)來源于上面鄰塊存儲模塊,塊1的數(shù)據(jù)來源于當(dāng)前宏塊數(shù)據(jù)暫存模塊,濾波結(jié)束后塊d的數(shù)據(jù)經(jīng)過轉(zhuǎn)置模塊轉(zhuǎn)置輸出,塊1的數(shù)據(jù)進(jìn)入暫存模塊暫存;第十步需要濾波的是邊v4,塊1的數(shù)據(jù)來源于暫存模塊,塊3的數(shù)據(jù)來源于當(dāng)前宏塊數(shù)據(jù)暫存模塊,濾波結(jié)束后塊1和塊3的數(shù)據(jù)經(jīng)過轉(zhuǎn)置后都要存入左邊鄰塊存儲模塊;第十一步需要濾波的是v5,塊f的數(shù)據(jù)來源于上面鄰塊存儲模塊,塊4的數(shù)據(jù)來源于當(dāng)前宏塊數(shù)據(jù)暫存模塊,濾波結(jié)束后塊f的數(shù)據(jù)經(jīng)過轉(zhuǎn)置模塊轉(zhuǎn)置輸出,塊4的數(shù)據(jù)經(jīng)轉(zhuǎn)置存入左邊鄰塊存儲模塊;第十二步需要濾波的是v6,塊h的數(shù)據(jù)來源于上面鄰塊存儲模塊,塊5的數(shù)據(jù)來源于當(dāng)前宏塊數(shù)據(jù)暫存模塊,濾波結(jié)束后塊h的數(shù)據(jù)經(jīng)過轉(zhuǎn)置模塊轉(zhuǎn)置輸出,塊5的數(shù)據(jù)經(jīng)轉(zhuǎn)置存入左邊鄰塊存儲模塊。
至此,一個宏塊所有的邊界濾波已經(jīng)完成。如上所述,在圖6、7中可以看出對于各邊界的操作可以并行地進(jìn)行。
在本例中所有存儲器的地址是按照處理1920×1080高清圖像進(jìn)行存儲的,對于其他的圖像大小類似地做修正即可。
權(quán)利要求
1.一種基于AVS的去塊效應(yīng)濾波器VLSI實現(xiàn)裝置,包括輸入暫存模塊,閾值計算模塊、濾波模塊、控制模塊、存儲模塊及輸出暫存模塊,其特征在于所述的輸入暫存模塊用于將輸入端口的參數(shù)及待濾波數(shù)據(jù)進(jìn)行緩存;所述的閾值計算模塊從輸入暫存模塊中讀中相應(yīng)的參數(shù)進(jìn)行濾波強度和邊界閾值的計算,并且在控制模塊的作用下輸出相應(yīng)的濾波強度和邊界閾值到濾波模塊;所述的濾波模塊是根據(jù)閾值計算模塊輸入的每個塊邊界濾波強度及塊邊界閾值對輸入的象素數(shù)據(jù)進(jìn)行相應(yīng)的濾波,其中由控制單元選擇相應(yīng)的塊邊界濾波強度、塊邊界閾值以及待濾波數(shù)據(jù),濾波完的數(shù)據(jù)根據(jù)控制輸出到中間數(shù)據(jù)暫存器或者是轉(zhuǎn)置模塊;所述的控制單元用來控制整個濾波過程中的數(shù)據(jù)選擇和數(shù)據(jù)流向;所述的儲存模塊包括暫存模塊、轉(zhuǎn)置模塊、當(dāng)前宏塊存儲模塊、鄰塊數(shù)據(jù)存儲模塊,所述的暫存模塊用于暫時存儲濾波結(jié)束的數(shù)據(jù),所述的轉(zhuǎn)置模塊在控制單元的控制下用于暫存或者轉(zhuǎn)置,所述的當(dāng)前宏塊存儲模塊用于垂直邊濾波結(jié)束后存儲當(dāng)前宏塊數(shù)據(jù),所述的鄰塊數(shù)據(jù)存儲模塊包括左邊鄰塊存儲模塊和上面鄰塊存儲模塊,左邊鄰塊存儲模塊存儲當(dāng)前宏塊的左邊兩個8×8的塊,上面鄰塊存儲模塊存儲的是當(dāng)前宏塊行上面一行的象素;所述的輸出暫存模塊中數(shù)據(jù)來源于轉(zhuǎn)置模塊,包括一個先進(jìn)先出數(shù)據(jù)緩存器,緩存器的數(shù)據(jù)來自轉(zhuǎn)置模塊,當(dāng)緩存器中有數(shù)據(jù)時,輸出暫存模塊對外請求數(shù)據(jù)輸出,等到接收到輸出確認(rèn)信號時將數(shù)據(jù)輸出。
2.根據(jù)權(quán)利要求1所述的基于AVS的去塊效應(yīng)濾波器VLSI實現(xiàn)裝置,其特征是所述的輸入暫存模塊是一種先進(jìn)先出的緩存,而且控制輸出到閾值計算模塊。
3.根據(jù)權(quán)利要求1所述的基于AVS的去塊效應(yīng)濾波器VLSI實現(xiàn)裝置,其特征是所述的邊界閾值計算模塊包括濾波強度計算模塊、塊邊界閾值計算模塊以及鄰塊參數(shù)存儲模塊,所述的邊界閾值計算模塊在計算時從輸入暫存模塊讀出當(dāng)前宏塊的參數(shù),從鄰塊參數(shù)存儲模塊讀取相鄰宏塊的參數(shù)進(jìn)行計算,計算完畢后需要將存儲的參數(shù)更新,所述的濾波強度計算模塊、塊邊界閾值計算模塊分別計算出濾波強度和邊界閾值并根據(jù)控制模塊選擇相應(yīng)的濾波強度和邊界閾值輸入到濾波模塊中。
4.根據(jù)權(quán)利要求1所述的基于AVS的去塊效應(yīng)濾波器VLSI實現(xiàn)裝置,其特征是所述的濾波模塊用于根據(jù)濾波強度和塊邊界閾值將輸入的待濾波數(shù)據(jù)進(jìn)行濾波,并且根據(jù)控制將濾波完的數(shù)據(jù)輸出到暫存模塊或者是轉(zhuǎn)置模塊。
5.根據(jù)權(quán)利要求1或4所述的基于AVS的去塊效應(yīng)濾波器VLSI實現(xiàn)裝置,其特征是所述的濾波模塊,在進(jìn)行濾波的時候,先進(jìn)行所有垂直邊界的濾波后進(jìn)行所有水平邊界濾波,其中,在進(jìn)行垂直邊界濾波時,先進(jìn)行左上垂直邊界濾波后進(jìn)行右上垂直邊界濾波接著進(jìn)行左下垂直邊界濾波再進(jìn)行右下垂直邊界的濾波,最后進(jìn)行兩個色度塊的垂直邊界的濾波;在進(jìn)行水平邊界濾波時,先進(jìn)行左上水平邊界濾波后進(jìn)行左下水平邊界濾波接著進(jìn)行右上水平邊界濾波再進(jìn)行右下水平邊界的濾波,最后進(jìn)行兩個色度塊的水平邊界的濾波。
6.根據(jù)權(quán)利要求1所述的基于AVS的去塊效應(yīng)濾波器VLSI實現(xiàn)裝置,其特征是所述的儲存模塊包括暫存模塊、轉(zhuǎn)置模塊、當(dāng)前宏塊數(shù)據(jù)暫存模塊、鄰塊數(shù)據(jù)存儲模塊;所述的暫存模塊輸入數(shù)據(jù)來源于濾波模塊,在進(jìn)行宏塊內(nèi)塊邊界濾波時,暫存模塊中的數(shù)據(jù)輸出到濾波模塊,除此情況外都輸出給轉(zhuǎn)置模塊;在進(jìn)行宏塊左邊界濾波時,所述的轉(zhuǎn)置模塊中的輸入數(shù)據(jù)來源于濾波模塊,對左邊兩個8×8塊的上面一整塊和下面一個塊的上面5行象素數(shù)據(jù)不進(jìn)行轉(zhuǎn)置直接輸出到輸出暫存模塊,下面三行象素數(shù)據(jù)經(jīng)過轉(zhuǎn)置以后存儲到上面鄰塊數(shù)據(jù)存儲模塊,在進(jìn)行宏塊上邊界濾波時,轉(zhuǎn)置模塊中的輸入數(shù)據(jù)來源于濾波模塊,此時要對輸入數(shù)據(jù)轉(zhuǎn)置以后輸出到輸出暫存模塊,在進(jìn)行宏塊內(nèi)部的垂直邊界濾波時,轉(zhuǎn)置模塊首先將來源于濾波模塊的數(shù)據(jù)進(jìn)行轉(zhuǎn)置存儲到當(dāng)前宏塊存儲模塊中,然后將來源于暫存模塊的數(shù)據(jù)進(jìn)行轉(zhuǎn)置存儲到當(dāng)前宏塊存儲模塊中,在進(jìn)行宏塊內(nèi)部的左邊一個水平邊界濾波時,轉(zhuǎn)置模塊首先將來源于濾波模塊的數(shù)據(jù)進(jìn)行轉(zhuǎn)置后輸出到輸出暫存模塊,然后將將來源于暫存模塊數(shù)據(jù)的上面5行進(jìn)行轉(zhuǎn)置后輸出,下面3行不轉(zhuǎn)置存儲到上面鄰塊數(shù)據(jù)存儲模塊,在進(jìn)行宏塊內(nèi)部的左邊一個水平邊界濾波時,轉(zhuǎn)置模塊將來源于濾波模塊和暫存模塊的數(shù)據(jù)都進(jìn)行轉(zhuǎn)置,然后存儲到左鄰塊數(shù)據(jù)存儲模塊中。
7.根據(jù)權(quán)利要求1所述的基于AVS的去塊效應(yīng)濾波器VLSI實現(xiàn)裝置,其特征是所述的輸出模塊包括一個先進(jìn)先出數(shù)據(jù)緩存器,緩存器的數(shù)據(jù)來自轉(zhuǎn)置模塊,當(dāng)緩存器中有數(shù)據(jù)時,輸出模塊對外請求數(shù)據(jù)輸出,等到接收到輸出確認(rèn)信號時將數(shù)據(jù)輸出。
8.根據(jù)權(quán)利要求1所述的基于AVS的去塊效應(yīng)濾波器VLSI實現(xiàn)裝置,其特征是所述的濾波模塊、存儲模塊和輸出模塊在對于不同塊邊界進(jìn)行操作的時候,能在控制單元的作用下并行地執(zhí)行。
全文摘要
本發(fā)明涉及一種數(shù)字視頻編解碼領(lǐng)域的基于AVS的去塊效應(yīng)濾波器VLSI實現(xiàn)裝置,其中輸入暫存模塊將輸入端口的參數(shù)及待濾波數(shù)據(jù)進(jìn)行緩存;閾值計算模塊從輸入暫存模塊中讀出參數(shù)進(jìn)行濾波強度和邊界閾值的計算;濾波模塊根據(jù)閾值計算模塊輸入的每個塊邊界濾波強度及塊邊界閾值對輸入的象素數(shù)據(jù)進(jìn)行相應(yīng)的濾波;控制單元控制整個濾波過程中的數(shù)據(jù)選擇和數(shù)據(jù)流向;儲存模塊包括暫存模塊、轉(zhuǎn)置模塊、當(dāng)前宏塊存儲模塊、鄰塊數(shù)據(jù)存儲模塊;輸出暫存模塊中數(shù)據(jù)來源于轉(zhuǎn)置模塊,包括一個先進(jìn)先出數(shù)據(jù)緩存器。本發(fā)明采用流水線結(jié)構(gòu)進(jìn)行計算和濾波,減少了對數(shù)據(jù)存儲器的讀寫,提高了濾波處理的速度,保證濾波操作的實時性,控制了整個硬件結(jié)構(gòu)的復(fù)雜性。
文檔編號H04N7/26GK1874516SQ200610027979
公開日2006年12月6日 申請日期2006年6月22日 優(yōu)先權(quán)日2006年6月22日
發(fā)明者葉姜莉, 黃中華, 劉佩林 申請人:上海交通大學(xué)