【らんれんぐすふごうか】
ランレングス符号化 とは?
最終更新:
💡 「A、A、A、A」を「Aが4個」と言い換える圧縮術
同じ値が続く部分を「値と個数」の組でまとめて短くする、単純な可逆圧縮の方式。同じ値が長く続くデータでは効果が大きいが、連続が少ないとかえって大きくなる。
📌 このページのポイント
- 同じ値の連続を「値と個数」の組で表す圧縮方式(例:AAAABBBCC を A4B3C2 に)
- 単色部分の多い画像など、連続が長いデータで効果を得やすい
- 連続が少ないデータでは、かえってデータが大きくなることがある
- 元に完全に戻せる可逆圧縮で、基本的な処理手順は単純
ランレングス符号化って何? 名前が難しそうだね。
同じ値が続いているところを「値と続く個数」でまとめる圧縮方法だよ。たとえば「AAAABBBCC」は「A4B3C2」と書けるんだ。ランは「連続」、レングスは「長さ」という意味だね。
たしかに短くなったね! どんなデータで役に立つの?
同じ値が長く続くデータだよ。たとえば、白い背景が広がる単色に近い画像や、ファクシミリの白黒データがそうだね。ファクシミリの符号化では、白と黒の連続の長さを符号にする方式が使われているんだ。
どんなデータでも小さくなるの?
ならないよ。連続が少ないデータだと、かえって大きくなることがあるんだ。たとえば「ABCD」を「A1B1C1D1」にすると、倍の長さになってしまうよね。
圧縮したデータは、元に戻せるの?
戻せるよ。情報を捨てずに完全に復元できる可逆圧縮なんだ。値と個数を読み取って、その個数だけ並べ直すのが基本だよ。
実際にはどこで使われているの?
もっと詳しく知りたい人へ
A4という表記をそのまま保存すればよいですか?
A4は仕組みを示す概念例です。実際には値と個数を区別できるデータ形式が必要です。たとえばBMPのRLEには連続長と値を表すモードや制御用の符号があり、単純に文字と数字を並べるだけではありません。
まとめ:ざっくりこれだけ覚えればOK!
「ランレングス符号化」って出てきたら「同じ値の連続を、値と個数でまとめる単純な圧縮」と思えればだいたいOK!
📖 おまけ:英語の意味
「Run-Length Encoding」 = ランレングス符号化(連長符号化)
💬 Run(同じ値が続く範囲)のLength(長さ)を符号化(Encoding)するから、この名前だよ