ランレングス:連続を回数で潰す

白黒ビット列をクリックでトグルすると、連続部分が (値, 回数) に置き換わり圧縮後の長さが変わります。連続が多いほど縮み、バラバラだと膨張します。

32
↓ 下のマスをクリックすると 0/1 が切り替わります。連続の切れ目が増えると圧縮後が長くなります。
元の長さ(ビット)
ラン数(連続の塊)
圧縮後の長さ
圧縮率
上:元のビット列(クリックで反転)/下:ランレングス符号 (値×回数)
ランレングス符号化(RLE)は、同じ値が連続する部分を「その値が何回続くか」という回数に置き換える圧縮法です。
たとえば 0000011111(10ビット)は「0が5回、1が5回」なので (0,5)(1,5) と表せます。連続が長いほど大きく縮みます。
逆に 0101010101 のように毎回切り替わると、塊(ラン)が増えてしまい、回数の情報を持つぶんかえって長くなることもあります。マスをクリックして、連続と圧縮後の長さの関係を確かめましょう。

いま何が起きている?

ここがポイント