Zstandard

Zstandard (zstd) は、圧縮・展開が速いことを特徴とする可逆圧縮アルゴリズムである。またC言語で書かれた前述のアルゴリズムのリファレンス実装の名前でもある。Metaに所属しているYann Colletによって2015年から開発されている。

この実装のバージョン1.0.0は2016年8月31日にフリーソフトウェアとして公開された。2018年10月に RFC 8478 で規格化され、2021年2月に RFC 8878 に更新された。メディアタイプは  。英語発音はズィースタンダード（zee standard）。

特徴 
Zstandardは、デフォルトの圧縮レベル3の場合、現在主流であるDeflate (ZIP, gzip) アルゴリズムとほぼ同じ圧縮率だが、より高速に圧縮と解凍が行えるように設計されている。

圧縮レベルは正の側は1～22が指定可能で、圧縮レベルを上げると圧縮率は上がり、幅広いレンジの圧縮率に対応している。Arch Linuxのパッケージ圧縮はZstandardを採用しているが、圧縮レベル20を採用していて、xzと比較してサイズの増加は0.8%に留まり、解凍は14倍高速である。圧縮レベルは-1以下も存在し、コマンドライン版では --fast=# で指定することが可能で、Zstandardの開発者による調査だと --fast=2 は QuickLZ や Snappy 相当、--fast=3 は LZO 相当、--fast=4 は LZ4 相当である。

Zstandardは大きな検索窓の辞書式圧縮アルゴリズム (LZ77) とエントロピー符号化を併用しており、エントロピー符号化ステージで有限状態エントロピー(FSE)の あるいはハフマン符号化を使用している。Zstandardの実装で特徴的なのはエントロピー復号時に逆方向から読み取ることである。

デフォルトでは利用しないが、並列圧縮・解凍にも対応していて、コマンドライン版は-T#で指定する。#に並列度を入れ、0の場合はCPUのコア数となる。

ライセンス 
リファレンス実装はBSDライセンスでGitHubにおいて公開されている。1.0以降のバージョンにおいては関連する特許の使用を認める追加ライセンス も付属している。

バージョン1.3.1  から、この特許条項は削除され、ライセンスはBSD + GPLv2デュアルライセンスに変更された。

利用例 
Linuxカーネルには2017年11月(バージョン4.14)からZstandardが含まれており、btrfsやsquashfsファイルシステムでの圧縮方法として利用可能となっている。また、2020年10月(バージョン5.9)からカーネルイメージの圧縮方法として利用可能となった。

FreeBSDカーネルには2017年からZstandardが含まれており、コアダンプ(ユーザープログラムとカーネルパニックの両方)の圧縮オプションとして利用可能となっている。

Ubuntu 18.04 や2019年12月27日以降のArch Linux等、一部のLinuxディストリビューションでパッケージ圧縮方式としてZstandardが利用できるようになった。Ubuntu 21.10 より Zstandard がパッケージ圧縮方式のデフォルトとなった。Ubuntuでは圧縮レベル19、Arch Linuxでは圧縮レベル20を採用したが、xzの圧縮レベル6に比べて、Zstandardの圧縮レベル19では6%、圧縮レベル20では0.8%パッケージのサイズが増加するが、展開速度は格段に高速になる。Debian からフォークしている Ubuntu が先行した形で、Debian 側の dpkg は2023年1月10日に Zstandard に対応したが、Debian 12 現在は引き続き xz をデフォルトとしている。

GNU tar は2019年1月2日にリリースされた 1.31 から対応している。拡張子は .tar.zst もしくは .tzst 。bsdtar (libarchive) は2019年4月11日にリリースされた 3.3.3 から対応している。

rsync では2020年6月19日にリリースされた 3.2.0 から zlib 以外に、Zstandard と LZ4 に対応し、双方のマシンに Zstandard がインストールされていれば Zstandard が使用される。

参照 
 LZ77
 
 Brotli
 LZFSE - AppleがiOS 9とOS X 10.11以降に使用し2016年1月にオープンソース化した類似のアルゴリズム

参考文献

外部リンク 
 
 
 
 Zstandard Overview - Zstandard アルゴリズムの概要
 Smaller and faster data compression with Zstandard Facebook Announcement - "Zstandardによるより小さく、速い圧縮"
 英ガーディアン紙はzlibの代わりにZStandardを使用している旨の記事

データ圧縮
オープンソースソフトウェア
2015年のソフトウェア
8878