JP3957734B1 - プログラム、情報記憶媒体、2次元コード生成システム、2次元コード - Google Patents

プログラム、情報記憶媒体、2次元コード生成システム、2次元コード Download PDF

Info

Publication number
JP3957734B1
JP3957734B1 JP2006229561A JP2006229561A JP3957734B1 JP 3957734 B1 JP3957734 B1 JP 3957734B1 JP 2006229561 A JP2006229561 A JP 2006229561A JP 2006229561 A JP2006229561 A JP 2006229561A JP 3957734 B1 JP3957734 B1 JP 3957734B1
Authority
JP
Japan
Prior art keywords
dimensional code
data
value
design data
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006229561A
Other languages
English (en)
Other versions
JP2008052587A (ja
Inventor
聡 大内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP2006229561A priority Critical patent/JP3957734B1/ja
Application granted granted Critical
Publication of JP3957734B1 publication Critical patent/JP3957734B1/ja
Publication of JP2008052587A publication Critical patent/JP2008052587A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】2次元コードに配置されるモジュールの色により、任意のデザインが構成されるように2次元コードを生成すること。
【解決手段】カラーデザインデータに対応する2値化デザインデータを逆変換した逆変換ビット列を更に変換した変換後ビット列の値を基準として、カラーデザインデータのモジュールごとの色値を補正する。
【選択図】図18

Description

本発明は、プログラム、情報記憶媒体、2次元コード生成システム、2次元コードに関する。
従来より、所定のフォーマット情報に基づいて、データを示すモジュールを2次元に配置した2次元コードが知られている。この2次元コードでは、1次元コードに比して狭い領域で多くのデータを読み取らせることができる。このような従来の技術として、例えば特許第2938338号公報に開示されるものがある。
かかる2次元コードでは2次元コードのサイズに対してデータ量が少ないと、データを示さない領域が発生する。この場合、従来の2次元コードでは、データを示さない領域に所定のフォーマット情報に従ってモジュールを配置する。
特許第2938338号公報
しかし、データを示さない領域にモジュールを配置するフォーマット情報は、各種モジュールがデータを示さない領域にバランスよく配置されるように構成されている。従って、生成される2次元コードのモジュールパターンの構成に特徴を持たせて、他の2次元コードと差別化をはかることができなかった。
そこで本発明は、2次元コードのデータを示さない領域など、所定の領域に配置されるモジュールが、任意のデザインを構成して配置されるように2次元コードを生成することができるプログラム、情報記憶媒体を提供することにある。
また本発明は、2次元コードに配置されるモジュールの色により、任意のデザインが構成されるように2次元コードを生成することができるプログラム、情報記憶媒体を提供することにある。
(1) 本発明は、2次元コードを生成するためのシステムであって、
2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求める多階調デザインデータ補正部と、
前記補正後の階調値に基づいて2次元コードを生成する2次元コード生成部とを含む2次元コード生成システムに関係する。
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、上記プログラムに基づいて生成した2次元コードに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。また本発明は、上記2次元コード生成システム、プログラム、情報記憶媒体を用いて生成された2次元コードが印刷された印刷物に関係する。また本発明は、上記2次元コード生成システム、プログラム、情報記憶媒体を用いて生成された2次元コードとして読み取られる2次元コード画像を生成するシステム、プログラム及び情報記憶媒体に関係する。
本発明において「階調値(色値)」とは、明るさや色を設定するためのパラメータであって、グレイスケールを示すパラメータや、R・G・BやY・Cr・Cb、Y・M・C・Kなどの色成分ごとの明るさを示すパラメータや、色合いを示す色相、鮮やかさを示す彩度、明るさを示す明度などのパラメータ、輝度などのパラメータ等、種々のパラメータとすることができる。即ち2次元コードの読み取りに影響を与える種々のパラメータとすることができる。また、「多階調デザインデータ」とは、少なくとも3階調(3値)以上の階調値から構成されたデータとすることができる。
2次元コードでは、例えば2次元コードを構成するモジュールが2値化データのいずれを示すものであるか(例えば白か黒か)を読み出すことにより、2次元コードに化体されたビット列を読み出す。従って2次元コードの各モジュールは、例えば白か黒のように明らかに異なるものとして読み取られる色とすることが好ましい。しかしモジュールの色が白か黒でなくとも、階調値が黒に近い範囲の暗い色であれば一方の値を示すものとして読み取らせ、階調値が白に近い範囲の明るい色であれば他方の値を示すものとして読み取らせることができる。即ち2次元コードの各モジュールの色が、2値化データのいずれを示すものであるか読み取り可能な範囲の色であれば、2次元コードとして機能させることができる。しかし2次元コードのモジュールの色が、明るさが中間的な階調値であるなど2値化データのいずれを示すものであるか読み取ることができないおそれがある色である場合には、2次元コードの読み取り誤りが発生したり、2次元コードとして読み取れない事態が発生する場合がある。
そこで本発明では、多階調デザインデータに対応する2値化デザインデータを逆変換した逆変換ビット列を更に変換した変換後ビット列の値を基準として、多階調デザインデータのモジュールごとの階調値を補正する。即ち本発明では、変換後ビット列を求めることにより、2次元コードとして読み取り可能であって、かつ多階調デザインデータに対応する2値化デザインが構成された2次元コードを生成するためのデータを生成する。そして多階調デザインデータのモジュールごとの階調値が、変換後ビット列の値として読み取られるように各階調値を補正することにより、変換後ビット列の値が示すとおりに読み取り可能であって、かつ多階調デザインが構成された2次元コードを生成する。
従って本発明によれば、多階調デザインデータのモジュールに、明るさが中間的な階調値であるなど2値化データのいずれを示すものであるか読み取ることができないおそれがある階調値のモジュールが存在する場合であっても、かかるモジュールの階調値を変換後ビット列の値として読み取られるように補正することができる。そして変換後ビット列には原データの情報が含まれているので、2次元コードの読取装置により、本システム利用者が2次元コードを介して伝達しようとする情報である原データを読み取らせることができる。
このように本発明によれば、人目を引き付けることができる多階調のデザインパターンが構成された2次元コードを、通常の2次元コードの生成手順に準じて簡易に生成することができる。しかも、多階調デザインが構成されていても、モジュールごとの2値化データを基準として通常の2次元コードの生成手順に準じて生成されているので、2次元コードを読取装置により正確に読み取らせることができる。
(2)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求め、
前記2次元コード生成部が、
前記デザインデータ領域については前記補正後の階調値に基づいて2次元コードを生成し、2次元コードのその他の領域については前記変換後ビット列に基づいて2次元コードを生成するようにしてもよい。
本発明によれば、デザインデータ領域において多階調デザインが構成され、原データ領域などその他の領域において変換後ビット列に基づくモジュールパターンが構成された2次元コードを生成することができる。従って本発明によれば、デザインデータ領域以外の領域のモジュールを2値化パターンにより構成し、より確実に読み取り可能な2次元コードを生成することができる。
(3)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記逆変換ビット列に基づいて、生成される2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部を更に含み、
前記2次元コードデータ生成部が、
前記求められた逆変換ビット列と、前記原データのビット列と、前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求め、
前記多階調デザインデータ補正部が、
前記デザインデータ領域と、前記原データのデータ量に応じた原データ領域と、前記サイズデータに応じた誤り訂正データ領域とに対応する多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求めるようにしてもよい。
本発明によれば、デザインデータ領域と、原データ領域と、誤り訂正データ領域において多階調デザインデータの階調値を補正する。従って本発明によれば、より広い領域において多階調デザインデータの階調値が反映された2次元コードを生成することができる。
(4)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
2次元コードの読み取りに用いられる機能パターンを設定する機能パターン設定部を更に含み、
前記多階調デザインデータ補正部が、
前記機能パターンが配置される領域に対応する多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記機能パターンの値として読み取られるように前記階調値を補正した補正後の階調値を求めるようにしてもよい。
本発明によれば、位置合せパターンが配置される領域等の機能パターン領域において多階調デザインデータの階調値を補正する。従って本発明によれば、より広い領域において多階調デザインデータの階調値が反映された2次元コードを生成することができる。
(5)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値を、前記階調値に応じた変換式に基づいて補正するようにしてもよい。
本発明において、2値化デザインデータは多階調デザインデータに対応するデータとなっているため、階調値を補正するための基準となる変換後ビット列もデザインデータ領域に対応する多階調デザインデータのモジュールの階調値に対応した値となっている。従って本発明によれば、階調値に応じた補正用の変換式の種類を削減し、階調値に応じた割り振り処理を軽減しつつも、可及的に元の階調値を補正後の階調値に反映することができる。
(6)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
前記階調値が階調値のとり得る範囲の中間付近の第1の範囲の値である場合に、前記階調値をその階調値に応じた変換式に基づいて補正し、
前記2次元コード生成部が、
前記階調値が前記第1の範囲の値であるモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記階調値が前記第1の範囲の値以外の第2の範囲の値であるモジュールについては前記多階調デザインデータのモジュールごとの階調値に基づいて2次元コードを生成するようにしてもよい。
本発明において、「第1の範囲」とは、2値化データのいずれを示すものであるか読み取ることができないおそれがある階調値の範囲とすることができる。例えば各色成分の階調値が0〜255までの値をとる場合には、64以上192未満など階調値の取り得る範囲の中間値を含む範囲を第1の範囲とし、それ以外の0以上64未満及び192以上255以下を第2の範囲とすることができる。なお第1の範囲と第2の範囲は、2次元コードの読取装置の性能や、読み取りの正確性との関係などで任意に定めることができる。例えば誤り訂正アルゴリズムなどによりデータを訂正することができる場合など、生成された2次元コードのモジュールに2値化データのいずれを示すものであるか読み取ることができないモジュールがいくつか存在しても構わない場合には、第1の範囲からいくつかの値を間引いた値の集合を第1の範囲の値として扱うようにしてもよい。例えば64以上192未満の値のうち、中間値である128を除外した値の集合なども「第1の範囲」の概念に含まれる。即ち本発明により生成された2次元コードが、2次元コードとして機能するように、中間的な階調値が補正されればよい。
本発明によれば、多階調デザインデータのモジュールごとの階調値が、第1の範囲の値である場合に階調値を補正し、第1の範囲以外の第2の範囲の値である場合には階調値を補正しない。従って本発明によれば、階調値が第2の範囲の値である場合には元の階調値をそのまま反映することができる。
(7)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値を、各モジュールに対応する前記変換後ビット列の値に応じた変換式に基づいて補正するようにしてもよい。
本発明において、2値化デザインデータは多階調デザインデータに対応するデータとなっているため、階調値を補正するための基準となる変換後ビット列もデザインデータ領域に対応する多階調デザインデータのモジュールの階調値に対応した値となっている。従って本発明によれば、変換後ビット列の値に応じた補正用の変換式の種類を削減し、階調値に応じた割り振り処理を軽減しつつも、可及的に元の階調値を補正後の階調値に反映することができる。
(8)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
前記階調値が階調値のとり得る範囲の中間付近の第1の範囲の値である場合に、前記階調値を各モジュールに対応する前記変換後ビット列の値に応じた変換式に基づいて補正し、
前記2次元コード生成部が、
前記階調値が前記第1の範囲の値であるモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記階調値が前記第1の範囲の値以外の第2の範囲の値であるモジュールについては前記多階調デザインデータのモジュールごとの階調値に基づいて2次元コードを生成するようにしてもよい。
本発明によれば、多階調デザインデータのモジュールごとの階調値が第1の範囲の値である場合に階調値を補正し、第2の範囲の値である場合には階調値を補正しない。従って本発明によれば、階調値が第2の範囲の値である場合には元の階調値をそのまま反映することができる。
(9)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値が、階調値のとり得る範囲の中間付近の第1の範囲の値である場合に、各モジュールに所定のパターンで割り当てられる値に応じた変換式に基づいて前記階調値を補正するようにしてもよい。
本発明によれば、階調値が第1の範囲の値であるモジュールに対して、一括した補正処理を行うのではなく、例えば誤差拡散法などを用いて所定のパターンで値を割り当て、値に応じた補正処理を行う。従って本発明によれば、階調値が第1の範囲の値であるモジュールについて、所定のパターンで異なる階調値を出現させて元の中間的な階調値を表現することにより、可及的に元の階調値を補正後の階調値に反映することができる。
(10)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのモジュールごとの各色成分の階調値を、各色成分の階調値に応じた変換式に基づいて補正するようにしてもよい。
本発明によれば、R・G・BやY・Cr・Cb、Y・M・C・Kなどの色成分ごとの階調値に応じて色成分ごとに階調値を補正するので、よりきめ細かく可及的に元の階調値を補正後の階調値に反映することができる。また例えばR・G・BのうちのG成分(緑成分)は、データ上の値以上に人間の目に与える影響が大きいことから、2次元コードの読み取り装置であるカメラ等による読み取り数値に補正が行われることがある。すると本発明における補正後の階調値が、意図しない数値に補正されて読み誤りが発生するおそれがある。そこで本発明によれば、色成分ごとに階調値の補正を行うことによりかかる不具合を解消することができる。
(11)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する前記変換後ビット列の値が第1の値であって、対応する多階調デザインデータのモジュールの各色成分の階調値の最小値が第1のしきい値よりも小さい場合に、そのモジュールの各色成分の階調値を増加させる変換式に基づいて各色成分の階調値を補正し、
少なくとも前記デザインデータ領域に対応する前記変換後ビット列の値が第2の値であって、対応する多階調デザインデータのモジュールの各色成分の階調値の最大値が第2のしきい値よりも大きい場合に、そのモジュールの各色成分の階調値を減少させる変換式に基づいて各色成分の階調値を補正するようにしてもよい。
本発明によれば、あるモジュールの色成分ごとの階調値に、読み取られるべき値に反して小さい又は大きい値がある場合には、当該モジュールの階調値全体を補正する。即ち本発明では、変換後ビット列の値が第1の値であるモジュール(例えば色成分の値が大きくあるべきモジュール、明(白)であることを示す値であるモジュール)の色成分ごとの階調値のうち最小の値を示す色成分の階調値が、例えば明るいモジュールであると読み取られる最小の値である第1のしきい値よりも小さい場合には、最小値の色成分のみならずそのモジュールの各色成分の階調値を増加させる。そして第2の値であるモジュールについては、第2のしきい値よりも大きい場合に各色成分の階調値を減少させる。従って本発明によれば、より確実に読み取り誤りを防止するとともに、可及的に元の階調値を補正後の階調値に反映することができる。
(12)また本発明に係る2次元コードを生成するためのデータを生成するシステム、プログラム及び情報記憶媒体では、
2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求める多階調デザインデータ補正部とを含むようにしてもよい。
本発明によれば、多階調のデザインパターンが構成された2次元コードを生成することができるデータを生成することができる。そして、生成された2次元コードを生成するためのデータには、原データの情報が含まれている。従って、本発明により生成したデータに基づいて2次元コードを生成すれば、2次元コードに多階調のデザインパターンを構成しつつ、本システム利用者が2次元コードシンボルを介して伝達しようとする情報である原データを2次元コードの読取装置に読み取らせることができる。
このように、本発明によれば、人目を引き付けることができる多階調のデザインパターンが構成された2次元コードを、通常の2次元コードの生成手順に準じて簡易に生成することができる。しかも、生成された2次元コードは多階調のデザインが構成されていても、通常の2次元コードの生成手順に準じて生成されているので、2次元コードを読取装置により正確に読み取らせることができる。
(13)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値が、第1の値として読み取られる範囲の階調値と第2の値として読み取られる範囲の階調値とから構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのモジュールごとの階調値に基づいて、2次元コードを生成する2次元コード生成部とを含むようにしてもよい。
本発明によれば、明度が中間的な階調値であるなど2値化データのいずれを示すものであるか読み取ることができないおそれがある階調値がモジュール単位の階調値として存在しない多階調デザインデータを用いることにより、階調値の補正処理を行うことなく多階調のデザインパターンが構成された2次元コードを生成することができる。
(14)本発明は、
所与の2値化データを表すモジュールが2次元に配置された2次元コードであって、
前記2次元コードから読み取られるべき原データを表すモジュールと、
少なくとも、前記原データを表すモジュールが配置された原データ領域以外の領域において、前記モジュールごとの階調値により多階調のデザインを構成するモジュールとが配置され、
前記モジュールごとの階調値は、
前記モジュールが前記2値化データのいずれを表すか読み取り可能な範囲の値とされていることを特徴とする2次元コードに関係する。
また本発明は、上記2次元コードを生成する2次元コード生成部、又は、上記2次元コードを生成するためのデータを生成する2次元コードデータ生成部を含む2次元コード生成システムに関係する。また本発明は、上記2次元コードを生成する2次元コード生成部、又は、上記2次元コードを生成するためのデータを生成する2次元コードデータ生成部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記2次元コード生成部、又は、2次元コードデータ生成部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
また本発明は、上記2次元コードが印刷された印刷物に関係する。また本発明は、上記2次元コードとして読み取られる2次元コード画像を生成するシステム、プログラム及び情報記憶媒体に関係する。
本発明によれば、本システム利用者が2次元コードを介して伝達しようとする情報を読み取り装置に読み取らせつつ、モジュールごとの階調値により所与のデザインを構成するモジュールが配置された2次元コードを提供することができる。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.2次元コードの構造
図1に、本実施の形態の2次元コード生成システムで生成される2次元コードシンボルの構造の例を示す。本実施の形態では、2次元コードとしてQRコード(株式会社デンソーウェーブの登録商標)を用いた例を示すが、本実施の形態により生成できる2次元コードはQRコードに限らない。
図1に示すように、本実施の形態の2次元コードシンボル10は、正方形のモジュールを縦に45個、横に45個、計2025個正方形状に配列して構成されている。このシンボル10には、シンボル10からデータを読み取る際に用いられる位置検出パターン12と位置合せパターン13とタイミングパターン14とが配置されている。そして、位置検出パターン12と位置合せパターン13とタイミングパターン14とが配置されている領域以外の領域として、シンボル10から読み取られるべきデータのモジュールパターン(符号化パターン)が配置される符号化領域16が設けられている。
この符号化領域16には、シンボル10の型番情報(サイズ情報)の符号化パターンが配置される型番領域18と、シンボル10の形式情報(誤り訂正レベル情報、マスク処理パターンに関する情報)の符号化パターンが配置される形式領域20と、本実施の形態のシステムの利用者が任意に入力可能なデータの符号化パターンが配置されるデータ領域22とが含まれる。
2.2次元コードの生成処理
図2に、本実施の形態の2次元コード生成システムの処理の流れの一例を示す。まず、ステップS1において、2次元コードを生成するための各種データを取得する。
図3に、このデータ取得処理の詳細を示す。まず、ステップS2において、入力部への入力情報に基づき、システムの利用者が所望するシンボルの型番情報と形式情報とを取得する。ここで、型番情報には、シンボル10の大きさを特定するサイズ情報(1〜40)が含まれている。本実施の形態では、サイズ情報によりシンボル10を構成するモジュールの数とその配置を特定することができる。また、形式情報には、生成されるシンボルの読み取り誤りを訂正するための誤り訂正アルゴリズムの種類を特定する誤り訂正レベル情報が含まれる。本実施の形態では、誤り訂正レベルがL、M、Q、Hの4段階用意されており、誤り訂正レベルに応じて誤り訂正の精度が異なる。
そして、ステップS4において、本システム利用者が2次元コードシンボルを介して伝達しようとする情報である原データの文字列を取得する。この原データとしては、例えばURLやメールアドレス等のネットワークアドレス情報や、種々の管理情報、識別情報、暗号化情報等が入力される。すると、ステップS6において、取得した原データの文字列を2次元コードのフォーマット情報に基づいて変換し、原データのビット列を生成する。そして、原データのビット列の最後に原データの終端を示すエンドパターンのビット列を挿入する。このエンドパターンは、2次元コードを読み取った場合に、エンドパターン以降の符号化パターンについては情報として出力する必要がないことを示すものである。
そして、図2のステップS10において、エンドパターンを含む原データのビット列を2次元コードのフォーマット情報に基づいて8ビットコード語(データコード語)に分割する。すると、ステップS12において、取得したサイズ情報、誤り訂正レベル情報に基づき、当該サイズ、誤り訂正レベルが要求するデータコード語数を満たすか否かを判断する。
ここで、要求するデータコード語数を満たさないと判断すると(ステップS12のN)、即ち2次元コードのサイズに対して原データのデータ量が少ないと、ステップS14において、データコード語列の後に埋め草コード語を付加する。この埋め草コード語とは、2次元コードのサイズに対して原データのデータ量が少ない場合に、原データを示す符号化パターン以降の符号化領域16が例えば空白(明モジュールのみ)となると、2次元コードの読み取りに支障があることを考慮して付加されるものである。本実施の形態では、2次元コードのフォーマットに基づいて、データが空であることを示す所定の符号化パターンが繰返し付加される。
一方、要求するデータコード語数を満たすと判断すると(ステップS12のY)、埋め草コード語は付加せずに、ステップS16において、データコード語列を誤り訂正用のブロック数に分割し、ステップS18において、各ブロックに対して誤り訂正コード語を生成する。この誤り訂正コード語とは、2次元コードの読み取り誤りを訂正するための誤り訂正アルゴリズムに用いられる情報の符号化パターンを生成するための所定のビット列単位である。そして、ステップS20において、データコード語列の後に誤り訂正コード語を付加する。
そして、ステップS22において、2次元コードのフォーマット情報に従って各ブロックのデータコード語・誤り訂正コード語をインターリーブにし、必要に応じて残余ビットを付加し、ステップS24において、2次元コードのフォーマット情報に基づいてマトリックスに、位置検出パターン12、位置合せパターン13、タイミングパターン14、コード語列に対応させた暗(黒)モジュールと明(白)モジュールとを配置する。
そして、ステップS26において、シンボルの符号化領域16にマスク処理パターンを適用する。このマスク処理は、ステップS24において符号化領域16に配置された暗(黒)モジュールと明(白)モジュールとが、バランスよく配置されるようにするための処理である。そして、ステップS28において、ステップS2で取得した型番情報の符号化パターンを型番領域18に配置し、形式情報の符号化パターンを形式領域20に配置し、シンボルを完成する。
図4に、このようにして生成された2次元コードシンボルの一例を示す。本実施の形態では、各コード語列に対応させた暗(黒)モジュールと明(白)モジュールの配置は、図4に示すシンボル10の右下隅から開始し、上方向、下方向を交互に走査し、右から左へ配置する。ここで、各コード語列は、原データとそのエンドパターンを示すデータコード語、埋め草コード語、誤り訂正コード語の順に配列されている。従って、シンボル10の符号化領域16には、図4に示すように、原データの符号化パターンが配置された原データ領域30と、埋め草データの符号化パターンが配置された不使用データ領域32と、誤り訂正コードの符号化パターンが配置された誤り訂正コード領域34とが形成される。
3.デザインデータ処理
ここで本実施の形態では、不使用データ領域32の符号化パターンは、データが空であることを示しているに過ぎない。従って、不使用データ領域32においては自由にモジュールを配置することができる。そこで本実施形態では、不使用データ領域32となるべき領域をデザインデータ領域33として利用して、デザインデータ領域33のモジュールの配置(パターン)が、所与のデザインを構成するように2次元コードシンボル10を生成するためのデータ(ビット列)を生成する。
また本実施形態の2次元コードでは、2次元コードを構成するモジュールが2値化データのいずれを示すものであるか、即ち、各モジュールが明(白)モジュールであるか暗(黒)モジュールであるかを読み出すことにより、2次元コードに化体されたビット列を読み出す。従って2次元コードの各モジュールは、例えば白か黒のように明らかに異なるものとして読み取られる色とすることが好ましい。しかしモジュールの色が白か黒でなくとも、色値(階調値)が黒に近い範囲の暗い色であれば一方の値を示すものとして読み取らせ、色値が白に近い範囲の明るい色であれば他方の値を示すものとして読み取らせることができる。即ち2次元コードの各モジュールの色が、2値化データのいずれを示すものであるか読み取り可能な範囲の色であれば、2次元コードとして機能させることができる。
そこで本実施形態では、デザインデータ領域33に配置されるモジュールの色が所与のデザインを構成しつつ、2値化データのいずれを示すものであるか読み取り可能な範囲の色から構成された2次元コードシンボル10を生成する。そのため本実施形態では、図2のステップS1のデータ取得処理において、本実施の形態に特徴的なデザインデータ処理を行う。
図5に、デザインデータ処理の流れの一例を示す。まず、図3のステップS6までにおいて、サイズ情報・誤り訂正レベル情報・原データを取得して(ステップS2、ステップS4)、2次元コードのフォーマット情報に基づいて原データのビット列を生成すると(ステップS6)、図5のステップS40において、システムの利用者が2次元コードに構成させるデザインとして選んだ所与のカラー画像データ(多階調画像データ)に基づいて、サイズ情報に応じた2次元コードのモジュールごとの色値から構成されたカラーデザインデータ(多階調デザインデータ)を生成する。
3−1.カラーデザインデータ生成処理
図6(A)は、所与のカラー画像データP0の例である。本実施形態ではカラー画像データP0は、R・G・Bの各色成分の色値が0〜255までとり得るいわゆるフルカラーの画像データとすることができる。そしてこのカラー画像データP0は、システム利用者がスキャナ等のハードウェアで取り込んだものや情報記憶媒体に記憶されたもの、画像作成ソフトで作成したものなどとすることができる。
ここで本実施形態では、図6(B)に示すようにデザインデータ領域33の範囲を示す画像を生成して表示部に表示させるようにしてもよい。本実施の形態では、図4に示すように原データ領域30がサイズ情報と原データのデータ量に応じて定まり、誤り訂正データ領域34がサイズ情報に応じて定まる。よって、サイズ情報と原データのビット列に基づいて原データ領域30を特定し、サイズ情報に基づいて誤り訂正データ領域34を特定し、サイズ情報と原データ領域30と誤り訂正データ領域34とに基づいて、デザイン領域33を特定することができる。従って、図6(B)に示すように、2次元コードシンボル10を、デザイン領域33が空白となるように表示することができる。
そしてシステム利用者は、かかる2次元コードシンボル10と所与のカラー画像データP0を対比して、デザイン領域33の範囲内に所望のデザインが収まるように、カラー画像データP0の大きさを調整する、或いは2次元コードのサイズ情報を変更する。そして本実施形態では、かかるカラー画像データP0を、図6(C)に示すような、取得したサイズ情報に応じた2次元コードのモジュールごとの色値から構成されたカラーデザインデータPmに変換する。即ち任意の解像度のカラー画像データP0を、2次元コードのモジュールを1画素とするカラーデザインデータPmに変換する。図6(C)の例では、縦横45個の計2025個の正方形のモジュールごとの色値に変換する。
図7は、図5のステップS40のカラーデザインデータ生成処理の詳細の一例を示すフローチャートである。本実施形態では、2次元コードのモジュールよりも細かい画素から構成されたカラー画像データP0を縮小して、2次元コードのモジュールを画素とするカラーデザインデータPmに変換する。図7の例では、モジュールの位置(領域)に対応するカラー画像データP0の位置(領域)の代表画素を抽出することにより1のモジュールの色値を決定しているが、モジュールの位置(領域)に対応するカラー画像データP0の位置(領域)の画素を平均することにより1のモジュールの色値を決定してもよく、本実施形態では種々の手法を採用することができる。
図7の例では、まずステップS50、ステップS52において、YとXに0を代入し、ステップS54において、カラー画像データP0の縦の画素数Y0にYをかけて2次元コードの縦のモジュール数Sizeで割り、2次元コードの座標Y=0に対応するカラー画像データP0の座標Vを求め、同様にカラー画像データP0の横の画素数X0にXをかけて2次元コードの横のモジュール数Sizeで割り、2次元コードの座標X=0に対応するカラー画像データP0の座標Uを求める。そしてステップS56においてU,Vの小数値を切り捨ててそれぞれを整数値化する。
そしてステップS58において、カラー画像データP0の各色成分の種類を示すC(R=0、G=1、B=2)に0を代入する。そしてステップS60において、カラー画像データP0の(U,V)の位置の色C(R)を読出しaに代入し、ステップS62において、カラーデザインデータPmの(X,Y)の位置の色C(R)にaを書込む。するとステップS64において、各色成分の種類を示すCに1加算し、ステップS66においてCが3未満即ちその座標の各色成分の色値を全て読み出していない場合には(ステップS66のY)、ステップS60に戻り、他の色成分の色値について同様の処理を行う。こうして(0,0)の位置のRGBの色成分の色値を書込むと(ステップS66のN)、ステップS68において座標値Xに1加算し、ステップS70においてX座標が45となるまでステップS54からステップS70までの処理を繰返し、Y座標が0の位置全てについてRGBの色成分の色値を書込む(ステップS70のN)。
するとステップS72において座標値Yに1加算し、ステップS74においてY座標が45となるまでステップS52からステップS74までの処理を繰返し、カラーデザインデータPmの全ての(X,Y)の位置の色Cに、カラー画像データP0の(U,V)の位置の色Cを書込む。こうして本実施形態では、図6(A)に示すような所与のカラー画像データP0を、図6(B)に示すようなサイズ情報に応じた2次元コードのモジュールごとの色値から構成されたカラーデザインデータPmに変換する。
3−2.2値化デザインデータ生成処理
こうして図5のステップS40においてカラーデザインデータPmを取得すると、図5のステップS41において、カラーデザインデータPmのモジュールごとの色値を各モジュールの色値に応じて2値化することにより、図8に示すような2値化デザインデータPbwを生成し、これを取得する。即ちカラーデザインデータPmのモジュールのうち、相対的に暗い色のモジュールは黒のモジュールとし、相対的に明るい色のモジュールは白のモジュールとする変換を行う。この2値化デザインデータPbwは、カラーデザインデータPmの色の分布を2次元コードの読取装置が読み取った場合に、読取装置に認識させるべき値を示すものである。
図9は、かかる2値化デザインデータ生成処理の詳細の一例を示すフローチャートである。図9に示すようにまずステップS80、ステップS81において、カラーデザインデータPmの座標値のYとXに0を代入し、ステップS84において、各座標についての値が格納されるaに0を代入する。そしてステップS86において、カラーデザインデータPmの(0,0)の位置のRGB各色成分の色値の合計値Tを求める。そしてステップS94において、各色成分の色値の合計Tを色成分の数3で割った値をaに代入する。即ち(0,0)の位置のRGBの色成分の色値の平均値をaに格納する。
するとステップS96において平均値aが128以上、即ち色値がとり得る値0〜255の中間の値よりも大きい値である場合には、ステップS98においてaに当該位置のモジュールが白であることを示す0を代入する。一方平均値aが128以下である場合には、ステップS100においてaに当該位置のモジュールが黒であることを示す1を代入する。そしてステップS102において、2値化デザインデータPbwの(0,0)の位置にa(0、1のいずれか)を格納する。そしてステップS104において座標値Xに1加算し、ステップS106においてX座標が45となるまでステップS84からステップS106までの処理を繰返し、Y座標が0の位置全てについてa(0、1のいずれか)を格納する。
するとステップS108において座標値Yに1加算し、ステップS110においてY座標が45となるまでステップS82からステップS110までの処理を繰返し、2値化デザインデータPbwの全てに位置についてa(0、1のいずれか)を格納する。こうして本実施形態では、図6(C)に示すようなカラーデザインデータPmを、図8に示すようなカラーデザインデータPmのモジュールごとの色値が各モジュールの色値に応じて2値化された2値化デザインデータPbwに変換する。
なお図6()の例のカラーデザインデータPmは、ハート形状の左半分HLは色値の平均値が30の暗い赤の色値となっており、ハート形状の右半分HRは色値の平均値が230の明るい赤の色値となっている。また背景の左半分BLは色値の平均値が160であって中間よりは明るい青の色値となっており、背景の右半分BRは色値の平均値が96であって中間よりは暗い青の色値となっている。従ってかかるカラーデザインデータPmから生成される2値化デザインデータPbwは、ハート形状の左半分HLと背景の右半分BRが黒のモジュールとされ、ハート形状の右半分HRと背景の左半分BLが白のモジュールとされている。
3−3.2値化デザインデータ逆変換処理
本実施の形態では、図2のステップS26のように、2次元コードを生成する際にマスクパターンとコード語モジュールパターンとでXOR演算による変換を行う。従って、2次元コードのデザインデータ領域33でカラーデザインデータPmの色値に対応する2値化デザインデータ(2値化デザインパターンのビット列)を生成しても、そのままではマスクパターンとのXOR演算により、2値化デザインパターンのビット列がカラーデザインデータPmの色値に対応しないビット列に変換されてしまう。
そこで、本実施の形態では、2次元コードを生成する際にマスクパターンとのXOR演算を行うと2値化デザインパターンのビット列に戻るように、生成した2値化デザインパターンのビット列を予め逆変換しておく。即ち、本実施の形態では、図2のステップS26でマスクパターンが適用される前に、予め2値化デザインパターンとマスクパターンとでXOR演算による変換を行う。
より詳細には、図5のステップS42において、サイズ情報、誤り訂正レベル情報、原データのビット列に基づき、デザインデータ領域33を特定し、ステップS44において、デザインデータ領域33に該当する2値化デザインパターンのビット列を抽出する。そして、ステップS46において、抽出した2値化デザインパターンのビット列とマスクパターンのビット列とでXOR演算による変換を行う。
図10は、図8の2値化デザインデータPbwから抽出した2値化デザインパターン40と、マスクパターン42とでXOR演算による変換を行って得られる逆変換モジュールパターン44の例である。図10に示すように、本実施の形態では、2値化デザインパターン40とマスクパターン42とで対応するモジュールが、同種のモジュールである場合には当該モジュールを暗(黒)モジュールとし(0+0=1、1+1=1)、異種のモジュールである場合には当該モジュールを明(白)モジュールとする(0+1=0、1+0=0)。
従って、XOR演算による変換を行って得られる逆変換モジュールパターン44は2値化デザインデータPbwに対応しないものとなるが、2次元コードを生成する際に再びマスクパターンとのXOR演算を行うと2値化デザインパターンに戻るものである。こうして、デザインデータ領域33に対応する2値化デザインパターンのビット列をマスクパターンで逆変換した逆変換ビット列を生成する。なお、マスクパターン42の4隅などのグレーの部分、即ち生成される2次元コードの位置検出パターン12と位置合せパターン13とタイミングパターン14とに対応する機能パターン領域46には、マスク処理を適用しないようになっている。
すると、図2のステップS10以降において、図3のステップS6で生成された原データのビット列(終端パターンや分割パターンを含めてもよい)と、生成された2値化デザインパターンの逆変換ビット列とをデータコード語に分割し、ステップS12において、得られたデータコード語列がデータコード語数を満たすか否かを判断する。
ここで、2値化デザインパターンの逆変換ビット列は、デザインデータ領域33のモジュール全てを含んでいる。よって、原データのビット列と逆変換ビット列とからなるデータコード語列は、ステップS12において、データコード語数を満たすと判断される(ステップS12のY)。従って、ステップS14で埋め草コード語は付加されず、そのままステップS16〜ステップS24までの2次元コードのフォーマットに基づく処理が行われる。すると、図11の左側のモジュールパターンのように、位置検出パターン12等が配置され、原データのモジュールパターン48と逆変換モジュールパターン44と、それらに対応する誤り訂正コードパターン50とを含むマスク前パターン52が生成される。
そして、ステップS26において、マスク前パターン52にマスク処理パターンを適用すると、2値化デザインパターンの逆変換ビット列が変換されて、元の2値化デザインパターンのビット列に戻る。即ち、図11に示すように、マスク前パターン52と、マスクパターン42とでXOR演算による変換を行うことにより、デザインデータ領域33にカラーデザインデータPmの色値に対応する2値化デザインパターン40が構成されたデザイン2次元コードシンボル54を生成するための変換後ビット列を生成することができる。
こうして、本実施の形態によれば、逆変換モジュールパターン44を生成しておくことにより、その後は通常の2次元コードの生成手順に従って、変換後ビット列を生成することができる。そして、2値化デザインパターン40が構成されたデザイン2次元コードシンボル54(変換後ビット列)のうち、原データ領域30には原データのモジュールパターン48が変換された変換後の原データのモジュールパターン56が配置されているので、2次元コードの読取装置がこの2次元コード54を読み取ると、本システム利用者が2次元コードシンボルを介して伝達しようとする情報である原データを読み取らせることができる。
また、誤り訂正データ領域34には誤り訂正コードパターン50が変換された変換後の誤り訂正コードパターン58が配置されているので、原データのモジュールパターン56及び2値化デザインパターン40の読み取り誤りを訂正することができる。なお、本実施の形態では、2値化デザインパターン40は原データのモジュールパターンの終端パターンの後に付加されているので、デザインデータ領域33の2値化デザインパターン40は読取装置に読み取られてもデータは示さない。
なお、原データのモジュールパターンの後には、終端パターンのみならず、原データのビット列とデザインデータのビット列を識別するための識別子を挿入するようにしてもよい。例えば、原データのビット列の最後に分割パターンを挿入するようにしてもよい。この分割パターンは、例えば改行を示すビット列としてもよいし、スペースを示すビット列としてもよい。これによりデザインデータ領域33のビット列と原データのビット列とを区別することができる。また、原データのビット列とデザインデータ領域33のビット列との間に終端パターン等を挿入せず、原データのビット列とデザインデータ領域33のビット列とにより、例えばネットワークアドレスデータ等の所与の情報を示すようにしてもよい。
また、図5のステップS44において、原データ領域30に該当する原データのビット列も合わせて抽出し、原データのビット列及び2値化デザインパターンのビット列と、マスクパターンとでXOR演算による変換を行ってもよい。即ち、少なくともデザインデータ領域33に該当する2値化デザインパターンのビット列について、逆変換がなされていればよい。
また、本実施の形態では、2次元コードを生成する際のマスクパターンによる変換処理を考慮して逆変換を行う例を挙げて説明したが、2値化デザインパターンのビット列に対して2次元コードを生成する際に他の変換処理が行われる場合には、その変換処理を行うと2値化デザインパターンのビット列に戻るように、生成した2値化デザインパターンのビット列を予め逆変換しておく。ここで、逆変換とは、2次元コードを生成する際の変換処理により2値化デザインパターンのビット列に戻るようなビット列に、2値化デザインパターンのビット列を変換する処理をいう。例えば本実施の形態では、逆変換処理と、2次元コードを生成する際の変換処理とが、ともにXOR演算であって同一の変換処理となるものであるが、かかる場合も逆変換の概念に含まれる。
なお、図2のステップS26のマスク処理において、複数種類のマスクパターンが適用され、所定の評価関数に基づいて最もバランスよくモジュールが配置されるマスクパターンが選択される場合には、図3のステップS2において、マスク処理で適用させるマスクパターンを指定するマスクパターン情報を取得し、当該マスクパターンで図5のステップS46の逆変換処理と、図2のステップS26の変換処理とを行うようにしてもよい。
3−4.カラーデザインデータ補正処理
こうして本実施形態では、デザイン領域33にカラーデザインデータPmに対応する2値化デザインパターン40が構成された2次元コード54が生成される。従って、カラーデザインデータPmを構成するモジュールごとの色が、黒と読み取られるような暗い色、白と読み取られるような明るい色から構成されていれば、2次元コード54のデザイン領域33のモジュールの色を、カラーデザインデータPmのモジュールごとの色に配色しても2次元コードとして読み取ることができる。
しかしカラーデザインデータPmはフルカラーのカラー画像データP0から生成されているため、カラーデザインデータPmのモジュールには、明るさが中間的な色値であるなど2値化データのいずれを示すものであるか読み取ることができないおそれがある色のモジュールが存在する場合がある。従って、カラーデザインデータPmの各モジュールの色値を、上述のようにして生成したデザイン2次元コードシンボル54(変換後ビット列)のモジュールの色としてそのまま適用したのでは、2次元コードの読み取り誤りが発生したり、2次元コードとして読み取れない事態が発生する場合がある。
そこで本実施形態では、かかるカラーデザインデータPmの色値に対応する2値化デザインパターン40を構成するための変換後ビット列を基準として、カラーデザインデータPmのモジュールごとの色値を補正して、補正後の色値に基づいた2次元コードを生成する。即ち本実施形態では、まず2次元コードとして読み取り可能であって、かつカラーデザインデータに対応する2値化デザインが構成された2次元コードを生成するための変換後ビット列(図11に示す2値化デザインパターン40が構成された2次元コードシンボル54)を生成する。そしてカラーデザインデータのモジュールごとの色値が、変換後ビット列の値として読み取られるように各色値を補正することにより、変換後ビット列の値が示すとおりに読み取り可能であって、かつカラーデザインが構成された2次元コードを生成する。
ここで本実施形態では、図11に示す2次元コードシンボル54のうち、原データ領域30と、誤り訂正データ領域34と、位置検出パターン12と位置合せパターン13とタイミングパターン14とに対応する機能パターン領域46とを除く、デザインデータ領域33に対応するモジュールについて、補正後の色値に応じた色が配色されればよい。
3−4−1.第1の色値の補正処理
例えば図6(C)のカラーデザインデータPmの例では、背景の左半分BLは色値の平均値が160の中間よりは明るい青の色値となっており、背景の右半分BRは色値の平均値が160の中間よりは暗い青の色値となっている。このように背景の左半分BLと背景の右半分BRとでは、モジュールの色値が中間的な値となっているため読み誤り等が発生するおそれがある。
そこで第1の例では、少なくともデザインデータ領域33に対応するカラーデザインデータPmのモジュールごとの色値を、各色値に応じた変換式、又は各モジュールに対応する変換後ビット列の値に応じた変換式に基づいて、中間値よりも暗い色は確実に黒として読み取られるように、中間値よりも明るい色は確実に白として読み取られるように補正する。
図12は、第1の例の色値補正処理の詳細を示すフローチャートである。図12に示すようにまずステップS120において、カラーデザインデータPmの座標値としてY=0を代入し、ステップS122においてX=0を代入する。そしてステップS124において、カラーデザインデータPmの(X,Y)の位置のRGB各色成分の色値の合計値Tを求め、ステップS126において、合計値Tが各色値の中間値である128の3倍の値よりも大きいか否か、即ち(X,Y)の位置のモジュールの色値が中間値よりも暗い値か明るい値か判定する。なお、対応する2値化デザインデータPbwの(X,Y)の位置の値が0か1かにより判定してもよい。
そして合計値Tの方が大きい場合(値が1の場合)、即ち(X,Y)の位置のモジュールの色値が中間値よりも明るい場合には(ステップS126のY)、ステップS128において、カラーデザインデータPmの(X,Y)の位置のRGB各色成分の色値を色成分ごとに、A’=A/2+128のAに代入し、変換後の値A´を(X,Y)の位置の補正後の色成分ごとの色値とする。従って各色成分の色値が例えば130であるなど中間値とほとんど変わらないような色値が存在する場合でも、130/2+128=193と補正され、確実に白(変換後ビット列が示す値)として読み取られる値となる。
一方、合計値Tの方が小さい場合(値が0の場合)、即ち(X,Y)の位置のモジュールの色値が中間値よりも暗い場合には(ステップS126のN)、ステップS130において、カラーデザインデータPmの(X,Y)の位置のRGB各色成分の色値を色成分ごとに、A’=A/2のAに代入し、変換後の値A´を(X,Y)の位置の補正後の色成分ごとの色値とする。従って各色成分の色値が例えば126であるなど中間値とほとんど変わらないような色値が存在する場合でも、126/2=63と補正され、確実に黒(変換後ビット列が示す値)として読み取られる値となる。
そしてステップS132において座標値Xに1加算し、ステップS134においてX座標が45となるまでステップS122からステップS134までの処理を繰返し、Y座標が0の位置全てについて補正後の色成分ごとの色値を求める。するとステップS136において座標値Yに1加算し、ステップS138においてY座標が45となるまでステップS122からステップS138までの処理を繰返し、カラーデザインデータPmの全ての位置について補正後の色成分ごとの色値を求める。こうして本実施形態では、カラーデザインデータPmのモジュールごとの色値を、確実に各モジュールに対応する変換後ビット列の値として読み取られるように補正する。
そして第1の例では図13に示すように、デザインデータ領域33については補正後の色値に基づいて2次元コードシンボル10を生成し、2次元コードのその他の領域については変換後ビット列(デザイン2次元コードシンボル54)に基づいて2次元コードシンボル10を生成する。従って図13の例では、モジュールの色値が中間的な値であった背景の左半分BLと背景の右半分BRの色値が、デザインデータ領域33においてカラーデザインデータPmの色を可及的に反映しつつ、確実に変換後ビット列の値として読み取られる色値となっている。
このように本実施形態によれば、人目を引き付けることができるカラーのデザインパターンが構成された2次元コードを、通常の2次元コードの生成手順に準じて簡易に生成することができる。しかも、カラーデザインが構成されていても、通常の2次元コードの生成手順に準じて生成されているので、2次元コードを読取装置により正確に読み取らせることができる。
3−4−2.第2の色値の補正処理
また図6(B)のカラーデザインデータPmの例では、ハート形状の左半分HLは色値の平均値が30の暗い赤の色値となっており、ハート形状の右半分HRは色値の平均値が230の明るい赤の色値となっている。よって、ハート形状の左半分HLとハート形状の右半分HRとでは、モジュールの色値が中間的な値となっていないためそのままの色値でも読み誤りなく読み取られる。しかし第1の例の色値補正処理では、かかるモジュールの色値についても同様の変換式により補正を行うため、図13に示すようにハート形状の左半分HLはほとんど黒に近い暗い赤に補正され、ハート形状の右半分HRはほとんど白に近い明るい赤に補正されている。
そこで第2の例では、色値が色値のとり得る範囲の中間付近の第1の範囲の値である場合、即ち色値が2値化データのいずれを示すものであるか読み取ることができないおそれがある値である場合に、色値をその色値に応じた変換式、又は各モジュールに対応する変換後ビット列の値に応じた変換式に基づいて、中間値よりも暗い色は確実に黒として読み取られるように、中間値よりも明るい色は確実に白として読み取られるように補正する。そして色値が第1の範囲の値(中間的な値)であるモジュールについては補正後の色値に基づいて2次元コードを生成し、色値が第1の範囲の値以外の第2の範囲の値(中間的でない値)であるモジュールについては補正を行わずに、カラーデザインデータPmのモジュールごとの色値に基づいて2次元コードを生成する。
図14は、第2の例の色値補正処理の詳細を示すフローチャートである。図14において、Fgetcol(X,Y,c)は、カラーデザインデータPmの(X,Y)の位置の色値を取り出す関数であって、cは0〜2までとり、それぞれがRGBの各色成分に対応する。またFsetgen(X,Y,c,a)は、(X,Y)の位置の補正後の色値を設定する関数であって、cは0〜2までとり、それぞれがRGBの各色成分に対応し、指定された色成分cにaの値が設定される。またFgetgen(X,Y,c)は、(X,Y)の位置の補正後の色値を取り出す関数であって、cは0〜2までとり、それぞれがRGBの各色成分に対応する。
図14に示すようにまずステップS150において、カラーデザインデータPmの座標値としてY=0を代入し、ステップS152においてX=0を代入する。そしてステップS154において、カラーデザインデータPmの(X,Y)の位置のRGB各色成分の色値の合計値Tを求め、ステップS156において、合計値Tが確実に白として読み取れる値である192の3倍の値よりも大きいか、又は合計値Tが確実に黒として読み取れる値である64の3倍の値よりも小さいか判定する。即ち(X,Y)の位置のモジュールの色値が、白黒いずれかの値として確実に読み取れる範囲の色値(第2の範囲)か否か判定する。
ここで確実に読み取れる範囲の色値である場合には(ステップS156のY)、ステップS158〜ステップS164において、カラーデザインデータPmの(X,Y)の位置のRGB各色成分の色値を、補正せずにそのまま2次元コードを生成するための色値として設定する。一方、確実に読み取れる範囲の色値でない場合には(ステップS156のN)、ステップS166において、合計値Tが各色値の中間値である128の3倍の値よりも大きいか否か、即ち(X,Y)の位置のモジュールの色値が中間値よりも暗いか明るいか判定する。なお、対応する2値化デザインデータPbwの(X,Y)の位置の値が0か1かにより判定してもよい。
そして合計値Tの方が小さい場合(Pbwの(X,Y)の値又は変換後ビット列の対応する値が1の場合)、即ち(X,Y)の位置のモジュールの色値が中間値よりも暗い場合には(ステップS166のY)、ステップS168において各色成分の種類を示すC(R=0、G=1、B=2)に0を代入し、ステップS170において、カラーデザインデータPmの(X,Y)の位置のRGB各色成分の色値を色成分ごとに、a=a*(64*3)/Tのように変換し、変換後の値aを(X,Y)の位置の補正後の色成分ごとの色値とする。従って各色成分の色値が例えばいずれも130であるなど中間値とほとんど変わらないような色値である場合でも、130*(64*3)/390=64と補正され、確実に黒(変換後ビット列が示す値)として読み取られる値となる。
一方、合計値Tの方が大きい場合(Pbwの(X,Y)の値又は変換後ビット列の対応する値が0の場合)、即ち(X,Y)の位置のモジュールの色値が中間値よりも明るい場合には(ステップS166のN)、ステップS176〜ステップS200において、所定の変換式に基づいて各色成分の色値を変換した場合に、色値がとり得る最大値255をオーバーフローしたか否かに応じて変換式を変える手法により各色成分ごとの色値を補正する。本実施形態ではまず、ステップS176において最大値255に対するオーバーフローの積算値OVと、余裕分の積算値SPに0を代入し、ステップS178においてCに0を代入する。そしてステップS180において、カラーデザインデータPmの(X,Y)の位置のRGB各色成分の色値を色成分ごとに、a=a*(192*3)/Tのように変換する。
そしてステップS182において、変換後の値が最大値の255をオーバーフローした場合には(ステップS182のY)、ステップS184においてOV=OV+a−255のようにしてオーバーフロー積算値を加え、補正値を255に設定する。一方、変換後の値が最大値の255をオーバーフローしない場合には(ステップS182のN)、ステップS186においてSP=SP+255−aのようにして余裕分の積算値を加え、補正値をステップS180で求めたaに設定する。そしてこれを各色成分について行う(ステップS188、ステップS190)。
そしてステップS192においてオーバーフローがなかったと判定されると(ステップS192のY)、即ちステップS184の処理が行われず、各色成分についてステップS186の処理が行われた場合には、補正値をaとしてそのまま設定する。一方、ステップS192においてオーバーフローがあったと判定されると(ステップS192のN)、即ちステップS184の処理が行われた場合には、ステップS194〜ステップS200までにおいて、各色成分の補正後の色値(ステップS180〜ステップS190において設定された色成分ごとの補正値)を更に変換する。即ちステップS196において、a=225−Fgetgen(X,Y,c)のようにして、最大値255と補正値との差をaとし、b=OV*a/SP+Fgetgen(X,Y,c)のようにして、オーバーフロー積算値OVと余裕分の積算値SPを反映させた補正値bを算出し、これを最終的な補正値として設定する。
そしてステップS202〜ステップS208のように、カラーデザインデータPmの全ての座標値のモジュールについて上記処理を行い、補正後の色値を求める。こうして第2の色値補正処理では、そのままの色値でも読み誤りなく読み取られるモジュールについては補正を行わず、読み誤りのおそれがおる色値のモジュールについてのみ補正を行う。特に中間的な値であって相対的に色値が明るいモジュールについては、オーバーフロー積算値OVと余裕分の積算値SPを考慮することにより、各色成分の色値にばらつきがあるモジュールについても適切な補正を行う。
従って第2の例では図15に示すように、ハート形状の左半分HLとハート形状の右半分HRとでは、モジュールの色値が中間的な値となっていないためカラーデザインデータPmそのままの色値に基づいて2次元コードシンボル10を生成する。一方、モジュールの色値が中間的な値であった背景の左半分BLと背景の右半分BRの色値は、カラーデザインデータPmの色を可及的に反映しつつ、確実に変換後ビット列の値として読み取られる補正後の色値に基づいて2次元コードシンボル10を生成する。
3−4−3.第3の例
また、少なくともデザインデータ領域33に対応するカラーデザインデータPmのモジュールごとの色値が、色値のとり得る範囲の中間付近の第1の範囲の値である場合、即ち色値が中間的な値である場合に、各モジュールに所定のパターンで割り当てられる値に応じた変換式に基づいて色値を補正するようにしてもよい。
例えば図16に示す第3の例では、図14に示す第2の例とほぼ同様の処理を行うが、図14のステップS156において色値が中間的な色値であると判定した場合に(ステップS156のN)、ステップS166においてRGB値の合計値Tが中間値よりも大きいか否かにより変換式を異ならせるのではなく、例えばディザパターンを用いて値を割り当て、値に応じて変換式を異ならせる。具体的には第3の例では、図16のステップS156において色値が中間的な色値であると判定した場合に(ステップS156のN)、ステップS220において、(Y&1)*2+(X&1)?のようにして、座標値X、Yに応じて異なる値0〜3を算出し、ステップS222において、算出された値に対応するしきい値Lを当該位置のモジュールに割り当てる。そしてステップS224において、色値の合計値Tが同じであっても割り当てられたしきい値に応じて用いる変換式が異なるようにして、色値の補正処理を行う。
こうして第3の例によれば、色値が第1の範囲の値であるモジュールに対して、一括した補正処理を行うのではなく、例えば誤差拡散法などを用いて所定のパターンで値を割り当て、値に応じた補正処理を行う。従って第3の例によれば、色値が第1の範囲の値であるモジュールについて、所定のパターンで異なる色値を出現させて元の中間的な色値を表現することにより、可及的に元の色値を補正後の色値に反映することができる。
3−4−4.第4の例
また、少なくともデザインデータ領域に対応する変換後ビット列の値が第1の値(白、0)であって、対応するカラーデザインデータのモジュールの各色成分の色値の最小値が第1のしきい値よりも小さい場合に、そのモジュールの各色成分の色値を増加させる変換式に基づいて各色成分の色値を補正し、少なくともデザインデータ領域33に対応する変換後ビット列の値が第2の値(黒、1)であって、対応するカラーデザインデータのモジュールの各色成分の色値の最大値が第2のしきい値よりも大きい場合に、そのモジュールの各色成分の色値を減少させる変換式に基づいて各色成分の色値を補正するようにしてもよい。
例えば図17に示す第4の例のフローチャートでは、図16に示す第3の例のステップS156において中間的な色値であるか否か判定する前に、ステップS240〜ステップS270までの処理により、モジュールの色成分ごとの色値に、読み取られるべき値に反して小さい又は大きい値がある場合には、当該モジュールの色値全体を補正しておく。具体的には図17のステップS244において、カラーデザインデータPmの(X,Y)の位置のRGB各色成分の色値の合計値Tを求め、ステップS246において、合計値Tが各色値の中間値である128の3倍の値よりも大きいか否か、即ち(X,Y)の位置のモジュールの色値が中間値よりも暗いか明るいか判定する。
そしてステップS246において、合計値Tの方が小さい場合(ビット列の値が1の場合)、即ち(X,Y)の位置のモジュールの色値が中間値よりも暗い場合には(ステップS246のY)、ステップS248において、RGB各色成分の色値のうち最も値が大きいものEmaxを求め、ステップS250において、黒であると認識されるモジュールの各色成分がとり得る最大値LowmaxとEmaxとを比較する。即ち合計値Tによれば色値が小さい(暗い)と判断されるが、色成分ごとの色値にしきい値(Lowmax)を超えて色値が大きいもの(白に近づくもの)があるか否か判定する。
ここで大きい色値がある場合には(ステップS250のY)、ステップS252〜ステップS258において、当該位置のモジュールの各色成分について、ステップS254の変換を行う。図17の例では、カラーデザインデータPmの(X,Y)の位置のRGB各色成分の色値を読出し(a=Fgetcol(X,Y,c))、a=a−(Emax−LowMax)*a/Emaxのようにして、読み出した値からEmaxとLowMaxに応じた値を差し引く。即ち、色成分ごとの色値でLowMax(第2のしきい値)よりも大きい色値がある場合には、当該モジュールの各色成分の色値を同様に減少させる。一方、大きい色値がない場合には(ステップS250のN)、そのまま第3の例と同様の処理を行う。
また、ステップS246において、合計値Tの方が大きい場合(ビット列の値が0の場合)、即ち(X,Y)の位置のモジュールの色値が中間値よりも明るい場合には(ステップS246のN)、ステップS260において、RGB各色成分の色値のうち最も値が小さいものEminを求め、ステップS262において、白であると認識されるモジュールの各色成分がとり得る最小値HighminとEminとを比較する。即ち合計値Tによれば色値が大きい(明るい)と判断されるが、色成分ごとの色値にしきい値(Lowmin)を超えて色値が小さいもの(黒に近づくもの)があるか否か判定する。
ここで小さい色値がある場合には(ステップS262のY)、カラーデザインデータPmの(X,Y)の位置のRGB各色成分の色値を読出し(a=Fgetcol(X,Y,c))、a=a+(HighMin−Emin)*(255−a)/(255−Emin)のようにして、読み出した値にEmaxとLowMaxに応じた値を加える。即ち、色成分ごとの色値でHighMin(第1のしきい値)よりも小さい色値がある場合には、当該モジュールの各色成分の色値を同様に増加させる。一方、小さい色値がない場合には(ステップS262のN)、そのまま第3の例と同様の処理を行う。
こうして第4の例によれば、色成分ごとの色値に応じた変換処理を行うことにより、より確実に読み取り誤りを防止するとともに、可及的に元の色値を補正後の色値に反映することができる。
3−4−5.デザイン領域以外への適用
また本実施形態では、図11に示す2次元コードシンボル54のうち、デザインデータ領域33に対応するモジュールのみならず、原データ領域30と、誤り訂正データ領域34と、位置検出パターン12と位置合せパターン13とタイミングパターン14とに対応する機能パターン領域46に対応するモジュールについても、補正後の色値に応じた色が配色されるように2次元コードを生成することができる。
上述のようにデザインデータ領域33に対応するモジュールは、変換後ビット列がカラーデザインデータPmに対応するものであるため、各モジュールの色値に応じた変換式、又は各モジュールに対応する前記変換後ビット列の値に応じた変換式に基づいて、色値を補正することにより、適切な補正後の色値を求めることができた。しかし、原データ領域30と、誤り訂正データ領域34と、機能パターン領域46に対応するモジュールについては、変換後ビット列がカラーデザインデータPmとは無関係なものであるため、同様の変換式によって補正後の色値を求めたのでは、変換後ビット列や機能的なパターンが示す値として読み取られない色値に補正されてしまう場合がある。
そこで本実施形態では、デザインデータ領域33以外の上記各領域に対応するモジュールについては、変換後ビット列や機能的なパターンが示す値(0か1)を参照し、当該領域用の変換式を用いて、変換後ビット列や機能的なパターンが示す値として読み取られるように各色値を補正した補正後の色値を求める。具体的には、変換後ビット列や機能的なパターンが示す値が0即ちモジュールが白である場合であって、対応するカラーデザインデータPmのモジュールの色値が中間値よりも暗い場合には、補正後の各色成分の色値の平均値が192〜255の間の数値となるような変換式を用いる。また、変換後ビット列や機能的なパターンが示す値が1即ちモジュールが黒である場合であって、対応するカラーデザインデータPmのモジュールの色値が中間値よりも明るい場合には、補正後の各色成分の色値の平均値が0〜64の間の数値となるような変換式を用いる。
例えば、デザイン領域33のモジュールについては、変換後ビット列の値等に応じて、A’=A/2+128、又はA’=A/2の変換式を用い、その他の領域のモジュールについては、A´=A/4+192、又はA´=A/4の変換式を用いるようにしてもよい。即ちデザイン領域33では、モジュールごとの色値と変換後ビット列等の値が対応しているので補正率が相対的に小さい変換式を用い、その他の領域では、モジュールごとの色値と変換後ビット列等の値が必ずしも対応していないので補正率が相対的に大きい変換式を用いるようにしてもよい。
また、変換後ビット列や機能的なパターンが示す値が0即ちモジュールが白である場合であって、対応するカラーデザインデータPmのモジュールの各色成分の色値の平均値が192〜255の間の明るい色の数値である場合や、変換後ビット列や機能的なパターンが示す値が1即ちモジュールが黒である場合であって、対応するカラーデザインデータPmのモジュールの各色成分の色値の平均値が0〜64の間の暗い色の数値である場合には、補正せずにカラーデザインデータPmのモジュールの色値をそのまま2次元コードの色値としてもよい。
図18はこのようにして生成された2次元コードの例である。図18の例では、ハート形状の中心に配置された位置合せパターン13が、ハート形状の左半分HLの色値とハート形状の右半分HR色値とを反映した色値となっている。特にハート形状の左半分HLに対応する位置合せパターン13の黒モジュールに対応する部分は、ハート形状の左半分HLの色値が0〜64の暗い色値であったため、ハート形状の左半分HLの色値と同様の色とされている。即ち位置合せパターン13の黒モジュールであっても、カラーデザインデータPmのモジュールの色値をそのまま2次元コードの色値としている。一方、ハート形状の左半分HLに対応する位置合せパターン13の白モジュールに対応する部分は、ハート形状の左半分HLの色値が0〜64の暗い色値であったため、ハート形状の左半分HLの色値を反映しつつ、192〜255の間の数値の色値に補正されている。こうして本実施形態によれば、より広い領域においてカラーデザインデータPmの色値が反映された2次元コードを生成することができる。
4.構成
図19に本実施形態の2次元コード生成システムの機能ブロック図の例を示す。なお本実施形態の2次元コード生成システムは図19の構成要素(各部)の一部を省略した構成としてもよい。
入力部160は、生成する2次元コードの基本データ、生成した2次元コードから読み取られるべき原データ、生成した2次元コードに構成されるデザインデータなどを入力するためのものである。その機能は、例えばボタンやレバーの他、入力部と表示部の両方の機能を有するタッチパネル型表示部(パネルに画像が表示されると共に、指やペンで画面を触れたり押すことで情報を入力できる装置)により実現できる。また、スキャナやカメラ等の光学読み取り装置によりデザインデータを入力するようにしてもよい。
記憶部170は、処理部100などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部をコンピュータに実現させるためのプログラム)が記憶(記録、格納)される。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能はCRT、液晶ディスプレイ、プラズマディスプレイ、入力部と表示部の両方の機能を有するタッチパネル型表示部により実現できる。
通信部196は、外部(例えばホストや他の端末)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト(サーバー)が有する情報記憶媒体からネットワーク(広域ネットワーク、インターネット)及び通信部196を介して情報記憶媒体180(記憶部170)に配信するようにしてもよい。このようなホスト(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
処理部100(プロセッサ)は、入力部160からの入力データやプログラムなどに基づいて、データ表示処理、データ加工処理、データ変換処理、2次元コード生成処理などの各種の処理を行う。この場合、処理部100は、記憶部170内の主記憶部172をワーク領域として使用して、各種の処理を行う。この処理部100の機能は、各種プロセッサ(CPU、DSP等)又はASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、データ取得部110、コードサイズ決定部112、不使用データ領域特定部114、2値化デザインデータ変換部118、2次元コード生成部120、2次元コード変更部126を含む。なお、処理部100は、これらの各部(機能ブロック)を全て含む必要はなく、その一部を省略してもよい。
データ取得部110は、入力部160への入力情報に基づき、シンボルの型番情報(サイズ情報)と形式情報(誤り訂正レベル情報)とを取得する。また、本システム利用者が2次元コードシンボルを介して伝達しようとする情報である原データ(ネットワークアドレス情報等)を、2次元コードのフォーマットに基づいてビットコード(ビット列)に変換する。
また、データ取得部110は、サイズ情報に応じた2次元コードのモジュールごとの色値から構成されたカラーデザインデータと、カラーデザインデータのモジュールごとの色値が各モジュールの色値に応じて2値化された2値化デザインデータとを取得する。ここでデータ取得部110は、所与のカラー画像データを取得してカラーデザインデータを生成するカラーデザインデータ生成部と、所与のカラー画像データに基づいて、又はカラーデザインデータに基づいて2値化デザインデータを生成する2値化デザインデータ生成部とを含むようにしてもよい。また、データ取得部110は、2次元コードに対応付けられた所与の2値化デザインデータを、2次元コードのフォーマットに基づいてビットコード(ビット列)に変換する。
また、コードサイズ決定部112を採用し、取得したカラー画像データ、カラーデザインデータ、2値化デザインデータのサイズ(領域、ビット数)に応じて2次元コードのサイズを決定するようにしてもよい。例えば、取得した2値化デザインパターンに対応するモジュールがデザインデータ領域33内に納まるように2次元コードのサイズ情報を決定し、データ取得部110が当該サイズ情報を取得するようにしてもよい。この場合、原データのビットコード、2値化デザインデータのビットコードに基づいて、当該2値化デザインパターンを配置可能なデザインデータ領域33を確保できる2次元コードのサイズ情報を特定するようにしてもよい。
デザインデータ領域特定部114は、2次元コードのサイズ情報と、原データを変換したビットコードとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域33を特定する。より詳細には、デザインデータ領域特定部114は、サイズ情報に応じて誤り訂正データ領域34を特定し、原データに基づいて原データ領域30を特定し、サイズ情報と誤り訂正データ領域34と原データ領域30とに基づいてデザインデータ領域33を特定する。
2値化デザインデータ変換部118は、デザインデータ領域33に対応する2値化デザインデータを、2次元コードのフォーマット情報に基づいて逆変換したビットコードを求める。具体的には、図5及び図5の説明に示す各処理を行って、2値化デザインパターンのビットコードを逆変換したビットコードを求める。
補正処理部119は、逆変換後のビットコードが2次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行ってデザインデータ領域のビットコードを求める。例えば、逆変換後のビットコードに対する判定処理と補正処理とを、2次元コードのフォーマットに基づいた分割単位ごとに行ってもよいし、全体として行ってもよい。また、ビット(モジュール)ごとに行うようにしてもよい。
また、2値化デザインデータ変換部118の処理と補正処理部119の処理の順序を入れ替えて行ってもよい。例えば、補正処理部119が、任意アドレスデータ領域31に対応する2値化デザインデータのビットコードが2次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行って任意アドレスデータのビットコードを求め、2値化デザインデータ変換部118が、補正処理後の任意アドレスデータのビットコードを2次元コードのフォーマット情報に基づいて逆変換したビットコードを求めるようにしてもよい。
2次元コードデータ生成部120は、2値化デザインデータを逆変換したビットコードと原データを示すビットコードとを2次元コードのフォーマット情報に基づいて変換して、2次元コードを生成するための変換後ビット列を生成する。具体的には、図2及び図2の説明に示す各処理を行って2次元コードを生成する。
特に2次元コードデータ生成部120は、誤り訂正データ生成部122と位置合せパターン設定部124とを含む。この誤り訂正データ生成部122は、2値化デザインデータを逆変換したビットコードと原データを示すビットコードとに基づいて、生成される2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する。また、位置合せパターン設定部124は、2次元コードの読み取りに用いられる位置合せパターン13を配置する。
また、位置合せパターン設定部124は、位置合せパターン13の省略処理を受け付けるようにしてもよい。例えば、2次元コードを生成する前に設定された情報に基づいて、位置合せパターン13を配置しないようにしてもよい。また、所定のアルゴリズムにより、2値化デザインパターンに対応する所定のカバー領域に含まれる位置合せパターン13を配置しないようにしてもよい。また、位置合せパターン13を配置して2次元コードシンボル10を完成させてから、入力情報に基づいて位置合せパターン13を削除するようにしてもよい。
2次元コード変更部126は、誤り訂正レベルデータに応じて、生成された2次元コードの変更処理を受け付ける。本実施の形態では、誤り訂正レベルが4段階用意されており、それぞれの復元能力が決められている。従って、2次元コードのサイズ情報と誤り訂正レベル情報とから、変更しても復元可能なモジュール数(ビット数、パターン数)の範囲内で、配置されたモジュール(ビット)の変更を受け付ける。
カラーデザインデータ補正部128は、少なくともデザインデータ領域33に対応するカラーデザインデータのモジュールごとの色値が、各モジュールに対応する変換後ビット列の値として読み取られるように各色値を補正した補正後の色値を求める。
2次元コード生成部130は、補正後の色値及び変換後ビット列に基づいて2次元コードを生成する。即ち2次元コード生成部130は、補正後の色値によるカラーデザインパターンが構成された2次元コードを生成する。
6.2次元コードの利用
本実施の形態で生成されたカラーデザインパターンが配置された2次元コードは、種々の印刷物に印刷してこれを利用することができる。また、テレビ放送やビデオ放映、ゲーム機等、種々のメディアを介してモニタ等の表示部に画像表示させることができる。この場合には、本実施の形態で生成されたカラーデザインパターンが配置された2次元コードの画像データを生成して、表示部に表示させればよい。
特に、本実施の形態で生成された2次元コードを画像表示させる場合には、デザインデータ領域33に配置されるカラーデザインパターンを複数種類用意しておく。この複数種類のカラーデザインパターンとして、例えば、丸、三角、四角等、形状が異なるカラーデザインパターンを用意してもよいし、連続して切り替え表示すると人が走っているように見えるように、所与のモーションをコマ割りしてそれぞれをデザインした複数のカラーデザインパターンを用意してもよい。また、各モジュールの色を、変換後ビット列が示す値として読み取られる範囲で変化させるようにしてもよい。
また、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
また本発明は、QRコードなどのマトリックス式の2次元コードのみならず、スタック式の2次元コードなど、種々の2次元コードに関して適用することができる。その場合には、各2次元コードのフォーマットに応じて各処理を行う。
また本発明は、デザインパターンが配置された2次元コードを生成するためのプログラムのみならず、デザインパターンが配置された2次元コードを生成するためのデータを生成するためのプログラム、デザインパターンが配置された2次元コード画像を生成するためのプログラム、及びそれらのプログラムを記憶した情報記憶媒体、システムにも適用することができる。
本実施の形態の2次元コードの構造の一例を示す図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態で生成される2次元コードの一例を示す図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 図6(A)、(B)、(C)は、本実施の形態で表示部に表示される画面の一例を示す図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の2次元コード生成処理の一例を説明するための図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の2次元コード生成処理の一例を説明するための図である。 本実施の形態の2次元コード生成処理の一例を説明するための図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の2次元コード生成処理の一例を説明するための図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の2次元コード生成処理の一例を説明するための図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の2次元コード生成処理の一例を説明するための図である。 本実施の形態の機能ブロックの一例を示す図である。
符号の説明
10 2次元コードシンボル、13 位置合せパターン、16 符号化領域、30 原データ領域、33 デザインデータ領域、34 誤り訂正コード領域、40 2値化デザインパターン、42 マスクパターン、44 逆変換モジュールパターン、52 マスク前パターン、54 デザイン2次元コードシンボル、100 処理部、110 データ取得部、112 コードサイズ決定部、114 デザインデータ領域特定部、118 2値化デザインデータ変換部、120 2次元コードデータ生成部、126 2次元コード変更部、128 カラーデザインデータ補正部、130 2次元コード生成部、160 入力部、170 記憶部、180 情報記憶媒体、190 表示部

Claims (21)

  1. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    記デザインデータ領域に対応する前記多階調デザインデータのモジュールの階調値が、所与のしきい値よりも大きい場合にはそのモジュールの階調値を増加させる補正を行い、前記所与のしきい値よりも小さい場合にはそのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記デザインデータ領域については前記補正後の階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  2. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    記デザインデータ領域に対応する前記多階調デザインデータのモジュールの階調値が、階調値のとり得る範囲の中間付近の第1の範囲の値であって、かつ、所与のしきい値よりも大きい場合にはそのモジュールの階調値を増加させる補正を行い、前記所与のしきい値よりも小さい場合にはそのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記デザインデータ領域に対応するモジュールのうち、前記補正が行われたモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  3. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    記デザインデータ領域に対応する前記変換後ビット列の値が、第1の値である場合には対応する前記多階調デザインデータのモジュールの階調値を増加させる補正を行い、第2の値である場合には対応する前記多階調デザインデータのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記デザインデータ領域については前記補正後の階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  4. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    記デザインデータ領域に対応する前記多階調デザインデータのモジュールの階調値が、階調値のとり得る範囲の中間付近の第1の範囲の値であって、かつ、対応する前記変換後ビット列の値が第1の値である場合にはそのモジュールの階調値を増加させる補正を行い、第2の値である場合にはそのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記デザインデータ領域に対応するモジュールのうち、前記補正が行われたモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  5. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    記デザインデータ領域に対応する多階調デザインデータのモジュールごとの階調値が、階調値のとり得る範囲の中間付近の第1の範囲の値である場合に、各モジュールに所定のパターンで割り当てられる値に応じて、前記階調値を増加させる補正又は前記階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記デザインデータ領域に対応するモジュールのうち、前記補正が行われたモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  6. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    記デザインデータ領域については、対応する前記多階調デザインデータのモジュールの階調値が、所与のしきい値よりも大きい場合にはそのモジュールの階調値を増加させる補正を行い、前記所与のしきい値よりも小さい場合にはそのモジュールの階調値を減少させる補正を行い、前記デザインデータ領域以外の領域については、対応する前記変換後ビット列の値が、第1の値である場合には対応する前記多階調デザインデータのモジュールの階調値を増加させる補正を行い、第2の値である場合には対応する前記多階調デザインデータのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記補正後の階調値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  7. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    記デザインデータ領域については、対応する前記多階調デザインデータのモジュールの階調値が、階調値のとり得る範囲の中間付近の第1の範囲の値であって、かつ、所与のしきい値よりも大きい場合にはそのモジュールの階調値を増加させる補正を行い、前記所与のしきい値よりも小さい場合にはそのモジュールの階調値を減少させる補正を行い、前記デザインデータ領域以外の領域については、対応する前記変換後ビット列の値が第1の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第1の範囲の最大値よりも小さい場合には、そのモジュールの階調値を前記第1の範囲の最大値よりも大きい値に増加させる補正を行い、対応する前記変換後ビット列の値が第2の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第1の範囲の最小値よりも大きい場合には、そのモジュールの階調値を前記第1の範囲の最小値よりも小さい値に減少させる補正を行う多階調デザインデータ補正部と、
    前記補正が行われたモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  8. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    前記変換後ビット列の値が、第1の値である場合には対応する前記多階調デザインデータのモジュールの階調値を増加させる補正を行い、第2の値である場合には対応する前記多階調デザインデータのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記補正後の階調値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  9. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    記デザインデータ領域については、対応する前記多階調デザインデータのモジュールの階調値が、階調値のとり得る範囲の中間付近の第1の範囲の値であって、かつ、対応する前記変換後ビット列の値が第1の値である場合にはそのモジュールの階調値を増加させる補正を行い、第2の値である場合にはそのモジュールの階調値を減少させる補正を行い、前記デザインデータ領域以外の領域については、対応する前記変換後ビット列の値が第1の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第1の範囲の最大値よりも小さい場合には、そのモジュールの階調値を前記第1の範囲の最大値よりも大きい値に増加させる補正を行い、対応する前記変換後ビット列の値が第2の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第1の範囲の最小値よりも大きい場合には、そのモジュールの階調値を前記第1の範囲の最小値よりも小さい値に減少させる補正を行う多階調デザインデータ補正部と、
    前記補正が行われたモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  10. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    記デザインデータ領域については、対応する多階調デザインデータのモジュールごとの階調値が、階調値のとり得る範囲の中間付近の第1の範囲の値である場合に、各モジュールに所定のパターンで割り当てられる値に応じて、前記階調値を増加させる補正又は前記階調値を減少させる補正を行い、前記デザインデータ領域以外の領域については、対応する前記変換後ビット列の値が、第1の値である場合には対応する前記多階調デザインデータのモジュールの階調値を増加させる補正を行い、第2の値である場合には対応する前記多階調デザインデータのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記デザインデータ領域に対応するモジュールのうち、前記補正が行われたモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域については前記補正後の階調値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  11. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    記デザインデータ領域については、対応する多階調デザインデータのモジュールごとの階調値が、階調値のとり得る範囲の中間付近の第1の範囲の値である場合に、各モジュールに所定のパターンで割り当てられる値に応じて、前記階調値を増加させる補正又は前記階調値を減少させる補正を行い、前記デザインデータ領域以外の領域については、対応する前記変換後ビット列の値が第1の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第1の範囲の最大値よりも小さい場合には、そのモジュールの階調値を前記第1の範囲の最大値よりも大きい値に増加させる補正を行い、前記デザインデータ領域以外の領域に対応する前記変換後ビット列の値が第2の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第1の範囲の最小値よりも大きい場合には、そのモジュールの階調値を前記第1の範囲の最小値よりも小さい値に減少させる補正を行う多階調デザインデータ補正部と、
    前記補正が行われたモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  12. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値が、第1の値として読み取られる範囲の階調値と第2の値として読み取られる範囲の階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    前記デザインデータ領域については前記多階調デザインデータのモジュールごとの階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  13. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値が、第1の値として読み取られる範囲の階調値と第2の値として読み取られる範囲の階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    前記デザインデータ領域以外の領域について、対応する前記変換後ビット列の値が、第1の値である場合には対応する前記多階調デザインデータのモジュールの階調値を増加させる補正を行い、第2の値である場合には対応する前記多階調デザインデータのモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記デザインデータ領域については前記多階調デザインデータのモジュールごとの階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域については前記補正後の階調値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  14. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールごとの階調値が、第1の値として読み取られる範囲の階調値と第2の値として読み取られる範囲の階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    前記デザインデータ領域以外の領域について、対応する前記変換後ビット列の値が第1の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第1の範囲の最大値よりも小さい場合には、そのモジュールの階調値を前記第1の範囲の最大値よりも大きい値に増加させる補正を行い、対応する前記変換後ビット列の値が第2の値であって、対応する前記多階調デザインデータのモジュールの階調値が前記第1の範囲の最小値よりも大きい場合には、そのモジュールの階調値を前記第1の範囲の最小値よりも小さい値に減少させる補正を行う多階調デザインデータ補正部と、
    前記デザインデータ領域については前記多階調デザインデータのモジュールごとの階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域に対応するモジュールのうち、前記補正が行われたモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記補正が行われなかったモジュールについてはそのモジュールの階調値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  15. 請求項1〜14のいずれかにおいて、
    前記デザインデータ領域以外の領域は、前記原データのデータ量に応じた原データ領域、及び前記サイズデータに応じた誤り訂正データ領域、及び2次元コードの読み取りに用いられる機能パターンが配置される領域の少なくとも1つであることを特徴とするプログラム。
  16. コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜1のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
  17. 請求項1〜15のいずれかのプログラムに基づいて機能することを特徴とする2次元コード生成システム。
  18. 請求項1〜1のいずれかのプログラムに基づいて生成したことを特徴とする2次元コード。
  19. 請求項18の2次元コードが印刷されたことを特徴とする印刷物。
  20. 請求項18の2次元コードを画像として表示することを特徴とする画像表示方法。
  21. 請求項18の2次元コードであって、異なる前記多階調デザインデータに基づいて生成した複数の前記2次元コードを連続的に切り替えて画像表示することを特徴とする画像表示方法。
JP2006229561A 2006-08-25 2006-08-25 プログラム、情報記憶媒体、2次元コード生成システム、2次元コード Active JP3957734B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006229561A JP3957734B1 (ja) 2006-08-25 2006-08-25 プログラム、情報記憶媒体、2次元コード生成システム、2次元コード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006229561A JP3957734B1 (ja) 2006-08-25 2006-08-25 プログラム、情報記憶媒体、2次元コード生成システム、2次元コード

Publications (2)

Publication Number Publication Date
JP3957734B1 true JP3957734B1 (ja) 2007-08-15
JP2008052587A JP2008052587A (ja) 2008-03-06

Family

ID=38456446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006229561A Active JP3957734B1 (ja) 2006-08-25 2006-08-25 プログラム、情報記憶媒体、2次元コード生成システム、2次元コード

Country Status (1)

Country Link
JP (1) JP3957734B1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129410A (ja) * 2007-11-28 2009-06-11 Iforcom Co Ltd 二次元コード付き画像情報とその生成装置と印刷装置と読み取り方法と読み取り装置と読み取りプログラムと記録媒体
JP2009163720A (ja) * 2007-12-14 2009-07-23 National Institute Of Advanced Industrial & Technology 二次元コード生成装置
WO2016070789A1 (zh) * 2014-11-06 2016-05-12 邹贵圣 一种动态可识别二维码的显示方法及解码方法
CN110263595A (zh) * 2019-06-25 2019-09-20 北京慧眼智行科技有限公司 一种二维码检测方法及装置
CN110287752A (zh) * 2019-06-25 2019-09-27 北京慧眼智行科技有限公司 一种点阵码检测方法及装置
CN117830604A (zh) * 2024-03-06 2024-04-05 成都睿芯行科技有限公司 一种定位用二维码异常检测方法及介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129410A (ja) * 2007-11-28 2009-06-11 Iforcom Co Ltd 二次元コード付き画像情報とその生成装置と印刷装置と読み取り方法と読み取り装置と読み取りプログラムと記録媒体
JP2009163720A (ja) * 2007-12-14 2009-07-23 National Institute Of Advanced Industrial & Technology 二次元コード生成装置
WO2016070789A1 (zh) * 2014-11-06 2016-05-12 邹贵圣 一种动态可识别二维码的显示方法及解码方法
CN110263595A (zh) * 2019-06-25 2019-09-20 北京慧眼智行科技有限公司 一种二维码检测方法及装置
CN110287752A (zh) * 2019-06-25 2019-09-27 北京慧眼智行科技有限公司 一种点阵码检测方法及装置
CN110287752B (zh) * 2019-06-25 2023-04-14 北京慧眼智行科技有限公司 一种点阵码检测方法及装置
CN117830604A (zh) * 2024-03-06 2024-04-05 成都睿芯行科技有限公司 一种定位用二维码异常检测方法及介质
CN117830604B (zh) * 2024-03-06 2024-05-10 成都睿芯行科技有限公司 一种定位用二维码异常检测方法及介质

Also Published As

Publication number Publication date
JP2008052587A (ja) 2008-03-06

Similar Documents

Publication Publication Date Title
JP3953501B1 (ja) プログラム、情報記憶媒体、2次元コード生成システム、画像生成システム及び2次元コード
CN102577345B (zh) 图像处理设备及其处理方法
JP5057560B2 (ja) プログラム、情報記憶媒体、2次元コード、印刷物、2次元コード画像、2次元コード画像の表示制御方法、2次元コード生成システム
JP3957734B1 (ja) プログラム、情報記憶媒体、2次元コード生成システム、2次元コード
US8830533B2 (en) System and method for creating machine-readable codes in combination with other images such as logos
JP2007241328A (ja) プログラム、情報記憶媒体、2次元コード生成システム、画像生成システム及び印刷物
JP6061075B2 (ja) 二次元コード、二次元コードの生成方法、及び二次元コードの読取方法
TWI646467B (zh) 具有隱匿資料之二維條碼產生方法與系統
JP4341653B2 (ja) 画像処理装置、画像読取装置、画像処理方法及び画像処理プログラム
JP2007026428A (ja) 2次元コード生成方法、読取方法、および実行プログラム
US20030095270A1 (en) Method and apparatus for adaptively binarizing color document images
KR101369394B1 (ko) 화상 처리 장치, 화상 처리 프로그램을 저장하는 컴퓨터 판독 가능한 기록 매체, 및 화상 처리 방법
JP6780350B2 (ja) 画像処理装置
JP3957735B1 (ja) プログラム、情報記憶媒体、2次元コード生成システム、2次元コード
JP4371026B2 (ja) プリントシステムおよびプリンタ
JP2005184685A (ja) 画像処理装置、プログラムおよび記録媒体
JP2007306513A (ja) 画像データの圧縮方法および装置
JP2004110606A (ja) 画像処理装置及び方法並びにプログラム
JP2007241329A (ja) プログラム、情報記憶媒体、2次元コード生成システム、画像生成システム及び印刷物
JP4696738B2 (ja) 画像データの圧縮方法および装置並びに擬似階調画像の復元方法
US20070188812A1 (en) Image processing device, image reading device and image processing method
CN110956568B (zh) 一种半色调图像的分享图像中独立秘密信息隐藏方法
JP5915410B2 (ja) 画像処理装置及びプログラム
JP4973603B2 (ja) 画像処理装置および画像処理プログラム
US7079699B2 (en) Multi-valued image conversion device, multi-valued image conversion program, and multi-valued image conversion method

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070508

R150 Certificate of patent or registration of utility model

Ref document number: 3957734

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110518

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130518

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130518

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140518

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250