mp3音频格式解析
7种常见的音频格式简析

7种常见的音频格式简析(MP3,WMA,WAV,APE,FLAC,OGG,AAC)MP3全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer Ⅲ),是当今最为流行的一种数字音频编码和有损压缩格式,在1991年由位于德国埃尔朗根的研究组织Fraunhofer-Gesellschaft的一组工程师发明和标准化的。
它设计用来大幅度地降低音频数据量,而对于大多数用户来说重放的音质与最初的不压缩音频相比感觉不到很大的下降。
简单地说,MP3就是一种音频压缩技术,由于这种压缩方式的全称叫MPEG Audio Layer3,所以人们把它简称为MP3。
MP3是利用MPEG Audio Layer 3 的技术,将音乐以1:10 甚至1:12 的压缩率,压缩成容量较小的文件。
换句话说,能够在音质丢失很小的情况下把文件压缩到更小的程度,而且还可以较好的保持了原来的音质。
另外,正是因为MP3体积小,音质高的特点使得MP3格式几乎成为网上音乐的代名词。
每分钟音乐的MP3格式只有1MB左右大小,这样每首歌的大小只有3-4兆字节。
使用MP3播放器对MP3文件进行实时的解压缩(解码),这样,高品质的MP3音乐就播放出来了。
● MP3格式特点MP3是一个有损数据压缩格式,它丢弃掉脉冲编码调制(PCM)音频数据中对人类听觉不重要的数据(类似于JPEG是一个有损图像压缩),从而达到了小得多的文件大小(其在较大的压缩率以及基本保持低音频部分不失真的情况下,以牺牲声音文件中12kHz到16kHz的高音频部分来实现小文件)。
MP3音频可以按照不同的位速进行压缩,提供了在数据大小和声音质量之间进行权衡的一个范围。
另外,MP3格式使用了混合的转换机制将时域信号转换成频域信号。
例如,我们平时在网上见到的一些低质的MP3有64kbps,但好的也有320kbps的,两者声音差距也相当明显。
MP3文件格式剖析

