Smaller World
大学時代、後輩が困り果てていた。情報科の彼女からもらったファイルが開けないという。拡張子は.rar。わたしも当時は見たことがなかった。LZHならわかる。ZIPもわかる。だがRARは知らない。結局、誰かがWinRARの試用版を見つけてきて事なきを得た。30日の試用期間を何度繰り返したかは知らない。
圧縮ファイルの歴史は、そのまま「もっと小さくできるはずだ」という執念の歴史だ。
ZIPはフォーマットをオープンにしたことで世界標準になった。LZHは日本のBBS文化ではほぼ標準だったが、海外ではほとんど使われなかった。ガラパゴスという言葉が似合う。RARは圧縮率が高かったが、アルゴリズムはプロプライエタリのままだ。展開はできるが圧縮はできない、という微妙な自由度で30年以上生き延びている。オープンにした者、国内で閉じた者、展開だけ許した者。圧縮形式の裏に、それぞれの思想がある。
そしていま、FacebookがZstandard(zstd)で静かに地殻変動を起こしている。gzipと同等の圧縮率で、数倍速い。Linuxディストリビューションはパッケージ圧縮をzstdに切り替えた。HTTPの世界でも、主要ブラウザがAccept-Encoding: zstdに対応し始めている。gzipが30年以上支配してきた領域に、風穴が開きつつある。
圧縮とは何か、を突き詰めると、面白い壁に当たる。
1989年、アスキーネットの掲示板にTHcompという圧縮ソフトが投稿された。Tower of Hanoi compressの略。仕組みはこうだ。世の中のすべてのファイルに一意の番号を振る。圧縮時はその番号だけを保存する。展開時は番号から元のファイルを復元する。究極の圧縮。どんな巨大なファイルも、たった一つの番号になる。
もちろんジョークだ。わたしはパソコン通信の末期にかろうじて間に合った世代で、THcompも黎明期の伝説としてしか知らない。だが回線速度に誰もが縛られていた時代に「全部に番号振ればよくない?」と言い放つ発想が好きだ。そして実際、これは情報理論の急所を突いている。あるファイルを縮めれば、別のファイルは必ず膨らむ。すべてを縮められる魔法は、原理的に存在しない。
圧縮が機能するのは、現実のデータに偏りがあるからだ。自然言語には冗長性がある。画像には空間的相関がある。コードには繰り返しがある。偏りを見つけて、短い表現に置き換える。それだけのことだ。だが「それだけのこと」を極めた先に、zstdのような怪物が生まれる。
あの後輩と彼女は結婚した。ふたりともまだITの世界にいる。圧縮形式は移り変わっても、展開できた縁は残るらしい。