QRコードのエラー訂正:傷ついたQRコードが読める理由
QRコードが傷、ロゴ、汚れに耐える仕組み。L・M・Q・Hエラー訂正レベルの詳細解説。
企業ロゴが真ん中にどーんと配置されたQRコードを見たことがあるでしょう。コードの一部が文字通り隠されています。それでもスキャンすると完璧に動きます。
偶然ではありません。エラー訂正が仕事をしているのです。
QRコードが損傷を処理する方法
QRコードはリード・ソロモン符号というエラー訂正を使用します。CD、DVD、深宇宙通信でも使われている同じ数学です。考え方:余分な冗長データを格納し、部分的に欠損・損傷していても元のメッセージを復元できるようにします。
QRコードが生成されるとき、データはエラー訂正コードワードと一緒にエンコードされます。このコードワードには、コードの一部が読めなくても元のデータを復元するのに十分な情報が含まれています。
4つのエラー訂正レベル
すべてのQRコードは4つのエラー訂正レベルのいずれかを使用します:
| レベル | 復元能力 | 最適な用途 | |--------|---------|-----------| | L(低) | 約7%の損傷 | デジタル画面、清潔な環境 | | M(中) | 約15%の損傷 | 汎用、デフォルトの選択 | | Q(四分位) | 約25%の損傷 | 印刷物、中程度の摩耗 | | H(高) | 約30%の損傷 | 過酷な環境、ロゴのオーバーレイ |
ここでの「損傷」とは、コードが正常にスキャンできる状態で読み取り不能なコードワードの割合を意味します。
トレードオフ:訂正 vs サイズ
エラー訂正が多いほど冗長データも多くなります。データが多いほどQRコードは複雑(大きく)なります。実際にはこうなります:
同じ内容でも、Hレベルのエラー訂正が適用されたQRコードはLレベルよりも明らかに多くのモジュール(小さな四角)を持ちます。コードがより密になり、遠くからのスキャンが難しくなります。
Lレベル: 最も小さくシンプルなQRコード。遠くからスキャンしやすい。保護は最小。
Mレベル: バランスが良い。ほとんどのジェネレーターのデフォルト。通常の摩耗に対応。
Qレベル: かなり密。折り曲げ、汚れ、部分的な覆いがある印刷物に適している。
Hレベル: 最大密度。深刻な損傷に耐えられる。中央にロゴを入れるなら必須。
QRコード内のロゴが機能する理由
QRコードの中央にロゴを配置すると、事実上コードを「損傷」させています——それらのモジュールを読み取り不能にしているのです。エラー訂正アルゴリズムがロゴを損傷データとして扱い、残りのモジュールから欠落した情報を復元します。
これはHレベル(時々Qレベル)のエラー訂正でのみ確実に機能します。Lレベルでは、コードの8%を覆うだけでスキャン不能になる可能性があります。
ロゴ配置のガイドライン:
- Hレベルのエラー訂正を使用
- ロゴはQRコード面積の約15-20%に抑える
- ロゴを中央に配置(QRコードは角に重要な位置決めパターンがある)
- シンプルでコントラストの高いロゴを使用
- 複数のスキャナーで最終コードを必ずテスト
どのレベルを使うべきか?
デジタルディスプレイ(ウェブサイト、アプリ、画面): LまたはMレベル。物理的な損傷はないので、小さなコードの方がスキャンしやすい。
名刺やチラシ: Mレベル。軽微な摩耗に対する標準的な保護。
製品パッケージ: Qレベル。製品は取り扱われ、傷つき、環境にさらされる。
屋外看板や過酷な環境: Hレベル。天候、汚れ、物理的損傷に対する最大の耐性。
ロゴ入りQRコード: Hレベル。迷いなく。覆われた領域を補うために余分な冗長性が必要。
クワイエットゾーンも重要
エラー訂正はコード自体の損傷を処理しますが、QRコードには「クワイエットゾーン」——コード周囲の空白マージン——も必要です。これがないとスキャナーはコードの開始位置と終了位置を見つけられません。
標準では4モジュール幅のクワイエットゾーンが要求されています。これを省略することがQRコード失敗の最も一般的な原因で、どれだけエラー訂正があっても解決できません。
エラー訂正はQRコードを現実世界で実用的にするものです。用途に合ったレベルを選びましょう——ほとんどの場面でMレベル、ロゴや最大耐久性が必要ならHレベル——そして印刷前に必ず実際のスキャナーでテストしてください。