Friday, June 20, 2008

音訊編碼簡介: Musepack

零. 前言

破壞性音訊格式的市場經過多年來各家的爭奪,版圖大致已定,MP3早是最大贏家,成為消費性電子產品與個人電腦上的主流,其繼承者AAC也隨著iPod的流行發熱,成為各類媒體播放器與手機通訊設備的重要應用,WMA在微軟大力發展推行之下逐漸追趕,ATRAC隨著MD淡出市場早就被大家遺忘,Vorbis繼續在自由軟體界裡頭消遙著。在此要介紹的,則是同為出身自自由軟體社群,但相對冷門的編碼:Musepack

一. 什麼是Musepack

Musepack出現於1997年左右,是針對音樂壓縮而開發的破壞性編碼,以MPEG-1 Audio Layer 2(MP2)為基礎,但擴增了更多的壓縮演算法,與MP3系出同門,當初更以MP3為競爭對象。由於MP2與MP3一樣,實為受專利權控制的編碼,故Musepack一度受到有侵權可能的質疑,因此Musepack在開發過程中完全剔除了與MP2有關的程式碼,一切從零開始。

Musepack的壓縮模型所針對的,是中高資料流率的表現。在平均值為170kpbs左右的預設Standard模式之下,可以達到在人類聽覺感知上,近乎與原始未壓縮音樂沒有差異的表現,也就是所謂的「Transparent」。資料流率依序增高的ExtremeInsaneBraindead模式更能大幅減少壓縮噪聲,除非你有超人般的聽力與高傳真的音響設備,從Insane模式開始,大概就很難挑出雜訊了。

礙於本身針對中高流率的設計目標,Musepack並沒有對低流率的使用做最佳化,因此在低到32/64kpbs這種流率時,就不是Vorbis與AAC,甚至WMA的對手了。這類編碼為了網路串流(Streaming)的應用,有針對低流率的情況做特別調校,但這就不是Musepack的強項。 

身為改良的MP2,Musepack是純粹的變換性流率編碼(Variable Bit-Rate),也就是說,所謂的128kpbs、160kpbs等音質分類法,對Musepack來說是沒有意義的,Musepack編碼器會依照指定的壓縮品質,針對音樂各部所需,給予不同的資料量,以維持檔案大小和音質的平衡,這種壓縮方針與AAC、Vobis等一類較先進的破壞性編碼無異。此外,Musepack最初名為MPEGplus,有時更簡稱為MPEG+與MP+,但為了強調其發展於自由軟體界,與受專利控制的MPEG格式不同,而後才改名為Musepack,並以MPC為檔案的副檔名,不過這和具有相同簡稱的Media Player Classic可是一點關係都沒有喔。

二. 使用注意事項

2.1 如何解碼播放?

於Windows上,最方便且直接的播放方式,是使用foobar2000,它原生支援Musepack,不需要安裝任何外掛軟體。若想用Windows Media Player或Media Player Classic一類的DirectShow播放器,也可以從Musepack的官方下載頁安裝RadLight MPC DirectShow Filter,該頁面上同時也有Winamp用的外掛解碼器。

2.2 如何編碼壓縮?

死硬派的指令列使用者可能會喜歡Musepack官方提供的mppenc編碼器,懶一點的人可以搭配郵第三方編寫,非官方的MPC Batch Encoder圖形介面,跟mppenc一起使用,這些東西同樣可在官方下載頁找到。但實際上這兩種方法都不太方便,MPC Batch Encoder好一陣子沒跟新了,對於包含中文的檔案路徑支援度非常差。較好的方式,是直接將mppenc扔到foobar2000的程式根目錄中,就可以直接使用它的Converter做Musepack轉碼。

  • foobar2000內部早就提供了Musepack的壓縮設定,你只要把mppenc編碼器裝好就行了。其實foobar2000提供了更多其他的編碼壓縮,就等著你用。

  • 這是壓縮時的音質設定,foobar2000提供了Q3到Q10的音質,平均資料率為90kbps至350kbps不等,但依照Musepack的變動資料率天性,此數值僅供參考。從最差的Q3往上數,分別是ThumbRadioStandardExtremeInsane,而Q8至Q10則為Braindead,基本上Thumb與Radio設定你不會想理它。
