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