荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: fog (我是一个正直的人), 信区: Multimedia
标  题: LAME应用教学——HIFI级MP3制作之路
发信站: 荔园晨风BBS站 (Fri Dec  7 17:04:46 2001), 转信




  HIFI级MP3?可能吗?LAME又是什么?呵呵,别慌,耐心点看完全文你就会知
道了,不过,在此之前,还是让我先给大家普及一下MP3的基本知识吧,不然大家
或许会看不明白的。

一、MP3家史

  MP3的全名是MPEG Audio Layer III,其诞生于1987年,创始者是设在德国爱
尔蓝根市的一个音频研究机构Fraunhofer IIS。设计的目标是利用人类听觉上某些
方面的知觉不足(注意,这可是重点),开发一种高音质(CD音质)、低流量(
320K以内)的数码压缩格式。大约在3年后也就是1990年,他们在德国申请获得了
该技术的专利,又一个3年后国际标准组织(ISO)也接受了这项技术,MP3从此成
为MPEG标准的一部分。因MP3在当时技术上的优越性以及高度的开放性和免费性(
最近Fraunhofer IIS已开始对使用其压缩算法的软件收费),各式各样的MP3编码
软件和播放软件开始在互联网上流传,XXX.MP3的音乐从此铺天盖地而来。MP3的历
史就是这样了,下面进入正题。

  因为工作的关系,我经常需要做MP3,几年来试用了好几十种MP3压缩软件,发
现不同压缩软件压出来的MP3音质听起来相差很大。抱着为什么会这样的疑问去查
讯了一些MP3的技术资料,才明白,原来MP3只是一个音频数码格式的规范,这个规
范对压缩过程中所使用的心理音响模型模式、哈夫曼运算法、流量分配等都沒有做
硬性的规定。单靠规范是不能做出MP3的,因为有如此高的开放性,在这个轨范下开
发的各种MP3编码器一下就有了几十种之多,它们压出来的文件都是MP3,也都能用
同样的播放器来播放,但是因不同编码器采用的遮罩频率,哈夫曼运算法、心理音
响模型参数、以及绝对听觉底限等都不相同,所以最后得到的MP3音质就大不一样
了。

二、LAME美妙在何处?

  在知道LAME之前我几乎试用过了所有的MP3编码器,其中音质最好的当属MP3规
范制定者Fraunhofer IIS小组开发的Fraunhofer IIS Mpeg Lyaer3编码器,这个编
码器在CBR(静态流量编码)上特别是128Kbps上的表现是无与伦比的(比LAME还好
),可惜其不支持VBR(动态流量编码),流量最高也只能到上256Kbps,所以在最高
质量的比拼下不如LAME,而且最新版又已开始收费,只好对其敬而远之了。除了它
以外其它的编码器都不怎么样,表现十分平庸。特别是解霸,抓CD和压MP3的性能
都极烂,抓CD是不顾一切的抓下了事,根本不做任何修正,而压出来的MP3不管是
128K的还是320K的,都是一样高频损失特别严重,有削顶失真,低频也让人感觉含
糊不清。可是就是这样的软件,还能成为中国人最常用的MP3压缩软件,MP3高音质
的名声都让它给败坏完了。直到使用了短歌行推荐的Lame压缩引擎,这才让我发现
MP3的音质同样可以达到很高的标准。LAME把原来MP3给我的音色尖锐,空间狭窄,
低音模糊,以及细节不够等印象一扫而光,取而代之的是极其纯正的CD音质,特别
是用高质VBR编码的MP3我已经根本听不出和原CD的区别了,我用的设备还不赖,
SBlive!+极典PA60功放+短歌行朝露音箱。

  LAME不但将VBR编码发挥的淋漓尽致,而且还针对CBR编码模式落后和VBR生成
文件大小不定的缺点而独创了ABR编码模式。ABR可在指定的文件大小内,以每50帧
(30帧约1秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现
时使用高流量,(呵呵,ABR和CBR的私生子)这样一来音质得到了最大程度的保护
。LAME对波形分析也有着相当高的研究。这些都还不算LAME的全部优点,毕竟VBR
最早在XING上面就实现了,其能在诸多编码器中笑傲群雄最主要靠的是自家独门的
心理音响模型。早期的LAME应用的是ISO的编码技术,但是现在他们使用的心理音
响模型(LAME将其称作GPSYCHO)已经完全是独力开发的了,与其它公司的技术没有
任何的关系。最最重要的一点,他是免费软件,是不要钱的。这点对我们来说很重
要吧?^-^
看到这里,你是不是也心动了,想尝试一下LAME的神奇效果?那么,开始吧!

三、抓轨的要旨

  首先得把你要压缩成MP3的CD抓取下来存为WAV,怎样把CD高质量的抓取成WAV
是一件很复杂也很麻烦的事,在这里不可能把原理阐述清楚,只能简单的谈一谈经
验。能否抓取到高质量的WAV最主要取决于3个因素,既CD盘片质量、光驱的抓音轨
性能和抓音轨软件。关于盘片质量,若是Z版CD自不用说,当然很好,而D版就难说
了。光驱也是一个不大不小的问题,现在市面上的主流光驱动则40-50倍速,对于没
有Jitter Correction(光驱对抓CD的硬件修正能力,中国市场上销售的光驱基本
都没有这项能力)能力的光驱来说,抓取的速度越快,得到不正确资料和产生爆音
的可能性也就越大,一些低速的日产光驱(原装的日产光驱一般都带有Jitter
Correction功能)在抓取CD时倒是表现的异常出色。

  不过你也大可不必为你的CHINA或TAIWAN光驱担心,因为硬件不提供的功能可
由软件来提供,EAC、CDEX、WinDAC、CD-COPY、CD-Extracting等软件都提供了软
件Jitter Correction功能。特别是EAC,一个非常专业的抓取CD和复制CD的软件,
设置得当的话可以做到完全无损(强烈推荐),其也可配合LAME使用,最新版是0.
9probeta9版。EAC的选项很多,我们只是为了抓CD,不用去管那些复杂的设置选项
,只需勾选drive options -> secure modes -> drive has'accurate
stream'feature选项就够了(图一),如不放心还可在决定抓取时按F6键(图二)
,这样EAC就会为你把同一音轨抓取两次并比较得到的资料是否有差别,从而得到
更为准确的WAV文件。



  图一



  图二

四、压缩编码参数

  有了WAV就可以开始压缩MP3了,3.87版的LAME分DLL和EXE版。dll版不能直接
执行,是提供给一些抓CD软件做外挂MP3编码程序的,这样LAME的压缩过程会简单
很多(但我不推荐你用DLL版,EXE版一样可提供给lame的SHELL做MP3外挂程序)。
而可直接执行的EXE版是我最常用的且编码质量也略好于DLL版,所以在这里做重点
介绍。LAME.EXE是一个Command Line模式的程序,必需要在WINDOWS的MSDOS下运行
,直接执行并不方便,你下一次指令只能够压缩一个MP3,而且因为其演算法十分复
杂,使的压缩速度较慢,如想对设置有所改变的话也只能靠在执行命令后加不同的
参数来实现。LAME的参数有好几十个之多,下面我就把最常用的参数给大家简单的
介绍一下。

  LAME 基本命令行格式: lame [参数选项] <输入文件名> [<输出文件名>]

  1.CBR编码时的基本参数

  CBR是最常用的的MP3编码方式,其编码流量可在32kbps-320kbps中选择。一般
来说,过去压MP3最常用的是128kbps,但我认为以128k编码的MP3流量实在是太小
了,不足以保留高质量的声音,用来放随身听也许还不错,在电脑上听就不怎么样
了。所以,如果你想做HIFI水准的MP3,我不推荐你用CBR模式,除非你用320Kbps
(最高质量MP3)

  [-b] 指定编码流量。可以使用的流量如下:
  32 40 48 56 64 80 96 112 128 160 192 224 256 320
  不管你用哪一种流量大小,为了节省空间,LAME被判断为静音的部分,会自动
采用最小的流量。

  [-h] 高品质编码模式,启动某些可以增进品质的运算,但是会降低一些速度
(建议使用)。这个选项在 VBR 压缩模式中是预设开启的。

  [-f] 快速编码模式,但会降低品质(预设)。用了这个参数后,LAME的编码
质量就和一般的编码器差不多了,但相应的编码速度要快上不少,做MP3网站的朋
友也许需要用到这个参数。

  [-q] 指定频率资料量化时的精确度,范围也是为0-9,和前面的[-V]参数一样
,数字越低质量越好。
推荐CBR编码最佳质量命令行:lame.exe -b320 -h -q0 (图三)



  图三

  2.VBR编码时的基本参数

  VBR编码是LAME做的最好的一部分,可为你提供最佳的音质/流量比,最最强烈
推荐!一般来说,用最佳VBR编码时,平均流量在210kbps左右。

  [-V] 指定VBR的压缩品质,范围为0-9(数字越小品质越高),预设值为4。


  [-b] 指定流量变动的下限,预设为32Kbps。

  [-B] 指定流量变动的上限,预设为320Kbps。

  [-q] 见CBR编码参数

推荐VBR编码最佳质量命令行:lame.exe -V0 -q0

  3.ABR编码时的基本参数

  前面提到过,ABR是LAME独有的编码方式,可提供和CBR一样大小但音质更好,
因为他是使用先进的VBR编码方式来压缩CBR。ABR和CBR一样,可指定平均流量大小


  [--abr] 不指定品质,而指定想要的平均流量,LAME就会像编码VBR一样自动
在不同时候使用不同的流量大小,但会把最终文件大小保持到你指定的大小,流量
许可的范围是8-320,可以使用这个范围内的任一个整数。

  [-b] 见VBR编码参数

  [-B] 见VBR编码参数。

  我不建议你使用该参数,因为ABR和CBR一样,可以使用“Bit Reservoir”功
能,一个CBR编码的128KbpsMP3,在某些时段可以使用到320Kbps来压缩。而VBR并
不使用“Bit Reservoir”,因此需要允许使用320Kbps的流量上限才能达到与CBR
相同的弹性。 (“Bit Reservoir”,這是一個MP3压缩规范中的功能,主要是在
CBR编码和ABR编码中发挥作用。原理是:如果压缩程序在压缩某一段资料时,认为
不必要使用指定的流量时(例如指定的是256Kbps而压缩程序认为此时使用
192Kbps就够了),压缩程序就会把多出来的流量(在前面那个例子中就是
256Kbps-192Kbps=64Kbps)放到 "Bit Reservoir" 中储存起来。若当后面的某段
资料是大动态部分,指定的流量大小不足以满足压缩需要时,就可以从“Bit
Reservoir”中提取储存的流量出来使用,使流量超过原本指定大小的限制。

  [-h] 见CBR编码参数

  [-q] 见VBR编码参数

推荐ABR编码最佳质量命令行:lame.exe --ABR 320 -h -q0

  4、此外还有一些共通的参数:

  [-m] 立体声压缩模式,分别有 [-ms] Stereo [-mj] Joint Stereo [-mf]
Force ms_stereo [-mm] Mono
当使用VBR编码并把品质设为4-9和使用CBR编码流量小于160 Kbps时,预设为Joint
 Stereo。其余时候预设为 Stereo。

  Stereo: 单纯双声道立体声模式,在此种压缩模式中,LAME 将不会计算双声
道之间的资料相关性,但是会协调分配双声道的资料流量,自动分配较多的流量给
复杂的声道使用。
  Joint Stereo: 当压缩立体声文件时,LAME还会利用到左右声道之间可能出现
的冗余来压缩。大部分立体声录音的左右声道都很相似,使用联合立体声编码可以
大大减小文件的体积。这意味着在保持完美立体声效果的同时,文件体积可以变得
更小。(话虽如此,但是我不建议你使用此参数,不为什么,就因为我听起来不如
-ms好,但若你无需太好的品质和想要更小的体积,倒是可以加上此参数)
  Force: 强迫所有的 frame 全部使用 M/S Joint Stereo 编码,速度可以增快
很多,但不建议使用。
  Mono: 单声道编码模式。

  [-t] 将LAME编码的MP3解码成Wav文件。

  [-k] 保留所有频率。

  LAME在编码时,为了把资料流量保留给最重要的频段,提高压缩出来的品质,
LAME会自动随著所选用的流量指定高低通滤波器的数值。一般来说,小于196kbps
的MP3充分应用了听觉遮罩原理而截除了一些16000HZ以上的不敏感频率(你不会听
出来什么不同的,因为听觉遮罩在此时会发挥作用。简单来说,人的耳朵听不到与
同频率较强音频信号一道的较弱音频信号。这种现象通常称作听觉遮罩,较强的信
号盖住了较弱的信号。LAME在压缩时,首先分析一个声音文件的频谱,然后把它分
成一系列的频带。频带中较弱的信号被区分开来并被量化,以减小用来替代原音频
文件的数据的大小。因为被量化的那些频带位于同频率范围较强信号的“阴影”之
下,所以量化过程中产生的噪声并不会被人耳所察觉。看起来很复杂是吧,那就举
个简单易懂的例子,你在家里也许能听到钢针掉到地上的声音,但如果你是在汽车
或火车上,你还能听到吗?你一定会说是汽车声把针掉地上的声音掩盖了,对了,
这就是听觉遮罩原理的体现)。如果你是完美主义者,需要保留所有频率,就可以
加这个参数来实现。但是!注意!如果你所设定的流量大小不足以保留全部频率,
可能会造成无法预料的鸣响以及失真,请小心使用!

  比较重要的LAME参数就是上面这些了,当然LAME不止这几个参数,在短歌行有一
篇LAME使用/参数说明表,上面有所有LAME参数的介绍,可上网的朋友可以去看一
看。

五、外壳应用

  是不是感觉好复杂?呵呵,没关系,如果你不想用这些并不方便的DOS命令,就用
LAME的SHELL程序(第三方外壳程序)好了,SHELL程序就是为一些不满用DLL版做抓
CD软件的MP3外挂程序做出来的MP3质量而开发的可用EXE版做外挂的软件。 我所知
的LAME的SHELL程序有三个,分别是Lamer1.0版 (图四)、RazorLame1.1版(图五
)、以及WinLAMEr1.1版(图六)。三个软件大同小异,用过以后感觉WinLAMEr和
RazorLame好用一些,下面就具体谈一谈这两个SHELL程序的使用。



  图四



  图五

  RazorLame的界面简单明了,方便使用,要设定的地方也并不多;在
Options -> General 之中,指定 LAME.exe的位置,然后就可以在其他的页面调节
各种压缩的参数。如果想试试一些实验性(尚未正式公布)的参数,或者懒得慢慢
检查每一页的设定,可以直接在 Options -> Advanced 中把写好的参数填入
Custom Options 中,并选取 Only use custom options 即可。Options ->
Advanced 里面,有一个 Delete source file after encoding 的选项,选取之后
,编码完成的WAV文件会被自动删除,很是方便。需要注意的一点是,在Options
-> audio processing中的OUTPUT SAMPLING FREQUENCY输出频率选项中一定要选定
44.1KHZ,否则RazorLame就会以32Khz来输出从而使音质劣化。



  图六

  至于WinLAMEr,和RazorLame相比除了界面有所不同外,操作起来大同小异。
在主界面中打开Add Wav FIile选定需要压缩的WAV文件后再选择LAME‘!!就可以
压缩了。SETTINGS菜单中,各种设置选项一目了然,和RazorLame一样首先需要在
LOCATION OF LAME.exe中指定 LAME.exe的位置。下面的选项分别的bitrate -
CBR编码时的流量选择(32-320),OUTPUT - 立体声压缩模式选择(建议设为
STEREO)。右面的SECONDARY SETTINGS就是对具体的品质做设置了,我建议你只勾
选IMPROVED QUALITY(改良的压缩品质)和下面的PSYCHO ACOUSTICS(LAME的心理
音响模型)这两项。压缩VBR和ABR的选项在下面的VARIABLE BITRATE SETTINGS中
。其中的设置大家可以结合我上面的LAME参数表来选择,我就不多说了。

六、随想

  好了,LAME的具体应用也就写的差不多了,还有点篇幅,就谈谈在使用LAME后
的一些感受吧。数码技术一日千里,发展的极为迅速。作为在上个世纪80年代就诞
生了的MP3,在面对诸多21世纪的新数码格式如WMA,VQF,AAC(MP3的法定继承人)
,OGG等,依然能靠自身的技术更新而在技术和市场上广泛领先,实在是让人佩服
不已。如今MP3在互联网和随身听上的广泛应用,使人不得不对它的明天更为看好
。在PCHOME和ITPOWER,很多MD玩家一说到MP3就是垃圾音质,真是非常片面,在没有
对一件事物完整的了解前就对它做出完全否定的意见,只能让人觉得是井底之蛙。
其实如果真的要比压缩格式的优劣,MD所用的ATRAC是比不过MP3的,MD只不过是因
为MD碟片容量大,回放质量好,实现最佳质量容易而领先MP3随身听。假如市面上
出现SONY等随身听老厂出品的以8CM光盘为载体的可刻录MP3随身听,那MD的优势就
大大的打折扣了,我想,从技术上来说,要实现这样的MP3随身听并不难,就看有
厂商们会不会那么做了。至于LAME,到现在为止还在不停的修正和推出新版(
LAME是由一大票业余软件者合作开发的),它倒底能做到怎样的程度,让人非常期
待,中国也有那么高水平的业余软件者就好了。

  你还在等什么?赶快去体验LAME给你带来的这场MP3革命吧!相关软件请到这
里下载。


--
你好,$userid  ,我叫林动顶
纯正平和  凡事可成真

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.32.13]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店