【高校情報】LZ圧縮とは何かわかりやすく具体例で解説
LZ圧縮(エルゼットあっしゅく)とは??
LZ圧縮とは、
過去に出てきたデータを再利用して、データ量を減らす圧縮方法
よ。
同じデータが出てきたときに、そのままもう一度書くんじゃなくて、
「さっき出てきた場所を参照する」のがポイント。

圧縮の仕組み
LZ圧縮では、データを読みながら、過去に同じ並びがないか探していくの。
そして見つかったら、こんな形で表すのよ👇
$$
(何文字前,何文字分)
$$
これは、「何文字前に戻って、そこから何文字コピーするか」という意味よ。
具体例で解説
例えば、次のデータを見てみましょう。
ababcabc
あら、後に
abc
が2回続けて出てるわね。これは圧縮しないと損損。
ここで登場するのが「参照」よ。
後ろの「abc」は、前の「abc」と同じなので👇
$$
(3,3)
$$
と表せるの。
つまり、「3文字前から3文字コピー」という意味ね。
最終的にはこんなイメージになるわ👇
ababc(3,3)
LZ圧縮の応用と利点
この仕組みによって、データサイズをぐっと小さくできるの。
どこで使われる?
- ZIPファイルなどの圧縮形式
- 画像形式(PNGなど)
- テキストデータの圧縮
LZ圧縮を使うときの注意点
便利な技術だけど、注意点もあるわ。
- 繰り返しが少ないデータにはあまり効果がない
- 場合によってはサイズがあまり減らないこともある
なぜ「LZ圧縮」は「LZ」なの??
ところで、「LZ圧縮」ってちょっと不思議な名前。
マンジンガーZ感、あるわよね。
えっ、
LさんとZさんが作ったの?
って思った??
鋭いわね。
実はその通りなの。
LZは、次の2人の研究者の頭文字なの。
- Lempel(レンペル)
- Ziv(ジブ)

この2人が考えた圧縮方法だから、LZ圧縮と呼ばれているのよ。
この2人は、イスラエルの計算機科学者で、1970年代にこの圧縮方法を考えたの。
つまり、LZ圧縮はイスラエル生まれの技術ということね。
なぜLZ圧縮は生まれたの??
ところで、どうしてLZ圧縮なんて仕組みが考えられたのか、気にならないかしら?
実はこれ、当時のコンピュータ事情が大きく関係しているの。
1970年代は「データが重すぎる」時代
LZ圧縮が生まれた1970年代は、今と比べてコンピュータの性能がとても低かったの。
- 記憶容量がとても小さい
- 通信速度が遅い
- データ保存のコストが高い
つまり、データをそのまま扱うのは非効率すぎたのよ。

それまでの圧縮の問題点
実は、LZ圧縮が登場する前にも圧縮方法はあったのよ。
でも、それらはあらかじめ決められたルールに基づいて圧縮する必要があったの。
つまり、データの種類ごとに工夫が必要で、汎用的に使いにくいという課題があったのよ。
LZ圧縮のすごいところ
そこで登場したのがLZ圧縮。
この方法はなんと、
データの中から自動で繰り返しを見つけるの。
つまり、事前にルールを決めなくても、
「さっき出てきた部分を使い回す」だけで圧縮できるという仕組みなのよ。
なぜ革命的だったの?
- どんなデータにも使える(汎用性が高い)
- 自動で圧縮ルールを作れる
- 実用性がとても高い
この考え方はとても優れていて、
現在のZIPやPNGなどの圧縮技術にもつながっているのよ。
それじゃあね!また次の楽しい勉強で会いましょうね。