Zstandard / Zstd (2016)(ゼットスタンダード)
Facebook (現 Meta) の Yann Collet が 2016 年に公開した可逆圧縮アルゴリズム。LZ77 + Finite State Entropy (FSE/ANS) の革新的組合せで、gzip と同等の圧縮率を 10 倍以上の速度で実現、Linux/Web/AI モデル配布で急速に普及する現代最強級の汎用圧縮技術。
概要
Zstandard (略称 Zstd) は、Facebook (現 Meta) の Yann Collet が 2016 年 8 月に公開した可逆圧縮アルゴリズムで、LZ77 + Finite State Entropy (FSE/ANS) の革新的組合せにより、gzip と同等の圧縮率を 10 倍以上の速度で実現する現代最強級の汎用圧縮技術です。lz4 (2011) と同じ Yann Collet が次世代汎用圧縮として設計し、ANS (Asymmetric Numeral Systems、2009 Jarek Duda 発明) を採用することで、算術符号化の高圧縮率と Huffman の高速性を両立。Linux kernel (5.6 から zstd 圧縮対応)・FreeBSD・Btrfs・ZFS・HTTP/3 (RFC 9292) で標準採用が進み、2024-2026 年には Hugging Face のモデル配布、Kaggle データセット、AWS S3 のオブジェクト圧縮など、AI 時代の de facto standard として急速に普及しています。圧縮レベル 1-22 で柔軟な調整が可能で、レベル 3 (デフォルト) が一般用途・レベル 19+ が高圧縮配布用途で広く利用されています。
主な特徴・仕組み
- 発表: 2016 年 8 月 Yann Collet (Facebook/Meta)
- アルゴリズム: LZ77 + FSE (Finite State Entropy = ANS の実装)
- ANS (Asymmetric Numeral Systems): 2009 年 Jarek Duda 発明、算術符号化の現代版
- 辞書サイズ: 最大 2GB
- 圧縮レベル: 1-22 (デフォルト 3)、レベル 19+ で高圧縮モード
- 辞書事前学習: 小さなファイル群の最適圧縮、機械学習データセット向け
- マルチスレッド: ネイティブ並列化対応、-T0 で全 CPU 利用
- 圧縮率: gzip 同等 (レベル 3)・LZMA 同等 (レベル 19+)
- 圧縮速度: gzip の 10-100 倍、レベル 3 で 300-500MB/s
- 解凍速度: gzip の 3-5 倍、500-1500MB/s (1 スレッド)
- 特許: なし、BSD ライセンスで OSS
スペック比較表
| ツール | レベル | 圧縮率 (Silesia コーパス) | 圧縮速度 | 解凍速度 |
|---|---|---|---|---|
| gzip -6 | 6 | 31% | 50MB/s | 250MB/s |
| bzip2 -9 | 9 | 27% | 8MB/s | 30MB/s |
| xz -9 | 9 | 23% | 2MB/s | 80MB/s |
| Zstd -3 | 3 | 31% | 480MB/s | 1300MB/s |
| Zstd -19 | 19 | 25% | 5MB/s | 1100MB/s |
| Brotli -11 | 11 | 24% | 0.5MB/s | 400MB/s |
具体例・対応技術
- Linux kernel zstd (5.6, 2020-): カーネルアーカイブ・ファームウェア圧縮
- Btrfs zstd (2017-): ファイルシステムレベル圧縮
- ZFS zstd (OpenZFS 2.0, 2020-): ZFS データセット圧縮
- HTTP/3 Content-Encoding: zstd (2023): Web 配信圧縮、Cloudflare/Fastly が対応
- Hugging Face Model Hub (2024-): AI モデル配布 (Llama 3/Qwen3 等)
- tar.zst: Arch Linux パッケージ標準 (2020 年以降)
自作PCでの選び方・注意点
Zstandard は 2026 年現在、自作 PC ユーザーが学ぶべき最重要圧縮ツールです。Linux/macOS では brew install zstd または apt install zstd、Windows では 7-Zip が zstd 対応 (.tar.zst)。AI モデル運用 (Llama 3 70B Q4 = 40GB → 25-30GB) ・データセット保存・大型ファイル転送で gzip/bzip2/xz より圧倒的に実用的。コマンド例: zstd -19 -T0 -o model.zst large_file でレベル 19・全 CPU 利用で最大圧縮、zstd -d model.zst で解凍。Web サーバの応答圧縮で Brotli/Zstd を選択する場合、Brotli は HTTP/1.1 と HTTP/2 で広くサポート、Zstd は HTTP/3 で 2024 年以降普及中。Nginx の zstd モジュールで配信高速化、Cloudflare CDN は 2024 年から Zstd オプション提供開始。Btrfs/ZFS で zstd 圧縮 (mount -o compress=zstd:3 /dev/...) を有効化すると、ディスク使用量を 30-50% 削減しつつ読み書き性能も維持できます。
関連用語との違い
- gzip (Deflate): 古いが互換性高、Zstd は完全上位互換
- LZMA/xz: 高圧縮率だが低速、Zstd レベル 19+ で同等性能
- Brotli: Web 配信に特化、Zstd は汎用性で優位
よくある質問(FAQ)
Q1: Zstd と gzip どちらを選ぶ? A: 新規開発・速度重視なら Zstd 一択、互換性必須 (古いシステム連携) なら gzip。Zstd は圧縮率・速度両面で gzip を凌駕。
Q2: Zstd の最適レベルは? A: 一般用途レベル 3 (デフォルト)、配布物・長期保存レベル 19、最大圧縮レベル 22。レベル 19+ は時間がかかるが圧縮率向上幅大。
Q3: AI モデル配布でなぜ Zstd? A: Llama 3 70B Q4 (40GB) を Zstd -19 で 25-30GB に圧縮可能、xz と同等圧縮率を 5 倍速度で実現。Hugging Face・Modelscope が 2024 年から標準採用。
まとめ
- Zstandard = 2016 年 Yann Collet/Facebook 開発、現代最強級汎用圧縮
- LZ77 + ANS (FSE) で gzip 同等圧縮率を 10 倍速度
- Linux kernel/Btrfs/ZFS/HTTP/3/AI モデル配布で標準
- レベル 1-22 で柔軟、レベル 3 (デフォルト) と 19 (高圧縮) が実用