Deflate
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Deflate(デフレート)はP. Deutsch氏とAladdin Enterprisesによって開発された、ZIPやgzipで標準で使われるデータ圧縮アルゴリズム。RFCでは、1996年5月にRFC 1951としてドキュメント化された。
目次 |
[編集] 特徴
- 可逆圧縮
- 圧縮・伸長(元に戻すこと/展開)が高速
- インターネットでの圧縮形式として世界標準
- 主要オペレーティングシステムのほぼ全てで使える
- パテントフリー(保証されているわけではないが、特許に関わるアルゴリズムは一切使用されていないと考えられている)
LZHアルゴリズム(LZSSのポインタのみをハフマンで圧縮するもので、Brentが考案した)とほぼ同じアルゴリズムを使うが、辞書サイズなどが固定である点などから、Deflateの方が圧縮・展開が速い傾向を持つ。
(注)日本で考案されたLHAソフトウェアのアルゴリズムは、LZHUFアルゴリズムである。LHAの生成するファイルの拡張子がLZHUFの三文字を取ってLZHになるので、Brent氏のLZHアルゴリズムと非常に紛らわしい。混同しないように注意されたい。
[編集] 技術詳細
アルゴリズムとしてはLZ77でデータを圧縮し、その結果のうちのポインタ(辞書データと圧縮対象とが一致したデータの位置、一致した長さ)を動的ハフマン符号によって更に圧縮する(LZHでは通常のハフマン符号、Gzipではシャノン符号である)。
[編集] 利用例
Deflateアルゴリズム(その派生あるいは改良も含む)は下記に採用され、実際に利用されている。
また、以下のプログラミング言語で正式に採用され、利用することが出来る。
- Java
- Hypertext Preprocessor(PHP)
- Ruby
- Python
- C#、VB.NET等の.NET Framework 2.0以降対応言語
Apache HTTP ServerなどのWebサーバでも圧縮通信をDeflateを使って実装している。
[編集] 欠点
問題点よりも利点の方が多くあるアルゴリズムだが、一つだけ問題になる点がある。 それは現在の技術から見ると決して高い圧縮率を持っているとは言えないことである。 圧縮技術はよりよい圧縮フォーマットを作るために日夜進化しているが、現在はこのDeflateの2倍以上効率が良いアルゴリズムが生まれ始めているのもまた事実である。
[編集] 関連項目
[編集] 外部リンク
- 統合アーカイバプロジェクト
- Consoler
- SilkyColor
- アーカイブ形式解説
- RFC 1950(zlib)
- RFC 1951(Deflate)
- Archiver Compression Test
- DataCompression.info