详细易懂的mp3编解码原理

详细易懂的mp3编解码原理

ID:1378196

大小:34.00 KB

页数:4页

时间:2017-11-11

详细易懂的mp3编解码原理_第1页
详细易懂的mp3编解码原理_第2页
详细易懂的mp3编解码原理_第3页
详细易懂的mp3编解码原理_第4页
资源描述:

《详细易懂的mp3编解码原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MP3文件格式解析VC2008-02-0309:03:30阅读4424评论6  字号:大中小 订阅1,MP3简介MP3是今天一种常见的音乐格式,但恐怕除了工作要求之外,有兴趣对此进行研究的人恐怕不多。所以,当我打算做MP3解码方面的工作时,在找资料时也颇费了一番周折,同时也觉得很有趣。所以想在这里分享一下自己的心得,做一个总结性的介绍。这样有兴趣的同志也可以对此有一个大概了解,尽快入门。MP3是MPEG-1AudioLayer3的简称,是当今比较流行的一种数字音频编码和有损压缩格式(有Layer3,也必然有Layer1和Layer2,也就是MP1和MP2,但不在本文讨论范围之内)

2、。MP3技术的应该可以用来大幅度的降低音频文件存储所需要的空间。它丢掉脉冲编码调制(PCM)音频数据中对人类听觉不重要得数据,从而达到了较高的压缩比(高达12:1-10:1)。简单地说,MP3在编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成有较高压缩比的MP3文件,并使压缩后的文件在回放时也能够达到比较接近原音源的效果。MP3的音频质量取决于它的Bitrate和Samplingfrequency,以及编码器质量。MP3的典型速度介于每秒128到320kb之间。采样频率也有44.1,48和32kHz三种频率,比较常见的是

3、采用CD采样频率——44.1kHz。常用的编码器是LAME,它完全遵循LGPL的MP3编码器,有着良好的速度和音质。2,      MP3文件格式用一个二进制查看器(比如Ultra-Edit)打开一个MP3文件,就能看到一大堆看似杂乱无序的数据。但只要用心了解就会知道,其实,这一切都是有规律可循的。MP3文件是由帧(frame)构成,帧是MP3文件的最小组成单位。每帧都包含帧头,并可以计算帧的长度。根据帧的性质不同,文件主要分为三个部分,ID3v2标签帧,数据帧和ID3v1标签帧。并非每个MP3文件都有ID3v2,但是数据帧和ID3v1帧是必须的。ID3v2在文件头,以字符串“I

4、D3”为标志,包含了演唱者,作曲,专辑等信息,长度不固定,扩展了ID3V1的信息量。ID3v1在文件结尾,以字符串“TAG”为标记,其长度是固定的128个字节,包含了演唱者、歌名、专辑、年份等信息。I,ID3V2ID3V2到现在一共有四个版本,但流行的播放软件一般只支持第三版,既ID3V2.3。每个ID3V2.3的标签都一个标签头和若干个标签帧或一个扩展标签头组成。关于曲目的信息如标题、作者等都存放在不同的标签帧中,扩展标签头和标签帧并不是必要的,但每个标签至少要有一个标签帧。标签头和标签帧一起顺序存放在MP3文件的首部。标签头长度为10个字节,位于文件首部,其数据结构如下:ch

5、arHeader[3];/*字符串"ID3"*/charVer;      /*版本号ID3V2.3就记录3*/charRevision;/*副版本号此版本记录为0*/charFlag;   /*存放标志的字节,这个版本只定义了三位,很少用到,可以忽略*/charSize[4];/*标签大小,除了标签头的10个字节的标签帧的大小*/标签大小为四个字节,但每个字节只用低7位,最高位不使用,恒为0,其格式如下:0xxxxxxx0xxxxxxx0xxxxxxx0xxxxxxx计算公式如下:ID3V2_frame_size=(int)(Size[0]&0x7F)<<21         

6、       

7、(int)(Size[1]&0x7F)<<14                 

8、(int)(Size[2]&0x7F)<<7                 

9、(int)(Size[3]&0x7F)+10;标签帧每个标签帧都有一个10字节的帧头和至少一个字节的不固定长度的内容组成。它们是顺序存放在文件中,由各自特定的标签头来标记帧的开始。其帧的结构如下:charFrameID[4];  /*用四个字符标识一个帧,说明其内容*/charSize[4];     /*帧内容的大小,不包括帧头,不得小于1*/charFlags[2];     /*存放标志,只定义了6

10、位,此处不再说明*/常用帧标识:TIT2:标题TPE1:作者TALB:专辑TRCK:音轨,格式:N/M,N表示专辑中第几首,M为专辑中歌曲总数TYER:年份TCON:类型COMM:备注,格式:“eng备注内容”,其中eng表示所使用的语言帧大小为四个字节所表示的整数大小。II,ID3V1其数据结构如下:charHeader[3];   /*标签头必须是"TAG"否则认为没有标签*/charTitle[30];   /*标题*/charArtist[30];  /*作者*/ch

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。