Board logo

主題: [轉貼]音樂格式新寵兒MPC [打印本頁]

發表人: chian180    時間: 2006-7-11 03:41 AM     主題: [轉貼]音樂格式新寵兒MPC

最近下了一些MPC格式的音樂,對這種格式的音頻不熟悉,找了一下資料,特別轉貼上來,省卻大家查找的繁瑣.

文章來源: 天極數碼
原文作者: 李峰
(因為原帖附圖無法連接顯示,請自行參考http://www.ogg.cn/info/view-info-9.html)

前言:  

  MusePaCk是由德國人Andree Buschmann開發的一種完全免費的高品質音頻格式。在其問世之前,Lame MP3是公認音質最好的有損壓縮方案,追求音質的人對它趨之若鶩。但現在這個桂冠無疑該讓給MPC了,在中高碼率下,MPC可以做到比MP3更好音質。在高碼率下,MPC的高頻要比MP3細膩不少,可以在節省大量空間的前提下獲得最佳音質的音樂欣賞,是目前最適合用於音樂欣賞的有損編碼。

  希望通過本文的介紹,能有更多的人加入MPC的行列,尤其是那些追求音質的朋友。其實如果你沒有MP3隨身聽,只是在自己的電腦上製作、播放音樂,完全可以棄MP3而轉投MPC,因為後者在編碼速度和音質上的表現絕對會讓你徹底忘記MP3的!

一、 知識篇

1、MPC有哪些優點?

  MusePaCk(.mpc)原先又被稱為MPEGPlus(.mp+),是由德國人Andree Buschmann開發的一種完全免費的高品質音頻格式(見圖1)。在其問世之前,Lame MP3是公認音質最好的有損壓縮方案,追求音質的人對它趨之若鶩。但現在這個桂冠無疑該讓給MPC了,因為無論是頻譜分析,還是對比試聽,160Kbps碼率以上的MPC表現絕對要好過MP3(指相同碼率的兩者而言),也好過任何其他的有損壓縮格式。不僅僅是音質,MPC還有編碼速度快的優點,經MPC現任負責人Frank Klemm改良後的1.14版編碼器,在我的Duron 650上編碼速度可以達到實時播放的5.5倍,比慢工出細活的LAME要快得多!

2、瞭解一些MPC的編碼特點

  MPC的編碼方案是在MP2的基礎上改進而來。它同樣採用子帶編碼技術,但相比MP2,它所採用的心理聲學模型要優秀得多,並加入了像ANS(Adaptive Noise Shaping)、CVD(ClearVoiceDetection)等技術,甚至改變了壓縮時所用的Huffman(哈夫曼)編碼,以得到更大的壓縮率。另外,MPC採用的是可變碼率進行編碼。毫無疑問,可變碼率的編碼效率要高於固定碼率,因為前者可以合理地分配數據量,在信號複雜(微弱)時提高(降低)比特率,在得到滿意的效果又能確保不錯的壓縮率。為了保證高音質,MPC的瞬間最大碼率甚至高達1.32Mbps,這已經快接近CD的1.41Mbps了!

註:
(1)什麼是MP2?

  MPEG-1音頻標準定義了三種不同的壓縮層次,即MPEG Audio Layer-1、MPEG Audio Layer-2、MPEG Audio Layer-3,分別簡稱MP1、MP2和MP3。層次越高壓縮性能越好,但是編碼的開銷和譯碼的複雜度也隨之增加。MP2均衡了性能和複雜度,它能在192~256Kbps的速率下實現CD級的音質。

(2)什麼是子帶編碼(Subband Coding)?

  子帶編碼是音頻壓縮方法的一種(其他還有時域編碼、變換編碼等)。它將輸入的音頻信號的頻帶分成若干個連續的頻段,每個頻帶稱為子帶,然後針對各個子帶中的音頻信號採用不同的編碼方案以降低碼率。子帶編碼的算法複雜度較低,這使得MPC可以有很快的壓縮速度,但也帶來了它在低碼率下表現不佳的先天缺陷。所以請不要把MPC用在低碼率(像64Kbps、96Kbps)的場合,Ogg和MP3Pro才是這方面的高手!

3、MPC能取代MP3嗎?

  MP3自問世以來一直是壓縮音頻的霸主,欲革其命的「同志」前赴後繼(像VQF、RM、WMA、MP3Pro等),但都無一成功,MPC的前景又如何呢?目前看來想讓MPC取代MP3幾乎是不可能的。儘管有音質上的優勢,但作為個人研發的音頻格式,MPC缺乏軟硬件支持和市場推廣,知名度較低。像Ogg、AAC都有隨身聽大廠的支持和推廣,而目前據悉只有國內一家OEM公司研製出了支持MPC的隨身聽,該產品內置128MB閃存並支持SM卡擴充,信噪比高達100dB,近期應該就能上市。

  眼下使用MPC的人還不多,主要是一些對音質要求較高的人。希望經過本文的介紹,能有更多的人加入MPC的行列,尤其是那些追求音質的朋友。其實如果你沒有MP3隨身聽,只是在自己的電腦上製作、播放音樂,完全可以棄MP3而轉投MPC,因為後者在編碼速度和音質上的表現絕對會讓你徹底忘記MP3的!

[chian180 在  2006-7-11 04:01 AM 作了最後編輯]
發表人: chian180    時間: 2006-7-11 03:48 AM

二、測試篇

  如同我們熟悉的Lame編碼器,MPC的編碼器mppenc.exe也是一個DOS命令行程序,其基本參數格式為:mppenc [--可選參數] <輸入文件> <輸出文件>。mppenc.exe的可選參數很多,但我們只要瞭解「quality x」和「xlevel」兩個就足夠了。「quality x」直接控制了MPC文件的壓縮質量,「x」的值可以是0~10之間的任意數值,不過我們一般都取整數值,常用的有5、6、7等。數值越高得到的音質越好,但生成的MPC文件也越大,「x」的默認值是5。而「xlevel」參數則用來防止編碼器出現內部削波(Clipping)錯誤,導致壓縮品質的嚴重惡化。

註:

(1)什麼是削波(Clipping)?

  削波是一種形式的波形失真。當源信號的波形振幅超過程序所考慮的採樣峰值時,超過的部分會被削除,這就被稱為削波。

  對於關鍵的x值,我們該選擇哪個呢?為了讓大家對不同quality值的編碼效果有個直觀上的認識,我進行了下面的一個測試:將一首安立奎(Enrique)演唱的《la chica de ayer》用不同的quality值壓縮,再用Cool Edit Pro打開生成的MPC文件查看頻譜。這樣的做法雖然有些片面,因為對壓縮質量的評價還應該結合實際的試聽才對,但至少我們可以瞭解不同的x值對信號的保留程度。同時我也用Lame的三個常用參數壓縮了MP3文件來進行對比。之所以採用這首歌是因為其信號非常飽滿,尤其是高頻信號,最高頻率已經超過了20Khz,而有損壓縮編碼對高頻信號的損失向來比較嚴重。
顯而易見,MPC的壓縮效果相當令人滿意。相近碼率的MPC文件高頻信號保留得明顯比MP3好(對比頻譜5和9及頻譜3和8),曾經代表最高壓縮質量的Lame --alt-preset insane一下子就被quality 9的MPC給比下去了,而quality 10的MPC幾乎就是原版CD拷貝!可以看到Lame對高頻處理完全是一刀切,儘管它所切除的高頻都在18Khz以上,人耳不易察覺,但是從編碼質量上來說顯然不及MPC優秀。至於x的選擇,在一般的電腦音頻設備上,quality 5壓制的MPC已經能讓人比較滿意了;如果你的聲卡和音箱比較優秀(比如筆者所使用的創新PCI 128和惠威M20W),可以採用quality 7,這個參數的壓縮率和編碼效果都很不錯;至於更高的x值,可以推薦給那些發燒友吧!
發表人: chian180    時間: 2006-7-11 03:52 AM

三、製作篇

1、如何快速實現CD→MPC?

  看到這裡,熱心的讀者肯定迫不及待要自己動手製作MPC了:)抓取CD壓制MPC,最簡便的方法莫過於用EAC(Exact Audio Copy)外掛MPC編碼器,實現CD→WAV→MPC的一條龍工作。(直接從WAV文件製作MPC可選用Musedrop工具。)運行EAC後,先進行一下設置:

  點擊「EAC→壓縮選項」進入「壓縮選項」窗口後切換到「外部壓縮程序」選項卡,做如下修改:選中「使用外部壓縮程序」;「參數使用方案」中選擇「User Defined Encoder」;在「使用擴展名」中敲入「.mpc」;在「用於壓縮程序所在路徑」中選擇mppenc.exe所在路徑;在「追加的命令行選項」中填入「--quality 7 --xlevel --artist "%a" --title "%t" --album "%g" --year "%y" --track "%n" --genre "%m" %s」;「比特率」的數值沒有作用,不用管它;點中「壓縮後刪除WAV文件」和「使用CRC校驗」,取消「添加ID3標籤」。另外再切換到「Offset」選項卡,取消掉「編碼和解碼時使用偏移校正」。

