平成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に対応する。 |
|
|
|
[テクノロジ]
問94 |
次に示す画像データの表現方法は、画像データの情報量を圧縮することを目的とする変換である。
図2に示す画像データは、何ビットで表現されるか。
[画像データの表現方法]
(1) |
画像データをランレングスで表現し、それらの値を最大15の範囲で区切っていく。
例えば、ランレングスが20の場合は、15と5の二つのランレングスに分ける。 |
(2) |
白と黒のランレングスをそれぞれ4ビットの2進数で表し、常に“白と黒”の8ビットの組みとして表現する。
例えば、白のランレングスが15と5というように続く場合は、その間にランレングス0(2進数では0000)の黒を補い、白のランレングス15と黒のランレングス0の組みを作る。
このように、白又は黒が続く場合は間に黒又は白、黒で始まる場合は先頭に白、白で終わる場合は末尾に黒のランレングス0を補うことで、常に白と黒の8ビットの組みを作る。 |
|
|
|
[テクノロジ]
問95 |
次に示す画像データの表現方法は、画像データの情報量を圧縮することを目的とする変換である。
図2に示す画像データは、何ビットで表現されるか。
[画像データの表現方法]
(1) |
画像データをランレングスで表現し、それらの値を最大128の範囲で区切る。
例えば、ランレングスが200の場合は、128と72の二つのランレングスに分ける。 |
(2) |
(1)で表現したそれぞれの値から1を引き、2進数7ビットで表現する。
各7ビットに対して、白の場合は0を、黒の場合は1を、それぞれの色情報として先頭ビットに補って各8ビットで表現する。 |
|
|
|
[テクノロジ]
問96 |
次に示す画像データの表現方法は、画像データの情報量を圧縮することを目的とする変換である。
図2に示す画像データは、何ビットで表現されるか。
[画像データの表現方法]
(1) |
画像データをランレングスで表現し、それらの値を2進数で表現する。 |
(2) |
ランレングスの値を2進数で表現したときの値nに対して、そのnの桁数がmのとき、次の形式で、一つのランレングスを表現する。
@桁数の情報 |
A区切りの情報 |
Bランレングスの情報 |
@桁数の情報: |
(m - 2)ビットの連続する1で表現。
なお、mが0〜2の場合は、“0”と表現 |
例えば、ランレングスの値が20のとき、それを2進数で表現したときの値nは“10100”となり、その桁数mは5となる。
したがって、mが5のとき、@は(5 - 2)ビットの連続する1なので“111”となり、これに区切りの“0”とnをつなげ、結果は“111010100”となる。 |
(3) |
(1)で表現したそれぞれの値から1を引き、2進数7ビットで表現する。
各7ビットに対して、白の場合は0を、黒の場合は1を、それぞれの色情報として先頭ビットに補って各8ビットで表現する。 |
|
|
|
答え
問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ビット(ア)になる。 |
戻る
一覧へ
次へ