その15:デジタル信号のエラー訂正 |
デジタルが1と0(電気信号のONとOFF)で成り立っていることは、XP特集第一回で書きました。 今回は、デジタル信号の最も大事なところ「エラー訂正」の基本です。 データが1箇所でも間違っていたら、それは、データとしての役割を果たしません。
|
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
|
さて、わかりやすいように日本語の「漢字」をモデル的に考えて見ます。
左図は4ビットのデータが4つ並んで16ビットのデータになっています。 即ち、2バイト、日本語が2バイト文字と言われるように16ビットで構成されます。
左図では十六進表記で3A3B即ちJIS漢字コード表の「沙」という漢字です。 |
|
ここで、ある1ビットのデータが欠落または、間違っていたとします。 仮に2列目の2行目が「0」のはずなのに「1」になってしまった場合を考えます。 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
|
このままデータとして使われるとこの16ビットのデータから表示される文字は、3E3B即ちJIS漢字コード表の「胸」という漢字に変わってしまいます。 |
|
データの記録、呼び出し、コピーなどでこのようなデータのエラーがあっては困ります。 そこで、エラー訂正用のデータが追加されます。
|
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
|
元データに緑色の訂正用のビットを追加します。
縦横それぞれに1の数が奇数なら1、偶数なら0を挿入すると、左図のようになります。 修正用の9ビットを追加するわけです。 元データは16ビット、エラー訂正ビットを加えて25ビットのデータに膨れ上がります。 |
|
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
|
2列2行目のデータが「1」になってしまった場合、緑色のエラー訂正ビットとの矛盾が生じます。
即ち、2列目と2行目の緑のビットは「1」にならなければつじつまがあいません。
縦横計算をしていくと、2列2行目は「1」ではなく「0」のはずであると考えられます。 これで、正しい元のデータに戻されることとなります。 |
|
実は、デジタルの進化はこのエラー訂正の進化と言っても過言ではありません。 実際には上記のような簡単なものではありません。 複雑怪奇?なデータ処理を施さなければならない場合が多くあります。 時にはデータ量より訂正データの方が大きくなる場合もあります。
パソコンの性能が上がっただけではなく、データ処理(エラー訂正)能力が上がったことがノンリニア編集に大きく貢献していることは察しがつくと思います。
|
参考資料
二進表記 |
十六進表記 |
十進表記 |
|
二進表記 |
十六進表記 |
十進表記 |
0000 |
0 |
0 |
1000 |
8 |
8 |
0001 |
1 |
1 |
1001 |
9 |
9 |
0010 |
2 |
2 |
1010 |
A |
10 |
0011 |
3 |
3 |
1011 |
B |
11 |
0100 |
4 |
4 |
1100 |
C |
12 |
0101 |
5 |
5 |
1101 |
D |
13 |
0110 |
6 |
6 |
1110 |
E |
14 |
0111 |
7 |
7 |
1111 |
F |
15 |
|
0と1で表現するのは人間としてとても難しいことです。そこで、人間が表記する場合は、十六進表記が使われます。
30年位前の8ビットパソコンでは今のようにFEPが発達してなかったので、コード表から漢字を打っていたものです。 |
|
ポップアップで用語辞典が開きます。戻るときはブラウザの閉じるで戻ってください。 |