Fraunhofer 发展出MP3之后,涌现了众多MP3编码器软件。在奔腾时代,一台配备P120并超频至200MHz,加4X光驱的硬件配置,完成一首长度5分钟的曲子的抓轨并压缩成MP3需要40多分钟,要将一整张碟转换成MP3需要折腾几个小时。时间成本太高,阻碍了MP3的发展。
在VCD时代,Xing是一个很有知名度的软件品牌,它们出品的VCD播放软件深受用户喜欢,它们也推出了一款MP3编码器软件Xing MP3 Encoder,这款软件采用了标准的Windows界面,操作上也易上手,因此受到了好评,但它的编码速度还不够快,它也不是一个免费软件,限制了其传播。
差不多同时期,出现了一个叫做MPLifier的免费编码器,其编码MP3的速度十分快速,超过了同时代同类软件的数倍,操作上更加简单,拖拽就能完成所有操作。一时间迅速获得用户和媒体好评。
但好景不长,发烧友发现MP3虽然节约了大量的存储空间,但音质也严重劣化。使用频谱查看MPLifier编码的MP3,会发现高频信号会被整齐的切掉。可以看出,MPLifier的编码算法相当粗暴。
Fraunhofer 也有自己的编码器,音质也要明显优于同类软件,但处于利益角度,Fraunhofer 提供的选项过于简单,而且编码效率也不算很好。为了保护自己的利益,Fraunhofer 注册了大量的专利,这让竞争对手不得不绕开这个专利池。
2001年前后,一个叫做LAME的MP3播放器逐渐进入人们视野(LAME项目开发始于1998-1999年期间,2000年后开始被人广泛推荐)。LAME全称LAME Ain’t an MP3 Encoder,中文意思是LAME不是一个MP3编码器。这个命名很有些无厘头的意思。背景故事就是为了绕开Fraunhofer 的专利池。2005年后,LAME更改了部分代码,成为了一个LGPL(GNU宽通用公共许可证)许可协议下程序。
在《光盘见证数码多媒体的30年 开启有损数字音频时代的MP3》[作者:夏昆冈 ] 一文中,我们提到了MP3两项革命性的技术――VBR与听觉模型的导入。LAME均予以了支持,并做了大量的优化工作。LAME成为了公认最优秀的MP3编码器,虽然它一直是一个使用不是很方便的命令行程序,但其他免费软件,例如著名的抓轨软件Exact Audio Copy、播放软件Foobar2000都为LAME留下了程序接口,只要经过简单的设置,这些软件可以轻松的调用LAME来完成工作。可以实现抓轨到MP3、或者其他格式转换成MP3的一条龙操作。LAME还有大量的外壳程序,通过图形界面来调用LAME完成操作。
针对不同CPU,LAME也为特色的多媒体指令集进行优化,例如Intel 的MMX SSE、AMD的3DNow!指令集,通过支持这些指令集,编码效率获得了成倍的提升。在奔腾II年代,用V0参数压缩一首5分钟的曲子大概需要3分钟左右,到了奔腾III年代,时间就缩短到了几十秒。由于LAME本身对主流CPU支持的完善,很多网站将LAME作为了一个测试CPU性能的项目。对CPU优化是非常重要的,我们在龙芯系统上测试过LAME,其编码效率就让人抓狂,并不是CPU太弱,而是编码太不够优化。
LAME是一个LGPL程序,因此它的代码可以被有限的使用,编码后的程序也可以被其他软件有条件的集成,这大大方便增加了LAME的普及渠道。经过广大程序员们的不懈努力,LAME成为了一个跨几乎所有平台的MP3编码器,经过改良,LAME还有很多形式的封装,例如DLL。它甚至可以当做Windows系统的一个虚拟设备使用。 兼具效率与质量,并且是一个广泛授权的免费程序,LAME已经成为一个最受欢迎的MP3编码器,它也是至今为止,编码MP3的最佳选择。Fraunhofer 发展出了MP3,LAME则壮大了MP3,如果没有LAME,MP3可能会被其他有损压缩方案所取代,因此,可以说LAME是一个伟大的编码器,它还影响了其他有损编码器的设计思路,让我们向LAME致敬。
本文最后,让我们看看LAME 1999-2002年期间的发展历程吧。
Date: 2002-12-01Version: 3.93.1Interface: Command LinePlatform: Win32Download: lame3.93.1.zip - 190Kb Date: 2002-11-16Version: 3.93Download: lame3.93.zip - 189Kb Date: 2002-04-14Version: 3.92Download: lame3.92.zip - 188Kb Date: 2001-12-29Version: 3.91Download: lame3.91.zip - 180Kb Date: 2001-12-21Version: 3.90Download: lame3.90.zip - 367Kb Date: 2001-12-24Version: 3.90.1 - HydrogenAudio ForkDownload: lame3.90.1.zip - 367Kb Date: 2001-07-05Version: 3.89bDownload: lame3.89.zip - 171Kb Date: 2001-03-25Version: 3.88bDownload: lame3.88.zip - 363Kb Date: 2000-09-25Version: 3.87aDownload: lame3.87.zip - 188Kb Date: 2000-08-06Version: 3.86bDownload: lame3.86.zip - 175Kb Date: 2000-07-03Version: 3.85bDownload: lame3.85.zip - 111Kb Date: 2000-06-30Version: 3.84bDownload: lame3.84.zip - 166Kb Date: 2000-05-19Version: 3.83bDownload: lame3.83.zip - 160Kb Date: 2000-05-11Version: 3.82bDownload: lame3.82.zip - 107Kb Date: 2000-05-08Version: 3.81bDownload: lame3.81.zip - 140Kb Date: 2000-05-06Version: 3.80bDownload: lame3.80.zip - 188Kb Date: 2000-04-06Version: 3.70Download: lame3.70.zip - 129Kb Date: 2000-04-06Version: 3.69bDownload: lame3.69.zip - 129Kb Date: 2000-04-04Version: 3.68bDownload: lame3.68.zip - 128Kb Date: 2000-03-27Version: 3.67bDownload: lame3.67.zip - 128Kb Date: 2000-03-21Version: 3.66bDownload: lame3.66.zip - 130Kb Date: 2000-03-17Version: 3.65bDownload: lame3.65.zip - 129Kb Date: 2000-02-20Version: 3.63bDownload: lame3.63.zip - 124Kb Date: 2000-02-09Version: 3.62bDownload: lame3.62.zip - 124Kb Date: 2000-01-14Version: 3.61bDownload: lame3.61.zip - 136Kb Date: 2000-01-09Version: 3.60bDownload: lame3.60.zip - 133Kb Date: 2000-01-04Version: 3.59bDownload: lame3.59.zip - 131Kb Date: 1999-12-13Version: 3.58bDownload: lame3.58.zip - 99Kb Date: 1999-11-22Version: 3.57bDownload: lame3.57.zip - 96Kb Date: 1999-11-19Version: 3.56bDownload: lame3.56.zip - 98Kb Date: 1999-11-11Version: 3.55bDownload: lame3.55.zip - 96Kb Date: 1999-11-01Version: 3.50Download: lame3.50.zip - 95Kb Date: 1999-10-21Version: 3.35b (DLL only)Download: lame3.35.dll.zip - 104KbPlatform: IBM OS/2Download: lame3.35.OS2.zip - 145Kb Date: 1999-10-12Version: 3.34bDownload: lame3.34.zip - 131Kb Date: 1999-09-29Version: 3.30bDownload: lame3.30.zip - 364Kb Date: 1999-09-21Version: 3.29bPlatform: IBM OS/2Download: lame3.29.OS2.zip - 193Kb Date: 1999-08-15Version: 3.24bDownload: lame3.24.zip - 363Kb Date: 1999-07-19Version: 3.20Download: lame3.20.zip - 81Kb