トランプの4種の絵柄(ハート・スペード・クラブ・ダイヤ)を並べた暗号と解読方法~2023年共通テスト・情報関係基礎・第2問

今年(2023年)の共通テスト・情報関係基礎も、第2問が凝った出題になってるが、去年(回文)ほど奇妙な問題ではないし、トランプの絵柄だから親しみも持てる。ストーリーも受験生向けに、(テレビ)ゲームを意識して創られてた。

    

ただ、相変わらず問題文が長いので、試験場で60分で高得点を狙うのはなかなか大変だと思う。読むだけでも面倒で、じっくり論理的に考える余裕はあまりない。

    

いずれ新必修科目『情報Ⅰ』に完全移行すると、こういった謎解きパズルみたいな問題は消えてしまうのかも。今のうちに、ブログ記事を書いとこう。ちなみに、去年の記事は下の通り。今年の国語と数学でも、既に記事をアップしてある。

  

 普通の文字列を回文の連結へと分解する方法と、回文ファンの「幸いさ」~22年共通テスト情報関係基礎第2問

   

なお、日本人にとって「ソリティア」というと、PCに入ってる Microsoft のおまけゲームが有名。試しに探してみると、Windows 10 にも入ってた。後でプレイしてみたい。

  

230126k

    

ソリティア(solitaire)というのは元々フランス語(発音はソリテール)で、名詞の場合、1人きりの人とか1人遊び用のゲームを指す言葉。だからソリティアには、多数または無数の種類が存在する。この問題自体も、ソリティアの特殊な例なのだ。

   

 

     ☆     ☆     ☆

では、第2問(必答問題)の問1から。問題は、河合塾の特設サイトからお借りした。情報関係基礎には独自の「分析」も平均点予想も掲載されてないのが残念だが、受験者数も読者も非常に少ないからだろう。

   

♡(ハート)、 ♠(スペード)、♣(クラブ)、♢(ダイヤ)、4つの文字を、スペードとハートの2文字だけに変換する暗号の話で、なまじ文字数が少なくてそれほど変化しないので、逆に間違えやすいかも知れない。

   

230126a

    

230126b

230126c

    

平文(元の通信文)が ♡♣♢♣ (ハート・クラブ・ダイヤ・クラブ)なら、暗号文は、♡ ♠♠♡ ♠♠♠ ♠♠♡ だから、アの答は、選択肢の。ここでは分かりやすさのため、暗号文にスペース(空白)を入れて区切ってある。

     

また、暗号文が ♠♡ ♡ ♠♡ なら、もとの平文は、♠ ♡ ♠ 。イの答は、選択肢の

さらに、暗号文が ♠♠♠ ♠♠♡ ♠♡ ♠♡ ♡ なら、平文は、♢ ♣ ♠ ♠ ♡ 。ウの答は、

   

この変換ルールだと、♠ ♠ ♠ ♠ という4文字の暗号文にはならないから、エの答は、

最後が ♡♠で終わる文にもならないから、オの答は、

    

最後がスペードの暗号になるのはダイヤのみで、その場合、スペードは3つ連続する。ただし、それは問1のみ。次からルールが少し変更されるので、最後が ♡♠ になることもある。

   

  

     ☆     ☆     ☆

ウォーミングアップで少し慣れた所で、問2暗号化のエラーとその対策方法、復元(修正)について。

  

230126d

   

230126e

    

230126f

   

暗号文が ♡ ♡ ♠♠♡ なら、♡の数が奇数(3コ)なので、最後のおまけとして♠を加える。カの答は、

暗号文が ♡♡♠♬♠♡♡ なら、最後がハートだから、ハートの数はおまけを除いて偶数のはず。よって、♬は♡。キの答は、

  

♡が偶数なら、おまけは♡1コ。♡が奇数なら、おまけは♡0コ。よって、どんな暗号文でも、「♡の数が奇数の文」になる。クの答は、

  

その性質を使うと、1文字だけ♬になった暗号文で、「ハートの数が偶数の文」なら、♬は♡だったはず。ケの答は、

    

