(57)【要約】      （修正有）【課題】２次元コードに配置されるモジュールが、任意のデザインを構成して配置されるように２次元コードを生成すること。【解決手段】２次元コードのサイズデータと、２次元コードから読み取られるべき基本アドレスデータと、所与の２値化デザインデータとに応じて任意アドレスデータ領域を特定し、該領域に書き込むべき２値化デザインデータを、２次元コードのフォーマット情報に基づいて逆変換したビットコードを求め、該ビットコードが２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行って任意アドレスデータのビットコードを求める補正処理部と、任意アドレスデータ領域のビットコードと基本アドレスデータのビットコードとを、２次元コードのフォーマット情報に基づいて変換して２次元コードを生成する２次元コード生成部とを含む。【選択図】      図８
2007241329.tif 000002
【特許請求の範囲】
【請求項１】
２次元コードを生成するためのプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき基本アドレスデータと、所与の２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと基本アドレスデータとに基づいて、基本アドレスデータのデータ量に応じた２次元コードの任意アドレスデータ領域を特定する任意アドレスデータ領域特定部と、
前記任意アドレスデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換したビットコードを求める２値化デザインデータ変換部と、
前記逆変換後のビットコードが２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行って任意アドレスデータのビットコードを求める補正処理部と、
前記任意アドレスデータのビットコードと前記基本アドレスデータのビットコードとを、前記２次元コードのフォーマット情報に基づいて変換して２次元コードを生成する２次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記２次元コード生成部が、
前記ビットコードに基づいて、生成される２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部を更に含み、
前記任意アドレスデータ領域特定部が、
前記サイズデータに応じて２次元コードの誤り訂正データ領域を特定し、前記基本アドレスデータに基づいて２次元コードの基本アドレスデータ領域を特定し、前記２次元コードのサイズデータと前記誤り訂正データ領域と前記基本アドレスデータ領域とに基づいて前記任意アドレスデータ領域を特定することを特徴とするプログラム。
【請求項３】
請求項２において、
前記誤り訂正データ生成部が、所与の誤り訂正レベルデータに応じて誤り訂正データを生成し、
前記誤り訂正レベルデータに応じて生成された２次元コードの変更処理を受け付ける２次元コード変更部としてコンピュータを更に機能させることを特徴とするプログラム。
【請求項４】
請求項３において、
前記２次元コード変更部が、
前記訂正可能範囲に応じて、前記補正処理を行ったビットコードを補正処理前のビットコードに変更する処理を行うことを特徴とするプログラム。
【請求項５】
請求項１〜４のいずれかにおいて、
前記２次元コード生成部が、
２次元コードの読み取りに用いられる位置合せパターンを設定する位置合せパターン設定部を更に含み、
前記位置合せパターン設定部は、
前記位置合せパターンの省略処理を受け付けることを特徴とするプログラム。
【請求項６】
請求項１〜５のいずれかにおいて、
前記２値化デザインデータのサイズに応じて２次元コードのサイズを決定するコードサイズ決定部として更にコンピュータを機能させることを特徴とするプログラム。
【請求項７】
２次元コードを生成するためのデータを生成するプログラムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき基本アドレスデータと、所与の２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと基本アドレスデータとに基づいて、基本アドレスデータのデータ量に応じた２次元コードの任意アドレスデータ領域を特定する任意アドレスデータ領域特定部と、
前記任意アドレスデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換したビットコードを求める２値化デザインデータ変換部と、
前記逆変換後のビットコードが２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行って任意アドレスデータのビットコードを求める補正処理部としてコンピュータを機能させることを特徴とするプログラム。
【請求項８】
２次元コードとして読み取られる２次元コード画像を生成するためのプログラムであって、
２次元コードから読み取られるべき基本アドレスデータ画像のデータと、２次元コードの任意アドレスデータ領域に設定される２値化デザイン画像のデータとに基づいて、前記２次元コード画像を生成する画像生成部としてコンピュータを機能させ、
前記画像生成部は、
前記２値化デザイン画像のデータを変化させて前記２次元コード画像を生成することを特徴とするプログラム。
【請求項９】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜８のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１０】
請求項１〜７のいずれかのプログラムにより生成された２次元コードが印刷された印刷物。
【請求項１１】
２次元コード生成システムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき基本アドレスデータと、所与の２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと基本アドレスデータとに基づいて、基本アドレスデータのデータ量に応じた２次元コードの任意アドレスデータ領域を特定する任意アドレスデータ領域特定部と、
前記任意アドレスデータ領域に対応する２値化デザインデータを、２次元コードのフォーマット情報に基づいて逆変換するとともに、逆変換後のビットコードが２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行ってビットコードを求める２値化デザインデータ変換部と、
前記任意アドレスデータ領域のビットコードと前記基本アドレスデータのビットコードとを、前記２次元コードのフォーマット情報に基づいて変換して２次元コードを生成する２次元コード生成部とを含むことを特徴とする２次元コード生成システム。
【請求項１２】
２次元コードとして読み取られる２次元コード画像を生成するための画像生成システムであって、
２次元コードから読み取られるべき基本アドレスデータ画像のデータと、２次元コードの任意アドレスデータ領域に設定される２値化デザイン画像のデータとに基づいて、前記２次元コード画像を生成する画像生成部を含み、
前記画像生成部は、
前記２値化デザイン画像のデータを変化させて前記２次元コード画像を生成することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、２次元コード生成システム、画像生成システム及び印刷物に関する。
【背景技術】
【０００２】
従来より、所定のフォーマット情報に基づいて、データを示すモジュールを２次元に配置した２次元コードが知られている。この２次元コードでは、１次元コードに比して狭い領域で多くのデータを読み取らせることができる。このような従来の技術として、例えば特許第２９３８３３８号公報に開示されるものがある。
【０００３】
そして、２次元コードを生成する場合には、例えばＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）やメールアドレス等のネットワークアドレス情報を２次元コードから読み取らせるデータとして設定することが多い。
【特許文献１】特許第２９３８３３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
かかる２次元コードでは、読み取られるべきネットワークアドレスデータのビット列について、２次元コードのフォーマット情報に基づいて変換処理を行い、２次元コードのフォーマット情報に基づいて２次元コード上にモジュールパターンを配置するため、読み取られるべきネットワークアドレスデータの文字列に応じてモジュールパターンの構成が定まってしまう。従って、生成される２次元コードのモジュールパターンの構成に特徴を持たせて他の２次元コードと差別化をはかることができなかった。
【０００５】
そこで本発明は、読み取られるべきネットワークアドレスデータに応じて配置されるモジュールが、任意のデザインを構成して配置されるように２次元コードを生成することができるプログラム、情報記憶媒体、生成された２次元コードの画像を生成する画像生成システム及び印刷物を提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、２次元コードを生成するためのシステムであって、
２次元コードのサイズデータと、２次元コードから読み取られるべき基本アドレスデータと、所与の２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと基本アドレスデータとに基づいて、基本アドレスデータのデータ量に応じた２次元コードの任意アドレスデータ領域を特定する任意アドレスデータ領域特定部と、
前記任意アドレスデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換したビットコードを求める２値化デザインデータ変換部と、
前記逆変換後のビットコードが２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行って任意アドレスデータのビットコードを求める補正処理部と、
前記任意アドレスデータのビットコードと前記基本アドレスデータのビットコードとを、前記２次元コードのフォーマット情報に基づいて変換して２次元コードを生成する２次元コード生成部とを含む２次元コード生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。また本発明は、上記２次元コード生成システム、プログラム、情報記憶媒体を用いて生成された２次元コードが印刷された印刷物に関係する。
【０００７】
本発明では、所与の２値化デザインデータを逆変換し、逆変換後のビットコードに必要に応じてビットコードの補正処理を行って求めた任意アドレスデータのビットコードに基づき２次元コードを生成することにより、２次元コードに２値化デザインを構成することができる。そして、生成された２次元コードからは、基本アドレスデータとともに、構成された２値化デザインデータから任意アドレスデータが読み取られる。従って、２次元コードにデザインパターンを構成しつつ、本システム利用者が２次元コードシンボルを介して伝達しようとする情報であるネットワークアドレスデータを２次元コードの読取装置に読み取らせることができる。
【０００８】
即ち、例えばＵＲＬの場合では、最初のスラッシュマークより前方部分（例えば「ｗｗｗ．ｎａｍｃｏ．ｃｏ．ｊｐ／」）の基本アドレスデータは、ネットワークアドレスのフォーマットに従った文字列にする必要があるが、それより後方部分のアドレスデータは任意の文字列とすることができる。そこで、基本アドレスデータ以外の任意アドレスデータを、本発明で求めた逆変換後のビットコードにより読み取られる文字列とする。ここで、逆変換後のビットコードについては、２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するように補正処理がなされているので、逆変換後のビットコードに基づいて構成された２値化デザインパターンから任意アドレスデータを読み取らせることができる。
【０００９】
なお、任意アドレスデータは、２次元コード上で所与の２値化デザインを構成するように求められるものであるから、意味を成さない文字列かつ冗長なデータとなる場合がある。従って、通常のネットワークアドレスデータとしては使い勝手の悪いものとなる場合があるが、例えば当該アドレスのページを、利用者にアクセスさせたいアドレスのページにリンクする中継ページとして用いる等すればよい。
【００１０】
このように、本発明によれば、人目を引き付けることができる２値化デザインパターンが構成された２次元コードを、通常の２次元コードの生成手順に従って簡易に生成することができる。しかも、生成された２次元コードは２値化デザインが構成されていても、補正処理を行なった上で通常の２次元コードの生成手順に従って生成されているので、２次元コードを読取装置により正確に読み取らせることができる。
【００１１】
（２）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
前記２次元コード生成部が、
前記ビットコードに基づいて、生成される２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部を更に含み、
前記任意アドレスデータ領域特定部が、
前記サイズデータに応じて２次元コードの誤り訂正データ領域を特定し、前記基本アドレスデータに基づいて２次元コードの基本アドレスデータ領域を特定し、前記２次元コードのサイズデータと前記誤り訂正データ領域と前記基本アドレスデータ領域とに基づいて前記任意アドレスデータ領域を特定するようにしてもよい。
【００１２】
本発明によれば、誤り訂正データ領域と基本アドレスデータ領域とから、２値化デザインが施される任意アドレスデータ領域を特定して、任意アドレスデータ領域の２値化デザインデータを抽出することができる。
【００１３】
（３）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
前記誤り訂正データ生成部が、所与の誤り訂正レベルデータに応じて誤り訂正データを生成し、
前記誤り訂正レベルデータに応じて生成された２次元コードの変更処理を受け付ける２次元コード変更部を更に含むようにしてもよい。
【００１４】
本発明によれば、誤り訂正アルゴリズムの復元能力の範囲内で、生成された２次元コードの変更を行うことができる。例えば、誤り訂正データ領域に配置される２次元コードモジュールを変更して、誤り訂正データ領域の一部をもデザイン領域とすることができる。
【００１５】
（４）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
前記２次元コード変更部が、
前記訂正可能範囲に応じて、前記補正処理を行ったビットコードを補正処理前のビットコードに変更する処理を行うようにしてもよい。
【００１６】
本発明によれば、補正処理により変更されたデザインデータを、元のデザインを構成するデザインデータに再変更ことができる。そして、この再変更は誤り訂正データの訂正可能範囲内で行われるので、読み取りの正確性は誤り訂正データにより担保することができる。従って、所与の２値化デザインデータの一部が２次元コードのフォーマットに反するものである場合でも、２次元コードに構成されるデザインを維持することができる。
【００１７】
（５）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
前記２次元コード生成部が、
２次元コードの読み取りに用いられる位置合せパターンを設定する位置合せパターン設定部を更に含み、
前記位置合せパターン設定部は、
前記位置合せパターンの省略処理を受け付けるようにしてもよい。
【００１８】
本発明によれば、位置合せパターンの配置を省略することにより、任意アドレスデータ領域に構成されるデザインパターンの自由度を飛躍的に上げるとともに、構成されたデザインパターンをより美しく見せることができる。
【００１９】
（６）また本発明に係る２次元コード生成システム、プログラム及び情報記憶媒体では、
前記２値化デザインデータのサイズに応じて２次元コードのサイズを決定するコードサイズ決定部を更に含むようにしてもよい。
【００２０】
本発明によれば、２値化デザインデータのサイズに応じて、２値化デザインパターンを収めることができる２次元コードのサイズを自動的に決定することができる。
【００２１】
（７）また２次元コードを生成するためのデータを生成するシステム、プログラム及び情報記憶媒体では、
２次元コードのサイズデータと、２次元コードから読み取られるべき基本アドレスデータと、所与の２値化デザインデータとを取得するデータ取得部と、
前記サイズデータと基本アドレスデータとに基づいて、基本アドレスデータのデータ量に応じた２次元コードの任意アドレスデータ領域を特定する任意アドレスデータ領域特定部と、
前記任意アドレスデータ領域に対応する２値化デザインデータを２次元コードのフォーマット情報に基づいて逆変換したビットコードを求める２値化デザインデータ変換部と、
前記逆変換後のビットコードが２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行って任意アドレスデータのビットコードを求める補正処理部を含むようにしてもよい。
【００２２】
本発明によれば、２値化デザインパターンが構成された２次元コードを生成することができるデータを生成することができる。そして、生成された２次元コードを生成するためのデータには、基本アドレスデータと任意アドレスデータとが含まれている。従って、本発明により生成したデータに基づいて２次元コードを生成すれば、２次元コードにデザインパターンを構成しつつ、本システム利用者が２次元コードシンボルを介して伝達しようとする情報であるネットワークアドレスデータを２次元コードの読取装置に読み取らせることができる。
【００２３】
このように、本発明によれば、人目を引き付けることができる２値化デザインパターンが構成された２次元コードを、通常の２次元コードの生成手順に従って簡易に生成することができる。しかも、生成された２次元コードは２値化デザインが構成されていても、補正処理を行なった上で通常の２次元コードの生成手順に従って生成されているので、２次元コードを読取装置により正確に読み取らせることができる。
【００２４】
（８）また２次元コードとして読み取られる２次元コード画像を生成するシステム、プログラム及び情報記憶媒体では、
２次元コードから読み取られるべき基本アドレスデータ画像のデータと、２次元コードの任意アドレスデータ領域に設定される２値化デザイン画像のデータとに基づいて、前記２次元コード画像を生成する画像生成部を含み、
前記画像生成部は、
前記２値化デザイン画像のデータを変化させて前記２次元コード画像を生成するようにしてもよい。
【００２５】
本発明によれば、２次元コード画像の２値化デザインパターンを変化させて、２次元コードに人目をより一層引き付けることにより、当該２次元コードの利用度を大幅に増加させることができる。
【発明を実施するための最良の形態】
【００２６】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２７】
１．２次元コードの構造
図１に、本実施の形態の２次元コード生成システムで生成される２次元コードシンボルの構造の例を示す。本実施の形態では、２次元コードとしてＱＲコード（株式会社デンソーウェーブの登録商標）を用いた例を示すが、本実施の形態により生成できる２次元コードはＱＲコードに限らない。
【００２８】
図１に示すように、本実施の形態の２次元コードシンボル１０は、正方形のモジュールを縦横に４５個正方形に配列して構成されている。このシンボル１０には、シンボル１０からデータを読み取る際に用いられる位置検出パターン１２と位置合せパターン１３とタイミングパターン１４とが配置されている。そして、位置検出パターン１２と位置合せパターン１３とタイミングパターン１４とが配置されている領域以外の領域として、シンボル１０から読み取られるべきデータのモジュールパターン（符号化パターン）が配置される符号化領域１６が設けられている。
【００２９】
この符号化領域１６には、シンボル１０の型番情報（サイズ情報）の符号化パターンが配置される型番領域１８と、シンボル１０の形式情報（誤り訂正レベル情報、マスク処理パターンに関する情報）の符号化パターンが配置される形式領域２０と、本実施の形態のシステムの利用者が任意に入力可能な原データの符号化パターンが配置されるデータ領域２２とが含まれる。
【００３０】
２．２次元コードの生成処理
図２に、本実施の形態の２次元コード生成システムの処理の流れの一例を示す。まず、ステップＳ１において、２次元コードを生成するための各種データを取得する。
【００３１】
図３に、このデータ取得処理の詳細を示す。まず、ステップＳ２において、入力部への入力情報に基づき、システムの利用者が所望するシンボルの型番情報と形式情報とを取得する。ここで、型番情報には、シンボル１０の大きさを特定するサイズ情報（１〜４０）が含まれている。本実施の形態では、サイズ情報によりシンボル１０を構成するモジュールの数とその配置を特定することができる。また、形式情報には、生成されるシンボルの読み取り誤りを訂正するための誤り訂正アルゴリズムの種類を特定する誤り訂正レベル情報が含まれる。本実施の形態では、誤り訂正レベルがＬ、Ｍ、Ｑ、Ｈの４段階用意されており、誤り訂正レベルに応じて誤り訂正の精度が異なる。
【００３２】
そして、ステップＳ４において、本システム利用者が２次元コードシンボルを介して伝達しようとする情報である原データの文字列を取得する。この原データとしては、例えばＵＲＬやメールアドレス等のネットワークアドレス情報や、種々の管理情報、識別情報、暗号化情報等が入力される。すると、ステップＳ６において、取得した原データの文字列を２次元コードのフォーマット情報に基づいて変換し、原データのビット列を生成する。そして、原データのビット列の最後に、データを示すビット列の終了に使用するエンドパターンのビット列を挿入する。このエンドパターンは、２次元コードを読み取った場合に、エンドパターン以降の符号化パターンについては情報として出力する必要がないことを示すものである。
【００３３】
そして、図２のステップＳ１０において、エンドパターンを含む原データのビット列を２次元コードのフォーマット情報に基づいて８ビットコード語（データコード語）に分割する。すると、ステップＳ１２において、取得したサイズ情報、誤り訂正レベル情報に基づき、当該サイズ、誤り訂正レベルが要求するデータコード語数を満たすか否かを判断する。
【００３４】
ここで、要求するデータコード語数を満たさないと判断すると（ステップＳ１２のＮ）、即ち２次元コードのサイズに対して原データのデータ量が少ないと、ステップＳ１４において、データコード語列の後に埋め草コード語を付加する。この埋め草コード語とは、２次元コードのサイズに対して原データのデータ量が少ない場合に、原データを示す符号化パターン以降の符号化領域１６が例えば空白（明モジュールのみ）となると、２次元コードの読み取りに支障があることを考慮して付加されるものである。本実施の形態では、２次元コードのフォーマットに基づいて、データが空であることを示す所定の符号化パターンが繰返し付加される。
【００３５】
一方、要求するデータコード語数を満たすと判断すると（ステップＳ１２のＹ）、埋め草コード語は付加せずに、ステップＳ１６において、データコード語列を誤り訂正用のブロック数に分割し、ステップＳ１８において、各ブロックに対して誤り訂正コード語を生成する。この誤り訂正コード語とは、２次元コードの読み取り誤りを訂正するための誤り訂正アルゴリズムに用いられる情報の符号化パターンを生成するための所定のビット列単位である。そして、ステップＳ２０において、データコード語列の後に誤り訂正コード語を付加する。
【００３６】
そして、ステップＳ２２において、２次元コードのフォーマット情報に従って各ブロックのデータコード語・誤り訂正コード語をインターリーブにし、必要に応じて残余ビットを付加し、ステップＳ２４において、２次元コードのフォーマット情報に基づいてマトリックスに、位置検出パターン１２、位置合せパターン１３、タイミングパターン１４、コード語列に対応させた暗（黒）モジュールと明（白）モジュールとを配置する。
【００３７】
そして、ステップＳ２６において、シンボル１０の符号化領域１６にマスク処理パターンを適用する。このマスク処理は、ステップＳ２４において符号化領域１６に配置された暗（黒）モジュールと明（白）モジュールとが、バランスよく配置されるようにするための処理である。そして、ステップＳ２８において、ステップＳ２で取得した型番情報の符号化パターンを型番領域１８に配置し、形式情報の符号化パターンを形式領域２０に配置し、シンボル１０を完成する。
【００３８】
図４に、このようにして生成された２次元コードシンボルの一例を示す。本実施の形態では、各コード語列に対応させた暗（黒）モジュールと明（白）モジュールの配置は、図４に示すシンボル１０の右下隅から開始し、上方向、下方向を交互に操作し、右から左へ配置する。ここで、各コード語列は、原データとそのエンドパターンを示すデータコード語、埋め草コード語、誤り訂正コード語の順に配列されている。従って、シンボル１０の符号化領域１６には、図４に示すように、原データの符号化パターンが配置された原データ領域３０と、埋め草データの符号化パターンが配置された不使用データ領域３２と、誤り訂正コードの符号化パターンが配置された誤り訂正コード領域３４とが形成される。
【００３９】
３．デザインデータ処理
かかる２次元コードは、例えばＵＲＬやメールアドレス等のネットワークアドレス情報を、２次元コードから読み取らせる原データとして設定することが多い。例えば、カメラ付きの情報端末等によって２次元コードからネットワークアドレスデータを読み取れば、情報端末にネットワークアドレスを手入力しなくても当該アドレスにアクセスすることができる。
【００４０】
しかし、ネットワークアドレス情報を原データとして２次元コードを生成した場合には、一般的なネットワークアドレス情報のデータ量に比して２次元コードのデータ容量は十分に大きい。従って２次元コードでは、シンボル１０の符号化領域１６に、単にデータが空であることを示す不使用データ領域３２が発生することが多い。
【００４１】
一方、ネットワークアドレス情報とは、ネットワークアドレスのフォーマットに従った文字列にする必要がある基本アドレスデータと、任意の文字列とすることができる任意アドレスデータとから構成される。例えばＵＲＬならば最初のスラッシュマークより前方部分の文字列（例えば「ｗｗｗ．ｎａｍｃｏ．ｃｏ．ｊｐ／」等）を、メールアドレスならばアットマーク以降の文字列（例えば「＠ｎａｍｃｏ．ｃｏ．ｊｐ」等）を、基本アドレスデータとしてネットワークアドレスのフォーマットに従った文字列にする必要がある。しかし、その他のアドレスデータはネットワークアドレス取得時に任意の文字列に定めることができる。
【００４２】
そこで、本実施の形態では、モジュールパターンの配置が定まってしまう基本アドレスデータ以外の任意アドレスデータのビット列を、モジュールパターンが２次元コード上で所与の２値化デザインを構成するように生成し、これに基づいて２次元コードシンボル２０を生成する。
【００４３】
即ち、不使用データ領域３２となってしまう領域を、任意アドレスデータのモジュールパターンが配置される任意アドレスデータ領域３１として利用して、任意アドレスデータ領域３１の暗（黒）モジュールと明（白）モジュールの配置（パターン）が、所与のデザインを構成する任意アドレスデータのビット列を生成し、これを基本アドレスデータのビット列の後に付加してネットワークアドレスデータのビット列を生成する。そのため、本実施の形態では、図２のステップＳ１のデータ取得処理において、本実施の形態に特徴的なデザインデータ処理を行う。
【００４４】
３−１．２値化デザインデータ取得処理
図５に、デザインデータ処理の流れの一例を示す。まず、図３のステップＳ６までにおいて、サイズ情報・誤り訂正レベル情報・基本アドレスデータを取得して（ステップＳ２、ステップＳ４）、２次元コードのフォーマット情報に基づいて基本アドレスデータのビット列を生成する（ステップＳ６）。
【００４５】
ここで、従来の２次元コードの生成過程では、基本アドレスデータのビット列の最後にデータを示すビット列の終了に使用するエンドパターンのビット列を挿入していたが、本実施の形態では、任意アドレスデータ領域３１で各モジュールが所与のデザインを構成するような任意アドレスデータのビット列を基本アドレスデータの後に付加するため、基本アドレスデータのビット列の最後にはエンドパターンは挿入しない。
【００４６】
そして、図５のステップＳ４０において、２次元コードのマトリックスに対応付けられた所与の２値化デザインパターンを、任意アドレスデータ領域３１の任意アドレスデータとして取得して、２値化デザインパターンのビット列（２値化デザインデータ）を生成する。
【００４７】
本実施の形態では、２値化デザインパターンを取得するために、まずシステムの利用者に２次元コードのフォーマットに基づくマトリックス上で、各モジュールを暗（黒）モジュールと明（白）モジュールのいずれか一方に設定させ、２値化デザインパターン（絵、文字、記号、模様等）を構成させる。そして、取得した２値化デザインパターンを２次元コードのマトリックス（各モジュール）に対応付け、２次元コードのフォーマットに応じた２値化デザインパターンのビット列（任意アドレスデータのビット列）を生成する。
【００４８】
図６（Ａ）は、システムの利用者に２値化デザインパターンを構成させるために表示部に表示する表示画面の一例である。本実施の形態では、図４に示すように基本アドレスデータ領域３０がサイズ情報と基本アドレスデータのデータ量に応じて定まり、誤り訂正データ領域３４がサイズ情報に応じて定まる。よって、サイズ情報と基本アドレスデータのビット列に基づいて基本アドレスデータ領域３０を特定し、サイズ情報に基づいて誤り訂正データ領域３４を特定し、サイズ情報と基本アドレスデータ領域３０と誤り訂正データ領域３４とに基づいて、不使用データ領域３２をデザイン領域となる任意アドレスデータ領域３１として特定することができる。従って、図６（Ａ）に示すように、２次元コードシンボル１０を任意アドレスデータ領域３１が空白となるように表示することができる。
【００４９】
図６（Ｂ）は、利用者が構成した２値化デザインパターンの一例である。図６（Ｂ）の例は、図６（Ａ）に示す２次元コードシンボル１０を表示部に表示し、利用者に任意アドレスデータ領域３１の各モジュールを暗（黒）モジュールと明（白）モジュールのいずれか一方に設定させて、２値化デザインパターンを構成させたものである。従って、図６（Ｂ）の例では、利用者が各モジュールを暗（黒）モジュールと明（白）モジュールのいずれか一方に設定すると、構成させた２値化デザインパターンをそのまま任意アドレスデータ領域３１の各モジュールに対応付けて、２値化デザインパターンのビット列を生成することができる。
【００５０】
３−２．２値化デザインデータ逆変換処理と判定処理
しかし、本実施の形態では、図２のステップＳ２６のように、２次元コードを生成する際にマスクパターンとコード語モジュールパターンとでＸＯＲ演算による変換を行う。従って、２次元コードの任意アドレスデータ領域３１で所与のデザインを構成する２値化デザインパターンのビット列を生成しても、そのままではマスクパターンとのＸＯＲ演算により、２値化デザインパターンのビット列が２次元コード上でデザインを構成しないビット列に変換されてしまう。
【００５１】
そこで、本実施の形態では、２次元コードを生成する際にマスクパターンとのＸＯＲ演算を行うと２値化デザインパターンのビット列に戻るように、生成した２値化デザインパターンのビット列を予め逆変換しておく。即ち、本実施の形態では、図２のステップＳ２６でマスクパターンが適用される前に、予め２値化デザインパターンとマスクパターンとでＸＯＲ演算による変換を行う。そして、得られた２値化デザインパターンの逆変換ビット列を２次元コードの任意アドレスデータ領域３１のデータとして扱って、図２のステップＳ２６でマスクパターンを適用すると、任意アドレスデータ領域３１で所与のデザインを構成するモジュールパターンとすることができる。
【００５２】
更に、２値化デザインパターンの逆変換ビット列を２次元コードの任意アドレスデータ領域３１のデータとして扱うためには、逆変換ビット列が、２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するビット列である必要がある。しかし、２値化デザインパターンのビット列については、モジュールパターンが所与のデザインを構成するように生成したものであるから、基本アドレスデータのように通常の文字列を変換したビット列と異なり、２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合しない場合がある。すると、逆変換ビット列を生成してもそれを用いて２次元コードを生成できない場合がある。そこで、本実施の形態では、逆変換ビット列が２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合であるビット列については補正処理を行う。
【００５３】
より詳細には、図５のステップＳ４２において、サイズ情報、誤り訂正レベル情報、基本アドレスデータのビット列に基づき、任意アドレスデータ領域３１を特定し、ステップＳ４４において、任意アドレスデータ領域３１に該当する２値化デザインパターンのビット列を抽出する。そして、ステップＳ４６において、抽出した２値化デザインパターンのビット列即ち任意アドレスデータのビット列が、入力データとして何組分あるかを求める。つまり、本実施の形態の２次元コード生成システムが、取得した入力データをビット列に変換する際の分割単位に、任意アドレスデータのビット列を分割し、その数をＮとする。そして、Ｎ個の分割単位のビット列ごとに、マスクパターンによる逆変換処理を行い、逆変換処理後のビット列が２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定する。
【００５４】
そこで、まずステップＳ４８において分割単位数のカウンタをｉ＝０にセットし、ステップＳ５０においてｉ＝Ｎとなったか判断し、カウンタがＮでない場合には（ステップＳ５０のＮ）、ステップＳ５２において、ｉ組目の任意アドレスデータのビット列と、対応するマスクパターンとのＸＯＲ処理を行い、ｉ組目の逆変換ビット列を生成する。そして、ステップＳ５４において、ｉ組目の逆変換ビット列が２次元コード及びネットワークアドレスのフォーマットを満たしているか否か判定する。本実施の形態では、２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するビット列、或いは２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合しないビット列を予め記憶部に記憶しておき、比較判定を行う。
【００５５】
そして、適合すると判定した場合には（ステップＳ５４のＹ）、ステップＳ５８において、当該逆変換ビット列をバッファに格納する。一方、不適合と判定した場合には（ステップＳ５４のＮ）、ステップＳ５６において、当該逆変換ビット列の一部を２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するように補正する補正処理を行ってから補正処理後の逆変換ビット列をバッファに格納する。なお、ステップＳ５６において逆変換ビット列の一部のビットを変更してからステップＳ５４に戻り、適合と判定する（ステップＳ５４のＹ）までステップＳ５４とステップＳ５６の処理をループさせてもよい。
【００５６】
そして、ステップＳ６０でｉ＝ｉ＋１としてカウンタをインクリメントした上でステップＳ５０に戻り、ｉ＝Ｎとなるまで即ち全ての組の任意アドレスデータのビット列について逆変換処理と判定処理を行うまで、ステップＳ５０からステップＳ６０までの処理を繰り返す。
【００５７】
図７は、図６（Ｂ）の例から抽出した２値化デザインパターン４０と、マスクパターン４２とでＸＯＲ演算による変換を行って得られる逆変換モジュールパターン４４の例である。図７に示すように、本実施の形態では、２値化デザインパターン４０とマスクパターン４２とで対応するモジュールが、同種のモジュールである場合には当該モジュールを暗（黒）モジュールとし（０＋０＝１、１＋１＝１）、異種のモジュールである場合には当該モジュールを明（白）モジュールとする（０＋１＝０、１＋０＝０）。
【００５８】
従って、ＸＯＲ演算による変換を行って得られる逆変換モジュールパターン４４はデザインを構成しないものとなるが、２次元コードを生成する際に再びマスクパターンとのＸＯＲ演算を行うことにより２値化デザインパターンに戻るものである。こうして、任意アドレスデータ領域３１に対応する２値化デザインパターンのビット列（任意アドレスデータのビット列）をマスクパターンで逆変換した逆変換ビット列を生成する。なお、マスクパターン４２の４隅などのグレーの部分、即ち生成される２次元コードの位置検出パターン１２と位置合せパターン１３とタイミングパターン１４とに対応する領域４６には、マスク処理を適用しないようになっている。
【００５９】
こうして、全ての組の任意アドレスデータのビット列について逆変換処理と判定処理を行うと、即ち図５のステップＳ５０においてｉ＝Ｎとなると（ステップＳ５０のＹ）、図２のステップＳ１０以降において、図３のステップＳ６で生成された基本アドレスデータのビット列と、生成された２値化デザインパターンの逆変換ビット列とをデータコード語に分割し、ステップＳ１２において、得られたデータコード語列がデータコード語数を満たすか否かを判断する。
【００６０】
ここで、２値化デザインパターンの逆変換ビット列は、任意アドレスデータ領域３１のモジュール全てを含んでいる。よって、基本アドレスデータのビット列と逆変換ビット列とからなるデータコード語列は、ステップＳ１２において、データコード語数を満たすと判断される（ステップＳ１２のＹ）。従って、ステップＳ１４で埋め草コード語は付加されず、そのままステップＳ１６〜ステップＳ２４までの２次元コードのフォーマットに基づく処理が行われる。すると、図８の左側のモジュールパターン５４のように、位置検出パターン１２等が配置され、基本アドレスデータのモジュールパターン４８と逆変換モジュールパターン４４と、それらに対応する誤り訂正コードパターン５０とを含むマスク前パターン５２が生成される。
【００６１】
そして、ステップＳ２６において、マスク前パターン５２にマスク処理パターンを適用すると、２値化デザインパターンの逆変換ビット列が変換されて、元の２値化デザインパターンのビット列に戻る。即ち、図８に示すように、マスク前パターン５２と、マスクパターン４２とでＸＯＲ演算による変換を行うことにより、任意アドレスデータ領域３１に２値化デザインパターン４０が構成されたデザイン２次元コードシンボル５４を生成することができる。
【００６２】
こうして、本実施の形態によれば、逆変換モジュールパターン４４を生成しておくことにより、その後は通常の２次元コードの生成手順に従って、２値化デザインパターン４０が構成された２次元コードシンボル５４を生成することができる。そして、２値化デザインパターン４０が構成された２次元コードシンボル５４のうち、基本アドレスデータ領域３０には基本アドレスデータのモジュールパターン４８が配置され、任意アドレスデータ領域３１には２値化デザインパターン４０として任意アドレスデータのモジュールパターンが配置されているので、２次元コードの読取装置がこの２次元コード５４を読み取ると、本システム利用者が２次元コードシンボルを介して伝達しようとする情報であるネットワークアドレスデータを読み取らせることができる。
【００６３】
図１１は、基本アドレスデータのビット列と任意アドレスデータのビット列を、２次元コードの読取装置で文字列に変換して出力した表示画面Ｍの例である。図１１の例では、基本アドレスデータの文字列ＡＤの後に任意アドレスデータの文字列ＤＤが続き、全体としてＵＲＬを構成する文字列となる。
【００６４】
このように、本実施の形態によれば、人目を引き付けることができる２値化デザインパターンが構成された２次元コードを、通常の２次元コードの生成手順に従って簡易に生成することができる。しかも、生成された２次元コードは２値化デザインが構成されていても、補正処理を行なった上で通常の２次元コードの生成手順に従って生成されているので、２次元コードを読取装置により正確に読み取らせることができる。
【００６５】
なお、図５のステップＳ４４において、基本アドレスデータ領域３０に該当する基本アドレスデータのビット列も合わせて抽出し、基本アドレスデータのビット列及び２値化デザインパターンのビット列と、マスクパターンとでＸＯＲ演算による変換を行ってもよい。即ち、少なくとも任意アドレスデータ領域３１に該当する２値化デザインパターンのビット列について、逆変換がなされていればよい。
【００６６】
また、本実施の形態では、２次元コードを生成する際のマスクパターンによる変換処理を考慮して逆変換を行う例を挙げて説明したが、取得した２値化デザインパターンのビット列に対して２次元コードを生成する際に他の変換処理が行われる場合には、その変換処理を行うと２値化デザインパターンのビット列に戻るように、生成した２値化デザインパターンのビット列を予め逆変換しておく。ここで、逆変換とは、２次元コードを生成する際の変換処理により２値化デザインパターンのビット列に戻るようなビット列に、２値化デザインパターンのビット列を変換する処理をいう。例えば本実施の形態では、逆変換処理と、２次元コードを生成する際の変換処理とが、ともにＸＯＲ演算であって同一の変換処理となるものであるが、かかる場合も逆変換の概念に含まれる。
【００６７】
なお、図２のステップＳ２６のマスク処理において、複数種類のマスクパターンが適用され、所定の評価関数に基づいて最もバランスよくモジュールが配置されるマスクパターンが選択される場合には、図３のステップＳ２において、マスク処理で適用させるマスクパターンを指定するマスクパターン情報を取得し、当該マスクパターンで図５のステップＳ４６の逆変換処理と、図２のステップＳ２６の変換処理とを行うようにしてもよい。
【００６８】
３−３．ネットワークアドレス情報の種類に応じた適用例
本実施の形態の２次元コードでは、入力データをモジュールとして２次元コードに配置する際には、上述のとおり、図４に示す２次元コードシンボル１０の右下隅から、入力データのビット列に対応するモジュールを配置していく。従って、２次元コードから読み取られるべきネットワークアドレスデータの種類によって、基本アドレスデータ領域３０とすべき領域と任意アドレスデータ領域３１とすべき領域との位置関係が異なる。
【００６９】
例えば、ＵＲＬのように文字列の前方部分（例えば「ｗｗｗ．ｎａｍｃｏ．ｃｏ．ｊｐ／」）が基本アドレスデータとなるネットワークアドレスデータの場合には、図６（Ａ）に示すように、シンボル１０の図中右端部が基本アドレスデータ領域３０となり、中央部が任意アドレスデータ領域３１となり、左端部が誤り訂正データ領域３４となる。一方、メールアドレスのように文字列のアットマーク以降の後方部分（「＠ｎａｍｃｏ．ｃｏ．ｊｐ」等）が基本アドレスデータとなるネットワークアドレスデータの場合には、図１２に示すように、シンボル１０の図中右側部が任意アドレスデータ領域３１となり、左端部が誤り訂正データ領域３４となり、任意アドレスデータ領域３１と誤り訂正データ領域３４の間が基本アドレスデータ領域３０となる。
【００７０】
そこで、本実施の形態では、図６（Ａ）に示すような、システムの利用者に２値化デザインパターンを構成させるために表示部に表示する表示画面を、２次元コードから読み取られるべきネットワークアドレスデータの種類に応じて変化させている。即ち、ＵＲＬの場合には、図６（Ａ）に示すシンボル１０を表示画面に表示し、メールアドレスの場合には、図１２（Ａ）に示すシンボル１０を表示画面に表示し、利用者に任意アドレスデータ領域３１に所与の２値化デザインを構成させる。
【００７１】
そして、得られた２値化デザインデータのビット列について図５の各処理を行い、２値化デザインパターンの逆変換ビット列を生成する。ここで、ＵＲＬの場合には、基本アドレスデータのビット列の後に逆変換ビット列を付加していたが、メールアドレスデータの場合では、逆変換ビット列の後に基本アドレスデータのビット列を付加する。
【００７２】
図１２（Ｂ）は、任意アドレスデータのビット列の後に基本アドレスデータのビット列が付加されたビット列を、２次元コードの読取装置で文字列に変換して出力した表示画面Ｍの例である。図１２（Ｂ）の例では、任意アドレスデータの文字列ＤＤの後に基本アドレスデータの文字列ＡＤが続き、全体としてメールアドレスを構成する文字列となる。
【００７３】
こうして、本実施の形態では、ネットワークアドレス情報の種類、即ち、ネットワークアドレスデータのビット列における基本アドレスデータのビット列と任意アドレスデータのビット列の配列関係に応じて、２値化デザインを構成させるために表示するシンボル１０の種類、任意アドレスデータ領域３１を特定する処理・抽出する処理、ネットワークアドレスデータ全体のビット列を構成する際の基本アドレスデータのビット列と任意アドレスデータのビット列の組み合わせ処理を変更している。
【００７４】
４．符号化パターンの変更処理
本実施の形態の２次元コードでは、誤り訂正コード領域３４に配置された誤り訂正コードパターンにより、符号化領域１６の符号化パターンを２次元コードの読み取り装置で読み取る際の読み誤りを訂正することができる。例えば、誤り訂正レベルがＬの場合には復元能力は７パーセントとされ、おおよそ１００個のモジュールのうち７個のモジュールが汚れ等で誤ったパターンとして読み取られたとしても、元の正しいモジュールパターンに復元することができる。
【００７５】
そこで、本実施の形態では、上述のようにして生成された２次元コードの誤り訂正レベル情報に応じて、生成された２次元コードの変更処理を受け付ける。具体的には、図９（Ａ）に示すように、本実施の形態で生成された所与の２値化デザインパターンが配置された２次元コードシンボル１０を表示部に表示する。そして、システムの利用者からいずれかのモジュールの変更設定を受け付ける。なお、図９（Ａ）〜（Ｃ）のシンボル１０は、図６で表示したシンボル１０を反時計回りに９０度回転させて表示したものである。
【００７６】
例えば、図９（Ａ）の例では、海に浮かぶ島に人が立っている様子がデザインされているが、誤り訂正コード領域３４（メールアドレスの場合は基本アドレスデータ領域３０）のモジュールパターンにより島の輪郭が明確でない。そこで、本実施の形態によればモジュールの変更設定を受け付けて、図９（Ｂ）に示すように、誤り訂正コード領域３４の一部の領域６０の暗（黒）モジュールを一部削除し、島の輪郭を明確化させることができる。このように、本実施の形態では、誤り訂正データ領域３４（基本アドレスデータ領域３０）の一部をもデザイン領域とすることができる。
【００７７】
そして、変更設定されたモジュールに対応するビット列のビットも変更する。このとき、設定されている誤り訂正レベル情報とサイズ情報とに応じて、変更設定を受け付けるモジュール数を制限する。
【００７８】
例えば、誤り訂正レベル情報が「Ｍ」（復元能力は１５パーセント）であって、サイズ情報が７型（データビット数は１２４８）である場合には、例えば１００個までのモジュールの変更設定を受け付ける。また、誤り訂正レベル情報が「Ｈ」（復元能力は３０パーセント）であって、サイズ情報が１５型（データビット数は１７８４）である場合には、例えば３００個までのモジュールの変更設定を受け付ける。
【００７９】
また、本実施の形態では、任意アドレスデータの逆変換ビット列が２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合であるビット列については補正処理を行っているので（図５のステップＳ５６）、システムの利用者が入力した２値化デザインパターンが変更されて２次元コードが生成される場合がある。例えば、図９（Ａ）の例では、島に立っている人の右手付近のモジュール６２が補正されてデザインパターンが変更されている。そこで、本実施の形態では、かかる場合に２次元コードの誤り訂正レベル情報に応じてモジュールの変更設定を受け付ける。そして、図９（Ａ）のモジュール６２を、図９（Ｂ）のモジュール６４のようにして、暗（黒）モジュールと明（白）モジュールとを入れ替えて補正処理前のビット列に戻す。こうして、補正処理が行われたデザインパターンを利用者が入力した２値化デザインパターンに修正することができる。そして、かかる変更設定を行ったとしても、変更設定前のビット列に対して誤り訂正コードが生成されているので、読み取りの正確性は誤り訂正データにより担保することができる。
【００８０】
また、このような補正処理を行ったビットを補正処理前のビットに変更する処理をアルゴリズムにより自動的に実行してもよい。この場合には、図５のステップＳ５６で補正したビットの位置、数を記憶しておき、図２のステップＳ１８で誤り訂正コード語を生成した後に、設定されている誤り訂正レベル情報とサイズ情報とに応じて、復元能力の範囲内で補正したビットを再変更してもよい。また、補正処理を行う前の逆変換ビット列を記憶しておき、補正処理後のビット列と比較判定し、異なるビットを再変更するように構成してもよい。
【００８１】
また、図９（Ｃ）に示すように、図９（Ｂ）では表示させていた位置合せパターン１３の省略処理を受け付けるようにしてもよい。この場合、図２のステップＳ２４で配置した位置合せパターン１３を削除する処理を行う。なお、この位置合せパターン１３の省略処理は、図２のステップＳ１のデータ取得処理において予め位置合せパターン１３の配置処理を省略する旨の情報を取得し、図２のステップＳ２４で該当する位置合せパターン１３の配置処理を省略するように構成してもよい。
【００８２】
５．構成
図１０に本実施形態の２次元コード生成システムの機能ブロック図の例を示す。なお本実施形態の２次元コード生成システムは図１０の構成要素（各部）の一部を省略した構成としてもよい。
【００８３】
入力部１６０は、生成する２次元コードの基本データ、生成した２次元コードから読み取られるべき基本アドレスデータ、生成した２次元コードに構成されるデザインデータなどを入力するためのものである。その機能は、例えばボタンやレバーの他、入力部と表示部の両方の機能を有するタッチパネル型表示部（パネルに画像が表示されると共に、指やペンで画面を触れたり押すことで情報を入力できる装置）により実現できる。また、スキャナやカメラ等の光学読み取り装置によりデザインデータを入力するようにしてもよい。
【００８４】
記憶部１７０は、処理部１００などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００８５】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部をコンピュータに実現させるためのプログラム）が記憶（記録、格納）される。
【００８６】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能はＣＲＴ、液晶ディスプレイ、プラズマディスプレイ、入力部と表示部の両方の機能を有するタッチパネル型表示部により実現できる。
【００８７】
通信部１９６は、外部（例えばホストや他の端末）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００８８】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト（サーバー）が有する情報記憶媒体からネットワーク（広域ネットワーク、インターネット）及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信するようにしてもよい。このようなホスト（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００８９】
処理部１００（プロセッサ）は、入力部１６０からの入力データやプログラムなどに基づいて、データ表示処理、データ加工処理、データ変換処理、２次元コード生成処理などの各種の処理を行う。この場合、処理部１００は、記憶部１７０内の主記憶部１７２をワーク領域として使用して、各種の処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）又はＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００９０】
処理部１００は、データ取得部１１０、コードサイズ決定部１１２、任意アドレスデータ領域特定部１１４、２値化デザインデータ変換部１１８、補正処理部１１９、２次元コード生成部１２０、２次元コード変更部１２２を含む。なお、処理部１００は、これらの各部（機能ブロック）を全て含む必要はなく、その一部を省略してもよい。
【００９１】
データ取得部１１０は、入力部１６０への入力情報に基づき、シンボルの型番情報（サイズ情報）と形式情報（誤り訂正レベル情報）とを取得する。また、本システム利用者が２次元コードシンボルを介して伝達しようとする情報である原データ（ネットワークアドレスデータ等）を、２次元コードのフォーマットに基づいてビットコード（ビット列）に変換する。
【００９２】
また、データ取得部１１０は、２次元コードに対応付けられた所与の２値化デザインデータを、２次元コードのフォーマットに基づいてビットコード（ビット列）に変換する。ここで、データ取得部１１０は、利用者が任意アドレスデータ領域３１の各モジュールに対応付けながら入力したデザインパターンを取得することにより、２値化デザインパターンのビットコードを取得するようにしてもよい。また、データ取得部１１０は、スキャナ等のハードウェアで取り込んだデザインデータや情報記憶媒体に記憶されたデザインデータを、２次元コードのマトリックスに対応付ける変換処理を行い、２値化デザインパターンとして取得するようにしてもよい。
【００９３】
また、コードサイズ決定部１１２を採用し、取得した２値化デザインデータのサイズ（領域、ビット数）に応じて２次元コードのサイズを決定するようにしてもよい。例えば、取得した２値化デザインパターンに対応するモジュールが任意アドレスデータ領域３１内に納まるように２次元コードのサイズ情報を決定し、データ取得部１１０が当該サイズ情報を取得するようにしてもよい。この場合、基本アドレスデータのビットコード、２値化デザインデータのビットコードに基づいて、当該２値化デザインパターンを配置可能な任意アドレスデータ領域３１を確保できる２次元コードのサイズ情報を特定するようにしてもよい。
【００９４】
任意アドレスデータ領域特定部１１４は、２次元コードのサイズ情報と、基本アドレスデータを変換したビットコードとに基づいて、基本アドレスデータのデータ量に応じた２次元コードの任意アドレスデータ領域３１を特定する。より詳細には、任意アドレスデータ領域特定部１１４は、サイズ情報に応じて誤り訂正データ領域３４を特定し、基本アドレスデータに基づいて基本アドレスデータ領域３０を特定し、サイズ情報と誤り訂正データ領域３４と基本アドレスデータ領域３０とに基づいて任意アドレスデータ領域３１を特定する。
【００９５】
２値化デザインデータ変換部１１８は、任意アドレスデータ領域３１に対応する２値化デザインデータを、２次元コードのフォーマット情報に基づいて逆変換したビットコードを求める。具体的には、図５及び図５の説明に示す各処理を行って、２値化デザインパターンのビットコードを逆変換したビットコードを求める。なお、図５の説明の変形例として、任意アドレスデータ領域３１に対応する２値化デザインデータを、２次元コードのフォーマットに基づいた分割単位に分割せずに、全体として逆変換処理を行うようにしてもよい。
【００９６】
補正処理部１１９は、逆変換後のビットコードが２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行って任意アドレスデータのビットコードを求める。例えば、逆変換後のビットコードに対する判定処理と補正処理とを、２次元コードのフォーマットに基づいた分割単位ごとに行ってもよいし、全体として行ってもよい。また、ビット（モジュール）ごとに行うようにしてもよい。
【００９７】
また、２値化デザインデータ変換部１１８の処理と補正処理部１１９の処理の順序を入れ替えて行ってもよい。例えば、補正処理部１１９が、任意アドレスデータ領域３１に対応する２値化デザインデータのビットコードが２次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行って任意アドレスデータのビットコードを求め、２値化デザインデータ変換部１１８が、補正処理後の任意アドレスデータのビットコードを２次元コードのフォーマット情報に基づいて逆変換したビットコードを求めるようにしてもよい。
【００９８】
２次元コード生成部１２０は、２値化デザインデータを逆変換したビットコードと基本アドレスデータを示すビットコードとを２次元コードのフォーマット情報に基づいて変換して、２次元コードを生成する。具体的には、図２及び図２の説明に示す各処理を行って２次元コードを生成する。
【００９９】
特に２次元コード生成部１２０は、誤り訂正データ生成部１２２と位置合せマーク設定部１２４とを含む。この誤り訂正データ生成部１２２は、２値化デザインデータを逆変換したビットコードと基本アドレスデータを示すビットコードとに基づいて、生成される２次元コードの読み取り誤りを訂正するための誤り訂正データを生成する。また、位置合せパターン設定部１２４は、２次元コードの読み取りに用いられる位置合せパターン１３を配置する。
【０１００】
また、位置合せパターン設定部１２４は、位置合せパターン１３の省略処理を受け付けるようにしてもよい。例えば、２次元コードを生成する前に設定された情報に基づいて、位置合せパターン１３を配置しないようにしてもよい。また、所定のアルゴリズムにより、２値化デザインパターンに対応する所定のカバー領域に含まれる位置合せパターン１３を配置しないようにしてもよい。また、位置合せパターン１３を配置して２次元コードシンボル１０を完成させてから、入力情報に基づいて位置合せパターン１３を削除するようにしてもよい。
【０１０１】
２次元コード変更部１２２は、誤り訂正データの訂正可能範囲に応じて、生成された２次元コードの変更処理を受け付ける。本実施の形態では、誤り訂正レベルが４段階用意されており、それぞれの復元能力が決められている。従って、２次元コードのサイズ情報と誤り訂正レベル情報とから、変更しても復元可能なモジュール数（ビット数、パターン数）の範囲内で、配置されたモジュール（ビット）の変更を受け付ける。
【０１０２】
また、２次元コード変更部１２２は、誤り訂正データの訂正可能範囲に応じて、補正処理部１１９が補正処理を行ったビットコードを補正処理前のビットコードに変更する処理を行う。この場合には、補正処理を行ったビット情報を記憶しておき、誤り訂正データ生成部１２２が誤り訂正データを生成した後に、誤り訂正データの訂正可能範囲に応じて、補正処理を行ったビット情報に基づき、補正したビットを復元するようにしてもよい。また、補正処理を行う前の逆変換ビット列を記憶しておき、補正処理後のビット列と比較判定し、補正されたビット又はビット列を復元するように構成してもよい。
【０１０３】
６．２次元コードの利用
本実施の形態で生成された、任意アドレスデータ領域３１に所与の２値化デザインパターンが配置された２次元コードは、種々の印刷物に印刷してこれを利用することができる。また、テレビ放送やビデオ放映、ゲーム機等、種々のメディアを介してモニタ等の表示部に画像表示させることができる。この場合には、本実施の形態で生成された２値化デザインパターンが配置された２次元コードの画像データを生成して、表示部に表示させればよい。
【０１０４】
特に、本実施の形態で生成された２次元コードを画像表示させる場合には、任意アドレスデータ領域３１に配置される２値化デザインパターンを複数種類用意しておく。この複数種類の２値化デザインパターンとして、例えば、丸、三角、四角等、形状が異なる２値化デザインパターンを用意してもよいし、連続して切り替え表示すると人が走っているように見える等、所与のモーションをコマ割りしてそれぞれをデザインした複数の２値化デザインパターンを用意してもよい。
【０１０５】
そして、各２値化デザインパターンを任意アドレスデータ領域３１に配置した際の誤り訂正コードパターンも用意しておく。そして、複数種類の２値化デザインパターンとそれに対応する誤り訂正コードパターンの画像データを生成する。そして、基本アドレスデータ領域３０の画像データは変化させずに、２値化デザインパターンの画像とその誤り訂正コードパターンの画像とを対応付けて変化させる。これによれば、２次元コード画像の２値化デザインパターンを変化させて、より人目を引き付けることができるとともに、２値化デザインパターンの変化に対応させて誤り訂正コードパターンも変化させているので、２次元コード画像の２値化デザインパターンを変化させても正確に２次元コードを読み取らせることができる。
【０１０６】
この場合、２値化デザインパターンが変化すると、例えば２次元コードから読み取られる情報としてネットワークアドレスデータが設定されている場合には、アクセス先のアドレスが異なってしまうことになる。しかし、かかる場合でも、例えば各アドレスのページを、利用者にアクセスさせたいアドレスのページにリンクする中継ページとして用いる等すればよい。なお、２値化デザインパターンとその誤り訂正コードパターンの画像を変化させるのみならず、基本アドレスデータのモジュールパターンをも変化させるようにしてもよい。
【０１０７】
また、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１０８】
また本発明は、ＱＲコードなどのマトリックス式の２次元コードのみならず、スタック式の２次元コードなど、種々の２次元コードに関して適用することができる。その場合には、各２次元コードのフォーマットに応じて各処理を行う。
【０１０９】
また本発明は、デザインパターンが配置された２次元コードを生成するためのプログラムのみならず、デザインパターンが配置された２次元コードを生成するためのビットコードを生成するためのプログラム、デザインパターンが配置された２次元コード画像を生成するためのプログラム、及びそれらのプログラムを記憶した情報記憶媒体、システムにも適用することができる。
【図面の簡単な説明】
【０１１０】
【図１】本実施の形態の２次元コードの構造の一例を示す図である。
【図２】本実施の形態の処理の流れの一例を示すフローチャート図である。
【図３】本実施の形態の処理の流れの一例を示すフローチャート図である。
【図４】本実施の形態で生成される２次元コードの一例を示す図である。
【図５】本実施の形態の処理の流れの一例を示すフローチャート図である。
【図６】図６（Ａ）、（Ｂ）は、本実施の形態で表示部に表示される画面の一例を示す図である。
【図７】本実施の形態の逆変換処理の一例を説明するための図である。
【図８】本実施の形態の２次元コード生成処理の一例を説明するための図である。
【図９】図９（Ａ）は、本実施の形態の符号化パターンの変更処理を説明するための図であり、図９（Ｂ）は、本実施の形態の位置合せパターンの省略処理を説明するための図である。
【図１０】本実施の形態の機能ブロックの一例を示す図である。
【図１１】本実施の形態で生成された２次元コードを読取装置で読込んだ場合に出力される表示画面の一例を示す図である。
【図１２】図１２（Ａ）は、本実施の形態で表示部に表示される画面の一例を示す図であり、図１２（Ｂ）は、本実施の形態で生成された２次元コードを読取装置で読込んだ場合に出力される表示画面の一例を示す図である。
【符号の説明】
【０１１１】
１０  ２次元コードシンボル
１３  位置合せパターン
１６  符号化領域
３０  基本アドレスデータ領域
３１  任意アドレスデータ領域
３２  不使用データ領域
３４  誤り訂正コード領域
４０  ２値化デザインパターン
４２  マスクパターン
４４  逆変換モジュールパターン
５２  マスク前パターン
５４  デザイン２次元コードシンボル
１００  処理部
１１０  データ取得部
１１２  コードサイズ決定部
１１４  任意アドレスデータ領域特定部
１１８  ２値化デザインデータ変換部
１１９  補正処理部
１２０  ２次元コード生成部
１２２  ２次元コード変更部
１６０  入力部
１７０  記憶部
１８０  情報記憶媒体
１９０  表示部
【図２】
2007241329.tif 000003
【図３】
2007241329.tif 000004
【図４】
2007241329.tif 000005
【図５】
2007241329.tif 000006
【図６】
2007241329.tif 000007
【図９】
2007241329.tif 000008
【図１０】
2007241329.tif 000009
【図１１】
2007241329.tif 000010
【図１２】
2007241329.tif 000011
【図１】
2007241329.tif 000012
【図７】
2007241329.tif 000013
【図８】
2007241329.tif 000014