动态图像专家组-1或动态图像专家组-2 音频层III(英语:MPEG-1 or MPEG-2 Audio Layer III),常简称为MP3,是当今流行的一种数字音频编码和有损压缩格式,它被设计来大幅降低音频数据量,通过舍弃PCM音频资料中对人类听觉不重要的部分,达成压缩成较小文件的目的。而对于大多数用户的听觉感受来说,MP3的音质与最初的不压缩音频相比没有明显的下降。它是在1991年,由位于德国埃尔朗根的研究组织弗劳恩霍夫协会的一组工程师发明和标准化的。MP3的普及,曾对音乐产业造成冲击与影响。
概观
MP3是一个数据压缩格式。它舍弃脉冲编码调制(PCM)音频数据中,对人类听觉不重要的数据(类似于JPEG,是一个有损图像的压缩格式),从而达到了压缩成小得多的文件大小。
在MP3中使用了许多技术,其中包括心理声学,以确定音频的哪一部分可以丢弃。MP3音频可以按照不同的比特率进行压缩,提供了权衡数据大小和音质之间的依据。
MP3格式使用了混合的转换机制将时域信号转换成频域信号:
尽管有许多创造和推广其他格式的重要努力,如 MPEG 标准中的 AAC(Advanced Audio Coding)和 IETF 开放标准中的 Opus。然而,由于MP3的空前的流通,在目前来说,其他格式不可能威胁其地位。MP3不仅有广泛的用户端软体支持,也有很多的硬件支持,比如便携式数位音频播放器(泛指MP3播放器)、移动电话、数字多功能影音光盘和CD播放器。
历史
发展
MPEG-1 Audio Layer II编码开始时是德国Deutsche Forschungs- und Versuchsanstalt für Luft- und Raumfahrt(后来称为Deutsches Zentrum für Luft- und Raumfahrt, 德国太空中心)Egon Meier-Engelen管理的数字声音广播(DAB)项目。这个项目是欧盟作为EUREKA研究项目资助的,它的名字通常称为数字声音广播。EU-147的研究期间是1987年到1994年。
到了1991年,就已经出现了两个提案:MPEG-1 Audio Layer II(称为Layer 2)和ASPEC(自适应频谱感知熵编码)。荷兰飞利浦公司、法国CCETT和德国Institut für Rundfunktechnik提出的Musicam方法由于它的简单、出错时的稳定性以及在高质量压缩时较少的计算量而被选中。基于子带编码的Musicam格式是确定MPEG音频压缩格式(采样率、帧结构、数据头、每帧采样点)的一个关键因素。这项技术和它的设计思路完全融合到了ISO MPEG Audio Layer I、II以及后来的Layer III(MP3)格式的定义中。在Mussmann教授(汉诺威大学)的主持下,标准的制定由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能够在128码率单位达到MP2 192kbit/s音质。
所有这些算法最终都在1992年成为了MPEG的第一个标准组MPEG-1的一部分,并且生成了1993年公布的国际标准ISO/IEC 11172-3。MPEG音频上的更进一步的工作最终成为了1994年制定的第二个MPEG标准组MPEG-2标准的一部分,这个标准正式的称呼是1995年首次公布的ISO/IEC 13818-3。
编码器的压缩效率通常由比特率定义,因为压缩率依赖于位数(bit depth)和输入信号的采样率。然而,经常有产品使用CD参数(44,100赫兹、两个通道、每通道16位或者称为2×16位)作为压缩率参考,使用这个参考的压缩率通常较高,这也说明了压缩率对于有损压缩存在的问题。
Karlheinz Brandenburg使用CD介质的苏珊娜·薇佳的歌曲Tom’s Diner来评价MP3压缩算法。使用这首歌是因为这首歌的柔和、简单旋律使得在回放时更容易听到压缩格式中的缺陷。一些人开玩笑地将Suzanne Vega称为“MP3之母”。来自于EBU V3/SQAM参考CD的更多一些严肃和critical音频选段(钟琴,三角铁,手风琴,…)被专业音频工程师用来评价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日弗劳恩霍夫协会发布了第一个称为l3enc的MP3编码器。
Fraunhofer开发组在1995年7月14日选定扩展名:”.mp3″(以前扩展名是”.bit”)。使用第一款实时软件MP3播放器Winplay3(1995年9月9日发布)许多人能够在自己的个人电脑上编码和回放MP3文件。由于当时的硬盘相对较小(如500MB),这项技术对于在计算机上存储娱乐音乐来说是至关重要的。
MP2、MP3与因特网
1993年10月,MPEG-1 Audio Layer II(MPEG-1 Audio Layer 2)文件在因特网上出现,它们经常使用Xing MPEG Audio Player播放,后来又出现了Tobias Bading为UNIX开发的MAPlay。MAPlay于1994年2月22日首次发布,现在已经移植到微软视窗平台上。
刚开始仅有的MP2编码器产品是Xing Encoder和CDDA2WAV,CDDA2WAV是一个将CD音轨转换成WAV格式的CD抓取器。
Internet Underground Music Archive(IUMA)通常被认为是在线音乐革命的鼻祖,IUMA是因特网上第一个高保真音乐网站,在MP3和网络流行之前它有数千首授权的MP2录音。
从1995年上半年开始直到整个九十年代后期,MP3开始在因特网上蓬勃发展。MP3的流行主要得益于如Nullsoft于1997年发布的Winamp和于1999年发布的Napster,这样的公司和软件包的成功,并且它们相互促进发展。这些程序使得普通用户很容易地播放、制作、共享和收集MP3文件。
关于MP3文件的点对点技术文件共享的争论在最近几年迅速蔓延—这主要是由于压缩使得文件共享成为可能,未经压缩的文件过于庞大难于共享。由于MP3文件通过因特网大量传播,一些主要唱片厂商通过法律起诉Napster来保护它们的著作权(参见知识产权)。
如ITunes Store这样的商业在线音乐发行服务通常选择其他或者专有的支持数字版权管理(DRM)的音乐文件格式以控制和限制数字音乐的使用。支持DRM的格式的使用是为了防止受著作权保护的素材免被侵犯著作权,但是大多数的保护机制都能被一些方法破解。这些方法能够被计算机高手用来生成能够自由复制的解锁文件。如果希望得到一个压缩的音频文件,这个录制的音频流必须进行压缩且代价是音质的降低。
比特率
比特率对于MP3文件来说是可变的。总的原则是比特率越高则声音文件中包含的原始声音信息越多,这样回放时声音质量也越高。在MP3编码的早期,整个文件使用一个固定的比特率,称为固定码率(CBR)。
MPEG-1 Layer 3允许使用的比特率是32、40、48、56、64、80、96、112、128、160、192、224、256和320 kbit/s,允许的采样频率是32、44.1和48千赫兹。44.1kHz是最为经常使用的速度(与CD的采样速率相同),128kbit/s是事实上“好质量”的标准,尽管320kbit/s在P2P文件共享网络上越来越受到欢迎。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是一种有损压缩格式,它提供了多种不同“比特率”(bit rate)的选项—也就是用来表示每秒音频所需的编码数据位数。典型的速度介于128kbps和320kbps(kbit/s)之间。与此对照的是,CD上未经压缩的音频比特率是1411.2 kbps(16位/采样点× 44100采样点/秒× 2声道)。
使用较低比特率编码的MP3文件通常回放质量较低。使用过低的比特率,“压缩有损(compression artifact)”(原始录音中没有的声音)将会在回放时出现。说明压缩噪声的一个好例子是:压缩欢呼的声音;由于它的随机性和急剧变化,所以编码器的错误就会更明显,并且听起来就像回声。
除了编码文件的比特率之外;MP3文件的质量,也与编码器的质量以及编码信号的难度有关。使用优质编码器编码的普通信号,一些人认为128kbit/s的MP3以及44.1kHz的CD采样的音质近似于CD音质,同时得到了大约11:1的压缩率。在许多情况下他们认为MP3音质不佳是不可接受的,然而其他一些听众或者换个环境(如在嘈杂的车中或者聚会上)他们又认为音质是可接受的。很显然,MP3编码的瑕疵在低端声卡或者扬声器上比较不明显,而在连接到计算机的高质量立体声系统,尤其是使用高保真音响设备或者高质量的耳机时则比较明显。
弗劳恩霍夫协会(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。与其他相比,它是一个完全遵循GNU宽通用公共许可证的MP3编码器,它有良好的速度和音质,甚至对MP3技术的后继版本形成了挑战[来源请求]。
- 弗劳恩霍夫协会:有些编码器不错,有些有缺陷。
有许多的早期编码器现在已经不再广泛使用:
- 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)是很严重的,许多用户声明要有一定水准的透明度。许多用户在A/B测试中都没有通过,他们无法在更低的比特率下区分文件。一个特定的比特率对于有些用户来说是足够的,对于另外一些用户来说是不够的。每个人的声音感知可能有所不同,所以一个能够满足所有人的特定心理声学模型并不明显存在。仅仅改变试听环境,如音频播放系统或者环境可能就会显现出有损压缩所产生的音质降低。上面给出的数字只是大多数人的一个大致有效参考,但是在有损压缩领域真正有效的压缩过程质量测试手段就是试听音频结果。
如果你的目标是实现没有质量损失的音频文件或者用在演播室中的音频文件,就应该使用无损压缩(Lossless)算法,目前能够将16位PCM音频数据压缩到38%并且声音没有任何损失,这样的无损压缩编码有索尼 ATRAC Advanced Lossless、杜比实验室 TrueHD、DTS (消歧义) Master Lossless Audio、MLP、索尼 Reality Audio、WavPack、Apple Lossless、TTA、FLAC、Windows Media Audio 9 Lossless(WMA)和APE(Monkey’s Audio)等等。
对于需要进行编辑、混合处理的音频文件要尽量使用无损格式,否则有损压缩产生的误差可能在处理后无法预测,多次编码产生的损失将会混杂在一起,在处理之后进行编码这些损失将会变得更加明显。无损压缩在降低压缩率的代价下能够达到最好的结果。
一些简单的编辑操作,如切掉音频的部分片段,可以直接在MP3数据上操作而不需要重新编码。对于这些操作来说,只要使用合适的软件(”mp3DirectCut”和”MP3Gain”),上面提到的问题可以不必考虑。
MP3的设计限制
MP3格式存有设计限制,即使使用更好的编码器仍旧不能克服这些限制。一些新的压缩格式如 Opus 等不再有这些限制。
按照技术术语,MP3有如下一些限制:
- 比特率最大是320 kbit/s,时间分辨率相对于变化迅速的信号来说太低。
- 对于超过15.5/15.8 kHz的频率没有因数频带,即超过此频率的声音无法编码在MP3内,从频谱来看,15 kHz以上的声音全部消失了,而人耳的听觉上限一般在20 kHz。
- 采样频率最高为48kHz,对于超过48kHz采样频率的音频无法编码在MP3内。
- 联合立体声(Joint stereo)是基于帧与帧完成的。
- 没有定义编码器/解码器的整体时延,这就意味着gapless playback缺少一个正式的规定。
然而,即使有这些限制,一个经良好的调整MP3编码器仍能够提供与其他格式相提并论或更高的编码质量。
MP3音频编码
MPEG-1标准中没有MP3编码器的一个精确规范,然而与此相反,解码算法和文件格式却进行了细致的定义。人们设想编码的实现是设计自己的适合去除原始音频中部分信息的算法(或者是它在频域中的改进的离散余弦变换表示)。在编码过程中,576个时域样本被转换成576个频域样本,如果是瞬变信号就使用192而不是576个采样点,这是限制量化噪声随着随瞬变信号短暂扩散。
这是心理声学的研究领域:人类主观声音感知。
这样带来的结果就是出现了许多不同的MP3编码器,每种生成的声音质量都不相同。有许多它们的比较结果,这样一个潜在用户很容易选择合适的编码器。需要记住的是高比特率编码表现优秀的编码器(如LAME这个在高比特率广泛使用的编码器)未必在低比特率的表现也同样好。
MP3音频解码
另一方面,解码在标准中进行了细致的定义。
多数解码器是比特流,也就是说MP3文件解码出来的非压缩输出信号将与标准文档中数学定义的输出信号一模一样(在规定的数值修约误差范围内)。
MP3文件有一个标准的格式,这个格式就是包括384、576、或者1152个采样点(随MPEG的版本和层不同而不同)的帧,并且所有的帧都有关联的头信息(32位)和辅助信息(9、17或者32字节,随着MPEG版本和立体声或者单通道的不同而不同)。头和辅助信息能够帮助解码器正确地解码相关的霍夫曼编码数据。
所以,大多数的解码器比较几乎都是完全基于它们的计算效率(例如,它们在解码过程中所需要的内存或者中央处理器时间)。
ID3和其他标签
“标签”是MP3(或其他格式)中保存的包含如标题、艺术家、唱片、音轨号或者其他关于MP3文件信息等添加到文件的数据。最为流行的标准标签格式目前是ID3 ID3v1和ID3v2标签,最近的是APE tag。
APEv2最初是为Musepack开发的(参见APEv2规范)。APEv2可以与ID3标签在同一个文件中共存,但是它也可以单独使用。