第 3 章 MPEG的帧Frame

目录

3.1. MPEG帧头(Frame Header)
3.1.1. 举例说明MPEG帧头的含义
3.2. MPEG音频数据
3.3. MPEG帧的大小
3.3.1. 常见MPEG帧的音频数据大小是418字节

摘要

MPEG音频文件,由一个个的帧(Frame)组成。

每一MPEG帧都有个帧头(Frame Header),位于帧的最开始处,接下来的是音频数据(Audio Sample/Audio Data),即:

MPEG帧 = MPEG帧头 + MPEG音频数据

下面分别详细介绍MPEG帧头和音频数据的细节内容:

3.1. MPEG帧头(Frame Header)

MPEG音频的三种Layer的,尽管他们的压缩方法各不相同,但是帧头格式都一样。

先说一下大小,MPEG帧头,共32bit=4字节。

然后再看具体的格式及含义,如下所示:

表 3.1. MPEG音频的帧头的格式

位置(bit) 长度(bit) 含义 示例
0 11 用于同步帧,找到此帧头(所有位均置1) 1111 1111 111
11 2
MPEG音频的版本ID
00 MPEG 2.5 (MPED-2的非官方扩展版本)
01 保留
10 MPEG 2 (ISO/IEC 13818-3)
11 MPEG 1 (ISO/IEC 11172-3)
11
13 2
Layer的索引
00 保留
01 Layer III
10 Layer II
11 Layer I
01
15 1
保护位
0 用16位的CRC保护下面的帧头
1 无CRC
1
16 4 详见:表 3.2 “MPEG比特率索引表(单位:Kbit/s)” 1001
20 2 详见:表 3.3 “MPEG帧的采样率索引表(单位:Hz)” 11
22 1 填充位。如果设置了此位,就会对每帧数据填充一个slot (对于帧大小的计算很重要) 0
23 1 私有位 (仅用于标示性的) 1
24 2
声道的模式
00 立体声
01 混合立体声
10 双声道(两个单声道)
11 一个声道 (单声道)
01
26 2 模式扩展 (仅用于联合立体声) (注:此处不是本文重点,故忽略相关的索引表) 00

[提示] 双声道
双声道文件由两个独立的单声道所组成。大多数解码器把双声道输出成立体声,但是实际上,不是所有的双声道都是立体声的。

表 3.2. MPEG比特率索引表(单位:Kbit/s)

比特率索引 MPEG 1 MPEG 2, 2.5 (LSF)
Layer I Layer II Layer III Layer I Layer II & III
0000 空闲
0001 32 32 32 32 8
0010 64 48 40 48 16
0011 96 56 48 56 24
0100 128 64 56 64 32
0101 160 80 64 80 40
0110 192 96 80 96 48
0111 224 112 96 112 56
1000 256 128 112 128 64
1001 288 160 128 144 80
1010 320 192 160 160 96
1011 352 224 192 176 112
1100 384 256 224 192 128
1101 416 320 256 224 144
1110 448 384 320 256 160
1111 空闲

[提示] 常见MP3的比特率

强调部分:就是我们此处所关心的MP3(MPEG-1,Layer III)的比特率。

红色部分:即128kbps,192kbps,320kbps等,就是我们常见的MP3的比特率。

表 3.3. MPEG帧的采样率索引表(单位:Hz)

采样率索引 MPEG 1 MPEG 2 (LSF) MPEG 2.5 (LSF)
00 44100 Hz 22050 Hz 11025 Hz
01 48000 Hz 24000 Hz 12000 Hz
10 32000 Hz 16000 Hz 8000 Hz
11 空闲

[提示] 常见MP3采样率

强调部分:就是我们最常见的MP3(MPEG-1)的采样率44100Hz=44.1K Hz

从上面MPEG帧头的格式中可以看出,MPEG的音频,都是有相对固定的比特率,采样率等参数,关于这每一帧的这些参数的具体值,都是找到索引值,然后查对应的索引表,而得知具体的值。

不过,顺便提一点,在MPEG标准中,也描述了一种自由格式(free format),这种自由格式意思为用一个固定比特率对文件进行编码,而此固定的比特率不是我们那些索引表中所预定义好的。对于这类自由格式的MPEG音频,一般的解码器都无法解码。

3.1.1. 举例说明MPEG帧头的含义

下图给出了一般MP3的格式及举例说明了MPEG的帧头所对应的信息:

图 3.1. MPEG帧头含义举例

MPEG帧头含义举例