図 102感覚館
QR コード:読み取るしくみ
QR コードの 30 % を手で覆ってもスマートフォンは読めます。角を 1 つ覆うと読めません。
この端末では 3D を表示できません。下の解説のステップを文章で読むことができます。
1 / 20 手の下の 30 %自分のテキストがレベル H、型番 9 の QR コードになっています。53 x 53 モジュールです。マネキンの手が上を滑ります。表示と右のスマートフォンを見てください。手がモジュールの約 30 % を覆っても読み取りは続きます。
ドラッグで回転、ホイールか二本指で拡大します。
手で覆っても読めるコード
QR コードにスマートフォンをかざすと、シールが剥がれ、角が折れ、親指がかかっていても、すぐに読み取れます。シリアルの箱のバーコードで同じことをすると、レジから警告音が鳴ります。違いはカメラではありません。QR コードには、見えない部分を読み取り装置が復元できるように追加のコード語が入り、さらに、読み取りを始める前にどの角度からでもコードを見つけられるように、3 つの目印が付いています。
展示が開くと、自分のテキストかこのページのアドレスが、誤り訂正レベル H、型番 9 の QR コードになっています。53 × 53 モジュールの正方形が、展示室のテーブルに置かれています。マネキンの手が端から滑り込み、53 列のうち 16 列を覆うところで止まります。2,809 モジュールのうち 848、シンボルの 30.2 % です。表示は「読み取り成功」のままで、右のスマートフォンもコードを見つけ、テキストを表示し続けます。このとき、シンボルにある 8 個の誤り訂正ブロックは、すべて限界に達しています。それぞれ 12 コード語が誤っており、この大きさのブロックが訂正できるのは最大 12 コード語です。覆う幅をあと 1 列広げて 32.1 % にすると、読み取りは止まります。
次に角を破ってください。破れた三角形はシンボルのわずか 3.2 % で、手が覆った面積よりずっと小さいのに、まったく読めなくなります。このページの続きでは、展示で使う数値をもとに、なぜその両方が起きるのかを説明します。数値は、QR コードの国際規格 ISO/IEC 18004 の規則と、1994 年に開発した企業 DENSO WAVE が公表した設計の説明によります。
テーブル上のシンボルは、QR コードの絵ではありません。プリンタードライバーが使うのと同じリード・ソロモンの演算で、入力欄のテキストからモジュールごとにこのページ上で符号化し、規格の参照手順に従うデコーダーで読み戻しています。傷のないシンボルを画像として保存し、自分のスマートフォンで読み取れます。エンコーダーは、独立した 2 つの読み取り装置と別のエンコーダーで検証しました。型番とレベルの 160 通りの組み合わせで、行列はモジュールごとに一致しました。
展示の使い方
展示の下にある入力欄に文字を入れると、入力するたびにシンボルが作り直されます。左上の表示には、まず結果(読み取り成功、または理由付きの読み取り失敗)、続いて型番と大きさ、誤り訂正レベル、マスクとそのペナルティ点、モードとテキストに必要なビット数、コード語、覆われた量、現在誤っているコード語の数が出ます。その下の小さな棒は誤り訂正ブロックです。誤ったコード語が訂正可能な数に近づくにつれて棒が満たされ、超えると赤くなります。
右のスマートフォン画面は、カメラが画像に対して行う処理を示します。赤い線が画像を上から下へ走り、縞が 1:1:3:1:1 に一致するすべての行に緑の印が付き、3 つの位置検出パターンが見つかったかどうかを円が示します。その下には、テキストか、読み取りを断念した理由が表示されます。
操作欄の「型番」は使う最小の型番を設定します(テキストが収まらなければエンコーダーがシンボルを大きくします)。「誤り訂正」は L、M、Q、H を選び、「マスク」はペナルティ点が最小のものの代わりに、8 種類のうち 1 つを指定します。「覆う幅」と「覆う位置」で手を動かし、「覆う物」で紙の帯や黒いテープに交換します。「役割別に持ち上げる」はモジュールを役割に応じた層に持ち上げ、「役割別の色」は持ち上げずに色を付けます。「配置順」はビットがたどる経路を描き、コード語をブロックごとに色分けします。「マスクを表示」はマスクで反転するモジュールに色を付けます。「回転」はテーブル上のシンボルを回します。「比較」は EAN-13 バーコードや Micro QR シンボルをイーゼルに置くか、型番 1 から 40 を壁に掛けます。「クワイエットゾーン」は白い余白を取り除きます。
「描画」ではシンボルをドラッグして、インク、修正液、穴、消しゴムを使えます。「角を破る」と「油汚れ」は、簡単に傷を付ける方法です。「現在時刻」は現在の時刻をシンボルに入れ、毎秒描き直します。モジュールをクリックすると、その行と列、役割、データモジュールなら所属するブロック、コード語、ビットを確認できます。一部のモジュールやテーブル上の物を押すと、隠れたカードが開きます。
操作欄の下には、テキストをビットで表したもの、各ブロックのコード語の十六進表示、現在の型番の 4 レベルの表、横に並んだ 8 つのマスク、型番の表、12 の課題、46 の事例、「実は」で始まるカード、コレクション、関連展示へのリンクがあります。
3 つの角の正方形
2 次元コードの読み取りで最も難しいのはデータではありません。さまざまな物が写るカメラ画像の中からコードを見つけ、その上下の向きと各モジュールの大きさを割り出すことです。バーコードは簡単に見つかります。レーザーや 1 列の画素が横切るだけでよいからです。マトリックスコードは 2 次元で見つけなければなりません。
DENSO WAVE の答えは、角にある 3 つの正方形でした。規格では位置検出パターンと呼びます。いずれも 7 × 7 モジュールで、暗い輪、明るい輪、暗い 3 × 3 の中心からなります。中心を通る線は、どの向きでも暗、明、暗、明、暗を 1、1、3、1、1 の幅で横切ります。コードを回転、拡大縮小させたり、斜めから見たりしても比率は変わらないので、読み取り装置は画素の行を走査し、直前の暗明の連続区間 5 つを記録して、一致するか調べられます。
なぜこの比率なのでしょうか。DENSO WAVE によると、開発者はチラシ、雑誌、段ボール箱に印刷された絵や文字を白黒のパターンに置き換え、どの比率が現れるか数えました。印刷物に最も現れにくかったのが 1:1:3:1:1 でした。2024 年に DENSO が公開したインタビューで、開発を率いた Masahiro Hara は、新聞や雑誌を 1 ページずつ撮影し、計測ソフトウェアを一晩中動かしながら、この比率の発見に約 6 か月かかったと語っています。
展示のスマートフォンは、見えている画素に対してまさにこの処理をします。各行をたどり、連続区間を数え、幅が 1:1:3:1:1 から半モジュール以内に収まる 5 つの区間を受け入れます。一致するたびに、中央の区間の真ん中を縦に通って同じ比率を確かめます。互いに一致する検出点は中心の候補になります。次に候補が 3 つ必要で、ほかの 2 点との間で直角を作る点が左上の角です。この角度から、コードがどれだけ回転しているかも分かります。「回転」でシンボルを回し、円が角を追う様子を見てください。
データの一部が、偶然同じ縞を作ることもあります。読み取り装置は、その縞から導かれる格子が合わないため、こうした紛らわしいものを除外します。展示では、本物の位置検出パターンに検出点が重なったときだけ、見つかったと数えます。
分離パターン、余白、暗いテーブル
1:1:3:1:1 の検査は、外側の暗い輪の両側が明るい場合だけ機能します。シンボルの内側では、各位置検出パターンを囲む幅 1 モジュールの明るい輪である分離パターンが、それを保証します。シンボルの外側ではクワイエットゾーンがその役割を果たします。規格では、すべての辺に幅 4 モジュールの明るい余白を要求しています。
展示では、ちょうど 4 モジュールの余白がある紙にシンボルを印刷しています。下のテーブルは暗いスレートです。「クワイエットゾーン」をオフにすると紙の余白が消え、各位置検出パターンの外側の輪が暗いテーブルに直接つながります。位置検出パターンを横切る行は、長い暗い区間 1 つに続いて、明、暗、明、暗になります。最初の区間が何モジュールもの幅になり、比率が一致しません。スマートフォンは位置検出パターンを 1 つも見つけられず、「読み取り失敗、位置検出パターンがありません」と表示されます。データは何も変わっていません。
DENSO WAVE の印刷の案内では、ラベルの寸法に余白を含めています。例はレベル M の英数字 50 文字で、型番 3 が必要です(29 モジュール。レベル M の型番 2 は 38 文字しか入りません)。400 dpi のプリンターで 1 モジュールに 4 ドットを使うと、モジュールは 0.254 mm、シンボルは 7.366 mm で、余白 8 モジュールを加えたラベル領域は一辺 9.398 mm の正方形になります。位置検出パターンが 1 つだけの Micro QR コードでは、4 ではなく 2 モジュールの余白が必要です。
コードに印刷された物差し
どの QR コードでも、行 6 と列 6 は位置検出パターンの間を結び、暗と明が交互に並びます。これがタイミングパターンです。各列と行の位置を読み取り装置に伝えます。印刷が引き伸ばされていたり、紙が波打っていたり、カメラが斜めからコードを見ていたりするときに重要です。位置検出パターンの位置が分かればモジュールの大きさを推定できますが、交互に並ぶモジュールを数えると、位置検出パターン間の正確なモジュール数が分かります。
モジュール数から型番も分かります。型番 V の一辺は 17 + 4V モジュールなので、型番 1 は 21 × 21、型番 40 は 177 × 177 です。展示では、シンボルは常に紙の同じ 30 cm を占めるため、型番が大きくなるほどモジュールは小さくなります。型番 9 では 5.7 mm、型番 40 では 1.7 mm です。
タイミングパターンはシンボルの内側にあるため、データを入れられるはずのモジュールも使います。型番 1 では、機能パターン(位置検出、分離、タイミング、形式情報、暗モジュール)を除くと、コード語用に 208 モジュールが残ります。8 ビットのコード語 26 個です。
曲がった紙のための目標
1994 年の最初の QR コードは、現在ではモデル 1 と呼ばれ、ほかの案内パターンはありませんでした。DENSO WAVE によると、モデル 1 は型番 14、73 × 73 モジュール、数字 1,167 桁まで対応しました。現在使われている QR コードであるモデル 2 は、曲面に印刷されたコードや急な角度から見たコードも読めるよう、アライメントパターンを追加しました。型番の範囲も 40、数字 7,089 桁まで広げました。
アライメントパターンは 5 × 5 の小さな目標で、暗い輪、明るい輪、中心の暗いモジュールからなります。型番 1 にはありません。型番 2 から 6 は右下の角の近くに 1 つあり、型番 7 から 13 は 6 つで、型番 35 から 40 では 46 個に増えます。中心は規格に記載された行と列の格子に置かれます。行と列には同じ位置を使い、位置検出パターンと重なる 3 か所を除きます。展示は型番から位置を計算します。型番 9 では 6、26、46 なので、3 x 3 = 9 か所から 3 を引き、6 パターンになります。
3 つの位置検出パターンを見つけた読み取り装置は、コードの 3 つの角を把握しています。4 つ目の角には印がないので、その位置を推定し、最も近いアライメントパターンを探して推定を補正します。その 4 点目があれば、傾いた写真の遠近による変形を元に戻せます。大きなシンボルでは、複数のアライメントパターンにより、膨らんだ紙にも追従できます。
残りの読み方を示す 15 ビット
データを読む前に、読み取り装置は 2 つのことを知らなければなりません。誤り訂正レベルと、8 種類のうちどのマスクが適用されたかです。必要なのは 5 ビットです。レベルに 2 ビット(L は 01、M は 00、Q は 11、H は 10)、マスク番号に 3 ビットを使います。
この 5 ビットは、データよりはるかに強く保護されています。BCH 符号で 15 ビットに拡張します。BCH 符号は 1960 年に Bose と Ray-Chaudhuri が、それより前の 1959 年に Hocquenghem が独立に見つけた誤り訂正符号です。10 個の検査ビットは、5 ビットを左に 10 ビットずらし、多項式 x^10 + x^8 + x^5 + x^4 + x^2 + x + 1 で割った余りです。あり得る 32 個の 15 ビットコード語は、どの 2 つも少なくとも 7 ビット異なるので、3 ビットが誤っていても最も近いものを選べます。
次に 15 ビットと固定パターン 101010000010010 の XOR を取ります。これがなければ、レベル M、マスク 0 は明るいモジュール 15 個になり、形式情報と白紙を区別できません。
形式情報は 2 回書き込まれます。1 つは左上の位置検出パターンの周囲、もう 1 つは残りの 2 つに分け、右上の横に 8 ビット、左下の横に 7 ビット置きます。一方が覆われても、もう一方が機能します。展示で形式情報のモジュールをクリックすると、隠れたカードが開きます。左上の角を破ると片方だけが残りますが、その時点で位置検出パターンも失われています。
左下の形式情報の隣には、どの QR コードでも暗いモジュールが 1 つあります。行 4V + 9、列 8 の暗モジュールです。形式領域に属し、情報は持ちません。
型番 1 から 40
小さなシンボルは、型番を明示する必要がありません。読み取り装置がモジュールを数えるからです。大きなシンボルでは、推定したモジュール寸法の小さな誤差が数え間違いにつながるため、型番 7 以降は型番を書き込みます。型番の 6 ビットを、x^12 + x^11 + x^10 + x^9 + x^8 + x^5 + x^2 + 1 で生成する別の BCH 符号で 18 ビットに拡張し、右上の位置検出パターンの横に 6 × 3、左下の横に 3 × 6 のブロックとして、2 回配置します。型番 7 は 000111110010010100、型番 40 は 101000110001101001 と書かれます。ここでも 3 ビットの誤りを訂正できます。
各型番に入る量は、レベルと文字の種類によって異なります。DENSO WAVE の表では、型番 1 のレベル L は数字 41 桁、英数字 25 文字、17 バイト、漢字 10 文字、型番 1 のレベル H は数字 17 桁、英数字 10 文字、7 バイト、漢字 4 文字です。反対の端にある型番 40 のレベル L は、数字 7,089 桁、英数字 4,296 文字、2,953 バイト、漢字 1,817 文字を格納できます。このページのエンコーダーはその数値を再現し、実験欄の表は現在のレベルにおける全型番の容量と、入力したモジュール寸法に応じた印刷幅を示します。
DENSO WAVE は、スマートフォンに多すぎるデータを読ませないことを勧めています。機種によりますが、スマートフォンのカメラ向けの実用的な目安として、約 271 バイト、型番 10 のレベル L を挙げています。「比較」で各型番を壁に掛けると理由が分かります。テーブルと同じモジュール寸法なら、型番 40 は幅 1 メートルを超えます。
テキストからビットへ
入力したテキストは、文字のままコードに入るのではありません。セグメントからなるビット列になり、各セグメントは 4 ビットのモード指示子で始まります。
数字モード(0001)は数字を 3 桁ずつ 10 ビットに詰めます。1,000 通りが 1,024 通りに収まるからです。最後に 2 桁残れば 7 ビット、1 桁なら 4 ビットです。英数字モード(0010)は、数字、大文字、空白、$ % * + - . / : の 45 文字を扱います。45 x 45 = 2,025 が 2,048 に収まるため、45 x 最初の文字 + 次の文字として 2 文字を 11 ビットに詰め、最後の 1 文字は 6 ビットにします。バイトモード(0100)は 1 バイトに 8 ビットを使います。漢字モード(1000)は 2 バイトの Shift JIS 文字を 13 ビットに圧縮します。そのため QR コードは当初から日本語をコンパクトに格納できました。
モード指示子の次に文字数が来ます。その長さはモードと型番で異なります。型番 1 から 9 では、数字は 10 ビット、英数字は 9、バイトは 8、漢字は 8 で、より大きな型番はもっと長い文字数指示子を使います。その後に文字が続きます。最後にエンコーダーは終端子として最大 4 個のゼロビットを加え、次のバイト境界までゼロを入れ、データ容量が埋まるまで埋め草バイト 11101100 と 00010001(236 と 17)を交互に追加します。
規格には、数字 8 桁の 01234567 を型番 1、レベル M にする計算例があります。モードは 0001、文字数は 0000001000(8)、続いて 012 は 0000001100、345 は 0101011001、67 は 1000011 です。終端子と埋め草を加えると、16 個のデータコード語は 16 進で 10 20 0C 56 61 80 EC 11 EC 11 EC 11 EC 11 EC 11 になります。このページのエンコーダーは、そのバイト列と、規格でその後に示す誤り訂正コード語を正確に生成します。
バイトモード自体は、バイトの文字集合を示しません。2006 年以降の規格では既定が ISO 8859-1 ですが、2000 年の初版では日本語の 8 ビット文字集合を使っていました。それ以外のテキストでは、エンコーダーは番号 26 の ECI ヘッダー(Extended Channel Interpretation、モード 0111)を追加できます。26 は UTF-8 を意味します。展示では、単純な ASCII 以外の文字が含まれるたびに追加するので、韓国語や絵文字もそのまま届きます。日本語の仮名を入力すると、エンコーダーは代わりに漢字モードへ切り替わり、UTF-8 の 24 ビットではなく 1 文字 13 ビットになります。
実験欄では、自分のテキストがこのようなセグメントに分かれ、ビット数とともに表示されます。大文字の URL は英数字モードを使えて、ビットをほぼ 3 分の 1 節約できます。印刷されたコードの一部が大文字のアドレスを使う理由の 1 つです。
QR コードのリード・ソロモン
データコード語の後には、Irving Reed と Gustave Solomon が 1960 年に 5 ページで説明したリード・ソロモン符号による誤り訂正コード語が続きます。DENSO WAVE はこれを、人工衛星や惑星探査機との通信の雑音対策として最初に開発され、音楽 CD にも使われる数学的手法と説明しています。バイト単位で訂正し、まとまって起こる誤りに適しています。
演算は、各バイト値に対応する 256 要素の体で行います。2 バイトの加算は XOR です。乗算には、規格が QR コード用に定める多項式 x^8 + x^4 + x^3 + x^2 + 1 から作った表を使います。データコード語のブロックを多項式の係数とみなし、x^n を掛け、1、a、a^2 から a^(n-1) までの n 個の根を持つ生成多項式で割ります。余りが n 個の誤り訂正コード語になります。こうして、データと余りを合わせたブロック全体は生成多項式の倍数になるので、n 個の根のどれを代入してもゼロになります。
読み取り装置は、受信したブロックをそれらの根で評価します。シンドロームと呼ぶ結果がすべてゼロなら、ブロックに誤りはありません。そうでなければ、シンドロームには、最大 n/2 個の誤ったコード語とその正しい値を見つけるのに十分な情報があります。このページのデコーダーは、符号理論で標準的な 3 段階で処理します。バーレカンプ・マッシー法で最短の誤り位置多項式を求め(Massey、1969)、チェン探索で全位置を試して根を見つけ(Chien、1964)、フォーニーの公式で各誤りの大きさを求めます(Forney、1965)。
もう 1 つ規則があります。最小のシンボルでは、n/2 個をすべて訂正すると、誤っているのに有効な別のブロックに行き着く頻度が高すぎます。そこで規格は、誤訂正防止用にコード語の一部を確保します。型番 1 ではレベル L で 3、M で 2、Q で 1、H で 1、型番 2-L では 2、型番 3-L では 1 です。ブロックが訂正できるコード語数は、確保する数を p として (n - p)/2 になります。型番 1-L は誤り訂正コード語が 7 個ありますが、訂正できるのは 3 ではなく 2 個です。実験欄では、各ブロックが訂正できる数の隣に p を載せています。
コード語は、1 ビットが誤っていても 8 ビットすべてが誤っていても、誤り 1 個です。リード・ソロモン符号が汚れや破れに適するのはこのためです。モジュールの一角を覆う傷は、多くの散らばったビットではなく、少数のコード語全体を壊します。
ブロックとインターリーブ
最小の型番を超えると、コード語はブロックに分割され、各ブロックに専用の誤り訂正コード語が付きます。型番 9 のレベル H は、292 コード語が 8 ブロックに入ります。4 ブロックにはデータコード語が 12 個、残りの 4 ブロックには 13 個あり、それぞれ誤り訂正コード語が 24 個なので、データが 100 コード語、誤り訂正が 192 コード語です。各ブロックは誤ったコード語を 12 個訂正できるので、シンボル全体では 292 個のうち 96 個を訂正できます。
ブロックは順に並べるのではありません。まず全ブロックの最初のデータコード語、次に全ブロックの 2 番目、という順に並べ、その後に誤り訂正コード語も同じように続けます。「配置順」をオンにすると色で分かります。紙上で隣り合うコード語は異なるブロックに属します。そのため、数コード語分の大きさの汚れは、1 ブロックにすべての損失を集中させず、複数のブロックにそれぞれ 1、2 個の損失を与えます。
冒頭の手が示すのがこのことです。手の下の 16 列は 96 コード語を変え、8 ブロックのそれぞれで 12 個になります。インターリーブが損傷を均等に分配するので、8 ブロックすべてが同時に限界に達します。あと 1 列増やすと全ブロックで誤ったコード語が増え、すべて同時に失敗します。
インクを 1 か所に塗り、表示の下の棒を見てください。通常はいくつかのブロックが少しずつ上昇します。「1 ブロックを限界超過」の課題では、ほかを残したまま、ちょうど 1 ブロックだけを失敗させます。インターリーブがそれを妨げるので、思う以上に慎重な操作が必要です。
コード語の配置
データと誤り訂正のコード語をインターリーブしたら、そのビットを決まった経路でシンボルに配置します。右下の角から始め、2 列を上へ進みます。まず右のモジュール、次に左、その後に 1 行上へ進みます。上端で折り返し、次の 2 列を下り、これをシンボル全体で繰り返します。すべての機能パターンを避け、列の組がずれないよう、列 6 の縦のタイミングパターンは列全体を飛び越えます。
この経路で、展示の見た目のいくつかを説明できます。最初の 4 ビットであるモード指示子は、常に右下の角にあります。大半のコード語は 2 × 4 モジュールを占めますが、上下の折り返しやアライメントパターンを回り込むところでは、ほかの形に曲がります。右下の角の近くのモジュールをクリックすると、カードにモード指示子の一部であることが出ます。
コード語がデータ領域をちょうど埋めない場合、残るモジュールは剰余ビットです。型番 2 から 6 は 7、型番 14 から 20 と 28 から 34 は 3、型番 21 から 27 は 4、それ以外はありません。マスク前は明るく、読み取り装置は無視します。
マスクとペナルティ点
配置直後のシンボルには、大きな暗い塊、長い連続区間、運が悪いと位置検出パターンに似たデータ部分ができることがあります。どれも読み取りを難しくします。そこでエンコーダーはマスクを適用します。行 i と列 j に関する規則が真になるすべてのデータモジュールを反転させます。規則は 8 種類あり、市松模様になる (i + j) mod 2 = 0 から、((i + j) mod 2 + (i j) mod 3) mod 2 = 0 まであります。機能パターンには決してマスクを掛けません。
エンコーダーは 8 種類すべてを試し、規格にある 4 種類のペナルティ点で結果を採点します。行か列で同じ色が 5 モジュール以上続くと 3 点、5 を超える 1 モジュールにつきさらに 1 点です。同色の 2 × 2 ブロックは 3 点です。位置検出パターンに似た 1011101 で片側に明るい 4 モジュールがあるものは 40 点です。暗いモジュールの割合が半分から 5 % 離れるごとに 10 点です。最も点が少ないマスクが選ばれ、その番号が形式情報に入ります。
実験欄では、シンボルの 8 種類を得点付きで横に並べます。「マスク」で別のものを選んでも、読み取り装置が形式情報からマスク番号を得るため、コードは読めます。同じテキストから 2 つの生成装置が違う見た目のコードを作っても、両方正しくなるのもそのためです。DENSO WAVE の FAQ も同じ点を述べています。同じデータでも、モードなどの選び方によって異なるパターンになります。
「マスクを表示」は、現在のマスクが反転するすべてのモジュールにオレンジ色を付けます。実験欄の規則と比べてください。同じ規則をデータ領域全体に適用しています。
30 % が本当に意味すること
DENSO WAVE は、4 レベルがコード語の約 7 %、15 %、25 %、30 % を復元すると示し、最も一般的なのはレベル M としています。この文では、「約」と「コード語」の 2 語が重要です。
「約」なのは、型番ごとに割合が違うからです。全ブロックが合わせて訂正できるコード語数を総数で割ると、型番 1 から 40 において、レベル L は 7.7 % から 10.5 %、M は 15.4 % から 19.2 %、Q は 23.1 % から 28.0 %、H は 30.8 % から 33.2 % です。実験欄の表には、展示中の型番の正確な値が出ます。
「コード語」なのは、覆う量は面積で測る一方、面積をコード語に単純に換算できないからです。コード語の端を覆うだけでも、全体を覆うのと同じように壊れます。明るいモジュールを覆っても何も変わりません。手や紙の帯は明るいものとして読まれるためです。展示では、モジュールの 30.2 % を覆う手が、実際に変えるのは約 16 % だけです。機能パターンを覆ってもコード語は失いませんが、位置検出、タイミング、形式情報を失うことがあります。
したがって、正確には次のようにまとめられます。レベル H では、手の 16 列のように、覆いがデータ上にあり、損傷をブロック間で均等に分けられれば、面積の約 30 % を覆っても耐えられます。同じ面積を列ではなく行に沿って置いた、30.2 % の 16 行は、型番 9 では読めません。場所が悪ければ 3.2 % の覆いで止まります。「10 % 未満で読めなくする」は、その場所を見つける課題です。
DENSO WAVE は実用面からレベルの選び方を説明しています。汚れる工場では Q か H、清潔でデータ量が多い場所では L です。東京の路線のホームドアシステムでは、車両ドアのコードが日光や雨にさらされるため、DENSO は 50 % の損傷に耐える特別なコード tQR を開発したと述べています。
スマートフォンがコードを見つけて読むまで
規格には参照復号アルゴリズムが記載され、実際の読み取り装置も、細部は違ってもその順序に従います。実験欄のクイズでは手順を正しい順に並べます。
最初に画像を白黒に変えます。光沢のある缶やデスクライトの下のコードは照明が均一ではないため、実際の読み取り装置は画像の各部分でしきい値を選びます。次に、先に説明した 1:1:3:1:1 の走査で位置検出パターンを見つけます。3 つの中心からモジュール寸法と向きを推定し、位置検出パターン間の距離から型番を推定します。型番 7 以上では型番情報を読んで確認します。4 つ目の角の予想位置付近でアライメントパターンを探し、格子の各モジュールを画像上へ対応させる射影変換を当てはめます。
次に各モジュールの中心をサンプリングして、形式情報を読みます。有効な形式コード語 32 個のうち、読んだものに最も近いものを選び、必要なら両方の形式情報を試します。これでレベルとマスクが分かります。同じモジュールを再反転してマスクを外し、配置経路をたどってコード語を集め、ブロックに戻して並べ替え、各ブロックを訂正し、最後にビット列を復号します。モード、文字数、文字の順に読み、終端子に達するかデータがなくなるまで続けます。
展示では、このうち 2 つの手順を簡略化しています。スマートフォンは、「回転」で回した、余白ありまたはなしの実際の画素で位置検出パターンを探しますが、画像を曲げたり傾けたりはしません。その後の読み取りでは射影を当てはめず、既知の位置で格子をサンプリングします。また、覆いは明るいものとして扱います。手は白い紙、黒いテープは暗いものとして読みます。実際のカメラは手の影や肌の質感も見るので、これよりうまく読めることも、読めないこともあります。
DENSO WAVE は、コード自体とは関係のない、もう 1 つの実用上の制約を挙げています。色です。同社のスキャナーは赤い光でコードを照らすので、白い紙に赤いコードを印刷すると、紙と同じ量の赤い光を反射して消えます。白地に黒を推奨しています。
バーコード、Micro QR、rMQR
QR コードが改良の対象としたのは、小売用バーコードです。北米では UPC、それ以外では EAN-13 です。Norman Woodland と Bernard Silver は、光学的に読み取るコードの最初の特許を 1949 年に出願し、1952 年 10 月 7 日に登録されました。欧州特許庁によると、レジでの最初の UPC 読み取りは、1974 年にオハイオ州のスーパーマーケットで売られたチューインガムで、この種のバーコードが入れられるのは最大約 20 文字です。
EAN-13 バーコードの幅は 95 モジュールです。両端に各 3 モジュール、中央に 5 モジュールのガードパターンがあり、12 桁がそれぞれ 7 モジュールを使います。13 桁目は棒として印刷せず、左側の数字に使う 2 種類のパターンの選択で符号化します。最後の桁はチェックディジットです。各桁に 1 と 3 を交互に掛け、合計が 10 の倍数になるようチェックディジットを定めます。大半の誤りは検出できますが、訂正はできません。「比較」でバーコードをイーゼルに置き、上半分を覆っても、すべての棒を横切る傷のない 1 本の線があればよいため、まだ読めます。縦の帯を覆うと読めません。
2004 年 11 月に JIS 規格として承認された Micro QR は、逆の方向に進みます。位置検出パターンを 2 つ減らして 1 つだけにし、余白を 2 モジュールにして、4 種類の大きさを用意しています。M1 は 11 × 11 モジュールで数字 5 桁、M4 は 17 × 17 で最大 35 桁を入れられます。マスクは 4 種類だけで、形式情報はレベルの代わりに 3 ビットのシンボル番号を持ち、M1 と M3 では最後のデータコード語は 4 ビットだけです。テキストが収まれば、イーゼルにその Micro QR 版を、テーブルのシンボルと同じモジュール寸法で表示します。M4 でも通常のコードの型番 1 より容量は小さくなります。
2022 年 5 月、ISO は細長いラベル向けの長方形 Micro QR コード rMQR を公開しました。DENSO WAVE は、位置検出パターンを 1 個半使い、7 × 43 モジュールから始まり、17 × 139 モジュールで最大数字 361 桁を格納すると説明しています。DENSO WAVE はほかに、長方形シンボルを含む大きな系列の iQR、画像用の空白がある Frame QR、データの一部を読める人を制限する SQRC も公開しています。研究者はさらに進み、Chu らは 2013 年に、画像の細部を各モジュールの内部に置き、誤り訂正を利用することで、網点画像に見えながら読み取りもできるコードの作り方を示しました。
モデルと実際のコードや読み取り装置との違い
エンコーダーは、規格がモデル 2 と呼ぶものについて、数字、英数字、バイト、ECI セグメント、型番 1 から 40、全 4 レベル、全 8 マスクをすべて扱います。ビットを節約する精密なエンコーダーのようにモードを混在させず、テキストごとに 1 セグメントを使います。完全な Shift JIS 表は大きいため、漢字モードは仮名だけに制限しています。その文字についてのビットは、完全なエンコーダーと同じです。メッセージを最大 16 シンボルに分ける構造的連接は実装していません。
展示の読み取り装置は既知の位置で格子を読みます。位置検出パターンのモジュールがどれだけ残っているかを調べ、多くのスマートフォンの読み取り装置と同様に、3 つすべてを要求します。形式情報と型番情報を規格どおりに復号し、マスクを外し、誤訂正防止も含めたリード・ソロモン復号で全ブロックを訂正して、ビット列を解析します。実際の読み取り装置は、ぼけ、反射、遠近による変形、暗いモジュールが明るい側へにじむ印刷にも対応しなければなりません。展示にはこれらがありません。
スマートフォンの位置検出パターン探索は画素上で動き、シンボルとともに回転しますが、画像は鮮明で平らです。描画と汚れの道具はモジュール全体に印を付けます。見えるようにテーブル上のシンボルは常に幅 30 cm ですが、実際のコードは普通数センチメートルです。
表示の数値はすべてテーブル上のコードから得ています。検証に使った独立した 2 つの読み取り装置(JavaScript のオープンソースライブラリーと C++ の別のもの)は、型番 1 から 10 の全レベル・全マスクの試験シンボル 320 個、型番 11 から 40 のシンボル 120 個、大きさとレベルの全 8 種類の Micro QR シンボル、EAN-13 バーコードをすべて読み取りました。
短い歴史
当時 DENSO の部門だった DENSO WAVE は、1992 年に QR コードの開発を始めました。自動車工場は多品種少量生産へ移行しており、部品は製品ごとに約 10 個のバーコードを付けて出荷され、油で汚れたラベルは読めませんでした。DENSO によると開発チームは 2 人でした。開発には約 1 年半かかりました。DENSO WAVE によると、1994 年に発表されたコードは、数字約 7,000 桁を入れ、漢字を符号化でき、ほかのコードより 10 倍以上速く読めました。欧州特許庁は、2014 年に欧州発明家賞の観客賞をチームに授与した際、従来のマトリックスコードの約 20 倍の速度としています。
名前は quick response に由来しますが、DENSO WAVE は正式名は頭字語ではなく QR Code だとしています。日本の特許は 1994 年 3 月 14 日に出願され、2938338 号として登録されました。対応する米国特許 5,726,435 は、発明者として Masahiro Hara、Motoaki Watabe、Tadao Nojiri、Takayuki Nagaya、Yuji Uchiyama を挙げています。DENSO WAVE は特許を保有していますが、標準化された QR コードには権利を行使しないと述べ、当初からの方針だとしています。QR Code は図形ではなく、その語についての DENSO WAVE の登録商標です。
最初に採用したのは自動車産業で、部品を呼び出すカードである電子かんばんに使いました。BSE など食の安全に関する問題を受け、食品、医薬品、コンタクトレンズのメーカーは製品の追跡に使いました。標準化も続き、1997 年 10 月に AIM International、1998 年 3 月に JEIDA-55、1999 年 1 月に JIS X 0510、2000 年 6 月に ISO/IEC 18004 となりました。現行の第 4 版は、2024 年 8 月に公開されました。
2002 年、日本で QR コードを読める携帯電話が発売され、コードは工場の外へ広がりました。2011 年 12 月、小売バーコードを担う GS1 は携帯電話用として承認しました。EMVCo は 2017 年 7 月に QR 決済仕様を公開し、シンガポールは 2018 年 9 月 17 日に 27 の決済方式を 1 枚の SGQR ラベルにまとめ、ブラジルは 2020 年 11 月 16 日に 734 機関で Pix を始めました。COVID-19 の間、韓国では 2020 年 6 月 10 日から入場記録に QR コードを使い、イングランドとウェールズでは 2020 年 9 月 24 日から施設の入口に NHS の QR ポスターを掲示し、署名付き QR コードである EU デジタル COVID 証明書は 2021 年 7 月 1 日から 2023 年 6 月 30 日まで使われました。小売業者は現在、2027 年末までにレジで 2D コードを読めるよう計画しています。
よくある質問
QR コードは本当に 30 % 覆っても読めますか?
レベル H では、覆いがデータ上にあり、損傷がブロック間に分散すれば読めます。展示では手がモジュールの 30.2 % を覆っても読めますが、あと 1 列、32.1 % になると読めません。同じ面積を 16 列ではなく 16 行に渡って覆うと、型番 9 では読めません。位置検出パターンを覆うと、どのコードも止まります。
L、M、Q、H のレベルは何を意味しますか?
4 つの誤り訂正レベルです。DENSO WAVE は、コード語の約 7 %、15 %、25 %、30 % を復元するとしています。高いレベルほど誤り訂正コード語が多く必要なので、同じテキストでもシンボルが大きくなります。DENSO WAVE によると、最もよく選ばれるのはレベル M です。
正方形はなぜ 4 つではなく 3 つなのですか?
正方形の位置、大きさ、向きを知るには 3 点で十分で、直角を作る角からコードの上下が分かります。同じ印が 4 つあると、2 通りの向きで同じ見た目になってしまいます。モデル 2 は、遠近による変形を補正するため、4 つ目の角の近くに小さなアライメントパターンを加えています。
右下の角の近くにある小さな正方形は何ですか?
アライメントパターンです。型番 2 から 6 には 1 つあり、大きな型番ほど増え、型番 35 から 40 では最大 46 個になります。読み取り装置はこれを使って、曲面に印刷されたコードや斜めから撮影したコードに追従します。
QR コードにはなぜ白い縁が必要なのですか?
位置検出パターンは、1:1:3:1:1 の比率の暗、明、暗、明、暗の縞で見つかります。暗い縁ぎりぎりまで印刷すると、外側の暗い輪が縁とつながり、縞が失われます。規格では幅 4 モジュールの余白を求めています。展示でクワイエットゾーンをオフにすると、スマートフォンが失敗する様子を見られます。
QR コードにはどれだけ入りますか?
型番 40 のレベル L は、数字 7,089 桁、英数字 4,296 文字、2,953 バイト、漢字 1,817 文字を入れられます。スマートフォンのカメラ向けには、DENSO WAVE は約 271 バイト、型番 10 のレベル L を目安にするよう勧めています。
韓国語や中国語のテキストも入れられますか?
はい。バイトモードはどの文字集合も格納できますが、読み取り装置はどの集合かを知る必要があります。番号 26 の ECI ヘッダーはバイトが UTF-8 であることを示し、展示では単純な ASCII 以外のテキストに追加します。DENSO WAVE は中国語の GB2312 文字用の 13 ビット圧縮モードも説明していますが、一部のスマートフォンでは読めないことがあります。
同じテキストなのに生成装置によって違うコードになるのはなぜですか?
モードの選択、ECI ヘッダーの有無、大きな型番の選択、マスクの違いなどが考えられます。どれも有効で、読み取り装置は両方のコードを読めます。DENSO WAVE の FAQ も同じことを述べています。
マスクは何をするのですか?
行と列についての固定規則が真になるデータモジュールを反転し、大きな塊、長い連続区間、位置検出パターンに似た模様を崩します。エンコーダーは 8 規則すべてを試し、各結果をペナルティ点で採点して最良のものを使います。マスク番号は形式情報に保存されるので、読み取り装置は元に戻せます。
QR コードは無料で使えますか?
はい。DENSO WAVE は、JIS または ISO 規格に従った QR コードの利用に許諾や料金は不要としています。特許は保有していますが、標準化されたコードには行使しません。QR Code という語は登録商標ですが、パターンは違います。
どれくらい小さく印刷できますか?
DENSO WAVE は、通常のレーザープリンターでの最小モジュールを約 0.17 mm とし、型番 1 の幅が約 3.57 mm になると説明し、特別なプリンターと読み取り装置では 0.03 mm のモジュールも挙げています。また、大きすぎるコードは読み取り装置の視野に収まらないことがあると注意しています。
カラーの QR コードも作れますか?
場合によります。読み取り装置には、使う光に対するコントラストが必要です。多くのスキャナーは赤い光を使うので白地の赤は消え、暗い背景に明るいコードは、暗いモジュールを想定する読み取り装置を混乱させることがあります。DENSO WAVE は白地に黒を勧め、それ以外は試験するよう求めています。
QR コードは危険なことがありますか?
コード自体はただのデータです。危険なのは誘導先で、本物の上に貼られたコードが偽の決済ページへ送ることがあります。特に支払いでは、開く前にスマートフォンに出るアドレスを確認してください。
Micro QR コードとは何ですか?
位置検出パターンが 1 つで余白が 2 モジュールの小型の仲間で、11 × 11 から 17 × 17 モジュールの 4 サイズがあります。最大で数字 35 桁を格納でき、2004 年 11 月に JIS 規格になりました。
左下の位置検出パターンの横に必ず暗いモジュールがあるのはなぜですか?
規格で行 4V + 9、列 8 に固定されています。形式領域に置かれ、情報を持たないので、同じ型番の QR コードではすべて同じ場所にあります。
囲碁盤が QR コードの発想のもとになったのですか?
よく語られる話です。DENSO 自身による 2024 年のインタビューでは、Masahiro Hara は電車から建物の窓を見て位置検出の印を思いついたと語り、囲碁には、特許を開放したことがなぜうまくいったかを説明するときだけ触れています。格子自体は、単に 2 次元コードに必要なものです。
用語
- モジュール:格子の 1 マスで、暗いものと明るいものがあります。
- 型番:シンボルの大きさで、1(21 × 21 モジュール)から 40(177 × 177)まであります。
- 位置検出パターン:角にある 7 × 7 の正方形 3 つのうち 1 つで、比率は 1:1:3:1:1 です。
- 分離パターン:各位置検出パターンを囲む、幅 1 モジュールの明るい輪です。
- タイミングパターン:行 6 と列 6 に交互に並ぶモジュールです。
- アライメントパターン:遠近による変形や曲がりを補正する 5 × 5 の目標で、型番 2 からあります。
- クワイエットゾーン:シンボル周囲の幅 4 モジュールの明るい余白です。
- 形式情報:誤り訂正レベルとマスクを示す 15 ビットで、BCH 符号で保護し、2 回書き込みます。
- 型番情報:型番を示す 18 ビットで、型番 7 からあり、2 回書き込みます。
- コード語:8 ビットのまとまりで、誤り訂正の単位です。
- ブロック:専用の誤り訂正コード語を持つ、コード語のまとまりです。
- 誤り訂正レベル:L、M、Q、H。復元できるコード語数を表します。
- リード・ソロモン符号:256 要素の体上の誤り訂正符号で、コード語全体を修復します。
- シンドローム:生成多項式の根で受信ブロックを評価した値です。すべてゼロなら誤りは見つかっていません。
- マスク:読みにくい模様を避けるためにデータモジュールを反転する規則です。
- モード:文字をビットに詰める方法で、数字、英数字、バイト、漢字があります。
- ECI:後続バイトの文字集合を示すヘッダーで、26 は UTF-8 です。
- 埋め草バイト:未使用容量を埋めるため繰り返す 236 と 17 です。
- 剰余ビット:最後のコード語の後に残るモジュールです。
- Micro QR:位置検出パターンが 1 つの小型シンボルで、型番は M1 から M4 です。
参考資料
- ISO/IEC 18004:2024, Information technology, Automatic identification and data capture techniques, QR code bar code symbology specification, 第 4 版(2024年8月15日公開) https://www.iso.org/standard/83389.html (確認日 2026-10-20)
- ISO/IEC 18004:2015, 第 3 版(廃止。附属書 I に 1-M の 01234567 の計算例) https://www.iso.org/standard/62021.html (確認日 2026-10-20)
- ISO/IEC 23941:2022, Rectangular Micro QR Code (rMQR) bar code symbology specification(2022年5月公開) https://www.iso.org/standard/77404.html (確認日 2026-10-20)
- DENSO WAVE, History of QR Code(2 人のチーム、1:1:3:1:1 の調査、数字約 7,000 桁、10 倍以上の速さ、1994 年公開、特許不行使、かんばん、BSE、2002 年の携帯電話、AIM 1997、JIS 1999、ISO 2000、Micro QR 2004、iQR 2008、Frame QR 2014、Good Design Award 2012) https://www.qrcode.com/en/history/ (確認日 2026-10-20)
- DENSO WAVE, Error correction feature(リード・ソロモン、コード語、レベル M が最も一般的、CD と宇宙探査機、バースト誤り) https://www.qrcode.com/en/about/error_correction.html (確認日 2026-10-20)
- DENSO WAVE, Information capacity and versions of the QR Code(21 x 21 から 177 x 177、型番ごとに 4 モジュール、型番 3 の M で数字 100 桁) https://www.qrcode.com/en/about/version.html (確認日 2026-10-20)
- DENSO WAVE, QR Code standardization(AIM 1997年10月、JEIDA-55 1998年3月、JIS X 0510 1999年1月、ISO/IEC 18004 2000年6月、Micro QR JIS 2004年11月、GS1 2011年12月。容量。レベルは約 7、15、25、30 %。構造的連接は 16 シンボル。特許 2938338 の権利放棄) https://www.qrcode.com/en/about/standards.html (確認日 2026-10-20)
- DENSO WAVE, Micro QR Code(位置検出パターン 1 つ、2 モジュールの余白、M1 から M4、容量表、最大数字 35 桁) https://www.qrcode.com/en/codes/microqr.html (確認日 2026-10-20)
- DENSO WAVE, QR Code Model 1 and Model 2(モデル 1 は型番 14、73 x 73、数字 1,167 桁。モデル 2 はアライメントパターン、型番 40、数字 7,089 桁) https://www.qrcode.com/en/codes/model12.html (確認日 2026-10-20)
- DENSO WAVE, rMQR Code(位置検出パターン 1 個半、7 x 43 から 17 x 139、数字 361 桁、ISO 2022年5月) https://www.qrcode.com/en/codes/rmqr.html (確認日 2026-10-20)
- DENSO WAVE, Point for determining the code area(4 モジュールの余白、型番 3 の M で 50 文字、0.254 mm、9.398 mm) https://www.qrcode.com/en/howto/code.html (確認日 2026-10-20)
- DENSO WAVE, Point for setting the module size(プリンターヘッド密度、600 dpi の 4 ドットで 0.17 mm) https://www.qrcode.com/en/howto/cell.html (確認日 2026-10-20)
- DENSO WAVE, FAQ(頭字語ではない、すし皿と文庫本、3.57 mm と 0.03 mm、携帯電話向け 271 バイト、中国語 13 ビットモード、赤い光、同一データでも異なるパターン、語のみの商標、料金不要) https://www.qrcode.com/en/faq.html (確認日 2026-10-20)
- DENSO WAVE, QR Code development story(1992 年開始、1 日約 1,000 個のバーコード、2 人のメンバー、位置検出パターン) https://www.denso-wave.com/en/technology/vol1.html (確認日 2026-10-20)
- DENSO WAVE, QR Code 30th anniversary(最初の用途は自動車部品、油汚れがあっても読み取り可能) https://www.denso-wave.com/en/system/qr/qr30th/ (確認日 2026-10-20)
- DENSO DRIVEN BASE, Believing in a faint light: obstacles QR Code developer overcame and the source of his idea(Masahiro Hara へのインタビュー、2024年5月時点。1992 年からの開発、製品ごとに約 10 個のバーコード、約 6 か月で比率を発見、電車から見た建物の窓、趣味の囲碁) https://www.denso.com/global/en/driven-base/career-life/qr-hara_2408/ (確認日 2026-10-20)
- DENSO DRIVEN BASE, QR codes powering digital transformation(ホームドア用 tQR、損傷耐性を 30 % から 50 % へ向上)、2025年2月25日。 https://www.denso.com/global/en/driven-base/career-life/qr_engineer-1/ (確認日 2026-10-20)
- European Patent Office, Masahiro Hara, Motoaki Watabe, Tadao Nojiri, Takayuki Nagaya, Yuji Uchiyama, European Inventor Award 2014、Popular Prize(最初の UPC 読み取りは 1974 年、約 20 文字、20 倍の速さ) https://www.epo.org/en/news-events/european-inventor-award/meet-the-finalists/masahiro-hara-motoaki-watabe-tadao-nojiri (確認日 2026-10-20)
- Japan Patent JP 2938338 B2, 2D code, 1994年3月14日出願、1999年登録(Google Patents) https://patents.google.com/patent/JP2938338B2/en (確認日 2026-10-20)
- US Patent 5,726,435, Optically readable two-dimensional code and method and apparatus using the same, 1998年3月10日登録(Google Patents) https://patents.google.com/patent/US5726435A/en (確認日 2026-10-20)
- US Patent 2,612,994, N. J. Woodland and B. Silver, Classifying apparatus and method, 1949年10月20日出願、1952年10月7日登録(Google Patents) https://patents.google.com/patent/US2612994A/en (確認日 2026-10-20)
- I. S. Reed and G. Solomon, Polynomial codes over certain finite fields, Journal of the Society for Industrial and Applied Mathematics 8(2), 300 から 304, 1960. https://doi.org/10.1137/0108018 (確認日 2026-10-20)
- R. C. Bose and D. K. Ray-Chaudhuri, On a class of error correcting binary group codes, Information and Control 3(1), 1960. https://doi.org/10.1016/S0019-9958(60)90287-4 (確認日 2026-10-20)
- J. L. Massey, Shift-register synthesis and BCH decoding, IEEE Transactions on Information Theory 15(1), 1969. https://doi.org/10.1109/TIT.1969.1054260 (確認日 2026-10-20)
- R. T. Chien, Cyclic decoding procedures for Bose-Chaudhuri-Hocquenghem codes, IEEE Transactions on Information Theory 10(4), 1964. https://doi.org/10.1109/TIT.1964.1053699 (確認日 2026-10-20)
- G. D. Forney, On decoding BCH codes, IEEE Transactions on Information Theory 11(4), 1965. https://doi.org/10.1109/TIT.1965.1053825 (確認日 2026-10-20)
- H.-K. Chu, C.-S. Chang, R.-R. Lee and N. J. Mitra, Halftone QR codes, ACM Transactions on Graphics 32(6), 2013. https://doi.org/10.1145/2508363.2508408 (確認日 2026-10-20)
- EMVCo, EMVCo publishes QR code payment specifications to promote global interoperability, 2017年7月31日. https://www.emvco.com/wp-content/uploads/news/EMVCo-QR-Code-Specification-Launch-FINAL-v1.pdf (確認日 2026-10-20)
- EMVCo, EMV QR Codes. https://www.emvco.com/emv-technologies/qr-codes (確認日 2026-10-20)
- Monetary Authority of Singapore, Singapore introduces world's first unified payment QR code, SGQR, 2018年9月17日. https://www.mas.gov.sg/news/media-releases/2018/singapore-introduces-worlds-first-unified-payment-qr-code (確認日 2026-10-20)
- Banco Central do Brasil, Pix starts its full operation with 734 institutions on November 16, 2020. https://www.bcb.gov.br/en/pressdetail/2361/nota (確認日 2026-10-20)
- Ministry of Health and Welfare (Korea), 公式ブログ, KI-Pass electronic entry logs nationwide from 10 June, 2020年6月. https://blog.naver.com/mohw2016/221995921830 (確認日 2026-10-20)
- GOV.UK, Businesses urged to prepare for NHS COVID-19 app, 2020年9月11日(開始と QR チェックインは 9月24日) https://www.gov.uk/government/news/businesses-urged-to-prepare-for-nhs-covid-19-app (確認日 2026-10-20)
- Council of the European Union, EU digital COVID certificate: how it works(2021年7月1日から2023年6月30日、電子署名付き QR コード) https://www.consilium.europa.eu/en/policies/coronavirus-pandemic/eu-digital-covid-certificate (確認日 2026-10-20)
- IATA, Bar Coded Boarding Pass (BCBP) implementation guide、第 7 版、2021(PDF417、Aztec、DataMatrix、QR コード。1D バーコードは約 30 文字に制限) https://www.iata.org/contentassets/1dccc9ed041b4f3bbdcf8ee8682e75c4/2021_03_02-bcbp-implementation-guide-version-7-.pdf (確認日 2026-10-20)
- GS1 US, What is GS1 Sunrise 2027? https://www.gs1us.org/industries-and-insights/by-topic/sunrise-2027 (確認日 2026-10-20)
- GS1, GS1 Digital Link. https://www.gs1.org/standards/gs1-digital-link (確認日 2026-10-20)
- GS1, GS1 barcodes. https://www.gs1.org/standards/barcodes (確認日 2026-10-20)
解説とシミュレーションは CC BY-NC-SA 4.0(特記のあるものを除く)。
コース 6 / 7
パズル、ゲーム、符号




