JP3887947B2 - Two-dimensional code reading method and recording medium - Google Patents
Two-dimensional code reading method and recording medium Download PDFInfo
- Publication number
- JP3887947B2 JP3887947B2 JP12892998A JP12892998A JP3887947B2 JP 3887947 B2 JP3887947 B2 JP 3887947B2 JP 12892998 A JP12892998 A JP 12892998A JP 12892998 A JP12892998 A JP 12892998A JP 3887947 B2 JP3887947 B2 JP 3887947B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- dimensional code
- code
- cell
- positioning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、2次元コードの読取方法に関する。
【0002】
【従来の技術】
従来、提案されている2次元コードとしては、例えば特開平7−254037号公報記載のものがある。この2次元コードは、図15(b)に一例を示すごとく情報が2次元的な広がりを持ち、図15(a)に示すバーコードに比べて格段に大量の情報を記録できるが、構造は複雑なものとなっている。
【0003】
すなわち、図16に示すごとく、2次元コード500の存在位置の確定を容易にするために、例えば、特定寸法比率の正方形を組み合わせた位置決め用シンボル510a,510b,510cを3個持っている。また、3個の位置決め用シンボル510a,510b,510c相互の間には白と黒とが交互に組み合わせられた各データセル位置の指標となる基準パターンであるタイミングセル520a,520bがある。
【0004】
2次元コード500の内部は、n×nの正方形の升目(以下、これをセルという)に区切られており、位置決め用シンボル510a,510b,510cは、例えば、一辺の長さが7セルに相当する黒い正方形512、一辺の長さが5セルに相当する白い正方形514、一辺の長さが3セルに相当する黒い正方形516を同心状に重ね合わせた時にできる図形である。
【0005】
この位置決め用シンボル510a,510b,510cの中心付近を直線的に横切ると、黒、白、黒、白、黒のパターンが1:1:3:1:1の比率で検出されるので、この性質を利用して、前記比率で黒と白が交互に検出された場合、そのパターンを位置決め用シンボル510a,510b,510cの有力な候補と判断し、2次元コード500の存在位置を確定するために優先的に検査する。
【0006】
そして、2次元コード500の形状は、3個の位置決め用シンボル510a,510b,510cで一義的に決まる平行四辺形の範囲であると推定できる。なお、データは、位置決め用シンボルや基準パターンなどを除外した領域530のセル(すなわち、データセル)で表され、各データセルを白あるいは黒に色分けすることにより、各データセルを1ビットのデータに対応させている。ただし、図16ではデータセルの白黒のパターンは判り易くするために省略されている。
【0007】
各データセルの位置は、3個の位置決め用シンボル510a,510b,510cの中心と2つのタイミングセル520a,520bを、それぞれ縦方向と横方向の座標の指標として、簡単な計算により求めることができる。
このように位置が決定した、各データセルの中心付近が黒であるか白であるかを判定して、黒を例えば1,白を例えば0に対応させることにより、2値データとして認識でき、解読することができる。
【0008】
なお、図16ではデータセル330の白黒のパターンは省略しているが、そのデータセル330におけるセルサイズは位置決め用シンボル310a,310b,310cのセルサイズと同じである。
【0009】
【発明が解決しようとする課題】
このような2次元コードにおける1セルのサイズは、その用途に応じて適宜変更することが要求される。例えば2次元コードを印刷したラベルが物品に付されている場合、その物品が高速移動している状態でラベルから2次元コードの読取を行う必要があれば、セルサイズをある程度大きくしなくてはならないが、その物品が停止あるいは低速移動している状態でラベルから2次元コードの読取を行うのであれば、セルサイズを相対的に小さくしても構わないからである。
【0010】
例えば、物品の仕分け段階などには、大量の物品を処理する関係から、高速移動させながら2次元コードを読み取ることが好ましい。一方、仕分けされた物品について作業者が手作業で何らかの処理をする場合には、例えば手持ちの読取装置で2次元コードを読み取ることとなるが、この場合には、読取可能なより小さなセルサイズで2次元コードを構成した方が、2次元コード自体を小さくできるため、好ましい。
【0011】
しかしながら、これを実現するためには、例えば高速移動時読取用には相対的に大きなセルサイズの2次元コードを印刷したラベル、手持ちの読取装置用には相対的に小さなセルサイズの2次元コードを印刷したラベル、というように2種類のラベルを用意し、それぞれ物品に付さなくてはならない。そのため、ラベル作成やラベル添付の作業増大につながってしまう。
【0012】
もちろん、1つのラベル内に、高速移動時に読み取る対象のデータと手持ちの読取装置にて読み取る対象のデータとを含めた2次元コードを構成することもできる。但し、この場合のセルサイズは、高速移動時読取用のセルサイズにしなくてはならないため、手持ちの読取装置にて読み取る対象のデータについては、本来はそのような大きなセルサイズにしなくてもよいにもかかわらず、必要以上に大きなセルサイズにて構成してしまうこととなる。つまり、2次元コード自体が大きくなってしまう。読取処理では、予め決められた一定の範囲のみの読み取りであるため、2次元コードが大きくなると、その大きな2次元コードに対処するため読取装置のハードやソフトの構成もそれに対応したものにする必要がある。
【0013】
このような観点から、用途に合わせて適切なセルサイズにてコードを形成できる上、それら複数の用途に応じたコードを混在させることのできる2次元コードを発明したため、本発明は、その2次元コードを読み取る方法を提供することを目的とする。
【0014】
【課題を解決するための手段及び発明の効果】
請求項1記載の2次元コードの読取方法は、次のような2次元コードを読み取ることを前提としている。つまり、セルの分布パターンにより情報を表現する2次元コード内の所定位置に配置され、2次元コードの位置を特定する位置決め用シンボルと、各データセル位置の指標となる基準パターンであるタイミングセルと、を備え、その位置決め用シンボルを構成するセルと同じセルサイズのセルを用いて表現された第1の情報と、その位置決め用シンボルを構成するセルより小さなセルサイズのセルを用いて表現された第2の情報とが、それぞれ2次元コード内の所定位置に配置されている2次元コードである。この2次元コードによれば、用途に合わせて適切なセルサイズにてコードを形成できる上、それら複数の用途に応じたコードを混在させることができる。
【0015】
そして、本発明の2次元コードの読取方法は、まず、2次元コードの走査等により2次元コードの画像を得るとともに、画像中での位置決め用シンボルの位置を検出する2次元コード位置決め処理を行う。次に、2次元コード内の第1の情報あるいは第2の情報の少なくともいずれか一方のデータセルの位置を、位置決め用シンボルの位置及び各情報のセルサイズに基づいて検出するセル位置決め処理を行う。次に、位置が検出されたデータセルに基づいて、第1の情報あるいは第2の情報の内の少なくともいずれか一方のコード情報を読み取るデコード処理を行う。
【0016】
このように、2次元コード内に含まれている複数のコード情報について、それらを区別していずれか一方を読み取ったり、あるいは両方を読み取ったりすることができる。したがって、例えば、この2次元コードを印刷したラベルの付された物品が高速移動する状態で読み取る場合には、位置決め用シンボルを構成するセルと同じセルサイズのセルを用いて表現された第1の情報のみを読み取り、物品が低速移動あるいは停止した状態で読み取る場合には、位置決め用シンボルを構成するセルよりも小さなセルサイズのセルを用いて表現された第2の情報のみを読み取る、といったこともできる。
【0017】
なお、読取対象の2次元コード中の第2の情報が、さらに複数種類の情報が、それぞれ異なるセルサイズのセルを用いて表現されているものである場合には、次のような2次元コード読取方法を採用してもよい。
すなわち、請求項3に示すように、セル位置決め処理において、2次元コード内の第1の情報あるいは第2の情報を構成する複数のセルサイズの各情報の少なくともいずれか一つのデータセルの位置を、位置決め用シンボルの位置及び各情報のセルサイズに基づいて検出する。そして、デコード処理としては、位置が検出されたデータセルに基づいて、第1の情報及び第2の情報を構成する複数のセルサイズの各情報の内の少なくともいずれか一つのコード情報を読み取るのである。
【0018】
例えば、第1の情報のセルサイズよりも小さなセルサイズを用いて表現された情報Aと、その情報Aのセルサイズよりも小さなセルサイズを用いて表現された情報Bとで第2の情報を構成した場合、第1の情報は高速移動時に読み取り、第2の情報の内の情報Aは中速移動時に読み取り、情報Bは低速あるいは停止時に読み取る、といった用途別に選択読み取りが可能となる。もちろん、情報Bのセルサイズよりもさらに小さなセルサイズを用いて表現された情報C、情報Cのセルサイズよりもさらに小さなセルサイズを用いて表現された情報D……というように、3種類以上の情報で第2の情報を構成した場合でも同様である。つまり、3種類以上の情報について、任意のものだけ読み取ることができる。
【0019】
なお、第2の情報に対応するセルサイズは、位置決め用シンボルに対応するセルサイズを基準とした比率で設定されていてもよい。例えば、1/2,1/3,1/4……というように1/n(nは自然数)で設定することが考えられる。もちろん、n/m(m,nは自然数、但しm>n)というような比率でもよい。また、分数倍でなく小数倍であっても構わない。位置決め用シンボルは最初にその位置や形状が決定されるので、セル位置決め処理において、この位置決め用シンボルの形状を基準として、比率で第1の情報及び第2の情報のセルサイズを迅速・容易に特定できる。
【0020】
なお、位置決め用シンボルは、複数の異なる方向または複数の異なる位置において走査した場合に特定の周波数成分比が得られるパターンであれば、走査により迅速に位置決め用シンボルが検出できるので、2次元コード位置決め処理を迅速に行うことがき、結果的に2次元コードの読取処理が迅速に行える。
【0021】
また、読取対象の2次元コード中の第1の情報が、位置決め用シンボルに対応するコード種類を用いたコードにて表現され、第2の情報は、第1の情報と異なるコード種類を用いたコードにて表現されたものである場合には、次のような2次元コード読取方法を採用してもよい。
【0022】
すなわち、請求項4に示すように、デコード処理において、デコード対象の情報に用いられているコード種類に対応する解読アルゴリズムを用いてコード情報を読み取るのである。例えば、同じマトリックス式の2次元コードであっても「QRコード」、「CPコード」、「カルラコード」あるいは「ベリコード」(これらは何れも登録商標)など複数のコード種類が存在し、それぞれを解読するためのアルゴリズムは当然異なる。したがって、第1の情報、第2の情報それぞれに使用されているコード種類に応じた解読アルゴリズムを用いれば、各コード情報を読み取れる。
【0023】
なお、第2の情報が、異なるセルサイズのセルを用いた複数種類の情報で構成され、その第2の情報を構成する各情報は、第1の情報と異なるコード種類を用いたコードと異なるコード種類を用いたコードにて表現されていると共に、それら各情報同士においてもさらに、それぞれ異なるコード種類を用いたコードにて表現された2次元コードである場合にも同様に適用できる。すなわち、デコード処理において、第1の情報、第2の情報を構成する各情報の内のデコード対象の情報に用いられているコード種類に対応する解読アルゴリズムを用いてコード情報を読み取るのである。
【0024】
また、読取対象の2次元コードが、更に、位置決め用シンボルに対する所定位置に配置されて、2次元コード中の各情報の各々についての存在領域及びセルサイズを特定可能なフォーマットコードを備えている場合には、次のような2次元コード読取方法を採用してもよい。
【0025】
すなわち、請求項6に示すように、2次元コード位置決め処理を行った後、検出された位置決め用シンボルの位置に基づいてフォーマットコードを検出し、そのフォーマットコードが表す2次元コードのフォーマットを取得するフォーマット取得処理を行う。そして、セル位置決め処理としては、取得された2次元コードのフォーマットに基づいてデータセルの位置を検出するのである。つまり、フォーマットコードは、2次元コード中の各情報の各々についての存在領域及びセルサイズを特定可能であるため、第1の情報を構成するデータセルの位置、第2の情報を構成するデータセルの位置を個別に検出することができる。そのため、第1に情報のみデコードしたり、第2の情報のみデコードしたり、もちろん、両方ともデコードすることができる。
【0026】
なお、このフォーマットコードは、例えば、2次元コードの情報を表しているデータセルと同じ様式のセルの分布パターンで表すことが考えられる。このように表せば、容易にフォーマットコードを検出することができる。
ところで、このような2次元コードのフォーマットについては、同一のフォーマットの2次元コードしか読取対象としない場合には、必ずしも必要ではない。つまり、その特定のフォーマットの2次元コードを読み取るための専用の解読アルゴリズムのみを準備すれば足りるからである。しかし、複数のフォーマットで表現される2次元コードが読取対象である場合には、読取対象の2次元コードのフォーマット自体をその時点で2次元コードから直接取得することが好ましい。したがって、本読取方法においては、2次元コードの読み取り時に、2次元コード中からフォーマットコードを読み取り、解読対象の2次元コード中における第1の情報及び第2の情報の存在領域及びセルサイズを把握し、それに基づいて解読する。
【0027】
また、第1の情報に使用されているコード種類と第2の情報に使用されているコード種類が異なり、フォーマットコードが、前記各情報の各々についての存在領域及びセルサイズに加えて、使用コード種類も特定可能にされている2次元コードを読取対象とする場合には、次のような2次元コード読取方法を採用してもよい。
【0028】
すなわち、請求項7に示すように、2次元コード位置決め処理を行った後、検出された位置決め用シンボルの位置に基づいてフォーマットコードを検出し、そのフォーマットコードが表す2次元コードのフォーマットを取得するフォーマット取得処理を行い、セル位置決め処理として、取得された2次元コードのフォーマットに基づいて、データセルの位置を検出する。そして、デコード処理としては、取得された2次元コードのフォーマットに基づいてコード種類に対応する解読アルゴリズムを特定し、その特定した解読アルゴリズムを用いてコード情報を読み取るのである。
【0029】
なお、フォーマットコードとしては、第1及び第2の情報の存在領域やセルサイズ、あるいは使用コード種類を直接示していてもよいし、あるいは間接的に示すものであってもよい。つまり、存在領域、セルサイズ、使用コード種類などの違いによって例えばデータ種別分類をし、その分類を示す情報のみをフォーマットコードとし、分類情報と存在領域、使用コード種類、セルサイズなどとの対応関係自体は本読取方法を実現する読取装置側が保持する。
【0030】
また、2次元コードが、2次元コード内にて位置決め用シンボルとは異なる位置に配置され、位置決め用シンボルの位置と自身のパターンとに基づいて位置検出される補助シンボルを備えているものである場合には、請求項8に示すような読取方法を採用してもよい。すなわち、2次元コード位置決め処理を行った後、検出された位置決め用シンボルの位置と補助シンボルのパターンとに基づいて、画像中での補助シンボルの位置を検出する補助シンボル位置決め処理を行う。そして、セル位置決め処理においては、補助シンボルにも基づいてデータセルの位置を検出するのである。
【0031】
このように、セル位置決め処理において、位置決め用シンボルのみでなく、補助シンボルも加えて、データセル近傍の位置決め用シンボルまたは補助シンボルの位置を用いているので、2次元コードが歪んでいても、位置決め用シンボルのみを基準としてデータセルを位置決めする場合に比較して、データセルが正確に位置決めされる。例えば、セル位置決め処理においては、各位置決め用シンボルおよび各補助シンボルの形状に基づいて、位置決め用シンボルまたは補助シンボルの周辺のデータセルの位置を検出することとすれば、2次元コードの歪みは、位置決め用シンボルおよび補助シンボルの形状に反映されているので、データセルの位置決めにも、2次元コードの歪みが反映され、正確にデータセルの位置決めができる。
【0032】
また、補助シンボルは、位置決め用シンボルのごとく、最初に2次元コードを位置決めするための基準としては用いられないので、2次元コード位置決め処理自体は、その処理量が徒に増加することなく迅速に行うことができる。なお、補助シンボルが、位置決め用シンボルよりも小さく形成されていれば、データセルの領域がそれだけ大きく確保できるので好ましい。補助シンボルは、2次元コードの位置決めを行う位置決め用シンボルほど大きなパターンを用いなくても、既に位置決め用シンボルにより2次元コードの位置は確定されているので、位置決め用シンボルよりも小さくても正確に位置が決定できる。
【0033】
さらに、位置決め用シンボルは、複数の異なる方向または複数の異なる位置において走査した場合に特定の周波数成分比が得られるパターンであれば好ましいことは上述したが、同様に、補助シンボルも、複数の異なる方向または複数の異なる位置において走査した場合に特定の周波数成分比が得られるパターンであっても良く、位置決め用シンボルの検出の後、補助シンボル検出処理が迅速に行えるので、2次元コードの迅速な読み取りのために好ましい。
【0034】
ところで、これまでの説明では、情報を表現するために用いるセルサイズが異なることを前提としていたが、第1の情報及び第2の情報の両者ともセルの分布パターンにより情報を表現する2次元コードであった。これに対して、セルの分布パターンにより情報を表現する2次元コード内の所定位置に配置され、2次元コードの位置を特定する位置決め用シンボルを備え、その位置決め用シンボルに対応するコード種類を用いた2次元コードにて表現された第1の情報と、バーコードにて表現された第2の情報とが、それぞれ2次元コード内の所定位置に配置された2次元コードを読対象とする場合には、次のような2次元コード読取方法を採用してもよい。
【0035】
すなわち、請求項9に示すように、まず、2次元コードの画像を得るとともに、画像中での位置決め用シンボルの位置を検出する2次元コード位置決め処理を行う。次に、2次元コード内の前記第1の情報を表現するためのデータセルあるいは第2の情報を表現するためのバーの少なくともいずれか一方の位置を、位置決め用シンボルの位置に基づいて検出するセル等位置決め処理を行う。次に、位置が検出されたデータセルに基づく第1の情報のコード情報の読取あるいは位置が検出されたバーに基づく第2の情報のコード情報の読取の少なくともいずれか一方のデコード処理を行う。
【0036】
このようにすれば、セルを2次元状に配置した「2次元コード」からなる第1の情報と、バーを1次元状に配置した「バーコード」からなる第2の情報とが混在していても、やはり第1の情報のみ読み取ったり、第2の情報のみ読み取ったり、あるいは両方とも読み取ったりすることが自由に行える。なお、当然であるが、第1に情報と第2の情報とでは解読アルゴリズムが異なる。
【0037】
そして、この場合も、同一のフォーマットの2次元コードしか読取対象としない場合には、その特定のフォーマットの2次元コードを読み取るための専用の解読アルゴリズムのみを準備すれば足りるが、複数のフォーマットで表現される2次元コードが読取対象である場合には、やはり、読取対象の2次元コードのフォーマット自体をその時点で2次元コードから直接取得することが好ましい。したがって請求項10に示すように、2次元コードが、更に、位置決め用シンボルに対する所定位置に配置されて、2次元コード中の各情報の各々についての存在領域及び使用コード種類を特定可能なフォーマットコードを備えている場合には、次のような読取方法を採用すればよい・
すなわち、2次元コード位置決め処理を行った後、検出された位置決め用シンボルの位置に基づいてフォーマットコードを検出し、そのフォーマットコードが表す2次元コードのフォーマットを取得するフォーマット取得処理を行う。そして、前記セル等位置決め処理としては、取得された2次元コードのフォーマットに基づいて、第1の情報を表現するためのデータセルあるいは第2の情報を表現するためのバーの少なくともいずれか一方の位置を検出する。また、デコード処理としては、取得された2次元コードのフォーマットに基づいてコード種類に対応する解読アルゴリズムを特定し、その特定した解読アルゴリズムを用いてコード情報を読み取る。
【0038】
なお、このような2次元コードの読取方法を実行する機能は、例えば、デジタル回路やコンピュータシステム側で起動するプログラムとして備えられる。プログラムで実現する場合、例えば、フレキシブルディスク、光磁気ディスク、CD−ROM、ハードディスク等の機械読み取り可能な記録媒体に記憶し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ROMやバックアップRAMを機械読み取り可能な記録媒体として前記プログラムを記憶しておき、このROMあるいはバックアップRAMをコンピュータシステムに組み込んで用いても良い。
【0039】
【発明の実施の形態】
以下、本発明が適用された実施例について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施例に何ら限定されることなく、本発明の技術的範囲に属する限り、種々の形態を採り得ることは言うまでもない。
【0040】
図1のブロック図に、上述した発明が適用された2次元コード読取装置2の概略構成を示す。
2次元コード読取装置2は、CCD4、2値化回路6、画像メモリ8、クロック信号出力回路14、アドレス発生回路16、変化点検出回路18、比検出回路20、アドレス記憶メモリ22および制御回路28から構成されている。
【0041】
制御回路28は、CPU、ROM、RAM、I/O等を備えたコンピュータシステムとして構成され、ROMに記憶されているプログラムに従って、後述する2次元コード読み取り処理等を実行し、2次元コード読取装置2の各構成を制御している。
【0042】
ここで、2次元コード読取装置2にて検出される2次元コードの一例の概略図を図2に示す。この2次元コード52は、白色の台紙53の上に印刷されており、3個の位置決め用シンボル54A,54B,54C、データ領域56、1個の補助シンボル60、タイミングセル20a,20b及びフォーマットコード70などから構成されている。
【0043】
本実施例では、データ領域56が第1データ領域Aa及び第2データ領域Abに分割されており、両データ領域Aa,Abで用いられているデータセルのセルサイズとが異なっている。具体的には、第1データ領域Aaで用いられているデータセルのセルサイズは、第2データ領域Abに用いられているデータセルのセルサイズの縦横それぞれ2倍したいわゆる「4倍角セル」とされている。なお、図2では、第1データ領域Aa及び第2データ領域Abそれぞれにおいて、2セル×4セルの計8個で構成されるセルグループ単位で区切って示している。これは、1セルを1ビットと考えた場合に、1セルグループで1バイトを示すことができるため、このような単位で設定することにより読み取った後のデータ処理に都合がよいからである。
【0044】
したがって、実際には、第1データ領域Aaの1セルグループを示した図2(b)中の1つの正方形の升目が、第1データ領域Aaで用いられているデータセルのセルサイズを示している。同様に、第2データ領域Abの1セルグループを示した図2(c)中の1つの正方形の升目が、第2データ領域Abで用いられているデータセルのセルサイズを示している。そして、第1データ領域Aaのデータセルで表現されるものが「第1の情報」であり、第2データ領域Abのデータセルで表現されるものが「第2の情報」である。
【0045】
また、2次元コード52全体のサイズは、第1データ領域Aaで用いられているデータセルを基準として、29セル×29セルの正方形状とされている。もちろん、第2データ領域Abで用いられているデータセルを基準とすれば58セル×58セルと表されるが、本実施例では、特に必要がない限り、第1データ領域Aaで用いられているデータセルを基準として説明することとする。
【0046】
データ領域56中の各セルは、光学的に異なった2種類のセルから選ばれており、図および説明上では白(明)・黒(暗)で区別して表す。なお、図2では便宜上、データ領域56のデータセルの白黒のパターンは省略している。もちろん、第1データ領域Aa及び第2データ領域Abそれぞれにおいて、各データ領域Aa,Abで用いられているデータセルの単位(図2(b),(c)参照)で明暗が区別して表されている。
【0047】
3つの位置決め用シンボル54A,54B,54Cは、2次元コード52の4つの頂点の内、3つに配置されており、第1データ領域Aaで用いられているのと同じセルサイズのデータセルにて構成されている。なお、技術思想的には、位置決め用シンボル54A,54B,54Cを構成するセルと同じセルサイズのデータセルを第1データ領域Aaで用いたと考える方が適切である。したがって、第2データ領域Abでは、位置決め用シンボル54A,54B,54Cを構成するセルの4分の1のセルサイズのデータセルを用いたこととなる。
【0048】
この位置決め用シンボル54A,54B,54Cのセルの明暗配置は、図3(A)に示すごとく、1セル幅の黒部からなる枠状正方形55a内の中心部分に、1セル幅の白部からなる縮小した枠状正方形55bが形成され、その内側の中心部分に黒部からなる3セル×3セルの大きさの正方形55cが形成されているパターンである。
【0049】
なお、図2からも判るように、第1データ領域Aaは位置決め用シンボル54A,54B,54C間に配置され、一方、第2データ領域Abは、それ以外の部分(図2(a)では右下部分)に配置されることとなる。
また、補助シンボル60は、図2に示すごとく、第2データ領域Abの内部に配置されているが、やはり第1データ領域Aaで用いられているのと同じセルサイズのデータセルにて構成されている。この補助シンボル60のセルの明暗配置は、図3(C)に示すごとく、1セル幅の黒部からなる枠状正方形61a内の中心部分に、1セル幅の白部からなる縮小した枠状正方形61bが形成され、その内側の中心部分に1セルの黒部からなる正方形61cが形成されているパターンである。
【0050】
一方、タイミングセル20a,20bは、位置決め用シンボル54A,54B,54C間に配置されており、第1データ領域Aaで用いられているのと同じセルサイズのデータセルにて構成されている。このタイミングセル20a,20bは、白と黒とが交互に組み合わせられた各データセル位置の指標となる基準パターンとして用いられる。
【0051】
また、フォーマットコード70は、位置決め用シンボル54Aの近傍に配置されており、第1データ領域Aaで用いられているのと同じセルサイズのデータセルにて構成されている。このフォーマットコード70は、第1及び第2の情報の各々についての存在領域、使用しているコード種類、セルサイズの内の少なくとも1つを特定可能な内容となっている。
【0052】
なお、この場合のフォーマットコード70は、第1及び第2の情報の各々についての存在領域、使用コード種類、セルサイズを直接示していてもよいし、あるいは間接的に示すものであってもよい。つまり、存在領域、使用コード種類、セルサイズなどの違いによって例えばデータ種別分類をし、その分類を示す情報(例えば数字など)のみをフォーマットコードとして有するものであってもよい。この場合には、2次元コード読取装置2の例えば制御回路28内のRAM等に、分類情報と、存在領域、使用コード種類、セルサイズなどとの対応関係を例えばテーブル化して格納しておけば対処できる。
【0053】
制御回路28は、以下に述べるごとくの読み取り制御を行う。
まず制御回路28の指示により、CCD4にて2次元コード52が通過する場所の2次元画像を検出する。CCD4は、2次元画像を検出すると、図4(a)に示すごとくの多段階のレベルからなる信号にて2次元画像データを出力する。この2次元画像データを、2値化回路6が制御回路28から指示された閾値にて2値化して、図4(b)に示すごとくの1(ハイ)/0(ロー)の2つのレベルからなる信号に変換する。
【0054】
一方、CCD4から出力される同期パルスに応じて、クロック信号出力回路14がCCD4から出力される2次元画像データのパルスより十分に細かいクロックパルスを出力する。アドレス発生回路16はこのクロックパルスをカウントして、画像メモリ8に対するアドレスを発生させる。2値化された2次元画像データは、このアドレス毎に8ビット単位で書き込まれる。
【0055】
一方、2値化回路6からの信号における「1」から「0」への変化あるいは「0」から「1」への変化時に、変化点検出回路18は、比検出回路20にパルス信号を出力する。比検出回路20は、変化点検出回路18からのパルス信号入力から次のパルス信号入力までに、クロック信号出力回路14から出力されたクロックパルスをカウントすることにより、2次元画像中の明(1)の連続する長さおよび暗(0)の連続する長さを求める。この長さの比から、2次元コード52の位置決め用シンボル54A,54B,54Cに該当するパターンを検出する。
【0056】
図3(A)に示したごとく、位置決め用シンボル54A,54B,54Cのほぼ中心を代表的な角度で横切るCCD4の走査線(a),(b),(c)での明暗パターンは、図3(B)に示すごとく、すべて同じ明暗成分比を持つ構造になっている。すなわち、位置決め用シンボル54A,54B,54Cの中心を横切るそれぞれの走査線(a),(b),(c)の明暗成分比は暗:明:暗:明:暗=1:1:3:1:1となっている。勿論、走査線(a),(b),(c)の中間の角度の走査線においても比率は1:1:3:1:1である。また、図3(A)の図形が、CCD4側から見て斜めの面に配置されていたとしても、前記走査線(a),(b),(c)の明暗成分比は暗:明:暗:明:暗=1:1:3:1:1を維持する。なお、図3(B)は、2値化回路6からの2値化された信号に該当する。
このことにより、比検出回路20は、この「1:1:3:1:1」なる明暗成分比を検出し、検出した場合は、そのタイミングにアドレス発生回路16にて発生されている画像メモリ8のアドレスをアドレス記憶メモリ22に記憶する。
【0057】
したがって、CCD4が1フレーム分の2次元画像データを検出すると、画像メモリ8には、2値化された2次元画像データが記憶され、アドレス記憶メモリ22には、検出された分の位置決め用シンボル54A,54B,54Cのアドレスが記憶されている。
【0058】
なお、最初の2次元画像の1フレーム分の画像が得られると、制御回路28は、画像メモリ8およびアドレス記憶メモリ22のデータに基づいて後述する2次元コード読み取り処理を行い、この処理が終了すれば、制御回路28は、続けて、CCD4に次の1フレームの2次元画像の検出を指示する。したがって、CCD4からは、再度、2次元画像が2値化回路6に出力され、上述したごとくの処理が繰り返される。
【0059】
次に、1フレーム分の2次元コード52の画像とその位置決め用シンボル54A,54B,54Cのアドレスが、画像メモリ8とアドレス記憶メモリ22とにそれぞれ記憶された後に、制御回路28は、2次元コード読み取り処理を実行する。この2次元コード読み取り処理を図5,6のフローチャートに示す。
【0060】
処理が開始されると、まず、位置決め用シンボル54A,54B,54Cの検出処理が行われる(S100)。
この処理では、画像メモリ8およびアドレス記憶メモリ22に対してアクセスし、その記憶内容から位置決め用シンボル54A,54B,54Cが適切な位置に、3つ存在しているか否かの判断と位置決め用シンボル54A,54B,54Cの画像上での正確な形状と中心位置とを決定する。
【0061】
この処理は、まずアドレス記憶メモリ22に多数検出された位置決め用シンボル54A,54B,54Cのアドレスが、位置的に3つのグループに分けられるかを、そのアドレス値と画像メモリ8の画像とを参照しつつ判断する。更に、各位置決め用シンボル54A,54B,54Cの形状と中心位置とを、画像メモリ8の画像の1(白)/0(黒)のパターンから決定し、その3つが図2に示したごとく3つの頂点に存在する配置状態になっているかを判断する。
【0062】
次に、ステップS100にて適切な3つの位置決め用シンボル54A,54B,54Cが検出されたか否かが判定され(S120)、検出されていなければ(S110で「NO」)、次の画像の検出をCCD4に指示して(図6のS280)、処理を終了する。
【0063】
適切な3つの位置決め用シンボル54A,54B,54Cが検出されると(S110で「YES」)、次に新しい2次元コード52か否かが判定される(S120)。この処理は、前回以前に検出された2次元コード52がいまだCCD4により検出され続けている場合に、別の2次元コードとして解読するのを防止するためである。例えば、前回または所定回数前の本処理にて、適切な3つの位置決め用シンボル54A,54B,54Cが検出され、更にそのコード内容も既に適切に読み取られていた場合には、同一の2次元コード52を検出しているものとして(S120で「NO」)、次の画像の検出をCCD4に指示して(S280)、処理を終了する。
【0064】
新しい2次元コード52であると判定すると(S120で「YES」)、次に位置決め用シンボル54A,54B,54Cの形状に応じて、各位置決め用シンボル54A,54B,54Cを構成する各セルの形状と中心位置が計算される(S130)。
【0065】
すなわち、まず、位置決め用シンボル54A,54B,54Cについては、図2,図3(A)に示すように、黒の枠状正方形55aの幅が1セル分、白の枠状正方形55bの幅が1セル分、および黒の正方形55cの幅が3セル分の形状であることから、画像メモリ8内の各位置決め用シンボル54A,54B,54C全体の高さと幅とから、その高さと幅とをそれぞれ7で割ることにより、各位置決め用シンボル54A,54B,54Cの位置におけるセルの高さと幅の値、すなわちセルの形状を各3つ得る。
【0066】
次に、このようにして求められた各位置決め用シンボル54A,54B,54Cにおけるセルの高さと幅に基づいて、各位置決め用シンボル54A,54B,54Cにおける各セル位置を決定する。
次に、位置決め用シンボル54Aに基づいてフォーマットコード70の検出処理を行う(S140)。このフォーマットコード70は、位置決め用シンボル54Aの最外周の枠状正方形55a(図3(A)参照)を構成する4辺の内、位置決め用シンボル54Bに対向する辺に対して、1セル分だけ離れて平行に配置されている。したがって、この関係に基づけばフォーマットコード70の位置が判り、コード検出することができる。
【0067】
次に、第1の情報をデコードするかどうかを判断し(S150)、デコードするのであれば(S150で「YES」)、第1の情報のコードをデコードする(S160)。
ここで、S160における第1の情報のコードのデコード処理の詳細について、図7のフローチャートを参照して説明する。
【0068】
本処理ルーチンが開始すると、まず、図5のS140にて検出したフォーマットコード70に基づき、2次元コード52中の第1データ領域Aaの存在位置とその中に含まれているデータセルのセルサイズを特定する(S161)。この場合のフォーマットコード70は、各データ領域の存在位置(存在領域)及びそのデータ領域中に含まれているデータセルのセルサイズなどの違いによってデータ種別分類された場合の、その分類を示す情報(例えば数字など)がコード化されたものである。つまり、この場合には、2次元コード読取装置2の例えば制御回路28中のRAM内に、分類情報と、存在領域・セルサイズとの対応関係がテーブル化されて格納されている。したがって、このS161においては、その対応関係テーブルを参照して、存在領域及びセルサイズを特定する。
【0069】
次に、S161にて特定された存在領域及びセルサイズと図5のS130にて検出された位置決め用シンボル54A,54B,54Cの形状及び中心位置に基づいて、第1で領域Aa内の各データセルの中心位置を決定する(S162)。
そして、各データセルの中心位置の画素から2値を読み取り、各セルの種類を決定しコード内容を得る(S163)。すなわちデコード処理を行う。このS163のデコードの際には、必要に応じてフォーマットコード70から得たフォーマット情報に基づいた処理を実行する。例えば、第1データ領域Aaにおいて2セル×4セルで区切って示されたセルグループの配置パターンは必ずしも整列している訳ではなく、例えば、位置決め用シンボル54A,54B間のセルグループは縦長のものと横長のものが混在しており、位置決め用シンボル54A,54C間のセルグループは縦長のものだけである。したがって、このようなセルグループの配置パターンなどを特定するためのフォーマット情報をフォーマットコード70から得て、それに基づいてデコードすればよい。
【0070】
こうして、第1の情報のコードが表している情報が得られ、本処理ルーチンを終了してメインルーチンに復帰し、図6のS170へ移行する。
S170では、このコード内容が正常なものか否かが判定される。例えば、白と黒とのセル数が予め決められている特定の数になっているか否か、あるいは表されているデータを所定の計算方法で計算した結果が2次元コード52内の所定範囲に表示されているチェック用データと一致しているか否か等により、正常にコードが読み取られているか否かが判定される。
【0071】
正常なコードであれば(S170で「YES」)、その第1の情報を出力するかどうかを判断し(S180)、出力するのであれば(S180で「YES」)、そのコード内容をホストコンピュータ等の他の装置へ出力したり、そのコード内容を特定のメモリに記憶したり、そのコード内容に対応した処理を実行したり、あるいはそのコード内容に対応した指示を出力したりする処理(以下、コード内容出力等処理」と称す)が行われる(S260)。その後、次の画像の検出をCCD4に指示して(S280)、処理を終了する。
【0072】
一方、第1の情報をデコードした結果、正常なコードでなければ(S170で「NO」)、S190へ移行する。なお、上述のS150にて否定判断、つまり第1の情報をデコードしないと判断された場合もこのS190へ移行する。S190では、第2の情報をデコードするかどうか判断し、第2の情報をデコードしない場合には(S190で「NO」)、次の画像の検出をCCD4に指示して(S280)、処理を終了する。
【0073】
これに対して、第2の情報をデコードする場合には(S190で「YES」)、S200へ移行して、第2の情報のコードをデコードする。なお、S180にて否定判断、つまり第1の情報を出力しないと判断された場合もこのS200へ移行し、第2の情報のコードをデコードする。
【0074】
ここで、S200における第2の情報のコードのデコード処理の詳細について、図8のフローチャートを参照して説明する。
本処理ルーチンが開始すると、まず、図5のS140にて検出したフォーマットコード70に基づき、2次元コード52中の第2データ領域Abの存在位置とその中に含まれているデータセルのセルサイズを特定する(S201)。この内容については、上述した図7のS161の場合と同様であるので繰り返さない。
【0075】
次に、位置決め用シンボル54A,54B,54Cに対して所定の位置に配置されている補助シンボル60の中心位置を、前述のごとく(図5のS130)得られている位置決め用シンボル54A,54B,54Cを構成しているセルの形状と中心位置とに基づいて計算で求め、更に計算位置周辺にて画像を精査して正確に形状と位置とを決定する(S202)。
【0076】
なお、図3(D)に示すごとく、補助シンボル60の中心を横切るそれぞれの直線(a),(b),(c)の明暗成分比は暗:明:暗:明:暗=1:1:1:1:1となる性質は本質的に図3(A),(B)に示した位置決め用シンボル54A,54B,54Cと同じである。
【0077】
そして、このように正確な形状と正確な中心位置とが決定された補助シンボル60に対して、補助シンボル60を構成する各セルの形状と中心位置とを決定する(S203)。
次に、S201にて特定された存在領域及びセルサイズ、図5のS130にて検出された位置決め用シンボル54A,54B,54Cの形状及び中心位置、さらに補助シンボル60のデータに基づいて、第2データ領域Ab内の各データセルの中心位置を決定する(S204)。
【0078】
そして、各データセルの中心位置の画素から2値を読み取り、各セルの種類を決定しコード内容を得る(S205)。こうして、第2の情報のコードが表している情報が得られ、本処理ルーチンを終了してメインルーチンに復帰し、図6のS210へ移行する。
【0079】
S210では、このコード内容が正常なものか否かが判定される。これは上述したS170での判定と同様である。
正常なコードであれば(S210で「YES」)、デコードされた第1の情報のデータがあるかどうかを判断し(S220)、第1の情報のデータがあれば(S220で「YES」)、さらに第2の情報のみデコード出力するかかどうかを判断する(S230)。そして、第2の情報のみデコード出力するのでない場合には(S230で「NO」)、デコードされた第1及び第2の情報についてコード内容出力等処理が行われる(S240)。一方、S220で否定判断、つまり第1の情報のデコードがない場合、あるいはS230で否定判断、つまり第2の情報のみデータ出力する場合には、S270へ移行して、デコードされた第2の情報のみについてコード内容出力等処理が行われる。
【0080】
また、S210にて否定判断、つまりデコードした第2の情報のコード内容が正常でなければ、第1の情報のデータがあるかどうかを判断する(S250)。第1の情報のデータがあれば(S250で「YES」)、デコードされた第1の情報のみについてコード内容出力等処理が行われ(S260)、一方、第1の情報のデータがなければ(S250で「NO」)、コード内容出力等処理は行わずにS280へ移行する。
【0081】
このように、本実施例の2次元コード読取装置2においては、2次元コード52のデータ領域56を構成する第1データ領域Aaに含まれている「第1の情報」及び第2データ領域Ab内に含まれている「第2の情報」について、それらを区別していずれか一方を読み取ったり、あるいは両方を読み取ったりすることができる。したがって、例えば、この2次元コード52を印刷したラベルの付された物品が高速移動する状態で読み取る場合には、位置決め用シンボル54A,54B,54Cを構成するセルと同じセルサイズのセルを用いて表現された第1データ領域Aaの第1の情報のみを読み取り、物品が低速移動あるいは停止した状態で読み取る場合には、その4分の1のセルサイズのセルを用いて表現された第2データ領域Abの第2の情報のみを読み取る、といったこともできる。
【0082】
このような2次元コード読取装置2を実現することで、読取対象となる2次元コード52については、用途に合わせて適切なセルサイズにてコードを形成できる上、それら複数の用途に応じたコードを混在させることができる。そのため、従来のように、高速移動時読取用には相対的に大きなセルサイズの2次元コードを印刷したラベル、手持ちの読取装置用には相対的に小さなセルサイズの2次元コードを印刷したラベル、というように2種類のラベルを用意してそれぞれ物品に付す必要がなく、1つのラベルで済む。そして、高速移動時に読み取る対象のデータと手持ちの読取装置にて読み取る対象のデータとを同一コード内に混在させても、従来のように必要以上に2次元コードが大きくなってしまうことを防止できる。なぜなら、高速移動時読取用のデータを示す場合のセルサイズについては、その高速移動時に読み取りができる最小限の大きさにすればよく、一方、手持ちの読取装置にて読み取るデータを示す場合のセルサイズについては、停止した状態で読み取ることができる最小限の大きさにすることができるからである。つまり、セルサイズの大きな方に合わせる必要がなく、用途に合わせて極力小さなセルサイズにてコードを形成できるので、2次元コード52自体を極力小さくできる。
【0083】
また、第2データ領域Ab内のコードのデコードに際しては、補助シンボル60も用いている。これによって、2次元コード52の画像が歪んでいても、データセルの位置決めが、位置決め用シンボル54A,54B,54Cのみ用いた場合よりも正確に行われる。したがって、そのデータセルが表している情報も正確に読み取ることができる。また、補助シンボル60は、位置決め用シンボル54A,54B,54Cのごとく、最初に2次元コード52を位置決めするための基準としては用いられないので、2次元コード52の位置決め自体も処理量が徒に増加することなく迅速に行うことができる。
【0084】
なお、読取対象の2次元コード52としては、図2(a)に示すように、第1データ領域Aaに用いるデータセルを基準とした場合に29セル×29セルのサイズを持つ2次元コード52として説明したが、全体のセルサイズが異なるバージョンの2次元コード52について対象としても実現できる。例えば図9(a)に示す2次元コードは、21セル×21セル(第2データ領域Abに用いるデータセルを基準とした場合には42セル×42セル)であり、図9(b)に示す2次元コードは、25セル×25セル(第2データ領域Abに用いるデータセルを基準とした場合には50セル×50セル)である。このいずれの場合であっても、第1データ領域Aaが位置決め用シンボル54A,54B,54C間に配置され、第2データ領域Abは、それ以外の部分(図9では右下部分)に配置されている点は同じである。したがって、「第1の情報」を表現するための第1データ領域Aaのデータセルの総数及び「第2の情報」を表現するための第2データ領域Abのデータセルの総数は、図2(a)に示す場合、図9(b)に示す場合、図9(a)に示す場合の順番に少なくなっている。
【0085】
また、図9(b)に示す場合には補助シンボル60は付加されているが、図9(a)に示す場合には補助シンボル60は付加されていない。この程度のサイズであれば、歪みの影響による読取誤差が少ないので特に補助シンボル60を付加しなくても正確に読み取りができる。もちろん、図9(b)に示す場合や図2(a)に示す場合に補助シンボル60がなくてもよい。なお、図9においては図2(a)に示した場合よりも全体のサイズが小さいものを示したが、逆に大きなサイズのものも実現できる。そして、このように全体サイズが異なる場合には、第1データ領域Aaにおいて2セル×4セルで区切って示されたセルグループの配置も多少異なっている。したがって、これらの違いについて区別するため、どのバージョンであるかを示すバージョン情報80が、位置決め用シンボル54A,54B間の第1データ領域Aaのデータセルに隣接して配置されている。したがって、図6のS160にて実行する第1の情報のコードのデコード処理においては、まずこのバージョン情報80を解読し、第1データ領域Aa内におけるセルグループの配置パターンを知った上で、デコードを行えばよい。
【0086】
本実施例において、CCD4、2値化回路6、クロック信号出力回路14、タイミングにアドレス発生回路16、変化点検出回路18および比検出回路20が行う処理と制御回路28が行うステップS100,S121とが2次元コード位置決め処理に該当し、ステップS140がフォーマット取得処理に該当する。また、ステップS202が補助シンボル位置決め処理に該当し、図7の場合であればステップS162、図8の場合であればステップS203,S204がセル位置決め処理に該当する。また、図7の場合であればステップS163、図8の場合であればステップS205がデコード処理に該当する。
【0087】
[別実施例]
上記実施例での読取対象の2次元コード52は、図2に示すように、第1データ領域Aaは位置決め用シンボル54A,54B,54C間に配置され、一方、第2データ領域Abは、それ以外の部分に配置されていた。つまり、データ領域56を分割し、それぞれが2次元的に連続する領域として設定されていた。これに対して、例えば図10に示すように、データ領域156内の全体にわたって第1データ領域Aaを散点的に配置し、それ以外の領域を第2データ領域Abとして設定した2次元コード152を読取対象とすることもできる。例えば図5のS160にて示した第1の情報のコードのデコード処理に際しては、散点的に配置されている第1のデータ領域Aaに対応するデータセルの中心位置における2値(0か1)を判断すればよいため、このような散点的な配置であっても同様のデータ処理が可能である。
【0088】
また、図2の場合と同様に領域を区切って設定する場合であっても、必ずしも第1データ領域Aaが位置決め用シンボル54A,54B,54C間に配置される必要はない。例えば、位置決め用シンボル54Aと位置決め用シンボル54Bの間にだけ第1データ領域Aaを設定してもよいし、あるいは、第2データ領域Abを位置決め用シンボル54A,54B,54C間に配置してもよい。
【0089】
また、これまでの説明では、「第2の情報」は位置決め用シンボル54A,54B,54Cのセルサイズの4分の1のセルサイズのデータセルを用いて表現されているとした。つまり、「第2の情報」を示すためのデータセルのサイズは全て等しいことを前提としたが、この「第2の情報」がさらに複数種類の情報の集まりであってそれぞれ異なるセルサイズのセルを用いて表現されていてもよい。例えば、図11に示すように「第2の情報」が4種類の情報が構成されるようにして、全部で5種類のセルサイズが存在するような2次元コード252を読取対象としてもよい。
【0090】
図11の例では、2次元コード252の4つの頂点に位置決め用シンボル254A,254B,254C,254Dを配置し、位置決め用シンボル254A,254B間の第1のデータ領域Aaには、上述例と同じく位置決め用シンボル254A,254B,254C,254Dと同じセルサイズ、つまり(1/1)のデータセルを配置する。また、位置決め用シンボル254A,254C間の第2のデータ領域Abには、位置決め用シンボル254A,254B,254C,254Dの(1/2)のセルサイズのデータセルを配置し、位置決め用シンボル254C,254D間の第3のデータ領域Acには、位置決め用シンボル254A,254B,254C,254Dの(1/3)のセルサイズのデータセルを配置する。そして、位置決め用シンボル254B,254D間の第4のデータ領域Adには、位置決め用シンボル254A,254B,254C,254Dの(1/4)のセルサイズのデータセルを配置し、それ以外の第5のデータ領域Ae(2次元コード252の中央部分の所定領域)には、位置決め用シンボル254A,254B,254C,254Dの(1/5)のセルサイズのデータセルを配置するのである。
【0091】
なお、この図11の場合には、位置決め用シンボル254A,254B,254C,254Dに対応するセルサイズを基準として1/2,1/3,1/4……というように1/n(nは自然数)で設定したが、もちろん、n/m(m,nは自然数、但しm>n)というような比率でもよい。但し、nを自然数として(1/2n )という比率で設定すれば、読み取ったデータをコンピュータシステムにて処理する上では好ましい。なお、分数倍でなく小数倍であっても構わない。
【0092】
そして、このような2次元コード252を読み取る場合であっても、基本的な処理内容は図5〜8で示したものと同様である。図5〜8の場合には、データ領域が2種類しかない2次元コード52を前提としたが、図11に示す2次元コード252であれば5種類あるので、それぞれについてデコードするかどうかを判断し、デコードする場合には、同じようにそのデータ領域に対応するセルサイズを考慮して、データ領域内の各データセルの中心位置を決定し、その中心位置に画素から2値を読み取ってセルの種類を決定してコード内容を得ればよい。
【0093】
このように、種々の領域設定やデータ配置が考えられるので、上述したフォーマットコード70(図2参照)にこれらを特定できる情報を設定しておけば、図5のS140にてフォーマットコード70を読み取り、そのフォーマットコード70に基づいてデコード処理を実行することで、種々のバリエーションにも対応できる。但し、このフォーマットコード70はある限定された状況では必ずしも必要ではない。つまり、同一のフォーマットの2次元コードしか用いない場合には、不要である。その特定のフォーマットの2次元コードを読み取るための専用のプログラムを準備すればよいからである。しかし、複数のフォーマットで表現される2次元コードを読み取る場合には、読取対象の2次元コードのフォーマット自体をその時点で2次元コードから直接取得できることが好ましい。したがって、図2に示すように、2次元コード52中にフォーマットコード70を含めておくことが好ましい。
【0094】
なお、上述したバージョン情報80は、ある意味ではフォーマットコード70の一部として捉えても良い。つまり、第1データ領域Aa及び第2データ領域Abの大きさの違いによって、上述した例では第1データ領域Aa中のデータセルのセルグループ配置パターンが異なっていた。したがって、この点だけを区別するのに用いるバージョン情報ではあるが、大きな意味ではフォーマットに関わる情報である。
【0095】
ところで、これまでの説明では、第1の情報と第2の情報は同じコード種類のものを用いることを前提とした2次元コードを読み取る場合について説明した。つまり、図2の場合であればいわゆる「QRコード」というコード種類の2次元コードである。しかし、必ずしも同じコード種類のものを使用しなくてはならないのではない。例えば図12に示すように、第1データ領域AaにおいてはQRコードにて「第1の情報」を表現し、第2データ領域Abにおいては、例えば同じマトリックス式の2次元コードであっても「CPコード」、「カルラコード」あるいは「ベリコード」(これらは何れも登録商標)などの、QRコードと異なるコード種類を用いたコードにて「第2の情報」を表現するようにしてもよい。また、図11に示すように5つの領域Aa〜Aeを持つ場合であれば、それぞれに異なる5つのコード種類のものを配置することも可能である。
【0096】
この場合には、例えばフォーマットコード70を参照すれば、どのデータ領域にどのコード種類のコード情報が含まれているのかが判るようにしておく。一方2次元コード読取装置2は、読取対象の2次元コードに含まれているコード種類に対応する解読アルゴリズムによるデコード処理のプログラムを備えておく。そして、各データ領域のコードをデコードする際、該当する解読アルゴリズムを用いてデコード処理を実行すればよい。
【0097】
ところで、これまでの説明においては、表現するために用いるセルサイズが異なることを前提とし、第1の情報及び第2の情報の両者ともセルの分布パターンにより情報を表現する2次元コードであった。これに対して、例えば図13に示すように、第1データ領域Aaにおいては、QRコードにて「第1の情報」を表現し、第2データ領域Abにおいては、例えばバーコードにて「第2の情報」を表現するようにしてもよい。なお、図13においては、位置決め用シンボル54A〜54B間を第2データ領域Abとして、その領域にバーコードを配置している。この場合には、例えば位置決め用シンボル54A〜54Bの中心同士を結ぶ直線の内で第2データ領域Abに含まれる部分における明暗判断をすることにより、バーコードをデコードできる。もちろん、これ以外に手法であってもよい。
【0098】
このようにすれば、例えばバーコードで示した第2の情報は店舗(店頭)管理用として用い、QRコードで示した第1の情報はバックヤード管理用として用いることが考えられる。また、第1の情報と第2の情報において用いるコード体系が異なる場合には、上述したフォーマットコード70においてそれが区別できるような情報を入れ込んでおけばよい。
【0099】
[その他]
前記各実施例で読取対象として説明した2次元コード52,152,252,352,452においては、例えば図2に示すように、位置決め用シンボル54A〜54Cを二重の正方形で、中心を横切る周波数成分比が黒:白:黒:白:黒=1:1:3:1:1の図形で表し、補助シンボル60は位置決め用シンボル54A〜54Cよりもサイズの小さい類似の図形で表していたが、図14(a)のように円形でもよく、図14(b)のように六角形でもよく、また他の正多角形でも良い。即ち、同心状に相似形の図形が重なり合う形に形成したものであればよく、図5のS100にて行う位置決め用シンボル検出処理の内容はなんら変わらない。さらに、中心を横切る周波数成分比があらゆる角度で同じならば、図14(c)に示すごとく、図形を何重にしても良い。この場合には、対応する周波数成分比を検出する処理が、図5のS100にて行う位置決め用シンボル検出処理となるだけである。
【0100】
さらに、前記各実施例では、例えば図2に示すように、読取対象の2次元コード52の外形を正方形で示したが、長方形でも良い。また、例えば図1に示すように、位置決め用シンボル54A〜54Cは、2次元コード52の4つの頂点の内、3つに配置されていたが、2次元コード52内での配置は任意である。また1つの2次元コード52に4つ以上の位置決め用シンボルを設けても良い。
【0101】
また位置決め用シンボルは2つでも良い。この場合に対角の2頂点に位置決め用シンボルを配置すれば2次元コード52の配置は決定する。また、対角以外の2頂点に、あるいは頂点以外に位置決め用シンボルを配置した場合にも、補助シンボル60のパターンを検出することで、データ領域56の配置を検出することができる。このように補助シンボル60のパターンの検出を利用すれば、位置決め用シンボルは1つでも良く、例えば、2次元コード52の中心に位置決め用シンボルが1つ存在し、その周囲に補助シンボルが配置されているようにしても良く、2次元コード52内の何れの位置に位置決め用シンボルを配置してもデータセルの位置を求めることができる。
【0102】
また、前記実施例では、位置決め用シンボル54A〜54Cは比検出回路20によりハード的に検出し、補助シンボル60についてはソフト的に検出していたが、補助シンボル60についても比検出回路を設けてハード的に検出しても良く、処理が一層迅速となる。もちろん、位置決め用シンボル54A〜54C及び補助シンボル60の両方ともソフト的に検出することも可能である。
【図面の簡単な説明】
【図1】 実施例における2次元コード読取装置の概略構成を表すブロック図である。
【図2】 実施例における2次元コードの概略構成説明図である。
【図3】 実施例における位置決め用シンボルおよび補助シンボルを走査した場合の明暗検出の説明図である。
【図4】 実施例におけるCCDと2値化回路との出力信号の説明図である。
【図5】 実施例における2次元コード読み取り処理の前半を示すフローチャートである。
【図6】 実施例における2次元コード読み取り処理の後半を示すフローチャートである。
【図7】 実施例における2次元コード読み取り処理内で実行される第1の情報のコードのデコード処理ルーチンを示すフローチャートである。
【図8】 実施例における2次元コード読み取り処理内で実行される第2の情報のコードのデコード処理ルーチンを示すフローチャートである。
【図9】 実施例における別バージョンの2次元コードの概略構成説明図である。
【図10】 別実施例における2次元コードの概略構成説明図である。
【図11】 別実施例における2次元コードの概略構成説明図である。
【図12】 別実施例における2次元コードの概略構成説明図である。
【図13】 別実施例における2次元コードの概略構成説明図である。
【図14】 位置決め用シンボルの他の形状の例を示す説明図である。
【図15】 従来のバーコードおよび2次元コードの説明図である。
【図16】 従来の2次元コードの概略構成説明図である。
【符号の説明】
2…2次元コード読取装置 4…CCD
6…2値化回路 8…画像メモリ
14…クロック信号出力回路 16…アドレス発生回路
18…変化点検出回路 20…比検出回路
20a,20b,120a,120b,220a,220b,320a,320b,420a,420b,520a,520b…タイミングセル
22…アドレス記憶メモリ 28…制御回路
52,152,252,352,452,500…2次元コード
54A,54B,54C,154A,154B,154C,254A,254B,254C,254D,354A,354B,354C,454A,454B,454C,510a,510b,510c…位置決め用シンボル
56,156,256,356,456,530…データ領域
60…補助シンボル
70…フォーマットコード 80…バージョン情報[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method for reading a two-dimensional code.
[0002]
[Prior art]
Conventionally proposed two-dimensional codes include those described in JP-A-7-254037, for example. In this two-dimensional code, as shown in FIG. 15B, the information has a two-dimensional spread, and a much larger amount of information can be recorded as compared with the barcode shown in FIG. It is complicated.
[0003]
That is, as shown in FIG. 16, in order to facilitate the determination of the location of the two-
[0004]
The interior of the two-
[0005]
When the vicinity of the center of the
[0006]
The shape of the two-
[0007]
The position of each data cell can be obtained by simple calculation using the centers of the three
By determining whether the position near the center of each data cell is black or white and determining the position in this way, black can be recognized as binary data by, for example, 1 and white corresponding to, for example, 0, Can be deciphered.
[0008]
In FIG. 16, the black and white pattern of the data cell 330 is omitted, but the cell size in the data cell 330 is the same as the cell size of the positioning symbols 310a, 310b, 310c.
[0009]
[Problems to be solved by the invention]
The size of one cell in such a two-dimensional code is required to be changed as appropriate according to the application. For example, if a label printed with a two-dimensional code is attached to an article, the cell size must be increased to some extent if it is necessary to read the two-dimensional code from the label while the article is moving at high speed. However, the cell size may be relatively small if the two-dimensional code is read from the label while the article is stopped or moving at a low speed.
[0010]
For example, it is preferable to read a two-dimensional code while moving at a high speed in order to sort a large number of articles at the article sorting stage. On the other hand, when the worker manually performs some processing on the sorted articles, for example, the two-dimensional code is read by a hand-held reader, but in this case, the cell size is smaller than that which can be read. The two-dimensional code is preferable because the two-dimensional code itself can be reduced.
[0011]
However, in order to realize this, for example, a label printed with a two-dimensional code having a relatively large cell size for reading during high-speed movement, and a two-dimensional code having a relatively small cell size for a hand-held reader. Two types of labels, such as a label printed with, must be prepared and each must be attached to an article. This leads to an increase in label creation and label attachment work.
[0012]
Of course, a two-dimensional code including data to be read during high-speed movement and data to be read by a hand-held reader can be formed in one label. However, since the cell size in this case has to be a cell size for reading during high-speed movement, the data to be read by a hand-held reading device need not be such a large cell size. Nevertheless, the cell size is larger than necessary. That is, the two-dimensional code itself becomes large. In the reading process, since only a predetermined range is read, if the two-dimensional code becomes large, the hardware and software configuration of the reading device must be adapted to cope with the large two-dimensional code. There is.
[0013]
From such a point of view, the present invention invents a two-dimensional code that can form a code with an appropriate cell size according to the application and can mix the codes according to the plurality of applications. An object is to provide a method of reading a code.
[0014]
[Means for Solving the Problems and Effects of the Invention]
The two-dimensional code reading method according to
[0015]
In the two-dimensional code reading method according to the present invention, first, a two-dimensional code image is obtained by scanning the two-dimensional code, and a two-dimensional code positioning process for detecting the position of the positioning symbol in the image is performed. . Next, cell positioning processing is performed to detect the position of at least one of the first information and second information in the two-dimensional code based on the position of the positioning symbol and the cell size of each information. . Next, based on the data cell from which the position has been detected, a decoding process for reading at least one of the first information and the second information is performed.
[0016]
In this way, with respect to a plurality of pieces of code information included in the two-dimensional code, one of them can be distinguished and either one can be read or both can be read. Therefore, for example, when an article with a label printed with this two-dimensional code is read at a high speed, the first cell expressed using a cell having the same cell size as the cell constituting the positioning symbol is used. When reading only information and reading the article while moving or stopped at low speed, only the second information expressed using a cell having a smaller cell size than the cells constituting the positioning symbol may be read. it can.
[0017]
When the second information in the two-dimensional code to be read is a plurality of types of information expressed using cells having different cell sizes, the following two-dimensional code is used. A reading method may be adopted.
That is, as shown in
[0018]
For example, the second information is represented by information A expressed using a cell size smaller than the cell size of the first information and information B expressed using a cell size smaller than the cell size of the information A. When configured, the first information can be read at high speed, the information A of the second information can be read at a medium speed, and the information B can be read at a low speed or when stopped. Of course, there are three or more types, such as information C expressed using a cell size smaller than the cell size of information B, information D expressed using a cell size smaller than the cell size of information C, and so on. The same applies to the case where the second information is composed of the information. That is, only arbitrary information can be read out of three or more types of information.
[0019]
The cell size corresponding to the second information may be set at a ratio based on the cell size corresponding to the positioning symbol. For example, it is conceivable to set 1 / n (n is a natural number) such as 1/2, 1/3, 1/4,. Of course, a ratio such as n / m (m and n are natural numbers, where m> n) may be used. Further, it may be a fractional multiple instead of a fractional multiple. Since the position and shape of the positioning symbol are first determined, the cell size of the first information and the second information can be quickly and easily determined by the ratio in the cell positioning process based on the shape of the positioning symbol. Can be identified.
[0020]
If the positioning symbol is a pattern that obtains a specific frequency component ratio when scanned in a plurality of different directions or a plurality of different positions, the positioning symbol can be detected quickly by scanning, so that the two-dimensional code positioning is performed. As a result, the two-dimensional code can be read quickly.
[0021]
Further, the first information in the two-dimensional code to be read is expressed by a code using a code type corresponding to the positioning symbol, and the second information uses a code type different from the first information. If it is expressed in a code, the following two-dimensional code reading method may be adopted.
[0022]
That is, as shown in claim 4, in the decoding process, the code information is read using a decoding algorithm corresponding to the code type used for the information to be decoded. For example, even if the same matrix type two-dimensional code is used, “QR code”, “CP code”, “Carla code” or “Veri code” (These are registered trademarks) There are multiple code types, and the algorithms for decoding each are naturally different. Accordingly, each code information can be read by using a decoding algorithm corresponding to the code type used for each of the first information and the second information.
[0023]
The second information is composed of a plurality of types of information using cells having different cell sizes, and each information constituting the second information is different from a code using a code type different from the first information. The present invention can be similarly applied to a case where a two-dimensional code is expressed by a code using a code type, and each information is expressed by a code using a different code type. That is, in the decoding process, the code information is read using a decoding algorithm corresponding to the code type used for the information to be decoded among the information constituting the first information and the second information.
[0024]
Further, when the two-dimensional code to be read is further arranged at a predetermined position with respect to the positioning symbol and has a format code that can specify the existence area and the cell size for each piece of information in the two-dimensional code The following two-dimensional code reading method may be employed.
[0025]
That is, as shown in claim 6, after performing the two-dimensional code positioning process, the format code is detected based on the detected position of the positioning symbol, and the format of the two-dimensional code represented by the format code is acquired. Perform format acquisition processing. In the cell positioning process, the position of the data cell is detected based on the acquired two-dimensional code format. That is, since the format code can specify the existence area and the cell size for each piece of information in the two-dimensional code, the position of the data cell constituting the first information and the data cell constituting the second information Can be detected individually. Therefore, first, only information can be decoded, only second information can be decoded, and of course both can be decoded.
[0026]
Note that this format code may be represented by, for example, a cell distribution pattern in the same manner as a data cell representing information of a two-dimensional code. If expressed in this way, the format code can be easily detected.
By the way, such a two-dimensional code format is not necessarily required when only a two-dimensional code having the same format is to be read. That is, it is sufficient to prepare only a dedicated decoding algorithm for reading the two-dimensional code of the specific format. However, when a two-dimensional code expressed in a plurality of formats is to be read, it is preferable to directly acquire the format of the two-dimensional code to be read from the two-dimensional code at that time. Therefore, in this reading method, when reading the two-dimensional code, the format code is read from the two-dimensional code, and the first information and the second information existing area and the cell size are grasped in the two-dimensional code to be decoded. And decipher based on it.
[0027]
Further, the code type used for the first information is different from the code type used for the second information, and the format code is used code in addition to the existence area and the cell size for each of the information. When a two-dimensional code whose type can be specified is to be read, the following two-dimensional code reading method may be employed.
[0028]
That is, as shown in claim 7, after performing the two-dimensional code positioning process, the format code is detected based on the detected position of the positioning symbol, and the format of the two-dimensional code represented by the format code is acquired. A format acquisition process is performed, and as a cell positioning process, the position of the data cell is detected based on the acquired two-dimensional code format. In the decoding process, a decoding algorithm corresponding to the code type is specified based on the acquired two-dimensional code format, and the code information is read using the specified decoding algorithm.
[0029]
The format code may directly indicate the existence area, cell size, or used code type of the first and second information, or may indicate indirectly. In other words, for example, data type classification is performed according to differences in the existence area, cell size, use code type, etc., and only the information indicating the classification is used as a format code, and the correspondence between the classification information and the existence area, use code type, cell size The reader itself that realizes the reading method itself holds it.
[0030]
Further, the two-dimensional code is arranged at a position different from the positioning symbol in the two-dimensional code, and includes an auxiliary symbol whose position is detected based on the position of the positioning symbol and its own pattern. In such a case, a reading method as shown in claim 8 may be adopted. That is, after performing the two-dimensional code positioning process, the auxiliary symbol positioning process for detecting the position of the auxiliary symbol in the image is performed based on the detected position of the positioning symbol and the pattern of the auxiliary symbol. In the cell positioning process, the position of the data cell is detected based on the auxiliary symbol.
[0031]
As described above, in the cell positioning process, not only the positioning symbols but also the auxiliary symbols are used, and the positioning symbols or the positions of the auxiliary symbols in the vicinity of the data cell are used. Therefore, even if the two-dimensional code is distorted, the positioning is performed. As compared with the case where the data cell is positioned based only on the reference symbol, the data cell is positioned accurately. For example, in the cell positioning process, if the position of a positioning cell or a data cell around the auxiliary symbol is detected based on the shape of each positioning symbol and each auxiliary symbol, the distortion of the two-dimensional code is Since it is reflected in the shapes of the positioning symbol and the auxiliary symbol, the distortion of the two-dimensional code is reflected in the positioning of the data cell, and the positioning of the data cell can be performed accurately.
[0032]
In addition, since the auxiliary symbol is not used as a reference for positioning the two-dimensional code first like the positioning symbol, the two-dimensional code positioning process itself can be performed quickly without increasing the processing amount. It can be carried out. Note that it is preferable that the auxiliary symbol be formed smaller than the positioning symbol because the area of the data cell can be secured as much as that. Even if the auxiliary symbol does not use a pattern as large as the positioning symbol for positioning the two-dimensional code, the position of the two-dimensional code is already determined by the positioning symbol. The position can be determined.
[0033]
Furthermore, although it has been described above that the positioning symbol is a pattern that can obtain a specific frequency component ratio when scanned in a plurality of different directions or in a plurality of different positions, the auxiliary symbol is also a plurality of different symbols. It may be a pattern in which a specific frequency component ratio is obtained when scanning in a direction or a plurality of different positions, and after detecting a positioning symbol, an auxiliary symbol detection process can be performed quickly, so that a two-dimensional code can be quickly Preferred for reading.
[0034]
By the way, in the description so far, it was assumed that the cell size used for expressing the information is different, but both the first information and the second information are two-dimensional codes that express the information by the cell distribution pattern. Met. On the other hand, a positioning symbol for specifying the position of the two-dimensional code is provided at a predetermined position in the two-dimensional code that expresses information by the cell distribution pattern, and the code type corresponding to the positioning symbol is used When the first information expressed by the two-dimensional code and the second information expressed by the barcode are each read as a two-dimensional code arranged at a predetermined position in the two-dimensional code The following two-dimensional code reading method may be employed.
[0035]
That is, as shown in claim 9, first, an image of a two-dimensional code is obtained, and a two-dimensional code positioning process for detecting the position of the positioning symbol in the image is performed. Next, the position of at least one of the data cell for expressing the first information and the bar for expressing the second information in the two-dimensional code is detected based on the position of the positioning symbol. Performs cell positioning processing. Next, at least one of the decoding process of the code information of the first information based on the data cell where the position is detected or the reading of the code information of the second information based on the bar where the position is detected is performed.
[0036]
In this way, the first information consisting of “two-dimensional code” in which cells are arranged two-dimensionally and the second information consisting of “barcode” in which bars are arranged one-dimensionally are mixed. However, it is possible to freely read only the first information, only the second information, or both. Of course, firstly, the decryption algorithm differs between the information and the second information.
[0037]
In this case as well, when only the two-dimensional code of the same format is to be read, it is sufficient to prepare only a dedicated decoding algorithm for reading the two-dimensional code of the specific format. When the two-dimensional code to be expressed is a reading target, it is preferable that the format of the two-dimensional code to be read is directly acquired from the two-dimensional code at that time. Therefore, as shown in claim 10, the two-dimensional code is further arranged at a predetermined position with respect to the positioning symbol, and the format code that can specify the existence area and the used code type for each piece of information in the two-dimensional code. If it is equipped with, the following reading method should be adopted
That is, after the two-dimensional code positioning process is performed, a format code is detected based on the detected position of the positioning symbol, and a format acquisition process for acquiring the format of the two-dimensional code represented by the format code is performed. As the cell positioning process, at least one of a data cell for expressing the first information and a bar for expressing the second information based on the acquired two-dimensional code format. Detect position. In the decoding process, a decoding algorithm corresponding to the code type is specified based on the acquired two-dimensional code format, and code information is read using the specified decoding algorithm.
[0038]
Note that the function of executing such a two-dimensional code reading method is provided as a program activated on the digital circuit or computer system side, for example. When it is realized by a program, for example, flexible It can be stored in a machine-readable recording medium such as a disk, a magneto-optical disk, a CD-ROM, or a hard disk, and can be used by being loaded into a computer system and started up as necessary. In addition, the ROM or backup RAM may be stored as a machine-readable recording medium, and the program may be stored, and the ROM or backup RAM may be incorporated into a computer system.
[0039]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments to which the present invention is applied will be described below with reference to the drawings. Needless to say, the embodiments of the present invention are not limited to the following examples, and can take various forms as long as they belong to the technical scope of the present invention.
[0040]
The block diagram of FIG. 1 shows a schematic configuration of a two-dimensional code reader 2 to which the above-described invention is applied.
The two-dimensional code reader 2 includes a CCD 4, a binarization circuit 6, an image memory 8, a clock
[0041]
The control circuit 28 is configured as a computer system including a CPU, a ROM, a RAM, an I / O, and the like, and executes a two-dimensional code reading process, which will be described later, according to a program stored in the ROM. 2 is controlled.
[0042]
Here, a schematic diagram of an example of a two-dimensional code detected by the two-dimensional code reader 2 is shown in FIG. The two-
[0043]
In this embodiment, the
[0044]
Accordingly, in practice, one square cell in FIG. 2B showing one cell group of the first data area Aa indicates the cell size of the data cell used in the first data area Aa. Yes. Similarly, one square cell in FIG. 2C showing one cell group of the second data area Ab indicates the cell size of the data cell used in the second data area Ab. And what is expressed by the data cell of the first data area Aa is “first information”, and the second data area Ab. of What is expressed by a data cell is “second information”.
[0045]
The size of the entire two-
[0046]
Each cell in the
[0047]
Three
[0048]
As shown in FIG. 3 (A), the light and dark arrangement of the cells of the
[0049]
As can be seen from FIG. 2, the first data area Aa is arranged between the
Further, as shown in FIG. 2, the
[0050]
On the other hand, the
[0051]
The
[0052]
In this case, the
[0053]
The control circuit 28 performs reading control as described below.
First, in accordance with an instruction from the control circuit 28, a two-dimensional image of a place where the two-
[0054]
On the other hand, the clock
[0055]
On the other hand, the change
[0056]
As shown in FIG. 3A, the light and dark patterns on the scanning lines (a), (b), and (c) of the CCD 4 crossing substantially the centers of the
As a result, the
[0057]
Therefore, when the CCD 4 detects two-dimensional image data for one frame, the image memory 8 stores the binarized two-dimensional image data, and the
[0058]
When an image for one frame of the first two-dimensional image is obtained, the control circuit 28 performs a two-dimensional code reading process, which will be described later, based on the data in the image memory 8 and the
[0059]
Next, the image of the two-
[0060]
When the processing is started, first, detection processing of the
In this process, the image memory 8 and the
[0061]
In this processing, first, whether the addresses of the
[0062]
Next, in step S100, it is determined whether or not three
[0063]
When appropriate three
[0064]
If it is determined that the code is the new two-dimensional code 52 (“YES” in S120), the shape of each cell constituting each of the
[0065]
That is, for the
[0066]
Next, based on the cell heights and widths of the
Next, the
[0067]
Next, it is determined whether or not the first information is to be decoded (S150), and if it is to be decoded (“YES” in S150), the code of the first information is decoded (S160).
Details of the decoding process of the first information code in S160 will be described with reference to the flowchart of FIG.
[0068]
When this processing routine starts, first, based on the
[0069]
Next, based on the existence area and cell size specified in S161 and the shapes and center positions of the
Then, binary values are read from the pixel at the center position of each data cell, the type of each cell is determined, and the code contents are obtained (S163). That is, a decoding process is performed. At the time of decoding in S163, processing based on the format information obtained from the
[0070]
In this way, the information represented by the code of the first information is obtained, this processing routine is terminated, the process returns to the main routine, and the process proceeds to S170 in FIG.
In S170, it is determined whether or not the code content is normal. For example, whether or not the number of white and black cells is a predetermined number, or the result of calculating the data represented by a predetermined calculation method is within a predetermined range in the two-
[0071]
If it is a normal code (“YES” in S170), it is determined whether or not the first information is output (S180). If it is output (“YES” in S180), the code contents are stored in the host computer. Processing to output to other devices such as, store the code content in a specific memory, execute processing corresponding to the code content, or output an instruction corresponding to the code content (hereinafter referred to as the code content) The process is called “code content output process” (S260). Thereafter, the CCD 4 is instructed to detect the next image (S280), and the process ends.
[0072]
On the other hand, as a result of decoding the first information, if the code is not normal (“NO” in S170), the process proceeds to S190. Note that if the determination in S150 is negative, that is, if it is determined not to decode the first information, the process also proceeds to S190. In S190, it is determined whether or not the second information is to be decoded. If the second information is not decoded (“NO” in S190), the CCD 4 is instructed to detect the next image (S280), and the process is performed. finish.
[0073]
On the other hand, when the second information is decoded (“YES” in S190), the process proceeds to S200, and the code of the second information is decoded. Note that if it is determined negative in S180, that is, if it is determined not to output the first information, the process proceeds to S200, and the code of the second information is decoded.
[0074]
Details of the decoding process of the second information code in S200 will be described with reference to the flowchart of FIG.
When this processing routine starts, first, based on the
[0075]
Next, as described above (S130 of FIG. 5), the
[0076]
As shown in FIG. 3D, the light / dark component ratio of each straight line (a), (b), (c) crossing the center of the
[0077]
Then, the shape and center position of each cell constituting the
Next, based on the existence area and cell size specified in S201, the shapes and center positions of the
[0078]
Then, binary values are read from the pixel at the center position of each data cell, the type of each cell is determined, and the code contents are obtained (S205). In this way, information represented by the code of the second information is obtained, this processing routine is terminated, the process returns to the main routine, and the process proceeds to S210 in FIG.
[0079]
In S210, it is determined whether or not the code content is normal. This is the same as the determination in S170 described above.
If it is a normal code (“YES” in S210), it is determined whether there is decoded first information data (S220), and if there is first information data (“YES” in S220). Further, it is determined whether only the second information is decoded and output (S230). If only the second information is not decoded and output (“NO” in S230), processing such as code content output is performed on the decoded first and second information (S240). On the other hand, when a negative determination is made in S220, that is, when the first information is not decoded, or when a negative determination is made in S230, that is, when only the second information is output, the process proceeds to S270 and the decoded second information Only the code content output process is performed.
[0080]
If the negative determination is made in S210, that is, if the decoded code content of the second information is not normal, it is determined whether there is data of the first information (S250). If there is data of the first information (“YES” in S250), processing such as code content output is performed only for the decoded first information (S260), while there is no data of the first information (S260). If “NO” in S250), the process proceeds to S280 without performing the code content output process or the like.
[0081]
Thus, in the two-dimensional code reader 2 of the present embodiment, the “first information” and the second data area Ab included in the first data area Aa constituting the
[0082]
By realizing such a two-dimensional code reading device 2, the two-
[0083]
The
[0084]
As the two-
[0085]
In the case shown in FIG. 9B, the
[0086]
In this embodiment, the CCD 4, the binarization circuit 6, the clock
[0087]
[Another embodiment]
In the two-
[0088]
Further, even in the case where the areas are divided and set as in the case of FIG. 2, the first data area Aa is not necessarily arranged between the
[0089]
In the description so far, the “second information” is expressed using data cells having a cell size that is a quarter of the cell size of the
[0090]
In the example of FIG. 11,
[0091]
In the case of FIG. 11, 1 / n (where n is 1 / n, such as 1/2, 1/3, 1/4,..., With reference to cell sizes corresponding to the
[0092]
Even when such a two-
[0093]
As described above, various area settings and data arrangements can be considered. If information that can identify these is set in the above-described format code 70 (see FIG. 2), the
[0094]
The
[0095]
By the way, in the above description, the case where the two-dimensional code is read on the premise that the first information and the second information are of the same code type has been described. That is, in the case of FIG. 2, the code type is a two-dimensional code of a so-called “QR code”. However, you must use the same code type. For example, as shown in FIG. 12, in the first data area Aa, “first information” is expressed by a QR code, and in the second data area Ab, for example, even if the same matrix type two-dimensional code is used, “ CP code, Carla code or Veri code (These are registered trademarks) The “second information” may be expressed by a code using a code type different from the QR code. In addition, as shown in FIG. 11, if there are five areas Aa to Ae, it is possible to arrange five different code types.
[0096]
In this case, for example, by referring to the
[0097]
By the way, in the explanation so far, on the premise that the cell size used for the expression is different, both the first information and the second information are two-dimensional codes that express information by a cell distribution pattern. . On the other hand, for example, as shown in FIG. 13, in the first data area Aa, “first information” is expressed by a QR code, and in the second data area Ab, for example, “first information” is expressed by a barcode. 2 information "may be expressed. In FIG. 13, a bar code is arranged in the second data area Ab between the
[0098]
In this case, for example, it is conceivable that the second information indicated by the barcode is used for store (storefront) management, and the first information indicated by the QR code is used for backyard management. In addition, when the code systems used in the first information and the second information are different, information that can be distinguished in the
[0099]
[Others]
In the two-
[0100]
Further, in each of the above embodiments, for example, as shown in FIG. 2, the outer shape of the two-
[0101]
There may be two positioning symbols. In this case, if the positioning symbols are arranged at the two vertices on the diagonal, the arrangement of the two-
[0102]
In the above embodiment, the
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a schematic configuration of a two-dimensional code reader according to an embodiment.
FIG. 2 is a schematic configuration explanatory diagram of a two-dimensional code in the embodiment.
FIG. 3 is an explanatory diagram of light and dark detection when a positioning symbol and auxiliary symbols are scanned in an embodiment.
FIG. 4 is an explanatory diagram of output signals from a CCD and a binarization circuit in the embodiment.
FIG. 5 is a flowchart illustrating the first half of a two-dimensional code reading process in the embodiment.
FIG. 6 is a flowchart showing the second half of the two-dimensional code reading process in the embodiment.
FIG. 7 is a flowchart showing a first information code decoding process routine executed in the two-dimensional code reading process in the embodiment;
FIG. 8 is a flowchart illustrating a second information code decoding processing routine executed in the two-dimensional code reading processing in the embodiment;
FIG. 9 is an explanatory diagram of a schematic configuration of another version of a two-dimensional code in an embodiment.
FIG. 10 is an explanatory diagram of a schematic configuration of a two-dimensional code in another embodiment.
FIG. 11 is an explanatory diagram of a schematic configuration of a two-dimensional code in another embodiment.
FIG. 12 is a schematic configuration explanatory diagram of a two-dimensional code in another embodiment.
FIG. 13 is an explanatory diagram of a schematic configuration of a two-dimensional code in another embodiment.
FIG. 14 is an explanatory diagram illustrating an example of another shape of a positioning symbol.
FIG. 15 is an explanatory diagram of a conventional barcode and a two-dimensional code.
FIG. 16 is a schematic configuration explanatory diagram of a conventional two-dimensional code.
[Explanation of symbols]
2 ... Two-dimensional code reader 4 ... CCD
6 ... binarization circuit 8 ... image memory
14 ... Clock
18 ... change
20a, 20b, 120a, 120b, 220a, 220b, 320a, 320b, 420a, 420b, 520a, 520b ... timing cells
22 ... Address storage memory 28 ... Control circuit
52,152,252,352,452,500 ... two-dimensional code
54A, 54B, 54C, 154A, 154B, 154C, 254A, 254B, 254C, 254D, 354A, 354B, 354C, 454A, 454B, 454C, 510a, 510b, 510c ... positioning symbols
56, 156, 256, 356, 456, 530 ... data area
60 ... auxiliary symbol
70 ...
Claims (11)
前記2次元コードの画像を得るとともに、前記画像中での前記位置決め用シンボルの位置を検出する2次元コード位置決め処理を行い、
次に、前記2次元コード内の前記第1の情報あるいは第2の情報の少なくともいずれか一方の前記データセルの位置を、前記位置決め用シンボルの位置及び各情報のセルサイズに基づいて検出するセル位置決め処理を行い、
次に、前記位置が検出されたデータセルに基づいて、前記第1の情報あるいは第2の情報の内の少なくともいずれか一方のコード情報を読み取るデコード処理を行うことを特徴とする2次元コードの読取方法。A positioning symbol for specifying the position of the two-dimensional code, which is arranged at a predetermined position in the two-dimensional code expressing information by a cell distribution pattern , and a timing cell which is a reference pattern serving as an index of each data cell position , A first information expressed using a cell having the same cell size as a cell constituting the positioning symbol, and a second information expressed using a cell having a smaller cell size than the cell constituting the positioning symbol. Are two-dimensional code reading methods arranged at predetermined positions in the two-dimensional code, respectively.
Obtaining an image of the two-dimensional code and performing a two-dimensional code positioning process for detecting a position of the positioning symbol in the image;
Next, a cell that detects the position of the data cell of at least one of the first information and the second information in the two-dimensional code based on the position of the positioning symbol and the cell size of each information Perform positioning processing,
Next, based on the data cell in which the position is detected, a decoding process for reading at least one of the first information and the second information is performed. Reading method.
前記デコード処理は、前記第1の情報あるいは第2の情報のいずれか一方のみのコード情報を選択して読み取ること、
を特徴とする2次元コードの読取方法。The method for reading a two-dimensional code according to claim 1,
The decoding process selects and reads code information of only one of the first information and the second information,
A method for reading a two-dimensional code characterized by the above.
前記第2の情報は、さらに複数種類の情報が、それぞれ異なるセルサイズのセルを用いて表現されており、
前記セル位置決め処理は、前記2次元コード内の前記第1の情報あるいは第2の情報を構成する複数のセルサイズの各情報の少なくともいずれか一つの前記データセルの位置を、前記位置決め用シンボルの位置及び各情報のセルサイズに基づいて検出し、
前記デコード処理は、前記位置が検出されたデータセルに基づいて、前記第1の情報及び第2の情報を構成する複数のセルサイズの各情報の内の少なくともいずれか一つのコード情報を読み取ること、
を特徴とする2次元コードの読取方法。The method for reading a two-dimensional code according to claim 1,
In the second information, a plurality of types of information are expressed using cells having different cell sizes,
In the cell positioning process, the position of at least one of the data cells of the plurality of cell sizes constituting the first information or the second information in the two-dimensional code is set in the positioning symbol. Detect based on location and cell size of each information,
The decoding process reads at least one code information of each information of a plurality of cell sizes constituting the first information and the second information based on the data cell in which the position is detected. ,
A method for reading a two-dimensional code characterized by the above.
読取対象の2次元コード中の前記第1の情報は、前記位置決め用シンボルに対応するコード種類を用いたコードにて表現され、前記第2の情報は、前記第1の情報と異なるコード種類を用いたコードにて表現されたものであり、
前記デコード処理は、デコード対象の情報に用いられているコード種類に対応する解読アルゴリズムを用いてコード情報を読み取ること、
を特徴とする2次元コードの読取方法。In the reading method of the two-dimensional code in any one of Claims 1-3,
The first information in the two-dimensional code to be read is expressed by a code using a code type corresponding to the positioning symbol, and the second information has a code type different from the first information. It is expressed in the code used,
The decoding process reads the code information using a decoding algorithm corresponding to the code type used for the information to be decoded,
A method for reading a two-dimensional code characterized by the above.
読取対象の2次元コード中の前記第2の情報は、異なるセルサイズのセルを用いた複数種類の情報で構成され、当該第2の情報を構成する各情報は、前記第1の情報と異なるコード種類を用いたコードと異なるコード種類を用いたコードにて表現されていると共に、当該各情報同士においてもさらに、それぞれ異なるコード種類を用いたコードにて表現されたものであり、
前記デコード処理は、デコード対象の情報に用いられているコード種類に対応する解読アルゴリズムを用いてコード情報を読み取ること、
を特徴とする2次元コードの読取方法。The method for reading a two-dimensional code according to claim 4,
The second information in the two-dimensional code to be read is composed of a plurality of types of information using cells having different cell sizes, and each piece of information constituting the second information is different from the first information. It is expressed by a code using a code type different from the code using a code type, and is expressed by a code using a code type different from each other,
The decoding process reads the code information using a decoding algorithm corresponding to the code type used for the information to be decoded,
A method for reading a two-dimensional code characterized by the above.
前記2次元コードは、更に、前記位置決め用シンボルに対する所定位置に配置されて、2次元コード中の前記各情報の各々についての存在領域及びセルサイズを特定可能なフォーマットコードを備えており、
前記2次元コード位置決め処理を行った後、検出された前記位置決め用シンボルの位置に基づいて前記フォーマットコードを検出し、そのフォーマットコードが表す2次元コードのフォーマットを取得するフォーマット取得処理を行い、
前記セル位置決め処理は、取得された前記2次元コードのフォーマットに基づいて、前記データセルの位置を検出すること、
を特徴とする2次元コードの読取方法。In the reading method of the two-dimensional code in any one of Claims 1-5,
The two-dimensional code is further provided with a format code that is arranged at a predetermined position with respect to the positioning symbol and that can specify an existing area and a cell size for each of the information in the two-dimensional code,
After performing the two-dimensional code positioning process, the format code is detected based on the detected position of the positioning symbol, and the format acquisition process for acquiring the format of the two-dimensional code represented by the format code is performed.
The cell positioning process detects the position of the data cell based on the acquired format of the two-dimensional code;
A method for reading a two-dimensional code characterized by the above.
前記2次元コードは、更に、前記位置決め用シンボルに対する所定位置に配置されて、2次元コード中の前記各情報の各々についての存在領域、セルサイズ及び使用コード種類を特定可能なフォーマットコードを備えており、
前記2次元コード位置決め処理を行った後、検出された前記位置決め用シンボルの位置に基づいて前記フォーマットコードを検出し、そのフォーマットコードが表す2次元コードのフォーマットを取得するフォーマット取得処理を行い、
前記セル位置決め処理は、取得された前記2次元コードのフォーマットに基づいて、前記データセルの位置を検出し、
前記デコード処理は、取得された前記2次元コードのフォーマットに基づいてコード種類に対応する解読アルゴリズムを特定し、その特定した解読アルゴリズムを用いてコード情報を読み取ること、
を特徴とする2次元コードの読取方法。The two-dimensional code reading method according to claim 4 or 5,
The two-dimensional code is further provided with a format code that is arranged at a predetermined position with respect to the positioning symbol and that can specify an existing area, a cell size, and a use code type for each of the pieces of information in the two-dimensional code. And
After performing the two-dimensional code positioning process, the format code is detected based on the detected position of the positioning symbol, and the format acquisition process for acquiring the format of the two-dimensional code represented by the format code is performed.
The cell positioning process detects the position of the data cell based on the acquired two-dimensional code format,
The decoding process specifies a decoding algorithm corresponding to a code type based on the acquired two-dimensional code format, and reads code information using the specified decoding algorithm;
A method for reading a two-dimensional code characterized by the above.
前記2次元コードが、2次元コード内にて前記位置決め用シンボルとは異なる位置に配置され、前記位置決め用シンボルの位置と自身のパターンとに基づいて位置検出される補助シンボルを備えているものであり、
前記2次元コード位置決め処理を行った後、検出された前記位置決め用シンボルの位置と前記補助シンボルのパターンとに基づいて、前記画像中での前記補助シンボルの位置を検出する補助シンボル位置決め処理を行い、
前記セル位置決め処理は、前記補助シンボルにも基づいて前記データセルの位置を検出すること、
を特徴とする2次元コードの読取方法。In the reading method of the two-dimensional code in any one of Claims 1-7,
The two-dimensional code includes an auxiliary symbol that is arranged at a position different from the positioning symbol in the two-dimensional code and is detected based on the position of the positioning symbol and its own pattern. Yes,
After performing the two-dimensional code positioning process, an auxiliary symbol positioning process for detecting the position of the auxiliary symbol in the image is performed based on the detected position of the positioning symbol and the pattern of the auxiliary symbol. ,
The cell positioning process detects the position of the data cell based on the auxiliary symbol;
A method for reading a two-dimensional code characterized by the above.
前記2次元コードの画像を得るとともに、前記画像中での前記位置決め用シンボルの位置を検出する2次元コード位置決め処理を行い、
次に、前記2次元コード内の前記第1の情報を表現するためのデータセルあるいは第2の情報を表現するためのバーの少なくともいずれか一方の位置を、前記位置決め用シンボルの位置に基づいて検出するセル等位置決め処理を行い、
次に、前記位置が検出されたデータセルに基づく前記第1の情報のコード情報の読取あるいは前記位置が検出されたバーに基づく第2の情報のコード情報の読取の少なくともいずれか一方のデコード処理を行うことを特徴とする2次元コードの読取方法。A positioning symbol for specifying the position of the two-dimensional code, which is arranged at a predetermined position in the two-dimensional code expressing information by a cell distribution pattern , and a timing cell which is a reference pattern serving as an index of each data cell position , And the first information expressed by the two-dimensional code reading method using the code type corresponding to the positioning symbol and the second information expressed by the bar code are respectively in the two-dimensional code. A method for reading a two-dimensional code arranged at a predetermined position of
Obtaining an image of the two-dimensional code and performing a two-dimensional code positioning process for detecting a position of the positioning symbol in the image;
Next, the position of at least one of the data cell for expressing the first information or the bar for expressing the second information in the two-dimensional code is based on the position of the positioning symbol. Perform positioning processing for the cells to be detected,
Next, decoding processing of at least one of reading of the code information of the first information based on the data cell where the position is detected or reading of the code information of the second information based on the bar where the position is detected A method for reading a two-dimensional code, comprising:
前記2次元コードは、更に、前記位置決め用シンボルに対する所定位置に配置されて、2次元コード中の前記各情報の各々についての存在領域及び使用コード種類を特定可能なフォーマットコードを備えており、
前記2次元コード位置決め処理を行った後、検出された前記位置決め用シンボルの位置に基づいて前記フォーマットコードを検出し、そのフォーマットコードが表す2次元コードのフォーマットを取得するフォーマット取得処理を行い、
前記セル等位置決め処理は、取得された前記2次元コードのフォーマットに基づいて、前記第1の情報を表現するためのデータセルあるいは第2の情報を表現するためのバーの少なくともいずれか一方の位置を検出し、
前記デコード処理は、取得された前記2次元コードのフォーマットに基づいてコード種類に対応する解読アルゴリズムを特定し、その特定した解読アルゴリズムを用いてコード情報を読み取ること、
を特徴とする2次元コードの読取方法。The method for reading a two-dimensional code according to claim 9,
The two-dimensional code is further provided with a format code that is arranged at a predetermined position with respect to the positioning symbol and that can specify a presence area and a use code type for each of the pieces of information in the two-dimensional code,
After performing the two-dimensional code positioning process, the format code is detected based on the detected position of the positioning symbol, and the format acquisition process for acquiring the format of the two-dimensional code represented by the format code is performed.
The positioning process for the cells and the like is based on the acquired two-dimensional code format, and at least one position of a data cell for expressing the first information or a bar for expressing the second information Detect
The decoding process specifies a decoding algorithm corresponding to a code type based on the acquired two-dimensional code format, and reads code information using the specified decoding algorithm;
A method for reading a two-dimensional code characterized by the above.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12892998A JP3887947B2 (en) | 1998-05-12 | 1998-05-12 | Two-dimensional code reading method and recording medium |
US09/310,174 US6267296B1 (en) | 1998-05-12 | 1999-05-12 | Two-dimensional code and method of optically reading the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12892998A JP3887947B2 (en) | 1998-05-12 | 1998-05-12 | Two-dimensional code reading method and recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11328302A JPH11328302A (en) | 1999-11-30 |
JP3887947B2 true JP3887947B2 (en) | 2007-02-28 |
Family
ID=14996895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12892998A Expired - Lifetime JP3887947B2 (en) | 1998-05-12 | 1998-05-12 | Two-dimensional code reading method and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3887947B2 (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4689935B2 (en) * | 2000-06-30 | 2011-06-01 | シルバーブルック リサーチ ピーティワイ リミテッド | How to package data |
KR100653886B1 (en) | 2004-11-05 | 2006-12-05 | 주식회사 칼라짚미디어 | Mixed code and mixed code encoding method and apparatus |
KR100775788B1 (en) | 2005-07-15 | 2007-11-13 | 경희대학교 산학협력단 | Method of Coding for Improving Quality of Video by Flexible Macro Block Ordering based on Cyclic Fine Granularity Scalability |
JP5251854B2 (en) * | 2009-12-11 | 2013-07-31 | 株式会社デンソーウェーブ | Optical information reader |
JP5762190B2 (en) * | 2011-07-15 | 2015-08-12 | 株式会社ウェルキャット | Bar code symbol, reading method thereof and reading apparatus |
CN104778491B (en) * | 2014-10-13 | 2017-11-07 | 刘整 | For the image code of information processing and generation with parsing its apparatus and method |
WO2017073780A1 (en) * | 2015-10-30 | 2017-05-04 | 株式会社 東芝 | Apparatus for reading information code and method of generating information code |
JP6486813B2 (en) * | 2015-10-30 | 2019-03-20 | 東芝インフラシステムズ株式会社 | Code reader |
JP6502882B2 (en) * | 2016-03-14 | 2019-04-17 | 東芝インフラシステムズ株式会社 | INFORMATION CODE READER, INFORMATION CODE GENERATION METHOD, AND INFORMATION CODE DISPLAY MEDIUM |
CN113420580B (en) * | 2021-07-14 | 2024-07-09 | 北京紫光青藤微系统有限公司 | Method and device for positioning auxiliary locator of two-dimensional code, two-dimensional code scanning equipment and storage medium |
-
1998
- 1998-05-12 JP JP12892998A patent/JP3887947B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH11328302A (en) | 1999-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6267296B1 (en) | Two-dimensional code and method of optically reading the same | |
JP4122629B2 (en) | 2D code generation method | |
JP2938338B2 (en) | 2D code | |
JP2835274B2 (en) | Image recognition device | |
EP1456811B1 (en) | Reconstruction of virtual raster | |
US7942340B2 (en) | Two-dimensional code, and method and apparatus for detecting two-dimensional code | |
KR970006647B1 (en) | Polygonal Information Encoding Labels, Methods and Systems | |
Atcheson et al. | Caltag: High precision fiducial markers for camera calibration. | |
JP3887947B2 (en) | Two-dimensional code reading method and recording medium | |
US8376240B2 (en) | Method and system for creating and using barcodes | |
CN112858318B (en) | Method for distinguishing screen foreign matter defect from dust, electronic equipment and storage medium | |
US20020063893A1 (en) | Image processing method and apparatus | |
CN101978380A (en) | Two-dimensional symbol and method for reading same | |
JP3716527B2 (en) | 2D code reading method | |
JPH0519694A (en) | Readable symbol of multiple resolution machine | |
JP3726395B2 (en) | Two-dimensional code and two-dimensional code reading method | |
JP3873450B2 (en) | 2D code | |
JP2004536392A5 (en) | ||
JP4348702B2 (en) | Plane four-finger image determination apparatus, plane four-finger image determination method, and plane four-finger image determination program | |
KR20040057175A (en) | The bar code reader and high-speed extraction system of bar code locating, the control method of this system | |
JPS60116078A (en) | Character recognition device | |
JPH11312215A (en) | Two-dimensional code decoder and storage medium thereof | |
JP2016099760A (en) | Information providing system and printed matter | |
CN118037884B (en) | Binary positioning code generation method, system and equipment containing trademark information | |
US20240281625A1 (en) | Magnetic bead-based detection method, storage medium, and detection device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040618 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060411 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060530 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061120 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091208 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111208 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111208 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121208 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121208 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121208 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131208 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |