QR コードの仕組み:エラー訂正とバージョンの選び方
QR コードは「白黒のドットの集合」に見えますが、内部にはエラー訂正符号、データのモード切り替え、整列パターン、フォーマット情報など多くの構造が詰まっています。本記事では QR コードの基本構造と、生成時の選択肢を整理します。
QR コードの構成要素
QR コードを見ると、決まった位置にいくつかの「マーク」が見えます:
- 位置検出パターン(ファインダー):左上・右上・左下の 3 隅の大きな四角
- 整列パターン:右下付近の小さい四角(バージョン 2 以上)
- タイミングパターン:ファインダー間の白黒交互の点線
- フォーマット情報:エラー訂正レベルとマスクパターンを示す
- データ + エラー訂正:残りの領域
これらは Reed-Solomon 符号でエンコードされ、コードリーダーが正しく読み取れるように冗長性を持っています。
バージョン:サイズの段階
QR コードは バージョン 1〜40 で表され、それぞれサイズが違います:
| バージョン | モジュール数 | 最大データ容量(数字、L レベル) |
|---|---|---|
| 1 | 21×21 | 41 文字 |
| 5 | 37×37 | 154 文字 |
| 10 | 57×57 | 395 文字 |
| 20 | 97×97 | 1,259 文字 |
| 40 | 177×177 | 7,089 文字 |
データが多いほど大きいバージョンになります。最大は 40 で、4296 英数字または 7089 数字。
エラー訂正レベル(ECL):4 段階
QR コードはエラー訂正符号を持っており、汚れや欠損があっても読み取れます:
| レベル | 復元可能率 | 容量に対する誤訂正データ |
|---|---|---|
| L | 約 7% | 少ない(データ多) |
| M | 約 15% | 標準 |
| Q | 約 25% | 多め |
| H | 約 30% | 多い(データ少) |
「30% 復元可能」ということは、コードの 30% が読み取れなくても元データを復元できる、ということ。
データモード:何をエンコードするか
QR コードは複数のエンコードモードを持ち、データの種類に応じて効率を変えます:
| モード | 文字 | ビット/文字 | 用途 |
|---|---|---|---|
| 数字(Numeric) | 0-9 | 3.33 bit/桁 | 数字のみ |
| 英数字(Alphanumeric) | 0-9, A-Z, スペース, $%*+-./: | 5.5 bit/文字 | 英数字 |
| バイナリ(Byte) | 任意の 8bit データ | 8 bit/byte | URL、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 コード生成ツールが使えます。エラー訂正レベルとサイズを指定できます。