專利名稱::提升小波變換的vlsi結(jié)構(gòu)設(shè)計(jì)方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于超大規(guī)模集成電路VLSI設(shè)計(jì)
技術(shù)領(lǐng)域:
,具體涉及一種實(shí)現(xiàn)提升小波變換結(jié)構(gòu)的設(shè)計(jì)方法。
背景技術(shù):
:離散小波變換由于具有良好的時(shí)頻局部特性,已經(jīng)廣泛應(yīng)用于信號處理、圖像壓縮、視頻處理等領(lǐng)域,并且被JPEG2000圖像壓縮標(biāo)準(zhǔn)采納。因此設(shè)計(jì)離散小波變換的VLSI結(jié)構(gòu)具有重要的意義。目前已有的實(shí)現(xiàn)離散小波變換的VLSI結(jié)構(gòu)可以歸納為基于巻積運(yùn)算的結(jié)構(gòu)和基于提升算法的結(jié)構(gòu)。與基于巻積運(yùn)算的結(jié)構(gòu)相比,基于提升算法的結(jié)構(gòu)在計(jì)算復(fù)雜度和所需的存儲(chǔ)器資源等方面具有明顯的優(yōu)勢,目前已成為研究的熱點(diǎn)。丄M.Jou等人在文章"EfficientVLSIarchitecturesforthebiorthogonalwavelettransformbyfilterbankandliftingscheme,"/Voc./"f.5">>m.Cz>cw//5SyW"2001,pp.529-532.中提出了一種實(shí)現(xiàn)提升小波的直接結(jié)構(gòu)。這種結(jié)構(gòu)設(shè)計(jì)簡單、易于硬件實(shí)現(xiàn),但是該結(jié)構(gòu)的缺點(diǎn)在于長流水線占用大量的硬件資源,并且該結(jié)構(gòu)是9/7小波的直接映射,對應(yīng)兩級提升操作。對于5/3小波,由于其只有一級提升,因而此時(shí)硬件利用率只有50%。為了降低硬件資源開銷、提高硬件利用率,C.J.Lian等在上述直接結(jié)構(gòu)的基礎(chǔ)上于2001年在文章"LiftingbaseddiscretewavelettransformarchitectureforJPEG2000,"iniVoc./"AS>tw.C7rcw"51,Sydney,Australia,2001,pp.445-448.中提出了一種Folded結(jié)構(gòu)。該結(jié)構(gòu)基于5/3小波的一級提升操作,對于9/7小波的兩級提升操作,它將第一級運(yùn)算結(jié)果返回到輸入端進(jìn)而進(jìn)行第二次提升操作。該結(jié)構(gòu)在很大程度上降低了硬件資源的消耗,使得其所需的算術(shù)資源僅為直接結(jié)構(gòu)的一半。但是該結(jié)構(gòu)的缺點(diǎn)在于它的最高工作頻率相對于直接結(jié)構(gòu)又有了一定的降低,而且所需的存儲(chǔ)器數(shù)目仍然比較多。鑒于以上結(jié)構(gòu)存在的缺點(diǎn),C.T.Huang等于2004年在文章"Flippingstructure:anefficientVLSIarchitectureforliftingbaseddiscretewavelettransform,"7>am;尸roce饑,vol.52,no.4,pp.1080-1089,Apr.2004.中提出了一種在不增加硬件資源的情況下提高工作頻率的改進(jìn)提升算法。該算法的主要思想是把乘法操作從輸入節(jié)點(diǎn)轉(zhuǎn)移到運(yùn)算節(jié)點(diǎn)上,使得累加路徑上消除了乘法操作,從而縮短關(guān)鍵路徑的延時(shí)提高系統(tǒng)工作頻率。在此算法的基礎(chǔ)上,作者提出了一種實(shí)現(xiàn)提升小波的Flipping結(jié)構(gòu)。之后B.F.Wu等人于2005年在文章"Ahigh-performanceandmemory-efficientpipelinearchitecturesforthe5/3and9/7discretewavelettransformofJPEG2000codec,"C7腳toS,.Wfifeorec/zwo/.,vol.15,no.12,pp.1615-1628,Dec.2005.中也提出了一種改進(jìn)的提升算法。該算法的主要思想是把提升過程中的預(yù)測和更新合并成一個(gè)步驟,從而提高系統(tǒng)工作頻率和降低硬件資源消耗。但是上述兩種基于改進(jìn)算法的結(jié)構(gòu)都存在實(shí)現(xiàn)復(fù)雜度高和必須考慮舍入誤差的問題,實(shí)際應(yīng)用有一定的難度。
發(fā)明內(nèi)容本發(fā)明的目的在于克服上述
背景技術(shù):
中存在的缺陷和不足,提供一種工作頻率高、硬件資源消耗少、硬件利用率高以及結(jié)構(gòu)簡單、易于實(shí)現(xiàn)和擴(kuò)展的提升小波變換VLSI結(jié)構(gòu)設(shè)計(jì)方法。實(shí)現(xiàn)本發(fā)明目的的技術(shù)方案,包括如下步驟(1)改變提升小波算法的運(yùn)算順序,使得一些中間值的計(jì)算處于不同的路徑;(2)通過延遲寄存器,對處于不同路徑上的中間值進(jìn)行并行運(yùn)算;(3)選擇不同路徑中最長的路徑作為關(guān)鍵路徑,并在該關(guān)鍵路徑上添加流水線寄存器;(4)對于兩級提升小波的流水線結(jié)構(gòu),在系統(tǒng)和第一級乘法器的輸入端添加選擇器,將經(jīng)過第一級提升小波的中間值返回到輸入端,通過選擇器交替選擇不同提升級的中間值,將結(jié)果存儲(chǔ)在添加的寄存器中。所述改進(jìn)的提升小波算法是按照以下方式進(jìn)行的第一級提升小波算法改為《=《+axO'o+4)《=(《+ax《)+"x4,s)=《+/x(《+《)^s)=W+y5《)+~)第二級提升小波算法改為-《=《+yx(>)+>s)+1)=>《=(《十;tx一)+;kx4,51,2=■)+5x(《+《2)=>《2=(_$■)+^x《)+5x《2.其中常數(shù)"為第一級提升小波的預(yù)測因子,"為第一級提升小波的更新因子,Z為第二級提升小波的預(yù)測因子,^為第二級提升小波的更新因子,《=x2,x,.是系統(tǒng)的輸入,;《:2+1表示輸入中奇數(shù)序列的值,x^表示輸入中偶數(shù)序列的值,《表示/級提升的高頻輸出,對表示/級提升的低頻輸出。本發(fā)明與傳統(tǒng)方法相比具有如下優(yōu)點(diǎn)1)由于本發(fā)明同時(shí)采用了并行處理技術(shù)以及流水線技術(shù),因此系統(tǒng)輸入到輸出所需的關(guān)鍵路徑延時(shí)縮短,系統(tǒng)的工作頻率有了很大的提高;2)由于本發(fā)明采用了資源分時(shí)復(fù)用技術(shù),使得實(shí)現(xiàn)提升小波變換所需的硬件資源減少,硬件利用率幾乎達(dá)到100%;3)通過移位加技術(shù)用移位寄存器和加法器取代乘法操作,進(jìn)一步減少了運(yùn)算量,降低了硬件開銷;4)由于本發(fā)明是對改進(jìn)提升小波算法的直接映射,同時(shí)本發(fā)明中提出的改進(jìn)提升小波算法可以很容易的擴(kuò)展到其他小波變換,因此具有設(shè)計(jì)簡單、規(guī)則、易于擴(kuò)展等特點(diǎn),非常適合于超大規(guī)模集成電路VLSI設(shè)計(jì)實(shí)現(xiàn)。圖1為本發(fā)明實(shí)現(xiàn)方法的流程圖2為用本發(fā)明方法實(shí)現(xiàn)的串并轉(zhuǎn)換模塊框圖3為用本發(fā)明方法實(shí)現(xiàn)的小波主變換模塊框圖4為用本發(fā)明方法實(shí)現(xiàn)并串轉(zhuǎn)換與歸一化模塊框圖。具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對本發(fā)明進(jìn)行詳細(xì)說明。在本發(fā)明的實(shí)施例中使用的是JPEG2000標(biāo)準(zhǔn)中采用的小波濾波器-CDF5/3和9/7雙正交小波,但是不限于使用這兩種小波濾波器。參照圖l,本發(fā)明基于提升算法的離散小波變換VLSI結(jié)構(gòu)設(shè)計(jì)方法,包括以下步驟步驟l:將輸入串行序列X(/)分裂成相應(yīng)的奇序列Xp"+,)和偶序列;c^),為小波主變換模塊提供輸入。在設(shè)計(jì)中采用如圖2所示的一個(gè)延遲寄存器i)和兩個(gè)開關(guān)電路&和《實(shí)現(xiàn)輸入序列的奇偶分離。步驟2:改變提升小波算法的運(yùn)算順序,使得原來處于同一條路徑和順序運(yùn)算的中間值處于不同的路徑。所述的改進(jìn)提升小波算法的順序是按照以下方式進(jìn)行的將第一級提升小波算法改為《=<+^0'0+《)=>《二(《。+ax。+ax《"(1)s)=《+〃x(OX=O,0+/x《1)+/x《.(2)將第二級提升小波算法改為^X"x(sXi)^《-O^+^x^H^x5!"(3)s,2二s)+^x(《+《):^A2=0)+3x《1)+3x<i,2.(4)其中常數(shù)a為第一級提升小波的預(yù)測因子,々為第一級提升小波的更新因子,y為第二級提升小波的預(yù)測因子,c5為第二級提升小波的更新因子,《=x2+1,《=;c2,x,.是系統(tǒng)的輸入,12+1表示輸入中奇數(shù)序列的值,x^表示輸入中偶數(shù)序列的值,《表示/級提升的高頻輸出,W表示/級提升的低頻輸出。步驟3:通過延遲寄存器,對處于不同路徑上的中間值進(jìn)行并行運(yùn)算。改變運(yùn)算順序后的算法的先將(1)式中的中間值(《+"x《)、(2)式中的中間值(《+;5x《》、(3)式中的中間值(《+yx^)和(4)式中的中間值W+"《i)處于不同的路徑上,再通過在各條路徑上添加如圖3所示的第一延遲寄存器A、第二延遲寄存器A、第三延遲寄存器Z)3和第四延遲寄存器A實(shí)現(xiàn)對這些處于不同路徑上的中間值進(jìn)行并行運(yùn)算。步驟4:選擇并行運(yùn)算的各條路徑中最長的一條作為關(guān)鍵路徑,并在關(guān)鍵路徑上添加流水線寄存器。在本實(shí)施例中通過在各級提升小波預(yù)測、更新步驟之間和系統(tǒng)的輸入端添加第一流水線寄存器^、第二流水線寄存器A、第三流水線寄存器尸3、第四流水線寄存器尸4、第五流水線寄存器g和第六流水線寄存器g實(shí)現(xiàn)三級流水線結(jié)構(gòu),如圖3所示,以實(shí)現(xiàn)流水線結(jié)構(gòu)設(shè)計(jì),進(jìn)一步提高系統(tǒng)的并行性。步驟5:對于兩級提升小波的流水線結(jié)構(gòu),在系統(tǒng)和第一級提升運(yùn)算中的乘法器輸入端添加選擇器,將經(jīng)過第一級提升小波的中間值返回到輸入端,通過選擇器交替選擇不同提升級的中間值,將結(jié)果存儲(chǔ)在添加的寄存器中。在設(shè)計(jì)中,通過在系統(tǒng)的輸入端添加第一選擇器5;和第二選擇器&,選擇輸入到系統(tǒng)初始值或者是經(jīng)過第一級提升運(yùn)算返回的值,在第一級提升運(yùn)算的兩個(gè)乘法器輸入端分別添加選擇器第三選擇器&和第四選擇器&,分別用于選擇第一級和第二級的提升小波系數(shù),如圖3所示。用這種方法設(shè)計(jì)的提升小波的流水線結(jié)構(gòu)可以省去原來第二級提升運(yùn)算所需的硬件結(jié)構(gòu),降低了硬件資源消耗,提高了資源利用率。所述的乘法器用移位寄存器和加法器實(shí)現(xiàn)。這里以9/7提升小波中的系數(shù)"為例,介紹用移位寄存器和加法器代替乘法操作的具體方法和過程。該小波系數(shù)a的二進(jìn)制形式為a=(—1.586134342、。=(-1.1001011000001)2,當(dāng)一個(gè)中間值iV與其相乘時(shí),由于a是負(fù)數(shù),因此先取W的補(bǔ)碼^,貝IJ:xW=^+^》l+^4+^6+^7+^13.(5)進(jìn)一步提取表達(dá)式(5)中的最小公因子,則有axTV=(]^+^〉〉6)+(^+^》6):7+(^+》;》3):l.。步驟6:對經(jīng)過以上步驟得到的小波變換的高頻和低頻兩個(gè)輸出,通過第五選擇器&交替選擇該高頻和低頻的輸出,完成并串轉(zhuǎn)換功能,并且通過第六選擇器&選擇歸一化系數(shù)1/尺或者尺實(shí)現(xiàn)高頻或者低頻輸出的歸一化,最終得到x(/)的小波變換:K0,如圖4所示。參照圖3,用本發(fā)明方法設(shè)計(jì)的小波主變換模塊的工作原理如下A.5/3小波的工作過程由于5/3小波只包含一級提升運(yùn)算,因此第五流水線寄存器g和第六流水線寄存器尸6輸出的數(shù)據(jù)不需要返回到輸入端,同時(shí)為了確保正確的提升過程,需要旁通掉第三延遲寄存器A和第四延遲寄存器A,小波系數(shù)通過第三和第四選擇器選擇5/3小波的系數(shù)。具體工作過程為串并轉(zhuǎn)換后的奇序列和偶序列作為小波主變換的輸入,此時(shí)偶數(shù)點(diǎn)先與選定的5/3濾波器系數(shù)相乘即用移位加實(shí)現(xiàn),再與奇數(shù)點(diǎn)相加存儲(chǔ)在第一延遲寄存器D,中。下一個(gè)偶數(shù)點(diǎn)輸入時(shí),仍然先與5/3濾波器系數(shù)相乘,再分別和此時(shí)輸入的奇數(shù)點(diǎn)以及第一延遲寄存器Z),中存儲(chǔ)的中間值相加,并分別輸入到第一延遲寄存器D,和第三流水線寄存器S,此時(shí)尸3中的值就是對上一個(gè)奇數(shù)點(diǎn)預(yù)測后的值,第四流水線寄存器尸4中存儲(chǔ)的就是原始的偶數(shù)點(diǎn)。后續(xù)的處理類似于上述過程,只不過是用第三流水線寄存器g中預(yù)測后的奇數(shù)點(diǎn)來更新第四流水線寄存器s中原始的偶數(shù)點(diǎn)。預(yù)測更新完成后,經(jīng)過選擇器實(shí)現(xiàn)高頻和低頻輸出的并串轉(zhuǎn)換,最后經(jīng)過選擇器選擇歸一化系數(shù)l/《或者《與串行輸出相乘,實(shí)現(xiàn)高頻或者低頻輸出的歸一化操作。B.9/7小波的工作過程由于9/7小波變換過程包括兩級提升運(yùn)算,一級提升運(yùn)算完成之后,第五流水線寄存器戶5和第六流水線寄存器尸6輸出的數(shù)據(jù)要分別返回到寄存器^和尸2做第二級提升運(yùn)算,之后通過選擇器選擇9/7小波的相應(yīng)系數(shù),使第一級提升和第二級提升運(yùn)算交替進(jìn)行。與5/3小波運(yùn)算過程類似,串并轉(zhuǎn)換后的奇序列和偶序列作為小波主變換的輸入,此時(shí)第二流水線寄存器尸2輸出的偶數(shù)點(diǎn)先與選擇器選取的9〃小波系數(shù)"相乘即用移位加實(shí)現(xiàn),再分別與第一流水線寄存器^輸出的奇數(shù)點(diǎn)以及第三延遲寄存器A輸出的中間值相加,分別存儲(chǔ)在第一延遲寄存器A和第三流水線寄存器g中,該尸3中存儲(chǔ)的值就是某一奇數(shù)點(diǎn)經(jīng)過一級提升運(yùn)算后的值。此時(shí)輸入端通過第一選擇器s;和第二&選擇從第五流水線寄存器g和第六流水線寄存器^返回的第一級提升運(yùn)算后的值到第一流水線寄存器《和第二流水線寄存器尸2。下一時(shí)刻,該^輸出的從第六流水線寄存器A返回的第一級提升運(yùn)算后的值與通過第三選擇器&選取的9/7小波系數(shù)y相乘,再分別與第一流水線寄存器尸,中輸出的值以及第三延遲寄存器A中輸出的上一時(shí)刻依照返回值計(jì)算所得的中間值相加,分別輸出到第一延遲寄存器A和第三流水線寄存器尸3,此時(shí)該^中的值就是對某一個(gè)奇數(shù)點(diǎn)的預(yù)測,第四流水線寄存器戶4中存儲(chǔ)的就是與之對應(yīng)的一級提升運(yùn)算之后的偶數(shù)點(diǎn)。后續(xù)的處理類似于上述過程。假設(shè)小波主變換的輸入為《和《,9〃小波變換的具體工作過程如表1所示。其中《-Aw,《和W表示/級提升的結(jié)果。兩級提升完成后,經(jīng)過第五選擇器&實(shí)現(xiàn)高頻和低頻輸出的并串轉(zhuǎn)換,最后經(jīng)過第六選擇器&選擇歸一化系數(shù)l/《或者《與串行輸出相乘,實(shí)現(xiàn)高頻或者輸出的歸一化操作。表lCDF-9/7小波工作模式下的數(shù)據(jù)流(x表示無效數(shù)據(jù))<table>tableseeoriginaldocumentpage10</column></row><table>本發(fā)明的效果可以通過與現(xiàn)有小波變換結(jié)構(gòu)進(jìn)行對比進(jìn)一步說明從圖3可以看出,本發(fā)明方法設(shè)計(jì)的結(jié)構(gòu)僅僅需要3個(gè)乘法器,4個(gè)加法器,4個(gè)延遲寄存器以及6個(gè)流水線寄存器。該結(jié)構(gòu)與
背景技術(shù):
中提出的結(jié)構(gòu)進(jìn)行性能比較,結(jié)果如表2所示。表2本實(shí)施例結(jié)構(gòu)與其它結(jié)構(gòu)的性能比較(以CDF-9/7小波為例)<table>tableseeoriginaldocumentpage10</column></row><table>從表2中可以看出,本實(shí)施例中的結(jié)構(gòu)占有最少的算術(shù)資源,即由乘法器和加法器的數(shù)目決定,并且關(guān)鍵路徑延時(shí)僅為7;+7;,其中7;為乘法器延遲,z;為加法器延時(shí),雖然該關(guān)鍵路徑延時(shí)比已有的Jou+全級流水線、Huang+5級流水線以及Wu的結(jié)構(gòu)長7;,但是本發(fā)明提出的結(jié)構(gòu)僅僅需要IO個(gè)寄存器,優(yōu)于這三種結(jié)構(gòu)。此外,本發(fā)明的結(jié)構(gòu)具有設(shè)計(jì)簡單、易于擴(kuò)展的優(yōu)點(diǎn),適合于VLSI設(shè)計(jì)實(shí)現(xiàn)。權(quán)利要求1.一種提升小波變換的VLSI結(jié)構(gòu)設(shè)計(jì)方法,包括如下步驟(1)改變提升小波算法的運(yùn)算順序,使得一些中間值的計(jì)算處于不同的路徑;(2)通過延時(shí)寄存器,對處于不同路徑上的中間值進(jìn)行并行運(yùn)算;(3)選擇不同路徑中最長的路徑作為關(guān)鍵路徑,并在該關(guān)鍵路徑上添加流水線寄存器;(4)對于多級流水線結(jié)構(gòu),在系統(tǒng)和乘法器的輸入端添加選擇器,將經(jīng)過第一級提升小波的中間值返回到輸入端,通過選擇器交替選擇不同提升級的中間值,將結(jié)果存儲(chǔ)在添加的寄存器中。2.如權(quán)利要求1所述的方法,其中步驟(1)所述的改變提升小波算法運(yùn)算順序,按照以下方式進(jìn)行的將第一級提升小波算法改為-《",0+xOf+《=W0+ax《)+x《p將第二級提升小波算法改為fif,2^)+;rx(sX):^c/,2=(《十;kx一)+;kx《1,s,2=^+<x(《+《2)=>a',2=+5x《2—J+^xfi;2.其中常數(shù)"為第一級提升小波的預(yù)測因子,/為第一級提升小波的更新因子,y為第二級提升小波的預(yù)測因子,^為第二級提升小波的更新因子,",°=A+1,x,是系統(tǒng)的輸入'^^表示輸入中奇數(shù)序列的值,^2表示輸入中偶數(shù)序列的值,《表示/級提升的高頻輸出,^表示/級提升的低頻輸出。3.如權(quán)利要求l所述的方法,其中步驟(3)所述的在該關(guān)鍵路徑上添加流水線寄存器,是在改變運(yùn)算順序后的各級提升小波之間和系統(tǒng)輸入端添加。4.如權(quán)利要求2所述的方法,其中各級提升算法中的乘法操作通過移位寄存器和加法器實(shí)現(xiàn)。5.如權(quán)利耍求4所述的方法,其中所述的通過移位寄存器和加法器實(shí)現(xiàn)乘法的操作,按如下步驟進(jìn)行1)將提升小波系數(shù)量化為二進(jìn)制形式;2)通過對所述中間值的移位實(shí)現(xiàn)二進(jìn)制形式的小波系數(shù)與該實(shí)數(shù)相乘,即分別將實(shí)數(shù)的整數(shù)部分左移和實(shí)數(shù)的小數(shù)部分右移/位后相加,其中/是二進(jìn)制中為1的位置;3)提取相加后表達(dá)式中的最小公因子,將提取最小公因子后的表達(dá)式再次相加。全文摘要本發(fā)明公開了一種提升小波變換的超大規(guī)模集成電路VLSI結(jié)構(gòu)設(shè)計(jì)方法,主要解決現(xiàn)有技術(shù)中關(guān)鍵路徑延時(shí)長以及硬件消耗高的問題。其設(shè)計(jì)過程是改變提升小波算法的運(yùn)算順序,使得一些中間值的計(jì)算處于不同的路徑;通過延時(shí)寄存器,對處于不同路徑上的中間值進(jìn)行并行運(yùn)算;選擇不同路徑中最長的路徑作為關(guān)鍵路徑,并在該關(guān)鍵路徑上添加流水線寄存器;對于多級流水線結(jié)構(gòu),在系統(tǒng)和乘法器的輸入端添加選擇器,將經(jīng)過第一級提升小波的中間值返回到輸入端,通過選擇器交替選擇不同提升級的中間值,將結(jié)果存儲(chǔ)在添加的寄存器中。本發(fā)明有效的降低了系統(tǒng)關(guān)鍵路徑延時(shí)減少了硬件資源開銷,可使硬件的利用率能夠達(dá)到100%,適合于VLSI的設(shè)計(jì)實(shí)現(xiàn)。文檔編號G06F17/50GK101430737SQ20081023234公開日2009年5月13日申請日期2008年11月19日優(yōu)先權(quán)日2008年11月19日發(fā)明者劉偉峰,犁張,甫李,石光明申請人:西安電子科技大學(xué)