MP3播放器的原理与实现引言随着多媒体、无线通讯与互联网的融合,信息量不断增加,促使人类实现更为广泛的信息多媒体交互,这其中最为关键的就是信息的数字化技术。信息数字化有许多优点,如可以有效地提高传输和存储的质量,存储无失真,传输中抗干扰能力强,易于加密,适合大规模集成等。大多数信源如声音、图像等都是模拟信号,PCM编码技术将这些时间和幅度上都是连续的模拟信号转换为时间和幅度上都是离散的数字信号,以便于在数字领域对信号进行处理、传输和存储等。信息数字化也带来了一些问题,如数据量过大,传输时对带宽的需求大幅度增加。为了解决信息数字化所带来的问题,提出了各种数据压缩编码方案,数据压缩是在尽量保持信号原有质量的同时,减少信息的数据量。将压缩后的数据进行传输和存储,既提高了通信干线的传输效率,又节约了存储空间,具有明显的社会效益和经济效益。声音、图像等多媒体的信息数据有很强的相关性,就是含有穴余信息。数据压缩则是把这些穴余信息去掉,保留相互独立的信息分量。本文主要从信息压缩角度,简要论述音频信号编码解码原理和MP3播放器的功能结构实现。为了论述的方便,本文首先简要介绍一些音频压缩的基础知识,然后再详细介绍MP3的编码解码原理,最后介绍一种MP3的硬件实现方式。1MPEG压缩标准随着数字化、网络化、全球一体化信息时代的来临,多媒体技术成为信息技术的重要组成部分。它包括声音、图形、数据以及图像在内的多种媒体信息的传送和处理,其关键在于压缩技术。到目前为止,在视频/音频压缩领域,MPEG成为最热也是应用最多的压缩技术。随着互联网和宽带的发展,MPEG技术越来越多地在各个领域得到应用。MPEG图像专家组始建于1988年,是为数字视/音频制定压缩标准的专家组。这个组织制定的各个标准都有不同的目标和应用,目前已提出MPEG-1、MPEG-2、MPEG-4、MPEG-7、MPEG-21标准。MPEG压缩格式是由运动图像专家组(MotionPictureExpertsGroup)制定的关于影像和声音的一组标准,其中MP3(全称是MPEGAudioLayer3)就是为了压缩声音信号而设计的是一种新的音频信号压缩格式标准。MPEG-1标准采用高性能音频压缩编码算法,采用分为三层的音频编码算法(其实质是三种相互关联的三种编码方案),而且三层次编/解码算法按层次兼容。层I是简单压缩,它是一种听觉心理声学模型下的亚抽样编码。层IⅡI,加入了更高的精度。层IⅢI,是现在流行的MP3音乐格式,加入了非线性量化、霍夫曼编码和其它实现低速率高保真音质的先进技术,它可以把一个1.4Mbit/s的立体声双通道数据流压缩为32Kbit/s~384Kbit/s且保持高保真的音质。MPEG-1中的第三层音频压缩模式比第一层和第二层编码要复杂得多,但音质最高,可与CD音质相媲美。MPEG-1音频标准是一个普遍适用的音频压缩标准,它对音频源没有任何要求。它利用人耳听觉系统的感知特性,压缩率的取得来自去掉人耳听不到的信息细节,虽然压缩是有失真的,但对人耳来说这些失真是听不到的。也即对人耳而言,MPEG一1音频压缩是不失真的。因此,MPEG一1音频标准的应用非常广泛2MP3标准特点本文介绍的MP3是采用国际标准MPEG-1中的第三层音频压缩模式,对数字音频信号进行压缩的一种有损压缩格式,中文也称“电脑网络音乐”。它是一个让音乐界产生巨大震动的一个声音格式。MP3标准用尽可能低的码流位率实现CD音质的声音而不会产生数据损失。高压缩比是MP3的1
1 MP3 播放器的原理与实现 引言 随着多媒体、无线通讯与互联网的融合,信息量不断增加,促使人类实现更为广泛的信息多媒体 交互,这其中最为关键的就是信息的数字化技术。信息数字化有许多优点,如可以有效地提高传输和 存储的质量,存储无失真,传输中抗干扰能力强,易于加密,适合大规模集成等。大多数信源如声音、 图像等都是模拟信号,PCM 编码技术将这些时间和幅度上都是连续的模拟信号转换为时间和幅度上 都是离散的数字信号,以便于在数字领域对信号进行处理、传输和存储等。 信息数字化也带来了一些问题,如数据量过大,传输时对带宽的需求大幅度增加。为了解决信息 数字化所带来的问题,提出了各种数据压缩编码方案,数据压缩是在尽量保持信号原有质量的同时, 减少信息的数据量。将压缩后的数据进行传输和存储,既提高了通信干线的传输效率,又节约了存储 空间,具有明显的社会效益和经济效益。声音、图像等多媒体的信息数据有很强的相关性,就是含有 冗余信息。数据压缩则是把这些冗余信息去掉,保留相互独立的信息分量。 本文主要从信息压缩角度,简要论述音频信号编码解码原理和 MP3 播放器的功能结构实现。为 了论述的方便,本文首先简要介绍一些音频压缩的基础知识,然后再详细介绍 MP3 的编码解码原理, 最后介绍一种 MP3 的硬件实现方式。 1 MPEG 压缩标准 随着数字化、网络化、全球一体化信息时代的来临,多媒体技术成为信息技术的重要组成部分。 它包括声音、图形、数据以及图像在内的多种媒体信息的传送和处理,其关键在于压缩技术。到目 前为止,在视频/音频压缩领域,MPEG 成为最热也是应用最多的压缩技术。随着互联网和宽带的发 展,MPEG 技术越来越多地在各个领域得到应用。 MPEG 图像专家组始建于 1988 年,是为数字视/音频制定压缩标准的专家组。这个组织制定的各 个标准都有不同的目标和应用,目前已提出 MPEG-1、MPEG-2 、MPEG-4、MPEG-7、MPEG-21 标 准。MPEG 压缩格式是由运动图像专家组(Motion Picture Experts Group)制定的关于影像和声音的 一组标准,其中 MP3(全称是 MPEG Audio Layer 3)就是为了压缩声音信号而设计的是一种新的音 频信号压缩格式标准。 MPEG-1 标准采用高性能音频压缩编码算法,采用分为三层的音频编码算法(其实质是三种相互 关联的三种编码方案),而且三层次编/解码算法按层次兼容。层 I 是简单压缩,它是一种听觉心理 声学模型下的亚抽样编码。层 II,加入了更高的精度。层 III,是现在流行的 MP3 音乐格式,加入了 非线性量化、霍夫曼编码和其它实现低速率高保真音质的先进技术,它可以把一个 1.4Mbit/s 的立体 声双通道数据流压缩为 32Kbit/s~384Kbit/s 且保持高保真的音质。MPEG-1 中的第三层音频压缩模式 比第一层和第二层编码要复杂得多,但音质最高,可与 CD 音质相媲美。MPEG-1 音频标准是一个 普遍适用的音频压缩标准,它对音频源没有任何要求。它利用人耳听觉系统的感知特性,压缩率的 取得来自去掉人耳听不到的信息细节,虽然压缩是有失真的,但对人耳来说这些失真是听不到的。 也即对人耳而言,MPEG-1 音频压缩是不失真的。因此,MPEG-1 音频标准的应用非常广泛。 2 MP3 标准特点 本文介绍的 MP3 是采用国际标准 MPEG-1 中的第三层音频压缩模式,对数字音频信号进行压缩 的一种有损压缩格式,中文也称“电脑网络音乐”。它是一个让音乐界产生巨大震动的一个声音格 式。MP3 标准用尽可能低的码流位率实现 CD 音质的声音而不会产生数据损失。高压缩比是 MP3 的
一个显著特点。如果对于一段声音不进行压缩的话,那么每存储一秒钟的立体声CD音质音乐必须用1.4Mbit,这是个十分大的开销。通过运用MPEG音频标准的压缩技术,我们可以把存储空间压缩到原来的十二分之一而不会降低声音的音质。即使使用二十四分之一的压缩因子,仍然比单纯降低采样率的音质要好。此外,MP3标准的文件制作简单,交流方便。一台电脑就可以将CD节目录入电脑硬盘,再压缩成MP3格式,网络上也有海量的MP3音乐资源。MP3标准对音频信号的压缩是基于人的听觉系统的特点而制定的技术。人耳的听觉系统对不同频率音频信号的敏感度,不同频率处的噪声容忍度有着很大的差异。人耳对音频信号频率感知范围大致从20Hz~20kHz。对每一个频率信号而言,有一个相对应的听觉阈值。在没有任何噪音干扰的条件下,只有当某一频率信号的能量大于相应的听觉阈值时,则该信号才可被听到。然而高压缩比是牺牲细微的音质换来的,它采用知觉音频编码器降低码率,但MP3一个显著的缺点是延迟时间长。它的最小理论延时是59ms,而实际值往往更大。对于一些特定的应用,比如全双工语音通信,较长的延时会影响通话质量。3MP3编码与解码3.1MP3编码MP3是一种基于频域的子带编码,其基本流程如图1所示:原始的模拟信号经过AD采样器后,转化为PCM样本,作为MP3编码器的数据输入源。整个MP3编码是基于频域的编码,因此必须将原始的PCM做时频转换。由于我们不可能将整个时域上的信号通过一次付立叶变换转换到频域上(音频信号是时变的),因此只能在时域上逐段进行,于是我们将PCM样本分块进行处理。MP3编码则是以颗粒(granule)为基本单元的。首先576个PCM样本经过多相分析滤波器组,转换成32个等频宽的子带信号,然后通过改良离散余弦变换(ModifiedDiscreteCosineTransform,MDCT),将子带时域信号转化为频线值,每个子带18条,一共576条频线。PCMNN哈比特分配和32通道分析子MDCT夫曼编带滤波器组量化循环ΛVMP344V数据码格式第二心理声学辅助信FFT模型息编码图1MP3编码流程图在此过程中,会用到第二心理声学模型提供的窗口类型。对于快变信号做三次连续短窗(12点)的MDCT,以提高信号的时域分辨率和控制前回音对于慢变信号做一次长窗(36点)的MDCT,以提高信号的频域分辨率。同时,第二心理声学模型根据左右声道的相关性计算决定用M/S(Middle/Side)还是用L/R(Left/Right)编码方式。然后根据第二心理声学模型提供的PE(perceptualentropy)值分配每顿编码比特数,对频线值进行量化,再将量化结果进行反量化计算量化噪声,看其是否在掩曲线以下,否则反复调整比例因子(scalefactor),重新量化,直到量化噪声达到最优,退出量化循环,最后对量化结果进行哈夫曼编码。3.2MP3解码MP3解码实际上就是MP3编码的逆过程,算法和步骤更为简洁。在解码过程中,不用进行心理声学的处理和寻找最佳量化(噪声不被感知)的循环,使处理过程大大简化。首先介绍一下MP3的数据结构,下图2清楚地展示了MP3数据顿的存储状况。需要说明的是辅助数据(AncillaryData)并不是MP3码流中必需的,它主要是一些用户自定义信息,如专辑名、歌曲名、艺术家等信息。2
2 一个显著特点。如果对于一段声音不进行压缩的话,那么每存储一秒钟的立体声 CD 音质音乐必须 用 1.4Mbit,这是个十分大的开销。通过运用 MPEG 音频标准的压缩技术,我们可以把存储空间压 缩到原来的十二分之一而不会降低声音的音质。即使使用二十四分之一的压缩因子,仍然比单纯降 低采样率的音质要好。此外,MP3 标准的文件制作简单,交流方便。一台电脑就可以将 CD 节目录 入电脑硬盘,再压缩成 MP3 格式,网络上也有海量的 MP3 音乐资源。 MP3 标准对音频信号的压缩是基于人的听觉系统的特点而制定的技术。人耳的听觉系统对不同 频率音频信号的敏感度,不同频率处的噪声容忍度有着很大的差异。人耳对音频信号频率感知范围 大致从 20Hz~20kHz。对每一个频率信号而言,有一个相对应的听觉阈值。在没有任何噪音干扰的 条件下,只有当某一频率信号的能量大于相应的听觉阈值时,则该信号才可被听到。 然而高压缩比是牺牲细微的音质换来的,它采用知觉音频编码器降低码率,但 MP3 一个显著的 缺点是延迟时间长。它的最小理论延时是 59ms,而实际值往往更大。对于一些特定的应用,比如全 双工语音通信,较长的延时会影响通话质量。 3 MP3 编码与解码 3.1 MP3 编码 MP3 是一种基于频域的子带编码,其基本流程如图 1 所示: 原始的模拟信号经过 AD 采样器后,转化为 PCM 样本,作为 MP3 编码器的数据输入源。整 个 MP3 编码是基于频域的编码,因此必须将原始的 PCM 做时频转换。由于我们不可能将整个时 域上的信号通过一次付立叶变换转换到频域上(音频信号是时变的),因此只能在时域上逐段进行, 于是我们将 PCM 样本分块进行处理。MP3 编码则是以颗粒(granule)为基本单元的。首先 576 个 PCM 样本经过多相分析滤波器组,转换成 32 个等频宽的子带信号,然后通过改良离散余弦变换 (Modified Discrete Cosine Transform, MDCT),将子带时域信号转化为频线值,每个子带 18 条,一 共 576 条频线。 32通道分析子 带滤波器组 MDCT 比特分配和 量化循环 哈 夫 曼 编 码 MP3 数据 格式 FFT 第二心理声学 模型 辅助信 息编码 PCM 图 1 MP3 编码流程图 在此过程中,会用到第二心理声学模型提供的窗口类型。对于快变信号做三次连续短窗(12 点) 的 MDCT,以提高信号的时域分辨率和控制前回音;对于慢变信号做一次长窗(36 点)的 MDCT, 以提高信号的频域分辨率。 同时,第二心理声学模型根据左右声道的相关性计算决定用 M/S(Middle/Side)还是用 L/R(Left/Right)编码方式。然后根据第二心理声学模型提供的 PE(perceptual entropy)值分配每帧编码 比特数,对频线值进行量化,再将量化结果进行反量化计算量化噪声,看其是否在掩敝曲线以下, 否则反复调整比例因子(scale factor),重新量化,直到量化噪声达到最优,退出量化循环,最后对量 化结果进行哈夫曼编码。 3.2 MP3 解码 MP3 解码实际上就是 MP3 编码的逆过程, 算法和步骤更为简洁。在解码过程中,不用进行心理 声学的处理和寻找最佳量化(噪声不被感知)的循环,使处理过程大大简化。首先介绍一下 MP3 的 数据帧结构,下图 2 清楚地展示了 MP3 数据帧的存储状况。需要说明的是辅助数据(Ancillary Data) 并不是 MP3 码流中必需的,它主要是一些用户自定义信息,如专辑名、歌曲名、艺术家等信息
也就是说,辅助数据是与MP3码流无关的其它数据。解码主要就是针对头、CRC、旁信息和主数据四部分的解码。图3是MP3解码过程的框图。framelframe2frame3SideAncillaryCRCHeaderMain dataInformationDatagranuleogranulelRightRightLeft channelLeft channelchannelchannelHuffimanScaleHuffimanScale9.factorscodefactorscode图2MP3顿结构示意图哈夫曼逆量化重排序同解码立步体及哈夫曼信声比特流差息解码解错码检尺度因子查解码合成多相左声道PCM混淆缩减IMDCT频率反转滤波合成多相混淆缩减频率反转IMDCT右声道PCM滤波图3MP3解码过程框图了解了MP3的数据帧结构,下面简要介绍一下MP3的解码流程。在MP3解码过程中,首先搜索顿头(Header)里的12位同步字,接下来解析头信息和旁信息,旁信息中包含了每一个granule中所需的解码信号。由于MP3比特池机制的运用,使主数据(maindata)并不在当前旁信息之后:通过旁信息里的main_data_begin来指出主数据的开始位置。解主数据时,首先根据旁信息里的scalefac_compress来对scalefactor做解码。scalefac_compress主要的用途是告诉我们当blocktype3
3 也就是说,辅助数据是与 MP3 码流无关的其它数据。解码主要就是针对头、CRC、旁信息和主数 据四部分的解码。图 3 是 MP3 解码过程的框图。 frame1 frame2 frame3 Header CRC Side Information Main data Ancillary Data granule0 granule1 Right channel Left channel Huffman code Scale factors Huffman code Scale factors Right channel Left channel 图 2 MP3 帧结构示意图 图 3 MP3 解码过程框图 了解了 MP3 的数据帧结构,下面简要介绍一下 MP3 的解码流程。在 MP3 解码过程中,首先搜 索帧头(Header)里的 12 位同步字,接下来解析头信息和旁信息,旁信息中包含了每一个 granule 中 所需的解码信号。由于 MP3 比特池机制的运用,使主数据(main data)并不在当前旁信息之后, 通过旁信息里的 main_data_begin 来指出主数据的开始位置。解主数据时,首先根据旁信息里的 scalefac_compress 来对 scale factor 做解码。scalefac_compress 主要的用途是告诉我们当 blocktype
为0、1、2、3时,需要使用码流里的多少个bit解出scalefactor。解出的scalefactor作为反量化时各个scalefactorband里的比例因子。接着对剩下的比特做哈夫曼解码。哈夫曼解码是根据bigvalue、count1的值逐一解出576条频线。哈夫曼解码结束代表码流里当前颗粒的信息已经完成语法解析(parsing)工作。接着,就是将解出的频线值进行反量化(Requantization)、联合立体声处理(Joint-Stereoprocessing)、IMDCT和综合子带滤波(SynthesisSubbandFiltering)的处理。IMDCT是指将经过反量化后的频线做频域到时域的转换,得到32路子带时域样本,综合子带滤波是指通过合成滤波器组将32路子带信号合成一路信号输出,输出即为PCM样本。整个解码过程的流程图如图4所示。开始++重排序获取比特流,搜寻慎头++立体声处理语法分析顿头11解码边信息IMDCT++频率翻转解码比例因子++解码霍夫曼编码合成多路滤波器组T+逆量化输出PCM+结束:图4MP3解码流程图4MP3播放器实现用MPEG层三算法压缩处理后的文件统称为MP3文件,能够对MP3文件进行解码并还原声音的系统都可以被称为MP3播放器。这样,MP3播放器也有两种类型,一种是在计算机上运行的软件,能够解码MP3文件,并用声卡输出还原的声音信号:另一种是可以播放MP3音乐的设备,设备的存储介质中存放着MP3文件,播放器能够解码这些文件,并把还原的声音信号用喇叭、音箱或是耳机等输出出来。我们称这种设备为便携式MP3播放器。本文主要介绍便携式MP3播放器。便携式MP3播放器需要有闪速存储器来存储MP3源文件,有一个解码器以进行MP3的解码系统中的微控制器负责协调各个模块的工作,输出部分需要有功率放大器和扬声器,以输出声音码流,同时,播放器还应该有一个与PC机连接的接口,用来下载歌曲文件。便携式MP3播放器的系统结构如图5所示。用户通过PC机与MP3播放器的连接电缆把获得的MP3文件下载到存储器中,微控制器将MP3文件从存储器中读出形成MPEG码流,送到解码器中,解码后的PCM信号再送到音频模数转换器形成模拟信号,经过功率放大器放大后就可以用耳机欣赏到CD效果的音乐了。4
4 为 0、1、2、3 时,需要使用码流里的多少个 bit 解出 scalefactor。解出的 scalefactor 作为反量化时 各个 scalefactorband 里的比例因子。接着对剩下的比特做哈夫曼解码。哈夫曼解码是根据 big value、 count1 的值逐一解出 576 条频线。哈夫曼解码结束代表码流里当前颗粒的信息已经完成语法解析 (parsing)工作。接着,就是将解出的频线值进行反量化(Requantization)、联合立体声处理 (Joint-Stereo processing)、IMDCT 和综合子带滤波(Synthesis Subband Filtering)的处理。IMDCT 是指将经过反量化后的频线做频域到时域的转换,得到 32 路子带时域样本,综合子带滤波是指通 过合成滤波器组将 32 路子带信号合成一路信号输出,输出即为 PCM 样本。整个解码过程的流程 图如图 4 所示。 开始 获取比特流,搜寻帧头 语法分析帧头 解码边信息 解码比例因子 解码霍夫曼编码 逆量化 重排序 立体声处理 IMDCT 频率翻转 合成多路滤波器组 输出PCM 结束 图 4 MP3 解码流程图 4 MP3 播放器实现 用 MPEG 层三算法压缩处理后的文件统称为 MP3 文件,能够对 MP3 文件进行解码并还原声音 的系统都可以被称为 MP3 播放器。这样,MP3 播放器也有两种类型,一种是在计算机上运行的软件, 能够解码 MP3 文件,并用声卡输出还原的声音信号;另一种是可以播放 MP3 音乐的设备,设备的 存储介质中存放着 MP3 文件,播放器能够解码这些文件,并把还原的声音信号用喇叭、音箱或是耳 机等输出出来。我们称这种设备为便携式 MP3 播放器。本文主要介绍便携式 MP3 播放器。 便携式 MP3 播放器需要有闪速存储器来存储 MP3 源文件,有一个解码器以进行 MP3 的解码, 系统中的微控制器负责协调各个模块的工作,输出部分需要有功率放大器和扬声器,以输出声音码 流,同时,播放器还应该有一个与 PC 机连接的接口,用来下载歌曲文件。便携式 MP3 播放器的系 统结构如图 5 所示。 用户通过 PC 机与 MP3 播放器的连接电缆把获得的 MP3 文件下载到存储器中,微控制器将 MP3 文件从存储器中读出形成 MPEG 码流,送到解码器中,解码后的 PCM 信号再送到音频模数转换器 形成模拟信号,经过功率放大器放大后就可以用耳机欣赏到 CD 效果的音乐了
耳机音频Internet/CD闪存功放DAC4PCUSB微控制器解码器扬声器音频键盘LCD驱动器功放DAC图5便携式MP3结构框图五结论MP3格式由于其高压缩性、高品质、操作简单,广泛地应用于网络流媒体、移动设备和数a.字广播中。MP3所获得的高压缩比是以牺牲部分不影响人类听觉系统的频率信号获得的,因此它是一种有损压缩方式。MP3的编码是基于频域的子带编码,充分地利用心理声学模型的临界频带和掩蔽效应,对b.频域样值进行量化编码。MP3解码相对而言原理比较简单,但需要不断地优化解码算法。MP3播放器实质就是一个解码器,其实现方案有硬件也有软件,既可以基于PC实现MP3C.解码,也可以基于MCU和编码芯片或者FPGA的硬件逻辑实现解码,具体要考虑成本和性能
5 Internet/CD PC USB 微控制器 闪存 键盘 LCD驱动器 解码器 音频 DAC 功放 音频 DAC 功放 扬声器 耳机 图 5 便携式 MP3 结构框图 五 结论 a. MP3 格式由于其高压缩性、高品质、操作简单,广泛地应用于网络流媒体、移动设备和数 字广播中。MP3 所获得的高压缩比是以牺牲部分不影响人类听觉系统的频率信号获得的, 因此它是一种有损压缩方式。 b. MP3 的编码是基于频域的子带编码,充分地利用心理声学模型的临界频带和掩蔽效应,对 频域样值进行量化编码。MP3 解码相对而言原理比较简单,但需要不断地优化解码算法。 c. MP3 播放器实质就是一个解码器,其实现方案有硬件也有软件,既可以基于 PC 实现 MP3 解码,也可以基于 MCU 和编码芯片或者 FPGA 的硬件逻辑实现解码,具体要考虑成本和 性能