分类: LINUX
2008-06-17 17:30:52
MPEG-1 Audio Layer 3,经常称为MP3,是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度地降低音频数据量,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。它是在1991年由位于德国埃尔朗根的研究组织Fraunhofer-Gesellschaft的一组工程师发明和标准化的。
概观
MP3是一个数据压缩格式。它丢弃掉脉冲编码调制(PCM)音频数据中对人类听觉不重要的数据(类似于JPEG是一个有损图像压缩),从而达到了小得多的文件大小。
在MP3中使用了许多技术其中包括心理声学以确定音频的哪一部分可以丢弃。MP3音频可以按照不同的位速进行压缩,提供了在数据大小和声音质量之间进行权衡的一个范围。
MP3格式使用了混合的转换机制将时域信号转换成频域信号:
* 32波段多相积分滤波器(PQF)
* 36或者12 tap 改良离散余弦滤波器(MDCT);每个子波段大小可以在0...1和2...31之间独立选择
* 混叠衰减后处理
根据MPEG规范的说法,MPEG-4中的AAC(Advanced audio coding)将是MP3格式的下一代,尽管有许多创造和推广其他格式的重要努力。然而,由于MP3的空前的流行,任何其他格式的成功在目前来说都是不太可能的。MP3不仅有广泛的用户端软件支持,也有很多的硬件支持比如便携式媒体播放器(指MP3播放器)DVD和CD播放器。
发展
MPEG-1 Audio Layer 2编码开始时是德国Deutsche Forschungs- und Versuchsanstalt für Luft- und Raumfahrt(后来称为Deutsches Zentrum für Luft- und Raumfahrt, 德国太空中心)Egon Meier-Engelen管理的数字音频广播(DAB)项目。这个项目是欧盟作为EUREKA研究项目资助的,它的名字通常称为EU-147。EU-147 的研究期间是1987年到1994年。
到了1991年,就已经出现了两个提案:Musicam(称为Layer 2)和ASPEC(自适应频谱感知熵编码)。荷兰飞利浦公司、法国CCETT和德国Institut für Rundfunktechnik提出的Musicam方法由于它的简单、出错时的健壮性以及在高质量压缩时较少的计算量而被选中。基于子带编码的Musicam 格式是确定MPEG音频压缩格式(采样率、帧结构、数据头、每帧采样点)的一个关键因素。这项技术和它的设计思路完全融合到了ISO MPEG Audio Layer I、II 以及后来的Layer III(MP3)格式的定义中。在Mussmann教授(University of Hannover)的主持下,标准的制定由Leon van de Kerkhof(Layer I)和Gerhard Stoll(Layer II)完成。
一个由荷兰Leon Van de Kerkhof、德国Gerhard Stoll、法国Yves-François Dehery和德国Karlheinz Brandenburg 组成的工作小组吸收了Musicam和ASPEC的设计思想,并添加了他们自己的设计思想从而开发出了MP3,MP3能够在128kbit/s达到MP2 192kbit/s 音质。
所有这些算法最终都在1992年成为了MPEG的第一个标准组MPEG-1的一部分,并且生成了1993年公布的国际标准ISO/IEC 11172-3。MPEG音频上的更进一步的工作最终成为了1994年制定的第二个MPEG标准组MPEG-2标准的一部分,这个标准正式的称呼是1995年首次公布的ISO/IEC 13818-3。
编码器的压缩效率通常由位速定义,因为压缩率依赖于位数(:en:bit depth)和输入信号的采样率。然而,经常有产品使用CD参数(44.1kHz、两个通道、每通道16位或者称为2x16位)作为压缩率参考,使用这个参考的压缩率通常较高,这也说明了压缩率对于有损压缩存在的问题。
Karlheinz Brandenburg使用CD介质的Suzanne Vega的歌曲Tom’s Diner来评价MP3压缩算法。使用这首歌是因为这首歌的柔和、简单旋律使得在回放时更容易听到压缩格式中的缺陷。一些人开玩笑地将Suzanne Vega称为“MP3之母”。来自于EBU V3/SQAM参考CD的更多一些严肃和critical 音频选段(glockenspiel, triangle, accordion, ...)被专业音频工程师用来评价MPEG音频格式的主观感受质量。
MP3走向大众
为了生成位兼容的MPEG Audio文件(Layer 1、Layer 2、Layer 3),ISO MPEG Audio委员会成员用C语言开发的一个称为ISO 11172-5的参考模拟软件。在一些非实时操作系统上它能够演示第一款压缩音频基于DSP的实时硬件解码。一些其它的MPEG Audio实时开发出来用于面向消费接收机和机顶盒的数字广播(无线电DAB和电视DVB)。
后来,1994年7月7日Fraunhofer-Gesellschaft发布了第一个称为l3enc的MP3编码器。
Fraunhofer开发组在1995年7月14日选定扩展名.mp3(以前扩展名是.bit)。使用第一款实时软件MP3播放器Winplay3(1995年9月9日发布)许多人能够在自己的个人电脑上编码和回放MP3文件。由于当时的硬盘相对较小(如500MB),这项技术对于在计算机上存储娱乐音乐来说是至关重要的。
MP2、MP3与因特网
1993年10月,MP2(MPEG-1 Audio Layer 2)文件在因特网上出现,它们经常使用Xing MPEG Audio Player播放,后来又出现了Tobias Bading为Unix开发的MAPlay。MAPlay于199年2月22日首次发布,现在已经移植到微软视窗平台上。
刚开始仅有的MP2编码器产品是Xing Encoder和CDDA2WAV,CDDA2WAV是一个将CD音轨转换成WAV格式的CD抓取器。
Internet Underground Music Archive(IUMA)通常被认为是在线音乐革命的鼻祖,IUMA是因特网上第一个高保真音乐网站,在MP3和网络流行之前它有数千首授权的MP2录音。
从1995年上半年开始直到整个九十年代后期,MP3开始在因特网上蓬勃发展。MP3的流行主要得益于如Nullsoft于1997年发布的Winamp和Napster于1999年发布的Napster这样的公司和软件包的成功,并且它们相互促进发展。这些程序使得普通用户很容易地播放、制作、共享和收集MP3文件。
关于MP3文件的点对点技术文件共享的争论在最近几年迅速蔓延—这主要是由于压缩使得文件共享成为可能,未经压缩的文件过于庞大难于共享。由于MP3文件通过因特网大量传播一些主要唱片厂商通过法律起诉Napster来保护它们的版权(参见知识产权)。
如iTunes Music Store这样的商业在线音乐发行服务通常选择其它或者专有的支持数字版权管理(DRM)的音乐文件格式以控制和限制数字音乐的使用。支持DRM的格式的使用是为了防止受版权保护的素材免被侵犯版权,但是大多数的保护机制都能被一些方法破解。这些方法能够被计算机高手用来生成能够自由复制的解锁文件。一个显著的例外是微软公司的Windows Media Audio 10格式,目前它还没有被破解。如果希望得到一个压缩的音频文件,这个录制的音频流必须进行压缩并且带来音质的降低。
MP3的音频质量
因为MP3是一种有损格式,它提供了多种不同“位速”的选项—也就是用来表示每秒音频所需的编码数据位数。典型的速度介于每秒128和320kb之间。与此对照的是,CD上未经压缩的音频位速是1411.2 kbit/s(16 位/采样点 × 44100 采样点/秒 × 2 通道)。
使用较低位速编码的MP3文件通常回放质量较低。使用过低的位速,“压缩噪声(:en:compression artifact)”(原始录音中没有的声音)将会在回放时出现。说明压缩噪声的一个好例子是压缩欢呼的声音:由于它的随机性和急剧变化,所以编码器的错误就会更明显,并且听起来就象回声。
除了编码文件的位速之外,MP3文件的质量也与编码器的质量以及编码信号的难度有关。使用优质编码器编码的普通信号,一些人认为128kbit/s的MP3以及44.1kHz的CD采样的音质近似于CD音质,同时得到了大约11:1的压缩率。在这个比率下正确编码的MP3能够获得比调频广播和卡式磁带[来源请求]更好的音质,这主要是那些模拟介质的带宽限制、信噪比和其它一些限制。然而,听力测试显示经过简单的练习测试听众能够可靠地区分出128kbit/s MP3与原始CD的区别[来源请求]。在许多情况下他们认为MP3音质太低是不可接受的,然而其他一些听众或者换个环境(如在嘈杂的车中或者聚会上)他们又认为音质是可接受的。很显然,MP3 编码的瑕疵在低端计算机的扬声器上比较不明显,而在连接到计算机的高质量立体声系统,尤其是使用高质量的headphone时则比较明显。
Fraunhofer Gesellschaft(FhG)在他们的官方网站上公布了下面的MPEG-1 Layer 1、2和3的压缩率和数据速率用于比较:
* Layer 1: 384 kbit/s,压缩率 4:1
* Layer 2: 192...256 kbit/s,压缩率 8:1...6:1
* Layer 3: 112...128 kbit/s,压缩率 12:1...10:1
不同层面之间的差别是因为它们使用了不同的心理声学模型导致的;Layer 1的算法相当简单,所以透明编码就需要更高的位速。然而,由于不同的编码器使用不同的模型,很难进行这样的完全比较。
许多人认为所引用的速率出于对Layer 2和Layer 3记录的偏爱而出现了严重扭曲。他们争辩说实际的速率如下所列:
* Layer 1: 384 kbit/s 优秀
* Layer 2: 256...384 kbit/s 优秀, 224...256 kbit/s 很好, 192...224 kbit/s 好
* Layer 3: 224...320 kbit/s 优秀, 192...224 kbit/s 很好, 128...192 kbit/s 好
当比较压缩机制时,很重要的是要使用同等音质的编码器。将新编码器与基于过时技术甚至是带有缺陷的旧编码器比较可能会产生对于旧格式不利的结果。由于有损编码会丢失信息这样一个现实,MP3算法通过建立人类听觉总体特征的模型尽量保证丢弃的部分不被人耳识别出来(例如,由于noise masking),不同的编码器能够在不同程度上实现这一点。
一些可能的编码器:
* Mike Cheng在1998年早些时候首次开发的LAME。 与其它相比,它是一个完全遵循LGPL的MP3编码器,它有良好的速度和音质,甚至对MP3技术的后继版本形成了挑战。
* Fraunhofer Gesellschaft:有些编码器不错,有些有缺陷。
有许多的早期编码器现在已经不再广泛使用:
* ISO dist10 参考代码
* BladeEnc
* ACM Producer Pro.
好的编码器能够在128到160kbit/s下达到可接受的音质,在160到192kbit/s下达到接近透明的音质。所以不在特定编码器或者最好的编码器话题内说128kbit/s或者192kbit/s下的音质是容易引起误解的。一个好的编码器在 128kbit/s下生成的MP3有可能比一个不好的编码器在192kbit/s下生成的MP3音质更好。另外,即使是同样的编码器同样的文件大小,一个不变位速的MP3可能比一个变位速的MP3音质要差很多。
需要注意的一个重要问题是音频信号的质量是一个主观判断。Placebo effect is rampant, with many users claiming to require a certain quality level for transparency.许多用户在A/B测试中都没有通过,他们无法在更低的位速下区分文件。一个特定的位速对于有些用户来说是足够的,对于另外一些用户来说是不够的。每个人的声音感知可能有所不同,所以一个能够满足所有人的特定心理声学模型并不明显存在。仅仅改变试听环境,如音频播放系统或者环境可能就会显现出有损压缩所产生的音质降低。上面给出的数字只是大多数人的一个大致有效参考,但是在有损压缩领域真正有效的压缩过程质量测试手段就是试听音频结果。
如果你的目标是实现没有质量损失的音频文件或者用在演播室中的音频文件,就应该使用无损压缩算法,目前能够将16位PCM音频数据压缩到38%并且声音没有任何损失,这样的压缩工具有Lossless Audio LA、Apple Lossless、TTA、FLAC、Windows Media Audio 9 Lossless (wma) 和Monkey’s Audio 等等。对于需要进行编辑、混合处理的音频文件要尽量使用无损格式,否则有损压缩产生的误差可能在处理后无法预测,多次编码产生的损失将会混杂在一起,在处理之后进行编码这些损失将会变得更加明显。无损压缩在降低压缩率的代价下能够达到最好的结果。
一些简单的编辑操作,如切掉音频的部分片段,可以直接在MP3数据上操作而不需要重新编码。对于这些操作来说,只要使用合适的软件(mp3DirectCut和MP3Gain),上面提到的所关心的问题可以不必考虑。
位速
位速对于MP3文件来说是可变的。总的原则是位速越高则声音文件中包含的原始声音信息越多,这样回放时声音质量也越高。在MP3编码的早期,整个文件使用一个固定的位速。
MPEG-1 Layer 3允许使用的位速是32、40、48、56、64、80、96、112、128、160、192、224、256和320 kbit/s,允许的采样频率是32、44.1和48kHz。44.1kHz是最为经常使用的速度(与CD的采样速率相同),128kbit/s是事实上“好品质”的标准,尽管192kbit/s在对等文件共享网络上越来越受到欢迎。MPEG-2和[非正式的]MPEG-2.5包括其它一些位速:6、12、24、32、40、48、56、64、80、96、112、128、144、160kbit/s。
可变位速(VBR)也是可能的。MP3文件的中的音频切分成有自己不同位速的帧,这样在文件编码的时候就可以动态地改变位速。尽管在最初的实现中并没有这项功能,VBR现在已经得到了广泛的应用。这项技术使得在声音变化大的部分使用较大的位速而在声音变化小的部分使用较小的位速成为可能。这个方法类似于声音控制的磁带录音机不记录静止部分节省磁带消耗。一些编码器在很大程度上依赖于这项技术。
高达640kbit/s的非标准位速可以使用LAME编码器和自由格式来实现,但是几乎没有MP3播放器能够播放这些文件。
MP3的设计局限
MP3格式有一些不能仅仅通过使用更好的编码器绕过的内在限制。一些新的压缩格式如Vorbis和AAC不再有这些限制。
按照技术术语,MP3有如下一些限制:
* 位速最大是320 kbit/s
* 时间分辨率相对于变化迅速的信号来说太低
* 对于超过15.5/15.8 kHz的频率没有scale factor band
* Joint stereo 是基于帧与帧完成的
* 没有定义编码器/解码器的整体时延,这就意味着gapless playback缺少一个正式的规定
然而,即使有这些限制,一个好好的调整MP3编码器能够非常有竞争力地完成编码任务。
MP3音频编码
MPEG-1标准中没有MP3编码器的一个精确规范,然而与此相反,解码算法和文件格式却进行了细致的定义。人们设想编码的实现是设计自己的适合去除原始音频中部分信息的算法(或者是它在频域中的修正离散余弦(MDCT)表示)。在编码过程中,576个时域样本被转换成576个频域样本,如果是瞬变信号就使用192而不是576个采样点,这是限制量化噪声随着随瞬变信号短暂扩散。
这是听觉心理学的研究领域:人类主观声音感知。
这样带来的结果就是出现了许多不同的MP3编码器,每种生成的声音质量都不相同。有许多它们的比较结果,这样一个潜在用户很容易选择合适的编码器。需要记住的是高位速编码表现优秀的编码器(如LAME这个在高位速广泛使用的编码器)未必在低位速的表现也同样好。
MP3音频解码
另一方面,解码在标准中进行了细致的定义。
多数解码器是bitstream compliant,也就是说MP3文件解码出来的非压缩输出信号将与标准文档中数学定义的输出信号一模一样(在规定的近似误差范围内)。
MP3文件有一个标准的格式,这个格式就是包括384、576、或者1152个采样点(随MPEG的版本和层不同而不同)的帧,并且所有的帧都有关联的头信息(32位)和辅助信息(9、17或者32字节,随着MPEG版本和立体声或者单通道的不同而不同)。头和辅助信息能够帮助解码器正确地解码相关的霍夫曼编码数据。
所以,大多数的解码器比较几乎都是完全基于它们的计算效率(例如,它们在解码过程中所需要的内存或者CPU时间)。
ID3和其它标签
“标签”是MP3(或其它格式)中保存的包含如标题、艺术家、唱片、音轨号或者其它关于MP3文件信息等添加到文件的数据。最为流行的标准标签格式目前是ID3 ID3v1和ID3v2标签,最近的是APEv2标签。
APEv2最初是为MPC 文件格式开发的(参见 APEv2规范)。APEv2可以与ID3标签在同一个文件中共存,但是它也可以单独使用。
音量归一化(normalization)
由于CD和其它各种各样的音源都是在不同的音量下录制的,在标签中保存文件的音量信息将是有用的,这样的话回放时音量能够进行动态调节。
人们已经提出了一些对MP3文件增益进行编码的标准。它们的设计思想是对音频文件的音量(不是“峰值”音量)进行归一化,这样以保证在不同的连续音轨切换时音量不会有变化。
最流行最常用的保存回放增益的解决方法是被简单地称作“Replay Gain”的方法。音轨的音量平均值和修剪信息都存在元数据标签中。
可选技术
有许多其它的有损音频编解码存在,其中包括:
* MPEG-1/2 Audio Layer 2 (MP2),MP3的前辈;
* MPEG-4 AAC, MP3的继承者,Apple的iTunes Music Store和iPod使用;
* Xiph.org Foundation的Ogg Vorbis,自由软件和没有专利的编解码器;
* MPC,也称作Musepack(以前叫MP+),由MP2派生出来;
* Thomson Multimedia的MP3和SBR的组合mp3PRO;
* AC-3,Dolby Digital和DVD中使用;
* ATRAC,Sony的Minidisc使用;
* Windows Media Audio(WMA)来自于微软公司;
* QDesign, 用于低速QuickTime;
* AMR-WB+ 针对蜂窝电话和其它有限带宽使用进行了优化的增强自适应多速宽带编解码器(Enhanced Adaptive Multi Rate WideBand codec);
* RealNetworks的RealAudio,经常用于网站的流媒体;
* Speex,基于CELP的专门为语音和VoIP设计的自由软件和无专利编解码器。
mp3PRO、MP3、AAC、和MP2都是同一个技术家族中的成员,并且都是基于大致类似的心里声学模型。Fraunhofer Gesellschaft拥有许多涵盖这些编解码器所用技术的基本专利,Dolby Labs、索尼公司、Thomson Consumer Electronics和AT&T拥有其它一些关键专利。
在因特网上有一些其它无损音频压缩方法。尽管它们与MP3不同,它们是其它压缩机制的优秀范例,它们包括:
* FLAC 表示’自由无损音频编解码(Free Lossless Audio Codec)’
* Monkey’s Audio
* SHN,也称为Shorten
* TTA
* Wavpack
* Apple Lossless
听觉测试试图找出特定位速下的最好质量的有损音频编解码。在128kbit/s下,Ogg Vorbis、AAC、MPC和WMA Pro性能持平处于领先位置,LAME MP3稍微落后。在64kbit/s下,AAC-HE和mp3pro少许领先于其它编解码器。在超过128kbit/s下,多数听众听不出它们之间有明显差别。什么是“CD音质”也是很主观的:对于一些人来说128kbit/s的MP3就足够了,而对于另外一些人来说必须是200kbit/s以上的位速。
尽管如WMA和RealAudio这些新的编解码器的支持者宣称它们各自的算法能够在64kbit/s达到CD音质,听觉测试却显示了不同的结果;然而,这些编解码器在64kbit/s的音质明显超过同样位速下MP3的音质。无专利的Ogg Vorbis编解码器的开发者宣称它们的算法超过了MP3、RealAudio和WMA的音质,上面提到的听觉测试证实了这种说法。Thomson宣称它的mp3PRO 在64kbit/s达到了CD音质,但是测试者报告说64kbit/s的mp3Pro文件与112kbit/s的MP3文件音质类似,但是直到 80kbit/s时它才能接近CD音质。
专门为MPEG-1/2视频设计的、优化的MP3总体上在低于48kbit/s的单声道数据和低于80kbit/s的立体声上表现不佳。
授权和专利问题
Thomson Consumer Electronics在认可软件专利的国家控制着MPEG-1/2 Layer 3 专利的授权,这些国家包括美国和日本,欧盟国家不包括在内。Thomson积极地加强这些专利的保护。Thomson已经在欧盟国家被欧洲专利局(:en:European Patent Office授予软件专利,但是还不清楚它们是否会被那里的司法所加强。参见欧洲专利协定中的软件专利(:en:Software patents under the European Patent Convention)。
关于Thomson专利文件、授权协议和费用的最新信息请参考它们的网站mp3licensing.com。
在1998年9月,Fraunhofer Institute向几个MP3软件开发者发去了一封信声明“发布或者销售编码器或者解码器”需要授权。这封信宣称非经授权的产品“触犯了 Fraunhofer和THOMSON的专利权。制造、销售或者发布使用[MPEG Layer-3]标准或者我们专利的产品,你们需要从我们这里获得这些专利的授权协议。”
这些专利问题极大地减慢了未经授权的MP3软件开发并且导致人们的注意力转向开发和欢迎其它如WMA和Ogg Vorbis这样的替代品。Windows开发系统的制造商微软公司从MP3专向它们自有的Windows Media格式以避免与专利相关的授权问题。直到那些关键的专利过期之前,未经授权的编码器和播放器在认可软件专利的国家看起来都是非法的。
尽管有这些专利限制,永恒的MP3格式继续向前发展;这种现象的原因看起来是由如下因素带来的网络效应:
* 熟悉这种格式,不知道有其它可选格式存在,
* 这些可选格式没有普遍地明显超过MP3的优势这样一个现实,
* 大量的MP3格式音乐,
* 大量的使用这种格式的不同软件和硬件,
* 没有DRM保护技术,这使得MP3文件可以很容易地修改、复制和通过网络重新发布,
* 大多数家庭用户不知道或者不关心软件专利争端,通常这些争端与他们个人用途而选用MP3格式无关。
另外,专利持有人不愿对于开源解码器加强授权费用的征收,这也带来了许多免费MP3解码器的发展。另外,尽管他们试图阻止发布编码器的二进制代码, Thomson已经宣布使用免费MP3编码器的个人用户将不需要支付费用。这样,尽管专利费是许多公司打算使用MP3格式时需要考虑的问题,对于用户来说并没有什么影响,这就带来了这种格式的广受欢迎。
Sisvel S.p.A. [1]和它的美国子公司Audio MPEG, Inc. [2]以前曾经以侵犯MP3技术专利为由起诉Thomson[3],但是那些争端在2005年11月最终以Sisvel给Thomson MP3授权而结束。Motorola最近也与Audio MPEG签署了MP3的授权协议。由于Thomson和Sisvel都拥有他们声称编解码器必需的单独的专利,MP3专利的法律状态还不清晰。
Fraunhofer的专利将在2010年4月到期,到了那时MP3算法将不再受专利保护。
转自: