一般用語
上級

Deflate (RFC 1951)(デフレート)

Phil Katz が 1989 年に PKZIP のために設計し、1996 年に RFC 1951 として標準化された可逆圧縮アルゴリズム。LZ77 (辞書圧縮) + Huffman 符号化の組合せで、ZIP・gzip・PNG・zlib など現代の主要圧縮フォーマットの基盤となった。

0 回閲覧
0 いいね
2026/5/11 更新
関連タグ
Deflate
RFC 1951
Phil Katz
PKZIP
LZ77 + Huffman
gzip
PNG

概要

Deflate は、PKWARE 社の Phil Katz が 1989 年に PKZIP 2.0 のために設計し、Peter Deutsch が 1996 年に RFC 1951 として IETF 標準化した可逆圧縮アルゴリズムで、LZ77 (辞書圧縮) + Huffman 符号化の組合せにより、ZIP・gzip・PNG・zlib・HTTP/1.1 Content-Encoding など現代の主要圧縮フォーマットの基盤となった圧倒的に普及した汎用圧縮技術です。Phil Katz が PKWARE の特許フリー方針 (LZW のような特許問題を起こさない方針) を貫いたことで、世界中のソフトウェアに自由に組み込まれ、1995 年に Jean-loup Gailly と Mark Adler が zlib ライブラリとして OSS 実装、1996 年 PNG 仕様策定、1997 年 HTTP/1.1 (RFC 2068) で Content-Encoding: gzip 標準化と次々に普及し、2026 年現在も最も広く使われる圧縮技術です。

主な特徴・仕組み

  • 発表: 1989 年 Phil Katz、PKZIP 2.0 で実装
  • 標準化: 1996 年 Peter Deutsch、RFC 1951
  • 構成: LZ77 (前段) + Huffman 符号化 (後段) の二段階
  • LZ77 ウィンドウ: 最大 32KB (15bit オフセット)
  • マッチ最低長: 3 バイト
  • Huffman 木: 静的 (固定) または動的 (ブロック単位適応)
  • 圧縮レベル: 0 (無圧縮) - 9 (最大圧縮)、典型 6
  • 圧縮率: 一般的なテキストで 60-75%、画像は限定的
  • 速度: 圧縮 1-50MB/s、解凍 50-200MB/s (CPU 依存)
  • 特許: なし、Phil Katz の特許フリー方針

スペック比較表

ツールアルゴリズム圧縮率速度 (圧縮)
gzip (Deflate)LZ77+Huffman60-75%10-30MB/s
bzip2BWT+Huffman65-80%5-15MB/s
LZMA (7-Zip)LZ77+RC70-85%1-10MB/s
ZstandardLZ77+ANS65-85%50-300MB/s
BrotliLZ77+Huffman+Dict70-80%5-20MB/s

具体例・対応技術

  • ZIP (PKZIP 2.0, 1989): 元祖、Deflate 標準圧縮方式
  • gzip (1992): Jean-loup Gailly 開発、UNIX/Linux 標準
  • PNG (1996): PNG Working Group、画像圧縮で GIF 置換
  • zlib (1995): Gailly・Adler、C ライブラリ実装
  • HTTP/1.1 Content-Encoding: gzip (1997): Web 圧縮標準

自作PCでの選び方・注意点

Deflate は 2026 年現在も最も広く使われる圧縮技術で、Windows のエクスプローラの「圧縮 ZIP フォルダー」・macOS Finder の「圧縮」・Linux の gzip/tar -z・Web ブラウザの HTTP Content-Encoding: gzip 等で日常的に動作しています。自作 PC で AI モデルファイル (Llama 3 70B Q4 = 約 40GB) を移動する際、Deflate (gzip) は圧縮率 5-10% 程度しか見込めないため Zstandard (zstd -19) で 25-30GB まで圧縮するのが現代的アプローチ。Web 開発でレスポンス圧縮は Nginx の gzip on; (Deflate) または brotli on; (Brotli) の選択、CPU 負荷と圧縮率のバランスで Brotli が新規プロジェクトで推奨。zlib ライブラリ (libz.so) はあらゆる Linux/macOS アプリで動作する基盤、Python の zlib モジュール・Node.js の zlib モジュールも同じ実装を使います。

関連用語との違い

  • LZ77: Deflate の前段、辞書圧縮部分
  • Huffman: Deflate の後段、エントロピー符号化部分
  • Zstandard (現代後継): LZ77+ANS、Deflate より高圧縮・高速

よくある質問(FAQ)

Q1: gzip と Deflate の違いは? A: Deflate は圧縮アルゴリズム、gzip は Deflate を使うファイル形式 (ヘッダ・CRC32 を追加)。実質的には同じ圧縮技術。

Q2: PNG の圧縮は本当に Deflate? A: はい、PNG 仕様 (RFC 2083) で Deflate 必須。GIF (LZW) との置換で特許フリー・高圧縮率を実現。

Q3: Zstandard と Deflate どちらを選ぶ? A: 新規開発・速度重視なら Zstandard、互換性重視・既存システム連携なら Deflate。HTTP では両者並存中。

まとめ

  • Deflate = 1989 年 Phil Katz 発明、PKZIP 由来の汎用圧縮
  • LZ77 + Huffman の二段階構成、特許フリー
  • ZIP/gzip/PNG/zlib/HTTP 標準として 30 年以上君臨
  • Zstandard・Brotli が後継として並存、Deflate 互換性で残る
この記事について
カテゴリー一般用語
難易度上級
作成日2026/5/11