图2-1 MP3编码原理图
原始的模拟信号经过AD采样器后,转化为PCM样本,作为MP3编码器的数据输入源。整个MP3 编码是基于频域的编码,因此必须将原始的PCM做时频转换。由于我们不可能将整个时域上的信号通过一次傅里叶变换转换到频域上(音频信号是时变的),因此只能在时域上逐段进行,于是我们将 PCM 样本分块进行处理。前面提到,对单声道MPEG-1而言,一帧包含2个gr;而MPEG-2和MPEG-2.5一帧只包含1个gr。MP3 编码则是以 gr 为基本单元的。首先 576 个 PCM 样本经过多相分析滤波器组(Polyphase Analysis Filterbank)[5,6],转换成 32 个等频宽的子带信号(Subband Signal),然后通过改良离散余弦变换(Modified Discrete CosineTransform, MDCT),将子带时域信号转化为频线值,每个子带 18 条,一共 576 条频线。在此过程中,会用到第二心理声学模型提供的窗口类型。对于快变信号做三次连续短窗(12 点)的 MDCT,以提高信号的时域分辨率和控制前回音;对于慢变信号做一次长窗(36 点)的 MDCT[7],以提高信号的频域分辨率。同时,第二心理声学模型根据左右声道的相关性计算决定M/S(Middle/Side)还是用 L/R(Left/Right)编码方式。然后根据第二心理声学模型提供的 PE(perceptualentropy)值分配每帧编码比特数,对频线值进行量化;再将量化结果进行反量化计算量化噪声,看其是否在掩敝曲线以下;否则反复调整比例因子(scalefactor),重新量化,直到量化噪声达到最优,退出量化循环,对量化结果进行哈夫曼编码。最后按照 MPEG 标准规定的数据流格式输出。 基于SEP3203的MP3播放器实现+流程图(4):http://www.751com.cn/tongxin/lunwen_7090.html