圧縮率比較

奥村先生のサイト等で,xz圧縮が話題になっていました.
gzipの代わりにxzを使おう | Okumura's Blog

GNU coreutils をソースからコンパイルしようとしてびっくり。coreutils-7.3.tar.gz (9690396バイト) 以外に coreutils-7.3.tar.xz (4045980バイト) が置いてある。*.xz は *.gz の42%のサイズしかない。

CDM(圧縮に基づく非類似度)やNCD(正規圧縮距離)にとっては,圧縮率の高さは死活問題ですので,簡単にテストしてみました.
使ったプログラムは,gzip,xz,bzip2で,圧縮率オプションはどれも最高の「-9」です.

結果の表の中で,「テキストファイル」というのは,
http://www.gutenberg.org/files/11/11.txt
にあるルイス・キャロルの「不思議の国のアリス」の英語版,「MP3ファイル」というのは
http://www.ne.jp/asahi/music/myuu/wave/amairo.mp3
にあるドビュッシーの「亜麻色の髪の乙女」です.
「大容量プログラムソースコード」というのは,
Index of /pub/linux/kernel/v2.6/
にあるLinuxカーネル2.6.29のtarファイルです.

ファイル圧縮処理時間ファイルサイズ
テキストファイルオリジナルNaN167529
テキストファイルgzip0:00.0560425
テキストファイルxz0:00.3353620
テキストファイルbzip20:00.0548983
MP3ファイルオリジナルNaN1378602
MP3ファイルgzip0:00.201370019
MP3ファイルxz0:01.171371104
MP3ファイルbzip20:00.881363487
大容量プログラムソースコードオリジナルNaN336179200
大容量プログラムソースコードgzip1:36.7871955491
大容量プログラムソースコードxz10:24:28.4546462176
大容量プログラムソースコードbzip22:42.2756579370

んー,今まで研究で使ってきたbzip2は,やっぱりそこそこ良さそうです.
xzの圧縮率は,圧縮が効きそうなテキストファイルではbzip2に負けて2番,既に圧縮がかかっていて,それ以上効きそうもないMP3では最下位,大容量ではトップです.
が,大容量の場合,xzが圧縮率はトップですけど,10時間かかってます(gzipとbzip2は,1〜2分).もっとも,圧縮を展開するのは速いそうなので,ファイルを入手して展開するには良いのでしょうが,それでも圧縮率と時間をbzip2と比べると,bzip2を使ってしまいます.