高等学校情報/社会と情報/情報のデジタル化


コンピューターによって伝達される情報の中身は、「電圧が高い」=1、「電圧がひくい」=0として、ただ0と1のパターンだけで代表される情報である。
このように0と1の数値で表わされる情報をデジタル情報と呼ぶ。一方、離散的ではない量で表わされる量はデジタルに対してアナログ情報と呼ばれる。(※語の英訳: デジタル digital、アナログ analog)
文字を送るには、たとえばアルファベットの文字を送りたいなら、「A」ならデジタル信号 0100 0001 に対応するとして、あらかじめ決めておく。同様に、「B」ならデジタル信号 0100 0010 に対応するとして、あらかじめ決めておく。「C」ならデジタル信号 0100 0011 に対応するとして、あらかじめ決めておく。
このように、それぞれの文字ごとに、あらかじめ固有のデジタル信号を割り当てておけば、1と0だけのデジタル信号だけで、アルファベットを送受信できる。
このように、文字などの、もともとは数値でなかった情報を、コンピューターであつかいやすいように数字の列に置き換えることを、符号化(ふごうか、encouding)という。
デジタル情報は、基準の電圧の値(「しきい値」(しきいち))よりも「高い」か「低い」かさえ分かればいいので、少しのノイズがあっても、もとの情報を復元できる。
このように、デジタル情報は、ノイズの影響を受けにくい。
いっぽう、アナログ情報は、ノイズの影響を受けると、復元しずらい。

ふだん私たちが使っている、0から9までの数字をつかった数え方を十進法(じゅっしんほう)という。また、十進法で表記された数のことを十進数という。
コンピューターは、十進法の「1」に対応する数値をあつかうとき、普通のコンピュータでは「0001」というデジタル信号としてあつかう。 コンピューターは、十進法の「2」に対応する数値をあつかうとき、普通のコンピュータでは「0010」というデジタル信号としてあつかう。 同様に、「3」という数値をあつかうとき、「0011」というデジタル信号としてあつかう。 「4」なら「0100」というデジタル信号として扱う。
このように、していけば、デジタル信号「1111」は、十進法の「15」に対応していく。
このように、0と1という2つの数字だけの数え方を、2進法あるいは2進数という。
2進数を用いるときには、10進数を用いるときと同様に、1の位が2進数の最大の数である1となった時に、更に1を加えるときには、ケタ上りが起こる。
例えば、0の次は1であるが、1の次は、1の位が1であるため桁上りが起こり、次の数は10である。(これはジュウではなく、「イチゼロ」と読む。)
さらに次の数は11であり、さらに次の数は100である。
このような手法を用いて、非常に大きい数も表わすことができる。
2進数を10進数に換算するには、
たとえば、2進数「1011」を10進数に置き換えるには、 (10進数の)数式で表せば、
のように計算すればよい。
よって、2進数「1011」は10進数「11」に対応することが分かる。
さて、「110」という数字だけでは、それが十進数か二進数であるかは分からない。
さて、数学的には2進数が理論的な都合のため扱いやすいが、桁数が大きくなるという不便がある。そこで、コンピューター産業の実務では、16進数が使われることも多い。
10進数、2進数と16進数との対応表を示す。

1ケタの2進数によって、「0」か「1」という、2通りのパターンが表せる。 たとえば、コインの表をたとえば「0」と仮定して、またコインの裏をたとえば「1」とすれば、1ケタの2進数によって、1枚のコインの表裏を表せる。
つまり、1ケタの2進数によって、2通りの情報が表せる。
同様に、2ケタの2進数によって、「00」「01」「10」「11」という、4通りのパターンが表せる。つまり、2ケタの2進数によって、4通りの情報が表せる。たとえば四季のうち、春は「00」に、夏は「01」、秋は「10」、冬は「11」とすれば、2ケタの2進数によって四季のパターンを表せる。
一般に、 n {\displaystyle n} ケタの2進数によって 2 n {\displaystyle 2^{n}} 通りのパターンが表せるので、つまり、 n {\displaystyle n} ケタの2進数によって 2 n {\displaystyle 2^{n}} 通り情報が表せる。
コンピュータ科学では、この「0」か「1」かの1ケタぶんの情報の量を基準にする。そして、「0」か「1」かの1ケタぶんの情報の量のことを1ビットという。つまり、ビット(bit)が、情報の量をあらわす単位である。
そして、1ビット増やすごとに、表せる情報の量は2倍になる。
n {\displaystyle n} ビットの情報は 2 n {\displaystyle 2^{n}} 通りのパターンに対応している。
数学的にはビットという単位が扱いやすいが、膨大な情報をあつかうとケタ数が多くなるので、8ビットをまとめて「1バイト」とする、バイト(Byte)という単位ができた。
つまり1バイトは、 2 8 = 256 {\displaystyle 2^{8}=256} 通りの情報を表す。
実生活では、大きな情報の量を表す時、このバイトという単位の前に、さらにキロ(K)やメガ(M)やギガ(G)などの2進接頭辞をつける事も多い。
このような、情報の量のことを情報量(じょうほうりょう)という。

