【高校情報】ランレングス圧縮とは何かわかりやすく解説・実例付き
イリエダ
こんにちは、イルカの妖精イリエダよ。今日はランレングス圧縮について、分かりやすく解説していくわね。
ランレングス圧縮とは??
「ランレングス圧縮」とは、
同じデータが連続している部分をまとめて表現する圧縮方法
よ。

まずはランレングス圧縮の基本的な手順を理解しましょう。
- データの中で連続する同じ文字や数字を見つける。
- その連続する文字や数字を1つにまとめ、何回続いているかを記録する。
簡単でしょ?
例えば、おなじみの画像形式の一つ、JPEGや、古いけどまだ使われているFAXなどに使われているのよ。
ランレングス圧縮のわかりやすい例
言葉だけじゃ分かりにくいから、具体例を見ましょう!
例えば、こんな文字列を考えてみて。
AAABBBCCDAA
これをランレングス圧縮するとどうなるかしら?
- 「A」が3回続いているから、記録すればA3になるわね。
- 「B」も3回続いてるから、B3。
- 次は「C」が2回続くので、C2。
- 「D」は1個なので、D1。
- 最後に「A」が2回で、A2。
すると、圧縮された結果は、
A3B3C2D1A2
になるのよ。
イリエダ
分かってきたわね!とってもいいわ!次はもう少し深堀りしていきましょう。
ランレングス圧縮のメリットとデメリット
ランレングス圧縮には当然、いい面とそうでない面があるのよ。
メリット
- とってもシンプルなアルゴリズムだから、計算リソースが少なくて済む。
- 連続するデータであれば大幅にデータのサイズが小さくなる。
デメリット
- データの中に連続する部分が少ないと、逆にサイズが大きくなることもある。
- 画像のようなディテールが大事なデータでは、利用が難しいこともあるの。
ね、ちょっと理解が深まったかしら。
なぜ「ランレングス」という名前なの?
ところでこの「ランレングス圧縮」って、ちょっと変わった名前よね。
「ラン・レングスさん」という人にちなんで名付けられたのかしら……?

それとも新しいファッションアイテムの名前かしら。
ノンノン、じつは違うのよ。
イリエダ
これは人の名前じゃなくて、英語の意味そのままなの。
run(ラン)は「連続」、length(レングス)は「長さ」という意味よ。
つまり、ランレングス圧縮とは、
「連続しているデータの長さ」を記録する圧縮方法ということなの。
たとえば、こんなデータがあったとするわね。
AAAAA
普通ならAを5回書くけれど、ランレングス圧縮ではこうなるの。
A5
つまり、「Aが5回続いている」という長さ(length)だけを記録しているのよ。
イリエダ
連続している部分(run)を見つけて、その長さ(length)を数える、という仕組みね。
こう考えると、「ランレングス」という名前も、とっても分かりやすいでしょ?
それじゃあね!