基礎理論|平成24年度 秋期 ITパスポート試験(特別措置試験) 問96
〔中問C・画像データの符号化〕〔テクノロジ〕次に示す画像データの表現方法は,画像データの情報量を圧縮することを目的とする変換である。図2に示す画像データは,何ビットで表現されるか。
〔中問C の記述(抜粋・再掲)〕図2のランレングスは,白10・黒34・白20 である。
〔中問C の前置き(原典の逐語)〕「図1は,8×8画素の白黒の画像例である。この図に対して,白を0,黒を1として表すと,図2に示すように8ビットのビット列が8行あるディジタルデータとして,画像データを表現することができる。」
〔図1 8×8画素の白黒の画像例〕(原典は丸の並び。読み取って書き起こしたもの)
白い丸(○)=白=0 / 黒い丸(●)=黒=1(上の前置きの逐語による)。
```
○ ○ ○ ○ ○ ○ ○ ○
○ ○ ● ● ● ● ● ●
● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ●
● ● ● ● ○ ○ ○ ○
○ ○ ○ ○ ○ ○ ○ ○
○ ○ ○ ○ ○ ○ ○ ○
```
この問は原典では中問C(前置きと図1・図2 を4問で共有する形)の一部である。
〔図2 図1の画像データのビット列による表現〕
```
0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
```
〔画像データの表現方法〕
- (1) 画像データをランレングスで表現し,それらの値を2進数で表現する。
- (2) ランレングスの値を2進数で表現したときの値 n に対して,その n の桁数が m のとき,次の形式で,一つのランレングスを表現する。
〔形式〕
| ①桁数の情報 | ②区切りの情報 | ③ランレングスの情報 |
|---|
- ①桁数の情報:(m−2) ビットの連続する1で表現。なお,m が0〜2の場合は,“0”と表現
- ②区切りの情報:区切りは“0”で表現
- ③ランレングスの情報:n
例えば,ランレングスの値が20のとき,それを2進数で表現したときの値 n は“10100”となり,その桁数 m は5となる。したがって,m が5のとき,①は(5−2)ビットの連続する1なので“111”となり,これに区切りの“0”と n をつなげ,結果は“111010100”となる。
- (3) (2)で求めた形式の値をつなげていく。このとき,画像データは必ず白から始まるものとし,もし,画像データが黒から始まる場合は,ランレングス0の白があるとして先頭に“000”を補う。
- ✓ これが正解27
- 30
- 33
- 36
解説
桁数の分だけ一を並べ、区切りを挟んでから値を書き足します。
この取り決めでは、個数ごとに三つの部分をつなげて書きました。最初に置くのは、その個数を二進で書いたときの桁数の情報です。桁数から二を引いた数だけ、一を並べる決まりになっていました。次に区切りの零を置き、最後に値そのものを書きます。白の十は、二進で四桁になるので一を二つ並べました。区切りと値を足すと七桁になります。黒の三十四は六桁なので、一を四つ並べて十一桁になりました。白の二十は五桁なので、一を三つ並べて九桁です。三つを足すと、二十七桁という数が出ました。この数を挙げた肢が当たり、絵は白から始まるので補いは要りません。上限で区切る決まりも無いので、分ける手も要りませんでした。つまり桁数がそのまま、書く長さを押し上げる仕組みです。シラバスも、情報の圧縮と伸長の特徴を学ぶよう求めています。
ほかの選択肢はなぜ違うのか
- 三十という数を挙げた肢のほうです。正しい値より、三桁だけ多く出ていました。桁数から二を引く手を、どこかで落とした形です。引かずに一を並べると、そのぶん長くなります。引く手を確かめる要りがありました。引く手を落としています。
- 三十三という数を挙げた肢というのが、こちらです。先頭に白の零を補うと、この辺りへ寄りました。補うのは、絵が黒から始まる場合だけです。この絵は、白が十続くところから始まっていました。補う要りがありません。補う要りはありません。
- 三十六という数を挙げた肢が、こちらに当たります。上限で区切って、個数を増やした形に近くなりました。ところがこの取り決めには、上限が置かれていません。三つの個数を、そのまま書けばよいのです。分ける手を足しすぎました。
この問題に関係する言葉
- 圧縮
出典:平成24年度 秋期 ITパスポート試験(特別措置試験) 問96
同じ単元をまとめて解くなら基礎理論へ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)