QRコードの仕組みとは?欠けても読める理由と、自由研究で確かめる手順

広告(PR)を含みます。ラボの机に2枚のコードの紙とスマホを置き、片方の紙の中央を小さな紙で隠して比べる実験のイラスト

30秒でわかる答え

QRコードは白黒のマスの組み合わせで文字やURLなどのデータを表し、3つの目印で位置や向きを見つけます。誤り訂正のためのデータで一部の欠けや汚れを補いますが、約30%という値は隠してよい面積の保証ではありません。短い文で作り、隠す場所と読み取り結果を比べると、それぞれの役割を確かめられます。

イト

自由研究、QRコードにしようかな。でも、なんで白黒のマスで読めるのか分かんない

ユイ

私、QRコードを作ることはできるけど、仕組みを聞かれると止まっちゃいます

お店の支払い、チケット、お菓子の袋。QRコードは毎日目にするのに、「なぜ読めるのか」「なぜ少し汚れても読めるのか」を説明できる人は多くありません。ここでは、QRコードの仕組みを子どもにも説明できる言葉で確認し、自分で作って一部を隠して読む自由研究の手順まで整理します。

QRコードは、白黒のマスの組み合わせで、文字やURLなどのデータを表したものです。3つの目印で位置や向きを見つけ、誤り訂正のためのデータを使って、一部の欠けや汚れから元の情報を復元します。ただし、どこをどれだけ隠しても読めるわけではありません。

QRコードは、1994年にデンソーの開発部門(現在のデンソーウェーブ)が発表しました。標準化されたQRコードの特許権を行使しない方針が、普及を支えた理由の一つです。作成サービス自体の料金や条件は、サービスごとに異なります。

QRコードの仕組みを一言で|白黒のマスに0と1を並べた読める絵

コンピューターは、文字も数字も、最後は0と1の並びで扱います。「A」なら決まった番号、「あ」なら別の番号、という具合です。文字がどう番号になるかは、文字コードとはで説明しています。

QRコードは、データを符号化し、白黒のマスに配置します。読み取りやすくする「マスク」という処理も入るため、見えている黒を全部1、白を全部0として順に読めば文章になるわけではありません。マスは「セル」と呼ばれ、ここで扱う通常のQRコードは21×21から177×177セルまであります。

たとえるなら、QRコードは、白と黒の旗だけで文を送る手旗信号を、1枚の紙に印刷したものです。手旗信号は順番に見なければいけませんが、QRコードは全部を一度に写真に撮り、カメラの向こうのプログラムが決まった順番に読み取ります。実際のQRコードでは、どの順番でセルを読むかも規格で決まっていて、角から蛇のように折り返しながら読みます。

角の3つの目印はどこを見ている?向きが分からなくても読める理由

3つの大きな目印、周囲4セル分の白い余白、データと誤り訂正の領域を分けたQRコードの構造説明図
通常のQRコードの主な役割を示す模式図です。青い部分にはほかの機能パターンも含まれます。読み取り用のコードではありません。

QRコードの角には、二重の四角が3つあります。「切り出しシンボル」と呼ばれる目印で、カメラが最初に探す場所です。3つの位置が分かれば、コードがどこにあり、どれくらいの大きさで、どちらが上かが決まります。4つ目の角に目印がないのは、わざとです。目印が3つだけなら、どの向きで写しても「目印のない角」が分かるからです。

この目印は、黒・白・黒・白・黒の幅が「1:1:3:1:1」になるように作られています。開発者は、チラシや雑誌や段ボールなど、身のまわりの印刷物を白黒にして面積の比を調べ、いちばん使われていない比率を探しました。ふつうの印刷物に出てこない模様なら、カメラが背景と間違えないからです。

目印のほかにも、セルの位置を数えるための白黒が交互に並んだ線(タイミングパターン)や、大きなコードのゆがみを直す小さな四角(アライメントパターン)が入っています。周りの白い余白も規格の一部で、4セル分の空きが要ります。

QRコードが欠けても読める理由|誤り訂正という予備の計算

ここが、QRコードのいちばん賢いところです。QRコードには、本文のデータのほかに、「予備の計算結果」が一緒に入っています。この予備があるので、一部のセルが汚れたり欠けたりしても、残った部分から元のデータを計算で戻せる作りです。これを「誤り訂正」と呼びます。

マコト

