本文へスキップ
QRCodeMax.Vip

QRコードの誤り訂正レベルL・M・Q・Hの解説

QRコードの誤り訂正レベルL・M・Q・Hがそれぞれどこまで復元できるか、それぞれをいつ使うべきか、そして耐障害性がパターンの密度やデータ容量とどうトレードオフになるかを解説します。

著者: QRCodeMax.Vip 読了時間 7 分

すべてのQRコードには内蔵の保険があります。パターンの一部が汚れたり、傷ついたり、隠れたりしてもスキャナがデータを復元できる、リード・ソロモン誤り訂正です。この保険にはL・M・Q・Hの4段階のレベルがあり、それぞれコードのデータのおよそ7%、15%、25%、30%を復元できます。レベルの選択はトレードオフです。耐障害性を高めるほど、コンテンツの入る余地が減るか、パターンが密になって読み取りにくくなります。

誤り訂正の実際の働き

QRコードは、目に見える白黒の格子以上のものです。データに加えて、コードはリード・ソロモン符号と呼ばれるアルゴリズムで生成された冗長なバックアップ情報を格納しています。これはCDやデジタル放送で長年使われてきた誤り訂正と同じ系統のものです。スキャナがコードを読み取るとき、受け取る情報の一部は間違っていたり欠けていたりします。指紋が黒のモジュールを白くし、傷が1列を消し、インクが色あせる、といった具合です。リード・ソロモンにより、スキャナはそれらの障害を検出し、欠けた部分を数学的に再構築できます。印刷されたコード自体は何も変わりません。復元はすべてデコードソフトウェアの中で行われます。

誤り訂正レベルは生成時に固定されます。レベルはコードの形式情報に記録されており、スキャナは何よりも先にこれを読み取るため、標準的なスキャナはどれだけの冗長性を期待すべきかを知っています。コードが存在した後でレベルを上げ下げすることはできません。変更する唯一の方法は、コードを再生成して古いものと置き換えることです。

4つのレベル:L・M・Q・H

QR規格では、文字で識別される4つのレベルが定義されています:

  • L(Low): データの約7%を復元できます。
  • M(Medium): 約15%。
  • Q(Quartile): 約25%。
  • H(High): 約30%。

頭文字の規則を破っているのはQだけです。「quartile(四分位数)」は、およそ4分の1という復元率に由来します。

留意すべき点が2つあります。第一に、このパーセンテージはコードの表面積の7%や30%を失っても耐えられるという意味ではありません。対象はコードワード(コードを構成するデータ単位)であり、復元できるかどうかは破損の位置に大きく左右されます。第二に、これらの数値は近似値であり、好条件の下でこの仕組みが復元できる量を示すものであって、保証ではありません。破損によって、四隅の3つの大きなファインダーパターンや、その間のタイミングパターンといった構造要素が破壊された場合、どのレベルでもコードを救えません。これらの部分はデータのようにバックアップされていないからです。

汚れや破損した印刷物におけるパーセンテージの意味

実際の破損には2種類あり、その挙動は大きく異なります。

散らばった軽度の破損(指紋の油汚れ、コーヒーのしみ、わずかな色あせ、取り扱いによる一般的な摩耗)は、多くのコードワードにわたってビットを破壊します。これはまさにリード・ソロモンが最も得意とするものです。レベルMなら通常まったく問題になりません。レベルLは7%という予算がすぐに埋まるため、苦戦する場合があります。

集中した重度の破損(破れた角、コードの一部に貼られたシール、パンチの穴、深い傷)は、より厄介なケースです。局所的な破損は1つの領域で連続するコードワードを一掃するため、表面積の30%よりはるかに小さい破れでも、Hレベルのコードをだめにすることがあります。特にファインダーパターンに掛かった場合はそうです。公表されているパーセンテージは、広く散らばった破損についての説明と捉えるべきであり、中央を貫く破れへの保証ではありません。

どのレベルでも誤り訂正が直せないものも知っておく価値があります。ぼやけ、低いコントラスト、反射、汚れたカメラレンズ、クワイエットゾーン(コードの周囲の余白)の欠如です。これらはデータの損失ではなく読み取り側の問題であり、どれだけの冗長性の予算でも補償できません。

ロゴとデザイン:Hが標準的な選択である理由

QRコードの中央にロゴを置くことは、意図的にモジュールを覆うことです。コードがプリンターに出力される前に、破損の予算を使い込んでいるのと同じです。LやMでは賭けになりますが、Hなら約30%の冗長性があるため、控えめなロゴなら中央に安全に置く余地が十分にあります。ロゴを重ねたコードがほぼ常にレベルHで生成されるのはこのためです。

ロゴ入りコードの実用的な目安:

  • ロゴは小さくする。コードの幅の4分の1以下が一般的な目安です。
  • 3つのファインダーパターンやクワイエットゾーンは絶対に覆わない。
  • 半透明ではなく、不透明な単色のロゴ背景を優先する。半透明は白黒の読み取りを混乱させます。
  • 印刷に取りかかる前に、画面上の表示だけでなく、印刷した校正紙でテストスキャンする。

