(57)【要約】【課題】２次元コードに配置されるモジュールの色により、任意のデザインが構成されるように２次元コードを生成すること。【解決手段】カラーデザインデータに対応する２値化デザインデータを逆変換した逆変換ビット列を更に変換した変換後ビット列の値を基準として、カラーデザインデータのモジュールごとの色値を補正する。【選択図】図１８
2008052587.tif 000002
【特許請求の範囲】
【請求項１】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求める多階調デザインデータ補正部と、
前記補正後の階調値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記多階調デザインデータ補正部が、
前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求め、
前記２次元コード生成部が、
前記デザインデータ領域については前記補正後の階調値に基づいて２次元コードを生成し、２次元コードのその他の領域については前記変換後ビット列に基づいて２次元コードを生成することを特徴とするプログラム。
【請求項３】
請求項１において、
前記逆変換ビット列に基づいて、生成される２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部を更に含み、
前記２次元コードデータ生成部が、
前記求められた逆変換ビット列と、前記原データのビット列と、前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求め、
前記多階調デザインデータ補正部が、
前記デザインデータ領域と、前記原データのデータ量に応じた原データ領域と、前記サイズデータに応じた誤り訂正データ領域とに対応する多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求めることを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
２次元コードの読み取りに用いられる機能パターンを設定する機能パターン設定部を更に含み、
前記多階調デザインデータ補正部が、
前記機能パターンが配置される領域に対応する多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記機能パターンの値として読み取られるように前記階調値を補正した補正後の階調値を求めることを特徴とするプログラム。
【請求項５】
請求項１〜４のいずれかにおいて、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値を、前記階調値に応じた変換式に基づいて補正することを特徴とするプログラム。
【請求項６】
請求項５において、
前記多階調デザインデータ補正部が、
前記階調値が階調値のとり得る範囲の中間付近の第１の範囲の値である場合に、前記階調値をその階調値に応じた変換式に基づいて補正し、
前記２次元コード生成部が、
前記階調値が前記第１の範囲の値であるモジュールについては前記補正後の階調値に基づいて２次元コードを生成し、前記階調値が前記第１の範囲の値以外の第２の範囲の値であるモジュールについては前記多階調デザインデータのモジュールごとの階調値に基づいて２次元コードを生成することを特徴とするプログラム。
【請求項７】
請求項１〜４のいずれかにおいて、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値を、各モジュールに対応する前記変換後ビット列の値に応じた変換式に基づいて補正することを特徴とするプログラム。
【請求項８】
請求項７において、
前記多階調デザインデータ補正部が、
前記階調値が階調値のとり得る範囲の中間付近の第１の範囲の値である場合に、前記階調値を各モジュールに対応する前記変換後ビット列の値に応じた変換式に基づいて補正し、
前記２次元コード生成部が、
前記階調値が前記第１の範囲の値であるモジュールについては前記補正後の階調値に基づいて２次元コードを生成し、前記階調値が前記第１の範囲の値以外の第２の範囲の値であるモジュールについては前記多階調デザインデータのモジュールごとの階調値に基づいて２次元コードを生成することを特徴とするプログラム。
【請求項９】
請求項１〜８のいずれかにおいて、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値が、階調値のとり得る範囲の中間付近の第１の範囲の値である場合に、各モジュールに所定のパターンで割り当てられる値に応じた変換式に基づいて前記階調値を補正することを特徴とするプログラム。
【請求項１０】
請求項１〜９のいずれかにおいて、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの各色成分の階調値を、各色成分の階調値に応じた変換式に基づいて補正することを特徴とするプログラム。
【請求項１１】
請求項１〜１０のいずれかにおいて、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する前記変換後ビット列の値が第１の値であって、対応する多階調デザインデータのモジュールの各色成分の階調値の最小値が第１のしきい値よりも小さい場合に、そのモジュールの各色成分の階調値を増加させる変換式に基づいて各色成分の階調値を補正し、
少なくとも前記デザインデータ領域に対応する前記変換後ビット列の値が第２の値であって、対応する多階調デザインデータのモジュールの各色成分の階調値の最大値が第２のしきい値よりも大きい場合に、そのモジュールの各色成分の階調値を減少させる変換式に基づいて各色成分の階調値を補正することを特徴とするプログラム。
【請求項１２】
２次元コードを生成するためのデータを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求める多階調デザインデータ補正部としてコンピュータを機能させることを特徴とするプログラム。
【請求項１３】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値が、第１の値として読み取られる範囲の階調値と第２の値として読み取られる範囲の階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのモジュールごとの階調値に基づいて、２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項１４】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜１３のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１５】
請求項１〜１３のいずれかのプログラムに基づいて生成したことを特徴とする２次元コード。
【請求項１６】
２次元コード生成システムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求める多階調デザインデータ補正部と、
前記補正後の階調値に基づいて２次元コードを生成する２次元コード生成部とを含むことを特徴とする２次元コード生成システム。
【請求項１７】
所与の２値化データを表すモジュールが２次元に配置された２次元コードであって、
前記２次元コードから読み取られるべき原データを表すモジュールと、
少なくとも、前記原データを表すモジュールが配置された原データ領域以外の領域において、前記モジュールごとの階調値により多階調のデザインを構成するモジュールとが配置され、
前記モジュールごとの階調値は、
前記モジュールが前記２値化データのいずれを表すか読み取り可能な範囲の値とされていることを特徴とする２次元コード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、２次元コード生成システム、２次元コードに関する。
【背景技術】
【０００２】
従来より、所定のフォーマット情報に基づいて、データを示すモジュールを２次元に配置した２次元コードが知られている。この２次元コードでは、１次元コードに比して狭い領域で多くのデータを読み取らせることができる。このような従来の技術として、例えば特許第２９３８３３８号公報に開示されるものがある。
【０００３】
かかる２次元コードでは２次元コードのサイズに対してデータ量が少ないと、データを示さない領域が発生する。この場合、従来の２次元コードでは、データを示さない領域に所定のフォーマット情報に従ってモジュールを配置する。
【特許文献１】特許第２９３８３３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、データを示さない領域にモジュールを配置するフォーマット情報は、各種モジュールがデータを示さない領域にバランスよく配置されるように構成されている。従って、生成される２次元コードのモジュールパターンの構成に特徴を持たせて、他の２次元コードと差別化をはかることができなかった。
【０００５】
そこで本発明は、２次元コードのデータを示さない領域など、所定の領域に配置されるモジュールが、任意のデザインを構成して配置されるように２次元コードを生成することができるプログラム、情報記憶媒体を提供することにある。
【０００６】
また本発明は、２次元コードに配置されるモジュールの色により、任意のデザインが構成されるように２次元コードを生成することができるプログラム、情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００７】
（１）  本発明は、２次元コードを生成するためのシステムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求める多階調デザインデータ補正部と、
前記補正後の階調値に基づいて２次元コードを生成する２次元コード生成部とを含む２次元コード生成システムに関係する。
【０００８】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、上記プログラムに基づいて生成した２次元コードに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。また本発明は、上記２次元コード生成システム、プログラム、情報記憶媒体を用いて生成された２次元コードが印刷された印刷物に関係する。また本発明は、上記２次元コード生成システム、プログラム、情報記憶媒体を用いて生成された２次元コードとして読み取られる２次元コード画像を生成するシステム、プログラム及び情報記憶媒体に関係する。
【０００９】
本発明において「階調値（色値）」とは、明るさや色を設定するためのパラメータであって、グレイスケールを示すパラメータや、Ｒ・Ｇ・ＢやＹ・Ｃｒ・Ｃｂ、Ｙ・Ｍ・Ｃ・Ｋなどの色成分ごとの明るさを示すパラメータや、色合いを示す色相、鮮やかさを示す彩度、明るさを示す明度などのパラメータ、輝度などのパラメータ等、種々のパラメータとすることができる。即ち２次元コードの読み取りに影響を与える種々のパラメータとすることができる。また、「多階調デザインデータ」とは、少なくとも３階調（３値）以上の階調値から構成されたデータとすることができる。
【００１０】
２次元コードでは、例えば２次元コードを構成するモジュールが２値化データのいずれを示すものであるか（例えば白か黒か）を読み出すことにより、２次元コードに化体されたビット列を読み出す。従って２次元コードの各モジュールは、例えば白か黒のように明らかに異なるものとして読み取られる色とすることが好ましい。しかしモジュールの色が白か黒でなくとも、階調値が黒に近い範囲の暗い色であれば一方の値を示すものとして読み取らせ、階調値が白に近い範囲の明るい色であれば他方の値を示すものとして読み取らせることができる。即ち２次元コードの各モジュールの色が、２値化データのいずれを示すものであるか読み取り可能な範囲の色であれば、２次元コードとして機能させることができる。しかし２次元コードのモジュールの色が、明るさが中間的な階調値であるなど２値化データのいずれを示すものであるか読み取ることができないおそれがある色である場合には、２次元コードの読み取り誤りが発生したり、２次元コードとして読み取れない事態が発生する場合がある。
【００１１】
そこで本発明では、多階調デザインデータに対応する２値化デザインデータを逆変換した逆変換ビット列を更に変換した変換後ビット列の値を基準として、多階調デザインデータのモジュールごとの階調値を補正する。即ち本発明では、変換後ビット列を求めることにより、２次元コードとして読み取り可能であって、かつ多階調デザインデータに対応する２値化デザインが構成された２次元コードを生成するためのデータを生成する。そして多階調デザインデータのモジュールごとの階調値が、変換後ビット列の値として読み取られるように各階調値を補正することにより、変換後ビット列の値が示すとおりに読み取り可能であって、かつ多階調デザインが構成された２次元コードを生成する。
【００１２】
従って本発明によれば、多階調デザインデータのモジュールに、明るさが中間的な階調値であるなど２値化データのいずれを示すものであるか読み取ることができないおそれがある階調値のモジュールが存在する場合であっても、かかるモジュールの階調値を変換後ビット列の値として読み取られるように補正することができる。そして変換後ビット列には原データの情報が含まれているので、２次元コードの読取装置により、本システム利用者が２次元コードを介して伝達しようとする情報である原データを読み取らせることができる。
【００１３】
このように本発明によれば、人目を引き付けることができる多階調のデザインパターンが構成された２次元コードを、通常の２次元コードの生成手順に準じて簡易に生成することができる。しかも、多階調デザインが構成されていても、モジュールごとの２値化データを基準として通常の２次元コードの生成手順に準じて生成されているので、２次元コードを読取装置により正確に読み取らせることができる。
【００１４】
（２）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求め、
前記２次元コード生成部が、
前記デザインデータ領域については前記補正後の階調値に基づいて２次元コードを生成し、２次元コードのその他の領域については前記変換後ビット列に基づいて２次元コードを生成するようにしてもよい。
【００１５】
本発明によれば、デザインデータ領域において多階調デザインが構成され、原データ領域などその他の領域において変換後ビット列に基づくモジュールパターンが構成された２次元コードを生成することができる。従って本発明によれば、デザインデータ領域以外の領域のモジュールを２値化パターンにより構成し、より確実に読み取り可能な２次元コードを生成することができる。
【００１６】
（３）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
前記逆変換ビット列に基づいて、生成される２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部を更に含み、
前記２次元コードデータ生成部が、
前記求められた逆変換ビット列と、前記原データのビット列と、前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求め、
前記多階調デザインデータ補正部が、
前記デザインデータ領域と、前記原データのデータ量に応じた原データ領域と、前記サイズデータに応じた誤り訂正データ領域とに対応する多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求めるようにしてもよい。
【００１７】
本発明によれば、デザインデータ領域と、原データ領域と、誤り訂正データ領域において多階調デザインデータの階調値を補正する。従って本発明によれば、より広い領域において多階調デザインデータの階調値が反映された２次元コードを生成することができる。
【００１８】
（４）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
２次元コードの読み取りに用いられる機能パターンを設定する機能パターン設定部を更に含み、
前記多階調デザインデータ補正部が、
前記機能パターンが配置される領域に対応する多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記機能パターンの値として読み取られるように前記階調値を補正した補正後の階調値を求めるようにしてもよい。
【００１９】
本発明によれば、位置合せパターンが配置される領域等の機能パターン領域において多階調デザインデータの階調値を補正する。従って本発明によれば、より広い領域において多階調デザインデータの階調値が反映された２次元コードを生成することができる。
【００２０】
（５）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値を、前記階調値に応じた変換式に基づいて補正するようにしてもよい。
【００２１】
本発明において、２値化デザインデータは多階調デザインデータに対応するデータとなっているため、階調値を補正するための基準となる変換後ビット列もデザインデータ領域に対応する多階調デザインデータのモジュールの階調値に対応した値となっている。従って本発明によれば、階調値に応じた補正用の変換式の種類を削減し、階調値に応じた割り振り処理を軽減しつつも、可及的に元の階調値を補正後の階調値に反映することができる。
【００２２】
（６）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
前記階調値が階調値のとり得る範囲の中間付近の第１の範囲の値である場合に、前記階調値をその階調値に応じた変換式に基づいて補正し、
前記２次元コード生成部が、
前記階調値が前記第１の範囲の値であるモジュールについては前記補正後の階調値に基づいて２次元コードを生成し、前記階調値が前記第１の範囲の値以外の第２の範囲の値であるモジュールについては前記多階調デザインデータのモジュールごとの階調値に基づいて２次元コードを生成するようにしてもよい。
【００２３】
本発明において、「第１の範囲」とは、２値化データのいずれを示すものであるか読み取ることができないおそれがある階調値の範囲とすることができる。例えば各色成分の階調値が０〜２５５までの値をとる場合には、６４以上１９２未満など階調値の取り得る範囲の中間値を含む範囲を第１の範囲とし、それ以外の０以上６４未満及び１９２以上２５５以下を第２の範囲とすることができる。なお第１の範囲と第２の範囲は、２次元コードの読取装置の性能や、読み取りの正確性との関係などで任意に定めることができる。例えば誤り訂正アルゴリズムなどによりデータを訂正することができる場合など、生成された２次元コードのモジュールに２値化データのいずれを示すものであるか読み取ることができないモジュールがいくつか存在しても構わない場合には、第１の範囲からいくつかの値を間引いた値の集合を第１の範囲の値として扱うようにしてもよい。例えば６４以上１９２未満の値のうち、中間値である１２８を除外した値の集合なども「第１の範囲」の概念に含まれる。即ち本発明により生成された２次元コードが、２次元コードとして機能するように、中間的な階調値が補正されればよい。
【００２４】
本発明によれば、多階調デザインデータのモジュールごとの階調値が、第１の範囲の値である場合に階調値を補正し、第１の範囲以外の第２の範囲の値である場合には階調値を補正しない。従って本発明によれば、階調値が第２の範囲の値である場合には元の階調値をそのまま反映することができる。
【００２５】
（７）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値を、各モジュールに対応する前記変換後ビット列の値に応じた変換式に基づいて補正するようにしてもよい。
【００２６】
本発明において、２値化デザインデータは多階調デザインデータに対応するデータとなっているため、階調値を補正するための基準となる変換後ビット列もデザインデータ領域に対応する多階調デザインデータのモジュールの階調値に対応した値となっている。従って本発明によれば、変換後ビット列の値に応じた補正用の変換式の種類を削減し、階調値に応じた割り振り処理を軽減しつつも、可及的に元の階調値を補正後の階調値に反映することができる。
【００２７】
（８）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
前記階調値が階調値のとり得る範囲の中間付近の第１の範囲の値である場合に、前記階調値を各モジュールに対応する前記変換後ビット列の値に応じた変換式に基づいて補正し、
前記２次元コード生成部が、
前記階調値が前記第１の範囲の値であるモジュールについては前記補正後の階調値に基づいて２次元コードを生成し、前記階調値が前記第１の範囲の値以外の第２の範囲の値であるモジュールについては前記多階調デザインデータのモジュールごとの階調値に基づいて２次元コードを生成するようにしてもよい。
【００２８】
本発明によれば、多階調デザインデータのモジュールごとの階調値が第１の範囲の値である場合に階調値を補正し、第２の範囲の値である場合には階調値を補正しない。従って本発明によれば、階調値が第２の範囲の値である場合には元の階調値をそのまま反映することができる。
【００２９】
（９）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値が、階調値のとり得る範囲の中間付近の第１の範囲の値である場合に、各モジュールに所定のパターンで割り当てられる値に応じた変換式に基づいて前記階調値を補正するようにしてもよい。
【００３０】
本発明によれば、階調値が第１の範囲の値であるモジュールに対して、一括した補正処理を行うのではなく、例えば誤差拡散法などを用いて所定のパターンで値を割り当て、値に応じた補正処理を行う。従って本発明によれば、階調値が第１の範囲の値であるモジュールについて、所定のパターンで異なる階調値を出現させて元の中間的な階調値を表現することにより、可及的に元の階調値を補正後の階調値に反映することができる。
【００３１】
（１０）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの各色成分の階調値を、各色成分の階調値に応じた変換式に基づいて補正するようにしてもよい。
【００３２】
本発明によれば、Ｒ・Ｇ・ＢやＹ・Ｃｒ・Ｃｂ、Ｙ・Ｍ・Ｃ・Ｋなどの色成分ごとの階調値に応じて色成分ごとに階調値を補正するので、よりきめ細かく可及的に元の階調値を補正後の階調値に反映することができる。また例えばＲ・Ｇ・ＢのうちのＧ成分（緑成分）は、データ上の値以上に人間の目に与える影響が大きいことから、２次元コードの読み取り装置であるカメラ等による読み取り数値に補正が行われることがある。すると本発明における補正後の階調値が、意図しない数値に補正されて読み誤りが発生するおそれがある。そこで本発明によれば、色成分ごとに階調値の補正を行うことによりかかる不具合を解消することができる。
【００３３】
（１１）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する前記変換後ビット列の値が第１の値であって、対応する多階調デザインデータのモジュールの各色成分の階調値の最小値が第１のしきい値よりも小さい場合に、そのモジュールの各色成分の階調値を増加させる変換式に基づいて各色成分の階調値を補正し、
少なくとも前記デザインデータ領域に対応する前記変換後ビット列の値が第２の値であって、対応する多階調デザインデータのモジュールの各色成分の階調値の最大値が第２のしきい値よりも大きい場合に、そのモジュールの各色成分の階調値を減少させる変換式に基づいて各色成分の階調値を補正するようにしてもよい。
【００３４】
本発明によれば、あるモジュールの色成分ごとの階調値に、読み取られるべき値に反して小さい又は大きい値がある場合には、当該モジュールの階調値全体を補正する。即ち本発明では、変換後ビット列の値が第１の値であるモジュール（例えば色成分の値が大きくあるべきモジュール、明（白）であることを示す値であるモジュール）の色成分ごとの階調値のうち最小の値を示す色成分の階調値が、例えば明るいモジュールであると読み取られる最小の値である第１のしきい値よりも小さい場合には、最小値の色成分のみならずそのモジュールの各色成分の階調値を増加させる。そして第２の値であるモジュールについては、第２のしきい値よりも大きい場合に各色成分の階調値を減少させる。従って本発明によれば、より確実に読み取り誤りを防止するとともに、可及的に元の階調値を補正後の階調値に反映することができる。
【００３５】
（１２）また本発明に係る２次元コードを生成するためのデータを生成するシステム、プログラム及び情報記憶媒体では、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求める多階調デザインデータ補正部とを含むようにしてもよい。
【００３６】
本発明によれば、多階調のデザインパターンが構成された２次元コードを生成することができるデータを生成することができる。そして、生成された２次元コードを生成するためのデータには、原データの情報が含まれている。従って、本発明により生成したデータに基づいて２次元コードを生成すれば、２次元コードに多階調のデザインパターンを構成しつつ、本システム利用者が２次元コードシンボルを介して伝達しようとする情報である原データを２次元コードの読取装置に読み取らせることができる。
【００３７】
このように、本発明によれば、人目を引き付けることができる多階調のデザインパターンが構成された２次元コードを、通常の２次元コードの生成手順に準じて簡易に生成することができる。しかも、生成された２次元コードは多階調のデザインが構成されていても、通常の２次元コードの生成手順に準じて生成されているので、２次元コードを読取装置により正確に読み取らせることができる。
【００３８】
（１３）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値が、第１の値として読み取られる範囲の階調値と第２の値として読み取られる範囲の階調値とから構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのモジュールごとの階調値に基づいて、２次元コードを生成する２次元コード生成部とを含むようにしてもよい。
【００３９】
本発明によれば、明度が中間的な階調値であるなど２値化データのいずれを示すものであるか読み取ることができないおそれがある階調値がモジュール単位の階調値として存在しない多階調デザインデータを用いることにより、階調値の補正処理を行うことなく多階調のデザインパターンが構成された２次元コードを生成することができる。
【００４０】
（１４）本発明は、
所与の２値化データを表すモジュールが２次元に配置された２次元コードであって、
前記２次元コードから読み取られるべき原データを表すモジュールと、
少なくとも、前記原データを表すモジュールが配置された原データ領域以外の領域において、前記モジュールごとの階調値により多階調のデザインを構成するモジュールとが配置され、
前記モジュールごとの階調値は、
前記モジュールが前記２値化データのいずれを表すか読み取り可能な範囲の値とされていることを特徴とする２次元コードに関係する。
【００４１】
また本発明は、上記２次元コードを生成する２次元コード生成部、又は、上記２次元コードを生成するためのデータを生成する２次元コードデータ生成部を含む２次元コード生成システムに関係する。また本発明は、上記２次元コードを生成する２次元コード生成部、又は、上記２次元コードを生成するためのデータを生成する２次元コードデータ生成部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記２次元コード生成部、又は、２次元コードデータ生成部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００４２】
また本発明は、上記２次元コードが印刷された印刷物に関係する。また本発明は、上記２次元コードとして読み取られる２次元コード画像を生成するシステム、プログラム及び情報記憶媒体に関係する。
【００４３】
本発明によれば、本システム利用者が２次元コードを介して伝達しようとする情報を読み取り装置に読み取らせつつ、モジュールごとの階調値により所与のデザインを構成するモジュールが配置された２次元コードを提供することができる。
【発明を実施するための最良の形態】
【００４４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４５】
１．２次元コードの構造
図１に、本実施の形態の２次元コード生成システムで生成される２次元コードシンボルの構造の例を示す。本実施の形態では、２次元コードとしてＱＲコード（株式会社デンソーウェーブの登録商標）を用いた例を示すが、本実施の形態により生成できる２次元コードはＱＲコードに限らない。
【００４６】
図１に示すように、本実施の形態の２次元コードシンボル１０は、正方形のモジュールを縦に４５個、横に４５個、計２０２５個正方形状に配列して構成されている。このシンボル１０には、シンボル１０からデータを読み取る際に用いられる位置検出パターン１２と位置合せパターン１３とタイミングパターン１４とが配置されている。そして、位置検出パターン１２と位置合せパターン１３とタイミングパターン１４とが配置されている領域以外の領域として、シンボル１０から読み取られるべきデータのモジュールパターン（符号化パターン）が配置される符号化領域１６が設けられている。
【００４７】
この符号化領域１６には、シンボル１０の型番情報（サイズ情報）の符号化パターンが配置される型番領域１８と、シンボル１０の形式情報（誤り訂正レベル情報、マスク処理パターンに関する情報）の符号化パターンが配置される形式領域２０と、本実施の形態のシステムの利用者が任意に入力可能なデータの符号化パターンが配置されるデータ領域２２とが含まれる。
【００４８】
２．２次元コードの生成処理
図２に、本実施の形態の２次元コード生成システムの処理の流れの一例を示す。まず、ステップＳ１において、２次元コードを生成するための各種データを取得する。
【００４９】
図３に、このデータ取得処理の詳細を示す。まず、ステップＳ２において、入力部への入力情報に基づき、システムの利用者が所望するシンボルの型番情報と形式情報とを取得する。ここで、型番情報には、シンボル１０の大きさを特定するサイズ情報（１〜４０）が含まれている。本実施の形態では、サイズ情報によりシンボル１０を構成するモジュールの数とその配置を特定することができる。また、形式情報には、生成されるシンボルの読み取り誤りを訂正するための誤り訂正アルゴリズムの種類を特定する誤り訂正レベル情報が含まれる。本実施の形態では、誤り訂正レベルがＬ、Ｍ、Ｑ、Ｈの４段階用意されており、誤り訂正レベルに応じて誤り訂正の精度が異なる。
【００５０】
そして、ステップＳ４において、本システム利用者が２次元コードシンボルを介して伝達しようとする情報である原データの文字列を取得する。この原データとしては、例えばＵＲＬやメールアドレス等のネットワークアドレス情報や、種々の管理情報、識別情報、暗号化情報等が入力される。すると、ステップＳ６において、取得した原データの文字列を２次元コードのフォーマット情報に基づいて変換し、原データのビット列を生成する。そして、原データのビット列の最後に原データの終端を示すエンドパターンのビット列を挿入する。このエンドパターンは、２次元コードを読み取った場合に、エンドパターン以降の符号化パターンについては情報として出力する必要がないことを示すものである。
【００５１】
そして、図２のステップＳ１０において、エンドパターンを含む原データのビット列を２次元コードのフォーマット情報に基づいて８ビットコード語（データコード語）に分割する。すると、ステップＳ１２において、取得したサイズ情報、誤り訂正レベル情報に基づき、当該サイズ、誤り訂正レベルが要求するデータコード語数を満たすか否かを判断する。
【００５２】
ここで、要求するデータコード語数を満たさないと判断すると（ステップＳ１２のＮ）、即ち２次元コードのサイズに対して原データのデータ量が少ないと、ステップＳ１４において、データコード語列の後に埋め草コード語を付加する。この埋め草コード語とは、２次元コードのサイズに対して原データのデータ量が少ない場合に、原データを示す符号化パターン以降の符号化領域１６が例えば空白（明モジュールのみ）となると、２次元コードの読み取りに支障があることを考慮して付加されるものである。本実施の形態では、２次元コードのフォーマットに基づいて、データが空であることを示す所定の符号化パターンが繰返し付加される。
【００５３】
一方、要求するデータコード語数を満たすと判断すると（ステップＳ１２のＹ）、埋め草コード語は付加せずに、ステップＳ１６において、データコード語列を誤り訂正用のブロック数に分割し、ステップＳ１８において、各ブロックに対して誤り訂正コード語を生成する。この誤り訂正コード語とは、２次元コードの読み取り誤りを訂正するための誤り訂正アルゴリズムに用いられる情報の符号化パターンを生成するための所定のビット列単位である。そして、ステップＳ２０において、データコード語列の後に誤り訂正コード語を付加する。
【００５４】
そして、ステップＳ２２において、２次元コードのフォーマット情報に従って各ブロックのデータコード語・誤り訂正コード語をインターリーブにし、必要に応じて残余ビットを付加し、ステップＳ２４において、２次元コードのフォーマット情報に基づいてマトリックスに、位置検出パターン１２、位置合せパターン１３、タイミングパターン１４、コード語列に対応させた暗（黒）モジュールと明（白）モジュールとを配置する。
【００５５】
そして、ステップＳ２６において、シンボルの符号化領域１６にマスク処理パターンを適用する。このマスク処理は、ステップＳ２４において符号化領域１６に配置された暗（黒）モジュールと明（白）モジュールとが、バランスよく配置されるようにするための処理である。そして、ステップＳ２８において、ステップＳ２で取得した型番情報の符号化パターンを型番領域１８に配置し、形式情報の符号化パターンを形式領域２０に配置し、シンボルを完成する。
【００５６】
図４に、このようにして生成された２次元コードシンボルの一例を示す。本実施の形態では、各コード語列に対応させた暗（黒）モジュールと明（白）モジュールの配置は、図４に示すシンボル１０の右下隅から開始し、上方向、下方向を交互に走査し、右から左へ配置する。ここで、各コード語列は、原データとそのエンドパターンを示すデータコード語、埋め草コード語、誤り訂正コード語の順に配列されている。従って、シンボル１０の符号化領域１６には、図４に示すように、原データの符号化パターンが配置された原データ領域３０と、埋め草データの符号化パターンが配置された不使用データ領域３２と、誤り訂正コードの符号化パターンが配置された誤り訂正コード領域３４とが形成される。
【００５７】
３．デザインデータ処理
ここで本実施の形態では、不使用データ領域３２の符号化パターンは、データが空であることを示しているに過ぎない。従って、不使用データ領域３２においては自由にモジュールを配置することができる。そこで本実施形態では、不使用データ領域３２となるべき領域をデザインデータ領域３３として利用して、デザインデータ領域３３のモジュールの配置（パターン）が、所与のデザインを構成するように２次元コードシンボル１０を生成するためのデータ（ビット列）を生成する。
【００５８】
また本実施形態の２次元コードでは、２次元コードを構成するモジュールが２値化データのいずれを示すものであるか、即ち、各モジュールが明（白）モジュールであるか暗（黒）モジュールであるかを読み出すことにより、２次元コードに化体されたビット列を読み出す。従って２次元コードの各モジュールは、例えば白か黒のように明らかに異なるものとして読み取られる色とすることが好ましい。しかしモジュールの色が白か黒でなくとも、色値（階調値）が黒に近い範囲の暗い色であれば一方の値を示すものとして読み取らせ、色値が白に近い範囲の明るい色であれば他方の値を示すものとして読み取らせることができる。即ち２次元コードの各モジュールの色が、２値化データのいずれを示すものであるか読み取り可能な範囲の色であれば、２次元コードとして機能させることができる。
【００５９】
そこで本実施形態では、デザインデータ領域３３に配置されるモジュールの色が所与のデザインを構成しつつ、２値化データのいずれを示すものであるか読み取り可能な範囲の色から構成された２次元コードシンボル１０を生成する。そのため本実施形態では、図２のステップＳ１のデータ取得処理において、本実施の形態に特徴的なデザインデータ処理を行う。
【００６０】
図５に、デザインデータ処理の流れの一例を示す。まず、図３のステップＳ６までにおいて、サイズ情報・誤り訂正レベル情報・原データを取得して（ステップＳ２、ステップＳ４）、２次元コードのフォーマット情報に基づいて原データのビット列を生成すると（ステップＳ６）、図５のステップＳ４０において、システムの利用者が２次元コードに構成させるデザインとして選んだ所与のカラー画像データ（多階調画像データ）に基づいて、サイズ情報に応じた２次元コードのモジュールごとの色値から構成されたカラーデザインデータ（多階調デザインデータ）を生成する。
【００６１】
３−１．カラーデザインデータ生成処理
図６（Ａ）は、所与のカラー画像データＰ０の例である。本実施形態ではカラー画像データＰ０は、Ｒ・Ｇ・Ｂの各色成分の色値が０〜２５５までとり得るいわゆるフルカラーの画像データとすることができる。そしてこのカラー画像データＰ０は、システム利用者がスキャナ等のハードウェアで取り込んだものや情報記憶媒体に記憶されたもの、画像作成ソフトで作成したものなどとすることができる。
【００６２】
ここで本実施形態では、図６（Ｂ）に示すようにデザインデータ領域３３の範囲を示す画像を生成して表示部に表示させるようにしてもよい。本実施の形態では、図４に示すように原データ領域３０がサイズ情報と原データのデータ量に応じて定まり、誤り訂正データ領域３４がサイズ情報に応じて定まる。よって、サイズ情報と原データのビット列に基づいて原データ領域３０を特定し、サイズ情報に基づいて誤り訂正データ領域３４を特定し、サイズ情報と原データ領域３０と誤り訂正データ領域３４とに基づいて、デザイン領域３３を特定することができる。従って、図６（Ｂ）に示すように、２次元コードシンボル１０を、デザイン領域３３が空白となるように表示することができる。
【００６３】
そしてシステム利用者は、かかる２次元コードシンボル１０と所与のカラー画像データＰ０を対比して、デザイン領域３３の範囲内に所望のデザインが収まるように、カラー画像データＰ０の大きさを調整する、或いは２次元コードのサイズ情報を変更する。そして本実施形態では、かかるカラー画像データＰ０を、図６（Ｃ）に示すような、取得したサイズ情報に応じた２次元コードのモジュールごとの色値から構成されたカラーデザインデータＰｍに変換する。即ち任意の解像度のカラー画像データＰ０を、２次元コードのモジュールを１画素とするカラーデザインデータＰｍに変換する。図６（Ｃ）の例では、縦横４５個の計２０２５個の正方形のモジュールごとの色値に変換する。
【００６４】
図７は、図５のステップＳ４０のカラーデザインデータ生成処理の詳細の一例を示すフローチャートである。本実施形態では、２次元コードのモジュールよりも細かい画素から構成されたカラー画像データＰ０を縮小して、２次元コードのモジュールを画素とするカラーデザインデータＰｍに変換する。図７の例では、モジュールの位置（領域）に対応するカラー画像データＰ０の位置（領域）の代表画素を抽出することにより１のモジュールの色値を決定しているが、モジュールの位置（領域）に対応するカラー画像データＰ０の位置（領域）の画素を平均することにより１のモジュールの色値を決定してもよく、本実施形態では種々の手法を採用することができる。
【００６５】
図７の例では、まずステップＳ５０、ステップＳ５２において、ＹとＸに０を代入し、ステップＳ５４において、カラー画像データＰ０の縦の画素数Ｙ０にＹをかけて２次元コードの縦のモジュール数Ｓｉｚｅで割り、２次元コードの座標Ｙ＝０に対応するカラー画像データＰ０の座標Ｖを求め、同様にカラー画像データＰ０の横の画素数Ｘ０にＸをかけて２次元コードの横のモジュール数Ｓｉｚｅで割り、２次元コードの座標Ｘ＝０に対応するカラー画像データＰ０の座標Ｕを求める。そしてステップＳ５６においてＵ，Ｖの小数値を切り捨ててそれぞれを整数値化する。
【００６６】
そしてステップＳ５８において、カラー画像データＰ０の各色成分の種類を示すＣ（Ｒ＝０、Ｇ＝１、Ｂ＝２）に０を代入する。そしてステップＳ６０において、カラー画像データＰ０の（Ｕ，Ｖ）の位置の色Ｃ（Ｒ）を読出しａに代入し、ステップＳ６２において、カラーデザインデータＰｍの（Ｘ，Ｙ）の位置の色Ｃ（Ｒ）にａを書込む。するとステップＳ６４において、各色成分の種類を示すＣに１加算し、ステップＳ６６においてＣが３未満即ちその座標の各色成分の色値を全て読み出していない場合には（ステップＳ６６のＹ）、ステップＳ６０に戻り、他の色成分の色値について同様の処理を行う。こうして（０，０）の位置のＲＧＢの色成分の色値を書込むと（ステップＳ６６のＮ）、ステップＳ６８において座標値Ｘに１加算し、ステップＳ７０においてＸ座標が４５となるまでステップＳ５４からステップＳ７０までの処理を繰返し、Ｙ座標が０の位置全てについてＲＧＢの色成分の色値を書込む（ステップＳ７０のＮ）。
【００６７】
するとステップＳ７２において座標値Ｙに１加算し、ステップＳ７４においてＹ座標が４５となるまでステップＳ５２からステップＳ７４までの処理を繰返し、カラーデザインデータＰｍの全ての（Ｘ，Ｙ）の位置の色Ｃに、カラー画像データＰ０の（Ｕ，Ｖ）の位置の色Ｃを書込む。こうして本実施形態では、図６（Ａ）に示すような所与のカラー画像データＰ０を、図６（Ｂ）に示すようなサイズ情報に応じた２次元コードのモジュールごとの色値から構成されたカラーデザインデータＰｍに変換する。
【００６８】
３−２．２値化デザインデータ生成処理
こうして図５のステップＳ４０においてカラーデザインデータＰｍを取得すると、図５のステップＳ４１において、カラーデザインデータＰｍのモジュールごとの色値を各モジュールの色値に応じて２値化することにより、図８に示すような２値化デザインデータＰｂｗを生成し、これを取得する。即ちカラーデザインデータＰｍのモジュールのうち、相対的に暗い色のモジュールは黒のモジュールとし、相対的に明るい色のモジュールは白のモジュールとする変換を行う。この２値化デザインデータＰｂｗは、カラーデザインデータＰｍの色の分布を２次元コードの読取装置が読み取った場合に、読取装置に認識させるべき値を示すものである。
【００６９】
図９は、かかる２値化デザインデータ生成処理の詳細の一例を示すフローチャートである。図９に示すようにまずステップＳ８０、ステップＳ８１において、カラーデザインデータＰｍの座標値のＹとＸに０を代入し、ステップＳ８４において、各座標についての値が格納されるａに０を代入する。そしてステップＳ８６において、カラーデザインデータＰｍの（０，０）の位置のＲＧＢ各色成分の色値の合計値Ｔを求める。そしてステップＳ９４において、各色成分の色値の合計Ｔを色成分の数３で割った値をａに代入する。即ち（０，０）の位置のＲＧＢの色成分の色値の平均値をａに格納する。
【００７０】
するとステップＳ９６において平均値ａが１２８以上、即ち色値がとり得る値０〜２５５の中間の値よりも大きい値である場合には、ステップＳ９８においてａに当該位置のモジュールが白であることを示す０を代入する。一方平均値ａが１２８以下である場合には、ステップＳ１００においてａに当該位置のモジュールが黒であることを示す１を代入する。そしてステップＳ１０２において、２値化デザインデータＰｂｗの（０，０）の位置にａ（０、１のいずれか）を格納する。そしてステップＳ１０４において座標値Ｘに１加算し、ステップＳ１０６においてＸ座標が４５となるまでステップＳ８４からステップＳ１０６までの処理を繰返し、Ｙ座標が０の位置全てについてａ（０、１のいずれか）を格納する。
【００７１】
するとステップＳ１０８において座標値Ｙに１加算し、ステップＳ１１０においてＹ座標が４５となるまでステップＳ８２からステップＳ１１０までの処理を繰返し、２値化デザインデータＰｂｗの全てに位置についてａ（０、１のいずれか）を格納する。こうして本実施形態では、図６（Ｃ）に示すようなカラーデザインデータＰｍを、図８に示すようなカラーデザインデータＰｍのモジュールごとの色値が各モジュールの色値に応じて２値化された２値化デザインデータＰｂｗに変換する。
【００７２】
なお図６（Ｃ）の例のカラーデザインデータＰｍは、ハート形状の左半分ＨＬは色値の平均値が３０の暗い赤の色値となっており、ハート形状の右半分ＨＲは色値の平均値が２３０の明るい赤の色値となっている。また背景の左半分ＢＬは色値の平均値が１６０であって中間よりは明るい青の色値となっており、背景の右半分ＢＲは色値の平均値が９６であって中間よりは暗い青の色値となっている。従ってかかるカラーデザインデータＰｍから生成される２値化デザインデータＰｂｗは、ハート形状の左半分ＨＬと背景の右半分ＢＲが黒のモジュールとされ、ハート形状の右半分ＨＲと背景の左半分ＢＬが白のモジュールとされている。
【００７３】
３−３．２値化デザインデータ逆変換処理
本実施の形態では、図２のステップＳ２６のように、２次元コードを生成する際にマスクパターンとコード語モジュールパターンとでＸＯＲ演算による変換を行う。従って、２次元コードのデザインデータ領域３３でカラーデザインデータＰｍの色値に対応する２値化デザインデータ（２値化デザインパターンのビット列）を生成しても、そのままではマスクパターンとのＸＯＲ演算により、２値化デザインパターンのビット列がカラーデザインデータＰｍの色値に対応しないビット列に変換されてしまう。
【００７４】
そこで、本実施の形態では、２次元コードを生成する際にマスクパターンとのＸＯＲ演算を行うと２値化デザインパターンのビット列に戻るように、生成した２値化デザインパターンのビット列を予め逆変換しておく。即ち、本実施の形態では、図２のステップＳ２６でマスクパターンが適用される前に、予め２値化デザインパターンとマスクパターンとでＸＯＲ演算による変換を行う。
【００７５】
より詳細には、図５のステップＳ４２において、サイズ情報、誤り訂正レベル情報、原データのビット列に基づき、デザインデータ領域３３を特定し、ステップＳ４４において、デザインデータ領域３３に該当する２値化デザインパターンのビット列を抽出する。そして、ステップＳ４６において、抽出した２値化デザインパターンのビット列とマスクパターンのビット列とでＸＯＲ演算による変換を行う。
【００７６】
図１０は、図８の２値化デザインデータＰｂｗから抽出した２値化デザインパターン４０と、マスクパターン４２とでＸＯＲ演算による変換を行って得られる逆変換モジュールパターン４４の例である。図１０に示すように、本実施の形態では、２値化デザインパターン４０とマスクパターン４２とで対応するモジュールが、同種のモジュールである場合には当該モジュールを暗（黒）モジュールとし（０＋０＝１、１＋１＝１）、異種のモジュールである場合には当該モジュールを明（白）モジュールとする（０＋１＝０、１＋０＝０）。
【００７７】
従って、ＸＯＲ演算による変換を行って得られる逆変換モジュールパターン４４は２値化デザインデータＰｂｗに対応しないものとなるが、２次元コードを生成する際に再びマスクパターンとのＸＯＲ演算を行うと２値化デザインパターンに戻るものである。こうして、デザインデータ領域３３に対応する２値化デザインパターンのビット列をマスクパターンで逆変換した逆変換ビット列を生成する。なお、マスクパターン４２の４隅などのグレーの部分、即ち生成される２次元コードの位置検出パターン１２と位置合せパターン１３とタイミングパターン１４とに対応する機能パターン領域４６には、マスク処理を適用しないようになっている。
【００７８】
すると、図２のステップＳ１０以降において、図３のステップＳ６で生成された原データのビット列（終端パターンや分割パターンを含めてもよい）と、生成された２値化デザインパターンの逆変換ビット列とをデータコード語に分割し、ステップＳ１２において、得られたデータコード語列がデータコード語数を満たすか否かを判断する。
【００７９】
ここで、２値化デザインパターンの逆変換ビット列は、デザインデータ領域３３のモジュール全てを含んでいる。よって、原データのビット列と逆変換ビット列とからなるデータコード語列は、ステップＳ１２において、データコード語数を満たすと判断される（ステップＳ１２のＹ）。従って、ステップＳ１４で埋め草コード語は付加されず、そのままステップＳ１６〜ステップＳ２４までの２次元コードのフォーマットに基づく処理が行われる。すると、図１１の左側のモジュールパターンのように、位置検出パターン１２等が配置され、原データのモジュールパターン４８と逆変換モジュールパターン４４と、それらに対応する誤り訂正コードパターン５０とを含むマスク前パターン５２が生成される。
【００８０】
そして、ステップＳ２６において、マスク前パターン５２にマスク処理パターンを適用すると、２値化デザインパターンの逆変換ビット列が変換されて、元の２値化デザインパターンのビット列に戻る。即ち、図１１に示すように、マスク前パターン５２と、マスクパターン４２とでＸＯＲ演算による変換を行うことにより、デザインデータ領域３３にカラーデザインデータＰｍの色値に対応する２値化デザインパターン４０が構成されたデザイン２次元コードシンボル５４を生成するための変換後ビット列を生成することができる。
【００８１】
こうして、本実施の形態によれば、逆変換モジュールパターン４４を生成しておくことにより、その後は通常の２次元コードの生成手順に従って、変換後ビット列を生成することができる。そして、２値化デザインパターン４０が構成されたデザイン２次元コードシンボル５４（変換後ビット列）のうち、原データ領域３０には原データのモジュールパターン４８が変換された変換後の原データのモジュールパターン５６が配置されているので、２次元コードの読取装置がこの２次元コード５４を読み取ると、本システム利用者が２次元コードシンボルを介して伝達しようとする情報である原データを読み取らせることができる。
【００８２】
また、誤り訂正データ領域３４には誤り訂正コードパターン５０が変換された変換後の誤り訂正コードパターン５８が配置されているので、原データのモジュールパターン５６及び２値化デザインパターン４０の読み取り誤りを訂正することができる。なお、本実施の形態では、２値化デザインパターン４０は原データのモジュールパターンの終端パターンの後に付加されているので、デザインデータ領域３３の２値化デザインパターン４０は読取装置に読み取られてもデータは示さない。
【００８３】
なお、原データのモジュールパターンの後には、終端パターンのみならず、原データのビット列とデザインデータのビット列を識別するための識別子を挿入するようにしてもよい。例えば、原データのビット列の最後に分割パターンを挿入するようにしてもよい。この分割パターンは、例えば改行を示すビット列としてもよいし、スペースを示すビット列としてもよい。これによりデザインデータ領域３３のビット列と原データのビット列とを区別することができる。また、原データのビット列とデザインデータ領域３３のビット列との間に終端パターン等を挿入せず、原データのビット列とデザインデータ領域３３のビット列とにより、例えばネットワークアドレスデータ等の所与の情報を示すようにしてもよい。
【００８４】
また、図５のステップＳ４４において、原データ領域３０に該当する原データのビット列も合わせて抽出し、原データのビット列及び２値化デザインパターンのビット列と、マスクパターンとでＸＯＲ演算による変換を行ってもよい。即ち、少なくともデザインデータ領域３３に該当する２値化デザインパターンのビット列について、逆変換がなされていればよい。
【００８５】
また、本実施の形態では、２次元コードを生成する際のマスクパターンによる変換処理を考慮して逆変換を行う例を挙げて説明したが、２値化デザインパターンのビット列に対して２次元コードを生成する際に他の変換処理が行われる場合には、その変換処理を行うと２値化デザインパターンのビット列に戻るように、生成した２値化デザインパターンのビット列を予め逆変換しておく。ここで、逆変換とは、２次元コードを生成する際の変換処理により２値化デザインパターンのビット列に戻るようなビット列に、２値化デザインパターンのビット列を変換する処理をいう。例えば本実施の形態では、逆変換処理と、２次元コードを生成する際の変換処理とが、ともにＸＯＲ演算であって同一の変換処理となるものであるが、かかる場合も逆変換の概念に含まれる。
【００８６】
なお、図２のステップＳ２６のマスク処理において、複数種類のマスクパターンが適用され、所定の評価関数に基づいて最もバランスよくモジュールが配置されるマスクパターンが選択される場合には、図３のステップＳ２において、マスク処理で適用させるマスクパターンを指定するマスクパターン情報を取得し、当該マスクパターンで図５のステップＳ４６の逆変換処理と、図２のステップＳ２６の変換処理とを行うようにしてもよい。
【００８７】
３−４．カラーデザインデータ補正処理
こうして本実施形態では、デザイン領域３３にカラーデザインデータＰｍに対応する２値化デザインパターン４０が構成された２次元コード５４が生成される。従って、カラーデザインデータＰｍを構成するモジュールごとの色が、黒と読み取られるような暗い色、白と読み取られるような明るい色から構成されていれば、２次元コード５４のデザイン領域３３のモジュールの色を、カラーデザインデータＰｍのモジュールごとの色に配色しても２次元コードとして読み取ることができる。
【００８８】
しかしカラーデザインデータＰｍはフルカラーのカラー画像データＰ０から生成されているため、カラーデザインデータＰｍのモジュールには、明るさが中間的な色値であるなど２値化データのいずれを示すものであるか読み取ることができないおそれがある色のモジュールが存在する場合がある。従って、カラーデザインデータＰｍの各モジュールの色値を、上述のようにして生成したデザイン２次元コードシンボル５４（変換後ビット列）のモジュールの色としてそのまま適用したのでは、２次元コードの読み取り誤りが発生したり、２次元コードとして読み取れない事態が発生する場合がある。
【００８９】
そこで本実施形態では、かかるカラーデザインデータＰｍの色値に対応する２値化デザインパターン４０を構成するための変換後ビット列を基準として、カラーデザインデータＰｍのモジュールごとの色値を補正して、補正後の色値に基づいた２次元コードを生成する。即ち本実施形態では、まず２次元コードとして読み取り可能であって、かつカラーデザインデータに対応する２値化デザインが構成された２次元コードを生成するための変換後ビット列（図１１に示す２値化デザインパターン４０が構成された２次元コードシンボル５４）を生成する。そしてカラーデザインデータのモジュールごとの色値が、変換後ビット列の値として読み取られるように各色値を補正することにより、変換後ビット列の値が示すとおりに読み取り可能であって、かつカラーデザインが構成された２次元コードを生成する。
【００９０】
ここで本実施形態では、図１１に示す２次元コードシンボル５４のうち、原データ領域３０と、誤り訂正データ領域３４と、位置検出パターン１２と位置合せパターン１３とタイミングパターン１４とに対応する機能パターン領域４６とを除く、デザインデータ領域３３に対応するモジュールについて、補正後の色値に応じた色が配色されればよい。
【００９１】
３−４−１．第１の色値の補正処理
例えば図６（Ｃ）のカラーデザインデータＰｍの例では、背景の左半分ＢＬは色値の平均値が１６０の中間よりは明るい青の色値となっており、背景の右半分ＢＲは色値の平均値が１６０の中間よりは暗い青の色値となっている。このように背景の左半分ＢＬと背景の右半分ＢＲとでは、モジュールの色値が中間的な値となっているため読み誤り等が発生するおそれがある。
【００９２】
そこで第１の例では、少なくともデザインデータ領域３３に対応するカラーデザインデータＰｍのモジュールごとの色値を、各色値に応じた変換式、又は各モジュールに対応する変換後ビット列の値に応じた変換式に基づいて、中間値よりも暗い色は確実に黒として読み取られるように、中間値よりも明るい色は確実に白として読み取られるように補正する。
【００９３】
図１２は、第１の例の色値補正処理の詳細を示すフローチャートである。図１２に示すようにまずステップＳ１２０において、カラーデザインデータＰｍの座標値としてＹ＝０を代入し、ステップＳ１２２においてＸ＝０を代入する。そしてステップＳ１２４において、カラーデザインデータＰｍの（Ｘ，Ｙ）の位置のＲＧＢ各色成分の色値の合計値Ｔを求め、ステップＳ１２６において、合計値Ｔが各色値の中間値である１２８の３倍の値よりも大きいか否か、即ち（Ｘ，Ｙ）の位置のモジュールの色値が中間値よりも暗い値か明るい値か判定する。なお、対応する２値化デザインデータＰｂｗの（Ｘ，Ｙ）の位置の値が０か１かにより判定してもよい。
【００９４】
そして合計値Ｔの方が大きい場合（値が１の場合）、即ち（Ｘ，Ｙ）の位置のモジュールの色値が中間値よりも明るい場合には（ステップＳ１２６のＹ）、ステップＳ１２８において、カラーデザインデータＰｍの（Ｘ，Ｙ）の位置のＲＧＢ各色成分の色値を色成分ごとに、Ａ’＝Ａ／２＋１２８のＡに代入し、変換後の値Ａ´を（Ｘ，Ｙ）の位置の補正後の色成分ごとの色値とする。従って各色成分の色値が例えば１３０であるなど中間値とほとんど変わらないような色値が存在する場合でも、１３０／２＋１２８＝１９３と補正され、確実に白（変換後ビット列が示す値）として読み取られる値となる。
【００９５】
一方、合計値Ｔの方が小さい場合（値が０の場合）、即ち（Ｘ，Ｙ）の位置のモジュールの色値が中間値よりも暗い場合には（ステップＳ１２６のＮ）、ステップＳ１３０において、カラーデザインデータＰｍの（Ｘ，Ｙ）の位置のＲＧＢ各色成分の色値を色成分ごとに、Ａ’＝Ａ／２のＡに代入し、変換後の値Ａ´を（Ｘ，Ｙ）の位置の補正後の色成分ごとの色値とする。従って各色成分の色値が例えば１２６であるなど中間値とほとんど変わらないような色値が存在する場合でも、１２６／２＝６３と補正され、確実に黒（変換後ビット列が示す値）として読み取られる値となる。
【００９６】
そしてステップＳ１３２において座標値Ｘに１加算し、ステップＳ１３４においてＸ座標が４５となるまでステップＳ１２２からステップＳ１３４までの処理を繰返し、Ｙ座標が０の位置全てについて補正後の色成分ごとの色値を求める。するとステップＳ１３６において座標値Ｙに１加算し、ステップＳ１３８においてＹ座標が４５となるまでステップＳ１２２からステップＳ１３８までの処理を繰返し、カラーデザインデータＰｍの全ての位置について補正後の色成分ごとの色値を求める。こうして本実施形態では、カラーデザインデータＰｍのモジュールごとの色値を、確実に各モジュールに対応する変換後ビット列の値として読み取られるように補正する。
【００９７】
そして第１の例では図１３に示すように、デザインデータ領域３３については補正後の色値に基づいて２次元コードシンボル１０を生成し、２次元コードのその他の領域については変換後ビット列（デザイン２次元コードシンボル５４）に基づいて２次元コードシンボル１０を生成する。従って図１３の例では、モジュールの色値が中間的な値であった背景の左半分ＢＬと背景の右半分ＢＲの色値が、デザインデータ領域３３においてカラーデザインデータＰｍの色を可及的に反映しつつ、確実に変換後ビット列の値として読み取られる色値となっている。
【００９８】
このように本実施形態によれば、人目を引き付けることができるカラーのデザインパターンが構成された２次元コードを、通常の２次元コードの生成手順に準じて簡易に生成することができる。しかも、カラーデザインが構成されていても、通常の２次元コードの生成手順に準じて生成されているので、２次元コードを読取装置により正確に読み取らせることができる。
【００９９】
３−４−２．第２の色値の補正処理
また図６（Ｂ）のカラーデザインデータＰｍの例では、ハート形状の左半分ＨＬは色値の平均値が３０の暗い赤の色値となっており、ハート形状の右半分ＨＲは色値の平均値が２３０の明るい赤の色値となっている。よって、ハート形状の左半分ＨＬとハート形状の右半分ＨＲとでは、モジュールの色値が中間的な値となっていないためそのままの色値でも読み誤りなく読み取られる。しかし第１の例の色値補正処理では、かかるモジュールの色値についても同様の変換式により補正を行うため、図１３に示すようにハート形状の左半分ＨＬはほとんど黒に近い暗い赤に補正され、ハート形状の右半分ＨＲはほとんど白に近い明るい赤に補正されている。
【０１００】
そこで第２の例では、色値が色値のとり得る範囲の中間付近の第１の範囲の値である場合、即ち色値が２値化データのいずれを示すものであるか読み取ることができないおそれがある値である場合に、色値をその色値に応じた変換式、又は各モジュールに対応する変換後ビット列の値に応じた変換式に基づいて、中間値よりも暗い色は確実に黒として読み取られるように、中間値よりも明るい色は確実に白として読み取られるように補正する。そして色値が第１の範囲の値（中間的な値）であるモジュールについては補正後の色値に基づいて２次元コードを生成し、色値が第１の範囲の値以外の第２の範囲の値（中間的でない値）であるモジュールについては補正を行わずに、カラーデザインデータＰｍのモジュールごとの色値に基づいて２次元コードを生成する。
【０１０１】
図１４は、第２の例の色値補正処理の詳細を示すフローチャートである。図１４において、Ｆｇｅｔｃｏｌ（Ｘ,Ｙ,ｃ）は、カラーデザインデータＰｍの（Ｘ,Ｙ）の位置の色値を取り出す関数であって、ｃは０〜２までとり、それぞれがＲＧＢの各色成分に対応する。またＦｓｅｔｇｅｎ（Ｘ,Ｙ,ｃ,ａ）は、（Ｘ,Ｙ）の位置の補正後の色値を設定する関数であって、ｃは０〜２までとり、それぞれがＲＧＢの各色成分に対応し、指定された色成分ｃにａの値が設定される。またＦｇｅｔｇｅｎ（Ｘ,Ｙ,ｃ）は、（Ｘ,Ｙ）の位置の補正後の色値を取り出す関数であって、ｃは０〜２までとり、それぞれがＲＧＢの各色成分に対応する。
【０１０２】
図１４に示すようにまずステップＳ１５０において、カラーデザインデータＰｍの座標値としてＹ＝０を代入し、ステップＳ１５２においてＸ＝０を代入する。そしてステップＳ１５４において、カラーデザインデータＰｍの（Ｘ，Ｙ）の位置のＲＧＢ各色成分の色値の合計値Ｔを求め、ステップＳ１５６において、合計値Ｔが確実に白として読み取れる値である１９２の３倍の値よりも大きいか、又は合計値Ｔが確実に黒として読み取れる値である６４の３倍の値よりも小さいか判定する。即ち（Ｘ，Ｙ）の位置のモジュールの色値が、白黒いずれかの値として確実に読み取れる範囲の色値（第２の範囲）か否か判定する。
【０１０３】
ここで確実に読み取れる範囲の色値である場合には（ステップＳ１５６のＹ）、ステップＳ１５８〜ステップＳ１６４において、カラーデザインデータＰｍの（Ｘ，Ｙ）の位置のＲＧＢ各色成分の色値を、補正せずにそのまま２次元コードを生成するための色値として設定する。一方、確実に読み取れる範囲の色値でない場合には（ステップＳ１５６のＮ）、ステップＳ１６６において、合計値Ｔが各色値の中間値である１２８の３倍の値よりも大きいか否か、即ち（Ｘ，Ｙ）の位置のモジュールの色値が中間値よりも暗いか明るいか判定する。なお、対応する２値化デザインデータＰｂｗの（Ｘ，Ｙ）の位置の値が０か１かにより判定してもよい。
【０１０４】
そして合計値Ｔの方が小さい場合（Ｐｂｗの（Ｘ，Ｙ）の値又は変換後ビット列の対応する値が１の場合）、即ち（Ｘ，Ｙ）の位置のモジュールの色値が中間値よりも暗い場合には（ステップＳ１６６のＹ）、ステップＳ１６８において各色成分の種類を示すＣ（Ｒ＝０、Ｇ＝１、Ｂ＝２）に０を代入し、ステップＳ１７０において、カラーデザインデータＰｍの（Ｘ，Ｙ）の位置のＲＧＢ各色成分の色値を色成分ごとに、ａ＝ａ＊(６４＊３)／Ｔのように変換し、変換後の値ａを（Ｘ，Ｙ）の位置の補正後の色成分ごとの色値とする。従って各色成分の色値が例えばいずれも１３０であるなど中間値とほとんど変わらないような色値である場合でも、１３０＊(６４＊３)／３９０＝６４と補正され、確実に黒（変換後ビット列が示す値）として読み取られる値となる。
【０１０５】
一方、合計値Ｔの方が大きい場合（Ｐｂｗの（Ｘ，Ｙ）の値又は変換後ビット列の対応する値が０の場合）、即ち（Ｘ，Ｙ）の位置のモジュールの色値が中間値よりも明るい場合には（ステップＳ１６６のＮ）、ステップＳ１７６〜ステップＳ２００において、所定の変換式に基づいて各色成分の色値を変換した場合に、色値がとり得る最大値２５５をオーバーフローしたか否かに応じて変換式を変える手法により各色成分ごとの色値を補正する。本実施形態ではまず、ステップＳ１７６において最大値２５５に対するオーバーフローの積算値ＯＶと、余裕分の積算値ＳＰに０を代入し、ステップＳ１７８においてＣに０を代入する。そしてステップＳ１８０において、カラーデザインデータＰｍの（Ｘ，Ｙ）の位置のＲＧＢ各色成分の色値を色成分ごとに、ａ＝ａ＊(１９２＊３)／Ｔのように変換する。
【０１０６】
そしてステップＳ１８２において、変換後の値が最大値の２５５をオーバーフローした場合には（ステップＳ１８２のＹ）、ステップＳ１８４においてＯＶ＝ＯＶ＋ａ−２５５のようにしてオーバーフロー積算値を加え、補正値を２５５に設定する。一方、変換後の値が最大値の２５５をオーバーフローしない場合には（ステップＳ１８２のＮ）、ステップＳ１８６においてＳＰ＝ＳＰ＋２５５−ａのようにして余裕分の積算値を加え、補正値をステップＳ１８０で求めたａに設定する。そしてこれを各色成分について行う（ステップＳ１８８、ステップＳ１９０）。
【０１０７】
そしてステップＳ１９２においてオーバーフローがなかったと判定されると（ステップＳ１９２のＹ）、即ちステップＳ１８４の処理が行われず、各色成分についてステップＳ１８６の処理が行われた場合には、補正値をａとしてそのまま設定する。一方、ステップＳ１９２においてオーバーフローがあったと判定されると（ステップＳ１９２のＮ）、即ちステップＳ１８４の処理が行われた場合には、ステップＳ１９４〜ステップＳ２００までにおいて、各色成分の補正後の色値（ステップＳ１８０〜ステップＳ１９０において設定された色成分ごとの補正値）を更に変換する。即ちステップＳ１９６において、ａ＝２２５−Ｆｇｅｔｇｅｎ（Ｘ,Ｙ,ｃ）のようにして、最大値２５５と補正値との差をａとし、ｂ＝ＯＶ＊ａ／ＳＰ＋Ｆｇｅｔｇｅｎ（Ｘ,Ｙ,ｃ）のようにして、オーバーフロー積算値ＯＶと余裕分の積算値ＳＰを反映させた補正値ｂを算出し、これを最終的な補正値として設定する。
【０１０８】
そしてステップＳ２０２〜ステップＳ２０８のように、カラーデザインデータＰｍの全ての座標値のモジュールについて上記処理を行い、補正後の色値を求める。こうして第２の色値補正処理では、そのままの色値でも読み誤りなく読み取られるモジュールについては補正を行わず、読み誤りのおそれがおる色値のモジュールについてのみ補正を行う。特に中間的な値であって相対的に色値が明るいモジュールについては、オーバーフロー積算値ＯＶと余裕分の積算値ＳＰを考慮することにより、各色成分の色値にばらつきがあるモジュールについても適切な補正を行う。
【０１０９】
従って第２の例では図１５に示すように、ハート形状の左半分ＨＬとハート形状の右半分ＨＲとでは、モジュールの色値が中間的な値となっていないためカラーデザインデータＰｍそのままの色値に基づいて２次元コードシンボル１０を生成する。一方、モジュールの色値が中間的な値であった背景の左半分ＢＬと背景の右半分ＢＲの色値は、カラーデザインデータＰｍの色を可及的に反映しつつ、確実に変換後ビット列の値として読み取られる補正後の色値に基づいて２次元コードシンボル１０を生成する。
【０１１０】
３−４−３．第３の例
また、少なくともデザインデータ領域３３に対応するカラーデザインデータＰｍのモジュールごとの色値が、色値のとり得る範囲の中間付近の第１の範囲の値である場合、即ち色値が中間的な値である場合に、各モジュールに所定のパターンで割り当てられる値に応じた変換式に基づいて色値を補正するようにしてもよい。
【０１１１】
例えば図１６に示す第３の例では、図１４に示す第２の例とほぼ同様の処理を行うが、図１４のステップＳ１５６において色値が中間的な色値であると判定した場合に（ステップＳ１５６のＮ）、ステップＳ１６６においてＲＧＢ値の合計値Ｔが中間値よりも大きいか否かにより変換式を異ならせるのではなく、例えばディザパターンを用いて値を割り当て、値に応じて変換式を異ならせる。具体的には第３の例では、図１６のステップＳ１５６において色値が中間的な色値であると判定した場合に（ステップＳ１５６のＮ）、ステップＳ２２０において、(Ｙ＆１)＊２＋（Ｘ＆１）？のようにして、座標値Ｘ、Ｙに応じて異なる値０〜３を算出し、ステップＳ２２２において、算出された値に対応するしきい値Ｌを当該位置のモジュールに割り当てる。そしてステップＳ２２４において、色値の合計値Ｔが同じであっても割り当てられたしきい値に応じて用いる変換式が異なるようにして、色値の補正処理を行う。
【０１１２】
こうして第３の例によれば、色値が第１の範囲の値であるモジュールに対して、一括した補正処理を行うのではなく、例えば誤差拡散法などを用いて所定のパターンで値を割り当て、値に応じた補正処理を行う。従って第３の例によれば、色値が第１の範囲の値であるモジュールについて、所定のパターンで異なる色値を出現させて元の中間的な色値を表現することにより、可及的に元の色値を補正後の色値に反映することができる。
【０１１３】
３−４−４．第４の例
また、少なくともデザインデータ領域に対応する変換後ビット列の値が第１の値（白、０）であって、対応するカラーデザインデータのモジュールの各色成分の色値の最小値が第１のしきい値よりも小さい場合に、そのモジュールの各色成分の色値を増加させる変換式に基づいて各色成分の色値を補正し、少なくともデザインデータ領域３３に対応する変換後ビット列の値が第２の値（黒、１）であって、対応するカラーデザインデータのモジュールの各色成分の色値の最大値が第２のしきい値よりも大きい場合に、そのモジュールの各色成分の色値を減少させる変換式に基づいて各色成分の色値を補正するようにしてもよい。
【０１１４】
例えば図１７に示す第４の例のフローチャートでは、図１６に示す第３の例のステップＳ１５６において中間的な色値であるか否か判定する前に、ステップＳ２４０〜ステップＳ２７０までの処理により、モジュールの色成分ごとの色値に、読み取られるべき値に反して小さい又は大きい値がある場合には、当該モジュールの色値全体を補正しておく。具体的には図１７のステップＳ２４４において、カラーデザインデータＰｍの（Ｘ，Ｙ）の位置のＲＧＢ各色成分の色値の合計値Ｔを求め、ステップＳ２４６において、合計値Ｔが各色値の中間値である１２８の３倍の値よりも大きいか否か、即ち（Ｘ，Ｙ）の位置のモジュールの色値が中間値よりも暗いか明るいか判定する。
【０１１５】
そしてステップＳ２４６において、合計値Ｔの方が小さい場合（ビット列の値が１の場合）、即ち（Ｘ，Ｙ）の位置のモジュールの色値が中間値よりも暗い場合には（ステップＳ２４６のＹ）、ステップＳ２４８において、ＲＧＢ各色成分の色値のうち最も値が大きいものＥｍａｘを求め、ステップＳ２５０において、黒であると認識されるモジュールの各色成分がとり得る最大値ＬｏｗｍａｘとＥｍａｘとを比較する。即ち合計値Ｔによれば色値が小さい（暗い）と判断されるが、色成分ごとの色値にしきい値（Ｌｏｗｍａｘ）を超えて色値が大きいもの（白に近づくもの）があるか否か判定する。
【０１１６】
ここで大きい色値がある場合には（ステップＳ２５０のＹ）、ステップＳ２５２〜ステップＳ２５８において、当該位置のモジュールの各色成分について、ステップＳ２５４の変換を行う。図１７の例では、カラーデザインデータＰｍの（Ｘ，Ｙ）の位置のＲＧＢ各色成分の色値を読出し（ａ=Ｆｇｅｔｃｏｌ（Ｘ,Ｙ,ｃ））、ａ＝ａ−（Ｅｍａｘ−ＬｏｗＭａｘ）＊ａ／Ｅｍａｘのようにして、読み出した値からＥｍａｘとＬｏｗＭａｘに応じた値を差し引く。即ち、色成分ごとの色値でＬｏｗＭａｘ（第２のしきい値）よりも大きい色値がある場合には、当該モジュールの各色成分の色値を同様に減少させる。一方、大きい色値がない場合には（ステップＳ２５０のＮ）、そのまま第３の例と同様の処理を行う。
【０１１７】
また、ステップＳ２４６において、合計値Ｔの方が大きい場合（ビット列の値が０の場合）、即ち（Ｘ，Ｙ）の位置のモジュールの色値が中間値よりも明るい場合には（ステップＳ２４６のＮ）、ステップＳ２６０において、ＲＧＢ各色成分の色値のうち最も値が小さいものＥｍｉｎを求め、ステップＳ２６２において、白であると認識されるモジュールの各色成分がとり得る最小値ＨｉｇｈｍｉｎとＥｍｉｎとを比較する。即ち合計値Ｔによれば色値が大きい（明るい）と判断されるが、色成分ごとの色値にしきい値（Ｌｏｗｍｉｎ）を超えて色値が小さいもの（黒に近づくもの）があるか否か判定する。
【０１１８】
ここで小さい色値がある場合には（ステップＳ２６２のＹ）、カラーデザインデータＰｍの（Ｘ，Ｙ）の位置のＲＧＢ各色成分の色値を読出し（ａ=Ｆｇｅｔｃｏｌ（Ｘ,Ｙ,ｃ））、ａ＝ａ＋（ＨｉｇｈＭｉｎ−Ｅｍｉｎ）＊（２５５−ａ）／（２５５−Ｅｍｉｎ）のようにして、読み出した値にＥｍａｘとＬｏｗＭａｘに応じた値を加える。即ち、色成分ごとの色値でＨｉｇｈＭｉｎ（第１のしきい値）よりも小さい色値がある場合には、当該モジュールの各色成分の色値を同様に増加させる。一方、小さい色値がない場合には（ステップＳ２６２のＮ）、そのまま第３の例と同様の処理を行う。
【０１１９】
こうして第４の例によれば、色成分ごとの色値に応じた変換処理を行うことにより、より確実に読み取り誤りを防止するとともに、可及的に元の色値を補正後の色値に反映することができる。
【０１２０】
３−４−５．デザイン領域以外への適用
また本実施形態では、図１１に示す２次元コードシンボル５４のうち、デザインデータ領域３３に対応するモジュールのみならず、原データ領域３０と、誤り訂正データ領域３４と、位置検出パターン１２と位置合せパターン１３とタイミングパターン１４とに対応する機能パターン領域４６に対応するモジュールについても、補正後の色値に応じた色が配色されるように２次元コードを生成することができる。
【０１２１】
上述のようにデザインデータ領域３３に対応するモジュールは、変換後ビット列がカラーデザインデータＰｍに対応するものであるため、各モジュールの色値に応じた変換式、又は各モジュールに対応する前記変換後ビット列の値に応じた変換式に基づいて、色値を補正することにより、適切な補正後の色値を求めることができた。しかし、原データ領域３０と、誤り訂正データ領域３４と、機能パターン領域４６に対応するモジュールについては、変換後ビット列がカラーデザインデータＰｍとは無関係なものであるため、同様の変換式によって補正後の色値を求めたのでは、変換後ビット列や機能的なパターンが示す値として読み取られない色値に補正されてしまう場合がある。
【０１２２】
そこで本実施形態では、デザインデータ領域３３以外の上記各領域に対応するモジュールについては、変換後ビット列や機能的なパターンが示す値（０か１）を参照し、当該領域用の変換式を用いて、変換後ビット列や機能的なパターンが示す値として読み取られるように各色値を補正した補正後の色値を求める。具体的には、変換後ビット列や機能的なパターンが示す値が０即ちモジュールが白である場合であって、対応するカラーデザインデータＰｍのモジュールの色値が中間値よりも暗い場合には、補正後の各色成分の色値の平均値が１９２〜２５５の間の数値となるような変換式を用いる。また、変換後ビット列や機能的なパターンが示す値が１即ちモジュールが黒である場合であって、対応するカラーデザインデータＰｍのモジュールの色値が中間値よりも明るい場合には、補正後の各色成分の色値の平均値が０〜６４の間の数値となるような変換式を用いる。
【０１２３】
例えば、デザイン領域３３のサブモジュールについては、変換後ビット列の値等に応じて、Ａ’＝Ａ／２＋１２８、又はＡ’＝Ａ／２の変換式を用い、その他の領域のサブモジュールについては、Ａ´＝Ａ／４＋１９２、又はＡ´＝Ａ／４の変換式を用いるようにしてもよい。即ちデザイン領域３３では、サブモジュールごとの色値と変換後ビット列等の値が対応しているので補正率が相対的に小さい変換式を用い、その他の領域では、サブモジュールごとの色値と変換後ビット列等の値が必ずしも対応していないので補正率が相対的に大きい変換式を用いるようにしてもよい。
【０１２４】
また、変換後ビット列や機能的なパターンが示す値が０即ちモジュールが白である場合であって、対応するカラーデザインデータＰｍのモジュールの各色成分の色値の平均値が１９２〜２５５の間の明るい色の数値である場合や、変換後ビット列や機能的なパターンが示す値が１即ちモジュールが黒である場合であって、対応するカラーデザインデータＰｍのモジュールの各色成分の色値の平均値が０〜６４の間の暗い色の数値である場合には、補正せずにカラーデザインデータＰｍのモジュールの色値をそのまま２次元コードの色値としてもよい。
【０１２５】
図１８はこのようにして生成された２次元コードの例である。図１８の例では、ハート形状の中心に配置された位置合せパターン１３が、ハート形状の左半分ＨＬの色値とハート形状の右半分ＨＲ色値とを反映した色値となっている。特にハート形状の左半分ＨＬに対応する位置合せパターン１３の黒モジュールに対応する部分は、ハート形状の左半分ＨＬの色値が０〜６４の暗い色値であったため、ハート形状の左半分ＨＬの色値と同様の色とされている。即ち位置合せパターン１３の黒モジュールであっても、カラーデザインデータＰｍのモジュールの色値をそのまま２次元コードの色値としている。一方、ハート形状の左半分ＨＬに対応する位置合せパターン１３の白モジュールに対応する部分は、ハート形状の左半分ＨＬの色値が０〜６４の暗い色値であったため、ハート形状の左半分ＨＬの色値を反映しつつ、１９２〜２５５の間の数値の色値に補正されている。こうして本実施形態によれば、より広い領域においてカラーデザインデータＰｍの色値が反映された２次元コードを生成することができる。
【０１２６】
４．構成
図１９に本実施形態の２次元コード生成システムの機能ブロック図の例を示す。なお本実施形態の２次元コード生成システムは図１９の構成要素（各部）の一部を省略した構成としてもよい。
【０１２７】
入力部１６０は、生成する２次元コードの基本データ、生成した２次元コードから読み取られるべき原データ、生成した２次元コードに構成されるデザインデータなどを入力するためのものである。その機能は、例えばボタンやレバーの他、入力部と表示部の両方の機能を有するタッチパネル型表示部（パネルに画像が表示されると共に、指やペンで画面を触れたり押すことで情報を入力できる装置）により実現できる。また、スキャナやカメラ等の光学読み取り装置によりデザインデータを入力するようにしてもよい。
【０１２８】
記憶部１７０は、処理部１００などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【０１２９】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部をコンピュータに実現させるためのプログラム）が記憶（記録、格納）される。
【０１３０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能はＣＲＴ、液晶ディスプレイ、プラズマディスプレイ、入力部と表示部の両方の機能を有するタッチパネル型表示部により実現できる。
【０１３１】
通信部１９６は、外部（例えばホストや他の端末）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【０１３２】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト（サーバー）が有する情報記憶媒体からネットワーク（広域ネットワーク、インターネット）及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信するようにしてもよい。このようなホスト（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【０１３３】
処理部１００（プロセッサ）は、入力部１６０からの入力データやプログラムなどに基づいて、データ表示処理、データ加工処理、データ変換処理、２次元コード生成処理などの各種の処理を行う。この場合、処理部１００は、記憶部１７０内の主記憶部１７２をワーク領域として使用して、各種の処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）又はＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【０１３４】
処理部１００は、データ取得部１１０、コードサイズ決定部１１２、不使用データ領域特定部１１４、２値化デザインデータ変換部１１８、２次元コード生成部１２０、２次元コード変更部１２６を含む。なお、処理部１００は、これらの各部（機能ブロック）を全て含む必要はなく、その一部を省略してもよい。
【０１３５】
データ取得部１１０は、入力部１６０への入力情報に基づき、シンボルの型番情報（サイズ情報）と形式情報（誤り訂正レベル情報）とを取得する。また、本システム利用者が２次元コードシンボルを介して伝達しようとする情報である原データ（ネットワークアドレス情報等）を、２次元コードのフォーマットに基づいてビットコード（ビット列）に変換する。
【０１３６】
また、データ取得部１１０は、サイズ情報に応じた２次元コードのモジュールごとの色値から構成されたカラーデザインデータと、カラーデザインデータのモジュールごとの色値が各モジュールの色値に応じて２値化された２値化デザインデータとを取得する。ここでデータ取得部１１０は、所与のカラー画像データを取得してカラーデザインデータを生成するカラーデザインデータ生成部と、所与のカラー画像データに基づいて、又はカラーデザインデータに基づいて２値化デザインデータを生成する２値化デザインデータ生成部とを含むようにしてもよい。また、データ取得部１１０は、２次元コードに対応付けられた所与の２値化デザインデータを、２次元コードのフォーマットに基づいてビットコード（ビット列）に変換する。
【０１３７】
また、コードサイズ決定部１１２を採用し、取得したカラー画像データ、カラーデザインデータ、２値化デザインデータのサイズ（領域、ビット数）に応じて２次元コードのサイズを決定するようにしてもよい。例えば、取得した２値化デザインパターンに対応するモジュールがデザインデータ領域３３内に納まるように２次元コードのサイズ情報を決定し、データ取得部１１０が当該サイズ情報を取得するようにしてもよい。この場合、原データのビットコード、２値化デザインデータのビットコードに基づいて、当該２値化デザインパターンを配置可能なデザインデータ領域３３を確保できる２次元コードのサイズ情報を特定するようにしてもよい。
【０１３８】
デザインデータ領域特定部１１４は、２次元コードのサイズ情報と、原データを変換したビットコードとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域３３を特定する。より詳細には、デザインデータ領域特定部１１４は、サイズ情報に応じて誤り訂正データ領域３４を特定し、原データに基づいて原データ領域３０を特定し、サイズ情報と誤り訂正データ領域３４と原データ領域３０とに基づいてデザインデータ領域３３を特定する。
【０１３９】
２値化デザインデータ変換部１１８は、デザインデータ領域３３に対応する２値化デザインデータを、２次元コードのフォーマット情報に基づいて逆変換したビットコードを求める。具体的には、図５及び図５の説明に示す各処理を行って、２値化デザインパターンのビットコードを逆変換したビットコードを求める。
【０１４０】
補正処理部１１９は、逆変換後のビットコードが２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行ってデザインデータ領域のビットコードを求める。例えば、逆変換後のビットコードに対する判定処理と補正処理とを、２次元コードのフォーマットに基づいた分割単位ごとに行ってもよいし、全体として行ってもよい。また、ビット（モジュール）ごとに行うようにしてもよい。
【０１４１】
また、２値化デザインデータ変換部１１８の処理と補正処理部１１９の処理の順序を入れ替えて行ってもよい。例えば、補正処理部１１９が、任意アドレスデータ領域３１に対応する２値化デザインデータのビットコードが２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行って任意アドレスデータのビットコードを求め、２値化デザインデータ変換部１１８が、補正処理後の任意アドレスデータのビットコードを２次元コードのフォーマット情報に基づいて逆変換したビットコードを求めるようにしてもよい。
【０１４２】
２次元コードデータ生成部１２０は、２値化デザインデータを逆変換したビットコードと原データを示すビットコードとを２次元コードのフォーマット情報に基づいて変換して、２次元コードを生成するための変換後ビット列を生成する。具体的には、図２及び図２の説明に示す各処理を行って２次元コードを生成する。
【０１４３】
特に２次元コードデータ生成部１２０は、誤り訂正データ生成部１２２と位置合せパターン設定部１２４とを含む。この誤り訂正データ生成部１２２は、２値化デザインデータを逆変換したビットコードと原データを示すビットコードとに基づいて、生成される２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する。また、位置合せパターン設定部１２４は、２次元コードの読み取りに用いられる位置合せパターン１３を配置する。
【０１４４】
また、位置合せパターン設定部１２４は、位置合せパターン１３の省略処理を受け付けるようにしてもよい。例えば、２次元コードを生成する前に設定された情報に基づいて、位置合せパターン１３を配置しないようにしてもよい。また、所定のアルゴリズムにより、２値化デザインパターンに対応する所定のカバー領域に含まれる位置合せパターン１３を配置しないようにしてもよい。また、位置合せパターン１３を配置して２次元コードシンボル１０を完成させてから、入力情報に基づいて位置合せパターン１３を削除するようにしてもよい。
【０１４５】
２次元コード変更部１２６は、誤り訂正レベルデータに応じて、生成された２次元コードの変更処理を受け付ける。本実施の形態では、誤り訂正レベルが４段階用意されており、それぞれの復元能力が決められている。従って、２次元コードのサイズ情報と誤り訂正レベル情報とから、変更しても復元可能なモジュール数（ビット数、パターン数）の範囲内で、配置されたモジュール（ビット）の変更を受け付ける。
【０１４６】
カラーデザインデータ補正部１２８は、少なくともデザインデータ領域３３に対応するカラーデザインデータのモジュールごとの色値が、各モジュールに対応する変換後ビット列の値として読み取られるように各色値を補正した補正後の色値を求める。
【０１４７】
２次元コード生成部１３０は、補正後の色値及び変換後ビット列に基づいて２次元コードを生成する。即ち２次元コード生成部１３０は、補正後の色値によるカラーデザインパターンが構成された２次元コードを生成する。
【０１４８】
６．２次元コードの利用
本実施の形態で生成されたカラーデザインパターンが配置された２次元コードは、種々の印刷物に印刷してこれを利用することができる。また、テレビ放送やビデオ放映、ゲーム機等、種々のメディアを介してモニタ等の表示部に画像表示させることができる。この場合には、本実施の形態で生成されたカラーデザインパターンが配置された２次元コードの画像データを生成して、表示部に表示させればよい。
【０１４９】
特に、本実施の形態で生成された２次元コードを画像表示させる場合には、デザインデータ領域３３に配置されるカラーデザインパターンを複数種類用意しておく。この複数種類のカラーデザインパターンとして、例えば、丸、三角、四角等、形状が異なるカラーデザインパターンを用意してもよいし、連続して切り替え表示すると人が走っているように見えるように、所与のモーションをコマ割りしてそれぞれをデザインした複数のカラーデザインパターンを用意してもよい。また、各モジュールの色を、変換後ビット列が示す値として読み取られる範囲で変化させるようにしてもよい。
【０１５０】
また、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１５１】
また本発明は、ＱＲコードなどのマトリックス式の２次元コードのみならず、スタック式の２次元コードなど、種々の２次元コードに関して適用することができる。その場合には、各２次元コードのフォーマットに応じて各処理を行う。
【０１５２】
また本発明は、デザインパターンが配置された２次元コードを生成するためのプログラムのみならず、デザインパターンが配置された２次元コードを生成するためのデータを生成するためのプログラム、デザインパターンが配置された２次元コード画像を生成するためのプログラム、及びそれらのプログラムを記憶した情報記憶媒体、システムにも適用することができる。
【図面の簡単な説明】
【０１５３】
【図１】本実施の形態の２次元コードの構造の一例を示す図である。
【図２】本実施の形態の処理の流れの一例を示すフローチャート図である。
【図３】本実施の形態の処理の流れの一例を示すフローチャート図である。
【図４】本実施の形態で生成される２次元コードの一例を示す図である。
【図５】本実施の形態の処理の流れの一例を示すフローチャート図である。
【図６】図６（Ａ）、（Ｂ）、（Ｃ）は、本実施の形態で表示部に表示される画面の一例を示す図である。
【図７】本実施の形態の処理の流れの一例を示すフローチャート図である。
【図８】本実施の形態の２次元コード生成処理の一例を説明するための図である。
【図９】本実施の形態の処理の流れの一例を示すフローチャート図である。
【図１０】本実施の形態の２次元コード生成処理の一例を説明するための図である。
【図１１】本実施の形態の２次元コード生成処理の一例を説明するための図である。
【図１２】本実施の形態の処理の流れの一例を示すフローチャート図である。
【図１３】本実施の形態の２次元コード生成処理の一例を説明するための図である。
【図１４】本実施の形態の処理の流れの一例を示すフローチャート図である。
【図１５】本実施の形態の２次元コード生成処理の一例を説明するための図である。
【図１６】本実施の形態の処理の流れの一例を示すフローチャート図である。
【図１７】本実施の形態の処理の流れの一例を示すフローチャート図である。
【図１８】本実施の形態の２次元コード生成処理の一例を説明するための図である。
【図１９】本実施の形態の機能ブロックの一例を示す図である。
【符号の説明】
【０１５４】
１０  ２次元コードシンボル、１３  位置合せパターン、１６  符号化領域、３０  原データ領域、３３  デザインデータ領域、３４  誤り訂正コード領域、４０  ２値化デザインパターン、４２  マスクパターン、４４  逆変換モジュールパターン、５２  マスク前パターン、５４  デザイン２次元コードシンボル、１００  処理部、１１０  データ取得部、１１２  コードサイズ決定部、１１４  デザインデータ領域特定部、１１８  ２値化デザインデータ変換部、１２０  ２次元コードデータ生成部、１２６  ２次元コード変更部、１２８  カラーデザインデータ補正部、１３０  ２次元コード生成部、１６０  入力部、１７０  記憶部、１８０  情報記憶媒体、１９０  表示部
【図２】
2008052587.tif 000003
【図３】
2008052587.tif 000004
【図４】
2008052587.tif 000005
【図５】
2008052587.tif 000006
【図７】
2008052587.tif 000007
【図８】
2008052587.tif 000008
【図９】
2008052587.tif 000009
【図１２】
2008052587.tif 000010
【図１４】
2008052587.tif 000011
【図１６】
2008052587.tif 000012
【図１７】
2008052587.tif 000013
【図１９】
2008052587.tif 000014
【図１】
2008052587.tif 000015
【図６】
2008052587.tif 000016
【図１０】
2008052587.tif 000017
【図１１】
2008052587.tif 000018
【図１３】
2008052587.tif 000019
【図１５】
2008052587.tif 000020
【図１８】
2008052587.tif 000021
【手続補正書】
【提出日】平成19年2月26日(2007.2.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域に対応する前記多階調デザインデータのモジュールの階調値が、所与のしきい値よりも大きい場合にはそのモジュールの階調値を増加させる補正を行い、前記所与のしきい値よりも小さい場合にはそのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
前記デザインデータ領域については前記補正後の階調値に基づいて２次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項２】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域に対応する前記多階調デザインデータのモジュールの階調値が、階調値のとり得る範囲の中間付近の第１の範囲の値であって、かつ、所与のしきい値よりも大きい場合にはそのモジュールの階調値を増加させる補正を行い、前記所与のしきい値よりも小さい場合にはそのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
前記デザインデータ領域に対応するモジュールのうち、前記補正が行われたモジュールについては前記補正後の階調値に基づいて２次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて２次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項３】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域に対応する前記変換後ビット列の値が、第１の値である場合には対応する前記多階調デザインデータのモジュールの階調値を増加させる補正を行い、第２の値である場合には対応する前記多階調デザインデータのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
前記デザインデータ領域については前記補正後の階調値に基づいて２次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項４】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域に対応する前記多階調デザインデータのモジュールの階調値が、階調値のとり得る範囲の中間付近の第１の範囲の値であって、かつ、対応する前記変換後ビット列の値が第１の値である場合にはそのモジュールの階調値を増加させる補正を行い、第２の値である場合にはそのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
前記デザインデータ領域に対応するモジュールのうち、前記補正が行われたモジュールについては前記補正後の階調値に基づいて２次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて２次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項５】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値が、階調値のとり得る範囲の中間付近の第１の範囲の値である場合に、各モジュールに所定のパターンで割り当てられる値に応じて、前記階調値を増加させる補正又は前記階調値を減少させる補正を行う多階調デザインデータ補正部と、
前記デザインデータ領域に対応するモジュールのうち、前記補正が行われたモジュールについては前記補正後の階調値に基づいて２次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて２次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項６】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域については、対応する前記多階調デザインデータのモジュールの階調値が、所与のしきい値よりも大きい場合にはそのモジュールの階調値を増加させる補正を行い、前記所与のしきい値よりも小さい場合にはそのモジュールの階調値を減少させる補正を行い、前記デザインデータ領域以外の領域については、対応する前記変換後ビット列の値が、第１の値である場合には対応する前記多階調デザインデータのモジュールの階調値を増加させる補正を行い、第２の値である場合には対応する前記多階調デザインデータのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
前記補正後の階調値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項７】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域については、対応する前記多階調デザインデータのモジュールの階調値が、階調値のとり得る範囲の中間付近の第１の範囲の値であって、かつ、所与のしきい値よりも大きい場合にはそのモジュールの階調値を増加させる補正を行い、前記所与のしきい値よりも小さい場合にはそのモジュールの階調値を減少させる補正を行い、前記デザインデータ領域以外の領域については、対応する前記変換後ビット列の値が第１の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第１の範囲の最大値よりも小さい場合には、そのモジュールの階調値を前記第１の範囲の最大値よりも大きい値に増加させる補正を行い、対応する前記変換後ビット列の値が第２の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第１の範囲の最小値よりも大きい場合には、そのモジュールの階調値を前記第１の範囲の最小値よりも小さい値に減少させる補正を行う多階調デザインデータ補正部と、
前記補正が行われたモジュールについては前記補正後の階調値に基づいて２次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項８】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記変換後ビット列の値が、第１の値である場合には対応する前記多階調デザインデータのモジュールの階調値を増加させる補正を行い、第２の値である場合には対応する前記多階調デザインデータのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
前記補正後の階調値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項９】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域については、対応する前記多階調デザインデータのモジュールの階調値が、階調値のとり得る範囲の中間付近の第１の範囲の値であって、かつ、対応する前記変換後ビット列の値が第１の値である場合にはそのモジュールの階調値を増加させる補正を行い、第２の値である場合にはそのモジュールの階調値を減少させる補正を行い、前記デザインデータ領域以外の領域については、対応する前記変換後ビット列の値が第１の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第１の範囲の最大値よりも小さい場合には、そのモジュールの階調値を前記第１の範囲の最大値よりも大きい値に増加させる補正を行い、対応する前記変換後ビット列の値が第２の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第１の範囲の最小値よりも大きい場合には、そのモジュールの階調値を前記第１の範囲の最小値よりも小さい値に減少させる補正を行う多階調デザインデータ補正部と、
前記補正が行われたモジュールについては前記補正後の階調値に基づいて２次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項１０】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域については、対応する多階調デザインデータのモジュールごとの階調値が、階調値のとり得る範囲の中間付近の第１の範囲の値である場合に、各モジュールに所定のパターンで割り当てられる値に応じて、前記階調値を増加させる補正又は前記階調値を減少させる補正を行い、前記デザインデータ領域以外の領域については、対応する前記変換後ビット列の値が、第１の値である場合には対応する前記多階調デザインデータのモジュールの階調値を増加させる補正を行い、第２の値である場合には対応する前記多階調デザインデータのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
前記デザインデータ領域に対応するモジュールのうち、前記補正が行われたモジュールについては前記補正後の階調値に基づいて２次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて２次元コードを生成し、前記デザインデータ領域以外の領域については前記補正後の階調値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項１１】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域については、対応する多階調デザインデータのモジュールごとの階調値が、階調値のとり得る範囲の中間付近の第１の範囲の値である場合に、各モジュールに所定のパターンで割り当てられる値に応じて、前記階調値を増加させる補正又は前記階調値を減少させる補正を行い、前記デザインデータ領域以外の領域については、対応する前記変換後ビット列の値が第１の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第１の範囲の最大値よりも小さい場合には、そのモジュールの階調値を前記第１の範囲の最大値よりも大きい値に増加させる補正を行い、前記デザインデータ領域以外の領域に対応する前記変換後ビット列の値が第２の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第１の範囲の最小値よりも大きい場合には、そのモジュールの階調値を前記第１の範囲の最小値よりも小さい値に減少させる補正を行う多階調デザインデータ補正部と、
前記補正が行われたモジュールについては前記補正後の階調値に基づいて２次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項１２】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値が、第１の値として読み取られる範囲の階調値と第２の値として読み取られる範囲の階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域については前記多階調デザインデータのモジュールごとの階調値に基づいて２次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項１３】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値が、第１の値として読み取られる範囲の階調値と第２の値として読み取られる範囲の階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域以外の領域について、対応する前記変換後ビット列の値が、第１の値である場合には対応する前記多階調デザインデータのモジュールの階調値を増加させる補正を行い、第２の値である場合には対応する前記多階調デザインデータのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
前記デザインデータ領域については前記多階調デザインデータのモジュールごとの階調値に基づいて２次元コードを生成し、前記デザインデータ領域以外の領域については前記補正後の階調値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項１４】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき原データと、前記サイズデータに応じた２次元コードのモジュールごとの階調値が、第１の値として読み取られる範囲の階調値と第２の値として読み取られる範囲の階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて２値化された２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた２次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める２値化デザインデータ変換部と、
前記逆変換ビット列と前記原データのビット列とに基づいて、２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
前記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記２次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める２次元コードデータ生成部と、
前記デザインデータ領域以外の領域について、対応する前記変換後ビット列の値が第１の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第１の範囲の最大値よりも小さい場合には、そのモジュールの階調値を前記第１の範囲の最大値よりも大きい値に増加させる補正を行い、対応する前記変換後ビット列の値が第２の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第１の範囲の最小値よりも大きい場合には、そのモジュールの階調値を前記第１の範囲の最小値よりも小さい値に減少させる補正を行う多階調デザインデータ補正部と、
前記デザインデータ領域については前記多階調デザインデータのモジュールごとの階調値に基づいて２次元コードを生成し、前記デザインデータ領域以外の領域に対応するモジュールのうち、前記補正が行われたモジュールについては前記補正後の階調値に基づいて２次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項１５】
請求項１〜１４のいずれかにおいて、
前記デザインデータ領域以外の領域は、前記原データのデータ量に応じた原データ領域、及び前記サイズデータに応じた誤り訂正データ領域、及び２次元コードの読み取りに用いられる機能パターンが配置される領域の少なくとも１つであることを特徴とするプログラム。
【請求項１６】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜１５のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１７】
請求項１〜１５のいずれかのプログラムに基づいて機能することを特徴とする２次元コード生成システム。
【請求項１８】
請求項１〜１５のいずれかのプログラムに基づいて生成したことを特徴とする２次元コード。
【請求項１９】
請求項１８の２次元コードが印刷されたことを特徴とする印刷物。
【請求項２０】
請求項１８の２次元コードを画像として表示することを特徴とする画像表示方法。
【請求項２１】
請求項１８の２次元コードであって、異なる前記多階調デザインデータに基づいて生成した複数の前記２次元コードを連続的に切り替えて画像表示することを特徴とする画像表示方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
なお図６（Ｂ）の例のカラーデザインデータＰｍは、ハート形状の左半分ＨＬは色値の平均値が３０の暗い赤の色値となっており、ハート形状の右半分ＨＲは色値の平均値が２３０の明るい赤の色値となっている。また背景の左半分ＢＬは色値の平均値が１６０であって中間よりは明るい青の色値となっており、背景の右半分ＢＲは色値の平均値が９６であって中間よりは暗い青の色値となっている。従ってかかるカラーデザインデータＰｍから生成される２値化デザインデータＰｂｗは、ハート形状の左半分ＨＬと背景の右半分ＢＲが黒のモジュールとされ、ハート形状の右半分ＨＲと背景の左半分ＢＬが白のモジュールとされている。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１２３
【補正方法】変更
【補正の内容】
【０１２３】
例えば、デザイン領域３３のモジュールについては、変換後ビット列の値等に応じて、Ａ’＝Ａ／２＋１２８、又はＡ’＝Ａ／２の変換式を用い、その他の領域のモジュールについては、Ａ´＝Ａ／４＋１９２、又はＡ´＝Ａ／４の変換式を用いるようにしてもよい。即ちデザイン領域３３では、モジュールごとの色値と変換後ビット列等の値が対応しているので補正率が相対的に小さい変換式を用い、その他の領域では、モジュールごとの色値と変換後ビット列等の値が必ずしも対応していないので補正率が相対的に大きい変換式を用いるようにしてもよい。