連絡網の紙が少し破れても、クラスの名簿と照らし合わせれば誰が抜けたか分かるだろう。あれに近い

ピコ

画面のむこう側では、足し算の答えを一緒に書いておく感じ。1つ消えても、答えから逆算できる

たとえるなら、「3+5=8」と書いた紙の「5」がにじんで読めなくなっても、「3」と「8」が残っていれば「5」だったと分かります。QRコードの誤り訂正は、この考えをもっと強くした計算(リード・ソロモン符号)で、音楽CDの傷に対しても使われてきた方法です。

どれくらい欠けても戻せるかは、作るときに4段階から選べます。

レベル復元能力の目安(全コードワードに対する割合)選ぶときの考え方
L約7%汚れにくく、入れたい文字が多いとき
M約15%ふだんの用途。いちばんよく使われる
Q約25%汚れやすい場所
H約30%汚れや傷への備えを厚くしたいとき

コードワードはデータをまとめた単位で、1つが8ビットです。表の約30%は、画像の面積の30%を隠しても読めるという意味ではありません。 隠す位置や広がり方、目印の損傷、読み取り機器などで結果が変わります。予備のデータを増やすと、同じ内容でもセル数や必要な印刷サイズが増える場合があります。

自由研究で確認する手順|作る→隠す→読む→記録する

仕組みが分かったら、手元の道具で確かめます。必要なのは、誤り訂正レベルを選べる作成ツール、プリンター、隠すための小さな紙、QRコードを読めるスマホです。実験には名前・住所・連絡先や支払い情報を入れず、「HELLO」などの短い文を使います。

作成ツールの一例はQRコード作成くんです。テキストを入力し、設定メニューの「誤り訂正レベル」をL、次にHへ変えて、それぞれ保存します。サイズ・色・余白など、ほかの設定は揃えてください。アプリの追加が必要な場合は、保護者と確認してから進めます。

  1. 作る。同じ短い文で、誤り訂正レベルをLとHにしたQRコードを1枚ずつ作ります。セル数が変わる場合があるため、印刷サイズとセル数も記録します。周りの白い余白は残します。
  2. 読めることを確かめる。まず何もしない状態で、両方をスマホで読み、同じ文が出ることを見ます。標準カメラが文字だけのQRコードを表示しない場合もあるため、先にこの確認を済ませます。読めないまま隠す実験へ進まないでください。
  3. 隠す。小さな紙を重ね、目印や周りの白い余白を避けた同じ位置から、少しずつ範囲を広げます。黒ペンで塗りつぶすと元に戻せないので、外せる紙で比べると再確認できます。
  4. 読んで記録する。同じスマホ・照明・距離で読み、結果を表に書きます。隠した場所の写真やマス数を残します。隠した面積から、表の誤り訂正率を測定できたとは判断しません。
  5. 目印を隠して比べる。最後に目印の一つを隠し、データ部分を隠した場合と比べます。結果は先に決めず、実際に読めたかどうかを記録します。

次の表を写して使えます。LとHでセル数が違う場合は、その違いも考察に残します。

試した条件Lの結果Hの結果写真・気づいたこと
何も隠さない自分で記録自分で記録印刷サイズ・セル数も記録
目印以外の同じ位置を少し隠す自分で記録自分で記録隠した場所と大きさ
隠す範囲を少し広げる自分で記録自分で記録前の試行との差
目印の一つを隠す自分で記録自分で記録データ部分との違い

読めなかった場合も、重ねた紙を外すと読めるかを確かめれば、比較の材料になります。予想と違った結果もそのまま残してください。プリンターがなければ、別の端末の画面にコードを表示して、スマホで読む方法もあります。画面の反射や明るさで結果が変わるため、紙で試した結果とは分けて記録します。自由研究のまとめ方や、ほかのテーマはインターネットの自由研究テーマ5つにあります。

ミニクイズを一つ。「Hなら、どこでも面積の30%まで隠してよい」は正しい? 答えは「いいえ」です。誤り訂正の割合は面積の保証ではなく、目印や余白にはデータの復元とは別の役割があるからです。

QRコードはなぜ日本で生まれた?1994年に2人で作り特許を開いた話

QRコードができる前、現場では線の太さなどで情報を表すバーコードが使われていました。当時は英数字20字ほどという容量や、漢字・かなを扱いたいという要望が課題でした。現在のすべてのバーコードの上限が20字という意味ではありません。

