本文へ移動

基本情報技術者試験 · 学習ガイド

2009年度 春期 午後の問題・解答解説

旧制度の午前・午後と、2023年度以降の科目A・科目Bの公開問題を区別しています。現在の試験対策では現行シラバスと科目Bの形式を確認してください。公開問題は本試験の全出題を網羅する資料ではありません。

2009年度 春期 午後の概要
30:00

問題番号から選ぶ

画像データの符号化(ランレングス符号化)

ハードウェア · データ圧縮 / ランレングス符号化 / 可変長符号

8×8画素の白(0)と黒(1)からなる2値画像のランレングス符号化に関する次の記述を読み、設問1〜3に答えよ。 [符号化方式の規則] (1) ビット列は同じ値が連続する部分(ラン)ごとに区切り、その連続する個数(ランレングス n)で表す。 (2) 1番上の行の左端の画素は白で始まるものとし、左端が黒の場合は先頭に0個の白があるものとして符号化を行う。 (3) ランレングス n を2進数で表現したときのけた数を m とする。ただし常に m ≧ 2 となるように、n = 0 の2進数表現を 00、n = 1 の2進数表現を 01 とする。 (4) n ビットのランは、(a) けた数情報(m-2個の連続する1。m=2のときは0個)、(b) 区切り(1個の0)、(c) ランレングス情報(nの2進数表現 mビット)の順に並べて書き換える。 〔設問1〕表中の空欄 a、b に入る正しい答えをそれぞれ選べ。 ・n = 4 のときの符号化後のビット列 [ a ] ・符号化後のビット列が 1101111 のときの n の値 [ b ] 〔設問2〕図2の例(白が27個、黒が27個、白が10個)の64ビット列をこの方式で符号化すると、何ビットで表現できるか。 〔設問3〕ランレングス符号化後のビット列が「000111011111111011111010」であったとき、このビット列を復号した2値画像として正しいものを図中のア〜エから選べ。

設問1 a群 ア
100
設問1 a群 イ
0100
設問1 a群 ウ
10100
設問1 a群 エ
110100
設問1 b群 ア
14
設問1 b群 イ
15
設問1 b群 ウ
16
設問1 b群 エ
17
設問2 ア
22ビット
設問2 イ
23ビット
設問2 ウ
24ビット
設問2 エ
25ビット
設問3 ア
上から黒が順に連続し、途中に白と黒が交互に含まれる画像パターン
設問3 イ
白が連続した後に黒が連続する画像パターン
設問3 ウ
先頭から白が31画素続き、その後黒が連続する画像パターン
設問3 エ
先頭から黒が31画素連続し、続いて白が31画素連続し、末尾に黒が2画素ある画像パターン
解答・解説を表示

解答

設問1 a: ウ, 設問1 b: イ, 設問2: エ, 設問3: エ

解説

まず要点:ランレングス符号化は、同じ値が続く長さ(ラン)を数えて記録する圧縮方法です。この問題では、連続する個数 n を2進数にしたときのけた数 m を使い、(m-2)個の「1」、区切り「0」、mビットの2進数を順に並べます。画像はいつも白のランから始まると決めているので、左端が黒のときは「白が0個」と考えて符号化を始めます。

解き方

  1. 設問1(a): n=4 を2進数で100と表し、けた数 m=3 なので1を1個、区切り0、値100を続けて10100にします。
  2. 設問1(b): 1101111 の区切り0の位置から m=4 と分かり、後ろの4ビット1111を10進数にして15を求めます。
  3. 設問2: 白27と黒27はそれぞれ9ビット、白10は7ビットなので、9+9+7=25ビットになります。
  4. 設問3: 000111011111111011111010 を白0、黒31、白31、黒2と区切り、選択肢エのパターンと決めます。

小問ごとの答え

小問 設問1 a:ウ
n=4 を2進数で表すと 100(けた数 m=3)です。けた数情報は m-2=1 個の「1」、区切りは「0」、ランレングス情報は「100」となるため、連結すると「10100」となります。
小問 設問1 b:イ
ビット列「1101111」は、区切り「0」の前に「1」が2個あるため m-2=2 より m=4 です。区切りの後の4ビット「1111」は2進数で 15 を表すため、n=15 と求まります。
小問 設問2:エ
白27個は n=27(2進数11011、m=5)より (5-2)+1+5=9ビット、黒27個も同様に9ビット、白10個は n=10(2進数1010、m=4)より (4-2)+1+4=7ビットとなり、合計は 9+9+7=25ビットです。
小問 設問3:エ
ビット列「000111011111111011111010」を復号すると、白0個(000)、黒31個(111011111)、白31個(111011111)、黒2個(010)の計64画素となり、選択肢エの画像と一致します。

覚えるポイント

  • ランレングス符号化では先頭の色が決まっている場合、逆の色で始まる際に長さ0のランを置くルールがある。
  • 可変長符号のビット長は (m - 2) + 1 + m = 2m - 1 ビットとなる。

間違えやすいところ

  • 先頭の000を白0個ではなく白3個などと読み違えてしまう誤りです。
  • 先頭が黒で始まるとき、白0個を表す000が入ることを見落とす誤りです。

出題の前提:平成21年度春期基本情報技術者試験午後問1出題条件

出典:IPA『2009年度 春期 午後』
公式問題冊子 p.6 ↗(www.ipa.go.jp) / 公式問題冊子 p.7 ↗(www.ipa.go.jp) / 公式問題冊子 p.8 ↗(www.ipa.go.jp)

2009年度 春期 午後

参照した公式資料

IPAが公開した2009年度 春期 午後の問題・解答資料です。