QR コードの仕組み:エラー訂正とバージョンの選び方

約7分

QR コードは「白黒のドットの集合」に見えますが、内部にはエラー訂正符号、データのモード切り替え、整列パターン、フォーマット情報など多くの構造が詰まっています。本記事では QR コードの基本構造と、生成時の選択肢を整理します。

QR コードの構成要素

QR コードを見ると、決まった位置にいくつかの「マーク」が見えます:

  • 位置検出パターン(ファインダー):左上・右上・左下の 3 隅の大きな四角
  • 整列パターン:右下付近の小さい四角(バージョン 2 以上)
  • タイミングパターン:ファインダー間の白黒交互の点線
  • フォーマット情報:エラー訂正レベルとマスクパターンを示す
  • データ + エラー訂正:残りの領域

これらは Reed-Solomon 符号でエンコードされ、コードリーダーが正しく読み取れるように冗長性を持っています。

バージョン:サイズの段階

QR コードは バージョン 1〜40 で表され、それぞれサイズが違います:

バージョンモジュール数最大データ容量(数字、L レベル)
121×2141 文字
537×37154 文字
1057×57395 文字
2097×971,259 文字
40177×1777,089 文字

データが多いほど大きいバージョンになります。最大は 40 で、4296 英数字または 7089 数字。

エラー訂正レベル(ECL):4 段階

QR コードはエラー訂正符号を持っており、汚れや欠損があっても読み取れます:

レベル復元可能率容量に対する誤訂正データ
L約 7%少ない(データ多)
M約 15%標準
Q約 25%多め
H約 30%多い(データ少)

「30% 復元可能」ということは、コードの 30% が読み取れなくても元データを復元できる、ということ。

データモード:何をエンコードするか

QR コードは複数のエンコードモードを持ち、データの種類に応じて効率を変えます:

モード文字ビット/文字用途
数字(Numeric)0-93.33 bit/桁数字のみ
英数字(Alphanumeric)0-9, A-Z, スペース, $%*+-./:5.5 bit/文字英数字
バイナリ(Byte)任意の 8bit データ8 bit/byteURL、UTF-8 テキスト
漢字(Kanji)Shift JIS 漢字13 bit/文字日本語(特殊な漢字モード)

「12345」のような数字だけのデータは Numeric モードが最も効率的。URL や UTF-8 の日本語は Byte モードで扱います。

用途別のレベル選択

印刷物(ポスター、名刺など)

  • エラー訂正:Q または H
  • 印刷物は経年劣化や指紋・汚れに晒されやすい
  • 余裕を持たせる

画面表示(Web、アプリ)

  • エラー訂正:L または M
  • 劣化リスクが小さい
  • データを多く詰められる

ロゴ入り QR コード

中央に企業ロゴを重ねるデザインの QR コード。エラー訂正の冗長性で隠れた部分を補完できる:

  • ロゴが面積の 10% → エラー訂正 M で OK
  • ロゴが 25% → エラー訂正 H が必要

レベル H で 30% まで復元可能なので、ロゴが 25% 占めても読み取り可能。

マスクパターン:白黒のバランスを取る

データだけだと「黒が多い」「白が多い」など偏ったパターンが生じることがあります。これを修正するため、QR コードはデータに マスクパターン(XOR)を適用します。

8 種類のマスクパターン(0〜7)から、エンコード時にもっとも読みやすいものが選ばれ、フォーマット情報に記録されます。

容量計算の例

「URL が 50 文字、印刷物用」のケース:

  • データ:50 バイト(URL は ASCII で 1 バイト/文字)
  • バイトモード:50 × 8 = 400 bit
  • エラー訂正 H:データ容量の 70% 程度しか使えない
  • バージョン:3〜4 程度で足りる(21×21〜33×33 モジュール)

「商品ページ URL を名刺に印刷したい」程度なら、バージョン 4 + エラー訂正 H で十分。

QR コードを印刷する際の最低サイズ

読み取り可能な最低サイズの目安:

最低サイズ(mm)= モジュール数 × 0.4mm × 1.5

バージョン 4(33×33)なら 33 × 0.4 × 1.5 ≒ 20mm。一般的な名刺の QR コードは 20〜25mm。

距離を取って読み取る場合は大きく(駅貼りポスターなど)。「対角線が距離の 1/10 以上」が経験則。

マイクロ QR コードと Rectangular Micro QR

通常の QR コードは正方形ですが、派生規格:

  • マイクロ QR:最小 11×11 から、小さい商品タグ用
  • rMQR(Rectangular Micro QR):細長い形(食品ラベルなど)

これらは ISO 標準化されているが、対応するリーダーが限られるため業務用途中心。

実装で注意

  • 画面表示は Canvas / SVG:拡大縮小に強い SVG が便利
  • 印刷向け解像度:300 DPI で十分
  • クワイエットゾーン:QR コードの周囲に最低 4 モジュール分の余白が必要
  • 対比比:背景色とコード色のコントラスト比を確保(暗い背景に黒コードは読めない)

まとめ

  • QR コードはサイズ(バージョン 1〜40)、エラー訂正(L/M/Q/H)、データモードの組み合わせ
  • 印刷物には Q または H レベル、画面には L または M
  • ロゴ入りは H レベルで隠せる
  • 周囲に余白(クワイエットゾーン)が必須

URL や任意のテキストから QR コードを生成したいときは、本サイトの QR コード生成ツールが使えます。エラー訂正レベルとサイズを指定できます。