ニュース
» 2018年01月31日 11時00分 公開

仕組みが分かれば、スマホなどいらぬ……ッ! 肉眼のみで解読するQRコード講座

必要なのは目という名のカメラ。それから、気合いと根性。

[QuizKnockねとらぼ]

 撮影することでURLなどを読み取れる正方形の模様、QRコード。スマホなどから利用するのが一般的ですが、どうしてもスマホが取り出せないときは、どうやって読み取ればいいのでしょうか。

 ご存じの通り、人間にも目というカメラがあります。実は文明の利器なんて使わなくても、人力で解読できるのです。それでは、QRコードリーダーをあなたの脳にもインストールしてみましょう。

今回はこのQRコードを自力で読んでみましょう(CMANで作成)

QRコードの基本構造を知ろう!

QRコードの構造。緑色部分は位置補正に必要なパターン、赤色部分はQRコードの読み取りに必要な情報(矢印の向きに読む)

 内容を読み取る前に、そのための準備作業から始めましょう。

 まず着目してもらいたいのが、QRコードの隅などにある四角形の模様です。これはカメラで読み取ったときの角度の違いを補正するためのもの。これ自体は読む必要がありませんが、周辺に重要なフォーマット情報として「誤り訂正レベル」「コード全体に施されたマスク」が書かれています。

 誤り訂正レベルというのは、コードの読み取りミスを訂正する能力のことで、4段階に設定可能。レベルが高いほど読み取りの精度が悪くても(例えばQRコードの大部分が見えなくても)正しく読み取りが行えますが、その分データ量(追加する誤り訂正符号の数)が増え、コードが大きくなります

同じ内容のQRコードを誤り訂正レベル最低(左)、最高(右)で書き分けるとこんな感じに。両方とも青い丸で一部隠れてしまっていますが、右のものなら問題なく内容が読み取れます

 マスクというのは、QRコードの黒と白をバランス良く配置するための加工のことで、8種類存在します。やたらと黒(もしくは白)が多いQRコードを見掛けないのは、このマスクのおかげです。

 今回使用するQRコードのフォーマット情報は15マスにわたって書かれています(2カ所ありますが、どちらも内容は同じ)。黒いマスを1、白いマスを0とすると「111110110101010」になります。

 ここには「101010000010010」というマスクが掛かっています。対応するマスクの数字が「1」のときは「0」に、「0」のときは「1」に反転させると、正しい情報が読み取れます。

  • 111110110101010(書かれているフォーマット情報)
  • 101010000010010(マスク)
  • 010100110111000(マスクを掛ける前の、元の情報)

 人間にはちょっと大変な作業かもしれませんが、実は誤り訂正レベルは最初の2マス、コード全体に施されたマスクの種類は次の3マスで表されており、以降の10マスは、読み取りが間違っていないか調べるための「誤り訂正符号」が書かれているだけ。今回は、読まなくて大丈夫です。

「j」は一番左の列を0とした時の列番号、「i」は一番上の行を行番号。これらを代入した式がマスクの条件として使われます

 対応表を参照すると、このQRコードの誤り訂正レベル「01」は「L(約7%の誤りまで訂正可能)」、マスクの種類「010」は「j mod 3 = 0」を指すことが分かります。

 さて、「j mod 3 = 0」という式は何でしょうか……。何やら難解ですが、この「j」は一番左の列を0としたときの列の番号を表し、「mod 3」は3で割った余りを表しています。そこで、このマスクの意味は「3で割ると0になる列番号のとき(18や21、24など)、マスの数字を反転させる」ということになります。

QRコード右下部分の拡大画像。マスクが施される列を青くしています。読まない領域(先ほどの画像の赤や緑の部分)に当たってしまったら、無視して次のマスに移ります

QRコード解読は、気合いだ!

 いよいよ実際に内容を読む段階に入ります。

 QRコードは右下から、しかもジグザグに書かれています。例えば、1マス目は一番右下にありますが、2マス目はその左隣。そして、3マス目は1マス目の上にあります。このため、目の動きは左、右斜め上、左、右斜め上……という感じ。普通の文章を読むときとは、かなり違いますね。

2列まとめてジグザグと上に読んでいき、終わったら次の2列を下に向かって読んでいきます

 1〜4マス目には、読み取った数字を文字などに変換するためのルールが書かれています。今回は「0100」で、「8ビットバイトモード」という形式で記録されていることが分かります。

 8ビットモードでサイズが25マス×25マスの場合(今回のQRコードが該当)、次の8マスには記録されている文字数が記載。そこから先が実際のデータ内容で、8マスずつ区切って読み取った2進数を、対応表を使いながら文字に置き換えていきます

文字と数字の対応関係を一部抜粋。数字は2進数から、16進数に置き換えられています

 実際に右下から読んでいくと次のようになります。

  • 0100=データモード(8ビットバイト)
  • 00011100=文字数(28文字)
  • 01101000(68/2進数→16進数に変換したもの)=h
  • 01110100(74)=t
  • 01110100(74)=t
  • 01110000(70)=p
  • 01110011(73)=s
  • 00111010(3A)=:
  • 00101111(2F)=/
  • 00101111(2F)=/

 ……「https://」と、それっぽい文字列が見えてきましたね。

 このQRコードは28文字。こんな感じで数字を読んでは表とにらめっこして、対応する文字を見つける作業を28回繰り返すと読解完了です。ちなみに、図面の左半分は読まないまま終わってしまいますが、これは読み取りミスを確認するためのデータが配置されているためです。

 さて、QRコードを人力で読む方法を解説してきましたが、難点をあえて1つだけ挙げるなら、これだと思います。

 「とにかく面倒くさい」。

 白黒の模様を2進数として読み取る作業自体はかなり単純なものですが、量が量なので簡単ではありません。しかも、その数字を文字などに変換するための対応表を丸暗記する苦労なんて、想像すらできません。こんな大変なことを一瞬でやってくれるスマホって、やっぱり便利ですよねえ……。

 ただ、暗号を解読するような面白さもあるので、パズルなどが好きな人は楽しめるかもしれません。レッツ・チャレンジ!

