QRコードが日本で発明されたことは皆さんご存知でしょうか?
近年PayPayを始めとするさまざまな電子決済が登場していますが、これらの電子決済でよく使われていることもあり、バーコード・QRコードは私たちにとって身近な存在になりました。最近読んだネット記事に日本人がQRコードを発明したと書かれていたことを思い出したので、今回はこれについて書きたいと思います。
一次元のバーコード
バー(縦棒)とスペースを組み合わせることで数字や文字を表現したものです。1949年に米国で誕生し、特許が取得されています。UPC(Universal Product Code)やEAN(European Article Number)などの複数の規格があります。
二次元のコード
白と黒の正方形(セル)を組み合わせることで数字や文字を表現したものをいいます。縦方向のみのバーコードに対し、縦横どちらにも情報を持つことができるため二次元コードと呼ばれます。一般的にはQRコードという名称の方がよく使われています。QRはQuick Responseの頭文字をとったもので、デンソー(現在のデンソーウェーブ社)のエンジニアの方が1994年に発明しました。QRコードは無償で使用することができますが、デンソーが商標として登録しています。もともとは生産管理の現場で使用するために作られたそうですが、無償で使用できるおかげで、広く使われるようになったのでしょうね。
ざっくりとですが、一次元バーコードで表現できるデータ容量は数十文字程度です。それに対して、二次元コードになると2000〜3000文字を表現することができるそうです。発明から数十年を経過して世界中で利用されているバーコードとQRコードに、それほど違いがあるのは面白いですね。
ところで、QRコードのドットパターンは実はそれぞれが特定文字に対応していて、人間の目でも読み取ることができるのではないかと思い、ChatGPTに聞いてみました。
質問:QRコードには、各アルファベットに対応するドットパターンがあるのでしょうか?
ChatGPT
いいえ、QRコードは、各アルファベットや数字に対応する固定のドットパターンを持っているわけではありません。代わりに、QRコードは以下のような仕組みで情報をエンコードします。
モード指示子: QRコードは、エンコードするデータのタイプ(数字、英数字、バイト/8ビットバイト、漢字など)に応じて、異なるモードを選択します。このモードは、モード指示子としてQRコードにエンコードされます。
文字数指示子: エンコードするデータの長さ(文字数)もQRコードにエンコードされます。
データのエンコード: 選択されたモードに基づいて、実際のデータ(テキスト、数字など)がエンコードされます。このとき、特定のアルゴリズムやルールに従って、データはバイナリ形式に変換されます。
エラー訂正コード: エンコードされたデータには、エラー訂正コードが追加されます。これにより、QRコードが部分的に損傷しても情報を復元できるようになっています。
したがって、QRコードは、特定の文字や数字に対応する固定のドットパターンを持つわけではなく、エンコードされる情報全体に基づいてドットパターンが生成されます。これにより、QRコードは非常に高い情報密度を持ち、多様なデータをエンコードすることができます。
QRコードはそんなに単純なものではないようですね。こんなシンプルな仕組みに沢山の技術が詰め込まれていることに驚きます。
今後はカラー化も進められているというQRコード。日本発の技術がグローバルで使われるなんて、とても誇らしく感じます。ビックデータの時代になっている現在、テラバイトやペタバイトというデータ量ばかりに目が行ってしまいがちですが、広く使われる紙に記録できるシンプルなデータ技術も素晴らしいですよね?
あまり複雑に考えずに、シンプルなものにも目を向けて行きたいと思います。
※「QRコード」は株式会社デンソーウェーブの登録商標です。