mpeg编码标准 MPEG标准制定方法

mp3 编码在MPEG文件中,没有主标头,因为MPEG的音频文件是由一系列被称为帧的较小部分组成的 。每个帧都是一个具有自己标头和音频信息的数据块 。
Layer II,II,III的音频帧头都是相同的,不同之处体现在音频数据的编码方式 。帧本身是由slot组成的 。Layer I的slot大小是4字节,其余情况是1字节 。
除了Layer之外,MPEG音频本身也有3个版本,这个几个版本的不同之处体现在能处理的采样率不同(参考 表2.1.2) 。MPEG 1 (ISO/IEC 13818-3) 和MPEG2(ISO/IEC 11172-3)是ISO标准. MPEG2.5对MPEG2进行的非官方的扩展,它是为了支持更低的采样率 。MPEG2/2.5 也常被简称为LSF(Low SamplingFrequencies),既低采样率
对于Layer I和Layer II,帧是完全彼此独立的,因此您可以剪切MEPG音频文件的任何部分并正确的播放 。然后,播放器将从发现的第一个完整有效的帧开始播放 。但是,Layer III,帧不总是独立的,因为它可能使用了byte resevoir,这是一种内部缓冲区,因此帧之间通常是相互依赖的 。在最坏的情况下,可能至少需要输入9个帧才能解码单个帧 。
如果你需要检索有关MPEG的音频文件的信息,那么可以简单的找到第一帧,然后从它的header中获取信息 。除比特率外,其他帧中的信息应该与第一个帧是一致的,因为可能当前是VBR的文件 。在VBR的文件中,可以在每个帧中更改比特率 。例如,为了在整个文件中保持音乐的高质量,当音乐比较复杂时就需要更多的位来做编码
帧头本身的长度是32位的(4字节) 。帧头的前十二位(在MPEG2.5扩展的情况下为前十一位)始终设置为1,称为帧同步 。帧还可能有可选的CRC校验和 。它长16位,如果存在,则紧跟在帧头之后 。CRC之后就是音频数据 。通过重新计算CRC并将值与文件中的值进行比较,就可以检查比特流在传输期间是否已经被更改 。
一个文件可以被编码成恒定比特率(CBR)或可变比特率(VBR),这意味着每帧可以有不同的比特率 。可变比特率的质量往往比恒定比特率编码的文件更高,因为他们可以在需要的地方使用更高的比特率 。
MP3文件的整体结构:

  • [ID3 V2] | [APE 头]: 可选
    • ID3 V2的头,大多数最新的MP3,都有这个头
    • 用于APE格式的头,现在也用于MPEG
  • 第一帧
    • MPEG 音频头, 通常大小为4字节.(当Protection bit==0时,帧头后会有16bit=2byte的CRC,此时帧头大小为6字节)
    • 边信息,9/17/32 字节
    • [Xing 头]: 可选 8-120字节,如果是VBR,多数都有此Xing头,而且只有第一帧有
    • 音频数据
  • 第二帧
    • 帧头
    • 边信息
    • 音频数据
  • 第三帧
    • 帧头
    • 边信息
    • 音频数据
  • 最后一帧
    • 帧头
    • 边信息
    • 音频数据
  • [TAG]: 可选 。128字节的ID3 V1信息,如果没有前面的ID3 V2,多数都有这个ID3 V1的头
mp3帧头编码起始位置0位高位开始
起始位置大小位置描述01131-21帧同步标识,11个‘1’ 。用于定位帧头起始位置11220-19MPEG音频版本13218-17Layer序列号15116Protection bit16415,12比特率20211-10采样率2219Padding bit的定义2318保护位2427-6channel模式2625-4只用于Joint stereo 模式扩展2813版权位 0:无版权 1:有版权2912原始位 0:原始媒体的副本 1:原始媒体3021-0EmphasisMPEG音频版本设置值描述00MPEG version2.501保留10MPEG version211MPEG version1Layer序列号设置值描述00保留01Layer III10Layer II11Layer IProtection-bit设置值描述0protected by 16 bit CRC following header1no CRC比特率bitsV1,L1V1,L2V1,L3V2,L1V2, L2 & L30000freefreefreefreefree000132323232800106448404816001196564856240100128645664320101160806480400110192968096480111224112961125610002561281121286410012881601281448010103201921601609610113522241921761121100384256224192128110141632025622414411104483843202561601111badbadbadbadbadNOTES: All values are in kbps

推荐阅读