访问电脑版页面

导航:老古开发网手机版其他

IMDCT在MP3音频解码中的实现

导读:
关键字:

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) = ( 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.

来源:今日电子   作者:  2002/1/1 0:00:00
栏目: [ ]

相关阅读

安森美推出新的高功率图腾柱PFC控制器,满足具挑战的能效标准

动态功耗低至60μA/MHz!助力设备超长续航,首选国民技术低功耗MCU!