bzip2 (1996)(ビーズィップツー)
Julian Seward が 1996 年に開発した可逆圧縮アルゴリズム。Burrows-Wheeler Transform (BWT) + Move-To-Front (MTF) + Huffman 符号化の独自組合せで、gzip (Deflate) より 10-15% 高い圧縮率を実現、UNIX/Linux で広く利用された。
概要
bzip2 は、Julian Seward が 1996 年に開発した可逆圧縮アルゴリズムで、Burrows-Wheeler Transform (BWT) + Move-To-Front (MTF) + Huffman 符号化の独自組合せにより、gzip (Deflate) より 10-15% 高い圧縮率を実現した UNIX/Linux 系で広く利用された圧縮ツールです。BWT で類似文字を集約・MTF で出現頻度順に並び替え・Huffman で符号化という三段階アプローチで、特にテキストファイル・ソースコードの圧縮率に優れています。1996 年公開、2002 年バージョン 1.0.2 で安定化、2008 年バージョン 1.0.5 以降は開発が停滞気味で、現代では Zstandard (LZ77 系・10 倍以上高速) や xz (LZMA ベース・更に高圧縮) への置き換えが進んでいます。Wikipedia の全ダンプファイル (約 30GB) は bzip2 圧縮で配布されており、Linux パッケージ管理 (Debian .deb・RPM 系) でも長年標準利用されてきました。
主な特徴・仕組み
- 発表: 1996 年 Julian Seward
- アルゴリズム: BWT + MTF + Huffman 符号化の三段階
- BWT: 文字列を循環置換でソート、類似文字を集約
- MTF (Move-To-Front): 出現文字を「最前」に動的移動、頻度順表現
- Huffman: 最終段の可変長符号化
- ブロックサイズ: 100KB-900KB 単位で処理
- メモリ使用量: 圧縮 7.6MB (900KB ブロック)、解凍 3.7MB
- 圧縮率: gzip 比 +10-15%、xz 比 -5-10%
- 速度: gzip より 5-10 倍低速、解凍も低速
- 特許: なし、完全 OSS
スペック比較表
| ツール | 圧縮率 (テキスト) | 圧縮速度 | 解凍速度 | メモリ |
|---|---|---|---|---|
| gzip (Deflate) | 60-75% | 10-30MB/s | 50-200MB/s | 64KB |
| bzip2 | 70-80% | 1-5MB/s | 5-20MB/s | 8MB |
| xz (LZMA2) | 80-90% | 0.5-3MB/s | 30-80MB/s | 64-700MB |
| Zstandard | 65-85% | 50-300MB/s | 300-1000MB/s | 1-256MB |
| Brotli | 70-80% | 5-20MB/s | 50-300MB/s | 16MB |
具体例・対応技術
- tar.bz2 / .tbz2: tarball + bzip2 圧縮、Linux 配布物の伝統的形式
- Wikipedia ダンプ (~30GB bz2): 全 Wikipedia 記事の bzip2 圧縮配布
- Linux パッケージ (.deb/.rpm): 初期 Linux ディストリビューションで利用
- 古い Linux カーネル (linux-x.y.z.tar.bz2): kernel.org で配布
- PHP ソースアーカイブ (php-x.y.z.tar.bz2): 公式配布形式
自作PCでの選び方・注意点
bzip2 は 2026 年現在も Wikipedia ダンプ・古い Linux ソースアーカイブ・古い Debian/Ubuntu パッケージで利用されますが、新規アーカイブでは Zstandard (zstd) または xz (tar.xz) への移行が主流。Ubuntu 22.04 LTS 以降のデフォルトカーネルパッケージは xz、Arch Linux は zstd で配布されています。自作 PC で大量データバックアップ・AI モデル配布する用途では bzip2 は速度面で不利、Zstandard (zstd -19) を推奨。Wikipedia 全データの自作 PC 解析用途で bzip2 -d 解凍が必要となるケースがあり、tarball 展開で時間がかかるためマルチコア対応版 pbzip2 (パラレル版) や lbzip2 の利用が推奨されます。HDD/SSD への保存・転送速度を考慮すると、Zstandard レベル 19 が現代のベストプラクティス。
関連用語との違い
- gzip (Deflate): 速度優先・互換性、bzip2 より低圧縮率
- xz (LZMA2): 高圧縮率優先、bzip2 より更に高圧縮・大メモリ
- Zstandard: 現代後継、bzip2 圧縮率を 10 倍高速で実現
よくある質問(FAQ)
Q1: bzip2 と xz どちらが良い? A: 圧縮率なら xz、速度・メモリなら bzip2。現代の新規アーカイブは Zstandard が両者を上回るためそちらを推奨。
Q2: なぜ開発停滞気味? A: Julian Seward (Valgrind の開発者でもある) のメンテナンス時間が限定的、後継 bzip3 (BWT 強化) もあるが普及せず。Zstandard 等の現代ツールに役目を譲った形。
Q3: Wikipedia ダンプを解凍するには?
A: bunzip2 enwiki-latest-pages-articles.xml.bz2 または tar -xjf で展開。30GB ファイルの解凍には数時間かかる、pbzip2 でマルチコア活用推奨。
まとめ
- bzip2 = 1996 年 Julian Seward 開発、BWT + MTF + Huffman の三段圧縮
- gzip 比 +10-15% 圧縮率、ただし速度低い
- Wikipedia ダンプ・Linux 配布物で 1990-2010 年代に活躍
- 2020 年代以降 Zstandard/xz に置換が進行、レガシー化