前の節でも説明したが、コンピューター内部での文字の扱いは、たとえば「A」ならデジタル信号 0100 0001 に対応するとして、あらかじめ決めておく。同様に、「B」ならデジタル信号 0100 0010 に対応するとして、あらかじめ決めておく。「C」ならデジタル信号 0100 0011 に対応するとして、あらかじめ決めておくのであった。
このように、文字などの、もともとは数値でなかった情報を、コンピューターであつかいやすいように数字の列に置き換えることを、符号化(ふごうか、encouding)という。
さて、文字を2進数の番号に対応させたとき、その2進数の番号のことを文字コード(character code)という。
2進数で表すとケタが多くなってしまうので、16進数で文字コードを表す場合もある。
たとえば、文字「A」のデジタル信号 0100 0001 なら、前半の 0100 は 4に対応、後半の0001は1に対応するので、「A」は16進数では 41 で表される。
ちなみに、このデジタル信号 0100 0001 は ASCIIコード(アスキーコード)という文字コードの規則のばあいの文字「A」の文字コードである。「ASCII」とは American Standard Code for Information Interchange の略であり、1960年代にアメリカ合衆国で定められた。
以下に、ASCIIコードの一覧を示す。
ASCIIコードは、7ビットである。
ASCIIコードは、英数字を扱えるが、日本語をあつかうには情報量が足りなくて、日本語を扱えない。
そのため、日本国では、日本産業規格(にほんこうぎょうきかく、略称:JIS、※ JISは「ジス」と読む)によって1970年ごろから、ASCIIコードを参考にして、ASCIIコードの7ビットにさらに1ビットを加えて8ビットの文字コードとすることで、英数字にくわえてカタカナや句読点など日本語特有の記号をあつかえるJISコード(「ジスコード」と読む)が定められた。
1バイト=8ビットでは、2=256通りの情報量を扱える。
日本の古いパソコンで、英数字とカタカナしか表示できないのは、このような理由による。 ASCIIやカタカナだけのJISのように、1バイト以内(1バイトもふくむ)の文字コードを「1バイト文字」などという。
しかし、たった256通りの情報量では、漢字やひらがなを扱うには、情報量が足りない。
そこで、さらに1バイトを足して2バイトで文字をあつかうことによって、漢字や平仮名も処理できるようにした2バイト文字がJISによって定められ、JISコードに2バイトの文字コードが導入された。このように、2バイトの文字コードのことを「2バイト文字」などという。
しかしJIS規格は、日本の規格のため、外国のコンピューターシステムでは通用しない場合がある。 JISコードに対応していない外国などのコンピュータでは、日本語がうまく表示されず、符号を英数字などと間違えてしまい、意味不明の英数字の文字列が表示されてしまう。
このような、いわゆる「文字化け」(もじばけ)が、文字コードの規格の不対応によって起きてしまう。
そのため、さらに文字コードの情報量を多くすることで、英語や日本語だけでなく、いろんな国の言語を統一的にあつかえるUnicode(ユニコード)が定められている。近年では国際化のため、文字コードをなるべく Unicode に統一する動きが、さかんである。そのため、近年、Unicode が普及してきている。
Unicode の符号化の方式には UTF-8 や UTF-16 などがあり、多くの場合に UTF-8 が使われている。なお、「UTF」は「ユーティーエフ」と読む(※ 数研出版)。 たとえば2023年現在、webサイトのソースコードの規格である HTML5 および後継規格(※ HTML Living Standard)では、文字コードはUTF-8が推奨されている(実教『情報I』P35 傍注、開隆堂『情報I』脚注)。
なお、UTF-8 がユニコードの一種だという証拠として、UTF-8の「UTF」とは Unicode Transformation FOrmat のこと(実教 I)。
近年では国際規格の ISO によって Unicode が規定されている。(※ 検定教科書の範囲内。開隆堂の教科書など。)
なお、近年に Unicode が普及する以前、ASCIIコードを参考にいろんな文字コードが各国や各団体によって考えられ各国で実用化されていたので、そのため世界にはいろんな文字コードがある。
音は、「音波」などと言われるように、波であるので、波形で表せる。
音波のグラフでの表現方法には色々あるが、よくある表現方法のひとつでは、横軸に時間、縦軸に音の強さという表現方法がある。右図のグラフも、それに合わせて、ある音の強さをセンサー類などで電圧に変換したものをグラフで図示したものである。
まず、音とは、空気の振動であるので、何らかの電気的なセンサーによって、空気のゆれを読み取れば、音を読み取れる。
音は波であるので、音の波形には周期(しゅうき)や周波数(しゅうはすう)がある。周波数とは、1秒間にふくまれる波の数であり、単位は[Hz](発音:「ヘルツ」)である。たとえばラの音の周波数は440Hzである。周期は、波が1個ぶん、伝わるのに要する時間であり、単位は秒[s]である。
ふつう、自然界の音には、周波数のことなる、いくつもの音の合成であり、無限個の種類の音が含まれている。だが、コンピューターでは無限の情報をあつかえないので、一定の時間の間隔で、各時間の音の強さを読み取る。
このように、一定の間隔でデータを読み取ることを標本化(ひょうほんか、英語: sampling)またはその英語にもとづきサンプリングという。
1秒間あたりに標本化する回数をサンプリング周波数といい、単位はヘルツ(記号は Hz )である。
音に限らず、サンプリング周波数が高くなればなるほど、より細かい間隔で取り出すことになるので、もとのアナログ波形に近づく。
なので、サンプリング周波数を増やすほど、実際の音に近くなるが、そのぶんだけ必要なデータ量も増える。
そして、標本化によって取り出された各時間のデータを、それぞれ整数に置き換えることを量子化(りょうしか、quantzaition)という。
このように量子化されたデータをまとめて、たとえば 0110 1010 0111 ・・・(以下略)というように、コンピューターが読み取りやすいように0と1からなる2進数の数字の列にすることを符号化(ふごうか、encoding)という。
サンプリング1回あたり、たとえば1つの音を3ビットで符号化すれば、2×2×2=8 なので(2の3乗)、8段階の強さを表現できる。 あるいは、4ビットずつで符号化すれば、2×2×2×2 = 16 なので、16段階の強さを表現できる。
このように、サンプリング1回あたりに割り当てているビット数のことを量子化ビット数と言い(※実教出版 I、日本文教出版 I)、量子化ビット数が多いほど波の波高を多い段階で表現できるので、誤差が少なくなる。
一般に n ビットで 2 段階の表現をできる(※ 日本文教出版 I)。
このように、サンプリング周波数が高いほど、あるいは量子化ビット数が多いほど、元のアナログ波との誤差は少なくなるが、使用するデータ量は増える。
なお、公式として、
である。
モノラル音声なら1チャンネル。ステレオ音声なら1チャンネルである。(日本文教出版)

