必要最小限を超える重複や規則性です。容量の無駄になる場合もあれば、誤りへの備えとして役立つ場合もあります。
まず、身近な例で考える
1を111、0を000として送れば、1桁の変化を多数決で修正できます。
同じ障害で全部が壊れるなら、繰り返しだけでは守れません。独立性と故障の種類が重要です。
0を000に符号化
一桁反転:000 → 010
多数決:0と推定できる
一つの情報を、三桁で送ってみる
0を000、1を111で送る規則を考えます。一つのビットを伝えるのに三ビット使うので、効率だけなら不利です。しかし一桁だけ反転して010になっても、多数派の0から元は000だったと推定できます。
余分な部分がすべて新しい内容を伝えるわけではなくても、元の内容を確実に保つために役立つ場合があります。これが冗長性を故障や誤りへの備えとして使う一例です。
圧縮と誤り訂正では、目的が違う
可逆圧縮では、復元できる範囲でデータの規則性を利用し、表現を短くします。誤り訂正では、伝送中に一部が壊れても区別を保つため、管理された冗長性を加えます。両者は矛盾する操作ではなく、順番に組み合わせられます。
例えば圧縮したデータに訂正用の符号を付ける設計なら、容量を抑える段階と信頼性を高める段階を分けて考えられます。最適な配分は通信路や用途によって変わります。
三つあれば必ず安全、ではない
二桁が反転した000→110では、多数決が元の1を誤って推定します。また、同じ原因ですべての複製が同時に壊れるなら、数を増やすだけでは対策になりません。何種類の障害をどこまで想定するかが重要です。
自分で確かめる小問
000が110に変わったら、多数決で直せる?
元を1と推定してしまいます。この三回繰り返し符号は、二桁の反転を確実には訂正できません。
参考資料
本文の場面・数値例は、定義を理解するための説明用作例です。