QR WORLD
QR WORLD

QRコードの誤り訂正機能とは?概要から活用方法まで徹底解説

カバー写真
電子決済の普及で身の回りでよく見かけるようになったQRコード。 実はQRコードは一部かけていたり、見えなくても正常に読み取ることができることはご存知でしたか? 全てのQRコードには(L・M・Q・H)の誤り訂正機能がついています。 この記事ではQRコードの誤り訂正機能について詳しく解説します。 誤り訂正レベルやリード・ソロモン符号の仕組み、実際の利用シーンなど、QRコードが破損してもデータを正確に復元する技術とその活用方法を紹介します。

QRコードの誤り訂正機能の概要

誤り訂正機能とは何か

QRコードは、現代社会で広く使われる2次元バーコードであり、その特徴のひとつが「誤り訂正機能」です。

QRコードは、画像の一部が汚れたり、破損したりしても正確に読み取ることができるように設計されています。

この誤り訂正機能により、QRコードは信頼性の高い情報伝達ツールとして活用されています。

QRコードにおける誤り訂正の重要性

QRコードは、屋外での掲示や商品のパッケージ、広告など、多様な場所や媒体で使用されます。

これらのQRコードは、光の反射、天候による劣化、擦れ、汚れ、破損といったリスクにさらされることがあります。

誤り訂正機能によって、コードの一部が欠損していても、データの復元し、正確な読み取りを実現します。

身近に役立っている?

QRコードを普段から利用しているが、あまり誤り訂正機能の恩恵を実感したことがない方も多いのではないでしょうか。

実は気づいていないだけで以下の様な場面で普段から恩恵を受けていると思います。

1. アイコンやロゴ付きのQRコード

LINEやインスタグラムなどQRコードを発行するとアイコン付きのQRコードが生成されます。

誤り訂正機能がない場合はロゴ等をQRコードに重ねることができません。

公式に認められている方法ではないもののロゴ付きのQRコードは広く活用されています。

オリジナル画像付きでQRコードを作成する

SNSアイコン付きQRコードを作成する

2. スマホ等での読み取り

スマートフォンでQRコードを読み取る際、手ぶれや光の反射などでQRコードを100%正確に捕えることは難しいですが、誤り訂正機能によって一部QRコードが欠けていても内容を読み取ることができるようになっています。

QRコードの誤り訂正レベル一覧

QRコードの誤り訂正機能には4つの「誤り訂正レベル」があります。

この誤り訂正レベルにより、QRコードが損傷や劣化してもデータを正確に読み取る能力が変わります。

QRコードのデータ復元能力を高くするほどコードが大きくなるので使用する場面によって調整することが重要です。

誤り訂正レベル一覧

具体的には下記の4つのレベルがあり、QRコードを作成する際に指定します。

レベル
復元能力
L
約7%
M
約15%
Q
約25%
H
約30%

誤り訂正レベルにより見た目の違い

試しに同じ文字列を含ませたQRコードを誤り訂正レベルのみ変えて作成してみました。

同じURLで誤り訂正レベルを変えた例

試しに読み取っていただくと同じURLであることが確認いただけます。

QRコードの見た目に注目していただくと、レベルMとQでドットの細かさが変わっていることがわかります。

これはレベルをQにすることによって、格納できるデータの容量が減り、バージョン(QRコードのセル数)を上げる必要があったためです。

QRコードのバージョン・誤り訂正レベルと格納できるデータ容量

このように同じ内容を格納しても誤り訂正レベルを変えそれに伴い、バージョンがあがると同じQRコードにはならないということをご理解いただけるかと思います。

QRコードの誤り訂正レベルとデータ容量のトレードオフ

QRコードにおける誤り訂正レベルの選択は、単にデータ復元能力を高めるだけではありません。

誤り訂正のために多くの冗長データが含まれるため、誤り訂正レベルを高くするほど、QRコードに格納できる実際のデータ量が減少します。以下のようなトレードオフが発生します:

  • Lレベルはデータ容量が最大で、復元能力が最小。
  • Hレベルはデータ復元能力が最大で、データ容量が最小。

そのため、用途に応じてどの程度の損傷を許容するか、またどれだけのデータを格納したいかによって、適切な誤り訂正レベルを選択する必要があります。

デザインやロゴを組み込む場合や、悪環境で使用する場合は、Hレベルを選択することが多く、損傷リスクが少ない場合はLレベルが選ばれやすいです。

QRコードのバージョン・誤り訂正レベルと格納できるデータ容量

QRコードとリード・ソロモン符号の仕組み

QRコードの誤り訂正機能の核となっているのが「リード・ソロモン符号」という数学的なアルゴリズムです。

この符号は、データの一部が欠損していたり、誤っていたりする場合でも、元の正しいデータを復元できる技術です。

リード・ソロモン符号は、CDやDVD、データ通信など、多くのデジタル技術で広く使われており、QRコードを支える重要な要素となっています。

リード・ソロモン符号とは?

リード・ソロモン符号は、1960年代にアーヴィング・リードとグスターヴ・ソロモンによって開発された誤り訂正符号です。