そして、このように記録された音の強さのデーターをもとに、音をスピーカーなどから適切に出力すれば、音声を出力できる。
このように、音の強さを記録および出力することによって、音声をコンピューターで記録したり演奏する方法をPCM方式(ピーシーエムほうしき)という。Pulse Code Modukation の略である。直訳すれば、パルス符号変調方式となる。
いっぽう、もし楽器だけからなる曲なら、楽譜のデータだけを記録・処理すれば、音をあらわせる。演奏された曲は記録せず、楽譜のデータだけを記録することで、それを出力して曲を再生する方式をMIDI方式(ミディほうしき)という。
MIDIは、演奏された曲そのものは記録してないので、PCMとくらべればデータ量が少なくてすみ。

CD(コンパクトディスク)では、音楽CDのサンプリング周波数は44100Hzである。ケタ数が多いので、44.1kHz とも表す。 CDは16ビットで量子化している。
つまり、CDの量子化ビット数は16ビットであり、つまり65536段階である(実教出版 I)。
上記をもとに音楽CDの1分あたりのデータ量をバイト単位で求めよ。有効数字は4ケタとする。なお、ステレオ音声なのでチャンネル数は2である。
ただし、電卓を用いてよい。
また、1バイトは8ビットとする。(つまり16ビットで2バイト。)なお、バイトの単位はBとして、1メガバイト(1MB)=1000000 Bである。(※ 1メガは10の6乗。つまり1の後ろにゼロが6つでメガ。)

