可逆音声圧縮の比較

KbMedia Player が The True Audio (TTA) に対応していることが分かったので,TTA と Monkey's Audio と FLAC を色々比較してみる.
可逆音声圧縮は他にも WMA Lossless とか WavPack とかあるらしいが,とりあえず今回はこれだけで.ちなみに,KbMedia Player は WavPack にも対応しているようだ.foobar2000 などのプレイヤーもこれらの音声圧縮形式に対応している.DirectShow Filter や Winamp Plugin も開発されているので,インストールすれば Windows Media PlayerWinamp でも再生できる.

エンコーダの説明

http://www.true-audio.com/ にある GUITau Producer 1.1 とコマンドラインの ttaenc 3.2 を試した.TTA には圧縮率を指定するオプションは存在しないようだ.Tau Producer は TTA のライブラリが組み込まれているらしく ttaenc が無くても単体で動作する.Tau Producer と ttaenc で生成されるバイナリは同一のようだ.

  • Monkey's Audio (*.ape)

http://www.monkeysaudio.com/ にある GUI の Monkey's Audio 3.99 を試した.指定できる圧縮率には従来で最高の Extra High よりも高圧縮な Insane(基地外仕様?)が追加されているようだ.Monkey's Audio には基本的に下位互換性はない.

http://www.rarewares.org/lossless.html にあるコマンドラインFLAC 1.1.1 (ICL7.1 compile) を試した.Pentium 4 に最適化されているので速いはず.動作には同所で配布されている Intel libmmd.dll が必要.時間計測のために Monkey's Audio の GUI をフロントエンドにした.方法は「Monky's Audio でFLAC」(妖精現実フェアリアル)を参考に.

比較対象

  • ape (Normal)

Monkey's Audio の標準

  • ape (Extra High)

従来の Monkey's Audio の最高圧縮

  • ape (Insane)

Monkey's Audio 3.99 の最高圧縮

Tau Producer と ttaenc は生成するバイナリが同一であり,エンコード時間もCD1枚で数秒しか変わらないので,Tau Producer のみを採用

FLAC の標準.--compression-level-5 相当

FLAC の最高圧縮.--compression-level-8 相当

  • wav

無圧縮の WAVE ファイル

比較項目

  • 圧縮率

実ファイルサイズと無圧縮 WAVE との比を示す

エンコード時間と演奏時間との倍率を示す

  • シーク時間

再生開始に掛かる時間やシーク時間を示す参考データ.再生環境は KbMedia Player

サンプルデータ

I've の SHORT CIRCUITリッピングした WAV ファイル
シーク時間の比較は Track 04 の「さくらんぼキッス」で

比較結果

  • 圧縮率
ape (Insane)      68.2%  424 MB (445,325,588 バイト)
ape (Extra High)  68.5%  426 MB (447,510,688 バイト)
ape (Normal)      69.6%  433 MB (454,966,116 バイト)
tta               71.0%  442 MB (463,933,986 バイト)
flac (High)       71.4%  444 MB (466,415,715 バイト)
flac (Normal)     71.7%  446 MB (468,284,924 バイト)
wav              100.0%  623 MB (653,360,300 バイト)

どんなに高圧縮にしても可逆圧縮では 2/3 にもならないということか.ただ,ape (Insane) や ape (Extra High) と flac (High) や flac (Normal) を比較すると 20MB ほどの差があるので,高圧縮のために ape を選ぶのは悪くはない.ただ,後述するエンコード時間やシーク時間を考えると,ape (Insane) を使うのはやはり基地外であるとしか言いようがない.

tta               x29.9  02:04
flac (Normal)     x24.7  02:30
ape (Normal)      x20.5  03:01
ape (Extra High)  x10.1  06:05
flac (High)        x6.1  10:08
ape (Insane)       x3.3  18:45
wav                x1.0  61:43

tta の異常な速さと ape (Insane) の異常な遅さが印象的.flac (Normal) と flac (High) や ape (Extra High) と ape (Insane) を比較すると,それぞれ 2MB 程度しか差がないので,3〜5倍の時間を掛けてまで flac (High) や ape (Insane) を使用するのはあまりにコストパフォーマンスが悪い.

  • シーク時間
tta, flac (Normal), flac (High) ほぼノンストップ
ape (Normal), wav               瞬断
ape (Extra High)                1 秒程度
ape (Insane)                    10 秒弱

ape (Insane) を使用するのはやはり基地外だ.ape (Extra High) の 1 秒程度の途切れはそれほど気にならない.

総括

ape (Insane) を使うのは基地外だ.以上.


…と締めるのはあんまりなので,私見を述べておく.
コストパフォーマンスを考えるなら,ape (Normal), tta を選ぶのがよい.圧縮率重視なら ape (Extra High) を選べばよい.flac はやや中途半端に感じた.