Chinaunix首页 | 论坛 | 博客
  • 博客访问: 315964
  • 博文数量: 146
  • 博客积分: 198
  • 博客等级: 入伍新兵
  • 技术积分: 689
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-24 08:35
文章分类

全部博文(146)

文章存档

2013年(46)

2012年(98)

2011年(1)

2010年(1)

我的朋友

分类: 嵌入式

2013-02-22 11:53:33

主题:MPEG简介 + 如何计算CBR/VBR MP3的播放时间 - 1

版本:20090919

作者:crifan

邮箱:green-waste(At)163.com

声明:

1.本文所写内容,多数整理自自互联网,版权归原作者所有。

2.笔者知识有限,文中难免有误,欢迎批评指正。

3.欢迎盗版,盗版不究。

--------------------------------------无敌分割线-------------------------------------------

【此文目的】

1.      了解MPEG相关知识

2.      了解MP3的常见术语含义

3.      详解VBR MP3的帧头格式及含义

4.      搞懂如何去计算CBRVBRMP3文件的播放时间(duration

 

【目录】

1MPEG的相关知识... 2

1.1 MPEG是啥... 3

1.2啥没了MPEG-3. 3

1.3 MPEG2.5又是啥... 3

1.4 MPEG中不同帧之间的关系... 3

1.5 MPEG-1MPEG-2音频特性... 4

1.5.1 MPEG-1音频(ISO/IEC 11172-3... 4

1.5.2 MPEG-2音频(ISO/IEC 13813-3... 4

1.6 什么ISO/IEC 11172-3ISO/IEC 13818-3. 4

2 MP3中常见的术语... 5

2.1 啥叫MP3. 5

2.2 什么是LSF. 5

2.3 什么是帧(frame... 5

2.4 什么是帧头(header... 5

2.5 啥是CBRVBR.. 5

2.6 比特率(bitrate... 6

2.7 边信息(side information... 6

3 VBR MP3的帧头格式详解... 6

3.1 VBR MP3的帧头类型... 6

3.2 MPEG音频帧格式及其含义介绍... 6

4 MP3的播放时间的计算公式及XINGVBRI头介绍... 9

4.1 CBRMP3的播放时间(duration)计算公式... 9

4.2 VBRMP3的播放时间(duration)计算公式... 9

4.2.1 Xing TAG / Xing头(header... 9

4.2.2 VBRI头(header... 10

5 计算CBRVBRMP3文件的播放时间的步骤... 11

5.1 定位到MPEG的帧头的位置... 11

5.2 解析MPEG帧头,获取必要信息... 11

5.3 判断是VBR还是CBR,根据公式计算播放时间... 11

5.3.1 定位出Xing... 12

5.3.2 如果有,解析Xing头,并计算播放时间... 12

5.3.3 果没XING头,定位出VBRI头位置,找VBRI... 12

5.3.4 如果都没找到,说明是CBR,则计算CBR的播放时间... 12

6 MP3的文件的内容组织结构... 13

7 后记... 14

8 文章引用... 15

 

【表格索引】

1  MPEG音频帧头的格式... 7

2  比特率... 8

3  每帧的采样数... 8

4  MPEG不同版本对应的采样率... 8

5  XING ... 10

6  VBRI... 11

7  Layer III的边信息(side information... 12

8  MP3文件的内容组织结构... 14

 

MPEG的相关知识

想要了解如何计算VBRMP3的播放时间之前,要简单了解一些MP3相关的一些基本概念,主要是MPEG的相关知识和编解码的一些知识:

是啥

MPEG全名Moving Pictures Experts Group,动态图像专家组,简单说就是一个专家组,专门研究一些音视频规范的,所以才叫专家,不是我们国家的砖家哦。这个专家组是在ISO/IECInternational Standards Organization/International Electrotechnical Commission,国际标准化组织/国际电工委员会)联合指导下成立的。这个组,专门去研究出一个数字音视频的压缩相关的规范,所以最后研究出适用于不同应用环境的N多规范。

和事物发展的过程类似,研究出这么多的规范也是,不同时期,不同的版本,针对不同的应用。也是由简到繁。并且,命名规则都是,按照阿拉伯数字从小到大的:MPEG 1MPEG2MPEG4MPEG-7,最新版本,好像都有MPEG-21了。

啥没了MPEG-3

估计有人纳闷了,为啥中间的MPEG3咋没了呢?

是没MPEG3,当然,不是被刘谦变魔术变没了,而是由于当时设计者没有规划好,导致已经设计好的MPEG2,性能太好了,都能干本来打算让MPEG3干的活了,所以后来干脆就不去再设计MPEG3了,原定计划就取消了,也就没了MPEG3。看来这个MPEG3,待遇貌似不比胎死腹中好多少。对于很多人误解的,以为MP3就是MPEG-3,也就更错的离谱了。关于MP3的名称来历,下面会再解释。

又是啥

MPEG2.5,简单说就是出身不正,不是官方推出的规范。MPEG 2.5是针对MPEG2的一个非官方的扩展版本,支持更低的采样率。关于其更多解释,网上找到这些:

MPEG声音标准提供三个独立的压缩层次:Layer ILayer IILayer III。用户具体选哪个Layer,可以根据自己的要求,在权衡复杂性和声音质量之后,做出自己的选择。

ALayer I的编码器最为简单,编码器的输出数据率为384 kb/s,主要用于小型数字盒式磁带(digital compact cassetteDCC)

BLayer II的编码器的复杂程度属中等,编码器的输出数据率为256 kb/s192 kb/s,其应用包括数字广播声音(digital broadcast audioDBA)、数字音乐、CD-I(compact disc-interactive)VCD(video compact disc)等。

CLayer III的编码器最为复杂,编码器的输出数据率为64 kb/s,主要应用于ISDN上的声音传输。 MPEG-1 Layer III支持的采样率为32,44.1,48khz,比特率支持32---320kbps MPEG-2 Layer III支持的采样率为16,22.05,24khz,比特率支持8---160kbps

Fraunhofer对此又进行扩展,将原来MPEG-2所支持的低采样率再除以2,得到: 8, 11.025, 12 kHz,比特率跟MPEG-2相同,称为 "MPEG 2.5"

中不同帧之间的关系

对于Layer ILayer II,不同的帧之间,是互相独立的。也就意味着,你可以任意截取MPEG的音频文件,然后找到第一个正确的帧头,然后解码,然后接下来放余下的帧,这样都可以正确的播放。而对于Layer III,所有帧不保证都是互相独立的。由于可能用到字节蓄水池(byte reservoir,即内部的一个数据缓存,这些帧,都是相关的,最差情况下,要连续缓冲保存9个帧,才能对第一帧解码。

MPEG-2音频特性

1.5.1 MPEG-1音频(ISO/IEC 11172-3

其描述了三层音频编码,具有如下特性:

A. 一个或两个音频声道

B. 采样率32KHz44.1KHz48KHz

C.比特率从32Kbps448Kbps

D.每一层都有其自己的其他特点。

1.5.2 MPEG-2音频(ISO/IEC 13813-3

其包含了对MPEG-1的两种扩展。通常称为MEGP-2/低采样率(LSF)和MPEG-2/多声道(Multichannel)。

1.5.2.1 MPEG-2/LSF的特性:

A. 一个或两个音频声道

B. 采样率只有MPEG-1的一半

C.比特率从8Kpbs256Kbps

1.5.2.2 MPEG-2/多声道,的特性:

A. 多达5个全范围的音频声道和一个LFELow Frequency Enhancement,也叫做 重低音)声道

B. 采样率和MPEG-1相同

C.对于5.1声道,最高的比特率可达1Mpbs

什么ISO/IEC 11172-3ISO/IEC 13818-3

由于MPEG只是ISO/IEC下面的一个组织,所以,关于MPEG音频部分的规范,也多是出自ISO/IEC之手。

因此,ISO/IEC 11172ISO/IEC 13818,其实就是MPEG1的音频部分和MPEG-2的别名。

另外,由于MPEG-1MPEG-2,每个都分好几个部分,其中,第三部分是关于音频的。所以,ISO/IEC 11172-3ISO/IEC 13818-3,就分别对应着MPEG-1的音频,MPEG-2的音频,也就是我们常常提到的MPEG的音频文件所对应的规范。

中常见的术语

知道了MPEG的来龙去脉后,在了解MP3的播放时间如何计算之前,也要知道其他一些,和MP3相关的知识,和常见的术语:

啥叫MP3

注意,这个MP3,不是MPEG-3,但是为何叫MP3,是因为:

MPEG规范中规定了,每一个版本的MPEG,比如MPEG1MPEG2等,都有三种不同的Layer,不同Layer的序号命令是以罗马数字的,所以叫做Layer I Layer II Layer III

其中,最常见的就是MPEG 1 Layer III,就是众所周知的MP3

根据事物发展由简到繁的规律,我们知道,Layer III,相对Layer ILayer II,其有着更复杂的压缩算法。正是其相对复杂,用了很多算法,比如声学上的掩蔽效应(masking effect),Huffman压缩等,使得尽可能保持音质的基础上,极大地减少了音频文件大小,也就是说,尽量让你听上去音频声音和音质都没啥变化,但是MP3的文件大小,相对于原先没处理的,或者其他格式的,比如WAV格式等,要小很多,方便大家互相传播交流。这也是MP3如此流行的主要原因之一。

什么是LSF

MPEG2/2.5 也常被简称为LSFLow Sampling Frequencies),低采样率。

什么是帧(frame

通俗点说,就是一段连续的数据块。对于MPEG音频文件本身,并没有什么文件头,而是由很多数据块所组成,这样的单个的数据块,就叫做一个(数据/音频)帧(frame)。MP3文件,同理,由很多个帧所组成。帧,也是其他很多音视频技术中的基本单位。

什么是帧头(header

每一个帧里面,包含了帧头和音频数据。帧头,就是在帧的头部,有一定长度的数据,用于描述改帧音频的一些参数,用于解码器对此音频帧进行解码。对于MPEG的帧头,是固定的32 比特,即4字节。

啥是CBRVBR

CBRConstant bitrate)固定(/不变)比特率,VBRVariable bitrate ),不定(/可变)比特率,变与不变,指的是MP3的比特率是否固定。音频文件可以被编码成CBRVBRVBR意思就是,每一帧的比特率不同。由于VBR可以在需要的时候,采用高比特率,所以,一般来说,VBR的音质比CBR的要好。

很多种音视频文件,都可以按照VBR来压缩,比如MP3WMAVorbis OGGAACMPEG-2的视频等。VBR的优点是,和CBR相比,用更小的空间,即文件更小,实现更高的音质。缺点是,编码复杂度增加,编码需要更长时间,而有些硬件编码器可能和VBR不兼容。

比特率(bitrate

即每秒包含/播放了多少个比特的数据。比特率常用Kbpskilo bits per second,千比特每秒)表示。此处的千字节=1000字节,而不是1024.

边信息(side information

MPEG音频的帧头后面,有一些解码器会用到的一些信息,用于解码器控制音频流的播放,它就叫做 边信息。不同版本的MPEGLayer III的边信息的大小,详见后面的表。

 
相关链接及下载:
 
文件: 如何计算VBR MP3的播放时间持续时间.pdf 【全】
大小: 251KB
下载: 下载
阅读(1302) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~