解法)
まず、1秒あたりのデータ量の公式は、
であった。
まず、これを求めよう。代入し、
=1411200 ビット
これはまだ1秒あたりである。求めたいのは1分あたりなので60倍して、
である。
求めたいのはバイト単位であり、1バイト=8ビットなので
84672000 ÷ 8 = 10584000 バイト
メガバイト単位に直せば、
10.584 MB
である。
有効数字が4ケタなので、答えは
10.58 MB となる。


たとえば、50Hzと40Hzと30Hzという3つの波を合成した波形があったとする。周波数ごとに、それぞれ、振幅が異なるとしよう。
この合成波を標本化するには、100Hz以上で標本化すれば、もとの波形を完全に復元できるのに充分な情報が得られる事が、数学的に分かっている(※ 証明は、大学レベルであり、高度に専門的なので、省略)。
つまり、「波形に含まれる最大周波数の2倍で標本化すると、最小の周波数で標本化できる」という定理(ていり)がある。
これを標本化定理(ひょうほんか ていり)という。
サンプリング周波数が高ければ高くなるほど、出力される波形は、もとの波形に近づく。だが、そのぶん、記録しなければならないデータ量が増えてしまう。
なので、なるべく小さいサンプリング周波数で、標本化したい、という記録のさいの都合がある。
標本化定理によって、合理的なサンプリング周波数を知れて、記録データ量を節約できるので、便利である。

もとの音の周期の半分よりも、より短い周期で標本化すると、数学的に合理的であることが分かっている。
なお、周期と周波数は逆数どうしの関係にあるので、周期を基準にして標本化定理を言い換えると、
「合成波の波長のうち、もっとも短い周期の2分の1以下で、標本化すればいい。」というふうになる。
最大周波数が50Hzの合成波なら、周波数50Hzとは周期0.02[s]のことだから、つまり 0.01[s]以下で標本化すればいい。

1949年に、米国のクロード=シャノンと、日本の染谷勲(そめや いさお)が、標本化定理を発見した。

