平成22年度 秋期 ITパスポート試験 問85 解説 ランレングス圧縮の計算
問85 図を画素で表す手法を考える。図1の場合, 3×3 個の画素を左上から1行ずつ右方向へ1画素ずつ読み取り, 黒なら B, 白なら W と書くと “BWBBBB BWB” (9文字)となる。次に, B や W が n 文字連続する場合を “Bn”, “Wn” と表す (n は2以上の整数)と, 図1は “BWB5WB” (6文字)と表現でき, このときの圧縮率を 6/9=66.7%であると定義する。図2の 5×5 の図形について同じ手法で表現すると, 圧縮率は何%か。
- ア 48.0
- イ 52.0 ✓ 正答
- ウ 76.0
- エ 88.0
解説
この問題は、画像データの圧縮手法の一つである「ランレングス符号」の仕組みを理解し、圧縮後のデータ量から圧縮率を算出する手順を踏むことで解けます。
計算の手順は以下の通りです。
- 図2の各行を左上から右へ、画素の並びを確認する。
- 連続する画素を「色+数」のルールに従って文字列に置き換える(ただし1個の場合は数字をつけない)。
- 符号化した後の文字列の総文字数を数える。
- の式に当てはめる。
ランレングス圧縮の基本ルール
ランレングス符号は、データの中で連続している箇所を「その値」と「連続した回数」に置き換える手法です。本問では黒をB、白をWとしています。
ルールに基づき、図2の5x5の画素(計25画素)を左上から順に並べます。 ・1行目:黒・黒・黒・黒・黒 → B5 ・2行目:黒・白・白・白・白 → B, W4 ・3行目:黒・黒・黒・黒・黒 → B5 ・4行目:黒・白・白・白・白 → B, W4 ・5行目:黒・白・白・白・白 → B, W4
これをつなげると「B5, B, W4, B5, B, W4, B, W4」となります。文字数を数えると、B5(2文字)、B(1文字)、W4(2文字)、B5(2文字)、B(1文字)、W4(2文字)、B(1文字)、W4(2文字)で合計13文字です。
※注意:問題文の定義「nは2以上の整数」に従うと、連続が1つだけのときは数字を書きません。上記のように数えると、B5(2) + B(1) + W4(2) + B5(2) + B(1) + W4(2) + B(1) + W4(2) = 13文字となります。
計算式に当てはめると、 です。パーセントに換算すると % となります。
データの圧縮率を考える際の思考プロセス
この問題は、情報がどのように「表現」され、それをどう「効率化」するかという情報処理の基礎を問うています。
まず重要なのは、元のデータが何画素あるかを正確に把握することです。今回の図2は5x5なので、圧縮前のデータ量は25です。次に、ルールの適用範囲を見極めます。ルールには「連続が1回の場合は数字を書かない」「2回以上は数字を書く」という境界条件があります。この境界条件を読み飛ばすと、文字数のカウントを誤るため注意が必要です。
試験においては、図を一行ずつ丁寧に分解し、それぞれの行でBとWがどう切り替わっているか、その塊がいくつあるかを冷静に書き出すのが最もミスの少ない方法です。
実社会におけるデータの効率化
この手法は、実際の画像圧縮技術であるBMPやFAXの転送などで使われる「ランレングス圧縮」の考え方を簡略化したものです。データの中に同じ値が連続して並んでいる場合、一つ一つ記録するよりも「この値が何個続く」と記録する方が、データ量を大幅に減らすことができます。
特にコンピュータの世界では、通信にかかる時間やストレージの容量を節約することが不可欠です。この問題を通じて、私たちは「データを元の姿に戻せる(可逆圧縮)」かつ「情報量を減らす」という最適化の視点を学ぶことができます。現実の圧縮アルゴリズムはさらに複雑ですが、この「繰り返しを見つけて省略する」という基本原理はすべての圧縮技術の根幹をなしています。