×

tomoロゴ tomo

【高校情報】LZ圧縮とは何かわかりやすく具体例で解説

 

イリエダ
イリエダ
こんにちは、イルカの妖精イリエダよ。今日は「LZ圧縮についてわかりやすく」解説しちゃうわね。

 

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は、人の名前から来ているのよ。

 

LZは、次の2人の研究者の頭文字なの。

  • Lempel(レンペル)
  • Ziv(ジブ)

 

LZ圧縮とは わかりやすく 例

 

この2人が考えた圧縮方法だから、LZ圧縮と呼ばれているのよ。

 

この2人は、イスラエルの計算機科学者で、1970年代にこの圧縮方法を考えたの。

つまり、LZ圧縮はイスラエル生まれの技術ということね。

 

イリエダ
イリエダ
名前の由来まで知っておくと、ぐっと理解が深まるわよ。

 

なぜLZ圧縮は生まれたの??

ところで、どうしてLZ圧縮なんて仕組みが考えられたのか、気にならないかしら?

実はこれ、当時のコンピュータ事情が大きく関係しているの。

 

1970年代は「データが重すぎる」時代

LZ圧縮が生まれた1970年代は、今と比べてコンピュータの性能がとても低かったの。

  • 記憶容量がとても小さい
  • 通信速度が遅い
  • データ保存のコストが高い

つまり、データをそのまま扱うのは非効率すぎたのよ。

 

LZ圧縮とは わかりやすく 例

 

イリエダ
イリエダ
だから、「どうにかしてデータを小さくしたい!」というニーズが強かったの。

 

それまでの圧縮の問題点

実は、LZ圧縮が登場する前にも圧縮方法はあったのよ。

でも、それらはあらかじめ決められたルールに基づいて圧縮する必要があったの。

つまり、データの種類ごとに工夫が必要で、汎用的に使いにくいという課題があったのよ。

 

LZ圧縮のすごいところ

そこで登場したのがLZ圧縮。

この方法はなんと、

データの中から自動で繰り返しを見つけるの。

つまり、事前にルールを決めなくても、

「さっき出てきた部分を使い回す」だけで圧縮できるという仕組みなのよ。

 

なぜ革命的だったの?

  • どんなデータにも使える(汎用性が高い)
  • 自動で圧縮ルールを作れる
  • 実用性がとても高い

この考え方はとても優れていて、

現在のZIPやPNGなどの圧縮技術にもつながっているのよ。

 

イリエダ
イリエダ
「人がルールを作る」から「データがルールを作る」へ進化したのがポイントね。

 

それじゃあね!また次の楽しい勉強で会いましょうね。

妖精

ここまで読んでくれてありがとう!おつかれさまでした。

「高校情報Iのまとめページ」で他の記事も復習してみてね。

▶ まとめを見に行く