仕組みを理解しておく価値があります。スキャナはロゴの周囲のパターンを読み取り、誤り訂正が隠れたモジュールを復元します。ロゴが大きすぎると復元の予算を使い果たし、コードは単純に読み取れなくなります。目には完全に正常に見えるのに、です。

トレードオフ:耐障害性と密度

冗長なデータはどこかに格納されなければならず、そこでトレードオフが効いてきます。同じコンテンツでも、レベルが高いほどバックアップに充てるコードワードが増え、それには2つの結果が考えられます。

第一に、同じコードサイズでペイロードの余地が減ること。Hで生成したコードは、同じバージョンのLより明らかに少ないテキストしか収められず、長いURLやメッセージは単純に収まらない場合があります。

第二に、より大きく密度の高いパターンになること。ペイロードが収まらない場合、ジェネレーターはコードを上位バージョンに上げます。グリッド内のモジュールが増え、同じ印刷サイズでもモジュールが小さくなります。小さいモジュールは、より精細な印刷と、より近くて安定した読み取りを要求します。中程度のサイズのLコードに余裕で収まる長いURLも、同じ物理サイズではQやHでは目に見えて密度が高くなり、名刺では楽に読めるか読み取れないかの分かれ目になります。

逆もまた然りです。画面表示のきれいなコードにHを選んでも、ほとんど得るものがありません。画面は汚れず、密度の代償は確実にあります。コードが実際に直面する条件に合わせてレベルを選んでください。

選び方:実践ガイド

  • L — きれいで管理された環境と短い内容向け:画面表示コード、大きく印刷できる大型看板、最小サイズで最大容量が必要な場合。
  • M — 日常的な印刷物の賢明なデフォルト:チラシ、メニュー、パンフレット、配布資料。耐久性と密度の良いバランス。
  • Q — 手に取られる公開印刷物:チケット、包装、棚札、摩耗や軽い汚れが予想されるもの全般。
  • H — 厳しい環境や汚れた環境、乱暴な扱い、布や低品質の印刷、ロゴを重ねるすべてのコード。

迷ったときの目安:ロゴなしのコードはM、ロゴ付きのコードはH。QRCodeMax.Vipを含むほとんどのジェネレーターでは、ダウンロード前にレベルを設定できるため、2つのバージョンを作成してサイズと読み取りやすさを比較しても何も失いません。

避けるべきよくある間違い

  • Hにすれば一般的に読み取りが「良くなる」と思い込むこと。追加されるのは冗長性であり、距離や速度ではありません。過度に大きく密度の高いHコードは、より大きく疎なMコードより読み取りに失敗することもあります。
  • クワイエットゾーンやファインダーパターンを覆って、誤り訂正で補えると期待すること。補えません。
  • コードを小さく保つためにLを選び、結局小さく印刷すること。印刷サイズとコントラストの方が、控えめな誤り訂正レベルよりも読み取り失敗の原因になります。
  • テスト読み取りを省くこと。レベルは完成したコードの見た目には現れません。確認する唯一の方法は読み取ることです。できれば、実際の使用で受けるしわ、拭き取り、取り扱いを経た印刷物で試してください。

まとめ

誤り訂正は、耐久性と密度の間のダイヤルです。Lは損傷データの約7%、Mは約15%、Qは約25%、Hは約30%を復元でき、一段上げるごとにデータ容量かパターンサイズを犠牲にします。日常的な印刷にはM、ロゴや過酷な条件にはH、スペースが厳しく条件がきれいな場合にのみLを選び、そして最終的な印刷結果は必ずテスト読み取りしてください。

よくある質問

通常のQRコードにはどの誤り訂正レベルを使うべきですか?
レベルMは、ほとんどの日常的な印刷用途で賢明なデフォルトです。コードの上にロゴを重ねる場合や汚れ・乱暴な扱いが予想される場合はHを、スペースやデータ容量が厳しく条件がきれいな場合にのみLを選んでください。
誤り訂正レベルを上げると、QRコードの読み取りが速くなったり、遠くから読めるようになったりしますか?
いいえ。レベルを上げると追加されるのはバックアップデータであり、読み取り性能ではありません。同じ内容がより密度の高いパターンと小さいモジュールに収まるため、かえって読み取りにくくなることもあります。
誤り訂正で、角が破れたQRコードを復元できますか?
場合によっては復元できますが、保証はありません。復元率の数値はデータコードワードに分散した損傷を示すものであり、破れは損傷が集中するうえ、ファインダー四角形など、どのレベルでも再構築できない構造要素を破壊することがあります。
コードを印刷した後で誤り訂正レベルを変更できますか?
いいえ。レベルはコードの生成時に固定され、コード自体に格納されます。変更するには、新しいコードを生成して印刷済みのコードと差し替えてください。
誤り訂正レベルは、QRコードが保持できるデータ量に影響しますか?
はい。レベルが高いほどコードの多くをバックアップデータに充てるため、同じバージョンで保持できる内容が減るか、すべて収めるためにジェネレーターがより大きく密度の高いバージョンを使う必要があります。