ニュース
» 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/2106/14/news065.jpg 「産んでくれた親に失礼」「ちょっと我慢できません」 上原浩治、容姿批判のコラム記事に不快感あらわ
  2. /nl/articles/2106/13/news025.jpg アントニオ猪木、腸の病気で再入院も“闘魂”消えず 「本当に強い人」「復活劇の始まり」と不屈の姿に反響
  3. /nl/articles/2106/13/news004.jpg 子猫「ねぇねぇ」先輩猫「コラー!」 子猫のちょっかいを教育的指導する先輩猫の“お怒りポーズ”が面白い
  4. /nl/articles/2106/14/news084.jpg 肺がん手術の広田レオナ、リハビリ中を襲う苦痛に意気消沈 道端にへたり込んで悲鳴「やたらと心臓も痛い」
  5. /nl/articles/2106/14/news051.jpg 日本マクドナルド50周年で歴代人気バーガー3種が復活! 「ジューシーチキン 赤とうがらし」「テキサスバーガー2021」「トリチ」
  6. /nl/articles/1809/15/news037.jpg 「クソデブ」「痩せたモデルを出せ」 渡辺直美、グッチの公式インスタが大炎上にもブレない姿勢が反響呼ぶ
  7. /nl/articles/2106/14/news048.jpg 大好きなお父さんが帰宅すると、猫が駆け寄って…… 寄り添って甘える猫ちゃんのお出迎えがうらやましい
  8. /nl/articles/2106/14/news081.jpg 田中将大の愛妻家ぶりを妻・里田まいと息子がレポート “父の日”テストの回答が「尊い」「最高」「泣きそう」と反響
  9. /nl/articles/2005/06/news010.jpg 病床の少女に死神が迫る→連れて行くどころか看病するオカン死神の漫画にほっこり
  10. /nl/articles/2106/14/news036.jpg 外出自粛で健康診断が“見たことのない数字”に 自宅最高と思っていたらヤバいことになった実録漫画が人ごとじゃない

先週の総合アクセスTOP10

  1. 「ブス、死ね」 りゅうちぇる、心ない言葉への返答が感銘を呼ぶ 「心もイケメン」「りゅうちぇるのおかげで自己肯定感上がった」
  2. 小林礼奈、4歳娘を連れて夕食中に客とトラブル 痛烈コメント受けて「私たち親子を悪にしたい人がいる」
  3. 熊田曜子、“離婚決意”後初の動画で銀座ホステスに 「極妻」の不用意発言に苦言も
  4. 「お」「ま」「ち」「こ」「う」「ん」の文字が書かれたダイスを振って役を作る神ゲー「んこダイス」登場 → 「ドラクエ」を抜いてSteam売上1位に
  5. 注射前は“無”の表情だったワンコ、帰りの車では…… 無敵になったワンコの表情ビフォーアフターが面白い
  6. めちゃくちゃ煽ってくる「GR スープラ」を捉えた1枚の写真が話題に モニターに映し出される「ようこそ、親の脛かじりさん」イタズラ 仕掛け人は父親
  7. 美術館に侵入する黒猫と警備員の攻防戦、4年の時を経て…… 「また来たニャ」な猫ちゃんと優しいスタッフのやりとりがあたたかい
  8. 子猫「おねがい、おねがい!」 ごはんの前でおねだりをする子猫ちゃんがかわいい!
  9. 山に捨てられていたワンコを保護→2年後…… “すっかり懐いたイッヌ”の表情に「爆笑した」「かっこよすぎ」の声
  10. 「1万曲入りiPodをオークションに出したら飛ぶように売れた」 宮下崇『連続起業家のTHEORY』が物議、会社側は「事実確認中」

先月の総合アクセスTOP10