ホーム » 一般 » THcompとその時代

THcompとその時代

1989年の「ネットワーク」というのは、パソコン通信のことだった。パソコン通信が提供するサービスは掲示板とチャットサービスなのだが、その提供方法は中央にあるホストサーバに対して、公衆回線(電話)を使って接続するというやり方だった。クライアントはパソコンなのだが、当時はPC-9800シリーズ全盛期で、他にもメーカーごとに特色のある色々なパソコンが発売されていた(そして相互に互換性がなかった)。パソコンにはモデムを接続し、ファクシミリのようにピーヒャララと音を立てながらデータをアナログ信号に変換してホストと通信していたのだ。

917

このころのモデムは非常に遅くて、普及していた帯域が2,400bpsだった。最終的にモデムの帯域は38,400bpsぐらいにはなったと思うが、それはもっと後の話である。まあとにかく、1988年~1989年ぐらいのパソコン通信のスピードは途方もなく遅かった。2,400bpsで掲示板を読むとどれほどのスピードかというと、1画面文の文字(80×25文字分)を表示するのにギリギリ目で読めるか読めないか、ぐらいなのだ。こんな環境だと、動画なんぞのやり取りなんてもちろん夢の話で、そもそも画像データですらめちゃくちゃ時間がかかってしまう。パソコンのメモリ、ディスク、描画性能すべてが小さかったこともあって、画像データそのものが小さかったにも関わらず、画像1枚をやり取りするのに5分も10分もかかってしまうのだ。むろんプログラムのソースやバイナリのやり取りも同様である。まあとにかく、通信速度がネックであらゆる事に時間がかかっていた。

こういう環境でもっとも重要な事は、データ圧縮技術だった。パソコン通信を始めるに当たっては、パソコンとモデムとターミナルエミュレータの準備はもちろんだが、圧縮ソフトをそろえることもまた重要だった。当時の圧縮ソフト界隈は非常に賑わっていて、さまざまなソフトが圧縮率と動作速度を競い合っていた。オープンソフトウェアの定義もまだ完成しておらず、ライセンスや特許の問題も未解決で、色々な問題が生じたり訴訟になったりしていた。企業開発のソフトと個人プログラマのアプリが鎬を削りあっていた。よい圧縮ソフトを使ってデータを少しでも小さくしないと、電話代が莫大になって大変だからである。かくいう自分も月の電話代が6万円を超えてしまい、お米だけで何日も過ごしたりしたものだった。

さてそういう時代にあって憧れのプログラミングの題材といえば圧縮ソフトということになる。LHarcのようなプログラムが作れたら最高だ。しかし圧縮技術というのは結構難しく、ちょっとかじったぐらいですぐに作れるほど甘くはない。そこでシロウトっぽく考えたのが「世の中にある色々な圧縮ソフトを組み合わせ、何度も圧縮したらもっと小さくなるんじゃないか? そういうフロントエンドを作ってしまおう」というネタだった。この話をプログラミングの師匠にしてみたところ、さっそく「だめだな」というお言葉をいただいた。

情報理論をまじめに勉強していればすぐに分かるが、現代の圧縮技術というのは、冗長な部分をなくすことによって達成されている。したがってAというソフトが圧縮した後のファイルをBというソフトに渡したとしても、それはすでに冗長部分がなくなってしまっていて、圧縮の余地ははほとんどない。世の中にはたくさんの種類の圧縮ソフトがあるが、基本原理はみな同じなので、この方法ではより小さなファイルを得ることはできないのだ……。

ということだった。

それにだね、と師匠は続けた。

仮に圧縮を繰り返すことでどんどんファイルが小さくなるとしよう。最後には1バイトにまで小さくできるとする。しかし1バイトの情報と言えば256通りの組み合わせしか表現できない。すべてのファイルが1バイトになるなど、有り得ないだろう? 圧縮というのはそういう風には働かないんだよ。

なるほど。

しかしね、と師匠は続けた。

こう考えることはできる。圧縮というのは符号化なわけだから、究極的には与えられたファイルに対して何でもいいから番号を割り当ててしまえばいいんだ。一種のハッシュだな。展開するときは、番号から逆変換して元に戻せばいい。これには逆関数があればよいわけだ。人類滅亡までに圧縮されるファイルの数なんて264個よりも少ないに決まってるんだから、1から順番に番号を振ってもせいぜい8バイトで済むだろう?

もちろん、これは単なるジョークだ。だがちょっと面白いジョークだったので、どうにか発表できる形にできないかなと考えた。当時はブログは存在しなかったので、パソコン通信の掲示板に、この原理を実現した圧縮ソフトが掲載されたという自演スレを立てることにした。それがTHcompである。

THcompは一種のネットミームになった。なんだかちょっとアヤシゲな圧縮技術が話題になると「それってTHcompじゃないの」というコメントが1つは付くということが続いている。あるいは、現代においてTHcompは実装されたという意見もある。たとえばBitTorrentはハッシュ値を使ってファイルを探せばInternetの海からファイルが得られるのだ。即時にファイルが手に入るわけではないが、大体似たようなことができるのだ。

さて、このサイトのドメイン名なのだが、ccTLDがMPなら「thco」を取ればぴったりだな! と気づいて取得したものである。THcompのログを公開している師匠のためにwww.thco.mpはCNAMEしてあるのだが、今のところリンクしか作っていなくて相変わらずのようである。

参考リンク