news003.jpg

Focus on Technology:静かな注目を集める圧縮アルゴリズム「LZMA」

GNUプロジェクトの配布アーカイブなどを中心に、LZMAを用いた圧縮形式を目にする機会が増えてきた。組み込み用途などへの活用も期待されるこの圧縮形式を紹介しよう。


 2001年に開発された可逆圧縮アルゴリズム「LZMA」(Lempel-Ziv-Markov chain-Algorithm)が静かな注目を集めている。LZMAといえば、高い圧縮率を備え、Windowsアーカイバ「7-Zip」に採用されていることでも知られる。

 ZIPやLHAなど、ファイルのアーカイブと圧縮が統合されているWindows由来のプログラムとは異なり、UNIXやLinuxでは伝統的にアーカイブと圧縮が個々のコマンドとして用意されており、それらを組み合わせて利用することになる。現在では、アーカイブがtar、圧縮にはGNU zip(.gz)やbzip2(.bz2)が併用されることが多い。

.gzや.bz2をしのぐ圧縮率が特徴

 ところが最近、LZMAを用いた「tar.xz」という圧縮形式を目にする機会が増えてきた。この圧縮形式は、LZMA UtilsをリリースしてきたTukaani Projectが2009年1月に正式公開したフォーマットで、GNU Coreutilsなどをはじめ、GNUプロジェクトの配布アーカイブでは徐々に使われ始めている。

 この動きは最新のLinuxカーネルにも取り込まれている。先日リリースされたLinuxカーネル2.6.30からは、コンパイル時に、makefileで「CONFIG_KERNEL_LZMA=y」を設定することでカーネルイメージの圧縮にLZMAを利用可能となっている。圧縮回数よりも伸長回数の方が多いと思われるソースコードにLZMAが用いられるのは利用者からするとかなり有用である。

 LZMAが注目されるのは、圧縮率の高さが群を抜いているためだ。圧縮にはそれなりの時間が掛かるものの、伸長は多くのケースでbzip2よりも高速に行えることも大きい。実際、GNU Coreutilsで比較してみると、GNU zipで圧縮されたcoreutils-7.4.tar.gzが9.25Mバイトであるのに対し、LZMAで圧縮されたcoreutils-7.4.tar.xzのサイズは3.86Mバイトと42%程度のサイズに収まっている。

 こうした圧縮率の高さの秘密は圧縮アルゴリズムにある。圧縮処理の最終工程で発生する「符号化」において、これまでの圧縮アルゴリズムで一般に使われていたのは、固定長のパターンに対して可変長符号を割り当てる「ハフマン符号化法」。ハフマン符号化法でパターンに割り当て可能な最短符号は1ビットであるため、データは最大でパターン長分の1までしか圧縮できない。

 これに対し、LZMAでは圧縮対象となるすべてのデータから可変長符号を算出する「算術符号化法」を採用している。正確にいえば、LZMAでは、算術符号の一種であり、整数で算術符号を実現したアルゴリズムをベースとする「Range Coder」が用いられている。Range Coderは出力単位が1ビットである算術符号に対して8ビット単位で処理するため高速に動作するのが特徴。また、算術符号は、基本的なアルゴリズムが特許申請されており、実装が敬遠されることも多いが、Range Coderは特許に抵触しない算術符号としてとらえられており、このことがLZMAの普及につながっている。

Jオプションは活用されるか

 tar.xz形式のアーカイブを展開するにはGNU tarのバージョン1.22以降と、LZMA用ユーティリティ「XZ Utils」が必要となる。環境さえ整っていれば、tarコマンドのオプションに「J」を付加することで展開(または圧縮)が行える。

 開発者であれば、コマンドオプションの入力順にも明確なロジックを持つのが必然であると筆者は考える。tarコマンドのオプションにおける至高の配列としては「xzvf」が最もロジカルなものだと考えるが、今後、「J」オプションもその仲間入りをするのかもしれない。また、LZMAはその圧縮率の高さから、組み込み用途などには重宝されることになるだろう。今後の行方に注目したい。

注目の最新テクノロジーを紹介する「Focus on Technology」で技術動向に明るいビジネスマンに。


Copyright© 2010 ITmedia, Inc. All Rights Reserved.




キャリアアップ



エンタープライズ・ピックアップ

news004.jpg 世界で勝つ 強い日本企業のつくり方:利用契約の検討――グローバルクラウドで失敗しないために(前編)
2010年以降、クラウドサービスの利用がさらに加速する。サービスを利用する企業はプロバイダーのデータセンターに預けた自社情報を保護するために、法的な要素を理解しておかなければならない。企業が注意を払うべき法的な検討事項を整理する。

news001.jpg IT投資の新方程式:「Twitter使ってます」――現役MS社員が“社員力”を語る(前編)
マイクロソフトが掲げるプロモーションメッセージ「社員にチカラを。ITで企業力を。(以下、BIEB)」からは、ITで社員の生産性を向上することが業績の拡大につながる、といったニュアンスを感じる。そこで気になるのが「じゃあ、マイクロソフトの社員自身はどうなのよ?」ということ。3人の現役MS社員により実態が明らかになる……?

news010.jpg 産業構造を変えるか:「住宅クラウド」の衝撃
住宅都市工学研究所が進める「住宅クラウド」は、クラウドが企業のIT領域にとどまらず、ビジネスのやり方自体を変える可能性を示している。

news010.jpg オルタナティブな生き方 栗原進さん:ネットでリアルを楽しくしたい
SE出身の企業広報マンでありながら、趣味は落語で憧れの人はインディ・ジョーンズとアナログ全開の栗原さんに、ブログを書く理由やネットからはじまるコミュニケーションについて伺った。

news001.jpg 最強最速アルゴリズマー養成講座:トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター
プログラミングにおける重要な概念である「探索」を最速でマスターするために、今回は少し応用となる探索手法などを紹介しながら、その実践力を育成します。問題をグラフとして表現し、効率よく探索する方法をぜひ日常に生かしてみましょう。