用户操作
[即时聊天] [发私信] [加为好友]
幻想(airhand)ID:airhand
153182次访问,排名533,好友0人,关注者0人。
airhand的文章
原创 76 篇
翻译 2 篇
转载 11 篇
评论 215 篇
幻想(airhand)的公告
EMail:Airhand@163.com

最近评论
jackch88:(Visual Studio 2005 Download)vs2005下载地址
http://www.ooxml.cn/post/vs2005.html
团队开发:Visual Studio 2005 Team Foundation 还提供团队协作工具,使组织能够不费吹灰之力即可管理并跟踪过程和软件项目的运行状况。Portfolio Explorer 将可从项目站点获得的……
jungzhen:我也是做这个课题的,你能把你的源代码发给我吗
jungzhen@qq.com
不甚感激!!
FUNSER:谢谢,我收录了!
tim:Thanks very much
afdasf:楼主怎么不用substance呢,费这么多力气去破解,还要承担风险,其实很多你需要的东西都有很好的开源替代品,不要让破解融入你的潜意识。
文章分类
收藏
相册
NBA
海报
技术
酷图
网聚专题
Delphi Res
Borland
CoDelphi(RSS)
Friends' Blog
bluevoyage(RSS)
ENDING722的专栏(RSS)
enif的专栏(RSS)
Jack H Hansen 的专栏(RSS)
loverp(RSS)
Tinyfool(RSS)
Wenlong Wu's Blog(RSS)
深空的 PHP/Java 人生(RSS)
笨猫.NET(RSS)
雨雪之家(RSS)
Game Res
OpenGL(RSS)
SDL(RSS)
网聚
CSDN南京网友聚会(RSS)
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

转载 MP3文件格式收藏

新一篇: Quake2 .net版发布 | 旧一篇: 南京CSDN网友首次见面会简报

一.概述:

MP3文件是由帧(frame)构成的,帧是MP3文件最小的组成单位。MP3的全称应为MPEG1 Layer-3音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是MPEG1标准中的声音部分,也叫MPEG音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1Layer2Layer3,且分别对应MP1MP2MP3这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1MP2的压缩率分别为4161-81,而MP3的压缩率则高达101-121,也就是说,一分钟CD音质的音乐,未经压缩需要10MB的存储空间,而经过MP3压缩编码后只有1MB左右。不过MP3对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3采取了感官编码技术,即编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压缩比的MP3文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果。

 

二.整个MP3文件结构:

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

ID3V2

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

Frame

.

.

.

Frame

一系列的帧,个数由文件大小和帧长决定

每个FRAME的长度可能不固定,也可能固定,由位率bitrate决定

每个FRAME又分为帧头和数据实体两部分

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

ID3V1

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

 

 

三.MP3FRAME格式:

每个FRAME都有一个帧头FRAMEHEADER,长度是4BYTE32bit,帧头后面可能有两个字节的CRC校验,这两个字节的是否存在决定于FRAMEHEADER信息的第16bit,为0则帧头后面无校验,为1则有校验,校验值长度为2个字节,紧跟在FRAMEHEADER后面,接着就是帧的实体数据了,格式如下:

 

FRAMEHEADER

CRCfree

MAIN_DATA

4 BYTE

0 OR 2 BYTE

长度由帧头计算得出

 

1.帧头FRAMEHEADER格式如下:

AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM

13个帧头字符的含义如下:

Sign

Length
(bits)

Position
(bits)

Description

A

11

(31-21)

Frame sync (all bits set)

B

2

(20,19)

MPEG Audio version
00 - MPEG Version 2.5
01 - reserved
10 - MPEG Version 2
11 - MPEG Version 1

C

2

(18,17)

Layer description
00 - reserved
01 - Layer III
10 - Layer II
11 - Layer I

D

1

(16)

Protection bit
0 - Protected by CRC (16bit crc follows header)
1 - Not protected

E

4

(15,12)

Bitrate index

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

8 (8)

0010

64

48

40

64

48

16 (16)

0011

96

56

48

96

56

24 (24)

0100

128

64

56

128

64

32 (32)

0101

160

80

64

160

80

64 (40)

0110

192

96

80

192

96

80 (48)

0111

224

112

96

224

112

56 (56)

1000

256

128

112

256

128

64 (64)

1001

288

160

128

288

160

128 (80)

1010

320

192

160

320

192

160 (96)

1011

352

224

192

352

224

112 (112)

1100

384

256

224

384

256

128 (128)

1101

416

320

256

416

320

256 (144)

1110

448

384

320

448

384

320 (160)

1111

bad

bad

bad

bad

bad

bad

NOTES: All values are in kbps
V1 - MPEG Version 1
V2 - MPEG Version 2 and Version 2.5
L1 - Layer I
L2 - Layer II
L3 - Layer III
"free" means variable bitrate.
"bad" means that this is not an allowed value

The values in parentheses are from different sources which claim that those values are valid for V2,L2 and V2,L3. If anyone can confirm please let me know.

F

2

(11,10)

Sampling rate frequency index (values are in Hz)

bits

MPEG1

MPEG2

MPEG2.5

00

44100

22050

11025

01

48000

24000

12000

10

32000

16000

8000

11

reserv.

reserv.

reserv.

G

1

(9)

Padding bit
0 - frame is not padded
1 - frame is padded with one extra bit

H

1

(8)

Private bit (unknown purpose)

I

2

(7,6)

Channel Mode
00 - Stereo
01 - Joint stereo (Stereo)
10 - Dual channel (Stereo)
11 - Single channel (Mono)

J

2

(5,4)

Mode extension (Only if Joint stereo)

value

Intensity stereo

MS stereo

00

off

off

01

on

off

10

off

on