您的位置:首页 > 理论基础 > 数据结构算法

MP3解码算法分析——MP3帧头(Frame Header)数据结构描述

2011-11-16 14:09 302 查看
MP3解码算法分析(2)——MP3帧头(Frame
Header)数据结构描述 



1. 帧头(Frame Header)数据结构描述

A B C D E F G H I J K L M AudioData

12 1 2 1 4 2 1 1 2 2 1 1 2

Sync ID Layer Prot BitRate Freq Pad Priv Channel ModeExt Copy Home Emph AudioData

位置作用 长度(Bits)

---- -------------------------------------------------- ----------

A 帧同步 12 20-31

B MPEG 音频版本(MPEG-1, 2 等) 1 19

C MPEG 层(Layer I, II, III 等) 2 17-18

D 保护(On/Off, 如果开,校验和附在头后) 1 16

E 比特绿索引(查找表用于说明本 MPEG 版本和层的比特率) 4 12-15

F 采样率频率(44.1kHz 等,由查找表决定) 2 10-11

G 补齐位(On/Off, 是否对未填满的帧进行补齐) 1 9

H 保留位(On/Off, 允许特定应用触发) 1 8

I 声道模式(立体声,联合立体声,双声道、单声道) 2 6-7

J 扩展模式(只用于联合立体声,以联合声道数据) 2 4-5

K 版权(On/Off) 1 3

L 原始(On/Off, Off 表示复制版,On 表示原创) 1 2

M 强调(尊重强调原始录制,现基本废弃) 2 0-1

--- -------------------------------------------------- ----------

Table 2-1:
MP3 文件中十三个帧头属性

2. 32 位帧头(Frame
Header)

跟随同步块之后的是 ID 双位,它指明该帧是 MPEG-1/MPEG-2 编码; 之后是层 Layer 双位,它决定了该帧

是 Layer I/II/III;如果没设保护位(Prot),一个 16bit 的校验和会插在音频数据之前。

比特率域,自然地就是指当前帧的比特率(如 128kbps);之后是采样频率(从16,000Hz 到 44,100Hz, 取决于

当前使用的是 MPEG-1 还是 MPEG-2)。 补齐位用于确认每帧是否严格按比特率对齐, 例如,一个 128 kbps

Layer II 的比特率采样率为 44.1kHz 的情况下,某些帧会以 417 bytes 和 418 结束,417 byte 的帧将设

定补齐位(1),以补偿差异。

声道模式域可设定帧为立体声/单声道/混合立体声等模式,如果设定为联合立体声, 还可进一步设定扩展模

式,以让解码器知道如何处理它们,即:高频部分是否已经结合进各声道。

版权位并不装载版权信息(明显,因为它只有一个比特), 其实更像是在模仿 CD 或 DAT 上的版权位。 如果

设定该位,拷贝该声道是严格讲是违法的(一些好的程序会给你警告)。 如果数据是从原始媒体上发现的,

原始位将被设置,“保留位Priv” 用以说明特定的应用触发用户事件。

“强调位 Emphasis”用作一个标志, 在原始录制时加一个强调位,该位几乎不被使用, 尽管一些录制程序

确实仍在使用它。

最后,解码器移动过“校验和”部位 (如果它存在), 到达实际的音频数据帧, 并开始处理,循环往复。每

个音频文件都有成千上万帧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: