MP3编码格式

时间:2022-12-12 16:16:13 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
MP3 编码格式

MP3MPEG-1 Audio Layer 3的简称,是当今比较流行的一种数字音频编码和有损压缩格式(有Layer 3,也必然有Layer1Layer2,也就是MP1MP2,但不在本文讨论范围之内)。MP3技术的应该可以用来大幅度的降低音频文件存储所需要的空间。它丢掉脉冲编码调制(PCM)音频数据中对人类听觉不重要得数据,从而达到了较高的压缩比(高达121101)。简单地说,MP3在编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成有较高压缩比的MP3文件,并使压缩后的文件在回放时也能够达到比较接近原音源的效果。

MP3的音频质量取决于它的BitrateSampling frequency,以及编码器质量。MP3的典型速度介于每秒128320kb之间。采样频率也有44.14832 kHz三种频率,比较常见的是采用CD采样频率——44.1kHz。常用的编码器是LAME,它完全遵循LGPLMP3编码器,有着良好的速度和音质。 一.概述:

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

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

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

Layer-1Layer2Layer3 且分别对应MP1MP2MP3 这三种声音文件,并根据不同的用途,使用不同层

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

61-81,而MP3 的压缩率则高达101-121,也就是说,一分钟CD 音质的音乐,未经压缩需要10MB

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

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

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

缩后的文件在回放时能够达到比较接近原音源的声音效果。 二.整个MP3 文件结构:

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

ID3V2 包含了作者,作曲,专辑等信息,长度不固定,扩展了ID3V1 的信息量。 Frame 一系列的帧,个数由文件大小和帧长决定


. 每个FRAME 的长度可能不固定,也可能固定,由位率bitrate 决定 . 每个FRAME 又分为帧头和数据实体两部分

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

ID3V1 包含了作者,作曲,专辑等信息,长度为128BYTE 三.MP3FRAME 格式:

每个FRAME 都有一个帧头FRAMEHEADER,长度是4BYTE32bit,帧头后面可能有两个字节CRC

验,这两个字节的是否存在决定于FRAMEHEADER 信息的第16bit 0 则帧头后面无校验,1 则有校验,

校验值长度为2 个字节,紧跟在FRAMEHEADER 后面,接着就是帧的实体数据了 2MAIN_DATA

MAIN_DATA 部分长度是否变化决定于FRAMEHEADER bitrate是否变化,一首MP3 曲,它有三个版本:96Kbps96 千比特位每秒)128Kbps 192KbpsKbps (比特位速率),表明了音乐每秒的数据量,Kbps 值越高,音质越好,文件也越大,MP3标准规定,不变的bitrate MP3 文件称作CBR大多数MP3 文件都是CBR 的,而变化的bitrate MP3 文件称作VBR 每个FRAME 的长度都可能是变化的。下面是CBR VBR 的不同点:

1CBR:固定位率的FRAME 的大小也是固定的(公式如上所述),只要知道文件总长度,和帧长即可由播放每帧需26ms 计算得出mp3 播放的总时间,也可通过计数帧的个数控制快进、快退慢放等操作。

2VBRVBR XING 公司推出的算法,所以在MP3 FRAME 里会有“XING"这个关键字(现在很多流行的小软件也可以进行VBR 压缩,它们是否遵守这个约定,那就不得而知了)它存放在MP3 文件中的第一个有效FRAME 里,它标识了这个MP3 文件是VBR 的。同时第一个FRAME 里存放了MP3 文件的FRAME 的总个数,这就很容易获得了播放总时间,同时还有100 个字节存放了播放总时间的100 个时间分段的FRAME INDEX,假设4 分钟的MP3 歌曲,240S 分成100 段,每两个相邻INDEX 的时间差就2.4S,所以通过这个INDEX,只要前后处理少数的FRAME,就能快速找出我们需要快进的FRAME

四.ID3v1

ID3V1 比较简单,它是存放在MP3 文件的末尾,16 进制的编辑器打开一个MP3 文件,查看其末尾

128 个顺序存放字节

ID3V1 的各项信息都是顺序存放,没有任何标识将其分开,比如标题信息不足30 个字节,则使用''\0''

补足,否则将造成信息错误。

五.ID3V2

ID3V2 到现在一共有4 个版本,但流行的播放软件一般只支持第3 版, ID3v2.3。由于ID3V1 记录

MP3 文件的末尾,ID3V2就只好记录在MP3 文件的首部了(如果有一天发布ID3V3不知道该记录在哪

)也正是由于这个原因,ID3V2 的操作比ID3V1 要慢。而且ID3V2 结构比ID3V1 结构要复杂得多,


本文来源:https://www.wddqw.com/doc/cbfe00eda900b52acfc789eb172ded630b1c980d.html