問題PDF
次の会話文を読んで、次の問いに答えなさい。
きょうこ「今日のパソコンの勉強は難しかったね」
まなぶ 「そうだね。特に画像のデータ量を少なくする「圧縮」についてはよくわからなかったな」
きょうこ「帰ってビバ男お兄さんに聞いてみましょう」
ビバ男 「なるほど、『圧縮』について知りたいんだね」
まなぶ 「そうなんだ。なんでデータの量が少なくなるのかを教えてほしいんだ」
ビバ男 「じゃあ簡単な『ランレングス圧縮』で説明してあげるよ。図1の白の部分を数字の0、
黒の部分を数字の1で表現するよ。そうすると0と1は全部で何個並ぶかな」
きょうこ「0,1,1,1,1,1,1,0, ……と並ぶので、8マス×8マスで64個の0と1が並びますね」
ビバ男 「その通り。次に『ランレングス圧縮』なんだけど、左から右へ白と黒がそれぞれ
いくつ並んでいるかを数えるんだ。数えたら1段下に下がって、また左から右に
数えよう。右端と1段下の左端が同じ色だったらそのまま数えちゃっていいよ」
まなぶ 「そうすると、1,6,5,1,7,1,7,1,7,1,7,1,7,1,3,8って並んでいるね」
ビバ男 「次にこの数字を2進法で表すんだ。1は001、2は010、7は111で表せるね。
今回8だけは特別で000で表そう」
まなぶ 「つまり、今出てきた数字を全部3桁の2進数にするんだから……
そうすると0と1の個数は全部で( ① )個だね!」
きょうこ「すごいわ!0と1の個数が減っているわ!」
ビバ男 「これが簡単な『圧縮』の原理なんだ。だけど、この方法も万能じゃないんだよね」
きょうこ「そうね。( ② )のような画像だと逆に数字の個数が増えちゃいますね」

(1)
①に入る数を答えなさい。
(2)
②に入るものを図1~図6の中からすべて選びなさい。
@解説@
(1)

このように数えると、[1,6,5,1,7,1,7,1,7,1,7,1,7,1,3,8]の16個。
この数字をそれぞれ3桁の2進数にするので、0と1の個数は3×16=48個
(2)
圧縮無しだと白マス=0、黒マス=1として、0と1が64個並ぶ。
0・1が65個以上になると、データ容量が大きくなる。
ランレングス圧縮をおこなうと、1桁の10進数が3桁の2進数に変わるので、
64÷3=21…1
つまり、10進数の個数が21個までならば、3桁の2進数に変えても65個以上にならない。
(*本問は連続する同色のマスは最大で8しかない)

22個以上は図2と図3。
@余談@
圧縮はいかに少ない情報量で元の画像を見せるか、もしくは見せかけるか。
ランレングス圧縮ではテキストやイラスト、ロゴ、シンプルなGIFなど、
単色の領域が広い画像の圧縮に有効である。
3本の直線で表せる『カ』が最も情報量が大きくなるのは意外だった。


コメント