| IMDCT在MP3音頻解碼中的實現(xiàn) |
| 合肥工業(yè)大學 劉林蘇 祖輝 |
| 摘要:在這篇文章中,將主要討論IMDCT在MP3中應用時的遞歸循環(huán)實現(xiàn)。MDCT和IMDCT是兩種重疊正交變換,是MPEG音頻標準中運算量最大的兩種運算,主要應用在數(shù)字信號處理當中。 這里本文將采用Clenshaw 的循環(huán)公式,來實現(xiàn)IMDCT的內核,就得到了一種該變換的高效實現(xiàn),這種方法特別適合VLSI的并行實現(xiàn)。 關鍵字:IMDCT,MP3,音頻解碼。 |
| 一、引言 ---MP3[1],即MPEG Audio Layer-3,它是對數(shù)字音頻的一種強有力的壓縮算法,它可能不是壓縮最強勁的工具,但他絕對是應用最廣泛的壓縮算法,MP3的解碼是按照一定的步驟進行的[1],如圖(1)所示: ---在MPEG 音頻的編解碼標準中,編碼時采用的是動態(tài)加窗和MDCT ,解碼則是采用的是動態(tài)的去窗和IMDCT以達到較高的聲音效果。這里只討論解碼和IMDCT,由于IMDCT在應用中的運算量特別大,所以如果直接進行計算將是一份沉重且耗時耗力的工作,所以一種高效的算法在MP3解碼中是十分必要的。 ---在實際應用中,并行的要比串行的效率要高,且實際應用中,IMDCT可以通過并行濾波網(wǎng)絡來實現(xiàn)[2];另外,理論上證明,DCT 可以通過Clenshaw 循環(huán)公式來實現(xiàn)[3],基于這些本文希望用Clenshaw[4]循環(huán)公式來實現(xiàn)。而且,MP3中用到的IMDCT是定長的,這樣由Clenshaw 循環(huán)公式的得到的遞歸結構,就特別適合并行VLSI實現(xiàn),并且與直接計算比起來,可以節(jié)省運算次數(shù)和硬件資源。 二、Clenshaw 的遞歸公式 Clenshaw循環(huán)公式在估計已給定的循環(huán)公式的系數(shù)方面是一流的,極其高效的。它的一些特性和正選曲線循環(huán)公式很相似。在這里主要用它來推到IMDCT的遞歸算法。 ---首先先看一下Clenshaw 循環(huán)公式: f(x) = 并且, (2) 對于公式中的 1).公式定義
其中 f(x) =
合并后得到: f(x)= 這就是Clenshaw公式的降序遞歸排列。 同理,可以得到Clenshaw公式的升序排列
f(x)可以通過下面的公式計算得到;
三、推導IMDCT算法 首先看一下IMDCT的公式,X(k),k = 0,1,·····,M-1。X(k)作為信號的輸入源,現(xiàn)在需要對它作IMDCT變換,結果保存在x(n)中,n = 0,1, ····N-1.其中N= 2M,N表示的是窗的長度,M代表的是變換的系數(shù)。(在實際的應用中,M是固定的) 為了方便推導,這里定義: = 所以, 根據(jù)(3)式可以定義:
結合(4)式,可知: 將
(10)式可以寫為:x(n) = 由(8)式當k = 0知: 從而可以得到: 同樣, 四、VLSI的實現(xiàn) 在大規(guī)模集成電路中,我們可以通過圖(2)和圖(3)來實現(xiàn)上述算法:
圖(2)使用(10)式實現(xiàn)IMDCT(升序)
圖(3)使用(11)式實現(xiàn)IMDCT(降序) 變換中的所有元素都可以并行計算,可以在大規(guī)模集成電路中實現(xiàn)。與文獻【2】的方法相比較,本算法多需要一個延遲元件,輸入信號應該按照倒序輸入;但是不用考慮M的奇偶性,其中使用的加法器和乘法器是一樣多的,為了計算一個N點輸出的IMDCT的一個樣本輸出值,使用圖(2)需要進行(M+2)次乘法和(2M+1)次加法,而【2】中則需要3M次加法;而如果使用圖(3)則需要進行(M +1)次乘法和(2M+1)次加法。 五、性能比較 下面將就本算法與【1】中提供的算法和傳統(tǒng)的實現(xiàn)方法作一對比: 表(1)本算法和【2】中算法的比較 |



有下面的約束:
(3)


(5)

(8)
代入上式得到