文章编号:1006-5342(2002)06-0077-03MP3文件格式剖析Ξ范建军(咸宁师范高等专科学校 计算机系,湖北 咸宁 437005)摘 要:MP3的全称是MPEG Audio Layer -31由于MP3具有压缩程度高、音质好的特点,所以MP3是目前最为流行的一种音乐文件1文章以国际标准化组织(IS O )和国际电工委员会(IEC )联合颁布的IS O/IEC 11172-3(MPEG-1第三部分:音频)标准为依据,结合MP3的特点,详细剖析MP3文件的格式结构1关键词:MPEG;MP3文件;MP3解码器中图分类号:TP37 文献标识码:A1 MP3解码器的组成和工作原理[1]一个基本的MP3解码器组成如图1所示:图1 IS O/MPEG audio 层3(MP3)解码器的结构 它一般包括分流器(M UX )、霍夫曼解码器、逆量化器、逆M DCT 器、合成滤波器组和边信号解码器1其工作流程是从输入的MP3比特流中查找第一个帧头部进行同步、接着进行边信号解码、比例因子解码、霍夫曼数据解码、逆量化频谱、频谱重新排序(动态去窗口)、逆M DCT 处理、通过多相滤波器组合成,最后产生PC M 数据流并送往音箱播放声音12 MP3文件的格式结构[2]MP3音频文件的结构如图2所示:帧帧111帧T ag图2 MP3音频文件的结构一个MP3音频文件被分成若干个称为帧的小块,每一个帧都是独立的1每一个帧都有自己的头部和音频信息1MP3音频文件没有头部1因此,可以切割MP3音频文件的任何部分并正确地播放它1当希望读取有关MP3音频文件的信息时,通常是查找第一个帧就足以获得,读这第一个帧的头部,同时假定其它帧也有同样的信息(并不总是这样的)1T ag 常常被用于描述MP3音频文件1MP3帧结构如图3所示:帧头CRC 校验(可选)边信号信息比例因子音频数据图3 MP3帧结构在一个帧中,其头部是由最前面的4个字节(32位)组成1头部最前面的11位总是被设置为1并称它为“帧同步”1因此,可以搜索整个文件以确定第一次出现连续11个被设置为1的地方,然后读整个头部并检测其值是否正确1在下面的表中你将了解到在头部的每一位的精确含义,以对每个值检测其有效性1被指定为保留,无效,坏和不允许的每一个值说明这是一个无效的头部1帧可以有一个CRC 校验,但这较为罕见1如果存在CRC 校验,这个CRC 是16位长,它跟在帧的头部之后;如果你需要读其它帧的头部或仅仅希望计算这个帧的CRCΞ收稿日期:2002-09-20第22卷第6期 咸 宁 师 专 学 报 V ol.22,N o.62002年12月 Journal of Xianning T eachers College Dec.2002以比较从文件中读出的帧,你可以计算帧的长度并使用它1这实际上是一个非常好的检测MP3头部有效性的方法1在CRC的后面就是S ide In fo(边信号信息)1边信号信息后面是Scale factor(比例因子)信息1再之后就是音频数据1 211 帧头部详细剖析每个帧头部的长度为4字节1其数据结构如下:typedef struct-tagHeader{unsigned int sync:11;//同步信息unsigned int version:2;//版本unsigned int layer:2;//层unsigned int error2protection:1;//CRC校正unsigned int bit2rate2index:4;//位率索引unsigned int sam ple2rate2index:2;//采样率索引unsigned int padding:1;//空白字unsigned int extension:1;//私有标志unsigned int channel2m ode:2;//立体声模式unsigned int m ode extension:2;//保留unsigned int copyright:1;//版权标志unsigned int original:1;//原始媒体unsigned int em phasis:2;//强调方式}HE ADER,3LPHE ADER;其中:sync(同步信息):11位,全部被设置为11Version(版本):2位,设置如下: 00-MPEG版本2151 01-保留1 10-MPEG版本21 11-MPEG版本11layer(层):2位,设置如下: 00-保留1 01-层III1 10-层II1 11-层I1error-protection(出错保护):1位,设置如下: 0-CRC保护(在帧头后面允许16位CRC校验码)1 1-无保护1bit2rate2index(位率索引):4位,设置如下:设置值V1,L1V1,L2V1,L3V2,L1V2,L2V2,L30000free free free free free free000132323232328(8)0010644840644816(16)0011965648965624(24)010012864561286432(32)010116080641608064(40)011019296801929680(48)01112241129622411256(56)100025612811225612864(64)1001288160128288160128(80)1010320192160320192160(96)设置值V1,L1V1,L2V1,L3V2,L1V2,L2V2,L31011352224192352224112(112)1100384256224384256128(128)1101416320256416320256(144)1110448384320448384320(160)1111bad bad bad bad bad bad 注释:所有的值单位是kbpsV1-MPEG版本11V2-MPEG版本2和版本2151L1-层I1L2-层II1L3-层III1“free”意味着可变位率1“bad”意味着这不是一个允许的值1sam ple2rate2index(采样率索引):2位,设置如下:设置值MPEG1MPEG2MPEG215 0044100220501102501480002400012000103200016000800011保留保留保留 注释:所有的值单位是H z1Padding(空白字):1位,设置如下: 0-帧没有填充位1 1-帧带有一个额外的填充位1Extension(私有标志):1位,目前此位的作用未知1 channel2m ode(立体声通道模式):2位,设置如下: 00-立体声1 01-Joint立体声(S tereo)1 10-Dual立体声(S tereo)1 11-S ingle立体声(M ono)1m ode extension(模式扩展):2位,仅对Joint立体声通道模式有效,设置如下:设置值Intensity stereo MS stereo 00off off01on off10off on11on onC opyright(版权标志):1位,设置如下: 0-音频数据没有版权保护1 1-音频数据有版权保护1Original(原始媒体):1位,设置如下: 0-原始媒体的拷贝1 1-原始媒体1Em phasis(强调方式):2位,设置如下: 00-无 01-50/15ms 10-保留 11-CCIT J117212 MPEG音频T ag的MP3v1详细剖析它包含的信息有艺术家(Artist),标题(T itle),影集87咸宁师专学报 第22卷(Album),出版年份(Y ear)和音乐风格(G enre)1对于注释(C omments)还有额外的空间1T AG的大小始终是128字节长,并且位于所有音频数据之后1可以通过读MP3音频文件的最后128个字节而获取T ag1T ag各相关信息分配如下:长度(字节)位置(字节)描 述3(0-2)T ag标识1必须包含‘T AG’,如果T ag存在并且正确130(3-32)T itle 30(33-62)Artist 30(63-92)Album长度(字节)位置(字节)描 述4(93-96)Y ear30(97-126)C omment1(127)G enre 规范要求所有的填充域都用NU LL字符(ASCII0)填充;然而,并不是所有的应用程序都遵守这个规定(一个例子是WinAm p用空格<space>ASCII32,填充填充域)1在MP3v111结构中,有一小部分被建议改变1注释域的最后一个字节可以被用于指定在一个影集中歌曲的音轨数1如果信息是未知,则它包含一个NU LL字符(ASCII0)1 MP3文件对音乐的风格进行了限制,共254种1G enre 返回的只是MP3风格的序列号,具体还需要定位,在这里把所有类型以常数形式列出:0’Blues’20’Alternative’40’AlternR ock’60’T op40’1’Classic R ock’21’Ska’41’Bass’61’Christian Rap’2’C ountry’22’Death Metal’42’S oul’62’P op/Funk’3’Dance’23’Pranks’43’Punk’63’Jungle’4’Disco’24’S oundtrack’44’S pace’64’Native American’5’Funk’25’Euro-T echno’45’Meditative’65’Cabaret’6’G runge’26’Ambient’46’Instrumental P op’66’New Wave’7’Hip-H op’27’T rip-H op’47’Instrumental R ock’67’Psychadelic’8’Jazz’28’V ocal’48’E thnic’68’Rave’9’Metal’29’Jazz+Funk’49’G othic’69’Showtunes’10’New Age’30’Fusion’50’Darkwave’70’T railer’11’Oldies’31’T rance’51’T echno-Industrial’71’Lo-Fi’12’Other’32’Classical’52’E lectronic’72’T ribal’13’P op’33’Instrumental’53’P op-F olk’73’Acid Punk’14’R&B’34’Acid’54’Eurodance’74’Acid Jazz’15’Rap’35’H ouse’55’Dream’75’P olka’16’Reggae’36’G ame’56’S outhern R ock’76’Retro’17’R ock’37’S ound Clip’57’C omedy’77’Musical’18’T echno’38’G ospel’58’Cult’78’R ock&R oll’19’Industrial’39’N oise’59’G angsta’79’Hard R ock’任何其它的值都被认为是“Unknown”1MPEG音频T ag MP3v2这是新建议的T AG格式,它与MP3v1和MP3v111不同1有关它的信息请查看网站http://w w w1id31com/1参考文献:[1]林福宗1多媒体技术基础[M]1北京:清华大学出版社,20011136~1431[2]余崇智,李存珠,张志力等1运动图像及其伴音的压缩与编码[M]1南京:南京大学出版社,19951235~250197第6期 范建军 MP3文件格式剖析。
MP3编码格式

MP3 编码格式MP3是MPEG-1 Audio Layer 3的简称,是当今比较流行的一种数字音频编码和有损压缩格式(有Layer 3,也必然有Layer1和Layer2,也就是MP1和MP2,但不在本文讨论范围之内)。
MP3技术的应该可以用来大幅度的降低音频文件存储所需要的空间。
它丢掉脉冲编码调制(PCM)音频数据中对人类听觉不重要得数据,从而达到了较高的压缩比(高达12:1-10:1)。
简单地说,MP3在编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成有较高压缩比的MP3文件,并使压缩后的文件在回放时也能够达到比较接近原音源的效果。
MP3的音频质量取决于它的Bitrate和Sampling frequency,以及编码器质量。
MP3的典型速度介于每秒128到320kb之间。
采样频率也有44.1,48和32 kHz三种频率,比较常见的是采用CD采样频率——44.1kHz。
常用的编码器是LAME,它完全遵循LGPL的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文件认识上的几个误区1.每帧播放时长都为26ms? 很多博客和文章都提到,Mp3文件每个帧的播放时长(Frame_PlayingTime)是26ms,这个结论是错误的。
公式应该是这样的:一个帧的播放时长=一个帧的采样个数*一次采样的时间=一个帧的采样个数*(1/采样...2011-08-25 22:28 阅读(718) 评论(1)四、Mp3文件类型及其判断根据前两篇文章的分析,帧分为标签帧和数据帧,MP3文件类型是根据数据帧的类型来分的,文件类型如下表:位率相等(Constant BitRate) CBR Mp3文件位率不等(Variable BitRate) Xi...2011-08-25 22:27 阅读(1339) 评论(1)三、Mp3帧分析(数据帧)一、帧帧头长4字节,是的,是4个字节,共32位。
帧头后面可能有两个字节的CRC 校验,这两个字节的是否存在决定于FRAMEHEADER 信息的第16bit,为0 则帧头后面无校验,为1 则有校验,校验值长度为2 个字节,(后面是可变长度的附加信息,对于标准的MP3文件来...2011-08-25 22:25 阅读(2648) 评论(3)二、Mp3帧分析(标签帧)第一部分中提过,Mp3文件由帧组成,帧分成标签帧和数据帧,本文就Mp3文件的帧进行分析。
一、标签帧 MP3帧头中除了存储一些象private、copyright、original的简单音乐说明信息以外,没有考虑存放歌名、作者、专辑名、年份等复杂信息,而这些信息在...2011-08-25 21:56 阅读(1450) 评论(2)一、MP3文件概述(原创和摘抄)一、概述 MP3 文件是由帧(frame)构成的,帧是 MP3 文件最小的组成单位。
MP3 的全称应为MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音...2011-08-23 22:49 阅读(655) 评论(1)。
了解电脑音频格式与解码器

了解电脑音频格式与解码器电脑音频成为现代生活中不可或缺的一部分,我们通过电脑收听音乐、观看电影、进行语音通话等等。
然而,你是否真正了解电脑音频格式和解码器的作用呢?本文将为你深入探究电脑音频的世界,帮助你更好地了解音频格式和解码器的重要性与运作原理。
一、音频格式的概述音频格式指的是对音频数据进行编码和压缩的方法和规范。
常见的音频格式有MP3、AAC、FLAC、WAV等。
每种格式都具有不同的特点和用途。
1. MP3格式:MP3是最常见的音频格式之一,以其高度的压缩比和良好的音质被广泛应用于音乐播放器、手机和电脑等设备上。
它可以将原始音频数据压缩至较小的尺寸,节省存储空间的同时保持较好的音质。
2. AAC格式:AAC格式是一种广泛应用于音频编码的格式,它在音质方面相较于MP3有所提升,尤其是在低比特率下更具优势。
因此,AAC被广泛地应用在音乐平台、移动设备和云储存中。
3. FLAC格式:FLAC是一种无损音频压缩格式,它可以无损地压缩音频数据,使音质保持原始水平。
这使得FLAC格式成为音频爱好者和专业人士的首选,尤其是在音乐制作和音响领域。
4. WAV格式:WAV格式是一种无压缩的音频格式,它能够提供最高质量的音频,保留了音频数据的原始信息。
然而,由于其较大的文件大小,WAV格式在网络传输和存储中并不常见,主要用于音乐制作和专业领域。
二、解码器的介绍与作用解码器是用于解码音频格式的软硬件设备,它将压缩过的音频数据还原为可播放的音频信号。
每种音频格式都有相应的解码器,它们能够解析压缩的音频数据,使得我们能够愉悦地享受高质量的音频。
1. MP3解码器:MP3解码器是最为常见的解码器之一,它能够将MP3格式的音频文件解码为原始音频信号。
通过MP3解码器,我们可以在电脑或音乐播放器上无缝播放MP3格式的音乐。
2. AAC解码器:AAC解码器用于解码AAC格式的音频文件。
它能够将AAC格式压缩的音频数据解码还原为高质量的音频信号,使得我们能够畅快地收听音乐或进行通话。
MP3参数格式术语有关一切内容详解-Read

MP3参数,格式,术语有关一切内容详解。
一音频编码篇通常我们采用脉冲代码调制编码,即PCM编码。
PCM通过抽样、量化、编码三个步骤将连续变化的模拟信号转换为数字编码。
1、什么是采样率和采样大小(位/bit)?频率对应于时间轴线,振幅对应于电平轴线。
波是无限光滑的,弦线可以看成由无数点组成,由于存储空间是相对有限的,数字编码过程中,必须对弦线的点进行采样。
采样的过程就是抽取某点的频率值,很显然,在一秒中内抽取的点越多,获取得频率信息更丰富,为了复原波形,一次振动中,必须有2个点的采样,人耳能够感觉到的最高频率为20kHz,因此要满足人耳的听觉要求,则需要至少每秒进行40k次采样,用40kHz表达,这个40kHz就是采样率。
我们常见的CD,采样率为44.1kHz。
光有频率信息是不够的,我们还必须获得该频率的能量值并量化,用于表示信号强度。
量化电平数为2的整数次幂,我们常见的CD位16bit的采样大小,即2的16次方。
采样大小相对采样率更难理解,因为要显得抽象点,举个简单例子:假设对一个波进行8次采样,采样点分别对应的能量值分别为A1-A8,但我们只使用2bit的采样大小,结果我们只能保留A1-A8中4个点的值而舍弃另外4个。
如果我们进行3bit的采样大小,则刚好记录下8个点的所有信息。
采样率和采样大小的值越大,记录的波形更接近原始信号。
2、有损和无损根据采样率和采样大小可以得知,相对自然界的信号,音频编码最多只能做到无限接近,至少目前的技术只能这样了,相对自然界的信号,任何数字音频编码方案都是有损的,因为无法完全还原。
在计算机应用中,能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏,CD、DVD以及我们常见的WAV文件中均有应用。
因此,PCM约定俗成了无损编码,因为PCM代表了数字音频中最佳的保真水准,并不意味着PCM就能够确保信号绝对保真,PCM也只能做到最大程度的无限接近。
我们而习惯性的把MP3列入有损音频编码范畴,是相对PCM编码的。
mp3 十六进制解析

mp3 十六进制解析全文共四篇示例,供读者参考第一篇示例:MP3 是一种数字音频格式,其音频数据以十六进制形式存储,通过解析这些十六进制数据,我们可以了解音频文件的结构和内容。
本文将介绍如何解析MP3 文件的十六进制数据,以及其中的一些关键信息。
我们需要明白MP3 文件是如何组织的。
一个典型的MP3 文件由多个帧(frame)组成,每个帧包含一段音频数据。
每个帧的开头是一个帧同步字(frame sync),用于标识帧的开始。
帧同步字的值为0xFF,即十进制的255,表示帧的开始。
在帧同步字之后的一部分是帧头(frame header),用于描述帧的一些重要信息,包括比特率、采样率、声道模式等。
帧头通常占据一个字节,我们可以通过解析这个字节来获取这些信息。
帧头字节的格式如下:- 最高两位为帧同步字的保留位,固定为11;- 接下来四位为MPEG 版本(Version ID),用于指示MPEG 标准的版本;- 接下来两位为层信息(Layer),表示音频数据的编码层;- 接下来一位为保护位(CRC check),用于指示是否启用CRC 校验。
接着是帧头中的比特率(bitrate)字段,用于表示音频数据的比特率。
比特率字段的取值与MPEG 版本、层信息有关,不同的组合对应不同的比特率。
在十六进制数据中,我们可以通过解析比特率字段来获取比特率信息。
在帧头中还包括声道模式(channel mode)字段,用于表示音频数据的声道模式,包括单声道、立体声、双声道和立体声(joint stereo)模式。
解析声道模式字段可以帮助我们了解音频数据的声道配置。
通过解析MP3 文件的十六进制数据,我们可以获取关于音频文件的详细信息,包括比特率、采样率和声道模式等。
这些信息对于音频文件的解码和播放非常重要,通过深入了解MP3文件的十六进制结构,我们可以更好地理解数字音频文件的工作原理。
MP3 文件的十六进制解析是一个有趣且重要的技术,通过解析帧头的一些关键字段,我们可以了解MP3文件的结构和内容,进一步探索数字音频文件的工作原理。
MP3文件格式分析

一、MP3文件头bits name comments--------------------------------------------------12 sync 0xFFF1 version 1=mpeg1.0, 0=mpeg2.02 lay 4-lay = layerI, II or III1 error protection 0=yes, 1=no4 bitrate_index see table below2 sampling_freq see table below1 padding1 extension see table below2 mode see table below2 mode_ext used with "joint stereo" mode1 copyright 0=no 1=yes1 original 0=no 1=yes2 emphasis see table below--------------------------------------------------1、bitrate_index(编码速率)(1). mpeg1.01 2 3 4 5 6 7 8 9 10 11 12 13 14 layer1 32 64 96 128 160 192 224 256 288 320 352 384 416 448 layer2 32 48 56 64 80 96 112 128 160 192 224 256 320 384 layer3 32 40 48 56 64 80 96 112 128 160 192 224 256 320(2). mpeg2.01 2 3 4 5 6 7 8 9 10 11 12 13 14 layer1 32 48 56 64 80 96 112 128 144 160 176 192 224 256 layer2 8 16 24 32 40 48 56 64 80 96 112 128 144 160 layer3 8 16 24 32 40 48 56 64 80 96 112 128 144 1602、sampling_freq(采样率)(1). mpeg1.00 1 244100 48000 32000(2). mpeg2.00 1 222050 24000 160003、mode(声音模式)0 "stereo" (立体声)1 "joint stereo"(联合立体声)2 "dual channel"(双通道)3 "single channel"(单通道)4、mode extension(声音模式扩展)0 MPG_MD_LR_LR1 MPG_MD_LR_I2 MPG_MD_MS_LR3 MPG_MD_MS_I5、jsbound :mode_ext 0 1 2 3layer1 4 8 12 162 4 8 12 163 04 8 166、emphasis:0 "none"1 "50/15 microsecs"2 "reserved" must not be used !3 "CCITT J 17"二、MP3标签1(放在文件尾部128字节)offset type len name--------------------------------------------0 char 3 "TAG"3 char 30 title33 char 30 artist63 char 30 album93 char 4 year97 char 30 comments127 byte 1 genre--------------------------------------------- genre :0 "Blues"1 "Classic Rock"2 "Country"3 "Dance"4 "Disco"5 "Funk"6 "Grunge"7 "Hip-Hop"8 "Jazz"9 "Metal"10 "New Age"11 "Oldies"12 "Other"13 "Pop"14 "R&B"15 "Rap"16 "Reggae"17 "Rock"18 "Techno"19 "Industrial"20 "Alternative"21 "Ska"22 "Death Metal"23 "Pranks"24 "Soundtrack"25 "Euro-Techno"26 "Ambient"27 "Trip-Hop"28 "Vocal"29 "Jazz+Funk"30 "Fusion"31 "Trance"32 "Classical"33 "Instrumental"34 "Acid"35 "House"36 "Game"37 "Sound Clip"38 "Gospel"39 "Noise"40 "AlternRock"41 "Bass"42 "Soul"43 "Punk"44 "Space"45 "Meditative"46 "Instrumental Pop"47 "Instrumental Rock"48 "Ethnic"49 "Gothic"50 "Darkwave"51 "Techno-Industrial"52 "Electronic"53 "Pop-Folk"54 "Eurodance"55 "Dream"56 "Southern Rock"57 "Comedy"58 "Cult"59 "Gangsta"60 "Top 40"61 "Christian Rap"62 "Pop/Funk"63 "Jungle"64 "Native American"65 "Cabaret"66 "New Wave"67 "Psychadelic"68 "Rave"69 "Showtunes"70 "Trailer"71 "Lo-Fi"72 "Tribal"73 "Acid Punk"74 "Acid Jazz"75 "Polka"76 "Retro"77 "Musical"78 "Rock & Roll"79 "Hard Rock"80 "Unknown"三、MP3帧长度计算参考:1. mpeg1.0layer1 :(48000*bitrate)/sampling_freq + padding layer2&3:(144000*bitrate)/sampling_freq + padding2. mpeg2.0layer1 :(24000*bitrate)/sampling_freq + padding layer2&3 :(72000*bitrate)/sampling_freq + padding。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MPEG2.5 384 1152 576
【每帧采样数表】
帧长度是压缩时每一帧的长度,包括帧头。它将填充的空位也计算在内。LayerI 的一个空位长 4 字节,LayerII 和 LayerIII 的空位是 1 字节。当读取 MPEG 文件时必 须计算该值以便找到相邻的帧。
注意:因为有填充和比特率变换,帧长度可能变化。 从头中读取比特率,采样频率和填充, LyaerI 使用公式: 帧长度(字节) = 每帧采样数 / 采样频率(HZ) * 比特率(bps)/ 8 +填充 * 4 LyerII 和 LyaerIII 使用公式: 帧长度(字节)= 每帧采样数 / 采样频率(HZ) * 比特率(bps)/ 8 + 填充 例: LayerIII 比特率 128000,采样频率 44100,填充 0 =〉帧大小 417 字节
每帧持续时间(秒) = 每帧采样数 / 采样频率(HZ)
可以这么理解:每帧采用数就是要采取的总数,采样率就是采取的速度,相除 就得到时间。 这样通过计算可知 MPEG1 Layer III 采样率为 44.1KHz 的一帧持续时间为 26.12...不是整数,不过我们权且认为它就是 26 毫秒吧。 如果是 MPEG2 Layer III 采样率为 16KHz 的话那一帧要持续 36 毫秒,这个相差 还是蛮大的,所以还是应该通过计算来获的,当然可以按 MPEG 版本,层数和采样 率来建一个表,这样直接查表就可以知道时间了。
G
1
(9) 填充位(填充用来达到正确的比特率。)
0 – 没有填充
1 – 填充了一个额外的空位
H
1
(8) 私有 bit,可以用来做特殊应用。例如可以
用来触发应用程序的特殊事件。
I
2
(7联合立体声(立体声)
10 双声道(立体声)
11 单声道(单声)
J
2
(5~4) 扩展模式(仅在联合立体声时有效)
3.ID3V1 标签
ID3v1 标签用来描述 MPEG 音频文件。包含艺术家,标题,唱片集,发布年代和流派。
另外还有额外的注释空间。位于音频文件的最后固定为 128 字节。可以读取该文件
的最后这 128 字节获得标签。以最后 128 个字节的头三个字节为“TAG”作为 有 ID3V1 的判断依据。
解析 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 文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音 效果。
四、解析方法
当你想读取 MPEG 文件的信息时,解析前三个字节,判断是否有 ID3V2 标签,有则 根据上面的方法算出 ID3V2 标签的总大小,这样就找到了音频数据帧的第一帧,读 取它的头信息,获取比特率、采样率、MPEG 版本号、Layer 描述号等信息,根据上 面提供的方法算出每帧的长度和每帧持续时间,对于定比特率的其它帧是相同的, 也就是说解析第一帧就达到了目的。但这也不是所有情况。变比特率的 MPEG 文件 使用使用所谓比特变换,也就是说每一帧的比特率依照具体内容变化。这时就需要 你每一帧都解析。
2.音频数据
数据帧往往有多个,至于有多少,由文件大小和帧大小来决定。每个帧都有一个四 字节长的帧头,接下来可能有两个字节的 CRC 校验,其存在由帧头中的具体信息决 定。接着就是帧的实体数据,也就是 MAIN_DATA 了。
(1)音频数据帧的帧头
格式如下:
AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM
(2) 标签帧
每个标签帧都有一个 10 个字节的帧头和至少一个字节的不固定长度的内容组 成。它们也是顺序存放在文件中,和标签头和其他的标签帧也没有特殊的字符分隔。 得到一个完整的帧的内容只有从帧头中的到内容大小后才能读出,读取时要注意大 小,不要将其他帧的内容或帧头读入。
一般我们从标签头中获取信息计算出整个 ID3V2 标签的大小即可,对 于 ID3V2 的标签帧就不再仔细分析。
ID3V1 标签帧
立
ID3v1 在文件结尾,以字符串“TAG”为标记,其长度是 固定的 128 个字节,包含了演唱者、歌名、专辑、年份 等信息。
三、MP3 结构具体分析
1.ID3V2 标签
每个 ID3V2.3 的标签都一个标签头和若干个标签帧或一个扩展标签头组成。关于曲 目的信息如标题、作者等都存放在不同的标签帧中,扩展标签头和标签帧并不是必 要的,但每个标签至少要有一个标签帧。标签头和标签帧一起顺序存放在 MP3 文 件的首部。
符号 长度(bit) 位置(bit)
描述
A
11
(31~21) 帧同步(所有位置 1)
B
2
(20~ MPEG 音频版本 ID
19) 00 – MPEG 2.5
01 – 保留
10 – MPEG 2 (ISO/IEC 13818-3)
11 – MPEG 1 (ISO/IEC 11172-3)
C
2
(18~ Layer 描述
Bad
【比特率索引表】
MPEG2&MPEG2.5 Layer1 Layer2&3
32
8
48
16
56
24
64
32
80
40
96
48
112
56
128
64
144
80
160
96
176
112
192
128
224
144
256
160
Bits
MPEG1
MPEG2
MPEG3
00
44100
22050
11025
01
48000
24000
12000
10
32000
16000
8000
11
保留
【采样率索引表】
(2)如何计算音频数据帧长度
我们首先区分两个术语:帧大小和帧长度。帧大小即每帧采样数表示一帧中采
样的个数,这是恒定值。其值入下表所示
Layer1 Layer2 Layer3
MPEG1 384 1152 1152
MPEG2 384 1152 576
注:最后 4 个字节表示 ID3V2 标签的大小,在实际寻找首帧的过程中,我发现大 部分的 mp3 文件的标签大小是包含标签头的,但有的又是不包含的,可能是某 些 mp3 编码器写标签的 BUG,所以为了兼容只好认为其是包含的,如果按大小 找不到,再向后搜索,直到找到首帧为止。
计算 ID3V2 标签帧的大小: 最后四个字节表示,但每个字节只用 7 位,最高位不使用恒为 0。所以格式如 下: 0xxxxxxx 0xxxxxxx 0xxxxxxx 0xxxxxxx 计算大小时要将 0 去掉,得到一个 28 位的二进制数,就是标签大小(不懂为什 么要这样做),计算公式如 下: int ID3V2_Size; ID3V2_Size = (Size[0]&0x7F)*0x200000 +(Size[1]&0x7F)*0x4000 +(Size[2]&0x7F)*0x80 +(Size[3]&0x7F)
者,作曲,专辑等信息,长度不固定,扩展了 ID3V1 的 信息量。 音频数据帧 一系列的帧,个数由文件大小和帧长决定,每个 FRAME 的长度可能不固定,也可能固定,由位率 bitrate 决定, 每个 FRAME 又分为帧头和数据实体两部分,帧头记录了 mp3 的位率,采样率,版本等信息,每个帧之间相互独
扩展模式用来连接对立体声效果无用的信
息,来减少所需的资源。这两个位在联合立
体声模式下有编码器动态指定。
K
1
(3) 版权
0 无版权
1 有版权
L
1
(2) 原创
0 原创拷贝
1 原创
M
2
(1) 强调
00 - 无
01 - 50/15 ms
10 - 保留
11 - CCIT J.17
【帧头信息表】
索引值
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
结构如下:
AAABBBBB BBBBBBBB BBBBBBBB BBBBBBBB BCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCD DDDDDDDD DDDDDDDD DDDDDDDD DDDDDEEE EFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFG
符号
标签头 在文件的首部顺序记录 10 个字节的 ID3V2.3 的头部。数据结构如下: