專利名稱:數(shù)字音頻濾波器的無乘法實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)字音頻編解碼技術(shù)領(lǐng)域的方法,具體是一種數(shù)字音頻濾波器的無乘法實(shí)現(xiàn)方法,即利用旋轉(zhuǎn)坐標(biāo)變換(CORDIC),僅通過加法和移位來快速實(shí)現(xiàn)正逆離散余弦變換(MDCT/IMDCT)和正交鏡像濾波器(QMF)處理。
背景技術(shù):
目前廣泛使用的數(shù)字音頻壓縮標(biāo)準(zhǔn)都采用了基于心理聲學(xué)模型的感知編碼技術(shù)。例如,MPEG音頻壓縮標(biāo)準(zhǔn)MPEG 1 Layer III(MP3)和MPEG 2 AAC通過濾波器處理的時頻變換都得到了很高的編碼效率。根據(jù)1993年的MPEG 1音頻壓縮標(biāo)準(zhǔn),標(biāo)準(zhǔn)MP3采用了MDCT/IMDCT和QMF相結(jié)合的混合濾波器,而根據(jù)1997年的MPEG 2音頻壓縮標(biāo)準(zhǔn),標(biāo)準(zhǔn)AAC采用了MDCT/IMDCT濾波器。MPEG標(biāo)準(zhǔn)數(shù)字音頻濾波器都是基于乘加運(yùn)算的,需要進(jìn)行數(shù)據(jù)量龐大的算數(shù)運(yùn)算,也需要開辟大量ROM存儲空間存放常量系數(shù),這些系統(tǒng)通常為余弦函數(shù)的離散值。因此,按MPEG音頻壓縮標(biāo)準(zhǔn)直接進(jìn)行濾波處理需要進(jìn)行大量的計(jì)算,開辟較大的存儲空間,這樣也不易于硬件的具體實(shí)現(xiàn)。通常的做法是采用基于FFT的快速算法來進(jìn)行MDCT/IMDCT,但局限于計(jì)算點(diǎn)數(shù)必須為2的冪。例如,AAC編碼采用的2048點(diǎn)的MDCT可采用FFT方法,而MP3編碼的36點(diǎn)MDCT則不能。目前,人們對于移動數(shù)字音頻播放器的要求已經(jīng)越來越不滿足于對應(yīng)單一的音頻標(biāo)準(zhǔn)編解碼器。為了實(shí)現(xiàn)能對應(yīng)多標(biāo)準(zhǔn)音頻編解碼器而為各個標(biāo)準(zhǔn)采用單獨(dú)的結(jié)構(gòu)與獨(dú)立的資源是不合理、不經(jīng)濟(jì)的。通常可以采用通用可編程處理器或?qū)S眉呻娐?。前者?shí)現(xiàn)方法較為靈活,但數(shù)據(jù)處理基于寄存器組和指令集,對并行處理數(shù)據(jù),窄寬度數(shù)據(jù)和可變寬度數(shù)據(jù)的流媒體數(shù)據(jù)進(jìn)行處理時,無法發(fā)揮其性能。同時,為了進(jìn)行數(shù)據(jù)量巨大的處理又不得不提高處理器主頻,造成系統(tǒng)功耗大,不適合移動多媒體的應(yīng)用。專用集成電路芯片針對特點(diǎn)功能的多媒體的應(yīng)用而設(shè)計(jì),具有高效率和低功耗的特點(diǎn),能夠滿足移動多媒體處理的要求,但缺乏靈活性,難以對應(yīng)多標(biāo)準(zhǔn)音頻處理以及音頻標(biāo)準(zhǔn)的升級。
經(jīng)對現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),Ray Andraka在Proceedings of the 1998ACM/SIGDA sixth international symposium on Field programmable gate arrays(1998年ACM/SIGDA的第六屆國際FPGA研討會刊物)上發(fā)表的“A Survey ofCORDIC algorithm for FPGA based computers”(基于FPGA計(jì)算的CORDIC算法調(diào)研)一文提出了旋轉(zhuǎn)坐標(biāo)CORDIC算法在用FPGA實(shí)現(xiàn)基本數(shù)學(xué)函數(shù)方面的一些應(yīng)用,但是尚未發(fā)現(xiàn)旋轉(zhuǎn)坐標(biāo)CORDIC在標(biāo)準(zhǔn)數(shù)字音頻濾波器中的應(yīng)用。
發(fā)明內(nèi)容
本發(fā)明旨在針對現(xiàn)有技術(shù)的不足,提出一種數(shù)字音頻濾波器的無乘法實(shí)現(xiàn)方法,從而解決標(biāo)準(zhǔn)數(shù)字音頻濾波器算法運(yùn)算量大,處理時間長,存儲量大及不易硬件實(shí)現(xiàn)的問題。本發(fā)明可以快速實(shí)現(xiàn)數(shù)字音頻濾波器處理,不需要為濾波處理存儲大量余弦系數(shù),也不需要乘法器,方便了硬件實(shí)現(xiàn)。
本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的首先,優(yōu)化標(biāo)準(zhǔn)濾波器算法使其分解為前處理,核處理和后處理。其中核處理將采用CORDIC坐標(biāo)變換方法實(shí)現(xiàn)。其次,僅利用加法和移位運(yùn)算完成CORDIC核處理和前后處理。
下面針對MDCT/IMDCT濾波器給出本發(fā)明的實(shí)施步驟步驟一MDCT/IMDCT預(yù)變換(1)MDCT預(yù)變換對輸入數(shù)據(jù)x(n)進(jìn)行如下變換w(n+14N)=x(n)-x(12N-1-n)w(14N-1-n)=-x(N-1-n)-x(n+12N),n=0,1,...,14N-1]]>將N點(diǎn)的標(biāo)準(zhǔn)MDCTX(k)=Σn=0N-1x(n)cos[π2N(2k+1)(2n+1+N2)],k=0,1,...,12N-1]]>變換為如下形式X(k)=Σn=0N/2-1w(n)cos[π2N(2k+1)(2n+1)],k=0,1,...,N2-1]]>
(2)IMDCT預(yù)變換對輸出數(shù)據(jù)x(n)進(jìn)行如下變換y(n)=-x(n+34N),n=0,1,...,14N-1x(n-14N),n=14N,14N+1,...,N-1]]>并利用對稱性y(n)=-y(N-1-n),n=0,1,...,N2-1]]>將N點(diǎn)的標(biāo)準(zhǔn)IMDCTx(n)=Σk=0N/2-1X(k)cos[π2N(2k+1)(2n+1+N/2)],n=0,1,...,N-1]]>變換為如下形式y(tǒng)(n)=Σk=0N/2-1X(k)cos[π2N(2k+1)(2n+1)],n=0,1,...,N2-1]]>可以看到MDCT和IMDCT與變化結(jié)果具有相同的形式和相同的計(jì)算點(diǎn)數(shù)。
步驟二CORDIC預(yù)變換采用任意以下兩種形式之一對MDCT/IMDCT預(yù)變換結(jié)果做如下變換,這里以IMDCT預(yù)變換結(jié)果的輸入輸出進(jìn)行表示。
y(N2-1-2n)=Σk=0N/4-1(-1)k+1{X(N2-1-k)cosθ1-X(k)sinθ1}y(2)n=Σk=0N/4-1{X(N2-1-k)sinθ1+X(k)cosθ1}θ1=π2N(2k+1)(4n+1)]]>或y(2n+1)=Σk=0N/4-1{X(k)cosθ2-X(N2-1-k)sinθ2}y(N2-2-2n)=Σk=0N/4-1(-1)k{X(k)sinθ2+X(N2-1-k)cosθ2}θ2=π2N(2k+1)(4n+3)]]>其中,N為計(jì)算點(diǎn)數(shù),X為輸入,y為輸出,k和n分別為輸入輸出序號,θ1和θ2為角度調(diào)整因子,CORDIC核運(yùn)算將用到。
以上兩步是本發(fā)明的核心。由于通過MDCT/IMDCT預(yù)變換,兩者已有相同計(jì)算形式,這樣,通過CORDIC預(yù)變換后就可以對通用表達(dá)式進(jìn)行CORDIC核運(yùn)算,從而減少運(yùn)算量和硬件實(shí)現(xiàn)資源。
步驟三CORDIC核運(yùn)算將CORDIC預(yù)變換結(jié)果應(yīng)用于CORDIC核,輸入輸出及角度因子分別對應(yīng)。
XjYj=cosθ-sinθsinθcosθXiYi]]>Andraka的文獻(xiàn)給出了一種僅通過少量加法和移位處理的CORDIC無乘法快速實(shí)現(xiàn)方法。根據(jù)CORDIC核的形式可知,進(jìn)行N2/16次CORDIC核運(yùn)算便可完成全部MDCT/IMDCT有效數(shù)值的計(jì)算。
步驟四MDCT/IMDCT后變換(1)MDCT后變換將CORDIC核運(yùn)算得到的N/2點(diǎn)有效數(shù)據(jù)進(jìn)行后變換,得到MDCT/IMDCT的順序結(jié)果。
MDCT無需后處理,CORDIC核運(yùn)算所得即為MDCT所求順序結(jié)果。
(2)IMDCT后變換IMDCT先利用輸出結(jié)果的對稱性y(n)=-y(N-1-n),n=0,1,...,N2-1]]>得到N點(diǎn)序列y(n),再利用預(yù)變換的如下逆變換得到IMDCT所求順序結(jié)果。
x(n)=y(n+14N),n=0,1,...,34N-1-y(n-34N),n=34N,34N+1,N-1]]>CORDIC的思想源于數(shù)學(xué)中的坐標(biāo)旋轉(zhuǎn),本發(fā)明針對其特點(diǎn)并結(jié)合數(shù)字音頻處理中濾波器的計(jì)算規(guī)律,提出基于CORDIC的MDCT/IMDCT的實(shí)現(xiàn)方法。本發(fā)明方法不需要乘法運(yùn)算,僅采用加法與移位操作便可快速完成數(shù)字音頻濾波器處理。同時,本發(fā)明不同于標(biāo)準(zhǔn)算法與現(xiàn)有的其它快速計(jì)算方法一次CORDIC處理便可完成4點(diǎn)運(yùn)算,不需要存儲大量的余弦系數(shù),不受限于點(diǎn)數(shù)為2的冪。因此,采用本發(fā)明方法研發(fā)的數(shù)字音頻處理器去除了最耗系統(tǒng)資源的乘法器,在不引入額外存儲資源的前提下大大節(jié)省了用于存儲靜態(tài)系數(shù)的ROM存儲空間,而且既可以用于基2的計(jì)算也可以用于非基2的計(jì)算,從而實(shí)現(xiàn)了諸如MP3和AAC濾波器組運(yùn)算的高度資源共享,以較少的硬件,實(shí)現(xiàn)多標(biāo)準(zhǔn)音頻解碼器中濾波器,從而滿足當(dāng)前移動多媒體終端的高性能、低成本和低功耗的需要。
圖1為本發(fā)明實(shí)施例電路框圖。
具體實(shí)施例方式
以下結(jié)合附圖提供本發(fā)明的具體實(shí)施例基于CORDIC的MP3和AAC的MDCT/IMDCT具體實(shí)現(xiàn)如圖1所示,上述的步驟1、2對應(yīng)實(shí)施電路中的前地址映射單元,對輸入數(shù)據(jù)進(jìn)行地址操作,完成MDCT/IMDCT預(yù)變換和CORDIC預(yù)變換。處理后的數(shù)據(jù)將作為CORDIC的輸入數(shù)據(jù)Xi,Yi存儲在中間數(shù)據(jù)RAM中。
上述步驟3對應(yīng)圖中的偶數(shù)和奇數(shù)兩個CORDIC核,根據(jù)第2步結(jié)果提供CORDIC核以下參數(shù),進(jìn)行N2/16次CORDIC核運(yùn)算MDCT:Xi=w(N2-1-n),Yi=w(n),Zi=π2N(2k+1)(4n+1);]]>IMDCT:Xi=X(N2-1-k),Yi=X(k),Zi=π2N(2k+1)(4n+1);]]>其中,n=0,1,...,N4-1,k=0,1,...,N4-1]]>此步驟通過實(shí)施電路中的兩個角度生成器和偶數(shù)與奇數(shù)CORDIC核四個單元協(xié)同完成。對中間數(shù)據(jù)RAM中的數(shù)據(jù)Xi,Yi完成CORDIC運(yùn)算。角度生成器單元用來產(chǎn)生參數(shù)θ,該參數(shù)的產(chǎn)生需要由前地址映射單元提供操作數(shù)。為了提高速度,采用奇數(shù)和偶數(shù)兩個CORDIC同時運(yùn)算,分別獲得奇偶輸出值。
第4步對應(yīng)實(shí)施電路中的后地址映射單元。若進(jìn)行MDCT計(jì)算,則CORDIC運(yùn)算所得結(jié)果即為所求順序結(jié)果。若進(jìn)行IMDCT計(jì)算,則根據(jù)上述IMDCT后變換對CORDIC運(yùn)算結(jié)果進(jìn)行延拓,重排,得到所求順序結(jié)果。
至此,完整所有的MDCT或IMDCT值的計(jì)算。
本發(fā)明的優(yōu)點(diǎn)
1.實(shí)現(xiàn)適合硬件的快速M(fèi)DCT/IMDCT運(yùn)算核,大大減少了運(yùn)算周期以MP3濾波器組處理為例,原來長塊需要36*18=648次乘加運(yùn)算,短塊需要12*6=72次乘加運(yùn)算。采用本發(fā)明方法后,長塊需要81次CORDIC運(yùn)算,短塊需要9次CORDIC運(yùn)算。以1024點(diǎn)為一幀的AAC為例,原來長塊需要2048*1024=2097152次乘加運(yùn)算,短塊需要256*128=32768次乘加運(yùn)算。采用本發(fā)明后,長塊需要262144次CORDIC運(yùn)算,短塊需要4096次CORDIC運(yùn)算。
2.采用無乘法實(shí)現(xiàn)方式,運(yùn)算周期減少不以單周期運(yùn)算復(fù)雜度增加為代價乘加運(yùn)算與CORDIC運(yùn)算相比,單從表達(dá)式來說運(yùn)算復(fù)雜度為1∶4,因此采用CORDIC理所當(dāng)然減少了運(yùn)算周期。但本發(fā)明所采用的CORDIC核運(yùn)算并不基于乘加運(yùn)算來實(shí)現(xiàn),而是采用一種無乘法的實(shí)現(xiàn)方式,僅通過加法和移位操作來實(shí)現(xiàn)。這樣做的優(yōu)勢主要有兩點(diǎn)首先,去除了增大最終芯片面積與降低系統(tǒng)效率的乘法器;其次,采用了執(zhí)行效率更高的移位與加法操作提供系統(tǒng)性能。
3.不受運(yùn)算點(diǎn)數(shù)為2的冪的限制,適用范圍更廣,不需存儲大量的ROM系數(shù)CORDIC處理對點(diǎn)數(shù)沒有特別要求,同時由于余弦通過移位和加法得以實(shí)現(xiàn),也省去了存儲大量余弦系數(shù)的ROM。
本發(fā)明提出的方法不受限運(yùn)算點(diǎn)數(shù)規(guī)格,不需要乘法運(yùn)算,不需要占用較大ROM空間,運(yùn)算周期少,有利于實(shí)現(xiàn)多標(biāo)準(zhǔn)數(shù)字音頻處理的運(yùn)算單元的共享,有利于存儲空間大小的控制,有利于多標(biāo)柱數(shù)字音頻的實(shí)時處理,有利于減小最終的芯片面積,有利于降低系統(tǒng)功耗,從而極大地滿足人們對于多標(biāo)準(zhǔn)對應(yīng)移動多媒體之一必然發(fā)展趨勢的要求。
權(quán)利要求
1.一種數(shù)字音頻濾波器的無乘法實(shí)現(xiàn)方法,其特征在于,包括如下步驟步驟一MDCT/IMDCT預(yù)變換(1)MDCT預(yù)變換,變換為如下形式X(k)=Σn=0N/2-1w(n)cos[π2N(2k+1)(2n+1)],k=0,1,...,N2-1]]>(2)IMDCT預(yù)變換,變換為如下形式y(tǒng)(n)=Σk=0N/2-1X(k)cos[π2N(2k+1)(2n+1)],n=0,1,...,N2-1]]>步驟二CORDIC預(yù)變換,對MDCT/IMDCT預(yù)變換結(jié)果做CORDIC預(yù)變換,以IMDCT預(yù)變換結(jié)果的輸入輸出表示;步驟三CORDIC核運(yùn)算,CORDIC核心運(yùn)算與坐標(biāo)旋轉(zhuǎn)變換相同,根據(jù)CORDIC核運(yùn)算預(yù)變換提供CORDIC核Xi,Yi以及θ參數(shù),進(jìn)行N2/16次CORDIC運(yùn)算完成MDCT/IMDCT有效數(shù)值的計(jì)算,其中,CORDIC核采用僅使用加法和移位的無乘法的快速實(shí)現(xiàn)方式進(jìn)行;步驟四MDCT/IMDCT后變換(1)MDCT后變換,基于CORDIC的MDCT計(jì)算無需進(jìn)行后變換,CORDIC核運(yùn)算所得即為MDCT所求順序結(jié)果;(2)IMDCT后變換,利用預(yù)變換的如下逆變換得到結(jié)果x(n)=y(n+14N),n=0,1,...,34N-1-y(n-34N),n=34N,34N+1,N-1.]]>
2.根據(jù)權(quán)利要求1所述的數(shù)字音頻濾波器的無乘法實(shí)現(xiàn)方法,其特征是,所述的步驟一中的MDCT預(yù)變換,對輸入數(shù)據(jù)x(n)進(jìn)行如下變換w(n+14N)=x(n)-x(12N-1-n)w(14N-1-n)=-x(N-1-n)-x(n+12N),n=0,1,...,14N-1]]>將N點(diǎn)的標(biāo)準(zhǔn)MDCTX(k)=Σn=0N-1x(n)cos[π2N(2k+1)(2n+1+N2)],k=0,1,...,12N-1]]>變換為X(k)=Σn=0N/2-1w(n)cos[π2N(2k+1)(2n+1)],k=0,1,...,N2-1.]]>
3.根據(jù)權(quán)利要求1所述的數(shù)字音頻濾波器的無乘法實(shí)現(xiàn)方法,其特征是,所述的步驟一中的IMDCT預(yù)變換,對輸出數(shù)據(jù)x(n)進(jìn)行如下變換y(n)=-x(n+34N),n=0,1,...,14N-1x(n-14N),n=14N,14N+1,N-1]]>結(jié)合對稱性關(guān)系y(n)=-y(N-1-n),n=0,1,...,N2-1]]>將N點(diǎn)的標(biāo)準(zhǔn)IMDCTx(n)=Σk=0N/2-1X(k)cos[π2N(2k+1)(2n+1+N/2)],n=0,1,...,N-1]]>變換為y(n)=Σk=0N/2-1X(k)cos[π2N(2k+1)(2n+1)],n=0,1,...,N2-1.]]>
4.根據(jù)權(quán)利要求1所述的數(shù)字音頻濾波器的無乘法實(shí)現(xiàn)方法,其特征是,所述的步驟二中,采用以下兩種形式之一對MDCT/IMDCT預(yù)變換結(jié)果做如下變換y(N2-1-2n)=Σk=0N/4-1(-1)k+1{X(N2-1-k)cosθ1-X(k)sinθ1}y(2n)=Σk=0N/4-1{X(N2-1-k)sinθ1+X(k)cosθ1}θ1=π2N(2k+1)(4n+1)]]>或y(2n+1)=Σk=0N/4-1{X(k)cosθ2-X(N2-1-k)sinθ2}y(N2-2-2n)=Σk=0N/4-1(-1)k{X(k)sinθ2+X(N2-1-k)cosθ2}θ2=π2N(2k+1)(4n+3).]]>
5.根據(jù)權(quán)利要求1所述的數(shù)字音頻濾波器的無乘法實(shí)現(xiàn)方法,其特征是,所述的步驟三中的CORDIC核心運(yùn)算與坐標(biāo)旋轉(zhuǎn)變換相同,定義如下XjYj=cosθ-sinθsinθcosθXiYi.]]>
6.根據(jù)權(quán)利要求1所述的數(shù)字音頻濾波器的無乘法實(shí)現(xiàn)方法,其特征是,所述的步驟四中的IMDCT后變換,IMDCT先利用輸出結(jié)果的對稱性y(n)=-y(N-1-n),n=0,1,...N2-1]]>得到N點(diǎn)序列y(n),再利用預(yù)變換的如下逆變換得到IMDCT所求順序結(jié)果x(n)=y(n+14N),n=0,1,...,34N-1-y(n-34N),n=34N,34N+1,N-1.]]>
7.根據(jù)權(quán)利要求1所述的數(shù)字音頻濾波器的無乘法實(shí)現(xiàn)方法,其特征是,所述的MDCT/IMDCT預(yù)變換,MDCT和IMDCT與變化結(jié)果具有相同的形式和相同的計(jì)算點(diǎn)數(shù)。
全文摘要
本發(fā)明涉及一種數(shù)字音頻編解碼技術(shù)領(lǐng)域的數(shù)字音頻濾波器的無乘法實(shí)現(xiàn)方法。首先,優(yōu)化標(biāo)準(zhǔn)濾波器算法使其分解為前處理,核處理和后處理。其中核處理將采用CORDIC坐標(biāo)變換方法實(shí)現(xiàn)。其次,僅利用加法和移位運(yùn)算完成CORDIC核處理和前后處理。本發(fā)明提出了采用CORDIC核實(shí)現(xiàn)數(shù)字音頻濾波器的前期后期處理方法,以及一整套基于CORDIC核的MDCT/IMDCT濾波器的無乘法實(shí)現(xiàn)方法與實(shí)現(xiàn)電路,可以快速實(shí)現(xiàn)數(shù)字音頻濾波器處理,不需要為濾波處理存儲大量余弦系數(shù),也不需要乘法器,方便了硬件實(shí)現(xiàn)。
文檔編號G10L19/14GK1858998SQ200610025868
公開日2006年11月8日 申請日期2006年4月20日 優(yōu)先權(quán)日2006年4月20日
發(fā)明者劉佩林, 鄧寧, 劉嘉龑 申請人:上海交通大學(xué), 富士通株式會社