♠♡♠♠♬♬♡♠ という暗号文の場合、最後がスペードだから、ハートの数は奇数のはず。よって、♬2コの内、片方だけが♡だから、♬♬は ♡♠ か ♠♡ 。よって、コとサの答は、1と2。順番はどちらでも可。

   

    

    ☆     ☆     ☆

最後の問3は、第三者による暗号の解読。暗号にとっては死活問題の、安全性、セキュリティの話。

    

230126g

    

230126h

   

230126i

    

230126j

    

もし、平文の ♡ が、暗号では ♠ 1文字なら、情報2より、他の文字の暗号は「♠からは始まらない」。シの答は、

文頭が ♠ の暗号文の割合は、表3の右側4つの値を足して、10+20+20+10=60%。スの答は、

文頭が ♠♠ の暗号文の割合は、表3の右端2つの値を足して、20+10=30%。セの答は、

   

さらに、平文の ♡ が暗号で ♡ 1文字の場合。♠の暗号の文字列zは、情報2より♡では始まらないから、♠ から始まるはず。ソの答は、

文頭がスペードの平文の割合は30%だから、表3で ♠ から始まる箇所を見ると、zは ♠♡(♠♡♡10%+♠♡♠20%)か、♠♠(♠♠♡20%+♠♠♠10%)。タの答は、

 

最後に、王子が予想した暗号化の方法Bでは、♡ を ♡ 、♠ を ♠♠ にするから、♣ は、♠♡ で始まって20%の割合。つまり、♣ は ♠♡♠ 。よって、チの答

♢ は、♠♡ で始まって10%の割合だから、♠♡♡ 。よって、ツの答

   

   

    ☆     ☆     ☆

以上、解き方も含めて解答を書いて気付いたのは、4種の絵柄のマークを入力するのが面倒だということ。試験場で手書きでマークを描くのも時間がかかる

 

絵柄の代わりに、ハ、ス、ク、ダと書く方が速いだろうが、それだと問題と合わないし、トランプの感じも出ない。そういった意味でも、見た目より手間がかかると思う。

 

とはいえ、去年の奇問よりは遥かに分かりやすい。それでは今日はこの辺で。。☆彡

    

     (計 2136字)

| | | コメント (0)

Excel(表計算ソフト)を用いたシミュレーションの具体例、乱数による円周率の近似値計算~高校『情報Ⅰ』

手軽に理数系の記事を1本書こうとしたら、かなり手間取ってしまった。しかし、コンピューターを用いたシミュレーションというものの初体験にはなったから、簡単にまとめとこう。

  

ネットで普通に検索しても、かなりの知識や環境を前提とした敷居の高い記事ばかりがヒットする。ここでは、表計算ソフトならごく簡単に使ってるけど、シミュレーションも乱数の関数も全く経験がない・・という条件で、高校1年生や初心者向けに書いてみる。

   

そもそも、なぜこんな事を思いついたかというと、朝日新聞・朝刊(23年1月10日)の人気シリーズ記事「花まる先生」で、高校の新必修科目『情報Ⅰ』の授業が紹介されてたから。4領域の1つ「コンピュータとプログラム」の中の「モデル化とシミュレーション」の単元。

   

そこでは、数学や物理の世界で有名な「ランダムウォーク」(でたらめ歩き)が扱われてて、表計算ソフト「エクセル」を用いたことになってるが、具体的にどう使うのかは書かれてない。私の手元にある東京書籍の教科書でも、ランダムウォークという言葉は載ってるけど、具体的なシミュレーションのやり方までは書いてない。

   

そこで、丁寧な説明を探すと、修道大学のpdfファイルを発見。有難く読ませて頂いたが、それでも全く初めての私が1人でやってみると、何度もつまづいてしまった。ちなみに私が使用した端末は、Windows10のPC。エクセルのヴァージョンは、サプスクリプションのMicrosoft365のものだから、最新に近いと思う。

  

   

     ☆     ☆     ☆

では、円周率π(パイ)の近似値を、シミュレーションで求めてみよう。有名な実験らしくて、似た説明はネット上に多数ある。

   

1辺の長さ1の正方形の頂点から、半径1の四分円(中心角90度の扇形)を書くと、

 (四分円の面積)=1×1×π×1/4=π/4

 (正方形の面積)=1

  