この符号は、特にデータの一部が連続して破損するような状況でも、元のデータを正確に復元できる特性を持っています。

QRコードでは、リード・ソロモン符号を使ってデータを冗長化します。この冗長化されたデータがQRコード内に格納されることで、QRコードが汚れたり、破損したりしても、欠損部分を補い、元のデータを再構築することが可能になります。

具体的にQRコードでは下記の様なプロセスで活用されています。

1. データの分割

データの分割QRコードに格納される元のデータは、特定の単位(シンボル)に分割されます。

それぞれのシンボルは、QRコードの黒と白のモジュールに対応しています。

2. 冗長データの追加

冗長データの追加リード・ソロモン符号を適用すると、元のデータに対して追加の冗長データが生成されます。

3. データの格納

データの格納元のデータと冗長データがQRコード内に格納されます。

この時点で、QRコードには元の情報だけでなく、誤り訂正のための追加情報も含まれているため、一部が欠損してもデータが復元できるようになっています。

場合別おすすめの誤り訂正レベル

QRコードの誤り訂正レベルは、L(低)、M(中)、Q(準高)、H(高)の4段階があり、それぞれ復元できるデータ量とデータ容量のトレードオフの関係にあります。ここでは、利用シーンに合わせたおすすめの誤り訂正レベルをご紹介します。

レベルL:管理された環境での限定的な利用に

  • 復元能力: 約7%
  • おすすめの利用シーン:
    • 個人利用の写真や連絡先など、一時的に利用するQRコード
    • 工場内の部品管理など、QRコードが汚損する可能性が極めて低い、管理された環境での利用
    • 電子チケットや限定的なWebサイトへの誘導など、再発行が容易な場合

レベルLは、QRコードのデータ量を最大化したい場合に選択しますが、汚れや破損への耐性は最も低くなります。そのため、不特定多数の人が利用する場面や、QRコードの品質が担保できない状況での利用は避けるべきでしょう。

レベルM:一般的な商業利用やマーケティングに最適

  • 復元能力: 約15%
  • おすすめの利用シーン:
    • 商品パッケージやポスター、チラシなどの販促物
    • 名刺に記載する連絡先やWebサイトのURL
    • 一般的なマーケティング活動全般

レベルMは、データ容量と誤り訂正能力のバランスが取れており、最も広く利用されているレベルです。一般的な利用であれば、レベルMを選択しておけば問題ないでしょう。

レベルQ:信頼性が求められる場面で活用

  • 復元能力: 約25%
  • おすすめの利用シーン:
    • 決済用のQRコード
    • 公共の場所に長期間掲示されるポスターや案内板
    • イベントの入場チケットなど、再発行が難しい、あるいは重要な役割を持つQRコード

レベルQは、レベルMよりも高い信頼性が求められる場面で有効です。QRコードが多少汚れたり、破損したりしても、データを読み取れる可能性が高まります。ユーザーに確実に情報を届けたい場合に適しています。

レベルH:絶対的な信頼性が不可欠な場合に

  • 復元能力: 約30%
  • おすすめの利用シーン:
    • 医療現場での患者の識別や薬剤管理
    • 工場の生産ラインなど、QRコードの読み取りエラーが大きな損害に繋がる環境
    • 屋外の過酷な環境で使用される建設資材や機械の管理

レベルHは、最も高い誤り訂正能力を持ち、QRコードの一部が欠損してもデータを復元できる可能性が最も高くなります。ただし、その分データ容量は最も小さくなります。読み取りの確実性が最優先される、極めて重要な情報を扱う場合に選択してください。

レベル別用途のまとめ

レベル
復元能力(約)
特徴
おすすめの利用シーン
L
7%
データ容量が最大
個人利用、管理された環境
M
15%
バランスが良く、一般的
商業利用、マーケティング
Q
25%
高い信頼性
決済、公共の場所への掲示
H
30%
最高の訂正能力
医療、工場など確実性が最優先される場面

QRコードの誤り訂正機能の制約と限界

QRコードの誤り訂正機能には多くのメリットがありますが同時にデメリットや限界があります。このセクションでは、そのデメリットや限界について詳しく説明します。

データ容量の増加

誤り訂正機能は、データの復元を可能にするために冗長な情報(冗長ビット)を追加する仕組みです。

この冗長データはQRコード内に含まれるため、誤り訂正レベルが高くなると、使用可能なデータ容量が減少します。

つまり、より多くのデータを復元できるように誤り訂正レベルを上げると、実際にQRコードに保存できるデータの量が少なくなるというトレードオフが発生します。

具体的には大量の文字情報を含むQRコードを作成したい場合、誤り訂正レベルを高く設定すると、情報が全て収まらないか、コードのサイズが大きくなることで読み取りが難しくなる可能性があります。

読み取り速度の遅延

誤り訂正機能が高レベルに設定されている場合、読み取りに必要な処理が複雑になるため、読み取り速度に影響を与えることがあります。

特に、データが一部破損している状況では、誤り訂正アルゴリズムがデータの復元を行うため、通常よりも時間がかかる可能性があります。