まず、パソコンなどの液晶モニター中の画面の色は、赤色なら赤色の透明セロハンを通り抜けた光であり、緑色なら緑色の透明セロハンを通り抜けた緑色の光であり、青色なら青色の透明セロハンを通りぬけた青色の光である。
いわゆる「光の三原色」、「加法混色」(かほう こんしょく)である。
そして、この赤(R)、緑(G)、青(B)という3つの原色(げんしょく)をくみあわせて、組み合わせのさいのわりあいを調節することで、いろんな色を表す。
赤・緑・青の3色とも合わさった場合が白色である。
いっぽう、図画工作や美術で、絵の具でおおくの色をまぜあわせていくと黒くなっていくように、印刷物では色を混ぜれば混ぜるほど、黒くなっていく。この絵の具のような色の混ざり方を減法混色(げんぽう こんしょく)という。
赤(正確にはマゼンダ)・黄色(イエロ-)・青(正確にはシアン)の三種類に分解する方式。
減法混色では、シアン(C: Cyan)、マゼンタ(M: Magenta)、イエロー(Y: yellow)という3色が原色(げんしょく)である。 カラープリンターでは、この減法混色の三原色のインクが使われている。つまり、カラープリンターのインクは、シアン、マゼンダ、イエローの3つのインクが使われている。
実際のカラープリンターでは、黒をきれいに印刷するために、さらに黒インク(K)を加えている。
つまり、実際のカラープリンターでは、シアン(C)、マゼンタ(M)、イエロー(Y)、黒(K)、という4種類の色のインクが使われている。
現在のパソコン用の画像処理ソフトなどで、色をつくっているときに、たとえば
などというように、
それぞれの原色の数値を調節して、色をつくっていく。
なお、この例の場合の「255」「180」「10」などは十進数である。
一般に、各原色はそれぞれ0から255までの整数を取れる。つまり、それぞれの原色は256段階である。 たとえば「赤(R):0」なら、まったく赤色が無い。 いっぽう、「赤(R):255」なら、赤色の強さが最大である。
2=256なので、つまり8ビットによって、原色の段階をあらわしている。
このような、色の段階を、色の階調(かいちょう)という。
たとえば、もし完全な白色をつくる場合なら
のように設定する。
もし完全な黒色をつくる場合なら
のように設定する。
もし完全な黄色をつくる場合なら
のように設定する。
画像処理ソフトなどで「RGB」という表記をされている項目は、このような色の階調についての設定や処理をしている項目である。
3つの原色がそれぞれ256段階あるので、合計で 256=16777216通りの色を表せる。つまり約1677万色である。

印刷機器などの設定をするときには、「RGB」項目ではなく、「CMYK」 または「CMY」などという項目を設定する場合がある。印刷の色の設定は、高度に専門的なので、説明を省略する。 (※ 検定教科書でも、印刷機器の色の設定については、説明に触れていない。)
このようにプリンタとディスプレイの色の特性のちがいがあるので、商業ポスターや高校の文化祭ポスターなどを作る際は、一発でうまく印刷できる事は無い。なので、試し刷りをして、微調整を繰り返すことにな(※日本文教出版の見解)。
拡大するとギザギザするのがラスタ形式(raster form)です。 ※数研Iに英訳あり。
拡大してもギザギザしないのがベクタ形式(vector form)です。
なお、ベクタ形式でギザギザしないのは、ベクター画像は図形を、たとえば線などはどの座標とどの座標を結んでいるか(※開隆堂)などといった数式のような形式(※第一学習)で管理しており、また線の太さも記録されており(※数研出版)、なので拡大するたびに作画しなおすことができるからです。
ラスタ形式は、そういった構造的な線とか面とかの情報は含んでおらず、単にどの座標にどの色の点があるかといった画素の情報をバラバラに羅列的に記録しています。
写真の画像は、ラスタ形式が適しています(※第一学習社、東京書籍I)。
「ベクター」なのか「ベクタ」なのかはどちらでもよく、たとえば第一学習社は「ベクター」、開隆堂は「ベクタ」です。
「ベクトル画像」と呼んでも、かまいません(※第一学習社)。東京書籍は「ベクトルデータ」と呼んでいます(※東京書籍「情報I」)。
建築図面のソフトなど正確さを要求するソフトではベクタ形式が好まれています(※東京書籍『情報I』の見解)。
一見するとベクタ形式はなんでもできそうですが、しかし写真のような配色の多くて形状も複雑な画像を無理やりにベクタ化しても、線や面が多くなりすぎるので処理が多くなりすぎ、処理が追いつきません。(※開隆堂が似たような事を言っている)
「ペイント系ソフト」(painting software)と言われるものは普通、ラスタ画像を作成するソフトです(※日本文教出版 I、実教 I)。 ※ 実教が語の英訳も紹介。
「ドロー系ソフト」(drawing software)は普通、ベクトル画像を作成するソフトです。
実は、PNGなどいちぶ画像形式には、赤・緑・青のほかにも、その画像の透明ぐあいを表す情報が保管されています。
(※ 一般に『アルファ値』と言います。暗記は不要です。)
たとえば、イラストなどの上に、文字画像を載せる事も、こういった技術で、できます。

