toge's diary

コンピュータ関連の趣味をつらつらと。

軽量圧縮ライブラリ

少しは役に立つものを書いてみよう。
近頃調べているのは圧縮率はそこそこでいいから、高速に圧縮・解凍ができるライブラリ。

色々あるんだけど決定版と呼べるものがないのが厳しいところ。今のところ総合的に優秀なのはQuickLZで、うまくやれば速そうなのがlzturbo、ちょっと落ちる所にFastLZとLZFがいるって感じかな?

個人的には今のところLZFを捨てる理由がないので使い続けようかなと。

LZO

かなり昔からある軽量圧縮ライブラリ。GPLなので私が使ったことは一度もなかったりする。

まだ開発が継続されていてびっくりしてしまった。近頃はLZO proなんていう商用製品も出しているみたい。

昔はオンリーワンのライブラリだったけど、他のライブラリとのベンチマークを見る限り、今となっては他のライブラリとどっこいどっこいの性能しかなくなってしまったように思う。

しかし安定した圧縮率と圧縮・解凍速度を出すという点では、さすがに成熟したライブラリだと思う。

lzf

Linuxハイバネーション用のコードに使われているらしい。BSDライセンスなので私好み。

2007年末ごろには"with ULTRA_FAST, it's typically 3-15% faster than fastlz while still maintaining a similar ratio."って言っているとおりfastlzとはかなり競っていると思う。でもQuickLZがさらに上を言っているのでどんぐりの背比べだなぁ。

LZFの解凍コードをvectorizedした方がいらっしゃるので、これを当てるともっと速くできるかもしれない。全然評価したことないけど。
403 Forbidden

QuickLZ

おそらく今一番性能がいい軽量圧縮ライブラリ。GPLか商用ライセンスのどちらかを選べるけど、私はどっちも嫌いだ。

Version 1.4.0になってなんか結果が不安定になったような。とりあえず1.3.1をつかっておけば最強だと思います。

FastLZ

MITライセンスなにくいやつ。"F" for freedom とか書いてくれるあたりわかってらっしゃる!

でもなんか開発とまっている気がするんだよね。ちょっと残念。

lzturbo

なんかやたら早いし、並列圧縮・解凍機能を持っているらしい。
しかしオープンソースでもないし、公開されているのは実行ファイルのみ。

ベンチマークを見る限りQuickLZさえ抜いているように見えるのになんとも残念な感じ。