📱
← ガイド一覧に戻る

QR コードの仕組み:技術的な詳細解説

· タグ: qr-codes, technology, encoding, data-storage, barcode

QR コードの仕組み:技術的な詳細解説

QR コード(Quick Response コード)は、トヨタ子会社のデンソーウェーブが 1994 年に発明した 2 次元マトリックスバーコードです。高速デコード用に設計された QR コードは、4 つの標準化されたエンコーディングモードと Reed-Solomon 誤り訂正を使用して、白黒の正方形(モジュール)のグリッドにデータを格納します。データを 1 次元でエンコードする線形バーコードとは異なり、QR コードは情報を水平方向と垂直方向の両方に詰め込み、1 つのシンボルで最大 7,089 桁の数字を実現します。

QR コードの構造

すべての QR コードは、いくつかの機能ゾーンで構成されています。これらのコンポーネントを理解することは、確実にスキャンでき、データ容量を最大化するコードをデザインするのに役立ちます。

ファインダーパターン

左上、右上、左下の角に配置された 3 つの同一の正方形パターン。各ファインダーパターンは、7x7 の黒い正方形、5x5 の白い正方形、その中心の 3x3 の黒い正方形で構成されます。これらのパターンにより、スキャンソフトウェアは回転に関係なく、QR コードの位置、向き、角度を迅速に検出できます。

位置合わせパターン

コード全体に埋め込まれた小さめのレジストレーションマーク(通常 5x5 モジュール)。位置合わせパターンは、製品パッケージや飲料缶などの曲面にコードが印刷されたときの歪みをスキャナーが修正するのに役立ちます。バージョン 2 以上のコードには少なくとも 1 つの位置合わせパターンがあり、その数はコードサイズとともに増加します。

タイミングパターン

ファインダーパターンの間を水平方向と垂直方向の両方に走る、白黒が交互に並ぶ線。これらのモジュールはデータグリッドの行と列の位置を定義し、スキャナーが各モジュールのサイズを決定するのに役立ちます。

フォーマット情報

ファインダーパターンの近くにある専用領域で、誤り訂正レベルとマスクパターンをエンコードします。スキャナーはこれを最初に読み取り、残りのデータを正しくデコードする方法を知ります。

データ領域と誤り訂正領域

残りのモジュールは、データコードワード(エンコードされたペイロード)と誤り訂正コードワード(損傷回復用の冗長データ)の 2 つのインターリーブされた領域を形成します。これらは、QR コードのバージョンによって異なる特定のビットパターンで配置されます。

クワイエットゾーン

QR コード全体を囲む、少なくとも 4 モジュール幅の必須のクリアな境界線。このクワイエットゾーンがないと、スキャナーはコードを周囲から確実に区別できません。これはカスタムデザインにおけるスキャン失敗の最も一般的な原因の 1 つです。

データエンコーディング方式

QR コードは 4 つの異なるエンコーディングモードをサポートし、それぞれが異なるタイプのデータに最適化されています。エンコーダーは入力に基づいて最も効率的なモードを自動的に選択します。

数値モード(Numeric Mode)

数字 0〜9 のみに最適化。3 桁を 10 ビットに詰め込む最もスペース効率の良いモードです(標準バイナリの 1 バイトあたり 8 ビットに対して)。バージョン 40-L での最大容量: 7,089 文字。電話番号、製品 ID、数値コードに最適です。

英数字モード(Alphanumeric Mode)

数字(0〜9)、大文字(A〜Z)、および 9 つの特殊文字をエンコードします:スペース、$、%、*、+、-、.、/、:。各文字のペアは 11 ビットに圧縮されます。最大容量: 4,296 文字。小文字を避ける URL や短いテキストコードに最適です。

バイトモード(Byte Mode)

ISO-8859-1(Latin-1)エンコーディングを使用して任意の 8 ビット文字をエンコードします。コンテンツに小文字、大文字小文字の混在、または UTF-8 文字が含まれる場合、エンコーダーはバイトモードにフォールバックします。最大容量: 2,953 文字。これは最も柔軟なモードで、完全な URL や混在テキストなどの最も一般的なユースケースをカバーします。

漢字モード(Kanji Mode)

2 バイトの日本語文字(Shift JIS エンコーディング)用の特殊なモード。各漢字は 16 ビットではなく 13 ビットに圧縮されます。最大容量: 1,817 文字。日本国外ではあまり使用されませんが、この形式の出自を示しています。

