08情報科学概論9 通信と符号化の話

情報科学概論9
通信と符号化の話
2014.6.27
田中美栄子
ディジタル通信と情報の符号化
• ディジタル方式による情報の記録は,「すべての情報
を数字に置き換えて記録する」という考え方によるも
の. 例えば音楽 CD の場合, 記録すべき音の強さを
65536(=216) 段階に分けている.
• 文字で文章を送る場合. 英語のアルファベットは,
大文字, 小文字を区別すると 52 文字あるが, これ
は「52 個の異なる記号があって, その組み合わせ
で文章を作っている」と考えられる. 文章を記録, 伝
達するには, 使う文字の数 (この場合 52 個) だけの
2 進数を用意し, それらの組み合わせで文章を 0, 1
の列に置き換える
ディジタル情報とは何か
• 1 桁の 2 進数は「0, 1」の 2 つ, つまり 2 つの異なる
ものが区別でき, 2 桁の 2 進数は「00, 01, 10, 11」
の 4 つなので 4 つの異なるもの (文字) が区別でき
る.
• 3 桁だと,
000, 001, 010, 011, 100, 101, 110, 111
となり, これら 8 つにそれぞれ異なる文字を対応させ、
8 文字まで使って文が作れる, というわけ
4 桁の 2 進数.
• 一般に k 桁の 2 進数は 2のk乗 個ある
符号
文字
2進
NL(改行) 0001010
10進
10
a
1100001
97
b
1100010
98
c
1100011
99
d
1100100
100
e
1100101
101
誤り率1万分の1は小さいか?
誤りの正体と符号化
• ディジタル信号にもエラーが起こる
• 0と1という数字を送ると言っても、実際には
電気信号なので雑音が入ったり、クロックが
ずれたりするだけで 0が1に、1が0に変わっ
てしまう
• 英数半角文字は8ビットで一文字を表すので、
実際には8個の2進数列のうち1個が変化し
ただけで違った文字に化けてしまう
• 誤りの正体は、信号の中で0 と 1 が入れ替
わること
誤り訂正の考え方(1)
• バースト欠損
ランダム欠損
誤 り 検出訂正 ( ま た
誤 り 検出
はエ ラ ー 検 出 訂 正 )
はエ ラ ー 検 出 訂 正 )
と は 、 デー タ に符号
と は 、 デ
に符号
誤 り が発生
誤
た場合
場合
に それ を
いは
あ る 。
が発生
に それ
こ と で
正 ( ま た
検出 ・ あ る
は訂正す
あ る 。
こ
で
バースト欠損を
ランダム欠損にする方法
~アミダくじのアイデア~
0
1
2
3
4
5
6
7
8
9
3
5
1
2
6
0
8
9
4
7
3倍にして送ると安全
• 0→000
• 1→111
と3倍にして送ると、無駄な情報を送らなければ
ならない代わりに、間違いを修正できる
000の一つの0が1に化けても、多数決で元に
戻せる.二つ以上同時に間違うとどうしようも
ないが、そのような確率は非常に低い.
誤り確率が1億分の1だと
• 3つのゼロのうち一つ間違っても元に戻せる
• 2つ以上同時に間違う確率は1億分の1、つ
まり1憶の文字中1個しか間違わない.1頁に
1000文字、200頁分ある本が持つ情報量は
20万文字である.2バイト文字が20万で320
万ビットである.このような本が3冊で1000万
ビット.30冊で1億ビット.つまり誤り率1億分
の1とは、本30冊のうち1文字以下しか間違
わない、非常に正確な情報伝達ができること
誤り検出だけならもっと簡単
• いくら正確でも情報量を3倍使うのでは無駄
• 間違っていることを知るだけなら、パリティ・
ビットを付け加えるだけで済む
• 送ろうとする情報単位ごとに1の個数を奇数
と決めておく.つまりもともと1が奇数個の情
報には0を、1が偶数個含まれる情報には、1
をパリティ・ビットに書き込んでおく
• 送られてきた情報の1の数が偶数ならどこか
に間違いがあるので送りなおして貰えば良い
parity check code 「パリティ検査符号」
• つまり, もともと 2 桁だったものの右に, 余分に 1 桁増やして
3 桁にしているのですが, その規則は
もとの情報に 1 が偶数個なら 0 を付け加え,
もとの情報に 1 が奇数個なら 1 を付け加える
というものです. このように, 誤りの検出や訂正のために余分
な情報を付け加えることを符号化といいます. この符号化に
よると「たけやぶやけた」は
011 000 110 101 110 000 011」
となります. 送り手はこれを送るわけです.
• なお, 上のような規則で符号化を行う符号を
「パリティ検査符号」(parity check code) といいます
符号化の話
いろいろな符号化
• アルファベットが (ほんとうは26文字あるが)
A,B, C, D の4文字だと仮定しよう
• これを0と1で符号化(2元符号化)するとき
下の表のようにいろいろ考えられる
C1
C2
C3
C4
C5
C6
出現比
A
00
0
0
0
0
0
0.6
B
01
10
10
01
10
10
0.25
C
10
110
110
011
11
11
0.1
D
11
1110
111
111
01
0
0.05
特異符号
• C6は、AとDの両方に0が対応しており、0を
Aと読むのかDなのか不明.このような符号を
特異符号という.(文脈次第で、これでも読め
ることもある)
C1
C2
C3
C4
C5
C6
出現比
A
00
0
0
0
0
0
0.6
B
01
10
10
01
10
10
0.25
C
10
110
110
011
11
11
0.1
D
11
1110
111
111
01
0
0.05
一意復号可能かどうか
• C5は、特異符号ではないものの、一意復号
できない.
• 0110という信号はDBとも読めるし、ACAとも
読めるので紛らわしい
C1
C2
C3
C4
C5
C6
出現比
A
00
0
0
0
0
0
0.6
B
01
10
10
01
10
10
0.25
C
10
110
110
011
11
11
0.1
D
11
1110
111
111
01
0
0.05
瞬時復号可能かどうか
• C1~C4は、すべて、一意復号できるが、C4
は瞬時複合できない.C4で0110を送ると、
• 0110という信号を復号するときAやBから始
めると途中で困って引き返し、CAと読むまで
に時間がかかる.瞬時性がない.
C1
C2
C3
C4
C5
C6
出現比
A
00
0
0
0
0
0
0.6
B
01
10
10
01
10
10
0.25
C
10
110
110
011
11
11
0.1
D
11
1110
111
111
01
0
0.05
コンパクトかどうか
• C1~C3は、瞬時符号だが、C2はコンパクト
でない.無駄がある.
• 平均符号長を計算するとC1は2,C2は1.6で
C3は1.55.C2はC3より長くコンパクトでない
C1
C2
C3
C4
C5
C6
出現比
A
00
0
0
0
0
0
0.6
B
01
10
10
01
10
10
0.25
C
10
110
110
011
11
11
0.1
D
11
1110
111
111
01
0
0.05
コンパクト符号の作り方
• ハフマン符号はコンパクト
• 文字の出現比の順にソートし、出現比の一番
小さい文字と2番目に小さい文字を合流させ
る.この二つの枝に0と1を割りつける
• 合流したものを含めて、出現比の小さい二つ
を合流させてこの二つの枝に0と1を割りつけ
る
• これを繰り返して確率が1になったらやめる