また、2枚のイラストどうしでも、たとえば、背景だけの背景イラストの上に、キャラクターイラストを載せて合成する場合も、
キャラクターイラストで人物以外の部分がすべて透明になっている画像形式を使えば、実現できます。
こういうふうに、画像の上に、透明部分のある画像を合成する方法を、一般に「レイヤー合成」のように呼びます。
そして、それぞれの画像を、この場合は、たとえば「背景レイヤー」および「人物レイヤー」などと区別します(レイヤー名は人によってバラバラなので、暗記しなくていい)。
実用上で重要なこととして、Windows標準のビットマップ画像形式では、アルファ値が無いので、こういうレイヤー合成は、クロマキー合成などを行わない限りう不可能です。
また、ウィンドウズ標準のアクセサリ『ペイント』でも、レイヤー合成はほぼ不可能です。
なので『ペイント』以外の別のソフトウェアを使う必要があります。(フリーソフトでは GIMP (ソフト名)で、レイヤー合成が可能。 商用ソフトでも、画像編集系のソフトや、イラスト系のソフトなら大抵、レイヤー合成の機能がある。)
たとえばあるテキストファイルの内容が「AAAAAAA」という文字列だけなら、Aが7個ならんでるので、たとえば「A7」と記録して、「文字の記録のあとに、繰り返し回数を記録する」などと事前に決めておけば、記録するのは「A」「7」という2文字だけに減らせる。
もし「AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA」などの場合なら、Aが30個なので記録するのは「A」「30」となり、かなりデータ数を減らせる。
また、たとえば「ABABABAB」なら、「AB」を4回くりかえすので、「AB」「4」と記録すればいい。
「圧縮」(あっしゅく)とは、このような原理で、記録するデータ量を減らす技術である。
たとえば、冒頭の7文字の「AAAAAAA」だけのファイルの場合、圧縮によって2文字だけの「A7」になったので、単純計算で 2÷7 = 0.2857・・・ なので、このファイルはもとのファイルの約28% に圧縮されたことになる。
圧縮には ZIP(ジップ)などの形式がある。
さて、インターネットでデータを送ったり受け取ったりするとき、データ量が多いほど時間が長く掛かってしまうので、大きいデータを扱う場合は、あらかじめ圧縮しておいてデータを送るのが普通である。
また、音や画像など、データ量が大きくなりやすい種類のファイルは、もともとのファイルじたいに、圧縮の技術が取り入れられている場合もある。
たとえば画像ファイルなら、JPEGやPNGといった形式に、画像の圧縮技術が取り入れられている。
音や画像の圧縮では、データの一部が欠けても、人間の目や耳では、普通は気づけない。 たとえば、画像なら、画素に
というように、画素に一部分だけ違う色(例の場合では「緑」)があっても、画素はとっても小さかったりするので、人間の目では気づきにくい。
なので、この場合、一部分だけ違う「緑」は無視して、
というように記録するのが合理的だろう。
なので、画像や音では、データが少しくらい欠けてでも、記録するデータ量を減らすという非可逆圧縮(ふかぎゃく あっしゅく)が使われる。
「不可逆」といわれるのは、圧縮される前のデータは、圧縮後のデータからは分からないからである。
たとえば画像の圧縮後の
をもとに
と書いても、 どこの色が、圧縮前は別の色だったのか、その別の色は何回使われていたのか、まったく分からない。
つまり、緑のあった位置の情報や、緑の回数についての情報は、圧縮によって失われたのである。
このように、非可逆圧縮によって、データの一部は失われる。
いっぽう、文書やソフトウェアでは、データの一部が欠けてしまうと意味をなさない。なので文書やソフトウェアでは、データが失われないような可逆圧縮(かぎゃく あっしゅく)をする。
圧縮したデータのふくまれるファイルを、もとのファイル形式にもどすことを解凍(かいとう)または展開(てんかい)または伸長(しんちょう)という。
たとえば文書のデータ「あいあいあいあい」を、「あい」「4」と圧縮した場合について考える。
圧縮した人とは別の利用者が、インターネットなどを介して、「あい」「4」という圧縮データと、このデータが圧縮データであるという情報だけを受け取ったとしよう。
この「あい」「4」だけを渡された別の利用者のコンピュータが、圧縮を逆算して「あいあいあいあいあい」という元の文書を手に入れることが、「解凍」(かいとう)または「展開」(てんかい)または「伸長」(しんちょう)といわれる行為である。