註:「追加的命令行選項」中當然還可以把「quality 7」改成其他數值,比如「quality 5」、「quality 6」,具體視你對音質的要求和CD源盤的品質而定;取消「添加ID3標籤」是因為MPC有自己專門開發的APE V2標籤,而中間的「--artist "%a"」格式的幾個參數就是用來往APE V2標籤裡添加信息的;末尾的「%s」用來指定源文件,絕對不能少。   接下來就可以製作MPC了。放入一張CD,如果連上了Internet的話,可以先試一下點擊工具欄上的「freedb」圖標,EAC會訪問的freedb到儲存了CD信息的freedb,查找有沒有這張CD的信息,填好CD的標籤、藝術家和曲名,點左側的MP3圖標就行了!EAC會自動完成一系列工作:抓軌生成WAV→調用mppenc.exe編碼MPC→刪除WAV,我們只要等待片刻而已!

2、讓製作的MPC更加完美  
 喜歡收集音樂的朋友肯定有這樣的體會,將四處弄來的MP3放在一起播放時音量會忽大忽小,需要不停地調整音量旋鈕才行,很是麻煩!這都是由於CD錄製的音量並不統一。為了解決這一問題,網上的音頻愛好者們提出了ReplayGain(重放增益)這一概念。所謂ReplayGain,就是在音頻文件頭部寫入一些數值,標注出該音頻文件的音量與標準音量(83dB)的差值,從而在回放時通過播放器加以調節。不同於EAC、CDEX等軟件裡有著類似作用的標準化(normalization)選項,ReplayGain不僅對音質是無損的,而且可以隨時去除。