一方、その正方形の中にランダム(でたらめ)に多数の点を打つと、

 (四分円の中の点の個数)/(正方形の中の点の個数)

≒(四分円の面積)/(正方形の面積)

=π/4

    

∴ 円周率 π ≒ 4×(四分円の中の点の個数)/(正方形の中の点の個数)

  

230113a

    

というわけで、1辺の長さ1の正方形の中に、でたらめに多数の点を打つシミュレーションを行えば、円周率パイの近似値が求められる。こうした方法は、モンテカルロ法と呼ばれてて、私はAI関連の知識として一応、知ってた。

  

単純ででたらめな実験を多数(無数)行うのは、人間にはほぼ不可能。コンピューターやAIの独壇場となる。将棋や囲碁の形勢判断を示す評価値の計算も、基本的にはそうした無数の対局実験に基づく。

   

   

     ☆     ☆     ☆

230113bc

   

まず、エクセルで新しい空白の表を立ち上げて、左上(A1のセル、つまりマス目)から左に、個数、x、y、「円内なら1」と入力。

    

最後の文は、正確には、「4分円の内側なら1、それ以外なら0」で、最後にこの1をすべて足し算すれば、4分円内の点の個数になる。ちなみに、円周上の点は入らないが、どうせほとんど円周上にはならないから、計算には影響ない。

   

230113cc

  

A2のセルには、個数として 1 (半角数字)を入力。個数というより、多数の点につけた番号のこと。1番、2番、・・・。

  

xの下、B2のセルには、=RAND() と半角で入力。この数式だけで、なぜか0~1の間のでたらめな数が計算される。RAND は、英単語のrandom(でたらめ)より。私は初めて使ったけど、基本的な数式の1つらしい。

  

ちなみに、でたらめといっても、何かプログラムによって計算されてるわけだから、出て来る数は「疑似乱数」と呼ばれてる。これについては、いずれ、別記事で考えてみたい。

   

yの下、C2のセルにも、同じ数式(みたいな英字と記号)を入力。これで、そのxの値とyの値を座標に持つ正方形内の点(x,y)が1つ決まることになる。

   

230113d

  

「円内なら1」の下、D2のセルには、 =IF(B2*B2+C2*C2<1,1,0) と入力。

  

これは、「もしB2×B2+C2×C2<1なら、1。そうでなければ、0」を表す省略形の命令。高校数学なら、x²+y²<1という不等式に対応。左下の原点との距離の2乗が1未満ということ。

   

   

     ☆     ☆     ☆

230113ec

   

実際に入力して、エンターキーを押すと、上のようになった。xとyの値はたまたま小さいので、正方形の左下の頂点に近い点(x,y)。つまり、4分円の内側の点。よって、Dの列には自動的に 1 が出力される。

  

個数1の所の横のセル4つ(第2行目)を選択して、下側にドラッグで引っ張ると、自動的に2個目、3個目・・・の値も現れる。

  

230113f

 

個人的には、4つのセルの選択と引っ張る操作に何度も失敗してしまったが、何とかなった。普通に四角の角からポインター(矢印)を引っ張ろうとすると、途中で切れたり、左端の 1 という数字のコピーになったりしたのだ。あと、何か入力してエンターする度に、でたらめな数が勝手に変化するので戸惑った。

   

   

     ☆     ☆     ☆

続いて、点100個(第2行~第101行)のデータをまとめて、円周率πの近似値を計算する。

  

230113g

  

分かりやすさのために、Eの列は空けて、F、G、Hの列を利用。それぞれ、点の総数、円内の点の数、πの近似値と入力。

  

230113h

    

「点の総数」の下、F2のセルには、100 と入力。「円内の点の数」の下、G2のセルには、 =SUM(D2:D101) と入力。D2のセルからD101のセルまでにある、全ての 1 の和を求めることで、個数を求められる。

   

そして、「πの近似値」の下、H2のセルには、 =4*(G2/F2) という式を入力。要するに、4×(G2/F2)、つまり、4×(円内の点の数)/(点の総数)。

  

230113i

  

