QR コードの構造

QR コードシンボルを構成するコンポーネントを探索する。

ファインダーパターン

すべてのQRコードの左上、右上、左下の角にある、3つの同一の7×7モジュール正方形です。それぞれ3×3の黒い中心を白い輪が囲み、さらにその外側を黒い輪が囲む構造になっており、どの向きからでも検出できる特徴的な1:1:3:1:1の比率を生み出しています。

セパレータ

3つのファインダーパターンそれぞれを囲む、幅1モジュールの白い(明るい)枠です。セパレータにより、ファインダーパターンの検出が隣接するデータモジュールの暗さによって誤認されないようにします。

タイミングパターン

ファインダーパターンをつなぐ、黒白が交互になった幅1モジュールの2本の線 — 6行目に沿った水平線と6列目に沿った垂直線です。これらのパターンは、シンボル内のすべてのモジュールの位置を特定するために使われるモジュールグリッドの密度と座標系を確立します。

アライメントパターン

QRコード全体に一定間隔で配置される5×5モジュールの正方形です(バージョン1には存在しません)。それぞれ1つの暗い中心モジュール、白い輪、暗い外輪を持ちます。アライメントパターンの数はバージョンとともに増加し、バージョン2の1個からバージョン40の46個までとなります。

形式情報

誤り訂正レベル(2ビット)とマスクパターン(3ビット)を符号化した15ビットのシーケンスで、BCH(15,5)誤り訂正符号で保護されています。この情報は冗長性のため2回格納されます — 1回は左上のファインダーパターンに隣接し、もう1回は他の2つのファインダーの間に分割されて配置されます。

バージョン情報

QRコードのバージョン番号(6ビット)をGolay(18,6)誤り訂正符号で符号化した18ビットのシーケンスです。バージョン7〜40にのみ存在し、左下と右上のファインダーパターン付近にある2つの6×3モジュールブロックに配置されます。

ダークモジュール

固定座標(8, 4v+9)(vはバージョン番号)にある、常に暗い単一のモジュールです。バージョン1では位置(8, 13)にあります。このモジュールはいかなるパターンの一部でもなく、データやマスクの内容にかかわらず常に黒です。

データ領域

機能パターン、形式・バージョン情報、セパレータのいずれにも占められていない、すべてのモジュールです。データ領域には実際に符号化されたペイロード(モード指示子、文字数、データビット)が、特定の幅2モジュールの上下ジグザグパターンで誤り訂正符号語とインターリーブされて格納されます。

誤り訂正

データ領域内でデータ符号語とインターリーブされた、リード・ソロモンのパリティ符号語です。QRコードはL(7%回復)、M(15%)、Q(25%)、H(30%)の4つの誤り訂正レベルを使用します。レベルが高いほどパリティにより多くの符号語を使い、データ容量は減りますが損傷耐性は高まります。

クワイエットゾーン

QRコードシンボル全体を囲む、最低4モジュール幅の必須の白い(明るい)マージンです。クワイエットゾーンにはいかなる印刷やマークもあってはならず、スキャナーがシンボルの境界を確実に検出できるようにします。

マスクパターン

符号化時にデータ領域へ適用される、8種類の定義済みXORパターンのいずれか1つです。エンコーダーは8種類のマスクすべてを評価し、望ましくない特徴(同色の大きな領域や、ファインダーパターンに似たパターン)を最小化するものを選択します。選択されたマスクIDは形式情報に格納されます。

残余ビット

データ領域内の残りのモジュール位置を埋めるために、最後の誤り訂正符号語の後に追加されるゼロ値のパディングビットです。残余ビットの数はバージョンによって異なり(0、3、4、または7ビット)、ISO 18004規格で規定されています。