[chian180 在  2006-7-11 04:03 AM 作了最後編輯]
發表人: chian180    時間: 2006-7-11 03:56 AM

給MPC文件加上ReplayGain是非常容易。將一張CD壓縮成MPC並保存在同一目錄下,然後再拷貝MPC的解碼程序mppdec.exe和ReplayGain執行程序replaygain.exe到該目錄下。進入DOS界面並轉到該目錄,敲入「replaygain --auto *.mpc」命令,回車後ReplayGain便開始工作了。它先逐個計算每首歌的音量與標準音量的差值,再計算整張CD的平均音量與標準音量的差值,並將這兩個值寫入MPC文件頭。前一個差值我們稱為「Radio」(廣播),若在播放時採用這個值會使所有的歌曲的音量都一樣大;後一個稱為「Audiophile」(高保真)的差值則會保留同一張CD中各首歌曲的音量差異,而將CD與CD之間的音量差異消除。具體採用哪個值要播放器中設置,一般我們使用Audiophile, 這樣不同CD的歌曲放在一起播放就不會出現音量變化很大的問題了。另外,如果你嫌手動輸入命令麻煩的話,可以試試MPC的前台程序MPC Batch Encoder,它可以很方便的幫你自動執行ReplayGain程序。

3、 MPC與MP3能相互轉換嗎?  

