コミュニケーションと情報デザイン 情報I

データの圧縮②【ランレングス法】

あつみ先生

ここでは,可逆圧縮のひとつである「ランレングス法」のアルゴリズムについて学習していきましょう。

教科書や参考書などを参照しながら,以下の空欄に当てはまる語句を調べましよう。

スライドの解説

 同じデータが連続して出現するデータにおいて,連続する部分をまとめる圧縮ランレングス法といいます。ランレングス法という名称は,連続する同じデータの並び(run・ラン)を,その繰り返し回数,長さ(length・レングス)に置き換える手法に由来しています。

 例えば,文字列「AAAABBBBBBBAAABBBBBB」をランレングス法により圧縮してみましょう。

 文字列「AAAA BBBBBBB AAA BBBBBB (20文字)」は,Aが4回,Bが7回,Aが3回,Bが6回連続しているから,ランレングス法により「A4B7A3B6」と圧縮することができます。また,文字列は必ずAから始まり,AとBが交互に出現するものとすれば,AとBを取り除いて「4736」とさらに省略することができます。

 また,圧縮前および圧縮後のデータ量は,それぞれ次のとおりになります。

 圧縮前のデータ量:各文字はAまたはBの2種類であるから,1bitで表現できます。よって,文字列全体のデータ量は,1(bit) × 20(文字)=20(bit)となります。

 圧縮後のデータ量:「4736」の4個の数値のうち最大値は7であるから,3bitで表現できます。よって,文字列全体のデータ量はは,3(bit) × 4(文字)=12(bit)となります。

したがって,圧縮率は「圧縮後のデータ量/圧縮前のデータ量×100」で求められるから,12(bit)/20(bit) × 100=60(%)となります。

 最後に,文字列「ABCDE」をランレングス法により圧縮することを考えてみましょう。

 文字列「ABCDE」は,Aが1個,Bが1個,Cが1個,Dが1個,Eが1個連続しているから,ランレングス法により「A1B1C1D1E1」と圧縮することができます。圧縮前と圧縮後の文字数を比較すると,圧縮前は5文字に対し,圧縮後は10文字と圧縮したにも関わらず文字数が2倍になってしまいました。

 つまり,ランレングス法は同じデータが続いているものに適していると言えます。

-コミュニケーションと情報デザイン, 情報I
-