平成24年 秋期 ITパスポート 中問C

データの符号化に関する次の記述を読んで、四つの問いに答えよ。

図1は、8×8画素の白黒の画像例である。
この図に対して、白を0、黒を1として表すと、図2に示すように8ビットのビット列が8行あるディジタルデータとして、画像データを表現することができる。

図1 8×8画素の白黒の画像例
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
図2 図1の画像データのビット列による表現

文字データしか送れない通信で画像データを送ろうとする場合、画像データを文字データであるかのように変換して通信する必要がある。
また、文字データと比べてデータ量の大きい画像データを効率よく通信するために、データを圧縮して送るという工夫がなされる。
図2のビット列を左上から順に見ていくと、0が10個続き、次に1が34個続き、その次に0が20個続いていることが分かる。
この同じ値が続く個数のことをランレングスという。
これを利用して画像データを圧縮する方法を考える。

[テクノロジ]
 問93  次に示す画像データの表現方法は、画像データを文字データに変換するものである。
図2の画像データの中の9〜12ビット(2行目の先頭4ビット)のビット列は、どの文字として表現されるか。
[画像データの表現方法]
 (1)  画像データのビット列を4ビットずつ取り出し、それぞれの先頭に4ビットの値“0100”を補い、8ビットで表現する。
 (2)  (1)で求めた各8ビットの値をJIS X 0201の文字コードに対応する文字で表現する。
01000000、01000001、01000010、…、01001111の8ビットの値は、JIS X 0201の文字コード体系では、文字@、A、B、…、Oに対応する。
 ア  @  イ  B  ウ  C  エ  0

[テクノロジ]
 問94  次に示す画像データの表現方法は、画像データの情報量を圧縮することを目的とする変換である。
図2に示す画像データは、何ビットで表現されるか。
[画像データの表現方法]
 (1)  画像データをランレングスで表現し、それらの値を最大15の範囲で区切っていく。
例えば、ランレングスが20の場合は、15と5の二つのランレングスに分ける。
 (2)  白と黒のランレングスをそれぞれ4ビットの2進数で表し、常に“白と黒”の8ビットの組みとして表現する。
例えば、白のランレングスが15と5というように続く場合は、その間にランレングス0(2進数では0000)の黒を補い、白のランレングス15と黒のランレングス0の組みを作る。
このように、白又は黒が続く場合は間に黒又は白、黒で始まる場合は先頭に白、白で終わる場合は末尾に黒のランレングス0を補うことで、常に白と黒の8ビットの組みを作る。
 ア  12  イ  24  ウ  40  エ  48

[テクノロジ]
 問95  次に示す画像データの表現方法は、画像データの情報量を圧縮することを目的とする変換である。
図2に示す画像データは、何ビットで表現されるか。
[画像データの表現方法]
 (1)  画像データをランレングスで表現し、それらの値を最大128の範囲で区切る。
例えば、ランレングスが200の場合は、128と72の二つのランレングスに分ける。
 (2)  (1)で表現したそれぞれの値から1を引き、2進数7ビットで表現する。
各7ビットに対して、白の場合は0を、黒の場合は1を、それぞれの色情報として先頭ビットに補って各8ビットで表現する。
 ア  12  イ  24  ウ  40  エ  48

[テクノロジ]
 問96  次に示す画像データの表現方法は、画像データの情報量を圧縮することを目的とする変換である。
図2に示す画像データは、何ビットで表現されるか。
[画像データの表現方法]
 (1)  画像データをランレングスで表現し、それらの値を2進数で表現する。
 (2)  ランレングスの値を2進数で表現したときの値nに対して、そのnの桁数がmのとき、次の形式で、一つのランレングスを表現する。
@桁数の情報 A区切りの情報 Bランレングスの情報
@桁数の情報: (m - 2)ビットの連続する1で表現。
なお、mが0〜2の場合は、“0”と表現
A区切りの情報: 区切りは“0”で表現
Bランレングスの情報: n
例えば、ランレングスの値が20のとき、それを2進数で表現したときの値nは“10100”となり、その桁数mは5となる。
したがって、mが5のとき、@は(5 - 2)ビットの連続する1なので“111”となり、これに区切りの“0”とnをつなげ、結果は“111010100”となる。
 (3)  (1)で表現したそれぞれの値から1を引き、2進数7ビットで表現する。
各7ビットに対して、白の場合は0を、黒の場合は1を、それぞれの色情報として先頭ビットに補って各8ビットで表現する。
 ア  27  イ  30  ウ  33  エ  36


答え 問93 ウ 問94 ウ 問95 エ 問96 ア


解説

 問93  図2の9〜12ビットは“0011”で、これの先頭に“0100”を加えると“01000011”になり、“01000000”が@、“01000001”がA、“01000010”がBなので、“01000011”はC(ウ)である。
 問94  0が10個続き、次に1が34個続き、その次に0が20個続いているので、これをルールに基づいて変換すると、
最初の0の10個はそのまま変換して“1010”なる。
次の1の34個は15以上なので、最初の15と15と4に分けて間に0の個数が0個を示す“0000”を加えて“1111 0000 1111 0000 0100”になる。
次の0が20個は同様に“1111 0000 0101”になる。
ここで、白黒の順になっているかを確認すると最後が白になっているので、黒が0個の“0000”を加えて、合計で40(ウ)ビットになる。
 問95  0が10個続き、次に1が34個続き、その次に0が20個続いているので、これをルールに基づいて変換すると、
最初の0の10個は10が“00001010”で1を引いて“00001001”になり先頭を0にして“00001001”になる。
次の1が34個は34が“00100010”で1をひいて“00100001”になり先頭を1にして“10100001”になる。
次の0が20個は20が“00010100”で1を引いて“00010011”になり先頭を0にして“00010011”になる。
これは8ビットのデータが3個なので合計で24ビット(エ)になる。
 問96  0が10個続き、次に1が34個続き、その次に0が20個続いているので、これをルールに基づいて変換すると、最初の0の10個は10を2進数表示にすると“1010”になり4ビットなので、その桁数mは4になり、@の桁数の情報は“11”で、結果は“1101010”になる。(7ビット)
次の1が34個は34を2進数にすると“100010”でmは6であり、結果は“11110100010”になる。(11ビット)
次の0が20個は20を2進数にすると“10100”でmは5であり、結果は“111010100”になる。(9ビット)
このデータは白黒白なので、最終的なデータは7ビット + 11ビット + 9ビットの27ビット(ア)になる。


戻る 一覧へ 次へ