QRコード・バーコードはどう読まれるのか — エンコードの基礎

読了 4分

スーパーのレジで商品をかざすと、ピッという音とともに価格が出て、飲食店ではテーブルの QRコードを読み取って注文します。最近は QRコードで決済までします。あの縞模様や点模様の中には何が入っていて、機械はそれをどうやって読み取るのでしょうか。

今回の記事では、バーコードと QRコードがどうやって情報を持ち、どう読まれるのかを、コードなしで解きほぐしていきます。

バーコードと QRコードは、機械のための文字です #

バーコードと QRコードは、人ではなく機械が読むために作られた文字です。人が数字を一つひとつ目で見て入力すると遅く、まちがえやすいですが、模様として書いておけば、機械が一瞬で正確に読みます。

だからこれらの模様は、きれいに見せるための絵ではなく、情報を機械が読みやすい形に書き写したものです。レジが速くなり、注文が正確になる、その土台にこの文字があります。

縞模様と点模様に、数字が入っています #

バーコードは、太さの違う黒い線と白い線を並べて数字を表します。線の太さと間隔が、そのまま数字というわけです。QRコードは一歩進んで、小さな黒いマスと白いマスを碁盤のように並べます。黒いマスと白いマスを 0 と 1 として読めば、先に扱ったとおり、コンピュータはその 0 と 1 で情報を表せます。

カメラやスキャナーは、この模様を照らして、どこが黒くてどこが白いかを読み、それをふたたび数字や文字に解きほぐします。バーコードが一列で数字だけを持つのに対し、QRコードは縦横に広げて、はるかに多くの情報を持てます。

QRコードが持つのは、たいてい短い情報です #

ここで、よくある誤解を一つ解きます。飲食店の QRコードを読み取るとメニューが出ますが、そのメニューが QRコードの中に入っているわけではありません。QRコードには、ふつう短い情報、たとえばインターネットの住所が一つ入っているだけです。

読み取った瞬間に起きることは単純です。QRコードに書かれた住所を読み、その住所のページを開いてくれるのです。メニューはその住所にあるウェブページであって、QRコード自体ではありません。商品のバーコードも同じで、その中には商品番号だけが入っていて、価格や名前はその番号で店のシステムから引いてきます。

少し汚れても読まれます #

QRコードには、賢い仕掛けが一つあります。一部が隠れたり、印刷がにじんだりしても読めるように、同じ情報をある程度重ねて持たせておく、という点です。これをエラー訂正と呼びます。おかげで、角が少し破れたり、しみが付いたりしても、たいてい無事に読まれます。

QRコードの真ん中に会社のロゴが入っているのを見たことがあるはずです。真ん中をロゴが隠しても読めるのは、まさにこのエラー訂正のおかげです。ただ、隠しすぎると読めなくなるので、隠せる程度には限界があります。

だから、QR を使うとき #

QRコードを使ったり作ったりするときは、いくつかの点を見ておくとよいです。まず、QRコードがどの住所につながるのかを確認する習慣をつけることです。出どころのわからない QRコードは、偽の住所へ誘導する手口に使われることもあるので、決済のような機微なことではとくに気をつける必要があります。

作るときは、印刷の大きさと余白を十分に取るのがよいです。小さすぎたり、余白なしでびっしりだったりすると、うまく読まれません。また、同じ QRコードのまま、つながる住所だけをあとから変えられる方式もあり、印刷物を刷り直さずに行き先を更新できます。

なぜ非開発者が知っておくと仕事が楽になるのか #

  • 誤解を解けます。 QRコードが情報そのものではなく、たいてい住所を持つと知っていれば、メニューを変えるときに QRコードを作り直す必要がないこともわかります。
  • セキュリティに気を配れます。 QRコードが偽の住所につながりうると知っていれば、怪しい QRコードをむやみに読み取らないよう案内できます。
  • うまく作れます。 大きさと余白、エラー訂正を知っていれば、ロゴを入れたり印刷物に載せたりするときに、読まれない失敗を減らせます。

まとめ #

今日は、バーコードと QRコードが機械のための文字であり、縞模様と点模様に数字を持って 0 と 1 で読まれ、たいていは住所のような短い情報を持つことを見てきました。QRコードの中に内容がまるごと入っているのではなく、住所が入っている、という区別が肝心です。

模様が 0 と 1 で読まれるという話の土台が気になればコンピュータはどうやって0と1ですべてを表すのかを、QRコードでする決済がどう処理されるのか気になればオンライン決済はどう処理されるのかを一緒に読んでみることをおすすめします。

X