本文へスキップ

平成23年度 秋期 ITパスポート試験 問90

この問題の解説と、これまでの解答の記録です。

問90
頻出度★☆☆

文字や図形を白黒で縦 7 画素,横 7 画素のディジタル画像で表すとき,数字の“0”を図 1 のように表現する。このディジタル画像を画素データとして出力する処理,画素データを圧縮する処理及びディジタル画像を回転させる処理について考える。 図 1 数字の“0”のディジタル画像

1列2列3列4列5列6列7列
1行□□■■■□□
2行□■□□□■□
3行□■□□□■□
4行□■□□□■□
5行□■□□□■□
6行□■□□□■□
7行□□■■■□□

画素データを出力する処理の概要と圧縮する処理の概要は,次のとおりである。 〔画素データを出力する処理の概要〕 (1) 画素の色が白のときは“w”,黒のときは“b”を画素データとして出力する。 (2) 1 行 1 列,1 行 2 列,…,1 行 7 列,2 行 1 列,2 行 2 列,…,7 行 7 列の順番に各位置の画素データを出力する。 (3) 画素データを出力する際は,各画素データの間をコンマ“,”で区切る。 (4) 図 1 の画素データを出力した結果は次のとおりになり,文字数はコンマを含めて 97 文字になる。 w,w,b,b,b,w,w,w,b,w,w,w,b,w,w,b,w,w,w,b,w,w,b,w,w,w,b,w,w,b,w,w,w,b,w,w,b,w,w,w,b,w,w,w,b,b,b,w,w 〔画素データを圧縮する処理の概要〕 (1) 同じ色の画素データが連続する場合,“w”又は“b”の後に連続する画素の数をつなげて出力する。例えば,“b,b,b”は“b3”になる。 (2) 図 1 の画素データを圧縮した結果の出力は次のとおりになり,文字数はコンマを含めて 64 文字になる。 w2,b3,w3,b,w3,b,w2,b,w3,b,w2,b,w3,b,w2,b,w3,b,w2,b,w3,b,w3,b3,w2 図2で示すディジタル画像の画素データを圧縮した結果の文字数は,コンマを含めて何文字か。

出典 平成23年度 秋期 ITパスポート試験 問90
解説

問 90

  • 不正解ア

    34 文字は、縦棒の一番上にある 1 行 4 列目の黒 1 画素を見落とし、1 行目を全部白として読んでしまったときの値。そう読むと先頭のランが白 9 個にまとまってしまい、圧縮結果は w9,b2,w6,b,w6,b,w6,b,w6,b,w5,b3,w2 の 13 ランで 22 文字+コンマ 12 個=34 文字になる。実際の図 2 は 1 行 4 列目も黒なので、先頭は w3 と b に分かれ 34 文字にはならない。

  • イ

    正解 圧縮ルールは、同じ色が連続する部分を「色を表す文字(白は w、黒は b)+連続した画素数」にまとめ、各データの間をコンマで区切る、というランレングス法である。連続数が 1 のときは数字を付けず b や w とだけ書く(中問 A の図 1 の圧縮例 w2,b3,w3,b,… がそうなっている)。走査の順番は 1 行 1 列→1 行 7 列→2 行 1 列→…→7 行 7 列の一続きなので、行が変わっても同じ色が続いていれば 1 つのランとしてまとめる点が重要。図 2 の 7×7 画素は、1 行目が□□□■□□□、2 行目が□□■■□□□、3~6 行目が□□□■□□□、7 行目が□□■■■□□。これを左上から順に並べてまとめると、白 3・黒 1・白 5(1 行目の右 3 個と 2 行目の左 2 個がつながる)・黒 2・白 6・黒 1・白 6・黒 1・白 6・黒 1・白 6・黒 1・白 5・黒 3・白 2 となり、圧縮結果は w3,b,w5,b2,w6,b,w6,b,w6,b,w6,b,w5,b3,w2 になる。連続数の合計は 49 で 7×7 画素と一致するので数え間違いがないと確認できる。文字数は、w3・w5・b2・w6・w6・w6・w6・w5・b3・w2 の 10 個が 2 文字ずつで 20 文字、単独の b が 5 個で 5 文字、合わせて 25 文字。区切りのコンマはラン 15 個の間に 15−1=14 個入る。したがって 25+14=39 文字となり、正解はイ。

  • 不正解ウ

    42 文字は、行をまたぐ連続を 1 か所で切ってしまったときの値。例えば 1 行目末尾の白 3 個と 2 行目先頭の白 2 個をつなげずに w3 と w2 の 2 つに分けると、ランが 1 個増えて文字が 2 文字、コンマが 1 個増え、39+3=42 文字になる。出力の順番は 1 行 7 列の次が 2 行 1 列という一続きの並びなので、行の境目で切ってはいけない。

  • 不正解エ

    44 文字は、連続数が 1 の画素まで律義に b1 や w1 と書いてしまったときの値。ラン 15 個すべてが 2 文字になるので 15×2=30 文字、コンマ 14 個を足して 44 文字になる。中問 A の図 1 の圧縮例では単独の黒画素が b1 ではなく b と書かれており、連続数 1 の数字は省く決まりなので 44 文字にはならない。

ここがポイント
  • ランレングス法(連長圧縮)は、同じ値が続く部分を「値+連続個数」に置き換える可逆圧縮。本問では連続数が 1 のときは個数を書かない、というローカルルールを図 1 の例から正しく読み取れるかがポイントで、これを見落とすと 44 文字(エ)になる。
  • 画素の走査順は 1 行 1 列から右へ、行が終わったら次の行の 1 列目へ、という一続きの並びなので、行をまたいで同じ色が続く場合も 1 つのランにまとめる。文字数を数えるときは区切りのコンマ(ラン数−1 個)も忘れずに加え、連続数の合計が総画素数 49 になるかで検算する。
用語

解答の記録