Qraft (クラフト)

QR コードの仕組み - 構造と読み取り原理をわかりやすく解説

QR コードとは

QR コード (Quick Response Code) は、1994 年にデンソーウェーブが開発した二次元バーコードです。従来のバーコードが横方向にしかデータを持てないのに対し、QR コードは縦横の 2 方向にデータを格納できるため、数十倍から数百倍の情報量を扱えます。

名前の「Quick Response」が示すとおり、高速な読み取りを目的に設計されました。現在ではスマートフォンのカメラをかざすだけで瞬時にデコードでき、URL へのアクセス、Wi-Fi 接続、電子決済など幅広い用途で利用されています。

QR コードの構造を分解する

QR コードは一見ランダムな白黒のドットに見えますが、実際には厳密に定義された領域で構成されています。主な構成要素は以下のとおりです。

  • ファインダーパターン: 左上・右上・左下の 3 隅にある大きな正方形。スキャナーが QR コードの位置と傾きを瞬時に検出するための目印です。
  • アライメントパターン: バージョン 2 以上の QR コードに含まれる小さな正方形。曲面に印刷された場合の歪みを補正します。
  • タイミングパターン: ファインダーパターン間を結ぶ白黒交互のライン。セルの座標を正確に割り出すための基準線です。
  • データ領域: 実際のデータがエンコードされた領域。数字、英数字、バイナリ、漢字の 4 つのモードに対応しています。
  • 誤り訂正コード: リード・ソロモン符号を用いた冗長データ。汚れや破損があっても元のデータを復元できます。

データのエンコード方式

QR コードに格納するデータは、内容に応じて最適なエンコードモードが自動選択されます。

  • 数字モード: 0〜9 の数字のみ。3 桁を 10 ビットに圧縮するため、最も効率的です。最大 7,089 文字を格納できます。
  • 英数字モード: 0〜9、A〜Z、スペース、$、%、*、+、-、.、/、: の 45 種類。2 文字を 11 ビットに変換します。
  • バイトモード: UTF-8 などの任意のバイト列を格納します。URL や日本語テキストはこのモードが使われます。
  • 漢字モード: Shift_JIS の漢字を 1 文字 13 ビットで効率的にエンコードします。

エンコードされたデータはビット列に変換され、QR コードのセル (白黒のドット) として配置されます。データ量が多いほど QR コードのバージョン (サイズ) が大きくなり、最小のバージョン 1 (21×21 セル) から最大のバージョン 40 (177×177 セル) まで 40 段階あります。

エラー訂正の仕組み

QR コードの大きな特徴のひとつが、強力なエラー訂正機能です。リード・ソロモン符号と呼ばれる数学的アルゴリズムにより、QR コードの一部が汚れたり破損したりしても、元のデータを復元できます。

エラー訂正には 4 つのレベルがあります。

  • L (Low): 約 7% の損傷まで復元可能
  • M (Medium): 約 15% の損傷まで復元可能
  • Q (Quartile): 約 25% の損傷まで復元可能
  • H (High): 約 30% の損傷まで復元可能

エラー訂正レベルが高いほど復元能力は上がりますが、その分データ領域が冗長データに使われるため、格納できる情報量は減ります。ロゴを中央に重ねるデザイン QR コードでは、ロゴ部分のデータが読めなくなるため、レベル H を選ぶのが一般的です。

<% if (typeof amazonTag !== 'undefined' && amazonTag) { %>QR コードの技術書を Amazon で探す<% } else { %>QR コードの技術書<% } %>も参考になります。

スマートフォンはどうやって読み取るのか

スマートフォンのカメラで QR コードを読み取る処理は、以下のステップで行われます。

  • 1. 検出: カメラの映像からファインダーパターン (3 つの大きな正方形) を検出し、QR コードの位置・サイズ・傾きを特定します。
  • 2. 正規化: 斜めから撮影した場合の遠近歪みを、アライメントパターンを基準に補正します。
  • 3. サンプリング: タイミングパターンを基準にセルの格子を割り出し、各セルが白か黒かを判定します。
  • 4. デコード: フォーマット情報からエラー訂正レベルとマスクパターンを読み取り、マスクを解除してデータビット列を取得します。
  • 5. エラー訂正: リード・ソロモン符号でデータの誤りを検出・訂正します。
  • 6. 解釈: デコードされたデータを URL、テキスト、Wi-Fi 設定などの形式に変換し、対応するアクションを実行します。

この一連の処理は数十ミリ秒で完了するため、ユーザーはカメラをかざした瞬間に結果を得られます。

<% if (typeof amazonTag !== 'undefined' && amazonTag) { %><% } %>

QR コードの実用的な活用ポイント

QR コードの仕組みを理解すると、より効果的に活用できます。実践で役立つポイントをまとめます。

  • データ量を抑える: URL 短縮サービスを使って文字数を減らすと、QR コードのバージョンが小さくなり、読み取り精度が向上します。
  • コントラストを確保する: 背景色と前景色のコントラスト比が低いと読み取りに失敗しやすくなります。白背景に黒ドットが最も安定します。
  • 印刷サイズに注意する: 名刺なら 2cm 角以上、ポスターなら読み取り距離に応じたサイズを確保しましょう。
  • エラー訂正レベルを選ぶ: ロゴを重ねるならレベル H、データ量を優先するならレベル L と、用途に応じて使い分けます。

QR コードは仕組みを知るほど、デザインや配置の工夫で読み取り率を高められます。<% if (typeof amazonTag !== 'undefined' && amazonTag) { %>さらに詳しく学びたい方は、二次元バーコードの活用に関する書籍もおすすめです。<% } else { %>二次元バーコードの活用に関する書籍もおすすめです。<% } %>

<% if (typeof amazonTag !== 'undefined' && amazonTag) { %><% } %>