MPEG-1 and MPEG-2 Layer III Audio
单纯从文件格式上来说,实际并没有“MP3文件”。我们只有“MPEG-1文件”、“MPEG-2文件”和“MPEG-4文件”,而没有“MPEG-3文件”。因为实际就没有MPEG-3这个标准。实际上,是由于项目撤销而导致MPEG-3这个名称。而下一个标准是MPEG-7,再下一个是MPEG-21.
从严格的文件格式上说,我们常说的“MP3文件”,以.mp3后缀名结尾的文件,实际只是恰巧在MPEG-2,MPEG-2,文件格式中,都包含“MPEG Layer III”的音频数据,与之相对应的是MPEG Layer I和MPEG Layer II。对于那些熟知的MPEG文件,其特定的文件格式,不论是MPEG-1还是MPEG-2,都可以用16进制编辑器程序,如Windows下的程序UltraEdit32,很容易地查看到MPEG的头文件信息,其存在与MPEG文件的开始部分。
同样,其他很多MP3播放器也可以提供这些头文件信息,如 Nullsoft‘s Winamp 2.91。当回放一个.mp3文件的时候,只需要简单地按Alt-3就可以调出Winamp的MPEG文件信息窗口和ID3 tag编辑窗口,以显示对应的文件信息。Fraunhofer的旧的MP3播放器WinPlay3也可以在其主GUI窗口显示这些信息。
我们应当注意的是,在公共因特网上,还存在其他一些文件,尽管他们也有.mp3的扩展名,但是实际却不是MPEG-1或是MPEG-2 Layer III文件。常见的是,他们实际是MPEG-1 Layer II的文件,因此其后缀名应该.mp2 。绝大多数用户可能都没有注意到这个差异,主要是因为多数可以对Layer III 音频进行解码的程序,多数也可以对Layer II音频进行解码,也因此可以播放这个虽然名字错了的文件,而不告诉你任何提示信息。
一个.mp3文件到底是MPEG-1的文件还是MPEG-2的文件,主要取决于其在被创建的时候,编码器所选择的参数。决定了MP3编码软件是将产生MPEG-1还是MPEG-2的文件的参数,主要是采样率(单位:kHz),数据率(比特率)(单位:kbps),声道数目(一个声道的单声道,还是两个声道的立体声)。
下表显示了用于MPEG-1,MPEG-2的Layer III(.mp3文件)编码的比特率,采样率和声道数。
此表忽略了MPEG-2.5,是因为其和mp3PRO 编码一样,从没有被官方所正式采用。
也由于此原因,省略了潜在的回放问题,符合MPEG-2.5或mp3PRO的规范就不应该放到网络上被大众下载。
Table 1: Detailed Specifications of MPEG-1/MPEG-2 .MP3 Modes
MPEG File Types / Sampling Rates (in kHz) / Channels | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
"MPEG-1" | "MPEG-2" | "MPEG-2.5" | ||||||||
Quality | Bitrate | 48 | 44.1 | 32 | 24 | 22.05 | 16 | 12 | 11.025 | 8 |
Studio | 256 | Stereo | Stereo | Stereo | ||||||
192 | Stereo | Stereo | Stereo | |||||||
CD | 128 | Stereo | Stereo | Stereo | ||||||
112 | Stereo | Stereo | Stereo | |||||||
96 | Stereo | Stereo | ||||||||
FM | 64 | Mono | Mono | Mono | Stereo | Stereo | ||||
56 | Mono | Mono | Mono | Stereo | Stereo | Stereo | ||||
48 | Mono | Mono | Mono | Stereo | Stereo | Stereo | ||||
32 | Mono | Mono | Mono | Stereo | Stereo | Stereo | ||||
Modem | 24 | Mono | Mono | Mono | Stereo | Stereo | Stereo | |||
20 | Mono | Stereo/Mono | Stereo/Mono | Stereo | ||||||
18 | Mono | Stereo/Mono | Stereo/Mono | Stereo | ||||||
16 | Mono | Mono | Mono | Mono | ||||||
8 | Mono | Mono | Mono |
我们可以从上面表格看到,原始的MPEG-1规范(ISO/IEC 11172-3),其支持立体声编码,只定义了最高比特率(96~256kbps)和高采样率(32,44.1,48kHz)。在MPEG-2规范中包含另外的Layer III(ISO/IEC 13818-3),是为了扩展其所支持的比特率和采样率的范围,并使其向下兼容。因此,在MPEG-1标准之后的几年后,公布的MPEG-2 Layer III 标准,支持低至48kbps比特率的立体声和16,22.05,24kHz的立体声采样率。
其他有人对MPEG音频文件的技术感兴趣的话,推荐其去这个网站:The Code Project ,去看Konrad Windszus 写的文章。在上面,你可以注册后自由下载,Windows下的应用程序(含源码),叫做MPEG Audio Info十,其可以解析绝大多数的MPEG音频文件,包括MPEG-1,MPEG-2,MPEG-2.5的 Layer III文件,并显示具体参数。不过目前并不支持MPEG-4(.mp4,.m4a,m4b). 🙁
具体低至:
CodeProject: MPEG Audio Frame Header
http://www.codeproject.com/audio/mpegaudioinfo.asp