本文详细叙述了MP3音频格式的方方面面,分上、下两篇,上篇主要有MP3的诞生、原理和前景分析,下篇是高音质MP3音乐文件的制作详细介绍,基本涵盖了有关MP3音频的全部——把本页加入收藏夹吧!
在阅读前请先下载几首高音质MP3欣赏(原版CD—EAC抓轨—LAME 320KBPS):
1 贝多芬——钢琴曲
4 王菲——《天空》
如有意见,请联系编辑 蓝鹤色 OICQ:6572790 email: zwtan*it168.com】
上篇 目录:
第1页:1 合适的技术在合适的时间被激活
第2页:2.剖析:红得有道理
第3页:几个重要原理
第4页:解码
第5页:看一些比较有意思的数据
第6页:3.末日?MP3前景分析
1.诞生:合适的技术在合适的时间被激活
如果在5,6年前你说你不知道MP3还情有可原,可在现在的再说不知道就显得有点火星了。为什么?因为MP3实在太火了,我亲眼在我们学校见过一个老教授脖子上戴着一台新潮的MP3播放器。
MP3是应用于MPEG-1的一项音频压缩技术标准,英文全称是MPEG-1 Audio Layer3。对于既定的声音质量,layer3能提供最低的比特率(相对于layer1和layer2),它是MPEG音频编码家族中最有力的成员。
如果说数字化让我们听到更干净的音乐,让音乐更容易保存的话,那么MP3的诞生则让音乐能在不同地域不同国界的音乐爱好者之间更方便快捷更自由的传递。
看一组比较:
如果你想用CD质量来保存一分钟的音乐——也就是以44.1KHz的采样频率,立体声,每个采样值16比特的方式进行采样。那么那段音乐的大小将是:
44100 (样本值/秒) × 2(两个通道)× 2(每样本值两个字节)×60(每分钟60秒) =10584000 (字节)=10.3M
如果改用128kbps的MP3格式来压缩的话,只需:
128kbps ×60(秒) = 960 KB
大小比是12:1!而且128kbps的MP3也基本能让人满意。正因为MP3能让音乐文件大幅瘦身,从而使音乐在INTERNET普及后大范围传播变得具有现实可能性。
难怪MP3之父Brandenburg博士曾这样评价MP3:“MPEG-1 Layer-3 was the right technology available at the right time(MP3是在合适时间被激活的合适技术)。”
MP3之父,Karlheinz Brandenburg博士(看小资料),德国人。80年代,Karlheinz Brandenburg博士和所领导的研究小组一直在德国的 Fraunhofer IIS-A实验室从事数字音频压缩的研究。他们最早与1987年开发出MPEG-1 layer3(MP3),并在1989年取得专利权,于1991年最终制订出MP3的标准,到了1992年合并到Moving Picture Experts Group (MPEG)规范中。按照Brandenburg博士的说法,MP3的诞生应该是在1991年。
虽然MP3的标准最终得到确定,但是当时对大众来说MP3还是个陌生词。因为受限于当时的计算机的发展和感知编码(perceptual audio coding)研究中的问题,当时Fraunhofer IIS-A并没有推出MP3的标准编码、解码和播放工具。举个例子, 1980年Brandenburg还在电子工程科系读书时研究数字音乐的压缩技术。当年的计算机须花10小时才能为长约1分钟的数字音乐文件解码(注意是解码而不是编码!);而当时MP3编码器当时的编码方式在现在看来也近乎粗暴,音质自然不理想。 不过随着计算机科技的发展和感知编码的科研突破,更高效快速的压缩编码方法出现,同时MP3的传播也得以实现——MP3的好日子来了。
Brandenburg博士认为MP3的真正发展应该是从1995年开始,也就是MP3编码器和播放器发布的那一年。那时以来,INTERNET上MP3的数量就呈几何级数增长。
********************************************************************************[小资料]
< Fraunhofer IIS-A >
Fraunhofer IIS-A,作为国际性的研究实验室,Fraunhofer IIS-A(后缀-A是指Audio即音频部分)是高质量、低比特率音频编码领域的领导者之一。Fraunhofer IIS-A是MPEG Layer3以及MPEG-2 ACC的主要发展者。同时,Fraunhofer IIS-A也在MPEG-4的标准化构架工作中扮演了重要的角色。如今,MP3的专利权就属于Fraunhofer IIS-A实验室的。
#$[*129942.jpg*#a*#0*#0*#center*]$#
(mp3之父: Karlheinz Brandenburg)
#$[*129943.jpg*#a*#0*#0*#center*]$#
(Brandenburg和他的小组成员)
Karlheinz Brandenburg,现年48岁, 早在1980年,Brandenburg博士还在伊尔默瑙技术大学的电子工程科系读书时,他就开始研究数字音乐的压缩技术。
Brandenburg并没有因为MP3而发大财,因为MP3的专利权不是他的。不过他本人可分得部分专利费。不过MP3的发明为Brandenburg在科学界赢得一定声望。为了表彰Brandenburg的贡献,2000年10月19日,德国政府将德国未来奖颁发给Brandenburg博士。而Fraunhofer IIS-A也另成立了一个由他主持的分支机构,继续研究各种新式多媒体标准。
2.剖析:红得有道理!
MP3的如今大红大紫,而真正的市场发展期只有六七年,而在中国,MP3真正深入民心就在这两三年时间,可你看那红火程度,真的有点让人不够想象(连小贝跑步也带个iPod!)。对比MD,发展了十多年,在欧美那边还不是很受欢迎(这里无意谈论MP3和MD谁优谁劣的问题)。我们不禁问一句,MP3凭什么这么红?
以下是本人的观点:
1. MP3自身优秀的内涵,这是内因;
2. WINTEL之流的贡献和internet的普及;
3. LAME等一批优秀的编码器;
4. MP3随身听的推陈出新。
2.1 内涵
要分析MP3的发展必须先了解其内涵,MP3的内涵应该包括其编码原理和解码原理。
2.1.1 编码
这里分两部分介绍:简单介绍和深入了解,如果你只想简单了解一下MP3的编码原理,那之看简单介绍就可以了。
■简单介绍
音频压缩实际上由编码和解码两个部分组成。把波形文件里的数字音频数据转换为高度压缩的形式(称为比特流)即为编码;要解码则把比特流重建为波形文件。
音频压缩可以分为无损(lossless)压缩和有损压缩。无损压缩就是尽量降低音频数据的冗余度,以减小其体积。音频信号经过编码和解码之后,必须要和原来的信号一致。无损压缩的压缩率是比较有限的,不过现在比较出色的APE能做到50%的压缩率(本人用Monkey’s Audio 3。97,Extra High压缩模式下压缩WAV,压缩率最低能达到52%);有损压缩就是用尽一切手段,包括无损压缩用到的方法,丢掉一切能丢掉的数据,以减小体积。而音频压缩后解码听起来起码是要跟原来差不多的,有损压缩的压缩比能大幅提高,MP3就是属于有损压缩,压缩比是12:1(128kbps)。
MP3文件是由帧(frame)构成的,帧是MP3文件最小的组成单位。什么是帧?还记得最初的动画是怎么做的吗?不同的连续画面切换以达到动态效果,每幅画面就是一个“帧”,不同的是MP3里面的帧记录的是音频数据而不是图形数据。MP3的帧速度大概是30帧/秒。
每个帧又由帧头和帧数据组成,帧头记录着该帧的基本信息,包括位率索引和采样率索引(这对理解ABR和VBR编码方式很重要)。帧数据,顾名思义就是记录着主体音频数据。
上面说的都是MP3编码的基础,但事实上,早期的编码器都非常不完善,压缩算法近于粗暴,音质很不理想。MP3的音质达到现在的水平有两次飞跃:人体听觉心理学模型(Perceptual Model)的导入和VBR技术的应用。
◆人体听觉心理学模型
下面将简要介绍一下几个重要原理:
1) 最小听觉门槛判定(The minimal audition threshold):人耳的听力范围是20Hz-20k Hz的频率范围,但是人耳对不同的频率声音的灵敏度是不同的,不同频率的声音要达到能被人耳听到的水平所需要的强度是不一样。那么通过计算,可以把音乐文件中存在但不能被人耳听到的声音去掉。 通过这原理,我们还可以建立模型,把大部分数据空间分配到人耳最灵敏的2kHz到5kHz范围,其余频率分配比较少的空间;
2) 人耳的遮蔽效应(The Masking effect): 蔽效应表现在强信号会遮蔽邻近频率的弱信号。用生活经验来说,在安静的房间中,一根针掉到地上都能听见,可到了大街上,就算手机音量调到最大,来电时也未必能听见,而手机的声音确确实实是存在的,原因就是被周围更大的声音遮蔽了。有了对遮蔽效应的研究成果,编码器就能根据已建立的数学模型,计算强信号对附近弱信号的遮蔽,把能引起人们注意的声音才保留。
人耳还有前遮蔽效应和后遮蔽效应:因为人需要一定的时间来处理声音信号,在强信号之前或之后的弱信号,会被遮蔽掉。前遮蔽效应的时间约只有2-5ms,而后遮蔽的时间比较长,大约有100ms。利用这,我们能减小强信号之前和之后的分辨率;
3) 人耳的空间响应: 人耳对某些高频的声音的空间感很差,辨别不了声源的方向。联合立体声(Joint Stereo)应运而生:在某些频率上采用“单声道”(事实上并非真正意义上的单声道),以减小流量。
◆VBR技术
正如上面所说,MP3是由帧构成的,MP3能象动画那样读到哪放到哪, 播放器不必预读整个文件的内容,即使部分数据损坏也不会对播放效果有太大影响(实际上这就是流媒体所具有的特性)。而每个帧的帧头里都包含这该帧的码率(bitrate,单位是kbps)等信息,所以,我们可以对每一段音乐甚至每一个帧定义独立的码率,这就是VBR(Variable bitrate,动态码率)技术。
与VBR向对应的是CBR(Constant bitrate)。一支交响曲,合奏大动态部分的数据量显然大于引子部分,如果用128kbps的CBR编码方式来编码,在引子部分可能有多余的数据流量,而在合奏部分却又不够,VBR就是解决这个问题的。把在不影响音质的情况下,对流量需求小的部分分配较小的码率,把冗余字节缓存起来留给有需要的部分,在短时间内提供更高的码率,以保证音乐的质量。
所以说,VBR的作用是更合理的分配流量,在不增大文件体积的条件下提高声音的质量。
不过VBR在应用初期带给过MP3随生听不少麻烦。因为早期大多数MP3播放器都是针对CBR设计的,其根据文件大小来获得时长的算法对VBR失效了,因为VBR MP3的bitrate可能每时每刻都在变化。不过现在这个问题基本上不用担心了,市场上的播放器基本上都解决这问题了。
除了上面说的两方面,MP3编码还有很重要的一招:Huffman编码(Huffman是个科学家的名字), Huffman编码广泛应用于无损压缩领域,比如我们常用的WINZIP,WINRAR等压缩软件就是以此为基础的(只能说是基础,因为这些用到的编码方法不只是Huffman编码)。 Huffman编码用途就是降低数据的冗余度,可节省大约20%的空间。用WINZIP来再压缩MP3文件每什么效果就因为MP3编码的时候已经应用到采用Huffman编码。
■深入了解
上面简单介绍了MP3的编码原理,下面那我们将深入看看编码器是怎样工作的。
#$[*129951.gif*#a*#0*#0*#center*]$#
(MP3编码器结构图,点击放大)
1) 滤波器段(filterbank)
数字音频信号以脉冲的形式送进编码器,首先会经过一滤波器段(filterbank),它由两个串联的滤波器段组成:一个多相分析滤波器段和一个MDCT(Modified Discrete Cosine Transform,经改良的离散余弦转换),前者也应用到layer-1和layer-2中,后者是MP3独有的。
输入的音频信号在20Hz-20k Hz的频率范围内,通过第一个滤波器段后,把信号按频率分成32个小频带,称为子带(Subband)。20000Hz/32=625Hz,那么每个子带的宽度就是625Hz。人耳对不同频段的灵敏度是不同的,编码器可对不同的子带进行不同的量化分层。
不过等宽的子带并没有准确反映人耳的听觉特性,这样进行等宽划分并没有考虑到不同信号的临界宽度,也就是该信号的影响范围,以及不同信号的相互影响,所以这样会产生大量的信号重叠。MDCT转换就是为了解决这问题,它能对子带进行细分,清楚重叠部分,得到更高的频谱解析度。
2) 人体听觉心理学模型(Perceptual Model)
上面已经谈到过人体听觉心理学模型,心理学模型可以说是感受编码的重中之中,它决定着编码器的编码质量(后面谈到的LAME就拥有着大量优秀的人体精神听觉模型和数学模型)。下面将深入分析两个重要原理: 最小听觉门槛判定和遮蔽效应。
◆最小听觉门槛判定
声音其实是传播在介质中的能量波,人耳对声音能量强弱的直接感受就是听到音量的大小,也就是响度,单位是分贝(dB)。下面是人耳可听最小响度曲线:
#$[*129960.gif*#a*#0*#0*#center*]$#
(0dB是听觉灵敏度的极限,而120dB是痛苦灵敏度的极限。人耳在2000Hz到5000Hz范围内的灵敏度最高,两端就迅速下降。所以人耳对中频的灵敏度远高于高低频。)
◆遮蔽效应
不同频率的声音有不同的遮蔽宽度,这叫临界宽度。可以想象,弱信号越接近强信号的中心,遮蔽效应会越严重。临界宽度跟声音频率成正比。下面是临界宽度列表:
频率(Hz) |
临界带宽(Hz) |
频率(Hz) |
临界带宽(Hz) |
50 |
80 |
1850 |
280 |
150 |
100 |
2150 |
320 |
350 |
100 |
2500 |
380 |
450 |
110 |
3400 |
550 |
570 |
120 |
4000 |
700 |
700 |
140 |
4800 |
900 |
840 |
150 |
5800 |
1100 |
1000 |
160 |
7000 |
1300 |
1170 |
190 |
8500 |
1800 |
1370 |
210 |
10500 |
2500 |
1600 |
240 |
13500 |
3500 |
感受编码机制可以分为两个部分:知觉噪音成型(perceptual noise shaping)和知觉边带/变换编码(perceptual subband / transform coding)。编码器通过分析滤波器段(filterbank)分析音频信号的频谱组成并应用听觉心理学模型来估计仅仅可以注意得到的噪音电平。在后面的量化和编码阶段,编码器会提高强信号附近的噪音电平,也就是减少量化位数,这样就能达到节省流量,压缩数据的目的。如果所有量化噪音都能控制在屏蔽临界曲线以下,那么处理后人耳就区别不出哪个才是原音。
3) 量化和编码(Quantization and Coding)
当PCM讯号被分成好几个频段并经过一系列的处理后,最后经过MDCT,将波型转换为一连串的系数。这些系数就由Huffman编码器会选择最合适的Huffman表来做最后的压缩。 Huffman编码一般是双路工作的,但是在某些需要精密编码的情况下,它会进行四路工作。编码器一般会有很多的Huffman编码表,很多时候为了更好的声音质量和更有效屏蔽量化噪音,编码器甚至能为每一个频段选择最合适的Huffman编码表。
不过编码不是一次就能成功的,要采取Try and Error的方式循环进行。因为编码器一方面要削减量化噪音,让它在人耳遮蔽曲线以下;另一方面要保证bitrate满足要求。实际上这里就是要确定两个数值:一个是确定bitrate的步进值(gain value),另一个是削减量化噪音的增益因子(ScaleFactor),这两个系数会在正式编码之前确定下来,确定过程由两个嵌套的迭代回路完成:失真控制回路(Distortion Control Loop)和量化速率控制回路(Nonuniform Quantization Rate Control Loop)
<内部迭代回路(Rate Loop )>
量化以后的数据送进Huffman编码器,当发现比特数大于可用流量时,编码器会返回信息,让Rate Loop调整步进值以增大量化步长,从而让数据流量减小。循环会一直进行,尝试不同的量化步长,直到Huffman编码以后的数据流量足够小。因为这个回路是用来控制码率的,所以叫做Rate Loop。
<外部迭代回路(noise control loop)>
显然,这个回路的作用就是控制量化噪音(quantization noise),让其保持在听觉心理学提供的屏蔽临界线(masking threshold)以下。每一个频段都会有一个增益因子,一开始编码器以1。0作为默认因子,如果量化噪音量超过允许的值,那么回路就会调整增益因子,来把量化噪音降下来。更少的量化噪音意味着流量增大,码率需要提高,所以增益因子每次改变以后, Rate Loop都要进行调整,让码率符合要求。
所以两个回路是嵌套工作的,互相协调,中止条件是量化噪音降到屏蔽临界线以下而码率也足够小。良好的编码器会让两个回路有条不紊的工作,因为一旦处理不好就很容易陷入死循环。
2.1.2 解码
MP3文件帧组成,每个帧又由帧头和帧数据组成。帧头长4字节。其数据结构如下:
typedef struct _tagHeader
{
unsigned int sync:12; file://同步信息
unsigned int version:1; file://版本
unsigned int layer:2; file://层
unsigned int error_protection:1; file://CRC校正
unsigned int bit_rate_index:4; file://码率索引
unsigned int sample_rate_index:2; file://采样率索引
unsigned int padding:1; file://空白字
unsigned int extension:1; file://私有标志
unsigned int channel_mode:2; file://立体声模式
unsigned int mode extension:2; file://保留
unsigned int copyright:1; file://版权标志
unsigned int original:1; file://原始媒体
unsigned int emphasis:2; file://强调方式
} HEADER, *LPHEADER;
在帧头后边是通道信息和增益因子(ScaleFactor),数据以比特流的形式送进编码器,当解码器在读到上述信息后,就可以进行解码了。解码比编码容易得多,播放器先进行帧同步,然后读取通道信息和增益因子,再进行Huffman解码,这样就得到解压以后的数据。但这些数据仍然不能进行播放,因为它们还只是一些频段信息,还需要经过特殊手段对他们转换组合,跟时间建立联系(实际上就是频域转时域)。然后进行一系列的逆变换,把音频信号重建出来。
前面说的是软解码,现在来谈谈硬解码,也就是现在很流行的MP3随身听。 它的工作流程一般是这样的:读取存储器上的数据(存储器可能是闪存,硬盘或光盘)→把数据送进解码芯片进行解码→通过数模转换器将解出来的数字信号转换成模拟信号-→再把转换后的模拟音频放大-→低通滤波后到耳机输出口。
也就就是说解码的主要任务交给了解码芯片。MP3的芯片分为单芯片和双芯片,单芯片设计就是把控制部分,MP3解码部分等都集成到一块芯片中;双芯片就是把控制部分和MP3解码部分分开。随着集成电路的发展,厂商都倾向于使用单芯片设计,而提供芯片的厂家就那么几家,所以,不同品牌的MP3播放器中,很大程度上决定回放质量的解码芯片可能是一样。
早期有不少MP3播放器不支持高于224kbps的MP3,这也是芯片惹的祸。VCD里的音频使用的是MP2格式(MPEG-1 Audio Layer2),所以不少MP3厂家为了节省成本,简化VCD的解码芯片用作MP3解码芯片,而VCD规范中音频流量最高是224kbps,问题由此产生。不过现在这中问题基本不存在了。
2.2 WINTEL之流的贡献和Internet的发展与扩张
看一些比较有意思的数据:想象一下你在五六年前用有一台32MB的串口MP3播放器,要把32MB填满,那么按照串口的理论传输速度0.1MB/s来计算,需要5.3分钟;实际上还远不止此,电脑上的音乐是从网上下载的或是自己压缩的。如果是利用调制解调器从网上下载,假定下载速度是5KB/s,那么起码需要109分钟才能下载32MB的音乐。而假如是自己用奔腾133来压缩,为了得到33分钟的音乐,其压缩的时间高达125.4小时。
这样用法简直就是受罪!所以我把WINTEL之流的贡献和internet的发展与扩张放在了外因的第一位。如果没有INTEL,M$等硬件,软件公司推动计算机业的发展,使计算机的性能和易用性迅速提升,MP3能有这么平易近人吗? 至于INTERNET,应该不用多说了,MP3就借助这张自由之网,让无数台电脑“感染”了MP3,也让唱片业巨头们头疼的版权问题迅速扩散。
2.3 LAME等一批优秀的编码器
至于LAME等编码器,我把它们放到第二位也许有人感到惊讶。当时当初什么人们总觉得MP3音质差、比不上MD,甚至知道现在,觉得MP3音质不好的偏见还深深烙在人们的心里,就因为早期缺乏优秀的编码器,以及X霸太多。
2。4 MP3随身听的推陈出新
如果我说“很多人是通过MP3随身听而认识MP3的”,我相信没人反对。MP3随身听是近几年随身听市场上热点,新品的推出速度让人惊讶。为什么这么火爆?就因为有了上面所说的三点做基础,让MP3随身听具备了迅速扩张的条件,而MP3随身听的扩张又让MP3融入到人们的生活,更深入人心,
***************************************************************************
[小资料]
<Winamp>
当年除了官方的MP3工具外,很多独立的开发人员和公司都推出了自己的MP3工具,走在最前面的是Tomislav Uzelac,他们开发出了第一款桌面MP3播放器:AMP,它就是今天风光无限的Winamp的鼻祖。
<MPMAN MP-F10>
#$[*129963.jpg*#a*#0*#0*#center*]$#
(1998年1月,世界上第一台MP3随身听—— MPMAN MP-F10诞生,由韩国世韩制造,容量32MB。)
#$[*129964.jpg*#a*#0*#0*#center*]$#
(帝盟(Diamond)公司于1998年9月推出Rio PMP 300。 Rio PMP 300是当时最流行的MP3随生听,带动了销售狂潮,估计在全球范围内销售达20万台,它让人们感受到MP3播放器的魅力。)
<NAPSTER>
1999年,位于美国加州的NAPSTER公司为爱好MP3的用户提供了一个免费的软件-NAPSTER。 NAPSTER的出现,激起了整个唱片工业的勃然大怒!数十家唱片公司联名状告NAPSTER,要求其停止散布盗版音乐制品。2001年3月,这场官司终于以NAPSTER的落败画上了句号。
(*此段摘自《数字音乐发展史回顾》*)
3.末日?MP3前景分析
MP3的确曾经风光无限,不过它的致命伤在于版权问题(不过说到底,其实就是钱的问题),它的普及就意味着大把本来属于唱片业寡头们的钞票流到了大海,他们想尽了一切办法来打压MP3,不过似乎没达到大款们预想的效果。
他们的拿手好戏就是充分运用法律手段,他们起诉NAPSTER、MP3。COM……
早在98年Rio PMP 300在市场上大热之后,美国录音业协会(RIAA)状告帝盟,罪名是“用户能通过其产品在互联网上免费下载音乐”,不过最后帝盟胜诉。更可笑的是这官司不单没达到巨头们希望的打压MP3的目的,反而增加了MP3随身听的知名度,而且鼓舞了很多持观望态度的厂商进入随身听市场。有了法律保护,MP3随身听雨后春笋般推出市场。
不过时移世易,在去年召开的美国国会上,美国参议员弗里兹。霍林斯提出的《消费者宽带和数字电视促进法案》(CBDTPA,也称“霍林斯法案”)要求“任何数字媒体装置都必须含有并使用符合安全系统标准的标准安全技术”,否则就被视为非法,就是说将由美国政府选定用于版权保护的技术,并通过立法规定制造商必须在其生产和销售的电子产品中使用该技术。这一法案针对的不只是音乐,还包括数字视频、高清晰度电视等一切可能涉及版权问题的数字媒体。“霍林斯法案”是在去年第107次国会上提出的,不过那次会议的焦点后来全集中在伊拉克问题上,所以法案被暂时搁置,相信很快被再次提出来的(摘自《科技新时代》)。
这一切,似乎早就演变成了一场金钱和政治游戏……
同时,很多优秀的新格式都起来挑战,他们都身怀绝技,比如VQF、Real Audio、WMA、AAC、MP4和Ogg Vorbis;其中有一些大有取代MP3之势,比如WMA和OGG。对于各种格式的比较,有兴趣的朋友可以看这http://www。audio100。com/4/13。htm。
MP3最终被将被取代是科技发展的必然趋势,我们也相信”明天会更好”。
MP3的出现是伟大的;而对于各种新格式的出现我们应该感到高兴,因为这都是新技术,都代表着科技的进步;不过所谓的版权之争,早早就已经变成赤裸裸的金钱政治游戏,对于我们----一群普通消费者、音乐爱好者来说,我们唯一能做的好象就是默默看着闹剧的发展。
说句心底话, 我们希望看到的只是能出现比MP3更优秀的格式,我们能更好地享受音乐;同时“human technology”应该真真正正地成为科技的真谛,而不是“money technology”,这是我们最大的愿望!
MP3带来的自由精神让资本家们恨之入骨,对于明天,我们不知道自由是否还在……