(57)【要約】【課題】一般的なデジタルカメラ付き携帯電話機等の装置をバーコードリーダーとして利用できるとともに、バーコードの印刷部分の面積を抑え、情報記録密度を向上させることができるカラーバーコード及びそのバーコードリーダーを提供する。【解決手段】１つの領域が１つのキャラクタコードまたは所定のコードに対応する少なくとも３色（赤・青・緑）の色を用いて色分けされた領域を、並べることによりカラーバーコードを形成する。また、このカラーバーコードを読み取るバーコードリーダーは、カラーイメージセンサー（２）と、カラーイメージセンサー（２）により撮像した前記カラーバーコードを識別する識別手段（３〜７）とを備える。【選択図】        図１
2004355122.tif 000002
【特許請求の範囲】
【請求項１】
１つの領域が１つのキャラクタコードまたは所定のコードに対応する少なくとも３色の色を用いて色分けされた領域を、並べることにより形成する
ことを特徴とするカラーバーコード。
【請求項２】
前記領域を２分割し、特定の一方に特定の色の組合せを用いることにより、続く他領域と区切る機能をもたせた
ことを特徴とする請求項１に記載のカラーバーコード。
【請求項３】
前記各部分は、上下方向にさらに分割され色分けされる
ことを特徴とする請求項２に記載のカラーバーコード。
【請求項４】
前記３色は、赤・青・緑である
ことを特徴とする請求項１から請求項３のいずれかに記載のカラーバーコード。
【請求項５】
前記領域は、さらに白色を用いて色分けされる
ことを特徴とする請求項４に記載のカラーバーコード。
【請求項６】
キャラクタコード及び所定のコードに対応する少なくとも３色の色を用いて色分けされた領域を並べることにより形成されたカラーバーコードを撮像するカラーイメージセンサーと、
前記カラーイメージセンサーにより撮像した前記カラーバーコードを識別する識別手段とを備える
ことを特徴とするバーコードリーダー。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、カラーバーコード及びバーコードリーダーに関する。
【０００２】
【従来の技術】
従来より一般に利用されているバーコード（１次元バーコード）は、バーを長手方向に１次元配列し形成されている。図２５に示すように、１次元バーコードは、規定の幅のナローバー１ＮＢとナローバー２個分、３個分、４個分のバー２ＮＢ、３ＮＢ、４ＮＢ、および１ＮＢと同一幅のナロースペース１ＮＳとこのナロースペース２個分、３個分、４個分のスペース２ＮＳ、３ＮＳ、４ＮＳの組合せで構成されている。ナローバー１ＮＢの幅は０．１２５ｍｍ、０．１５ｍｍ、０．１９ｍｍ、０．２５ｍｍ、０．３ｍｍ、０．４ｍｍ、０．５ｍｍ、０．７５ｍｍ、１．０ｍｍの９種類あり、また、高さＨは、１８．２９ｍｍ、２２．８６ｍｍ、２７．４３ｍｍ、４５．７２ｍｍの４種類あり、用途に応じて使い分けられている。
【０００３】
他方、１次元バーコードに対し印刷面積を抑えつつ情報量を増やす目的で開発された２次元バーコード（例えば、図１６（ａ）に一例を示すＱＲ（ＱｕｉｃｋＲｅｓｐｏｎｓｅ）コード）も利用されている。
また、特許文献１には、シアンのバーコード、マゼンダのバーコード、イエローのバーコードを印刷される前にコンピュータ内で合成し、合成により混色された７色からなるバーコードを対象物に印刷し、印刷されたこのバーコードをカラーリニアイメージセンサにより読み取り、もとのシアンのバーコード、マゼンダのバーコード、イエローのバーコードに分離し、そのコード情報を得る技術が記載されている。
【０００４】
【特許文献１】
特開平８−９６０９７号公報
【０００５】
【発明が解決しようとする課題】
従来のモノクロ１次元配列のバーコードでは、表す情報量を増やすとコード長が伸びて印刷面積が増加する欠点があった。また、このタイプのバーコードでは、バー始点と終点に１０バー分以上の余白、バーとバーの間に１バー〜２バー分のスペースが必要であった。
他方、２次元バーコードは、印刷面積を抑えつつ情報量を増やすことができるが、横方向と縦方向に情報を記録するため、両方向の情報を読み取る専用のコードリードシステムが必要であった。
また、特許文献１に記載の技術は、従来の一次元バーコードの３種分を合成して印刷し、読み取り後分離するもので、従来の一次元バーコードに比べ３倍の情報量を表すことができるが、上記従来のモノクロ１次元配列のバーコードの欠点は解消されない。
【０００６】
本発明は、上記の点に鑑みてなされたもので、一般的なデジタルカメラ付き携帯電話機等の装置をバーコードリーダーとして利用できるとともに、バーコードの印刷部分の面積を抑え、情報記録密度を向上させることができるカラーバーコード及びそのバーコードリーダーを提供するものである。
【０００７】
【課題を解決するための手段】
請求項１に記載の発明は、１つの領域が１つのキャラクタコードまたは所定のコードに対応する少なくとも３色の色を用いて色分けされた領域を、並べることにより形成することを特徴とするカラーバーコードである。
また、請求項２に記載の発明は、請求項１に記載のカラーバーコードにおいて、前記領域を２分割し、特定の一方に特定の色の組合せを用いることにより、続く他領域と区切る機能をもたせたことを特徴としている。
また、請求項３に記載の発明は、請求項２に記載のカラーバーコードにおいて、前記各部分が、上下方向にさらに分割され色分けされることを特徴としている。
また、請求項４に記載の発明は、請求項１から請求項３のいずれかに記載のカラーバーコードにおいて、前記３色が、赤・青・緑であることを特徴としている。
また、請求項５に記載の発明は、請求項４に記載のカラーバーコードにおいて、前記領域が、さらに白色を用いて色分けされることを特徴としている。
【０００８】
また、請求項６に記載の発明は、バーコードリーダーであって、キャラクタコード及び所定のコードに対応する少なくとも３色の色を用いて色分けされた領域を並べることにより形成されたカラーバーコードを撮像するカラーイメージセンサーと、前記カラーイメージセンサーにより撮像した前記カラーバーコードを識別する識別手段とを備えることを特徴としている。
【０００９】
上記各発明では、カラーバーコードを、１つの領域が１つのキャラクタコードまたは所定のコードに対応する少なくとも３色の色を用いて色分けされた領域を、並べることにより形成するので、従来のように白／黒（すなわち２色）のバーで形成されるバーコードよりも、単位面積当たりの情報量を増やすことができる。すなわち、同じ情報量を少ない面積で表現することができる。また、カラーバーコード周囲に余白が不要である。
【００１０】
また、前記領域を２分割し、特定の一方に特定の色の組合せを用いることにより、続く他領域と区切る機能をもたせるように形成する場合、続く他領域を容易に識別可能となる。
また、前記各部分を、上下方向にさらに分割し色分けする場合、前記領域は、上下左右に分割され、すなわち升目状に分割され色分けされるので、前記領域内の色を読み取るための装置構成を複雑にしない。特に、デジタルカメラ等に用いられるカラーイメージセンサーを用いて色の読み取りを行う場合に好適である。
【００１１】
また、前記３色を、赤・青・緑とする場合、これらは光の３原色であるので、一般的なカラーイメージセンサーで読み取る場合に、中間色を用いる場合に比して、誤読み取りを減少させることができる。
また、前記領域を、さらに白色を用いて色分けする場合、単位面積当たり表せる情報量を増やすことができる。また、白色は、光の３原色である赤・青・緑の成分をすべて含むものであり、カラーイメージセンサーで読み取る場合に、上記と同様に、誤読み取りを減少させ好適である。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
図１は、本発明の一実施の形態であるバーコードリーダーの構成を示すブロック図である。
【００１３】
同図に示すように、バーコードリーダー１は、カラーイメージセンサー２、コントローラー３、コントロールプログラム用ＲＯＭ４、ＲＡＭ５、デコードＲＯＭ６、ＳＴＡＲＴ／ＳＴＯＰ検知回路７を備えている。
カラーイメージセンサー２は、撮像素子であり、ＣＭＯＳカラーイメージセンサーやＣＣＤカラーイメージセンサーを用いることができる。
コントローラー３は、コントロールプログラムによりバーコードリーダー１の各部を制御する（本発明に係る制御の詳細は後述する）。このコントローラ３と各デバイスは、バスまたは信号線により接続されている。このコントローラー３としては、いわゆるマイクロプロセッサを用いることができる。
【００１４】
コントロールプログラム用ＲＯＭ４には、上記コントロールプログラムが格納されている。また、ＲＡＭ５には、コントローラー３が用いるワークエリアや、撮像したカラーバーコードの画像データ（Ｒ／Ｇ／Ｂ各１ビット）を格納するエリアが設定されている（具体例は後述する）。
デコードＲＯＭ６は、撮像されたカラーバーコードの画像データを基にデコードを行い、対応するキャラクタコード（ここでは、文字コード以外の制御コード等も含むものとする）に変換し出力する。なお、デコードＲＯＭ６の内容は、コントロールプログラム用ＲＯＭ４に記憶させてもよい。
【００１５】
ここで、本実施の形態で用いるカラーバーコードについて説明する。
図２〜１０に示すテーブルは、英数字や所定の記号、制御コード等と、そのカラーコードを対応付けるものである。各カラーコードは、これらの図に示すように、その領域が、左右方向に２分割、上下方向に３分割され、全体として、６分割されている。このカラーコードを並べることにより本実施の形態のカラーバーコードを形成する。なお、本実施の形態のカラーバーコードは、図１０に示すＳＴＡＲＴコードに対応するカラーコードを起点として、その右側に順に所望のコード情報を表すカラーコードを並べ、最後にＳＴＯＰコードに対応するカラーコードを配置する構成としている。
【００１６】
カラーコードの左側３行の部分は（ここでは、データ領域と称す）、Ｒ（＝ＲＥＤ：赤）、Ｇ（＝ＧＲＥＥＮ：緑）、Ｂ（＝ＢＬＵＥ：青）、空白（白）の組合せで構成される。ただしＲＲＲ、ＧＧＧ、ＢＢＢ、ＲＧＢの組合せは、このデータ領域では使用を禁止する。右側３行の部分（ここでは、データ＆パーティション領域と称す）は、データ領域とともにカラーコードを形成し、特定の英数字や所定の記号、制御コード等に対応するが、このデータ＆パーティション領域は、次の領域のデータ領域との区切りの働きもする。このためデータ＆パーティション領域はＲＲＲ、ＧＧＧ、ＢＢＢ、ＲＧＢの４種に限定した組合せで構成し、左側３行の色の組合せと区別する。例えば、“Ａ”のカラーコードは、図１１のようになる。
【００１７】
また、図１２に示すカラーコードの高さＨは、コードを３等分するため３の整数倍で、Ｈ＝１８ｍｍ、２１ｍｍ、２４ｍｍ、２７ｍｍ、４５ｍｍの４種類とする。カラーコードの幅Ｗは、ＣＯＤＥ１２８の規格に準じてＷ＝０．１２５ｍｍ、０．１５ｍｍ、０．１９ｍｍ、０．２５ｍｍ、０．３ｍｍ、０．４ｍｍ、０．５ｍｍ、０．７５ｍｍ、１．０ｍｍの９種類とする。
【００１８】
このように規定される、ＳＴＡＲＴコード（▲１▼）、ＦＵＮＣ１コード（▲２▼）、キャラクタ“Ａ”（▲３▼）、キャラクタ“Ｂ”（▲４▼）、キャラクタ“Ｃ”（▲５▼）、ＳＴＯＰコード（▲６▼）を表すカラーバーコードと、これらを従来のＣＯＤＥ１２８によるバーコードで表した場合の、コード長の比較例を図１３に示している。従来のＣＯＤＥ１２８によるバーコードでは、バーコード幅がナローバーで６５本分となるが、本実施の形態のカラーバーコードでは１２本分で済む。
また、図１４に示すように従来の１次元バーコードでは、バーコードが印刷内容を浸食しているが、本実施の形態のカラーバーコードでは、図１５に示すように、バーコードの印刷内容への浸食は低減されており、バーコード周辺の余白も不要である。
【００１９】
他方、１次元バーコードを高密度情報化した２次元バーコードでは、コードの上下左右位置とスタート点、ストップ点を示す目的で図１６に示すような特定の白黒パターン比をもつ切り出しシンボルをコードパターン以外に記述する必要があった。この切り出しシンボルは、同図（ｂ）に示すように、白黒パターン比率が１：１：３：１：１となっている。この切り出しシンボルは、コード位置とコードのスタート点とストップ点を示す目的のため、コード情報は持たずコード情報を表すコードパターンとは異なるアルゴリズムで読み取る必要があり、バーコードリーダーを複雑にしていた。また、切り出しシンボルは特定の白黒比率とサイズで記述する必要があるため、同図の例のように２次元コードの全面積中約１／３の面積を情報をもたない切り出しシンボルが占有していた。
【００２０】
本実施の形態のカラーコードでは、図１７に示すカラーコードで表されるＳＴＡＲＴパターンとＳＴＯＰパターンを、キャラクタコード（コード情報）を表すカラーコードの列の両側に置き、ＳＴＡＲＴコードのＢ（ＢＬＵＥ）、Ｒ（ＲＥＤ）ならびにＳＴＯＰコードのＧ（ＧＲＥＥＮ）の色配置をチェックすることで上下左右のパターン位置を識別可能である。
したがって、本実施の形態のカラーバーコードでは、上記のように色の組合せによりＳＴＡＲＴパターンとＳＴＯＰパターンを表すことにより、キャラクタコードを表すカラーコードを読む場合と同じアルゴリズムで、ＳＴＡＲＴ、ＳＴＯＰ、上下左右を識別可能であり、バーコードリーダーの複雑化を避けることが可能である。
【００２１】
図１８は、ＲＡＭ５に格納される内容（カラーイメージセンサー２のＲＧＢ出力データ）を例示している。同図に示す例では、カラーイメージセンサー２のＲＧＢ出力データが、このＲＡＭ５のアドレス（Ｘ，Ｙ）が、（１，１），（１，２）〜（１６，９），（１６，１０）のエリアに順次ストアされている。なお、本実施の形態では、カラーイメージセンサー２のＲＧＢ出力データのすべてがＲＡＭ５にストアされるのではなく、６分割されたカラーコードの各部分の色を読み取るため、この分割の間隔毎に、撮像されたピクセルの色がストアされるものとする。
なお、同図中、太枠外の“×××”部分は、カラーバーコード以外部分のカラーイメージセンサー２のＲＧＢ出力データを表している。また、太枠内の、例えば“００１”は、上記６分割された１つの部分が、Ｒレベルが０（ゼロ）、Ｇレベルが０、Ｂレベルが１で、“青”であることを表している。
【００２２】
このように、本実施の形態のバーコードリーダー１は、ＲＡＭ５に格納されたカラーイメージセンサー２のＲＧＢ出力データから、ＳＴＡＲＴコードの検出から、ＳＴＯＰコードが検出されるまで、このＳＴＡＲＴコードとＳＴＯＰコードで挟まれた部分のデータをデコードしてキャラクタコードを得る。
次に、ＳＴＡＲＴ／ＳＴＯＰ検知回路７を構成するＳＴＡＲＴ検知回路、ＳＴＯＰ検知回路、および各検知回路に含まれるシフトレジスタ（ＳＨＩＦＴ  Ｒｅｇ）について図１９〜図２１を参照し説明する。
【００２３】
ＳＴＡＲＴ検知回路は、図１９に示すように、３つのシフトレジスタ７ｓ−１，７ｓ−２，７ｓ−３と、６つの色判定回路７ｃ−１１、７ｃ−１２、７ｃ−１３、７ｃ−１４、７ｃ−１５、７ｃ−１６と、１つの６入力ＡＮＤゲート７ａ−１とで構成される。
シフトレジスタ７ｓ−１，７ｓ−２，７ｓ−３は、ＲＡＭ５からの出力データＤ２（すなわちＲデータ），Ｄ１（すなわちＧデータ），Ｄ０（すなわちＢデータ）とコントローラー３からのシフトクロック（ＳＣＬ）を受け、このシフトクロックにより定まるタイミングで入力される各データをロードしこれを出力するとともに、このシフトクロックで１クロック分前に入力されたデータ（このデータは、現在入力されるデータに対しＸアドレスが−１であるアドレスのデータである）を出力する。
【００２４】
ここで、シフトレジスタ７ｓ−１，７ｓ−２，７ｓ−３の内部構成を図２０に示す。
同図に示すように、各シフトレジスタは前段に３つ、後段に３つのＤ−ＦＦ（Ｄフリップフロップ：図中のＤ）を内蔵している。各Ｄ−ＦＦには、コントローラー３から供給されるシフトクロック（ＳＣＬ）が供給され、このシフトクロックで定まるタイミングで、前段および後段の３つのＤ−ＦＦのそれぞれが、入力されるデータをロードし出力する。同図では、ＲＡＭ５出力のＲデータ、Ｇデータ、Ｂデータはそれぞれ、前段の３つのＤ−ＦＦの端子ＲＩＮ、ＧＩＮ、ＢＩＮに入力される。したがって、各Ｄ−ＦＦは、シフトクロックで定められるタイミングで、前段の３つのＤ−ＦＦが、ＲＡＭ５出力のＲデータ、Ｇデータ、Ｂデータをロードし、ロードしたデータをＲＯｎ＋３，ＧＯｎ＋３，ＢＯｎ＋３端子から出力する。一方、後段の３つのＤ−ＦＦは、シフトクロックで１クロック分前に前段の３つのＤ−ＦＦから出力されているデータをロードしＲＯｎ，ＧＯｎ，ＢＯｎ端子から出力する。
【００２５】
さらに詳しく説明すると、シフトレジスタ７ｓ−２には、シフトレジスタ７ｓ−１に供給されるデータＤ０（Ａ，Ｂ），Ｄ１（Ａ，Ｂ），Ｄ２（Ａ，Ｂ）を基準として、Ｙアドレスを＋１シフトしたアドレスのデータ出力Ｄ０（Ａ，Ｂ＋１），Ｄ１（Ａ，Ｂ＋１），Ｄ２（Ａ，Ｂ＋１）が供給される。
一方、シフトレジスタ７ｓ−３には、シフトレジスタ７ｓ−１に供給されるデータを基準として、Ｙアドレスを＋２シフトしたアドレスのデータ出力Ｄ０（Ａ，Ｂ＋２），Ｄ１（Ａ，Ｂ＋２），Ｄ２（Ａ，Ｂ＋２）が供給される。
これらのデータは、コントローラー３から受けるシフトクロックにより、前述のようにシフトレジスタ７ｓ−１，７ｓ−２，７ｓ−３内にロードされ、それぞれのＲＯｎ＋３，ＧＯｎ＋３，ＢＯｎ＋３端子から出力される。
【００２６】
このとき、シフトレジスタ７ｓ−１のＲＯｎ，ＧＯｎ，ＢＯｎ端子からはそれぞれ、現在のシフトクロックで定まるタイミングの１クロック分前にロードされたＤ０（Ａ−１，Ｂ），Ｄ１（Ａ−１，Ｂ），Ｄ２（Ａ−１，Ｂ）データ（これらは、現時点で前段のＤ−ＦＦにロードされるＤ０（Ａ，Ｂ），Ｄ１（Ａ，Ｂ），Ｄ２（Ａ，Ｂ）データに対しＲＡＭ５におけるＸアドレスが−１のアドレスをもつデータ）が出力され、同様に、シフトレジスタ７ｓ−２のＲＯｎ，ＧＯｎ，ＢＯｎ端子からはそれぞれ、Ｄ０（Ａ−１，Ｂ＋１），Ｄ１（Ａ−１，Ｂ＋１），Ｄ２（Ａ−１，Ｂ＋１）データが出力され、シフトレジスタ７ｓ−３のＲＯｎ，ＧＯｎ，ＢＯｎ端子からはそれぞれ、Ｄ０（Ａ−１，Ｂ＋２），Ｄ１（Ａ−１，Ｂ＋２），Ｄ２（Ａ−１，Ｂ＋２）データが出力される。
なお、上記Ｄ０（Ａ，Ｂ），Ｄ１（Ａ，Ｂ），Ｄ２（Ａ，Ｂ）はそれぞれ、ＲＡＭ５における（Ｘ，Ｙ）アドレスが（Ａ，Ｂ）であるＢデータ，Ｇデータ，Ｒデータである。
【００２７】
次に、６つの色判定回路７ｃ−１１、７ｃ−１２、７ｃ−１３、７ｃ−１４、７ｃ−１５、７ｃ−１６であるが、これらはそれぞれ、接続されるシフトレジスタ（７ｓ−１または７ｓ−２または７ｓ−３）からＲデータ、Ｇデータ、Ｂデータの入力を受ける３入力ＡＮＤゲートと色判定に要する数のＮＯＴゲートとで構成されている。ＮＯＴゲートは入力段に設けられる。
【００２８】
例えば、青を判定する色判定回路７ｃ−１１は、ＲデータとＧデータの入力を反転させるためのＮＯＴゲートが２つ入力段に設けられる。この色判定回路７ｃ−１１に入力されるＲデータ，Ｇデータ，Ｂデータがそれぞれ０，０，１である場合（すなわち、青である場合）、ＲデータとＧデータはＮＯＴゲートにより反転されて３入力ＡＮＤゲートに供給される。この場合、この３入力ＡＮＤゲートの３入力にはすべて“１”が入力されるので、“１”が出力される。この出力により所定の色（この場合、青）を判定する。なお、色判定回路７ｃ−１１，７ｃ−１６は青色を、色判定回路７ｃ−１２は白色を、色判定回路７ｃ−１３，７ｃ−１４は赤色を、色判定回路７ｃ−１５は緑色を判定するための回路である。
【００２９】
このように、６つの色判定回路７ｃ−１１、７ｃ−１２、７ｃ−１３、７ｃ−１４、７ｃ−１５、７ｃ−１６は、図１７に示すＳＴＡＲＴコードとして割り当てられた色のデータを受けた場合にそれぞれ“１”を出力する。
ＡＮＤゲート７ａ−１は、上記６つの色判定回路７ｃ−１１、７ｃ−１２、７ｃ−１３、７ｃ−１４、７ｃ−１５、７ｃ−１６の出力が“１”である場合、すなわち３つのシフトレジスタ７ｓ−１，７ｓ−２，７ｓ−３から出力される６つのＲ，Ｇ，ＢデータがＳＴＡＲＴコードを表す場合、“１”を出力し、結果６入力ＡＮＤゲート７ａ−１が“１”を出力する（ＳＴＡＲＴ＝“１”）。この出力（“１”）によりＳＴＡＲＴコードが検出される。
【００３０】
次に、ＳＴＯＰ検知回路であるが、図２１に示すように、この回路も基本的構成は、前述のＳＴＡＲＴ検知回路と同様であり、３つのシフトレジスタ７ｓ−１，７ｓ−２，７ｓ−３と、６つの色判定回路７ｃ−２１、７ｃ−２２、７ｃ−２３、７ｃ−２４、７ｃ−２５、７ｃ−２６と、１つの６入力ＡＮＤゲート７ａ−２とで構成される。
【００３１】
同図に示すように、ＳＴＯＰ検知回路は、色判定回路７ｃ−２１、７ｃ−２２、７ｃ−２３、７ｃ−２４、７ｃ−２５、７ｃ−２６の構成が、前述の色判定回路７ｃ−１１、７ｃ−１２、７ｃ−１３、７ｃ−１４、７ｃ−１５、７ｃ−１６の構成と異なる点（特に、７ｃ−２１と７ｃ−１１、ならびに、７ｃ−２３と７ｃ−１３が異なる）を除き同様の構成となっている。ここでは、このＳＴＯＰ検知回路において、ＳＴＡＲＴ検知回路で用いるシフトレジスタ７ｓ−１，７ｓ−２，７ｓ−３を共用するものとする。
【００３２】
このＳＴＯＰ検知回路において、色判定回路７ｃ−２１、７ｃ−２２、７ｃ−２３、７ｃ−２４、７ｃ−２５、７ｃ−２６は、それぞれ、緑、白、白、赤、緑、青の色を判定するものである。したがって、カラーコードにおいて左側３行が緑、白、白、右側３行が赤、緑、青であるＳＴＯＰコードを表すデータを受けた場合に、各色判定回路の３入力ＡＮＤゲートはすべて“１”を出力し、結果６入力ＡＮＤゲート７ａ−２が“１”を出力する（ＳＴＯＰ＝“１”）。この出力（“１”）によりＳＴＯＰコードが検出される。
【００３３】
次に、このように構成された本実施形態のバーコードリーダー１の、カラーバーコード読み取り後の動作について，図２２，２３を参照し説明する。ここでは、カラーイメージセンサー２により撮像されたカラーバーコードを含む画像データは、前述と同様にしてＲＡＭ５のアドレス（１，１）〜（１６，１０）に格納されているものとする。
なお、下記に説明する動作フローは一例であり、本発明は下記の処理の流れに限定されるものではない。
【００３４】
はじめに、変数Ａ，Ｂにそれぞれ初期値として“１”を代入する（ステップＳ１０１）。ここで変数Ａは、画像データが格納されるＲＡＭ５のエリアのＸアドレスに対応し、変数Ｂは、Ｙアドレスに対応するものである。
次に、コントローラー３により、アドレス（Ａ，Ｂ）、（Ａ，Ｂ＋１）、（Ａ，Ｂ＋２）のデータ（ループの１回目は、アドレス（１，１）（１，２）（１，３）のデータ）が、ＲＡＭ５からＳＴＡＲＴ／ＳＴＯＰ検知回路７へ出力される（ステップＳ１０２）。
【００３５】
次いで、コントローラー３から出力するシフトクロック（ＳＣＬ）により定められるタイミングで、ＲＡＭ５から出力されている各データをＳＴＡＲＴ／ＳＴＯＰ検知回路７内にロードする（ステップＳ１０３）。
今度は、コントローラー３によりＲＡＭ５のアドレスＸを＋１シフトさせたアドレス（Ａ＋１，Ｂ）、（Ａ＋１，Ｂ＋１）、（Ａ＋１，Ｂ＋２）のデータ（ループの１回目は、アドレス（２，１）（２，２）（２，３）のデータ）をＳＴＡＲＴ／ＳＴＯＰ検知回路７へ出力させる（ステップＳ１０４）。
次いで、コントローラー３から出力するシフトクロック（ＳＣＬ）により、ＲＡＭ５から出力されている各データをＳＴＡＲＴ／ＳＴＯＰ検知回路７内にロードする（ステップＳ１０５）。
【００３６】
ＳＴＡＲＴ／ＳＴＯＰ検知回路７は、ロードされたデータからＳＴＡＲＴコードの有無に応じた出力（ＳＴＡＲＴ＝“１”または“０”）をするので、コントローラー３は、ステップＳ１０６にてこの出力値（ＳＴＡＲＴ）が“１”であるか否か判断する。
【００３７】
［ＳＴＡＲＴコードが検知されない場合］
ステップＳ１０６の判断で、ＳＴＡＲＴ＝“１”ではない、すなわち当該カラーコードのデータがＳＴＡＲＴコードではないと判定されると、次に変数Ｂが、ＲＡＭ５において画像データが格納されるエリアのＹアドレスの上限（ここでは、１０）以下であるか否か判断する（ステップＳ１０７）。
【００３８】
ステップＳ１０７の判断で、Ｂ≦１０である（すなわち、画像データが格納されるＹアドレスの上限以内である）と判定されると、ステップＳ１０８にて変数Ｂに１を加算し（すなわち、もとのアドレスに対しＹアドレスを＋１シフトして）ステップＳ１０２に戻り、このステップＳ１０２以降の処理を繰り返す。
一方、ステップＳ１０７の判断で、Ｂ≦１０でない（すなわち、画像データが格納されるＹアドレスの上限を越えた）と判定されると、さらにステップＳ１０９にて、変数Ａが、ＲＡＭ５において画像データが格納されるエリアのＸアドレスの上限（ここでは、１６）以下であるか否か判断する。
【００３９】
ステップＳ１０９の判断で、Ａ≦１６である（すなわち、画像データが格納されるＸアドレスの上限以内である）と判定されると、ステップＳ１１０にて変数Ａに２を加算し（すなわち、もとのアドレスに対しＸアドレスを＋２シフトし）、さらに変数Ｂに１を代入して初期化しステップＳ１０２に戻る。そして、このステップＳ１０２以降の処理を繰り返す。
一方、ステップＳ１０９の判断で、Ａ≦１６でない（すなわち、画像データが格納されるＸアドレスの上限を越えた）と判定されると、ステップＳ１１１に移行し、図示しない表示器に“ＳＴＡＲＴパターン検索不能”を表示する。
【００４０】
［ＳＴＡＲＴコードが検知された場合］
ステップＳ１０６の判断で、ＳＴＡＲＴ＝“１”である、すなわち当該カラーコードのデータがＳＴＡＲＴコードであると判定されると、変数Ｃに変数Ａの値に２を加算した値（Ａ＋２）を代入し、さらに変数Ｄに変数Ｂの値を代入する（ステップＳ１１２）。
次に、ＲＡＭ５のアドレス（Ｃ，Ｄ）、（Ｃ，Ｄ＋１）、（Ｃ，Ｄ＋２）のデータ（すなわち、カラーコードの左側３行のデータ）をＳＴＡＲＴ／ＳＴＯＰ検知回路７とデコードＲＯＭ６に出力させる（ステップＳ１１３）。
【００４１】
次いで、コントローラー３から出力するシフトクロック（ＳＣＬ）により定められるタイミングで、ＲＡＭ５から出力されている各データをＳＴＡＲＴ／ＳＴＯＰ検知回路７内にロードさせる（ステップＳ１１４）。
今度は、コントローラー３によりＲＡＭ５のアドレスＸを＋１シフトさせたアドレス（Ｃ＋１，Ｄ）、（Ｃ＋１，Ｄ＋１）、（Ｃ＋１，Ｄ＋２）のデータ（すなわち、カラーコードの右側３行のデータ）をＳＴＡＲＴ／ＳＴＯＰ検知回路７およびデコードＲＯＭ６へ出力させる（ステップＳ１１５）。このとき、デコードＲＯＭ６から、先に入力されたアドレス（Ｃ，Ｄ）、（Ｃ，Ｄ＋１）、（Ｃ，Ｄ＋２）のデータと、今回入力されたアドレス（Ｃ＋１，Ｄ）、（Ｃ＋１，Ｄ＋１）、（Ｃ＋１，Ｄ＋２）のデータを基にデコードされたコード情報が出力される。
【００４２】
次いで、コントローラー３から出力するシフトクロック（ＳＣＬ）により、ＲＡＭ５から出力されている各データをＳＴＡＲＴ／ＳＴＯＰ検知回路７内にロードさせる（ステップＳ１１６）。
ＳＴＡＲＴ／ＳＴＯＰ検知回路７は、ロードされたデータからＳＴＯＰコードの有無に応じた出力（ＳＴＯＰ＝“１”または“０”）をするので、コントローラー３は、ステップＳ１０４にてこの出力値（ＳＴＯＰ）が“１”であるか否か判断する（ステップＳ１１７）。
【００４３】
ステップＳ１１７の判断で、ＳＴＯＰ＝“１”でない（すなわち、ＳＴＯＰコードではない）と判定されると、ステップＳ１１８に移行する。
ステップＳ１１８では、さらにＣ≦１３であるか否か判断する。この判断でＣ≦１３である（すなわち、画像データが格納されるＸアドレスの上限−３以内である）と判定されると、ステップＳ１１９にて変数Ｃに２を加算し（すなわち、もとのアドレスに対しＸアドレスを＋２して）ステップＳ１１３に戻る。そして、以降の処理を繰り返す。
【００４４】
一方、ステップＳ１１７の判断で、ＳＴＯＰ＝“１”であると判定された場合、このときＳＴＯＰコードが検出されたので、一連の処理を終了する。
他方、ステップＳ１１８の判断で、Ｃ≦１３でない（すなわち、画像データが格納されるＸアドレスの上限−３を超えている）と判定されると、ステップＳ１２０にて、図示しない表示器に“ＳＴＯＰパターン検索不能”の表示をする。
以上のようにして、ＳＴＡＲＴコードの検出からＳＴＯＰコードの検出までの間に取り込まれるカラーコードのデータをデコードし、そのコード情報（キャラクタコード）を得る。
【００４５】
例えば、図２４に示す例では、ＲＡＭ５の内容が、アドレス（１，１）、（１，２）、（１，３）、次に（１，２）、（１，３）、（１，４）と順次読み出されて、ＳＴＡＲＴ／ＳＴＯＰ検知回路７に入力される。この図の例では、アドレス（３，４）、（３，５）、（３，６）および（４，４）、（４，５）、（４，６）にＳＴＡＲＴコードが格納されている。同図に示す▲１▼、▲２▼の順にデータが読み出され、このＳＴＡＲＴコードがＳＴＡＲＴ／ＳＴＯＰ検知回路７によって検知され、ＳＴＡＲＴ＝“１”として出力される。
【００４６】
ＳＴＡＲＴ＝“１”を検知した後は、ＲＡＭ５の読み出しは▲３▼、▲４▼、〜▲６▼の順番でデータが読み出され、デコードＲＯＭ６によって図２〜図１０に示すキャラクタコードに変換される。▲７▼の読み出しの段階で、アドレス（１３，４）、（１３，５）、（１３，６）および（１４，４）、（１４，５）、（１４，６）に格納されているＳＴＯＰコードが、ＳＴＡＲＴ／ＳＴＯＰ検知回路７によって検知され、ＳＴＯＰ＝“１”として出力されると、ＲＡＭ５からのデータの読み出しは終了となる。
【００４７】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の構成等も含まれる。例えば、上記実施の形態では、前述のようにＳＴＡＲＴ検知回路およびＳＴＯＰ検知回路を設けているが、コントロールプログラムにその機能を組み込んで実現することも可能である。
このようにすると、上記実施の形態のバーコードリーダー１のカラーイメージセンサー２、コントローラー３、コントロールプログラム用ＲＯＭ４、ＲＡＭ５からなるシステム構成は、一般的なデジタルカメラ付き携帯電話機やデジタルカメラ付きＰＤＡ、あるいは通常のデジタルカメラを利用して実現可能である。
【００４８】
【発明の効果】
以上、詳細に説明したように、本発明によれば、カラーバーコードを、１つの領域が１つのキャラクタコードまたは所定のコードに対応する少なくとも３色の色を用いて色分けされた領域を、並べることにより形成するので、単位面積当たりの情報量を増やすことができる。すなわち、同じ情報量を少ない面積で表現することができる。また、カラーバーコード周囲に余白が不要である。
また、本発明によれば、前記領域を２分割し、特定の一方に特定の色の組合せを用いることにより、続く他領域と区切る機能をもたせるように形成する場合、続く他領域を容易に識別可能となる。
【００４９】
また、本発明によれば、前記各部分を、上下方向にさらに分割し色分けするので、前記領域は、上下左右に分割され、すなわち升目状に分割され色分けされるので、前記領域内の色を読み取るための装置構成を複雑にしない。特に、デジタルカメラ等に用いられるカラーイメージセンサーを用いて色の読み取りを行う場合に好適である。
また、本発明によれば、前記３色を、光の３原色である赤・青・緑とするので、一般的なカラーイメージセンサーで読み取る場合に、中間色を用いる場合に比して、誤読み取りを減少させることができる。
また、本発明によれば、前記領域を、さらに白色を用いて色分けするので、単位面積当たり表せる情報量を増やすことができる。また、白色は、光の３原色である赤・青・緑の成分をすべて含むものであり、カラーイメージセンサーで読み取る場合に、上記と同様に、誤読み取りを減少させ好適である。
【図面の簡単な説明】
【図１】本発明の一実施の形態であるバーコードリーダーの構成を示す図である。
【図２】同実施の形態で用いる、キャラクタコード及び所定のコードと、カラーコードとを対応づけるテーブル（一部）の一例である。
【図３】同実施の形態で用いる、キャラクタコード及び所定のコードと、カラーコードとを対応づけるテーブル（一部）の一例である。
【図４】同実施の形態で用いる、キャラクタコード及び所定のコードと、カラーコードとを対応づけるテーブル（一部）の一例である。
【図５】同実施の形態で用いる、キャラクタコード及び所定のコードと、カラーコードとを対応づけるテーブル（一部）の一例である。
【図６】同実施の形態で用いる、キャラクタコード及び所定のコードと、カラーコードとを対応づけるテーブル（一部）の一例である。
【図７】同実施の形態で用いる、キャラクタコード及び所定のコードと、カラーコードとを対応づけるテーブル（一部）の一例である。
【図８】同実施の形態で用いる、キャラクタコード及び所定のコードと、カラーコードとを対応づけるテーブル（一部）の一例である。
【図９】同実施の形態で用いる、キャラクタコード及び所定のコードと、カラーコードとを対応づけるテーブル（一部）の一例である。
【図１０】同実施の形態で用いる、キャラクタコード及び所定のコードと、カラーコードとを対応づけるテーブル（一部）の一例である。
【図１１】キャラクタ“Ａ”のカラーコードを示す図である。
【図１２】同実施の形態のカラーコードの構造を示す図である。
【図１３】同実施の形態のカラーバーコードと従来のＣＯＤＥ１２８によるバーコードのコード長の比較例である。
【図１４】従来の１次元バーコードの一実施例である。
【図１５】同実施の形態のカラーバーコードの一実施例である。
【図１６】（ａ）従来の２次元バーコードの一例を示す図、（ｂ）同２次元バーコードの切り出しシンボルを示す図である。
【図１７】同実施の形態のカラーバーコードに含まれるＳＴＡＲＴパターンとＳＴＯＰパターンを示す図である。
【図１８】同実施の形態において、撮像された画像データが格納されるＲＡＭの内容例を示す図である。
【図１９】同実施の形態におけるＳＴＡＲＴ／ＳＴＯＰ検知回路に含まれるＳＴＡＲＴ検知回路の構成を示す図である。
【図２０】同ＳＴＡＲＴ検知回路（またはＳＴＯＰ検知回路）に含まれるシフトレジスタの構成を示す図である。
【図２１】同実施の形態におけるＳＴＡＲＴ／ＳＴＯＰ検知回路に含まれるＳＴＯＰ検知回路の構成を示す図である。
【図２２】同実施の形態のバーコードリーダーの動作を説明するフローチャートである。
【図２３】同実施の形態のバーコードリーダーの動作を説明するフローチャートである。
【図２４】同実施の形態のバーコードリーダーの動作を説明するための図である。
【図２５】従来の１次元バーコードの構造を説明する図である。
【符号の説明】
１…バーコードリーダー、２…カラーイメージセンサー、３…コントローラー（識別手段の一部）、４…コントロールプログラム用ＲＯＭ（識別手段の一部）、５…ＲＡＭ（識別手段の一部）、６…デコードＲＯＭ（識別手段の一部）、７…ＳＴＡＲＴ／ＳＴＯＰ検知回路（識別手段の一部）、７ｓ−１，７ｓ−２，７ｓ−３…シフトレジスタ、７ｃ−１１，７ｃ−１２，７ｃ−１３，７ｃ−１４，７ｃ−１５，７ｃ−１６，７ｃ−２１，７ｃ−２２，７ｃ−２３，７ｃ−２４，７ｃ−２５，７ｃ−２６…色判定回路、７ａ−１，７ａ−２…６入力ＡＮＤゲート
【図１】
2004355122.tif 000003
【図２】
2004355122.tif 000004
【図３】
2004355122.tif 000005
【図４】
2004355122.tif 000006
【図５】
2004355122.tif 000007
【図６】
2004355122.tif 000008
【図７】
2004355122.tif 000009
【図８】
2004355122.tif 000010
【図９】
2004355122.tif 000011
【図１０】
2004355122.tif 000012
【図１１】
2004355122.tif 000013
【図１２】
2004355122.tif 000014
【図１３】
2004355122.tif 000015
【図１４】
2004355122.tif 000016
【図１５】
2004355122.tif 000017
【図１６】
2004355122.tif 000018
【図１７】
2004355122.tif 000019
【図１８】
2004355122.tif 000020
【図１９】
2004355122.tif 000021
【図２０】
2004355122.tif 000022
【図２１】
2004355122.tif 000023
【図２２】
2004355122.tif 000024
【図２３】
2004355122.tif 000025
【図２４】
2004355122.tif 000026
【図２５】
2004355122.tif 000027