私が実際に試すと、最初のπの近似値は2.92と出た。3.141592・・と比べると、ちょっと小さい。2回目は確か、3.2くらいだった。これを何回も繰り返すのと、個数を1000個、10000個と増やすのと、どちらが正確な近似値になるのかは今のところ不明。いずれにせよ、確率統計的な話であって、厳密なπの計算ではない。

   

あと、元のファイルには、f9キーを押せば繰り返せると書かれてたが、私の場合には出来なかった。その代わり、何か適当なセルに入力してエンターしたり、削除したりすると、勝手に全ての数字が変化した。

   

   

     ☆     ☆     ☆

なお、円周率の計算は上ですべて完了してるが、聞き手や読み手へのプレゼンテーション的には、シミュレーションのグラフがあった方が分かりやすい。

     

xとyのデータをグラフ(散布図)にする一方、4分円のグラフは別に書いて、どちらかをコピーしてもう一方にペーストすると、下のようになった(私が作った図)。

  

230113j

    

円周の式は、y=√1-x²。xの値は、0から1まで、0.01刻みくらいに細かく取る。グラフの書き方やオートフィル(自動入力)の設定などは、元のファイルや別の情報を参照した。ここではもう、省略しよう。

    

230113k

   

新しい話に対応するのは疲れるが、面白いし、達成感もある。今日のところはこの辺で。。☆彡

   

      (計 2865字)

| | | コメント (0)

令和3年度、文科省・情報活用能力調査の調査問題例と正答(小中高、4年1~2月)、感想とレビュー

ネットを適当に飛んでたら、たまたま、文部科学省の情報活用能力調査のニュース記事を発見。軽い記事にちょうど手頃の内容なので、感想記事にしとこう。今週は月火の2日だけで7000字超も書いてるから、ごく簡単なレビュー。単なるまとめや紹介ではなく、批判も織り交ぜる。

     

221228ac

  

約1年前に行われた、情報活用能力の調査結果「の一部」が、令和4年(2022年)12月27日に公開された。小学5年生、中学2年生、高校2年生が対象。「速報結果」だから、後ほど詳しい分析も示されるのかも知れない。実際、前回の同種の調査(平成)については、詳しい結果が公開されてる。

     

ただ、今後の調査も考えて、基本的には問題は非公開とのこと。コンピューターを利用するCBT形式だから、小学生にとっては端末の操作だけでも大変。

  

問題には、小中高の共通問題が多いが、中高のみの問題もある。多数の問題から、生徒ごとに問題のセットを変えて出題。これでは、普通に考えれば、各生徒が異なるテストを受けたことになってしまうが、IRT(項目反応理論)によって「同一尺度で得点化」できるとのこと。

     

このIRTの信頼性や公平性に疑問を感じるが、その点はここでは省略。今回、公開された3問を見てみよう。どれも小中高の共通問題。

      

時間は30分×2とだけ書かれてるが、その時間で何問解くのかも公開すべきだろう。情報処理では速度が大切で、人それぞれの差も開く。1人あたりの問題数さえ公開したくないということだろうか? 受験者や実施した学校は把握してるはずだから、それで十分だと。配点も総得点の計算方法も書かれてないのに、総得点の分析だけかなり詳しく公開されてる。

   

   

      ☆     ☆     ☆

では、調査問題例1。環境問題のウェブページの正確な理解。

      

221228b

      

221228c

    

221228d

   

残念ながら、5項目のリンク先の内、最初の1項目である「オゾン層の破壊」しか公開されてない。要するに、これだけで正しい選択肢が1だと分かる、と担当者は考えてるのだろう。2~5の選択肢は明らかに間違い、という考えもあるのかも。

   

ポイントは、最後の1文。「フロンガスは温室効果ガスでもあり、地球温暖化を防ぐためにもフロンガスの規制は重要です」。これを読んで、最も適切な選択肢が「フロンガスは地球温暖化をもたらす」だと判別させる。

   

既に、環境の知識をかなり学んでる中高生ならともかく、小5の生徒には内容自体が分かりにくいと思うし、項目名と選択肢の内容もズレてる。この量の説明があと4項目分もあるのなら、情報量も多過ぎ。社会人でも、それら全体の説明を正確に理解する機会はかなり少ないはず。クリックして、全員にすぐリンク先が表示されたのかどうかも気になる所だ。

    

