(57)【特許請求の範囲】
【請求項１】
２次元カラーバーコードであって、
複数の白黒タイルを含む構成ブロックと、
複数の色タイルを含む少なくとも一つのデータブロックと、を備え、前記色タイルの各々は、データ値を表す色階調値を有し、前記色階調値は予め設定された複数の再現可能な色階調値のうちの一つであり、
前記構成ブロックは前記２次元カラーバーコードの構成情報をエンコードし、前記構成情報は前記データブロックの前記色タイルで用いられる前記再現可能な色階調値の数を特定する２次元カラーバーコード。
【請求項２】
前記構成情報は、更に、前記バーコードの横方向における前記データブロックの数を特定し、また、前記バーコードの縦方向における前記データブロックの数を特定する請求項１の２次元カラーバーコード。
【請求項３】
前記データブロックの前記色タイルの各々は、赤、緑又は青色の色階調値を有しており、前記構成情報は、前記赤色階調値の数、前記緑色階調値の数、前記青色階調値の数を特定する請求項１又は２の２次元カラーバーコード。
【請求項４】
前記データブロックの前記色タイルの各々は、シアン、マゼンタ又は黄色の色階調値を有しており、前記構成情報は、前記シアン色階調値の数、前記マゼンタ色階調値の数、前記黄色階調値の数を特定する請求項１又は２の２次元カラーバーコード。
【請求項５】
前記構成ブロックは前記バーコードの隅に位置しており、前記バーコードは、前記構成ブロックに隣接する第１のコーナーマーカーを更に備える請求項１〜４の何れか一項の２次元カラーバーコード。
【請求項６】
前記第１のコーナーマーカーは、黒タイルの横列及び縦列を有する請求項５の２次元カラーバーコード。
【請求項７】
前記バーコードの他の３隅に位置する３つの第２のコーナーマーカーと、前記バーコードの一つ以上の辺に沿って位置する複数のブロックセパレータとを更に備える請求項５又は６の２次元カラーバーコード。
【請求項８】
前記第２のコーナーマーカー及び前記ブロックセパレータの各々は黒タイルである請求項７の２次元カラーバーコード。
【請求項９】
前記データブロックの前記タイルの各々は、色部分と、前記タイルの少なくとも２つの隣接する辺における無色の境界とを有する請求項１〜８の何れか一項の２次元カラーバーコード。
【請求項１０】
前記データブロックにおいて隣接する前記色タイルは異なる色を有する請求項１〜９の何れか一項の２次元カラーバーコード。
【請求項１１】
２次元カラーバーコードの生成方法であって、
（ａ）前記２次元カラーバーコードにおいてエンコードされる入力データを取得するステップと、
（ｂ）前記カラーバーコードで用いられる複数の色の再現可能な色階調値の数を特定する構成情報を取得するステップと、
（ｃ）複数の白黒タイルを含む構成ブロックをレンダリングするステップであって、前記構成ブロックは前記再現可能な色階調値の数を特定する構成情報をエンコードしているステップと、
（ｄ）複数の色タイルを含む少なくとも一つのデータブロックをレンダリングするステップであって、前記色タイルの各々はデータ値を表す色階調値を有し、前記色階調値は前記複数の再現可能な色階調値の一つであるステップと、
を含む２次元カラーバーコードの生成方法。
【請求項１２】
（ｅ）前記構成情報に基づき、前記データブロックの各々のデータ容量を決定するステップと、
（ｆ）前記入力データ及び前記データブロックの各々の前記データ容量に基づき、前記入力データをエンコードするために必要な前記データブロックの数と、前記バーコードの横方向における前記データブロックの数及び縦方向における前記データブロックの数とを決定するステップと、を更に含み、
前記ステップ（ｃ）において、前記構成ブロックは、更に、前記横方向及び縦方向における前記データブロックの数を特定する構成情報をエンコードしている請求項１１の方法。
【請求項１３】
前記データブロックの前記色タイルの各々は、赤、緑又は青色の色階調値を有し、前記ステップ（ｃ）において、前記構成情報は、前記赤色階調値の数、前記緑色階調値の数、前記青色階調値の数を特定する請求項１１又は１２の方法。
【請求項１４】
前記データブロックの前記色タイルの各々は、シアン、マゼンタ又は黄色の色階調値を有し、前記ステップ（ｃ）において、前記構成情報は、前記シアン色階調値の数、前記マゼンタ色階調値の数、前記黄色階調値の数を特定する請求項１１又は１２の方法。
【請求項１５】
前記構成ブロックは前記バーコードの隅に位置し、
（ｇ）前記構成ブロックに隣接する第１のコーナーマーカーをレンダリングするステップと、を更に含む請求項１１〜１４の何れか一項の方法。
【請求項１６】
前記第１のコーナーマーカーは、黒タイルの横列及び縦列を有する請求項１５の方法。
【請求項１７】
（ｈ）前記バーコードの他の３隅に位置する３つの第２のコーナーマーカーをレンダリングするステップと、
（ｉ）前記バーコードの一つ以上の辺に沿って位置する複数のブロックセパレータをレンダリングするステップと、
を更に含む請求項１５又は１６の方法。
【請求項１８】
前記第２のコーナーマーカー及び前記ブロックセパレータの各々は黒タイルである請求項１７の方法。
【請求項１９】
前記データブロックの前記タイルの各々は、色部分と、前記タイルの少なくとも２つの隣接する辺における無色の境界とを有する請求項１１〜１８の何れか一項の方法。
【請求項２０】
前記データブロックにおいて隣接する前記色タイルは異なる色を有する請求項１１〜１９の何れか一項の方法。
【請求項２１】
データ処理システムを制御するためのコンピュータにより読み取り可能なプログラムコードを有し、前記データ処理システムに２次元カラーバーコードの生成工程を実行させるためのプログラムであって、
前記生成工程は、
（ａ）２次元カラーバーコードにおいてエンコードされる入力データを取得するステップと、
（ｂ）前記カラーバーコードで用いられる複数の色の再現可能な色階調値の数を特定する構成情報を取得するステップと、
（ｃ）複数の白黒タイルを含む構成ブロックをレンダリングするステップであって、前記構成ブロックは前記再現可能な色階調値の数を特定する構成情報をエンコードしているステップと、
（ｄ）複数の色タイルを含む少なくとも一つのデータブロックをレンダリングするステップであって、前記色タイルの各々はデータ値を表す色階調値を有し、前記色階調値は前記複数の再現可能な色階調値の一つであるステップと、
を含むプログラム。
【請求項２２】
（ｅ）前記構成情報に基づき、前記データブロックの各々のデータ容量を決定するステップと、
（ｆ）前記入力データ及び前記データブロックの各々の前記データ容量に基づき、前記入力データをエンコードするために必要な前記データブロックの数と、前記バーコードの横方向における前記データブロックの数及び縦方向における前記データブロックの数とを決定するステップと、を更に含み、
前記ステップ（ｃ）において、前記構成ブロックは、更に、前記横方向及び縦方向における前記データブロックの数を特定する構成情報をエンコードしている請求項２１のプログラム。
【請求項２３】
前記データブロックの前記色タイルの各々は、赤、緑又は青色の色階調値を有し、前記ステップ（ｃ）において、前記構成情報は、前記赤色階調値の数、前記緑色階調値の数、前記青色階調値の数を特定する請求項２１又は２２のプログラム。
【請求項２４】
前記データブロックの前記色タイルの各々は、シアン、マゼンタ又は黄色の色階調値を有し、前記ステップ（ｃ）において、前記構成情報は、前記シアン色階調値の数、前記マゼンタ色階調値の数、前記黄色階調値の数を特定する請求項２１又は２２のプログラム。
【請求項２５】
前記構成ブロックは前記バーコードの隅に位置し、
（ｇ）前記構成ブロックに隣接する第１のコーナーマーカーをレンダリングするステップと、を更に含む請求項２１〜２４の何れか一項のプログラム。
【請求項２６】
前記第１のコーナーマーカーは、黒タイルの横列及び縦列を有する請求項２５の方法。
【請求項２７】
（ｈ）前記バーコードの他の３隅に位置する３つの第２のコーナーマーカーをレンダリングするステップと、
（ｉ）前記バーコードの一つ以上の辺に沿って位置する複数のブロックセパレータをレンダリングするステップと、
を更に含む請求項２５又は２６の何れか一項の方法。
【請求項２８】
前記第２のコーナーマーカー及び前記ブロックセパレータの各々は黒タイルである請求項２７の方法。
【請求項２９】
前記データブロックの前記タイルの各々は、色部分と、前記タイルの少なくとも２つの隣接する辺における無色の境界とを有する請求項２１〜２８の何れか一項の方法。
【請求項３０】
前記データブロックにおいて隣接する前記色タイルは異なる色を有する請求項２１〜２９の何れか一項の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カラーバーコードに関し、特に、２次元カラーバーコード、２次元カラーバーコードの生成方法及びプログラムに関する。
【背景技術】
【０００２】
バーコードは、デジタル情報を記録するためのコンピュータにより読み取り可能な記号の一種である。１次元及び２次元の白黒バーコードが広く使用されている。多くのバーコード形式が開発されており、そのうちいくつかの例は、「BarCode-1, 2-Dimension Bar Code Page」(http://www.adams1.com/pub/russadam/stack.html)に記載されている。データ容量を増加させるため、情報を表すのに色を用いる２次元バーコードが提案されている。例えば、ＵＳ特許６０７０８０５号には、２セットの色（赤，緑及び青並びにシアン、マゼンタ及び黄）を用いる耐変形性カラーバーコードシンボルを記載している。他の例では、本出願人の（commonly owned）「Color barcode producing, reading and/or reproducing method and apparatus」と題されたＵＳ特許公開公報２００５／０２８４９４４Ａ１が、カラーバーコードにおいて６つの色（赤、オレンジ、青、緑、黄及びピンク）を用いることを記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許６０７０８０５号
【特許文献２】米国特許出願公開第２００５／０２８４９４４Ａ１号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、２次元（2nd）カラーバーコードの容量及び再現性を向上させる方法を提供することにある。
本発明の更なる又は別の特徴及び効果は、後述の発明の詳細な説明に記述される。その一部は発明の詳細な説明から明らかであり、又は発明を実施することにより確認されるであろう。本発明の目的及び他の効果は、明細書、特許請求の範囲及び添付の図面において特に示された構造によって実現され、達成される。
【課題を解決するための手段】
【０００５】
これらの及び他の目的を達成するため、実施化され、広く記載されているように、本発明は、複数の白黒タイルを含む構成ブロックと、複数の色タイルを含む少なくとも一つのデータブロックと、を備え、前記色タイルの各々は、データ値を表す色階調値を有し、前記色階調値は予め設定された再現可能な色階調値のうちの一つであり、前記構成ブロックは前記２次元カラーバーコードの構成情報をエンコードし、前記構成情報は前記データブロックの前記色タイルで用いられる前記再現可能な色階調値の数を特定する２次元カラーバーコードを提供する。
【０００６】
他の側面によれば、本発明は、（ａ）前記２次元カラーバーコードにおいてエンコードされる入力データを取得するステップと、（ｂ）前記カラーバーコードで用いられる複数の色の再現可能な色階調値の数を特定する構成情報を取得するステップと、（ｃ）複数の白黒タイルを含む構成ブロックをレンダリングするステップであって、前記構成ブロックは前記再現可能な色階調値の数を特定する構成情報をエンコードしているステップと、（ｄ）複数の色タイルを含む少なくとも一つのデータブロックをレンダリングするステップであって、前記色タイルの各々はデータ値を表す色階調値を有し、前記色階調値は前記複数の再現可能な色階調値の一つであるステップと、を含む２次元カラーバーコードの生成方法を提供する。
【０００７】
本発明はまた、データ処理装置に関連するバーコード生成を実行させるプログラムを対象としている。
上述の発明の概要及び後述の発明の詳細な説明は、いずれも例示的かつ説明的なものであり、特許請求の範囲に係る発明について更なる説明を提供することを意図することは言うまでもない。
【図面の簡単な説明】
【０００８】
【図１】図１（ａ）〜（ｅ）は、本発明の実施形態による２次元バーコードの例を示す。
【図２】図２は、本発明の実施形態による２次元バーコードの生成方法を示すフローチャートである。
【図３】図３は、本発明の実施形態による２次元バーコードの再現方法を示すフローチャートである。
【発明を実施するための形態】
【０００９】
本発明の実施形態によれば、２次元カラーバーコードを確実に読み取ってデコードするため、２次元カラーバーコードの構成情報を特定する白黒バーコードブロック形式の構成ブロック（configuration block）が、２次元カラーバーコードの中に含まれる。
【００１０】
図１（ａ）〜（ｅ）は、２次元カラーバーコード及びその規格仕様の例を示している。図１（ａ）で示されるように、白黒構成ブロック１１は２次元バーコード１０の上部左隅に配置されることが好ましい。２次元カラーバーコード１０の残りは、カラーバーコードである多数のデータブロック１２を含んでいる（図１（ｂ）も参照）。構成ブロック及びデータブロックは同じ寸法であることが好ましい。図示された例では、構成ブロック１１及びデータブロック１２は、各々８×８のタイルを有している。構成ブロック１１のタイルは白又は黒であるのに対し、データブロック１２のタイルは赤（Ｒ），緑（Ｇ）若しくは青（Ｂ）の階調又はＲ，Ｇ及びＢの階調の組み合わせである。あるいは、データブロックのタイルは、シアン（Ｃ），マゼンタ（Ｍ）若しくは黄（Ｙ）の階調又はＣ，Ｍ及びＹの階調の組み合わせであってもよい。グレーの階調もまた、ＲＧＢ又はＣＭＹと共にデータブロックの中で用いることができる。他の適当な色のセットを用いることも可能である。各々の色の階調値（グレーを含む）がデータ値を表す。
【００１１】
「Color Barcode with Enhanced Capacity and Readability for a Closed Loop System」（代理人整理番号：７５６７５．Ｂ０４８）と題された、本出願人の同時係属のＵＳ特許に記載されているように、様々なハードウェア要素がデータ容量及びカラーバーコードの可読性を制限する。例えば、プリンタが名目上、１色につき８ビットの色データを印刷することができる（すなわち、２５６色の階調レベル）としても、スキャナは通常、プリンタにより印刷された色の２５６段階の濃さを正確に判定することはできない。前記同時継続の特許出願は、閉ループシステムで使用されるプリンタ及びスキャナのカラーレンダリング性能及び読取性能を検出する方法、並びに、バーコードのデータ容量及び可読性を最大化する手段として、所定の一組のプリンタ及び／又はスキャナのための再現可能な色階調値の最大数を有するカラーバーコードを提供する方法を記載している。バーコードが様々なプリンタモデル及びスキャナモデルで使用される場合、確実にレンダリングされ再度読み取られる色階調値の数は、より制限される。
【００１２】
本発明の実施形態では、各々の色について予め決められた数の再現可能な色階調値が、データブロックのタイルとして用いられている。その数は色によって異なってもよい。例えば、４つの再現可能な赤の階調が用いられる場合、バーコードエンコーダは、４つの再現可能な階調値のうちの一つを有する赤タイルをレンダリングすることになる。レンダリングされたタイルが印刷され、走査されると、走査されたタイルの色階調値がレンダリングされた値から外れることがある。しかし、レンダリングされた色階調値の各々の周辺範囲に収まる。このように、再現可能な階調値を認識しておくことで、タイルにおいてエンコードされた色階調値を正確に再現することが可能となる。各々のタイルによって表された利用可能なデータ値の数（すなわち、タイルのデータ容量）は、すべての色の再現可能な階調値の数の合計である。例えば、Ｒ，Ｇ及びＢの色が用いられ（すなわち、色の組み合わせはない）、その色がそれぞれ４つ，５つ及び６つの再現可能な階調値を含む場合には（白を除く）、各々のタイルは１６つの利用可能な値（白を含む）、つまり４ビットのデータを表すだろう。確実にレンダリングされ、再現されることが可能な、実際の階調数は、ハードウェア要素に依存するだろう。しかし、十分に低い数の再現可能な階調値であれば、カラーバーコードが大部分のプリンタ及びスキャナにより使用できることが保証されるだろう。
【００１３】
再び図１（ａ）〜（ｅ）を参照すると、２次元カラーバーコード１０の境界は、多数のコーナーマーカー１３ａ〜ｄ及びブロックセパレータ１４ａ〜ｂにより決められている。図１（ａ）及び図１（ｃ）に示すように、左上コーナーマーカー１３ａは、左側及び上部から構成ブロックに隣接する黒タイルの縦列及び横列から構成されている。他の３つのコーナーマーカー１３ｂ〜ｄの各々は、カラーバーコード１０の隅に位置する一つの黒タイルによって構成されている。前記左上コーナーマーカーは、他の３つと相違する特別なコーナーマーカーである。多数のブロックセパレータ１４ａ及び１４ｂは、各々黒タイルで構成されており、２次元バーコード１０の四辺に沿って複数のコーナーマーカーの間に配置され、データブロックの長さ寸法ずつ間隔があけられている。横の辺に沿っているブロックセパレータは、データブロックの左端の縦列と一直線になり、縦の辺に沿っているブロックセパレータは、データブロックの上端の一列と一直線になる。図１（ａ）及び図１（ｃ）に示す例では、左上のコーナーマーカー１３ａの黒タイルの縦列及び横列は、隣接するブロックセパレータ１４ａから一つの白タイルによって隔てられるように、下方及び左方に延在している。これは、黒タイルの縦列及び横列の長さ寸法が構成ブロック（及びデータブロック）の大きさ寸法と等しいことを意味している。少なくとも一つのタイルの幅寸法を有する白い空白（境界）は、コーナーマーカー１３ａ〜ｄ及びブロックセパレータ１４ａ〜ｂの外部で、バーコード１０を囲むように設けられている。
【００１４】
バーコードデコーダが２次元カラーバーコード１０を読み取ると、左上のコーナーマーカー１３ａは、図１（ａ）に示すパターンのような、黒タイルの縦列及び横列の予め設定されたパターンを検索することにより、認証されることができる。予め設定されたタイルのパターンは、左上のコーナーマーカー１３ａに隣接するブロックセパレータ１４ａを任意で含むことができる（図１（ｃ）参照）。なお、前記構成ブロックは、構成ブロックの左上のタイルが白となるように設計してもよく、この白タイルは任意で、予め設定される左上のコーナーマーカー１３ａを示すパターンの一部とされてもよい（図１（ｃ）参照）。他の３つのコーナーマーカー１３ｂ〜ｄは、図１（ｄ）に示すタイルパターンを検索することにより認証される。図１（ｄ）では、黒い四角がコーナーマーカータイルを表し、「Ｃ」と表示された四角が色タイルを表しており、黒タイルの周りの残りのタイルは白である。前記ブロックセパレータは、図１（ｅ）に示すパターンを検索することにより認証されることができる。図１（ｅ）では、黒い四角がブロックセパレータタイルを表し、「Ｃ」と表示された四角が色タイルを表し、「Ｂ」と表示されたタイルが黒又は白タイルを表し、黒タイルの周りのタイルが白である。左上のコーナーマーカー１３ａの近くに位置する２つのブロックセパレータ１４ａの各々は２つの隣接する色タイルと、一つの隣接する黒又は白タイルを有するという点に注意されたい。また、左上のコーナーマーカー１３ａから更に離れて位置するブロックセパレータ１４ｂの各々は３つの隣接する色タイルを有するという点に注意されたい。
【００１５】
タイルの大きさ寸法（すなわち、Ｘ及びＹ方向における長さ寸法）及びブロックごとのタイルの数は、デコーダにおいて既知の予め設定された値とすることができる（例えば、１タイルにつき０．０１’’（０．０１インチ）×０．０１５’’（０．０１５インチ），１ブロックにつき８×８タイル）。あるいは、タイルの大きさ寸法及び／又はブロックごとのタイルの数は、左上のコーナーマーカー１３ａのパターンを解析することにより取得することもできる。例えば、左上のコーナーマーカーにおける黒タイルの縦列の幅寸法は前記タイルの幅寸法と等しく、黒タイルの横列の高さ寸法（height）は前記タイルの高さ寸法に等しい。タイルの高さ寸法で除算された黒タイルの縦列の高さ寸法はＹ方向のブロックごとのタイルの数と等しく、タイルの幅寸法で除算された黒タイルの横列の幅寸法はＸ方向のブロックごとのタイルの数と等しい。あるいは、予め設定された値を、ブロックごとのタイルの数として用いることも可能である（例えば、図１（ａ）の例における「８×８」）。また、タイルの高さ寸法及び幅寸法は、黒タイルの横列の高さ寸法及び幅寸法並びに黒タイルの縦列の高さ寸法及び幅寸法から、より確実に計算することができる。
【００１６】
図示された例において、構成ブロック及び特別なコーナーマーカー（他の３つと異なるもの）は、２次元バーコードの左上隅に位置している。これは、一般的に印刷された原稿は、平台又は原稿送り装置と一体のスキャナにおいて左から右へ、上から下へ走査されるため、便宜である。あるいは、好ましいという点では劣るが、特別なコーナーマーカー及び構成ブロックの相対的な位置及び配置が慣例により予め設定されているのであれば、特別なコーナーマーカー及び構成ブロックは他方の隅に位置してもよく、また、特別なコーナーマーカー及び構成ブロックはそれぞれ異なる隅に位置してもよい。
【００１７】
図１（ａ）に示すように、２次元バーコード（複数のコーナーマーカー及び複数のブロックセパレータタイルを含む）は、（横（Ｘ）方向及び縦（Ｙ）方向において）一つのタイルと同じ幅方向を有する白い境界によって４辺を囲まれている。このように、この例では、タイル数による２次元カラーバーコードのＸ（又はＹ）寸法の合計は、Ｘ（又はＹ）方向におけるブロックごとのタイルの数に、Ｘ（又はＹ）方向におけるブロックの数（構成ブロックを含む）を乗じて４を足した数と等しい。図示された例において、各々のデータブロックは８×８のタイルを含んでいる。各々の色タイルが４ビットのデータをエンコードするとすれば、各々のデータブロックは３２バイトのデータをエンコードする。バーコードが２００ｄｐｉの解像力で印刷され又は２００ｄｐｉの画像に組み込まれ、各々のタイルが横（Ｘの寸法で）２ピクセル（又はドット）、縦（Ｙの寸法で）３ピクセルの大きさ寸法であるとすれば、横が約１’’（１インチ）、縦が約１’’（インチ）の大きさ寸法のバーコードは、１２×７−１のデータブロックを含み、２６５６バイトのデータをエンコードするだろう。
【００１８】
構成ブロックは、２次元バーコードの様々なパラメータを特定するものであり、パラメータは以下を含んでいる。
（１）複数の赤タイルの色階調値の数
（２）複数の緑タイルの色階調値の数
（３）複数の青タイルの色階調値の数
（４）Ｘ方向におけるデータブロックの数
（５）Ｙ方向におけるデータブロックの数
（６）タイムスタンプ、エラー訂正、色訂正などのメタデータ
【００１９】
図１（ａ）に示す例では、Ｒ，Ｇ及びＢの色階調の数は１から２５５に及び、それぞれが「Ｒ」，「Ｇ」及び「Ｂ」と表示されたタイルと、左上隅の白タイル（「１」を表している）とによって表されている。Ｘ及びＹ方向におけるデータブロックの数も、１から２５５に及び、「ＮＵＭＸＢＬＯＫ」及び「ＮＵＭＹＢＬＯＫ」と表示されたタイルによって表されている。メタデータは「ＭＥＴＡＤＡＴＡ」と表示されたタイルにより表される。
【００２０】
上記の図示された例では、構成情報は、各々の色（Ｒ，Ｇ及びＢ）において再現可能な色階調値の数を特定することにより、再現可能な色階調値を特定する。前記階調値自体は、デコーダにより、再現可能な階調値の数に基づいて、各々の色の階調（例えば、０から２５５）の範囲全体をより小さな階調の範囲に分割することにより決定される。これにより、スキャナがバーコードのレンダラー（renderer）より小さい色深度を有する場合にも、デコーダが色階調を正確に再現することが可能となる。あるいは、構成ブロックにおいてより多くのビットを要することになるかもしれないが、構成情報が色階調値を明確に特定してもよい。
【００２１】
一つの実施形態では、各々の色タイルのすべてのピクセルが同じ色階調値を有している。別の実施形態では、各々の色タイルは、白い（無色の）境界によって囲まれた同じ色階調値の色部分を含んでいる。このような白い境界によって、プリンタトナーの散乱やＣＣＤ画像化の過程から生じうるエッジ部分の滲み（bleeding）によるアーチファクトを低減することにより、色タイルの再現性を高めることができる。白い境界を用いることは、タイルの大きさ寸法の増大を要するかもしれない。例えば、各々のタイルが６×４ピクセルの色部分を有し、白い境界の幅寸法をＸ方向において１ピクセル、Ｙ方向において２ピクセルとすれば、タイルの大きさ寸法は８×８ピクセルとなる。白い境界を色タイルにおいて使用する場合、白い境界の（Ｘ及びＹ方向各々における）幅寸法は構成ブロックにおいて特定され、当該幅寸法はデコーダがタイルの色値を正確に検出するために利用される。白のピクセルは、タイルの４辺すべてに配置することが可能あり、又は、隣接する複数のタイルの色部分を分割するのと同様の効果を有するように隣接する２辺に配置することが可能である点に留意されたい。
【００２２】
上述した実施形態では、各々の色タイルが有することのできる色は制限されていない。言い換えれば、各々のタイルは、いずれかの色の再現が可能な階調値のうち、いずれか一つを有することができる。他の実施形態では、データブロックにおけるタイルの色は、隣接するタイル（共通の境界を分かち合っているタイル）が異なる色を有するように配列される。すなわち、２つの赤タイル、２つの緑タイル、２つの青タイルが互いに隣り合うことはできない。例えば、複数のタイルは、各々のデータブロックの横列最上段がＲ，Ｇ，Ｂ，Ｒ，Ｇ，Ｂ・・・、前記横列の２段目がＢ，Ｒ，Ｇ，Ｂ，Ｒ，Ｇ、前記横列の３段目がＧ，Ｂ，Ｒ，Ｇ，Ｂ，Ｒ・・・等となるように配列することが可能である。各々の色タイルは、決められた色についての再現可能な階調値のうちの一つを有することができる。このような制約は各々のタイルのデータ容量を低減するものの、色タイルの再現性を高める。これは、隣接するタイルが異なる色（Ｒ，Ｇ又はＢ）を有すると、タイルがどこから始まりどこで終わるかを決定することが容易となるためである。他方、Ｒ＝１２８及びＲ＝２５０の２つの隣接するタイルが印刷され、走査されるとすると、各々のタイルの部分は、隣接するタイルに近い値で像が取得されるおそれがある。隣接する複数のタイルが異なる色を有するように制限すれば、隣接する複数のタイルの色階調の相違がより明白となるだろう。
ここでは２次元バーコードの例が示され、詳細に説明されるが、本発明はこのような特定の詳細な記述に限定されるものではない点に留意されたい。
【００２３】
本発明の実施形態による２次元バーコードの利点には、データ容量の増加及び／又はバーコードの物理的大きさの低減、及び信頼性のある色階調値の再現が含まれる。
図２及び３は、それぞれ本発明の実施形態に従った、２次元カラーバーコードの生成方法及び２次元カラーバーコードでコード化されたデータの再現方法を示している。バーコードの生成方法及びデータ再現方法は、それぞれ、一つ以上のプロセッサ及びプロセッサにより実行されるソフトウェアを有するデータ処理システムにおいて実施されることが可能である。図２及び３に記載され、示されるステップは、図面に示される特定の順序で実行される必要はない点に注意されたい。
【００２４】
図２に示されるように、２次元カラーバーコードの生成過程において、データ処理装置は、入力データを取得してビットストリーム（bit stream）の形式にエンコードし（ステップＳ２１）、更に、赤、緑及び青タイルの再現可能な色階調値の数及び所望のメタデータを含むバーコード構成情報を取得する（ステップＳ２２）。入力データは、テキスト文書、画像、グラフィックなどの種々のソースに由来するものでよく、圧縮、暗号化などの所望の処理を施される。構成情報に基づき、前記システムは、カラーバーコードのデータブロックごとのデータ容量（ＤＣＢ，ビット単位）を決定する（ステップＳ２３）。前記システムは、その後、入力データをエンコードするために必要とされるデータブロックの数を決定し（ステップＳ２４）、Ｘ及びＹ方向で必要とされるブロックの数（ＮＵＭＸＢＬＯＫ及びＮＵＭＹＢＬＯＫ）を決定する。この数が、バーコードのビットマップサイズを決定する（ステップＳ２５）。構成ブロックと必要とされるデータブロックの数とが、ＮＵＭＸＢＬＯＫ×ＮＵＭＹＢＬＯＫより少ないときは、ダミーブロック（例えば、すべて白、すべて黒、市松模様等）が空白を埋めるために使用され、２次元バーコードは矩形とされる。ステップＳ２３〜Ｓ２５は、２次元カラーバーコードの構成を決定するビットストリーム解析ステップである。
【００２５】
ステップＳ２５における決定に基づき、前記システムはバーコードビットマップメモリを前記バーコードのレンダリングのために割り当てる（ステップＳ２６）。前記システムは、まず、複数の白黒タイルを備えた構成ブロックをレンダリングし、それをバーコードビットマップの左上隅に配置する（ステップＳ２７）。構成ブロックは、赤、緑及び青タイルの再現可能な色階調値の数、Ｘ及びＹ方向におけるブロックの数並びにメタデータ等を含む構成情報をエンコードしている。その後、入力ビットストリームからセグメントデータが与えられ、色空間（color space）に変換される（ステップＳ２８）。例えば、各々の色タイルが４ビットのデータをエンコードできるとすると、４ビットのセグメントデータの各々が、１タイルの色階調値に変換される。バーコードがそれぞれ４，５及び６つの再現可能なＲ，Ｇ及びＢ階調を使用する上述の例では、値０は白によって表され、値１〜４は赤の４つの階調によって表され、値５〜９は緑の５つの階調によって表され、値１０〜１５は青の６つの階調によって表されることができる。入力ビットストリームから得たセグメントデータの長さは、データブロックごとのデータ容量（ＤＣＢ）である。あるいは、各々のデータブロックはブロック番号を含むことができ、この場合、入力ビットストリームから得たセグメントデータの長さはＤＣＢからブロック番号を特定するために用いられるビット数を引いた値であり、ブロック番号ビットはデータセグメントの先端又は終端に挿入される。ブロック番号がデータブロックから省略された場合は、データブロックはバーコードにおいて予め設定された順で配置されることができ、デコーダはデータブロックをその順でデコードする。データセグメントを色空間に変換した後、前記システムはデータブロックをレンダリングし、それをバーコードビットマップの中に配置する（ステップＳ２９）。ステップＳ２８及びＳ２９は、入力ビットストリーム中のすべてのデータがエンコードされるまで繰り返される。任意で、データ列の終端は、データの終端を示すため、最後のデータブロックにエンコードされてもよい。上記処理によりレンダリングされたバーコードイメージビットマップは、記憶され又は印刷されることができる。
【００２６】
２次元カラーバーコードデータの再現方法を、図３を参照して述べる。まず、印刷された原稿が走査されてバーコードイメージビットマップが取得される。バーコードは、好ましくは、スキャナ若しくはプリンタ／コピー機／スキャナの複合機等の平台又は原稿送り装置を有するカラー読取装置によって走査される。あるいは、バーコードイメージビットマップは、記憶された原稿から取得されてもよい。データ処理装置（デコーダ）は、まず、バーコードの左上のコーナーマーカーを検出する（ステップＳ３１）。この処理は、図１（ｃ）に示すパターン及び上述したパターンのような予め設定された黒タイルパターンを認識することにより行うことができる。任意で、バーコードの周囲にある他の３つのコーナーマーカー及びブロックセパレータを同様に検出してもよい。前記システムは、その後、構成ブロックを分離する。構成ブロックは、左上コーナーマーカーに隣接して左上隅に位置し、既知の数の白黒タイルを含んでいる（例えば、８×８タイルなど）（ステップＳ３２）。上述のように、タイルの大きさ寸法及びブロックごとのタイルの数は固定値としてもよく、エンコーダが左上コーナーマーカーを解析することにより決定してもよい。構成ブロックにおいてエンコードされたバーコード構成情報は、抽出され、デコードされる（ステップＳ３３）。前記システムは、ビットストリームメモリをビットストリーム全体に割り当てる（ステップＳ３４）。
【００２７】
構成情報に基づき、バーコードイメージビットマップは、各々が定数（８×８タイル等）のタイルを含む色データブロックごとの個々のビットマップに分割され、個々のブロックは待ち行列に配置される（ステップＳ３５）。複数のコーナーマーカー及び複数のブロックセパレータは、その分割のために用いることができ、分割の精度を高める。例えば、それらは隣のデータブロックの開始点を確定することができる。待ち行列中の各々の色データブロックごとに、各々のタイルから色値が抽出される（ステップＳ３６）。各々のタイルの色は、タイルにおける走査されたすべてのピクセルの色値を平均することにより決定される。データブロックから再現された色データは、各々の色値をデータ値に変換することにより、ビットストリームに変換される（ステップＳ３７）。ブロック番号がデータブロックに追加されている場合は、その値が抽出され、その値を表すビットがビットストリームから除かれる。データブロックから再現されたビットストリームは、その後、ビットストリームメモリのうち、ブロック番号により決定される位置、又は、ブロック番号が用いられない場合はバーコードにおけるデータブロックの位置により決定される位置に収められる（ステップＳ３８）。ステップＳ３６〜Ｓ３８は、すべてのデータブロックについて処理がされるまで、色データブロック毎について繰り返される。最後のデータブロックは、データブロックのデータ列の特殊な終端を検出することにより検出することができる。
【００２８】
他のバーコードデータ再現方法としては、まずバーコードの白黒走査が実行され、白黒構成ブロックから構成データを抽出する。その構成データに基づき、前記システムはスキャナがバーコードの色部分を読み取るのに十分な性能を有するか否かを判定する。次にカラー走査が実行され、バーコードにおいてエンコードされたデータを抽出する。同様の決定ステップが図３に示す方法のステップＳ３３の後に含まれてもよい。
【００２９】
上述の方法は、コンピュータ及びプリンタと、前記コンピュータに接続されたスキャナ及び／又は複合機を備えたデータ処理システムにおいて実施される。前記方法は、好ましくは、プリンタ、スキャナ及び／又は複合機のプロセッサにより、若しくはコンピュータにより、又はその双方により実行されるソフトウェアによって実施される。例えば、プリンタに接続されたコンピュータは、ソフトウェアプログラムを実行して２次元カラーバーコードを生成し、それを印刷される原稿に組み込み、その原稿を印刷のためプリンタ又は複合機に送る。実際の印刷は、いかなる適切な方法によっても実現可能である。同様に、原稿の走査は、スキャナ又は複合機によりいかなる適切な方法によっても実現可能である。また、スキャナに接続されたコンピュータは、ソフトウェアプログラムを実行してカラーバーコードを検出し、エンコードされたデータを抽出することが可能である。
【００３０】
図１（ａ）〜（ｅ）に示す本発明の好ましい実施形態で、複数の矩形のタイルを有する２次元バーコードを用いたが、本発明は複数の矩形でないタイルを有する２次元バーコードに適用してもよい。
【００３１】
本発明の趣旨を逸脱しない範囲で、本発明の選択的な画像のエンコード及び置換方法並びに装置に種々の改良及び変更が加えられうることは、当業者にとって明らかである。このように、本発明は、添付の特許請求の範囲及びそれに均等な範囲内である改良又は変更に及ぶことが意図されている。
【図１】
0005395286.tif 000002
【図２】
0005395286.tif 000003
【図３】
0005395286.tif 000004