Audio Codec:MP3 (1) PQMF
2007年做项目时的总结,今天分享出来吧.后续还有很多。
1. 多相滤波器组原理概述
11172-3是基于分析综合系统的音频压缩标准,通过多相滤波器把时域信号等分成N个频带的频率信号。再对频域内的信号进行压缩处理。而在解码端,在对频域内的信号进行解码处理后在通过综合滤波器组把频域信号转换成时域信号。原理图如下
2. 多相滤波器组算法应用
11172-3层1,层2,层3都使用了分析综合滤波器。编码端分析滤波器把每一帧时域信号分成32个子带的时域信号。对于层1,1帧数据384个,32个子带,每个子带12个数据。层2和层3每帧36个数据,每个子带36个数据。
在编码端需要进行的3步处理是
Step1:Zi = Ci * Xi i=0 ~ 511
Step2:Yi=
Step3:Si= i=0 ~ 31
X0-31是32个时域数据,移位进入512点的fifo中,S0~S31是32个子带频域信号。C0~C511是11172-3预定义的512个窗系数。Mik=cos((2i+1)*(k-16)*π)/64).是分析矩阵系数.
在解码端综合滤波器组把32个子带的频域数据转换到时域中。一共需要五步计算。如图
Sk是32个频域系数(层1层2是直接从去交叠处理后获得,层3是IMDCT 运算完后存在Buffer 里面的32个子频带值) 。Ui是综合窗系数。
3 C参考代码实现:
ISO的参考代码在函数 SubBandSynthesis ()内实现综合滤波器组的功能。代码注释框图如下