QRコード(QR Code®)は、デンソーウェーブが開発した二次元コードで、JIS X 0510・ISO/IEC 18004 として標準化されています。本記事では、バージョン・データ容量・符号化モード・構造・マスクといった仕様を、実際に生成したサンプルQRコードとともに解説します。
1. 基本構造とモジュール
QRコードは白黒のマス目で構成され、その最小単位をモジュールと呼びます。正方形の中に、データ領域と、読み取りを助けるための機能パターンが配置されています。
- ファインダパターン(位置検出):三隅にある大きな「回」の字状のマーク。向きと位置の検出に使う。
- 分離パターン:ファインダの周囲の白い境界。
- タイミングパターン:白黒交互の列・行。座標(モジュール数)の基準。
- 位置合わせパターン(アライメント):バージョン2以上にある小さな「回」。歪み補正用。
- 形式情報・型番情報:誤り訂正レベルとマスク、バージョン番号を格納。
- クワイエットゾーン:周囲の余白(4モジュール以上推奨)。
2. バージョンとモジュール数
QRコードにはバージョン1〜40があり、数字が大きいほどマス目が増え、より多くのデータを格納できます。一辺のモジュール数は次の式で決まります。
下のサンプルは、同じURLを異なるバージョンで生成したものです。データ量が同じでも、バージョンを上げるとマス目が細かくなることが分かります。
3. データ容量と符号化モード
QRコードは入力データの種類に応じて4つの符号化モードを使い分け、効率よく詰め込みます。数字だけなら多く、漢字を含むと少なくなります。
| モード | 対象 | 最大容量(V40・誤り訂正L) |
|---|---|---|
| 数字 | 0〜9 | 約 7,089 文字 |
| 英数字 | 0-9・A-Z・記号9種 | 約 4,296 文字 |
| 8ビットバイト | バイナリ(UTF-8など) | 約 2,953 バイト |
| 漢字 | Shift_JIS の漢字 | 約 1,817 文字 |
同じバージョンでも、内容の種類で入る量が変わります。下は数字・英数字・URL(バイトモード)のサンプルです。
4. 誤り訂正レベル(L / M / Q / H)
QRコードは一部が汚れても読めるよう、冗長な復元データを持ちます。レベルは4段階で、高いほど壊れに強い反面、同じ情報でもマス目が増えます。
| レベル | 復元可能な目安 | 用途 |
|---|---|---|
| L | 約7% | 容量優先・きれいな環境 |
| M | 約15% | 一般的な印刷物(標準) |
| Q | 約25% | やや過酷な環境 |
| H | 約30% | ロゴ入りデザインQRなど |
同じURLを各レベルで生成したサンプルです。L→H とレベルを上げるとマス目が密になります。
誤り訂正の仕組み(リード・ソロモン符号)は、別記事「QRコードの誤り訂正レベルを理解する」で詳しく解説しています。
5. マスク処理
QRコードは、白黒の偏りや誤検出を避けるため、データ領域に8種類(0〜7)のマスクパターンのいずれかを重ねます。生成時に最も読み取りやすいパターンが自動選択され、どれを使ったかは形式情報に記録されます。読み取り時はこれを解除して元データを取り出します。
6. 派生規格:Micro QR / rMQR
- Micro QR:ファインダを1つだけにし、小さな面積に少量のデータを格納する省スペース版。
- rMQR(長方形マイクロQR):横長・縦長のスペースに収められる長方形タイプ。
- iQR / SQRC / フレームQR:大容量化、読み取り制限、デザイン枠などの拡張版。
よくある質問(FAQ)
QRコードのバージョンとは何ですか?
バージョンは1〜40まであり、数字が大きいほどマス目(モジュール)が増えて多くのデータを格納できます。一辺のモジュール数は「4×バージョン+17」で決まり、V1は21×21、V40は177×177になります。
QRコードにはどのくらいのデータを格納できますか?
入力データの種類に応じた4つの符号化モードで効率よく詰め込みます。最大容量(V40・誤り訂正L)は、数字モードで約7,089文字、英数字で約4,296文字、8ビットバイトで約2,953バイト、漢字で約1,817文字です。
QRコードのマスク処理とは何ですか?
白黒の偏りや誤検出を避けるため、データ領域に8種類(0〜7)のマスクパターンのいずれかを重ねる処理です。生成時に最も読み取りやすいパターンが自動選択され、どれを使ったかは形式情報に記録されます。