Qraft (クラフト)

チェックサム

読み: チェックサム

チェックサム (checksum) は、データが正しく伝送・保存されたかを検証するために、元データから算出される短い値です。送信側がデータとチェックサムを一緒に送り、受信側が同じ計算を行って値が一致するかを確認します。一致しなければデータが破損していると判断できます。

QR コードでは、チェックサムの概念が複数の階層で使われています。フォーマット情報 (誤り訂正レベルとマスクパターンを示す 15 ビット) には BCH (Bose-Chaudhuri-Hocquenghem) 符号によるチェックサムが含まれ、5 ビットのデータに対して 10 ビットの誤り訂正ビットが付加されます。データ本体にはリード・ソロモン符号による誤り訂正コードワードが付加され、これがデータ全体のチェックサムとして機能します。

チェックサムとリード・ソロモン符号の決定的な違いは、修復能力の有無です。単純なチェックサム (CRC やパリティビットなど) はエラーの検出しかできませんが、リード・ソロモン符号はエラーの位置を特定して修復まで行えます。QR コードが汚れや破損に強いのは、単なるチェックサムではなく、修復能力を持つ誤り訂正符号を採用しているからです。誤り訂正レベル H では、コードワードの最大 30% が破損しても元データを復元できます。