2024年3月28日发(作者:)

MP3文件格式解析

Peter Lee 2008-06-05

目录

一、概述

二、整个MP3文件结构

三、MP3帧格式

1. 帧头格式

2. MAIN_DATA

四、ID3标准

1. ID3V1

2. ID3V2

五、MP3文件实例剖析

六、资料

一、

概述

MP3 文件是由帧(frame)构成的,帧是 MP3 文件最小的组成单位。MP3 的全称应为 MPEG1 Layer-3 音频

文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG

音频文件是 MPEG1 标准中的声音部分,也叫 MPEG 音频层,它根据压缩质量和编码复杂程度划分为三层,即

Layer-1、Layer2、Layer3,且分别对应 MP1、MP2、MP3 这三种声音文件,并根据不同的用途,使用不同层

次的编码。MPEG 音频编码的层次越高,编码器越复杂,压缩率也越高,MP1 和 MP2 的压缩率分别为 4:1 和

6:1-8:1,而 MP3 的压缩率则高达 10:1-12:1,也就是说,一分钟 CD 音质的音乐,未经压缩需要 10MB

的存储空间,而经过 MP3 压缩编码后只有 1MB 左右。不过 MP3 对音频信号采用的是有损压缩方式,为了降

低声音失真度,MP3 采取了“感官编码技术”,即编码时先对音频文件进行频谱分析,然后用过滤器滤掉

噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压缩比的 MP3 文件,并使压

缩后的文件在回放时能够达到比较接近原音源的声音效果。

二、整个MP3文件结构

MP3文件大体分为三部分:TAG_V2(ID3V2),Frame, TAG_V1(ID3V1)

PDF 文件使用 "pdfFactory Pro" 试用版本创建 ÿ

ID3V2

包含了作者,作曲,专辑等信息,长度不固定,扩展了ID3V1的信息量。

Frame

.

.

.

Frame

一系列的帧,个数由文件大小和帧长决定

每个FRAME的长度可能不固定,也可能固定,由位率bitrate决定

每个FRAME又分为帧头和数据实体两部分

帧头记录了mp3的位率,采样率,版本等信息,每个帧之间相互独立

ID3V1

包含了作者,作曲,专辑等信息,长度为128BYTE。

三、MP3帧格式

1. 帧头格式

帧头长4字节,对于固定位率的MP3文件,所有帧的帧头格式一样其数据结构如下:

typedef FrameHeader {

unsigned int sync: 11; //同步信息

unsigned int version: 2; //版本

unsigned int layer: 2; //层

unsigned int error protection: 1; // CRC校验

unsigned int bitrate_index: 4; //位率

unsigned int sampling_frequency: 2; //采样频率

unsigned int padding: 1; //帧长调节

unsigned int private: 1; //保留字

unsigned int mode: 2; //声道模式

unsigned int mode extension: 2; //扩充模式

unsigned int copyright: 1; // 版权

PDF 文件使用 "pdfFactory Pro" 试用版本创建 ÿ