QRコードは汚れや破損があっても読み取れるように設計されています。この耐久性を支えているのが誤り訂正という仕組みです。QRコードを作成するツールやアプリには必ずといっていいほど「誤り訂正レベル」という設定項目がありますが、何を基準に選べばよいのかわからないまま、デフォルトのまま使っている方も多いのではないでしょうか。
この記事では、誤り訂正レベルの仕組みと4段階の違い、そして用途に合わせた選び方を解説します。
誤り訂正とは何か
QRコードには「Reed-Solomon符号」と呼ばれる誤り訂正技術が組み込まれています。これにより、コードの一部が汚れや折れ・破損によって読み取れなくなっても、残りのデータから元の情報を復元できます。
誤り訂正レベルはL・M・Q・Hの4段階があり、後になるほど復元できる損傷の割合が大きくなります。
| レベル | 復元できる割合 | 冗長データの量 |
|---|---|---|
L(低) |
約 7% | 最も少ない |
M(中) |
約 15% | 標準的 |
Q(高) |
約 25% | 多い |
H(最高) |
約 30% | 最も多い |
ここでいう「30%」は、厳密には面積ではなくデータ単位(コードワード)の割合です。実際の読み取りやすさは、欠けた場所にも左右されます。同じ面積が欠けていても、四隅の位置検出パターン(大きな四角形)が壊れていると、そもそもコードとして認識されず復元に至りません。「Hなら3割欠けても必ず読める」わけではない点は押さえておきたいところです。
レベルを上げるとどうなるか
誤り訂正レベルを上げることには、耐久性が上がるメリットがある一方で、2つのデメリットがあります。
- 同じデータでもコードが大きくなる:冗長データが増えるため、同じ内容を入れてもモジュール(白黒の升目)の数が増えます。同じ印刷サイズなら1マスあたりが小さくなり、読み取りにくくなることがあります。
- 入れられるデータ量が減る:同じ大きさのコードに収められる文字数が少なくなります。
英数字のみで比較すると、最大の型番(バージョン40)で入れられる文字数はこれだけ変わります。
| レベル | 英数字の最大文字数 |
|---|---|
L |
4,296文字 |
M |
3,391文字 |
Q |
2,420文字 |
H |
1,852文字 |
L と H では2倍以上の差があります。長いURLを扱う場合、レベルを上げすぎるとコードが必要以上に細かくなり、かえって読み取りづらくなります。
型番(バージョン)とサイズの関係
QRコードには型番という概念があり、1から40まであります。型番が上がるほど升目が増え、多くのデータを入れられます。
| 型番 | モジュール数 |
|---|---|
| 1 | 21 × 21 |
| 2 | 25 × 25 |
| 10 | 57 × 57 |
| 40 | 177 × 177 |
型番が1つ上がるごとに縦横4マスずつ増えます。データ量と誤り訂正レベルの組み合わせに応じて、必要な型番が自動的に決まる仕組みです。誤り訂正レベルを上げると型番も上がりやすくなり、結果としてコードが細かくなります。
「誤り訂正レベルを上げたら読み取りにくくなった」という現象は、この連鎖で起きています。耐久性は上がっているのに、升目が細かくなったせいで印刷やカメラの解像度が追いつかなくなる、というわけです。
印刷サイズの目安
読み取れるかどうかは、1マス(モジュール)が物理的に何ミリあるかで決まります。目安として、モジュールが 0.4mm を下回ると一般的なスマートフォンでは読み取りが不安定になります。
たとえば型番10(57×57モジュール)のコードを印刷する場合、次のようになります。
57 モジュール × 0.4mm = 22.8mm
→ 最低でも 2.3cm 角ほどは必要
さらにQRコードの周囲には、クワイエットゾーンと呼ばれる余白(4モジュール分)が規格で定められています。ここに文字や罫線が入り込むと読み取り率が落ちるため、コードの周りには余裕を持たせます。
チラシや名刺に載せる場合は 2cm角以上を目安に、遠くから読ませるポスターなどではさらに大きくします。読み取り距離のおおまかな目安は「コードの一辺の10倍程度まで」と言われています。
ロゴを重ねるときの注意
QRコードの中央にロゴを置く「デザインQR」では、レベル H が使われます。ロゴで隠れた部分を訂正データで補う仕組みです。
ただし注意点があります。
- 隠せるのは全体の30%まで、ではありません。 誤り訂正の限界いっぱいまで隠すと、汚れや印刷のかすれに対する余裕がゼロになります。実務上は15%程度までに抑えておくと安全です。
- 隠す位置は中央に限ります。 四隅の位置検出パターンとその周辺、および型番情報が入る領域は隠してはいけません。
- ロゴを重ねたら必ず実機で読み取り確認をします。 複数の機種、暗い場所、斜めからの角度など、条件を変えて試します。
用途別の選び方
- L(低):デジタル画面のみでの表示、または長いURLやテキストを入れる場合に。汚れる心配がなく、できるだけシンプルなコードにしたいときに適しています。
- M(中):名刺・チラシ・プレゼン資料など、一般的な印刷物の多くはこれで十分です。耐久性とデータ容量のバランスが取れており、最もよく使われるレベルです。
- Q(高):工場の製造ライン、屋外ポスター、雨ざらしになる掲示物など、汚れや多少の破損が想定される環境向けです。
- H(最高):中央にロゴを重ねる場合や、屋外の過酷な環境向けです。
よくある質問
Q. とりあえずHにしておけば安心ではないですか
A. Hにするとコードが細かくなり、同じ印刷サイズでは1マスが小さくなります。汚れに強くなる代わりに、解像度の面では不利になります。汚れる心配のない画面表示や、印刷サイズを大きく取れない場面では、かえって読み取り率が下がることがあります。
Q. 印刷したQRコードが読み取れません
A. 次の順に確認します。①コードの周囲に余白(クワイエットゾーン)があるか、②1マスの大きさが 0.4mm 以上あるか、③白黒の明暗差が十分にあるか(薄い色同士の配色は読み取れません)、④背景に写真や模様が透けていないか。読み取れない原因の多くは、誤り訂正レベルではなく印刷条件のほうにあります。
Q. QRコードの色を変えても読み取れますか
A. 明暗のコントラストが確保できていれば読み取れます。ただし明暗を反転させる(背景を暗く、コードを明るくする)と読めない機種があります。また赤系の色は赤外線カメラで区別しづらいことがあるため、暗い色は黒か濃紺が無難です。
Q. 一度作ったQRコードのリンク先を後から変えられますか
A. QRコード自体はURLをそのまま埋め込んだ画像なので、変更できません。リンク先を変える可能性がある場合は、いったん自分が管理するURLを埋め込み、そこからリダイレクトする作りにしておくと、印刷後でも転送先を変更できます。
まとめ
誤り訂正レベルは「高ければ高いほど良い」というものではありません。
- レベルを上げると耐久性は上がるが、コードは細かくなり容量は減る
- 「Hなら3割欠けても読める」は条件つき。位置検出パターンが壊れると復元できない
- 読み取りやすさは1マスの物理的な大きさで決まる。0.4mm が目安
- ロゴを重ねるならHを使い、隠す面積は15%程度まで
- 迷ったら、印刷物はM、画面表示はL か M で十分
以下のQRコード作成ツールでは、L・M・Q・Hをワンクリックで切り替えながら、コードの密度がどう変わるかをその場で比較できます。実際に印刷する前に、レベルによる見え方の違いを確認してみてください。