(57)【要約】【課題】重ね合わせることによって新たな情報を有する二次元コードが得られる２つの二次元コードの生成方法を提供する。【解決手段】第１〜第３の情報をｔ個のシンボルからなる文字データシンボル列Ｓｚ，Ｓｘ，Ｓｙに変換し、所定のマスク処理によって“１”のみとなる黒色データシンボル列及びランダムデータシンボル列を生成し、先頭の文字データシンボル列Ｓｚに続いて黒色データシンボル列及びランダムデータシンボル列を配置し２ｔ個のシンボルで構成される誤り訂正データシンボル列を付加して二次元コードシンボル列Ｚを生成し、先頭に文字データシンボル列Ｓｘ，Ｓｙが配置された分散二次元コードシンボル列Ｘ，Ｙであって、両者の論理和をとることにより二次元コードシンボル列Ｚの黒色データシンボル列、ランダムデータシンボル列及び誤り訂正データシンボル列が現れるようにシンボルが配置された分散二次元コードシンボル列Ｘ，Ｙを生成する。【選択図】図１
2014035734.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報をｔ個のシンボルからなる第１の文字データシンボル列に変換し、
第２の情報をｔ個のシンボルからなる第２の文字データシンボル列に変換し、
第３の情報をｔ個のシンボルからなる第３の文字データシンボル列に変換し、
４ｔ個のシンボルから構成され、所定のマスク処理によって第１のビットのみとなる黒色データシンボル列を生成し、
２ｔ個のシンボルから構成され、一様ランダムなデータが格納されたランダムデータシンボル列を生成し、
先頭の前記第１の文字データシンボル列に続いて前記黒色データシンボル列および前記ランダムデータシンボル列を所定の順序で配置し、所定の誤り訂正符号により計算され２ｔ個のシンボルで構成される誤り訂正データシンボル列を付加することにより、二次元コードシンボル列を生成し、
前記二次元コードシンボル列と同じ数のシンボルを有し、先頭に前記第２および第３の文字データシンボル列がそれぞれ配置された第１及び第２の分散二次元コードシンボル列であって、両者の論理和をとることにより前記二次元コードシンボル列の前記黒色データシンボル列、前記ランダムデータシンボル列および前記誤り訂正データシンボル列が前記二次元コードシンボル列と同じ位置にそれぞれ現れるようにシンボルが配置された、第１及び第２の分散二次元コードシンボル列を生成し、
前記第１の分散二次元コードシンボル列を用いて第１の二次元コードを生成し、前記第２の分散二次元コードシンボル列を用いて第２の二次元コードを生成する、
ことを特徴とする二次元コードの生成方法。
【請求項２】
前記第１の分散二次元コードシンボル列を生成する際、２ｔ個のシンボルから構成され、前記第１の分散二次元コードシンボル列の誤り訂正データシンボル列である第１の誤り訂正データシンボル列を、前記二次元コードシンボル列の前記黒色データシンボル列に対応するシンボル列内に配置し、
前記第２の分散二次元コードシンボル列を生成する際、２ｔ個のシンボルから構成され、前記第２の分散二次元コードシンボル列の誤り訂正データシンボル列である第２の誤り訂正データシンボル列を、前記二次元コードシンボル列の前記黒色データシンボル列に対応するシンボル列内に配置する、
ことを特徴とする請求項１に記載の二次元コードの生成方法。
【請求項３】
前記黒色データシンボル列は、いずれも２ｔ個のシンボルから構成される第１の黒色データシンボル列および第２の黒色データシンボル列からなり、
前記第１の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第１の黒色データシンボル列に対応する位置に前記第１の誤り訂正データシンボル列を配置し、前記第２の黒色データシンボル列に対応する位置に前記第２の黒色データシンボル列を配置し、
前記第２の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第１の黒色データシンボル列に対応する位置に前記第１の黒色データシンボル列を配置し、前記第２の黒色データシンボル列に対応する位置に前記第２の誤り訂正データシンボル列を配置する、
ことを特徴とする請求項２に記載の二次元コードの生成方法。
【請求項４】
前記ランダムデータシンボル列は、いずれもｔ個のシンボルから構成される第１のランダムデータシンボル列および第２のランダムデータシンボル列からなり、
前記第１の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第１のランダムデータシンボル列に対応する位置に前記第１のランダムデータシンボル列を配置し、前記第２のランダムデータシンボル列に対応する位置に、前記所定のマスク処理によって第２のビットのみとなる白色データシンボル列を配置し、
前記第２の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第２のランダムデータシンボル列に対応する位置に前記第２のランダムデータシンボル列を配置し、前記第１のランダムデータシンボル列に対応する位置に、前記所定のマスク処理によって前記第２のビットのみとなる白色データシンボル列を配置する、
ことを特徴とする請求項１乃至３のいずれかに記載の二次元コードの生成方法。
【請求項５】
前記誤り訂正データシンボル列は、いずれもｔ個のシンボルから構成される第１の誤り訂正データシンボル列および第２の誤り訂正データシンボル列からなり、
前記第１の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第１の誤り訂正データシンボル列に対応する位置に前記第１の誤り訂正データシンボル列を配置し、前記第２の誤り訂正データシンボル列に対応する位置に、前記所定のマスク処理によって第２のビットのみとなる白色データシンボル列を配置し、
前記第２の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第２の誤り訂正データシンボル列に対応する位置に前記第２の誤り訂正データシンボル列を配置し、前記第１の誤り訂正データシンボル列に対応する位置に、前記所定のマスク処理によって前記第２のビットのみとなる白色データシンボル列を配置する、
ことを特徴とする請求項１乃至４のいずれかに記載の二次元コードの生成方法。
【請求項６】
前記二次元コードシンボル列、前記第１の分散二次元コードシンボル列および前記第２の分散二次元コードシンボル列は、その末尾に、前記所定のマトリックスに配置可能なシンボル数から９ｔを引いた残りのシンボル数分の付加データシンボル列を有することを特徴とする請求項１乃至５のいずれかに記載の二次元コードの生成方法。
【請求項７】
第１の情報をｔ個のシンボルからなる第１の文字データシンボル列に変換し、
第２の情報をｔ個のシンボルからなる第２の文字データシンボル列に変換し、
第３の情報をｔ個のシンボルからなる第３の文字データシンボル列に変換し、
４ｔ個のシンボルから構成され、所定のマスク処理によって第１のビットのみとなる黒色データシンボル列を生成し、
先頭の前記第１の文字データシンボル列に続いて前記黒色データシンボル列を配置し、所定の誤り訂正符号により計算され２ｔ個のシンボルで構成される誤り訂正データシンボル列を付加することにより、二次元コードシンボル列を生成し、
前記二次元コードシンボル列と同じ数のシンボルを有し、先頭に前記第２および第３の文字データシンボル列がそれぞれ配置された第１及び第２の分散二次元コードシンボル列であって、両者の論理和をとることにより前記二次元コードシンボル列の前記黒色データシンボル列および前記誤り訂正データシンボル列が前記二次元コードシンボル列と同じ位置にそれぞれ現れるようにシンボルが配置された、第１及び第２の分散二次元コードシンボル列を生成し、
前記第１の分散二次元コードシンボル列を用いて第１の二次元コードを生成し、前記第２の分散二次元コードシンボル列を用いて第２の二次元コードを生成する、
ことを特徴とする二次元コードの生成方法。
【請求項８】
第１の情報をｔ個のシンボルからなる第１の文字データシンボル列に変換し、
第２の情報をｔ個のシンボルからなる第２の文字データシンボル列に変換し、
第３の情報をｔ個のシンボルからなる第３の文字データシンボル列に変換し、
先頭の前記第１の文字データシンボル列に続いて、いずれも２ｔ個のシンボルから構成された空の第１及び第２の黒色データシンボル列と、いずれもｔ個のシンボルから構成され一様ランダムなデータが格納された第１及び第２のランダムデータシンボル列と、いずれもｔ個のシンボルから構成された空の第１及び第２の誤り訂正データシンボル列とを配置した後、所定の手順でシンボルの配置変更を行い、
前記空の第１及び第２の黒色データシンボル列のシンボルが所定のマスク処理によって第１のビットのみとなるように前記空の第１及び第２の黒色データシンボル列のシンボルにデータを順次格納し、その後、所定の誤り訂正符号により計算された誤り訂正データを前記空の第１及び第２の誤り訂正データシンボル列のシンボルに順次格納することにより、二次元コードシンボル列を生成し、
先頭の前記第２の文字データシンボル列に続いて、前記二次元コードシンボル列の前記第２の黒色データシンボル列と、２ｔ個のシンボルから構成された空の第３の誤り訂正データシンボル列と、ｔ個のシンボルから構成された空の第１の白色データシンボル列と、前記二次元コードシンボル列の前記第１のランダムデータシンボル列と、ｔ個のシンボルから構成された空の第２の白色データシンボル列と、前記二次元コードシンボル列の前記第１の誤り訂正データシンボル列とを配置した後、前記所定の手順でシンボルの配置変更を行い、
前記空の第１及び第２の白色データシンボル列のシンボルが前記所定のマスク処理によって第２のビットのみとなるように前記空の第１及び第２の白色データシンボル列のシンボルにデータを順次格納し、その後、前記所定の誤り訂正符号により計算された誤り訂正データを前記空の第３の誤り訂正データシンボル列のシンボルに順次格納することにより、第１の分散二次元コードシンボル列を生成し、
先頭の前記第３の文字データシンボル列に続いて、２ｔ個のシンボルから構成された空の第４の誤り訂正データシンボル列と、前記二次元コードシンボル列の前記第１の黒色データシンボル列と、前記二次元コードシンボル列の前記第２のランダムデータシンボル列と、ｔ個のシンボルから構成された空の第３の白色データシンボル列と、前記二次元コードシンボル列の前記第２の誤り訂正データシンボル列と、ｔ個のシンボルから構成された空の第４の白色データシンボル列とを配置した後、前記所定の手順でシンボルの配置変更を行い、
前記空の第３及び第４の白色データシンボル列のシンボルが前記所定のマスク処理によって第２のビットのみとなるように前記空の第３及び第４の白色データシンボル列のシンボルにデータを順次格納し、その後、前記所定の誤り訂正符号により計算された誤り訂正データを前記空の第４の誤り訂正データシンボル列のシンボルに順次格納することにより、第２の分散二次元コードシンボル列を生成し、
前記第１の分散二次元コードシンボル列を用いて第１の二次元コードを生成し、前記第２の分散二次元コードシンボル列を用いて第２の二次元コードを生成する、
ことを特徴とする二次元コードの生成方法。
【請求項９】
前記所定の手順では、前記二次元コードシンボル列の前記第１及び第２の黒色データシンボル列中のシンボルを他のシンボル列中のシンボルと交換することを特徴とする請求項８に記載の二次元コードの生成方法。
【請求項１０】
前記第１の情報は秘密情報を含み、前記第２及び第３の情報は公開情報を含むことを特徴とする請求項１乃至９のいずれかに記載の二次元コードの生成方法。
【請求項１１】
前記所定のマトリックスを構成するモジュールのうち前記第１のビットが配置されたモジュールを黒く、前記第１のビットの反対の第２のビットが配置されたモジュールを白くなるように印刷する手法により、前記第１及び第２の二次元コードのうち一方を白紙に印刷し、他方を透明シートに印刷することを特徴とする請求項１乃至１０のいずれかに記載の二次元コードの生成方法。
【請求項１２】
前記第１及び第２の二次元コードはＱＲコードであることを特徴とする請求項１乃至１１のいずれかに記載の二次元コードの生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二次元コードの生成方法に関し、より詳しくは、重ね合わせることによって、新たな情報を有し、かつ通常の読取り装置で読取り可能な二次元コードが得られる２つの二次元コードの生成方法に関する。
【背景技術】
【０００２】
近年，カメラ付き携帯電話やスマートフォンと呼ばれる携帯端末の普及により、二次元コードを用いた情報のやり取りが広く行われるようになった。中でもＱＲコード（登録商標）は最も普及しており、ＷＥＢページのＵＲＬを搭載した広告や、電話番号等の連絡先の交換、空港やイベント会場の入場チケットなど、様々な用途で利用されている。また、ＱＲコードにはＲｅｅｄ−Ｓｏｌｏｍｏｎ符号として知られる誤り訂正符号が用いられており、ノイズ等により一部が誤ってしまってもその誤りを訂正して正しい情報を読み取ることができる。
【０００３】
ＱＲコードは、ＪＩＳ  Ｘ  ０５１０並びにＩＳＯ／ＩＥＣ  １８００４で仕様が規定されている（以下、これらの規格による仕様書を「ＱＲコード仕様書」という）。
【０００４】
特許文献１には、ＱＲコード仕様書に準拠した読取り装置（以下、「通常の読取り装置」という。）で読み取る利用者には秘匿データの存在を認識し得ない二次元コードの生成方法が開示されている。即ち、特殊なＱＲコードリーダでのみ読取り可能なデータを有する二次元コードを生成する方法が記載されている。
【０００５】
また、特許文献２には、ＱＲコードリーダの出力する情報に影響しないように、図柄などの情報を付加した二次元コードの生成方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２９９４２２号公報
【特許文献２】特開２００９−１６３７２０号公報
【非特許文献】
【０００７】
【非特許文献１】A. Shamir，“How to Share a Secret,” Communications of the ACM, Volume 22, Number 11, pp. 612-613, Nov., 1979.
【非特許文献２】M. Naor and A. Shamir, “Visual cryptography,” Advance in Cryptology-Eurocrypt ’94, LNCS 950, pp. 1-12, Springer-Verlag, 1994.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
二次元コードの新たな応用として、次のような例が考えられる。同じ大きさの二次元コードＱＲｘ，ＱＲｙを透明なシートに印刷しておき、二次元コードＱＲｘを商品Ａに付し、二次元コードＱＲｙを別の商品Ｂにそれぞれ付しておく。商品Ａ，Ｂ両方を購入した人は、二次元コードＱＲｘとＱＲｙを重ね合わせた二次元コードＱＲｚを携帯端末等の読取り装置を用いて読み取ることで、特別な情報を得る。商品としては、例えば、書籍やカードゲームのカードなどが挙げられる。
【０００９】
また、二次元コードの別の応用例として、秘密分散法への応用が考えられる。秘密分散法とは、秘密情報を複数人で分散共有する技術である。従来の秘密分散法として、Ｓｈａｍｉｒのしきい値分散法（非特許文献１）や、視覚復号型の秘密分散法（非特許文献２）などがあげられる。
【００１０】
Ｓｈａｍｉｒのしきい値分散法は、ｎ個のシェア（分散情報）のうち、ｔ個以上からは秘密情報が復号できるが、ｔ−１個以下では秘密情報は全く得られないという手法である。秘密情報は通常、計算機を用いた復号処理を行い復号される。
【００１１】
視覚復号型の秘密分散法は、画像情報に適用可能な秘密分散法であり、例えば（２，２）しきい値型の場合は、二枚の透明なシートに印刷されたシェアを用意し、それらを重ねるだけで秘密情報が視覚的に復元できる。一枚のシェアからは秘密画像の情報は全く得られず、また、計算機を用いずに復号できるという利点がある。しかし、隠せる情報が少なく、復号時に文字情報以外の雑音成分が生じるという短所がある。
【００１２】
本発明は、上記の技術的認識に基づいてなされたものであり、重ね合わせることによって、新たな情報を有し、かつ通常の読取り装置で読取り可能な二次元コードが得られる２つの二次元コードの生成方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一態様に係る二次元コードの生成方法は、
第１の情報をｔ個のシンボルからなる第１の文字データシンボル列に変換し、
第２の情報をｔ個のシンボルからなる第２の文字データシンボル列に変換し、
第３の情報をｔ個のシンボルからなる第３の文字データシンボル列に変換し、
４ｔ個のシンボルから構成され、所定のマスク処理によって第１のビットのみとなる黒色データシンボル列を生成し、
２ｔ個のシンボルから構成され、一様ランダムなデータが格納されたランダムデータシンボル列を生成し、
先頭の前記第１の文字データシンボル列に続いて前記黒色データシンボル列および前記ランダムデータシンボル列を所定の順序で配置し、所定の誤り訂正符号により計算され２ｔ個のシンボルで構成される誤り訂正データシンボル列を付加することにより、二次元コードシンボル列を生成し、
前記二次元コードシンボル列と同じ数のシンボルを有し、先頭に前記第２および第３の文字データシンボル列がそれぞれ配置された第１及び第２の分散二次元コードシンボル列であって、両者の論理和をとることにより前記二次元コードシンボル列の前記黒色データシンボル列、前記ランダムデータシンボル列および前記誤り訂正データシンボル列が前記二次元コードシンボル列と同じ位置にそれぞれ現れるようにシンボルが配置された、第１及び第２の分散二次元コードシンボル列を生成し、
前記第１の分散二次元コードシンボル列を用いて第１の二次元コードを生成し、前記第２の分散二次元コードシンボル列を用いて第２の二次元コードを生成する、
ことを特徴とする。
【００１４】
また、前記二次元コードの生成方法において、
前記第１の分散二次元コードシンボル列を生成する際、２ｔ個のシンボルから構成され、前記第１の分散二次元コードシンボル列の誤り訂正データシンボル列である第１の誤り訂正データシンボル列を、前記二次元コードシンボル列の前記黒色データシンボル列に対応するシンボル列内に配置し、
前記第２の分散二次元コードシンボル列を生成する際、２ｔ個のシンボルから構成され、前記第２の分散二次元コードシンボル列の誤り訂正データシンボル列である第２の誤り訂正データシンボル列を、前記二次元コードシンボル列の前記黒色データシンボル列に対応するシンボル列内に配置してもよい。
【００１５】
また、前記二次元コードの生成方法において、
前記黒色データシンボル列は、いずれも２ｔ個のシンボルから構成される第１の黒色データシンボル列および第２の黒色データシンボル列からなり、
前記第１の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第１の黒色データシンボル列に対応する位置に前記第１の誤り訂正データシンボル列を配置し、前記第２の黒色データシンボル列に対応する位置に前記第２の黒色データシンボル列を配置し、
前記第２の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第１の黒色データシンボル列に対応する位置に前記第１の黒色データシンボル列を配置し、前記第２の黒色データシンボル列に対応する位置に前記第２の誤り訂正データシンボル列を配置してもよい。
【００１６】
また、前記二次元コードの生成方法において、
前記ランダムデータシンボル列は、いずれもｔ個のシンボルから構成される第１のランダムデータシンボル列および第２のランダムデータシンボル列からなり、
前記第１の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第１のランダムデータシンボル列に対応する位置に前記第１のランダムデータシンボル列を配置し、前記第２のランダムデータシンボル列に対応する位置に、前記所定のマスク処理によって第２のビットのみとなる白色データシンボル列を配置し、
前記第２の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第２のランダムデータシンボル列に対応する位置に前記第２のランダムデータシンボル列を配置し、前記第１のランダムデータシンボル列に対応する位置に、前記所定のマスク処理によって前記第２のビットのみとなる白色データシンボル列を配置するようにしてもよい。
【００１７】
また、前記二次元コードの生成方法において、
前記誤り訂正データシンボル列は、いずれもｔ個のシンボルから構成される第１の誤り訂正データシンボル列および第２の誤り訂正データシンボル列からなり、
前記第１の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第１の誤り訂正データシンボル列に対応する位置に前記第１の誤り訂正データシンボル列を配置し、前記第２の誤り訂正データシンボル列に対応する位置に、前記所定のマスク処理によって第２のビットのみとなる白色データシンボル列を配置し、
前記第２の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第２の誤り訂正データシンボル列に対応する位置に前記第２の誤り訂正データシンボル列を配置し、前記第１の誤り訂正データシンボル列に対応する位置に、前記所定のマスク処理によって前記第２のビットのみとなる白色データシンボル列を配置するようにしてもよい。
【００１８】
また、前記二次元コードの生成方法において、
前記二次元コードシンボル列、前記第１の分散二次元コードシンボル列および前記第２の分散二次元コードシンボル列は、その末尾に、前記所定のマトリックスに配置可能なシンボル数から９ｔを引いた残りのシンボル数分の付加データシンボル列を有するようにしてもよい。
【００１９】
本発明の一態様に係る二次元コードの生成方法は、
第１の情報をｔ個のシンボルからなる第１の文字データシンボル列に変換し、
第２の情報をｔ個のシンボルからなる第２の文字データシンボル列に変換し、
第３の情報をｔ個のシンボルからなる第３の文字データシンボル列に変換し、
４ｔ個のシンボルから構成され、所定のマスク処理によって第１のビットのみとなる黒色データシンボル列を生成し、
先頭の前記第１の文字データシンボル列に続いて前記黒色データシンボル列を配置し、所定の誤り訂正符号により計算され２ｔ個のシンボルで構成される誤り訂正データシンボル列を付加することにより、二次元コードシンボル列を生成し、
前記二次元コードシンボル列と同じ数のシンボルを有し、先頭に前記第２および第３の文字データシンボル列がそれぞれ配置された第１及び第２の分散二次元コードシンボル列であって、両者の論理和をとることにより前記二次元コードシンボル列の前記黒色データシンボル列および前記誤り訂正データシンボル列が前記二次元コードシンボル列と同じ位置にそれぞれ現れるようにシンボルが配置された、第１及び第２の分散二次元コードシンボル列を生成し、
前記第１の分散二次元コードシンボル列を用いて第１の二次元コードを生成し、前記第２の分散二次元コードシンボル列を用いて第２の二次元コードを生成する、
ことを特徴とする。
【００２０】
本発明の一態様に係る二次元コードの生成方法は、
第１の情報をｔ個のシンボルからなる第１の文字データシンボル列に変換し、
第２の情報をｔ個のシンボルからなる第２の文字データシンボル列に変換し、
第３の情報をｔ個のシンボルからなる第３の文字データシンボル列に変換し、
先頭の前記第１の文字データシンボル列に続いて、いずれも２ｔ個のシンボルから構成された空の第１及び第２の黒色データシンボル列と、いずれもｔ個のシンボルから構成され一様ランダムなデータが格納された第１及び第２のランダムデータシンボル列と、いずれもｔ個のシンボルから構成された空の第１及び第２の誤り訂正データシンボル列とを配置した後、所定の手順でシンボルの配置変更を行い、
前記空の第１及び第２の黒色データシンボル列のシンボルが所定のマスク処理によって第１のビットのみとなるように前記空の第１及び第２の黒色データシンボル列のシンボルにデータを順次格納し、その後、所定の誤り訂正符号により計算された誤り訂正データを前記空の第１及び第２の誤り訂正データシンボル列のシンボルに順次格納することにより、二次元コードシンボル列を生成し、
先頭の前記第２の文字データシンボル列に続いて、前記二次元コードシンボル列の前記第２の黒色データシンボル列と、２ｔ個のシンボルから構成された空の第３の誤り訂正データシンボル列と、ｔ個のシンボルから構成された空の第１の白色データシンボル列と、前記二次元コードシンボル列の前記第１のランダムデータシンボル列と、ｔ個のシンボルから構成された空の第２の白色データシンボル列と、前記二次元コードシンボル列の前記第１の誤り訂正データシンボル列とを配置した後、前記所定の手順でシンボルの配置変更を行い、
前記空の第１及び第２の白色データシンボル列のシンボルが前記所定のマスク処理によって第２のビットのみとなるように前記空の第１及び第２の白色データシンボル列のシンボルにデータを順次格納し、その後、前記所定の誤り訂正符号により計算された誤り訂正データを前記空の第３の誤り訂正データシンボル列のシンボルに順次格納することにより、第１の分散二次元コードシンボル列を生成し、
先頭の前記第３の文字データシンボル列に続いて、２ｔ個のシンボルから構成された空の第４の誤り訂正データシンボル列と、前記二次元コードシンボル列の前記第１の黒色データシンボル列と、前記二次元コードシンボル列の前記第２のランダムデータシンボル列と、ｔ個のシンボルから構成された空の第３の白色データシンボル列と、前記二次元コードシンボル列の前記第２の誤り訂正データシンボル列と、ｔ個のシンボルから構成された空の第４の白色データシンボル列とを配置した後、前記所定の手順でシンボルの配置変更を行い、
前記空の第３及び第４の白色データシンボル列のシンボルが前記所定のマスク処理によって第２のビットのみとなるように前記空の第３及び第４の白色データシンボル列のシンボルにデータを順次格納し、その後、前記所定の誤り訂正符号により計算された誤り訂正データを前記空の第４の誤り訂正データシンボル列のシンボルに順次格納することにより、第２の分散二次元コードシンボル列を生成し、
前記第１の分散二次元コードシンボル列を用いて第１の二次元コードを生成し、前記第２の分散二次元コードシンボル列を用いて第２の二次元コードを生成する、
ことを特徴とする。
【００２１】
また、前記二次元コードの生成方法において、
前記所定の手順では、前記二次元コードシンボル列の前記第１及び第２の黒色データシンボル列中のシンボルを他のシンボル列中のシンボルと交換するようにしてもよい。
【００２２】
また、前記二次元コードの生成方法において、
前記第１の情報は秘密情報を含み、前記第２及び第３の情報は公開情報を含むようにしてもよい。
【００２３】
また、前記二次元コードの生成方法において、
前記所定のマトリックスを構成するモジュールのうち前記第１のビットが配置されたモジュールを黒く、前記第１のビットの反対の第２のビットが配置されたモジュールを白くなるように印刷する手法により、前記第１及び第２の二次元コードのうち一方を白紙に印刷し、他方を透明シートに印刷するようにしてもよい。
【００２４】
また、前記二次元コードの生成方法において、
前記第１及び第２の二次元コードはＱＲコードであってもよい。
【発明の効果】
【００２５】
本発明によれば、重ね合わせることによって、新たな情報を有し、かつ通常の読取り装置で読取り可能な二次元コードが得られる２つの二次元コードの生成方法を提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態に係る二次元コードの生成方法のフローチャートである。
【図２】本発明の実施形態に係る二次元コードシンボル列の構成例である。
【図３】本発明の実施形態に係る方法で生成した二次元コードＱＲｚである。
【図４】（ａ）は文字列“ＷＥＬＣＯＭＥ”含む二次元コードＱＲｘであり、（ｂ）は文字列“Ｕ．ＴＳＵＫＵＢＡ”を含む二次元コードＱＲｙである。
【図５】二次元コードＱＲｘと二次元コードＱＲｙを重ね合わせた二次元コードＱＲｘｙである。
【図６】シンボルの配置変更を行う場合の二次元コードシンボル列の構成例である。
【図７】（ａ），（ｂ）は、シンボルの配置変更を行って生成した二次元コードＱＲｘ’及びＱＲｙ’をそれぞれ示している。
【図８】（ａ）は二次元コードＱＲｘ’及びＱＲｙ’の論理和をとった二次元コードＱＲｘｙ’であり、（ｂ）は二次元コードＱＲｘｙ’の誤り訂正後の二次元コードＱＲｚ’である。
【発明を実施するための形態】
【００２７】
以下、図面を参照しながら、本発明の実施形態に係る二次元コードの生成方法について説明する。なお、以下の説明では二次元コードとしてＱＲコードを例にとるが、本発明は他の二次元コードの生成にも適用可能である。
【００２８】
図１は、本実施形態に係る二次元コードの生成方法のフローチャートである。図２は、本実施形態に係る二次元コードシンボル列の構成例を示している。以下、図１のフローチャートに沿って説明する。
【００２９】
まず、第１の情報（例えば秘密情報）をｔ個のシンボルからなる文字データシンボル列Ｓｚに変換し、同様にして、第２及び第３の情報（例えば公開情報）についても、ｔ個のシンボルからなる文字データシンボル列Ｓｘ及び文字データシンボル列Ｓｙにそれぞれ変換する（ステップＳ１）。ここで、シンボル数ｔは、後述の誤り訂正データシンボル列Ｐによる最大誤り訂正可能シンボル数である。
【００３０】
文字データシンボル列Ｓｘ，Ｓｙ，Ｓｚにおいては、モード（数字モード、英数字モード、漢字モード等）を判別するためのモード指示子が先頭に配置され、それに続いて、モードに応じて長さの異なる文字数指示子が配置される。そして、文字数指示子の後に、変換した文字データが連結される。最後に、データの末尾であることを示す終端パターン（“００００”）が配置される。１シンボルは８ビットで構成される。終端パターン以降の余ったシンボルは任意のデータで埋める。
【００３１】
図２に示すように、二次元コードシンボル列のシンボル数を二次元コードのマトリックスの使用可能なシンボル数に合わせるために、後述の二次元コードシンボル列Ｚ、分散二次元コードシンボル列ＸおよびＹの末尾に付加データシンボル列Ａを付加してもよい。この付加データシンボル列Ａのシンボル数は、二次元コードの所定の型番に対応するマトリックスの使用可能なシンボル数から９ｔを引いた残りのシンボル数である。例えば、型番および誤り訂正レベルをそれぞれ４型（使用可能シンボル数：１００）及びレベルＬとすると、ｔ＝１０となるため、付加データシンボル列Ａのシンボル数は１０（＝１００−９×１０）となる。なお、付加データシンボル列Ａには、例えばＸ，Ｙ，Ｚ間で共通のデータが格納される。その他、Ｘ及びＹの付加データシンボル列に任意のデータＩｘ，Ｉｙをそれぞれ格納し、Ｚの付加データシンボル列にＩｘとＩｙの論理和のデータを格納してもよい。
【００３２】
次に、黒色データシンボル列Ｂを生成する（ステップＳ２）。この黒色データシンボル列Ｂは、二次元コードとして印刷されたときに黒く印刷される部分である。黒色データシンボル列Ｂは、図２に示すように、４ｔ個のシンボルから構成される。また、黒色データシンボル列Ｂには、所定のマスク処理によって、ビット“１”のみとなるように構成されたビット列が格納される。マスク処理は、明暗のモジュールのバランスを整えるためにシンボルを配置した部分に掛けられるものである。本実施形態では、ビット“１”が黒として印刷され、ビット“０”が白として印刷されることを前提としている。なお、これとは反対に、ビット“０”が黒として印刷され、ビット“１”が白として印刷される場合には、黒色データシンボル列Ｂには、所定のマスク処理によって“０”のみとなるように構成されたビット列が格納される。
【００３３】
次に、２ｔ個のシンボルから構成されるランダムデータシンボル列Ｒを生成する（ステップＳ３）。このランダムデータシンボル列Ｒには一様ランダムなデータ、即ち一様分布に従う乱数データが格納される。また、ランダムデータシンボル列Ｒは、図２に示すように、いずれもｔ個のシンボルから構成されるランダムデータシンボル列Ｒｘ及びランダムデータシンボル列Ｒｙが連結されたものである。
【００３４】
次に、誤り訂正データシンボル列Ｐを計算する（ステップＳ４）。この誤り訂正データシンボル列Ｐは、先頭の文字データシンボル列Ｓｚに続いて、黒色データシンボル列Ｂおよびランダムデータシンボル列Ｒを配置したデータシンボル列に対し、所定の生成多項式を有するＲｅｅｄ−Ｓｏｌｏｍｏｎ符号を適用して計算される。
【００３５】
また、誤り訂正データシンボル列Ｐは、図２に示すように、２ｔ個のシンボルで構成されており、いずれもｔ個のシンボルから構成される誤り訂正データシンボル列Ｐｘ及び誤り訂正データシンボル列Ｐｙが連結されたものである。
【００３６】
次に、計算された誤り訂正データシンボル列Ｐを、文字データシンボル列Ｓｚ、黒色データシンボル列Ｂおよびランダムデータシンボル列Ｒが配置されたデータシンボル列に付加することにより、図２に示す二次元コードシンボル列Ｚを生成する（ステップＳ５）。この二次元コードシンボル列Ｚを所定のマトリックスに配置して所定のマスクをかけて得られたＱＲコードからは、通常の読取り装置を用いて、文字データシンボル列Ｓｚに格納された情報を読み取ることができる。
【００３７】
図３は、上記の方法で生成した二次元コードシンボル列Ｚを用いて生成された二次元コードＱＲｚを示している。図３のＱＲコードは、二次元コードシンボル列Ｚを所定の型番（４型）に対応するマトリックス（３３×３３モジュール）に所定の順序、即ちマトリックスの右下から順に二列に配置して得られたものである。図３に示す二次元コードＱＲｚは、マトリックスの右端領域に第１の情報Ｓｚとして“ＳＥＣＲＥＴ  ＩＮＦＯ”を含んでいる。よって、通常の読取り装置により二次元コードＱＲｚを読み取ると、“ＳＥＣＲＥＴ  ＩＮＦＯ”が読み出される。
【００３８】
なお、上記のデータシンボル列においては、文字データシンボル列Ｓｚに続いて、ランダムデータシンボル列Ｒ、黒色データシンボル列Ｂの順に配置してもよい。即ち、ランダムデータシンボル列Ｒおよび黒色データシンボル列Ｂの配置順序は任意である。
【００３９】
また、前述の付加データシンボル列Ａを付加している場合には、データシンボル列に付加データシンボル列Ａも加えて、誤り訂正データシンボル列Ｐを計算する。この場合、誤り訂正データシンボル列Ｐが二次元コードシンボル列Ｚの中間に位置するため、ＱＲコード仕様書に規定された方法では誤り訂正シンボル列を計算することができない。そこで、Ｒｅｅｄ−Ｓｏｌｏｍｏｎ符号の巡回性を利用する。即ち、誤り訂正データシンボル列Ｐが最終シンボル、即ち多項式の最低次数側に位置するようにシンボル列を巡回させ、仕様書と同じように訂正符号を計算する。その後、元の位置までシンボル列を巡回させて戻す。
【００４０】
次に、文字データシンボル列Ｓｘを有する分散二次元コードシンボル列Ｘ、及び文字データシンボル列Ｓｙを有する分散二次元コードシンボル列Ｙを生成する（ステップＳ６）。以下、２つの分散二次元コードシンボル列Ｘ，Ｙの生成方法について詳細に説明する。
【００４１】
図２に示すように、分散二次元コードシンボル列Ｘ及びＹは、二次元コードシンボル列Ｚと同じ数のシンボルを有する。
【００４２】
まず、分散二次元コードシンボル列Ｘの先頭に文字データシンボル列Ｓｘを配置し、分散二次元コードシンボル列Ｙの先頭に文字データシンボル列Ｓｙを配置する。付加データシンボル列Ａがある場合には、図２に示すようにシンボル列の末尾に配置する。
【００４３】
次に、分散二次元コードシンボル列Ｘ（Ｙ）のうちランダムデータシンボル列Ｒに対応するシンボル列には二次元コードシンボル列Ｚのランダムデータシンボル列Ｒの一部を格納するとともに、分散二次元コードシンボル列Ｘ（Ｙ）のうち誤り訂正データシンボル列Ｐに対応するシンボル列には二次元コードシンボル列Ｚの誤り訂正データシンボル列Ｐの一部を格納する。
【００４４】
より正確には、図２からわかるように、分散二次元コードシンボル列Ｘ，Ｙにおいて、文字データシンボル列Ｓｘ，Ｓｙ以降のシンボルは、分散二次元コードシンボル列Ｘと分散二次元コードシンボル列Ｙの論理和をとることにより、黒色データシンボル列Ｂ、ランダムデータシンボル列Ｒ及び誤り訂正データシンボル列Ｐが二次元コードシンボル列Ｚと同じ位置に現れるように配置されている。換言すれば、分散二次元コードシンボル列Ｘ，Ｙを重ね合わせることにより、文字データシンボル列Ｓｚ以外のシンボルが再現されるように、二次元コードシンボル列Ｚのシンボルを分散二次元コードシンボル列Ｘ及び分散二次元コードシンボル列Ｙに分散して配置する。以下、この分散配置の一例について説明する。
【００４５】
ランダムデータシンボル列Ｒの分散配置の詳細は次の通りである。即ち、分散二次元コードシンボル列Ｘを生成する際、二次元コードシンボル列Ｚのランダムデータシンボル列Ｒｘに対応する位置にランダムデータシンボル列Ｒｘを配置し、ランダムデータシンボル列Ｒｙに対応する位置に、所定のマスク処理によってビット“０”のみとなるように構成された白色データシンボル列Ｗ１を配置する。また、分散二次元コードシンボル列Ｙを生成する際、二次元コードシンボル列Ｚのランダムデータシンボル列Ｒｙに対応する位置にランダムデータシンボル列Ｒｙを配置し、ランダムデータシンボル列Ｒｘに対応する位置に、所定のマスク処理によってビット“０”のみとなるように構成された白色データシンボル列Ｗ２を配置する。
【００４６】
誤り訂正データシンボル列Ｐの分散配置の詳細は次の通りである。即ち、分散二次元コードシンボル列Ｘを生成する際、二次元コードシンボル列Ｚの誤り訂正データシンボル列Ｐｘに対応する位置に誤り訂正データシンボル列Ｐｘを配置し、誤り訂正データシンボル列Ｐｙに対応する位置に、所定のマスク処理によってビット“０”のみとなるように構成された白色データシンボル列Ｗ３を配置する。また、分散二次元コードシンボル列Ｙを生成する際、二次元コードシンボル列Ｚの誤り訂正データシンボル列Ｐｙに対応する位置に誤り訂正データシンボル列Ｐｙを配置し、誤り訂正データシンボル列Ｐｘに対応する位置に、所定のマスク処理によってビット“０”のみとなるように構成された白色データシンボル列Ｗ４を配置する。
【００４７】
黒色データシンボル列Ｂの分散配置の詳細は次の通りである。即ち、分散二次元コードシンボル列Ｘを生成する際、二次元コードシンボル列Ｚの黒色データシンボル列Ｂ１に対応する位置に誤り訂正データシンボル列Ｃｘを配置し、黒色データシンボル列Ｂ２に対応する位置に黒色データシンボル列Ｂ２を配置する。ここで、黒色データシンボル列Ｂ１は、図２に示すように、黒色データシンボル列Ｂの前半部分（シンボル数：２ｔ個）である。また、誤り訂正データシンボル列Ｃｘは、Ｒｅｅｄ−Ｓｏｌｏｍｏｎ符号により計算された分散二次元コードシンボル列Ｘの誤り訂正データシンボル列（シンボル数：２ｔ個）である。
【００４８】
また、分散二次元コードシンボル列Ｙを生成する際、二次元コードシンボル列Ｚの黒色データシンボル列Ｂ１に対応する位置に黒色データシンボル列Ｂ１を配置し、黒色データシンボル列Ｂ２に対応する位置に誤り訂正データシンボル列Ｃｙを配置する。ここで、黒色データシンボル列Ｂ２は、図２に示すように、黒色データシンボル列Ｂの後半部分（シンボル数：２ｔ個）である。誤り訂正データシンボル列Ｃｙは、Ｒｅｅｄ−Ｓｏｌｏｍｏｎ符号により計算された分散二次元コードシンボル列Ｙの誤り訂正データシンボル列（シンボル数：２ｔ個）である。
【００４９】
なお、誤り訂正データシンボル列Ｃｘ，Ｃｙはいずれも分散二次元コードシンボル列の中間に位置するので、前述の誤り訂正データシンボル列Ｐと同様にＲｅｅｄ−Ｓｏｌｏｍｏｎ符号の巡回性を利用して計算する。ＣｘはＳｘ，Ｂ２，Ｗ１，Ｒｘ，Ｗ３，Ｐｘ，Ａからなるデータシンボル列に対して計算され、ＣｙはＳｙ，Ｂ１，Ｒｙ，Ｗ２，Ｐｙ，Ｗ４，Ａからなるデータシンボル列に対して計算される。
【００５０】
なお、黒色データシンボル列Ｂ、ランダムデータシンボル列Ｒ及び誤り訂正データシンボル列Ｐを分散二次元コードシンボル列Ｘ，Ｙに分散配置する方法としては、上記のように二次元コードシンボル列Ｚの各シンボル列を半分ずつコピーする方法に限らず、ＸとＹの論理和をとることにより二次元コードシンボル列Ｚのシンボル列が再現される分散方法であれば他の方法でもよい。
【００５１】
また、黒色データシンボル列Ｂが所定のマスク処理によってビット“０”のみとなるように構成されている場合には、白色データシンボル列Ｗ１〜Ｗ４は所定のマスク処理によってビット“１”のみとなるように構成する。
【００５２】
次に、分散二次元コードシンボル列Ｘを用いて二次元コードＱＲｘを生成し、分散二次元コードシンボル列Ｙを用いて二次元コードＱＲｙを生成する（ステップＳ７）。
【００５３】
より詳しくは、ＱＲコード仕様書に規定された方法に従って、分散二次元コードシンボル列Ｘを所定のマトリックスに配置し、所定のマスク処理を施すことにより二次元コードＱＲｘを生成する。分散二次元コードシンボル列Ｙについても同様にして二次元コードＱＲｙを生成する。
【００５４】
図４は、上記の方法により生成された二次元コードＱＲｘ，ＱＲｙを示している。図４（ａ）の二次元コードＱＲｘは、第２の情報として“ＷＥＬＣＯＭＥ”を含んでいる。一方、図４（ｂ）の二次元コードＱＲｙは、第３の情報として“Ｕ．ＴＳＵＫＵＢＡ”を含んでいる。したがって、通常の読取り装置により二次元コードＱＲｘ及びＱＲｙを読み取ると、それぞれ“ＷＥＬＣＯＭＥ”及び“Ｕ．ＴＳＵＫＵＢＡ”が読み出される。
【００５５】
図５は、二次元コードＱＲｘと二次元コードＱＲｙを重ね合わせたもの、即ち両者の論理和をとった二次元コードＱＲｘｙを示している。この二次元コードＱＲｘｙは、例えば、二次元コードＱＲｘ及びＱＲｙのうち一方を白紙に印刷し、他方を透明シートに印刷し、それらを重ね合わせることにより得られる。あるいは、二次元コードＱＲｘ及びＱＲｙの両方を透明シートに印刷し、重ね合わせて白い台紙の上に置いてもよい。なお、ここで用いる印刷手法では、マトリックスを構成するモジュール（セル）のうちビット“１”（第１のビット）が配置されたモジュールを黒く印刷し、ビット“０”（第２のビット）が配置されたモジュールを白くなるように印刷する。
【００５６】
二次元コードＱＲｘｙの右端領域に含まれる文字データは、前述の第２の情報と第３の情報の論理和であって、Ｓｚに含まれる第１の情報ではない。しかし、ＱＲコードの誤り訂正能力によりＳｚのデータが訂正され、ＱＲｚの文字データ“ＳＥＣＲＥＴ  ＩＮＦＯ”を読み出すことができる。即ち、シンボル数２ｔの誤り訂正データシンボル列Ｐによりシンボル数ｔの文字データシンボル列の誤りが訂正される結果、図３の二次元コードＱＲｚと同じ文字列が読み出される。
【００５７】
上記のように、二次元コードＱＲｘ、ＱＲｙは、通常の読取り装置により、各々に格納された情報を読み出すことが可能である。即ち、二次元コードＱＲｘからは第２の情報（図４の例では“ＷＥＬＣＯＭＥ”）を読み出し、ＱＲｙからは第３の情報（図４の例では“Ｕ．ＴＳＵＫＵＢＡ”）を読み出すことができる。さらに、二次元コードＱＲｘと二次元コードＱＲｙを重ね合わせて得られる二次元コードＱＲｘｙからは、二次元コードＱＲｚと同じ情報を通常の読取り装置で読み取ることができる。
【００５８】
このように、本実施形態に係る二次元コードの生成方法によれば、重ね合わせて得られる二次元コードから読み取れる情報とは異なる情報を有する２つの二次元コードを生成することができる。また、いずれの二次元コードの読取りに対しても、特殊な読取り装置を用意する必要がないという利点を有する。
【００５９】
よって、例えば、二次元コードＱＲｘ、ＱＲｙがそれぞれに付された２つの商品を購入することで、新たに特別な情報を得るような仕組みを実現することができる。また、二次元コードＱＲｘ及びＱＲｙのいずれか一方を鍵として用いることもできる。この場合、例えば、鍵としての二次元コードを特定の者に対して電子メール等で配送する形態が考えられる。
【００６０】
さらに、本発明は、秘密情報を複数人で分散共有する技術である秘密分散法に応用することができる。この場合、（２，２）しきい値型を構成すること、即ち２枚のＱＲコードが揃えば秘密情報が復号できるが、片方のＱＲコードからは秘密情報が全く得られないことが保証される必要がある。この点については、シンボル列Ｓｘ，Ｓｙ，Ｓｚ，Ｒｘ，Ｒｙ がそれぞれ独立であり、かつランダムデータシンボル列Ｒｘ，Ｒｙに格納されたランダムなデータが一様分布に従うならば、二次元コードシンボル列Ｚのフォーマットを知っており、二次元コードＱＲｘ，ＱＲｙのいずれか一方を手にした攻撃者に対し、第１の情報は一切漏れないことが数学的に証明可能である。なお、埋め込み可能な秘密情報のデータシンボル数は、ＱＲコードのランダム誤り訂正可能シンボル数ｔに等しい。
【００６１】
安全性の確保された秘密分散法を利用して、経済的な価値を有するもの（金券等）の真贋のチェックや認証等にも本発明を利用することができる。この場合、二次元コードＱＲｘ及びＱＲｙのいずれか一方を金券等に印刷しておく。確認者は他方の二次元コードを有し、金券等に印刷された二次元コードに重ね合わせる。もし所定の情報を読取ることができれば、本物と判断することができる。認証の場合についても、ＩＤカード等に印刷されたＱＲコードと、確認者の有するＱＲコードとを重ね合わせることで同様に認証を行うことが可能である。
【００６２】
次に、シンボルの配置順序の変更について説明する。図４からわかるように、上記の方法で生成された二次元コードＱＲｘ，ＱＲｙでは、黒いモジュールや白いモジュールが連続して現れる部分が存在する。このため、情報の読み取りは可能であるものの、二次元コードとしては不自然にみえる場合がある。そこで、黒いシンボル及び白いシンボルを全体的に分散して配置させる方法について以下に説明する。
【００６３】
本方法では、図６に示すように、シンボル単位でシンボルの配置を変更する。
【００６４】
この配置変更は、二次元コードシンボル列Ｚ、分散二次元コードシンボル列Ｘ，Ｙの間でシンボルの位置を同期させて行う。即ち、図６に示すように、ある二次元コードシンボル列でシンボルの配置を変更した場合、他の２つの二次元コードシンボル列についても、対応する位置のシンボルの配置を変更する。このように本方法のシンボルの配置変更においては、Ｘ，Ｙ及びＺ間で縦の関係は維持される。
【００６５】
なお、ＱＲコードの場合、文字データシンボル列Ｓｘ，Ｓｙ，Ｓｚは二次元コードシンボル列の最初に配置しなければならないため、文字データシンボル列中のシンボルについては配置変更を行わない。
【００６６】
また、二次元コードシンボル列Ｚの黒色データシンボル列中のシンボルを他のシンボル列中のシンボルと交換するのが好ましい。これにより、黒色データシンボル列による黒いモジュールが連続する部分を減らすことができる。
【００６７】
以下、本方法の詳細について説明する。
【００６８】
まず、前述の生成方法と同様に、第１の情報、第２の情報及び第３の情報をいずれもｔ個のシンボルからなる文字データシンボル列Ｓｚ，Ｓｘ及びＳｙにそれぞれ変換する。
【００６９】
次に、二次元コードシンボル列Ｚを生成する。具体的には、まず、図６に示すように、先頭の文字データシンボル列Ｓｚに続いて、いずれも２ｔ個のシンボルから構成された空の黒色データシンボル列Ｂ１，Ｂ２と、いずれもｔ個のシンボルから構成され一様ランダムなデータが格納されたランダムデータシンボル列Ｒｘ，Ｒｙと、いずれもｔ個のシンボルから構成された空の誤り訂正データシンボル列Ｐｘ，Ｐｙとを配置する。ここで、黒色データシンボル列Ｂ１，Ｂ２及び誤り訂正データシンボル列Ｐｘ，Ｐｙは情報の格納されていない空のシンボル列である。
【００７０】
図６において、かっこ付きのシンボル列は、シンボルの配置変更を行う前は空であり、シンボルの配置変更を行った後にデータが格納されるものを示している。
【００７１】
その後、所定の手順に従って、シンボルの配置変更を行う。この配置変更は、任意の方法により、任意の数のシンボルに対して行ってよい。
【００７２】
次に、空の黒色データシンボル列Ｂ１，Ｂ２のシンボルが所定のマスク処理によってビット“１”のみとなるように、空の黒色データシンボル列Ｂ１，Ｂ２のシンボルにデータを順次格納する。
【００７３】
なお、本方法では、ＱＲコードのマスクが位置により変化することを考慮して、シンボルの配置変更を行ってから、黒色データシンボル列にデータを格納する方法を採っている。シンボルの配置変更方法によっては、黒色データシンボル列は分散するが、分散したシンボルにデータを順次格納していく。
【００７４】
次に、Ｒｅｅｄ−Ｓｏｌｏｍｏｎ符号により計算された誤り訂正データを空の誤り訂正データシンボル列Ｐｘ，Ｐｙのシンボルに順次格納する。シンボルの配置変更方法によっては、誤り訂正データシンボル列は分散するが、分散したシンボルにデータを順次格納していく。
【００７５】
なお、誤り訂正データシンボル列が分散している場合、符号全体を巡回させてもＱＲコード仕様書の方法で誤り訂正データを計算することができない。そこで、本方法では、Ｒｅｅｄ−Ｓｏｌｏｍｏｎ符号の消失訂正のアルゴリズムを用いる。誤り位置の分かっている２ｔ個のシンボルを訂正できるこのアルゴリズムは、シンボル位置の配置の問題に利用可能である。即ち、シンボル配置変更によって分散した誤り訂正データシンボル列を、２ｔ個のシンボルの消失とみなして、訂正データを計算することが可能である。つまり、二次元コードシンボル列Ｚが全体として符号語になるように、空の誤り訂正データシンボル列に格納するデータを決める。
【００７６】
上記方法により、二次元コードシンボル列Ｚを生成する。
【００７７】
次に、分散二次元コードシンボル列Ｘ，Ｙを生成する。具体的には、まず、先頭の文字データシンボル列Ｓｘに続いて、二次元コードシンボル列Ｚの黒色データシンボル列Ｂ２と、２ｔ個のシンボルから構成された空の誤り訂正データシンボル列Ｃｘと、ｔ個のシンボルから構成された空の白色データシンボル列Ｗ１と、二次元コードシンボル列Ｚのランダムデータシンボル列Ｒｘと、ｔ個のシンボルから構成された空の白色データシンボル列Ｗ３と、二次元コードシンボル列Ｚの誤り訂正データシンボル列Ｐｘとを配置する。黒色データシンボル列Ｂ２、ランダムデータシンボル列Ｒｘ及び誤り訂正データシンボル列Ｐｘについては、二次元コードシンボル列Ｚ内の対応データをコピーする。
【００７８】
その後、二次元コードシンボル列Ｚに施した手順と同じ手順で、シンボルの配置変更を行う。
【００７９】
次に、白色データシンボル列Ｗ１，Ｗ３のシンボルが所定のマスク処理によってビット“０”のみとなるように、空の白色データシンボル列Ｗ１，Ｗ３のシンボルにデータを順次格納する。シンボルの配置変更方法によっては、白色データシンボル列は分散するが、分散したシンボルにデータを順次格納していく。
【００８０】
次に、Ｒｅｅｄ−Ｓｏｌｏｍｏｎ符号により計算された誤り訂正データを空の誤り訂正データシンボル列Ｃｘのシンボルに順次格納する。シンボルの配置変更方法によっては、誤り訂正データシンボル列は分散するが、分散したシンボルにデータを順次格納していく。Ｃｘに格納する誤り訂正データは、前述のＲｅｅｄ−Ｓｏｌｏｍｏｎ符号の消失訂正のアルゴリズムを用いて計算する。
【００８１】
上記の方法により、分散二次元コードシンボル列Ｘを生成する。同様にして分散二次元コードシンボル列Ｙを生成する。
【００８２】
図７（ａ），（ｂ）は、上記のようにしてシンボルの配置変更を行って生成した二次元コードＱＲｘ’及びＱＲｙ’を示している。図４（ａ），（ｂ）の二次元コードに比べて同じ色で占められる領域が減少している。いずれの二次元コードからも図４の二次元コードＱＲｘ，ＱＲｙと同じ文字列を読み取ることができる。
【００８３】
図８（ａ）は、二次元コードＱＲｘ’及びＱＲｙ’の論理和をとった二次元コードＱＲｘｙ’を示している。通常の読取り装置を用いて二次元コードＱＲｘｙ’を読み取ると、図５のＱＲｘｙと同じ文字列を読み取ることができる。図８（ｂ）は二次元コードＱＲｘｙ’の誤り訂正後の二次元コードＱＲｚ’を示している。
【００８４】
以上、本発明の二次元コードの生成方法に係る実施形態について説明した。上記の実施形態の説明では、ランダムデータシンボル列Ｒには一様ランダムなデータを格納したが、安全性が要求されない場合には、ランダムデータシンボル列を省き、その分だけ文字データシンボル列の長さを長くしてもよい。さらに、二次元コードシンボル列Ｚと分散二次元コードシンボル列Ｘ，Ｙとに共通なデータを有する付加データシンボル列を文字データシンボル列に統合してもよい。この場合には、（２，２）しきい値型が構成されないため安全性を確保できないが、安全性よりも情報量が要求される用途には好適である。また、ＱＲコード以外の二次元コードを生成する場合には、誤り訂正符号として、Ｒｅｅｄ−Ｓｏｌｏｍｏｎ符号以外の誤り訂正符号（ｔシンボルのランダム誤りを訂正可能なもの）を用いてもよい。
【００８５】
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれないが、本発明の態様は、上述した実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更及び部分的削除が可能である。
【図１】
2014035734.tif 000003
【図２】
2014035734.tif 000004
【図３】
2014035734.tif 000005
【図４】
2014035734.tif 000006
【図５】
2014035734.tif 000007
【図６】
2014035734.tif 000008
【図７】
2014035734.tif 000009
【図８】
2014035734.tif 000010