エンコーディングのプロセスを段階的に

  1. データ分析 — エンコーダーが入力コンテンツを分析し、最も効率的なモードを選択
  2. モードインジケータ — 4 ビットのコードが選択されたエンコーディングモードを示す
  3. 文字数 — ビットシーケンスがデータの長さを記録
  4. データエンコーディング — 選択されたモードを使用してコンテンツがビットストリームに変換
  5. ターミネータ — 短いパディングシーケンスがデータの終わりを示す
  6. ビットパディング — 残りの容量が 0 と 1 のビットを交互に埋めて完全なコードワード境界に到達
  7. 誤り訂正の生成 — Reed-Solomon コードワードが計算され、追加される

QR コードのバージョンとサイズ

QR コードは 40 バージョンにわたって定義され、バージョン 1(21x21 モジュール)からバージョン 40(177x177 モジュール)まであります。各バージョンは 1 辺あたり 4 モジュールずつ追加されます。

| バージョン | 寸法 | 数値容量(L) | 一般的な用途 | |---------|-----------|---------------------|-------------| | 1 | 21x21 | 41 | シンプルな URL | | 2 | 25x25 | 77 | 短いリンク | | 4 | 33x33 | 187 | vCard、URL | | 6 | 41x33 | 322 | WiFi 設定 | | 10 | 57x57 | 652 | 中程度のテキスト | | 20 | 97x97 | 1,746 | ドキュメント | | 40 | 177x177 | 7,089 | 最大データ |

消費者向けの QR コードのほとんどは、バージョン 2 からバージョン 10 を使用します。より高いバージョンにはより小さなモジュールが含まれ、より高解像度の印刷とより正確なスキャンが必要です。

Reed-Solomon 誤り訂正

QR コードは Reed-Solomon 誤り訂正を採用し、データをブロックに分割して各ブロックの冗長コードワードを生成します。4 つのレベルがあります。

  • レベル L — 損傷データの 7% を回復。最大のデータ容量、最小限の保護。
  • レベル M — 15% を回復。一般的な用途の標準的な選択。ほとんどの QR ジェネレーターはこのレベルをデフォルトにしています。
  • レベル Q — 25% を回復。包装された商品や頻繁に取り扱われるアイテムのコードに対する強力な保護。
  • レベル H — 30% を回復。屋外または産業環境に対する最大の保護。

誤り訂正システムは、QR コードにロゴやアートワークを埋め込む一般的な慣行も可能にします。遮蔽されたモジュールは、遮蔽が誤り訂正能力を超えない限り、冗長データから再構築されます。

スキャンの仕組み

最新の QR コードスキャンには、ミリ秒単位で実行される高度なパイプラインが関与します。

  1. 検出 — カメラが画像をキャプチャし、ソフトウェアがファインダーパターンを見つけてコードの境界を決定
  2. 透視補正 — スキャナーが幾何学的変換を適用して、斜めの視点と曲面を修正
  3. 2 値化 — 適応しきい値処理を使用して画像を純粋な白黒に変換し、さまざまな照明に対応
  4. モジュールサンプリング — スキャナーがグリッドの交点で各モジュールの色を読み取る
  5. フォーマットデコード — 誤り訂正レベルとマスクパターンがフォーマット領域から抽出される
  6. データ抽出 — マスキングが解除され、指定された順序でデータビットストリームが読み取られる
  7. エラーチェック — Reed-Solomon シンドローム計算がエラーを検出して修正
  8. デコード — クリーンなビットストリームが宣言されたエンコーディングモードを使用して元のコンテンツに変換

マスキングパターン

QR コードは、最終的なレンダリングの前にデータ領域に 8 つのマスキングパターン(0〜7 の番号)のいずれかを適用します。マスキングにより白黒モジュールのバランスの取れた分布が保証され、スキャナーを混乱させる大きな空き領域が防止されます。スキャナーはフォーマット情報からマスク参照を読み取り、デコード中にマスクを解除します。

Micro QR コード

Micro QR Code と呼ばれる変種は、単一のファインダーパターン(3 つではなく)を使用し、4 つのより小さなバージョンがあります。Micro QR コードは、電子部品や医療機器などの非常に小さなスペースに役立ち、最大容量は 355 桁の数字です。

自信を持って QR コードを生成する

基盤となる技術を理解することで、あらゆる環境で確実にスキャンできる QR コードを作成できます。当サイトの無料オンライン QR コード生成ツールは、バージョン選択、モード最適化、誤り訂正、マスキングなど、すべての技術的決定を自動化し、数秒で本番対応のコードを取得できます。URL、テキスト、vCard、WiFi など、完全なカスタマイズオプションを備えたさまざまな形式から選択できます。