正答率は、小学生32%、中学生58%、高校生73%。小数点以下は、引用者が四捨五入。3問中、この問題で最も小中高の差が開いてるのは、環境問題の知識が響く問題だからだろう。

      

   

     ☆     ☆     ☆

次に、調査問題例2。明るさセンサーのプログラム(フローチャート)の完成。将棋の藤井五冠王を意識してるのか、「聡太」が主人公。

       

221228ec

    

221228fc

      

これは、AとBの両方が合ってる場合のみが正解だろうか? 結果に明示されてないが、正答率が2つに分かれてないので、そう考えるのが自然か。正答率は、小学生41%、中学生62%、高校生69%。高校生の低さがやや目立つ。

   

おそらく、間違いの多くはBだろう。明るさセンサーが「明るい」と感知した時、「ライトが消える」を正答としてるが、問題文にそのような事は書かれてない。「暗くなったらライトが光る」と書かれてるだけだから、不十分か不親切な問題文だと感じる。

  

それ以上に間違いを増やしてしまったのでは?と思われるのは、センサーとライトを分けてること。家庭向けだと、それらは一体化されてるのが普通だろう。そう思ってる生徒にとっては、AもBも「明るさセンサーが・・」と書かれたカードを選んでドラッグするのは自然なこと。そちらが先に挙げられてるし、問題文の主体もセンサーだし、時間がないからだ。

     

私が出題者なら、問題文に、センサーとライトが別物であることを明記。また、「暗くなったらライトが光る」ではなく、「暗いならライトが光り、明るいならライトが消える」と書く。

    

「暗くなったら」と「暗いなら」が別の条件だということ、「暗いなら」の方が明確だということは、日常言語の論理における基本的知識だろうが、正確に理解・区別してる人は少ない。

  

   

     ☆     ☆     ☆

最後に、調査問題例3。フォルダの正しい理解と選択

    

携帯端末(スマホ、タブレット)を軽く使ってるだけの生徒だと、フォルダ自体が分かりにくいはず。フォルダではなく、「アルバム」という名前で呼ばれてることも多い。

    

例えば、iOSの「写真」アプリも、Androidの「フォト」アプリも、「アルバム」という名前を使ってる。デスクトップのフォルダの中のフォルダ、という三重の入れ子構造も、基本的にPCの特徴だろう。携帯端末では、二重の構造を使う程度。

     

221228gc

    

221228hc

  

これは、旅行フォルダを開くだけで正解と判定されるのだろうか? 正答には、「『旅行』フォルダを開いた状態で『次へ』ボタンが押されているもの」と書かれてるが、問題文には、「進む」を押してくださいと書かれてる。

   

「次へ」と「進む」の関係の曖昧さが気になるが、正答率は高いから、誤解は少なかったのだろう。小学生52%、中学生76%、高校生84%

  

   

      ☆     ☆     ☆

以上、情報活用能力を求めることも、調査することも正しいと思うが、問題や調査、公開には気になる点も多かった。今後の改善に期待しよう。

  

1人1台の学校用タブレットが確保されてる場合、PCとは別に、タブレットの調査もあっていい。それに対して、スマホは個人的な物だから、調査には使いにくいかも知れない。

  

なお、キーボードによる1分間あたりの文字入力数は、小学生16文字、中学生23文字、高校生28文字。3分間で、総文字数285文字の入力を求めたそうだが、これも具体的な入力内容が全く書かれてないので、何とも言えない。

  

あまり入力が速くないのは確かだろうが、漢字が多いとか、英字の大文字・小文字・半角・全角の切り替えが多いと、面倒だと思う。入力しにくい記号もある。多数の変換候補が並んで、下の方でようやく表示されるとか。数字の半角・全角の区別は微妙だが、正しく指示されてただろうか。

    

ともあれ、いつの間にか長くなったので、今日はそろそろこの辺で。。☆彡

   

      (計 2649字)

| | | コメント (0)