開発したのは、自動車部品の会社デンソー(現在のデンソーウェーブ)の原昌宏さんを中心とした2人のチームです。約1年半かけて、1994年に発表しました。角の目印の比率を決めるために、印刷物を集めて面積を調べた話は、この開発の中で生まれています。

そして会社は、規格として決められたQRコードについては、持っている特許の権利を行使しないと決めました。誰でも無料で作れて読める仕組みになったので、1997年に業界規格、1999年に日本の工業規格(JIS)、2000年に国際規格(ISO)になり、世界中の支払いやチケットで使われるようになりました。

QRコードとバーコードの違いと、1つに入る文字数

ここで比べるバーコードは、横方向の線の太さなどで情報を表す1次元のコードです。QRコードは縦横の配置を使い、数字なら最大7,089字、英数字なら最大4,296字、漢字なら最大1,817字を記録できます。いずれも最大サイズ・誤り訂正レベルなどの条件がある値で、どのQRコードにもその文字数が入るわけではありません。

お店のQRコードに入っているのは、長い文章ではなく、たいていは短いURLや支払いの番号です。だから小さなコードで足り、スマホのカメラがすぐに読めます。URLがどんな部品でできているかは、URLとは?で分けて読めます。

偽のQRコードに注意|掲示物と読み取った先を確かめる

QRコードは、誰でも無料で作れます。それは、悪い人も作れるということです。警視庁の注意点には、3つの手口が挙げられています。偽のメールに添付されたQRコードから偽の支払い画面へ誘導する、返金を装って送金用のQRコードを送る、お店のQRコードの上に偽のシールを貼る、の3つです。

読む前と読んだ後にチェックすることは3つです。

  • 掲示物に別のシールが重なっていないかを見る。不自然な重なりや浮きがあれば店員などへ確認します。段差がないことだけで本物とは判断できません。
  • 読んだあとに出た画面の名前と内容を見る。支払いのつもりが、知らないサイトやアプリの画面なら閉じます。
  • 返金のはずなのに金額の入力を求められたら止まる。受け取る操作ではなく、送金する操作へ誘導されている可能性があります。メールなどの案内だけで進めず、公式アプリや窓口から確認します。

仕組みを知っていると、「QRコード自体は、中にURLや番号が書いてある紙にすぎない」と分かります。紙を信じるのではなく、読んだ先の画面を確かめる。偽サイトの見分け方は、フィッシングとは?にまとめてあります。

QRコードの仕組みでよくある質問

Q1. スマホだけでQRコードは作れる?

A. 作成サイトやアプリを使えば作れます。この記事の実験では、誤り訂正レベルを選べるものを使います。作った画面を同じスマホのカメラで写すことはできないため、印刷するか、別の端末に表示して読み取る準備も必要です。

Q2. 色のついたQRコードや、真ん中にロゴがあるコードはなぜ読める?

A. 明暗の差が十分にあると読み取れる場合があります。ロゴで隠れた部分は誤り訂正で補えることがありますが、色や配置、印刷状態によっては読めません。目印や余白を残し、実際の利用条件で確認する必要があります。

Q3. 小さく印刷すると読めなくなるのはなぜ?

A. セルが小さくなりすぎて、カメラが隣のセルと区別できなくなるからです。文字を減らしてセルの数を少なくするか、印刷を大きくします。周りの白い余白も削らないようにします。

作って隠して読む、QRコードから進む次の一歩

イトの自由研究で比べるのは、「どれだけ隠したか」だけでなく「どこを隠したか」です。目印とデータ部分では役割が違うと分かれば、読めた結果も読めなかった結果も、理由を考える材料になります。

今日できる一歩は、同じ短い文でLとHのQRコードを1枚ずつ作り、まず両方とも読めることを確かめることです。そのあとで隠す位置を変えれば、目印と誤り訂正の働きの違いを探れます。0と1の意味から知りたいなら、ビットとは?で、情報を表す最小の単位から見ていけます。

この記事について

LAB WHITEBOARD

QRコードの仕組みを一文で説明してみよう

「QRコードが白黒のマスに0と1を並べた絵で、角の目印で向きを見つけ、予備の計算で欠けを戻していることを理解し、自分で作って一部を隠して読む実験で確かめられる。偽のQRコードを読む前の確認を3つ言える。」を、いまの自分の言葉で一文にしてみてください。途中の説明でも大丈夫です。