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

出典: フリー教科書『ウィキブックス(Wikibooks)』
ナビゲーションに移動 検索に移動


アナログとデジタル[編集]

コンピューターによって伝達される情報の中身は、「電圧が高い」=1、「電圧がひくい」=0として、ただ0と1のパターンだけで代表される情報である。

このように0と1の数値で表わされる情報をデジタル情報と呼ぶ。一方、離散的ではない量で表わされる量はデジタルに対してアナログ情報と呼ばれる。(※語の英訳: デジタル digital、アナログ analog)

文字を送るには、たとえばアルファベットの文字を送りたいなら、「A」ならデジタル信号 0100 0001 に対応するとして、あらかじめ決めておく。同様に、「B」ならデジタル信号 0100 0010 に対応するとして、あらかじめ決めておく。「C」ならデジタル信号 0100 0011 に対応するとして、あらかじめ決めておく。

このように、それぞれの文字ごとに、あらかじめ固有のデジタル信号を割り当てておけば、1と0だけのデジタル信号だけで、アルファベットを送受信できる。

このように、文字などの、もともとは数値でなかった情報を、コンピューターであつかいやすいように数字の列に置き換えることを、符号化(ふごうか、encouding)という。

デジタルの特徴[編集]

デジタル信号の復元の原理

デジタル情報は、基準の電圧の値(「しきい値」(しきいち))よりも「高い」か「低い」かさえ分かればいいので、少しのノイズがあっても、もとの情報を復元できる。

このように、デジタル情報は、ノイズの影響を受けにくい。

いっぽう、アナログ情報は、ノイズの影響を受けると、復元しずらい。


コンピュータにおける情報の表し方[編集]

ふだん私たちが使っている、0から9までの数字をつかった数え方を十進法(じゅっしんほう)という。また、十進法で表記された数のことを十進数という。

対応表
10進法 2進法
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111

コンピューターは、十進法の「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進数の)数式で表せば、

1×23 + 0×22 + 1×21 + 1×20
= 8 + 0 + 2 +1
= 11

のように計算すればよい。

よって、2進数「1011」は10進数「11」に対応することが分かる。


さて、「110」という数字だけでは、それが十進数か二進数であるかは分からない。

そこで、数字が二進数である事を強調したい場合は 110(2)のように、右下に (2) をつける。
同様に、数字が十進数である事を強調したい場合は 110(10)のように、右下に (10) をつける。


さて、数学的には2進数が理論的な都合のため扱いやすいが、桁数が大きくなるという不便がある。そこで、コンピューター産業の実務では、16進数が使われることも多い。

10進数、2進数と16進数との対応表を示す。

対応表
10進法 2進法 16進法
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F



情報量の単位[編集]

情報量の単位
単位 読みかた 内容
bit ビット -
B バイト 1B=8bit
KB キロバイト 1KB=1024B
MB メガバイト 1MB=1024KB
GB ギガバイト 1GB=1024MB
TB テラバイト 1TB=1024GB

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ケタの2進数によって 2n 通りのパターンが表せるので、つまり、nケタの2進数によって 2n 通り情報が表せる。

コンピュータ科学では、この「0」か「1」かの1ケタぶんの情報の量を基準にする。そして、「0」か「1」かの1ケタぶんの情報の量のことを1ビットという。つまり、ビット(bit)が、情報の量をあらわす単位である。

そして、1ビット増やすごとに、表せる情報の量は2倍になる。

nビットの情報は 2n 通りのパターンに対応している。


数学的にはビットという単位が扱いやすいが、膨大な情報をあつかうとケタ数が多くなるので、8ビットをまとめて「1バイト」とする、バイト(Byte)という単位ができた。

つまり1バイトは、 28=256 通りの情報を表す。

実生活では、大きな情報の量を表す時、このバイトという単位の前に、さらにキロ(K)やメガ(M)やギガ(G)などの接頭辞をつける事も多い。


このような、情報の量のことを情報量(じょうほうりょう)という。


文字コード[編集]

前の節でも説明したが、コンピューター内部での文字の扱いは、たとえば「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コード表
上位3ビット
16進 0 1 2 3 4 5 6 7
16進 2進 000 001 010 011 100 101 110 111


4