この遅延は、リアルタイム性が求められる場面ではデメリットとなる場合があります。

具体例:列車の改札やイベント入場など

損傷率による限界

誤り訂正機能は、ある程度の損傷や汚れに対しては効果的にデータを復元しますが、どこまででも復元できるわけではありません。

QRコードの損傷が大きすぎたり、読み取れない範囲が広すぎる場合、誤り訂正機能でもデータの復元が不可能になります。

誤り訂正レベルの選択は重要ですが、それでもコードの30%以上が破損すると、どんな高いレベルでも読み取りに失敗してしまいます。

デメリットを上回るメリット

デメリットをご紹介しましたが、世の中でQRコードが広く活用されているのはメリットがデメリットを上回っているからです。

データ容量、コードのサイズ、読み取り速度、物理的環境、印刷品質などがQRコードの性能に影響を与えるため、用途や状況に応じた最適な誤り訂正レベルの選択が必要です。

QRコードの誤り訂正機能を使った実験

では実際に誤り訂正機能がどのように活きているのか独自の実験をしてみます。

今回の実験では下の誤り訂正レベルQのQRコードを利用します。

誤り訂正レベルQのQRコード

読み取り端末は下記の端末を使用しました。

  • iPhone XRの標準カメラ
  • Google Pixel7aのGoogleレンズ
  • Google Pixel7aの標準カメラ
  • Google Pixel7aのAndroidのクイック設定 > 「QRコードスキャナー」

実験1: 欠損率を変えてみる

以下のように15%・20%・25%・30%のそれぞれの欠損率のQRコードを作成し読み取りテストを行いました。

誤り訂正レベルはQは約25%までの欠損に対応しているので30%だけが読み取れないという結果を予想しました。

[画像: 実験のため欠損させたQRコード]

実験のため欠損させたQRコード

実験1結果

結果としては20%の欠損としたQRコードまでしか読み取ることができませんでした。

[画像: 欠損させたQRコードを読み込んだ結果]

欠損させたQRコードを読み込んだ結果

また欠損したQRコードも読み取りには体感で若干時間がかかります。

この結果から誤り訂正レベルの許容範囲はあくまで目安とする方が良いことがわかります。

実験2: 欠損位置を変える

次に欠損率を15%に固定し、欠損させる位置を変えてみます。試した位置は以下の通りです。

  1. 切り出しシンボル(ファインダパターン)に被る位置
  2. QRコードの左端
  3. アライメントパターン(小さい目の部分)に被る位置
  4. 横長

ファインダパターン(切り出しシンボル)とは?

アライメントパターンとは?

QRコードの機能的に特別に意味のある1,3は読み取りができないのではないかと予想していました。

[画像: 欠損率を15%に固定し位置を変更したQRコード]

欠損率を15%に固定し、位置を変更したQRコード

実験2結果

結果としては切り出しシンボルに被っているもの以外は読み取りができました。

[画像: 欠損率を15%に固定し、位置を変更したQRコード読み取り結果]

欠損率を15%に固定し、位置を変更したQRコード読み取り結果

iPhoneでは切り出しシンボルが欠損すると例え誤り訂正レベルの許容範囲内であっても読み取りが難しいことがわかりました。

またアライメントパターンが欠損した場合でも読み取りは可能でしたが、読み取りに時間を要しました。よってできればアライメントパターンもできれば欠損しない方が良いことがわかります。

参考記事: QRコードの仕組みを徹底解説!模様の意味や読み取りの原理まで紹介


※この実験の副産物としてスマホのQRコードリーダー機能の性能(読み取りの速さと欠損時の性能)はAndroidクイック設定 > GooglePixelカメラ > Googleレンズ > iPhoneでした。

Androidクイック設定のQRコードスキャナーでは一つの切り出しシンボルを100%隠しても読み取ることができました。何らか内部で補完しているのかと推測されます。

【2025年】無料でAndroidスマホ上のQRコードを読み取る方法

まとめ: QRコードを支える誤り訂正機能

QRコードの誤り訂正機能は、情報が一部欠損しても正確に復元させる技術です。

日常のQRコードの利用で誤り訂正機能を認識している方は少ないかと思いますが、アイコンや画像付きのQRコードで恩恵を受けていることがわかりました。

実験1,2の結果から誤り訂正レベルの許容範囲はあくまで参考程度とし、許容範囲に余裕を持って運用することをおすすめします。

また切り出しシンボル(アライメントパターン)を隠すと欠損率に関わらず読み取りができませんでした。


実際に誤り訂正機能やSNS画像を含めたQRコードを試したい方にはQR TOOLがおすすめです。

QR TOOL | オリジナルQRコードの作成・読み取り

お持ちの画像でQRコードを作成し、読み取りテストまで行うことができます。

オリジナル画像を使用する場合には必ず読み取り確認まで行っていただくのがおすすめです。

画像からQRコードを検出・内容確認

是非ご活用ください。

QR TOOL
QR WORLDロゴ

QR WORLD(QRワールド) 編集部

QRコード・バーコードの生成・読み取りシステムを開発してきた経験からお役立ち情報を発信しています。

QRコード作成

無料