(57)【要約】【課題】相対的に広い読取範囲を有する画像読取装置向けに情報を埋め込む。【解決手段】ｍ箇所から選択したｎ箇所にドットを配置したｍＣｎ個の単位符号パターンを、情報を表すための情報パターンと、情報パターンから情報を取り出すための複数組の同期パターンとに分けておく。スキャナ向けに設計されたスキャナ用符号ブロックでは、左上のブロック７４０にＡ組に属する同期パターンを配置し、その中のペンデバイス向けに設計されたペン用符号ブロックの左上のブロック７４４にＢ組に属する同期パターンを配置する。また、隣接するスキャナ用符号ブロックでも同様に、ブロック７４１〜７４３にＡ組に属する同期パターンを配置し、ブロック７４５にＢ組に属する同期パターンを配置する。Ａ組をスキャナ用、Ａ組及びＢ組をペンデバイス用とすることで、スキャナ向けかつペンデバイス向けのレイアウトを可能とする。【選択図】図２０
2008113215.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体に埋め込む情報を取得する取得手段と、
前記記録媒体上のペン型の画像読取装置の読取範囲として予め定められた範囲を超える広さの区画内に記録されるように、前記取得手段により取得された前記情報を表す第１の画像と、当該ペン型の画像読取装置よりも広い読取範囲を有する特定の画像読取装置が当該第１の画像から当該情報を取得するために用いる第２の画像とを生成する生成手段とを備え、
前記生成手段は、ｍ(ｍ≧４)箇所から選択したｎ(２≦ｎ＜ｍ)箇所に単位画像を配置してなるｍＣｎ個のパターン画像の少なくとも１つを用いて、前記第１の画像と前記第２の画像とを生成することを特徴とする画像生成装置。
【請求項２】
記録媒体に埋め込む情報を取得する取得手段と、
前記記録媒体上の第１の画像読取装置の読取範囲に応じて予め定められた広さの複数の区画に跨って記録されるように、前記取得手段により取得された前記情報を表す第１の画像を生成し、当該記録媒体上の当該複数の区画の少なくとも１つの区画内に記録されるように、当該第１の画像読取装置よりも広い読取範囲を有する第２の画像読取装置が当該第１の画像から当該情報を取得するために用いる第２の画像を生成する生成手段と
を備えたことを特徴とする画像生成装置。
【請求項３】
前記生成手段は、前記記録媒体上の前記複数の区画の少なくとも１つの区画内に記録されるように、前記第１の画像読取装置が前記第１の画像から前記情報を取得できないことを表す第３の画像を生成することを特徴とする請求項２記載の画像生成装置。
【請求項４】
前記生成手段は、前記記録媒体上の前記複数の区画の少なくとも１つの区画内に記録されるように、前記第１の画像読取装置が前記第１の画像から前記情報を取得するために用いる第３の画像を生成することを特徴とする請求項２記載の画像生成装置。
【請求項５】
記録媒体から読み取られた画像を取得する画像取得手段と、
ｍ(ｍ≧４)箇所から選択したｎ(２≦ｎ＜ｍ)箇所に単位画像を配置してなるｍＣｎ個のパターン画像のうちの特定のパターン画像を、前記画像取得手段により取得された前記画像から検出する検出手段と、
前記画像取得手段により取得された前記画像のうち、前記検出手段により検出された複数の前記特定のパターン画像によって決定される区画内の画像が表す情報を取得する情報取得手段と
を備えたことを特徴とする画像処理装置。
【請求項６】
記録媒体から読み取られた画像を取得する画像取得手段と、
前記画像取得手段により取得された前記画像から、自装置が情報を取得するために用いる一のパターン画像を検出する検出手段と、
前記画像取得手段により取得された前記画像のうち、前記検出手段により検出された前記一のパターン画像によって決定される区画内の画像から、他の装置に対して情報を提供するための他のパターン画像を除外した画像が表す情報を取得する情報取得手段と
を備えたことを特徴とする画像処理装置。
【請求項７】
前記検出手段は、ｍ(ｍ≧４)箇所から選択したｎ(２≦ｎ＜ｍ)箇所に単位画像を配置してなるｍＣｎ個のパターン画像のうちの２つのパターン画像を前記一のパターン画像及び前記他のパターン画像の候補として検出した場合に、当該２つのパターン画像のうち、検出した数が少ない方を当該一のパターン画像とし、検出した数が多い方を当該他のパターン画像とすることを特徴とする請求項６記載の画像処理装置。
【請求項８】
前記検出手段は、ｍ(ｍ≧４)箇所から選択したｎ(２≦ｎ＜ｍ)箇所に単位画像を配置してなるｍＣｎ個のパターン画像のうちの２つのパターン画像を前記一のパターン画像及び前記他のパターン画像の候補として検出した場合に、当該２つのパターン画像のうち、予め定められた２つのパターン画像群の一方に属する方を当該一のパターン画像とし、他方に属する方を当該他のパターン画像とすることを特徴とする請求項６記載の画像処理装置。
【請求項９】
赤外領域に吸収波長を持つ不可視の画像形成材料を用いて前記記録媒体に記録された前記画像を、当該記録媒体に赤外光を照射することで読み取る読取手段を更に備えたことを特徴とする請求項６記載の画像処理装置。
【請求項１０】
記録媒体から読み取られた画像を取得する画像取得手段と、
前記画像取得手段により取得された前記画像に、自装置が情報を取得するために用いる特定のパターン画像が含まれているかどうかを判定する判定手段と、
前記判定手段により前記特定のパターン画像が含まれていないと判定された場合に、その旨の情報を出力する出力手段と
を備えたことを特徴とする画像処理装置。
【請求項１１】
第１の画像読取装置の読取範囲に応じて予め定められた広さの複数の区画からなる繰り返し画像が印刷され、
前記複数の区画に跨って、情報を表す第１の画像が印刷され、
前記複数の区画のうちの特定の区画内の所定の位置に、前記第１の画像読取装置よりも広い読取範囲を有する第２の画像読取装置が前記第１の画像から前記情報を取得するために用いる第２の画像が印刷され、
前記複数の区画のうちの前記特定の区画以外の区画内の前記所定の位置に対応する位置に、前記第１の画像読取装置が用いる第３の画像が印刷されたことを特徴とする印刷媒体。
【請求項１２】
コンピュータに、
記録媒体に埋め込む情報を取得する機能と、
前記記録媒体上で、第１の画像読取装置の読取範囲に応じて予め定められた広さの複数の区画に跨って記録されるように、前記情報を表す第１の画像を生成し、当該複数の区画の少なくとも１つの区画内に記録されるように、当該第１の画像読取装置よりも広い読取範囲を有する第２の画像読取装置が当該第１の画像から当該情報を取得するために用いる第２の画像を生成する機能と
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成装置、画像処理装置、印刷媒体、プログラムに関する。
【背景技術】
【０００２】
表面上の複数の位置を符号化する位置コードを提供する方法は知られている(例えば、特許文献１参照)。この特許文献１では、循環数字列を表面に沿って複数回印刷する。その際、循環数字列の異なるローテーションを、隣り合う数字列間で所定のずれが起こるように使用し、表面を分割した複数のコードウィンドウが、少なくとも３つの循環数字列を備えると共に、隣り合うコードウィンドウの１つの数字列と重なり合う１つの数字列を有するものであり、また、コードウィンドウの位置を、そのコードウィンドウに属している循環数字列間のずれによって符号化している。
【０００３】
論理的に順位付けられたデジタル量子の機械読取り可能なエンコーディングを記録した記録媒体からのエンコーディングの空間的に非同期的な読取りを可能にする技術も知られている(例えば、特許文献２参照)。この特許文献２では、本質的に同一であるエンコーディングの多数のコピーを形成し、機械認識可能な空間同期指標をエンコーディングのコピーの各々の中のプリント位置に組み合わせて、エンコーディングの空間的に同期可能な多数の事例を提供し、それらの事例をレイアウト規則に従って記録媒体における空間的に周期的な中心の格子に書き込んでいる。
【０００４】
取り込まれた画像の位置をより大きい画像から決定するためのシステム及び方法も知られている(例えば、特許文献３参照)。この特許文献３では、非反復的な系列を、所定のサイズのサブウィンドウ毎に固有とされた非反復的な配列に折り畳み、その取り込まれた位置を非反復的な配列内のサブウィンドウ毎に決定することによって、取り込まれた画像の位置を、より大きいサブウィンドウの画像から決定している。
【０００５】
光学的に読み取り可能に記録されるマルチメディア情報の長時間記録及び繰り返し再生を可能とする技術も知られている(例えば、特許文献４参照)。この特許文献４において、記録装置は、プリンタシステムや印刷用製版システムにより、オーディオ情報、映像情報、ディジタルコードデータ等を含めた所謂マルチメディア情報を光学的に読み取り可能なドットコードとして、画像や文字と一緒に紙等の媒体上に記録する。ペン型の情報再生装置は、ドットコードの手動走査に応じてそのドットコードを順次取り込んで、元のオーディオ情報を音声出力器にて、元の映像情報を表示装置にて、元のディジタルコードデータをページプリンタ等にて出力する。
【０００６】
タブレットを使用せずに、媒体上の座標を精緻に検出できるようにする技術も知られている(例えば、特許文献５参照)。この特許文献５において、ペン型の座標入力装置は、媒体上に形成されその媒体上の座標を示すコードシンボルを光学的に読み取り、この読み取ったコードシンボルをデコードし、読み取った画像中におけるコードシンボルの位置、向き及び歪み量を検出する。そして、デコード後の情報と、コードシンボルの位置、向き及び歪み量とにより、先端部の媒体上での位置の座標を検出する。
【０００７】
【特許文献１】特表２００３−５１１７６２号公報
【特許文献２】特開平９−１８５６６９号公報
【特許文献３】特開２００４−１５２２７３号公報
【特許文献４】特開平６−２３１４６６号公報
【特許文献５】特開２０００−２９３３０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ここで、相対的に広い読取範囲を有する画像読取装置向けに情報を埋め込めないという課題があった。
本発明の目的は、相対的に広い読取範囲を有する画像読取装置向けに情報を埋め込めるようにすることにある。
【課題を解決するための手段】
【０００９】
請求項１に記載の発明は、
記録媒体に埋め込む情報を取得する取得手段と、
前記記録媒体上のペン型の画像読取装置の読取範囲として予め定められた範囲を超える広さの区画内に記録されるように、前記取得手段により取得された前記情報を表す第１の画像と、当該ペン型の画像読取装置よりも広い読取範囲を有する特定の画像読取装置が当該第１の画像から当該情報を取得するために用いる第２の画像とを生成する生成手段とを備え、
前記生成手段は、ｍ(ｍ≧４)箇所から選択したｎ(２≦ｎ＜ｍ)箇所に単位画像を配置してなるｍＣｎ個のパターン画像の少なくとも１つを用いて、前記第１の画像と前記第２の画像とを生成することを特徴とする画像生成装置である。
請求項２に記載の発明は、
記録媒体に埋め込む情報を取得する取得手段と、
前記記録媒体上の第１の画像読取装置の読取範囲に応じて予め定められた広さの複数の区画に跨って記録されるように、前記取得手段により取得された前記情報を表す第１の画像を生成し、当該記録媒体上の当該複数の区画の少なくとも１つの区画内に記録されるように、当該第１の画像読取装置よりも広い読取範囲を有する第２の画像読取装置が当該第１の画像から当該情報を取得するために用いる第２の画像を生成する生成手段と
を備えたことを特徴とする画像生成装置である。
請求項３に記載の発明は、
前記生成手段は、前記記録媒体上の前記複数の区画の少なくとも１つの区画内に記録されるように、前記第１の画像読取装置が前記第１の画像から前記情報を取得できないことを表す第３の画像を生成することを特徴とする請求項２記載の画像生成装置である。
請求項４に記載の発明は、
前記生成手段は、前記記録媒体上の前記複数の区画の少なくとも１つの区画内に記録されるように、前記第１の画像読取装置が前記第１の画像から前記情報を取得するために用いる第３の画像を生成することを特徴とする請求項２記載の画像生成装置である。
請求項５に記載の発明は、
記録媒体から読み取られた画像を取得する画像取得手段と、
ｍ(ｍ≧４)箇所から選択したｎ(２≦ｎ＜ｍ)箇所に単位画像を配置してなるｍＣｎ個のパターン画像のうちの特定のパターン画像を、前記画像取得手段により取得された前記画像から検出する検出手段と、
前記画像取得手段により取得された前記画像のうち、前記検出手段により検出された複数の前記特定のパターン画像によって決定される区画内の画像が表す情報を取得する情報取得手段と
を備えたことを特徴とする画像処理装置である。
請求項６に記載の発明は、
記録媒体から読み取られた画像を取得する画像取得手段と、
前記画像取得手段により取得された前記画像から、自装置が情報を取得するために用いる一のパターン画像を検出する検出手段と、
前記画像取得手段により取得された前記画像のうち、前記検出手段により検出された前記一のパターン画像によって決定される区画内の画像から、他の装置に対して情報を提供するための他のパターン画像を除外した画像が表す情報を取得する情報取得手段と
を備えたことを特徴とする画像処理装置である。
請求項７に記載の発明は、
前記検出手段は、ｍ(ｍ≧４)箇所から選択したｎ(２≦ｎ＜ｍ)箇所に単位画像を配置してなるｍＣｎ個のパターン画像のうちの２つのパターン画像を前記一のパターン画像及び前記他のパターン画像の候補として検出した場合に、当該２つのパターン画像のうち、検出した数が少ない方を当該一のパターン画像とし、検出した数が多い方を当該他のパターン画像とすることを特徴とする請求項６記載の画像処理装置である。
請求項８に記載の発明は、
前記検出手段は、ｍ(ｍ≧４)箇所から選択したｎ(２≦ｎ＜ｍ)箇所に単位画像を配置してなるｍＣｎ個のパターン画像のうちの２つのパターン画像を前記一のパターン画像及び前記他のパターン画像の候補として検出した場合に、当該２つのパターン画像のうち、予め定められた２つのパターン画像群の一方に属する方を当該一のパターン画像とし、他方に属する方を当該他のパターン画像とすることを特徴とする請求項６記載の画像処理装置である。
請求項９に記載の発明は、
赤外領域に吸収波長を持つ不可視の画像形成材料を用いて前記記録媒体に記録された前記画像を、当該記録媒体に赤外光を照射することで読み取る読取手段を更に備えたことを特徴とする請求項６記載の画像処理装置である。
請求項１０に記載の発明は、
記録媒体から読み取られた画像を取得する画像取得手段と、
前記画像取得手段により取得された前記画像に、自装置が情報を取得するために用いる特定のパターン画像が含まれているかどうかを判定する判定手段と、
前記判定手段により前記特定のパターン画像が含まれていないと判定された場合に、その旨の情報を出力する出力手段と
を備えたことを特徴とする画像処理装置である。
請求項１１に記載の発明は、
第１の画像読取装置の読取範囲に応じて予め定められた広さの複数の区画からなる繰り返し画像が印刷され、
前記複数の区画に跨って、情報を表す第１の画像が印刷され、
前記複数の区画のうちの特定の区画内の所定の位置に、前記第１の画像読取装置よりも広い読取範囲を有する第２の画像読取装置が前記第１の画像から前記情報を取得するために用いる第２の画像が印刷され、
前記複数の区画のうちの前記特定の区画以外の区画内の前記所定の位置に対応する位置に、前記第１の画像読取装置が用いる第３の画像が印刷されたことを特徴とする印刷媒体である。
請求項１２に記載の発明は、
コンピュータに、
記録媒体に埋め込む情報を取得する機能と、
前記記録媒体上で、第１の画像読取装置の読取範囲に応じて予め定められた広さの複数の区画に跨って記録されるように、前記情報を表す第１の画像を生成し、当該複数の区画の少なくとも１つの区画内に記録されるように、当該第１の画像読取装置よりも広い読取範囲を有する第２の画像読取装置が当該第１の画像から当該情報を取得するために用いる第２の画像を生成する機能と
を実現させるためのプログラムである。
【発明の効果】
【００１０】
請求項１の発明は、ペン型の画像読取装置の読取範囲として予め定められた範囲を超える広さの区画内に情報を埋め込むための画像を生成することができるという効果を有する。
請求項２の発明は、第１の画像読取装置の読取範囲に応じて予め定められた広さの区画を維持しつつ、これよりも広い領域に情報を埋め込むための画像を生成することができるという効果を有する。
請求項３の発明は、第１の画像読取装置が画像から情報を取得できないことが分かるという効果を有する。
請求項４の発明は、第１の画像読取装置が画像から情報を取得できるようになるという効果を有する。
請求項５の発明は、記録媒体上の自由な広さの区画に埋め込まれた情報を取得することができるという効果を有する。
請求項６の発明は、他の装置に対して情報を提供することも可能な画像から情報を取得することができるという効果を有する。
請求項７の発明は、本構成を有していない場合に比較して、自装置が情報を取得するために用いるパターン画像を効率よく検出できるという効果を有する。
請求項８の発明は、自装置が情報を取得するために用いるパターン画像と、他の装置に対して情報を提供するためのパターン画像とを区別することができるという効果を有する。
請求項９の発明は、記録媒体上の他の画像に影響を与えることなく埋め込まれた情報を取得できるという効果を有する。
請求項１０の発明は、自装置が画像から情報を取得できるかどうかが分かるという効果を有する。
請求項１１の発明は、第１の画像読取装置の読取範囲に応じて予め定められた広さの区画を維持しつつ、これよりも広い領域に情報が埋め込まれるという効果を有する。
請求項１２の発明は、第１の画像読取装置の読取範囲に応じて予め定められた広さの区画を維持しつつ、これよりも広い領域に情報を埋め込むための画像を生成することができるという効果を有する。
【発明を実施するための最良の形態】
【００１１】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
本実施の形態では、ｍ(ｍ≧４)箇所から選択したｎ(２≦ｎ＜ｍ)箇所に単位画像を配置してなるパターン画像(以下、「単位符号パターン」という)によってｍＣｎ(＝ｍ！/｛(ｍ−ｎ)！×ｎ！｝)通りの情報を表現する。つまり、１つの単位画像を情報に対応させるのではなく、複数の単位画像を情報に対応させている。仮に１つの単位画像を情報に対応させたとすると、単位画像が欠損したり、ノイズが加わったりした場合に、誤った情報を表現してしまうという欠点がある。これに対して、例えば２つの単位画像を情報に対応させたとすると、単位画像が１つであったり３つであったりした場合に、容易に誤りであることが分かる。更に、１つの単位画像で１ビット、又は、高々２ビットを表現する方法では、情報を表現するパターンと視覚的に似たパターンで、情報パターンの読出しを制御する同期パターンを表現することができない。このようなことから、本実施の形態では、上記のような符号化方式を採用している。以下では、このような符号化方式をｍＣｎ方式と称する。
ここで、単位画像としては、如何なる形状のものを用いてもよい。本実施の形態では、単位画像の一例としてドット画像(以下、単に「ドット」という)を用いるが、例えば、斜線パターン等、他の形状の画像であってもよい。
【００１２】
図１に、ｍＣｎ方式における単位符号パターンの例を示す。ここでは、縦３ドット、横３ドットの合計９ドットを配置可能な領域を設けた例を示している。
このうち、図１(ａ)は、９ドットを配置可能な領域に２ドットを配置する９Ｃ２方式における単位符号パターンであり、図１(ｂ)は、９ドットを配置可能な領域に３ドットを配置する９Ｃ３方式における単位符号パターンである。
【００１３】
図において、１つのドットのサイズ(黒い四角の大きさ)は、６００ｄｐｉで２ピクセル×２ピクセルとしている。６００ｄｐｉにおける１ピクセルの大きさは０．０４２３ｍｍなので、この黒い四角の一辺は、８４．６μｍ(＝０．０４２３ｍｍ×２)である。単位符号パターンを構成するドットは、大きくなればなるほど目に付きやすくなるため、できるだけ小さいほうが好ましい。ところが、あまり小さくすると、プリンタで印刷できなくなってしまう。そこで、ドットの大きさとして、５０μｍより大きく１００μｍより小さい上記の値を採用している。従って、９Ｃｎ方式における単位符号パターンの大きさは、６００ｄｐｉで１２ピクセル×１２ピクセル(０．５０７６ｍｍ×０．５０７６ｍｍ)となる。尚、上記のドットの大きさ８４．６μｍは、あくまで計算上の数値であり、実際に印刷されたトナー像では１００μｍ程度になる。
【００１４】
また、図２に、単位符号パターンの他の例を示す。尚、これらの図では、ドット間の空白を省略している。
図２(ａ)は、図１(ａ)に示した９Ｃ２方式における全ての単位符号パターンを示している。９Ｃ２方式では、これらの単位符号パターンを用いて、３６(＝９Ｃ２)通りの情報を表現する。また、図２(ｂ)は、図１(ｂ)に示した９Ｃ３方式における全ての単位符号パターンを示している。９Ｃ３方式では、これらの単位符号パターンを用いて、８４(＝９Ｃ３)通りの情報を表現する。
尚、単位符号パターンは、ｍ＝９の場合に限定されるものではなく、ｍの値として、例えば、４、１６等、これら以外の値を採用してもよい。また、ｎの値も１≦ｎ＜ｍを満たしていれば如何なる値を採用してもよい。
【００１５】
ところで、ここまでは、ｍの値として、平方数(整数の２乗)を採用したが、異なる２つの整数の積を採用してもよい。つまり、ドットを配置可能な領域は、３ドット×３ドットを配置する場合のような正方形の領域に限らず、３ドット×４ドットを配置する場合のような長方形の領域であってもよい。尚、本明細書において、長方形とは、隣り合う２辺の長さが等しくない矩形のことをいうものとする。
【００１６】
図３に、この場合の単位符号パターンの例を示す。
図３(ａ)は、１２Ｃ２方式における単位符号パターンであり、図３(ｂ)は、１２Ｃ３方式における単位符号パターンである。
【００１７】
また、図４−１〜２に、単位符号パターンの他の例を示す。尚、これらの図でも、ドット間の空白を省略している。
図４−１(ａ)は、１２Ｃ２方式における全ての単位符号パターンを示している。１２Ｃ２方式では、これらの単位符号パターンを用いて、６６(＝１２Ｃ２)通りの情報を表現する。図４−２(ｂ)は、１２Ｃ３方式における全ての単位符号パターンを示している。１２Ｃ３方式では、これらの単位符号パターンを用いて、２２０(＝１２Ｃ３)通りの情報を表現する。
尚、単位符号パターンは、ｍ＝１２の場合に限定されるものではなく、ｍの値として、例えば、６(＝２×３)等、これら以外の値を採用してもよい。また、ｎの値も１≦ｎ＜ｍを満たしていれば如何なる値を採用してもよい。
【００１８】
このように、ｍ箇所からｎ箇所を選択することでｍＣｎ種類の単位符号パターンを用意しているが、本実施の形態では、これらの単位符号パターンのうち、特定のパターンを情報パターンとして利用し、残りを同期パターンとして利用する。ここで、情報パターンとは、記録媒体に埋め込む情報を表現するパターンである。また、同期パターンとは、情報パターンから情報を取り出すために用いられるパターンである。例えば、情報の読出し位置を特定したり、画像の回転を検出したりするために用いられる。尚、記録媒体としては、画像を印刷することの可能な媒体であれば、如何なるものを用いてもよいが、紙やＯＨＰシート等が例示される。
尚、本実施の形態では、情報を表す第１の画像の一例として、情報パターンを設け、第１の画像から情報を取得するために用いる第２の画像の一例として、同期パターンを設けている。
【００１９】
図５に、同期パターンの例を示す。
図５(ａ)は、９Ｃ２方式における同期パターンの例である。このようにｍＣｎ方式におけるｍが平方数である場合は、画像の回転の検出のために４種類の単位符号パターンを同期パターンとして用意する必要がある。ここでは、パターン値３２の単位符号パターンを正立した同期パターンとしている。また、パターン値３３の単位符号パターンを右に９０度回転した同期パターン、パターン値３４の単位符号パターンを右に１８０度回転した同期パターン、パターン値３５の単位符号パターンを右に２７０度回転した同期パターンとしている。この場合、３６種類の単位符号パターンからこの４種類の同期パターンを除いた残りを情報パターンとし、５ビットの情報を表現するとよい。但し、３６種類の単位符号パターンの情報パターンと同期パターンへの振り分け方は、これには限らない。例えば、４種類で１組を構成する同期パターンの組を５つ用意し、残りの１６種類の情報パターンで４ビットの情報を表現してもよい。このように同期パターンの組を複数用意した場合、同期パターンが属する組によって、例えば、情報パターンによる情報の表現方法が選択される。
【００２０】
また、図５(ｂ)は、１２Ｃ２方式における同期パターンの例である。このようにｍＣｎにおけるｍが異なる２つの整数の積である場合は、画像の回転の検出のために２種類の単位符号パターンを同期パターンとして用意すればよい。例えば、図のような縦３ドット×横４ドットを配置可能な領域が検出されるべきなのに、縦４ドット×横３ドットを配置可能な領域が検出された場合は、その時点で画像が９０度又は２７０度回転していることが分かるからである。ここでは、パターン値６４の単位符号パターンを正立した同期パターンとし、パターン値６５の単位符号パターンを１８０度回転した同期パターンとしている。この場合、６６種類の単位符号パターンからこの２種類の同期パターンを除いた残りを情報パターンとし、６ビットの情報を表現するとよい。但し、この場合も、情報パターンと同期パターンの配分には他の組み合わせを採用してもよい。例えば、３４種類の単位符号パターンを１７組の同期パターンとして使用し、残りの３２種類の単位符号パターンを５ビットの情報を表現する情報パターンとして使用してもよい。
【００２１】
次に、単位符号パターンの情報パターンと同期パターンへの配分について具体的に説明する。
図６は、９Ｃ３方式における単位符号パターンの配分方法の一例を示したものである。この例では、９Ｃ３方式における単位符号パターンを、１つの情報パターンのグループと、５つの同期パターンの組とに分けている。即ち、まず、９０度回転対照の４種類の単位符号パターンを選択して同期パターンの組を構成し、これを５つ用意する。図では、この５つの組を、Ａ組、Ｂ組、Ｃ組、Ｄ組、Ｅ組としている。そして、同期パターンとして使用した２０個の単位符号パターンを除いた残りの６４個の単位符号パターンを情報パターンとして、１つのグループを構成している。
【００２２】
次に、この単位符号パターンから構成される符号ブロックについて説明する。
図７は、符号ブロックの一例を示したものである。図では、９Ｃ２方式における単位符号パターンを使用していることも同時に示している。即ち、３６種類の単位符号パターンを、例えば、同期パターンとして使用する４パターンと、情報パターンとして使用する３２パターンとに分け、各パターンをレイアウトに従って配置する。
図では、レイアウトとして、３ドット×３ドットを配置可能な領域(以下、「ブロック」という)を５個×５個の２５個並べたものを採用している。そして、この２５個のブロックのうち、左上の１ブロックに同期パターンを配置している。また、同期パターンの右の４ブロックにＸ方向の位置情報を表す情報パターンを配置し、同期パターンの下の４ブロックにＹ方向の位置情報を表す情報パターンを配置している。更に、これらの位置情報を表す情報パターンで囲まれた１６ブロックに、紙面又は紙面に印刷される文書の識別情報を表す情報パターンを配置している。
尚、９Ｃ２方式における単位符号パターンはあくまで例であり、図の左下に示すように、９Ｃ３方式における単位符号パターンを使用してもよい。
【００２３】
ところで、図７に示したレイアウトは、比較的狭い範囲の画像の読取りに適したスキャナ(以下、「狭範囲スキャナ」という)で読み取ることを前提に設計されたものである。６００ｄｐｉを採用した場合、単位符号パターンの大きさは、上述したように０．５０７６ｍｍ×０．５０７６ｍｍであるので、図７の符号ブロックの一辺の長さは、２．５３８ｍｍ(＝０．５０７６ｍｍ×５)となる。従って、狭範囲スキャナの一例であるペン型スキャナで読み取ることを考えた場合、この大きさは画像の読取りに適した大きさであると言える。
しかしながら、このようにペン型スキャナで読み取ることを前提としたレイアウトでは、符号ブロックを小さくせざるを得ないので、記録媒体に埋め込むことができる情報の量が制限されてしまう。
一方で、情報が埋め込まれた記録媒体は、ペン型スキャナ等の狭範囲スキャナだけでなく、比較的広い範囲の画像の読取りに適したスキャナ(以下、「広範囲スキャナ」という)で読み取られることも考えられる。この場合は、読取範囲に制限がないため、記録媒体に埋め込むことができる情報の量にも制限はなくなる。
そこで、本実施の形態では、このような埋め込む情報の量に基本的に制限のない広範囲スキャナ用のレイアウトを提案する。
【００２４】
尚、ここでは、狭範囲スキャナとしてペン型スキャナを例示したが、記録媒体をなぞりながら光を当てて画像を読み取るハンディスキャナ全般を狭範囲スキャナに含めてもよい。また、広範囲スキャナとしては、例えば、記録媒体をガラス台に固定して画像を読み取るフラットベッドスキャナが例示される。但し、これらはあくまで例示であり、必ずしも例示したスキャナが該当するタイプのスキャナに分類されるとは限らない。即ち、狭範囲スキャナであるか広範囲スキャナであるかは、画像の読取り方式ではなく、１回の読取り動作で読み込まれる画像の記録媒体上での広さによって決まる。そして、この広さも相対的な概念であるので、異なる２つのタイプのスキャナについて、一方が他方よりも狭い範囲を読み取るものである場合に、一方を狭範囲スキャナと把握し、他方を広範囲スキャナと把握するようにしても構わない。
【００２５】
また、ここでは、「スキャナ」という文言を用いたが、これは画像に対して主走査方向、副走査方向への走査を行うもののみに限定する趣旨ではない。即ち、本明細書で「スキャナ」というときは、例えば、画像をカメラで撮像して読み込む装置も含むものとする。
以下では、狭範囲スキャナとして、ペン型スキャナ(以下、「ペンデバイス」という)を例示し、広範囲スキャナとして、フラットベッド型スキャナ(以下、単に「スキャナ」という)を例示して説明する。つまり、本実施の形態では、ペン型の画像読取装置、第１の画像読取装置の一例として、ペンデバイスを採用し、このペン型の画像読取装置よりも広い読取範囲を有する特定の画像読取装置、この第１の画像読取装置よりも広い読取範囲を有する第２の画像読取装置の一例として、フラットベッド型スキャナを採用している。
【００２６】
次に、スキャナで読み取るための符号ブロック(以下、「スキャナ用符号ブロック」という)のレイアウトについて説明する。
本実施の形態では、３つのレイアウトを提案する。
第１のレイアウトは、紙面又は紙面に印刷される文書の識別情報のみを埋め込むレイアウトである。このレイアウトで印刷された画像をスキャナで読み取ると識別情報が得られる。但し、このレイアウトで印刷された画像をペンデバイスで読み取ろうとすると、復号処理を行い、誤った結果を返す場合がある。
第２のレイアウトも、紙面又は紙面に印刷される文書の識別情報のみを埋め込むレイアウトである。このレイアウトで印刷された画像をスキャナで読み取ると識別情報が得られる。但し、このレイアウトで印刷された画像をペンデバイスで読み取ろうとすると、第１のレイアウトの場合とは異なり、デバイスが適合しない旨のメッセージが出力される。そして、復号処理は行わず、誤った結果を出すこともない。
第３のレイアウトは、紙面又は紙面に印刷される文書の識別情報と、紙面上の座標位置を特定する位置情報とを埋め込むレイアウトである。このレイアウトで印刷された画像をスキャナで読み取ると少なくとも識別情報が得られる。一方、このレイアウトで印刷された画像をペンデバイスで読み取ると位置情報が復号される。また、識別情報も、１回のポインティングでは復号されないが、複数回又は一定時間のポインティングにより復号される。
【００２７】
以下、これら３つのレイアウトについて、各レイアウトを有する画像の生成、及び、各レイアウトを有する画像の処理を詳細に述べる。
＜第１のレイアウト＞
図８に、第１のレイアウトの例を示す。
第１のレイアウトを採用する場合、まず、情報を埋め込むのに必要なブロック数を計算する。例えば、誤り訂正符号も含めて２００ビットが必要であったとする。９Ｃ３方式では、一例として１ブロックで６ビットの情報を表現するので、３４ブロックで２０４ビットを表現する。更にこれを矩形で表現するために、縦５ブロック、横７ブロックの合計３５ブロックを配置したレイアウトとする。尚、縦６ブロック、横６ブロックであってもよいが、図では５ブロック×７ブロックとしている。
【００２８】
但し、図８において、各ブロックには、一般化した番号を示している。即ち、太線で囲んで示されたスキャナ用符号ブロックは、横Ｃｘブロック、縦Ｃｙブロックからなるものとしている。上記の例では、Ｃｘ＝７、Ｃｙ＝５である。
また、図８では、同期パターンが配置されるブロックを黒塗りで示している。１つは、スキャナ用符号ブロックの左上のブロック７００である。また、太線で囲まれたスキャナ用符号ブロックに隣接するスキャナ用符号ブロックにも同期パターンが配置されるが、図では、そのような同期パターンが配置されるブロックを、ブロック７０１〜７０３として示している。そして、図８において、これらの黒塗りで示されたブロック以外には、前述のように、識別情報を表す情報パターンが配置されている。
【００２９】
次いで、このような画像を生成する画像生成装置１０について説明する。
図９は、画像生成装置１０の構成例を示したブロック図である。
図示するように、画像生成装置１０は、識別符号生成部１１と、位置符号生成部１２と、ブロック合成部１４と、パターン画像記憶部１５と、符号画像生成部１６とを備える。
【００３０】
識別符号生成部１１は、紙面又は紙面に印刷された文書の識別情報を符号化した識別符号を生成する。この識別符号生成部１１は、ブロック分割部１１ａと、ＲＳ符号化部１１ｂとを含んでいる。
このうち、ブロック分割部１１ａは、識別情報を構成するビット列を、ＲＳ符号化を行うために複数のブロックに分割する。符号化には、いくつかの方法が利用できるが、本実施の形態では、ＲＳ符号化が適している。ＲＳ符号は多値の符号法であり、この場合、ブロックの表現をＲＳ符号の多値に対応させることができるからである。もちろん、他の符号化方法を利用することも可能である。例えば、９Ｃ２方式で５ビットの情報を表現可能な情報パターンを用いる場合、６０ビットの識別情報は、ブロック長が５ビットの１２個のブロックに分割される。
また、ＲＳ符号化部１１ｂは、分割されたブロックに対してＲＳ符号化処理を行い、誤り訂正のための冗長ブロックを付加する。先の例において２ブロックの誤りを訂正可能なＲＳ符号を採用したとすると、符号長は１６ブロックとなる。
尚、本実施の形態において、この識別符号生成部１１は、予め定められたｍ及びｎに対応するｍＣｎ方式を用いて識別情報を符号化するものとする。
【００３１】
位置符号生成部１２は、紙面上の座標位置を示す位置情報を符号化した位置符号を生成する。この位置符号生成部１２は、Ｍ系列符号化部１２ａと、ブロック分割部１２ｂとを含む。
このうち、Ｍ系列符号化部１２ａは、Ｍ系列を使用して位置情報を符号化する。例えば、符号化したい位置情報の長さから必要なＭ系列の次数を求め、Ｍ系列を動的に生成することで位置符号を生成する。但し、予め符号化したい位置情報の長さが分かっている場合には、Ｍ系列を画像生成装置１０のメモリ等に格納しておき、画像生成時にそれを読み出す構成としてもよい。
また、ブロック分割部１２ｂは、Ｍ系列を複数のブロックに分割する。例えば、情報パターンとして１６種類の単位符号パターンを選択したとすると、符号ブロックにおける各ブロックには４ビットの情報が格納される。従って、図７のようなレイアウトを有する符号ブロックに対して、Ｘ方向の位置情報は、１６ビット分格納される。ここで、１２次のＭ系列を利用したとすると、Ｍ系列の系列長は４０９５(＝２１２−１)となる。この系列を４ビットごとに切り出し、符号パターンで表現していくと、最後に３ビットあまることになる。この３ビットに、Ｍ系列の最初の１ビットを加えて４ビットとし符号パターンで表す。更に、Ｍ系列の２ビット目から４ビットごとに切り出し符号パターンで表す。これを繰り返すと、次の周期は、Ｍ系列の３ビット目から始まり、次は、４ビット目となる。更に、５周期目は、５ビット目からとなるが、これは最初の周期と一致する。従って、Ｍ系列の４周期を４ビットごとに切り出していくと、４０９５個の符号パターンで全てを尽くすことができる。Ｍ系列は１２次であるので、３つの連続する符号パターンは、他のどの位置の連続する符号パターンとも一致することはない。そこで、読出し時には３つの符号パターンを読み出せば、復号が可能であるが、誤りを考慮し４ブロックで情報を表現している。
４周期のＭ系列は、４０９５個の符号ブロックに分割して格納される。１つの符号ブロックの一辺の長さは、２．５３８ｍｍ(＝０．５０７６ｍｍ×５)なので、連続する４０９５個の符号ブロックの長さは１０３９３．１ｍｍである。つまり、１０３９３．１ｍｍの長さが符号化されることになる。
尚、本実施の形態において、この位置符号生成部１２は、予め定められたｍ及びｎに対応するｍＣｎ方式を用いて位置情報を符号化するものとする。
また、本実施の形態では、記録媒体に埋め込む情報を取得する取得手段の一例として、識別符号生成部１１及び位置符号生成部１２を設けている。
【００３２】
ブロック合成部１４は、識別符号生成部１１にて生成された識別符号と、位置符号生成部１２にて生成された位置符号と、識別符号及び位置符号の読出しを制御する同期符号とを２次元平面に配置して２次元の符号配列を生成する。ここで、同期符号とは、同期パターンに対応する符号である。
【００３３】
パターン画像記憶部１５は、例えば図１〜図４に示したｍＣｎ方式における単位符号パターンを記憶する。ここで、単位符号パターンには、個々の単位符号パターンを一意に特定するパターン値が付されている。例えば、９Ｃ２方式における単位符号パターンに対しては、０〜３５のパターン値が付されている。これは、ブロック合成部１４が生成した２次元の符号配列における各符号値に対応している。即ち、各符号値から単位符号パターンが一意に特定され、選択されるようになっている。尚、本実施の形態において、このパターン画像記憶部１５は、予め定められたｍ及びｎに対応するｍＣｎ方式における単位符号パターンを少なくとも記憶していればよい。
符号画像生成部１６は、ブロック合成部１４が生成した２次元の符号配列を参照し、各符号値に対応した単位符号パターンを選択して符号画像を生成する。
尚、第１のレイアウトに係る実施の形態では、記録媒体上のペン型の画像読取装置の読取範囲として予め定められた範囲を超える広さの区画内に記録されるように、情報を表す第１の画像と、ペン型の画像読取装置よりも広い読取範囲を有する特定の画像読取装置が第１の画像から情報を取得するために用いる第２の画像とを生成する生成手段の一例として、符号画像生成部１６を設けている。
【００３４】
そして、この符号画像は、図示しない画像形成部に渡され、画像形成部が紙面に符号画像を形成する。このとき、画像形成部は、電子文書の文書画像と符号画像とを重畳した重畳画像を紙面に形成するようにしてもよい。また、このように重畳画像を形成する場合において、電子文書上の位置と紙面上の位置とにずれが生じることが考えられる場合には、紙面に対するペンデバイスによる筆記データが電子文書上の適切な位置に反映されるよう電子文書上の位置と紙面上の位置との対応関係を管理することが望ましい。
【００３５】
また、画像形成部は、符号画像を、例えば電子写真方式を用いて、Ｋトナー(カーボンを含む赤外光吸収トナー)、又は、特殊トナーにより形成する。
ここで、特殊トナーとしては、可視光領域(４００ｎｍ〜７００ｎｍ)における最大吸収率が７％以下であり、近赤外領域(８００ｎｍ〜１０００ｎｍ)における吸収率が３０％以上の不可視トナーが例示される。ここで、「可視」及び「不可視」は、目視により認識できるかどうかとは関係しない。印刷された媒体に形成された画像が可視光領域における特定の波長の吸収に起因する発色性の有無により認識できるかどうかで「可視」と「不可視」とを区別している。また、可視光領域における特定の波長の吸収に起因する発色性が若干あるが、人間の目で認識し難いものも「不可視」に含める。
【００３６】
尚、これらの機能は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、画像生成装置１０のＣＰＵ９１(図２８参照)が、ブロック分割部１１ａ、ＲＳ符号化部１１ｂ、Ｍ系列符号化部１２ａ、ブロック分割部１２ｂ、ブロック合成部１４、符号画像生成部１６を実現するプログラムを、例えば、磁気ディスク装置９３(図２８参照)からメインメモリ９２(図２８参照)に読み込んで実行することにより、実現される。また、パターン画像記憶部１５は、例えば、磁気ディスク装置９３(図２８参照)を用いて実現するとよい。更に、磁気ディスク装置９３(図２８参照)に記憶されるプログラムやデータは、ＣＤ等の記録媒体からロードしてもよいし、インターネット等の通信手段を介してダウンロードしてもよい。
【００３７】
次に、画像生成時における動作について説明する。
ここでは、画像生成に先立って、その動作を制御するパラメータが与えられるので、まず、このパラメータについて説明する。尚、このパラメータは、外部からユーザが入力したものであってもよいし、例えば、表現すべき情報量や情報を埋め込む紙面の大きさ等に基づいて画像生成装置１０が計算により求めたものであってもよい。
【００３８】
このパラメータとしては、以下に述べる第１及び第２のパラメータが考えられる。
第１のパラメータは、スキャナ用符号ブロックのサイズである。例えば、スキャナ用符号ブロックのサイズとして、横方向のブロック数であるＣｘと、縦方向のブロック数であるＣｙとを指定する。
【００３９】
第２のパラメータは、スキャナ用符号ブロック内の各ブロックに配置されるパターンの種類である。即ち、同期パターンを基準としてどの位置に如何なる情報を表す情報パターンが配置されるかを指定する。このパラメータは、例えば、ブロックを特定する情報と、そのブロックに配置されるパターンの種類を特定する情報とからなる。具体的には、同期パターンが配置されるブロックをＸ＝０、Ｙ＝０とした場合に、Ｘ＝Ｅ、Ｙ＝Ｆのブロックに配置されるパターンの種類をＣ(Ｅ，Ｆ)に格納しておくとよい(但し、Ｅ＝０，１，２，…，Ｂｘ，Ｆ＝０，１，２，…，Ｂｙ)。図８のレイアウトのスキャナ用符号ブロックを生成したいのであれば、Ｃ(０，０)＝「同期」、Ｃ(Ｅ，０)＝「識別」(Ｅ＝１，２，…，Ｃｘ)、Ｃ(０，Ｆ)＝「識別」(Ｆ＝１，２，…，Ｃｙ)、Ｃ(Ｅ，Ｆ)＝「識別」(Ｅ＝１，２，…，Ｃｘ，Ｆ＝１，２，…，Ｃｙ)となる。尚、Ｃ(Ｅ，Ｆ)に格納されるパターンの種類については、このように、「同期パターン」を「同期」と表記し、「Ｘ位置情報を表す情報パターン」を「Ｘ位置」と表記し、「Ｙ位置情報を表す情報パターン」を「Ｙ位置」と表記し、「識別情報を表す情報パターン」を「識別」と表記することがある。
【００４０】
これらのパラメータは、図示しないメモリであるパラメータ記憶部に記憶され、画像生成装置１０の各部分はこのパラメータ記憶部に記憶されたパラメータに従って動作する。
まず、識別符号生成部１１は、第１のパラメータであるスキャナ用符号ブロックのサイズ、及び、第２のパラメータである各ブロックに配置されるパターンの種類に応じて、識別符号を格納するブロック数を求める。そして、ブロック分割部１１ａ及びＲＳ符号化部１１ｂは、最終的にそのブロック数になるように、ブロック分割及びＲＳ符号化の処理を行う。例えば、図８のレイアウトであれば、(Ｃｘ×Ｃｙ−１)個のブロックが得られるようにする。そして、１ブロックで６ビットの情報を表現する場合は、１つのスキャナ用符号ブロックで(６×(Ｃｘ×Ｃｙ−１))ビットの情報が表現されることになる。
【００４１】
また、位置符号生成部１２は、第１のパラメータであるスキャナ用符号ブロックのサイズ、及び、第２のパラメータである各ブロックに配置されるパターンの種類に応じて、位置符号を格納するブロック数を求める。但し、図８のレイアウトの場合、スキャナ用符号ブロックのどのブロックにも位置符号は配置されないので、位置符号生成部１２は動作しない。
【００４２】
これまでに述べたことを前提として、以下、ブロック合成部１４の動作について詳細に説明する。
図１０は、ブロック合成部１４の動作を示したフローチャートである。尚、ここでは、１つのブロックのサイズと指定された紙面のサイズとから求められた紙面全体に印刷可能なブロック数を横Ｄｘ、縦Ｄｙと表記するものとする。
まず、ブロック合成部１４は、Ｅ、Ｆに「０」を代入する(ステップ１０１)。尚、ＥはＸ方向のブロック数をカウントするカウンタであり、ＦはＹ方向のブロック数をカウントするカウンタである。
次に、ブロック合成部１４は、パラメータ記憶部からパラメータＣｘ、Ｃｙを読み出し、ＥをＣｘで割った余りであるＥ(ｍｏｄＣｘ)と、ＦをＣｙで割った余りであるＦ(ｍｏｄＣｙ)とを求める。そして、これらが共に０であるかどうかを判定する(ステップ１０２)。
【００４３】
ここで、Ｅ(ｍｏｄＣｘ)＝０かつＦ(ｍｏｄＣｙ)＝０であると判定されれば、同期符号を２次元の符号配列上に配置する(ステップ１０３)。
一方、Ｅ(ｍｏｄＣｘ)≠０又はＦ(ｍｏｄＣｙ)≠０であると判定されれば、識別符号を２次元の符号配列上に配置する(ステップ１０４)。
尚、この場合、Ｅ(ｍｏｄＣｘ)＝０かつＦ(ｍｏｄＣｙ)＝０であるか判定し、この条件が満たされていれば同期符号を配置し、満たされていなければ識別符号を配置するようにしたのは、図８のレイアウトを規定する内容がＣ(Ｅ，Ｆ)に格納されているからである。従って、別のレイアウトを規定する内容がＣ(Ｅ，Ｆ)に格納されていれば、ステップ１０２での判断も異なるものとなる。
【００４４】
次に、ブロック合成部１４は、Ｅ＝Ｄｘ−１であるかどうかを判定する(ステップ１０５)。
ここで、Ｅ＝Ｄｘ−１でない場合には、Ｅに「１」を加算して(ステップ１０６)、ステップ１０２〜１０４の処理をＥ＝Ｄｘ−１となるまで繰り返し行う。また、Ｅ＝Ｄｘ−１となると、次に、Ｆ＝Ｄｙ−１であるかどうかを判定する(ステップ１０７)。Ｆ＝Ｄｙ−１でない場合には、Ｅに「０」を代入し、Ｆに「１」を加算して(ステップ１０８)、ステップ１０２〜１０６の処理をＦ＝Ｄｙ−１となるまで繰り返し行う。また、Ｆ＝Ｄｙ−１となると、ブロック合成部１４の処理は終了する。
【００４５】
次に、紙面に形成された符号画像を読み取って処理する画像処理装置２０について説明する。但し、ここでは、符号画像を生成する際に用いたｍＣｎ方式におけるｍ及びｎの値は分かっていないものとする。
図１１は、画像処理装置２０の構成例を示したブロック図である。
図示するように、画像処理装置２０は、画像読取部２１と、ノイズ除去部２２と、ドット画像検出部２３と、ドット配列生成部２４と、ブロック検出部２５と、同期符号検出部２６と、識別情報取得部２７と、位置情報取得部２８とを備える。
【００４６】
画像読取部２１は、ＣＣＤ(Charge Coupled Devices)やＣＭＯＳ(Complementary Metal Oxide Semiconductor)等の撮像素子から紙面に印刷された符号画像を読み取る。
ノイズ除去部２２は、読み取った画像に含まれるノイズを除去するための処理を行う。ここで、ノイズには、例えば、撮像素子感度のばらつきや電子回路により発生するノイズがある。ノイズ除去の処理の種類は、撮像系の特性に合わせるべきだが、ぼかし処理やアンシャープマスキング等の先鋭化処理を適用するとよい。
ドット画像検出部２３は、ノイズが除去された画像からドットを検出する。つまり、ドットが形成された位置を特定する。ここで、ドットの検出は、まず、２値化処理によりドット画像の部分と、その他の背景画像の部分とを切り分け、２値化された個々の画像位置からドットの位置を検出する。その際、２値化された画像にノイズ成分が多数含まれる場合があるため、２値化された画像の面積や形状によりドットの判定を行うフィルタ処理を組み合わせる必要がある。
【００４７】
ドット配列生成部２４は、検出したドットの位置を参照して、ドット配列を生成する。即ち、２次元の配列上で、例えば、ドットがある位置に「１」を、ドットがない位置に「０」を記憶することにより、画像として検出したドットをデジタルデータに置き換える。そして、この２次元の配列をドット配列として出力する。
尚、本実施の形態では、記録媒体から読み取った画像を取得する画像取得手段の一例として、ドット配列生成部２４を設けている。
【００４８】
ブロック検出部２５は、ドット配列上で、符号ブロック内の単位符号パターンに対応するブロックを検出する。即ち、単位符号パターンと同じ大きさをもつ矩形のブロック区切りをドット配列上で適宜動かし、ブロック内のドット数が均等になる位置を正しいブロック区切り位置とし、各ブロック内のパターン値を格納した符号配列を生成する。
尚、本実施の形態において、このブロック検出部２５は、ブロック内のドット数が均等になる場合のブロックの大きさ及びブロック内のドット数に基づいて、符号化の際に使用したｍＣｎ方式におけるｍ及びｎを決定する。
【００４９】
同期符号検出部２６は、ドット配列から検出された各単位符号パターンの種類を参照して、同期符号を検出する。単位符号パターンは、正方形をなしている場合、９０度単位で回転している可能性がある。そこで、検出された同期符号が４種類の同期パターンのいずれに対応しているかによって、その向きを検出して補正する。また、単位符号パターンは、長方形をなしている場合、１８０度単位で回転している可能性がある。そこで、検出された同期符号が２種類の同期パターンのいずれに対応しているかによって、その向きを検出して補正する。
尚、本実施の形態では、ｍ箇所から選択したｎ箇所に単位画像を配置してなるｍＣｎ個のパターン画像のうちの特定のパターン画像を検出する検出手段の一例として、同期符号検出部２６を設けている。
【００５０】
識別情報取得部２７は、同期符号検出部２６で検出された同期符号に基づいて符号配列から識別情報を取得する。この識別情報取得部２７は、識別符号検出部２７ａと、識別符号復号部２７ｂとを含んでいる。
このうち、識別符号検出部２７ａは、角度が補正された符号配列から、同期符号の位置を基準にして識別符号を検出する。
また、識別符号復号部２７ｂは、図９で説明したＲＳ符号の符号化処理で用いたパラメータ(ブロック数等)と同じパラメータを用いて識別符号を復号し、識別情報を出力する。
【００５１】
位置情報取得部２８は、同期符号検出部２６で検出された同期符号に基づいて符号配列から位置情報を取得する。この位置情報取得部２８は、位置符号検出部２８ａと、位置符号復号部２８ｂとを含んでいる。
このうち、位置符号検出部２８ａは、角度が補正された符号配列から、同期符号の位置を基準にして位置符号を検出する。
また、位置符号復号部２８ｂは、位置符号検出部２８ａにより検出された位置符号からＭ系列の部分系列を取り出し、画像生成に使用したＭ系列におけるこの部分系列の位置を参照し、この位置を同期符号によるオフセットで補正した値を位置情報として出力する。尚、このとき、オフセットで補正するのは、位置符号の間に同期符号が配置されているためである。
尚、本実施の形態では、複数の特定のパターン画像によって決定される区画内の画像が表す情報を取得する情報取得手段の一例として、識別情報取得部２７及び位置情報取得部２８を設けている。
【００５２】
尚、これらの機能は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、画像処理装置２０のＣＰＵ９１(図２８参照)が、ノイズ除去部２２、ドット画像検出部２３、ドット配列生成部２４、ブロック検出部２５、同期符号検出部２６、識別符号検出部２７ａ、識別符号復号部２７ｂ、位置符号検出部２８ａ、位置符号復号部２８ｂを実現するプログラムを、例えば、磁気ディスク装置９３(図２８参照)からメインメモリ９２(図２８参照)に読み込んで実行することにより、実現される。また、磁気ディスク装置９３(図２８参照)に記憶されるプログラムやデータは、ＣＤ等の記録媒体からロードしてもよいし、インターネット等の通信手段を介してダウンロードしてもよい。
【００５３】
次に、スキャナにおける画像処理時の動作について説明する。即ち、画像処理装置２０をスキャナとして捉えた場合の動作を述べる。
ここでは、符号化に用いたｍＣｎ方式におけるｍ及びｎの値が不明であっても、符号化された画像を読み取る際にｍ及びｎの値を特定する。そこで、このようなｍ及びｎの値を特定するブロック検出部２５の動作を具体的に説明する。
図１２は、ブロック検出部２５による符号化方式の判定動作を示したフローチャートである。尚、ここでは、単位符号パターンにおけるｍ個のドットが横ｍｘ個×縦ｍｙ個配置されているものとする。
【００５４】
ブロック検出部２５は、まず、ドット配列生成部２４が生成したドット配列に、ｍｘ×ｍｙの大きさのブロック区切りを重ね合わせる(ステップ２０１)。そして、カウンタＩ、Ｊに「０」を代入し、変数ＭｉｎＶにＨＶを代入する(ステップ２０２)。
ここで、Ｉ、Ｊは、ブロック区切りの初期位置からの移動量をカウントするものである。画像の１ラインごとにブロック区切りを移動させ、そのとき移動させたライン数をカウンタＩ、Ｊでカウントする。尚、データ上に重ね合わせるブロック区切り位置は、任意の位置でよい。読み込み位置がずれても、識別情報は繰り返し複製されているので、補間することで識別情報が取得されるからである。また、ブロック区切りの中には、Ｘ位置情報とＹ位置情報を表すブロックが必ず含まれている。
また、ＭｉｎＶは、ブロック内で検出されるドット数のブロック間での分散の最小値を格納するものであり、ＨＶは、分散に対して十分に大きな値を意味している。
【００５５】
次に、ブロック検出部２５は、ブロック区切りをＸ方向にＩ、Ｙ方向にＪ移動させる(ステップ２０３)。初期状態においてＩ、Ｊは「０」であるので、ブロック区切りは移動しない。そして、ブロック区切りの各ブロックに含まれるドット数をカウントして、全ブロック間でのドット数の分散をＶａｒ(Ｉ，Ｊ)に代入し、全ブロックにおけるドット数の平均をＡｖｅ(Ｉ，Ｊ)に代入する(ステップ２０４)。
また、ブロック検出部２５は、Ｖａｒ(Ｉ，Ｊ)とＭｉｎＶとを比較する(ステップ２０５)。ＭｉｎＶの初期値はＨＶなので、最初の比較では、Ｖａｒ(Ｉ，Ｊ)はＭｉｎＶよりも小さくなる。
ここで、Ｖａｒ(Ｉ，Ｊ)がＭｉｎＶよりも小さい場合、ＭｉｎＶにＶａｒ(Ｉ，Ｊ)の値を代入する。また、ブロック区切りのＸ方向の変位を表す変数ＦＸにＩの値を代入し、ブロック区切りのＹ方向の変位を表す変数ＦＹにＪの値を代入する。更に、Ａｖｅ(Ｉ，Ｊ)を四捨五入して整数にした値をｎに代入する(ステップ２０６)。そして、ステップ２０７へ進む。
一方、Ｖａｒ(Ｉ，Ｊ)がＭｉｎＶよりも小さくない場合、何も処理を行わずにステップ２０７へ進む。
【００５６】
その後、ブロック検出部２５は、Ｉ＝ｍｘ−１であるかどうかを判定する(ステップ２０７)。
ここで、Ｉ＝ｍｘ−１でない場合には、Ｉに「１」を加算する(ステップ２０８)。そして、ステップ２０３、２２４の処理を繰り返し行い、Ｖａｒ(Ｉ，Ｊ)とＭｉｎＶとを比較していく(ステップ２０５)。Ｖａｒ(Ｉ，Ｊ)が前回までのＶａｒ(Ｉ，Ｊ)の最小値であるＭｉｎＶよりも小さいと、ＭｉｎＶにＶａｒ(Ｉ，Ｊ)を代入し、そのときのＩの値をＦＸ、Ｊの値をＦＹとし、Ａｖｅ(Ｉ，Ｊ)を四捨五入した整数値をｎとする(ステップ２０６)。また、Ｖａｒ(Ｉ，Ｊ)がＭｉｎＶよりも小さくない場合には、Ｉ＝ｍｘ−１であるかどうかを判定する(ステップ２０７)。
【００５７】
一方、Ｉ＝ｍｘ−１となると、次にＪ＝ｍｙ−１であるかどうかを判定する(ステップ２０９)。Ｊ＝ｍｙ−１でない場合には、Ｉに「０」を代入し、Ｊに「１」を加算する(ステップ２１０)。このような手順を繰り返し行い、(Ｉ，Ｊ)が(０，０)から(ｍｘ−１，ｍｙ−１)までで、Ｖａｒ(Ｉ，Ｊ)が最小のものを検出する。
【００５８】
Ｉ＝ｍｘ−１、Ｊ＝ｍｙ−１までの処理が終了すると、ブロック検出部２５は、保存しているＭｉｎＶと閾値ＴＶとを比較する(ステップ２１１)。閾値ＴＶは、各ブロック内のドット数の全ブロック間での分散が大きくなり過ぎるのを阻止するための閾値である。
ここで、ＭｉｎＶが閾値ＴＶよりも小さい場合、ブロック区切りをＦＸ、ＦＹの位置に固定し、その位置で各ブロックの単位符号パターンを検出して、対応するパターン値に変換する。パターン値は、各ブロックを識別する変数Ｘ、Ｙと共にＰ(Ｘ，Ｙ)としてメモリに記憶される。尚、検出した単位符号パターンを対応するパターン値に変換できない場合は、パターン値の代わりに「−１」を格納する(ステップ２１２)。
一方、ＭｉｎＶが閾値ＴＶよりも小さくない場合は、画像のノイズが大きく復号は不可能と判定し、復号不能を出力する(ステップ２１３)。
【００５９】
次いで、このような符号化方式の判定について、具体例を用いて説明する。
図１３は、ｍ及びｎの値が分かっている場合の例である。
この場合、まず、ブロック検出部２５は、ドット配列生成部２４からドット配列を取得する。ここで取得するドット配列のサイズは予め設定されているが、画像の任意に選択された領域に対応しているので、ブロック区切りの位置は分からない。そこで、初めに、ドット配列の端を基準にブロック分割を行う。この例では、ｍ＝９なので、３ドット×３ドットの大きさのブロック区切りを重ねる。次に、各ブロック内のドットを数える。この例では、ｎ＝２なので、各ブロック内に２ドットずつ存在する場合のブロック区切りの位置が正しい区切り位置であるが、この位置ではドット数がばらついており、正しくないことが分かる。そこで、ブロック区切りをずらしてブロック内のドット数を数える。即ち、右方向への開始位置、１ドット分移動した位置、２ドット分移動した位置について同様の動作を行う。また、これらの位置のそれぞれに対し、下方向への開始位置、１ドット移動した位置、２ドット移動した位置についても同様の動作を行う。その結果、右方向に１ドット移動し、下方向に２ドット移動した位置において、全てのブロック内のドット数が「２」となり、ドット数の分散が「０」となる。従って、この位置を正しい区切り位置とする。
【００６０】
尚、このように、ｍ及びｎの値が分かっている場合であっても、図１２の処理によりブロック区切りは検出される。図１３の例では、ｍ＝９であるので、３×３の大きさのブロック区切りを重ねて、図１２の処理を１回だけ行えばよい。また、ｎ＝２であるので、各ブロック内のドット数の分散が最小となったときのドット数の平均値が２であるかどうか確認し、２であればそのときのブロック区切りを正しい区切り位置とし、２以外であれば、エラーとして処理すればよい。
【００６１】
次に、このようにして決定されたｍ、ｎを用いて、ブロック検出部２５が生成した符号配列から情報を取得する際の動作について説明する。
まず、情報を取得するために必要な同期符号の検出の動作について説明する。
図１４は、このときの同期符号検出部２６の動作を示したフローチャートである。尚、以下では、紙面上の全画像がスキャナで読み取られていることを前提とし、読み取られた画像に含まれるＸ方向のブロック数をＤｘ、Ｙ方向のブロック数をＤｙと表記する。
同期符号検出部２６は、まず、Ｋ、Ｌに「０」を代入する(ステップ４０１)。尚、ＫはＸ方向のブロック数を示すカウンタであり、ＬはＹ方向のブロック数を示すカウンタである。
次に、Ｐ(Ｋ，Ｌ)に同期パターンに対応する符号が格納されているかどうかを判定する(ステップ４０２)。例えば、図６に示したパターンを用いる場合であれば、Ａ〜Ｅ組のうち、予め決められた１つの組に属する同期パターンのパターン値が格納されているかどうかを判定する。
【００６２】
ここで、Ｐ(Ｋ，Ｌ)に同期パターンに対応する符号が格納されていると判定されれば、同期符号の個数を数える。つまり、メモリ上のカウンタに「１」を加算する(ステップ４０３)。そしてステップ４０４へ進む。一方、Ｐ(Ｋ，Ｌ)に同期パターンに対応する符号が格納されていないと判定されれば、そのままステップ４０４へ進む。
次に、同期符号検出部２６は、Ｋ＝Ｄｘ−１であるかどうかを判定する(ステップ４０４)。
ここで、Ｋ＝Ｄｘ−１でない場合には、Ｋに「１」を加算して(ステップ４０５)、ステップ４０２、４０３の処理をＫ＝Ｄｘ−１となるまで繰り返し行う。また、Ｋ＝Ｄｘ−１となると、Ｌ＝Ｄｙ−１であるかどうかを判定する(ステップ４０６)。Ｌ＝Ｄｙ−１でない場合には、Ｋに「０」を代入し、Ｌに「１」を加算して(ステップ４０７)、ステップ４０２〜４０５の処理をＬ＝Ｄｙ−１となるまで繰り返し行う。
【００６３】
また、Ｌ＝Ｄｙ−１となると、同期パターンの探索は終了したことになるので、これまでに検出された同期符号から、１つの同期符号を決定する(ステップ４０８)。この場合、通常は、同期符号は１つに決まるはずである。ところが、読取り誤り等により複数の同期符号が候補として検出されることも全くないわけではない。このような場合は、割合に関する所定の閾値を定めておき、検出された複数の同期符号のうち、全同期符号中の割合が閾値以上のものを同期符号として決定すればよい。
尚、ステップ４０６でＬ＝Ｄｙ−１となった時点で、同期パターンが１つも見つかっていなければエラー処理を行う必要があるが、これについては図示を省略している。
【００６４】
このようにして同期符号が検出されると、同期符号検出部２６は、符号配列を回転し、ＳｙｎｃＸ、ＳｙｎｃＹ、ＳｈｉｆｔＸ、ＳｈｉｆｔＹを求める(ステップ４０９)。
ここで、ＳｙｎｃＸとは、符号配列内で同期パターンが配置された位置のＸ座標である。また、ＳｙｎｃＹとは、符号配列内で同期パターンが配置された位置のＹ座標である。尚、符号配列内での座標は、左上端のブロックを基準とする。つまり、同期パターンが最左端の列にある場合、ＳｙｎｃＸ＝０であり、同期パターンが最右端の列にある場合、ＳｙｎｃＸ＝Ｄｘ−１であり、ＳｙｎｃＸは、０，１，２，・・・Ｄｘ−１のいずれかの値を取る。また、同期パターンが最上端の行にある場合、ＳｙｎｃＹ＝０であり、同期パターンが最下端の行にある場合、ＳｙｎｃＹ＝Ｄｙ−１であり、ＳｙｎｃＹは、０，１，２，・・・Ｄｙ−１のいずれかの値を取る。
そして、ＳｈｉｆｔＸは、Ｘ方向のブロック区切りの移動量であり、ＳｈｉｆｔＹは、Ｙ方向のブロック区切りの移動量である。
【００６５】
この処理は、図５(ａ)の９Ｃ２方式における同期パターンを例にとれば次のような処理になる。尚、以下では、所定の条件を満たすスキャナ用符号ブロックに含まれる同期符号のＸ座標をＫｓとし、Ｙ座標をＬｓとする。ここで、所定の条件とは、そのスキャナ用符号ブロックの全体と、少なくともそのスキャナ用符号ブロックの周囲１ブロック分の符号が、符号配列に格納されていることである。
まず、パターン値３２の同期パターンが検出された場合は、符号配列を回転せずに、ＳｙｎｃＸにＫｓを、ＳｙｎｃＹにＬｓを、ＳｈｉｆｔＸにＦＸを、ＳｈｉｆｔＹにＦＹをそれぞれ代入する。
また、パターン値３３の同期パターンが検出された場合は、符号配列を左に９０度回転し、ＳｙｎｃＸにＬｓを、ＳｙｎｃＹにＤｘ−１−Ｋｓを、ＳｈｉｆｔＸにＦＹを、ＳｈｉｆｔＹに２−ＦＸをそれぞれ代入する。
更に、パターン値３４の同期パターンが検出された場合は、符号配列を左に１８０度回転し、ＳｙｎｃＸにＤｘ−１−Ｋｓを、ＳｙｎｃＹにＤｙ−１−Ｌｓを、ＳｈｉｆｔＸに２−ＦＸを、ＳｈｉｆｔＹに２−ＦＹをそれぞれ代入する。
更にまた、パターン値３５の同期パターンが検出された場合は、符号配列を左に２７０度回転し、ＳｙｎｃＸにＤｘ−１−Ｌｓを、ＳｙｎｃＹにＫｓを、ＳｈｉｆｔＸに２−ＦＹを、ＳｈｉｆｔＹにＦＸをそれぞれ代入する。
【００６６】
また、図５(ｂ)の１２Ｃ２方式における同期パターンを例にとれば次のような処理になる。尚、以下でも、所定の条件を満たすスキャナ用符号ブロックに含まれる同期符号のＸ座標をＫｓとし、Ｙ座標をＬｓとする。ここで、所定の条件とは、そのスキャナ用符号ブロックの全体と、少なくともそのスキャナ用符号ブロックの周囲１ブロック分の符号が、符号配列に格納されていることである。
まず、パターン値６４の同期パターンが検出された場合は、符号配列を回転せずに、ＳｙｎｃＸにＫｓを、ＳｙｎｃＹにＬｓを、ＳｈｉｆｔＸにＦＸを、ＳｈｉｆｔＹにＦＹをそれぞれ代入する。
また、パターン値６５の同期パターンが検出された場合は、符号配列を左に１８０度回転し、ＳｙｎｃＸにＤｘ−１−Ｋｓを、ＳｙｎｃＹにＤｙ−１−Ｌｓを、ＳｈｉｆｔＸに３−ＦＸを、ＳｈｉｆｔＹに２−ＦＹをそれぞれ代入する。
【００６７】
次に、同期符号検出部２６は、同期符号に基づいて、スキャナ用符号ブロックのサイズ、即ち、Ｘ方向のブロック数Ｃｘと、Ｙ方向のブロック数Ｃｙとを特定する(ステップ４１０)。このときの処理は、例えば、次のようなものである。即ち、まず、ステップ４０８で決定された同期符号の右方向で最も近接する同期符号があるブロック７０１(図８参照)を符号配列上で探す。また、ステップ４０８で決定された同期符号の下方向で最も近接する同期符号があるブロック７０２(図８参照)を符号配列上で探す。更に、ブロック７０１の下方向にあり、かつ、ブロック７０２の右方向にあるブロック７０３(図８参照)を符号配列上で探す。そして、ブロック７００〜７０３で囲まれた区画をスキャナ用符号ブロックとし、Ｃｘ、Ｃｙを求める。
【００６８】
次に、識別符号を検出して識別情報を取得する際の動作について説明する。
図１５は、このときの識別符号検出部２７ａの動作を示したフローチャートである。
識別符号検出部２７ａは、まず、Ｃｘ×Ｃｙの符号ブロックにおける各ブロックを識別するためのカウンタＳ、Ｔに「０」を代入し、識別情報を示すブロックの中でエラーと判定されたブロック数をカウントするカウンタＥＮに「０」を代入する(ステップ４５１)。ここで、Ｓは、Ｘ方向のブロック数を示すカウンタであり、Ｔは、Ｙ方向のブロック数を示すカウンタである。
【００６９】
また、識別符号検出部２７ａは、Ｓ＝０かつＴ＝０であるかどうかを判定する(ステップ４５２)。
ここで、Ｓ＝０かつＴ＝０であると判定された場合、このブロックには同期符号が配置されており、識別情報を取り出す対象ではないため、そのままステップ４５６へ進む。
一方、Ｓ≠０又はＴ≠０であると判定された場合、このブロックには識別符号が配置されているため、ブロック検出部２５にて生成された符号配列から該当するパターン値を取り出す。ここでは、Ｐ(ＳｙｎｃＸ＋Ｓ，ＳｙｎｃＹ＋Ｔ)に格納されたパターン値を取り出し、これをＩＤ(Ｓ，Ｔ)に代入する(ステップ４５３)。
【００７０】
次に、識別符号検出部２７ａは、ＩＤ(Ｓ，Ｔ)に格納されたパターン値が「０」より小さいかどうかを判定する(ステップ４５４)。
図１２のステップ２１２において、検出した単位符号パターンから対応するパターン値を得ることができない場合には、「−１」を記憶している。そこで、メモリから読み出したＩＤ(Ｓ，Ｔ)のパターン値を「０」と比較することで、正常にパターン判定された単位符号パターンであるかどうかを判定している。
ここで、パターン値が「０」よりも小さくない場合は、そのまま次の処理へ進むが、パターン値が「０」よりも小さい場合には、エラーと判定されたブロック数をカウントするカウンタＥＮに「１」を加算する(ステップ４５５)。
【００７１】
次に、識別符号検出部２７ａは、Ｓ＝Ｃｘ−１であるかどうかを判定する(ステップ４５６)。
ここで、Ｓ＝Ｃｘ−１でない場合には、Ｓに「１」を加算して(ステップ４５７)、ステップ４５２〜４５５の処理をＳ＝Ｃｘ−１となるまで繰り返し行う。また、Ｓ＝Ｃｘ−１となると、次に、Ｔ＝Ｃｙ−１であるかどうかを判定する(ステップ４５８)。Ｔ＝Ｃｙ−１でない場合には、Ｓに「０」を代入し、Ｔに「１」を加算して(ステップ４５９)、ステップ４５２〜４５７の処理をＴ＝Ｃｙ−１となるまで繰り返し行う。また、Ｔ＝Ｃｙ−１となると、エラー数をカウントするカウンタＥＮの値が閾値ＴＮよりも大きくなっているかどうかを判定する(ステップ４６０)。ここで、閾値ＴＮは、１つの符号ブロック当たりの許容されるエラー数を示している。閾値ＴＮは、符号ブロックのレイアウトを考慮せずに一律の値を設定しておいてもよいし、符号ブロック内の識別符号が配置されるブロックの数に一定の比率を乗じたものを採用してもよい。
ここで、カウンタＥＮの値が閾値ＴＮよりも小さい場合には、識別符号復号部２７ｂが、ＩＤ(Ｓ，Ｔ)に格納された識別符号を復号して、識別情報を取得する(ステップ４６１)。
一方、カウンタＥＮの値が閾値ＴＮよりも大きい場合には、エラーの発生頻度が高く、正常な復号ができないと判定し、識別情報としてＮ/Ａ(not applicable)を出力する(ステップ４６２)。
【００７２】
＜第２のレイアウト＞
既に述べたように、スキャナには読取り範囲の制限がないので、大量データの符号化して埋め込んだ記録媒体がスキャナ用の文書として出回ることが考えられる。しかしながら、このスキャナ用の文書と、ペンデバイスで読取り可能な文書とを、利用者が目視で区別することはできないので、誤ったデバイスを用いて読み取ると、誤った結果を返すことが予想される。
そこで、第２のレイアウトでは、正しい符号化方式を選択して誤った結果の出力がなされないようにするために、ペンデバイスの読取範囲と同じ周期で複数種類の同期符号を配置する。
【００７３】
図１６に、第２のレイアウトの例を示す。
まず、第２のレイアウトで用いる同期パターンについて説明する。
図１６(ａ)は、この例で用いる同期パターンの組を示している。パターン値６４の単位符号パターンを正立した同期パターン、パターン値６５の単位符号パターンを右に９０度回転した同期パターン、パターン値６６の単位符号パターンを右に１８０度回転した同期パターン、パターン値６７の単位符号パターンを右に２７０度回転した同期パターンとしている。この同期パターンの組は、図６のＡ組に相当しており、スキャナ用の同期パターンとして使用されるものとする。つまり、これら４つの同期パターンのうち、どれかが認識されれば、ペンデバイス用の記録媒体ではないと判定される。
尚、図１６では、パターン値６４の同期パターンを上向き矢印、パターン値６５の同期パターンを右向き矢印、パターン値６６の同期パターンを下向き矢印、パターン値６７の同期パターンを左向き矢印で表すものとする。
【００７４】
ところで、第２のレイアウトでは、スキャナ用符号ブロックと、ペンデバイスで読み取るための符号ブロック(以下、「ペン用符号ブロック」という)とを両立させる。本実施の形態において、ペン用符号ブロックは５ブロック×５ブロックと設定されているので、同期パターンは５ブロック間隔で配置される。即ち、１つのペン用符号ブロックは、例えば、図１６(ｂ)の太破線で囲まれた範囲となり、４つの同期パターンで囲まれる。
【００７５】
図１６(ｃ)に、第２のレイアウトを採用した場合のスキャナ用符号ブロックを示す。
図では、スキャナ用符号ブロックを太実線で囲んで示しており、ペン用符号ブロックを太破線で囲んで示している。スキャナ用符号ブロックでは、スキャナによる読出し位置である左上のブロック７２０にパターン値６４の同期パターンを配置する。また、スキャナによる読出し位置以外の読出し位置、即ち、ペンデバイスによる読出し位置であるブロック７２４には、回転した同期パターンであるパターン値６５の同期パターンを配置する。
そして、各同期パターンが配置されたブロックの右下に、識別情報を表す情報パターン用のブロックを配置する。例えば、１ブロックで６ビットの情報を表現するとすれば、５１２ビットの情報を表現するには、８６ブロックが必要である。この例において、ペン用符号ブロックには、情報を埋め込むブロックとして２４ブロックが含まれるので、ペン用符号ブロックを横に３つ、縦に２つ並べることで、スキャナ用符号ブロックを構成している。
【００７６】
更に、太線で囲んだスキャナ用符号ブロックに隣接するスキャナ用符号ブロックにも同期パターンが配置されるが、図では、そのような同期パターンが配置されるブロックのうち、パターン値６４の同期パターンが配置されることでスキャナによる読出し位置となるブロックを、ブロック７２１〜７２３として示している。また、パターン値６５の同期パターンが配置されることでペンデバイスによる読出し位置となるブロックを、ブロック７２５として示している。
【００７７】
また、第２のレイアウトの画像が印刷された記録媒体をスキャナで読み取った場合、まず、スキャナは、読み込んだ画像中の同期パターンを検出し、その向きを調べる。そして、最も少ない向きの同期パターンを、正立した同期パターンであると判定する。例えば、図１６(ｂ)の範囲を考えた場合でも、４つの同期パターンのうち、１つだけ異なる向きの同期パターンが読出し位置となる。これにより、この同期パターンが正しい方向になるように回転し、これらの同期パターンで囲まれる領域から情報を取得する。
尚、第２のレイアウトを採用した場合、ペンデバイスで画像を読み込むと、その読込範囲に必ず同期パターンが含まれる。この場合、同期パターンはスキャナ用同期パターンであるので、ペンデバイスは、ペン用符号ブロックではないと判定する。つまり、第２のレイアウトに係る実施の形態では、第１の画像読取装置が第１の画像から情報を取得できないことを表す第３の画像の一例として、パターン値６５の同期パターンを採用している。
【００７８】
次いで、このような画像を生成する画像生成装置１０について説明する。
画像生成装置１０の構成例は、図９に示したものと同様なので説明を省略する。但し、第２のレイアウトに係る実施の形態では、記録媒体上の第１の画像読取装置の読取範囲に応じて予め定められた広さの複数の区画に跨って記録されるように、情報を表す第１の画像を生成し、記録媒体上の複数の区画の少なくとも１つの区画内に記録されるように、第１の画像読取装置よりも広い読取範囲を有する第２の画像読取装置が第１の画像から情報を取得するために用いる第２の画像を生成する生成手段の一例として、符号画像生成部１６を設けている。
【００７９】
次に、画像生成時における動作について説明する。
ここでも、画像生成に先立って、その動作を制御するパラメータが与えられる。具体的には、第１のパラメータである符号ブロックのサイズと、第２のパラメータである各ブロックに配置されるパターンの種類である。
ここで、第１のパラメータについて、第１のレイアウトでは、スキャナ用符号ブロックのサイズＣｘ、Ｃｙだけであったが、第２のレイアウトでは、ペン用符号ブロックのサイズＢｘ、Ｂｙも与えられる。尚、Ｂｘは、ペン用符号ブロックの横方向のブロック数であり、Ｂｙは、ペン用符号ブロックの縦方向のブロック数である。
また、第２のパラメータについて、第１のレイアウトでは、スキャナ用符号ブロック内の各ブロックに配置されるパターンの種類を指定した。これに対し、第２のレイアウトでは、スキャナ用符号ブロックが同じレイアウトの複数のペン用符号ブロックを含むことから、ペン用符号ブロック内の各ブロックに配置されるパターンの種類を指定してもよい。
その他の点については、第１のレイアウトに関して既に述べたことと同様なので、詳細な説明は省略する。
【００８０】
これらのパラメータは、図示しないメモリであるパラメータ記憶部に記憶され、画像生成装置１０の各部分はこのパラメータ記憶部に記憶されたパラメータに従って動作する。
まず、識別符号生成部１１は、第１のパラメータであるスキャナ用符号ブロックのサイズ、及び、第２のパラメータである各ブロックに配置されるパターンの種類に応じて、識別符号を格納するブロック数を求める。そして、ブロック分割部１１ａ及びＲＳ符号化部１１ｂは、最終的にそのブロック数になるように、ブロック分割及びＲＳ符号化の処理を行う。例えば、図１６のレイアウトであれば、１４４個のブロックが得られるようにする。
【００８１】
また、位置符号生成部１２は、第１のパラメータであるスキャナ用符号ブロックのサイズ、及び、第２のパラメータである各ブロックに配置されるパターンの種類に応じて、位置符号を格納するブロック数を求める。但し、図１６のレイアウトの場合、スキャナ用符号ブロックのどのブロックにも位置符号は配置されないので、位置符号生成部１２は動作しない。
【００８２】
これまでに述べたことを前提として、以下、ブロック合成部１４の動作について詳細に説明する。
図１７は、ブロック合成部１４の動作を示したフローチャートである。尚、以下では、１つのブロックのサイズと指定された紙面のサイズとから求められた紙面全体に印刷可能なブロック数を横Ｄｘ、縦Ｄｙと表記するものとする。
まず、ブロック合成部１４は、Ｅ、Ｆに「０」を代入する(ステップ１２１)。尚、ＥはＸ方向のブロック数をカウントするカウンタであり、ＦはＹ方向のブロック数をカウントするカウンタである。
次に、ブロック合成部１４は、パラメータ記憶部からパラメータＢｘ、Ｂｙを読み出し、ＥをＢｘで割った余りであるＥ(ｍｏｄＢｘ)と、ＦをＢｙで割った余りであるＦ(ｍｏｄＢｙ)とを求める。そして、これらが共に０であるかどうかを判定する(ステップ１２２)。
【００８３】
ここで、Ｅ(ｍｏｄＢｘ)≠０又はＦ(ｍｏｄＢｙ)≠０であると判定されれば、識別符号を２次元の符号配列上に配置する(ステップ１２３)。
一方、Ｅ(ｍｏｄＢｘ)＝０かつＦ(ｍｏｄＢｙ)＝０であると判定されれば、ブロック合成部１４は、パラメータ記憶部からパラメータＣｘ、Ｃｙを読み出し、ＥをＣｘで割った余りであるＥ(ｍｏｄＣｘ)と、ＦをＣｙで割った余りであるＦ(ｍｏｄＣｙ)とを求める。そして、これらが共に０であるかどうかを判定する(ステップ１２４)。
【００８４】
ここで、Ｅ(ｍｏｄＣｘ)＝０かつＦ(ｍｏｄＣｙ)＝０であると判定されれば、第１の同期符号を２次元の符号配列上に配置する(ステップ１２５)。ここで、第１の同期符号とは、スキャナ用の同期パターンに対する同期符号であり、図１６の例では、パターン値６４に該当する。
一方、Ｅ(ｍｏｄＣｘ)≠０又はＦ(ｍｏｄＣｙ)≠０であると判定されれば、第２の同期符号を２次元の符号配列上に配置する(ステップ１２６)。ここで、第２の同期符号とは、ペンデバイス用の同期パターンに対する同期符号であり、図１６の例では、パターン値６５に該当する。
尚、この場合、Ｅ(ｍｏｄＢｘ)＝０かつＦ(ｍｏｄＢｙ)＝０であるか判定し、この条件が満たされていれば同期符号を配置し、満たされていなければ識別符号を配置するようにしたのは、図１６のペン用符号ブロックのレイアウトを規定する内容がＣ(Ｅ，Ｆ)に格納されているからである。また、Ｅ(ｍｏｄＣｘ)＝０かつＦ(ｍｏｄＣｙ)＝０であるか判定し、この条件が満たされていれば第１の同期符号を配置し、満たされていなければ第２の同期符号を配置するようにしたのは、図１６のスキャナ用符号ブロックのレイアウトを規定する内容がＣ(Ｅ，Ｆ)に格納されているからである。従って、別のレイアウトを規定する内容がＣ(Ｅ，Ｆ)に格納されていれば、ステップ１２２及びステップ１２４での判断も異なるものとなる。
【００８５】
次に、ブロック合成部１４は、Ｅ＝Ｄｘ−１であるかどうかを判定する(ステップ１２７)。
ここで、Ｅ＝Ｄｘ−１でない場合には、Ｅに「１」を加算して(ステップ１２８)、ステップ１２２〜１２６の処理をＥ＝Ｄｘ−１となるまで繰り返し行う。また、Ｅ＝Ｄｘ−１となると、次に、Ｆ＝Ｄｙ−１であるかどうかを判定する(ステップ１２９)。Ｆ＝Ｄｙ−１でない場合には、Ｅに「０」を代入し、Ｆに「１」を加算して(ステップ１３０)、ステップ１２２〜１２８の処理をＦ＝Ｄｙ−１となるまで繰り返し行う。また、Ｆ＝Ｄｙ−１となると、ブロック合成部１４の処理は終了する。
【００８６】
次に、紙面に形成された符号画像を読み取って処理する画像処理装置２０について説明する。但し、ここでは、符号画像を生成する際に用いたｍＣｎ方式におけるｍ及びｎの値は分かっていないものとする。
画像処理装置２０の構成例は、図１１に示したものと同様なので説明を省略する。但し、第２のレイアウトに係る実施の形態では、自装置が情報を取得するために用いる一のパターン画像を検出する検出手段、自装置が情報を取得するために用いる特定のパターン画像が画像に含まれているかどうかを判定する判定手段の一例として、同期符号検出部２６を設けている。また、一のパターン画像によって決定される区画内の画像から他の装置に対して情報を提供するための他のパターン画像を除外した画像が表す情報を取得する情報取得手段の一例として、識別情報取得部２７及び位置情報取得部２８を設けている。
【００８７】
次に、スキャナにおける画像処理時の動作について説明する。即ち、画像処理装置２０をスキャナとして捉えた場合の動作を述べる。
ここでは、符号化に用いたｍＣｎ方式におけるｍ及びｎの値が不明であっても、符号化された画像を読み取る際にｍ及びｎの値を特定する。このようなｍ及びｎの値を特定するブロック検出部２５の動作については、図１２に示したものと同様なので説明を省略する。
【００８８】
次に、このようにして決定されたｍ、ｎを用いて、ブロック検出部２５が生成した符号配列から情報を取得する際の動作について説明する。
まず、情報を取得するために必要な同期符号の検出の動作について説明する。
図１８は、このときの同期符号検出部２６の動作を示したフローチャートである。尚、以下では、紙面上の全画像がスキャナで読み取られていることを前提とし、読み取られた画像に含まれるＸ方向のブロック数をＤｘ、Ｙ方向のブロック数をＤｙと表記する。また、画像処理装置１０には、ペン用符号ブロックのサイズＢｘ、Ｂｙが与えられているものとする。
同期符号検出部２６は、まず、Ｂｘ×Ｂｙの範囲内で同期符号を見つける(ステップ４２０)。そして、符号配列におけるこの同期符号の座標をＫ０、Ｌ０とし、Ｋに０を、ＬにＬ０を代入する(ステップ４２１)。尚、ＫはＸ方向のブロック数を示すカウンタであり、ＬはＹ方向のブロック数を示すカウンタである。
次に、Ｐ(Ｋ，Ｌ)に同期パターンに対応する符号が格納されているかどうかを判定する(ステップ４２２)。図１６のレイアウトを用いる場合であれば、図６のＡ組に属する同期パターンのパターン値が格納されているかどうかを判定する。
【００８９】
ここで、Ｐ(Ｋ，Ｌ)に同期パターンに対応する符号が格納されていると判定されれば、同期符号の種類ごとに個数を数える。図１６のレイアウトを用いる場合であれば、パターン値６４の個数と、パターン値６５の個数を、別々に数える。つまり、メモリ上の同期符号の種類ごとに設けられたカウンタに「１」を加算する(ステップ４２３)。そしてステップ４２４へ進む。一方、Ｐ(Ｋ，Ｌ)に同期パターンに対応する符号が格納されていないと判定されれば、そのままステップ４２４へ進む。
次に、同期符号検出部２６は、Ｋ＝Ｄｘ−１であるかどうかを判定する(ステップ４２４)。
ここで、Ｋ＝Ｄｘ−１でない場合には、ＫにＢｘを加算して(ステップ４２５)、ステップ４２２、４２３の処理をＫ＝Ｄｘ−１となるまで繰り返し行う。また、Ｋ＝Ｄｘ−１となると、Ｌ＝Ｄｙ−１であるかどうかを判定する(ステップ４２６)。Ｌ＝Ｄｙ−１でない場合には、ＫにＫ０を代入し、ＬにＢｙを加算して(ステップ４２７)、ステップ４２２〜４２５の処理をＬ＝Ｄｙ−１となるまで繰り返し行う。
【００９０】
また、Ｌ＝Ｄｙ−１となると、同期パターンの探索は終了したことになるので、これまでに検出された同期符号から、１つの同期符号を決定する(ステップ４２８)。この場合、同期符号としては、２つの異なる向きのものが検出されているはずである。そこで、同期符号検出部２６は、これら２つの同期符号のうち、検出した数が少ない方の同期符号をスキャナ用の同期符号に決定する(ステップ４２８)。
尚、ステップ４２６でＬ＝Ｄｙ−１となった時点で、同期パターンが１つも見つかっていなければエラー処理を行う必要があるが、これについては図示を省略している。
【００９１】
このようにして同期符号が検出されると、同期符号検出部２６は、符号配列を回転し、ＳｙｎｃＸ、ＳｙｎｃＹ、ＳｈｉｆｔＸ、ＳｈｉｆｔＹを求める(ステップ４２９)。
ここで、ＳｙｎｃＸとは、符号配列内で同期パターンが配置された位置のＸ座標である。また、ＳｙｎｃＹとは、符号配列内で同期パターンが配置された位置のＹ座標である。尚、符号配列内での座標は、左上端のブロックを基準とする。つまり、同期パターンが最左端の列にある場合、ＳｙｎｃＸ＝０であり、同期パターンが最右端の列にある場合、ＳｙｎｃＸ＝Ｄｘ−１であり、ＳｙｎｃＸは、０，１，２，・・・Ｄｘ−１のいずれかの値を取る。また、同期パターンが最上端の行にある場合、ＳｙｎｃＹ＝０であり、同期パターンが最下端の行にある場合、ＳｙｎｃＹ＝Ｄｙ−１であり、ＳｙｎｃＹは、０，１，２，・・・Ｄｙ−１のいずれかの値を取る。
そして、ＳｈｉｆｔＸは、Ｘ方向のブロック区切りの移動量であり、ＳｈｉｆｔＹは、Ｙ方向のブロック区切りの移動量である。
尚、ＳｙｎｃＸ、ＳｙｎｃＹ、ＳｈｉｆｔＸ、ＳｈｉｆｔＹに代入する値の具体例は、第１のレイアウトについて述べたものと同様であるので、ここでは詳しい説明を省略する。
【００９２】
次に、同期符号検出部２６は、同期符号に基づいて、スキャナ用符号ブロックのサイズ、即ち、Ｘ方向のブロック数Ｃｘと、Ｙ方向のブロック数Ｃｙとを特定する(ステップ４３０)。このときの処理は、例えば、次のようなものである。即ち、まず、ステップ４２８で決定された同期符号の右方向で最も近接する同じ種類の同期符号があるブロック７２１(図１６参照)を符号配列上で探す。また、ステップ４２８で決定された同期符号の下方向で最も近接する同じ種類の同期符号があるブロック７２２(図１６参照)を符号配列上で探す。更に、ブロック７２１の下方向にあり、かつ、ブロック７２２の右方向にあるブロック７２３(図１６参照)を符号配列上で探す。そして、ブロック７２０〜７２３で囲まれた区画をスキャナ用符号ブロックとし、Ｃｘ、Ｃｙを求める。
【００９３】
ところで、上記処理では、２つの同期符号のうちの少ない方をスキャナ用の同期符号に決定したが、スキャナ用の同期符号の決定方法はこれに限らない。例えば、ペン用符号ブロックを縦に１つ、横に２つ並べてスキャナ用符号ブロックとした場合には、２つの同期符号の数は等しくなると考えられるので、上述した方法でスキャナ用の同期符号を決定することはできない。このような場合は、例えば、回転方向に９０度の差がある同期符号のペアを予め決めておき、検出された２つの同期符号がこの予め決めておいた同期符号のペアと一致するように回転すればよい。例えば、図１６に示したように、パターン値６４の同期符号とパターン値６５の同期符号のペアを用いる場合を考える。この場合、パターン値６５の同期符号とパターン値６６の同期符号とがほぼ同じ数だけ検出されたとすると、画像を左に９０度回転して、パターン値６４の同期符号とパターン値６５の同期符号のペアが現れるようにする。
【００９４】
次に、識別符号を検出して識別情報を取得する際の動作について説明する。
図１９は、このときの識別符号検出部２７ａの動作を示したフローチャートである。
識別符号検出部２７ａは、まず、Ｃｘ×Ｃｙの符号ブロックにおける各ブロックを識別するためのカウンタＳ、Ｔに「０」を代入し、識別情報を示すブロックの中でエラーと判定されたブロック数をカウントするカウンタＥＮに「０」を代入する(ステップ４７１)。ここで、Ｓは、Ｘ方向のブロック数を示すカウンタであり、Ｔは、Ｙ方向のブロック数を示すカウンタである。
【００９５】
また、識別符号検出部２７ａは、ＳをＢｘで割った余りであるＳ(ｍｏｄＢｘ)と、ＴをＢｙで割った余りであるＴ(ｍｏｄＢｙ)とを求める。そして、これらが共に０であるかどうかを判定する(ステップ４７２)。
ここで、Ｓ(ｍｏｄＢｘ)＝０かつＴ(ｍｏｄＢｙ)＝０であると判定された場合、このブロックには同期符号が配置されており、識別情報を取り出す対象ではないため、そのままステップ４７６へ進む。
一方、Ｓ(ｍｏｄＢｘ)≠０又はＴ(ｍｏｄＢｙ)≠０であると判定された場合、このブロックには識別符号が配置されているため、ブロック検出部２５にて生成された符号配列から該当するパターン値を取り出す。ここでは、Ｐ(ＳｙｎｃＸ＋Ｓ，ＳｙｎｃＹ＋Ｔ)に格納されたパターン値を取り出し、これをＩＤ(Ｓ，Ｔ)に代入する(ステップ４７３)。
【００９６】
次に、識別符号検出部２７ａは、ＩＤ(Ｓ，Ｔ)に格納されたパターン値が「０」より小さいかどうかを判定する(ステップ４７４)。
図１２のステップ２１２において、検出した単位符号パターンから対応するパターン値を得ることができない場合には、「−１」を記憶している。そこで、メモリから読み出したＩＤ(Ｓ，Ｔ)のパターン値を「０」と比較することで、正常にパターン判定された単位符号パターンであるかどうかを判定している。
ここで、パターン値が「０」よりも小さくない場合は、そのまま次の処理へ進むが、パターン値が「０」よりも小さい場合には、エラーと判定されたブロック数をカウントするカウンタＥＮに「１」を加算する(ステップ４７５)。
【００９７】
次に、識別符号検出部２７ａは、Ｓ＝Ｃｘ−１であるかどうかを判定する(ステップ４７６)。
ここで、Ｓ＝Ｃｘ−１でない場合には、Ｓに「１」を加算して(ステップ４７７)、ステップ４７２〜４７５の処理をＳ＝Ｃｘ−１となるまで繰り返し行う。また、Ｓ＝Ｃｘ−１となると、次に、Ｔ＝Ｃｙ−１であるかどうかを判定する(ステップ４７８)。Ｔ＝Ｃｙ−１でない場合には、Ｓに「０」を代入し、Ｔに「１」を加算して(ステップ４７９)、ステップ４７２〜４７７の処理をＴ＝Ｃｙ−１となるまで繰り返し行う。また、Ｔ＝Ｃｙ−１となると、エラー数をカウントするカウンタＥＮの値が閾値ＴＮよりも大きくなっているかどうかを判定する(ステップ４８０)。ここで、閾値ＴＮは、１つの符号ブロック当たりの許容されるエラー数を示している。閾値ＴＮは、符号ブロックのレイアウトを考慮せずに一律の値を設定しておいてもよいし、符号ブロック内の識別符号が配置されるブロックの数に一定の比率を乗じたものを採用してもよい。
ここで、カウンタＥＮの値が閾値ＴＮよりも小さい場合には、識別符号復号部２７ｂが、ＩＤ(Ｓ，Ｔ)に格納された識別符号を復号して、識別情報を取得する(ステップ４８１)。
一方、カウンタＥＮの値が閾値ＴＮよりも大きい場合には、エラーの発生頻度が高く、正常な復号ができないと判定し、識別情報としてＮ/Ａ(not applicable)を出力する(ステップ４８２)。
尚、ペンデバイスにおける画像処理時の動作については、次の第３のレイアウトの説明において述べる。
【００９８】
＜第３のレイアウト＞
既に述べたように、スキャナには読取り範囲の制限がないので、大量データの符号化して埋め込んだ記録媒体がスキャナ用の文書として出回ることが考えられる。しかしながら、このスキャナ用の文書と、ペンデバイスで読取り可能な文書とを、利用者が目視で区別することはできないので、誤ったデバイスを用いて読み取ると、誤った結果を返すことが予想される。
そこで、第３のレイアウトでは、同期符号を異なる組から選定し、識別符号に加え、位置符号も埋め込む。これをスキャナで読み取ると、識別情報が返され、ペンデバイスで読み取ると、位置情報が返される。また、ペンデバイスの場合、複数回の読み込みで識別情報が返されることもある。
【００９９】
図２０に、第３のレイアウトの例を示す。
第３のレイアウトでは、ペン用符号ブロックと同様に、縦５ブロック×横５ブロックの２５ブロックを基本単位とする。同期パターンとしては、２つの組、例えば、図６のＡ組とＢ組に属するものを利用する。即ち、Ａ組に属する正立した同期パターンを、ブロック７４０〜７４３に配置し、これらの同期パターンで囲まれる領域を情報埋め込み領域とする。また、これらの同期パターンの間には、ブロック７４４、７４５のように、Ｂ組に属する正立した同期パターンを配置する。尚、この第３のレイアウトにおいて、ペン用符号ブロック内のレイアウトとしては、図７に示したものと同様、同期パターンの右側及び下側に位置情報を表す情報パターンを配置し、位置情報に囲まれた区画に識別情報を表す情報パターンを配置したものを採用している。
このような画像をスキャナで読み込んだ場合、Ａ組の同期パターンを探し、正立方向を判定する。画像を回転する補正を行った後、Ａ組の同期パターンで囲まれる領域内の識別符号が埋め込まれた領域から識別情報を得る。
また、この画像をペンデバイスで読み込んだ場合、読み込み領域に必ずＡ組かＢ組かに属する同期パターンが含まれる。従って、Ａ組、Ｂ組のいずれの同期パターンもペンデバイス用の同期パターンとして設定しておけば、位置情報が復号される。つまり、第３のレイアウトに係る実施の形態では、第１の画像読取装置が第１の画像から情報を取得するために用いる第３の画像の一例として、Ｂ組の同期パターンを採用している。
【０１００】
次いで、このような画像を生成する画像生成装置１０について説明する。
画像生成装置１０の構成例は、図９に示したものと同様なので説明を省略する。但し、第３のレイアウトに係る実施の形態でも、記録媒体上の第１の画像読取装置の読取範囲に応じて予め定められた広さの複数の区画に跨って記録されるように、情報を表す第１の画像を生成し、記録媒体上の複数の区画の少なくとも１つの区画内に記録されるように、第１の画像読取装置よりも広い読取範囲を有する第２の画像読取装置が第１の画像から情報を取得するために用いる第２の画像を生成する生成手段の一例として、符号画像生成部１６を設けている。
【０１０１】
次に、画像生成時における動作について説明する。
ここでも、画像生成に先立って、その動作を制御するパラメータが与えられる。具体的には、第１のパラメータである符号ブロックのサイズと、第２のパラメータである各ブロックに配置されるパターンの種類である。
ここで、第１のパラメータについて、第１のレイアウトでは、スキャナ用符号ブロックのサイズＣｘ、Ｃｙだけであったが、第２のレイアウトでは、ペン用符号ブロックのサイズＢｘ、Ｂｙも与えられる。尚、Ｂｘは、ペン用符号ブロックの横方向のブロック数であり、Ｂｙは、ペン用符号ブロックの縦方向のブロック数である。
また、第２のパラメータについて、第１のレイアウトでは、スキャナ用符号ブロック内の各ブロックに配置されるパターンの種類を指定した。これに対し、第２のレイアウトでは、スキャナ用符号ブロックが同じレイアウトの複数のペン用符号ブロックを含むことから、ペン用符号ブロック内の各ブロックに配置されるパターンの種類を指定してもよい。
その他の点については、第１のレイアウトに関して既に述べたことと同様なので、詳細な説明は省略する。
【０１０２】
これらのパラメータは、図示しないメモリであるパラメータ記憶部に記憶され、画像生成装置１０の各部分はこのパラメータ記憶部に記憶されたパラメータに従って動作する。
まず、識別符号生成部１１は、第１のパラメータであるスキャナ用符号ブロックのサイズ、及び、第２のパラメータである各ブロックに配置されるパターンの種類に応じて、識別符号を格納するブロック数を求める。そして、ブロック分割部１１ａ及びＲＳ符号化部１１ｂは、最終的にそのブロック数になるように、ブロック分割及びＲＳ符号化の処理を行う。例えば、図２０のレイアウトであれば、１４４個のブロックが得られるようにする。
【０１０３】
また、位置符号生成部１２は、第１のパラメータであるスキャナ用符号ブロックのサイズ、及び、第２のパラメータである各ブロックに配置されるパターンの種類に応じて、位置符号を格納するブロック数を求める。
【０１０４】
これまでに述べたことを前提として、以下、ブロック合成部１４の動作について詳細に説明する。
図２１は、ブロック合成部１４の動作を示したフローチャートである。尚、以下では、１つのブロックのサイズと指定された紙面のサイズとから求められた紙面全体に印刷可能なブロック数を横Ｄｘ、縦Ｄｙと表記するものとする。
まず、ブロック合成部１４は、Ｅ、Ｆに「０」を代入する(ステップ１４１)。尚、ＥはＸ方向のブロック数をカウントするカウンタであり、ＦはＹ方向のブロック数をカウントするカウンタである。
次に、ブロック合成部１４は、パラメータ記憶部からパラメータＢｘ、Ｂｙを読み出し、ＥをＢｘで割った余りであるＥ(ｍｏｄＢｘ)と、ＦをＢｙで割った余りであるＦ(ｍｏｄＢｙ)とを求める。そして、これらが共に０であるかどうかを判定する(ステップ１４２)。
【０１０５】
ここで、Ｅ(ｍｏｄＢｘ)≠０又はＦ(ｍｏｄＢｙ)≠０であると判定されれば、識別符号又は位置符号を２次元の符号配列上に配置する(ステップ１４３)。ここで、識別符号を配置するか位置符号を配置するかは、第２のパラメータを参照することで決定する。
一方、Ｅ(ｍｏｄＢｘ)＝０かつＦ(ｍｏｄＢｙ)＝０であると判定されれば、ブロック合成部１４は、パラメータ記憶部からパラメータＣｘ、Ｃｙを読み出し、ＥをＣｘで割った余りであるＥ(ｍｏｄＣｘ)と、ＦをＣｙで割った余りであるＦ(ｍｏｄＣｙ)とを求める。そして、これらが共に０であるかどうかを判定する(ステップ１４４)。
【０１０６】
ここで、Ｅ(ｍｏｄＣｘ)＝０かつＦ(ｍｏｄＣｙ)＝０であると判定されれば、Ａ組の同期符号を２次元の符号配列上に配置する(ステップ１４５)。
一方、Ｅ(ｍｏｄＣｘ)≠０又はＦ(ｍｏｄＣｙ)≠０であると判定されれば、Ｂ組の同期符号を２次元の符号配列上に配置する(ステップ１４６)。
尚、この場合、Ｅ(ｍｏｄＢｘ)＝０かつＦ(ｍｏｄＢｙ)＝０であるか判定し、この条件が満たされていれば同期符号を配置し、満たされていなければ識別符号又は位置符号を配置するようにしたのは、図２０のペン用符号ブロックのレイアウトを規定する内容がＣ(Ｅ，Ｆ)に格納されているからである。また、Ｅ(ｍｏｄＣｘ)＝０かつＦ(ｍｏｄＣｙ)＝０であるか判定し、この条件が満たされていればＡ組の同期符号を配置し、満たされていなければＢ組の同期符号を配置するようにしたのは、図２０のスキャナ用符号ブロックのレイアウトを規定する内容がＣ(Ｅ，Ｆ)に格納されているからである。従って、別のレイアウトを規定する内容がＣ(Ｅ，Ｆ)に格納されていれば、ステップ１４２及びステップ１４４での判断も異なるものとなる。
【０１０７】
次に、ブロック合成部１４は、Ｅ＝Ｄｘ−１であるかどうかを判定する(ステップ１４７)。
ここで、Ｅ＝Ｄｘ−１でない場合には、Ｅに「１」を加算して(ステップ１４８)、ステップ１４２〜１４６の処理をＥ＝Ｄｘ−１となるまで繰り返し行う。また、Ｅ＝Ｄｘ−１となると、次に、Ｆ＝Ｄｙ−１であるかどうかを判定する(ステップ１４９)。Ｆ＝Ｄｙ−１でない場合には、Ｅに「０」を代入し、Ｆに「１」を加算して(ステップ１３０)、ステップ１４２〜１４８の処理をＦ＝Ｄｙ−１となるまで繰り返し行う。また、Ｆ＝Ｄｙ−１となると、ブロック合成部１４の処理は終了する。
【０１０８】
次に、紙面に形成された符号画像を読み取って処理する画像処理装置２０について説明する。但し、ここでは、符号画像を生成する際に用いたｍＣｎ方式におけるｍ及びｎの値は分かっていないものとする。
画像処理装置２０の構成例は、図１１に示したものと同様なので説明を省略する。但し、第３のレイアウトに係る実施の形態でも、自装置が情報を取得するために用いる一のパターン画像を検出する検出手段の一例として、同期符号検出部２６を設けている。また、一のパターン画像によって決定される区画内の画像から他の装置に対して情報を提供するための他のパターン画像を除外した画像が表す情報を取得する情報取得手段の一例として、識別情報取得部２７及び位置情報取得部２８を設けている。
【０１０９】
次に、スキャナにおける画像処理時の動作について説明する。即ち、画像処理装置２０をスキャナとして捉えた場合の動作を述べる。
ここでは、符号化に用いたｍＣｎ方式におけるｍ及びｎの値が不明であっても、符号化された画像を読み取る際にｍ及びｎの値を特定する。このようなｍ及びｎの値を特定するブロック検出部２５の動作については、図１２に示したものと同様なので説明を省略する。
【０１１０】
次に、このようにして決定されたｍ、ｎを用いて、ブロック検出部２５が生成した符号配列から情報を取得する際の動作について説明する。
まず、情報を取得するために必要な同期符号の検出の動作について説明する。
図２２は、このときの同期符号検出部２６の動作を示したフローチャートである。尚、以下では、紙面上の全画像がスキャナで読み取られていることを前提とし、読み取られた画像に含まれるＸ方向のブロック数をＤｘ、Ｙ方向のブロック数をＤｙと表記する。また、画像処理装置１０には、ペン用符号ブロックのサイズＢｘ、Ｂｙが与えられているものとする。
同期符号検出部２６は、まず、Ｂｘ×Ｂｙの範囲内で同期符号を見つける(ステップ４４０)。そして、符号配列におけるこの同期符号の座標をＫ０、Ｌ０とし、Ｋに０を、ＬにＬ０を代入する(ステップ４４１)。尚、ＫはＸ方向のブロック数を示すカウンタであり、ＬはＹ方向のブロック数を示すカウンタである。
次に、Ｐ(Ｋ，Ｌ)に同期パターンに対応する符号が格納されているかどうかを判定する(ステップ４４２)。図２０のレイアウトを用いる場合であれば、図６のＡ組に属する同期パターンのパターン値が格納されているかどうかを判定する。
【０１１１】
ここで、Ｐ(Ｋ，Ｌ)に同期パターンに対応する符号が格納されていると判定されれば、同期符号の個数を数える。つまり、メモリ上のカウンタに「１」を加算する(ステップ４４３)。そしてステップ４４４へ進む。一方、Ｐ(Ｋ，Ｌ)に同期パターンに対応する符号が格納されていないと判定されれば、そのままステップ４４４へ進む。
次に、同期符号検出部２６は、Ｋ＝Ｄｘ−１であるかどうかを判定する(ステップ４４４)。
ここで、Ｋ＝Ｄｘ−１でない場合には、ＫにＢｘを加算して(ステップ４４５)、ステップ４４２、４４３の処理をＫ＝Ｄｘ−１となるまで繰り返し行う。また、Ｋ＝Ｄｘ−１となると、Ｌ＝Ｄｙ−１であるかどうかを判定する(ステップ４４６)。Ｌ＝Ｄｙ−１でない場合には、ＫにＫ０を代入し、ＬにＢｙを加算して(ステップ４４７)、ステップ４４２〜４４５の処理をＬ＝Ｄｙ−１となるまで繰り返し行う。
【０１１２】
また、Ｌ＝Ｄｙ−１となると、同期パターンの探索は終了したことになるので、これまでに検出された同期符号から、１つの同期符号を決定する(ステップ４４８)。この場合、通常は、同期符号は１つに決まるはずである。ところが、読取り誤り等により複数の同期符号が候補として検出されることも全くないわけではない。このような場合は、割合に関する所定の閾値を定めておき、検出された複数の同期符号のうち、全同期符号中の割合が閾値以上のものを同期符号として決定すればよい。
尚、ステップ４４６でＬ＝Ｄｙ−１となった時点で、同期パターンが１つも見つかっていなければエラー処理を行う必要があるが、これについては図示を省略している。
【０１１３】
このようにして同期符号が検出されると、同期符号検出部２６は、符号配列を回転し、ＳｙｎｃＸ、ＳｙｎｃＹ、ＳｈｉｆｔＸ、ＳｈｉｆｔＹを求める(ステップ４４９)。
ここで、ＳｙｎｃＸとは、符号配列内で同期パターンが配置された位置のＸ座標である。また、ＳｙｎｃＹとは、符号配列内で同期パターンが配置された位置のＹ座標である。尚、符号配列内での座標は、左上端のブロックを基準とする。つまり、同期パターンが最左端の列にある場合、ＳｙｎｃＸ＝０であり、同期パターンが最右端の列にある場合、ＳｙｎｃＸ＝Ｄｘ−１であり、ＳｙｎｃＸは、０，１，２，・・・Ｄｘ−１のいずれかの値を取る。また、同期パターンが最上端の行にある場合、ＳｙｎｃＹ＝０であり、同期パターンが最下端の行にある場合、ＳｙｎｃＹ＝Ｄｙ−１であり、ＳｙｎｃＹは、０，１，２，・・・Ｄｙ−１のいずれかの値を取る。
そして、ＳｈｉｆｔＸは、Ｘ方向のブロック区切りの移動量であり、ＳｈｉｆｔＹは、Ｙ方向のブロック区切りの移動量である。
尚、ＳｙｎｃＸ、ＳｙｎｃＹ、ＳｈｉｆｔＸ、ＳｈｉｆｔＹに代入する値の具体例は、第１のレイアウトについて述べたものと同様であるので、ここでは詳しい説明を省略する。
【０１１４】
次に、同期符号検出部２６は、同期符号に基づいて、スキャナ用符号ブロックのサイズ、即ち、Ｘ方向のブロック数Ｃｘと、Ｙ方向のブロック数Ｃｙとを特定する(ステップ４５０)。このときの処理は、例えば、次のようなものである。即ち、まず、ステップ４４８で決定された同期符号の右方向で最も近接する同じ組の同期符号があるブロック７４１(図２０参照)を符号配列上で探す。また、ステップ４４８で決定された同期符号の下方向で最も近接する同じ組の同期符号があるブロック７４２(図２０参照)を符号配列上で探す。更に、ブロック７４１の下方向にあり、かつ、ブロック７４２の右方向にあるブロック７４３(図２０参照)を符号配列上で探す。そして、ブロック７４０〜７４３で囲まれた区画をスキャナ用符号ブロックとし、Ｃｘ、Ｃｙを求める。
【０１１５】
次に、識別符号を検出して識別情報を取得する際の動作について説明する。
図２３は、このときの識別符号検出部２７ａの動作を示したフローチャートである。
識別符号検出部２７ａは、まず、Ｃｘ×Ｃｙの符号ブロックにおける各ブロックを識別するためのカウンタＳ、Ｔに「０」を代入し、識別情報を示すブロックの中でエラーと判定されたブロック数をカウントするカウンタＥＮに「０」を代入する(ステップ４９１)。ここで、Ｓは、Ｘ方向のブロック数を示すカウンタであり、Ｔは、Ｙ方向のブロック数を示すカウンタである。
【０１１６】
また、識別符号検出部２７ａは、ＳをＢｘで割った余りであるＳ(ｍｏｄＢｘ)と、ＴをＢｙで割った余りであるＴ(ｍｏｄＢｙ)とを求める。そして、これらが共に０であるかどうかを判定する(ステップ４９２)。
ここで、Ｓ(ｍｏｄＢｘ)＝０又はＴ(ｍｏｄＢｙ)＝０であると判定された場合、このブロックには同期符号又は位置符号が配置されており、識別情報を取り出す対象ではないため、そのままステップ４９６へ進む。
一方、Ｓ(ｍｏｄＢｘ)≠０かつＴ(ｍｏｄＢｙ)≠０であると判定された場合、このブロックには識別符号が配置されているため、ブロック検出部２５にて生成された符号配列から該当するパターン値を取り出す。ここでは、Ｐ(ＳｙｎｃＸ＋Ｓ，ＳｙｎｃＹ＋Ｔ)に格納されたパターン値を取り出し、これをＩＤ(Ｓ，Ｔ)に代入する(ステップ４９３)。
【０１１７】
次に、識別符号検出部２７ａは、ＩＤ(Ｓ，Ｔ)に格納されたパターン値が「０」より小さいかどうかを判定する(ステップ４９４)。
図１２のステップ２１２において、検出した単位符号パターンから対応するパターン値を得ることができない場合には、「−１」を記憶している。そこで、メモリから読み出したＩＤ(Ｓ，Ｔ)のパターン値を「０」と比較することで、正常にパターン判定された単位符号パターンであるかどうかを判定している。
ここで、パターン値が「０」よりも小さくない場合は、そのまま次の処理へ進むが、パターン値が「０」よりも小さい場合には、エラーと判定されたブロック数をカウントするカウンタＥＮに「１」を加算する(ステップ４９５)。
【０１１８】
次に、識別符号検出部２７ａは、Ｓ＝Ｃｘ−１であるかどうかを判定する(ステップ４９６)。
ここで、Ｓ＝Ｃｘ−１でない場合には、Ｓに「１」を加算して(ステップ４９７)、ステップ４９２〜４９５の処理をＳ＝Ｃｘ−１となるまで繰り返し行う。また、Ｓ＝Ｃｘ−１となると、次に、Ｔ＝Ｃｙ−１であるかどうかを判定する(ステップ４９８)。Ｔ＝Ｃｙ−１でない場合には、Ｓに「０」を代入し、Ｔに「１」を加算して(ステップ４９９)、ステップ４９２〜４９７の処理をＴ＝Ｃｙ−１となるまで繰り返し行う。また、Ｔ＝Ｃｙ−１となると、エラー数をカウントするカウンタＥＮの値が閾値ＴＮよりも大きくなっているかどうかを判定する(ステップ５００)。ここで、閾値ＴＮは、１つの符号ブロック当たりの許容されるエラー数を示している。閾値ＴＮは、符号ブロックのレイアウトを考慮せずに一律の値を設定しておいてもよいし、符号ブロック内の識別符号が配置されるブロックの数に一定の比率を乗じたものを採用してもよい。
ここで、カウンタＥＮの値が閾値ＴＮよりも小さい場合には、識別符号復号部２７ｂが、ＩＤ(Ｓ，Ｔ)に格納された識別符号を復号して、識別情報を取得する(ステップ５０１)。
一方、カウンタＥＮの値が閾値ＴＮよりも大きい場合には、エラーの発生頻度が高く、正常な復号ができないと判定し、識別情報としてＮ/Ａ(not applicable)を出力する(ステップ５０２)。
【０１１９】
次に、ペンデバイスにおける画像処理時の動作について説明する。即ち、画像処理装置２０をペンデバイスとして捉えた場合の動作を述べる。
図２４は、同期符号検出部２６の動作を示したフローチャートである。
同期符号検出部２６は、まず、Ｋ、Ｌに「０」を代入する(ステップ６０１)。尚、ＫはＸ方向のブロック数を示すカウンタであり、ＬはＹ方向のブロック数を示すカウンタである。
次に、Ｐ(Ｋ，Ｌ)にペンデバイス用の同期パターンに対応する符号が格納されているかどうかを判定する(ステップ６０２)。図２０のレイアウトを用いる場合であれば、図６のＡ組又はＢ組に属する同期パターンのパターン値が格納されているかどうかを判定する。
【０１２０】
ここで、Ｐ(Ｋ，Ｌ)にペンデバイス用の同期パターンに対応する符号が格納されていないと判定されれば、Ｐ(Ｋ，Ｌ)にスキャナ用の同期パターンに対応する符号が格納されているかどうかを判定する(ステップ６０３)。図２０のレイアウトを用いる場合であれば、ペンデバイス用でなくてスキャナ用であるような同期パターンの符号が格納されていることはないが、例えば、図１６のようなレイアウトを用いた場合には、ペンデバイス用でなくてスキャナ用であるような同期パターンの符号が格納されていることが考えられる。
そして、Ｐ(Ｋ，Ｌ)にスキャナ用の同期パターンに対応する符号が格納されていないと判定されれば、Ｋ＝Ｂｘ−１であるかどうかを判定する(ステップ６０４)。
ここで、Ｋ＝Ｂｘ−１でない場合には、Ｋに「１」を加算して(ステップ６０５)、ステップ６０２、６０３の処理をＫ＝Ｂｘ−１となるまで繰り返し行う。また、Ｋ＝Ｂｘ−１となると、Ｌ＝Ｂｙ−１であるかどうかを判定する(ステップ６０６)。Ｌ＝Ｂｙ−１でない場合には、Ｋに「０」を代入し、Ｌに「１」を加算して(ステップ６０７)、ステップ６０２〜６０５の処理をＬ＝Ｂｙ−１となるまで繰り返し行う。また、Ｌ＝Ｂｙ−１となると、処理対象の範囲内に同期パターンが見つからなかったことを意味するので、復号不能を出力する(ステップ６０８)。
【０１２１】
また、ステップ６０２でＰ(Ｋ，Ｌ)にペンデバイス用の同期パターンに対応する符号が格納されていると判定されれば、同期符号検出部２６は、以下の処理を行う。
即ち、Ｂｘ×Ｂｙの符号配列を回転し、ＳｙｎｃＸ、ＳｙｎｃＹ、ＳｈｉｆｔＸ、ＳｈｉｆｔＹを求める(ステップ６０９)。
ここで、ＳｙｎｃＸとは、Ｂｘ×Ｂｙの符号配列内で、同期パターンが配置された位置のＸ座標である。また、ＳｙｎｃＹとは、Ｂｘ×Ｂｙの符号配列内で、同期パターンが配置された位置のＹ座標である。尚、Ｂｘ×Ｂｙの符号配列内での座標は、左上端のブロックを基準とする。つまり、同期パターンが最左端の列にある場合、ＳｙｎｃＸ＝０であり、同期パターンが最右端の列にある場合、ＳｙｎｃＸ＝Ｂｘ−１であり、ＳｙｎｃＸは、０，１，２，・・・Ｂｘ−１のいずれかの値を取る。また、同期パターンが最上端の行にある場合、ＳｙｎｃＹ＝０であり、同期パターンが最下端の行にある場合、ＳｙｎｃＹ＝Ｂｙ−１であり、ＳｙｎｃＹは、０，１，２，・・・Ｂｙ−１のいずれかの値を取る。
そして、ＳｈｉｆｔＸは、Ｘ方向のブロック区切りの移動量であり、ＳｈｉｆｔＹは、Ｙ方向のブロック区切りの移動量である。
【０１２２】
この処理は、図５(ａ)の９Ｃ２方式における同期パターンを例にとれば次のような処理になる。
即ち、パターン値３２の同期パターンが検出された場合は、符号配列を回転せずに、ＳｙｎｃＸにＫを、ＳｙｎｃＹにＬを、ＳｈｉｆｔＸにＦＸを、ＳｈｉｆｔＹにＦＹをそれぞれ代入する。
また、パターン値３３の同期パターンが検出された場合は、符号配列を左に９０度回転し、ＳｙｎｃＸにＬを、ＳｙｎｃＹにＢｘ−１−Ｋを、ＳｈｉｆｔＸにＦＹを、ＳｈｉｆｔＹに２−ＦＸをそれぞれ代入する。
更に、パターン値３４の同期パターンが検出された場合は、符号配列を左に１８０度回転し、ＳｙｎｃＸにＢｘ−１−Ｋを、ＳｙｎｃＹにＢｙ−１−Ｌを、ＳｈｉｆｔＸに２−ＦＸを、ＳｈｉｆｔＹに２−ＦＹをそれぞれ代入する。
更にまた、パターン値３５の同期パターンが検出された場合は、符号配列を左に２７０度回転し、ＳｙｎｃＸにＢｙ−１−Ｌを、ＳｙｎｃＹにＫを、ＳｈｉｆｔＸに２−ＦＹを、ＳｈｉｆｔＹにＦＸをそれぞれ代入する。
【０１２３】
また、図５(ｂ)の１２Ｃ２方式における同期パターンを例にとれば次のような処理になる。
即ち、パターン値６４の同期パターンが検出された場合は、符号配列を回転せずに、ＳｙｎｃＸにＫを、ＳｙｎｃＹにＬを、ＳｈｉｆｔＸにＦＸを、ＳｈｉｆｔＹにＦＹをそれぞれ代入する。
また、パターン値６５の同期パターンが検出された場合は、符号配列を左に１８０度回転し、ＳｙｎｃＸにＢｘ−１−Ｋを、ＳｙｎｃＹにＢｙ−１−Ｌを、ＳｈｉｆｔＸに３−ＦＸを、ＳｈｉｆｔＹに２−ＦＹをそれぞれ代入する。
【０１２４】
更に、ステップ６０３でＰ(Ｋ，Ｌ)にスキャナ用の同期パターンに対応する符号が格納されていると判定されれば、ペンデバイスでは情報を読み取れないので、スキャナ用の記録媒体である旨を出力する(ステップ６１０)。この場合、スキャナ用の記録媒体である旨は、例えば、出力手段の一例としてペンデバイスに設けられた液晶ディスプレイに表示するとよい。
【０１２５】
次に、位置符号を検出して位置情報を取得する際の動作について説明する。
図２５は、このときの位置符号検出部２８ａの動作を示したフローチャートである。
位置符号検出部２８ａは、まず、Ｘ方向のブロック数をカウントするカウンタＵに「０」を代入し、位置情報を示すブロックの中でエラーと判定されたブロック数をカウントするカウンタＥＭに「０」を代入する(ステップ６５１)。
【０１２６】
また、位置符号検出部２８ａは、Ｕ＝ＳｙｎｃＸであるかどうかを判定する(ステップ６５２)。
ここで、Ｕ＝ＳｙｎｃＸであると判定された場合、そのままステップ６５６へ進む。
一方、Ｕ＝ＳｙｎｃＸでないと判定された場合、ブロック検出部２５にて生成された符号配列から該当するパターン値を取り出す。
ここでは、Ｐ(Ｕ，ＳｙｎｃＹ)に格納されたパターン値を取り出し、これをＸＡ(Ｕ)に代入する(ステップ６５３)。
【０１２７】
次に、位置符号検出部２８ａは、ＸＡ(Ｕ)に格納されたパターン値が「０」より小さいかどうかを判定する(ステップ６５４)。
図１２のステップ２１２において、検出した単位符号パターンから対応するパターン値を得ることができない場合には、「−１」を記憶している。そこで、メモリから読み出したＸＡ(Ｕ)のパターン値を「０」と比較することで、正常にパターン判定された単位符号パターンであるかどうかを判定している。
ここで、パターン値が「０」よりも小さくない場合には、そのままステップ６５６へ進む。
一方、パターン値が「０」よりも小さい場合には、エラーと判定されたブロック数をカウントするカウンタＥＭに「１」を加算して(ステップ６５５)、ステップ６５６へ進む。
【０１２８】
次に、識別符号検出部２７ａは、Ｕ＝Ｂｘ−１であるかどうかを判定する(ステップ６５６)。
ここで、Ｕ＝Ｂｘ−１でない場合には、Ｕに「１」を加算して(ステップ６５７)、ステップ６５２〜６５５の処理をＵ＝Ｂｘ−１となるまで繰り返し行う。また、Ｕ＝Ｂｘ−１となると、エラー数をカウントするカウンタＥＭの値が閾値ＴＭよりも大きくなっているかどうかを判定する(ステップ６５８)。ここで、閾値ＴＭは、１つの符号ブロック当たりの許容されるエラー数を示している。閾値ＴＭは、符号ブロックのレイアウトを考慮せずに一律の値を設定しておいてもよいし、符号ブロック内の位置符号が配置されるブロックの数に一定の比率を乗じたものを採用してもよい。
ここで、カウンタＥＭの値が閾値ＴＭよりも小さい場合には、ＸＡ(Ｕ)とＳｈｉｆｔＸとからＸ位置情報を取得する(ステップ６５９)。尚、この場合、ＸＡ(ＳｙｎｃＸ)にはパターン値が格納されていないため、これを取り除き、残りのＸＡ(Ｕ)を連結する必要がある。
一方、カウンタＥＭの値が閾値ＴＭよりも大きい場合には、エラーの発生頻度が高く、正常な復号ができないと判定し、位置情報としてＮ/Ａ(not applicable)を出力する(ステップ６６０)。
尚、Ｙ位置符号を検出してＹ位置情報を取得する動作もこれと同様であるので、詳細な説明は省略する。
【０１２９】
以上、第１から第３のレイアウトの画像生成及び画像処理について述べてきた。
次に、これらの処理を行う画像生成装置１０及び画像処理装置２０の具体的なハードウェア構成について説明する。
まず、画像処理装置２０を実現するスキャナ５０について説明する。
図２６は、スキャナ５０の機構を示した図である。
図示するように、スキャナ５０は、画像が記録された記録媒体を載せるための第１プラテンガラス５１ａと、搬送される記録媒体から画像を読み取るための第２プラテンガラス５１ｂとを備える。
また、スキャナ５０は、第１プラテンガラス５１ａの全体にわたってスキャンし又は第２プラテンガラス５１ｂの下に静止した状態で画像を読み込むフルレートキャリッジ５２と、フルレートキャリッジ５２から得られた光を結像部へ供給するハーフレートキャリッジ５３とを備える。このうち、フルレートキャリッジ５２には、記録媒体に可視光を照射する照明ランプ５４と、記録媒体から得られた反射光(可視光)を受光する第１ミラー５５ａとが設けられている。また、赤外ＬＥＤアレイ(図示せず)によって赤外光を照射しその反射光をＣＣＤラインセンサ(図示せず)によって光電変換するＣＩＳ(Contact Image Sensor)５６も設けられている。一方、ハーフレートキャリッジ５３には、第１ミラー５５ａから得られた光を結像部へ提供する第２ミラー５５ｂ及び第３ミラー５５ｃが設けられている。
更に、スキャナ５０は、第３ミラー５５ｃから得られた光学像を光学的に縮小する結像用レンズ５７と、結像用レンズ５７によって結像された光学像を光電変換するＣＣＤ(Charge Coupled Device)イメージセンサ５８と、スキャナ５０の動作を制御する制御回路５９とを備えている。このうち、制御回路５９は、読み取った画像から検出した符号画像を処理する画像処理部５９ａと、そこでの処理結果から少なくとも識別情報を抽出するデータ処理部５９ｂとを含む。
【０１３０】
尚、図１１に示した画像読取部２１は、例えば、図２６のＣＩＳ５６にて実現される。また、図１１に示したノイズ除去部２２、ドット画像検出部２３、ドット配列生成部２４は、例えば、図２６の画像処理部５９ａにて実現される。更に、図１１に示したブロック検出部２５、同期符号検出部２６、識別情報取得部２７、位置情報取得部２８は、例えば、図２６のデータ処理部５９ｂにて実現される。
【０１３１】
次に、画像処理装置２０を実現するペンデバイス６０について説明する。
図２７は、ペンデバイス６０の機構を示した図である。
図示するように、ペンデバイス６０は、ペン全体の動作を制御する制御回路６１を備える。また、制御回路６１は、入力画像から検出した符号画像を処理する画像処理部６１ａと、そこでの処理結果から識別情報及び位置情報を抽出するデータ処理部６１ｂとを含む。
そして、制御回路６１には、ペンデバイス６０による筆記動作をペンチップ６９に加わる圧力によって検出する圧力センサ６２が接続されている。また、媒体上に赤外光を照射する赤外ＬＥＤ６３と、画像を入力する赤外ＣＭＯＳ６４も接続されている。更に、識別情報及び位置情報を記憶するための情報メモリ６５と、外部装置と通信するための通信回路６６と、ペンを駆動するためのバッテリ６７と、ペンの識別情報(ペンＩＤ)を記憶するペンＩＤメモリ６８も接続されている。
【０１３２】
尚、図１１に示した画像読取部２１は、例えば、図２７の赤外ＣＭＯＳ６４にて実現される。また、図１１に示したノイズ除去部２２、ドット画像検出部２３、ドット配列生成部２４は、例えば、図２７の画像処理部６１ａにて実現される。更に、図１１に示したブロック検出部２５、同期符号検出部２６、識別情報取得部２７、位置情報取得部２８は、例えば、図２７のデータ処理部６１ｂにて実現される。
【０１３３】
また、画像生成装置１０は、例えば、サーバコンピュータ、クライアントコンピュータ、プリンタ等の画像形成装置のコンピュータ部分で実現される。一方、画像処理装置２０も、スキャナ５０やペンデバイス６０だけでなく、例えば、サーバコンピュータ、クライアントコンピュータ等でも実現される。そこで、画像生成装置１０及び画像処理装置２０を一般的なコンピュータ９０で実現するものとし、コンピュータ９０のハードウェア構成について説明する。
図２８は、コンピュータ９０のハードウェア構成を示した図である。
図示するように、コンピュータ９０は、演算手段であるＣＰＵ(Central Processing Unit)９１と、記憶手段であるメインメモリ９２及び磁気ディスク装置(ＨＤＤ：Hard Disk Drive)９３とを備える。ここで、ＣＰＵ９１は、ＯＳ(Operating System)やアプリケーション等の各種ソフトウェアを実行し、上述した各機能を実現する。また、メインメモリ９２は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、磁気ディスク装置９３は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
更に、コンピュータ９０は、外部との通信を行うための通信Ｉ/Ｆ９４と、ビデオメモリやディスプレイ等からなる表示機構９５と、キーボードやマウス等の入力デバイス９６とを備える。
【０１３４】
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することも可能である。
【図面の簡単な説明】
【０１３５】
【図１】９Ｃｎ方式における単位符号パターンの例を示した図である。
【図２】９Ｃｎ方式における単位符号パターンの他の例を示した図である。
【図３】１２Ｃｎ方式における単位符号パターンの例を示した図である。
【図４−１】１２Ｃｎ方式における単位符号パターンの他の例を示した図である。
【図４−２】１２Ｃｎ方式における単位符号パターンの他の例を示した図である。
【図５】同期パターンの例を示した図である。
【図６】情報パターンと同期パターンの配分の具体例を示した図である。
【図７】符号ブロックのレイアウトの例を示した図である。
【図８】スキャナ用符号ブロックの第１のレイアウトを示した図である。
【図９】本実施の形態の画像生成装置の機能ブロック図である。
【図１０】第１のレイアウトを合成するブロック合成部の動作を示したフローチャートである。
【図１１】本実施の形態の画像処理装置の機能ブロック図である。
【図１２】ブロック区切りを用いた符号化方式の判定動作を示したフローチャートである。
【図１３】９Ｃ２符号を９Ｃ２方式で復号する際のブロック区切りを示した図である。
【図１４】第１のレイアウトで同期符号を検出する同期符号検出部の動作を示したフローチャートである。
【図１５】第１のレイアウトから識別情報を取得する識別情報取得部の動作を示したフローチャートである。
【図１６】スキャナ用符号ブロックの第２のレイアウトを示した図である。
【図１７】第２のレイアウトを合成するブロック合成部の動作を示したフローチャートである。
【図１８】第２のレイアウトで同期符号を検出する同期符号検出部の動作を示したフローチャートである。
【図１９】第２のレイアウトから識別情報を取得する識別情報取得部の動作を示したフローチャートである。
【図２０】スキャナ用符号ブロックの第３のレイアウトを示した図である。
【図２１】第３のレイアウトを合成するブロック合成部の動作を示したフローチャートである。
【図２２】第３のレイアウトで同期符号を検出するスキャナの同期符号検出部の動作を示したフローチャートである。
【図２３】第３のレイアウトから識別情報を取得するスキャナの識別情報取得部の動作を示したフローチャートである。
【図２４】第３のレイアウトで同期符号を検出するペンデバイスの同期符号検出部の動作を示したフローチャートである。
【図２５】第３のレイアウトから位置情報を取得するペンデバイスの位置情報取得部の動作を示したフローチャートである。
【図２６】画像処理装置を実現するスキャナの機構を示した図である。
【図２７】画像処理装置を実現するペンデバイスの機構を示した図である。
【図２８】画像生成装置や画像処理装置を実現するコンピュータのハードウェア構成図である。
【符号の説明】
【０１３６】
１０…画像生成装置、１１…識別符号生成部、１２…位置符号生成部、１４…ブロック合成部、１５…パターン画像記憶部、１６…符号画像生成部、２０…画像処理装置、２１…画像読取部、２２…ノイズ除去部、２３…ドット画像検出部、２４…ドット配列生成部、２５…ブロック検出部、２６…同期符号検出部、２７…識別情報取得部、２８…位置情報取得部
【図１】
2008113215.tif 000003
【図２】
2008113215.tif 000004
【図３】
2008113215.tif 000005
【図４−１】
2008113215.tif 000006
【図４−２】
2008113215.tif 000007
【図５】
2008113215.tif 000008
【図６】
2008113215.tif 000009
【図７】
2008113215.tif 000010
【図８】
2008113215.tif 000011
【図９】
2008113215.tif 000012
【図１０】
2008113215.tif 000013
【図１１】
2008113215.tif 000014
【図１２】
2008113215.tif 000015
【図１３】
2008113215.tif 000016
【図１４】
2008113215.tif 000017
【図１５】
2008113215.tif 000018
【図１６】
2008113215.tif 000019
【図１７】
2008113215.tif 000020
【図１８】
2008113215.tif 000021
【図１９】
2008113215.tif 000022
【図２０】
2008113215.tif 000023
【図２１】
2008113215.tif 000024
【図２２】
2008113215.tif 000025
【図２３】
2008113215.tif 000026
【図２４】
2008113215.tif 000027
【図２５】
2008113215.tif 000028
【図２６】
2008113215.tif 000029
【図２７】
2008113215.tif 000030
【図２８】
2008113215.tif 000031