最優秀音頻播放器重新評選(本物評論)
- Foobar2000 -
- Winamp -
- AIMP -
- XMPlay -
- musikCube -
- Spider Player -
- TTPlayer -
- CoolPlayer -
- 1by1 -
- Billy -
- Evil Player -
- VUPlayer -
- Soprano -
- Xion -
- QuickPlayer - http://www.ctuser.net/details.php?software...ons/quickplayer
- RainbowPlayer -
- ALSong -
- Pulse MP -
- wxMusik -
把它們全部都試完了! 得出的結果和以前有沒有分別呢?
評一個播放器好不好, 很多號稱專業的評論都是從音質著手,
常見的是說那個一播放器播出來清楚, 哪一個矇, 哪一個有細節, 哪一個有動態, 哪一個清脆, 哪一個和暖等等
然後會拿出一些音樂CD 來比較一下分別
作為研究音訊多年的人, 我想我也應該寫一篇
事實上一個播放器也只是用來執行API 的更高階程式, 要分別音質事實上只能從其Audio Library 上分別
比如說在Jackbin 大說的最差mp3 播放"KMPlayer", 的確預設的很差, 但如果裝上in_mpg123.dll 之後就會和其他用上mpg123 的播放器有同等質量, 因為播放器是是"指令傳送器", 它並不參與混放
現在流行的Audio Library 有下面幾個
mpg123 mpeg 解碼器, 速度快, 公認數法質量最好的開源library
BASS mp3/ogg 解碼器, 體積少, 商用收費(不開源), 成像評價很好
GStreamer(MAD) 速度慢, 質量高, 有評價說比mpg123 還好一點
Tuniac 新開發的套件(開源), 全32-bit 浮點算法, 成像完整
mpglib 品質和mpg123 一樣
Fraunhofer IIS 格式標準, 但速度比MAD 還要慢
基本上用上上面所提及的library 來開發的media player 品質都會不錯
當然也有比較一般的解碼, 但差得都不遠
來到這裡, 上面的播放器都很好
第二影響品質的地方在於Equalizer, 一把eq 打開, 碼率不足的mp3 馬上會嚴重失真
調用library 就連中小學生都會(當然也不是每一個), EQ 的處理就是考驗編寫員功力的第一重關卡
一個好的Player, EQ 的bands 要夠多, 只有Bands 夠, 調較的時候才會平滑而不會在即使碼率足的時候也會出現晶體化的情形
EQ 的編寫頗為費心的, 從Realplayer 中免費版3bands EQ, 收費版10bands EQ 中可以看出, 但事實上, 一個播放器要用到EQ 的話, 差不多10bands 是合理的
來到這裡, 大部分都很好, 除了其中幾個沒有配備EQ 的之外
EQ 的原理是把信號做一次Fourier Transform 之後將所選的spectrum 加減後再Anti-Transform, 實時播放
可以知道, 把一band 的水平個別提高是會出現Spectrum quantization, 和Digital Signal 的quantization 有所不同, 因此很多高質素的軟件都會做出linear 甚至2/3 次多項式的平滑
到這裡Coolplayer 以下的都站不住腳了
做完EQ 之後, 基本上一個可用的播放器就告成, 但更有要求的會追求Interpolation 的算法
所有數碼音樂(包括CD) 都是Sampling of analog signals(類比取樣)
既然是取樣就不能是無限取樣, 今天大部分的取樣都是每秒44100次, 在mp3 壓縮後自然實用數目也會不足
那麼取樣之間的填補也是player 的工作了, 因為分別不明顯, 多player 會使用ramp 型(即是不作出改變), 原因就是: 能力不夠, 甚至有很多編寫的人不知道要處理interpolation, 任由晶體化出現
因此, interploation 是考驗大師的課題了
同一時間dithering 和ramping 也是處理晶體化的方法, 但由於所用的的算法非常的自由,
而得出結果也差不遠, 所以我也不太願意去冒險評價大師們了
到這裡, 除了Winamp, foobar, ALSong 和 XMPlay 之後都沒有了
就今日, 多就是利用到liner, Hermite, 也有專家會用到高位元sinc 來作出修補
http://blog.chinson.idv.tw/2006/07/linear-interpolation-sinc.html
http://kevincg.wordpress.com/2006/02/21/hermite%E7%9A%84%E6%9B%B2%E7%B7%9A%E9%81%9E%E8%A3%9C%E6%BC%94%E7%AE%97%E6%B3%95hermite-curve-interpolation/
其中Sinc 的無限函數電腦計起來最為複雜, 所以用起來要有效率, 播放器編寫員還要學習cpu 的一點引用(如MMX, 3DNow!)
走到這一步的, 看來只有Foobar 和XMPlay
那麼那講一下它們的來歷吧,
Foobar2k 受眾廣, 我提供一下連結就好: http://zh.wikipedia.org/wiki/Foobar2000
XMPlay: 由開發BASS Library 的公司Un4seen 開發的播放器, 外觀簡而陋, 支持換Skin 但介面操作不友好, 但功能比想像中齊全:- Auto AMP - DSP - Interpolation resampling(二級) / pan resampling
- 全sf2 支援(GM/GS/XG) - ASIO/DirectSound, 請到Un4seen.com 下載
作為一個最好的播放器還要配合很多plugins, Foobar2k 的plug-ins 的確多很令人咋舌, 支援得到的格式可比以前winamp2, 但其中一個還算很有人氣的格式卻被XMPlay 比下去了 - MIDI.
在上面支持midi 的播放器還不少, 但可以用到custom sf2 的就只有Foobar, XMPlay, Spider Player, AIMP2
而Foobar 對sf2 的支持是透過foo_midi 插件的, 但可惜這個插件非常不成熟, 成像差還會掉音
XMPlay 在處理純Midi 輸出的時候還是不及Timidity++, 但比起foo_midi, XMPlay和 Spider Player處理起來就完美多了, 但Spider Player 是based on BASS 的, 那就不用評價了, 透過sinc interpolation + dithering + ramping 來re-render soundfont 輸出是十分之令人感動的一件事
XMPlay 可以把這個工作實時處理實在是很強大, 作為一個免費程式, 這種處理有點及得上一個上千港幣的DAW 了
其實要播得更好更有趣, 我大概打開一個DAW 會更快樂, 寫這麼多就只為了認清一下真相