MP3文件格式学习

原创 2015年07月07日 18:14:27

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)
ID3V2
包含了作者,作曲,专辑等信息,长度不固定,扩展了ID3V1的信息量
Frame
.
.
.
Frame
一系列的帧,个数由文件大小和帧长决定
每个FRAME的长度可能不固定,也可能固定,由位率bitrate决定
每个FRAME又分为帧头数据实体两部分
帧头记录了mp3的位率,采样率,版本等信息,每个帧之间相互独立
ID3V1
包含了作者,作曲,专辑等信息,长度为128BYTE。

帧格式

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;              // 版权
    unsigned int original: 1;               //原版标志
    unsigned int emphasis: 2;               //强调模式
}HEADER, *LPHEADER;
MP3帧长取决于位率和频率,计算公式为:
mpeg1.0
layer1:帧长= (48000*bitrate)/sampling_freq + padding
layer2&3:帧长= (144000*bitrate)/sampling_freq + padding
mpeg2.0
layer1:帧长= (24000*bitrate)/sampling_freq + padding
layer2&3:帧长= (72000*bitrate)/sampling_freq + padding
例如
位率为64kbps,采样频率为44.1kHz,padding(帧长调节)为1时,帧长为210字节。帧头后面是可变长度的附加信息,对于标准的MP3文件来说,其长度是32字节,紧接其后的是压缩的声音数据,当解码器读到此处时就进行解码了。
这里写图片描述
这里写图片描述
版权声明:本文为博主原创文章,未经博主允许不得转载。

MP3格式音频文件结构解析

一、概述 Layer-3 音频文件,MPEG(Moving Picture Experts Group) 在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是MPEG1 标准中的声音...
  • fulinwsuafcie
  • fulinwsuafcie
  • 2013年05月25日 01:21
  • 58853

MP3文件解析详解

此文章为skoootxl2008原创,转载请注明出处,尊重他人劳动成果。 概述      MP3文件是我们常见的音频文件格式,它内部的结构如何?音乐播放器是如何解析MP3文件的呢?...
  • skoootxl2008
  • skoootxl2008
  • 2014年04月17日 17:38
  • 757

MP3文件格式解析

转一:笔者根据德国Fraunhofer   IIS   (http://www.iis.fhg.de/amm/   )公布的MPEG   Audio解码程序进行简化后编写了一个最简MP3解码程序。...
  • yu_gi_oh
  • yu_gi_oh
  • 2016年07月02日 15:38
  • 2144

MP3 文件格式

MP3 文件格式 一.概述: MP3 文件是由帧(frame)构成的,帧是MP3 文件最小的组成单位。MP3的全称应为MPEG1 Layer-3 音频 文件,MPEG(Moving Pic...
  • dcw0402
  • dcw0402
  • 2014年04月02日 22:40
  • 500

MP3文件格式全解

WAV 格式文件头(除了文件头就是音频数据了),很简单,不用多说 struct WAVFmtHeader { char strRIFF[4]; /* 'RIFF' 资源文件标志,...
  • u013904227
  • u013904227
  • 2016年08月11日 17:27
  • 1701

MP3文件格式的解析一

这篇文章呢,是一片关于MP3解码的文章,整理了一些网上的资料,删除了一些模糊不清的东西。 现阶段主要的解码工作是ID3格式的。 从文件的第一个字节开始分析。 一、标签头 在文件的首部顺序记录 10 个...
  • sinat_24243075
  • sinat_24243075
  • 2016年09月14日 14:54
  • 32

MP3文件格式解析

MP3文件格式解析 分类: linuxvc/c/c++2007-11-09 15:40738人阅读评论(1)收藏举报 1, MP3简介 MP3是今天一种常见的音乐格式,但恐怕...
  • dnfyg_000
  • dnfyg_000
  • 2013年01月16日 14:27
  • 244

MP3文件格式及编解码流程

一、MP3简介: MP3全称MPEG 1 audio layer 3,其中MPEG(Moving Picture Experts Group)标准包括视频和音频 标准,其中音频标准...
  • danniao1989
  • danniao1989
  • 2016年10月26日 09:17
  • 161

MP3文件格式分析

1)标志字节 标志字节一般为0,定义如下: abc00000 a -- 表示是否使用Unsynchronisation(这个单词不知道是什么意思,字典里也没有找到,一般不设置) b -- 表示是否有扩...
  • xwjazjx1314
  • xwjazjx1314
  • 2017年02月21日 17:06
  • 252

MP3文件格式解析

转自:http://blog.csdn.net/seanyxie/article/details/6098966最近做的一个项目,移植libmad到micro2440上,使用QT写一个界面,来作为ma...
  • u011003120
  • u011003120
  • 2015年09月24日 09:12
  • 312
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MP3文件格式学习
举报原因:
原因补充:

(最多只允许输入30个字)