(57)【特許請求の範囲】
【請求項１】
マトリクスの各要素にランダムに、配置する順である番号を付与し、配置位置を記憶した配置メモリと、前記配置メモリから配置されるデータの配置アドレスを生成する配置アドレス生成手段とからなる配置手段と、前記マトリクスの各要素を、前記データに応じた色に変換してマトリクス画像を形成する画像形成手段とを有し、
前記配置手段は，前記配置されるデータを、前記配置アドレス生成手段で生成された配置アドレスに配置し、マトリクス内にある複数の所定の要素位置には、所定の色を配置してリファレンスパターンを生成して、当該リファレンスパターンを含む２次元コードの画像データを生成する画像生成装置により生成された２次元コードの画像データを処理する２次元コード読み取り装置であって、
前記２次元コードの領域を抽出する領域抽出手段と、
前記２次元コードの領域に対し読み取り画素位置を設定する読み取り画素位置設定手段と、
読み取り画素位置に基づいて特定されたサンプリング点を中心とする画素データの平均値を求めるリファレンスパターン読み取り手段とを含む２次元コード読み取り装置。
【請求項２】
マトリクスの各要素にランダムに、配置する順である番号を付与し、配置位置を記憶した配置メモリと、前記配置メモリから配置されるデータの配置アドレスを生成する配置アドレス生成手段とからなる配置手段と、前記マトリクスの各要素を、前記データに応じた色に変換してマトリクス画像を形成する画像形成手段とを有し、
前記配置手段は，前記配置されるデータを、前記配置アドレス生成手段で生成された配置アドレスに配置し、マトリクス内にある複数の所定の要素位置には、所定の色を配置してリファレンスパターンを生成して、当該リファレンスパターンを含む２次元コードの画像データを生成する画像生成装置により生成された２次元コードの画像データを処理する２次元コード読み取り装置であって、
前記２次元コードの領域を抽出する領域抽出段階と、
前記２次元コードの領域に対し読み取り画素位置を設定する読み取り画素位置設定段階と、
読み取り画素位置に基づいて特定されたサンプリング点を中心とする画素データの平均値を求めるリファレンスパターン読み取り段階とを含む２次元コード読み取り方法。
【請求項３】
マトリクスの各要素にランダムに、配置する順である番号を付与し、配置位置を記憶した配置メモリと、前記配置メモリから配置されるデータの配置アドレスを生成する配置アドレス生成手段とからなる配置手段と、前記マトリクスの各要素を、前記データに応じた色に変換してマトリクス画像を形成する画像形成手段とを有し、
前記配置手段は，前記配置されるデータを、前記配置アドレス生成手段で生成された配置アドレスに配置し、マトリクス内にある複数の所定の要素位置には、所定の色を配置してリファレンスパターンを生成して、当該リファレンスパターンを含む２次元コードの画像データを生成する画像生成装置により生成された画像データを処理する２次元コード読み取り方法をコンピュータに実行させる２次元コード読み取りプログラムであって、コンピュータに、
前記２次元コードの領域を抽出する領域抽出段階と、
前記２次元コードの領域に対して読み取り画素位置を設定する読み取り画素位置設定段階と、
読み取り画素位置に基づいて特定されたサンプリング点を中心とする画素データの平均値を求めるリファレンスパターン読み取り段階とを実行させる２次元コード読み取りプログラム。
【請求項４】
請求項３に記載のプログラムを格納した、コンピュータによって読み取り可能な固定あるいは着脱可能な情報記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像生成装置、画像生成方法、その方法をコンピュータで実施するためのプログラムを記録した記録媒体、及びそのプログラムに係り、特にカラーの2次元コードを生成し，印刷することが可能な印刷装置を構成する画像生成装置，そのための方法，およびコンピュータによってカラーの2次元コードを生成するためのプログラムを記録した記録媒体、並びにそのプログラムに関する。
【０００２】
【従来の技術】
従来からデジタルデータを機械読み取り可能な形態に変換して紙，フィルムなどの可視の記録媒体に印刷し，当該デジタルデータを管理する方法が知られている。
【０００３】
機械読み取り可能な形態としては，流通，販売，在庫などの商品管理の分野で一般に広く普及している一次元のバーコードが周知である．これらは，所定の長さのバーが横一列に複数並べられたものであり，光学的読取装置でバーコードに埋められた情報を読み出すことができる。しかしながら，一次元のバーコードに埋められるデータ量は非常に少なく，高々英数字２０字程度である。
【０００４】
また，バーコードに埋められるデータ量を増やすことを目的として多種の２次元バーコードが開発され，最近になって普及してきている。代表的なものとしては，データマトリックス，QRコード，ベリコードなどがあり，自動認識協会（AIM）によって規格化されている。これらのコードでは，データ量に応じてサイズを変えたり，複数のコードを連結したりしてコードに埋め込むことの出来るデータ量を増加させている。しかしながら、これらのコードに埋め込み可能なデータ量は，エラー訂正符号をどれだけ入れるかにもよるが，大体２，３キロバイトが限界である。
【０００５】
これらの用途とは別だが、より大きなデータ量を埋め込み可能なコードも世の中には存在している。例えば，特開平6-343132号公報では、データをエンコードして数枚分の2次元コードを作成し，ファクシミリによってデータを伝送し，受け手ではそれをデコードしてデータを得るという構成が開示されている。この場合には，解像度にもよるが，10から20キロバイトぐらいのデータをA4一枚の紙に埋める（含ませる）ことが可能である。
【０００６】
さらには，コードのカラー化も検討されており，前記特開平6-343132号公報，特開平6-214859号公報，特開平10-55420号公報などでは、2次元コードのカラー化について開示されている。特に，特開平6-214859号公報，特開平10-55420号公報では、カラーの2次元コードを作成する場合の具体的な方法が開示されている。これらの構成では、シアン，マゼンタ，イエローの3色のカラーを使用して埋め込み可能なデータ量を，白黒を使う場合と比較して3倍程度に向上させている。
【０００７】
【発明が解決しようとする課題】
上記のように，2次元バーコード化，カラーの使用などにより，バーコードに多くの情報を埋められるようになってはきたが，A4一枚に埋め込み可能なデータ量はせいぜい100〜200キロバイトがこれまでの普及技術では限界であり，デジタル化された画像情報や，音声情報のようなソースをコード化しようとする場合，元の画質や音質を維持しようとするとコードサイズが大きくなりすぎ，紙に印刷した場合には何枚もの紙に渡り，管理するのが難しかった。また，一枚の紙に収めようとするならば，データ圧縮の圧縮比を高くしてソース情報の画質や音質を著しく劣化させなければならず，結果として復元される画像や音声は見聞きするのに耐え難い品質となる可能性があった。
【０００８】
このため，印刷物を用いてデジタルデータを保管する目的で、少ない面積により多くの情報を埋め込み可能な方法が望まれていた。
【０００９】
本発明は，上記課題を解決するためになされたものであり，2次元コードに埋め込み可能なデータ量を飛躍的に増大させることを目的とし，さらに，それを実用化する画像生成装置及び画像生成方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
請求項１に記載の発明は、マトリクスの各要素にランダムに、配置する順である番号を付与し、配置位置を記憶した配置メモリと、前記配置メモリから配置されるデータの配置アドレスを生成する配置アドレス生成手段とからなる配置手段と、前記マトリクスの各要素を、前記データに応じた色に変換してマトリクス画像を形成する画像形成手段とを有し、前記配置手段は，前記配置されるデータを、前記配置アドレス生成手段で生成された配置アドレスに配置し、マトリクス内にある複数の所定の要素位置には、所定の色を配置してリファレンスパターンを生成して、当該リファレンスパターンを含む２次元コードの画像データを生成する画像生成装置により生成された２次元コードの画像データを処理する２次元コード読み取り装置であって、
前記２次元コードの領域を抽出する領域抽出手段と、
前記２次元コードの領域に対し読み取り画素位置を設定する読み取り画素位置設定手段と、
読み取り画素位置に基づいて特定されたサンプリング点を中心とする画素データの平均値を求めるリファレンスパターン読み取り手段とを含む２次元コード読み取り装置である。
請求項２に記載の発明は、マトリクスの各要素にランダムに、配置する順である番号を付与し、配置位置を記憶した配置メモリと、前記配置メモリから配置されるデータの配置アドレスを生成する配置アドレス生成手段とからなる配置手段と、前記マトリクスの各要素を、前記データに応じた色に変換してマトリクス画像を形成する画像形成手段とを有し、前記配置手段は，前記配置されるデータを、前記配置アドレス生成手段で生成された配置アドレスに配置し、マトリクス内にある複数の所定の要素位置には、所定の色を配置してリファレンスパターンを生成して、当該リファレンスパターンを含む２次元コードの画像データを生成する画像生成装置により生成された２次元コードの画像データを処理する２次元コード読み取り方法であって、
前記２次元コードの領域を抽出する領域抽出段階と、
前記２次元コードの領域に対し読み取り画素位置を設定する読み取り画素位置設定段階と、
読み取り画素位置に基づいて特定されたサンプリング点を中心とする画素データの平均値を求めるリファレンスパターン読み取り段階とを含む２次元コード読み取り方法である。
請求項３に記載の発明は、マトリクスの各要素にランダムに、配置する順である番号を付与し、配置位置を記憶した配置メモリと、前記配置メモリから配置されるデータの配置アドレスを生成する配置アドレス生成手段とからなる配置手段と、前記マトリクスの各要素を、前記データに応じた色に変換してマトリクス画像を形成する画像形成手段とを有し、前記配置手段は，前記配置されるデータを、前記配置アドレス生成手段で生成された配置アドレスに配置し、マトリクス内にある複数の所定の要素位置には、所定の色を配置してリファレンスパターンを生成して、当該リファレンスパターンを含む２次元コードの画像データを生成する画像生成装置により生成された２次元コードの画像データを処理する２次元コード読み取り方法をコンピュータに実行させる２次元コード読み取りプログラムであって、コンピュータに、
前記２次元コードの領域を抽出する領域抽出段階と、
前記２次元コードの領域に対して読み取り画素位置を設定する読み取り画素位置設定段階と、
読み取り画素位置に基づいて特定されたサンプリング点を中心とする画素データの平均値を求めるリファレンスパターン読み取り段階とを実行させる２次元コード読み取りプログラムである。
【００１７】
【発明の実施の形態】
図１に本発明で使用されるカラー2次元コードの例を示す。
【００１８】
１０１は2次元コードが印刷される記録担体で，通常は紙，フィルムなどよりなる。１０２は2次元コードの全領域である。2次元コードはセル１０３という最小の単位の矩形の集合であり，各セルには2のｎ乗通りの色のうちの一色が割り当てられて印刷される。
【００１９】
この2次元コードは，その周囲に黒色の枠を有する。2次元コードの四隅には水平・垂直方向に黒2セル，黒3セルあるいは黒4セルのパターンを設け，その間には，白黒1セルずつが交互に現れるパターンを設ける。これら周囲の黒のパターンを利用することにより、2次元コードの領域と向きの検出を行い，さらに読み取り画素位置を決定する。
【００２０】
その他の内側のセル１０３の各々には、埋め込むデータに応じた色（図中、ハッチング又は模様で示す）が割り当てられる。
【００２１】
このカラー2次元コードの実際のデータは図２に示すように小領域２０１の集合よりなる。この小領域２０１は例えば，16×16セルで構成され，1領域あたり２５６個のセル１０３を収納可能である。n=8の時には１領域に全てのリファレンスパターン（後述）がちょうど配置できるので都合がよい。
【００２２】
図２においてハッチングパターンで示した四隅の小領域には上記リファレンスパターンを印刷し，これは読み取り時に2次元コードに使用されている色のデータを正確に再現するのに使用される。仮にこのリファレンスパターンが無いとすると、例えば2次元コードがそのコードで使用できる全階調を使用しなかった場合、セルの色と復元されるデータが一対一に対応せず，データの正確な復元ができなくなり、また、プリンタの調子の変化，プリンタ機種の変更，スキャナの調子の変化，スキャナの機種の変更などにも対応できないこととなる。すなわち、このリファレンスパターンの使用により，どのようなデータを扱う場合でも，またどのようなプリンタとスキャナの組み合わせの場合でも，2次元コードを読みとって正確なデータを再現することが可能になるのである．なお、上記リファレンスパターンは２次元コード内に配置する構成に限られず、２次元コード外に配置するような構成でも構わない。
【００２３】
また，各小領域２０１へのデータの配置の方法であるが，図３に示すように一つの小領域２０１中の各セルに０から２５５までランダムに番号をつけ，０から順にデータを色に変換したものを配置するということを行なう。そのアルゴリズムは，例えば次に示すようなものである。なお、２次元コードは図２に示されたものを使用するものとする。
【００２４】
アルゴリズム１：Start。
【００２５】
▲１▼初期化として，I=0,J=0とする。
【００２６】
▲２▼J=L*５+Kとして配置する小領域Reg(K,L)を選択する。ただし，K,Lが０，４以外の場合のみとする。ここでK,Lが０，４の値しか持たない場合は，当該領域はリファレンスパターンを配置する領域なので、JをインクリメントしてK,Lを再計算するものとする。
【００２７】
▲３▼配置する位置として，M=I mod 256を選択する。ただし，A mod BとはAをBで割った余りを示す。
【００２８】
▲４▼次にI，Jをインクリメントする。
【００２９】
▲５▼▲２▼戻る。
【００３０】
アルゴリズム１：End。
【００３１】
このように配置することによって色のデータが２次元コード全体に均等に配置され，２次元コードに汚れ，欠損，追記などがあっても読み取り誤りが分散し，読み取り時にはエラー訂正によりデータを復元することが可能となる。
【００３２】
次に，リファレンスパターンのテーブルを図４に示す。左端の欄に配置用のアドレスとして０から２５５まで番号をふり，それぞれのアドレスにCMY（シアン、マゼンタ、イエロー）の各色データを割り当てる。この例では，C，Mにそれぞれ３ビットずつ，Yに２ビットを割り当て，CMY三色で計８ビットを割り当てる。図３に示した小領域２０１のセルに割り当てた配置番号と一致するアドレスの色を，該当するセルに割り当てるものとする。こうしてランダムに色が並んだリファレンスパターン領域を４個作成する。但し、これら４個のリファレンスパターン領域の色配列パターンは互いに等しい（図４のテーブルは共通に使用される）。このようにリファレンスパターンの領域を４個作成するのは，印刷位置による印刷階調特性の違い，コードが欠損，汚損した場合等に備えるためである。
【００３３】
次に図５を用いて，本発明の２次元コード生成装置の一実施例を説明する。なお入力データはテキスト，数字，バイナリデータ，実行可能データ等、いかなる情報でよく，ビット列で表現可能なデータならばいかなるものでもよい。
【００３４】
まず、このような入力データを圧縮器５０１で圧縮し、圧縮後のデータサイズの情報を得られたデータの先頭に付加する。圧縮方法としては，LZH,あるいはLZWなどを採用するものとする。いずれも，高効率な圧縮方式であり，コンピュータの技術分野では広く普及しているものである。
【００３５】
次に，誤り訂正信号付加器５０２で誤り訂正信号を付加する。誤り訂正方式も多々存在するが，ここではブロック誤り訂正可能で広く一般に普及しているリードソロモン方式を使用するものとする。圧縮されたデータ１６ワード（1ワード＝１バイト）に対して，３２ワードの誤り訂正符号を生成し，計４８ワードの誤り訂正付き信号を生成する。
【００３６】
この場合１６ワードに対する誤り訂正ができるので，誤り訂正率は，１６／４８＝３３％となる。データの最後で１６ワードに満たない部分については０の値をもつパディングワードで埋めて１６ワードにした後、誤り訂正信号の付加を行うものとする。
【００３７】
誤り訂正符号付加終了時には，４８バイトの倍数分のデータが誤り訂正信号付加器から出力される。
【００３８】
この時に，出力されるデータサイズに応じて不図示のCPUがそのデータを収納できる（表現可能な）最小の2次元コードの大きさを決定し，同じく不図示のレジスタにそれを記憶する。このレジスタの値を配置アドレス生成器５１０が読み出してアドレス生成に利用する。この配置アドレス生成器の詳細な動作に関しては後述する。
【００３９】
次に，ブロック化器５０３において入力されたデータはｎビットずつのブロックにブロック化（ブロック分け）される。データの最後でｎビットに満たないデータが存在する場合には，パディングビットを付加してｎビットにするものとする。本実施例のようにn=8の場合には，パディングビットを付加する必要はない。
【００４０】
次に，ｎビットずつにブロック化されたデータは色信号生成器５０４で色信号CMYに変換される。色信号生成器５０４は，ｎビットのデータを受け取ると，その値をアドレスとしてリファレンスパターンメモリからCMYのデータを読み出し，CMYデータを出力する．リファレンスパターンメモリの内容は，図４に示したリファレンスパターンのテーブルと同一であるものとする。
【００４１】
色信号生成器５０４から出力されたCMYデータは黒信号生成器５０５に入力され，UCR/UCA変換されC’M’Y’K信号として出力される．UCR/UCA変換は，例えば次式で示す方式で行うものとする。
【００４２】
【数１】
0004588916.tif 000002
ここで，min()は最小値を選択する関数とする。また，2^nは２のｎ乗を示す。ｎ＝８の場合には２５６となる。
【００４３】
このようにして変換されて得られたC’M’Y’Kデータは画像メモリ506へ出力され、そこで一時的に記憶される。
【００４４】
画像メモリに格納するアドレスの決定は，配置アドレス生成器５１０が上記アルゴリズム１を実現するように構成されており，以下のように動作することによってなされる。
【００４５】
ブロック化器５０３からデータブロックが出力されるたびにI,Jをインクリメントする。JからK,Lを計算してデータを配置する小領域２０１を決定する。K,Lが０，４の値しか持たない場合はJをインクリメントしK,Lを再計算する。また，Iにより色データを配置する位置番号Mを決定する。配置アドレス生成器５１０は，図３の配置位置が記憶されている配置メモリ５１１からMをアドレスとして小領域２０１の中で配置されるセル１０３位置を読み出す。読み出したセル位置と上記K,LとからC’M’Y’Kデータを記憶すべき画像メモリのアドレスを算出する。
【００４６】
このようにして入力データの書き込みが終了した後，リファレンスパターンのデータを書き込む動作を行う。
【００４７】
まず色信号生成器５０４はリファレンスパターンメモリからアドレス順にCMYデータを読み出す。そしてこの動作を4回行う。このように読み出されたCMYデータは黒信号生成器５０５でC’M’Y’Kデータに変換された後，配置アドレス生成器によって指定された画像メモリ中のアドレス（図２に示すReg(0,0),Reg(4,0),Reg(0,4)，Reg(4,4)内のセル位置）に格納される。さらに，周囲の白黒パターンを黒信号生成器で生成し，画像メモリに書き込む。
【００４８】
このようにして画像メモリへの書き込みが終了の後、そのデータはガンマ補正器５０７によって，例えば図６にあるようなガンマカーブを用いてC’M’Y’Kデータの補正が施され、印刷器５０８によって印刷用に階調処理が行われた後、紙などに印刷される。階調処理はプリンタエンジンの種類によって異なるが，（多値）ディザ，（多値）誤差拡散などが行われるものとする。カラーレーザープリンタの場合には，1ドットで多階調を再現することが可能であり，通常は，小さい領域での多値ディザを採用するものとする。また，インクジェットプリンタの場合には，インクが各色１濃度しかない場合、2階調誤差拡散が行われている。また，特に付加的な淡色インクを使用しているインクジェット方式では3階調誤差拡散が利用される。2階調誤差拡散と比較して3階調誤差拡散は印刷時の粒状性に優れており，図７（ｂ）に示すように，小さな領域で平均濃度を表すことができる。これは，2次元コードの読み取りの際に各セルのデータをサンプリングする場合，サンプリングする領域が小さくて済むため処理が高速にできるという効果を有する。
【００４９】
次にこのようにして印刷された2次元コードをデコードする読み取り器について、図８を用いて説明する。
【００５０】
まず、紙等に印刷された2次元コードをスキャナ７０１で読み込む。この場合、2次元コードがカラー印刷されているため、RGB各色8ビットずつのフルカラー読み取りが行なわれる必要がある。
【００５１】
このようにして読み取った画像データに対しガンマ変換器７０２でガンマ変換を行う。このガンマ変換はいわゆるLOG変換であり，反射率データから濃度データへの変換を意味する。これにより後述する色補正処理においてデータの線形性がよくなるので色補正の精度が向上し，もって読み取り精度が向上する。
【００５２】
このようにしてガンマ変換したのち，領域抽出器７０３で2次元コードの領域を抽出する。領域抽出器７０３の詳細な構成を図９に示す。ここで、ガンマ変換された画像は，まず画像縮小器８０１に入力される。
【００５３】
画像縮小器８０１は図１０のフローチャートを実現する回路構成を有するものとする。ここではまず、画像のグリーンのみを使用し，その画像を８×８画素単位でブロック化する。次にブロック内全画素値の論理和演算を行った後，所定の閾値で二値化を行う。この処理で2次元コード周囲の白黒交互のセルは黒線に変換され，読み取った2次元コードは黒枠で囲まれた閉領域となる。
【００５４】
画像縮小器８０１から出力された二値画像に対し、閉領域検出器８０２で、この閉領域の検出を行う。この閉領域検出は，二値画像において，白黒画素の境界を追跡することによって閉領域を認識し，領域が矩形の場合に当該閉領域を2次元コード候補領域として認識するものである。この閉領域検出の詳しいフローチャートを図１１に示す（詳細は後述する）。
【００５５】
図９に戻り、領域マッピング器８０３では，抽出された閉領域を元のスキャンしたRGB画像にマッピングして出力し，以後、このようにして得られたデータから2次元コードの読み取り処理を行う。
【００５６】
このようにして2次元コード候補領域が抽出できたので，次は，各セルの値をサンプリングするために，読み取り画素位置を設定する必要がある。これは読み取り画素位置設定器７１３で行われる。2次元コードは図１に示されるように規格化されているので，水平・垂直に何セルずつあるかについては，2次元コード周囲の白黒交互パターンを数えることによって求められる。
【００５７】
このようにして2次元コードの大きさが検出された後，各セルの中心を求める。図１２はこの場合のサンプリング点を示したものである。実線で描かれた正方形がそれぞれ2次元コードの各セル１０３に該当する。破線は，それぞれそれらセルの中心を通る直線であり，破線の交差した部分がサンプリングすべき点である。なお、上記の如く２次元コードのサイズ（画素数）が検出されたので、上記破線を引く位置は、それに応じて求められる。
【００５８】
このようにしてサンプリングする点が決定した後，画像データ読み取り器７０５，リファレンスパターン読み取り器７１０によって、その中心座標を中心とした３×３画素のデータをRGB画像データから読み取り、それらの平均をとる。リファレンスパターンメモリ７１４はリファレンスパターンメモリ５０９と同様の構成を有し、配置メモリ７１２と配置アドレス生成器７０４は，それぞれ配置メモリ５１１，配置アドレス生成器５１０と同様の構成を有する。
【００５９】
ここで，３×３画素のデータを読み取り平均を取るのは各セルの正確な色を読み取るためであり，特に，一画素あたりの印字階調数が比較的少ないインクジェット方式のプリンタで印刷された２次元コードの場合には有効である。また，1色1濃度の2階調誤差拡散を使用するインクジェット方式で印刷した2次元コードを読み取る場合にはもう少し大きな領域，例えば５×５や９×９画素の範囲で読み取らないと正確なセルの色を読み取ることができない可能性がある。
【００６０】
リファレンスパターン読み取り器７１０で読み取ったデータは，色補正パラメータ作成器７１１で処理され，色補正パラメータとして記憶される。
【００６１】
上記の如くリファレンスパターンは一つの2次元コードに４個存在するので、同色が夫々４個づつ取得される。その平均をRi,Gi,Bi(i=0〜255)とする。その値とリファレンスパターンメモリに格納されているCMYの値とを関係づけ、図１３に示す如くのテーブルを作成する。
【００６２】
そしてこのテーブルを用いて色補正器７０６において，画像データ読み取り器７０６で読み取った2次元コードの各セルの色を補正し，Rc,Gc,Bcを出力する。色補正の方法としては，例えば，三角柱補間方法（特許第２８９９４６１号参照）等が高速で精度も良いので実用的である．
色補正器７０６で色補正された色データは，データ変換器７０７で元のブロック化されたｎビットのデータに変換される。すなわち、上記色データRc,Gc,Bcが，リファレンスパターンメモリに記憶されている各CMYが表す色のどれに最も近いかを判定する。その判定方法は，(Rc,Gc,Bc),(C,M,Y)の二つの座標の距離が最短であるCMYを選択するというものとする。
【００６３】
このようにしてCMYが選択されると、それに対応したアドレスがリファレンスパターンメモリに格納されているので、そのアドレスに応じたｎビットの値をデータ変換器７０７が出力する。このようにして元のｎビットのデータに変換されたデータは誤り訂正器７０８で誤っているコードが訂正される。誤り訂正信号を付加した方法が既知であるので、その誤り訂正を行うのは容易となる。もし，誤りの数が誤り訂正の能力を超えるようならば，この場合の2次元コードの読み取りは失敗になる。
【００６４】
この誤り訂正処理で，誤りがないか，もしくは誤りが訂正できたならば，2次元コード生成時に付加された誤り訂正信号をデータから除去し，元の情報を有するデータだけを出力する。そのデータは伸長器７０９で伸長され，元のデータが得られる。なお、上記の如くデータ圧縮時にデータサイズの情報が付加されているので、データ伸長時にはそのデータサイズに対応した部分だけを利用すればよい。
【００６５】
以上のようにして2次元コードの読み取りが行われ，元のデータが復元される。
【００６６】
次の本発明の一実施例の2次元コード作成方法について，説明する。
【００６７】
図１４は上記２次元コード作成方法のフローチャートである。
【００６８】
まず、2次元コードに埋め込むべき（２次元コードで表現しようとする）データをステップS1001で入力し，次にステップS1002では、そのデータを圧縮し，圧縮データのサイズの情報をデータの先頭に付加する。この圧縮には、LZH，LZWなどの効率のよい圧縮方法が採用される。
【００６９】
データ圧縮の後，ステップS1003では誤り訂正信号が付加される。誤り訂正方式はブロック誤り訂正が可能であり、具体的には広く普及しているリードソロモン符号を使用する。まずデータを8ビットのコードワードに分割し，１６ワードのデータに対し，３２ワードの誤り訂正コードを生成して，都合48ワードのデータを生成する。入力データの最後が16ワードに満たない場合にはパディングワードを付加して16ワードを形成する。
【００７０】
このようにして誤り訂正信号が付加されたデータに対し、ステップS1004でｎビット単位のブロック化が行われる．ブロック化の詳細なフローを図１５に示す。図１５の処理は、ｎビットのデータ列を入力するステップS1101,ｎビットが実際に入力できたかを判定するステップS1102，ｎビットが入力できなかった場合にパディングビットを付加するステップS1103,ｎビットデータを出力するステップS1104、及びデータの終了を判定するステップS1105からなる。
【００７１】
次に，ｎビット毎にブロック化されたデータから色信号を生成する。色信号生成ステップS1005の詳細を図１６に示す。この処理は、ｎビットのデータを入力するステップS1201,リファレンスパターンメモリから、ｎビットのデータの値をアドレスとしてCMYの値を読み出すステップS1202,CMYデータを出力するステップS1203，データの終了を判定するステップS1204からなる。
【００７２】
色信号生成の後，黒信号生成及びUCR/UCA変換ステップS1006で、黒信号の生成と，UCR/UCA変換とが行われる。この詳細を図１７のフローチャートで示す。この処理は、CMYデータを入力するステップS1301,CMYデータから黒信号を生成するステップS1302,黒信号KとCMY信号とを使用してUCR/UCA処理を行ってC’M’Y’信号を生成するステップS1303,配置アドレスを生成する配置アドレス生成ステップS1304，CMYKデータを画像メモリの配置アドレスへ出力するステップS1305，データの終了を判定するステップS1306からなる。
【００７３】
上記黒信号生成ステップS1302では，CMYの最小値を使用してKを生成する。UCR/UCA処理を行うステップS1303では、上記の数式（数１）の処理を行う。ステップS1304では，上記アルゴリズム１を実行して配置アドレスを計算する。
【００７４】
次に、図１４のガンマ補正ステップS1007では，例えば図６で示すようなプリンタの特性に合わせたガンマカーブを使用してガンマ補正を画像データに施す。ガンマ補正を施されたデータは印刷ステップS1008で階調処理が施され，このようにして得られた2次元コードの画像が紙等に印刷される。
【００７５】
上記階調処理はプリンタエンジンの種類によって異なるが，上述の如く、（多値）ディザ，（多値）誤差拡散などが行われる。カラーレーザープリンタの場合には，1ドットで多階調を再現することが可能であり，通常は，小さい領域で多値ディザを使用している。また，インクジェットプリンタの場合には，インクが各色１濃度しかない場合には2階調誤差拡散が行われている。また，特に付加的な淡色インクを使用しているインクジェット方式では3階調誤差拡散が利用されている。2階調誤差拡散と比較して3階調誤差拡散は，印刷時の粒状性に優れており，図７（ｂ）に示すように，小さな領域で平均濃度を表すことができる。これは，2次元コードの読み取りの際に各セルのデータをサンプリングする場合，サンプリングする領域が小さくて済むため処理が高速にできるという効果を有する。
【００７６】
次にこのようにして印刷された2次元コードをデコードする読み取り方法について説明する。
【００７７】
図１８は、この方法を示すそのフローチャートである。
【００７８】
この方法は、紙等に印刷された2次元コードをスキャナ等を用いて読み込む画像入力ステップS1501，読み込んだ画像をLog変換するガンマ変換ステップS1502，ガンマ変換した画像データから2次元コードの領域を抽出する領域抽出ステップS1503，抽出した領域に対して読み取り画素位置を設定する読み取り画素位置設定ステップS1504，設定された読み取り画素位置を用いて画像データからリファレンスパターンを取得するリファレンスパターン取得ステップS1505,取得したリファレンスパターンから色補正パラメータを作成する色補正パラメータ作成ステップS1506，上記読み取り画素位置を用いて画像データからコードデータを取得するコードデータ取得ステップS1507，取得したコードデータの色補正を行う色補正ステップS1508，色補正したデータから元のｎビットのデータを取得するデータ変換ステップS1509，変換したデータの誤りを訂正し、必要な情報データのみを取得する誤り訂正ステップS1510，取得した情報データを伸長する伸長ステップS151１，伸長して復元したデータを出力するステップS1512からなる。
【００７９】
上述の如く、上記ステップS1501では、2次元コードがカラー印刷されているのでRGB各色8ビットずつのフルカラー読み取りでなければならない。そして、読み取った画像データに対しガンマ変換ステップS1502でガンマ変換を行うが、このガンマ変換はいわゆるLog変換であり，反射率データから濃度データへの変換である。これにより、後述する色補正においてデータの線形性がよくなるため色補正の精度が向上し，コード読み取り精度が向上する。
【００８０】
ガンマ変換の後、領域抽出ステップS1503で2次元コードの領域を抽出するが、この領域抽出ステップの詳細なフローチャートを図１９に示す。ここでは、ガンマ変換された画像が，まず画像縮小ステップS1601で処理される。画像縮小ステップS1601は，さらに図１０のフローチャートの各ステップに分解される。
【００８１】
図１０の処理では、画像のグリーンのみ使用し，その画像を８×８画素単位でブロック化する（ステップS1701）。次にブロック内全画素値の論理和演算を行った（ステップS1702）後，このようにして得られた値に対し、所定の閾値で二値化（ステップS1703）を行う．この処理で2次元コード周囲の白黒交互のセルは黒線に変換され，2次元コードは黒枠で囲まれた閉領域となる。
【００８２】
図１９に戻り、このようにして画像縮小ステップS1601で得られた二値画像に対し、閉領域検出ステップS1602で閉領域の検出を行う。この閉領域検出の詳しいフローチャートを図１１に示す。閉領域検出処理では，二値画像において，黒画素を検出し（ステップS1803），白黒画素の境界を追跡し（ステップS1804），追跡始点に戻った（ステップS1805）後，領域が矩形の場合（ステップS1806）に当該閉領域を2次元コード候補領域として認識する（ステップS1807）。
【００８３】
次に図１９の領域マッピングステップS1603では，抽出された閉領域を元のスキャンしたRGB画像にマッピングして出力し，以降，2次元コードの読み取りを行う。
【００８４】
次に、図１８に戻り、このようにして2次元コード候補領域が抽出できたため，次は，各セルの値をサンプリングするために，読み取り画素位置を設定する。
この処理は，読み取り画素位置設定ステップS1504で行われる。
【００８５】
2次元コードは図１に示される如くに規格化されているため，水平・垂直に何セルずつあるかは，2次元コード周囲の白黒交互パターンを数えることによって求められる。このようにして2次元コードの大きさがわかった後，各セルの中心を求める。
【００８６】
図１２はこのためのサンプリング点を示したものである。上述の如く、実線で描かれた正方形が2次元コードの各セル１０３に該当し，破線は，それらの中心を通る直線であり、破線の交差した点が上記サンプリングする点である。
【００８７】
このようにしてサンプリングする点が決定した後，コードデータ取得ステップS1507，リファレンスパターン取得ステップS1505でその座標を中心とした３×３画素のデータをRGB画像データから読み取りそれらの平均をとる。
【００８８】
ここで，上述の如く、３×３画素のデータを読み取り平均を取るのは，セルの正確な色を検出するためであり，特に，インクジェット方式の場合には有効である。また，1色1濃度の2階調誤差拡散を使用するインクジェット方式で印刷した2次元コードを読み取る場合にはもう少し大きな領域，例えば５×５や９×９画素の範囲で読み取らないと正確なセルの色を読み取ることができない可能性がある。
【００８９】
このようにしてリファレンスパターン取得ステップS1505で読み取ったデータは，色補正パラメータ作成ステップS1506で処理され，色補正パラメータとして記憶される。図２０は、この処理のフローチャートを示す。リファレンスパターンは一つの2次元コードに４個存在するため，同色が４通り取得出来ることになる。それらの平均をRi,Gi,Bi(i=0〜255)とする（ステップＳ２００１）。その値とリファレンスパターンテーブル（図4）に格納されているCMYの値とを関係づけ図１３に示す如くのテーブルを作成する（ステップＳ２００２、Ｓ２００３）。
【００９０】
そして、このテーブルを用いて色補正ステップS1508において，コードデータ取得ステップS1507で読み取った2次元コードのセルの色を補正し，Rc,Gc,Bcを出力する。色補正の方法としては，例えば，上記の如く三角柱補間方法（特許第２８９９４６１号）等が高速で精度も良いので実用的である。
【００９１】
色補正ステップS1508で色補正された色データは，データ変換ステップS1509で元のブロック化されたｎビットのデータに変換される。すなわち、色データRc,Gc,Bcが，リファレンスパターンテーブルに記憶されている各CMYが表す色のどれに最も近いかを判定する．その判定方法としては，例えば(Rc,Gc,Bc),(C,M,Y)という二つの座標の距離が最短であるCMYを選択する方法をとる。このようにしてCMYが選択されると、それに対応したアドレスがリファレンスパターンテーブルに格納されているので、その値をデータ変換ステップS1509で得る。
【００９２】
このようにして元のｎビットのデータに変換されたデータは誤り訂正ステップS1510で誤っているコードを訂正される。誤り訂正信号を付加した方法が既知であるのでその誤り訂正を行うのは容易である。もし，誤りの数が誤り訂正の能力を超えるようならば，2次元コードの読み取りは失敗となる。
【００９３】
誤り訂正処理の結果，誤りがないか，もしくは誤りが訂正できたならば，2次元コード生成時に付加された誤り訂正信号をデータから除去し，元の情報をもつデータだけを出力する。そのデータは伸長ステップS1511で伸長され，元のデータが得られる。データ圧縮時にデータサイズの情報が付加されているのでデータ伸長時にはそのデータの部分だけを利用すればよい。
【００９４】
以上のようにして2次元コードの読み取りが行われ，元のデータが復元される。
【００９５】
次に本発明の他の実施例のシステム構成を図２１に示す。
【００９６】
図２１において、ディスク装置１９０２（ハードディスク装置、フロッピディスク装置、ＣＤ−ＲＯＭ駆動装置等であり、ＰＣ１９０１に含まれていても良い）のディスク（情報記録媒体）には，上記本発明の2次元コード生成方法や2次元コード読み取り方法をPC1901上で実現するためのプログラムが記憶されており，2次元コード生成時や2次元コード読み取り時には同プログラムがPC1901のメモリ（ＲＡＭ等）にロードされ、そのＣＰＵによって実行される。
【００９７】
2次元コード生成プログラムが実行される場合には，ディスク装置１９０２に格納されているかあるいはネットワークから受信するデータから上記２次元コード生成方法によって2次元コードを生成し，カラーレーザプリンタ１９０４やカラーインクジェットプリンタ１９０５で印刷する。
【００９８】
2次元コード読み取りプログラムが実行される場合には，スキャナ１９０３で2次元コードが印刷された紙等をスキャンし，そのようにして入力された画像データはPC１９０１で上述の如くの２次元コード読み取り方法にしたがって処理され，もって元のデータが復元され，ディスク装置１９０２に保存されたり，PC１９０１で実行されたり，あるいはネットワークを介して他端末へ送信されたりする。
【００９９】
なお、構成として、次のものが考えられる。
【０１００】
構成１：  デジタル形式で表現された情報をn(n>1)ビットずつのブロック毎に分割する分割手段と、
上記各ブロックのnビットのデータを2次元のマトリクスの各要素に配置する配置手段と、
上記2次元マトリクスの各要素をnビットデータに応じた色に変換し，2次元マトリクスから印刷すべき画像を形成する画像形成手段と、
上記画像を複数の色材を用いて印刷することのできる印刷手段とで構成される2次元コードの生成装置であって、
上記配置手段は，2次元マトリクス内にある複数の所定の要素位置にあらかじめ所定の値を配置することを特徴とする2次元コード生成装置。
【０１０１】
構成２：前記配置手段は，あらかじめ所定の値を配置する要素位置と前記所定の値を記憶する要素位置記憶手段よりなることを特徴とする上記構成１の2次元コード生成装置。
【０１０２】
構成３：上記あらかじめ所定の要素位置に配置する値は，ランダムであることを特徴とする上記構成１の2次元コード生成装置。
【０１０３】
構成４：前記印刷手段は，シアン，マゼンタ，イエロー，ブラックの4色の色材を用いて印刷を行なうことを特徴とする構成１の2次元コード生成装置。
【０１０４】
構成５：前記印刷手段は，シアン，マゼンタ，イエローを用いて無彩色で印刷する指示が与えられた場合，使用する色材をブラック単色に置き換えることを特徴とする構成４の次元コード生成装置。
【０１０５】
構成６：前記印刷手段は，少なくとも一色について、二つの異なる濃度の色材を用いて印刷することを特徴とする構成４の2次元コード生成装置。
【０１０６】
構成７；デジタル形式で表現された情報をn(n>1)ビットずつのブロック毎に分割する分割段階と、
上記各ブロックのnビットのデータを2次元のマトリクスの各要素に配置する配置段階と、
上記2次元マトリクスの各要素を上記nビットデータに応じた色に変換し，2次元マトリクスから印刷すべき画像を形成する画像形成段階と、
上記画像を複数の色材を用いて印刷する印刷段階とよりなる2次元コード生成方法であって、
上記配置段階は，2次元マトリクス内にある所定の複数の要素位置にあらかじめ所定の値を配置する段階よりなることを特徴とする2次元コード生成方法。
【０１０７】
構成８：前記配置段階は，あらかじめ所定の値を配置する要素位置と前記所定の値を記憶した要素位置記憶メモリからデータを読み出す段階よりなることを特徴とする構成７の2次元コード生成方法。
【０１０８】
構成９：上記あらかじめ所定の要素位置に配置する値は，ランダムであることを特徴とする構成７の2次元コード生成方法。
【０１０９】
構成１０：前記印刷段階では、シアン，マゼンタ，イエロー，ブラックの4色の色材を用いて印刷する構成７の2次元コード生成方法。
【０１１０】
構成１１：前記印刷段階では，シアン，マゼンタ，イエローを用いて無彩色で印刷するよう指示された場合，使用する色材をブラック単色に置き換えることを特徴とする構成１０の2次元コード生成方法。
【０１１１】
構成１２：前記印刷段階では，少なくとも一色については二つの異なる濃度の色材を用いて印刷することを特徴とする構成１０の2次元コード生成方法。
【０１１２】
構成１３：構成７乃至１２のうちのいずれか2次元コード生成方法をコンピュータで実行するためのプログラムを記録したコンピュータによって読み取り可能な固定あるいは着脱可能な情報記録媒体。
【０１１３】
構成１４：構成７乃至１２のうちのいずれかの2次元コード生成方法をコンピュータで実行するためのプログラム。
上記構成１、７によれば，カラーの2次元コードを印刷する際に，リファレンスカラーパターン（前記所定の要素位置に配置された所定の値によるパターン）を設けることにより色の基準を設定することが可能となり、もって２次元カラーコードについて正確な色の読み取りが可能となる。もって実用的に多階調カラーを使用することが可能になり，その結果2次元コードに埋められるデータ量を飛躍的に増加させることが可能となる。
上記構成２、８によれば，上記リファレンスカラーパターンをあらかじめ決定して記憶させておくことにより，2次元コードの読み取りシステムとの互換性を容易にとることが可能になる。
上記構成３、９によれば，印刷手段の印刷濃度の偏りを軽減し，2次元コードの読み取り誤りを減少させることが可能になる。
上記構成４、１０によれば，通常のインクジェットプリンタ，レーザープリンタ，サーマルプリンタを使用することができ，特別な印刷装置を用意しなくても本発明によるカラーの2次元コードを印刷することが可能になる。
上記構成５、１１によれば，無彩色の再現を容易にして2次元コードの読み取り精度の向上が可能になるとともに，色材の消費量を減らすことが可能になる。
上記構成６、１２によれば，ディザや誤差拡散などの階調処理による局所的な色の変化を抑えることにより，2次元コードの読み取りを容易にすることが可能になる。
上記構成１３によれば，本発明による次元コード生成方法をコンピュータで実行するためのプログラムを記憶，保存することが可能になる。
【０１１４】
【発明の効果】
請求項１，２および３に記載の発明によれば、あらかじめマトリクスの所定の位置に所定の値を配置しておくことにより、その要素はその値に応じた所定の色とされ、印刷された後に読み取られる際、本来の情報を含む色に対する基準として使用され得る。したがって、印刷手段、読み取り手段等の状況によって、具体的に印刷され、或いは読み取られる色がばらついたとしても、上記基準の色を基準として補正可能となり、正確な読み取りが可能となる。
【図面の簡単な説明】
【図１】本発明の２次元コードの一例の典型的パターンを説明するための図である。
【図２】図１に示す２次元コードの構成を説明するための図である。
【図３】図１に示す２次元コードを構成する各小領域におけるセルの配置パターンを示す図である。
【図４】本発明の２次元コードの生成、読み取りに使用されるリファレンスパターンテーブルの一例を示す図である。
【図５】本発明の２次元コード生成装置の一実施例のブロック構成図である。
【図６】ガンマ変換の一例を説明するためのグラフである。
【図７】淡色インクの有無によるインクジェットプリンタで印刷した場合印刷状態の相異を示す図である。
【図８】本発明の一実施例の２次元コード読み取り装置のブロック構成図である。
【図９】図８に示す領域抽出器のブロック構成図である。
【図１０】本発明の画像縮小処理のフローチャートを示す図である。
【図１１】本発明の閉領域検出処理のフローチャートを示す図である。
【図１２】２次元コードの読み取り位置を説明するための図である。
【図１３】本発明の２次元コード読み取り処理で作成される色補正パラメータテーブルの一例を示す図である。
【図１４】本発明の２次元コード生成方法のフローチャートを示す図である。
【図１５】本発明のデータのｎビットブロック化処理のフローチャートを示す図である。
【図１６】本発明の色信号生成処理のフローチャートを示す図である。
【図１７】本発明の黒信号生成及びUCR/UCA変換処理のフローチャートを示す図である。
【図１８】本発明の２次元コード読み取り方法のフローチャートを示す図である。
【図１９】本発明の領域抽出処理のフローチャートを示す図である。
【図２０】本発明の色補正パラメータ作成処理のフローチャートを示す図である。
【図２１】本発明の２次元コード生成方法、読み取り方法を実現可能なパーソナルコンピュータを使用した構成を示す図である。
【符号の説明】
５０３    ブロック化器
５０４    色信号生成器
５０５    黒信号生成器
５０６    画像メモリ
５０９    リファレンスパターンメモリ
５１０    配置アドレス生成器
５１１    配置メモリ
【図１】
0004588916.tif 000003
【図２】
0004588916.tif 000004
【図３】
0004588916.tif 000005
【図４】
0004588916.tif 000006
【図５】
0004588916.tif 000007
【図６】
0004588916.tif 000008
【図７】
0004588916.tif 000009
【図８】
0004588916.tif 000010
【図９】
0004588916.tif 000011
【図１０】
0004588916.tif 000012
【図１１】
0004588916.tif 000013
【図１２】
0004588916.tif 000014
【図１３】
0004588916.tif 000015
【図１４】
0004588916.tif 000016
【図１５】
0004588916.tif 000017
【図１６】
0004588916.tif 000018
【図１７】
0004588916.tif 000019
【図１８】
0004588916.tif 000020
【図１９】
0004588916.tif 000021
【図２０】
0004588916.tif 000022
【図２１】
0004588916.tif 000023