デジタル画像の可逆圧縮、「ランレングス(連長)圧縮」の簡単な具体例と説明、圧縮率の計算~高校『情報Ⅰ』

2022年度から全面的にスタートした高校の新必修科目、『情報Ⅰ』。先日アップした、音声のデジタル化の記事に続いて、今日は画像の可逆圧縮について書いてみよう。

  

綺麗なカラー画像(24ビット、約1678万色など)というものは、そのままデジタル表現するとデータ量が多くなってしまう。だから普通は、「圧縮」することになる。

  

ネット上で綺麗な写真などによく使われてるのが、JPEG圧縮。かなりデータ量を減らせるし、圧縮率90%くらいなら見た目も元の画像データとほとんど変わらない。しかし、JPEG圧縮画像から元の画像に戻すことはできない。非可逆圧縮(不可逆圧縮)だから。

   

  

     ☆     ☆     ☆

それに対して、元に戻せる可逆圧縮もあって、その1つがランレングス圧縮。これは、同じ色が連続してる時に、その色と連続の長さとで表す方法。「ランレングス」を直訳すると、「連続の長さ」になるから、例えば日本語では「連長圧縮」とも呼ばれてる。

    

最大手の東京書籍の教科書を見ると、わりと大きめ(16ピクセル×16ピクセル)のリンゴの画像でかなり短く説明してたが、データ量の変化まで完全に理解・計算できる高校生は少ないと思う。

    

見方を変えると、そこまで新カリキュラムは要求してないのかも知れない。だから、短い説明に留めてるとか。ただ、大人の私自身は面白かったので、もっと簡単な例でやや詳しく解説してみよう。

  

個人的には、ランレングス圧縮の画像を人間が手作業で作るのは大変だということが実感できただけでも意味はある。むしろ、元のオリジナル画像の方が、遥かに簡単に作れたのだ。あと、「ロジック」(論理)と呼ばれてるお絵描きパズルと似てることに気付いた。試しに後で、パズルの方もやってみるかも知れない。

    

   

      ☆     ☆     ☆

まず、極端に簡単な例から始めよう。

   

221213a

  

上図は、横1列、6マスの画像で、後で見るリンゴの画像の下の段の左側だけ取り出したもの。マス目は、ピクセル(画素)と呼ばれる。左の2ピクセルが白、その右の4ピクセルが赤になってるから、ランレングス圧縮では、白2赤4のように表現する。図にすると、次の通り。黒い斜線部は、何も記録されてない部分で、教科書では「データ消滅分」と書かれてた。

   

221213b2

   

では、データ量はどう変化したのか、計算してみよう。色は、後でリンゴ全体を見る時に4色使うので、1ピクセルあたり2ビット(2×2)の情報量と考える。例えば、白は00、赤は01、グレーは10、黄色は11。2ケタの2進数で表せる。

    

元の画像は6ピクセルだから、(元のデータ量)=2×6=12ビット。

  

一方、圧縮後は、色が2ビットで同じ。連続の数は、最大で6ピクセル(1~6)だから、それぞれ3ビット(2×2×2)。上の例だと、2ピクセルは、010。4ピクセルは、100。3ケタの2進数で表せる。

  

だから、(圧縮後のデータ量)=(2+3)+(2+3)=(2+3)×2=10ビット。

∴(圧縮率)=10/12≒83%。

   

あまり圧縮されてないが、それほど色が連続してないし、可逆圧縮だから仕方ない。

   

ちなみに、数学的にはまぎらわしい言い方だが、「圧縮率の%の数字が大きい」ことを、「圧縮率が低い」と言うらしい。つまり、あまり圧縮されてないという意味。逆に、「圧縮率の%の数字が小さい」ことを、「圧縮率が高い」と言う。かなり圧縮されてるという意味。

   

だから教科書にも、「一般に可逆圧縮より非可逆圧縮のほうが圧縮率が高い」と書いてた。私は一読して間違ってると思ってしまったが、「高い」=「小さい」と読みかえるのなら正しい。例えば、ランレングス圧縮よりJPEG圧縮のほうが圧縮率が高い。

   

   

     ☆     ☆     ☆

続いて、64ピクセル(8×8)で描いたリンゴのデジタル画像。ちなみに、グレーはヘタの部分、黄色は光沢がある場所を表してる。

   

