QRコードは、何の模様?という話がありました。
これについて、QRコードを開発した原昌宏さん(産業機器メーカー 主席技師)が説明していました。
QRコードの模様は「囲碁」なんです。
原さんが昼休みに囲碁をやっていて、それを参考にして作ったのが、「QRコード」。
QRコードは、バーコードよりも「速く」「正確に」「多くの情報」を読み取れるシステムはないかと、原さんがチームリーダーとなって開発した。
QRコードは高速に読めるので、「Quick(速い)」「Response(反応)」の頭文字をとって「QR」。
どれくらい速いのか?
機械が読み込むスピードは、最速0.03秒。
そんなQRコードが実用化されるキッカケとなったのが、囲碁。
囲碁の碁石を盤面に並べても、QRコードとして読み取れる。
その前に、ここで、QRコードのもととなったバーコードの基礎知識。
バーコードの場合は、バーの幅の方向に情報を持っている。
つまり、バーコードは、白黒線の幅・並び方で情報認識。
ちなみに、こちらが、数字を表すバーコードの 一例。
1つの数字を表すのに、12本の線が必要となる。
例えば、このバーコードだと、1を表している。
そのため、現在のバーコードに入れられる情報は、英数字で最大20字程度が限界。
もっと情報量を増やそうとすると、バーコード自体が横に長くのびてしまう。
これでは、勝手がよくない。
そこで、面にすれば情報量が増やせるのでは?というアイデアが最初にあった。
横方向の線、1次元の情報しかなかったバーコードに対し、QRコードは縦方向の情報も加えた平面の2次元で、情報を表しているので、「2次元コード」ともいわれている。
さらに、線の数と幅で情報を表していたバーコードに対して、
横と縦のマスで情報を表すことで、白と黒の組み合わせは 一気に増える。
バーコードで白黒2つの組み合わせの最小単位は、4通りしかない。
しかし、2次元コードの場合、
横に2つに加え縦にも2つずつ組み合わせられるので、16通りとなる。
QRコードの白黒の組み合わせは、一番小さい21マスx21マスで計算しても、
約4000京 x 1000京 x 1000京 通り。
読み取れる情報量(数字のみ)は、バーコードの約350倍で、最大7089字。
一般的なQRコードは、50桁〜100桁。
そのため、バーコードでは商品コードや価格など、文字の少ない情報だけだったが、
QRコードでは、長いホームページのURL情報なども、読み込むことが可能となった。
しかし、QRコードにもある問題があった。
プリンターで印刷すると、インクがにじんだり、白黒が歪んだりすると、エラーを起こして読めなかった。
そこで、白黒のさまざまな模様で、エラーを防ごうと試行錯誤し、それを解決してくれたのが囲碁だという。
「割れた碁石」や「曲がった碁石の列」のように、読み込めなかったQRコードのマスの境界線をわざとあいまいに認識して、それをくっきりと修正するように、プログラムした。
ここで、囲碁の碁盤を使って、QRコードの模様を作ってみる。
碁盤の目は通常19x19だが、特別に、33x33の碁盤を用意。
QRコードに必ず入っている模様が、3つの「四角い模様」。
これが正しいQRコードの向きを読み取り機が判断するためにある。
上に2つ、左下に1つシンボルがあるおかげで、真ん中のシンボルが左上にあるのが正しい向きと分かるようになっている。
例えば、右から読み込んだ場合、
真ん中のシンボルが右上にきているので、
これは正しい向きではないと、読み取り機が認識し、正しい向きに修正するようにプログラムしている。