close
MP3壓縮編碼淺介
MPEG與MP3的壓縮方式
MP3是當前最流行的音訊壓縮格式,全名為MPEG Audio Layer 3,為MPEG(Moving Pictures Expert Group)這個團體當初和影像壓縮格式同時研發的音訊壓縮格式。舉凡一般VCD影像壓縮所使用的MPEG1,音訊所使用的MP2編碼,以及DVD-Video影像壓縮所使用的MPEG2編碼都是這個團體的研發產物。這些影像和音訊的編碼都是失真(破壞性)壓縮。相較於CD和DVD的容量,未壓縮的影像和音訊資料容量是非常龐大的。想像一片音樂CD本來只可以儲存74分鐘的聲音(其實超過74分鐘的音樂CD也很多,甚至有超過80分鐘的),在VCD中不但要儲存差不多長度的音效還要加入畫面,可見壓縮率必須相當高,而且必然是破壞性的。DVD-Video的聲音格式常用的有LPCM,Dolby Digital,dts,其中LPCM通常是16Bits,48kHz立體聲訊號,與Dolby Digital同屬與DVD標準音訊規格。Dolby Digital如同MP2,MP3也是一種破壞性壓縮編碼,特色為聲道數從立體聲到5.1聲道(最新的是7.1聲道的Dolby Surround EX)都有,壓縮流量最大可達448kbps(kilo bits per second),將這個數字除以三對喇叭的的資料,我們可以算出每對喇叭(前置或後置)可以分到的流量約為149.3kbps,與時下流行的128kbps MP3大不了多少,且壓縮效率又比MP3差,因此其實大家不用對DVD-Video的Dolby Digital聲音品質存有太大的遐想,其實流量只比普通的MP3大一點點而已,何況448kbps只是最大流量,很多DVD-Video根本沒有用到這麼大的流量。

DVD-Video的dts與音軌前面提到的dts CD使用同樣的編碼技術,最大流量與立體聲LPCM相同,也就是每秒48000*16*2=1536000bps=1536kbps,遠比Dolby Digital所提供的448kbps來得大,破壞性壓縮失真較少,因此可以想見dts DVD的音質一定比Dolby Digital來得好,這也就是為什麼市面上經過dts編碼的DVD總是賣得比較貴,身價高人一等的原因。一般支援dts的DVD-Video為了在不支援dts的設備上也可以播放所以通常會同時搭載經過Dolby Surround編碼的二聲道的Dolby Digital音訊。

到此還沒說明為什麼MP3壓縮比例為何那麼高。音樂CD的流量是每秒44100*16*2 =1411200bps =1411.2kbps,而我們常用的MP3流量只有128kbps,壓縮後的容量小於原先的十分之一,而聽起來聲音卻還不錯。MP3壓縮時運用到五個重要的技巧,分別是最小聽覺門檻判定(The minimal audition threshold),遮蔽效應(The Masking effect),位元儲存槽(The reservoir of bytes),The Joint Stereo,和Huffman編碼。

最小聽覺門檻判定是一種減少資料量的手段,因為人耳對不同頻率的聲音聽到的音量反應不是平直的,因此我們可以將大部分的紀錄資訊集中在人耳最靈敏的2kHz到5kHz,其餘頻率分配比較少的容量紀錄。

遮蔽效應也是聽覺心理學模型(Psychoacoustic models)的一種,在視覺上呈現的效果是在大太陽下比較難看到天空中飛翔的鳥,聽覺上的涵義就是當有一個音量或音色特別突出的聲音出現,其他細小的聲音會比較難被察覺,就像是管絃樂團齊奏時不易發現觀眾的咳嗽聲,儘管咳嗽的音量與沒有其他聲音時其實是相同的。因此在編碼時我們不需要把所有的聲音細節都編進去,而該把資料拿去紀錄比較突出容易引起注意的聲音。

