(57)【特許請求の範囲】
【請求項１】
セルの分布パターンにより情報を表現する２次元コード内の所定位置に配置され、２次元コードの位置を特定する位置決め用シンボルと、
各データセル位置の指標となる基準パターンであるタイミングセルと、を備え、
前記位置決め用シンボルを構成するセルと同じセルサイズのセルを用いて表現された第１の情報と、その位置決め用シンボルを構成するセルより小さなセルサイズのセルを用いて表現された第２の情報とが、それぞれ２次元コード内の所定位置に配置されていること、
を特徴とする２次元コード。
【請求項２】
請求項１記載の２次元コードにおいて、
前記第２の情報は、さらに複数種類の情報が、それぞれ異なるセルサイズのセルを用いて表現されていること、
を特徴とする２次元コード。
【請求項３】
請求項１または２記載の２次元コードにおいて、
前記第２の情報に対応するセルサイズは、前記位置決め用シンボルに対応するセルサイズを基準とした比率で設定されていること、
を特徴とする２次元コード。
【請求項４】
請求項３記載の２次元コードにおいて、
前記第２の情報に対応するセルサイズは、前記位置決め用シンボルに対応するセルサイズの（１／２n ）で設定されていること、
を特徴とする２次元コード。
【請求項５】
請求項１〜４のいずれか記載の２次元コードにおいて、
前記位置決め用シンボルを２つ以上備えると共に、それら位置決め用シンボルの間に前記第１の情報が配置され、その第１の情報の配置領域以外の領域に前記第２の情報が配置されていること、
を特徴とする２次元コード。
【請求項６】
請求項１〜５のいずれか記載の２次元コードにおいて、
前記第１の情報は、前記位置決め用シンボルに対応するコード種類を用いたコードにて表現されており、前記第２の情報は、前記第１の情報と異なるコード種類を用いたコードにて表現されていること、
を特徴とする２次元コード。
【請求項７】
請求項６記載の２次元コードにおいて、
前記第２の情報は、異なるセルサイズのセルを用いた複数種類の情報で構成されており、
当該第２の情報を構成する各情報は、前記第１の情報と異なるコード種類を用いたコードと異なるコード種類を用いたコードにて表現されていると共に、当該各情報同士においてもさらに、それぞれ異なるコード種類を用いたコードにて表現されていること、
を特徴とする２次元コード。
【請求項８】
セルの分布パターンにより情報を表現する２次元コード内の所定位置に配置され、２次元コードの位置を特定する位置決め用シンボルと、
各データセル位置の指標となる基準パターンであるタイミングセルと、を備え、
その位置決め用シンボルに対応するコード種類を用いた２次元コードにて表現された第１の情報と、バーコードにて表現された第２の情報とが、それぞれ２次元コード内の所定位置に配置されていること、
を特徴とする２次元コード。
【請求項９】
請求項１〜８のいずれか記載の２次元コードにおいて、
さらに、前記位置決め用シンボルに対する所定位置に配置されて、２次元コードのフォーマットを表すフォーマットコードを備えたこと、
を特徴とする２次元コード。
【請求項１０】
請求項９記載の２次元コードにおいて、
前記フォーマットコードは、セルの分布パターンで表されていること、
を特徴とする２次元コード。
【請求項１１】
請求項９又は１０記載の２次元コードにおいて、
前記フォーマットコードは、前記第１及び第２の情報の各々についての存在領域、使用コード種類、セルサイズの内の少なくとも１つを特定可能であること、
を特徴とする２次元コード。
【請求項１２】
請求項１１記載の２次元コードにおいて、
前記フォーマットコードは、前記第１及び第２の情報の各々についての存在領域の相対位置、使用コード種類、セルサイズの違いによって決まる種別分類情報と、同じ種別に属するものであっても前記第１及び第２の情報の存在領域の大きさの違いによって決まるバージョン情報とを含むこと、
を特徴とする２次元コード。
【請求項１３】
請求項９〜１２のいずれか記載の２次元コードにおいて、
前記フォーマットコードは、前記位置決め用シンボルに隣接してまたは近傍に、配置されていること、
を特徴とする２次元コード。
【請求項１４】
請求項１〜１３のいずれか記載の２次元コードにおいて、
２次元コード内にて前記位置決め用シンボルとは異なる位置に配置され、前記位置決め用シンボルの位置と自身のパターンとに基づいて位置検出される補助シンボルを備えたこと、
を特徴とする２次元コード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２次元コードに関する。
【０００２】
【従来の技術】
従来、提案されている２次元コードの例としては特開平７−２５４０３７号公報記載のものがある。
２次元コードは、図１２（ｂ）に一例を示すごとく情報が２次元的な広がりを持ち、図１２（ａ）に示すバーコードに比べて格段に大量の情報を記録できるが、構造は複雑なものとなっている。
【０００３】
すなわち、図１３に示すごとく、２次元コード５００の存在位置の確定を容易にするために、例えば、特定寸法比率の正方形を組み合わせた位置決め用シンボル５１０ａ，５１０ｂ，５１０ｃを３個持っている。また、３個の位置決め用シンボル５１０ａ，５１０ｂ，５１０ｃ相互の間には白と黒とが交互に組み合わせられた各データセル位置の指標となる基準パターンであるタイミングセル５２０ａ，５２０ｂがある。
【０００４】
２次元コード５００の内部は、ｎ×ｎの正方形の升目（以下、これをセルという）に区切られており、位置決め用シンボル５１０ａ，５１０ｂ，５１０ｃは、例えば、一辺の長さが７セルに相当する黒い正方形５１２、一辺の長さが５セルに相当する白い正方形５１４、一辺の長さが３セルに相当する黒い正方形５１６を同心状に重ね合わせた時にできる図形である。
【０００５】
この位置決め用シンボル５１０ａ，５１０ｂ，５１０ｃの中心付近を直線的に横切ると、黒、白、黒、白、黒のパターンが１：１：３：１：１の比率で検出されるので、この性質を利用して、前記比率で黒と白が交互に検出された場合、そのパターンを位置決め用シンボル５１０ａ，５１０ｂ，５１０ｃの有力な候補と判断し、２次元コード５００の存在位置を確定するために優先的に検査する。
【０００６】
そして、２次元コード５００の形状は、３個の位置決め用シンボル５１０ａ，５１０ｂ，５１０ｃで一義的に決まる平行四辺形の範囲であると推定できる。なお、データは、位置決め用シンボルや基準パターンなどを除外した領域５３０のセル（すなわち、データセル）で表され、各データセルを白あるいは黒に色分けすることにより、各データセルを１ビットのデータに対応させている。ただし、図１３ではデータセルの白黒のパターンは判り易くするために省略されている。
【０００７】
各データセルの位置は、３個の位置決め用シンボル５１０ａ，５１０ｂ，５１０ｃの中心と２つのタイミングセル５２０ａ，５２０ｂを、それぞれ縦方向と横方向の座標の指標として、簡単な計算により求めることができる。
このように位置が決定した、各データセルの中心付近が黒であるか白であるかを判定して、黒を例えば１，白を例えば０に対応させることにより、２値データとして認識でき、解読することができる。
【０００８】
なお、図１５ではデータセル３３０の白黒のパターンは省略しているが、そのデータセル３３０におけるセルサイズは位置決め用シンボル３１０ａ，３１０ｂ，３１０ｃのセルサイズと同じである。
【０００９】
【発明が解決しようとする課題】
このような２次元コードにおける１セルのサイズは、その用途に応じて適宜変更することが要求される。例えば２次元コードを印刷したラベルが物品に付されている場合、その物品が高速移動している状態でラベルから２次元コードの読取を行う必要があれば、セルサイズをある程度大きくしなくてはならないが、その物品が停止あるいは低速移動している状態でラベルから２次元コードの読取を行うのであれば、セルサイズを相対的に小さくしても構わないからである。
【００１０】
例えば、物品の仕分け段階などには、大量の物品を処理する関係から、高速移動させながら２次元コードを読み取ることが好ましい。一方、仕分けされた物品について作業者が手作業で何らかの処理をする場合には、例えば手持ちの読取装置で２次元コードを読み取ることとなるが、この場合には、読取可能なより小さなセルサイズで２次元コードを構成した方が、２次元コード自体を小さくできるため、好ましい。
【００１１】
しかしながら、これを実現するためには、例えば高速移動時読取用には相対的に大きなセルサイズの２次元コードを印刷したラベル、手持ちの読取装置用には相対的に小さなセルサイズの２次元コードを印刷したラベル、というように２種類のラベルを用意し、それぞれ物品に付さなくてはならない。そのため、ラベル作成やラベル添付の作業増大につながってしまう。
【００１２】
もちろん、１つのラベル内に、高速移動時に読み取る対象のデータと手持ちの読取装置にて読み取る対象のデータとを含めた２次元コードを構成することもできる。但し、この場合のセルサイズは、高速移動時読取用のセルサイズにしなくてはならないため、手持ちの読取装置にて読み取る対象のデータについては、本来はそのような大きなセルサイズにしなくてもよいにもかかわらず、必要以上に大きなセルサイズにて構成してしまうこととなる。つまり、２次元コード自体が大きくなってしまう。読取処理では、予め決められた一定の範囲のみの読み取りであるため、２次元コードが大きくなると、その大きな２次元コードに対処するため読取装置のハードやソフトの構成もそれに対応したものにする必要がある。
【００１３】
そこで、本発明は、用途に合わせて適切なセルサイズにてコードを形成できる上、それら複数の用途に応じたコードを混在させることのできる２次元コードを提供することを目的とする。
【００１４】
【課題を解決するための手段及び発明の効果】
請求項１記載の２次元コードは、セルの分布パターンにより情報を表現する２次元コード内の所定位置に配置され、２次元コードの位置を特定する位置決め用シンボルと、各データセル位置の指標となる基準パターンであるタイミングセルと、を備え、その位置決め用シンボルを構成するセルと同じセルサイズのセルを用いて表現された第１の情報と、その位置決め用シンボルを構成するセルより小さなセルサイズのセルを用いて表現された第２の情報とが、それぞれ２次元コード内の所定位置に配置されていることを特徴とする。
【００１５】
この場合の第２の情報については、例えば請求項２に示すように、さらに複数種類の情報がそれぞれ異なるセルサイズのセルを用いて表現されていてもよい。つまり、第１の情報のセルサイズよりも小さなセルサイズを用いて表現された情報Ａと、その情報Ａのセルサイズよりも小さなセルサイズを用いて表現された情報Ｂとで第２の情報を構成してもよい。このようにすれば、例えば第１の情報のセルサイズは高速移動時の読取用に対応したサイズとし、第２の情報の内の情報Ａのセルサイズは中速移動時の読取用に対応したサイズとし、情報Ｂのセルサイズは低速あるいは停止時の読取用に対応したサイズとすることも可能である。もちろん、情報Ｂのセルサイズよりもさらに小さなセルサイズを用いて表現された情報Ｃ、情報Ｃのセルサイズよりもさらに小さなセルサイズを用いて表現された情報Ｄ……というように、３種類以上の情報で第２の情報を構成してもよい。
【００１６】
また、請求項３に示すように、第２の情報に対応するセルサイズは、位置決め用シンボルに対応するセルサイズを基準とした比率で設定されていてもよい。例えば、１／２，１／３，１／４……というように１／ｎ（ｎは自然数）で設定することが考えられる。もちろん、ｎ／ｍ（ｍ，ｎは自然数、但しｍ＞ｎ）というような比率でもよい。但し、請求項４に示すように、比率を、ｎを自然数として（１／２n ）で設定すれば、読み取ったデータをコンピュータシステムにて処理する場合に好ましい。なお、分数倍でなく小数倍であっても構わない。位置決め用シンボルは最初にその位置や形状が決定されるので、以後、この位置決め用シンボルの形状を基準として、比率で第１の情報及び第２の情報のセルサイズを迅速・容易に特定できる。
【００１７】
このように、本発明の２次元コードによれば、用途に合わせて適切なセルサイズにてコードを形成できる上、それら複数の用途に応じたコードを混在させることができる。したがって、この２次元コードを用いれば、従来のように高速移動時読取用には相対的に大きなセルサイズの２次元コードを印刷したラベル、手持ちの読取装置用には相対的に小さなセルサイズの２次元コードを印刷したラベル、というように２種類のラベルを用意してそれぞれ物品に付す必要がなく、１つのラベルで済む。そして、高速移動時に読み取る対象のデータと手持ちの読取装置にて読み取る対象のデータとを同一コード内に混在させても、従来のように必要以上に２次元コードが大きくなってしまうことを防止できる。なぜなら、高速移動時読取用のデータを示す場合のセルサイズについては、その高速移動時に読み取りができる最小限の大きさにすればよく、一方、手持ちの読取装置にて読み取るデータを示す場合のセルサイズについては、停止した状態で読み取ることができる最小限の大きさにすることができるからである。つまり、セルサイズの大きな方に合わせる必要がなく、用途に合わせて極力小さなセルサイズにてコードを形成できるので、２次元コード自体を極力小さくできる。
【００１８】
ところで、前記第１の情報及び第２の情報を配置する２次元コード内の位置については、特に限定されることはないが、例えば請求項５に示すように、位置決め用シンボルを２つ以上備える場合であれば、それら位置決め用シンボルの間に第１の情報を配置し、その第１の情報の配置領域以外の領域に第２の情報を配置することが考えられる。なお、位置決め用シンボルが３つ以上あった場合には、位置決め用シンボル間が複数存在することとなる。その場合は、いずれか１つの場所にだけ第１の情報を配置してもよいし、２つ以上あるいは全てに配置してもよい。また、第１の情報と第２の情報を配置する場所を逆にして、位置決め用シンボルの間に第２の情報を配置するようにしてもよい。
【００１９】
また、第１の情報と第２の情報については、用いるセルサイズを変えるだけでなく、請求項６に示すように、第１の情報は、位置決め用シンボルに対応するコード種類を用いたコードにて表現し、第２の情報は、第１の情報と異なるコード種類を用いたコードにて表現するようにしてもよい。さらに、請求項７に示すように、この第２の情報を、異なるセルサイズのセルを用いた複数種類の情報で構成し、第２の情報を構成する各情報を、第１の情報と異なるコード種類を用いたコードと異なるコード種類を用いたコードにて表現されていると共に、各情報同士においてもさらに、それぞれ異なるコード種類を用いたコードにて表現するようにしてもよい。
【００２０】
ところで、これまでの説明においては、表現するために用いるセルサイズが異なることを前提としていたが、第１の情報及び第２の情報の両者ともセルの分布パターンにより情報を表現する２次元コードであった。これに対して、請求項８に示すように、セルの分布パターンにより情報を表現する２次元コード内の所定位置に配置され、２次元コードの位置を特定する位置決め用シンボルと、各データセル位置の指標となる基準パターンであるタイミングセルと、を備え、その位置決め用シンボルに対応するコード種類を用いた２次元コードにて表現された第１の情報と、バーコードにて表現された第２の情報とが、それぞれ２次元コード内の所定位置に配置された２次元コードとして構成することもできる。
【００２１】
一方、請求項１０に示すように、以上説明した各２次元コードにおいて、さらに、前記位置決め用シンボルに対する所定位置に配置されて、２次元コードのフォーマットを表すフォーマットコードを備えるようにしてもよい。このフォーマットコードは、例えば、２次元コードの情報を表しているデータセルと同じ様式のセルの分布パターンで表すことができる。このようにデータセルと同じ様式のセルで表されていれば、読取装置もソフト的に容易に２次元コードのフォーマットを読み取ることが可能となる。このフォーマットとしては、例えば第１及び第２の情報の各々についての存在領域、使用コード種類、セルサイズの内の少なくとも１つを特定できるものとすることが考えられる。
【００２２】
このような２次元コードのフォーマットについては、同一のフォーマットの２次元コードしか用いない場合には、必ずしも必要ではない。つまり、その特定のフォーマットの２次元コードを読み取るための専用のプログラムを準備すればよいからである。しかし、複数のフォーマットで表現される２次元コードを読取対象とする場合には、２次元コードのフォーマット自体を読取時点において２次元コードから直接取得できることが好ましい。したがって、２次元コード中にフォーマットコードを含めておき、読取装置では、そのフォーマットコードを読み取って、解読対象の２次元コード中における第１の情報及び第２の情報の存在領域や、それぞれにおいて使用されているコード種類、あるいは使用されているセルサイズを把握し、それに基づいて解読すればよい。
【００２３】
なお、この場合には、フォーマットコードが、第１及び第２の情報の各々についての存在領域、使用コード種類、セルサイズを直接示していてもよいし、あるいは間接的に示すものであってもよい。つまり、存在領域、使用コード種類、セルサイズなどの違いによって例えばデータ種別分類をし、その分類を示す情報のみをフォーマットコードとし、分類情報と存在領域、使用コード種類、セルサイズなどとの対応関係自体は読取装置側が保持するのである。このように分類情報のみを表す場合には、フォーマットコード自体が比較的小さい面積を占めるもので良く、２次元コード全体の小型化には有利である。
【００２４】
また、このようなフォーマットを考える上では、次の点を工夫してもよい。つまり、第１及び第２の情報の存在領域のみが異なり、他のフォーマット内容は全て同じであるような２次元コードが考えられる。この場合のフォーマットコードとしては、例えば請求項１２に示すように、第１及び第２の情報の各々についての存在領域の相対位置、使用コード種類、セルサイズの違いによって決まる種別分類情報と、同じ種別に属するものであっても第１及び第２の情報の存在領域の大きさの違いによって決まるバージョン情報とを含むようにすればよい。なお、存在領域の相対位置とは、例えば第１の情報は位置決め用シンボルの間の領域にあり、第２の情報はそれ以外の領域にあるといったことである。このような相対位置は同じであっても、２次元コード全体のサイズが異なると、位置決め用シンボルの間の距離も異なり、領域の大きさ自体が異なる。したがって、それらの区別はバージョン情報にて付けるのである。
【００２５】
なお、２次元コード内でのフォーマットコードの配置としては、例えば、請求項１３に示すように、位置決め用シンボルに隣接してまたは近傍に配置することが考えられる。このように、位置決め用シンボルの隣接あるいは近傍にあることにより、離れた位置に存在するよりも、フォーマットの位置決めの誤差が小さい。したがって、位置決め用シンボルの位置に基づいて正確にフォーマットコードが検出されるので、２次元コードの解読処理が一層正確かつ迅速となる。
【００２６】
また、請求項１４に示すように、位置決め用シンボル以外に、２次元コード内にて位置決め用シンボルとは異なる位置に配置され、位置決め用シンボルの位置と自身のパターンとに基づいて位置検出される補助シンボルを備えるようにしてもよい。
【００２７】
このように位置決め用シンボル以外に、２次元コード内に補助シンボルが分布されているために、データセルの位置を検出するための基準となるシンボルが、増加して、２次元コードの画像が歪んでいても、データセルの位置決めが、位置決め用シンボルのみ用いた場合よりも正確に行われる。したがって、そのデータセルが表している情報も正確に読み取ることができる。
【００２８】
また、追加されている補助シンボルは、位置決め用シンボルのごとく、最初に２次元コードを位置決めするための基準としては用いられないので、２次元コードの位置決め自体も処理量が徒に増加することなく迅速に行うことができる。
【００２９】
【発明の実施の形態】
以下、本発明が適用された実施例について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施例に何ら限定されることなく、本発明の技術的範囲に属する限り、種々の形態を採り得ることは言うまでもない。
【００３０】
図１に一実施例の２次元コードの概略図を示す。この２次元コード５２は、白色の台紙５３の上に印刷されており、３個の位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃ、データ領域５６、１個の補助シンボル６０、タイミングセル２０ａ，２０ｂ及びフォーマットコード７０などから構成されている。
【００３１】
本実施例では、データ領域５６が第１データ領域Ａａ及び第２データ領域Ａｂに分割されており、両データ領域Ａａ，Ａｂで用いられているデータセルのセルサイズとが異なっている。具体的には、第１データ領域Ａａで用いられているデータセルのセルサイズは、第２データ領域Ａｂに用いられているデータセルのセルサイズの縦横それぞれ２倍したいわゆる「４倍角セル」とされている。なお、図１では、第１データ領域Ａａ及び第２データ領域Ａｂそれぞれにおいて、２セル×４セルの計８個で構成されるセルグループ単位で区切って示している。これは、１セルを１ビットと考えた場合に、１セルグループで１バイトを示すことができるため、このような単位で設定することにより読み取った後のデータ処理に都合がよいからである。
【００３２】
したがって、実際には、第１データ領域Ａａの１セルグループを示した図１（ｂ）中の１つの正方形の升目が、第１データ領域Ａａで用いられているデータセルのセルサイズを示している。同様に、第２データ領域Ａｂの１セルグループを示した図１（ｃ）中の１つの正方形の升目が、第２データ領域Ａｂで用いられているデータセルのセルサイズを示している。そして、第１データ領域Ａａのデータセルで表現されるものが「第１の情報」であり、第２データ領域Ａｂのデータセルで表現されるものが「第２の情報」である。
【００３３】
また、２次元コード５２全体のサイズは、第１データ領域Ａａで用いられているデータセルを基準として、２９セル×２９セルの正方形状とされている。もちろん、第２データ領域Ａｂで用いられているデータセルを基準とすれば５８セル×５８セルと表されるが、本実施例では、特に必要がない限り、第１データ領域Ａａで用いられているデータセルを基準として説明することとする。
【００３４】
データ領域５６中の各セルは、光学的に異なった２種類のセルから選ばれており、図および説明上では白（明）・黒（暗）で区別して表す。なお、図１では便宜上、データ領域５６のデータセルの白黒のパターンは省略している。もちろん、第１データ領域Ａａ及び第２データ領域Ａｂそれぞれにおいて、各データ領域Ａａ，Ａｂで用いられているデータセルの単位（図１（ｂ），（ｃ）参照）で明暗が区別して表されている。
【００３５】
３つの位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃは、２次元コード５２の４つの頂点の内、３つに配置されており、第１データ領域Ａａで用いられているのと同じセルサイズのデータセルにて構成されている。なお、技術思想的には、位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃを構成するセルと同じセルサイズのデータセルを第１データ領域Ａａで用いたと考える方が適切である。したがって、第２データ領域Ａｂでは、位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃを構成するセルの４分の１のセルサイズのデータセルを用いたこととなる。
【００３６】
この位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃのセルの明暗配置は、図２（Ａ）に示すごとく、１セル幅の黒部からなる枠状正方形５５ａ内の中心部分に、１セル幅の白部からなる縮小した枠状正方形５５ｂが形成され、その内側の中心部分に黒部からなる３セル×３セルの大きさの正方形５５ｃが形成されているパターンである。
【００３７】
なお、図１からも判るように、第１データ領域Ａａは位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃ間に配置され、一方、第２データ領域Ａｂは、それ以外の部分（図１（ａ）では右下部分）に配置されることとなる。
また、補助シンボル６０は、図１に示すごとく、第２データ領域Ａｂの内部に配置されているが、やはり第１データ領域Ａａで用いられているのと同じセルサイズのデータセルにて構成されている。この補助シンボル６０のセルの明暗配置は、図２（Ｃ）に示すごとく、１セル幅の黒部からなる枠状正方形６１ａ内の中心部分に、１セル幅の白部からなる縮小した枠状正方形６１ｂが形成され、その内側の中心部分に１セルの黒部からなる正方形６１ｃが形成されているパターンである。
【００３８】
一方、タイミングセル２０ａ，２０ｂは、位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃ間に配置されており、第１データ領域Ａａで用いられているのと同じセルサイズのデータセルにて構成されている。このタイミングセル２０ａ，２０ｂは、白と黒とが交互に組み合わせられた各データセル位置の指標となる基準パターンとして用いられる。
【００３９】
また、フォーマットコード７０は、位置決め用シンボル５４Ａの近傍に配置されており、第１データ領域Ａａで用いられているのと同じセルサイズのデータセルにて構成されている。このフォーマットコード７０は、第１及び第２の情報の各々についての存在領域、使用しているコード種類、セルサイズの内の少なくとも１つを特定可能な内容となっている。なお、この場合のフォーマットコード７０は、第１及び第２の情報の各々についての存在領域、使用コード種類、セルサイズを直接示していてもよいし、あるいは間接的に示すものであってもよい。つまり、存在領域、使用コード種類、セルサイズなどの違いによって例えばデータ種別分類をし、その分類を示す情報（例えば数字など）のみをフォーマットコードとして有するものであってもよい。この場合には、後述する読取装置側が、分類情報と、存在領域、使用コード種類、セルサイズなどとの対応関係を例えばテーブル化してメモリに格納していれば対処できる。
【００４０】
ここで、上述した２次元コード５２を読み取るための２次元コード読取装置２について説明する。図３に示すように、２次元コード読取装置２は、ＣＣＤ４、２値化回路６、画像メモリ８、クロック信号出力回路１４、アドレス発生回路１６、変化点検出回路１８、比検出回路２０、アドレス記憶メモリ２２および制御回路２８から構成されている。
【００４１】
制御回路２８は、ＣＰＵ、ＲＯＭ、ＲＡＭ、Ｉ／Ｏ等を備えたコンピュータシステムとして構成され、ＲＯＭに記憶されているプログラムに従って、後述する２次元コード読み取り処理等を実行し、２次元コード読取装置２の各構成を制御している。そして、この制御回路２８は、以下に述べるごとくの読み取り制御を行う。
【００４２】
まず制御回路２８の指示により、ＣＣＤ４にて２次元コード５２が通過する場所の２次元画像を検出する。ＣＣＤ４は、２次元画像を検出すると、多段階のレベルからなる信号にて２次元画像データを出力する。この２次元画像データを、２値化回路６が制御回路２８から指示された閾値にて２値化して１（ハイ）／０（ロー）の２つのレベルからなる信号に変換する。
【００４３】
一方、ＣＣＤ４から出力される同期パルスに応じて、クロック信号出力回路１４がＣＣＤ４から出力される２次元画像データのパルスより十分に細かいクロックパルスを出力する。アドレス発生回路１６はこのクロックパルスをカウントして、画像メモリ８に対するアドレスを発生させる。２値化された２次元画像データは、このアドレス毎に８ビット単位で書き込まれる。
【００４４】
一方、２値化回路６からの信号における「１」から「０」への変化あるいは「０」から「１」への変化時に、変化点検出回路１８は、比検出回路２０にパルス信号を出力する。比検出回路２０は、変化点検出回路１８からのパルス信号入力から次のパルス信号入力までに、クロック信号出力回路１４から出力されたクロックパルスをカウントすることにより、２次元画像中の明（１）の連続する長さおよび暗（０）の連続する長さを求める。この長さの比から、２次元コード５２の位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃに該当するパターンを検出する。
【００４５】
図２（Ａ）に示したごとく、位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃのほぼ中心を代表的な角度で横切るＣＣＤ４の走査線（ａ），（ｂ），（ｃ）での明暗パターンは、図２（Ｂ）に示すごとく、すべて同じ明暗成分比を持つ構造になっている。すなわち、位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃの中心を横切るそれぞれの走査線（ａ），（ｂ），（ｃ）の明暗成分比は暗：明：暗：明：暗＝１：１：３：１：１となっている。勿論、走査線（ａ），（ｂ），（ｃ）の中間の角度の走査線においても比率は１：１：３：１：１である。また、図２（Ａ）の図形が、ＣＣＤ４側から見て斜めの面に配置されていたとしても、前記走査線（ａ），（ｂ），（ｃ）の明暗成分比は暗：明：暗：明：暗＝１：１：３：１：１を維持する。なお、図２（Ｂ）は、２値化回路６からの２値化された信号に該当する。
【００４６】
このことにより、比検出回路２０は、この「１：１：３：１：１」なる明暗成分比を検出し、検出した場合は、そのタイミングにアドレス発生回路１６にて発生されている画像メモリ８のアドレスをアドレス記憶メモリ２２に記憶する。
したがって、ＣＣＤ４が１フレーム分の２次元画像データを検出すると、画像メモリ８には、２値化された２次元画像データが記憶され、アドレス記憶メモリ２２には、検出された分の位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃのアドレスが記憶されている。
【００４７】
なお、最初の２次元画像の１フレーム分の画像が得られると、制御回路２８は、画像メモリ８およびアドレス記憶メモリ２２のデータに基づいて後述する２次元コード読み取り処理を行い、この処理が終了すれば、制御回路２８は、続けて、ＣＣＤ４に次の１フレームの２次元画像の検出を指示する。したがって、ＣＣＤ４からは、再度、２次元画像が２値化回路６に出力され、上述したごとくの処理が繰り返される。
【００４８】
次に、１フレーム分の２次元コード５２の画像とその位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃのアドレスが、画像メモリ８とアドレス記憶メモリ２２とにそれぞれ記憶された後に、制御回路２８は、２次元コード読み取り処理を実行する。この２次元コード読み取り処理を図４，５のフローチャートに示す。
【００４９】
処理が開始されると、まず、位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃの検出処理が行われる（Ｓ１００）。
この処理では、画像メモリ８およびアドレス記憶メモリ２２に対してアクセスし、その記憶内容から位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃが適切な位置に、３つ存在しているか否かの判断と位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃの画像上での正確な形状と中心位置とを決定する。
【００５０】
この処理は、まずアドレス記憶メモリ２２に多数検出された位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃのアドレスが、位置的に３つのグループに分けられるかを、そのアドレス値と画像メモリ８の画像とを参照しつつ判断する。更に、各位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃの形状と中心位置とを、画像メモリ８の画像の１（白）／０（黒）のパターンから決定し、その３つが図１に示したごとく３つの頂点に存在する配置状態になっているかを判断する。
【００５１】
次に、ステップＳ１００にて適切な３つの位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃが検出されたか否かが判定され（Ｓ１２０）、検出されていなければ（Ｓ１１０で「ＮＯ」）、次の画像の検出をＣＣＤ４に指示して（図５のＳ２８０）、処理を終了する。
【００５２】
適切な３つの位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃが検出されると（Ｓ１１０で「ＹＥＳ」）、次に新しい２次元コード５２か否かが判定される（Ｓ１２０）。この処理は、前回以前に検出された２次元コード５２がいまだＣＣＤ４により検出され続けている場合に、別の２次元コードとして解読するのを防止するためである。例えば、前回または所定回数前の本処理にて、適切な３つの位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃが検出され、更にそのコード内容も既に適切に読み取られていた場合には、同一の２次元コード５２を検出しているものとして（Ｓ１２０で「ＮＯ」）、次の画像の検出をＣＣＤ４に指示して（Ｓ２８０）、処理を終了する。
【００５３】
新しい２次元コード５２であると判定すると（Ｓ１２０で「ＹＥＳ」）、次に位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃの形状に応じて、各位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃを構成する各セルの形状と中心位置が計算される（Ｓ１３０）。
【００５４】
すなわち、まず、位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃについては、図８に示すごとく、黒の枠状正方形５５ａの幅が１セル分、白の枠状正方形５５ｂの幅が１セル分、および黒の正方形５５ｃの幅が３セル分の形状であることから、画像メモリ８内の各位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃ全体の高さと幅とから、その高さと幅とをそれぞれ７で割ることにより、各位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃの位置におけるセルの高さと幅の値、すなわちセルの形状を各３つ得る。
【００５５】
次に、このようにして求められた各位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃにおけるセルの高さと幅に基づいて、各位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃにおける各セル位置を決定する。
次に、位置決め用シンボル５４Ａに基づいてフォーマットコード７０の検出処理を行う（Ｓ１４０）。このフォーマットコード７０は、位置決め用シンボル５４Ａの最外周の枠状正方形５５ａ（図２（Ａ）参照）を構成する４辺の内、位置決め用シンボル５４Ｂに対向する辺に対して、１セル分だけ離れて平行に配置されている。したがって、この関係に基づけばフォーマットコード７０の位置が判り、コード検出することができる。
【００５６】
次に、第１の情報をデコードするかどうかを判断し（Ｓ１５０）、デコードするのであれば（Ｓ１５０で「ＹＥＳ」）、第１の情報のコードをデコードする（Ｓ１６０）。この第１の情報は上述したようにデコード領域５６の内の第１データ領域Ａａに配置されているので、この第１データ領域Ａａ内の全てのデータセルの中心位置を特定し、そのデータセルの中心位置の画素から２値を読み取り、各セルの種類を決定しコード内容を得る。こうして第１の情報が得られるのであるが、このデコードの際には、必要に応じてフォーマットコード７０から得たフォーマット情報に基づいた処理を実行する。例えば、第１データ領域Ａａにおいて２セル×４セルで区切って示されたセルグループの配置パターンは必ずしも整列している訳ではなく、例えば、位置決め用シンボル５４Ａ，５４Ｂ間のセルグループは縦長のものと横長のものが混在しており、位置決め用シンボル５４Ａ，５４Ｃ間のセルグループは縦長のものだけである。したがって、このようなセルグループの配置パターンなどを特定するためのフォーマット情報をフォーマットコード７０から得て、それに基づいてデコードすればよい。
【００５７】
次に、このコード内容が正常なものか否かが判定される（図５のＳ１７０）。例えば、白と黒とのセル数が予め決められている特定の数になっているか否か、あるいは表されているデータを所定の計算方法で計算した結果が２次元コード５２内の所定範囲に表示されているチェック用データと一致しているか否か等により、正常にコードが読み取られているか否かが判定される。
【００５８】
正常なコードであれば（Ｓ１７０で「ＹＥＳ」）、その第１の情報を出力するかどうかを判断し（Ｓ１８０）、出力するのであれば（Ｓ１８０で「ＹＥＳ」）、そのコード内容をホストコンピュータ等の他の装置へ出力したり、そのコード内容を特定のメモリに記憶したり、そのコード内容に対応した処理を実行したり、あるいはそのコード内容に対応した指示を出力したりする処理（以下、コード内容出力等処理」と称す）が行われる（Ｓ２６０）。その後、次の画像の検出をＣＣＤ４に指示して（Ｓ２８０）、処理を終了する。
【００５９】
一方、第１の情報をデコードした結果、正常なコードでなければ（Ｓ１７０で「ＮＯ」）、Ｓ１９０へ移行する。なお、上述のＳ１５０にて否定判断、つまり第１の情報をデコードしないと判断された場合もこのＳ１９０へ移行する。Ｓ１９０では、第２の情報をデコードするかどうか判断し、第２の情報をデコードしない場合には（Ｓ１９０で「ＮＯ」）、次の画像の検出をＣＣＤ４に指示して（Ｓ２８０）、処理を終了する。
【００６０】
これに対して、第２の情報をデコードする場合には（Ｓ１９０で「ＹＥＳ」）、Ｓ２００へ移行して、第２の情報のコードをデコードする。なお、Ｓ１８０にて否定判断、つまり第１の情報を出力しないと判断された場合もこのＳ２００へ移行し、第２の情報のコードをデコードする。
【００６１】
この第２の情報は上述したようにデコード領域５６の内の第２データ領域Ａｂに配置されているので、この第２データ領域Ａｂ内の全てのデータセルの中心位置を特定し、そのデータセルの中心位置の画素から２値を読み取り、各セルの種類を決定しコード内容を得る。こうして第２の情報が得られる。
【００６２】
なお、この第２の情報のコードをデコードする際には、補助シンボル６０も用いている。まず、位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃに対して所定の位置に配置されている補助シンボル６０の中心位置を、前述のごとく得られている位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃを構成しているセルの形状と中心位置とに基づいて計算で求める。こうして想定された補助シンボル６０の中心位置周辺の画像を精査して、図２（Ｃ）に示した形状のパターンを見つけ、そのパターンから、補助シンボル６０の正確な形状と正確な中心位置とを検出する。
【００６３】
なお、図２（Ｄ）に示すごとく、補助シンボル６０の中心を横切るそれぞれの直線（ａ），（ｂ），（ｃ）の明暗成分比は暗：明：暗：明：暗＝１：１：１：１：１となる性質は本質的に図２（Ａ），（Ｂ）に示した位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃと同じである。
【００６４】
上述のごとく得られた位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃおよび補助シンボル６０のデータに基づいて、他のセル、すなわち、第２データ領域Ａｂ内のデータセルの中心位置を決定し、そのデータセルの中心位置の画素から２値を読み取り、各セルの種類を決定しコード内容を得る。こうして、第２の情報が得られる。
【００６５】
次に、このコード内容が正常なものか否かが判定される（Ｓ２１０）。これは上述したＳ１７０での判定と同様である。
正常なコードであれば（Ｓ２１０で「ＹＥＳ」）、デコードされた第１の情報のデータがあるかどうかを判断し（Ｓ２２０）、第１の情報のデータがあれば（Ｓ２２０で「ＹＥＳ」）、さらに第２の情報のみデコード出力するかかどうかを判断する（Ｓ２３０）。そして、第２の情報のみデコード出力するのでない場合には（Ｓ２３０で「ＮＯ」）、デコードされた第１及び第２の情報についてコード内容出力等処理が行われる（Ｓ２４０）。一方、Ｓ２２０で否定判断、つまり第１の情報のデコードがない場合、あるいはＳ２３０で否定判断、つまり第２の情報のみデータ出力する場合には、Ｓ２７０へ移行して、デコードされた第２の情報のみについてコード内容出力等処理が行われる。
【００６６】
また、Ｓ２１０にて否定判断、つまりデコードした第２の情報のコード内容が正常でなければ、第１の情報のデータがあるかどうかを判断する（Ｓ２５０）。第１の情報のデータがあれば（Ｓ２５０で「ＹＥＳ」）、デコードされた第１の情報のみについてコード内容出力等処理が行われ（Ｓ２６０）、一方、第１の情報のデータがなければ（Ｓ２５０で「ＮＯ」）、コード内容出力等処理は行わずにＳ２８０へ移行する。
【００６７】
このように、本実施例の２次元コード５２においては、第１データ領域Ａａのデータセルのセルサイズは、位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃを構成するセルと同じセルサイズのセルを用いて表現され、第２データ領域Ａｂのデータセルのセルサイズは、位置決め用シンボル５４Ａ，５４Ｃを構成するセルより小さなセルサイズ（ここでは４分の１）のセルを用いて表現されている。したがって、用途に合わせて適切なセルサイズにてコードを形成し、それら複数の用途に応じたコードを混在させることができる。例えばこの２次元コード５２を印刷したラベルが添付された物品を高速移動させながら仕分けするような場合には、相対的に大きなセルサイズで構成した第１の情報を読み取ればよい。大きなセルサイズなので高速移動させても読取が可能である。一方、手持ちの読取装置によって読み取る場合であれば、相対的に小さなセルサイズで構成した第２の情報であっても十分読み取れる。
【００６８】
このようにすれば、従来のように、高速移動時読取用には相対的に大きなセルサイズの２次元コードを印刷したラベル、手持ちの読取装置用には相対的に小さなセルサイズの２次元コードを印刷したラベル、というように２種類のラベルを用意してそれぞれ物品に付す必要がなく、１つのラベルで済む。そして、高速移動時に読み取る対象のデータと手持ちの読取装置にて読み取る対象のデータとを同一コード内に混在させても、従来のように必要以上に２次元コードが大きくなってしまうことを防止できる。なぜなら、高速移動時読取用のデータを示す場合のセルサイズについては、その高速移動時に読み取りができる最小限の大きさにすればよく、一方、手持ちの読取装置にて読み取るデータを示す場合のセルサイズについては、停止した状態で読み取ることができる最小限の大きさにすることができるからである。つまり、セルサイズの大きな方に合わせる必要がなく、用途に合わせて極力小さなセルサイズにてコードを形成できるので、２次元コード５２自体を極力小さくできる。
【００６９】
また、第２データ領域Ａｂ内のコードのデコードに際しては、補助シンボル６０も用いている。これによって、２次元コード５２の画像が歪んでいても、データセルの位置決めが、位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃのみ用いた場合よりも正確に行われる。したがって、そのデータセルが表している情報も正確に読み取ることができる。また、補助シンボル６０は、位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃのごとく、最初に２次元コード５２を位置決めするための基準としては用いられないので、２次元コード５２の位置決め自体も処理量が徒に増加することなく迅速に行うことができる。
【００７０】
なお、図１（ａ）においては、第１データ領域Ａａに用いるデータセルを基準とした場合に、２９セル×２９セルのサイズを持つ２次元コード５２として説明したが、全体のセルサイズが異なるバージョンの２次元コードも実現できる。例えば図６（ａ）に示す２次元コードは、４２セル×４２セルであり、図６（ｂ）に示す２次元コードは、２１セル×２１セル（第２データ領域Ａｂに用いるデータセルを基準とした場合には４２セル×４２セル）であり、図６（ｂ）に示す２次元コードは、２５セル×２５セル（第２データ領域Ａｂに用いるデータセルを基準とした場合には５０セル×５０セル）である。このいずれの場合であっても、第１データ領域Ａａが位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃ間に配置され、第２データ領域Ａｂは、それ以外の部分（図６では右下部分）に配置されている点は同じである。したがって、「第１の情報」を表現するための第１データ領域Ａａのデータセルの総数及び「第２の情報」を表現するための第２データ領域Ａｂのデータセルの総数は、図１（ａ）に示す場合、図６（ｂ）に示す場合、図６（ａ）に示す場合の順番に少なくなっている。
【００７１】
また、図６（ｂ）に示す場合には補助シンボル６０は付加されているが、図６（ａ）に示す場合には補助シンボル６０は付加されていない。この程度のサイズであれば、歪みの影響による読取誤差が少ないので特に補助シンボル６０を付加しなくても正確に読み取りができる。もちろん、図６（ｂ）に示す場合や図１（ａ）に示す場合に補助シンボル６０がなくてもよい。なお、図６においては図１（ａ）に示した場合よりも全体のサイズが小さいものを示したが、逆に大きなサイズのものも実現できる。そして、このように全体サイズが異なる場合には、第１データ領域Ａａにおいて２セル×４セルで区切って示されたセルグループの配置も多少異なっている。したがって、これらの違いについて区別するため、どのバージョンであるかを示すバージョン情報８０が、位置決め用シンボル５４Ａ，５４Ｂ間の第１データ領域Ａａのデータセルに隣接して配置されている。したがって、図４のＳ１６０にて実行する第１の情報のコードのデコード処理においては、まずこのバージョン情報８０を解読し、第１データ領域Ａａ内におけるセルグループの配置パターンを知った上で、デコードを行えばよい。
【００７２】
［別実施例］
上記実施例では、図１に示すように、第１データ領域Ａａは位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃ間に配置され、一方、第２データ領域Ａｂは、それ以外の部分に配置されていた。つまり、データ領域５６を分割し、それぞれが２次元的に連続する領域として設定されていた。これに対して、例えば図７に示すように、データ領域１５６内の全体にわたって第１データ領域Ａａを散点的に配置し、それ以外の領域を第２データ領域Ａｂとして設定することも可能である。デコードに際しては、対象となるデータセルの中心位置における２値（０か１）を判断するため、このような散点的な配置であっても同様に処理できる。
【００７３】
また、図１の場合と同様に領域を区切って設定する場合であっても、必ずしも第１データ領域Ａａが位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃ間に配置される必要はない。例えば、位置決め用シンボル５４Ａと位置決め用シンボル５４Ｂの間にだけ第１データ領域Ａａを設定してもよいし、あるいは、第２データ領域Ａｂを位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃ間に配置してもよい。
【００７４】
また、これまでの説明では、「第２の情報」は位置決め用シンボル５４Ａ，５４Ｂ，５４Ｃのセルサイズの４分の１のセルサイズのデータセルを用いて表現されているとした。つまり、「第２の情報」を示すためのデータセルのサイズは全て等しいことを前提としたが、この「第２の情報」がさらに複数種類の情報の集まりであってそれぞれ異なるセルサイズのセルを用いて表現されていてもよい。例えば、図８に示すように「第２の情報」が４種類の情報が構成されるようにして、全部で５種類のセルサイズが存在するような２次元コード２５２として実現することもできる。
【００７５】
図８の例では、２次元コード２５２の４つの頂点に位置決め用シンボル２５４Ａ，２５４Ｂ，２５４Ｃ，２５４Ｄを配置し、位置決め用シンボル２５４Ａ，２５４Ｂ間の第１のデータ領域Ａａには、上述例と同じく位置決め用シンボル２５４Ａ，２５４Ｂ，２５４Ｃ，２５４Ｄと同じセルサイズ、つまり（１／１）のデータセルを配置する。また、位置決め用シンボル２５４Ａ，２５４Ｃ間の第２のデータ領域Ａｂには、位置決め用シンボル２５４Ａ，２５４Ｂ，２５４Ｃ，２５４Ｄの（１／２）のセルサイズのデータセルを配置し、位置決め用シンボル２５４Ｃ，２５４Ｄ間の第３のデータ領域Ａｃには、位置決め用シンボル２５４Ａ，２５４Ｂ，２５４Ｃ，２５４Ｄの（１／３）のセルサイズのデータセルを配置する。そして、位置決め用シンボル２５４Ｂ，２５４Ｄ間の第４のデータ領域Ａｄには、位置決め用シンボル２５４Ａ，２５４Ｂ，２５４Ｃ，２５４Ｄの（１／４）のセルサイズのデータセルを配置し、それ以外の第５のデータ領域Ａｅ（２次元コード２５２の中央部分の所定領域）には、位置決め用シンボル２５４Ａ，２５４Ｂ，２５４Ｃ，２５４Ｄの（１／５）のセルサイズのデータセルを配置するのである。
【００７６】
なお、この図８の場合には、位置決め用シンボル２５４Ａ，２５４Ｂ，２５４Ｃ，２５４Ｄに対応するセルサイズを基準として、１／２，１／３，１／４……というように１／ｎ（ｎは自然数）で設定したが、もちろん、ｎ／ｍ（ｍ，ｎは自然数、但しｍ＞ｎ）というような比率でもよい。但し、ｎを自然数として（１／２n ）という比率で設定すれば、読み取ったデータをコンピュータシステムにて処理する場合に好ましい。なお、分数倍でなく小数倍であっても構わない。
【００７７】
このように、種々の領域設定やデータ配置が考えられるので、上述したフォーマットコード７０（図１参照）にこれらを特定できる情報を設定しておけば、図４のＳ１４０にてフォーマットコード７０を読み取り、そのフォーマットコード７０に基づいてデコード処理を実行すれば、種々のバリエーションにも対応できる。但し、このフォーマットコード７０はある限定された状況では必ずしも必要ではない。つまり、同一のフォーマットの２次元コードしか用いない場合には、不要である。その特定のフォーマットの２次元コードを読み取るための専用のプログラムを準備すればよいからである。しかし、複数のフォーマットで表現される２次元コードを読み取る場合には、読取対象の２次元コードのフォーマット自体をその時点で２次元コードから直接取得できることが好ましい。したがって、図１に示すように、２次元コード５２中にフォーマットコード７０を含めておくことが好ましい。
【００７８】
なお、上述したバージョン情報８０は、ある意味ではフォーマットコード７０の一部として捉えても良い。つまり、第１データ領域Ａａ及び第２データ領域Ａｂの大きさの違いによって、上述した例では第１データ領域Ａａ中のデータセルのセルグループ配置パターンが異なっていた。したがって、この点だけを区別するのに用いるバージョン情報ではあるが、大きな意味ではフォーマットに関わる情報である。
【００７９】
ところで、これまでの説明では、第１の情報と第２の情報は同じコード種類のものを用いることを前提として説明した。つまり、図１の場合であればいわゆる「ＱＲコード」というコード種類の２次元コードである。しかし、必ずしも同じコード種類のものを使用しなくてはならないのではない。例えば図９に示すように、第１データ領域ＡａにおいてはＱＲコードにて「第１の情報」を表現し、第２データ領域Ａｂにおいては、例えば同じマトリックス式の２次元コードであっても「ＣＰコード」、「カルラコード」あるいは「ベリコード」（これらは何れも登録商標）などの、ＱＲコードと異なるコード種類を用いたコードにて「第２の情報」を表現するようにしてもよい。また、図８に示すように５つの領域Ａａ〜Ａｅを持つ場合であれば、それぞれに異なる５つのコード種類のものを配置することも可能である。
【００８０】
ところで、これまでの説明においては、表現するために用いるセルサイズが異なることを前提とし、第１の情報及び第２の情報の両者ともセルの分布パターンにより情報を表現する２次元コードであった。これに対して、例えば図１０に示すように、第１データ領域Ａａにおいては、ＱＲコードにて「第１の情報」を表現し、第２データ領域Ａｂにおいては、例えばバーコードにて「第２の情報」を表現するようにしてもよい。このようにすれば、例えばバーコードで示した第２の情報は店舗（店頭）管理用として用い、ＱＲコードで示した第１の情報はバックヤード管理用として用いることが考えられる。
【００８１】
このように第１の情報と第２の情報において用いるコード体系が異なる場合には、上述したフォーマットコード７０においてそれが区別できるような情報を入れ込んでおけばよい。
［その他］
前記各実施例では、例えば図１に示すように、位置決め用シンボル５４Ａ〜５４Ｃを二重の正方形で、中心を横切る周波数成分比が黒：白：黒：白：黒＝１：１：３：１：１の図形で表し、補助シンボル６０は位置決め用シンボル５４Ａ〜５４Ｃよりもサイズの小さい類似の図形で表していたが、図１１（ａ）のように円形でもよく、図１１（ｂ）のように六角形でもよく、また他の正多角形でも良い。即ち、同心状に相似形の図形が重なり合う形に形成したものであればよい。さらに、中心を横切る周波数成分比があらゆる角度で同じならば、図１１（ｃ）に示すごとく、図形を何重にしても良い。
【００８２】
さらに、前記各実施例では、例えば図１に示すように、２次元コード５２の外形を正方形で示したが、長方形でも良い。
また、前記各実施例では、例えば図１に示すように、位置決め用シンボル５４Ａ〜５４Ｃは、２次元コード５２の４つの頂点の内、３つに配置されていたが、２次元コード５２内での配置は任意である。また１つの２次元コード５２に４つ以上の位置決め用シンボルを設けても良い。
【００８３】
また位置決め用シンボルは２つでも良い。この場合に対角の２頂点に位置決め用シンボルを配置すれば２次元コード５２の配置は決定する。また、対角以外の２頂点に、あるいは頂点以外に位置決め用シンボルを配置した場合にも、補助シンボル６０のパターンを検出することで、データ領域５６の配置を検出することができる。このように補助シンボル６０のパターンの検出を利用すれば、位置決め用シンボルは１つでも良く、例えば、２次元コード５２の中心に位置決め用シンボルが１つ存在し、その周囲に補助シンボルが配置されているようにしても良く、２次元コード５２内の何れの位置に位置決め用シンボルを配置してもデータセルの位置を求めることができる。
【図面の簡単な説明】
【図１】  実施例における２次元コードの概略構成説明図である。
【図２】  実施例における位置決め用シンボルおよび補助シンボルを走査した場合の明暗検出の説明図である。
【図３】  実施例における２次元コード読取装置の概略構成を表すブロック図である。
【図４】  実施例における２次元コード読み取り処理の前半を示すフローチャートである。
【図５】  実施例における２次元コード読み取り処理の後半を示すフローチャートである。
【図６】  実施例における別バージョンの２次元コードの概略構成説明図である。
【図７】  別実施例における２次元コードの概略構成説明図である。
【図８】  別実施例における２次元コードの概略構成説明図である。
【図９】  別実施例における２次元コードの概略構成説明図である。
【図１０】  別実施例における２次元コードの概略構成説明図である。
【図１１】  位置決め用シンボルの他の形状の例を示す説明図である。
【図１２】  従来のバーコードおよび２次元コードの説明図である。
【図１３】  従来の２次元コードの概略構成説明図である。
【符号の説明】
２…２次元コード読取装置        ４…ＣＣＤ
６…２値化回路                  ８…画像メモリ
１４…クロック信号出力回路      １６…アドレス発生回路
１８…変化点検出回路            ２０…比検出回路
２０ａ，２０ｂ，１２０ａ，１２０ｂ，２２０ａ，２２０ｂ，３２０ａ，３２０ｂ，４２０ａ，４２０ｂ，５２０ａ，５２０ｂ…タイミングセル
２２…アドレス記憶メモリ        ２８…制御回路
５２，１５２，２５２，３５２，４５２，５００…２次元コード
５４Ａ，５４Ｂ，５４Ｃ，１５４Ａ，１５４Ｂ，１５４Ｃ，２５４Ａ，２５４Ｂ，２５４Ｃ，２５４Ｄ，３５４Ａ，３５４Ｂ，３５４Ｃ，４５４Ａ，４５４Ｂ，４５４Ｃ，５１０ａ，５１０ｂ，５１０ｃ…位置決め用シンボル
５６，１５６，２５６，３５６，４５６，５３０…データ領域
６０…補助シンボル
７０…フォーマットコード        ８０…バージョン情報
【図１】
0003873450.tif 000002
【図２】
0003873450.tif 000003
【図３】
0003873450.tif 000004
【図４】
0003873450.tif 000005
【図５】
0003873450.tif 000006
【図６】
0003873450.tif 000007
【図７】
0003873450.tif 000008
【図８】
0003873450.tif 000009
【図９】
0003873450.tif 000010
【図１０】
0003873450.tif 000011
【図１１】
0003873450.tif 000012
【図１２】
0003873450.tif 000013
【図１３】
0003873450.tif 000014