(57)【特許請求の範囲】
【請求項１】
セルの分布パターンにより情報を表現する正方形形状の２次元コードであって、
２次元コード内の所定位置に配置され、複数の異なる方向または複数の異なる位置において走査した場合に１：１：３：１：１の周波数成分比が得られる正方形形状のパターンであり、２次元コードの位置を特定する位置決め用シンボルと、
前記位置決め用シンボルに対する所定位置であって該位置決め用シンボルの４辺のうちデータセルが存在する側の２辺に沿った位置にそれぞれ配置されて、セルの分布パターンで２次元コードのサイズを表す２つのサイズコードと、
を備え、前記サイズコードは、所定セル数で異なる分布パターンを有する複数のサイズコードの中から前記２次元コードのサイズを示す分布パターンが選択されて配置されていることを特徴とする２次元コード。
【請求項２】
前記サイズコードは、正方形の位置決め用シンボルのサイズに対する比率で、２次元コードのサイズを表すことを特徴とする請求項１記載の２次元コード。
【請求項３】
前記サイズコードは、前記位置決め用シンボルに隣接して配置されていることを特徴とする請求項１または２記載の２次元コード。
【請求項４】
１つの前記位置決め用シンボルが、２次元コードの４つの頂点の内のいずれかに配置され、前記サイズコードは、２次元コードの縦および横のサイズを表していることを特徴とする請求項１〜３のいずれか記載の２次元コード。
【請求項５】
２つの前記サイズコードが、前記位置決め用シンボルの４辺の内、データセルが存在する側の２辺にそれぞれ配置され、各サイズコードは、配置された位置決め用シンボルの各辺側での２次元コードのサイズを表していることを特徴とする請求項４記載の２次元コード。
【請求項６】
請求項１〜５のいずれか記載の２次元コードの読取方法であって、
前記２次元コードの画像を得るとともに、前記画像中での前記位置決め用シンボルを検出する２次元コード位置決め処理を行い、
次に、検出された前記位置決め用シンボルに基づいて前記サイズコードを検出し、該サイズコードを形成するセルの分布パターンを検出して該分布パターンを解読することで該サイズコードが表す２次元コードのサイズを取得するサイズ取得処理を行い、
次に、取得された前記２次元コードのサイズに基づいて、２次元コードの情報を読み取るデコード処理を行うことを特徴とする２次元コードの読取方法。
【請求項７】
前記２次元コード位置決め処理は、前記２次元コードの画像を得るとともに、前記画像中での前記位置決め用シンボルの位置と形状とを検出し、
前記サイズ取得処理は、検出された前記位置決め用シンボルの位置と形状とに基づいて前記サイズコードの位置を検出し、該位置から前記サイズコードを形成するセルの分布パターンを検出して該分布パターンを解読することで前記サイズコードが表す２次元コードのサイズを取得し、
前記デコード処理は、取得された前記２次元コードのサイズと前記位置決め用シンボルの形状とに基づいて、２次元コードの情報を表すデータセルの位置を検出し、該位置から２次元コードの情報を読み取ることを特徴とする請求項６記載の２次元コードの読取方法。
【請求項８】
請求項５記載の２次元コードの読取方法であって、
前記２次元コードの画像を得るとともに、前記画像中での前記位置決め用シンボルの位置と形状とを検出する２次元コード位置決め処理を行い、
次に、検出された前記位置決め用シンボルの位置と形状とに基づいて、前記位置決め用シンボルの４つの辺側の所定位置を検査することで、２つのサイズコードの存在を検出して該サイズコードが表す２次元コードのサイズを取得するサイズ取得処理を行い、
次に、前記サイズコードが検出された前記位置決め用シンボルの２つの各辺側について、前記サイズコードから取得された前記２次元コードのサイズと前記位置決め用シンボルの形状とに基づいて、データセルの位置を検出して、該データセルから２次元コードの情報を読み取るデコード処理を行うことを特徴とする２次元コードの読取方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２次元コードおよび２次元コードの読取方法に関する。
【０００２】
【従来の技術】
従来、提案されている２次元コードの例としては特開平７−２５４０３７号公報記載のものがあり、この２次元コードの読取装置の例としては特開平８−１８０１２５号記載のものがある。
【０００３】
２次元コードは、図１４（ｂ）に一例を示すごとく情報が２次元的な広がりを持ち、図１４（ａ）に示すバーコードに比べて格段に大量の情報を記録できるが、構造は複雑なものとなっているため、２次元コードの全体形状を迅速に確定することが重要視されている。
【０００４】
そのため、従来の２次元コードでは、図１５に示すごとく、特定寸法比率の正方形を組み合わせた３つの位置決め用シンボル３１０ａ，３１０ｂ，３１０ｃを、２次元コード３００の４つの頂点の内の３頂点にそれぞれ配している。
この位置決め用シンボル３１０ａ，３１０ｂ，３１０ｃは、例えば、一辺の長さが７セルに相当する黒い枠状正方形３１２、一辺の長さが５セルに相当する白い枠状正方形３１４、一辺の長さが３セルに相当する黒い正方形３１６を同心状に重ね合わせた時にできる図形を採用している。
【０００５】
この位置決め用シンボル３１０ａ，３１０ｂ，３１０ｃの中心付近を直線的に横切ると、黒、白、黒、日、黒のパターンが１：１：３：１：１の比率で検出される。このような比率の検出はハード的にもソフト的には比較的容易に検出できるので、前記比率で黒と白が交互に検出された場合、そのパターンを位置決め用シンボル３１０ａ，３１０ｂ，３１０ｃの有力な候補であると迅速に判断でき、その位置・形状を迅速に決定することができる。
【０００６】
このように迅速に３つの位置決め用シンボル３１０ａ，３１０ｂ，３１０ｃの位置と形状とが決定できれば、２次元コード３００の各頂点が定まるとともに、２次元コード３００を構成しているデータセル３３０の内容を、迅速かつ正確に読み取ることができる。（図１５ではデータセル３３０の白黒のパターンは省略されている。）
したがって、これら３つの位置決め用シンボル３１０ａ，３１０ｂ，３１０ｃの存在は、２次元コード３００の存在位置を迅速かつ正確に確定するためには重要なものであった。
【０００７】
【発明が解決しようとする課題】
このように、大量のデータを記録している２次元コードを短時間で解読するためには、従来は３つの位置決めシンボルを持つ必要があったが、２次元コードに記録される情報量が比較的少ない場合には、従来の２次元コードは、必ずしも好適な構成をなしているものとは言えなかった。
【０００８】
例えば、前述した２次元コード３００では、情報量が少なくなると２次元コード３００全体の面積に占める位置決めシンボル３１０ａ，３１０ｂ，３１０ｃの面積の比率が大きくなり、極端な場合は、図１６のように、２次元コード４００全体の面積の大半を、３つの位置決めシンボル４１０ａ，４１０ｂ，４１０ｃが占めるようになり、情報量を減らしても２次元コードはほとんど小さくならないという問題が発生した。したがって、情報量が少ないのにかかわらず、情報以外の部分で大きな面積を必要とするので、用途に応じて２次元コードを小さくして、省スペース化を達成するという需要に応えられない。例えばＩＣの樹脂面などの小さいスペースに、情報量を減らして小さくした２次元コードを印刷したいというような需要があるにもかかわらず、応えられないという一面があった。
【０００９】
このような問題を解決するためには、位置決め用シンボルの数を減らすことが考えられる。例えば、特開平２−５６０９１号においては、２次元コードの中央に置かれた１つの位置決め用シンボルから一定の範囲が２次元コードのサイズであるとして、１つのみの位置決め用シンボルしか配置されていない。
【００１０】
しかし、特開平２−５６０９１号に記載された２次元コードは、位置決め用シンボルが１つであるため、予め全体の大きさを一定としなくてはならず、情報量を更に少なくした場合にもその一定の大きさが必要となる。したがって、用途に応じて２次元コードを、もっと小さくして、一層の省スペース化を達成するという需要には応えられない。
【００１１】
更に、読取処理する場合も、必ず予め決められた一定の範囲は読み取らなくてはならないので、データ量が少なくても、迅速に読取処理できるとは言えなかった。
また逆に情報量を多くしようとして、２次元コードのみを大きくしても、読取処理では、予め決められた一定の範囲のみの読み取りであるため、大きくした２次元コードに対処するためには読取処理を行う読取装置のハードやソフトの構成を変更しなくてはならず、用途に応じて迅速に対処できないという問題があった。
【００１２】
本発明は、用途に合わせてサイズを容易に変更することができる２次元コードおよびその読取方法の提供を目的とするものである。
【００１３】
【課題を解決するための手段及び発明の効果】
本発明の２次元コードは、複数の異なる方向または複数の異なる位置において走査した場合に１：１：３：１：１の周波数成分比が得られる正方形形状のパターンであり、正方形形状の２次元コードの位置を特定する位置決め用シンボル以外に、位置決め用シンボルに対する所定位置であって位置決め用シンボルの４辺のうちデータセルが存在する側の２辺に沿った位置にそれぞれ配置されて、セルの分布パターンで２次元コードのサイズを表す２つのサイズコードが備えられている。そして、サイズコードは、所定セル数で異なる分布パターンを有する複数のサイズコードの中から２次元コードのサイズを示す分布パターンが選択されて配置されている。
【００１４】
このため、例え、位置決め用シンボルが１つでも、サイズコードの情報から、２次元コードのサイズが判明するので、読取装置は読み取るべきサイズを特定することができる。このように、読取装置側では、サイズコードの情報から２次元コードのサイズを読み取るようにしておくだけで、以後、２次元コードのサイズが変更されても、そのハードやソフトを変更することはなく、直ちに対処でき、無駄な読み取りや読みこぼしを無くして、正確に２次元コードを読み取ることができる。
【００１５】
サイズコードは、位置決め用シンボルのような最初に検出されるパターンではなく、サイズを表すのみで良いことから、比較的小さい面積を占めるもので良く、２次元コードを小さくする場合にもほとんど阻害要因とはならない。
また、上述したことは、サイズコードの内容の変更のみで、自由に２次元コードのサイズを変更できることを意味し、用途に応じて２次元コードのサイズを迅速に対処させることができる。
【００１６】
また、このように２次元コードのサイズが、位置決め用シンボルの配置状態からでなく、サイズコードの内容から読み取られるため、位置決め用シンボルが３つ存在している必要はなく、２つでも１つでも、２次元コードのサイズが容易に検出できることになる。このため、位置決め用シンボルの数を減らすことができ、小さなサイズの２次元コードが必要とされる用途でも、２次元コードのほとんどが３つの位置決め用シンボルに占められるために小さくできないと言う問題点を解決して、２次元コードを十分に小さいものとできる。したがって、ＩＣ等の小さい２次元コードを必要とする用途にも広く使用できるようになる。
【００１７】
さらに、サイズコードは、２次元コードの情報を表しているデータセルと同じ様式のセルの分布パターンで表すことができるため、読取装置もソフト的に容易に２次元コードのサイズを読み取ることが可能となる。したがって、従来の２次元コード読取装置でも、プログラムを変更するのみで対処できる。
【００１８】
なお、サイズコードが表す２次元コードのサイズは、正方形の位置決め用シンボルのサイズに対する比率で表しても良い。位置決め用シンボルは最初にその位置や形状が決定されるので、以後、この位置決め用シンボルの形状を基準として、比率で２次元コードのサイズを検出すれば、迅速・容易に２次元コードのサイズを決定することができる。例えば、位置決め用シンボルの２倍、３倍、４倍、……等であり、また整数倍ばかりでなく、１．７倍、２．７倍、３．３倍、１５／７倍、２３／７倍、……等の小数倍または分数倍を意味するものであっても良い。
【００１９】
例えば、サイズコードのセルの分布パターンと比率とを対応させておき、読取装置は対応表を基に、読み取ったサイズコードのセルの分布パターンから比率を求めて、２次元コードのサイズを決定し、そのサイズからデータセルの内容を読み出す。
【００２０】
なお、２次元コード内でのサイズコードの配置としては、例えば、位置決め用シンボルに隣接して配置される。このように、位置決め用シンボルに隣接して存在することにより、離れた位置に存在するよりも、サイズコードの位置決めの誤差が小さい。したがって、位置決め用シンボルの位置に基づいて正確にサイズコードが検出されるので、２次元コードの解読処理が一層正確かつ迅速となる。
【００２２】
また、例えば、１つの位置決め用シンボルを２次元コードの４つの頂点の内のいずれかに配置した構成とし、サイズコードを２次元コードの縦および横のサイズを表すものとしても良い。
矩形としては例えば正方形であれば、縦と横のサイズは同じなので、サイズコードは１つのサイズを表すものであっても良い。
【００２３】
２つのサイズコードが、位置決め用シンボルの４辺の内、データセルが存在する側の２辺にそれぞれ配置され、各サイズコードは、配置された位置決め用シンボルの各辺側での２次元コードのサイズを表す構成としても良い。この構成により、サイズコードの位置が検出されれば、同時に、データセルが存在する方向とその範囲が判るので、効率的に処理ができる。
【００２４】
この場合、２次元コードが正方形であれば、２つのサイズコードが表すサイズは同一となる。したがっていずれか一方のサイズコードを省略して設けなくても良い。ただし、この場合でも、省略されたサイズコードが示すべきデータセルの存在方向を、省略されていないサイズコードに対していずれの方向であるかを、予め決定しておく必要がある。
【００２５】
なお、同一のサイズを表すサイズコードを２つ設けた場合には、両者が同一かどうかを読取処理時に比較することにより、同一でなければ読取エラーであるとして、エラー処理を実行するようにしても良い。
上述した２次元コードを読み取る方法しては、次のような方法が挙げられる。
【００２６】
まず、２次元コードの走査等により、２次元コードの画像を得るとともに、画像中での位置決め用シンボルを検出する２次元コード位置決め処理を行う。次に、検出された位置決め用シンボルに基づいてサイズコードを検出し、このサイズコードを形成するセルの分布パターンを検出し、この分布パターンを解読することで、サイズコードが表す２次元コードのサイズを取得するサイズ取得処理を行う。次に、取得された２次元コードのサイズに基づいて、２次元コードの情報を読み取るデコード処理を行う。
【００２７】
このように、サイズ取得処理において、サイズコードが表す２次元コードのサイズを取得し、この２次元コードのサイズに基づいて、デコード処理にて２次元コードの情報を読み取っている。したがって、情報を読み取ろうとしている２次元コードのサイズが２次元コード毎に変化しても、各２次元コードに含まれているサイズコードにより直ちに対応でき、２次元コードの情報を、無駄な読み取りをしたり読みこぼしをしたりすることなく、正確に読み取ることができる。
【００２８】
より具体的には次のように構成することができる。すなわち、２次元コード位置決め処理は、２次元コードの走査等により、２次元コードの画像を得るとともに、画像中での位置決め用シンボルの位置と形状とを検出する。サイズ取得処理は、検出された位置決め用シンボルの位置と形状とに基づいて、サイズコードの位置（位置決め用シンボルに対する所定位置）を検出し、この位置からサイズコードを形成するセルの分布パターンを検出し、この分布パターンを解読することで、サイズコードが表す２次元コードのサイズを取得する。デコード処理は、取得された２次元コードのサイズと位置決め用シンボルの形状とに基づいて、２次元コードの情報を表すデータセルの位置を検出し、この位置から２次元コードの情報を読み取る。
【００２９】
なお、２次元コードが、２つのサイズコードが位置決め用シンボルの４辺の内、データセルが存在する側の２辺にそれぞれ配置され、各サイズコードが、配置された位置決め用シンボルの各辺側に存在するデータセルのサイズを表しているものである場合は、次のような２次元コード読取方法を採用しても良い。
【００３０】
すなわち、２次元コードの走査等により、２次元コードの画像を得るとともに、この画像中での位置決め用シンボルの位置と形状とを検出する２次元コード位置決め処理を行い、次に、検出された位置決め用シンボルの位置と形状とに基づいて、位置決め用シンボルの４つの辺側の所定位置を検査することで、２つのサイズコードの存在を検出して、このサイズコードが表す２次元コードのサイズを取得するサイズ取得処理を行い、次に、サイズコードが検出された位置決め用シンボルの２つの各辺側について、サイズコードから取得された２次元コードのサイズと位置決め用シンボルの形状とに基づいて、データセルの位置を検出して、このデータセルから２次元コードの情報を読み取るデコード処理を行う。
【００３１】
なお、このような２次元コードの読取方法を実行する機能は、例えば、コンピュータシステム側で起動するプログラムとして備えられる。このようなプログラムの場合、例えば、フロッピーディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ハードディスク等の機械読み取り可能な記憶媒体に記憶し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ＲＯＭやバックアップＲＡＭを機械読み取り可能な記憶媒体として前記プログラムを記憶しておき、このＲＯＭあるいはバックアップＲＡＭをコンピュータシステムに組み込んで用いても良い。
【００３２】
【発明の実施の形態】
図１のブロック図に、上述した発明が適用された２次元コード読取装置２の概略構成を示す。
２次元コード読取装置２は、ＣＣＤ４、２値化回路６、画像メモリ８、クロック信号出力回路１４、アドレス発生回路１６、変化点検出回路１８、比検出回路２０、アドレス記憶メモリ２２および制御回路２８から構成されている。
【００３３】
制御回路２８は、ＣＰＵ、ＲＯＭ、ＲＡＭ、Ｉ／Ｏ等を備えたコンピュータシステムとして構成され、ＲＯＭに記憶されているプログラムに従って、後述する２次元コード読取処理等を実行し、２次元コード読取装置２の各構成を制御している。
【００３４】
ここで、２次元コード読取装置２にて検出される上述した発明が適用された２次元コードの一例の概略図を図２に示す。この２次元コード５２は、白色の台紙５３の上に印刷されており、１個の位置決め用シンボル５４、データ領域５６、および２個のサイズコード６０，６２から構成されている。これら全体のサイズは、１５セル×１５セルの正方形状とされている。各セルは、光学的に異なった２種類のセルから選ばれており、図および説明上では白（明）・黒（暗）で区別して表す。なお、図２では便宜上、データ領域５６のデータセルの白黒のパターンは省略している。実際の２次元コード５２は、図３に一例として示すごとくである。
【００３５】
位置決め用シンボル５４は、２次元コード５２の４つの頂点の内の１つに配置されている。この位置決め用シンボル５４のセルの明暗配置は、図４（Ａ）に示すごとく、１セル幅の黒からなる枠状正方形５５ａ内の中心部分に、１セル幅の白からなる縮小した枠状正方形５５ｂが形成され、その内側の中心部分に黒からなる３セル×３セルの大きさの正方形５５ｃが形成されているパターンである。
【００３６】
また、サイズコード６０，６２は、データ領域５６の内、位置決め用シンボル５４にセル１つ分離れた隣接位置、その内でもデータ領域５６が存在する側の位置決め用シンボル５４の２辺５４ａ，５４ｂに沿って配置されている。サイズコード６０，６２は、それぞれ６個のセルが直列に配列した構成である。サイズコード６０，６２は、データ領域５６から見て、左側から、黒セルと白セルとが交互に並んだ配列となっている。サイズコード６０，６２はこの配列のセル分布パターンにより、２次元コード５２のサイズ情報を表している。
【００３７】
サイズコードとして設定され得るセル分布パターンとしては、２の６乗＝６４種類を設けることができるが、ここではサイズコードとしては、３種類のみと決められているものとする。特に、特に黒セルと白セルとの分布が偏らないように、図６（ａ），（ｂ），（ｃ）の３種類のパターンを利用している。この内、図６（ａ）が図２で用いられるサイズコード６０，６２に対応し、サイズ情報として１５／７を表している。このサイズ情報は、位置決め用シンボル５４の大きさに対する２次元コード５２の比率（ここでは倍率）を表している。すなわち、図２の位置決め用シンボル５４は正方形であり、１辺の長さは７セル分である。したがって、２次元コード５２の１辺の長さは、７セル×１５／７＝１５セルであることがサイズコード６０，６２から判る。
【００３８】
また、図６（ｂ）のサイズコード７０，７２では、比率１１／７を表しているので、図７に示すごとく、位置決め用シンボル７６のサイズに対して１１／７（１１セル）である２次元コード７４に用いられる。
また、図６（ｃ）のサイズコード８０，８２では、比率２１／７を表しているので、図８に示すごとく、位置決め用シンボル８６のサイズに対して２１／７（２１セル）である２次元コード８４に用いられる。
【００３９】
なお、ここでは、２次元コード５２と位置決め用シンボル５４とは正方形であるとの前提で、２つサイズコード６０，６２は全く同じものを使用している。ただ、２次元コード５２あるいは位置決め用シンボル５４を正方形でない矩形あるいは場合により平行四辺形等の四角形のものも含まれているとすれば、例えば、辺５４ａ側にあるサイズコード６０は、位置決め用シンボル５４のｘ方向のサイズに対する２次元コード５２のｘ方向のサイズの比率を表しているものとし、辺５４ｂ側にあるサイズコード６２は、位置決め用シンボル５４のｙ方向のサイズに対する２次元コード５２のｙ方向のサイズの比率を表しているものとする。
【００４０】
制御回路２８は、以下に述べるごとくの２次元コード読取制御を行う。
まず制御回路２８の指示により、２次元画像検出手段としてのＣＣＤ４にて２次元コード５２が通過する場所の２次元画像を検出する。ＣＣＤ４は、２次元画像を検出すると、図５（ａ）に示すごとくのアナログ的なレベルからなる信号にて２次元画像データを出力する。この２次元画像データを、２値化回路６が制御回路２８から指示された閾値にて２値化して、図５（ｂ）に示すごとくの１（ハイ）／０（ロー）の２つのレベルからなる信号に変換する。
【００４１】
一方、ＣＣＤ４から出力される同期パルスに応じて、クロック信号出力回路１４がＣＣＤ４から出力される２次元画像データのパルスより十分に細かいクロックパルスを出力する。アドレス発生回路１６はこのクロックパルスをカウントして、画像メモリ８に対するアドレスを発生させる。２値化された２次元画像データは、このアドレス毎に８ビット単位で書き込まれる。
【００４２】
一方、２値化回路６からの信号における「１」から「０」への変化あるいは「０」から「１」への変化時に、変化点検出回路１８は、比検出回路２０にパルス信号を出力する。比検出回路２０は、変化点検出回路１８からのパルス信号入力から次のパルス信号入力までに、クロック信号出力回路１４から出力されたクロックパルスをカウントすることにより、２次元画像の中の明（１）の連続する長さおよび暗（０）の連続する長さを求める。この長さの比から、２次元コード５２の位置決め用シンボル５４に該当するパターンを検出する。
【００４３】
図４（Ａ）に示したごとく、位置決め用シンボル５４のほぼ中心を代表的な角度で横切るＣＣＤ４の走査線（ａ），（ｂ），（ｃ）での明暗パターンは、図４（Ｂ）に示すごとく、すべて同じ明暗成分比を持つ構造になっている。すなわち、位置決め用シンボル５４の中心を横切るそれぞれの走査線（ａ），（ｂ），（ｃ）の明暗成分比は暗：明：暗：明：暗＝１：１：３：１：１となっている。勿論、走査線（ａ），（ｂ），（ｃ）の中間の角度の走査線においても比率は１：１：３：１：１である。また、図４（Ａ）の図形が、ＣＣＤ４側から見て斜めの面に配置されていたとしても、前記走査線（ａ），（ｂ），（ｃ）の明暗成分比は暗：明：暗：明：暗＝１：１：３：１：１を維持する。なお、図４（Ｂ）は、２値化回路６からの２値化された信号に該当する。
【００４４】
このことにより、比検出回路２０は、この「１：１：３：１：１」なる明暗成分比を検出し、検出した場合は、そのタイミングにアドレス発生回路１６にて発生されている画像メモリ８のアドレスをアドレス記憶メモリ２２に記憶する。
したがって、ＣＣＤ４が１フレーム分の２次元画像データを検出すると、画像メモリ８には、２値化された２次元画像データが記憶され、アドレス記憶メモリ２２には、検出された分の位置決め用シンボル５４のアドレスが記憶されている。
【００４５】
なお、最初の２次元画像の１フレーム分の画像が得られると、制御回路２８は、画像メモリ８およびアドレス記憶メモリ２２のデータに基づいて後述する２次元コード読取処理を行い、この処理が終了すれば、制御回路２８は、続けて、ＣＣＤ４に次の１フレームの２次元画像の検出を指示する。したがって、ＣＣＤ４からは、再度、２次元画像が２値化回路６に出力され、上述したごとくの処理が繰り返される。
【００４６】
次に、１フレーム分の２次元コード５２の画像とその位置決め用シンボル５４のアドレスが、画像メモリ８とアドレス記憶メモリ２２とにそれぞれ記憶された後に、制御回路２８は、２次元コード読取処理を実行する。この２次元コード読取処理を図９のフローチャートに示す。
【００４７】
処理が開始されると、まず、位置決め用シンボル５４の検出処理が行われる（Ｓ１００）。
この処理では、画像メモリ８およびアドレス記憶メモリ２２に対してアクセスし、その記憶内容から位置決め用シンボル５４が適切な位置に存在しているか否かの判断と位置決め用シンボル５４の画像上での正確な形状と中心位置とを決定する。
【００４８】
この処理は、まずアドレス記憶メモリ２２に記憶されている位置決め用シンボル５４のアドレスが、位置的に１つのグループに分けられるかを、そのアドレス値と画像メモリ８の画像とを参照しつつ判断する。
次に、ステップＳ１００にて適切な位置決め用シンボル５４が１つのみ検出されたか否かが判定され（Ｓ１１０）、検出されていなければ（Ｓ１１０で「ＮＯ」）、次の画像の検出をＣＣＤ４に指示して（Ｓ１８０）、処理を終了する。
【００４９】
適切な位置決め用シンボル５４が１つ検出されると（Ｓ１１０で「ＹＥＳ」）、次に新しい２次元コード５２か否かが判定される（Ｓ１２０）。この処理は、前回以前に検出された２次元コード５２がいまだＣＣＤ４により検出され続けている場合に、別の２次元コードとして解読するのを防止するためである。例えば、前回または所定回数前の本処理にて、適切な位置決め用シンボル５４が検出され、更にそのコード内容も既に適切に読み取られていた場合には、同一の２次元コード５２を検出しているものとして（Ｓ１２０で「ＮＯ」）、次の画像の検出をＣＣＤ４に指示して（Ｓ１８０）、処理を終了する。
【００５０】
新しい２次元コード５２であると判定すると（Ｓ１２０で「ＹＥＳ」）、次に画像メモリ８の１（白）／０（黒）のパターンから、位置決め用シンボル５４を構成する各セルの形状と中心位置が計算される（Ｓ１２１）。
具体的に説明する。図１０に一部を示すごとく、２次元コード５２の画像が得られているものとする。位置決め用シンボル５４の画像の内、アドレス記憶メモリ２２に記憶されているアドレスは、明暗成分比が暗：明：暗：明：暗＝１：１：３：１：１として検出された走査線部分Ｌｓ（ここでは９本が該当する。）の画像に相当する。したがって、前記アドレスに基づいて、前記明暗成分比の内で位置決め用シンボル５４の内側の３セル×３セルの大きさの黒からなる正方形５５ｃに該当する部分、すなわち暗成分の比が「３」である部分（正方形５５ｃ内で一点鎖線で示す線分で表される画像部分Ｌｓ０〜Ｌｓ８）の画像上の位置を特定することができる。
【００５１】
そして、この内で先頭のアドレスの画像部分Ｌｓ０と、末尾のアドレスの画像部分Ｌｓ８とを選択して、先頭の画像部分Ｌｓ０の両端点Ａ０１，Ａ０２のアドレスと、末尾の画像部分Ｌｓ８の両端点Ａ１１，Ａ１２のアドレスとを求める。そして、そのアドレスを画像の座標系（ここでは図示するごとく左上を原点とするｘｙ座標系である。）に変換する。
【００５２】
この両端点Ａ０１，Ａ０２の中央点Ａｃ０、および両端点Ａ１１，Ａ１２の中央点Ａｃ１の座標を求める。次に、両中央点Ａｃ０，Ａｃ１の中央の座標を求め、位置決め用シンボル５４の画像の中心座標Ｓｃ（Ｘａ，Ｙａ）とする。
次に、前述した４つの端点Ａ０１，Ａ０２，Ａ１１，Ａ１２の内、黒からなる正方形５５ｃの頂点に近い端点Ａ０２，Ａ１１を抽出する。すなわち、画像部分Ｌｓ０，Ｌｓ８のそれぞれにおいて、いずれの端点が黒の正方形５５ｃの頂点に近いかを判断して決定する。
【００５３】
例えば、先頭の画像部分Ｌｓ０よりアドレスが小さい側で隣接する領域Ｅ０では、黒と認識されたアドレスは一点鎖線で示すごとく、正方形５５ｃの頂点に遠い端点Ａ０１側に偏っている。更に末尾の画像部分Ｌｓ８よりアドレスが大きい側で隣接する領域Ｅ１では、一点鎖線で示すごとく、黒と認識されたアドレスは正方形５５ｃの頂点に遠い端点Ａ１２側に偏っている。
【００５４】
したがって、走査線部分Ｌｓよりも外側に隣接する領域Ｅ０，Ｅ１に該当するアドレスでの黒の配置の偏りを判断することで、黒が偏っていない方の端点Ａ０２，Ａ１１を、正方形５５ｃの頂点に近い端点としてを抽出することができる。なお、２つの端点Ａ０２，Ａ１１を、上述した処理にて正方形５５ｃの頂点に近い端点であると、個々に判定しなくても、２つの端点Ａ０２，Ａ１１の内のいずれか一方の端点について前述の処理にて正方形５５ｃの頂点に近いと決定できれば、もう一方については、決定した端点とは対角に存在する端点が正方形５５ｃの頂点に近いものであることから、対角に存在する端点を抽出するだけでも良い。
【００５５】
次に、２つの端点Ａ０２，Ａ１１を結ぶ直線を、長さを１．５倍して、端点Ａ０２側への伸ばした端を、黒の枠状正方形５５ａの頂点セルの仮の中心位置ｆ′とし、逆に端点Ａ１１側へ伸ばした端を、黒の枠状正方形５５ａの頂点セルの仮の中心位置ｇ′とする。
【００５６】
次に、この仮の中心位置ｆ′，ｇ′の周辺画像をそれぞれ精査して、枠状正方形５５ａの頂点の黒のエッジの形状の特徴等から、正確な頂点セルの中心位置ｆ，ｇを求める。
次に、枠状正方形５５ａの残りの２つ頂点セルの中心位置ｈ，ｉは、中心位置ｆ，ｇを結ぶ直線とは各直線の中央でかつ中心Ｓｃで直交する同長の直線の端部に存在することから、中心位置ｈ，ｉの座標ｈ（Ｘｈ，Ｙｈ），ｉ（Ｘｉ，Ｙｉ）を、中心位置ｆ，ｇの座標ｆ（Ｘｆ，Ｙｆ），ｇ（Ｘｇ，Ｙｇ）および中心座標Ｓｃ（Ｘａ，Ｙａ）に基づいて計算で求める。
【００５７】
一方の頂点セル中心位置ｈ（Ｘｈ，Ｙｈ）は、図１１に示すごとく、位置決め用シンボル５４の中心Ｓｃを通る水平線Ｌｖに対して中心位置ｈからの垂線の交点Ｓｈと中心位置ｈと中心Ｓｃとを頂点とする三角形と、水平線Ｌｖに対して中心位置ｆからの垂線の交点Ｓｆと中心位置ｆと中心Ｓｃとを頂点とする三角形とが同一形状であるとの関係に基づいて、次の連立方程式を解くことにより得られる。
【００５８】
【数１】
0003726395.tif 000002
【００５９】
また他方の頂点セル中心位置ｉ（Ｘｉ，Ｙｉ）についても同様な関係から次の連立方程式を解くことにより得られる。
【００６０】
【数２】
0003726395.tif 000003
【００６１】
こうして求められた２つ頂点セルの中心位置ｈ，ｉの周辺画像をそれぞれ精査して、枠状正方形５５ａの頂点のエッジの形状等から、正確な頂点セルの中心座標を求めて、その座標を正式に中心位置ｈ，ｉの座標とする。
そして、隣接する頂点セルの中心位置ｈ，ｆ，ｉ，ｇの間を６等分することにより、黒の枠状正方形５５ａを構成するセルの中心位置と、１セルのサイズとを決定する。
【００６２】
こうして、位置決め用シンボル５４の形状と中心位置Ｓｃとが決定する。
次に位置決め用シンボル５４に基づいてサイズコード６０，６２の検出処理を行う（Ｓ１２３）。
まず、図１１に示すごとく、対角にある頂点セルの中心位置ｆ，ｇを結ぶ直線を、この直線の長さの１／３分、各頂点側へそれぞれ延長した端点Ｆ，Ｇを求める。同様に、対角にある頂点セルの中心位置ｈ，ｉを結ぶ直線を、この直線の長さの１／３分、各頂点側へそれぞれ延長した端点Ｈ，Ｉを求める。
【００６３】
この端点Ｆ，Ｇ，Ｈ，Ｉの内、隣接する端点Ｈ，Ｆの間を直線状に辿ってセル内容を読み込む。すなわち、位置決め用シンボル５４の辺５４ｄから１．５セル分離れた位置で、辺５４ｄに沿ってセルの内容を読み取る処理が行われる。同様に、隣接する端点Ｆ，Ｉの間を辺５４ａに沿って、隣接する端点Ｉ，Ｇの間を辺５４ｂに沿って、および隣接する端点Ｇ，Ｈの間を辺５４ｃに沿って、それぞれセルの内容を読み取る処理が行われる。
【００６４】
図２に示したごとく、位置決め用シンボル５４の隣接する２つの辺５４ａ，５４ｂに沿って、１セル離れてサイズコード６０，６２が配列している。すなわち、２つの辺５４ａ，５４ｂから１．５セル分離れた位置は、サイズコード６０，６２のセルの中心位置を通ることになる。
【００６５】
したがって、端点Ｆ，Ｇ，Ｈ，Ｉ間の４つの読取処理により、図６に示したサイズコードのいずれかが、２つの読取処理にてそれぞれ検出される。
次に、同一サイズコードが２つ検出されたか否かが判定され（Ｓ１２４）、もし、１つのみ検出されたり、３つ以上検出されたり、全く検出されなかったり、あるいはサイズコードが検出されても両者の内容が異なっていたりした場合には（Ｓ１２４で「ＮＯ」）、エラーとしてステップＳ１８０に移る。
【００６６】
同一サイズコードが２つのみ検出されれば（Ｓ１２４で「ＹＥＳ」）、次に２次元コード５２の形状の決定がなされる（Ｓ１２５）。
すなわち、ステップＳ１２３で読み取られたサイズコード６０，６２の位置および内容に基づいて、位置決め用シンボル５４に対していずれの辺側にデータセルが存在するか、更に、どれだけのサイズまで広がっているかを決定する。
【００６７】
つまり、位置決め用シンボル５４の辺５４ａ〜５４ｄの内、サイズコード６０，６２が検出された側の辺方向に、データセルが存在すると決定する。そして、得られたサイズコード６０，６２の種類から、比率を決定し、２次元コード５２が位置決め用シンボル５４のサイズの何倍かを決定する。ここでは、比率が１５／７のサイズコード６０，６２が得られたので、２次元コード５２は、図２に示したサイズ１５セル×１５セルであると決定する。
【００６８】
次に、各データセルの位置決定と、データセルの白黒の種類を決定する（Ｓ１４０）。すなわち、ステップＳ１２１にて決定されている位置決め用シンボル５４の１セルのサイズ、および位置決め用シンボル５４の位置から、辺５４ａ，５４ｂ側へ、それぞれ、位置決め用シンボル５４のサイズも含めて１５セル分の範囲にあるデータセルの各中心位置を計算して求めて、その中心位置から各データセルの黒か白かの種類を読み取ってデコードし、２次元コード５２が表している情報を得る。
【００６９】
次にこのコード内容が正常なものか否かが判定される（Ｓ１６０）。例えば、白と黒とのセル数が予め決められている特定の数になっているか否か、あるいは表されているデータを所定の計算方法で計算した結果が、２次元コード５２の所定位置に表示されているデータと一致するか否かを検査すること等により、正常にコードが読み取られているか否かが判定される。
【００７０】
正常なコードでなければ（Ｓ１６０で「ＮＯ」）、次の画像の検出をＣＣＤ４に指示して（Ｓ１８０）、処理を終了する。
正常なコードであれば（Ｓ１６０で「ＹＥＳ」）、そのコード内容をホストコンピュータ等の他の装置へ出力したり、そのコード内容を特定のメモリに記憶したり、そのコード内容に対応した処理を実行したり、あるいはそのコード内容に対応した指示を出力したりする処理が行われる（Ｓ１７０）。
【００７１】
そして、次の新たな２次元コードの読み取りのために、画像の検出をＣＣＤ４に指示して（Ｓ１８０）、処理を終了する。
なお、他のサイズコード７０，７２でサイズが表されている１１セル×１１セルの２次元コード７４（図７）、およびサイズコード８０，８２でサイズが表されている２１セル×２１セルの２次元コード８４（図８）についても、同一の処理で、無駄な読み取りをしたり読みこぼしをしたりすることなく、データ領域７８，８８の内容を正確に読み取ることができる。なお、各位置決め用シンボル７６，８６は、図２の２次元コード５２の位置決め用シンボル５４と同一である。
【００７２】
本実施の形態は、上述したごとく、位置決め用シンボル５４の２つの辺５４ａ，５４ｂ側に隣接する位置に、サイズコード６０，６２，７０，７２，８０，８２を配置し、位置決め用シンボル５４が検出されれば、位置決め用シンボル５４の形状と位置とに基づいて直ちに、サイズコード６０〜８２を検出して、そのサイズコード６０〜８２の位置と内容とによりデータセルの存在する方向とその範囲を決定している。
【００７３】
このため、位置決め用シンボル５４は１つでも、データセルが位置決め用シンボル５４に対してどのような位置にどのような範囲で存在するのかが直ちに判明し、２次元コード５２の情報を、無駄な読み取りをしたり読みこぼしをしたりすることなく正確に読み取ることができる。
【００７４】
したがって、小さなサイズの２次元コード５２が必要とされる用途でも、２次元コード５２に３つの位置決め用シンボル５４を用いなくても良いので、３つの位置決め用シンボル５４を存在させるために生じる２次元コード５２の小型化の限界を、十分に小さいものとでき、ＩＣ等の小さい２次元コード５２を必要とする用途にも広く使用できるようになる。
また、サイズコード６０〜８２は、例えば、２次元コード５２の情報を表しているデータセルと同じ様式のセルの分布パターンで表されるので、２次元コード読取装置２もソフト的に容易に、２次元コード５２のサイズ（ここではデータセルの方向と範囲）を決定することが可能となる。したがって、位置決め用シンボル５４，７６，８６のように、変化点検出回路１８、比検出回路２０およびアドレス記憶メモリ２２と言ったハードを特別に備えなくても、従来の２次元コード読取装置でも、プログラムを変更するのみで対処できる。
【００７５】
更に、サイズコード６０〜８２は、２次元コード５２のサイズを、最初に位置や形状が検出される位置決め用シンボル５４のサイズに対する比率で表しているので、位置決め用シンボル５４が最初にその位置や大きさが決定された後、この位置決め用シンボル５４の大きさを基準として、比率で２次元コード５２のサイズを検出すれば、迅速・容易に２次元コード５２のサイズを決定することができる。
【００７６】
この比率は、本実施の形態では、分数で表していたが、例えば、２倍、３倍、４倍、……等の整数あるいは、１．７倍、２．７倍、３．３倍、……等の小数で表すものであっても良い。
また、本実施の形態ではサイズコード６０〜８２の種類も３種類であったが、１種類または２種類でも良く、４種類以上でも良い。
【００７７】
また、本実施の形態ではサイズコード６０〜８２は、６セルが直線状に配列されたものであったが、マトリックス状に配列されたものでも良く、セル数も必要に応じて増減できる。
【００７８】
本実施の形態では、サイズコード６０〜８２は、位置決め用シンボル５４から１セル離れた隣接位置に配置されていたので、少ない誤差でサイズコード６０〜８２が検出でき、２次元コードの解読処理が、より正確かつ迅速となるが、２次元コード内での配置としては、予め決定しておけば、位置決め用シンボル５４から２セル以上離れた近傍位置あるいは位置決め用シンボル５４とは反対側の２次元コード５２の端部あるいはこの端部に近い位置でも良い。
【００７９】
また、位置決め用シンボル５４は、複数の異なる方向または複数の異なる位置において走査した場合に特定の周波数成分比が得られるパターンであるので、走査によりハード的にもソフト的にも迅速に位置決め用シンボルが検出できる。
また、２次元コード５２が正方形をなし、サイズコード６０〜８２の配置そのものが、データセルの存在方向を表しているので、特に、データセルの存在方向を示すマーク等が必要ない。
【００８０】
また、２次元コード５２が長方形であれば、２つのサイズコード６０〜８２を２次元コード５２の縦と横とのサイズを表すものとしても良い。
本実施の形態では、２次元コード５２と位置決め用シンボル５４とが正方形であり、２つのサイズコード６０〜８２が表す比率は同一となることから、２次元コード５２に対して、いずれか一方のサイズコード６０〜８２の配置を省略しても良い。ただし、この場合でも、配置が省略されたサイズコード６０〜８２が示すべきデータセルの存在方向を、存在するサイズコード６０〜８２に対していずれの方向であるかを、予め決定しておく必要がある。
【００８１】
本実施の形態において、ＣＣＤ４、２値化回路６、クロック信号出力回路１４、タイミングにアドレス発生回路１６、変化点検出回路１８および比検出回路２０が行う処理と制御回路２８が行うステップＳ１００，Ｓ１２１とが２次元コード位置決め処理に該当し、ステップＳ１２３，Ｓ１２５がサイズ取得処理に該当し、ステップＳ１４０がデコード処理に該当する。
【００８２】
［その他］
前記実施の形態では、位置決め用シンボル５４，７６，８６を二重の正方形で、中心を横切る周波数成分比が黒：白：黒：白：黒＝１：１：３：１：１の図形で表していたが、図１２（ａ）のように円形でもよく、図１２（ｂ）のように六角形でもよく、また他の正多角形でも良い。即ち、同心状に相似形の図形が重なり合う形に形成したものであればよい。さらに、中心を横切る周波数成分比があらゆる角度で同じならば、図１２（ｃ）に示すごとく、図形を何重にしても良い。更に、位置決め用シンボル５４，７６，８６は、上述のような周波数成分比で表されるものでなくても、ハード的あるいはソフト的に検出し易く、区別し易い形状であれば、他の形状でも良い。
【００８３】
位置決め用シンボルの配置数や間隔は、シンボルの検出し易さや歪みの反映の程度、必要なデータ量の確保の点から適宜決定する。
また、前記実施の形態では位置決め用シンボル５４，７６，８６は、２次元コード５２，７４，８４の４つの頂点の内、１つに配置されていたが、２次元コード５２，７４，８４内での配置は任意である。また必要なら１つの２次元コード５２，７４，８４に２つの位置決め用シンボルを設けても良い。例えば、図１３に示すごとく、２次元コード９２の隣接する頂点に、２つの位置決め用シンボル９３，９４を配置し、データ領域９６に、サイズコード９７，９８を設けても良い。サイズコード９７，９８は、位置決め用シンボル９３，９４に対して、それぞれ位置決め用シンボル９３，９４が存在しない隣接する２次元コード９２の頂点側に配置されているので、この方向における２次元コード９２のサイズを決定している。そして、そのサイズコード９７，９８の種類から図の縦方向のサイズは２１セルであることが判る。なお、図の横方向のサイズは、位置決め用シンボル９３，９４の配置により決定されているので、サイズコードの配置は不要である。
【図面の簡単な説明】
【図１】  実施の形態における２次元コード読取装置の概略構成を表すブロック図である。
【図２】  実施の形態における２次元コードの一例の概略構成説明図である。
【図３】  実施の形態における２次元コードの一例の詳細構成説明図である。
【図４】  実施の形態における位置決め用シンボルを走査した場合の明暗検出の説明図である。
【図５】  実施の形態におけるＣＣＤと２値化回路との出力信号の説明図である。
【図６】  実施の形態におけるサイズコードの種類の説明図である。
【図７】  実施の形態における２次元コードの小さい例の概略構成説明図である。
【図８】  実施の形態における２次元コードの大きい例の概略構成説明図である。
【図９】  実施の形態における２次元コード読取処理のフローチャートである。
【図１０】  実施の形態における処理手順説明図である。
【図１１】  実施の形態における処理手順説明図である。
【図１２】  位置決め用シンボルの他の形状の例を示す説明図である。
【図１３】  他の２次元コードの一例の概略構成説明図である。
【図１４】  従来のバーコードおよび２次元コードの説明図である。
【図１５】  従来の２次元コードの概略構成説明図である。
【図１６】  従来の２次元コードの詳細構成説明図である。
【符号の説明】
２…２次元コード読取装置      ４…ＣＣＤ      ６…２値化回路
８…画像メモリ    １４…クロック信号出力回路
１６…アドレス発生回路    １８…変化点検出回路    ２０…比検出回路
２２…アドレス記憶メモリ    ２８…制御回路
５２，７４，８４，９２…２次元コード
５４，７６，８６，９３，９４…位置決め用シンボル
５６，７８，８８，９６…データ領域
６０，６２，７０，７２，８０，８２，９７，９８…サイズコード
【図１】
0003726395.tif 000004
【図２】
0003726395.tif 000005
【図３】
0003726395.tif 000006
【図４】
0003726395.tif 000007
【図５】
0003726395.tif 000008
【図６】
0003726395.tif 000009
【図７】
0003726395.tif 000010
【図８】
0003726395.tif 000011
【図９】
0003726395.tif 000012
【図１０】
0003726395.tif 000013
【図１１】
0003726395.tif 000014
【図１２】
0003726395.tif 000015
【図１３】
0003726395.tif 000016
【図１４】
0003726395.tif 000017
【図１５】
0003726395.tif 000018
【図１６】
0003726395.tif 000019