位元儲存槽在解釋前要先說明MP3的流量屬性,CBR和VBR。CBR是Constant Bitrate的縮寫,也就是說該MP3每秒鐘的資料流量是固定的,常見的MP3都是以CBR編碼,好處是壓縮速度快。相對的VBR是Variable Bitrate的縮寫,每秒鐘的流量是可以變化的,好處是在訊號複雜時用比較多的容量去紀錄,波型簡單時就用比較低的流量,以有效利用空間。CBR的缺點就是每秒鐘的流量都相同,很容易造成空間的浪費,因此有reservoir of bytes的出現,用途是當波型簡單時不要用那麼大的流量,把多餘的空間保留下來儲存將來比較複雜的波性資料,維持流量的大小,達到類似VBR的效果。VBR的MP3並不需要reservoir of bytes。

Joint Stereo是一種立體聲編碼技巧,主要分為Intensity Stereo(IS)和Mid/Side (M/S) stereo兩種。IS的是在比較低流量時使用,利用了人耳對於高頻訊號向位分辨能力的不足,將音訊資料中的低頻分解出來合成單聲道資料,剩餘的高頻資料則合成另一個單聲道資料,並另外紀錄高頻資料的位置資訊,來重建立體聲的效果。例如鋼琴獨奏的錄音就可以利用這種方法在有限的資料流量中減少音場資訊但大幅增加音色資訊。

Mid/Side (M/S) stereo在左右聲道資料相似度大時常被用到,紀錄方式是將左右聲道音訊合併(L+R)得到新的一軌,再將左右聲道音訊相減(L-R)得到另外一軌,然後再將這兩軌資料用上面提到聽覺心理學模型與濾波器處理。Mid/Side (M/S) stereo與IS一樣的是利用部分相位(phase)資訊的損失來換得較高的音色紀錄資訊。一般的MP3是Mid/Side stereo和Intensity Stereo交替使用的,視資料內容與流量而定。如果是更高流量如160kbps以上的MP3,則可以單獨將立體聲的兩個聲道獨立編碼,以保存相位資訊。

Huffman編碼(coding)是一種常見的無失真壓縮方案。當PCM訊號被分成好幾個頻段並經過以上的處理之後,最後經過MDCT(Modified Discrete Cosine Transform)(類似FFT(Fast Fourier Transforms)),將波型轉換為一連串的系數。這些系數最後經過Huffman編碼來做最後的壓縮。Huffman編碼的原理是將比較常出現的字串用特定的符號表示,壓縮後就得到一個紀錄每個符號代表的字串的編碼表以及一連串由各符號組成的資料內容。Huffman編碼可以節省約20%的空間,而也因為經過了Huffman編碼,我們可以發現用WinZip、WinRAR之類的壓縮軟體並沒有辦法把MP3檔縮小多少,理由就是因為這些壓縮軟體也是利用類似Huffman編碼的技巧,因此壓縮程度有限。以上關於MP3編碼的資料取自http://www.mp3-tech.org/tech.html。

