中国科学技术大学电子工程与信息科学系多媒体通信实验室(Copyright2002) Mp3音乐文件播放实验 一、实验目的 1、了解mp3音乐文件格式: 2、了解mp3音乐文件播放的基本原理: 3、熟悉mp3音乐文件的播放技术: 4、熟悉mp3网络音乐播放技术。 二、实验原理 1、声音文件的格式 在Windows操作系统下,常见的音乐文件格式包括MDI、CD声、WAV以及其他格式。 MDI序列 MDI声的声音样本以波形文件(WAV储存于声卡中,人称波表,波表越大,音色越多, 音质越好。电脑在演奏MDI时,向声卡发出一控制信号,其中包含音色、音阶、音强等信 息(均用序列号码表示),声卡从自身的音色库中按照标准序列号找到对应的波形,然后播 放。所以,在MDI文件中只包含有声音的类型,强度,音阶等信息,体积小巧。 根据MDI的原理,不同的声卡演奏的MDI乐曲的效果是不一样的,而且同一曲目的 MDI文件因其包含的控制信息的丰富程度不同,在同一块声卡上播放的效果也不一样。 CD碟片 CD碟片上载有取样精度为44.1KHZ的声音信号,这些信号己是无压缩的,直接将波形 采样而成,这些声音的播放可是与CPU、硬盘、播放软件没一点关系。播放软件向光驱发 出一个控制信号,光驱读碟,碟上信号由光头读出,送光驱内置解码电路DAC解码,然后 流向光驱内置前级放大电路放大,由光驱背板上的音频输出口输出往声卡,声卡将此信号分 作两路,一路直接送线路输出口(LINE OUT)输出,推有源音箱。一路送卡载后级放大电路 进行后级放大,送扬声器输出口(SPEAK OUT)作功率输出,推动无源音箱。 电脑播放CD之音质与CPU,软件毫无关系。在前级中,关键在于光驱中内置解码模 块(DAC)的解码能力,以及光驱内置前级放大模块之电气性能:在后级中,关键在于声卡之 直通效果与卡载之后级放大电路的性能,如果使用有源音箱,亦取决于音箱中之内置后级放 大电路的效果。 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系network@ustc.cdu.cn cxh@ustc.cdu.cn
中国科学技术大学电子工程与信息科学系 多媒体通信实验室(Copyright 2002) Mp3 音乐文件播放实验 一、实验目的 1、 了解 mp3 音乐文件格式; 2、 了解 mp3 音乐文件播放的基本原理; 3、 熟悉 mp3 音乐文件的播放技术; 4、 熟悉 mp3 网络音乐播放技术。 二、实验原理 1、声音文件的格式 在 Windows 操作系统下,常见的音乐文件格式包括 MIDI、CD 声、WAV 以及其他格式。 MIDI 序列 MIDI 声的声音样本以波形文件(WAV)储存于声卡中,人称波表,波表越大,音色越多, 音质越好。电脑在演奏 MIDI 时,向声卡发出一控制信号,其中包含音色、音阶、音强等信 息(均用序列号码表示),声卡从自身的音色库中按照标准序列号找到对应的波形,然后播 放。所以,在 MIDI 文件中只包含有声音的类型,强度,音阶等信息,体积小巧。 根据 MIDI 的原理,不同的声卡演奏的 MIDI 乐曲的效果是不一样的,而且同一曲目的 MIDI 文件因其包含的控制信息的丰富程度不同,在同一块声卡上播放的效果也不一样。 CD 碟片 CD 碟片上载有取样精度为 44.1KHZ 的声音信号,这些信号已是无压缩的,直接将波形 采样而成,这些声音的播放可是与 CPU、硬盘、播放软件没一点关系。播放软件向光驱发 出一个控制信号,光驱读碟,碟上信号由光头读出,送光驱内置解码电路 DAC 解码,然后 流向光驱内置前级放大电路放大,由光驱背板上的音频输出口输出往声卡,声卡将此信号分 作两路,一路直接送线路输出口(LINE OUT)输出,推有源音箱。一路送卡载后级放大电路 进行后级放大,送扬声器输出口(SPEAK OUT)作功率输出,推动无源音箱。 电脑播放 CD 之音质与 CPU,软件毫无关系。在前级中,关键在于光驱中内置解码模 块(DAC)的解码能力,以及光驱内置前级放大模块之电气性能;在后级中,关键在于声卡之 直通效果与卡载之后级放大电路的性能,如果使用有源音箱,亦取决于音箱中之内置后级放 大电路的效果。 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 network@ustc.edu.cn cxh@ustc.edu.cn
中国科学技术大学电子工程与信息科学系多媒体通信实验室(Copyright2002) WAV、MP3文件 WAV即波形文件,是将声音直接取样,转变为数字,不加压缩的声音文件,体积庞大。 电脑在播放WAV时,从硬盘中提取WAV中之数据,由CPU控制播放软件进行解码,送声 卡前级放大,然后送音箱发声。MP3等文件则是在WAV将声音数字化的基础上,进一步压 缩、编码而成的文件格式。播放时,由CPU控制播放软件进行解码,解压,送声卡前级放 大,后送音箱发声。 WAV,MP3这类文件的播放完全依赖电脑的软件环境,对CPU等控制器也相当倚重,所 以,我们可以通过软件来编辑,处理这类文件,电脑在播放这类声音时的效果与播放软件, 处理器能力,声卡的前级放大性能有极大关系。 2、MP3编码技术 MP3的全称应为MPEG1 Layer-3音频文件,MPEG音频文件是MPEG1标准中的声音 部分,也叫MPEG音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer--l、Layer2、 Layer3,且分别对应MPI、MP2、MP3这三种声音文件,并根据不同的用途,使用不同层 次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和MP2的压 缩率分别为4:1和6:1-8:1,而MP3的压缩率则高达10:1至12:1。不过MP3对音频 信号采用的是有损压缩方式,为了降低声音失真度,MP3采取了“感官编码技术”,即编码 时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的 每一位打散排列,最后形成具有较高压缩比的MP3文件,并使压缩后的文件在回放时能够 达到比较接近原音源的声音效果。虽然它是一种有损压缩方式,但它以极小的声音失真换来 较高的压缩比,因此得以在因特网上广泛传播。 3、MP3播放器原理 根据德国Fraunhofer IIS(http:/www.is.fhg.de/amm/)公布的MPEG Audio解码程序进行 简化后编写了一个最简MP3解码程序。有兴趣的读者可以参考对应的源程序 (http://www.see.online.sh.cn/ch/sw/self/rainplay/layer3.zip). MP3文件由多个帧组成,也就是说帧是MP3音乐文件的最小组成单位。每个帧又由帧 头和帧数据组成。每个帧头长4字节。其数据结构如下: typedef struct tagHeader{ unsigned int sync:l2;/同步信息 unsigned int version:l;/版本 unsigned int layer:2:/∥层 unsigned int error_protection:l,/CRC校正 unsigned int bit_rate_index:4,∥位率索引 unsigned int sample rate index:2:/采样率索引 unsigned int padding:l;/倥白字 unsigned int extension:l;/∥私有标志 unsigned int channel_mode:2;/位体声模式 unsigned int mode extension:2,/∥保留 unsigned int copyright:.l;/W版权标志 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系network@ustc.edu.cn cxh@ustc.cdu.cn
中国科学技术大学电子工程与信息科学系 多媒体通信实验室(Copyright 2002) WAV、MP3 文件 WAV 即波形文件,是将声音直接取样,转变为数字,不加压缩的声音文件,体积庞大。 电脑在播放 WAV 时,从硬盘中提取 WAV 中之数据,由 CPU 控制播放软件进行解码,送声 卡前级放大,然后送音箱发声。MP3 等文件则是在 WAV 将声音数字化的基础上,进一步压 缩、编码而成的文件格式。播放时,由 CPU 控制播放软件进行解码,解压,送声卡前级放 大,后送音箱发声。 WAV,MP3 这类文件的播放完全依赖电脑的软件环境,对 CPU 等控制器也相当倚重,所 以,我们可以通过软件来编辑,处理这类文件,电脑在播放这类声音时的效果与播放软件, 处理器能力,声卡的前级放大性能有极大关系。 2、MP3 编码技术 MP3 的全称应为 MPEG1 Layer-3 音频文件,MPEG 音频文件是 MPEG1 标准中的声音 部分,也叫 MPEG 音频层,它根据压缩质量和编码复杂程度划分为三层,即 Layer-1、Layer2、 Layer3,且分别对应 MP1、MP2、MP3 这三种声音文件,并根据不同的用途,使用不同层 次的编码。MPEG 音频编码的层次越高,编码器越复杂,压缩率也越高,MP1 和 MP2 的压 缩率分别为 4:1 和 6:1-8:1,而 MP3 的压缩率则高达 10:1 至 12:1。不过 MP3 对音频 信号采用的是有损压缩方式,为了降低声音失真度,MP3 采取了“感官编码技术”,即编码 时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的 每一位打散排列,最后形成具有较高压缩比的 MP3 文件,并使压缩后的文件在回放时能够 达到比较接近原音源的声音效果。虽然它是一种有损压缩方式,但它以极小的声音失真换来 较高的压缩比,因此得以在因特网上广泛传播。 3、MP3 播放器原理 根据德国 Fraunhofer IIS (http://www.iis.fhg.de/amm/ )公布的 MPEG Audio 解码程序进行 简 化后编 写了一 个最简 MP3 解 码程序 。有兴 趣的读 者可以 参考对 应的源 程 序 (http://www.see.online.sh.cn/ch/sw/self/rainplay/layer3.zip)。 MP3 文件由多个帧组成,也就是说帧是 MP3 音乐文件的最小组成单位。每个帧又由帧 头和帧数据组成。每个帧头长 4 字节。其数据结构如下: typedef struct _tagHeader { unsigned int sync:12; //同步信息 unsigned int version:1; //版本 unsigned int layer:2; //层 unsigned int error_protection:1; //CRC 校正 unsigned int bit_rate_index:4; //位率索引 unsigned int sample_rate_index:2; //采样率索引 unsigned int padding:1; //空白字 unsigned int extension:1; //私有标志 unsigned int channel_mode:2; //立体声模式 unsigned int mode extension:2; //保留 unsigned int copyright:1; //版权标志 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 network@ustc.edu.cn cxh@ustc.edu.cn
中国科学技术大学电子工程与信息科学系多媒体通信实验室(Copyright2002) unsigned int original:I;∥原始媒体 unsigned int emphasis:2,/强调方式 HEADER.LPHEADER: 其中帧同步标记为OxFFF。 在帧头后边是Side Info(姑且称之为通道信息)。对标准的立体声MP3文件来说其长度 为32字节。通道信息后面是Scale factor(增益因子)信息。当解码器在读到上述信息后,就 可以进行解码了。 当MP3文件被打开后,播放器首先试图对帧进行同步,然后分别读取通道信息及增益 因子等数据,再进行霍夫曼解码,至此我们已经获得解压后的数据。但这些数据仍然不能进 行播放,它们还处于频域,要想听到歌曲还要将它由频域通过特定的手段转换到时域。接下 来的处理分别为立体化处理;抗锯齿处理;M①CT变换;DCT变换及窗口化滑动处理。 4、mp3PRO的编码原理 我们通常收听的mp3音乐文件一般都以128kbps的比特率压缩而成的。但如果采用更 低的比特率(如96kbs或64kbps),我们可以非常明显的感觉到声音的高频部分丢失现象明 显,严重时声音还会产生扭曲现象。这其中的原因在于,以这些低比特率压缩而成的即3 在编码时无法对声音的整个频带进行压缩,从而丢失了高频段一些重要的声音信息。 为了能够在低比特率下获得更高音质的mp3文件,一项称作SBR(Spectral Band Replication)的技术被用于新的mp3PRO编码中,其主要的用处在于保留了声音中的高频音, 使得以低比特率压缩的mp3文件音质得到显著的增强。 mp3PRO在进行编码时,mp3PRO编码器将音频的录音分成两个部分:mp3部分和PRO部 分。mp3部分分析低频段(Low Frequency Band)信息,并将其编码成通常的mp3文件数据 流。这就使得编码器能够集中编码更少的有用信息,获得更佳品质的编码效果。同时,这也 保证了mp3PRO文件同老的mp3播放器的兼容性。PRO部分分析的则是高频段(High Frequency Band)信息,并将其编码成mp3数据流的一部分,而这些通常在老的mp3解码 器里是被忽略的。新的m即3PRO解码器会有效地利用这部分数据流,将两段(高频段和低 频段)合并起来产生完全的音频带,达到增强音质的效果。 5、在线mp3播放 三、实验内容 1、根据实验室提供的示例代码编写自己的m即3文件播放器: 2、编写一个可以支持播放网络mp3音乐的播放器。 四、思考题 1、请列出m即3压缩都使用了哪些使音频文件有效压缩的方法? 2、比较各类软硬件配置对各类声音文件mDL,CD,WAVE,MP3播放效果的影响。 3、进行mp3PRO与mp3方法的优缺点比较,对mp3PRO的发展前景提出你自己的看法。 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系network@ustc.edu.cn cxh@ustc.cdu.cn
中国科学技术大学电子工程与信息科学系 多媒体通信实验室(Copyright 2002) unsigned int original:1; //原始媒体 unsigned int emphasis:2; //强调方式 } HEADER, *LPHEADER; 其中帧同步标记为 0xFFF。 在帧头后边是 Side Info(姑且称之为通道信息)。对标准的立体声 MP3 文件来说其长度 为 32 字节。通道信息后面是 Scale factor(增益因子)信息。当解码器在读到上述信息后,就 可以进行解码了。 当 MP3 文件被打开后,播放器首先试图对帧进行同步,然后分别读取通道信息及增益 因子等数据,再进行霍夫曼解码,至此我们已经获得解压后的数据。但这些数据仍然不能进 行播放,它们还处于频域,要想听到歌曲还要将它由频域通过特定的手段转换到时域。接下 来的处理分别为立体化处理;抗锯齿处理;IMDCT 变换;IDCT 变换及窗口化滑动处理。 4、mp3PRO 的编码原理 我们通常收听的 mp3 音乐文件一般都以 128kbps 的比特率压缩而成的。但如果采用更 低的比特率(如 96kbps 或 64kbps),我们可以非常明显的感觉到声音的高频部分丢失现象明 显,严重时声音还会产生扭曲现象。这其中的原因在于,以这些低比特率压缩而成的 mp3 在编码时无法对声音的整个频带进行压缩,从而丢失了高频段一些重要的声音信息。 为了能够在低比特率下获得更高音质的 mp3 文件,一项称作 SBR(Spectral Band Replication)的技术被用于新的 mp3PRO 编码中,其主要的用处在于保留了声音中的高频音, 使得以低比特率压缩的 mp3 文件音质得到显著的增强。 mp3PRO 在进行编码时,mp3PRO 编码器将音频的录音分成两个部分:mp3 部分和 PRO 部 分。mp3 部分分析低频段(Low Frequency Band)信息,并将其编码成通常的 mp3 文件数据 流。这就使得编码器能够集中编码更少的有用信息,获得更佳品质的编码效果。同时,这也 保证了 mp3PRO 文件同老的 mp3 播放器的兼容性。PRO 部分分析的则是高频段(High Frequency Band)信息,并将其编码成 mp3 数据流的一部分,而这些通常在老的 mp3 解码 器里是被忽略的。新的 mp3PRO 解码器会有效地利用这部分数据流,将两段(高频段和低 频段)合并起来产生完全的音频带,达到增强音质的效果。 5、在线 mp3 播放 三、实验内容 1、 根据实验室提供的示例代码编写自己的 mp3 文件播放器; 2、 编写一个可以支持播放网络 mp3 音乐的播放器。 四、思考题 1、 请列出 mp3 压缩都使用了哪些使音频文件有效压缩的方法? 2、 比较各类软硬件配置对各类声音文件 mIDI,CD,WAVE,MP3 播放效果的影响。 3、 进行 mp3PRO 与 mp3 方法的优缺点比较,对 mp3PRO 的发展前景提出你自己的看法。 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 network@ustc.edu.cn cxh@ustc.edu.cn