2 MP3编解码原理
2.1 MP3音频压缩标准概述
MP3全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III)。是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度地降低音频数据量,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。它是在1991年由位于德国埃尔朗根的研究组织Fraunhofer-Gesellschaft的一组工程师发明和标准化的。
简单地说,MP3就是一种音频压缩技术,由于这种压缩方式的全称叫MPEG Audio Layer3,所以人们把它简称为MP3。MP3是利用 MPEG Audio Layer 3 的技术,将音乐以1:10 甚至 1:12 的压缩率,压缩成容量较小的file,换句话说,能够在音质丢失很小的情况下把文件压缩到更小的程度。而且还非常好的保持了原来的音质。正是因为MP3体积小,音质高的特点使得MP3格式几乎成为网上音乐的代名词。每分钟音乐的MP3格式只有1MB左右大小,这样每首歌的大小只有3-4兆字节。使用MP3播放器对MP3文件进行实时的解压缩(解码),这样,高品质的MP3音乐就播放出来了。
MP3是一个数据压缩格式。它丢弃掉脉冲编码调制(PCM)音频数据中对人类听觉不重要的数据,从而达到了小得多的文件大小。
MP3是一种基于频域的子带编码,其基本流程如图2-1所示:
图2-1 MP3压缩算法流程框图【1】
原始的模拟信号经过AD采样器后,转化为PCM样本,作为MP3编码器的数据输入源。整个MP3编码是基于频域的编码,因此必须将原始的PCM做时频转换。由于我们不可能将整个时域上的信号通过一次付立叶变换转换到频域上(音频信号是时变的),因此只能在时域上逐段进行,于是我们将PCM样本分块进行处理。对单声道MPEG-1而言,一帧包含2个gr, MP3编码则是以gr为基本单元的。首先576个PCM样本经过多相分析滤波器组(Polyphase Analysis Filterbank),转换成32个等频宽的子带信号(Subband Signal),然后通过改良离散余弦变换(Modified Discrete CosineTransform,MDCT),将子带时域信号转化为频线值,每个子带18条,一共576条频线。在此过程中,会用到第二心理声学模型提供的窗口类型。对于快变信号做三次连续短窗(12点)的MDCT,以提高信号的时域分辨率和控制前回音;对于慢变信号做一次长窗(36点)的MDCT,以提高信号的频域分辨率。[1]
同时,第二心理声学模型根据左右声道的相关性计算决定用M/S(Middle/Side)还是用L/R(Left/Right)编码方式。然后根据第二心理声学模型提供的PE(perceptual entropy)值分配每帧编码比特数,对频线值进行量化;再将量化结果进行反量化计算量化噪声,看其是否在掩敝曲线以下;否则反复调整比例因子(scalefactor),对量化结果重新量化,直到量化噪声达到最优,退出量化循环,对量化结果进行哈夫曼编码。最后按照MPEG标准规定的数据流格式输出。