制作協力

QuizKnock


Copyright © ITmedia, Inc. All Rights Reserved.

昨日の総合アクセスTOP10

  1. /nl/articles/2309/28/news007.jpg 18歳上のお兄ちゃんが大好きな赤ちゃん、愛があふれすぎて…… 「私だけのにぃに!」と抱きつく姿にニヤニヤしちゃう
  2. /nl/articles/2309/27/news019.jpg 最大2キロ超の“高級カニ”が東京・荒川で大発生!? 浜名湖の名産を都会のドブで「開始1分」採取、食す様子に反響
  3. /nl/articles/2309/27/news190.jpg 鳥居みゆき、電車内で物を落とした結果……車内が静まり返ってしまう 「ギョッとしました」「リアルすぎて」
  4. /nl/articles/2303/02/news031.jpg 18歳差の妹がかわいくて仕方がないお兄ちゃん ちょっかいをかけたくて仕方がない様子に「かわいい」「愛を感じます」
  5. /nl/articles/2308/02/news009.jpg スーパーで買った20円のシジミを汚れた池に入れてみたら…… 思わぬ結果とビフォーアフターに「面白い」の声
  6. /nl/articles/2309/28/news011.jpg 猫が“ごめん寝”をする貴重な瞬間をとらえた! 「猫飼ってるけど初めて見た」「かわいすぎる」と称賛の声
  7. /nl/articles/2309/27/news036.jpg 「モンハン」でモンスターを狩ろうとしたら…… モンハン歴14年のベテランハンターが思わず討伐をためらった“まさかの光景”が話題
  8. /nl/articles/2309/22/news132.jpg “見えてますよね”“大丈夫なの?” TBS女子アナ、スカート姿のプライベート写真公開→ファンの指摘に釈明
  9. /nl/articles/2309/27/news112.jpg 金子ノブアキ、JESSEの結婚式を祝福 “RIZE”メンバー勢揃いの幸せショットに「最高や」「ファンからしたらめちゃくちゃ嬉しい」
  10. /nl/articles/2309/27/news107.jpg 【隠し絵クイズ】クッキーの絵に隠れた「ねこ」はどこ? 見つけたらうれしくなっちゃう問題に挑戦しよう

先週の総合アクセスTOP10

  1. “見えてますよね”“大丈夫なの?” TBS女子アナ、スカート姿のプライベート写真公開→ファンの指摘に釈明
  2. 「ボッタクリにも限度ある」 FFイベントで売店の“焼きそば”めぐり騒動 運営謝罪「スタッフが半ばパニックに」
  3. 鎧塚俊彦、妻・川島なお美さんの命日に“不思議な写真”を初公開 「私には確かに見えた」「女房がきてくれた」
  4. 土屋太鳳、“第1子を抱いた姿”が反響呼ぶ 初登場ベビちゃんに「母になったんだね」「感動しすぎて泣きそう」
  5. ホテル従業員が教える「使ったバスタオルはどうすればいい!?」の回答をしっかり覚えておきたい
  6. 「このために金髪にしたってもうさすが」 永野芽郁、突然激変した理由にファンから驚きの声
  7. 「バイト代でウマ娘のLDを買った」という存在しないはずの記憶を持つ者が現れる 証拠映像に「懐かしい」「秋葉原に買いに行った」の声
  8. 野口健、ヘリで緊急搬送後の生還ショット 「テントの中で溺死してしまう」「苦しみに恐怖」と命の危機を回顧
  9. 上地雄輔、55歳で亡くなった“ママ”田中好子さんとの生前ショットに反響 「アカン。泣ける」「優しい声が聞こえてきそう」
  10. 炎天下の車道でたった200グラムの子猫を保護して1年…… まるまるとしたワガママボディに成長したビフォーアフターに感動

先月の総合アクセスTOP10

  1. 「美しいエリカ様」「少しも変わってない!」 沢尻エリカ、約4年ぶりの表舞台で“別格の美ぼう”に驚きの声
  2. タバコを土に埋めた1年後には…… 予想外の展開に「信じられない!」「とても素晴らしい」と称賛の声
  3. 売上7億円超の漫画『小悪魔教師サイコ』作画家・合田蛍冬氏が出版社を提訴 同時期に同一原作の後発漫画が出版されトラブルに
  4. 西原理恵子の娘「飛び降りして骨盤折りました」「心情は過去一番辛かった」 今後は精神科へ転院予定
  5. “高1女子”がメンズカットにしたら…… その驚きの仕上がりに「そりゃモテるわ」「似合ってて羨ましい」と大反響
  6. スーパーで買った20円のシジミを汚れた池に入れてみたら…… 思わぬ結果とビフォーアフターに「面白い」の声
  7. 「ヒルナンデス!」で道を教えてくれた男性が「丁(てい)字路」と発言 出演者が笑う一幕にネットで批判続出
  8. さすが! 清原和博の元妻・亜希、甲子園出場中の次男を応援 日焼けを徹底防備→スタンド席に駆け付ける
  9. 柴犬がプールからあがろうとした瞬間……! 「何回見ても爆笑」「好きすぎる」コントのようなずっこけハプニングが発生
  10. 猫嫌いの夫が道で倒れていた子猫を発見、1年後…… 幸せを運んできた猫の成長ビフォーアフターに感動の声