[原创]桓泽学音频编解码(5):MP3 和 AAC 中IMDCT算法的原理,优化设计与参考代码中实现
[原创]桓泽学音频编解码(1):MPEG1 MP3 系统算法分析
[原创]桓泽学音频编解码(2):AC3/Dolby Digital 系统算法分析
[原创]桓泽学音频编解码(3):AAC 系统算法分析
[原创]桓泽学音频编解码(4):MP3 和 AAC 中反量化原理,优化设计与参考代码中实现
MDCT
MDCT(Modified Discrete Cosine Transform)被广泛应用于mp3,aac,ac-3,ogg,avs audio等音频压缩标准之中。但他们在每个标准中的

MDCT的公式
![X_k = \sum_{n=0}^{2N-1} x_n \cos \left[\frac{\pi}{N} \left(n+\frac{1}{2}+\frac{N}{2}\right) \left(k+\frac{1}{2}\right) \right]](http://upload.wikimedia.org/wikipedia/en/math/7/c/2/7c2bb7add998a5a2181410b296a68dc6.png)
IMDCT的公式
![y_n = \frac{1}{N} \sum_{k=0}^{N-1} X_k \cos \left[\frac{\pi}{N} \left(n+\frac{1}{2}+\frac{N}{2}\right) \left(k+\frac{1}{2}\right) \right]](http://upload.wikimedia.org/wikipedia/en/math/4/6/c/46cf706d2460ab13fba91c571021752e.png)
在mp3 decoder中n = 12或36
在AAC decoder中 n = 256或2048
在AC-3 decoder中 n=256或512
输入: n个数据.
输出:n/2个数据(50%交叠)
直接实现:
C算法[1]
for(p= 0;p<N;p++)
{
sum = 0.0;
for(m=0;m<N/2;m++)
sum += in[i+3*m] * cos( PI/(2*N)*(2*p+1+N/2)*(2*m+1) );
tmp[p] = sum * win[block_type][p] ;
}
直接计算的运算量是
N2/2次乘法和N(N-1)/2次加法
快速算法
目前的快速算法有三类
1. 基于FFT
2. 基于DCT II
3. 收敛的快速MDCT算法
|
表1 直接计算和快速算法的运算量比较 |
|
长度N |
实数乘法 |
实数加法 |
||||
|
直接计算 |
快速算法 |
比值 |
直接计算 |
快速算法 |
比值 |
|
|
128 |
8192 |
896 |
9.1 |
8192 |
832 |
9.8 |
|
256 |
32768 |
2048 |
16 |
32640 |
1920 |
17 |
|
512 |
131072 |
4608 |
28.4 |
130816 |
4352 |
30.1 |
|
1024 |
524288 |
10240 |
51.2 |
523776 |
9728 |
53.8 |
|
2048 |
2097152 |
22528 |
93 |
2096128 |
21504 |
97.5 |
基于FFT的快速算法[3]

[2]
[4]
Step 1: Input combination

Step 2: GDFT

Step 2.1: Pre-processing:

Step 2.2: FFT:

Step 2.3: Post-processing:


Step 3: Windowing and de-interleaving:

Step 4: Overlap and Add

[4]Anup K.C and Ajay Kumar Bangla,”A NEW EFFICIENT IMPLEMENTATION OF TDAC SYNTHESIS FILTERBANK BASED ON RADIX-2 FFT”
[1] mp3 iso参考软件
[2] A VLSI IMPLEMENTATION OF MPEG-2 AAC DECODER SYSTEM
[3] P. Duhamel, Y. Mahieux, and J. P. Petit, “A fast algorithm for the implementation of filter banks based on ‘time domain aliasing cancellation’” Proc. ICASSP, May 1991, pp.2209-2212.
浙公网安备 33010602011771号