MP3播放時的運算遠比編碼時簡單,只要先經過Huffman解碼再由MDTC的逆運算重建波型就可以了,值得注意的是MP3不同於PCM沒有振幅紀錄精度(bits)的概念,我們可以自由使用16bits或是20bits甚至24bits的運算精度來重建波型。一般的MP3 Player運算精度都是16bits,而Winamp的MP3解碼外掛MAD(作者網頁http://www.mars.org/home/rob/proj/mpeg/mad-plugin/)則是以24bits處理,如果使用的音效卡支援24bits格式的PCM,就可以直接輸出24bits的訊號。一般的娛樂用音效卡都只有16bits數類轉換能力,因此訊號送給音效卡前必須要先經過re-dithering的過程,我們從之前的介紹可以知道經過這樣的處理可以聽到比16bits更多的聲音資訊與動態範圍,因此MAD在一般的音效卡上仍有其使用價值。筆者使用MAD與Winamp 2.74內建的MP3 decoder比較,發現MAD音質的確比較好,聲音開闊,小提琴擦弦感與鋼琴力度都比內建decoder好很多,強烈建議各位聽MP3時搭配使用。

網路上有相當多的MP3壓縮軟體,有的強調速度快,有的強調使用介面間單易用。我個人是以音質作為第一考量,趁此幾會再次向各位推薦一個免費的MP3壓縮程式LAME(下載位置http://www.jthz.com/~lame/),這套程式屬於自由軟體,遵照GPL規範,為網路上很多熱心人士所集體研發而成,目前仍持續更新中,原始網頁為http://www.mp3dev.org/mp3/。截稿之前本軟體已經有3.90beta版,。搭配LAME的前導程式是RazorLame,有關於此程式的使用說明與壓縮參數介紹請參考:
http://www.dearhoney.idv.tw/MP3/Encoder/Tiberius20001119/。
比MP3進步的壓縮格式還有mp3Pro和AAC,請參考以下網頁介紹。
http://www.dearhoney.idv.tw/MP3/mp3PRO/
http://www.dearhoney.idv.tw/phpBB/article/viewtopic.php?forum=3&topic=19810&start=0

從前Internet頻寬還不大時,MP3的交流比較少見,一般網頁通常使用MIDI作為背景音樂。MIDI也是數位音樂的一大分支,以下就來介紹MIDI。
 
MIDI(Musical Instrument Digital Interface)

MIDI是在1982年由世界上各電子樂器大廠所共同制定的一種電子樂器通訊介面,藉由傳送各軌發音所要的音色類型、各個音符的強弱、高低、長短、以及使用效果器的種類與參數,來記錄音樂資訊。電腦中應用MIDI格式儲存一首曲子的各音符資料的檔案種類很多,例如.mid,.midi,.wrk,.rcp....等,這些檔案由於只儲存音符的資料,而沒有關於音色波型的紀錄資料,因此容量比起wav、MP3都相當小,大部分經過WinZip壓縮後都只有十幾kbytes。

要播放這些MIDI檔案,除了MIDI檔和播放軟體外,最重要的是MIDI音色和對應的效果器支援。我們可以把MIDI檔視作為樂譜,播放軟體視為樂團的成員,MIDI音源視為樂器,三者缺一不可。一般來講,要達到譜曲者所想表達的音響效果,最好是拿譜曲時所用的音源來播放最忠於原味,因此,MIDI的音色容量未必越大越真實越好,效果器功能也不是越誇張越好,能夠符合原作者要求而恰如其分才是最適合的。如果很不幸地無法獲得相對應的音源,至少要使用該音源廠牌同等級產品來播放,才能達到類似的效果。

MIDI音源一般來講可以分成三種,第一種是硬體音源,例如音源器(Sound Moduler),音源卡,MIDI鍵盤,還有音源子卡。其中音源器和琴以及許多衍生配備,必須要搭配MIDI介面卡(如從前常見的Roland MPU-IPC-T)才能與電腦相連接,達到發收MIDI訊號的功能。許許多多的MIDI檔都是由譜曲者用MIDI鍵盤彈出音符,再經由MIDI Cable把訊號傳至MIDI介面卡由電腦紀錄下來。音源器是外接設備,面板上通常有音量調整與選擇各軌效果器的按鈕與液晶顯示幕,而音源卡則是將音源器的發聲構造做在電腦介面卡上,屬於內接設備。音源子卡在使用上必須另外搭配音效卡提供電源和MIDI訊號,並且放大音源子卡輸出的類比訊號。音源子卡在1994年以後開始流行,是電腦音效卡的龍頭老大Creative所提出的標準。當時有很多音效卡支援音源子卡,例如Creative SB16,SB AWE32,近代的瑞麗聲之鑽,和氏璧,春之頌Pro,Diamond MX300,Turtle-Beach SantaCruz,Labway Xwave Thunder 3D等。這裡有一些音源子卡與音效卡連接的照片http://www.dearhoney.idv.tw/SoundCard/FM801/dvd6.htm,注意看這些音效卡上26pin的針腳就是用來連接音源子卡。還有一些卡不是音效卡卻可以搭配音源子卡。例如Roland MPU-401AT本身是MIDI介面卡,KORG NS5R是音源器。在眾多的音源子卡中,最有名的分別是日本三大MIDI音源廠的產品Roland SCD-15、YAMAHA DB50XG和Korg Topwave。關於以上天花亂墜的器材長相請參考Dearhoney數位音樂工作室博物館,看過這些器材的照片後對於以上文字會有比較清晰的概念。

令一種MIDI音源是軟體音源,常見的軟體音源例如YAMAHA S-YXG系列,是以音源器YAMAHA MU-15(架構與音源子卡DB50XG和音源卡SW60XG類似)這台音源器為模擬對象,相容於GM,XG與GS﹔Roland VSC系列,是以Roland SC-88Pro作為模擬對象,相容於GS,GM和GM2﹔﹔WinGroove則是由作者中山裕基先生自多台硬體MIDI音源中採樣音色,相容於GM與部分GS。軟體音源的缺點是需要較高的CPU使用率且很難做到即時發音。想像一下當按下琴鍵後過了0.3秒聲音才發出來是個多麼令人難過的事情。GigaSampler也屬於軟體音源的一種,有公開的音色檔格式,在專業領域很受歡迎。

還有一種MIDI音源就是目前娛樂用音效卡所廣泛採用的技術-將MIDI音色存在硬碟中,當使用時再存到主機板上的RAM內,而不同於傳統上將音色資料燒死在音效卡上的ROM中。這種觀念的始作俑者是Gravis UltraSound,問世當時風靡MOD界(簡單來說MOD是一種包含音色波型的MIDI檔),但該音效卡是將音色存在卡上的RAM中,與現在的音效卡將音色存在主機板上的DRAM中還是有所不同,但目的都是避免將音色燒在卡上的ROM中以降低成本和提高使用彈性。目前市面上娛樂用音效卡的發聲晶片中,以Ymf724/744/754的內建音色與效果器支援度最廣,所用的音色與功能和S-YXG100相當類似,支援GM,XG與GS,對於這三種格式製成的MIDI檔有一定的相容性。SB Live!(發聲晶片為EMU10K1)屬於另外一種典型,它具有強大的樂器音色替換功能,並具備分頻取樣能力,可以讓使用者隨心所欲製造各種音色。很可惜地是SB Live!只支援GM,且還不吃GM Reset指令,因此播放GS/XG規格的MIDI檔,很難達到忠於原味的效果。其餘大部分的市面上的娛樂用音效卡MIDI音色都很貧弱,與其使用這些音色,不如直接去安裝上述軟體音源。

順道一提,MS Windows98/Me和2000/XP都有內建軟體音源,只要安裝音效卡的WDM版驅動程式即可使用。其音色來源是Roland,只支援GM,不過品質相當差勁,聽過之後實在很難讓人相信是出自Roland的音色。

GM,GS,XG這三種常見的MIDI音源規格,以GM最為廣泛。GM(General MIDI)是第一個以以音源標準化生產為目的共通統一規格。在GM尚未制定以前,各種MIDI器材之間通訊雖然都遵照MIDI標準,但是每台機器對同樣的訊號反應可能都不同,在這台音源器上的第一號樂器是鋼琴,跑到另一台音源器上可能變成了長笛,這樣子就算有了MIDI檔,流通性還是大受限制。為了解決這混亂的局面,在各廠商的協議下,1991年10月由位於美國的IMA(International MIDI Association)以及在日本的JMSC (Japanese MIDI Standard Committee),共同協議採用GM規格,作為音源的共通統一規格。GM音源規範了128個樂器以及鼓組的排列順序與同時發音數至少要達到24,還有Reverb和Chorus這兩個效果器的功能。

在GM尚未制定之前,已經有不少遊戲使用MIDI作為配樂標準,當時Sierra公司率先使用音源器Roland MT-32作為發音音源。當時一台音源器就要比一台個人電腦還要貴了,因此能擁有MT-32最為遊戲音源的使用者都是真正的玩家。在GM制定之後,Windows 95上市以前,也有很多DOS下的遊戲都是使用GM音源作為MIDI標準。不過雖然是說支援GM,各大遊戲廠商仍普遍使用Roland SC-55作為譜曲音源器。當時配樂水準特出的Lucasarts X-Wing、TIE Fighter,Blizzard的魔獸爭霸II,Ganix美少女夢工廠II、Westwood的凱蘭迪亞傳說-命運之手等,搭配Roland SC-55真可謂餘音繞樑三日不絕與耳。

關於Roland制定的MIDI標準GS可視為GM的擴充。其實當GM制定前Roland SC-55已經上市了,GM的128個音色正是SC-55的前128個音色,而發音數,效果器也是量身訂做,因此當GM制定後出廠的SC-55上都被打上GM字樣,這也是為什麼遊戲廠商紛紛以SC-55作為GM配樂標準的原因。XG是Roland的死對頭YAMAHA後來提出的規格,同樣相容於GM,且YAMAHA支援XG的音源普遍具備TG300B Mode,其實這就是GS Mode,只是YAMAHA打死不願意在自己的器材打上GS字樣。而GM2是1999年提出的GM擴充標準,有著256個音色與更多的效果器。雖然看到Roland就會想到GS,想到YAMAHA就會提到XG,但這些格式都是死的,並沒有制定音色資料,因此真正的播放效果還是要看各音源的支援度與規格,並非支援某特定規格的音源聽起來就一定是怎樣怎樣,還是要以該音源器的規格與發聲機制為主。

MIDI在日本最為風行,很多業餘的玩家常常把電玩音樂用耳朵把旋律抓出來再譜成MIDI檔,這個過程叫做耳copy。一些熱門的遊戲,常常同一個曲子就有幾十種不同版本的MIDI檔,展現各編曲家的創意與技巧。我曾經在Roland的首頁看到每年舉辦一次的MIDI作曲大賽,競賽內容包括日本與台灣民謠編曲,參賽者都是一些小學生,可見MIDI在日本有多麼普遍。目前最新的MIDI規格是GM Lite,對象是手機鈴聲,是GM標準的精簡版。

結語
拉拉雜雜講了一大堆,從數位化講到CD再講到各種儲存媒介和數位音樂與電腦的關係,希望能讓讀者對於數位音樂有初步的認識。以上這些資料全部取材自網路上,網址文後附上。希望這點心得對拓展各位的視野有所幫助。最後要感謝網友Tiberius和JamesT的大力協助,提供了豐富的資料與技術支援,為這篇文章增色不少。

參考資料
DearHoney數位音樂工作室,http://www.dearhoney.idv.tw/

關於CD
Compact Disc The Inside Story,http://home.mira.net/~gnb/mac-cdis/index.html#conts
Nyquist Functions,http://www.cs.cmu.edu/~rbd/doc/nyquist/part6.html
CD-Recordable FAQ,http://www.cdrfaq.org/faq02.html
IEC-908...The BIG picture,http://www.ee.washington.edu/conselec/CE/kuhn/cdmulti/95x7/iec908.htm
Pre and De-Emphasis,http://www.batlabs.com/predemp.html
The Secrets of Dither,http://www.digido.com/ditheressay.html#RTFToC8
What is dither?,http://www.mtsu.edu/~dsmitche/rim420/reading/rim420_Dither.html
HDCD - About HDCD - Our Story,http://www.hdcd.com/about/ourstory.html
XRCD by JVC,http://www.xrcd.com/
DVD-Audio for High Quality Music,http://www.disctronics.co.uk/downloads/dvdaud.pdf
Sony Super Audio CD,http://interprod.imgusa.com/son-403/format.asp

關於MP3
MP3' Tech - Overview of the MP3 techniques,http://www.mp3-tech.org/tech.html
Huffman Coding,http://www.rasip.fer.hr/research/compress/algorithms/fund/huffman/,http://rkb.home.cern.ch/rkb/AN16pp/node124.html
Modified Discrete Cosine Transform (MDCT),http://www-ccrma.stanford.edu/~bosse/proj/node27.html
THE LAME Project,http://www.mp3dev.org/mp3/
網友 Tiberius 的 LAME 使用/參數說明,http://www.dearhoney.idv.tw/MP3/Encoder/Tiberius20001119/
MAD Plug-in For Winamp,http://www.mars.org/home/rob/proj/mpeg/mad-plugin/

關於MIDI
Stairway to Heaven,http://spinserve.com/stairway/
DearHoney數位音樂工作室MIDI博物館,http://www.dearhoney.idv.tw/MUSEUM/midi.htm
若遺園,http://gwanlin.tolmall.com/music.htm
arrow
arrow
    全站熱搜

    Jeremy Hsiang 發表在 痞客邦 留言(0) 人氣()