QRコードはなぜ一部が欠けても読めるのか──誤り訂正の仕組み
QRコードは角が汚れていても、中央にロゴを重ねていても読み取れます。これは「誤り訂正」という仕組みが、失われたデータを数学的に復元しているためです。ファインダーパターンの役割、L/M/Q/Hの違い、余白4マスの意味まで、読み取りの裏側を整理します。
名刺やチラシに印刷されたQRコードの一部が汚れていたり、真ん中に会社のロゴが重なっていたりしても、スマホのカメラを向けると普通に読み取れることがあります。「なんで欠けているのに読めるの?」と不思議に思ったことはないでしょうか。
これは偶然でも運でもありません。QRコードにはあらかじめ「壊れる前提」で作られた仕組みが組み込まれているからです。
結論を先に書きます。
QRコードには誤り訂正機能があり、設定次第で最大約30%が欠けても元のデータを復元できます。ロゴを中央に重ねられるのも、この仕組みを利用しているからです。
まず3つの角にある「ファインダーパターン」
QRコードをよく見ると、左上・右上・左下の3箇所に、二重の四角い模様があります。これがファインダーパターンです。
この模様の役割は、QRコードがどこにあり、どちらの向きなのかをカメラに教えることです。3つの角に同じ形を置くことで、コードが回転していても、斜めから撮影しても、読み取り機は「上下左右」を瞬時に判定できます。右下だけ模様がないのは、「読み取り開始の基準点」として3点あれば向きが一意に決まるためです。
つまりQRコードは、まず自分の位置と向きを名乗ってから、中身のデータを読ませるという構造になっています。
誤り訂正レベル L/M/Q/H──最大30%を復元できる
QRコードの本体には、実際のデータ(URLや文字列)に加えて、誤り訂正用の冗長データがあらかじめ埋め込まれています。これは「リード・ソロモン符号」という数学的な仕組みで、一部が読めなくても、残りの情報から元のデータを逆算で復元できるようにしたものです。
誤り訂正のレベルは4段階から選べます。
| レベル | 復元できる割合 | 主な用途 |
|---|---|---|
| L(Low) | 約7% | データ量を優先したいとき |
| M(Medium) | 約15% | 標準・迷ったらこれ |
| Q(Quartile) | 約25% | 汚れやすい環境(屋外・工場など) |
| H(High) | 約30% | ロゴを重ねる、傷つきやすい用途 |
レベルを上げるほど復元力は高まりますが、その分同じデータ量でもコードの見た目(モジュール数)が増えて密になります。「絶対に読み間違えたくない」場面ではHを選び、「できるだけシンプルな見た目にしたい」場面ではLやMを選ぶ、というトレードオフです。
ロゴ入りQRコードが読める理由
中央に企業ロゴを重ねたQRコードをよく見かけますが、これは特別な技術ではなく、誤り訂正レベルH(最大約30%復元)を利用して、意図的にロゴの分だけ「欠損」させているだけです。
ロゴが隠す面積が誤り訂正の許容範囲(約30%)に収まっていれば、読み取り機はロゴの下にあるはずだったデータを、残り70%の情報から数学的に復元して正しく読み取ります。逆に言えば、ロゴを大きくしすぎたり、複数箇所に模様を入れすぎたりすると、復元の限界を超えて読み取れなくなるということです。ロゴ入りQRを作るときは、中央付近の一箇所に留め、レベルHで生成するのが安全です。
余白(クワイエットゾーン)4マスの意味
QRコードの周囲には、何もない白い余白が必要です。これをクワイエットゾーンと呼び、規格上最低4モジュール分(QRコードの最小マス目4つ分) の余白を確保することが定められています。
この余白がないと、読み取り機がファインダーパターンを背景の模様と誤認してしまい、「QRコードがどこからどこまでか」を正しく認識できなくなります。デザイン上、QRコードを他の要素とぎりぎりまで詰めたくなりますが、周囲4マス分は必ず空けるのが読み取り成功率を保つ最低条件です。
「QRコードは暗号ではない」という注意点
ここまでの仕組みは「壊れても読める」ための工夫であって、「中身を秘密にする」ための仕組みではありません。QRコードの誤り訂正やファインダーパターンはデータの保護(暗号化)とは無関係で、専用の無料ツールを使えば誰でも中身の文字列やURLをそのまま読み取れます。
Wi-FiのパスワードやログインURLなど、他人に見られたくない情報をQRコードにする場合は、QRコード自体には暗号化機能がないことを前提に、配布範囲や掲示場所に注意してください。
自分でQRコードを作るときの目安
| 用途 | おすすめレベル |
|---|---|
| 標準的なURL・テキスト共有 | M |
| 屋外掲示・汚れやすい場所 | Q |
| 中央にロゴを重ねたい | H |
実際に自分でQRコードを生成しながら誤り訂正レベルの違いを試したい場合は、QRコードを整える でテキストやURL、Wi-Fi情報からブラウザ内で生成できます。レベルを変えて見た目の密度を比較しながら、用途に合った設定を選んでみてください。
まとめ
- QRコードの3つの角にあるファインダーパターンが、位置と向きを読み取り機に伝えている
- 誤り訂正レベルL/M/Q/Hにより、最大でH=約30%の欠損まで元データを復元できる
- ロゴ入りQRは、レベルHの復元力を使ってロゴ部分の欠損を意図的に補っている
- 周囲の余白(クワイエットゾーン)は最低4マス分必要。詰めすぎると読み取れなくなる
- QRコードは暗号ではない。秘密にしたい情報の掲示場所には注意する
- 実際に作って試すなら**QRコードを整える**
QRコードの「多少欠けても読める」という性質は魔法ではなく、あらかじめ組み込まれた数学的な冗長性の賜物です。仕組みを知っておくと、デザインとの兼ね合いも安心して判断できます。