221213c

   

上図をランレングス圧縮すると、下図のように表せる。色と数の組合せは全部で28セットになる。横のピクセル数は10まで増えてしまうが、問題ないはず。教科書の図では増えてないが、それは同じ色の連続数が多い図にしてあるから。

            

221213d

   

では、データ量の計算。(元のデータ量)=2×64=128ビット。

   

(圧縮後のデータ量)=(2+3)×28=140ビット。

  

色の連続が少ないので、圧縮後の方がデータ量が増えてしまってる。

 (圧縮率)=140/128≒109パーセント

  

理論的には最初から予想できてたが、すぐに実例と出会うとは思わなかった。試しにGoogleで、「ランレングス圧縮 データ 増える」を検索してみると、その欠点を指摘する記事が色々とヒットした。

  

日本語ウィキペディアの「連長圧縮」の項目にも、欠点が指摘されて、その解決方法の説明も書かれてた(PackBits法など)。ここでは扱わない。

   

   

      ☆     ☆     ☆

最後に、意外と圧縮される例も示しとこう。4色で16ピクセル(4×4)の格子状の画像。

   

221213e2

  

ランレングス圧縮では、下の図のように表せる。

  

221213f2

   

これなら、かなり圧縮されてるように見える。圧縮後の計算では、横が4ピクセルだから、連続の数が3ビットではなく2ビットになることに注意。1ピクセルなら00、2ピクセルなら01、3ピクセルなら10、4ピクセルなら11と表せる。結局、色で2ビット、連続の数でも2ビット使う。色と数の組合せ(2+2ビット)が、計4セット。

      

(元のデータ量)=2×16=32ビット

(圧縮後のデータ量)=(2+2)×4=16ビット

(圧縮率)=16/32=50%

    

   

     ☆     ☆     ☆

以上から、単純なランレングス圧縮は、色の連続が多い単純な画像の時だけ上手く行くことが分かる。

  

あらためて、教科書の図が大きめに作られてた理由が理解できた。要するに、色の連続を増やして、本当に圧縮されるように配慮した図を掲載してるのだ。確かに、1つだけ例を挙げるのなら、成功例を挙げる方が教育的だろう。一般的な高校生にとっては。

   

それでは今日はこの辺で。。☆彡

    

       (計 2442字)

| | | コメント (0)

アナログの音のデジタル化(標本化=サンプリング、量子化、符号化)~高校『情報Ⅰ』(新必修科目)

前から気になってたが、高校の新しい必修科目『情報Ⅰ』の授業内容が分かって来たので、とりあえず簡単な記事を1本書いとこう。これを機に、記事のカテゴリーに「情報」を新設したので、今後は関連記事が増える予定。

  

ちなみに先日、共通テストの試作問題の記事ならアップしておいた。参考までに。

  

 データの正誤のパリティチェックと16進法、論理回路と真理値表

  ~2025年(令和7年度)共通テスト試作問題・情報Ⅰ

   

  

     ☆     ☆     ☆

さて、文科省の新学習指導要領に基づく情報Ⅰのカリキュラムは、一言でまとめるなら、広く浅い内容になってる。

  

ただ、浅いといっても新しい科目なので、生徒はもちろん、大人の多くもよく知らないと思われる話が多数入ってる。現役の高校1年生がどう感じるのかは分からないが、半ば理数系の大人の私にとっては、全体的にとても興味深い内容だ。

   

例えば、文字情報や画像の扱いについては、今までも何本か記事を書いてるし、ある程度の知識やイメージは持ってる。しかし、音声の具体的な処理方法についてはほとんど理解してなかった。アナログの音をデジタル化するとか、0、1の2つの数字で表すといった話なら何となく分かるが、理論(の初歩)は最近はじめて知ったこと。

    

自分の復習も兼ねて、自作の図と共にまとめ直してみよう。参考にしたのは、最大手・東京書籍の教科書『情報Ⅰ』。2章・情報デザイン、17節・音のデジタル表現。数学で昔からある2進法の話と、文字コードの話の次に置かれてる。

    

   

     ☆     ☆     ☆

