tta 対 ape 対 flac 対 wv、個人的検証

結局どれ使ったらいいわけ? というのがいまひとつはっきりしないので、すこし検証してみることにしました。
手元にある CD の中からフィッシュマンズの「LONG SEASON」をチョイスし、Exact Audio Copy で WAV 一本にブッコ抜き、それぞれオフィシャルで配布されているコマンドラインエンコーダを使ってエンコード速度とファイルサイズを比較してみました。

動作環境:Windows 2000 SP4, Celeron 2.5G, RAM 512M (PC2100)
元ファイルサイズ:373,090,748 bytes(44.1KHz 16bit Stereo, 約 35 分)

注:

  • オフィシャルサイトで配布されている Win32 向けバイナリをそのまま使用。
  • デコード時間は nul への出力で計測。

FormatEncoder/DecoderEncode optionencoded sizetime (encode)time (decode)
apemac.exe v3.99-c1000193,279,868
(51.81%)
37.41s47.81s
-c2000188,204,720
(50.44%)
57.05s65.22s
-c3000185,773,060
(49.79%)
67.61s75.05s
-c4000183,113,024
(49.08%)
133.91s141.77s
-c5000182,182,956
(48.83%)
437.11s454.99s
flacflac.exe v1.1.2-0214,197,141
(57.41%)
28.08s20.01s
-5200,224,583
(53.67%)
50.24s21.78s
-8199,254,431
(53.41%)
218.72s21.94s
ttattaenc.exe rel3.3192,145,335
(51.5%)
36.02s35.97s
wvWavPack V4.2
wavpack.exe
wvunpack.exe
-f199,630,356 (53.51%)27.83s18.25s
197,255,866 (52.87%)33.41s23.94s
-h191,140,880 (51.23%)57.81s40.66s

…というわけで、わかったのは、

  • 圧縮率は ape がもっとも優れている。以下 wv (-h), tta, wv, flac の順。
  • flac 以外は)エンコードとデコードにほぼ同じ時間がかかる。
  • というか ape はデコードのほうが遅いぜ(ちょっと意表をつかれた)。
  • flac はデコードが(ape, tta に比べて)高速。また、エンコード時に圧縮率を上げてもそれほどデコード時の負荷にはならない。
  • WavPack も割と軽め。fast lossless モード(オプション -f)でも flac 標準(-5)より小さくてエンコードも速い。

というようなことです。
で、個人的な評価ですが、

  • 無圧縮 wav に近いノリで使いたい(オンザフライでの再生など)なら、圧縮率高めの ape は避ける(-c4000 以上。-c3000 も個人的には微妙)。
  • flac は最高圧縮にしても tta や ape よりサイズが大きい。サイズにこだわるなら ape か tta
  • ape の高圧縮モード(-c4000 以上)は、圧縮率とエンコード/デコード時間を考慮に入れると、あまり利用価値がないと思う。音声データをメディアに詰め詰めでバックアップするんならいいかもしれないけど…。
  • tta は ape の最速圧縮(-c1000)とほぼ同程度の圧縮率で、エンコード・デコードはより速い。圧縮率設定のオプションもないので安直に使える。オンザフライ的利用のギリギリを狙ってるような印象。
  • 自分で使うなら、ape (-c1000, 場合により -c2000) か tta かな、と。
  • でも -c1000 で ape 使うなら WavPack で高圧縮かけちゃったほうがよさげな気もする…普及率を考えるとやや不利ですが、人とファイルをやり取りしないならどうでもいい話だし。

まあ、使ってるマシンの能力によっても評価は違ってくるでしょうが……(以前使ってた Duron-700MHz あたりのマシンで評価したら flac マンセーだったかもしれない)。というか「TTAと同じ圧縮率で1.5倍高速」ってのがどうなるのか気になるところです。