專利名稱::一種適用于視頻解碼的環(huán)路濾波器的制作方法
技術(shù)領(lǐng)域:
:本實(shí)用新型涉及環(huán)路濾波領(lǐng)域,具體涉及一種適用于視頻解碼的環(huán)路濾波器°
背景技術(shù):
:目前主流的視頻解碼器的解碼過(guò)程(見(jiàn)圖1),具體為碼流進(jìn)入解碼器之后會(huì)進(jìn)行碼流分割,根據(jù)碼流的語(yǔ)法和語(yǔ)義分割出相關(guān)的信息,然后進(jìn)行熵解碼、反量化和反DCT變換,從而得出所需要的殘差矩陣,碼流分割出的其他碼流進(jìn)行幀內(nèi)預(yù)測(cè)或者幀間預(yù)測(cè),通過(guò)參考幀預(yù)測(cè)出預(yù)測(cè)矩陣,然后把預(yù)測(cè)矩陣和殘差矩陣相加,得到解碼的矩陣,經(jīng)過(guò)濾波之后得到最終的解碼宏塊和解碼幀。主流視頻標(biāo)準(zhǔn)當(dāng)中具有特征性的核心技術(shù)包括整數(shù)變換、量化、幀內(nèi)預(yù)測(cè)、1/4精度像素插值、特殊的幀間預(yù)測(cè)運(yùn)動(dòng)補(bǔ)償、二維熵編碼、去塊效應(yīng)環(huán)內(nèi)濾波等?;趬K的編碼有一個(gè)顯著的特點(diǎn)就是重建圖像存在塊效應(yīng)。采用環(huán)路濾波器去除塊效應(yīng),可以提高圖像的主觀質(zhì)量和壓縮效率。常規(guī)的環(huán)路濾波器的系統(tǒng)結(jié)構(gòu)(見(jiàn)圖2)共分為控制單元、相鄰塊參數(shù)存儲(chǔ)單元、Bs(邊界強(qiáng)度)及門(mén)限計(jì)算單元、數(shù)據(jù)濾波單元、8X8數(shù)據(jù)存儲(chǔ)單元、8X8塊數(shù)據(jù)轉(zhuǎn)置單元、當(dāng)前MB數(shù)據(jù)存儲(chǔ)單元、上鄰塊數(shù)據(jù)存儲(chǔ)單元與左鄰塊數(shù)據(jù)存儲(chǔ)單元、輸出緩存共十個(gè)模塊。結(jié)構(gòu)比較復(fù)雜,數(shù)據(jù)流向較多,不利于代碼的編寫(xiě)和維護(hù)。環(huán)路濾波器需要對(duì)水平和垂直兩個(gè)方向的數(shù)據(jù)進(jìn)行濾波。由于需水平處理的兩邊數(shù)據(jù)存儲(chǔ)于存儲(chǔ)單元的兩個(gè)地址中,而需垂直處理的數(shù)據(jù)存儲(chǔ)于不同的地址,為了能采用一維濾波器對(duì)上述兩種情況進(jìn)行濾波,設(shè)計(jì)行列轉(zhuǎn)換模塊將垂直數(shù)據(jù)轉(zhuǎn)換成水平數(shù)據(jù)。行列轉(zhuǎn)換模塊大小為8X16,一般的行列轉(zhuǎn)換模塊結(jié)構(gòu)(見(jiàn)圖3),當(dāng)水平數(shù)據(jù)到來(lái)時(shí),由inl輸入,經(jīng)行列轉(zhuǎn)換模塊緩沖,由outl輸出給一維濾波器進(jìn)行濾波。當(dāng)垂直數(shù)據(jù)到來(lái)時(shí),由in2輸入,經(jīng)行列轉(zhuǎn)換模塊進(jìn)行轉(zhuǎn)置,由out2輸出給一維濾波器進(jìn)行濾波。由于對(duì)每位數(shù)據(jù)處理的過(guò)程相同,即該模塊由8X16=128個(gè)相同的子模塊組成,行列轉(zhuǎn)換模塊的子模塊結(jié)構(gòu)(見(jiàn)圖4),其輸入數(shù)據(jù)端口為In—Left、InJJp,控制端口為Data—Dir、Dir,輸出數(shù)據(jù)端口為Data—Right、Data—Down。每個(gè)數(shù)據(jù)端口為八位,每個(gè)控制端口一位。Data—Dir表示輸入數(shù)據(jù)的來(lái)向,Data—Dir為低電平時(shí)表示輸入數(shù)據(jù)取左邊輸入數(shù)據(jù),為高電平時(shí)表示輸入數(shù)據(jù)取上邊輸入數(shù)據(jù)。Dir表示數(shù)據(jù)輸出方向,低電平表示數(shù)據(jù)從右輸出,高電平表示數(shù)據(jù)從下輸出。由此分析可得行列轉(zhuǎn)換模塊的結(jié)構(gòu)(見(jiàn)圖5)。該模塊需要128個(gè)8位可控寄存器單元,由于寄存器面積通常比較大,且輸入輸出都有信號(hào)控制,因此占用了極多的資源,也占用了環(huán)路濾波器面積大部分。根據(jù)濾波算法原理和視頻標(biāo)準(zhǔn)中的規(guī)定,一個(gè)宏塊包括1個(gè)亮度塊和2個(gè)色度塊(Cb色度塊和Cr色度塊),亮度塊包含了8個(gè)子模塊,Cb色度塊和Cr色度塊各包含了3個(gè)子模塊,即一個(gè)宏塊共包含了14個(gè)子模塊。在對(duì)宏塊進(jìn)行濾波的過(guò)程中,一個(gè)宏塊一共有12條邊界要進(jìn)行濾波處理(4:2:0格式)。其中有8條亮度塊邊界,2條Cb色度邊界,2條Cr色度邊界。對(duì)于色度分量,垂直和水平塊邊界各有1條,而垂直邊界上的濾波要先于水平邊界上的濾波,所以濾波順序是固定的;而對(duì)于亮度分量,垂直和水平塊邊界各有4條,可以選擇不同的處理順序。常規(guī)文獻(xiàn)中的處理流程如下宏塊子模塊之間邊界的基本的濾波順序(見(jiàn)圖6),按照標(biāo)注的數(shù)字位置從小到大順序進(jìn)行濾波;存儲(chǔ)模塊的存儲(chǔ)組織中(見(jiàn)圖7(a)和圖7(b)),亮度塊包含了8個(gè)子模塊,即Ll、L3、U2、U3、0、1、2、3共8個(gè)塊,Cb色度塊包含了U4、L4、4共3個(gè)子模塊,而Cr色度塊包含了U5、L5、5共3個(gè)子模塊(見(jiàn)圖7(a))。宏塊在存儲(chǔ)模塊中的排列結(jié)構(gòu)如圖7(b)所示。在完成"1"號(hào)邊界上(即Ll和0塊之間的邊界)的濾波后,第0塊的數(shù)據(jù)可能被更新了,按照基本的濾波順序,需要首先將其寫(xiě)回存儲(chǔ)模塊(片內(nèi)RAM)中,在進(jìn)行"3"號(hào)邊界上(即0和1塊之間邊界)的濾波時(shí),還要將第0塊數(shù)據(jù)從存儲(chǔ)模塊(片內(nèi)RAM)中再次取出。這樣數(shù)據(jù)的利用率不高,處理速度受到影響。由于不同的邊界強(qiáng)度(BS)值,數(shù)據(jù)處理的周期不同,當(dāng)BS^時(shí)不需要對(duì)數(shù)據(jù)進(jìn)行濾波處理,BS=2時(shí)數(shù)據(jù)處理僅需1個(gè)時(shí)鐘周期,而B(niǎo)S4時(shí)的數(shù)據(jù)濾波過(guò)程較為復(fù)雜,在保證比較高的系統(tǒng)工作頻率前提下,大約要八個(gè)周期左右,因此,若對(duì)BS^、BS二2的情況和BS4的情況采用相同的控制流程,就會(huì)增加了不必要的時(shí)鐘處理周期。
實(shí)用新型內(nèi)容本實(shí)用新型的目的在于克服上述現(xiàn)有技術(shù)的缺點(diǎn)和不足,提供一種適用于視頻解碼的環(huán)路濾波器。該濾波器結(jié)構(gòu)簡(jiǎn)單、設(shè)計(jì)合理、占用的資源和面積小、處理速度快、自適應(yīng)程度高,數(shù)據(jù)利用率得到明顯的提高。本實(shí)用新型的目的通過(guò)下述技術(shù)方案實(shí)現(xiàn)一種適用于視頻解碼的環(huán)路濾波器,包括行列轉(zhuǎn)換模塊、一維濾波器、參數(shù)計(jì)算模塊、存儲(chǔ)模塊(片內(nèi)RAM)、時(shí)序控制模塊,所述行列轉(zhuǎn)換模塊由8行16列共128個(gè)寄存器組成,其中部的6列為8位可控寄存器,左右各5列為8位純寄存器;所述存儲(chǔ)模塊和參數(shù)計(jì)算模塊分別通過(guò)系統(tǒng)總線與外部存儲(chǔ)器相連,一維濾波器通過(guò)行列轉(zhuǎn)換模塊與存儲(chǔ)模塊相連,一維濾波器還與參數(shù)計(jì)算模塊相連,時(shí)序控制模塊分別與行列轉(zhuǎn)換模塊、一維濾波器、參數(shù)計(jì)算模塊、存儲(chǔ)模塊和系統(tǒng)總線相連。為更好的實(shí)現(xiàn)本實(shí)用新型,所述時(shí)序控制模塊與Mealy狀態(tài)機(jī)信號(hào)連接,所述時(shí)序控制模塊采用實(shí)用性很強(qiáng)的Mealy狀態(tài)機(jī)進(jìn)行控制,可以穩(wěn)定控制各個(gè)狀態(tài)的輸出和控制,達(dá)到了對(duì)數(shù)據(jù)的合理處理和狀態(tài)的自適應(yīng)跳轉(zhuǎn)。所述一維濾波器是采用只對(duì)行列轉(zhuǎn)換模塊的中部6列像素值數(shù)據(jù)進(jìn)行濾波處理的一維濾波器。一維濾波器只對(duì)行列轉(zhuǎn)換模塊的中部6列像素值數(shù)據(jù)進(jìn)行濾波,而行列轉(zhuǎn)換模塊則對(duì)其左右各5列像素值的數(shù)據(jù)進(jìn)行復(fù)用,即行列轉(zhuǎn)換模塊用其左右各5列共80個(gè)8位純寄存器將數(shù)據(jù)存儲(chǔ),最后當(dāng)濾波的數(shù)據(jù)從一維濾波器輸出時(shí),復(fù)用數(shù)據(jù)則直接從行列轉(zhuǎn)換模塊中輸出。所述參數(shù)計(jì)算模塊包括邊界強(qiáng)度計(jì)算模塊和濾波模式計(jì)算模塊。本實(shí)用新型環(huán)路濾波器的作用原理是首先系統(tǒng)總線對(duì)環(huán)路濾波器發(fā)出En使能信號(hào),En為高電平表示濾波開(kāi)始,系統(tǒng)總線就將宏塊子模塊的各種參數(shù)如邊界閾值的偏移量、宏塊子模塊的量化步長(zhǎng)等輸出給時(shí)序控制模塊。然后參數(shù)計(jì)算模塊對(duì)參數(shù)進(jìn)行計(jì)算,得出邊界閾值A(chǔ)lpha、Beta和濾波裁剪參數(shù)C等值,并同時(shí)時(shí)序控制模塊從存儲(chǔ)模塊中讀出P宏塊子模塊的像素值P值和Q宏塊子模塊的像素值q值(P值表示P宏塊子模塊的8*8=64個(gè)像素值,q值表示q宏塊子模塊的8*8=64個(gè)像素值,p宏塊子模塊是指位于行列轉(zhuǎn)換模塊p7到p0端的宏塊子模塊,Q宏塊子模塊是指位于行列轉(zhuǎn)換模塊q0到q7端的宏塊子模塊),參數(shù)計(jì)算模塊中的邊界強(qiáng)度計(jì)算模塊結(jié)合參數(shù),算出宏塊子模塊間邊界的邊界強(qiáng)度值Bs。如果Bs為0,則時(shí)序控制模塊自動(dòng)轉(zhuǎn)入對(duì)下一宏塊子模塊進(jìn)行處理。若Bs不為0,則時(shí)序控制模塊將p和q值輸出給行列轉(zhuǎn)換模塊。此外,參數(shù)計(jì)算模塊使用ENTable信號(hào)進(jìn)行參數(shù)計(jì)算控制,在對(duì)亮度塊濾波時(shí)只需Alpha和Beta值,在對(duì)色度塊濾波時(shí)只需Beta和C值,使用ENTable信號(hào)即可根據(jù)輸入的宏塊子模塊類型選擇計(jì)算需要的兩個(gè)參數(shù),減少計(jì)算量,從而能夠有效的減少系統(tǒng)功耗。行列轉(zhuǎn)換模塊根據(jù)P和Q值對(duì)數(shù)據(jù)進(jìn)行緩沖和行列轉(zhuǎn)換。水平邊界濾波時(shí),數(shù)據(jù)從第一行緩沖到最后一行,一共需要8個(gè)時(shí)鐘周期;垂直邊界濾波時(shí),數(shù)據(jù)不需要從行列轉(zhuǎn)換模塊的最左端輸入,只需從P2的左端輸入,水平緩沖6個(gè)周期后再進(jìn)行垂直緩沖。P7到p3,q7到q3這幾列的像素值的數(shù)據(jù)是不需要經(jīng)過(guò)濾波的,所以在行列轉(zhuǎn)換模塊里只用將他們復(fù)用,即將它們存儲(chǔ)在80個(gè)8位的純寄存器中,不用傳輸?shù)揭痪S濾波器,行列轉(zhuǎn)換模塊只將p2,pl,p0,q2,ql,q0這中部6列可控寄存器組的數(shù)據(jù)送到一維濾波器中濾波,最后當(dāng)濾波數(shù)據(jù)從一維濾波器輸出時(shí),復(fù)用數(shù)據(jù)直接從行列轉(zhuǎn)換模塊中輸出。數(shù)據(jù)經(jīng)過(guò)行列轉(zhuǎn)換模塊處理后進(jìn)入一維濾波器,同時(shí)時(shí)序控制模塊將參數(shù)計(jì)算模塊計(jì)算出的配置參數(shù)(具體是指邊界強(qiáng)度值BS和濾波模式)輸入給一維濾波器。一維濾波器選擇合適的處理模式對(duì)數(shù)據(jù)進(jìn)行一維濾波處理。本一維濾波器采用了改進(jìn)的濾波順序,數(shù)據(jù)的利用率提高,如圖10所示,首先進(jìn)行水平邊界濾波,即對(duì)7號(hào),8號(hào),9號(hào),10號(hào),11號(hào),12號(hào)邊界依次進(jìn)行濾波,然后進(jìn)行垂直邊界濾波,即對(duì)1號(hào),2號(hào),3號(hào),4號(hào),5號(hào),6號(hào)邊界依次進(jìn)行濾波。根據(jù)圖7(b)存儲(chǔ)模塊的存儲(chǔ)組織結(jié)構(gòu),以亮度塊為例進(jìn)行說(shuō)明,例如在完成Ll塊和0塊的1號(hào)垂直邊界濾波后,首先只需要將更新后第0塊數(shù)據(jù)保存在可配置行列轉(zhuǎn)換陣列中,無(wú)需先寫(xiě)入存儲(chǔ)模塊中,在完成第0塊和第1塊之間的"2"號(hào)垂直邊界濾波后,再將被第二次更新過(guò)的第0塊數(shù)據(jù)寫(xiě)進(jìn)存儲(chǔ)模塊中。按照改進(jìn)的順序處理3號(hào)和4號(hào)邊界時(shí),也按照同樣方式組織數(shù)據(jù)流。處理結(jié)束后,若是水平邊界濾波,直接將濾波處理后的數(shù)據(jù)寫(xiě)回存儲(chǔ)模塊中,若是垂直邊界濾波,把濾波處理后的數(shù)據(jù)輸入給行列轉(zhuǎn)換模塊進(jìn)行列轉(zhuǎn)換后再寫(xiě)回存儲(chǔ)模塊中。每一宏塊總共需要對(duì)6個(gè)水平邊界濾波和6個(gè)垂直邊界濾波過(guò)程進(jìn)行時(shí)序控制處理,處理完后一個(gè)宏塊的處理流程到此結(jié)束。由于系統(tǒng)總線將預(yù)處理的數(shù)據(jù)預(yù)先存入存儲(chǔ)模塊中,因此一維濾波器無(wú)需考慮數(shù)據(jù)在每幀圖像中的位置,同時(shí)也無(wú)需存儲(chǔ)當(dāng)前宏塊中的子模塊數(shù)據(jù)和左鄰塊或上鄰塊的數(shù)據(jù),位置信號(hào)由時(shí)序控制模塊統(tǒng)一發(fā)出的地址信號(hào)決定。本實(shí)用新型與現(xiàn)有技術(shù)相比,具有如下的優(yōu)點(diǎn)和有益效果(1)結(jié)構(gòu)簡(jiǎn)單,設(shè)計(jì)合理;本實(shí)用新型由系統(tǒng)總線將預(yù)處理的數(shù)據(jù)預(yù)先存入存儲(chǔ)模塊中,一維濾波器無(wú)需考慮數(shù)據(jù)在每幀圖像中的位置,同時(shí)也無(wú)需存儲(chǔ)當(dāng)前宏塊中的子模塊數(shù)據(jù)和左鄰塊或上鄰塊的數(shù)據(jù),位置信號(hào)由時(shí)序控制模塊統(tǒng)一發(fā)出的地址信號(hào)決定。這樣節(jié)約了部分存儲(chǔ)單元,占用的資源和面積更小,處理速度加快。(2)自適應(yīng)程度更高;濾波周期實(shí)現(xiàn)自適應(yīng),由狀態(tài)機(jī)控制,即系統(tǒng)根據(jù)宏塊子模塊邊界的邊界強(qiáng)度值Bs,分情況對(duì)數(shù)據(jù)做不同的處理,如果Bs為0,則系統(tǒng)自動(dòng)轉(zhuǎn)入對(duì)下一宏塊子模塊處理;若Bs不為0,則系統(tǒng)將p宏塊子模塊P值和q宏塊子模塊的像素值q值輸出給行列轉(zhuǎn)換模塊,行列轉(zhuǎn)換模塊根據(jù)P和q值對(duì)數(shù)據(jù)進(jìn)行緩沖和轉(zhuǎn)換。一維濾波器根據(jù)邊界強(qiáng)度值Bs的不同,對(duì)數(shù)據(jù)的濾波周期也不同,可有效的減少不必要的時(shí)鐘處理周期。(3)體積大大減小,處理速度快;行列轉(zhuǎn)換模塊由8行16列共128個(gè)寄存器組成,其中部的6列為8位可控寄存器,左右各5列為8位純寄存器。與原結(jié)構(gòu)的128個(gè)8位可控寄存器相比,此結(jié)構(gòu)將80個(gè)8位可控寄存器改進(jìn)為80個(gè)8位純寄存器,由于沒(méi)有了輸入輸出控制信號(hào),因此極大的減少了資源利用,有效地減少了功耗,行列轉(zhuǎn)換模塊的面積減少了近一半。分析本行列轉(zhuǎn)換模塊的時(shí)序,水平邊界濾波時(shí)與原模塊一樣,從第一行緩沖到最后一行,一共需要8個(gè)時(shí)鐘周期;垂直邊界濾波時(shí),行列轉(zhuǎn)換模塊將垂直數(shù)據(jù)轉(zhuǎn)換成水平數(shù)據(jù),并將水平數(shù)據(jù)輸出給一維濾波器進(jìn)行濾波。對(duì)于原設(shè)計(jì)模塊,數(shù)據(jù)從存儲(chǔ)模塊中讀出并從行列轉(zhuǎn)換模塊的左輸入端進(jìn)入,經(jīng)過(guò)11個(gè)周期水平緩沖后,6組數(shù)據(jù)到達(dá)p2q2行列轉(zhuǎn)換可控寄存器組的左端,再進(jìn)行垂直緩沖將8組數(shù)據(jù)(原為6組數(shù)據(jù),每組8個(gè),轉(zhuǎn)置后為8組數(shù)據(jù),每組6個(gè))輸出給一維濾波器進(jìn)行濾波。在本改進(jìn)模塊中,數(shù)據(jù)不需要從最左端輸入,只需從P2的左端輸入即可,水平緩沖6個(gè)周期后即可再進(jìn)行垂直緩沖,相比較而言,本實(shí)用新型對(duì)垂直邊界濾波行列轉(zhuǎn)換時(shí)節(jié)約了5個(gè)時(shí)鐘周期,在數(shù)據(jù)濾波完繼續(xù)在行列轉(zhuǎn)換模塊中進(jìn)行相同的操作后將數(shù)據(jù)輸出給存儲(chǔ)模塊,此過(guò)程同樣可節(jié)約5個(gè)時(shí)鐘周期。因此,一次完整的垂直邊界濾波可節(jié)約10個(gè)時(shí)鐘周期,整個(gè)宏塊的環(huán)路濾波有6次垂直邊界濾波,總共可以節(jié)約60個(gè)時(shí)鐘周期。圖1是主流視頻標(biāo)準(zhǔn)解碼流程示意圖2是常規(guī)的環(huán)路濾波器結(jié)構(gòu)圖3是行列轉(zhuǎn)換模塊示意圖4是行列轉(zhuǎn)換子模塊的結(jié)構(gòu)圖5是一般的8*16行列轉(zhuǎn)換模塊結(jié)構(gòu)圖6是常規(guī)的濾波順序圖;圖7(a)是宏塊的結(jié)構(gòu)圖7(b)是宏塊在存儲(chǔ)模塊中的排列結(jié)構(gòu)示意圖8是本實(shí)用新型環(huán)路濾波器結(jié)構(gòu)圖9是本實(shí)用新型的8*16行列轉(zhuǎn)換模塊結(jié)構(gòu)圖IO是本實(shí)用新型的濾波順序圖11是本實(shí)用新型的參數(shù)計(jì)算模塊的工作流程圖12是本實(shí)用新型的邊界強(qiáng)度計(jì)算模塊工作流程圖13是本實(shí)用新型的一維濾波器示意圖14是本實(shí)用新型的時(shí)序控制模塊中Mealy狀態(tài)機(jī)工作原理圖;圖15是本實(shí)用新型環(huán)路濾波器的狀態(tài)跳轉(zhuǎn)圖16是本實(shí)用新型環(huán)路濾波器用于垂直邊界濾波,Bs^條件下的仿真結(jié)果圖。具體實(shí)施方式下面結(jié)合實(shí)施例及附圖,對(duì)本實(shí)用新型作進(jìn)一步地詳細(xì)說(shuō)明,但本實(shí)用新型的實(shí)施方式不限于此。實(shí)施例本實(shí)用新型一種適用于視頻解碼的環(huán)路濾波器,其結(jié)構(gòu)如圖8所示,包括行列轉(zhuǎn)換模塊、一維濾波器、時(shí)序控制模塊、參數(shù)計(jì)算模塊和存儲(chǔ)模塊(片內(nèi)RAM),所述存儲(chǔ)模塊和參數(shù)計(jì)算模塊分別通過(guò)系統(tǒng)總線與外部存儲(chǔ)器相連,一維濾波器通過(guò)行列轉(zhuǎn)換模塊與存儲(chǔ)模塊相連,一維濾波器還與參數(shù)計(jì)算模塊相連,時(shí)序控制模塊分別與行列轉(zhuǎn)換模塊、一維濾波器、參數(shù)計(jì)算模塊、存儲(chǔ)模塊和系統(tǒng)總線相連。所述一維濾波器是采用只對(duì)行列轉(zhuǎn)換模塊的中部6列像素值數(shù)據(jù)進(jìn)行濾波處理的一維濾波器。所述參數(shù)計(jì)算模塊包括邊界強(qiáng)度計(jì)算模塊和濾波模式計(jì)算模塊。所述時(shí)序控制模塊與Mealy狀態(tài)機(jī)信號(hào)連接,采用實(shí)用性很強(qiáng)的Mealy狀態(tài)機(jī)進(jìn)行控制,見(jiàn)圖14,可以穩(wěn)定控制各個(gè)狀態(tài)的輸出和控制,達(dá)到了對(duì)數(shù)據(jù)的合理處理和狀態(tài)的自適應(yīng)跳轉(zhuǎn)。系統(tǒng)總線對(duì)環(huán)路濾波器發(fā)出En使能信號(hào),高電平表示濾波開(kāi)始,系統(tǒng)總線將宏塊子模塊的各種參數(shù)如邊界閾值的偏移量、宏塊子模塊的量化步長(zhǎng)等輸出給時(shí)序控制模塊。參數(shù)計(jì)算模塊對(duì)參數(shù)進(jìn)行計(jì)算,得出邊界閾值(Alpha、Beta)和濾波裁剪參數(shù)(C)等值,并同時(shí)時(shí)序控制模塊從存儲(chǔ)模塊中讀出P宏塊子模塊的像素值P值和q宏塊子模塊的像素值Q值,參數(shù)計(jì)算模塊中的邊界強(qiáng)度計(jì)算模塊結(jié)合參數(shù),算出宏塊子模塊間邊界的邊界強(qiáng)度值Bs。如果Bs為0,則時(shí)序控制模塊自動(dòng)轉(zhuǎn)入對(duì)下一宏塊子模塊處理。若Bs不為0,則時(shí)序控制模塊將p和q值輸出給行列轉(zhuǎn)換模塊。參數(shù)計(jì)算模塊的工作流程,如圖11所示,本參數(shù)計(jì)算模塊分為三步計(jì)算,第一步計(jì)算兩個(gè)塊的量化參數(shù)QP的平均值24,第二步由量化參數(shù)平均值24計(jì)算索引IndexA與IndexB,第三步通過(guò)查索引表計(jì)算出Alpha、Beta和C值。即處理一次需3個(gè)時(shí)間周期。圖中EnTable為使能信號(hào),dwMbQp和dwMbQq為p和q宏塊子模塊的量化參數(shù),iAlpha和iBetaOffset為系統(tǒng)預(yù)定的偏移量。其中tablel、table2和table3為査表結(jié)構(gòu),即Rom工作模式。此外,本模塊使用ENTable信號(hào)進(jìn)行參數(shù)計(jì)算控制,在對(duì)亮度塊濾波時(shí)只需Alpha和Beta值,在對(duì)色度塊濾波時(shí)只需Beta和C值,使用ENTable信號(hào)即可根據(jù)輸入的宏塊子模塊類型選擇計(jì)算需要的兩個(gè)參數(shù),減少計(jì)算量,從而能夠有效的減少系統(tǒng)功耗。參數(shù)計(jì)算模塊中的邊界強(qiáng)度計(jì)算模塊的工作流程,如圖12所示,其中pMbPdwMbType代表P塊的類型,0表示采用幀內(nèi)預(yù)測(cè)模式,其它值參考標(biāo)準(zhǔn)說(shuō)明;pMbQdwMbType代表Q塊的類型,0表示采用幀內(nèi)預(yù)測(cè)模式,其它值參考標(biāo)準(zhǔn)說(shuō)明;ilmgType代表宏塊子模塊的類型,1表示為P幀內(nèi)的宏塊子模塊,其它值參考標(biāo)準(zhǔn)說(shuō)明;dwRefldxP代表P塊的參考圖像索引值;dwRefIdxQ代表Q塊的參考圖像索引值;pMvPx代表P幀和B幀中P塊的前向水平運(yùn)行矢量值;pMvQx代表P幀和B幀中Q塊的前向水平運(yùn)動(dòng)矢量值;pMvPy代表P幀和B幀中P塊的前向垂直運(yùn)動(dòng)矢量值;pMvQy代表P幀和B幀中Q塊的前向垂直運(yùn)動(dòng)矢量值;pMvBwPx代表B幀中P塊的后向水平運(yùn)行矢量值;pMvBwQx代表B幀中Q塊的后向水平運(yùn)行矢量值;pMvBwPy代表B幀中P塊的后向垂直運(yùn)行矢量值;pMvBwQy代表B幀中Q塊的后向垂直運(yùn)行矢量值;Bs代表濾波后的系數(shù)。程序首先根據(jù)pMbPdwMbType、pMbQdwMbType和ilmgType來(lái)判斷處理宏塊子模塊的類型,分l、2、3三種情況,即幀內(nèi)預(yù)測(cè)還是幀間預(yù)測(cè),P幀的幀間預(yù)測(cè)還是B幀預(yù)測(cè)來(lái)決定處理方式,每種情況再依據(jù)圖像索引值和兩個(gè)宏塊子模塊的運(yùn)動(dòng)矢量差值來(lái)計(jì)算邊界強(qiáng)度Bs。行列轉(zhuǎn)換模塊根據(jù)P和q值對(duì)數(shù)據(jù)進(jìn)行緩沖和行列轉(zhuǎn)換。行列轉(zhuǎn)換模塊結(jié)構(gòu)(見(jiàn)圖9)分為三大部分,8行16列共128個(gè)寄存器,p7p3的5列為純寄存器緩沖組,P2q2的6列為行列轉(zhuǎn)換可控寄存器組,q3q7的5列為純寄存器緩沖組。與原結(jié)構(gòu)的128個(gè)8位可控寄存器相比,此結(jié)構(gòu)將80個(gè)8位可控寄存器改進(jìn)為80個(gè)8位純寄存器,由于沒(méi)有了輸入輸出控制信號(hào),因此極大的減少了資源利用。分析本行列轉(zhuǎn)換模塊的時(shí)序,水平邊界濾波時(shí)與原模塊一樣,從第一行緩沖到最后一行,一共需要8個(gè)時(shí)鐘周期;垂直邊界濾波時(shí),行列轉(zhuǎn)換模塊將垂直數(shù)據(jù)轉(zhuǎn)換成水平數(shù)據(jù),并將水平數(shù)據(jù)輸出給一維濾波器進(jìn)行濾波。對(duì)于原設(shè)計(jì)模塊,數(shù)據(jù)從存儲(chǔ)模塊中讀出并從行列轉(zhuǎn)換模塊的左輸入端進(jìn)入,經(jīng)過(guò)11個(gè)周期水平緩沖后,6組數(shù)據(jù)到達(dá)p2q2行列轉(zhuǎn)換可控寄存器組的左端,再進(jìn)行垂直緩沖將8組數(shù)據(jù)(原為6組數(shù)據(jù),每組8個(gè),轉(zhuǎn)置后為8組數(shù)據(jù),每組6個(gè))輸出給一維濾波器進(jìn)行濾波。在本改進(jìn)模塊中,數(shù)據(jù)不需要從最左端輸入,只需從P2的左端輸入即可,水平緩沖6個(gè)周期后即可再進(jìn)行垂直緩沖,相比較而言,本實(shí)用新型對(duì)垂直邊界濾波行列轉(zhuǎn)換時(shí)節(jié)約了5個(gè)時(shí)鐘周期,在數(shù)據(jù)濾波完繼續(xù)在行列轉(zhuǎn)換矩陣中進(jìn)行相同的操作將數(shù)據(jù)輸出給存儲(chǔ)模塊,此過(guò)程同樣可節(jié)約5個(gè)時(shí)鐘周期。因此,一次完整的垂直邊界濾波可節(jié)約IO個(gè)時(shí)鐘周期,整個(gè)宏塊的環(huán)路濾波有6次垂直邊界濾波,總共可以節(jié)約60個(gè)時(shí)鐘周期。本行列轉(zhuǎn)換模塊左右兩邊各5列的純寄存器緩沖組還可以在行列轉(zhuǎn)換模塊中進(jìn)行復(fù)用。P7到p3,q7到q3這幾個(gè)像素值的數(shù)據(jù)是不需要經(jīng)過(guò)濾波的,所以在行列轉(zhuǎn)換模塊里只用將他們復(fù)用,即將它們存儲(chǔ)在80個(gè)8位的純寄存器中,不用傳輸?shù)揭痪S濾波器,行列轉(zhuǎn)換模塊只將p2,pl,p0,q2,ql,q0這中部6列可控寄存器組的數(shù)據(jù)送到一維濾波器中濾波,最后當(dāng)濾波數(shù)據(jù)從一維濾波器輸出時(shí),復(fù)用數(shù)據(jù)直接從行列轉(zhuǎn)換模塊中輸出。對(duì)改進(jìn)前的行列轉(zhuǎn)換模塊和改進(jìn)后的行列轉(zhuǎn)換模塊進(jìn)行對(duì)比(見(jiàn)表l)-<table>tableseeoriginaldocumentpage10</column></row><table>本實(shí)用新型的行列轉(zhuǎn)換模塊在不改變功能的前提下,改進(jìn)結(jié)構(gòu)節(jié)約資源,減少了近一半的面積,同時(shí)也極大的減少時(shí)鐘周期和降低了模塊功耗。數(shù)據(jù)經(jīng)過(guò)行列轉(zhuǎn)換模塊后進(jìn)入一維濾波器,同時(shí)時(shí)序控制模塊將計(jì)算出的配置參數(shù)(具體是指邊界強(qiáng)度值BS和濾波模式)輸入給一維濾波器。一維濾波器選擇合適的處理模式對(duì)數(shù)據(jù)進(jìn)行一維濾波處理。處理結(jié)束后,若是水平邊界的濾波,直接將數(shù)據(jù)寫(xiě)回存儲(chǔ)模塊中,若是垂直邊界的濾波,對(duì)數(shù)據(jù)輸入給行列轉(zhuǎn)換模塊進(jìn)行列轉(zhuǎn)換后再寫(xiě)回存儲(chǔ)模塊中。每一宏塊總共需要對(duì)6個(gè)水平邊界濾波和6個(gè)垂直邊界濾波過(guò)程進(jìn)行時(shí)序控制處理,處理完后一個(gè)宏塊的處理流程到此結(jié)束。由于系統(tǒng)總線將預(yù)處理的數(shù)據(jù)預(yù)先存入存儲(chǔ)模塊中,因此一維濾波器無(wú)需考慮數(shù)據(jù)在每幀圖像中的位置,同時(shí)也無(wú)需存儲(chǔ)當(dāng)前宏塊子模塊的數(shù)據(jù)和左鄰塊或上鄰塊的數(shù)據(jù),位置信號(hào)由時(shí)序控制模塊統(tǒng)一發(fā)出的地址信號(hào)決定。圖13為一維濾波器,luma—chroma信號(hào)表示處理的數(shù)據(jù)是亮度塊還是色度塊,輸入的濾波數(shù)據(jù)由P端和q端輸入,濾波后的數(shù)據(jù)由P和Q端輸出,EN為使能信號(hào),mode參數(shù)控制其濾波方式,如Bs^l時(shí)mode[l]=0表示對(duì)pl進(jìn)行處理,否則緩沖得,p2和p0值保持;mode[0]^表示對(duì)ql進(jìn)行處理,否則緩沖得,p2和p0值保持。在濾波處理時(shí),一維濾波器僅針對(duì)行列轉(zhuǎn)換模塊輸出的p2、pl、p0、q0、ql和q2六個(gè)數(shù)據(jù)進(jìn)行濾波,同時(shí),行列轉(zhuǎn)換模塊則對(duì)p7p3與q3q7各5列共80個(gè)數(shù)據(jù)緩沖,水平邊界濾波時(shí),由于行列轉(zhuǎn)換模塊緩沖后的數(shù)據(jù)再與一維濾波器中濾波處理完的數(shù)據(jù)同時(shí)輸出,因此,行列轉(zhuǎn)換模塊需要80個(gè)8位寄存器將p7p3與q3q7的這80個(gè)數(shù)據(jù)先緩存。如果是Bs=2,則對(duì)p7p3與q3q7的數(shù)據(jù)緩沖一次,從第一行下端將數(shù)據(jù)輸出,與濾波后的數(shù)據(jù)一起輸出給存儲(chǔ)模塊;如果Bs=l,則緩沖八次,從最底行下端將數(shù)據(jù)輸出,與濾波處理后的數(shù)據(jù)一起輸出給存儲(chǔ)模塊。垂直邊界濾波時(shí),濾波處理后的數(shù)據(jù)輸入行列轉(zhuǎn)換模塊進(jìn)行行列轉(zhuǎn)換后,與行列轉(zhuǎn)換模塊中的復(fù)用數(shù)據(jù)一起輸出給存儲(chǔ)模塊。本實(shí)用新型所設(shè)計(jì)的環(huán)路濾波的狀態(tài)跳轉(zhuǎn)圖,如圖15所示,先完成前六次的水平邊界濾波,H1H6表示水平邊界濾波的處理過(guò)程(即對(duì)7,8,9,10,11,12號(hào)邊界處理),前六次處理完再進(jìn)行垂直邊界濾波,V1V8表示垂直邊界濾波的處理過(guò)程(即對(duì)l,2,3,4,5,6號(hào)邊界處理)。BS=0的話,跳過(guò),BS二1或者BS=2的話就選其它分支處理,符號(hào)意義見(jiàn)表2:表2:<table>tableseeoriginaldocumentpage12</column></row><table>Hl符號(hào)表示環(huán)路濾波器首先進(jìn)行初始化,然后接收總線發(fā)來(lái)的En使能信號(hào),判斷為高電平后濾波開(kāi)始??偩€將宏塊子模塊的各種參數(shù)如Alpha和Beta的偏移量、宏塊子模塊的量化步長(zhǎng)等輸出給本模塊系統(tǒng)。參數(shù)計(jì)算模塊對(duì)參數(shù)進(jìn)行計(jì)算,得出Alpha、Beta和C等值,并同時(shí)系統(tǒng)從片內(nèi)存儲(chǔ)模塊中讀出p宏塊子模塊的像素值P值和q宏塊子模塊的像素值q值,參數(shù)計(jì)算模塊中的邊界強(qiáng)度計(jì)算模塊結(jié)合參數(shù),可以算出宏塊子模塊間邊界的邊界強(qiáng)度值Bs。H2符號(hào)表示Bs為O,則系統(tǒng)自動(dòng)轉(zhuǎn)入對(duì)下一宏塊子模塊處理。H3符號(hào)表示Bs不為0,則系統(tǒng)將P和q值輸出給行列轉(zhuǎn)換模塊,行列轉(zhuǎn)換模塊對(duì)水平數(shù)據(jù)進(jìn)行緩沖。數(shù)據(jù)經(jīng)過(guò)行列轉(zhuǎn)換模塊后進(jìn)入一維濾波器,H4符號(hào)表示當(dāng)Bs=2時(shí),需要1周期時(shí)間對(duì)數(shù)據(jù)進(jìn)行濾波,H5符號(hào)表示當(dāng)Bs=l時(shí)需要8周期對(duì)數(shù)據(jù)進(jìn)行濾波。濾波結(jié)束后,H6符號(hào)表示直接將數(shù)據(jù)寫(xiě)回存儲(chǔ)模塊中。V1和V2符號(hào)的意義和H1,H2的一樣,V3符號(hào)表示Bs不為0,則系統(tǒng)將p和q值輸出給行列轉(zhuǎn)換模塊,行列轉(zhuǎn)換模塊對(duì)垂直方向的數(shù)據(jù)進(jìn)行行列轉(zhuǎn)換,之后進(jìn)入一維濾波器,V4符號(hào)表示當(dāng)Bs=2時(shí),需要1周期時(shí)間對(duì)數(shù)據(jù)進(jìn)行濾波,V5符號(hào)表示當(dāng)Bs=l時(shí)需要8周期對(duì)數(shù)據(jù)進(jìn)行濾波。V6符號(hào)表示濾波結(jié)束后又將濾波后的數(shù)據(jù)輸入給行列轉(zhuǎn)換模塊,V7符號(hào)表示進(jìn)行行列轉(zhuǎn)換后再將數(shù)據(jù)寫(xiě)回到存儲(chǔ)模塊中。V8符號(hào)表示一宏塊的濾波結(jié)束。圖16為本設(shè)計(jì)的仿真結(jié)果(以垂直邊界濾波,B^2為例),根據(jù)本設(shè)計(jì)內(nèi)容可知,p2q2為經(jīng)行列轉(zhuǎn)移緩沖輸出給濾波器的數(shù)據(jù),P2Q2為濾波后的數(shù)據(jù),Bs二2表示此兩個(gè)宏塊子模塊間的邊界強(qiáng)度為2,Mode表示了濾波模式選擇。因?yàn)闉V波只涉及左右(上下)各三個(gè)數(shù)據(jù),如圖16所示,仿真結(jié)果只顯示處理的數(shù)據(jù)。與官方標(biāo)準(zhǔn)的C代碼程序結(jié)果對(duì)比驗(yàn)證,本設(shè)計(jì)結(jié)果正確。上述實(shí)施例為本實(shí)用新型較佳的實(shí)施方式,但本實(shí)用新型的實(shí)施方式并不受所述實(shí)施例的限制,其他的任何未背離本實(shí)用新型的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡(jiǎn)化,均應(yīng)為等效的置換方式,都包含在本實(shí)用新型的保護(hù)范圍之內(nèi)。權(quán)利要求1、一種適用于視頻解碼的環(huán)路濾波器,其特征在于包括行列轉(zhuǎn)換模塊、一維濾波器、參數(shù)計(jì)算模塊、存儲(chǔ)模塊、時(shí)序控制模塊,所述行列轉(zhuǎn)換模塊由8行16列共128個(gè)寄存器組成,其中部的6列為8位可控寄存器,左右各5列為8位純寄存器;所述存儲(chǔ)模塊和參數(shù)計(jì)算模塊分別通過(guò)系統(tǒng)總線與外部存儲(chǔ)器相連,一維濾波器通過(guò)行列轉(zhuǎn)換模塊與存儲(chǔ)模塊相連,一維濾波器還與參數(shù)計(jì)算模塊相連,時(shí)序控制模塊分別與行列轉(zhuǎn)換模塊、一維濾波器、參數(shù)計(jì)算模塊、存儲(chǔ)模塊和系統(tǒng)總線相連。2、根據(jù)權(quán)利要求1所述的一種適用于視頻解碼的環(huán)路濾波器,其特征在于所述時(shí)序控制模塊與Mealy狀態(tài)機(jī)信號(hào)連接。3、根據(jù)權(quán)利要求1所述的一種適用于視頻解碼的環(huán)路濾波器,其特征在于所述一維濾波器是采用只對(duì)行列轉(zhuǎn)換模塊的中部6列像素值數(shù)據(jù)進(jìn)行濾波處理的一維濾波器。4、根據(jù)權(quán)利要求1所述的一種適用于視頻解碼的環(huán)路濾波器,其特征在于所述參數(shù)計(jì)算模塊包括邊界強(qiáng)度計(jì)算模塊和濾波模式計(jì)算模塊。專利摘要本實(shí)用新型公開(kāi)了一種適用于視頻解碼的環(huán)路濾波器,行列轉(zhuǎn)換模塊由8行16列共128個(gè)寄存器組成,其中部的6列為8位可控寄存器,左右各5列為8位純寄存器;所述存儲(chǔ)模塊和參數(shù)計(jì)算模塊分別通過(guò)系統(tǒng)總線與外部存儲(chǔ)器相連,一維濾波器通過(guò)行列轉(zhuǎn)換模塊與存儲(chǔ)模塊相連,一維濾波器還與參數(shù)計(jì)算模塊相連,時(shí)序控制模塊分別與行列轉(zhuǎn)換模塊、一維濾波器、參數(shù)計(jì)算模塊、存儲(chǔ)模塊和系統(tǒng)總線相連。該濾波器結(jié)構(gòu)簡(jiǎn)單、設(shè)計(jì)合理、占用的資源和面積小、處理速度快、自適應(yīng)程度高,數(shù)據(jù)利用率得到明顯的提高。文檔編號(hào)H04N7/26GK201345710SQ200820206678公開(kāi)日2009年11月11日申請(qǐng)日期2008年12月31日優(yōu)先權(quán)日2008年12月31日發(fā)明者超張,易清明,敏石申請(qǐng)人:暨南大學(xué)