221210a

  

今、上のようなアナログ波形の音があったとしよう。横軸は時間(右向きが正)。縦軸は音の大きさでもいいはずだが、ここではカリキュラムに従って、電圧としとこう。普通の空気振動としての音を、マイクで機械に入力して、電気信号の波に変えた所から考える。

   

221210b

   

適度な時間間隔で、飛び飛びの電圧の値を獲得する(赤い縦線の長さ)。この作業が「標本化」(サンプリング)。時間間隔が標本化周期で、上図では1マス分の横の長さで表されてる。

    

221210c

   

標本の電圧(赤い縦線の長さ)に最も近い整数値(ここでは0以上7以下)を求める。これを「量子化」と呼ぶ。例えば、3.7なら4にして、7.2なら7にする。

  

上図では左から、1 4 5 7 5 2 2 5 4。これらは3ケタ(=3ビット)の2進数に直せるので、「量子化ビット数」は3

   

ちなみに、たまたま2.5とかの中途半端な値になった時は、2とするか3とするか、あらかじめ決めておけばよい。ただ、完全に真ん中の数になることは確率的にほとんど無いはず。

       

最後に、それらの数字を3ビット(=3ケタ)の2進数で表す。これが「符号化」で、結局こうなる。

 001 100 101 111 101 010 010 101 100

   

   

     ☆     ☆     ☆

続いて、計算問題を解いてみよう。音楽CDの1分(=60秒)あたりのデータ量を求めてみる。

  

1秒間に44100回のサンプリングで、それぞれ16ビットの数値で表す。さらに、左右2つのチャンネルで録音すると考えて、

       

(1分あたりのデータ量)

=16×2×44100×60 bit(ビット) 

=84672000 bit

=10584000 B(バイト)

≒ 10000 KB(キロバイト)

≒ 10 MB(メガバイト)

     

ちなみに、性格には1KB=1024B、1MB=1024KBだが、1024だと単位変換の計算が面倒だから、1000で済ませることは珍しくない。テストでは、1024で割り切れる値を出題するか、近似値計算にするか、変換不要にするか、どれかだろう。

     

とにかく、50分あたりだと約500MBだから、確かにCD1枚分の容量に近くなる。なるほどと納得。といっても、実際にはまだここからデータを圧縮するのかも知れない。

   

   

     ☆     ☆     ☆

最後に、サンプリングの周期について。つまり、どのくらいの時間間隔で電圧を獲得するか。

   

221210d

   

上図の青丸のように、音の波と同じ周期(横2マス分の時間)で電圧を取ると、青丸が横に並ぶだけで、上下の波にならない。ちなみに曲線は、英語版ウィキペディアのsin(サイン)曲線。すなわち、高校数学や物理の正弦波。

     

221210e

  

そこで、上図のように、元の音の波の半分の周期(横1マス分の時間)で電圧を取ると、青丸だけで上下の動きを再現できる。ただし、最善のタイミングで取る必要がある。

   

221210f

   

慣れてないと分かりにくい話なので、上図では周期を矢印で示した。赤い矢印の長さが、元の周期。青い矢印の長さが、サンプリングの周期。

  

   

     ☆     ☆     ☆

元の波の周期は一定とは限らないので、元の最小の周期の半分以下でサンプリングする必要がある。さらに、最善のタイミングで取るのはほとんど不可能だから、半分「未満」にすべきはず。要するに、なるべく細かく電圧をサンプリングするということ。

   

アナログ信号をデジタル信号へと変換する時、元の最小周期の半分未満の周期でサンプリングする必要がある。

  

ところで、周波数は周期の逆数。つまり、「周波数=1/周期」だから、周期が半分未満なら、周波数は2倍超。

  

というわけで、「標本化定理」(サンプリング定理)が導かれる。

  

アナログ信号をデジタル信号へと変換する時、元の最小周期の半分未満の周期でサンプリングする必要がある」。

  

大まかに言えば、なるべくきめ細かくサンプリングしないと元の音が再現できないということ。これだけで既にかなりの時間を取られてしまったので、今日のところはこの辺で。。☆彡

    

      (計 2225字)

| | | コメント (0)