三、Mp3帧分析(数据帧)

一、 帧

帧头长4字节,是的,是4个字节,共32位。 帧头后面可能有两个字节的CRC 校验,这两个字节的是否存在决定于FRAMEHEADER 信息的第16bit, 为0 则帧头后面无校验,为1 则有校验,校验值长度为2 个字节,(后面是可变长度的附加信息,对于标准的MP3文件来说,其长度是32字节,本段括号内的文字内容有待商榷,暂时没见到这样的文件),紧接其后的是压缩的声音数据,当解码器读到此处时就进行解码了。

typedef FrameHeader {

unsigned int sync: 11;                         //同步信息

unsigned int version: 2;                       //版本

unsigned int layer: 2;                                     //层

unsigned int error protection: 1;                  // CRC校验

unsigned int bitrate_index: 4;             //位率

unsigned int sampling_frequency: 2;         //采样频率

unsigned int padding: 1;                     //帧长调节

unsigned int private: 1;                        //保留字

unsigned int mode: 2;                          //声道模式

unsigned int mode extension: 2;        //扩充模式

unsigned int copyright: 1;                            // 版权

unsigned int original: 1;                       //原版标志

unsigned int emphasis: 2;                   //强调模式

}HEADER, *LPHEADER;

1.1  帧头4字节使用说明见表1。

                                                      表1 MP3帧头字节使用说明

名称

位长

说          明

同步信息

11

第1、2字节

所有位均为1,第1字节恒为FF。

版本

2

00-MPEG 2.5   01-未定义     10-MPEG 2     11-MPEG 1

2

00-未定义      01-Layer 3     10-Layer 2      11-Layer 1

CRC校验

1

0-校验        1-不校验

位率

4

第3字节

 取样率,单位是kbps,例如采用MPEG-1 Layer 3,64kbps是,值为0101。

bits

V1,L1

V1,L2

V1,L3

V2,L1

V2,L2

V2,L3

0000

free

free

free

free

free

free

0001

32

32

32

32(32)

32(8)

8 (8)

0010

64

48

40

64(48)

48(16)

16 (16)

0011

96

56

48

96(56)

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值