(57)【特許請求の範囲】
【請求項１】
データが光学的に読み取り可能な２次元コードで記録された情報記録媒体であって、
前記２次元コードは、
記録されるデータに応じて複数のドットが２次元に配列されたデータコードと、
前記データコードにおける各ドットを読み取るための基準点に対して予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、
を有し、
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、当該２つ以上の各ドットが前記位置関係に従って存在すべき位置と当該２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって前記基準点が求められるように配置されたものである、
ことを特徴とする情報記録媒体。
【請求項２】
前記誤差は、前記２つ以上の各ドットが前記位置関係に従って存在すべき位置と前記２つ以上の各ドットが実際に存在する位置との間の距離であることを特徴とする請求項１に記載の情報記録媒体。
【請求項３】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、前記データコードに対して所定の位置関係で配置されたパターンコードであることを特徴とする請求項１に記載の情報記録媒体。
【請求項４】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、前記データコードにおけるドットであることを特徴とする請求項１に記載の情報記録媒体。
【請求項５】
前記２次元コードは、前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットを探索するためのマーカを更に有することを特徴とする請求項１乃至３のいずれかに記載の情報記録媒体。
【請求項６】
前記マーカは、前記データコード及び前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと一意的に識別可能なものであることを特徴とする請求項５に記載の情報記録媒体。
【請求項７】
前記２次元コードはブロックを複数個隣接して配置してなり、
前記各ブロックはそれぞれ、
前記データコードと、
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットを探索するためのマーカと、
を有する、
ことを特徴とする請求項１に記載の情報記録媒体。
【請求項８】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、前記データコードに対して所定の位置関係で配置されたパターンコードであることを特徴とする請求項７に記載の情報記録媒体。
【請求項９】
前記マーカは、前記データコード及び前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと一意的に識別可能なものであることを特徴とする請求項７に記載の情報記録媒体。
【請求項１０】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、互いに分離して配置されたものであることを特徴とする請求項１乃至９のいずれかに記載の情報記録媒体。
【請求項１１】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットの全部又は一部は、前記データコードと識別可能なコード体系に従って配置されたものであることを特徴とする請求項１に記載の情報記録媒体。
【請求項１２】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットの全部又は一部は周期的なコード体系に従って配置されたものであり、前記データコードにおける各ドットは非周期的なコード体系に従って配置されたものであることを特徴とする請求項１１に記載の情報記録媒体。
【請求項１３】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットの全部又は一部は相関性を有するコード体系に従って配置されたものであり、前記データコードにおける各ドットは相関性を有しないコード体系に従って配置されたものであることを特徴とする請求項１１に記載の情報記録媒体。
【請求項１４】
データを記録媒体上に記録するための光学的に読み取り可能な２次元コードであって、
記録されるデータに応じて複数のドットが２次元に配列されたデータコードと、
前記データコードにおける各ドットを読み取るための基準点に対して予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、
を有し、
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、当該２つ以上の各ドットが前記位置関係に従って存在すべき位置と当該２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって前記基準点が求められるように配置されたものであることを特徴とする２次元コード。
【請求項１５】
前記誤差は、前記２つ以上の各ドットが前記位置関係に従って存在すべき位置と前記２つ以上の各ドットが実際に存在する位置との間の距離であることを特徴とする請求項１４に記載の２次元コード。
【請求項１６】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、前記データコードに対して所定の位置関係で配置されたパターンコードであることを特徴とする請求項１４に記載の２次元コード。
【請求項１７】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、前記データコードにおけるドットであることを特徴とする請求項１４に記載の２次元コード。
【請求項１８】
前記２次元コードは、前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットを探索するためのマーカを更に有することを特徴とする請求項１４乃至１６のいずれかに記載の２次元コード。
【請求項１９】
前記マーカは、前記データコード及び前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと一意的に識別可能なものであることを特徴とする請求項１８に記載の２次元コード。
【請求項２０】
前記２次元コードはブロックを複数個隣接して配置してなり、
前記各ブロックはそれぞれ、
前記データコードと、
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットを探索するためのマーカと、
を有する、
ことを特徴とする請求項１４に記載の２次元コード。
【請求項２１】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、前記データコードに対して所定の位置関係で配置されたパターンコードであることを特徴とする請求項２０に記載の２次元コード。
【請求項２２】
前記マーカは、前記データコード及び前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと一意的に識別可能なものであることを特徴とする請求項２０に記載の２次元コード。
【請求項２３】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、互いに分離して配置されたものであることを特徴とする請求項１４乃至２２のいずれかに記載の２次元コード。
【請求項２４】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットの全部又は一部は、前記データコードと識別可能なコード体系に従って配置されたものであることを特徴とする請求項１４に記載の２次元コード。
【請求項２５】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットの全部又は一部は周期的なコード体系に従って配置されたものであり、前記データコードにおける各ドットは非周期的なコード体系に従って配置されたものであることを特徴とする請求項２４に記載の２次元コード。
【請求項２６】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットの全部又は一部は相関性を有するコード体系に従って配置されたものであり、前記データコードにおける各ドットは相関性を有しないコード体系に従って配置されたものであることを特徴とする請求項２４に記載の２次元コード。
【請求項２７】
データが光学的に読み取り可能な２次元コードで記録された情報記録媒体から前記２次元コードを光学的に読み取って前記データを再生する情報再生システムであって、
記録されるデータに応じて複数のドットが２次元に配列されたデータコードと、前記データコードにおける各ドットを読み取るための基準点に対して予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、を有する２次元コードを撮像してその画像データを得る入力手段と、
前記入力手段で得られた画像データから、前記予め設定された位置関係に従って前記少なくとも２つ以上のドットを探索する探索手段と、
前記２つ以上の各ドットが前記位置関係に従って存在すべき位置と、前記探索手段で探索された前記２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって前記基準点を求める基準点算出手段と、
前記基準点算出手段によって算出された基準点に基づいて、前記データコードにおける各ドットの読取座標を算出する読取座標算出手段と、
前記読取座標算出手段によって算出された読取座標に従って、前記データコードにおける各ドットを読み取るデータコード読取手段と、
を具備することを特徴とする情報再生システム。
【請求項２８】
前記誤差は、前記２つ以上の各ドットが前記位置関係に従って存在すべき位置と前記２つ以上の各ドットが実際に存在する位置との間の距離であることを特徴とする請求項２７に記載の情報再生システム。
【請求項２９】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、前記データコードに対して所定の位置関係で配置されたパターンコードであることを特徴とする請求項２７に記載の情報再生システム。
【請求項３０】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、前記データコードにおけるドットであることを特徴とする請求項２７に記載の情報再生システム。
【請求項３１】
前記２次元コードは、前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットを探索するためのマーカを更に有しており、
前記探索手段は、前記マーカを仮の前記基準点として前記位置関係に従って前記少なくとも２つ以上のドットを探索し、
前記基準点算出手段は、前記２つ以上の各ドットが前記仮の基準点と前記位置関係とに従って存在すべき位置と、前記探索手段で探索された前記２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって真の前記基準点を求めるように構成された、
ことを特徴とする請求項２７に記載の情報再生システム。
【請求項３２】
前記マーカは、前記データコード及び前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと一意的に識別可能なものであることを特徴とする請求項３１に記載の情報再生システム。
【請求項３３】
前記予め設定された位置関係をフォーマット情報として記憶するフォーマット記憶手段を更に含むことを特徴とする請求項２７に記載の情報再生システム。
【請求項３４】
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、互いに分離して配置されたものであることを特徴とする請求項２７乃至３３のいずれかに記載の情報再生システム。
【請求項３５】
データが光学的に読み取り可能な２次元コードで記録された情報記録媒体から前記２次元コードを光学的に読み取って前記データを再生する情報再生方法であって、
入力装置が、記録されるデータに応じて複数のドットが２次元に配列されたデータコードと、前記データコードにおける各ドットを読み取るための基準点に対して予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、を有する２次元コードを撮像してその画像データを得る入力工程と、
探索部が、前記入力工程で得られた画像データから、前記予め設定された位置関係に従って前記少なくとも２つ以上のドットを探索する探索工程と、
基準点算出部が、前記２つ以上の各ドットが前記位置関係に従って存在すべき位置と、前記探索工程で探索された前記２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって前記基準点を求める基準点算出工程と、
読取座標算出部が、前記基準点算出工程によって算出された基準点に基づいて、前記データコードにおける各ドットの読取座標を算出する読取座標算出工程と、
データコード読取部が、前記読取座標算出工程によって算出された読取座標に従って、前記データコードにおける各ドットを読み取るデータコード読取工程と、
を含むことを特徴とする情報再生方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、音声，音楽等のオーディオ情報、カメラ，ビデオ機器等から得られる映像情報、及びパーソナルコンピュータ，ワードプロセッサ等から得られるディジタルコードデータ、等を含めた所謂マルチメディア情報を光学的に読み取り可能な２次元コードパターンとして記録した紙等の情報記録媒体とその２次元コード、及びそのような情報記録媒体に記録されたコードパターンを光学的に読み取って元のマルチメディア情報を再生する情報再生システム及び情報再生方法に関する。
【０００２】
【従来の技術】
従来より、音声や音楽等を記録する媒体として、磁気テープや光ディスク等、種々のものが知られている。しかしこれらの媒体は、大量に複製を作ったとしても単価はある程度高価なものとなり、またその保管にも多大な場所を必要としていた。さらには、音声を記録した媒体を、遠隔地にいる別の者に渡す必要ができた場合には、郵送するにしても、また直に持っていくにしても、手間と時間がかかるという問題もあった。また、オーディオ情報以外の、カメラ，ビデオ機器等から得られる映像情報、及びパーソナルコンピュータ，ワードプロセッサ等から得られるディジタルコードデータ、等をも含めた所謂マルチメディア情報全体に関しても同様であった。
【０００３】
このような問題に対処するべきものとして、特開平６−２３１４６６号公報には、オーディオ情報，映像情報，ディジタルコードデータの少なくとも一つを含むマルチメディア情報を、ファクシミリ伝送が可能で、また大量の複製が安価に可能な画像情報即ち符号化情報としての複数のドットを２次元に配置してなる２次元コードの形で紙等の情報記録媒体に記録するシステム及びそれを再生するためのシステムが開示されている。
【０００４】
この公報の情報再生システムでは、情報記録媒体上の２次元コードを光学的に読み取って再生する情報再生装置を、手で保持し、記録されている２次元コードに沿って記録媒体上を手動で走査することによって読み取る方法が開示されている。
【０００５】
【発明が解決しようとする課題】
ところで、２次元コードパターン自体もさらに記録密度を向上できるような構造が研究されている段階であり、さらに高密度記録が達成された場合には、再生装置側で２次元コードパターンの各ドット位置をより高精度に算出しなければならないが、上記公報にはそのような将来の高精度の位置算出についてまでは特に配慮されていなかった。
【０００６】
また、特開昭６０−１６５５０３号公報には、高精度な読み取りを行うために十分大きな基準画像を用いる方法が開示されている。この公報に開示されているような方法を上記特開平６−２３１４６６号公報に開示されているような２次元コードに適用することも考えられるが、そうした場合、以下のような問題が生じる。
【０００７】
今、マーカをｓドットからなる半径ｒの円、読み取るコードのサイズをａ×ｂドット、１フレームのサイズをｃ×ｄドットとする。あるコードの真の座標が（ｉ，ｊ）とすると、読み取りに許容される最大誤差は、（ｉ±ａ／２，ｊ±ｂ／２）となる。よって、有効精度的には、Ｘ軸方向に関してはＸ座標を表す桁数ｃドットに±ａ／２を表す桁数を付加したｎx 桁が、Ｙ軸方向に関してはＹ座標を表す桁数ｄドットに±ｂ／２を表す桁数を付加したｎy 桁が必要となる。全体では、ｎx 桁とｎy 桁のうち、大きい桁が必要となる桁数である。
【０００８】
今、一例としてコードサイズを３．４ドット×３．４ドット、１フレームを５００×５００ドットとする。この場合、座標を表すのに３桁で、誤差を表すのに小数点２桁まで必要であるから、ｎx 桁とｎy 桁は共に５桁となる。マーカを構成するドットの座標を（ｘi ，ｙi ），ｉ＝１〜ｓとすると、その重心（ｇx ，ｇy ）は、
【０００９】
【数１】
0003639328.tif 000002
であるから、マーカを構成するｓドットはｎx 桁又はｎy 桁より大きい必要がある。上記例では、マーカが５桁＝１万ドット以上で構成されていれば、必要な精度でマーカの重心座標が検出できる。この場合の半径はπｒ2 ＞１００００から、ｒ≧５７ドットとなる。これを図示すると、図３４に示すようになる。即ち、十分な精度を得るためには、マーカが非常に大きくなり、記録密度が著しく低下するという問題がある。
【００１０】
本発明は、高密度記録されたコードパターンの各ドット位置をより高精度に算出できるようにした情報記録媒体、２次元コード、情報再生システム、及び情報再生方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記の目的を達成するために、本発明による情報記録媒体は、データが光学的に読み取り可能な２次元コードで記録された情報記録媒体であって、
前記２次元コードは、
記録されるデータに応じて複数のドットが２次元に配列されたデータコードと、
前記データコードにおける各ドットを読み取るための基準点に対して予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、
を有し、
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、当該２つ以上の各ドットが前記位置関係に従って存在すべき位置と当該２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって前記基準点が求められるように配置されたものである、
ことを特徴とする。
【００１２】
また、本発明による２次元コードは、データを記録媒体上に記録するための光学的に読み取り可能な２次元コードであって、
記録されるデータに応じて複数のドットが２次元に配列されたデータコードと、
前記データコードにおける各ドットを読み取るための基準点に対して予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、
を有し、
前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットは、当該２つ以上の各ドットが前記位置関係に従って存在すべき位置と当該２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって前記基準点が求められるように配置されたものである、
ことを特徴とする。
【００１３】
さらに、本発明による情報再生システムは、データが光学的に読み取り可能な２次元コードで記録された情報記録媒体から前記２次元コードを光学的に読み取って前記データを再生する情報再生システムであって、
記録されるデータに応じて複数のドットが２次元に配列されたデータコードと、前記データコードにおける各ドットを読み取るための基準点に対して予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、を有する２次元コードを撮像してその画像データを得る入力手段と、
前記入力手段で得られた画像データから、前記予め設定された位置関係に従って前記少なくとも２つ以上のドットを探索する探索手段と、
前記２つ以上の各ドットが前記位置関係に従って存在すべき位置と、前記探索手段で探索された前記２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって前記基準点を求める基準点算出手段と、
前記基準点算出手段によって算出された基準点に基づいて、前記データコードにおける各ドットの読取座標を算出する読取座標算出手段と、
前記読取座標算出手段によって算出された読取座標に従って、前記データコードにおける各ドットを読み取るデータコード読取手段と、
を具備することを特徴とする。
【００１４】
また、本発明による情報再生方法は、データが光学的に読み取り可能な２次元コードで記録された情報記録媒体から前記２次元コードを光学的に読み取って前記データを再生する情報再生方法であって、
入力装置が、記録されるデータに応じて複数のドットが２次元に配列されたデータコードと、前記データコードにおける各ドットを読み取るための基準点に対して予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、を有する２次元コードを撮像してその画像データを得る入力工程と、
探索部が、前記入力工程で得られた画像データから、前記予め設定された位置関係に従って前記少なくとも２つ以上のドットを探索する探索工程と、
基準点算出部が、前記２つ以上の各ドットが前記位置関係に従って存在すべき位置と、前記探索工程で探索された前記２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって前記基準点を求める基準点算出工程と、
読取座標算出部が、前記基準点算出工程によって算出された基準点に基づいて、前記データコードにおける各ドットの読取座標を算出する読取座標算出工程と、
データコード読取部が、前記読取座標算出工程によって算出された読取座標に従って、前記データコードにおける各ドットを読み取るデータコード読取工程と、
を含むことを特徴とする。
【００１５】
【作用】
即ち、本発明の情報記録媒体によれば、記録されるデータに応じて複数のドットが２次元に配列されたデータコードと、前記データコードにおける各ドットを読み取るための基準点に対して予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、を有する、データが光学的に読み取り可能な２次元コードを記録するものであり、前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットを、当該２つ以上の各ドットが前記位置関係に従って存在すべき位置と当該２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって前記基準点が求められるように配置して記録している。
【００１６】
また、本発明の２次元コードによれば、記録されるデータに応じて複数のドットが２次元に配列されたデータコードと、前記データコードにおける各ドットを読み取るための基準点に対して予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、を有するものであり、前記予め設定された位置関係を有するように配置された少なくとも２つ以上のドットが、当該２つ以上の各ドットが前記位置関係に従って存在すべき位置と当該２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって前記基準点が求められるように配置されている。
【００１７】
さらに、本発明の情報再生システムによれば、入力手段により、記録されるデータに応じて複数のドットが２次元に配列されたデータコードと、前記データコードにおける各ドットを読み取るための基準点に対して予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、を有する２次元コードを撮像してその画像データを得、探索手段によって、前記入力手段で得られた画像データから、前記予め設定された位置関係に従って前記少なくとも２つ以上のドットを探索する。その後、基準点算出手段によって、前記２つ以上の各ドットが前記位置関係に従って存在すべき位置と、前記探索手段で探索された前記２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって前記基準点を求め、読取座標算出手段によって、前記基準点算出手段によって算出された基準点に基づいて、前記データコードにおける各ドットの読取座標を算出する。そして、データコード読取手段によって、この読取座標算出手段によって算出された読取座標に従って、前記データコードにおける各ドットを読み取る。
【００１８】
また、本発明の情報再生方法によれば、入力工程で、入力装置が、記録されるデータに応じて複数のドットが２次元に配列されたデータコードと、前記データコードにおける各ドットを読み取るための基準点に対して予め設定された位置関係を有するように配置された少なくとも２つ以上のドットと、を有する２次元コードを撮像してその画像データを得、探索工程で、探索部が、前記入力工程で得られた画像データから、前記予め設定された位置関係に従って前記少なくとも２つ以上のドットを探索する。その後、基準点算出工程で、基準点算出部が、前記２つ以上の各ドットが前記位置関係に従って存在すべき位置と、前記探索工程で探索された前記２つ以上の各ドットが実際に存在する位置との間の誤差を表す所定の評価関数を最小化することによって前記基準点を求め、読取座標算出工程により、読取座標算出部が、前記基準点算出工程によって算出された基準点に基づいて、前記データコードにおける各ドットの読取座標を算出する。そして、データコード読取工程で、データコード読取部が、前記読取座標算出工程によって算出された読取座標に従って、前記データコードにおける各ドットを読み取る。
【００１９】
【実施例】
以下、図面を参照して、本発明の実施例を説明する。
【００２０】
図１は、本発明の実施例の情報再生システムの構成を示す図で、入力装置１０２は、２次元コードを記録した記録媒体１０４を撮像して２次元コードの画像データを得る。２値化処理部１０６は、この画像データを二値化して、データメモリ（フレームメモリ）１０８に記憶させる。マーカ検出部１１０は、このデータメモリ１０８に記憶された画像データを用いて、マーカを検出する。
【００２１】
ここで、上記記録媒体１０４上に記録された２次元コードは、例えば、図２の（Ａ）に示すように、複数のブロック１１２をマトリクス状に配置したブロック群からなり、各ブロック１１２が、データの内容に応じて配列された複数のドットでなるデータコードパターンが入るデータコード領域１１４と、このデータコード領域１１４に関して所定の位置関係で配置される当該ブロックのアドレスを示すブロックアドレスパターン（アドレスコード）１１６とを有するものである。また、各ブロック１１２は、所定の位置例えばその４隅に配置されたマーカ１１８と、このマーカ１１８に対して所定の位置、例えば第１の方向に隣接するマーカ間に配置された所定のパターンコード（パターンマッチングドット群）１２０を有している。なお、アドレスコード１１６は、上記マーカ１１８に対して所定の位置、例えば第２の方向に隣接するマーカ間、に配置されることになる。これらパターンコード１２０、アドレスコード１１６、及びデータコード領域１１４内に配される不図示データコード（データドット群）は同じ大きさのドットの配列によって構成される。また、マーカ１１８は、これらのコードのドットに比較して大きなドットとして構成され、例えば同図の（Ｂ）に示すように、直径７ドットの円形ドットとして記録媒体上に記録される。
【００２２】
従って、本実施例では、マーカ検出部１１０は、ブロック１１２の４隅に配置されたマーカ１１８を検出する。マーカ概中心算出部１２２は、これら検出されたマーカ１１８の概中心、つまり大まかな座標を算出する。パターンコード探索部１２４は、この概中心を仮基準点として、フォーマットメモリ１２６に記憶されている２次元コードのフォーマット情報、即ち、予め設定された位置関係情報に従って上記パターンコード１２０を探索する。マーカ真中心算出部１２８は、実際に検出されたパターンコード１２０の座標（現実点）と上記フォーマット情報により導き出される理想点とから、詳細は後述するような最小誤差法を使用してマーカ１１８の真中心、つまり本当の高精度な座標（真基準点）を求める。そして、データコード読取座標算出部１３０は、この算出されたマーカ１１８の真中心（真基準点）を基に、アドレスコード１１６及びデータコード領域１１４の一つ一つのドットつまりデータドットを、データメモリ１０８から読出すための読取座標を算出する。
【００２３】
後は、この読取座標に従ってデータを読み出していき、復調、デインターリーブ、エラー訂正／検出などの特開平６−２３１４６６号公報に開示されたような処理を行って再生される。
【００２４】
次に、上記のような構成の情報再生システムにおける読取座標算出処理を説明する。
【００２５】
今、記録媒体１０４上に記録された２次元コードを入力装置１０２により撮像し、その撮像出力を２値化してデータメモリ１０８に記憶されているものとする。このデータメモリ１０８に記憶された画像を用いて、最初に、マーカ検出部１１０によりマーカ検出処理を行う。即ち、図３に示すように、まずストリーク処理を行い（ステップＳ１０２）、水平方向の閾値処理（ステップＳ１０４）並びに垂直方向の閾値処理を行う（ステップＳ１０６）ことによってマーカを検出する。
【００２６】
ここで、ストリーク処理とは、既知の技術ではあるが、簡単に説明しておく。データメモリ１０８に記憶されている図２の（Ａ）に示すような２次元コードパターンにおいて、これを水平方向にスキャンしていき、黒ドットを見つけ、その座標から幾つ黒ドットが続いているかをカウントしていく処理である。例えば、図２の（Ｂ）に示すマーカの場合、１行目（Ｒ１）では３列目（Ｃ３）より７列目（Ｃ７）まで黒ドットが５個続いているので、このストリーク処理を行うと、このストリーク処理の結果を一時的に記憶するための不図示ワークメモリに、図２の（Ｃ）に示すように、（Ｒ１，Ｃ３）座標位置に対して「５」という数値が立つ（実際には、ワークメモリには、当該座標位置データ「（Ｒ１，Ｃ３）」と長さデータ「５」の２つのデータが記憶される）。次に、カウントされてしまった座標を飛ばして（値「０」を入れて）、次の座標から同様の処理を行う。従って、この１行目（Ｒ１）は「００５００００００」となる。また、２行目（Ｒ２）も同様に処理を行うと、「０７０００００００」という数値が入っていく。以下、同様に処理を行っていくと、図２の（Ｃ）に示すような結果が得られる。
【００２７】
こうして得られた結果に対して、まず水平方向に閾値処理を行う。例えば、閾値として「６」を使うと、図２の（Ｃ）における（Ｒ１，Ｃ３）及び（Ｒ７，Ｃ３）の「５」という部分が消されてしまい、２行目（Ｒ２）乃至６行目（Ｒ６）のそれぞれ２列目（Ｃ２）の「７」という部分だけが残ることになる。そして、この画像を再展開する。即ち、「７」であれば、黒ドットを７個配置する。
【００２８】
その後、上記水平方向と同様に、垂直方向にストリーク処理を行って、垂直方向に閾値処理を行う。
【００２９】
こうして水平方向及び垂直方向に閾値処理の行われた画像を再展開すると、図４の（Ａ）に示すように、円の上下が欠けたようなマーカの画像が得られる。また、パターンコード１２０及びデータコード領域１１４に入っている多数のドットパターン（場合によっては黒ドットが繋がる時もある）は、上記閾値処理によって全て消すことができる。
【００３０】
このようにしてマーカが検出されたならば、次に、マーカ概中心算出部１２２は、既知の手法により各マーカ１１８の重心を算出する（ステップＳ１０８）。以降、この算出されたマーカ１１８の重心を概中心と呼ぶものとする。これにより、同図の（Ｂ）に示すように、各マーカ１１８の概中心が得られる。
【００３１】
次に、パターンコード探索部１２４は、各概中心（仮基準点）を中心として、当該マーカ１１８に対して予め設定された所定の位置関係に設けられたパターンコード１２０を探索する。
【００３２】
これは、まず近傍マーカ１１８を探索して（ステップＳ１１０）、それらマーカ間を仮想的に連結する処理を行う（ステップＳ１１２）ことから始められる。即ち、求められたマーカ概中心を水平及び垂直方向に連結することで矩形のブロック１１２を求める。こうしてマーカ１１８の連結が分かると、マーカ１１８の中心からどのくらいの距離にパターンコード１２０があるかという情報がフォーマット情報（設計値）として予めフォーマットメモリ１２６に記憶されているので、次に、このフォーマット情報に基づいて、パターンコード１２０の位置（理想点）を推定する（ステップＳ１１４）。そして、データメモリ１０８に記憶された実際のコードによるパターンコード１２０の検索を行う（ステップＳ１１６）。
【００３３】
即ち、上記ステップＳ１１４では、パターンコード１２０がこの位置にあるはずだという予測を行うもので、例えば、座標（１０，１０）にこのパターンコード１２０が存在すると推定するわけであるが、実際にはパターンコード１２０がこの座標とずれている場合がある。そこで、このステップＳ１１６では、例えば、その推測された座標から１画素位ずつ上下に振って、パターンコード１２０を探索する。
【００３４】
こうして見つかったパターンコードが実際のパターンコード１２０ということになり、既知の技術により、このパターンコード１２０の重心（現実点）を算出する（ステップＳ１１８）。
【００３５】
以上のようにしてパターンコード探索処理が行われ、パターンコード１２０が検出されたならば、次に、マーカ真中心算出部１２８は、詳細は後述するような最小誤差法を使用して、各マーカ１１８の真中心つまり、つまり本当の高精度な中心座標を算出する。このマーカ真中心算出処理は、誤差最小化処理（ステップＳ１２０）とマーカ中心算出処理（ステップＳ１２２）とからなる。
【００３６】
そして、上記のようにして算出された各マーカ１１８の真中心をデータコード１２０の読み取りの座標算出用基準点（真基準点）とし、データコード読取座標算出部１３０は、この座標算出用基準点に基づいて、アドレスコード１１６及びデータコード領域１１４内のデータコードを読み取る座標（絶対座標）を算出して（ステップＳ１２４）、この読取座標算出処理を終了する。後は、この読取座標に従って、データコード領域１１４内のデータコードを順次読み取り、復調再生して、所定の不図示出力装置により出力する。
【００３７】
次に、上記最小誤差法を説明する。
【００３８】
この最小誤差法には、いくつかの手法があり、まず最初に、図５を参照してベクトルフィティング法を説明する。これは、２個のマーカ１１８の真中心を同時に求めるものである。
【００３９】
ここで、図中、正しい円で書かれているもの（薄い網掛けで示す）を真のマーカ１８とし、左側をＭ1 ’、右側をＭ2 ’とする。また、それぞれの中心（真中心）をＭ1 ’（ｘm1’，ｙm1’）及びＭ2 ’（ｘm2’，ｙm2’）と記し、図では小さな白丸で示す。なお、この記号「’」は求めたい真中心であることを示すものとする。
【００４０】
一方、円が欠けたようなマーカ（濃い網掛けで示す）は、ストリーク処理によって即ち画像から直接求められたものであり、左側をＭ1 、右側をＭ2 とする。また、それぞれの重心（概中心）をＭ1 （ｘm1，ｙm1）及びＭ2 （ｘm2，ｙm2）と記し、図では小さな黒丸で示す。
【００４１】
これら概中心の座標が、ここまでの処理により情報として与えられ、この情報から最小誤差法により実際に正しい真中心を求める。
【００４２】
マーカの間には、パターンコード（ｐi ）と呼ばれているドットが、例えば１０個割り振られている。
【００４３】
このパターンコードを見つけるには、まず、重心（概中心）間を、つまり黒丸と黒丸とを直線で結ぶ。そして、結んだ後に、フォーマット情報に基づいて、例えば、この直線を何対何に分割したところに、このパターンコードの各ドットが存在するという情報を与える。この２つのマーカＭ1 とＭ2 の重心を結ぶ線分を分割する所定の間隔をｄi で表す（但し、ｉは１〜１０）。
【００４４】
即ち、２つのマーカＭ1 とＭ2 の重心（仮基準点）を含む線分を所定の間隔ｄi ：１−ｄi で分割することで、パターンコードが存在すべき座標（理想点）つまり重心ｐi ’（ｘi ’，ｙi ’）を推定することができる。この推定された座標の近傍を探索することにより実際のパターンコードｐi を発見し、実際のパターンコードｐi の重心ｐi （ｘi ，ｙi ）を算出する。この実際のパターンコードｐi の重心ｐi （ｘi ，ｙi ）の算出は、既知の手法により行うことができるので、ここではその説明を省略する。
【００４５】
今、推定されたパターンコードの重心ｐi ’（ｘi ’，ｙi ’）を２つの真のマーカＭ1 ’とＭ2 ’の中心Ｍ1 ’（ｘm1’，ｙm1’）とＭ2 ’（ｘm2’，ｙm2’）で表すと、
【００４６】
【数２】
0003639328.tif 000003
となる。これは、設計値そのものであるので、簡単に表すことができる。
【００４７】
ここで、推定されたパターンコードの重心ｐi ’（ｘi ’，ｙi ’）と実際のパターンコードの重心ｐi （ｘi ，ｙi ）の距離の差を誤差εi で表すものとする。即ち、この誤差εi は、マーカの重心（概中心）が正しい中心（真中心）にないために発生する２本の直線間のパターンコードの各ドット位置における距離である。よって、この誤差εi を最小にすることで、正しい中心座標（真中心）を推定することができる。
【００４８】
今、最小化すべき評価関数Ｅとして、この誤差εi 2 の総和、つまり距離を２乗して全部足したものを導入する。即ち、この評価関数Ｅは、
【００４９】
【数３】
0003639328.tif 000004
である。このような評価関数Ｅを最小化すれば良いのであるから、まず、ｘ座標を求めるには、ｘm1’，ｘm2’で偏微分を行う。
【００５０】
【数４】
0003639328.tif 000005
上記２つの式を連立方程式として解くと、
【００５１】
【数５】
0003639328.tif 000006
となり、真のマーカＭ1 ’，Ｍ2 ’のそれぞれの真中心のｘ座標が求まる。
【００５２】
同様にして、評価関数Ｅの式をｙm1’，ｙm2’で偏微分して解くと、
【００５３】
【数６】
0003639328.tif 000007
となり、真のマーカＭ1 ’，Ｍ2 ’のそれぞれの真中心のｙ座標が求まる。
【００５４】
次に、図６を参照してベクトルフィティング法の別の例を説明する。これは、求めたい点が１つあり、また位置情報が相対的に分かっている点がいくつかあれば、その求めたい点を正確に得ることができるという例である。
【００５５】
ここで、図中、正しい円で書かれているものを真のマーカとしＭ’で、また、その中心（真中心）をＭ’（ｘm ’，ｙm ’）と記し、図では小さな白丸で示す。一方、円が欠けたようなマーカＭは、ストリーク処理によって即ち画像から直接求められたものであり、その重心（概中心）をＭ（ｘm ，ｙm ）と記し、図では小さな黒丸で示す。また、パターンコードｐi の重心ｐi （ｘi ，ｙi ）の座標を、この概中心からの相対位置Δｘi ，Δｙi で表すものとする。
【００５６】
このベクトルフィティングでは、まず、ストリーク処理によって求まった黒丸で示すマーカＭの重心Ｍ（ｘm ，ｙm ）から、パターンコードの最近傍の黒ドットｐ1 を探索する。これは、フォーマット情報に従って、マーカＭの重心を中心に半径ＳＱＲＴ（Δｘ1 2 ＋Δｙ1 2 ）の距離をサーチすることにより行われる（ここで、ＳＱＲＴ（）は平方根を示す）。このパターンコードｐ1 が見つかれば、その重心ｐ1 （ｘ1 ，ｙ1 ）は、既知の技術により求められる。そして、この重心ｐ1 （ｘ1 ，ｙ1 ）と上記マーカＭの重心Ｍ（ｘm ，ｙm ）を結ぶ線分を延長することで、他のパターンコードが存在すべき座標ｐi ’（ｘi ’，ｙi ’）を推定できる。
【００５７】
そして、推定されたパターンコードの重心ｐi ’（ｘi ’，ｙi ’）を、白丸で示す真のマーカの中心Ｍ’（ｘm ’，ｙm ’）と記録媒体の単位ベクトルｅx ’，ｅy ’で表すと、
【００５８】
【数７】
0003639328.tif 000008
となる。
【００５９】
ここで、単位ベクトルｅx ’，ｅy ’とは、記録媒体の座標系、つまりこの平面がどういう平面であるかということを記述するための記号である。即ち、設計値でΔｘi ，Δｙi 離れた所にパターンコードがあるといっているが、この撮影された面において、１画素が本当にここでいう設計値と一対一に対応しているとは限らず、誤差がある場合もある。実際には、１画素が１画素として記録されることはほとんど無く、例えば０．９画素で記録された場合、１０ドット離れたところにパターンコードｐ1 があるという設計値になっていたとしても、実際の撮影された画像では９ドット離れたところにそれがあることになる。このように９ドット離れたところに重心が見つかった場合、このマーカＭの重心Ｍ（ｘm ，ｙm ）が悪くて９ドットになってしまっているのか、基本ベクトルが悪くて９ドットになっているのかを、数学的に分類することができる。
【００６０】
そして、推定されたパターンコードの重心ｐi ’（ｘi ’，ｙi ’）と実際のパターンコードｐi （ｘi ，ｙi ）の距離を誤差εi で表わす。この誤差εi はマーカの重心が正しい中心に無いために発生する。よって、この誤差εi を最小化することで正しい中心座標を推定できる。今、最小化すべき評価関数Ｅを
【００６１】
【数８】
0003639328.tif 000009
とする。
【００６２】
評価関数Ｅを最小化するため、ｘm ’，ｅx ’で偏微分すると、
【００６３】
【数９】
0003639328.tif 000010
となり、これを連立方程式として解くと、
【００６４】
【数１０】
0003639328.tif 000011
というように真のマーカの中心のｘ座標ｘm ’及びｘ方向の単位ベクトルｅx ’が求められる。
【００６５】
同様にして、ｙm ’，ｅy ’で上記評価関数Ｅを偏微分して解くと、
【００６６】
【数１１】
0003639328.tif 000012
というように真のマーカの中心のｙ座標ｙm ’及びｙ方向の単位ベクトルｅy ’が求められる。
【００６７】
なおここで、上記式中のｎは、パターンコードの個数を表す。図６の例では、パターンコードを４個使っているので、ｎ＝４となる。
【００６８】
このようにして、マーカＭの重心の正しい位置つまり真中心Ｍ’（ｘm ’，ｙm ’）と、単位ベクトルｅx ’，ｅy ’つまり１画素が本当に１画素になっているかというのが、同時に求まる。
【００６９】
次に、最小誤差法の別の例として、図７を参照してポイントフィティング法を説明する。これは、図６のベクトルフィティングと同様の概念であるが、ベクトルを推定するという項を省いたものである。即ち、ラインセンサによって入力された場合、光学的な歪みや傾きなどが存在しないということを仮定したとき、記録媒体の座標系を定める必要は無いものとしている。
【００７０】
このポイントフィティングでは、まず、ストリーク処理によって求まった黒丸で示すマーカＭの重心Ｍ（ｘm ，ｙm ）から、所定の距離（ＳＱＲＴ（Δｘ1 2 ＋Δｙ1 2 ））にある最近傍のパターンコードｐ1 を探索し、このコードｐ1 の重心ｐ1 （ｘ1 ，ｙ1 ）とマーカの重心Ｍ（ｘm ，ｙm ）を結ぶ線分を延長することで、他のパターンコードが存在すべき座標ｐi ’（ｘi ’，ｙi ’）を推定できる（なお、ＳＱＲＴ（）は平方根を示す）。
【００７１】
そして、推定されたパターンコードの重心ｐi ’（ｘi ’，ｙi ’）を、白丸で示す真のマーカの中心Ｍ’（ｘm ’，ｙm ’）で表すと、
【００７２】
【数１２】
0003639328.tif 000013
となる。
【００７３】
ここで、推定されたパターンコードの重心ｐi ’（ｘi ’，ｙi ’）と実際のパターンコードの重心ｐi （ｘi ，ｙi ）の距離を誤差εi で表わす。この誤差εi はマーカの重心が正しい中心に無いために発生する。よって、この誤差εi を最小化することで正しい中心座標を推定できる。今、最小化すべき評価関数Ｅを
【００７４】
【数１３】
0003639328.tif 000014
とする。
【００７５】
この評価関数Ｅを最小化するため、ｘm ’，ｙm ’で偏微分すると、
【００７６】
【数１４】
0003639328.tif 000015
となる。よって、
【００７７】
【数１５】
0003639328.tif 000016
というように真のマーカの重心つまり真中心の座標（ｘm ’，ｙm ’）が求められる。
【００７８】
次に、最小誤差法の別の例として、図８の（Ａ）を参照してラインフィティング法を説明する。これは、最小２乗法を利用したものである。
【００７９】
即ち、ドットが存在する直線をｙ＝ａ’ｘ＋ｂ’とし、ｉ番目のドットＤi の観測座標をＤi （ｘi ，ｙi ）とおく。
【００８０】
上記直線の式から推定されるｙi ’とｙi の誤差εi は、
εi ＝ｙi ’−ｙi ＝ａ’ｘi ＋ｂ’−ｙi
で表される。
【００８１】
観測される全てのドットに対して誤差との評価関数（２乗和）Ｅを求めた時に、これを最小化するようにａ’，ｂ’を推定する。
【００８２】
【数１６】
0003639328.tif 000017
上記（１）式，（２）式より、
【００８３】
【数１７】
0003639328.tif 000018
となる。
【００８４】
ここで、Ｍ1 （ｘ0 ，ｙ0 ）のｘ座標をＤ1 ，ＤN から外挿により求める。
【００８５】
ｘ0 ＝（ｅ1 ／ｄ）（ｘ1 −ｘN ）＋ｘ1
これを直線の式に代入して、
【００８６】
【数１８】
0003639328.tif 000019
となる。
【００８７】
マーカＭ2 に関しても同様である。
【００８８】
次に、以上のような最小誤差法を実際にパターンに応用した２次元コードパターンの変形例を説明する。
【００８９】
まず、図９の（Ａ）は、ブロック単位に黒と白を反転させた例である。このような手法を用いると、マーカというデータコードに比較して大きな面積を占めていた部分が必要なくなり、記録密度を上げることができる。
【００９０】
このようなコードパターンでの読取座標算出は、同図の（Ｂ）に示すように、まずエッジを抽出し（ステップＳ１３２）、閾値処理を行って（ステップＳ１３４）、同図の（Ａ）の右側に示すように境界線１３２を求める。そして、この境界線１３２の交点１３４を求める（ステップＳ１３６）。これらの処理は、既知の技術であるので、その説明は省略する。
【００９１】
こうして交点１３４が抽出されたならば、フォーマット情報に基づき、交点１３４から所定の距離範囲（所定半径ｒ）内にあるデータコードのドットを推定する（ステップＳ１３８）。また、この推定したものと、実際のデータコードのドットは多少ずれが生じており、よって、上記推定位置からデータコードのドットを探索し（ステップＳ１４０）、データコードのドットの実際の重心を求める（ステップＳ１４２）。
【００９２】
そして、フォーマット情報から求められた重心と、実際のデータコードのドットから求めた重心との誤差を最小化するように（ステップＳ１４４）、交点１３４の座標を再調整する（ステップＳ１４６）。こうして、交点１３４が４個算出されたならば、ブロックの４隅の座標が決定できるので、そのブロック内の平面を格子状に分割するように読取座標を算出する（ステップＳ１４８）。
【００９３】
即ち、この例では、座標算出用基準点を求めるのにパターンコードを用いずに境界線１３２を用い、また座標算出用基準点としてマーカの真中心ではなくて境界線１３２の真の交点１３４を利用している。従って、マーカだけではなく、パターンコードも必要としないので、さらに記録密度を向上させることができる。
【００９４】
図８の（Ｂ）は、座標算出用基準点としてデータコードを利用するものである。この例の２次元コードパターンにおいては、データコードの各ドットはそれぞれΔｘ，Δｙだけ離れて配置され、このΔｘ及びΔｙの値がフォーマット情報として予め与えられるようになっている。
【００９５】
このようなコードパターンでの読取座標算出は、図１０に示すように、まずスキャンを端から順番にしていき、最初に黒ドットが抽出されるのを待ち、黒ドットが抽出されると、それを注目コード１３６とする（ステップＳ１５２）。
【００９６】
そして、この注目コード１３６から、フォーマット情報に基づいて所定範囲内（図８の（Ｂ）において円で囲って示す）にあるドットの座標を推定する（ステップＳ１５４）。
【００９７】
ここで、本実施例では、８方向を探索していき、上記推定座標から黒ドットを探索し（ステップＳ１５６）、その重心を既知の手法により算出する（ステップＳ１５８）。
【００９８】
この場合もやはり、推定した黒ドットの座標と実際にあった黒ドットの重心の座標とはずれがあるので、前述したようにこのフォーマット情報から求めた推定座標と実際の重心との誤差を最小化する（ステップＳ１６０）ように、注目コード１３６の座標を再設定する（ステップＳ１６２）。
【００９９】
こうして注目コード１３６の正確な座標が求まったならば、この注目コード１３６の座標からフォーマット情報に基づき隣接ドットの読取座標を順次算出する（ステップＳ１６４）。つまり、注目コード１３６の座標からΔｘ，Δｙだけ順次ずらしていく。
【０１００】
ただし、印刷精度などの問題を考慮すると、これを繰り返して行くにつれて誤差が蓄積してくるので、定期的にリフレッシュさせることが必要である。即ち、この注目コード１３６の座標からΔｘ，Δｙだけ順次ずらしていく動作は、当該注目コード１３６から所定間隔（Δｘ”，Δｙ”）離れるまで（ステップＳ１６６）繰り返される。そして、この所定間隔（Δｘ”，Δｙ”）に達したならば、２次元コードパターンの最後まで処理したかどうか確認した（ステップＳ１６８）後、もう一度上記ステップＳ１５２から上記処理を繰り返す。これにより、誤差の蓄積を防ぎ、より高精度に座標を算出できる。
【０１０１】
図１１の（Ａ）は、大きなマーカ１３８の中にパターンコード１４０を埋め込んでいるものである。即ち、マーカとパターンコードを一体化させることにより、図２の（Ａ）に示したようなマーカ１１８間に配列されていたパターンコード１２０を不要とし、その位置もデータコードの記録領域（データコード領域１１４）として利用できるようにして、記録密度をその分向上した例である。
【０１０２】
このような２次元コードパターンでの読取座標算出は、図１１の（Ｂ）に示すように、まず、ラベリング処理を行い、大きい面積のものだけ抽出する（ステップＳ１７２）。そして、各ラベル領域の面積を算出し（ステップＳ１７４）、閾値処理により面積の大きいマーカ１３８だけを取り出して（ステップＳ１７６）、そのマーカ１３８の重心を既知の手法により求める（ステップＳ１７８）。
【０１０３】
次に、フォーマット情報に基づき、マーカ１３８の重心から所定の距離にあるそのマーカ内のパターンコード１４０の座標を推定する（ステップＳ１８０）。
【０１０４】
また、これら推定された座標に基づき実際のパターンコード１４０を探索し（ステップＳ１８２）、探索されたパターンコード１４０のドットの重心を既知の手法により算出する（ステップＳ１８４）。
【０１０５】
そして、これら推定された座標と実際に算出された重心との誤差を最小化する（ステップＳ１８６）ように、マーカ１３８の重心位置を算出し直す（ステップＳ１８８）。こうしてマーカ１３８の真の中心の座標が求まったならば、４組のマーカ１３８の中心から読取座標を算出する（ステップＳ１９０）。
【０１０６】
また、パターンコードは、図２の（Ａ）に示すようなマーカ１１８間に一列に配列する以外にも、種々の配列が可能である。
【０１０７】
例えば、図１２の（Ａ）に示すように、１個のマーカ１１８を中心として４方向に所定距離だけ延びるように配列したパターンコード１４２とすることができる。即ち、マーカ間に水平方向に一列に配列されたパターンコードを使用するよりは、求めたい中心の近くにあるパターンコードを使った方が誤差が少なく、また、水平方向だけでなく直交する方向にもパターンコードを配列しておいたほうが、精度が高くなる。即ち、水平方向にパターンコードを延ばしただけでは、前述した最小誤差法を用いる場合、ｙ軸に関する誤差が少なくなってしまうが、このように直角の方向に延ばされていれば、そのｙ軸方向の誤差も大きくとることが可能となり、より正確に求まるようになる。
【０１０８】
さらに、同図の（Ｂ）に示すように、所定間隔あけて八方向に配置したパターンコード１４４とすると、より精度が高くなる。
【０１０９】
また、同図の（Ｃ）は、データコード１４６の各ドット間の隙間にパターンコード１４８を埋め込んだものである。即ち、データコード１４６は丸ドットとして記録されるため、必ず隙間ができる。そこで、この隙間領域にパターンコード１４８を埋め込むことにより、特にパターンコードのためだけに使用される領域を設ける必要がなくなり、高密度記録が可能になる。なお、この場合は、パターンコード１４８の各ドットの大きさが小さくなるため１ドット当たりの信頼性が低下することになるが、パターンコード１４８のドット個数を千個程度まで増加させることにより、トータルとしての信頼性は増加する。
【０１１０】
また同図の（Ｄ）は、直線状のマーカ１５０としたものである。即ち、２次元コードの中央部分に縦走するような線状のマーカ１５０を配置すると共に、所定間隔でパターンコード１５２を水平に配置し、このパターンコード１５２が存在する位置に対応して、マーカ１５０の縦線を横切るような水平線１５４を加えたものである。
【０１１１】
この場合、フレーム単位で走査を行うと、マーカ１５０の線はフレーム１５６内を上下方向に走ることになる。よって、上下に連結している領域を既知の手法により抽出することで、マーカ検出が可能になる。そして、このマーカ１５０が検出されたならば、マーカ上での水平線１５４との交点を探索し、その交点から所定の距離にパターンコード１５２が存在することになる。
【０１１２】
このように図１２の（Ｄ）に示したような線状マーカ１５０とすると、大きな黒丸で構成されるマーカに比べて面積が減少し、その分、記録密度を上げることができる。また、前述したようなストリーク処理を行うよりも、線つまりフレーム内で上下に繋がっている点を見つける方が処理が容易且つ高速である。
【０１１３】
図１３の（Ａ）は、非ブロック化したフォーマット、つまりフレーム１５６を単位とするフォーマットを示している。即ち、２次元コードがダブルハイト（データａとｂで同じデータが記録されている）で記録されているものとし、パターンコード１２０とマーカ１１８対を左右データコードにカスケード状に配置し、フレーム１５６が上下に走査しても常に２組以上のパターンコード１２０とマーカ１１８がフレーム内に存在するように間隔を調整する。これにより、最低限３点のマーカ１１８の真中心が定まり、読取座標を決定できる。
【０１１４】
つまり、本例は、一列おきにマーカとパターンコードを省略して記録密度を上げたものである。
【０１１５】
同図の（Ｂ）は、パターンコードの多重化記録の例であり、ブロック内全体にデータコード１５８を印刷し、この上に、位置を合わせてマーカ、パターンコード、アドレスコードを透明インクにて重層的に印刷したものである（図では、透明であることを白抜きの丸１６０で示す）。この場合、この透明な印刷は、紫外光などの照射に応じて蛍光を発するような透明インクにて行われる。
【０１１６】
また、このような透明インクを用いる代わりに、磁性インクでマーカ、パターンコード、アドレスコードを印刷し、この上に白色印刷をし、さらにデータコードを印刷することも考えられる。この場合には、読み込みには、光学センサと共に磁気センサも必要となる。すなわち、本例の場合には、マーカとパターンコードがデータの記録面積に影響しないので、データの記録密度（記録容量）が向上できる。
【０１１７】
同図の（Ｃ）は、マーカ１６２を特殊印刷する例を示している。即ち、マーカ１６２を色、磁性、蛍光などの特殊インクで印刷するならば、このマーカの大きさをデータコード以下のサイズまで縮小することができる。
【０１１８】
また、上記説明では、パターンコードを使ってマーカの真中心を求める場合、各パターンコードの各ドットの重心を求めてこれらの重心から最小誤差法により真中心を算出するものとしていたが、この重心を求める処理を軽減するために、図１４に示すように、パターンコードの各ドット１６４の外接四辺形の中心を代用するようにしても良い。これにより、真中心の精度をほとんど落とすことなく、処理の軽減を図れる。
【０１１９】
さらに、別の２次元コードの構成を説明する。
【０１２０】
図１５の（Ａ）は、パターンコード１２０を、マーカ１１８間ではなくて、データコード領域１１４の中央に一列に配列したものである。また、同図の（Ｂ）は、マーカ１１８間の中央にそれぞれ１ドットずつ配置したパターンコード１６６を示している。同図の（Ｃ）は、ブロックの中央にまとめた配置したパターンコード１６８とした例である。
【０１２１】
一方、同図の（Ｄ）はパターンコード自体が無いものであり、同図の（Ｅ）は、これを実際に撮像した１フレーム内の画像を示している。この場合、パターンコードの代わりにマーカを用いることになる。
【０１２２】
このような構成の２次元コードにおいても、前述したようなベクトルフィティングやポイントフィティング、あるいは次のようなレクタングルフィティングなどにより、これらの図中に白抜きの×で記されているブロックの基準座標（なお、図１５の（Ｂ）では、図面の大きさの都合上、白抜きの×は示していないが、パターンコード１６６が基準座標となる）を算出することができ、この基準座標に基づきそれぞれ後述する処理を行うことで、上述した２次元コードの場合と同様に、高精度に各ドット位置を求めることができる。
【０１２３】
ここで、前記のレクタングルフィティングを、同図の（Ｄ）の場合を例に説明する。
【０１２４】
まず、ブロックの基準座標つまりマーカ１１８の概中心を結ぶ４本の直線があり、その内の１本の直線の方程式はｙ＝ａ1 ｘ＋ｂ1 で表される。この直線と他の３本の直線は予め位置関係が決まっているので、他の３本の直線の方程式はこのパラメータ即ちａ1 とｂ1 を使って全て表すことができる。即ち、ｙ＝−１／ａ1 ｘ＋ｂ1 ＋Ｃ2 ｛ａ1 ｝、ｙ＝ａ1 ｘ＋ｂ1 ＋Ｃ3 ｛ａ1 ｝、ｙ＝−１／ａ1 ｘ＋ｂ1 ＋Ｃ4 ｛ａ1 ｝である。ここで、Ｃ2 ｛ａ1 ｝、Ｃ3 ｛ａ1 ｝、Ｃ4 ｛ａ1 ｝はそれぞれａ1 に関する関数である。
【０１２５】
そして、４点のマーカ１１８の概中心を使ってこれら４本の直線にフィットさせる。この場合、最小２乗近似を用いる。
【０１２６】
今、マーカ概中心の座標を、Ｍ1 （ｘ1 ，ｙ1 ）、Ｍ2 （ｘ2 ，ｙ2 ）、Ｍ3 （ｘ3 ，ｙ3 ）、Ｍ4 （ｘ4 ，ｙ4 ）とすると、それぞれの評価関数Ｅ1 〜Ｅ4 は、
Ｅ1 ＝（ｙ1 −ａ1 ｘ1 ＋ｂ1 ）2 ＋（ｙ2 −ａ1 ｘ2 ＋ｂ1 ）2 
Ｅ2 ＝（ｙ2 ＋１／ａ1 ｘ2 ＋ｂ1 ＋Ｃ2 ｛ａ1 ｝）2 ＋（ｙ3 ＋１／ａ1 ｘ3 ＋ｂ1 ＋Ｃ2 ｛ａ1 ｝）2 
Ｅ3 ＝（ｙ3 −a1 x3 ＋ｂ1 ＋Ｃ3 ｛ａ1 ｝）2 ＋（ｙ4 −a1 x4 ＋ｂ1 ＋Ｃ3 ｛ａ1 ｝）2 
Ｅ4 ＝（ｙ4 ＋１／ａ1 ｘ4 ＋ｂ1 ＋Ｃ4 ｛ａ1 ｝）2 ＋（ｙ1 ＋１／ａ1 ｘ1 ＋ｂ1 ＋Ｃ4 ｛ａ1 ｝）2 
となる。従って、最小化すべき評価関数Ｅtot は、
Ｅtot ＝Ｅ1 ＋Ｅ2 ＋Ｅ3 ＋Ｅ4
である。
【０１２７】
このような評価関数Ｅtot が最小になるようにａ1 ，ｂ1 を決定し、直線の交点をブロック基準点つまり座標算出用基準点とする。このために、Ｅtot をａ1 ，ｂ1 で偏微分し、
【０１２８】
【数１９】
0003639328.tif 000020
ここで、Ｃ2 ｛ａ1 ｝、Ｃ3 ｛ａ1 ｝、Ｃ4 ｛ａ1 ｝は以下のように決まる。
【０１２９】
Ｃ2 ｛ａ1 ｝＝−（ａ1 ＋１／ａ1 ）（ＳＱＲＴ（１＋ｄ2 ）＋ｘ4 ）
Ｃ3 ｛ａ1 ｝＝−ａ1 ＳＱＲＴ（１＋ｄ2 ）
Ｃ4 ｛ａ1 ｝＝−ａ1 ＳＱＲＴ（１＋ｄ2 ）−ｘ4 （ａ1 ＋１／ａ1 ）
ここで、ＳＱＲＴ（）は平方根を、ｄはマーカ間の距離を示す。
【０１３０】
以上から、ブロックを囲む４本の直線を一意的に決定できる。
【０１３１】
より一般的には、
【０１３２】
【数２０】
0003639328.tif 000021
が最小になれば良い。
【０１３３】
従って、次式を解くことになる。
【０１３４】
【数２１】
0003639328.tif 000022
次に、このようなレクタングルフィティングを用いる場合の情報再生システムの構成を説明する。
【０１３５】
即ち、図１６の（Ａ）に示すように、記録媒体上に印刷された２次元コードを撮像する画像入力部１７０があり、この中で２値化などがなされて、フレームメモリ１７２に記憶される。
【０１３６】
パターンコード抽出部１７４は、このフレームメモリ１７２に入ったデータから前述したような手法でパターンコードを抽出する。複数回帰直線算出部１７６は、この抽出されたパターンコードを使用して複数の直線にフィットさせる。そして、データコード読取領域基準座標算出部１７８にて、４隅の座標、具体的には直線の交点を算出する。領域基準座標内データコード読取座標生成部１８０は、この直線の交点つまり基準座標に基づいて、ブロック領域内のデータコードの読取座標を格子状に分割することで求める。
【０１３７】
そして、データコード読取部１８２は、この読取座標に従ってフレームメモリ１７２に記憶されたデータコードを読み取って出力する。後は、復調、デインターリーブ、エラー訂正／検出などの特開平６−２３１４６６号公報に開示されたような処理を行って再生される。
【０１３８】
同図の（Ｂ）は、図１５の（Ａ）や（Ｂ）に示したようなドットパターンを読み取るようにした場合の情報再生システムの変形例を示している。
【０１３９】
即ち、画像入力部１７０は、記録媒体上に印刷された２次元コードを撮像し、得られた画像データを２値化などしてフレームメモリ１７２に記憶する。
【０１４０】
画像内マーカ概中心座標算出部１８４は、このフレームメモリ１７２に入ったデータを使って、マーカの概中心座標を算出する。これは、前述したようなストリーク処理による。そして、パターンコード抽出部１７４は、このマーカと所定の位置関係にあるパターンコードを抽出し、複数回帰直線算出部１７６はこのパターンコードに基づいて回帰直線（図１５の（Ａ）や（Ｂ）中に破線で示す）を算出する。データコード読取領域基準座標算出部１７８は、それらの回帰直線の交点つまり基準座標を求める。領域基準座標内データコード読取座標発生部１８０は、この基準座標を使って、データコードの読取座標を算出する。
【０１４１】
そして、データコード読取部１８２は、この読取座標に従ってフレームメモリ１７２に記憶されたデータコードを読み取って出力する。後は、復調、デインターリーブ、エラー訂正／検出などの特開平６−２３１４６６号公報に開示されたような処理を行って再生される。
【０１４２】
図１７は、このような構成における１フレーム分のデータ読取処理のフローチャートである。
【０１４３】
即ち、まず最初の処理として、画像入力部１７０は、フレーム画像を２値化して、フレームメモリ１７２へ記憶する（ステップＳ２０２）。そして、画像内マーカ概中心座標算出部１８４は、このフレームメモリ１７２内のデータから既知の手法によりマーカの概中心を算出する（ステップＳ２０４）。
【０１４４】
次に、パターンコード抽出部１７４は、未使用マーカがあるかどうかを判定し（ステップＳ２０６）、まだこれから処理しなければいけないマーカがある場合には、複数の概中心座標から予め位置関係の定まっているパターンコードを抽出していく（ステップＳ２０８）。そして、複数回帰直線算出部１７６は、抽出された各パターンコードのそれぞれのドット中心座標を求め（ステップＳ２１０）、直線上に予め配置された複数パターンコードに対して、これらの中心座標から最小２乗近似により直線の方程式を求める（ステップＳ２１２）。
【０１４５】
この直線の方程式の算出処理を、直線の算出数が所定数に達するまで（ステップＳ２１４）繰り返し、所定数に達したならば、データコード読取領域基準座標算出部１７８は、直線の交点を求めて、ブロック基準座標とする（ステップＳ２１６）。
【０１４６】
こうして１つのブロック基準座標が求まったならば、次に、１ブロックの基準座標が全て、つまりブロックの４隅の４点が全て検出できたかどうかの判定を行い（ステップＳ２１８）、まだの場合には上記ステップＳ２１２に戻って、上記の処理を繰り返す。
【０１４７】
また、１ブロックの基準座標が全て検出し終わった場合には、領域基準座標内データコード読取座標生成部１８０は、それらブロック基準座標を結び、この線分を分割する（ステップＳ２２０）。これは、データコードが印刷されている間隔で格子状に分割するということである。
【０１４８】
そして、この分割線分の交点をデータ読取座標として、データコード読取部１８２は、データを読み取っていく（ステップＳ２２２）。
【０１４９】
これで１ブロックの処理が終わり、上記ステップＳ２０６に戻って、上記の処理を繰り返すことにより、フレームの中に入っているブロックを全て処理すると、このステップＳ２０６で未使用マーカが無しと判定されて、処理を終了する。
【０１５０】
図１６の（Ｃ）は、情報再生システムのさらに別の変形例を示している。これは、図１５の（Ｄ）及び（Ｅ）に示したようなパターンコード自体がない（パターンコード＝マーカの）場合の構成である。
【０１５１】
即ち、画像入力部１７０は、記録媒体上に印刷された２次元コードを撮像し、得られた画像データを２値化などしてフレームメモリ１７２に記憶する。
【０１５２】
画像内マーカ概中心座標算出部１８４は、このフレームメモリ１７２に入ったデータを使って、マーカの概中心座標を算出する。複数回帰直線算出部１７６は、この複数の概中心座標を使って複数の回帰直線を算出する。データコード読取領域基準座標算出部１７８は、その回帰直線の交点つまり基準座標を求める。領域基準座標内データコード読取座標発生部１８０は、この基準座標を使って、データコードの読取座標を算出する。
【０１５３】
そして、データコード読取部１８２は、この読取座標に従ってフレームメモリ１７２に記憶されたデータコードを読み取って出力する。後は、復調、デインターリーブ、エラー訂正／検出などの特開平６−２３１４６６号公報に開示されたような処理を行って再生される。
【０１５４】
図１８は、このような構成における１フレーム分のデータ読取処理のフローチャートである。
【０１５５】
即ち、まず、画像入力部１７０は、フレーム画像を２値化して、フレームメモリ１７２へ記憶する（ステップＳ２３２）。そして、画像内マーカ概中心座標算出部１８４は、このフレームメモリ１７２内のデータから既知の手法によりマーカの概中心を算出する（ステップＳ２３４）。
【０１５６】
次に、複数回帰直線算出部１７６は、未使用マーカがあるかどうかを判定し（ステップＳ２３６）、まだこれから処理しなければいけないマーカがある場合には、直線上に予め配置された複数のマーカに対して、これらの概中心座標から最小２乗近似により直線の方程式を求める（ステップＳ２３８）。
【０１５７】
この直線の方程式の算出処理を、直線の算出数が所定数に達するまで（ステップＳ２４０）繰り返し、所定数に達したならば、データコード読取領域基準座標算出部１７８は、この直線の交点を求めて、それをブロック基準座標とする（ステップＳ２４２）。
【０１５８】
こうして１つのブロック基準座標が求まったならば、次に、１ブロックの基準座標が全て、つまりブロックの４隅の４点が全て検出できたかどうかの判定を行い（ステップＳ２４４）、まだの場合には上記ステップＳ２３６に戻って、上記の処理を繰り返す。
【０１５９】
また、１ブロックの基準座標が全て検出し終わった場合には、領域基準座標内データコード読取座標生成部１８０は、それらブロック基準座標を結び、この線分を分割する（ステップＳ２４６）。これは、データコードが印刷されている間隔で格子状に分割するということである。
【０１６０】
そして、データコード読取部１８２は、この分割線分の交点をデータ読取座標としてデータを読み取っていく（ステップＳ２４８）。
【０１６１】
これで１ブロックの処理が終わり、上記ステップＳ２３６に戻って、上記の処理を繰り返すことにより、フレームの中に入っているブロックを全て処理すると、このステップＳ２３６で未使用マーカが無しと判定されて、処理を終了する。
【０１６２】
また、パターンコードを、図１２の（Ａ）に示すように、１個のマーカを中心として４方向に所定距離だけ延びるようにパターンコードを配列しなくとも、図１９の（Ａ）に示すように、マーカ１１８近傍の両側のパターンコード１２０だけを使ってマーカ１１８の真中心つまり基準座標を算出するようにすれば、マーカ１１８間に一列に配置したものであっても精度良く求めることができる。すなわち、パターンコード１２０を一列に配列した場合、画像入力部の光学系に歪などにより周辺部がずれてパターンコード１２０のドットが曲線上に並ぶように撮像されてしまう恐れがあるが、求めたい中心点の近傍のドットを使用すれば、このずれ量が小さく、正確に求めることができる。
【０１６３】
図１９の（Ｂ）は、この場合の情報再生システムの構成を示す図である。
【０１６４】
即ち、画像入力部１８６は、記録媒体上に印刷された２次元コードを撮像し、得られた画像データを２値化などしてフレームメモリ１８８に記憶する。
【０１６５】
マーカ概中心座標算出部１９０は、このフレームメモリ１８８に入ったデータを使って、マーカの概中心座標を算出する。パターンコード抽出部１９２は、この概中心から所定距離内にある左右両側のパターンコード１２０を抽出する。ブロック基準座標算出部１９４は、これらパターンコード１２０間にあるマーカ１１８の真中心つまりブロック基準座標を誤差最小法を用いて算出する。データコード読取座標算出部１９６は、このブロック基準座標を使って、データコードの読取座標を算出する。
【０１６６】
そして、データコード読取部１９８は、この読取座標に従ってフレームメモリ１８８に記憶されたデータコードを読み取って出力する。後は、復調、デインターリーブ、エラー訂正／検出などの特開平６−２３１４６６号公報に開示されたような処理を行って再生される。
【０１６７】
図２０は、このような構成における１フレーム分のデータ読取処理のフローチャートである。
【０１６８】
即ち、まず、画像入力部１８６は、フレーム画像を２値化して、フレームメモリ１８８へ記憶する（ステップＳ２５２）。そして、マーカ概中心算出部１９０は、フレームメモリ１８８内のデータから既知の手法によりマーカの概中心を算出する（ステップＳ２５４）。
【０１６９】
次に、パターンコード抽出部１９２は、未処理マーカがあるかどうかを判定し（ステップＳ２５６）、まだこれから処理しなければいけないマーカがある場合には、ペアとなる隣接マーカの概中心を選択し（ステップＳ２５８）、これら概中心を結んだ直線を外へ延長する（ステップＳ２６０）。
【０１７０】
そして、この直線上で各概中心から一定半径内のパターンコードを探索し（ステップＳ２６２）、見つけられたパターンコードの数をカウントする（ステップＳ２６４）。ここでこのカウントした数が所定数に達しているかどうか判断し（ステップＳ２６６）、まだであれば探索半径を変更（拡大）しする（ステップＳ２６８）。ここで、この変更した探索半径が限界値以下であるかどうかチェックし（ステップＳ２７０）、限界値以下であれば上記ステップＳ２６２に戻り、またそうでなければ上記ステップＳ２５６に戻る。
【０１７１】
一方、カウント数が所定値に達したならば、ブロック基準座標算出部１９４は、それら見つけられたパターンコードを用いて、このパターンコードに挟まれたブロック基準座標を算出する（ステップＳ２７２）。この場合、前述したような誤差最小法を利用する。
【０１７２】
こうして１つのブロック基準座標が求まったならば、次に、１ブロックの基準座標が全て、つまりブロックの４隅の４点が全て算出できたかどうかの判定を行い（ステップＳ２７４）、まだの場合には上記ステップＳ２５６に戻って、上記の処理を繰り返す。
【０１７３】
また、１ブロックの基準座標が全て検出し終わった場合には、データコード読取座標算出部１９６は、それらブロック基準座標よりブロック内データコード読取座標を算出する（ステップＳ２７６）。これは、データコードが印刷されている間隔で格子状に分割するということである。
【０１７４】
そして、データコード読取部１９８は、この読取座標に従ってデータを読み取っていく（ステップＳ２７８）。
【０１７５】
これで１ブロックの処理が終わり、上記ステップＳ２５６に戻って、上記の処理を繰り返すことにより、フレームの中に入っているブロックを全て処理すると、このステップＳ２５６で未使用マーカが無しと判定されて、処理を終了する。
【０１７６】
ところで、何らかの原因によりパターンコードの一部が欠落することがある。そのような場合には、図２１の（Ａ）に示すように、そのパターンコード１２０をサーチしていく線分上を延長した所にある欠落したパターンコードドット２００近傍のパターンコード１２０のドット２０２を使ってブロック基準座標を求めることができる。すなわち、この例は、欠落したままで基準座標を求めようとすると、当然、パターンコード１２０のドットの数が減り精度が落ちるので、それを補うために、回りのパターンコード１２０を使って精度を保たせようとするものである。
【０１７７】
同図の（Ｂ）は、この場合の情報再生システムの構成を示す図である。
【０１７８】
即ち、画像入力部１８６は、記録媒体上に印刷された２次元コードを撮像し、得られた画像データを２値化などしてフレームメモリ１８８に記憶する。
【０１７９】
マーカ概中心座標算出部１９０は、このフレームメモリ１８８に入ったデータを使って、マーカの概中心座標を算出する。パターンコード抽出部１９２は、この概中心から所定距離内にあるパターンコードを抽出する。抽出パターンコード数カウンタ２０４は、抽出されたパターンコードのドット数をカウントする。判定部２０６は、このカウント数と所定閾値とを比較し、カウント数がこの所定閾値に達しないときには、上記パターンコード抽出部１９２に、足りない分のパターンコードのドットを次のパターンコードからさらに抽出させる。
【０１８０】
ブロック基準座標算出部１９４は、これら抽出されたパターンコードから誤差最小法によりマーカの真中心つまりブロック基準座標を算出する。データコード読取座標算出部１９６は、このブロック基準座標を使って、データコードの読取座標を算出する。そして、データコード読取部１９８は、この読取座標に従ってフレームメモリ１８８に記憶されたデータコードを読み取って出力する。後は、復調、デインターリーブ、エラー訂正／検出などの特開平６−２３１４６６号公報に開示されたような処理を行って再生される。
【０１８１】
図２２は、このような構成における１フレーム分のデータ読取処理のフローチャートである。
【０１８２】
即ち、まず、画像入力部１８６は、フレーム画像を２値化して、フレームメモリ１８８へ記憶する（ステップＳ２８２）。そして、画像内マーカ概中心算出部１９０は、フレームメモリ内のデータから既知の手法により複数のマーカを抽出し、これらマーカの概中心を算出する（ステップＳ２８４）。
【０１８３】
次に、パターンコード抽出部１９２は、未処理マーカがあるかどうかを判定し（ステップＳ２８６）、まだこれから処理しなければいけないマーカがある場合には、これらの概中心からブロック内の予め決められた位置のパターンコードを探索し（ステップＳ２８８）、抽出パターンコード数カウンタ２０４は、見つけられたパターンコードの数をカウントする（ステップＳ２９０）。ここで、判定部２９６は、このカウントした数が所定数に達しているかどうか判定する（ステップＳ２９２）。まだ達していない場合には、パターンコード抽出部１９２は、ブロック外で対応する位置のパターンコードを探索し（ステップＳ２９４）、抽出パターンコード数カウンタ２０４は、この見つけられたパターンコードの数を上記カウント数に加える（ステップＳ２９６）。そして、再度、判定部２０６は、カウント数が所定数に達しているかどうか判定し（ステップＳ２９８）、まだであれば、このブロックの処理は不能として上記ステップＳ２８６に戻り、次のブロックの処理へと進む。
【０１８４】
一方、上記ステップＳ２９２又はＳ２９８において、カウント数が所定数に達したと判定された場合には、ブロック基準座標算出部１９４は、それら見つけられたパターンコードを用いてブロック基準座標を算出する（ステップＳ３００）。この場合、前述したような誤差最小法例えば最小２乗近似により最適座標位置を決定する。
【０１８５】
こうして１つのブロック基準座標が求まったならば、次に、１ブロックの基準座標が全て、つまりブロックの４隅の４点が全て算出できたかどうかの判定を行い（ステップＳ３０２）、まだの場合には上記ステップＳ２８６に戻って、上記の処理を繰り返す。
【０１８６】
また、１ブロックの基準座標が全て検出し終わった場合には、データコード読取座標算出部１９６は、それら基準座標よりブロック内データコード読取座標を算出し（ステップＳ３０４）、データ読取部１９８は、この読取座標に従ってデータを読み取っていく（ステップＳ３０６）。
【０１８７】
これで１ブロックの処理が終わり、上記ステップＳ２８６に戻って、上記の処理を繰り返すことにより、フレームの中に入っているブロックを全て処理すると、このステップＳ２８６で未使用マーカが無しと判定されて、処理を終了する。
【０１８８】
次に、マーカを無くしてパターンコードだけで読み取れるようにした例を説明する。即ち、本例では、矩形ブロックの境界部に配列されたパターンコードとして、図２３に示すように、黒ドットと白ドットとが交互に配されたパターンコード２０８を用いる。一方、データ部２１０に配されるデータコードとしては、このような黒白交互パターンが存在しないような変調が加えられている。つまり、パターンコード２０８を周期的コード体系で、データ部２１０のデータコードを非周期的コード体系で記録する。
【０１８９】
そして、このようなパターンコード２０８とデータコードでなる２次元コードパターンを撮像してメモリに記憶する。この画像をＡプレーンとする。また、この得られた画像を１ドット分ずらしてメモリに記憶する。この画像をＢプレーンとする。これらＡプレーンとＢプレーンとの排他的論理和（ＸＯＲ）をとってメモリに記憶する。すると、パターンコードの部分が全て黒ドットの連続となる。一方、データ部２１０は、前述したように黒白交互パターンの配列を禁止してるので、黒ドットがある程度以上続くことは決してない。即ち、パターンコード２０８が黒白合わせてＮドットであったとすると、黒ドットの連続数はＮよりも必ず少なくなる。従って、このＮ個連続した黒ドットを見つけることで、パターンコード２０８の位置を算出することができる。
【０１９０】
こうしてパターンコード２０８の位置が算出されたならば、メモリに記憶されたＡプレーンの画像データを使って、前述したように誤差最小法を利用してブロックの基準座標を求め、読取座標を算出することができる。
【０１９１】
図２４の（Ａ）は、この場合の情報再生システムのブロック構成図であり、図２５は動作フローチャートである。
【０１９２】
即ち、画像入力部２１２は、図２３に示すような黒ドットと白ドットとが交互に配されたパターンコード２０８を持つ２次元コードパターンが印刷された情報記録媒体を撮像し、２次元コードパターンの画像を得、これを２値化して第１メモリ（メモリ１）２１４へ格納する（ステップＳ３１２）。即ち、Ａプレーンの画像を得る。次に、１ドットシフト画像生成部２１６は、予め決められた方向へ１ドットサイズ分、この第１メモリ２１４に記憶された画像をシフトしてＢプレーンの画像を生成し、第２メモリ（メモリ２）２１８に格納する（ステップＳ３１４）。そして、排他的論理和算出部２２０は、これら第１及び第２メモリ２１４，２１８に記憶された２つのビットマップデータに対し排他的論理和を取り、その結果を第３メモリ（メモリ３）２２２へ格納する（ステップＳ３１６）。
【０１９３】
ここで、所定パターン連続発生数算出部２２４は、第３メモリ２２２に記憶されたデータから黒ドットの連続数をカウントする（ステップＳ３１８）。パターンコード位置検出部２２６は、このカウントされた連続数が所定値以上かどうか判断し（ステップＳ３２０）、そうであれば連続点の始点と終点で挟まれた線分上をパターンコード２０８の存在領域として記憶する（ステップＳ３２２）。その後、あるいは上記ステップＳ３２０で設定値に達してないと判断された場合には、１画面つまりフレームの処理が終了したかどうか判断し（ステップＳ３２４）、まだであれば上記ステップＳ３１８に戻る。
【０１９４】
また、１画面の処理が終了した場合には、パターンコード存在領域をすべて使用したかどうか、即ちフレームの中に入っているブロックを全て処理したかどうか判断し（ステップＳ３２６）、まだであれば、第３メモリ２２２中のパターンコード存在領域に対応する第１メモリ２１４の画像データよりパターンコード２０８を見つけ、ブロック基準座標生成部２２８によって、このパターンコード２０８を用いてブロック基準座標を算出する（ステップＳ３２８）。そして、データコード読取座標生成部２３０は、この基準座標を基にブロック内データコード読取座標を算出し、データコード読取部２３２によって第１メモリ２１４からデータコードを読み取る（ステップＳ３３０）。後は、復調、デインターリーブ、エラー訂正／検出などの特開平６−２３１４６６号公報に開示されたような処理を行って再生される。
【０１９５】
これで１ブロックの処理が終わり、上記ステップＳ３２６に戻って、上記の処理を繰り返すことにより、フレームの中に入っているブロックを全て処理すると、このステップＳ３２６でパターンコード存在領域を全て使用したと判定されて、処理を終了する。
【０１９６】
この例によれば、基準座標算出の処理が簡略になり、また、マーカを用いていないので、記録密度（容量）を向上させることができる。
【０１９７】
なお、この例は、１ドットずらすために、何らかの方法で前処理として傾きを補正しておくことが必要となる。
【０１９８】
また、上記のような黒白交互パターンの代わりに、図２６に示すように、自己相関性が強く且つ相互相関性が弱い所定の相関パターン、例えばバーカーコードでパターンコード２３４を構成し、データ部２３６はこのバーカーコード以外の配列になるように変調をかけておくようにしても、マーカを省略することができる。つまり、パターンコード２３４を相関性を有するコード体系で、データ部２３６のデータコードを相関性を有しないコード体系で記録する。
【０１９９】
このバーカーコードは、同図に示すように、コード長Ｎが１１のときは、「＋＋＋−−−＋−−＋−」となり、＋を１（黒ドット）、−を０（白ドット）に対応させると、「１１１０００１００１０（黒黒黒白白白黒白白黒白）」となる。このバーカーコードの相関値ψは、一般的には、
【０２００】
【数２２】
0003639328.tif 000023
で表される。ここで、Ｋは参照パターン２３８とパターンコード２３４とのズレを示す。
【０２０１】
このようなバーカーコードは、図２７に示すように、同じ並びの参照パターン２３８と相関を取った場合、一致した所で相関値のピークが立つ。従って、このバーカーコードの参照パターン２３８を、撮像した画像に対して１ドットずつずらしながらスキャンしていき、相関のピーク値を検出することで、パターンコード２３４の位置を判別することが可能になる。こうしてパターンコード２３４の位置が算出されたならば、前述したように誤差最小法を利用してブロックの基準座標を求め、読取座標を算出することができる。
【０２０２】
図２４の（Ｂ）は、この場合の情報再生システムのブロック構成図であり、図２８は動作フローチャートである。
【０２０３】
即ち、画像入力部２４０は、図２６に示すようなバーカーコードでなるパターンコード２３４を有する２次元コードパターンが印刷された情報記録媒体を撮像し、２次元コードパターンの画像を得、これを２値化して第１メモリ（メモリ１）２４２へ格納する（ステップＳ３４２）。
【０２０４】
次に、相関演算部２４４は、黒ドットを＋１、白ドットを−１として、参照パターン記憶ＲＯＭ２４６に記憶された参照パターン２３８との相関値を求める（ステップＳ３４４）。そして、この求めた相関値が予め設定した値より大きいかどうか判断し（ステップＳ３４６）、そうでなければ相関値をゼロとして（ステップＳ３４８）、またそうであればその相関値を、第２メモリ（メモリ２）２４８に格納する（ステップＳ３５０）。その後、予め決められた方向へ参照パターンを所定距離シフトし（ステップＳ３５２）、その結果、１画面つまりフレームの終了となるかどうか判断する（ステップＳ３５４）。まだ１画面の終了とならなければ、上記ステップＳ３４４に戻り、上記処理を繰り返す。
【０２０５】
一方、１画面部の処理が終了した場合には、概略パターンコード領域抽出部２５０は、第２メモリ２４８より値ゼロで囲まれた概略パターンコード領域を抽出する（ステップＳ３５６）。そして、概略パターンコード領域内ピーク位置検出部２５２は、未処理概略パターンコード領域があるかどうか、即ちフレームの中に入っているブロックを全て処理したかどうか判断し（ステップＳ３５８）、まだであれば、概略パターンコード領域内での相関ピーク位置を検出する（ステップＳ３６０）。パターンコード位置検出部２５４は、このピーク位置を結んだ線分中にある第１メモリ２４２でのパターンコード２３４を抽出し（ステップＳ３６２）、ブロック基準座標生成部２５６は、この抽出したパターンコード２３４を用いてブロック基準座標を算出する（ステップＳ３６４）。そして、データコード読取座標生成部２５８は、この基準座標を基にブロック内データコード読取座標を算出し、データコード読取部２６０によって第１メモリ２４２からデータコードを読み取る（ステップＳ３６６）。後は、復調、デインターリーブ、エラー訂正／検出などの特開平６−２３１４６６号公報に開示されたような処理を行って再生される。
【０２０６】
これで１ブロックの処理が終わり、上記ステップＳ３５８に戻って、上記の処理を繰り返すことにより、フレームの中に入っているブロックを全て処理すると、このステップＳ３５８で未処理概略パターンコード領域がないと判定されて、処理を終了する。
【０２０７】
この例によれば、基準座標算出の処理が簡略になり、また、マーカを用いていないので、記録密度（容量）を向上させることができる。
【０２０８】
なお、この例においても、何らかの方法で前処理として傾きを補正しておくことが必要となる。
【０２０９】
そこで、傾きがあっても良いように、バーカーコードを、図２９の（Ａ）に示すように、円周上に並べて構成したリング状バーカーコード２６２とすることが考えられる。即ち、この円周の中心を通る直線で切った断面は、互いに反対方向に並んだ２個のバーカーコードになる。従って、同図の（Ｂ）に網掛けを付して示すような領域で相関を求めると、このリング状バーカーコード２６２と同様の参照パターン２６４とが一致したところに相関のピークが立つ。
【０２１０】
なお、このようなリング状バーカーコード２６２における相関値ψは、一般的には、
【０２１１】
【数２３】
0003639328.tif 000024
で表される。ここで、Ｋ，Ｌは、参照パターン２６４とリング状バーカーコード２６２とのｘ，ｙ方向とのズレを示す。
【０２１２】
図３０の（Ａ）は、このようなリング状バーカーコード２６２でなるパターンコード２６６を、ブロックの４隅に配置した例である。この場合には、ブロック基準座標は、このリング状バーカーコードの中心となる。そして、同様の参照パターン２６４と順次相関を取っていくと、パターンが一致した点で相関のピークが立つので、そのピーク値を検出することで、直接ブロック基準座標を４点求めることができる。後は、前述したように、このブロック基準座標から各データドットの読取座標を算出することができる。
【０２１３】
図３１の（Ａ）は、この場合の情報再生システムのブロック構成図であり、図３２は動作フローチャートである。
【０２１４】
即ち、画像入力部２６８は、図３０の（Ａ）に示すようなリング状バーカーコードでなるパターンコード２６６を有する２次元コードパターンが印刷された情報記録媒体を撮像し、２次元コードパターンの画像を得、これを２値化して第１フレームメモリ（メモリ１）２７０へ格納する（ステップＳ３７２）。
【０２１５】
次に、参照パターン相関演算部２７２は、参照コードパターン（ビットマップ）２６４を２値化画像の左上から右下へラスタスキャンしてそれぞれの位置の相関値を算出し、第２フレームメモリ（メモリ２）２７４に格納する（ステップＳ３７４）。その後、概略ブロック基準領域抽出部（閾値比較部）２７６は、相関値が格納された第２フレームメモリ２７４のデータと閾値とを比較し、閾値より大きい領域を求め、この領域をマーカ領域とする（ステップＳ３７６）。
【０２１６】
ブロック基準座標算出部（概略領域内ピーク位置検出部）２７８は、未処理マーカ領域があるかどうか、即ちフレームの中に入っているブロックを全て処理したかどうか判断し（ステップＳ３７８）、まだであれば、上記マーカ領域内で最大値の場所を算出する（ステップＳ３８０）。そして、この最大値の周囲の値も使って相関値のピーク位置の精度を向上させ（ステップＳ３８２）、こうして得たピーク位置をブロック基準座標とし、ブロック内データコード読取座標生成部２８０は、４つのブロック基準座標を結んで囲まれた領域の各辺を等分割してメッシュを切り、データコード読取座標とし、データコード読取部２８２によって第１フレームメモリ２７０からデータコードを読み取る（ステップＳ３８４）。後は、復調、デインターリーブ、エラー訂正／検出などの特開平６−２３１４６６号公報に開示されたような処理を行って再生される。
【０２１７】
これで１ブロックの処理が終わり、上記ステップＳ３７８に戻って、上記の処理を繰り返すことにより、フレームの中に入っているブロックを全て処理すると、このステップＳ３７８で未処理マーカ領域がないと判定されて、処理を終了する。
【０２１８】
また、上記のようなリング状バーカーコード２６２の中央部のスペースが空いていることから、図３０の（Ｂ）に示すように、ここをデータコード領域とすることも考えられる。即ち、リング状バーカーコード２６２の１つ１つが、データコード２８４の各１つ１つのドットを構成する。
【０２１９】
図３１の（Ｂ）は、この場合の情報再生システムのブロック構成図であり、図３３は動作フローチャートである。
【０２２０】
即ち、画像入力部２６８は、図３０の（Ｂ）に示すような２次元コードパターンが印刷された情報記録媒体を撮像し、２次元コードパターンの画像を得、これを２値化して第１フレームメモリ（メモリ１）２７０へ格納する（ステップＳ３９２）。
【０２２１】
次に、参照パターン相関演算部２７２は、参照コードパターン（ビットマップ）２６４を２値化画像の左上から右下へラスタスキャンしてそれぞれの位置の相関値を算出し、第２フレームメモリ（メモリ２）２７４に格納する（ステップＳ３９４）。その後、概略データコード読取領域抽出部（閾値比較部）２８６は、相関値が格納された第２フレームメモリ２７４のデータと所定の閾値とを比較し、閾値より大きい領域を求め、これら各領域をデータコード領域とする（ステップＳ３９６）。
【０２２２】
データコード読取座標算出部（概略領域内ピーク位置検出部）２８８は、未処理データコード領域があるかどうか判断し（ステップＳ３９８）、まだであれば、上記データコード領域内で最大値の場所を探索する（ステップＳ４００）。この位置が、複数存在する場合、例えば周りの値より一つに絞る。そして、この最大値の位置をデータコード読取座標とし、データコード読取部２８２によって第１フレームメモリ２７０からデータコードを読み取る（ステップＳ４０２）。後は、復調、デインターリーブ、エラー訂正／検出などの特開平６−２３１４６６号公報に開示されたような処理を行って再生される。
【０２２３】
その後、上記ステップＳ３９８に戻って上記の処理を繰り返し、未処理データコード領域がなくなったならば、処理を終了する。
【０２２４】
以上実施例に基づいて本発明を説明したが、本発明は上述した実施例に限定されるものではなく、本発明の要旨の範囲内で種々の変形や応用が可能である。ここで、本発明の要旨をまとめると以下のようになる。
【０２２５】
（１）  複数のドットを２次元に配置してなる２次元コードが記録された情報記録媒体において、
上記２次元コードは、上記複数のドットの内の少なくとも２つ以上のドットを予め設定された位置関係を有するように配置して記録されていることを特徴とする情報記録媒体。
【０２２６】
即ち、２つ以上のドットを予め設定された位置関係に配置することにより、このドットの相対位置関係を使って、２次元コードを構成する複数ドットの各位置を高精度に検出できる。
【０２２７】
（２）  複数のドットを２次元に配置してなる２次元コードが記録された情報記録媒体において、
上記２次元コードは、上記複数のドットの内の少なくとも２つ以上のドットを予め設定された位置関係を有するように配置してなるパターンマッチングドット（群）を有することを特徴とする情報記録媒体。
【０２２８】
即ち、２つ以上のドットを含むパターンマッチングドットを、予め設定された位置関係に配置することにより、このパターンマッチングドットの検出を容易にし、処理の高速化と高精度なドットの位置算出を両立できる。
【０２２９】
（３）  複数のドットを２次元に配置してなる２次元コードが記録された情報記録媒体において、
上記２次元コードが、
情報内容に従って配置したデータドット（群）と、
上記データドット（群）とは異なり予め設定された位置関係で配置したパターンマッチングドット（群）と、
を有することを特徴とする情報記録媒体。
【０２３０】
即ち、パターンマッチングドットを予め設定された位置関係に配置することにより、パターンマッチングドットの検出を容易にし、このパターンマッチングドットに基づく各データドットの位置算出処理の高速化と高精度化を両立することができる。
【０２３１】
（４）  複数のドットを２次元に配置してなる２次元コードが記録された情報記録媒体において、
上記２次元コードが、
情報内容に従って配置したデータドット（群）と、
このデータドット（群）とは（一意的に）識別可能な態様で記録されるマーカと、
上記データドット（群）とは異なり予め設定された位置関係で配置したパターンマッチングドット（群）と、
を有することを特徴とする情報記録媒体。
【０２３２】
即ち、データドット（群）と識別可能なマーカを設けることで、マーカの位置検出を容易にし、またこのマーカを基準にパターンマッチングドットの位置関係が容易に精度良く求められ、これらのドットの相対位置関係を使って２次元コードを構成する複数ドットの位置を高精度に検出できる。
【０２３３】
（５）  上記２次元コードは、
複数のドットを所定の領域に配置したブロックを複数個２次元に配置してなることを特徴とする上記（１）〜（４）のいずれかに記載の情報記録媒体。
【０２３４】
即ち、ブロックを構成することにより、ランダムな読み取りを可能にすることができる。
【０２３５】
（６）  上記２次元コードは、
複数のブロックを分離するために、隣接するブロック間では、上記２次元コードの各ドットの態様（色）又は上記ブロック内の態様（色）を互いに異ならせて記録したことを特徴とする上記（５）に記載の情報記録媒体。
【０２３６】
即ち、記録密度を落とすことなく、ブロックを構成できるようになる。
【０２３７】
（７）  上記態様が濃度であるときは互いに反転せしめ、色度であるときは互いに異ならせて記録したことを特徴とする上記（６）に記載の情報記録媒体。
【０２３８】
即ち、記録密度を落とすことなく、ブロックを構成できるようになる。
【０２３９】
（８）  上記データドット（群）とは識別可能な態様で記録されるマーカは、上記データドット（群）と異なる面積、形状、色、蛍光性、及び磁性のいずれかで記録されたことを特徴とする上記（４）に記載の情報記録媒体。
【０２４０】
即ち、マーカの位置検出を容易にすることができる。
【０２４１】
（９）  上記データドット（群）が、少なくともその一部を離間して配置し、上記パターンマッチングドット（群）が、上記データドット（群）の間隙に、データドット（群）と接することなく配置したものである、
ことを特徴とする上記（３）又は（４）に記載の情報記録媒体。
【０２４２】
即ち、記録密度を落とさないでパターンマッチングドットを配置できるようになる。
【０２４３】
（１０）  上記パターンマッチングドット（群）は、パターンマッチングドット（群）全体またはその一部が上記データドット（群）と識別可能なコード体系で記録されていることを特徴とする上記（２）〜（４）のいずれかに記載の情報記録媒体。
【０２４４】
即ち、パターンマッチングドットの検出を容易にできるようになる。
【０２４５】
（１１）  上記パターンマッチングドット（群）を周期的なコード体系で記録すると共に、上記データドット（群）を非周期的なコード体系で記録したことにより、上記パターンマッチングドット（群）とデータドット（群）とを識別可能としたことを特徴とする上記（１０）に記載の情報記録媒体。
【０２４６】
即ち、パターンマッチングドットの検出を容易にできる。
【０２４７】
（１２）  上記パターンマッチングドット（群）を相関性を有するコード体系で記録すると共に、上記データドット（群）を相関性を有しないコード体系で記録したことにより、上記パターンマッチングドット（群）とデータドット（群）とを識別可能としたことを特徴とする上記（１０）に記載の情報記録媒体。
【０２４８】
即ち、パターンマッチングドットの検出を容易にできる。
【０２４９】
（１３）  上記パターンマッチングドット（群）は、パターンマッチングドット（群）全体またはその一部がデータドット群と同領域に記録されていることを特徴とする上記（２）〜（４）のいずれかに記載の情報記録媒体。
【０２５０】
即ち、記録密度を落とさないでパターンマッチングドットを配置できる。
【０２５１】
（１４）  上記パターンマッチングドット（群）の一部は、他のパターンマッチングドット群と異なる記録様態を有するマーカを含むことを特徴とする上記（２）〜（４）のいずれかに記載の情報記録媒体。
【０２５２】
即ち、データドット（群）と識別可能なマーカを設けることで、マーカの位置検出を容易にし、また、このマーカを基準にパターンマッチングドットの位置検出が容易に精度良く求められ、これらのドットの相対位置関係を使って２次元コードを構成する複数ドットの位置を高精度に検出できる。
【０２５３】
（１５）  上記マーカは、少なくとも一つ以上のパターンマッチングドットを識別可能な態様で内包していることを特徴とする上記（１５）に記載の情報記録媒体。
【０２５４】
即ち、位置検出の処理を容易にでき、記録密度を向上させることができる。
【０２５５】
（１６）  上記パターンマッチングドット群は、互いに干渉しない様に分離して記録されていることを特徴とする上記（２），（３），（４），及び（１４）のいずれかに記載の情報記録媒体。
【０２５６】
即ち、パターンマッチングドットの中心座標の算出を容易にすることができる。
【０２５７】
（１７）  上記予め設定された位置関係を有するように配置して記録された少なくとも２つ以上のドットは、当該コード内のいずれかに存在すべき真基準点を求めるための仮基準点を設定し、この仮基準点と上記予め設定された位置関係とに基づいて上記２つ以上のドットに係る理想点を求め、この理想点と実際に取り込まれた上記２つ以上のドットに係る現実点とのズレ分が最小となるように上記仮基準点の位置を補正して自己又は他のドット読み取りのための（真）基準点を設定し得るように配置して記録されていることを特徴とする上記（１）〜（４）のいずれかに記載の情報記録媒体。
【０２５８】
即ち、仮基準点と設計値とに基づいて求めた理想点に対する現実点とのズレ分が最小となるように上記仮基準点を補正して自己又は他のドットの読み取りのための（真）基準点を設定しているので、２次元コードを構成する複数ドットの位置を高精度に検出することができる。
【０２５９】
（１８）  複数のドットを２次元に配置してなる２次元コードにおいて、
上記複数のドットの内の少なくとも２つ以上のドットを予め設定された位置関係を有するように配置したことを特徴とする２次元コード。
【０２６０】
即ち、２つ以上間ドットを予め設定された位置関係を有するように配置したことにより、この２つ以上のドットの相対位置関係を使って、２次元コードとして配置された複数ドット位置を高精度に検出できるようになる。
【０２６１】
（１９）  複数のドットを２次元に配置してなる２次元コードにおいて、
上記複数のドットの内の少なくとも２つ以上のドットを予め設定された位置関係を有するように配置してなるパターンマッチングドット（群）を設けたことを特徴とする２次元コード。
【０２６２】
即ち、２つ以上のパターンマッチングドットを予め設定された位置関係に配置することにより、パターンマッチングドットの検出を容易にし、処理の高速化と高精度なドットの位置算出を両立できるようになる。
【０２６３】
（２０）  複数のドットを２次元に配置してなる２次元コードにおいて、
情報内容に従って配置したデータドット（群）と、
上記データドット（群）とは異なり予め設定された位置関係で配置したパターンマッチングドット（群）と、
を有することを特徴とする２次元コード。
【０２６４】
即ち、パターンマッチングドットを予め設定された位置関係に配置することにより、パターンマッチングドットの検出を容易にし、処理の高速化と高精度なドットの位置算出を両立できるようになる。
【０２６５】
（２１）  複数のドットを２次元に配置してなる２次元コードにおいて、
情報内容に従って配置したデータドット（群）と、
このデータドット（群）とは一意的に識別可能な態様で記録されるマーカと、上記データドット（群）とは異なり予め設定された位置関係で配置したパターンマッチングドット（群）と、
を有することを特徴とする２次元コード。
【０２６６】
即ち、データドット（群）と識別可能なマーカを設けることで、マーカの位置検出を容易にし、またこのマーカを基準にパターンマッチングドットの位置検出が容易に精度良く求められ、これらのドットの相対位置関係を使って２次元コードを構成する複数ドットの位置を高精度に検出できるようになる。
【０２６７】
（２２）  光学的に読み取り可能な高密度に記録された２次元コードを再生する情報再生システムにおいて、
予め設定された位置関係（設定座標）を有する所定のフォーマットに基づき複数のドットを２次元に配置して記録した２次元コードを有する情報記録媒体を光学的に撮像し、上記２次元コードを映像信号として入力する入力手段と、
上記入力手段により映像信号として入力された２次元コードから位置情報（仮の位置座標：基準座標）を算出する位置情報算出手段と、
上記予め設定された位置関係（設定座標）を有する所定のフォーマットを記憶する所定フォーマット記憶手段と、
上記位置情報算出手段により算出された位置情報（仮の位置座標：基準座標）と上記フォーマット記憶手段に記憶された上記所定フォーマットの有する予め設定された位置関係（設定座標）とから上記２次元コードの各ドットの位置座標（絶対座標）を算出する座標算出手段と、
を具備することを特徴とする情報再生システム。
【０２６８】
即ち、２次元コードから読み取られた座標群と、予め所定フォーマット記録手段に記憶されている座標群との相対位置関係を比較することで、高精度に２次元コードの各ドット位置座標を求めることができる。
【０２６９】
（２３）  上記座標算出手段は、上記位置情報算出手段により算出された位置情報と上記フォーマット記憶手段に記憶された上記所定フォーマットの有する位置関係とを比較し、２乗誤差が最小となるようにして、上記２次元コードの各ドットの位置座標を算出する手段を含むことを特徴とする上記（２２）に記載の情報再生システム。
【０２７０】
即ち、２次元コードから読み取られた座標群と、予め所定フォーマット記録手段に記憶されている座標群との相対位置関係の２乗誤差を最小にするように上記読み取り座標群を修正することで、高精度に２次元コードの各ドット位置座標を求めることができる。
【０２７１】
（２４）  上記入力手段は、映像信号を二値化する二値化手段を含むことを特徴とする上記（２２）又は（２３）に記載の情報再生システム。
【０２７２】
即ち、ドット位置座標算出手段の処理を容易にし、高速化を図れる。
【０２７３】
（２５）  上記情報記録媒体は、上記複数のドットの内の少なくとも２つ以上のドットを予め設定された位置関係を有するように配置してなるパターンマッチングドット（群）を設けた２次元コードが記録されたものであり、
上記位置情報算出手段は、
上記パターンマッチングドット（群）を検出するパターン検出手段と、
上記パターン検出手段により検出したパターンマッチングドット（群）の位置情報を検出するパターン位置情報検出手段とを備え、
上記座標算出手段は、上記パターン位置情報と上記所定フォーマットの有する位置関係とに基づき上記パターンマッチングドット（群）の相対的な位置関係及び座標を算出する相対位置座標算出手段を有する、
ことを特徴とする上記（２２）に記載の情報再生システム。
【０２７４】
即ち、２つ以上のパターンマッチングドットを使って２次元コードから読み取る座標群を算出するので、位置情報算出手段が容易に構成でき、且つ高速化が図れる。
【０２７５】
（２６）  上記情報記録媒体は、情報を示すデータドット（群）と、上記データドット（群）とは異なり予め設定された位置関係で配置した少なくとも２つ以上のドットからなるパターンマッチングドット（群）を設けた２次元コードが記録されたものであり、
上記位置情報算出手段は、
上記パターンマッチングドット（群）を検出するパターン検出手段と、
上記パターン検出手段で検出したパターンマッチングドット（群）の位置情報を検出するパターン位置情報検出手段とを備え、
上記座標算出手段は、上記パターン位置情報と上記所定フォーマットの有する位置関係とに基づき上記パターンマッチングドット（群）の相対的な位置関係及び座標を算出する相対位置座標算出手段を有する、
ことを特徴とする上記（２２）に記載の情報再生システム。
【０２７６】
即ち、２つ以上のパターンマッチングドットを使って２次元コードから読み取る座標群を算出するので、位置情報算出手段が容易に構成でき、且つ高速化が図れる。
【０２７７】
（２７）  上記情報記録媒体は、情報を示すデータドット（群）と、このデータドット（群）とは（一意的に）識別可能な態様で記録されるマーカと、上記データドット（群）とは異なり予め設定された位置関係で配置した少なくとも２つ以上のドットからなるパターンマッチングドット（群）を設けた２次元コードが記録されたものであり、
上記位置情報算出手段は、
上記マーカを検出するマーカ検出手段と、
上記マーカ検出手段で検出したマーカに基づいて上記パターンマッチングドット（群）を検出するパターン検出手段と、
上記パターン検出手段で検出したパターンマッチングドット（群）の位置情報を検出するパターン位置情報検出手段とを備え、
上記座標算出手段は、上記パターン位置情報と上記所定フォーマットの有する位置関係とに基づき上記パターンマッチングドット（群）の相対的な位置関係及び座標を算出する相対位置座標算出手段を有する、
ことを特徴とする上記（２２）に記載の情報再生システム。
【０２７８】
即ち、マーカを検出することで、パターンマッチングドット（群）を検出する検出範囲を制限できるので、高速化が図れる。
【０２７９】
（２８）  上記パターン位置情報検出手段は、上記パターンマッチングドット（群）中のドットの重心点の座標を検出する重心検出手段を備えたことを特徴とする上記（２５）〜（２７）のいずれかに記載の情報再生システム。
【０２８０】
即ち、簡単な回路構成でパターンマッチングドットの中心座標を求めることができる。
【０２８１】
（２９）  上記パターン位置情報検出手段は、上記パターンマッチングドット（群）中のドットに外接する矩形の中心点の座標を検出する中心検出手段を備えたことを特徴とする上記（２５）〜（２７）のいずれかに記載の情報再生システム。
【０２８２】
即ち、より簡単な回路構成でパターンマッチングドットの中心座標を求めることができる。
【０２８３】
（３０）  上記位置情報検出手段は、
上記パターンマッチングドット（群）の一部が検出されなかった場合に、上記所定のフォーマットが有する位置関係と、検出された上記パターンマッチングドット（群）の位置情報とに基づき、検出されなかったパターンマッチングドット（群）の位置情報を推定するパターン推定手段と、
このパターン推定手段により推定された位置情報に基づき、他のパターンマッチングドットを探索するパターンコード探索手段と、
を有することを特徴とする上記（２５）〜（２７）のいずれかに記載の情報再生システム。
【０２８４】
即ち、情報記録媒体の汚れ等によるドットの欠損がある場合でも必要十分な個数のパターンマッチングドット群を用いて高精度に２次元コードを構成する複数ドットの位置検出ができる。
【０２８５】
（３１）  上記座標算出手段は、任意の座標及び上記情報記録媒体の座標系の単位ベクトルを求めて、上記２次元コードの各ドットの位置座標を求めるものであることを特徴とする上記（２３）に記載の情報再生システム。
【０２８６】
即ち、パターンマッチングドット群を任意な位置に配置しても２次元コードを構成する複数ドットの座標を高精度に算出できる。
【０２８７】
（３２）  上記座標算出手段は、任意の座標を求めて、上記２次元コードの各ドットの位置座標を求めるものであることを特徴とする上記（２３）に記載の情報再生システム。
【０２８８】
即ち、パターンマッチングドット群を任意な位置に配置しても２次元コードを構成する複数ドットの座標を高精度に算出できる。
【０２８９】
（３３）  上記座標算出手段は、二組の任意の座標を結ぶ線分を求めて、上記２次元コードの各ドットの位置座標を求めるものであることを特徴とする上記（２３）に記載の情報再生システム。
【０２９０】
即ち、パターンマッチングドット群を直線上に配置することで、２次元コードを構成する複数ドットの座標を高精度に算出できる。
【０２９１】
（３４）  上記座標算出手段は、上記推定された線分の交点を求めることにより、上記２次元コードの各ドットの位置座標を求めるものであることを特徴とする上記（３３）に記載の情報再生システム。
【０２９２】
即ち、パターンマッチングドット群を多角形辺上に配置することで、２次元コードを構成する複数ドットの座標を高精度に算出できる。
【０２９３】
（３５）  光学的に読み取り可能な高密度に記録された複数のドットを有する２次元コードを再生する情報再生方法において、
予め設定された位置関係を有するように配置して記録された少なくとも２つ以上のドットを有する当該コード内に真基準点を求めるための仮基準点を設定し、この仮基準点と前記予め設定された位置関係とに基づいて前記２つ以上のドットに係る理想点を求め、
この理想点と実際に取り込まれた前記２つ以上のドットに係る現実点とのズレ分が最小となるように上記仮基準点の位置を補正して自己又は他のドット読み取りのための真基準点を設定して、
この真基準点を基に情報を再生することを特徴とする情報再生方法。
【０２９４】
即ち、仮基準点と設計値とに基づいて求めた理想点に対する現実点とのズレ分が最小となるように上記仮基準点を補正して自己又は他のドットの読み取りのための（真）基準点を設定しているので、２次元コードを構成する複数ドットの位置を高精度に検出することができる。
【０２９５】
【発明の効果】
以上詳述したように、本発明によれば、高密度記録されたコードパターンの各ドット位置をより高精度に算出できるようにした情報記録媒体、２次元コード、情報再生システム、及び情報再生方法を提供することができる。
【図面の簡単な説明】
【図１】本発明の実施例の情報再生システムの構成を示す図である。
【図２】（Ａ）は、２次元コードのフォーマットを示す図、（Ｂ）はマーカを示す図、（Ｃ）はストリーク処理を説明するための図である。
【図３】図１の情報再生システムにおける読取座標算出処理のフローチャートである。
【図４】（Ａ）は水平方向及び垂直方向に閾値処理の行われた画像を再展開した結果を示す図であり、（Ｂ）はマーカ概中心算出部により算出された各マーカの概中心位置を示す図である。
【図５】ベクトルフィティング法を説明するための図である。
【図６】ベクトルフィティング法の別の例を説明するための図である。
【図７】ポイントフィティング法を説明するための図である。
【図８】（Ａ）はラインフィティング法を説明するための図であり、（Ｂ）は座標算出用基準点としてデータコードを利用する例を説明するための図である。
【図９】（Ａ）はブロック単位に黒と白を反転させたフォーマットの２次元コード及びその場合の座標算出用基準点を説明するための図であり、（Ｂ）はその場合の読取座標算出動作のフローチャートである。
【図１０】図８の（Ｂ）の例に於ける読取座標算出動作のフローチャートである。
【図１１】（Ａ）は大きなマーカの中にパターンコードを埋め込んだ２次元コードパターンを示す図であり、（Ｂ）はこの場合の読取座標算出動作のフローチャートである。
【図１２】（Ａ）乃至（Ｄ）はそれぞれパターンコードの他の例を示す図である。
【図１３】（Ａ）は非ブロック化した２次元コードのフォーマットを示す図、（Ｂ）はパターンコードの多重化記録の例を示す図であり、（Ｃ）はマーカを特殊印刷する例を示す図である。
【図１４】パターンコードを使ってマーカの真中心を求める場合の他の算出法としてパターンコードの各ドットの外接四辺形の中心を算出するようにした例を説明するための図である。
【図１５】（Ａ）乃至（Ｃ）はそれぞれパターンコードのさらに別の例を示す図、（Ｄ）はパターンコード自体が無い２次元コードを示す図であり、（Ｅ）は（Ｄ）の２次元コードを撮像した１フレーム内の画像を示す図である。
【図１６】（Ａ）乃至（Ｃ）はそれぞれレクタングルフィティングを用いる場合の情報再生システムのブロック構成図である。
【図１７】図１６の（Ｂ）の構成における１フレーム分のデータ読取処理のフローチャートである。
【図１８】図１６の（Ｃ）の構成における１フレーム分のデータ読取処理のフローチャートである。
【図１９】（Ａ）はマーカ近傍の両側のパターンコードだけを使ってマーカの真中心を算出するようにした例を説明するための図であり、（Ｂ）はこの場合の情報再生システムの構成を示す図である。
【図２０】図１９の（Ｂ）の構成における１フレーム分のデータ読取処理のフローチャートである。
【図２１】（Ａ）は欠落パターンコードドット近傍のパターンコードドットを使ってマーカの真中心を算出するようにした例を説明するための図であり、（Ｂ）はこの場合の情報再生システムの構成を示す図である。
【図２２】図２１の（Ｂ）の構成における１フレーム分のデータ読取処理のフローチャートである。
【図２３】マーカを無くしてパターンコードだけで読み取れるようにした例を説明するための図である。
【図２４】（Ａ）は図２３の２次元コード場合の情報再生システムのブロック構成図であり、（Ｂ）は図２６の２次元コード場合の情報再生システムのブロック構成図である。
【図２５】図２４の（Ａ）の情報再生システムの動作フローチャートである。
【図２６】バーカーコードでパターンコードを構成した場合の２次元コードのフォーマット及びバーカーコードを示す図である。
【図２７】バーカーコードと同じ並びの参照パターンとの相関を取った場合の相関値を示す図である。
【図２８】図２４の（Ｂ）の情報再生システムの動作フローチャートである。
【図２９】（Ａ）はリング状バーカーコードと同構成の参照パターンとの相関を取った場合の相関値を示す図であり、（Ｂ）はリング状バーカーコードの相関を求める領域を示す図である。
【図３０】（Ａ）はリング状バーカーコードでなるパターンコードを有する２次元コードパターンを示す図であり、（Ｂ）はリング状バーカーコードをデータコードの各ドットとした場合の２次元コードパターンを示す図である。
【図３１】（Ａ）は図３０の（Ａ）の２次元コードの場合の情報再生システムのブロック構成図であり、（Ｂ）は図３０の（Ｂ）の２次元コードの場合の情報再生システムのブロック構成図である。
【図３２】図３１の（Ａ）の情報再生システムの動作フローチャートである。
【図３３】図３１の（Ｂ）の情報再生システムの動作フローチャートである。
【図３４】高精度なコードの読み取りを行うための従来の方法を用いた場合の２次元コードのフォーマットを示す図である。
【符号の説明】
１０２…入力装置、  １０４…記録媒体、  １０６…２値化処理部、  １０８…データメモリ（フレームメモリ）、  １１０…マーカ検出部、  １１２…ブロック、  １１４…データコード領域、  １１６…ブロックアドレスパターン（アドレスコード）、  １１８，１３８，１５０，１６２…マーカ、  １２０，１４０，１４２，１４４，１４８，１５２，１６６，１６８，２０８，２３４，２６６…パターンコード、  １２２…マーカ概中心算出部、  １２４…パターンコード探索部、  １２６…フォーマットメモリ、  １２８…マーカ真中心算出部、  １３０，１９６…データコード読取座標算出部、  １３２…境界線、  １３４…交点、  １３６…注目コード、  １４６，１５８，２８４…データコード、  １５４…水平線、  １５６…フレーム、  １６０…白抜きの丸、  １６４…パターンコードの各ドット、  １７０，１８６，２１２，２４０，２６８…画像入力部、  １７２，１８８…フレームメモリ、  １７４，１９２…パターンコード抽出部、  １７６…複数回帰直線算出部、  １７８…データコード読取領域基準座標算出部、  １８０…領域基準座標内データコード読取座標生成部、  １８２，１９８，２３２，２６０，２８２…データコード読取部、  １８４…画像内マーカ概中心座標算出部、  １９０…マーカ概中心座標算出部、  １９４…ブロック基準座標算出部、  ２００…欠如したパターンコードドット、  ２０２…補充したパターンコードドット、  ２０４…抽出パターンコード数カウンタ、  ２０６…判定部、  ２１０，２３６…データ部、  ２１４，２４２…第１メモリ（メモリ１）、  ２１６…１ドットシフト画像生成部、  ２１８，２４８…第２メモリ（メモリ２）、  ２２０…排他的論理和算出部、  ２２２…第３メモリ（メモリ３）、  ２２４…所定パターン連続発生数算出部、  ２２６，２５４…パターンコード位置検出部、  ２２８，２５６…ブロック基準座標生成部、  ２３０，２５８…データコード読取座標生成部、  ２３８，２６４…参照パターン、  ２４４…相関演算部、  ２４６…参照パターン記憶ＲＯＭ、  ２５０…概略パターンコード領域抽出部、  ２５２…概略パターンコード領域内ピーク位置検出部、  ２６２…リング状バーカーコード、  ２７０…第１フレームメモリ（メモリ１）、２７２…参照パターン相関演算部、  ２７４…第２フレームメモリ（メモリ２）、  ２７６…概略ブロック基準領域抽出部（閾値比較部）、  ２７８…ブロック基準座標算出部（概略領域内ピーク位置検出部）、  ２８０…ブロック内データコード読取座標生成部、  ２８６…概略データコード読取領域抽出部（閾値比較部）、  ２８８…データコード読取座標算出部（概略領域内ピーク位置検出部）。
【図１】
0003639328.tif 000025
【図２】
0003639328.tif 000026
【図３】
0003639328.tif 000027
【図４】
0003639328.tif 000028
【図５】
0003639328.tif 000029
【図６】
0003639328.tif 000030
【図７】
0003639328.tif 000031
【図８】
0003639328.tif 000032
【図９】
0003639328.tif 000033
【図１０】
0003639328.tif 000034
【図１１】
0003639328.tif 000035
【図１２】
0003639328.tif 000036
【図１３】
0003639328.tif 000037
【図１４】
0003639328.tif 000038
【図１５】
0003639328.tif 000039
【図１６】
0003639328.tif 000040
【図１７】
0003639328.tif 000041
【図１８】
0003639328.tif 000042
【図１９】
0003639328.tif 000043
【図２０】
0003639328.tif 000044
【図２１】
0003639328.tif 000045
【図２２】
0003639328.tif 000046
【図２３】
0003639328.tif 000047
【図２４】
0003639328.tif 000048
【図２５】
0003639328.tif 000049
【図２６】
0003639328.tif 000050
【図２７】
0003639328.tif 000051
【図２８】
0003639328.tif 000052
【図２９】
0003639328.tif 000053
【図３０】
0003639328.tif 000054
【図３１】
0003639328.tif 000055
【図３２】
0003639328.tif 000056
【図３３】
0003639328.tif 000057
【図３４】
0003639328.tif 000058