二次元コード

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

二次元コード(にじげんコード)とは、横方向にしか情報を持たない一次元コード(バーコード)に対し、水平方向と垂直方向に情報を持つ表示方式のコードのこと。バーコードに比べ、より多くの情報をコード化でき、また印字面積を小さくできる。

小さな正方形を上下左右に配列させたマトリックス式(マトリックスコード)と、1次元バーコードを上下に複数重ねたスタック式(スタックコード)がある。

2次元コード全体の技術的原理[編集]

いずれのタイプの2次元コードでも原理的に下記の事が技術な要素になっている。

  • コードを生成するエンコード技術/コードの形状・データ効率/印刷したり表示する技術
  • コードを画像処理して文字列などに変換するデコード技術
  • エンコード/デコードする際に暗号化したり変形やエラーに対する補正を行う技術及び画像処理技術
  • 上記全て又は一部を組み合わせて応用し、システム化する技術

世の中には後発組みも入れて、かなりの数の(形状の)2次元コードが存在するが、コードの形状だけでは、そのシステムとしての性能を判定できない。また、2次元コードをどんなに特徴の有る形状にしても、所詮はデータ効率や画像処理のしやすさがポイントになり、この原理を無視できない。加えて、画像処理の技術がどこまで優れているかを証明しなければならないので、各コード陣営がいろいろな理論を開発後に付け加えても、これらのことを解決しないことには性能のいいシステムは構築不可能である。そして、本質的なそれらの技術をチェックすることで、いろいろな種類のコードの特性がより把握できやすくなると考える。また、結論的に正確に読み取れるかどうかは、コードの形状というよりはむしろ、読み取りの画像処理技術と光学系の性能にかかっているといえる。

ここで、意外な技術的錯覚が我々人類には存在する。この技術において、特にマトリックスタイプのコードにおいて、データの最小単位を表すデータセルは点(又は三角・四角)状のものであり、データの格納範囲を表すものは直線か点線のもが多い。ここで、元来数学的には点と言うのは大きさを持たず、線というのは面積を持たない。黒い一本の直線も点線と言う白黒の点(又は短い線)が並んだものも、画像処理的には1本の線であるし、黒いデータセルも白いデータセルも一個のデータビットなのである。

しかしながら、この技術で必要なコードの印刷やプリンターなどでの印字手段では、我々人類が眼でそれを認識するためにデータセルも線も面積を持つ必要が出てくるのである。つまり、データセルや線を大きく(小さく)したり太く(細く)したり、それらの要素の形状を○や三角や四角にする事は、データ密度やコードの性能にあまり重要な意味を持たなということになる。つまり、システムの全体的な認識性能が重要であるだけであると言うことであろう。ちなみに、もう一つ興味深いことは、我々人類の眼には黒い点は小さく縮んで見えるが、CCDカメラの画像では白が膨張(拡大)してみえることである。従って、スタックタイプの2次元コードは黒い線の太さを測ることで(アナログ計測)認識のプロセスを進めているので、この原理から言うと、マトリックスタイプのコードに比べ若干不利な技術といわざるを得ない。当然、同程度の印刷技術と読み取り技術を用いた場合、マトリックス形状のほうが、原理的には情報密度は高くなる。

今後それぞれに特徴の有る技術やシステム化又はそれに適したハードウエアが開発される事が期待され、結果としてその応用システムが世の中の利便性や機能性をより高めて行くのに、役に立って行くと言える。尚、2次元コードは一次元バーコードに比べそのデータ密度は格段に高いため、この技術は広義での自動認識 (Auto Identificatin) の技術分野に属し、Image based High Density Memory(画像ベースの高密度データ記憶媒体)とも呼べる。コード形状の原則は白黒の1ビット(0・1の2通り)を表す点(データセルのマトリクス)又は単位太さの線の組み合わせで積み上げられた線(スタック)の集合体でデータを表すものであるが、データセルをカラー化したり変形(3次元化も含み)させたりするなどした時に、本来白黒であれば2のN (m×n) 乗のデータであるものをM(整数)のN乗のデータの表現力に上げることもできうる。

本技術の世界での発明当初は、1970年代始め頃、アメリカにおいてスタックコード、少し遅れてマトリックスタイプの2次元コードが数種類発明・開発されてきた。1990年代に入って、NASAやUPSなどがその一部を採用したがプロセッサーのコストやソフト開発環境/ハード技術(処理速度)、何にも増してレーザー読み取り機やCCDカメラの性能やコストがその普及の障害になり、工場の自動化などのFA(ファクトリーオートメーション)などへの用途が主体であった。アメリカでは、Veritec社など一部の会社がこの技術で株式公開するなど、成功例は少なからず有ったが、1990年代中盤までは大きな普及は無かった。その後、日本においても1997年頃から各社において自動エラー訂正や画像処理の技術が追加され、世界的にも規格化の動きも加速され、用途も徐々に広がってきた。

一つの大きな普及のきっかけになったのは、1999年ごろ以降の日本におけるCCDカメラ付携帯電話の爆発的普及であろうが、価格的な問題も一気に解決して規格化も進み、特にそれまで後発であったマトリックスタイプのコードも広く普及しだした。その頃から日本においてもさまざまな形状の2次元マトリックスコードが誕生してきて、新しいタイプの印刷方法や読み取り用の光学式ハードウエアも開発されてきだした。しかし、まだまだ高価格である独立タイプのリーダーに対し、超低価格のリーダー開発や音声表示コード、FAXやネットを利用したデコードシステムなどが開発されれば、そのコストメリットなどから今後もその応用と利用範囲は広がって行くと考えられる。例えば、現在電車の切符の裏面は前面茶褐色などの磁性体が塗布されていて、それを磁気リーダーで読んでいるが、切符は使い捨てである。それを透明インクでCPコード印字すれば、切符は紙として回収しやすく、いわゆるエコな応用になる。

基本的に、この技術の応用は次のようなテーマ別にハード/ソフト/システムへと発展していくと考えられる。

  • 印字/表示技術、印刷物に関する応用
  • 読み取り方法、画像処理方法による応用(低価格セキュリティー用と含む)
  • 上記を組み合わせたアプリケーションシステム技術による応用

原理的には、これらは広い意味での自動認識技術の応用であり、この技術はとりわけ人類の大発明である“紙”や“印刷”と言うコスト的にもっとも有利な方法でも対応できるものとして、さらには読み取り方法が低コストで実現できる手段と合わせて利用すれば、システムとしての大きな優位性が2次元マトリックスコードには存在する。また、漢字を始として世界の文字を直接コード化できることから、アジアではその用途は、今後現在考えられてもいない方向へと進化していく可能性が潜んでる。

主な二次元コード[編集]

マトリックス式[編集]

スタック式[編集]

外部リンク[編集]