(57)【要約】【課題】負荷の大きいパターンマッチング処理を必要とせずに、読み取りの際の二次元コードの回転の向きを特定できる二次元コードを生成する。【解決手段】本発明に係る二次元コード生成装置は、１単位の二次元コードが配置される矩形の領域を示すシンボルと、前記矩形の領域の各辺上に配置されるとともに、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する順番で配置される第１のパターン１０３及び第２のパターン１０４と、前記矩形の領域内に配置される情報を符号化した情報パターン１０６と、を有する二次元コード１００を生成する二次元コード生成手段を有する二次元コード生成装置。【選択図】図３
2011048638.tif 000002
【特許請求の範囲】
【請求項１】
１単位の二次元コードが配置される矩形の領域を示すシンボルと、
前記矩形の領域の各辺上に配置されるとともに、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する順番で配置される第１のパターン及び第２のパターンと、
前記矩形の領域内に配置される情報を符号化した情報パターンと、
を有する二次元コードを生成する二次元コード生成手段を有する二次元コード生成装置。
【請求項２】
前記情報は隣接する複数の前記二次元コードに分散して配置され、
前記第１のパターン及び前記第２のパターンは、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する位置に配置され、隣接する前記二次元コードそれぞれに共有される
請求項１記載の二次元コード生成装置。
【請求項３】
前記第１のパターン及び前記第２のパターンは、３ビット以上のビット列からなる
請求項１又は２記載の二次元コード生成装置。
【請求項４】
前記第１のパターン及び前記第２のパターンは、互いにビット反転した関係である
請求項１乃至３の何れかに記載の二次元コード生成装置。
【請求項５】
前記第１のパターン及び前記第２のパターンは、反転対称であるビット列からなる
請求項１乃至４の何れかに記載の二次元コード生成装置。
【請求項６】
前記第１のパターン及び前記第２のパターンに含まれる異なる値のビットの数の差が１以下である
請求項１乃至５の何れかに記載の二次元コード生成装置。
【請求項７】
前記情報は隣接する複数の前記二次元コードに分散して配置され、
前記第１のパターン及び前記第２のパターンは、複数列のビット列からなり、
前記矩形の領域の前記二次元コードが隣接し合う辺上において、前記第１のパターン及び前記第２のパターンの少なくとも１列のビット列は、隣接する前記二次元コードに共有される
請求項１乃至６の何れかに記載の二次元コード生成装置。
【請求項８】
前記第１のパターン及び前記第２のパターンは、前記矩形の領域の中心に対し、４回対称となる位置に配置される請求項１記載の二次元コード生成装置。
【請求項９】
画像情報を受け付ける画像情報受付手段と、
前記矩形の領域内に配置される情報を受け付ける配置情報受付手段と、
請求項１乃至８の何れかに記載の二次元コード生成装置と、
前記画像情報から得られる画像と生成された二次元コードを合成して合成画像を生成する合成画像生成手段と、
前記合成画像に基づいて、媒体に画像を形成する画像形成手段と、
を有する画像形成システム。
【請求項１０】
１単位の二次元コードが配置される矩形の領域を示すシンボルと、
前記矩形の領域の各辺上に配置されるとともに、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する順番で配置される第１のパターン及び第２のパターンと、
前記矩形の領域内に配置される情報を符号化した情報パターンと、
からなる二次元コードを読み込み、
前記第１のパターン及び前記第２のパターンの配置に基づいて、前記二次元コードの向きを特定する向き特定手段を有する二次元コード読み取り装置。
【請求項１１】
コンピュータを、
１単位の二次元コードが配置される矩形の領域を示すシンボルと、
前記矩形の領域の各辺上に配置されるとともに、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する順番で配置される第１のパターン及び第２のパターンと、
前記矩形の領域内に配置される情報を符号化した情報パターンと、
を有する二次元コードを生成する二次元コード生成手段として機能させるためのコンピュータプログラム。
【請求項１２】
コンピュータを、
１単位の二次元コードが配置される矩形の領域を示すシンボルと、
前記矩形の領域の各辺上に配置されるとともに、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する順番で配置される第１のパターン及び第２のパターンと、
前記矩形の領域内に配置される情報を符号化した情報パターンと、
からなる二次元コードを読み込み、
前記第１のパターン及び前記第２のパターンの配置に基づいて、前記二次元コードの向きを特定する向き特定手段として機能させるためのコンピュータプログラム。
【請求項１３】
１単位の二次元コードが配置される矩形の領域を示すシンボルと、
前記矩形の領域の各辺上に配置されるとともに、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する順番で配置される第１のパターン及び第２のパターンと、
前記矩形の領域内に配置される情報を符号化した情報パターンと、
からなる二次元コードが付された媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二次元コード生成装置、画像形成システム、二次元コード読み取り装置、コンピュータプログラム及び媒体に関する。
【背景技術】
【０００２】
特許文献１には、二次元のマトリックス内の３つの頂点に、各々の中心をあらゆる角度で横切る走査線において同じ周波数成分比が得られるパターンの位置決め用シンボルを配置した、二次元コードが記載されている。同文献記載の二次元コードでは、二次元のマトリックス内において位置決め用シンボルが占める割合が大きい。
【０００３】
特許文献２には、複数単位のドットコードから情報を再生する情報再生システムであって、マーカ及びパターンドットからなるパターンコードによりドットコードの読み取り基準点を求めるものが記載されている。同文献には、ドットコードが上下逆さまに読み取られたことを特定するためアドレスドットの両端に固定パターンを設けることが記載されているが、読み取りの際のドットコードの回転についての記載はない。
【０００４】
特許文献３には、複数のセルからなる２次元コードが記載されており、そのデコードの際には、２次元コードが付された印刷文書に対してＯＣＲ処理を行い、画像の方向を判定している。また、同文献記載の２次元コードは、コードの上下方向を表すためのパターンが設けられているが、読み取りの際のドットコードの回転についての記載はない。
【０００５】
特許文献４には、ｘ方向及びｙ方向にアドレスコードを埋め込んだ埋め込みデータブロックが記載されている。同文献記載の埋め込みデータブロックは、埋め込まれたアドレスコードからその未知の次元が測定され、デコードされる。埋め込まれたアドレスコードの識別には、負荷の大きいパターンマッチング処理である相関プロセスが使用されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第２９３８３３８号公報
【特許文献２】特許第２９５２１７０号公報
【特許文献３】特開２００６−８５６７９号公報
【特許文献４】特開平８−２３５３３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の解決しようとする課題は、負荷の大きいパターンマッチング処理を必要とせずに、読み取りの際の二次元コードの回転の向きを特定できる二次元コードを生成することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の請求項１に記載の二次元コード生成装置は、１単位の二次元コードが配置される矩形の領域を示すシンボルと、前記矩形の領域の各辺上に配置されるとともに、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する順番で配置される第１のパターン及び第２のパターンと、前記矩形の領域内に配置される情報を符号化した情報パターンと、を有する二次元コードを生成する。
【０００９】
また、本発明の請求項２に記載の二次元コード生成装置は、請求項１記載の二次元コード生成装置であって、前記情報は隣接する複数の前記二次元コードに分散して配置され、前記第１のパターン及び前記第２のパターンは、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する位置に配置され、隣接する前記二次元コードそれぞれに共有される。
【００１０】
また、本発明の請求項３に記載の二次元コード生成装置は、請求項１又は２に記載の二次元コード生成装置であって、前記第１のパターン及び前記第２のパターンは、３ビット以上のビット列からなる。
【００１１】
また、本発明の請求項４に記載の二次元コード生成装置は、請求項１乃至３の何れかに記載の二次元コード生成装置であって、前記第１のパターン及び前記第２のパターンは、互いにビット反転した関係である。
【００１２】
また、本発明の請求項５に記載の二次元コード生成装置は、請求項１乃至４の何れかに記載の二次元コード生成装置であって、前記第１のパターン及び前記第２のパターンは、反転対称であるビット列からなる。
【００１３】
また、本発明の請求項６に記載の二次元コード生成装置は、請求項１乃至５の何れかに記載の二次元コード生成装置であって、前記第１のパターン及び前記第２のパターンに含まれる異なる値のビットの数の差が１以下である。
【００１４】
また、本発明の請求項７に記載の二次元コード生成装置は、請求項１乃至６の何れかに記載の二次元コード生成装置であって、前記情報は隣接する複数の前記二次元コードに分散して配置され、前記第１のパターン及び前記第２のパターンは、複数列のビット列からなり、前記矩形の領域の前記二次元コードが隣接し合う辺上において、前記第１のパターン及び前記第２のパターンの少なくとも１列のビット列は、隣接する前記二次元コードに共有される。
【００１５】
また、本発明の請求項８に記載の二次元コード生成装置は、請求項１に記載の二次元コード生成装置であって、前記第１のパターン及び前記第２のパターンは、前記矩形の領域の中心に対し、４回対称となる位置に配置される。
【００１６】
また、本発明の請求項９に記載の画像形成システムは、画像情報を受け付ける画像情報受付手段と、前記矩形の領域内に配置される情報を受け付ける配置情報受付手段と、請求項１乃至８の何れかに記載の二次元コード生成装置と、前記画像情報から得られる画像と生成された二次元コードを合成して合成画像を生成する合成画像生成手段と、前記合成画像に基づいて、媒体に画像を形成する画像形成手段と、を有する。
【００１７】
また、本発明の請求項１０に記載の二次元コード読み取り装置は、１単位の二次元コードが配置される矩形の領域を示すシンボルと、前記矩形の領域の各辺上に配置されるとともに、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する順番で配置される第１のパターン及び第２のパターンと、前記矩形の領域内に配置される情報を符号化した情報パターンと、からなる二次元コードを読み込み、前記第１のパターン及び前記第２のパターンの配置に基づいて、前記二次元コードの向きを特定する向き特定手段を有する。
【００１８】
また、本発明の請求項１１に記載のコンピュータプログラムは、コンピュータを、１単位の二次元コードが配置される矩形の領域を示すシンボルと、前記矩形の領域の各辺上に配置されるとともに、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する順番で配置される第１のパターン及び第２のパターンと、前記矩形の領域内に配置される情報を符号化した情報パターンと、を有する二次元コードを生成する二次元コード生成手段として機能させる。
【００１９】
また、本発明の請求項１２に記載のコンピュータプログラムは、コンピュータを、１単位の二次元コードが配置される矩形の領域を示すシンボルと、前記矩形の領域の各辺上に配置されるとともに、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する順番で配置される第１のパターン及び第２のパターンと、前記矩形の領域内に配置される情報を符号化した情報パターンと、からなる二次元コードを読み込み、前記第１のパターン及び前記第２のパターンの配置に基づいて、前記二次元コードの向きを特定する向き特定手段として機能させる。
【００２０】
また、本発明の請求項１３に記載の媒体は、１単位の二次元コードが配置される矩形の領域を示すシンボルと、前記矩形の領域の各辺上に配置されるとともに、前記矩形の領域の対向する辺上において、対応するパターンが互いに対向する順番で配置される第１のパターン及び第２のパターンと、前記矩形の領域内に配置される情報を符号化した情報パターンと、からなる二次元コードが付された媒体。
【発明の効果】
【００２１】
上記請求項１に記載の二次元コード生成装置によれば、負荷の大きいパターンマッチング処理を必要とせずに、読み取りの際の二次元コードの回転の向きを特定できる二次元コードを生成できる。
【００２２】
また、上記請求項２に記載の二次元コード生成装置によれば、複数単位の二次元コードを隣接して配置できる。
【００２３】
また、上記請求項３に記載の二次元コード生成装置によれば、第１のパターン及び第２のパターンを読み取る際に、誤り耐性を持たせることができる。
【００２４】
また、上記請求項４に記載の二次元コード生成装置によれば、本請求項に特定される構成を持たない二次元コード生成装置に比して、第１のパターン及び第２のパターンを読み取る際の、誤り耐性を大きくすることができる。
【００２５】
また、上記請求項５に記載の二次元コード生成装置によれば、第１のパターン及び第２のパターンを読み取る際に、ビット列の向きを反転させる必要がない。
【００２６】
また、上記請求項６に記載の二次元コード生成装置によれば、第１のパターン及び第２のパターンが視覚的に目立たない。
【００２７】
また、上記請求項７に記載の二次元コード生成装置によれば、複数列からなる第１のパターン及び第２のパターンを隣接する二次元コードで共有できる。
【００２８】
また、上記請求項８に記載の二次元コード生成装置によれば、二次元コードの向きにかかわらず、いずれか一のシンボルからの相対位置に基づいて、第１のパターン及び第２のパターンの位置を特定できる二次元コードを生成できる。
【００２９】
また、上記請求項９に記載の画像形成システムによれば、負荷の大きいパターンマッチング処理を必要とせずに、１単位の二次元コードが配置される矩形の領域の形状にかかわらず、二次元コードの向きを特定できる二次元コードを含む画像を媒体に形成できる。
【００３０】
また、上記請求項１０に記載の二次元コード読み取り装置によれば、負荷の大きいパターンマッチング処理を必要とせずに、１単位の二次元コードが配置される矩形の領域の形状にかかわらず、二次元コードの向きを特定して二次元コードを読み取れる。
【００３１】
また、上記請求項１１に記載のコンピュータプログラムによれば、コンピュータにより、負荷の大きいパターンマッチング処理を必要とせずに、１単位の二次元コードが配置される矩形の領域の形状にかかわらず、二次元コードの向きを特定できる二次元コードを生成できる。
【００３２】
また、上記請求項１２に記載のコンピュータプログラムによれば、コンピュータにより、負荷の大きいパターンマッチング処理を必要とせずに、１単位の二次元コードが配置される矩形の領域の形状にかかわらず、二次元コードの向きを特定して二次元コードを読み取れる。
【００３３】
また、上記請求項１３に記載の媒体によれば、負荷の大きいパターンマッチング処理を必要とせずに、１単位の二次元コードが配置される矩形の領域の形状にかかわらず、媒体に付与された二次元コードの向きを特定できる。
【図面の簡単な説明】
【００３４】
【図１】本発明の第１の実施形態である二次元コード生成装置の機能ブロック図である。
【図２】二次元コード生成部の処理を示すフローチャートである。
【図３】二次元コード生成部（図１参照）により生成された１単位の二次元コードの例を示す図である。
【図４】二次元コードのコード枠のみを示した図である。
【図５】第１のパターン及び第２のパターンの配置の例である。
【図６】第１のパターン及び第２のパターンの配置の例である。
【図７】６単位の二次元コードを隣接して配置した二次元コードの例を示す図である。
【図８】二次元コードの回転時の読み込み方向とビット列の方向を示す図である。
【図９】第１のパターン及び第２のパターンが複数列のビット列からなる二次元コードを示す図である。
【図１０】画像形成システムの機能ブロック図である。
【図１１】二次元コード読み取り装置の機能ブロック図である。
【図１２】二次元コード認識部の処理を示すフローチャートである。
【発明を実施するための形態】
【００３５】
図１は、本発明の第１の実施形態である二次元コード生成装置１の機能ブロック図である。
【００３６】
二次元コード生成装置１は、物理的には汎用の情報処理装置である、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、入出力インタフェースを有する一般的なコンピュータを用いて実現される。そして、かかるコンピュータ上で、コンピュータを二次元コード生成装置１として動作させるためのコンピュータプログラムを実行することにより、二次元コード生成装置１は仮想的に実現される。コンピュータを二次元コード生成装置１として動作させるためのコンピュータプログラムは、たとえばＤＶＤ−ＲＯＭ（ＤＶＤ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の任意の情報記録媒体に記録して提供されても、インターネットに代表される公衆回線等の電気通信回線を介して、コンピュータ読み取り可能な電気信号として提供されてもよい。もちろん、二次元コード生成装置１を実現するにあたり用いる情報処理装置は一般的なコンピュータに限られず、マイクロコントローラにより実現しても、またＤＳＰ（デジタルシグナルプロセッサ）等を用いて専用の装置を製作してもよい。また、二次元コード生成装置１は、単独で動作可能な機器として構成しても、コピー機やファクシミリ等の事務機器に実装あるいは追加されるモジュールとして構成されてもよい。
【００３７】
なお、図示された二次元コード生成装置１の機能ブロックは、コンピュータプログラムにより実現される二次元コード生成装置１を、その機能に着目して説明の便宜上示したものであり、必ずしも各機能ブロックが物理的に存在する必要はない。
【００３８】
情報受付部２は、二次元コードに変換しようとする情報を外部より受け付けるインタフェースである。この情報受付部２は、情報を受け付けるものであればどのようなものであってもよく、具体的には、コンピュータ上で実行されているプロセス間で情報の入出力を行う、いわゆるソケットであっても、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネット等の公衆回線を含むＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等に接続された電気通信回線、任意の情報記録媒体読取装置等であってもよい。
【００３９】
ここで、二次元コードとは、情報を二値化し面上に配置した記録手段を指している。二次元コードは、通常矩形の領域内に予め定められた数のドットを格子状の規則的な配列により配置したパターンにより構成されている。本明細書では、特に１の矩形の領域内に配置されたパターンを１単位の二次元コードと呼ぶ。また、二次元コードに変換しようとする情報の情報長が、１単位の二次元コードに埋め込まれる情報長より長い場合には、情報は複数単位の二次元コードに分割して配置される。
【００４０】
１単位の二次元コードが配置される矩形の領域の形状は、長方形であっても、正方形であってもよい。さらに、二次元コードが配置される面は平面に限定されず、曲面であってもよい。
【００４１】
符号化部３は、受け付けられた情報を符号化する。情報は、誤り訂正可能な符号化方式により符号化されることが好ましく、そのような方式としては、リードソロモン符号、ＢＣＨ符号等が例示される。その他にも、符号化部３は、情報を予め圧縮して冗長性を除去し、その情報長を短くするハフマン符号、算術符号等による圧縮処理や、符号化された情報中に１及び０の値が均等に分散して現れるようにするためのマスク処理などを行ってもよい。
【００４２】
符号化された情報は二次元コード生成部４へと受け渡され、二次元コードが生成される。
【００４３】
図２は、二次元コード生成部４の処理を示すフローチャートである。二次元コード生成部４は、符号化された情報が受け渡されると、まず、ステップＳ０１において、情報を埋め込む二次元コードの枠となるコード枠を生成する。コード枠は、後述するように、１単位の二次元コードが配置される矩形の領域を示すシンボルと、該矩形の領域の各辺上に配置される第１のパターン及び第２のパターンを含む。コード枠が生成されると、続いてステップＳ０２において、コード枠内に符号化された情報をドットのパターンである情報パターンとして配置する。そして、ステップＳ０３において、全ての情報が二次元コード内に配置されたか否かを判定する。これは、符号化された情報の情報長が１単位の二次元コードに配置される情報の情報長より長い場合に、配置しきれなかった情報が残っているかどうかを判定するものである。全ての情報が二次元コードに配置されていれば、二次元コード生成部４はその処理を終了する。まだ二次元コードに配置されていない情報がある場合には、ステップＳ０４へと進み、すでに生成されている二次元コードに、さらに１単位の二次元コードのコード枠を追加する。コード枠を追加する位置は任意であるが、すでに生成されている二次元コードに隣接し、かつ生成される二次元コード全体の外形が、予め定められた領域や幅に収まるよう、規則的に追加するとよい。コード枠が追加されると、再度ステップＳ０２に戻り、以下、全ての情報が二次元コード内に配置されるまで繰り返す。
【００４４】
なお、ここで示した二次元コード生成部４の動作は一例であり、他のアルゴリズムを用いてもよい。そのようなものとしては、例えば、符号化された情報を格納するために必要な二次元コードの単位数を予め算出しておき、必要な数のコード枠を予め生成しておく、あるいは、コード枠を順次追加するのではなく、必要な全ての二次元コードが生成された後にそれらを合成する等が挙げられる。
【００４５】
図１に戻り、生成された二次元コードは、二次元コード出力部５より出力される。二次元コード出力部５は、生成された二次元コードを出力するものであればどのようなものであってもよく、例えば、情報受付部２と同様に、入出力インタフェースであるソケットとしてよい。出力される二次元コードの形式は特に問わないが、ラスタイメージ等の画像データとするとよい。
【００４６】
続いて、本実施形態の二次元コード生成装置１により生成される二次元コードについて詳細に説明する。図３は、二次元コード生成部４（図１参照）により生成された１単位の二次元コード１００の例を示す図である。なお、図中の破線は、説明の便宜上付した線であって、二次元コード１００のパターンの一部を構成するものではない。
【００４７】
符号１０１で示される領域は、二次元コード１００が配置される矩形の領域１０１である。なお、ここでは、二次元コード１００を構成するドットが縦４７列×横４７列の格子状に配置される正方形の領域を領域１０１としているが、必ずしも正方形には限定されず、長方形でもよい。また、縦・横それぞれのドットの列数は任意である。また、ここで示す二次元コード１００は、１ビットの値として０を表すドットを、ドットが記録されない空欄で、１ビットの値として１を表すドットを、黒点で表しているが、必ずしもこれに限定されず、例えば、０及び１の値を異なる形状のドットとしたり、異なる色彩のドットとしたりしてよい。また、ドットは必ずしも０又は１の２値を示すものには限定されず、濃淡あるいは色彩により、１ドットで３値以上の値を示すものとしてもよい。
【００４８】
領域１０１の４隅には、領域１０１を示すシンボルであるランドマークパターン１０２が配置されている。ランドマークパターン１０２は、図示したとおり、他のドットを形成する黒点より大きいサイズの黒点であり、ランドマークパターン１０２を検出することにより領域１０１の位置が特定される。なお、ランドマークパターン１０２の形状は、図示した円形に限定されず、他のドットと区別して検出される形状であればどのような形状であってもよい。あるいは、複数のドットを特定のパターンで配置することによりランドマークパターン１０２としてもよい。そのようなパターンとしては、例えば、縦３列×横３列からなる領域に全て黒点を配置するパターン等がある。さらに、ランドマークパターン１０２の位置は、領域１０１の４隅に限定されない。他の配置の例としては、領域１０１の各辺の中点に配置する等が挙げられる。
【００４９】
さらに、領域１０１の各辺には、第１のパターン１０３及び第２のパターン１０４が、それぞれ少なくとも１つ配置される。本実施形態では、第１のパターン１０３は“１０１”を示すドット列であり、第２のパターン１０４は“０１０”を示すドット列であり、各辺上にそれぞれ１つずつ配置されている。この第１のパターン１０３及び第２のパターン１０４の配置については後述する。
【００５０】
そして、ランドマークパターン１０２、第１のパターン１０３及び第２のパターン１０４によりコード枠１０５が構成される。コード枠１０５は、異なる情報が埋め込まれた互いに異なる二次元コードについても共通である。領域１０１のうち、コード枠１０５以外の領域には、情報が埋め込まれる情報パターン１０６が配置される。本実施形態では、縦４７列×横４７列のうち、コード枠が占める２８ビットを除く２１８１ビットの情報が情報パターン１０６に埋め込まれる。
【００５１】
図４は、二次元コード１００のコード枠１０５のみを示した図である。同図では、４つのランドマークパターンを区別するため、各々に符号１０２ａ〜１０２ｄを付した。また、第１のパターン１０３は白抜きの矩形で、第２のパターン１０４はハッチングを施した矩形で示した。同図に示したとおり、ランドマークパターン１０２ａ及びランドマークパターン１０２ｄには第１のパターン１０３及び第２のパターン１０４が隣接しており、ランドマークパターン１０２ｂには２つの第１のパターン１０３が、ランドマークパターン１０２ｃには２つの第２のパターン１０４が隣接している。このことを利用すれば、二次元コード１００の向きが特定される。
【００５２】
すなわち、二次元コード１００を二次元コード読み取り装置（後述する）で読み込む際には、二次元コード１００の回転の向きは必ずしも明らかではない。このとき、いずれか一のランドマークパターン１０２（１０２ａ〜１０２ｄのいずれであるかは不明である）に着目し、それに隣接する２つの第１のパターン１０３及び／又は第２のパターン１０４を識別すれば、その配置により、着目しているランドマークパターン１０２がランドマークパターン１０２ａ〜１０２ｄのいずれであるかが特定される。たとえば、着目しているランドマークパターン１０２に隣接するのが両方とも第１のパターン１０３であれば、そのランドマークパターン１０２はランドマークパターン１０２ｂであり、着目しているランドマークパターン１０２に隣接するのが両方とも第２のパターン１０４であれば、そのランドマークパターン１０２はランドマークパターン１０２ｃである。着目しているランドマークパターン１０２に第１のパターン１０３及び第２のパターン１０４が隣接している場合は、そのランドマークパターン１０２はランドマークパターン１０２ａ又はランドマークパターン１０２ｄのいずれかであるが、ランドマークパターン１０２ａと隣接する第１のパターン１０３及び第２のパターン１０４の配置と、ランドマークパターン１０２ｄと隣接する第１のパターン１０３及び第２のパターン１０４の配置は互いに鏡像の関係になっているため、両者は判別される。
【００５３】
このように第１のパターン１０３及び第２のパターン１０４を配置する条件は、対向する辺上に配置されたパターンの配置の順番を、それぞれ対応するパターンが互いに対向するようにすることである。すなわち、向かい合うパターンである、図中破線矢印で示した位置関係にあるパターンを、互いに等しいパターンとすればよい。
【００５４】
ここで、第１のパターン１０３及び第２のパターン１０４の辺上の位置について説明する。まず、第１のパターン１０３及び第２のパターン１０４は、図５に示す様に、二次元コード１００の中心Ｏに対して４回対称となる位置に配置されることが好ましい。このことは、二次元コード１００の領域１０１の隅から辺上を時計回りに辿った位置に最初に配置される第１のパターン１０３又は第２のパターン１０４までの距離ｄ１が全て等しく、また、領域１０１の隅から辺上を反時計回りに辿った位置に最初に配置される第１のパターン１０３又は第２のパターン１０４までの距離ｄ２が全て等しいと言い換えられる。このように配置すると、二次元コード１００を読み取る際、二次元コード１００の回転角度にかかわらず、任意のランドマークパターン１０２に隣接する第１のパターン１０３及び／又は第２のパターン１０４の位置は常に一定となる。そのため、ランドマークパターン１０２からの相対位置に基づいて第１のパターン１０３及び／又は第２のパターン１０４の位置が特定される。
【００５５】
また、図６に示す様に、第１のパターン１０３及び第２のパターン１０４は、領域１０１の対向する辺上の対応する位置に配置されることが好ましい。このことは、二次元コード１００の領域１０１の対向する辺上の対向する位置に配置された第１のパターン１０３又は第２のパターン１０４のそれぞれに最も近い領域１０１の隅までの距離が等しいと言い換えられる。すなわち、図中ｄ１として示された距離は互いに等しく、ｄ２、ｄ３およびｄ４として示された距離についても同様である。このように配置すると、二次元コード１００を複数隣接して配置する際に、その隣接する辺において、第１のパターン１０３及び第２のパターン１０４が２つの二次元コード１００で共有される。
【００５６】
図７は、６単位の二次元コード１００ａ〜１００ｆを隣接して配置した二次元コードの例を示す図である。図中、二次元コード１００ａと二次元コード１００ｂの隣接する辺上では、ランドマークパターン１０２ａｂ、第１のパターン１０３ａｂ、第２のパターン１０４ａｂ及びランドマークパターン１０２ａｂｄｅが二次元コード１００ａと二次元コード１００ｂに共有されている。なお、ランドマークパターン１０２ａｂｄｅは、さらに二次元コード１００ｄと二次元コード１００ｅに共有されている。そのため、図中破線で示した第１のパターン１０３ａｂは、同図上で二次元コード１００ａの右辺上に位置すると同時に、二次元コード１００ｂの左辺上に位置することになり、図６において説明したように、対向する辺上に配置される第１のパターン１０３又は第２のパターン１０４は、ちょうど対向する位置に配置されることになる。第２のパターン１０４ａｂ及び、明示しない他の第１のパターン１０３及び第２のパターン１０４についても同様である。
【００５７】
なお、図５及び図６の説明にあたり、本実施形態では、ランドマークパターン１０２を領域１０１の隅に配置しているため、第１のパターン１０３及び第２のパターン１０４と隅までの距離を、各ランドマークパターン１０２までの距離として示した。
【００５８】
なお、図６に示した二次元コード１００において、さらに、図５に示したように、４回対称となる位置に第１のパターン１０３及び第２のパターン１０４を配置するためには、ｄ１＝ｄ２＝ｄ３＝ｄ４とすればよいことになる。これもまた、第１のパターン１０３及び第２のパターン１０４の好ましい配置である。
【００５９】
続いて、第１のパターン１０３及び第２のパターン１０４の構成について説明する。
【００６０】
第１のパターン１０３と第２のパターン１０４は、両者が区別できるものであればどのようなものであってもよい。例えば、第１のパターン１０３を“１”を示すドット、第２のパターン１０４を“０”を示す空欄としてもよい。しかしながら、第１のパターン１０３及び第２のパターン１０４は、３ビット以上のビット列とすることが好ましい。なぜならば、３ビット以上のビット列であれば、誤り訂正能力を有するからである。３ビットのビット列であれば、１ビットの誤り訂正能力を有する。誤りは、二次元コード１００を生成する際の不良や、二次元コード１００が付与された媒体の汚れや傷、読み取り時の誤差などにより発生する。この誤り訂正能力は、ビット列のビット数を増加させるに従い増大する。
【００６１】
また、第１のパターン１０３及び第２のパターン１０４は、互いをビット反転した関係にあるものとすることが好ましい。このようにすると、第１のパターン１０３を構成するビット列と第２のパターン１０４を構成するビット列とのハミング距離が最大となり、両者を区別する上での誤り訂正能力が高くなるためである。
【００６２】
さらに、第１のパターン１０３及び第２のパターン１０４は、反転対称であるビット列からなることが好ましい。本実施形態の第１のパターン１０３及び第２のパターン１０４は、それぞれ、“１０１”及び“０１０”を示しており、反転対称である。このようなパターンは、外には、“１００１００１”や“１０１０１０１”等が挙げられる。このようにすると、第１のパターン１０３及び第２のパターン１０４の認識が、読み込みの向きに依存しない。このことを図８を用いて説明する。
【００６３】
図８（ａ）は、二次元コード１００を示しており、ビット列の読み込みが図中の領域１０１の外側に矢印で示したように、左から右及び上から下に行われるものとする。そして、第１のパターン１０３及び第２のパターン１０４は、両者を示す矩形の中に矢印で示したように、ビット列の読み込み方向と等しい方向にそのビット列が配置される。
【００６４】
そして、同じ二次元コード１００を読み込む際に、該二次元コード１００が任意の角度、この例では１８０°回転していると、同図（ｂ）に示す様に、ビット列の読み込みの方向と、第１のパターン１０３及び第２のパターン１０４を構成するビット列の配置の方向が一致しない。このような場合にも第１のパターン１０３及び第２のパターン１０４を認識するには、そのビット列の向きを反転させなければならないが、第１のパターン１０３及び第２のパターン１０４を構成するビット列が反転対称であれば、そのような必要はない。
【００６５】
加えて、第１のパターン１０３及び第２のパターン１０４を構成するビット列に含まれる異なる値のビットの数の差が１以下であることが好ましい。このことは、本実施形態のように、第１のパターン１０３及び第２のパターン１０４が二値のビット列により構成されている場合には、第１のパターン１０３に含まれる“０”の数と“１”の数の差が１以下であり、第２のパターン１０４についても同様であることを意味している。このようにすると、第１のパターン１０３及び第２のパターン１０４に含まれる“０”と“１”の数がほぼ均等となるため、二次元コード１００を視認した際に、第１のパターン１０３及び第２のパターン１０４が目立たない。
【００６６】
続いて、図９は第１のパターン１０３及び第２のパターン１０４が複数列のビット列からなる二次元コード１００を示す図である。同図には、二次元コード１００ａ及び二次元コード１００ｂが隣接して配置されている様子が示されている。図中、破線で示したのは二次元コード１００ａが配置される領域１０１ａ、一点鎖線で示したのは二次元コード１００ｂが配置される領域１０１ｂである。そして、同図の例では、第１のパターン１０３及び第２のパターン１０４はそれぞれ２列のビット列からなる。このとき、二次元コード１００ａと二次元コード１００ｂが隣接する位置では、ビット列１０７が両者に共有されている。このため、第１のパターン１０３及び第２のパターン１０４の互いに隣接する辺上では、第１のパターン１０３ａｂ及び第２のパターン１０４ａｂのビット列のうち、ビット列１０７上に位置するビット列が隣接する第１のパターン１０３及び第２のパターン１０４に共有されることになる。
【００６７】
なお、この例では第１のパターン１０３及び第２のパターン１０４をそれぞれ２列のビット列としたが、これに限定されず、３列以上のビット列からなるものとしてもよい。また、第１のパターン１０３及び第２のパターン１０４のビット列のうち、隣接する二次元コードに共有されるビット列は１列としたが、２列以上としてもよく、少なくとも１列を共有すればよい。一般に、第１のパターン１０３及び第２のパターン１０４がＭ列のビット列により構成され、隣接する二次元コードに共有されるビット列をＮ列とすると（Ｍ、Ｎは共に１以上の自然数）、二次元コード１００ａ及び二次元コード１００ｂが隣接される位置に配置される第１のパターン１０３ａｂ及び第２のパターン１０４ａｂは
２（Ｍ−Ｎ）＋Ｎ＝２Ｍ−Ｎ
列のビット列からなる。Ｎが奇数であれば第１のパターン１０３ａｂ及び第２のパターン１０４ａｂは奇数列のビット列からなり、Ｎが偶数であれば第１のパターン１０３ａｂ及び第２のパターン１０４ａｂは偶数列のビット列からなる。
【００６８】
続いて、本発明の第２の実施形態である画像形成システム１０を説明する。
【００６９】
図１０は、画像形成システム１０の機能ブロック図である。画像形成システム１０は、電子データである画像情報と二次元コードに変換する情報を受け付け、二次元コードを生成し、画像情報から生成される画像と合成して合成画像を得、任意の媒体の表面に合成画像を形成するシステムである。ここで、画像情報は、視覚的に認識される画像を形成する元となる電子データであればどのようなものであってもよく、例えば、文書データや写真データなどである。また、媒体は、その表面に画像を形成するものであり、例えば、紙や梱包材、商品等の立体物そのもの等どのようなものであってもよい。さらに、画像の形成方法は特定の方法に限定されず、印刷、レーザマーキングなど視覚的に知覚される画像を形成する方法であればどのようなものであってもよい。本実施形態では、文書データを画像情報とし、紙に文書を印刷する印刷システムを例として説明する。
【００７０】
画像情報受付部１１及び情報受付部１２は、それぞれ、外部より画像情報及び二次元コードに変換する情報を受け付ける。すなわち、画像情報受付部１１は、画像情報を受け付ける画像情報受付手段として機能し、情報受付部１２は、二次元コードが配置される矩形の領域内に配置される情報を受け付ける配置情報受付手段として機能する。画像情報受付部１１は、画像情報を受け付ける入力インタフェースであればどのようなものであってもよく、ソケット、電気通信回線や情報記録媒体読取装置等が例示される。情報受付部１２もまた、情報を受け付ける入力インタフェースであればどのようなものであってもよい。受け付ける情報を受け付けるにあたっては、画像情報毎に別途情報を受け付けてもよく、電子データである画像情報自体を情報として受け付けてもよい。あるいは、画像情報に含まれる特定の情報を受け付けるものであってもよい。画像情報に含まれる特定の情報とは、特に限定されないが、例えば、画像情報中に含まれるテキスト情報等が挙げられる。
【００７１】
画像情報受付部１１により受け付けられた画像情報は、ＲＩＰ１３（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）によりラスタイメージに変換され、合成部１４へと受け渡される。情報受付部１２により受け付けられた情報は、二次元コード生成装置１へと受け渡され、二次元コードが生成される。二次元コード生成装置１は、第１の実施形態としてすでに説明したものと同様のものである。生成された二次元コードは、合成部１４へと受け渡される。
【００７２】
画像情報から得られる画像と二次元コードを合成し、合成画像を生成する合成画像生成手段として機能する合成部１４では、画像のラスタイメージと二次元コードを合成して合成画像を生成し、印刷機１５へと受け渡す。
【００７３】
画像形成手段として機能する印刷機１５は、合成画像を紙に印刷し、画像を形成する。形成される画像は白黒画像であっても、カラー画像であってもよい。また、二次元コードは、二次元コードを構成する１ビットの情報を示す白または黒の点の集合として表現され、白の点は何ら印刷がなされない紙の地色により、黒の点は印刷により形成された点により形成される。しかしながらこれに限定はされず、白または黒の点をそれぞれ別の色（例えば、赤と青等）で形成してもよいし、黒の点を可視光線で不可視または視認しづらい色のインク又はトナーを用いて形成し、一見して生成された画像に二次元コードが含まれていると認識できないようにしてもよい。かかる場合、二次元コードは、画像が形成されない空き領域に形成しても、あるいは形成されている画像の上に重ねて形成するようにしてもよい。あるいは、二次元コードを画像が形成された紙の裏面に形成するようにしてもよい。
【００７４】
かかる画像形成システム１０により、第１の実施形態で説明した二次元コードが付与された媒体が得られる。
【００７５】
続いて、本発明の第３の実施形態である二次元コード読み取り装置２０を説明する。
【００７６】
図１１は、二次元コード読み取り装置２０の機能ブロック図である。
【００７７】
二次元コード読み取り装置２０もまた、物理的には汎用の情報処理装置である一般的なコンピュータ上で、コンピュータを二次元コード読み取り装置２０として動作させるためのコンピュータプログラムを実行することにより実現してよい。もちろん、専用の装置を製作してもよく、そのような装置はユーザが携帯して持ち運べるようなものであってもよい。
【００７８】
画像取得部２１は、媒体上に形成された、例えば、紙の表面に印刷されている二次元コードを画像データとして取り込む画像取得手段である。具体的には、カメラやスキャナを画像取得部２１として用いてよい。あるいは、外部の機器により得られた画像データを単に受け付ける入力インタフェースであってもよい。
【００７９】
二次元コード認識部２２は、二次元コードを読み込む二次元コード読み込み手段として機能し、画像データに含まれる二次元コードを認識して、二次元コードに埋め込まれたビット列を取り出す。このとき、二次元コード認識部２２は、第１のパターン及び第２のパターンの配置に基づいて、認識した二次元コードの向きを特定しており、向き特定手段として機能している。この動作については後述する。
【００８０】
続いて、二次元コードから取り出されたビット列は符号化されているので、復号部２３によりかかるビット列を復号し、二次元コードに埋め込まれていた情報を得る。
【００８１】
復号された情報は情報出力部２４へ受け渡され、任意の用途に利用される。この用途は、特に限定されない。例示すれば、紙文書に付加された符号化情報が当該文書の電子データであれば、その文書の電子データを得る、あるいは、証券に付加された符号化情報が当該証券の記載事項を証明する電子データであれば、その証券の券面の記載事項の偽造の有無を確認する、などである。
【００８２】
図１２は、二次元コード認識部２２の処理を示すフローチャートである。二次元コード認識部２２は、まず、ステップＳ１１において、画像取得部２１により得られた画像に含まれるランドマークパターンを認識する。これにより、二次元コードが配置される領域の位置や形状、画像に含まれる二次元コードの単位数等が特定される。
【００８３】
続いて、ステップＳ１２において、一のランドマークパターンを選び、かかるランドマークパターンに隣接し、互いに直交する方向に配置された第１のパターン及び／又は第２のパターンを認識する。
【００８４】
続くステップＳ１３では、第１のパターン及び／又は第２のパターンが正しく認識されたか否かを判定する。認識されなかった場合には、ステップＳ１６へと進み、選ぶランドマークパターンを変更して、再度ステップＳ１２へと進む。
【００８５】
一方、ステップＳ１３で第１のパターン及び／又は第２のパターンが正しく認識されたと判定された場合には、ステップＳ１４において、認識された第１のパターン及び／又は第２のパターンの配置に基づいて、選んだランドマークパターンの二次元コード中の位置を特定し、それにより、二次元コードの向きを特定する。
【００８６】
そして、ステップＳ１５において、特定された向きにおいて、二次元コードに含まれる情報パターンよりビット列を取得し、処理を終了する。
【００８７】
なお、本実施形態では、二次元コードが配置される領域の４隅にランドマークパターンが配置されているものとして説明したが、ランドマークパターンが他の位置に配置されている場合には、第１のパターン及び／又は第２のパターンを認識する際の基準として、ランドマークパターンに換え、二次元コードが配置される領域の隅の座標を用いるとよい。
【００８８】
以上説明した実施形態において示した機能ブロックは、それぞれの実施形態を実施する上での一例であり、機能ブロックの構成や配置を例示したものに限定するものではない。また、二次元コード生成部４及び二次元コード認識部２２の動作のフローチャートも、二次元コード生成部４及び二次元コード認識部２２の機能を実現する一例として示したものであり、これに限定するものではない。
【符号の説明】
【００８９】
１  二次元コード生成装置、２  情報受付部、３  符号化部、４  二次元コード生成部、５  二次元コード出力部、１０  画像形成システム、１１  画像情報受付部、１２  情報受付部、１３  ＲＩＰ、１４  合成部、１５  印刷機、２０  二次元コード読み取り装置、２１  画像取得部、２２  二次元コード認識部、２３  復号部、２４  情報出力部、１００  二次元コード、１０１  領域、１０２  ランドマークパターン、１０３  第１のパターン、１０４  第２のパターン、１０５  コード枠、１０６  情報パターン、１０７  ビット列。
【図１】
2011048638.tif 000003
【図２】
2011048638.tif 000004
【図３】
2011048638.tif 000005
【図４】
2011048638.tif 000006
【図５】
2011048638.tif 000007
【図６】
2011048638.tif 000008
【図７】
2011048638.tif 000009
【図８】
2011048638.tif 000010
【図９】
2011048638.tif 000011
【図１０】
2011048638.tif 000012
【図１１】
2011048638.tif 000013
【図１２】
2011048638.tif 000014