| 一、引言 ---MP3[1],即MPEG Audio Layer-3,它是对数字音频的一种强有力的压缩算法,它可能不是压缩最强劲的工具,但他绝对是应用最广泛的压缩算法,MP3的解码是按照一定的步骤进行的[1],如图(1)所示:
 ---在MPEG 音频的编解码标准中,编码时采用的是动态加窗和MDCT ,解码则是采用的是动态的去窗和IMDCT以达到较高的声音效果。这里只讨论解码和IMDCT,由于IMDCT在应用中的运算量特别大,所以如果直接进行计算将是一份沉重且耗时耗力的工作,所以一种高效的算法在MP3解码中是十分必要的。 ---在实际应用中,并行的要比串行的效率要高,且实际应用中,IMDCT可以通过并行滤波网络来实现[2];另外,理论上证明,DCT 可以通过Clenshaw 循环公式来实现[3],基于这些本文希望用Clenshaw[4]循环公式来实现。而且,MP3中用到的IMDCT是定长的,这样由Clenshaw 循环公式的得到的递归结构,就特别适合并行VLSI实现,并且与直接计算比起来,可以节省运算次数和硬件资源。 二、Clenshaw 的递归公式 Clenshaw循环公式在估计已给定的循环公式的系数方面是一流的,极其高效的。它的一些特性和正选曲线循环公式很相似。在这里主要用它来推到IMDCT的递归算法。 ---首先先看一下Clenshaw 循环公式: f(x) = ( 1 ) 并且, 遵循下面的递归关系 (2) 对于公式中的 和 有下面的约束: 1).公式定义 ,k = N - 1,· · · ,0;且有:  (3) 其中 是已知的,所以可以作如下推导: f(x) = =    合并后得到: f(x)= (4) 这就是Clenshaw公式的降序递归排列。 同理,可以得到Clenshaw公式的升序排列  (5) f(x)可以通过下面的公式计算得到; (6) 三、推导IMDCT算法 首先看一下IMDCT的公式,X(k),k = 0,1,·····,M-1。X(k)作为信号的输入源,现在需要对它作IMDCT变换,结果保存在x(n)中,n = 0,1, ····N-1.其中N= 2M,N表示的是窗的长度,M代表的是变换的系数。(在实际的应用中,M是固定的) 为了方便推导,这里定义: = 所以,  根据(3)式可以定义:  (8) 结合(4)式,可知: (9) 将 和 代入上式得到 (10) (10)式可以写为:x(n) = 由(8)式当k = 0知: 从而可以得到: (11) 同样, 是由按照(8)式的输入序列X(k)递归产生的,在第M步,第n个IMDCT系数由式(9)计算得出。 四、VLSI的实现 在大规模集成电路中,我们可以通过图(2)和图(3)来实现上述算法:  图(2)使用(10)式实现IMDCT(升序)  图(3)使用(11)式实现IMDCT(降序) 变换中的所有元素都可以并行计算,可以在大规模集成电路中实现。与文献【2】的方法相比较,本算法多需要一个延迟元件,输入信号应该按照倒序输入;但是不用考虑M的奇偶性,其中使用的加法器和乘法器是一样多的,为了计算一个N点输出的IMDCT的一个样本输出值,使用图(2)需要进行(M+2)次乘法和(2M+1)次加法,而【2】中则需要3M次加法;而如果使用图(3)则需要进行(M +1)次乘法和(2M+1)次加法。 五、性能比较 下面将就本算法与【1】中提供的算法和传统的实现方法作一对比: 表(1)本算法和【2】中算法的比较 | | N/2点inverse MDCT | 【2】 | | 升序 | 降序 | | 锁存器 | 2 | 2 | 3 | | 乘法器 | 2 | 2 | 2 | | 加法器 | 3 | 3 | 3 | | 乘法 | N/2+1 | N/2+1 | N/2+1 | | 加法 | N+1 | N+1 | 3N/2 | 表(2)是就该方法和传统的其他实现方法的运算量粗略比较(M= 18)[5] | 方法 | 乘法 | 加法 | | Clenshaw的递归公式 | 升序公式 | 19 | 37 | | 降序公式 | 19 | 37 | | 通过FFT | 40 | 80 | | LAME | 244 | 324 | | ISO Dist10 编码方法 | 1300 | 650 | 六、结论 ---本文以Clenshaw的循环公式为依据,介绍了两种实现定长IMDCT的方法,它们都很适合在大规模集成电路中实现,接着把两种方法和【2】中方法及传统的一些实现方法进行对比。发现这两种方法比【2】中方法可以节省30%-50%的运算,比起其他传统方法可节省50%-95%的运算量,而且使用时不用关心M的奇偶性,升序递归不需要额外的内存,所以只有一种方法是实际需要的。 参考文献: 【1】 CODING OF MOVING PICTURES AND ASSOCIATED AUDIO ,ISO/IEC JTC/SC29/WG11 NO805 11/November/1994 . 【2】 Regressive Implementation for the Forward and Inverse MDCT in the MPEG Audio Coding,Hwang-Cheng Chiang and Jie-Chemg Liu,IEEE Signal Processing Letters,vol. 3,pp.116-118,Apr.1996. 【3】 Computation ofDiscrete Cosine Transform Using Clenshaw’s Recurence Formula,Maurice F.Aburdence,Jianqing Zheng,and Richard J.Kozick,IEEE Signal Processing Letters,vol.2.NO.8,August 1995. 【4】 ClenshawRecurrence Formula ,http://mathword.wolfram.com/ClenshawRecurrenceFormula.html. 【5】The Modified Discrete Cosine Transform (MDCT) and MPEG Audio encoding.Mike Cheng (mikecheng@cryogen.com][version1.0] June 28, 1999. |