「このファイル、重すぎませんか?」
由紀はラップトップの画面を見ていた。
「圧縮すればいい」陸が軽く言う。
「圧縮?どうやって?」
葵が近づいた。「データ圧縮の話をしよう。情報理論の実用的な応用だ」
「圧縮って、データを小さくすることですよね」
「そう。でも、情報は失わない。これが可逆圧縮だ」
陸が疑問を持った。「情報を失わずに小さくできるの?」
「できる。冗長性を取り除くんだ」葵がホワイトボードに書いた。
「例えば、『AAABBBCCC』という文字列。これを『3A3B3C』と書けば、短くなる」
「ランレングス符号化だ」
由紀が理解した。「繰り返しを数字で表す!」
「正解。これが圧縮の基本原理。パターンを見つけて、効率的に表現する」
葵は別の例を出した。
「『AAAA』と『ABCD』。どちらが圧縮しやすい?」
「『AAAA』です」由紀が即答する。
「なぜ?」
「パターンがある。『ABCD』はランダムで、パターンがない」
「正確。エントロピーが低いデータは圧縮しやすい。エントロピーが高いデータは圧縮しにくい」
陸が考えた。「じゃあ、既に圧縮されたデータは?」
「これ以上圧縮できない。エントロピーの限界に達している」
葵はノートに図を描いた。
「ハフマン符号化。頻出する文字に短いコードを、稀な文字に長いコードを割り当てる」
「例えば、英語の文章。『e』は頻繁に現れるから、短いコードを使う」
由紀が興奮した。「これが最適なんですか?」
「ほぼ最適。エントロピーに近い平均符号長を達成できる」
陸が別の質問をした。「写真とか音楽はどう圧縮するの?」
「それは非可逆圧縮だ」葵が説明する。「人間が気づかない情報を捨てる」
「捨てる?」
「例えば、JPEGは高周波成分を削る。人間の目は気づきにくい」
「MP3は、聞こえにくい音を削る」
由紀が心配そうに聞く。「元に戻せないんですか?」
「戻せない。だから非可逆。でも、圧縮率は高い」
葵は比較を示した。
「可逆圧縮:データ完全保存、圧縮率低い 非可逆圧縮:データ一部損失、圧縮率高い」
陸が納得した。「だから写真をJPEGで何度も保存すると劣化するんだ」
「正解。情報が徐々に失われる」
由紀がノートに書く。「圧縮は情報理論の実践なんですね」
「まさに。シャノンのエントロピーが、圧縮の限界を教えてくれる」
葵は式を書いた。
「H(X) ≤ 平均符号長 < H(X) + 1」
「エントロピー以下には圧縮できない。これがシャノンの源符号化定理だ」
陸が感心した。「理論が実際の技術を支えてるんだ」
「そう。ZIPファイル、PNG画像、動画ストリーミング。全てが情報理論に基づいている」
由紀がふと思いついた。「会話も圧縮できますか?」
葵が微笑んだ。「できる。要約がそれだ。重要な情報だけを残す」
「でも、ニュアンスが失われる」陸が指摘した。
「そう。非可逆圧縮だ。トレードオフは常にある」
由紀がラップトップを見た。「じゃあ、このファイルを圧縮してみます」
数秒後、ファイルサイズが半分になった。
「すごい!」
「冗長性があったんだ」葵が説明する。「データの中に隠れていたパターンを、圧縮アルゴリズムが見つけた」
陸がノートに書いた。「圧縮は、無駄を見つける技術」
「良い要約だ」葵が認めた。
三人は笑った。クラブ室の片隅で、また一つ学んだ。