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