コンピュータにおける情報の表現 (2)

1
2013年度 春学期
情報基礎
ICT Foundation
コンピュータにおける情報の表現
(2)
Copyright © 2010, IT Gatekeeper Project – Ohiwa Lab. All rights reserved.
2
目次
•
•
•
•
•
文字の表現
アナログとデジタル
音のデジタル化
画像と動画のデジタル化
情報圧縮
3
ICT Foundation
文字の表現
Copyright © 2010, IT Gatekeeper Project – Ohiwa Lab. All rights reserved.
4
文字を2進数で表現する
• コンピュータは文字データを扱うことができる
▪ 例えば,以下のように文字を2進数に対応付け(マッピング)
すれば,文字を2進数として扱うことができる
文字
A B C D
2進数
00 01 10 11
※ 実際にコンピュータで使われているマッピングとは異なります
▪ 文字などの情報をコンピュータで処理できる符号(2進数の
ビット列)で表現しなおすことをコード化(符号化)という
▪ 文字と符号の対応を表現した表を文字コード表という
アルファベットの符号化
ASCIIコード
• ASCIIコード
▪ 文字情報を7桁の2進数に符号化
• 上側の0~7の16進数は上位3ビット,左側の0~Fの16
進数は下位4ビットを表現(例:A=41(16)=1000001(2))
▪ CRやDEL等はコンピュータに特定の機能を実行さ
せる役割が割り当てられた機能コード
• BS(Back Space)は「一文字後退」
• CR(Carriage Return)は「行頭復帰(カーソルを,カーソ
ルが位置する行の先頭に移動させる)」
▪ 日本語はもっと多くの文字があるので,7ビットでは
表現できない
5
6
ASCIIコード表
0
1
2
3
4
5
6
7
0
Null
DLE
空白
0
@
P
`
p
1
SOH
DC1
!
1
A
Q
a
q
2
STX
DC2
"
2
B
R
b
r
3
ETX
DC3
#
3
C
S
c
s
4
EOT
DC4
$
4
D
T
d
t
5
ENQ
NAK
%
5
E
U
e
u
6
ACK
SYN
&
6
F
V
f
v
7
BEl
ETB
'
7
G
W
g
w
8
BS
CAN
(
8
H
X
h
x
9
HT
EM
)
9
I
Y
i
y
A
LF
SUB
*
:
J
Z
j
z
B
VT
ESC
+
;
K
[
k
{
C
FF
FS
,
<
L
¥
l
¦
D
CR
GS
-
=
M
]
m
}
E
SO
RS
.
>
N
^
n
~
F
SI
US
/
?
O
_
o
DEL
日本語の符号化
(マルチバイトコード系)
• 漢字を含む日本語は65536通りを区別できる16ビット
(2バイト)以上の2進数で表現する
▪ JIS X 0208という規格で,計6879個の文字(ひらがな,カタ
カナ,漢字など)が規定されている
• よく使われているJIS X 0208に基づいた符号化方式
は以下の3種類
▪ ISO-2022-JP(JIS)・・・電子メールで主に使われている
▪ Shift_JIS・・・Windowsをはじめ多くのパソコンで使われて
いる
▪ EUC-JP・・・Unixで主に使われている
7
8
Unicode
• 世界中の主要な言語の多様な文字を1つの文字コー
ド体系で取り扱い,多言語表記を可能にする
▪ JIS X 0208に基づくShift-JISやEUC-JPは日本専用
▪ 全世界の文字を16ビットで表現しようと開始された
• 符号化方式としては以下のようなものがある
▪ UCS-2,UCS-4
▪ UTF-7,UTF-8,UTF-16,UTF-32
• 公式ホームページ:http://unicode.org
中国語や日本語,韓国語で使われる漢字で字形が似て
いる文字を同一とみなす(統合作業)などの問題点もある
【演習1】
Webブラウザで文字化けを体験してみよう
• 意図的に文字化け(文字が意味不明な記号に置き換わって表
示されてしまう現象)を発生させてみましょう
▪ 1. Webブラウザを起動する
▪ 2. 適当なページを表示させる
▪ 3. Webブラウザが解釈する文字コードを変更する
• Webブラウザする文字コードの変更方法
▪ Safariの場合
• 表示メニュー → テキストエンコーディング
▪ Firefoxの場合
• 表示メニュー → 文字エンコーディング
• なぜ文字化けが起こるのか考えてみましょう
9
10
ICT Foundation
アナログとデジタル
Copyright © 2010, IT Gatekeeper Project – Ohiwa Lab. All rights reserved.
11
アナログとデジタル
• アナログ
▪
▪
▪
▪
「相似」が語源
情報を連続的に変化として表すことをアナログという
数値で表現しようとすれば,無限の精度が必要
アナログ時計,天秤ばかり
• デジタル
▪ 「指」(→指で数える)が語源
▪ 情報を不連続な変化として表すことをデジタルという
▪ お金の額,デジタル時計
12
アナログ表現とデジタル表現
• 時間
▪ アナログ時計・日時計
• 時間の流れを連続的に変化する針の角度で表す
▪ デジタル時計
• 時間を1秒あるいは1分といった(離散的な)数値で表す
• 体温
▪ 水銀式
• 体温を連続的に変化する水銀柱の長さで表す
▪ デジタル式
• 体温を一定の刻みの(離散的な)数値で表す
13
デジタルは雑音に強い
• 数値を電圧値で表すアナログ表現によって送信する
と,途中で雑音の影響をうけて,もとの情報を再現で
きない
• 数値を電圧の高い低いのみで表現するデジタル表現
で送信すると,もとの情報を再現しやすい
アナログ表現
0
波形がひずむ
もとの波形を
復元しやすい
10
1
デジタル表現
波形がひずむ
もとの波形を
復元できない
0
1
9?
10 ?
11 ?
1
?
0
1
0
14
デジタルは複製と加工がしやすい
• 複製しても劣化しにくい
▪ デジタル表現は雑音に強いため,複製しても劣化しにくい
▪ アナログ表現の情報は雑音の影響を受けやすく,複製をす
るたびに劣化していく
▪ 複製が簡単に作れることは著作権の侵害に結びつく
▪ 例:コピーしたものを繰り返してコピー機にかけると,字が読
めなくなる
• 加工が容易
▪ デジタル表現は数値列に変換できるので,コンピュータを使
えば,容易に加工できる
▪ 例:デジカメの画像の色調補正はコンピュータを使うと簡単
15
ICT Foundation
音のデジタル化
Copyright © 2010, IT Gatekeeper Project – Ohiwa Lab. All rights reserved.
16
音と波
• 音は空気の振動が伝わっていく現象
▪ 周波数:1秒間に含まれる波の数,単位はHz
▪ 周期:1個の波が伝わる時間,単位は秒
時間
電圧
周期
CDの表面の電子顕微鏡写真(明星大学物性研究センター)
http://msrc.amrc.meisei-u.ac.jp/modules/myalbum/photo.php?lid=17
• 音楽CDは音声を表面の凹凸を使ってデジタル表現として記録
している
• 音をデジタル表現にするためには,変換作業が必要
17
アナログ・デジタル変換1
• 標本化(Sampling)
▪ 波形を時間軸にそって分割し,各点での波高値を
有限桁の実数値として読み取る
▪ 読み取った波高値を標本値という
▪ 例:音楽CDは44.1kHz,電話は8kHz
• 量子化(Quantization)
▪ 標本値を整数値で近似する
▪ 例:音楽CDは16bit,電話は8bit
• 符号化(Encoding)
▪ 整数で近似した整数値を2進数に置き換える
18
アナログ・デジタル変換2
10
5
0
標本化
7.23… 8.16… 7.52… 4.62… 2.91… 3.35…
量子化
7
8
7
4
3
3
11
11
符号化
111
1000
111
100
• 元の波形を完全に再現する
ことはできない
• 標本化を細かく行い,量子
化の単位を小さくすれば,
近似の精度は上がるが,情
報量は増す
• 変換の際には品質と情報量
の増加の兼ね合いを考慮
する必要がある(一方を立
てれば他方が立たないとい
う関係をトレードオフと呼
ぶ)
19
ICT Foundation
画像と動画のデジタル化
Copyright © 2010, IT Gatekeeper Project – Ohiwa Lab. All rights reserved.
20
ビットマップ(ラスター)画像1
• 画面の隅から一定間隔で水平方向に,濃度や色の情報を有
限桁の実数値として読み取る(標本化)
• 読み取った数値を整数値に置き換え(量子化)
• 整数値に置き換えた数値を2進数に変換する(符号化)
A B C D
画素A 画素B 画素C 画素D
6.23… 4.16… 3.52… 3.62…
標本化
画像を升目に区切って
濃度や色を数値化
量子化
画素A 画素B 画素C 画素D
6
4
3
3
符号化
画素A 画素B 画素C 画素D
110
100
11
11
21
ビットマップ(ラスター)画像2
• 拡大すると画像の縁がぎざぎざになったり,ぼ
やけたりする問題がある
22
ベクトル画像
• 画像を構成する曲線や直線を,始点と終点,それらを
結ぶ線の種類など,幾何学的定義によって表現する
• 拡大・縮小によっても細部や鮮明さが失われることが
ない
Adobe Illustrator サンプルより
23
動画のデジタル化
• 動画の記録や再生は人間の目が持つ性質を利用し
ている
▪ 映画は1秒間に24コマ,テレビは30コマの静止画として動き
を記録する(パラパラ漫画の原理と同じ)
▪ それぞれのコマをデジタル化する
▪ 例:地上波デジタル放送によって,伝送時の雑音が原因で
あるゴーストが無くなり,画質が向上する
社団法人 地上デジタル放送推進協会
http://www.d-pa.org/
24
ICT Foundation
情報圧縮
Copyright © 2010, IT Gatekeeper Project – Ohiwa Lab. All rights reserved.
25
情報圧縮
• 符号化などの方法を工夫して,通常よりも少ないデー
タ量(ビット数)で同等の情報を表現する手法
• 可逆圧縮
▪ 圧縮したものから元の情報を完全に復元できる方法
▪ 例:PNG,GIF(256色までしか扱えないので写真には適さ
ない),ZIP
• 非可逆圧縮
▪ 圧縮したものからもとの情報を復元できない方法
▪ 例:JPEG,MP3,MPEG(人間の感じ取りにくい部分の
データを間引くことによって圧縮するため,間引いた情報は
復元できない)
圧縮の原理1
ハフマン符号化
• 出現確率の大きなものには短いビット列を割り当てる
▪ 一週間の天気(晴れ,雨,雪,くもり)を伝達する場合,4種
類を区別するためには2ビットが必要
• 1週間の天気:晴れ,晴れ,晴れ,くもり,くもり,くもり,雨
• 全てを2ビットで符号化すると,00 00 00 11 11 11 10の14ビット
• 出現確率が 晴れ>くもり>雨>雪 なら,晴れ:1 くもり:01 雨:
001 雪:000 と符号化すると,1 1 1 01 01 01 001の12ビット
天気 2ビットで符号化 出現確率によって符号長を変更
晴れ
00
1
雨
01
001
雪
10
000
くもり
11
01
26
圧縮の原理2
ランレングス符号化
• ビット列をビット列の値とその繰り返し回数で表現する
▪ 00011000000011111110000011111000の32ビットのビッ
ト列を考える
▪ 繰り返し回数は左から0×3,1×2,0×7,1×7,0×5,
1×5,0×3となる
▪ 繰り返し回数が7以下なら繰り返しの回数は3ビットで表現
でき,011 010 111 111 101 101 011の21ビット列に圧縮
できる
▪ 0と1が交互に現れるとすれば,各部分の値(0か1)は省略
できることに注意
▪ 8回以上の繰り返しは,値が異なるビットが0回繰り返された
とすればよい(0が12回繰り返されたら,0×7,1×0,0×5
として,111 000 101)
27
【演習2】
漢字を伝達してみよう1
• 自分の名前から,一文字漢字を選ぶ
▪ 例えば,慶應太郎なら,「太」を選ぶ
▪ あまり複雑な文字を選ばないのがコツ
• 異なる2人に異なる方法で漢字を伝達する
▪ 1人目:文字コードによって伝達する
▪ 2人目:白黒のビットマップ画像で伝達する
• それぞれに必要な情報量を考える
28
【演習2】
漢字を伝達してみよう2
• 文字コードの調べ方
▪ 自分が利用する文字コード表が掲載されている
Webページにアクセスする
•
•
•
•
Shift-JIS:http://charset.7jp.net/sjis2.html
EUC:http://charset.7jp.net/euc2.html
JIS:http://charset.7jp.net/jis2.html
Unicode(UTF-16BE):
http://charset.7jp.net/unicode2.html
29
【演習2】
漢字を伝達してみよう3
• 文字コードの調べ方(続き)
▪ commandキーとfキーを同時に押すと,Webブラウザの検
索機能を利用する
▪ Safariはウィンドウの上,Firefoxはウィンドウの下に検索用
のツールバーが表示される
Safariで太を検索した場合
30
【演習2】
漢字を伝達してみよう4
• 白黒ビットマップ画像による伝達
▪ 白を0,黒を1で表現し,左から順番に走査してビッ
ト列に変換する
▪ ランレングス符号化で圧縮して送信できるかも考え
てみましょう
000010000000010000111111111
000010000000111000001000100
010010010100001001000000000
31