一、概述

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和Wav文件不同,Mp3没有文件头,MP3文件由帧(frame)构成的,每个帧包括帧头(FrameHeader)和帧数据 (FrameData),MP3文件大体分为三部分:TAG_V2(ID3V2)、Frame、 TAG_V1(ID3V1),值得一提的是TAG_V2(ID3V2)和TAG_V1(ID3V1)也是帧,可以称之为标签帧,Frame部分可以称之为 数据帧。在一个Mp3文件里,不一定有标签帧,但一定有数据帧。

1. ID3V2

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

2. Frame

一系列的帧,个数由文件大小和帧长决定;每个FRAME的长度可能不相等,也可能相等,由位率bitrate决定;每个FRAME又分为帧头和数据实体两部分,帧头记录了mp3的位率,采样率,版本等信息,每个帧之间相互独立。

3.ID3V1

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

三 、Mp3文件的种类

根据Mp3中的Frame(数据帧)的位率bitsrate是否相同,可以分成两大类Mp3文件:帧的位率相等,称为CBR(constant BitRate);帧的位率不相等,称之为VBR(Variable BitRate);VBR的Mp3定义了两种规范,分别是Xing 和VBRI文件。如下表:

位率相等(Constant BitRate)

CBR  Mp3文件

位率不等(Variable BitRate)

Xing  Mp3文件

VBRI  Mp3文件

最新文章

  1. spring 定时任务配置
  2. TransactionScope 之分布式配置
  3. C语言原子接口与实现
  4. android studio annotation 配置过程
  5. MVC中利用自定义的ModelBinder过滤关键字
  6. 夺命雷公狗---node.js---14之DNS
  7. 深入理解HTTP
  8. Codeforces Round #117 (Div. 2)
  9. MHA参数 转
  10. Alpha、Beta、RC、GA版本的区别
  11. jQuery的live()方法对hover事件的处理示例
  12. 简谈python反射
  13. php四舍五入函数(floor、ceil、round与intval)
  14. windows phone (23) ScrollViewer元素
  15. 《Unity3D/2D游戏开发从0到1(第二版本)》 书稿完结总结
  16. Problem I: STL——多重集的插入和删除
  17. Java Script 学习笔记 (一) 基础
  18. table切换jquery插件 jQuery插件写法模板 流程
  19. Shiro授权管理
  20. Http指南(1)

热门文章

  1. Android防止内存泄漏以及MAT的使用
  2. 谷歌推出情境感知API
  3. CSS3旋转图片效果收集
  4. linq和lamda表达式中添加时间判断时解决方案
  5. (转)swfobject.js 详细解说
  6. CSS网页元素居中
  7. Spark配置&启动脚本分析
  8. (转)ubuntu 文件目录结构
  9. python运维开发(二十三)---tornado框架
  10. 蘑菇街2015校招技术类笔试题A卷,回忆版(杭州站)