跳到正文

平成24年度 秋期 ITパスポート試験 問96

这道题的解析和你的作答记录。

問96
頻出度★☆☆

図1は,8×8画素の白黒の画像例である。この図に対して,白を0,黒を1として表すと,図2に示すように8ビットのビット列が8行あるディジタルデータとして,画像データを表現することができる。 文字データしか送れない通信で画像データを送ろうとする場合,画像データを文字データであるかのように変換して通信する必要がある。 また,文字データと比べてデータ量の大きい画像データを効率よく通信するために,データを圧縮して送るという工夫がなされる。図2のビット列を左上から順に見ていくと,0が10個続き,次に1が34個続き,その次に0が20個続いていることが分かる。この同じ値が続く個数のことをランレングスという。これを利用して画像データを圧縮する方法を考える。 次に示す画像データの表現方法は,画像データの情報量を圧縮することを目的とする変換である。図2に示す画像データは,何ビットで表現されるか。 〔画像データの表現方法〕 (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”を補う。

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

問 96

※ 编写解析时的验算未能完全确认公布答案;判定仍按 IPA 公布的答案。

  • ア

    正解 把图2的比特串从左上角依次读下来,依次是白(0) 10 个 → 黑(1) 34 个 → 白(0) 20 个(合计 64 比特=8×8 像素)。(3) 的原文按原始试卷 page-44 为「图像数据必定从白色开始,如果图像数据从黑色开始,则视为存在游程为 0 的白色,在开头补上“000”」,而图2 是从白色开始的,所以不需要补「000」这一步处理。剩下的就是把 10、34、20 这三个游程各自按规则编码后相加。 (a) 10 → 二进制 n 为「1010」,位数 m=4。①是 (4-2)=2 比特的「11」,②分隔为「0」,③是 n 的 4 比特。编码为「1101010」,共 2+1+4=7 比特。 (b) 34 → 二进制 n 为「100010」,m=6。①是 (6-2)=4 比特的「1111」,②为「0」,③为 6 比特。4+1+6=11 比特。 (c) 20 → 二进制 n 为「10100」,m=5。①是 (5-2)=3 比特的「111」,②为「0」,③为 5 比特。3+1+5=9 比特(这正是题目中给出的例子)。 合计为 7+11+9=27 比特,因此ア正确。另外,当 m≧3 时,一个游程所占的长度可以归纳为 (m-2)+1+m=2m-1 比特,代入 m=4,6,5 就能立刻得到 7、11、9。

  • 错误イ

    30 是在正确的 27 比特上又加了并不需要的「000」这 3 比特得到的值。(3) 中「在开头补上000」是针对图像数据从黑色开始时的补救措施,而图2 的第 1 行是 00000000,是从白色开始的,所以不可以补。不看条件就机械地去补,就会多出 3 比特。

  • 错误ウ

    33 是把①位数信息误读成「m 比特」而不是「(m-2) 个连续的 1」时得到的值。这样误解就变成 m+1+m=2m+1,代入 m=4,6,5 得到 9+13+11=33 比特。①并不是把位数 m 本身排列出来,而是用 m-2 个 1 来传达 m 的可变长编码,这一点被搞混了。

  • 错误エ

    36 是在上面ウ的错误(把①当作 m 比特而得到 33 比特)之上,又加上了并不需要的「000」这 3 比特的值,两个错误叠加在了一起。游程只有 10、34、20 这三个,按规则计算不会超过 7+11+9=27 比特。

ここがポイント
  • 游程编码法(行程长度编码,RLE)是一种记录相同值连续出现的个数(游程长度)来减少信息量的无损压缩方式,对黑白二值图像或传真这类同一颜色长时间连续的数据效果很好。首先要从图中正确数出「白 10、黑 34、白 20」这样的游程,这是解题的出发点。
  • 本题的可变长编码由 ①(m-2) 个连续的 1 + ②作为分隔的「0」 + ③n 的 m 比特 构成,当 m≧3 时每个游程占 2m-1 比特。①是靠「到分隔的 0 为止有几个 1」来传达位数 m 的机制;当 m 为 0~2 时,①就是 1 比特的「0」(所以游程为 0 的白色被表示为「0」「0」「0」=「000」共 3 比特)。
用語
解答問96ア
练这一题

作答记录