水平垂直パリティチェックとは?初心者でもわかる誤り検出の仕組みを図解で解説
生徒
「パリティチェックって習いましたけど、複数のビットが間違うと気づけないことがあるんですよね?」
先生
「そのとおり。1ビットの誤りは検出できても、2ビット以上だと見逃す場合があるんだよ。でも、それを補う方法もあるんだ。」
生徒
「補う方法?それってどんな方法ですか?」
先生
「それが、今回紹介する『水平垂直パリティチェック』という仕組みなんだ。仕組みはシンプルだけど、ぐんと正確になるよ!」
1. 水平垂直パリティチェックとは?
水平垂直パリティチェックとは、データの誤りをより正確に検出するための方法です。英語では「Two-Dimensional Parity Check(ツーディメンショナル パリティチェック)」と呼ばれます。
通常のパリティチェックは「1行(1バイトなど)の中のビット数」だけを見ていましたが、水平垂直パリティチェックでは「行(ヨコ)」と「列(タテ)」の両方でパリティをチェックします。
2. 水平方向と垂直方向のパリティの意味
データを表に並べてみましょう。たとえば、以下のように4行×4列のデータがあるとします。
1 0 1 1
0 1 1 0
1 0 0 1
0 1 1 1
このとき、
- 水平方向(ヨコ方向)にパリティビットを1行ずつ追加
- 垂直方向(タテ方向)にもパリティビットを1列ずつ追加
つまり、行にも列にも1ビットずつ「チェック用のビット」をつけることで、どこの位置で間違いが起きたかが分かるようになります。
3. パリティビットの追加で誤りの場所を特定できる
この方法のすごいところは、1ビットの誤りが起きたときに、それが表のどの位置なのかをピンポイントで特定できる点です。
たとえば、3行目と2列目の交差点にエラーがあるとき、水平方向と垂直方向のパリティチェックの両方で「合わない!」と気づけるので、「この位置がおかしい」と判断できます。
つまり、データの中でエラーが起きた場所を突き止めて、場合によっては訂正することも可能になるんです。
4. 水平垂直パリティチェックの仕組み図解
図にすると、以下のような形になります(Pはパリティビット)
データ: 1 0 1 1 | P
0 1 1 0 | P
1 0 0 1 | P
0 1 1 1 | P
----------
P P P P
ヨコ方向の末尾に水平パリティビット(右端のP)、タテ方向の下に垂直パリティビット(下段のP)をつけてチェックを行います。
このように、2次元(ヨコ+タテ)で確認できるため、通常のパリティチェックよりも高い精度で誤りを検出できるのです。
5. 水平垂直パリティチェックの利点と限界
この方法には次のような利点があります:
- 1ビットの誤りを正確に検出・特定できる
- どの位置にエラーが起きたかが明確にわかる
- 簡単なアルゴリズムで実装できる
ただし、次のような限界もあります:
- 2ビット以上の誤りが特定できないことがある
- パリティビットの分、データ量が増える
- 複雑なエラー検出には向いていない
そのため、もっと高度な誤り検出・訂正方式として、CRC(シーアールシー)やハミング符号(ハミングフゴウ)などが利用されることもあります。
6. 水平垂直パリティチェックの活用例と関連キーワード
水平垂直パリティチェックは、シンプルな通信システムやファイル転送プロトコルで使われていました。古い通信機器や教育用のシミュレーターなどでよく登場します。
このキーワードに関連する用語として:
- 誤り検出(ゴサケンシュツ)
- パリティチェック(Parity Check)
- 偶数パリティ(Even Parity)
- 垂直パリティ(スイチョクパリティ)
- 水平パリティ(スイヘイパリティ)
- 2次元パリティ(ニジゲンパリティ)
これらの用語をセットで覚えることで、理解が深まります。