| IMDCT在MP3音频解码中的实现 |
| 合肥工业大学 刘林苏 祖辉 |
| 摘要:在这篇文章中,将主要讨论IMDCT在MP3中应用时的递归循环实现。MDCT和IMDCT是两种重叠正交变换,是MPEG音频标准中运算量最大的两种运算,主要应用在数字信号处理当中。 这里本文将采用Clenshaw 的循环公式,来实现IMDCT的内核,就得到了一种该变换的高效实现,这种方法特别适合VLSI的并行实现。 关键字:IMDCT,MP3,音频解码。 |
| 一、引言 ---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) = 并且, (2) 对于公式中的 1).公式定义
其中 f(x) =
合并后得到: f(x)= 这就是Clenshaw公式的降序递归排列。 同理,可以得到Clenshaw公式的升序排列
f(x)可以通过下面的公式计算得到;
三、推导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)式可以定义:
结合(4)式,可知: 将
(10)式可以写为:x(n) = 由(8)式当k = 0知: 从而可以得到: 同样, 四、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】中算法的比较
表(2)是就该方法和传统的其他实现方法的运算量粗略比较(M= 18)[5]
六、结论 ---本文以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. | |||||||||||||||||||||||||||||||||||||||||||||||||


( 1 )
遵循下面的递归关系
和
有下面的约束:
,k = N - 1,· · · ,0;且有:
(3)
是已知的,所以可以作如下推导:
=



(4)
(5)
(6)




(8)
(9)
和
代入上式得到
(10)

(11)
是由按照(8)式的输入序列X(k)递归产生的,在第M步,第n个IMDCT系数由式(9)计算得出。
