QR コードの誤り訂正レベルとは、スキャナーが汚れ、傷、ロゴによる覆いのある部分を再構築できるように、コードが持つ冗長なデータの量のことです。レベルは L、M、Q、H の4つで、コードのおおよそ 7%、15%、25%、30% を復元できます。ほとんどの画面表示やショートリンクには M を、ロゴや乱暴な扱いがコードを損なう場合には H を選んでください。1段階上げるごとの代償は密度です。印刷幅が同じなら、モジュールが増え、四角が小さくなります。
この兼ね合いこそ、「QR コードが読み取れない」という話の大半の出発点であり、このチュートリアルが曖昧な説明ではなく、実際のモジュール数を使って進める理由です。まだコードを作っていない方は、QR コードの作り方から始めてください。この記事は、コードを作った後でレベルを選ぶ話です。
QR コードで誤り訂正が実際に行うこと
QR コードは、データをコードワードと呼ばれるバイトとして格納します。それと並んで、Reed-Solomon 誤り訂正で計算した追加のコードワードも格納しています。これは CD で使われているものと同じ系統の数学です。スキャナーは、破損したコードを読むときに、これらの追加コードワードを使って、どのデータコードワードが誤っていて、本来は何であるべきかを割り出します。
選んだレベルが、追加コードワードの数を決めます。この形式を発明した Denso Wave は、誤り訂正機能を4つのレベルとして説明し、レベルを上げると復元力は向上するがデータ量が増え、したがってシンボルのサイズも大きくなると述べています。以下の復元率は、ISO/IEC 18004 に記載され、Wikipedia の QR コードの項目でも繰り返されている数値です。
- レベル L (Low): コードワードの約 7% を復元可能。
- レベル M (Medium): 約 15%。
- レベル Q (Quartile): 約 25%。
- レベル H (High): 約 30%。
「約」という言葉に注意してください。この割合はインクの面積ではなく、コードワードを数えたものです。損傷の保証ではなく、修復の予算だと考えてください。
密度のトレードオフ:高いほど安全とは限らない理由
冗長性は、どこかに置かなければなりません。レベルを上げると、データはより大きなシンボルに押し込まれます。QR コードにはバージョン 1 から 40 があり、一辺の長さは 17 + 4 x バージョン のモジュール数です。Denso Wave のバージョンと容量の表によれば、バージョン 1 は 21 x 21、バージョン 40 は 177 x 177 です。エンコーダーは、選んだレベルで容量がデータに収まる最小のバージョンを選びます。
URL の場合、そのデータはバイトモードのテキストです。バージョン 2 は、L で 32 バイト、M で 26、Q で 20、H で 14 バイトを格納できます。バージョン 8 は 192、152、108、84 です。バージョン 11 は 321、251、177、137 です。
その代償はバージョン 8 に表れています。L で 192 バイト、H で 84 バイトです。同じグリッドでも、URL のための余地は半分以下になります。残りはパリティだからです。
密度が高いコードほど読み取りにくい理由
スマートフォンは、各モジュールを解像しなければなりません。コードを幅 3 cm で印刷すると、33 モジュールのグリッドではモジュールの幅はおよそ 0.9 mm、61 モジュールのグリッドではおよそ 0.5 mm になります。同じカメラ、同じ光、同じ手ぶれで、余裕は半分です。QR コードの適切な大きさのサイズ規則は、妥当なモジュールサイズを前提にしていますが、その前提をひそかに崩すのが密度です。
実例:1つの URL を全レベルで
「とにかく H に設定して」と言われたときに、私がいつも行う実験があります。計測用のキャンペーン URL を用意しました。長さは 126 文字で、ドメイン、パス、そして utm_source、utm_medium、utm_campaign、utm_content の各パラメータからなります。次に、説明用の例として、25 文字のショートリンク https://s.elido.me/qr7kP2 を用意しました。どちらもバイトモードです。それぞれを標準的なエンコーダーで4つのレベルすべてでエンコードしました。結果は、上の容量表から予測できます。
| レベル | 復元率 | 126 文字の URL | 25 文字のショートリンク |
|---|---|---|---|
| L | ~7% | V6, 41 x 41 | V2, 25 x 25 |
| M | ~15% | V8, 49 x 49 | V2, 25 x 25 |
| Q | ~25% | V9, 53 x 53 | V3, 29 x 29 |
| H | ~30% | V11, 61 x 61 | V4, 33 x 33 |
目に付く点が2つあります。1つ目は、長い URL は L から H へ上がるにつれて、一辺が 41 から 61 モジュールに増え、1681 から 3721 モジュール、つまり面積で約 2.2 倍になることです。2つ目は、誰も触れない点ですが、最も強いレベル H のショートリンク (33 x 33) は、最も弱いレベル L の長い URL (41 x 41) よりも、まだ小さいことです。
レベルよりもペイロードのほうが重要です。ショートリンクに最大の 30% の修復予算を付けても、長い URL を「効率的な」レベル L で作ったコードより、まばらで大きなモジュールのコードになります。
H を選ぶべき場合と、L または M のほうがよい場合
レベルは、コードに実際に起こることに合わせて選びます。漠然とした用心は仕様ではありません。
H (または Q) を選ぶ場合
- ロゴやブランドマークが中央にある。スキャナーが再構築しなければならないモジュールを隠すためです。
- パッケージ、ポケットに入れるチラシ、ステッカー、拭かれるテーブル、あるいは屋外のものに印刷される。
- 表面がざらざらしている、または曲面で、仕上がりを制御できない。
- 出荷済みの製品上のコードなど、再スキャンができない。
Elido の QR コードに関するヘルプ記事でも同じことを述べています。ロゴはコード面積の 20% 未満に収め、それを超える場合や、ロゴ付きで印刷する場合は H に切り替えてください。
L または M を選ぶ場合
- コードがスライド、Web ページ、購入完了画面といった画面に表示される。
- URL が短く、何かが覆ったり傷つけたりすることがない。
- スペースが限られていてコードを小さく保つ必要があり、モジュール1つ1つが重要。
実用的な既定は M です。Denso Wave は、これが最もよく選ばれるレベルだと述べており、私たち自身の QR コードが読み取れないの記事も、サポート窓口の側から同じことを述べています。普通のコードに H を既定にするのは誤りです。H が加える密度が、それが防ぐ損傷よりも多くの読み取り失敗を引き起こすからです。
ロゴについての注意として、誤り訂正が修復するのは欠けたモジュールであり、コントラストの低さ、ぼやけ、余白の切り取りは直せません。予算をロゴに使う場合のデザイン規則は、3つの隅の四角に手を付けない理由も含めて、ブランド QR コードのデザインにあります。
ショートリンクはコードをまばらに保つ(ダイナミック QR コードはそれを使う)
この実例から、今日から使える規則が得られます。レベルを上げる前に、ペイロードを縮めることです。ダイナミック QR コードは、まさにそれを行います。完全な転送先をエンコードする代わりに、ショートリンクをエンコードし、そのショートリンクが、指定した場所へリダイレクトします。
ショートリンクをエンコードすると、信頼性に3つの効果があります。
- グリッドが低いバージョンにとどまるので、どの印刷サイズでもモジュールが大きいままになります。
- ロゴや印刷の摩耗のために、コードが膨れ上がることなくレベル Q や H を使う余裕が持てます。
- 計測パラメータはパターンではなく転送先にあるため、キャンペーンタグを変えても、より密度の高い新しいコードが必要になることはありません。
密度とは無関係の4つ目の利点もあります。コードがショートリンクを指しているので、再印刷せずに後から転送先を変更でき、スキャン数も無料で得られます。スタティックなコードでは転送先がパターンに焼き込まれているため、誤字を直す唯一の方法は再印刷です。
自分のリンクで試したい場合は、QR コードジェネレーターでコードごとにレベルを設定でき、M が出発点です。プランの詳細は料金ページにあります。同じショートリンクから、M と H のコードを1つずつ作り、3 cm で印刷して比べてみてください。目で見分けるのに苦労するはずで、それが要点です。
印刷前の簡単なチェックリスト
順番に実行してください。
- まず URL を短縮します。計測パラメータは転送先に置いておきます。
- 表からレベルを選びます。画面や普通の印刷には M、ロゴや摩耗には Q か H です。
- ジェネレーターが選んだバージョンを確認します。URL でおよそバージョン 10 を超えるなら、なぜペイロードがそんなに長いのか考えてください。
- クワイエットゾーンを保ちます。四方に最低でも4モジュール分の空白の縁が必要です。
- 最終サイズで印刷し、通常の光の下で2台の異なるスマートフォンでスキャンします。
ステップ 5 は、どの表も予測できないことを捕らえます。画面では小さく見えたロゴが、想像以上に多くのモジュールを覆っていることがあります。
コーナーストーンシリーズを読む
この記事はチュートリアルクラスターに属し、そのコーナーストーンはQR コードの作り方です。モジュールサイズが十分な大きさかどうかを決める、サイズと距離の規則については、QR コードの適切な大きさを参照してください。
関連記事
よくある質問
QR コードに最適な誤り訂正レベルはどれですか?
妥当な既定はレベル M です。コードの約 15% を復元でき、グリッドを小さく保てます。この形式の発明者である Denso Wave は、M が最も頻繁に選ばれるレベルだと述べています。コードにロゴが入る場合や、擦れたり、折れたり、屋外に置かれたりするものに印刷する場合は、Q か H に切り替えてください。
QR コードの誤り訂正 30% とはどういう意味ですか?
レベル H のコードは、データコードワードのおよそ 30% までが読めない、または隠れていても、デコードできるという意味です。コードには、Reed-Solomon パリティデータが余分に格納されており、スキャナーはそれを使って欠けている部分を再構築します。これは修復できる損傷の上限であり、表面のどこでも 30% が欠けてよいという保証ではありません。
誤り訂正レベルを上げると、QR コードは読み取りにくくなりますか?
間接的には、はい。レベルが高いとパリティデータが増えるため、同じ URL でもバージョンが上がり、より小さなモジュールが増えます。印刷幅が同じなら、モジュールが小さいほど、スマートフォンのカメラは解像しにくくなります。解決策は、保護が必要なコードのレベルを下げることではなく、ペイロードを短くすることです。
QR コードにロゴを入れるにはレベル H が必要ですか?
中央にロゴを置くコードには、H、少なくとも Q を使ってください。ロゴはモジュールを隠し、スキャナーはそれを修復すべき損傷として扱います。ロゴはコード面積の4分の1よりかなり小さくし、3つの隅の四角からは離して、印刷での摩耗に対する余裕が残るようにしてください。
破損した QR コードでも読み取れますか?
多くの場合、そのレベルの限度内であれば読み取れます。傷、汚れ、部分的な覆いがあっても、失われた領域がそのレベルで修復できる範囲に収まり、隅の四角が無傷であれば、デコードできます。レベル L のコードは約 7%、レベル H のコードは約 30% の損傷に耐えます。
QR コードの誤り訂正レベルの既定値は何ですか?
規格には単一の既定値がなく、ジェネレーターごとに独自に選びます。最も一般的なのは M です。Elido の QR プレイグラウンドは M から始まり、同じコントロールから L、Q、H も選べます。
Elidoを試す
URLを貼り付けて短縮リンクを取得
登録不要。リンクは30日間有効。永久に保存するには登録してください。
Free、登録不要 · 1日あたり2件