2.3 Musepack的優點?

冷門歸冷門,Musepack還是有長處:
  1. 開放原始碼,沒有專利問題。
  2. 編碼與解碼速度很快,與MP3、AAC與Vorbis比起來,省時省力。
  3. 壓縮架構良好,在低流率時Musepack的音樂雖然難逃頻寬衰減的現象,但很少出現MP3與Vorbis中「嘶嘶聲」一類的壓縮失真,在古典音樂中特別明顯,這對走中高流率路線的Musepack來說基本上不構成問題。
2.4 Musepack的缺點?

其實我能發現的缺點比優點還多:
  1. 取樣率最高只能到達48KHz。雖然CD唱片的取樣率是44.1KHz,Musepack的規格已經足以合乎備份音樂的需求,但跟別的編碼比起來,Musepack在這方面的規格硬是矮一截。
  2. 檔案本身不支援隨選解碼,也就是Fast seeking。當你在foobar2000中調動音樂的進度軸時,foobar2000無法直接跳到該定點播放,而必須將原播放處與指定播放處之間所有的資料全數解碼後,才能繼續播放,這是非常暴力的解決方式,與Musepack的解碼速度快慢無關。雖然現在的CPU能力很好,這當中的延遲可說短到微乎其微,但這實際上是Musepack檔案結構的重大缺失。
  3. 目前的Musepack無法用於網路傳流,這點敗給了MP3、Vorbis等對手。
  4. 最高僅支援雙聲道。雖說常見的音樂仍是以雙聲道方式編製,但站在最高聲道數可達48的AAC面前,Musepack似乎是黯然失色。過多的聲道數確實是不實用,但這方面的規格,Musepack理當也做得到才對。
  5. 官方發展極度緩慢。Musepack的音質好得沒話說,但以上的缺失從Musepack誕生以來就讓人詬病已久,發展團隊雖承諾這些問題在之後的版本中會一倂改善,但目前的進度依舊是以龜速前進。這與更新速度快的LAME MP3 Encoder,和擁有數個做最佳化調校第三方開發者的Vorbis比起來,真是差得可以。
三. 其他雜談

撇開前述的缺點不談,Musepack優異的音質表現,依舊值得一試,而且我們鼓勵你這麼做,十全十美的編碼當然不存在,但至少你多了一個選擇。不過喜歡帶著隨身聽或音樂手機到處跑的人可要失望了,除了在電腦上播放以外,Musepack在其他硬體上的支援度少得可憐,也不如MP3和Vorbis那般跨足較多的平台。

由於Musepack極低的佔有率,許多論壇上早已出現「Is Musepack dead or not?」這類的爭論,想當然這問題是戰得無解,畢竟Musepack依舊有死忠派支持,還是有很多人對它抱持期待。其他的破壞性編碼這幾年來發展快速,早就有急起直追之勢,希望Musepack團隊可以再加把勁,別讓這麼優秀的編碼被埋沒了。

四. 音樂樣本

最後提供三首Musepack樣本音樂以供參考,皆由Exact Audio Copy抓音軌後,再由foobar2000的Q7 Insane設定壓製,分別是:
  1. Polynasia,日本DJ石野卓球的作品,出自1998年的BERLIN TRAX專輯。
  2. Little Light of Love,Eric Serra替電影第五元素自編自唱的主題曲。
  3. 貝多芬第五號命運交響曲第一樂章,由已故指揮家卡拉揚指揮柏林愛樂演奏,1984年錄音。
請由此處下載服用。

2009.3.19更新:

今天突然發現Musepack已經在今年的二月底有重大的官方更新了,詳情請參考官方連結:
http://forum.musepack.net/showthread.php?t=578