幾乎大部分的音頻格式都能相互轉換,包括MPC和MP3,但是並不推薦這樣做!因為兩種有損壓縮格式之間的轉換意味著要丟失更多的信號,帶來更大的失真。但有時卻有將MPC轉換成MP3的必要,特別是像我這種拿到CD碟都一股腦壓成MPC的人。如果突然需要一個MP3版本(比如要轉到MP3隨身聽上)又沒有原碟時,就只能走轉換這條路了。幸好,由於MPC的高音質,將其轉換成MP3還是可行的,尤其是高碼率的MPC。經過我的試驗,發現如果是quality 6級別以上參數壓縮的MPC文件,轉換成的MP3效果還是不錯的,無論從頻譜分析還是實際試聽來看,差距都不大。

要想方便地實現MPC->MP3的轉換,你得用批量轉換器MpxChange。它已經自帶了MPC解碼器和Lame編碼器,運行後只需將要轉換的MPC文件拖到下面的列表框,再點擊右下方的「Transcode」按鈕就OK了!不過我推薦大家先在「Encoder Options」框單擊鼠標右鍵,將Lame編碼參數更改為「--alt-preset standard」,這樣能保證比較理想的效果。如果你的MPC是用「quality 10」參數壓制的話,你甚至可以嘗試一下「--alt-preset extreme」。
發表人: chian180    時間: 2006-7-11 03:58 AM

四、播放篇

1、那些軟件可以播放MPC?

  直接就能播放MPC的軟件非常稀少,據我所知只有FooBar2000和JetAudio 5。此外還有一些軟件可以通過外加解碼插件支持MPC,像Winamp和QCD Player。相信很多人都希望能在Winamp上播放MPC,因為這個軟件幾乎每台電腦上都有!OK,下文就來介紹如何在Winamp上播放MPC。

2、如何在Winamp上播放MPC?

  只要下載安裝一下Winamp的MPC插件(注意你的Winamp版本,2.XX版和3.0對應的插件不同,這裡以2.81版為例),就能用它來播放MPC了。不過為了得到滿意的播放效果, 我們還得並對該插件進行一些設置。安裝好插件後運行Winamp,按Ctrl+P進入「參數設置」。選擇MPC插件後按「配置」進入配置窗口,做以下三個部分的設置:

① EQ(均衡器)設置。「Equalizing by」(採用哪個均衡器)一定要選中「MusePack」,因為Winamp內置的EQ高頻部分丟失嚴重(尤其是16kHz以上的高音)。「Dynamic range」(動態範圍)決定了EQ所能調整的動態範圍,選擇±6db比較合適。

  ② ReplayGain(重放增益)設置。「Mode」下拉框中選擇「ReplyGain album based」,這樣插件就會按Audiophile的值來調整音量,不同CD間的音量差異得以解決。「HeadRoom」(頭頂空間),用來避免聲音的削波和過飽和,其數值表示了重放的最大音量可以比標準的83db大多少,在家庭聽音環境下建議設為K-14,即最大音量為83+14=97db。

  ③ Dither(抖動)設置。「Dither output」一定要選中,它在一些時候可以提升我們的音質。

註:什麼是Dither(抖動)?

  聲音在從高比特向低比特轉化時會造成量化失真,比如很多CD在製作時都是採用的24Bit,而我們回放時的採樣大小只有16Bit。使用了Dither技術後,會在音頻信號量化前中加入一些人耳不容易察覺的隨機擾動的噪音,它能將0Hz-12KHz頻率內的量化失真大幅減少,而把大部分的失真帶到了12KHz以上的高頻區域。由於人耳對高頻是比較不敏感的,所以就達到了提高音質的作用。




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0