0 0000 制御文字 空白 0 @ P ` p
1 0001 ! 1 A Q a q
2 0010 " 2 B R b r
3 0011 # 3 C S c s
4 0100 $ 4 D T d t
5 0101 % 5 E U e u
6 0110 & 6 F V f v
7 0111 ' 7 G W g w
8 1000 ( 8 H X h x
9 1001 ) 9 I Y i y
A 1010 * : J Z j z
B 1011 + ; K [ k {
C 1100 , < L \ l |
D 1101 - = M ] m }
E 1110 . > N ^ n ~
F 1111 / ? O _ o


ASCIIコードは、7ビットである。

ASCIIコードは、英数字を扱えるが、日本語をあつかうには情報量が足りなくて、日本語を扱えない。

そのため、日本国では、日本工業規格(にほんこうぎょうきかく、略称:JIS、※ JISは「ジス」と読む)によって1970年ごろから、ASCIIコードを参考にして、ASCIIコードの7ビットにさらに1ビットを加えて8ビットの文字コードとすることで、英数字にくわえてカタカナや句読点など日本語特有の記号をあつかえるJISコード(「ジスコード」と読む)が定められた。

1バイト=8ビットでは、28=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 が使われている。

近年では国際規格の ISO によって Unicode が規定されている。(※ 検定教科書の範囲内。開隆堂の教科書など。)

なお、近年に Unicode が普及する以前、ASCIIコードを参考にいろんな文字コードが各国や各団体によって考えられ各国で実用化されていたので、そのため世界にはいろんな文字コードがある。



音のデジタル化[編集]

サンプリング[編集]

標本化の説明

音は、「音波」などと言われるように、波であるので、波形で表せる。 音波の波形は、横軸が時間、縦軸が音の強さである。


まず、音とは、空気の振動であるので、何らかの電気的なセンサーによって、空気のゆれを読み取れば、音を読み取れる。 音は波であるので、音の波形には周期(しゅうき)や周波数(しゅうはすう)がある。周波数とは、1秒間にふくまれる波の数であり、単位は[Hz](発音:「ヘルツ」)である。たとえばラの音の周波数は440Hzである。周期は、波が1個ぶん、伝わるのに要する時間であり、単位は秒[s]である。


ふつう、自然界の音には、周波数のことなる、いくつもの音の合成であり、無限個の種類の音が含まれている。だが、コンピューターでは無限の情報をあつかえないので、一定の時間の間隔で、各時間の音の強さを読み取る。


このように、一定の間隔でデータを読み取ることを標本化(ひょうほんか、英語: sampling)またはその英語にもとづきサンプリングという。

1秒間あたりに標本化する回数をサンプリング周波数という。

サンプリング周波数が高くなればなるほど、より細かい間隔で取り出すことになるので、もとの音の波形に近づく。 なので、サンプリング周波数を増やすほど、実際の音に近くなるが、そのぶんだけ必要なデータ量も増える。


そして、標本化によって取り出された各時間のデータを、それぞれ整数に置き換えることを量子化(りょうしか、quantzaition)という。

このように量子化されたデータをまとめて、たとえば 0110 1010 0111 ・・・(以下略)というように、コンピューターが読取やすいように0と1からなる2進数の数字の列にすることを符号化(ふごうか、encoding)という。

そして、このように記録された音の強さのデーターをもとに、音をスピーカーなどから適切に出力すれば、音声を出力できる。

このように、音の強さを記録および出力することによって、音声をコンピューターで記録したり演奏する方法をPCM方式(ピーシーエムほうしき)という。Pulse Code Modukation の略である。直訳すれば、パルス符号変調方式となる。

※ 範囲外: PCMは音でありさえすれば、ほぼ何でも処理できるので、人間や動物の声も扱えるし、楽器の音も扱える。

いっぽう、もし楽器だけからなる曲なら、楽譜のデータだけを記録・処理すれば、音をあらわせる。演奏された曲は記録せず、楽譜のデータだけを記録することで、それを出力して曲を再生する方式をMIDI方式(ミディほうしき)という。

※ 範囲外: MIDIは、人間や動物の声などは、扱えない。一般に、楽器の音しか、MIDIは扱えない。

MIDIは、演奏された曲そのものは記録してないので、PCMとくらべればデータ量が少なくてすみ。


  • 備考

CD(コンパクトディスク)では、音楽CDのサンプリング周波数は44100Hzである。ケタ数が多いので、44.1kHz とも表す。 CDは16ビットで量子化している。


  • アナログ-デジタル変換
アナログ-デジタル変換回路
:連続量であるアナログ信号
:離散化されたデジタル信号


標本化定理[編集]

たとえば、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種類の色のインクが使われている。

色の階調[編集]

現在のパソコン用の画像処理ソフトなどで、色をつくっているときに、たとえば

赤(R): 255
緑(G): 180
青(B): 10

などというように、

それぞれの原色の数値を調節して、色をつくっていく。

なお、この例の場合の「255」「180」「10」などは十進数である。

一般に、各原色はそれぞれ0から255までの整数を取れる。つまり、それぞれの原色は256段階である。 たとえば「赤(R):0」なら、まったく赤色が無い。 いっぽう、「赤(R):255」なら、赤色の強さが最大である。

28=256なので、つまり8ビットによって、原色の段階をあらわしている。

このような、色の段階を、色の階調(かいちょう)という。

たとえば、もし完全な白色をつくる場合なら

赤(R): 255
緑(G): 255
青(B): 255

のように設定する。


もし完全な黒色をつくる場合なら

赤(R): 0
緑(G): 0
青(B): 0

のように設定する。

もし完全な黄色をつくる場合なら

赤(R): 255
緑(G): 255
青(B): 0

のように設定する。

画像処理ソフトなどで「RGB」という表記をされている項目は、このような色の階調についての設定や処理をしている項目である。

3つの原色がそれぞれ256段階あるので、合計で 2563=16777216通りの色を表せる。つまり約1677万色である。


  • 発展:

印刷機器などの設定をするときには、「RGB」項目ではなく、「CMYK」 または「CMY」などという項目を設定する場合がある。印刷の色の設定は、高度に専門的なので、説明を省略する。 (※ 検定教科書でも、印刷機器の色の設定については、説明に触れていない。)


ラスター画像とベクター画像[編集]

参考: 透明部分のある画像とレイヤー合成について[編集]

※ 令和4年度(2022年度)からの新科目『情報I』で扱われるかもしれない予定の範囲。文科省の教員研修用資料に記載あり[1]


実は、PNGなどいちぶ画像形式には、赤・緑・青のほかにも、その画像の透明ぐあいを表す情報が保管されています。

(※ 一般に『アルファ値』と言います。暗記は不要です。)

※ 文科省の教員研修資料にも、アルファ値の用語は無いです。

たとえば、イラストなどの上に、文字画像を載せる事も、こういった技術で、できます。


また、2枚のイラストどうしでも、たとえば、背景だけの背景イラストの上に、キャラクターイラストを載せて合成する場合も、

キャラクターイラストで人物以外の部分がすべて透明になっている画像形式を使えば、実現できます。


こういうふうに、画像の上に、透明部分のある画像を合成する方法を、一般に「レイヤー合成」のように呼びます。


そして、それぞれの画像を、この場合は、たとえば「背景レイヤー」および「人物レイヤー」などと区別します(レイヤー名は人によってバラバラなので、暗記しなくていい)。


実用上で重要なこととして、Windows標準のビットマップ画像形式では、アルファ値が無いので、こういうレイヤー合成は、クロマキー合成などを行わない限りう不可能です。

また、ウィンドウズ標準のアクセサリ『ペイント』でも、レイヤー合成はほぼ不可能です[2]

なので『ペイント』以外の別のソフトウェアを使う必要があります。(フリーソフトでは 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といった形式に、画像の圧縮技術が取り入れられている。

※ jpegには、「離散コサイン変換」という技術が活用されている。高校レベルで分かるように説明するのは無理なので、詳しい説明は省略するが、「コサイン」という用語からも想像つくように、要するに三角関数を応用した技術である。なので、もしアナタが、圧縮技術の研究者を目指すなら、数学もきちんと勉強しよう。高校の数学IIIで習う、三角関数や指数関数の微分積分などは、当然のごとく、勉強しよう。

圧縮の種類[編集]

非可逆圧縮[編集]

音や画像の圧縮では、データの一部が欠けても、人間の目や耳では、普通は気づけない。 たとえば、画像なら、画素に

「赤」「青」「赤」「青」「」「青」「赤」「青」「赤」「青」

というように、画素に一部分だけ違う色(例の場合では「緑」)があっても、画素はとっても小さかったりするので、人間の目では気づきにくい。

なので、この場合、一部分だけ違う「緑」は無視して、

「赤青」パターンを「5」回くりかえす

というように記録するのが合理的だろう。

なので、画像や音では、データが少しくらい欠けてでも、記録するデータ量を減らすという非可逆圧縮(ふかぎゃく あっしゅく)が使われる。


「不可逆」といわれるのは、圧縮される前のデータは、圧縮後のデータからは分からないからである。

たとえば画像の圧縮後の

「赤青」パターンを「5」回くりかえす

をもとに

赤 青 赤 青 赤 青 赤 青 赤 青

と書いても、 どこの色が、圧縮前は別の色だったのか、その別の色は何回使われていたのか、まったく分からない。

つまり、緑のあった位置の情報や、緑の回数についての情報は、圧縮によって失われたのである。

このように、非可逆圧縮によって、データの一部は失われる。

可逆圧縮[編集]

いっぽう、文書やソフトウェアでは、データの一部が欠けてしまうと意味をなさない。なので文書やソフトウェアでは、データが失われないような可逆圧縮(かぎゃく あっしゅく)をする。

解凍、展開、伸長[編集]

圧縮したデータのふくまれるファイルを、もとのファイル形式にもどすことを解凍(かいとう)または展開(てんかい)または伸長(しんちょう)という。

たとえば文書のデータ「あいあいあいあい」を、「あい」「4」と圧縮した場合について考える。

圧縮した人とは別の利用者が、インターネットなどを介して、「あい」「4」という圧縮データと、このデータが圧縮データであるという情報だけを受け取ったとしよう。

この「あい」「4」だけを渡された別の利用者のコンピュータが、圧縮を逆算して「あいあいあいあいあい」という元の文書を手に入れることが、「解凍」(かいとう)または「展開」(てんかい)または「伸長」(しんちょう)といわれる行為である。

脚注[編集]

  1. ^ 『高校情報科_本編_190806.indd - 1416758_004.pdf』76ページ 2020年5月20日に閲覧して確認.
  2. ^ 塗りつぶしのマーカーを使うなどの方法で手順は煩雑になりますが可能ではあります。