データ冗長性
読み: でーたじょうちょうせい
データ冗長性は、元のデータに加えて復元用の余分なデータを付加し、一部が失われても全体を復元できるようにする仕組みです。RAID のミラーリング、通信のパリティビット、QR コードのエラー訂正コードワードなど、データの信頼性を確保するあらゆる場面で使われています。
QR コードのエラー訂正は、リード・ソロモン符号によるデータ冗長性で実現されています。エラー訂正レベル L では約 7%、M では約 15%、Q では約 25%、H では約 30% の欠損を復元できます。この数字は復元できる欠損の割合であり、冗長データが占める割合ではありません。レベル H では QR コード全体のコードワードのうち約 66% がエラー訂正用で、元のデータに使えるのは約 34% です。
冗長性にはトレードオフがあります。冗長データが多いほど破損耐性は高まりますが、同じ情報量を格納するのに必要な QR コードのサイズ (バージョン) が大きくなります。100 文字の URL をレベル L で格納するとバージョン 5 (37×37 モジュール・106 バイト) で済みますが、レベル H ではバージョン 10 (57×57 モジュール・119 バイト) が必要です。用途に応じた適切なレベル選択が、サイズと耐久性のバランスを決めます。
デザイン QR コードでロゴを中央に配置する場合、ロゴが覆うモジュールは「破損した」のと同じ扱いになります。レベル H が最大約 30% の欠損を復元できるからこそ、中央にロゴを置く余地が生まれるのです。ただしこの 30% はデータ (コードワード) に対する割合で、面積の 30% を覆ってよいという意味ではありません。実際には安全マージンを取り、20% 程度に抑えるのが推奨されます (誤り訂正レベル H を前提とした上限の目安は 25% 程度)。