用語辞典・データ・文字コード

QRコード

QRコードとは

QRコード(Quick Response Code/クイック・レスポンス・コード/キューアールコード)は、白黒などの小さな升目へデータを符号化し、カメラで読み取れる二次元コードです。QRコードは株式会社デンソーウェーブの登録商標です。

升目一個をmodule(モジュール)と呼びます。三隅の大きな位置検出模様パターン等で位置と向きを検出し、モジュールの明暗からデータと誤り訂正コードを取り出します。

QRコードは画像そのものに信頼性を付けません。読み取ったURL、連絡先、支払情報、命令が安全かは、表示して利用者が確認する別の段階です。

データをモード・長さ・ペイロード・誤り訂正・マスクへ通す機能パターンを避けてモジュールへ配置し、撮影歪みと欠損を補正して読む
URL・連絡先・小さなデータがモード選択、長さ、ペイロード、誤り訂正、マスクを経て三隅位置検出模様パターンと位置合わせパターンを持つQRモジュールへ配置され、カメラが遠近補正・サンプリング・欠損修復を行い元データへ戻す流れ、訂正段階、印刷密度、偽URLを示すピクトグラム図解
図1図のQRパターンは構造説明用です。実際の記号はバージョン、誤り訂正段階、マスク、データによって一意に配置されます。

読取りを支える構造

位置検出模様パターン位置検出パターン

三隅の同心四角で、コードの位置・向き・大きさを見つけます。

区切り記号 / 余白ゾーン周囲から分離する余白

位置検出模様周囲の白線と記号外側の4module幅の余白で境界を示します。

タイミングパターンモジュール間隔を測る

明暗交互の線から行・列のサンプリング位置を合わせます。

位置合わせパターン歪みを補正する

大きいバージョンで複数配置され、曲面や遠近による局所歪みを補います。

形式 / バージョン読取条件を示す

誤り訂正段階とマスク、一定以上ではバージョン情報も符号化します。

データモジュールデータと訂正コードを置く

機能パターン以外へ規定のジグザグ順でビットを配置します。

バージョンでモジュール数が増える

標準QRコードはバージョン1〜40があり、バージョン1は21×21moduleです。バージョンが一つ上がるごとに一辺が4module増え、バージョン40は177×177moduleになります。

大容量ほど高バージョンが必要ですが、同じ印刷大きさなら一モジュールが小さくなり読みにくくなります。入れるデータを短くし、利用距離とカメラ解像度に合う物理モジュール大きさを確保します。

データを符号語へする順序

  1. モードを選ぶ数字、英数字、バイト、漢字等から効率のよいモードを区間ごとに選びます。
  2. 長さとデータを符号化するモード指標、文字個数、データビットを並べ、終端記号と埋め草で容量を満たします。
  3. 誤り訂正符号語を作るブロックごとにReed–Solomonコードを計算し、データと交互配置します。
  4. モジュールへ配置する機能パターンを避け、右下から二列ずつジグザグに置きます。
  5. マスクを選ぶ複数候補を評価し、大きな同色領域等の読みにくいパターンを減らします。

文字のモードと符号化

数字モードは数字、英数字モードは限定された英数字・記号、漢字モードは所定のシフト_JIS範囲を効率よく表します。バイトモードはバイト列を格納します。

バイトから文字への文字エンコーディングを明示するECIもあります。生成器と読取申請がECIを正しく扱うか確認し、日本語を含むデータは実機で往復試験します。

四つの誤り訂正段階

段階L・M・Q・Hは、失われた符号語を概ね約7%・15%・25%・30%復元できる設計目安です。高い段階ほど訂正符号語が増え、同じバージョンへ入るデータ量は減ります。

面積の同じ割合が欠ければ必ず直るという保証ではありません。位置検出模様パターンや広い連続領域の損傷、ぼかし、反射、汚れ方で読取結果が変わります。ロゴを重ねる場合も余白ではなくデータモジュールを壊すため、実機試験が必要です。

印刷・画面表示で読める条件

周囲に4module以上の余白ゾーンを確保し、高コントラスト、正方形モジュール、十分な物理大きさを保ちます。画像拡大で補間をかけて縁をぼかさず、暗色モジュールと明色背景の関係を維持します。

曲面、光沢、低コントラスト、細かな背景模様、画面のモアレはサンプリングを難しくします。想定する距離、カメラ、照明、汚れで試験します。

読み取る前後の安全確認

QRコードはURLを格納できますが、短縮URL、似たドメイン、偽の決済接続先も同じように符号化できます。公共場所のコード上へ別のシールを貼る攻撃もあります。

申請は移動先ドメインと方式を表示し、利用者が確認してから開きます。支払いでは店舗名・金額・送金先、Wi-Fi設定ではSSIDとセキュリティ、ログインでは要求権限を確認します。カメラで読めたことは内容の安全証明ではありません。

QRコードは機能パターン・データ・Reed–Solomon訂正コード・マスクをモジュールへ配置する二次元コードです。容量だけでなくモジュール大きさ、余白ゾーン、コントラスト、損傷位置、文字符号化、読取後の内容確認を設計します。

QR Codeの構造・容量・誤り訂正・開発元情報:DENSO WAVE QRcode.com

関連用語