【手続補正書】
【提出日】平成18年9月28日(2006.9.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
表面上のシンボルのパターンでデータをエンコードする方法であって、
エンコードされた前記データを表す２進数の順序付きシーケンスを複数のシーケンシャルウィンドウに分割することであって、前記シーケンシャルウィンドウのそれぞれは、デジットの前記順序付きシーケンスの部分シーケンスを含む、分割することと、
各シーケンシャルウィンドウに含まれる前記部分シーケンスを一連のデジットに変換することであって、
各シーケンシャルウィンドウに含まれる前記部分シーケンスを１０進数として表すことと、
前記１０進数に数学関数を適用することであって、所定の数を前記１０進数の値で累乗したものを用いることを含む、前記１０進数に数学関数を適用することと、
前記数学関数を適用された前記１０進数を２進表現に変換することとを含み、
前記２進表現が前記一連のデジットを示す、変換することと、
前記表面上の複数の表面ウィンドウ内でシンボルを配置することであって、各表面ウィンドウはそれぞれ、前記シーケンシャルウィンドウの１つに対応し、各表面ウィンドウ内の前記シンボルの位置は、前記変換された一連のデジットの１つに基づき、前記表面ウィンドウ内の前記シンボルの位置は、前記エンコードされたデータを示す、配置することと
を備えることを特徴とする方法。
【請求項２】
前記エンコードされたデータは、前記表面上の一意の位置を示し、その結果、各表面ウィンドウ内の前記シンボルの位置は、前記表面上の前記一意の位置を示すことを特徴とする請求項１に記載の方法。
【請求項３】
デジットの前記順序付きシーケンスの前記分割は、デジットの前記順序付きシーケンスを複数のオーバーラップしない等しいサイズのシーケンシャルウィンドウに分割することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記所定の数は２であることを特徴とする請求項１に記載の方法。
【請求項５】
前記１０進数の前記変換は、前記数学関数を適用された前記１０進数を所定の長さを有する２進表現に変換することを含み、前記表面上の前記表面ウィンドウ内で前記シンボルを配置する前記配置することは、前記２進表現の前記長さ内での選択された２進数タイプの位置を判定することと、前記選択された２進数タイプの前記判定された位置に基づいて前記表面ウィンドウ内で前記シンボルを配置することとを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記選択された２進数タイプは「１」であることを特徴とする請求項５に記載の方法。
【請求項７】
前記表面の幾何形状の関数としてデジットの前記順序付きシーケンスを配置することをさらに備え、デジットの前記順序付きシーケンスを分割する前記分割することは、前記表面の前記幾何形状に基づいてデジットの前記順序付きシーケンスを前記複数のシーケンシャルウィンドウに分割することを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記表面の前記幾何形状は長方形であり、デジットの前記順序付きシーケンスを配置する前記配置することは、長方形配列としてデジットの前記順序付きシーケンスを配置することを含むことを特徴とする請求項７に記載の方法。
【請求項９】
デジットの前記順序付きシーケンスは、所定の長さの各部分シーケンスのデジットの前記順序付きシーケンス内の位置が曖昧さなしに決定されるようになる特性を有することを特徴とする請求項１に記載の方法。
【請求項１０】
１つまたは複数のコンピュータ読み取り可能な媒体が請求項１に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とする請求項１に記載の方法。
【請求項１１】
表面上のシンボルのパターンでデータをエンコードするシステムであって、
エンコードされた前記データを表す２進数の順序付きシーケンスを複数のシーケンシャルウィンドウに分離するコンピュータ実行可能命令であって、前記シーケンシャルウィンドウのそれぞれは、デジットの前記順序付きシーケンスの部分シーケンスを含む、コンピュータ実行可能命令と、
各シーケンシャルウィンドウに含まれる前記部分シーケンスを一連のデジットに変換するコンピュータ実行可能命令であって、
各シーケンシャルウィンドウに含まれる前記部分シーケンスを１０進数として表すコンピュータ実行可能命令と、
前記１０進数に数学関数を適用するコンピュータ実行可能命令であって、所定の数を前記１０進数の値で累乗したものを用いるコンピュータ実行可能命令を含む、前記数学関数を適用する前記コンピュータ実行可能命令と、
前記数学関数を適用された前記１０進数を２進表現に変えるコンピュータ実行可能命令とを含み、
前記２進表現が、前記一連のデジットを構成する、各シーケンシャルウィンドウに含まれる前記部分シーケンスを変換する前記コンピュータ実行可能命令と
を実行するように構成されたプロセッサと、
前記表面上の複数の表面ウィンドウ内でシンボルを配置する手段であって、各表面ウィンドウはそれぞれ、前記シーケンシャルウィンドウの１つに対応し、各表面ウィンドウ内の前記シンボルの位置は、前記変換された一連のデジットの１つに基づき、前記表面ウィンドウ内の前記シンボルの位置は、前記エンコードされたデータを示す、配置する手段と
を備えることを特徴とするシステム。
【請求項１２】
前記エンコードされたデータは、前記表面上の一意の位置を示し、その結果、各表面ウィンドウ内の前記シンボルの位置は、前記表面上の前記一意の位置を示すことを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記所定の数は２であることを特徴とする請求項１１に記載のシステム。
【請求項１４】
前記２進表現は、所定の長さを有し、前記シンボルは、前記２進表現の前記長さ内での選択された２進数タイプの位置を判定し、前記選択された２進数タイプの前記判定された位置に基づいて前記表面ウィンドウ内で前記シンボルを置くことによって、各表面ウィンドウ内で配置されることを特徴とする請求項１１に記載のシステム。
【請求項１５】
前記選択された２進数タイプは「１」であることを特徴とする請求項１４に記載のシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【発明の名称】光学デバイスおよび準備された表面に関するコーディングされたパターン
【技術分野】
【０００１】
本発明の実施形態は、表面のエンコードされた情報を判定するために表面と相互作用する光学デバイスに関する。具体的に言うと、本発明の実施形態は、ウィンドウに分割されるデジットの順序付きシーケンスに基づいたシンボルであって、エンコードされた情報を示すシンボルを含むところのパターンを有する表面に関する。
【背景技術】
【０００２】
コンピュータユーザは、パーソナルコンピュータと対話する形としてのマウスまたはキーボードの使用に慣れている。マウスまたはキーボードを介する情報の入力は、多数の長所を提供するが、ほとんどのユーザは、手書き文書（たとえば紙またはホワイトボード上の）の作成によってある種の機能を実行し続ける。電子文書に対する手書き文書の長所の一部に、その可読性および可搬性が含まれる。他の長所に、手書き文書の保管が簡単であることが含まれる。しかし、手書き文書作成に関する問題の１つが、手書き文書を電子形式に変換する必要があることである。これは、最初のユーザまたは別のユーザが、文書に書かれた情報をパーソナルコンピュータに手作業で入力することを必要とする。いくつかの場合に、ユーザは、手書き文書をスキャンし、これによって新しい電子文書を作成する。これらの複数のステップが、オリジナル文書とその文書の電子形式の間の相互作用を、繰り返しベースで扱うことを困難にする。さらに、スキャンされたイメージは、しばしば、変更不能である。これによって、ユーザが、電子形式の情報を変更することが難しくなる。
【０００３】
同様の問題が、既存文書に対する注釈の作成にも存在する。手書き注釈を電子形式に変換する時に、頻繁に、ユーザが、注釈を手作業でパーソナルコンピュータに入力するか、注釈をスキャンすることが必要になる。スキャンされたイメージは、しばしば変更不能なので、注釈を既存文書のオリジナル情報から分離することは困難である。したがって、手書き情報を電子形式に変換する改善された方法が必要である。
【０００４】
表面にエンコードされたパターンを分析して、表面での光学デバイスの位置を判定する方法およびシステムが開発された。しかし、一部の既存パターンは、効率的なインク使用を有しない。すなわち、既存の方法およびシステムは、しばしば、表面にパターンを組み込むために大量のインクまたは他の手段を必要とする。さらに、一部の既存の方法およびシステムは、パターンを使ってエンコードされた表面上で、機能を実行する（たとえば、表面に書き込む）時に、効果的にユーザがそのようなパターンによって気をそらされないようにするのに十分に視覚的に滑らかなパターンを提供しない。また、既存の方法およびシステムは、可変情報密度を有するパターンを提供できない。したがって、既存の方法およびシステムは、通常、エンコードが望まれるデータによるインク密度のスケーリングができない。さらに、既存のパターンの一部は、製造、デコード、および／またはさまざまなペイロードデータの効果的なエンコードが簡単でない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、シンボルのパターンでデータを効率的にエンコードし、シンボルのパターンをデコードして、パターンに対応するデータを判定する解決策が、１つまたは複数の上記および他の短所に対処するのに望ましい。
【課題を解決するための手段】
【０００６】
本発明の実施形態は、とりわけ、紙またはコンピュータディスプレイなどの表面でシンボルのパターンをエンコードし、デコードするシステムおよび方法を提供することによって、従来技術の１つまたは複数の欠陥を克服する。シンボルのパターンは、位置データ、マルチメディア（たとえば、オーディオ、ビデオ、イメージなど）、セキュリティアプリケーション、バイオメトリックス（ｂｉｏｍｅｔｒｉｃｓ）、識別管理、他のバルクデータ、または他のデータへのリンクなどのエンコードされたデータを表すことができる。一実施形態で、本発明は、表面に関する位置を一意に識別する。本発明の１つまたは複数の実施形態によれば、ディジタルペンまたはスタイラスなどの光学デバイスが、表面にエンコードされた位置データに対応するシンボルを検出することによって、準備された表面での絶対位置を有利に追跡する。本発明の１つまたは複数の他の実施形態では、レーザプリンタまたはインクジェットプリンタなどの印刷プロセスによって組み込まれたパターンによって位置データを示すシンボルを使って表面がエンコードされる。光学デバイスのセンサは、シンボルを検出し、シンボルのパターンが表すデータをデコードすることができる。さらに、本明細書で説明する本発明の実施形態の特徴は、経済的に実行可能であり、商業的に実用的であり、現在使用可能な技法より簡単に実施される。
【０００７】
短く説明すると、本発明の諸態様を使用する方法は、表面のシンボルのパターンでデータをエンコードする。この方法には、エンコードされたデータを表すデジットの順序付きシーケンスを複数のシーケンシャルウィンドウに分割することが含まれる。シーケンシャルウィンドウのそれぞれに、デジットの順序付きシーケンスの部分シーケンスが含まれる。この方法には、各シーケンシャルウィンドウに含まれる部分シーケンスを一連のデジットに変換することも含まれる。この方法には、さらに、表面の複数の表面ウィンドウ内でシンボルを配置することが含まれる。各表面ウィンドウは、シーケンシャルウィンドウの１つに対応する。各表面ウィンドウ内のシンボルの位置は、変換された一連のデジットの１つに基づく。また、表面ウィンドウ内のシンボルの位置は、エンコードされたデータを表す。
【０００８】
本発明のもう１つの実施形態では、本発明の諸態様を実施する方法が、表面のシンボルのパターンをデコードして、そのパターンに対応するデータを判定する。パターンは、表面の複数のウィンドウに分割される。この方法には、表面のシンボルを検出して、そのパターンを判定することが含まれる。この方法には、判定されたパターンのウィンドウ境界を判定することも含まれる。ウィンドウ境界は、少なくとも１つのウィンドウを定義する。各定義されたウィンドウに、それに関連する少なくとも１つの検出されたシンボルが含まれる。この方法には、さらに、関連するウィンドウ内で検出されたシンボルの位置を判定することが含まれる。検出されたシンボルの関連するウィンドウ内での判定された位置は、そのパターンに対応するデータを示す。
【０００９】
本発明のもう１つの実施形態では、本発明の諸態様を実施する物品に、表面と表面上のパターンが含まれる。パターンは、表面上のシンボルを有する。各シンボルは、エンコードされたデータを表すデジットの順序付きシーケンスに基づく表面上の位置を有し、複数のウィンドウに分割される。各ウィンドウに、少なくとも１つのシンボルが含まれる。ウィンドウ内のシンボルの位置は、エンコードされたデータを示す。
【００１０】
本発明のもう１つの実施形態では、本発明の諸態様を使用するシステムが、表面上のシンボルのパターンでデータをエンコードするように適合される。このシステムに、エンコードされたデータを表すデジットの順序付きシーケンスを複数のシーケンシャルウィンドウに分離するコンピュータ実行可能命令を実行するように構成されたプロセッサが含まれる。シーケンシャルウィンドウのそれぞれに、デジットの順序付きシーケンスの部分シーケンスが含まれる。プロセッサは、各シーケンシャルウィンドウに含まれる部分シーケンスを一連のデジットに変換するコンピュータ実行可能命令を実行するようにも構成される。このシステムには、表面の複数の表面ウィンドウ内のシンボルを配置する手段も含まれる。各表面ウィンドウは、シーケンシャルウィンドウの１つに対応する。各表面ウィンドウ内のシンボルの位置は、変換された一連のデジットの１つに基づく。表面ウィンドウ内のシンボルの位置は、エンコードされたデータを示す。
【００１１】
本発明のもう１つの実施形態では、本発明の諸態様を使用するシステムが、パターンに対応するデータを判定するために表面上のシンボルのパターンをデコードするように適合される。パターンは、表面上の複数のウィンドウに分割される。このシステムに、パターンを判定するために表面上のシンボルを検出するセンサが含まれる。このシステムに、判定されたパターンのウィンドウ境界を判定するコンピュータ実行可能命令を実行するように構成されたプロセッサも含まれる。ウィンドウ境界によって、少なくとも１つのウィンドウが定義される。各定義されたウィンドウは、それに関連する少なくとも１つの検出されたシンボルを含む。プロセッサは、パターンに対応するデータを判定するために、関連するウィンドウ内の検出されたシンボルの位置を識別するコンピュータ実行可能命令を実行するようにも構成される。
【００１２】
表面上のシンボルのパターンをエンコードし、デコードする方法を実行するコンピュータ実行可能命令を有するコンピュータ読み取り可能な媒体が、本発明のさらなる態様を実施する。
【００１３】
その代わりに、本発明の実施形態に、さまざまな他の方法および装置を含めることができる。
【００１４】
他の特徴は、一部は明白であり、一部は下で指摘する。
【００１５】
対応する符号は、すべての図面を通じて対応する部分を示す。
【発明を実施するための最良の形態】
【００１６】
例示的光学デバイス
本発明の実施形態は、表面にエンコードされた情報を判定するために、表面と相互作用する光学デバイス（たとえば、光学イメージングセンサまたは光学読み取りデバイス）に関する。本発明の一実施形態で、光学デバイスは、マルチファンクションペンまたはマルチファンクションスタイラスとして実施することができる。本発明の態様に、ディスプレイフォーム（ｄｉｓｐｌａｙ  ｆｏｒｍ）内にシンボルのパターンを置くことも含まれる。シンボルのパターンは、位置データ、マルチメディア（たとえば、オーディオ、ビデオ、イメージなど）、セキュリティアプリケーション、バイオメトリックス、識別管理、他のバルクデータ、または他のデータへのリンクなどのエンコードされたデータを表すことができる。一実施形態で、ディスプレイフォームは、印刷された紙（または他の物理媒体）または、別のイメージもしくはイメージのセットに関するシンボルのエンコードされたパターンを投影するか含むディスプレイである。たとえば、シンボルのエンコードされたパターンを、紙の上の物理的イメージ、別の表示されたイメージの上または下にあるイメージ、あるいはディスプレイスクリーンと組み合わされるかその上にある（光学デバイスによって検出されるイメージをディスプレイスクリーン上で突き止められるように）物理的にエンコードされたパターン（たとえば、変更不能なパターン）として表すことができる。
【００１７】
本発明の一実施形態で、光学デバイスは、紙に書くインクペンとして実施される。本発明のもう１つの実施形態で、光学デバイスは、コンピュータディスプレイの表面に書き込むスタイラスとして実施される。ある時間期間にわたって表面上での光学デバイスの位置を繰り返して検出することによって、システムは、表面の書き込みに関連する光学デバイスの移動および位置を追跡することができる。したがって、この移動は、「ディジタルインク」を表すことができる。
【００１８】
図１Ａに、本発明の一実施形態による、カメラ１０４または他の検出器を有するペン１０２として実施された例示的光学デバイスを示す。ペン１０２に、インクだめを含むか含まないものとすることができるペン先１０６が含まれる。カメラ１０４は、表面１１０の位置１０８からのイメージを検出し、キャプチャする。ペン１０２に、さらに、破線の箱１１２によって表されるように、追加のセンサおよび／またはプロセッサを含めることができる。これらのセンサおよび／またはプロセッサ１１２に、検出されたイメージに関する情報を別のペン１０２および／またはパーソナルコンピュータ、携帯情報端末（ＰＤＡ）、電話機などの別のデバイスに（たとえばＢｌｕｅｔｏｏｔｈまたは他の無線プロトコルを介して）送信する能力が含まれる。ペン１０２が、センサおよび／またはプロセッサ１１２を含まない場合に、ペン１０２は、検出されたイメージに関する情報を、ワイヤを介して（すなわち、無線送信器なし）、別のペン１０２および／またはパーソナルコンピュータに送信することができる。
【００１９】
図１Ｂに、本発明の一実施形態によるカメラ１０４によって見られる例示的イメージの構成を示す。この図示のイメージでは、カメラ１０４の視野が、３２×３２ピクセルである（Ｎ＝３２）。したがって、図１Ｂは、長さ３２ピクセル、幅３２ピクセルの視野を示す。Ｎのサイズは、所望のイメージ分解能の度合に基づいて指定される。また、カメラ１０４の視野が、図１Ｂでは例示のために正方形として示されているが、視野に、他の形状も含めることができる。
【００２０】
カメラ１０４からペン１０２への入力は、イメージフレームのシーケンス｛ｌｉ｝、Ｉ＝１、２、…、Ａと定義され、ここで、イメージフレームｌｉは、サンプリング時刻ｔｉにペン１０２によって検出される。サンプリングレートは、表面にエンコードされたシンボルのパターンのサイズを含む複数の要因に基づいて、固定または可変とすることができる。検出されるイメージフレームのサイズは、シンボルのエンコードされたパターンのサイズおよび所望の検出精度の度合などの要因に応じて、大きくまたは小さくすることができる。また、カメライメージサイズは、検出されるシンボルのエンコードされたパターンのサイズに基づいて決定することができる。
【００２１】
カメラ１０４によって検出されるイメージは、処理システムによって直接に使用することができ、あるいは、事前フィルタリングプロセス（ｐｒｅ−ｆｉｌｔｅｒｉｎｇ  ｐｒｏｃｅｓｓ）を受けることができる。この事前フィルタリングプロセスは、ペン１０２内でまたはペン１０２の外で（たとえば、パーソナルコンピュータ内で）行うことができる。
【００２２】
図１Ｂのイメージサイズは、３２×３２ピクセルである。各エンコーディング単位サイズが３×３ピクセルである場合に、検出されるエンコードされた単位の個数は、約１００個である。エンコーディング単位サイズが５×５ピクセルの場合に、検出されるエンコードされた単位の個数は、約３６個である。
【００２３】
図１Ａには、位置１０８からのシンボルのパターンのイメージ１１６がそこに形成される像平面１１４も示されている。レンズ１１８が、表面１１０のシンボルのパターンから受け取られる光を集光する。レンズ１１８は、単一レンズまたは複数部分レンズ系（ｍｕｌｔｉ−ｐａｒｔ  ｌｅｎｓ  ｓｙｓｔｅｍ）とすることができるが、図を単純にするために、この図では単一レンズとして図示されている。画像キャプチャセンサ１２２が、イメージ１１６を検出し、キャプチャする。本発明の一実施形態で、画像キャプチャセンサ１２２は、イメージ１１６を検出するのに十分に大きい。代替案では、画像キャプチャセンサ１２２が、位置１２６でのペン先１０６のイメージ１２４をキャプチャするのに十分な大きさである。参照のために、位置１２６のイメージ１２４を仮想ペン先と呼ぶ。画像キャプチャセンサ１２２に関する仮想ペン先位置が、ペン先１０６、レンズ１１８、および画像キャプチャセンサ１２２の間の一定の関係のゆえに固定されていることに留意されたい。仮想ペン先の位置（Ｌｖｉｒｔｕａｌ−ｐｅｎｔｉｐによって表される）から実際のペン先の位置（Ｌｐｅｎｔｉｐによって表される）への変換に基づいて、検出されたイメージ１１６に関する実際のペン先の位置を判定することができる。
【００２４】
次の変換Ｆｓ→ｐによって、カメラによって検出されたイメージが、表面上の実際のイメージに変換される。
Ｌｓｕｒｆａｃｅ＝Ｆｓ→ｐ（Ｌｓｅｎｓｏｒ）
【００２５】
表面で書く時に、ペン先と表面が、同一平面にある。したがって、仮想ペン先から実際のペン先への変換も、Ｆｓ→ｐになる。
Ｌｐｅｎｔｉｐ＝Ｆｓ→ｐ（Ｌｖｉｒｔｕａｌ−ｐｅｎｔｉｐ）
【００２６】
変換Ｆｓ→ｐを、透視変換と称する。したがって、Ｆｓ→ｐは、
【００２７】
【数１】
2005310169.tif 000001
【００２８】
として推定される。この式では、θが、位置１０８で検出されたパターンの回転（ｒｏｔａｔｉｏｎ）であり、ｓｘおよびｓｙは、検出されたパターンの２つの回転方位（ｒｏｔａｔｉｏｎａｌ  ｏｒｉｅｎｔａｔｉｏｎ）のスケールである。さらに、Ｆ’ｓ→ｐは、検出されたイメージを表面上の対応する背景イメージと突き合わせることによって、Ｆｓ→ｐにリファイン（ｒｅｆｉｎｅ）される。すなわち、より正確な透視行列Ｆｓ→ｐ（８パラメータ）が、再帰法と称する最適化アルゴリズムの一種によって得られる。再帰法では、行列Ｆ’ｓ→ｐを初期値として扱う。Ｆｓ→ｐは、ＳとＰの間の変換をＦ’ｓ→ｐより正確に記述する。
【００２９】
較正によって仮想ペン先の位置を判定するために、ユーザは、表面上の既知の位置Ｌｐｅｎｔｉｐにペン先１０６を置く。次に、ユーザは、ペン１０２を傾け、カメラ１０４が、異なるペンポーズ（ｐｅｎ  ｐｏｓｅｓ）で一連のイメージを検出できるようにする。検出されたイメージごとに、変換Ｆｓ→ｐが受け取られる。この変換から、仮想ペン先１０６の位置（すなわちＬｖｉｒｔｕａｌ−ｐｅｎｔｉｐ）を得ることができる。
Ｌｖｉｒｔｕａｌ−ｐｅｎｔｉｐ＝Ｆｐ→ｓ（Ｌｐｅｎｔｉｐ）
また、
Ｆｐ→ｓ＝［Ｆｓ→ｐ］−１
である。
【００３０】
イメージから受け取られるＬｖｉｒｔｕａｌ−ｐｅｎｔｉｐの平均をとることによって、仮想ペン先１０６の正確な位置（すなわちＬｖｉｒｔｕａｌ−ｐｅｎｔｉｐ）を判定することができる。
【００３１】
仮想ペン先１０６の位置がわかったので、検出されたイメージから変換Ｆｓ→ｐを得ることができる。次いで、この情報が、実際のペン先１０６の位置（すなわちＬｐｅｎｔｉｐ）を判定するのに使用される。
Ｌｐｅｎｔｉｐ＝Ｆｓ→ｐ（Ｌｖｉｒｔｕａｌ−ｐｅｎｔｉｐ）
【００３２】
パターンのエンコード
表面のシンボルのパターンとしてエンコードされるデータは、２進数｛０，１｝のシーケンスなど、デジット（ｄｉｇｉｔｓ）のシーケンスとして表現することができる。さまざまな種類のビットストリームを、このデジットのシーケンスとして使用することができる。たとえば、デジットのランダムシーケンスまたは擬似ランダムシーケンスを使用することができる。このランダムシーケンスまたは擬似ランダムシーケンスは、幅ｍのウィンドウ（たとえばシーケンシャルウィンドウ）が、シーケンスＳｍに沿ってスライドされる場合に、２ｍ−１個の非０のｍ−タプルのそれぞれが１回見られるという特性を有する。言い換えると、デジットのシーケンスは、所定の長さの部分シーケンスのデジットのシーケンス内の位置が曖昧さなしに決定されるという特性を有する。本発明の一実施形態で、シンボルのパターンとしてエンコードされるデータは、表面の幾何形状（ｇｅｏｍｅｔｒｙ）を使用する形で表面に分布する。たとえば、デジットのシーケンスを、長方形表面でのエンコードのために長方形の行列または配列として配置することができる。図２に、本発明の実施形態によるデジットの例示的な長方形の配列／行列を示す。
【００３３】
図２に示された長方形の配列／行列は、行で、列で、斜めに、または任意の他の定型的な順序付けに従って配置することができる。たとえば、図２の配列／行列は、左から右に進んだ後に下に進む場合に、以下のビットストリームによって形成することができる。
０１００  ０１１１  ０１１１  ０１００  １０００  １１１０  ０１１１  ０１００  １１００
【００３４】
図２の配列／行列は、上から下に進んだ後に右に進む場合に、次のビットストリームによって形成することができる。
０１０１  １１００  ０１１１  ００１０  ０１１０  １００１  １００１  １１１０  ００１０
【００３５】
もう１つの例で、図２の配列／行列は、ビットストリームが斜めに順序付けられ、ラップされる場合に、次のビットストリームによって形成することができる。
０１１０  ００００  ０１０１  ０１０１  １０００  ００１１  １１１１  １０１０  １１１０
【００３６】
デジットのシーケンスを長方形の配列／行列に配置する代わりに、シーケンスを、密にパックされた円または他の平面充てん関数（ｐｌａｎｅ−ｆｉｌｌｉｎｇ  ｆｕｎｃｔｉｏｎ）として配置することもできる。デジットのシーケンスが、長方形の配列／行列として表面に分布する場合に、このシーケンスを、行および列の順序付きシーケンスとみなすことができる。本発明の一実施形態は、表面のシンボルのパターンとしてデジットの長方形の配列／行列をエンコードし、デコードする方法に関する。しかし、本発明の実施形態は、他の平面充てん関数として配置されたデジットに適用可能である。
【００３７】
本発明の一実施形態によれば、ｎをｋによって割り切れる（すなわちｎ  ｍｏｄ  ｋ＝０である）場合に、長さｎのデジットの行を、長さｋ（イメージキャプチャシステムのサイズおよび分解能に基づいて変更可能である）のｍ個のオーバーラップしないシーケンシャルウィンドウ（Ｗｓｅｑ）に分割することができる。したがって、特定の長方形の配列／行列（または他の平面充てん関数）のデジットの例示的な行：
１００１  １０００  １１０１  １１１１  １０１０  ００１０  ０００１  ０１１０  ０１０１
について、ｋ＝３かつｍ＝１２の場合に、オーバーラップしないシーケンシャルウィンドウは
１００｜１１０｜００１｜１０１｜１１１｜１１０｜１００｜０１０｜０００｜１０１｜１００｜１０１
になる。これを図３Ａに示す。
【００３８】
Ｘが、長さｋのｍ個のオーバーラップしないシーケンシャルウィンドウの集合であるものとする。すなわち、Ｘ＝（ｘ０，ｘ１，…，ｘｍ−１）である。したがって、上で示したデジットの例示的な行について、次の集合Ｘが形成される。
（１００，１１０，００１，１０１，１１１，１１０，１００，０１０，０００，１０１，１００，１０１）
これは、１０進数などの別の記数法で、
（４，６，１，５，７，６，４，２，０，５，４，５）
になる。
【００３９】
Ｙが、ｍ個の値（ｙ０，ｙ１，…，ｙｍ−１）の集合であり、ｙｉ＝２ｘｉ、０≦ｉ＜ｍであり、ｘｉが、集合Ｘのｉ番目の要素であるものとする。したがって、次の集合Ｙが、上で示した集合Ｘについて形成される。
（２４，２６，２１，２５，２７，２６，２４，２２，２０，２５，２４，２５）
これは、２進数などの別の記数法で、
（０００１００００，０１００００００，００００００１０，００１０００００，１０００００００，０１００００００，０００１００００，０００００１００，０００００００１，００１０００００，０００１００００，００１０００００）
になる。
【００４０】
本発明の一実施形態で、Ｙ集合（たとえば２進数の形）が、パターンを形成するために、表面の１つまたは複数の表面ウィンドウ（Ｗｓｕｒｆａｃｅ）内でシンボル（またはピクセル）の１×（２ｋｍ）配列／行列として視覚的に表される。上で示した例示的なＹ集合に対応するシンボルの例示的な配列／行列を、図３Ａに示す。具体的に言うと、ドットなどのシンボルが、表面のｍ個のオーバーラップしない表面ウィンドウのそれぞれの中に配置される。各シンボルは、表面のそれに関連する表面ウィンドウ内で、Ｙ集合の各要素内の選択されたデジットタイプの位置に基づいて位置決めされる。したがって、２進形式のＹ集合について、各シンボルは、それに関連する表面ウィンドウ内で、Ｙ集合の各要素内の２進数「１」の位置に基づいて位置決めされる。たとえば、デジット「１」は、上で示したＹ集合の要素０００１００００内で左から４番目の位置に位置する。したがって、シンボルは、関連する表面ウィンドウ内で、左から４番目の位置に位置するように配置される。したがって、シンボルのこのパターンに、オーバーラップしない等しいサイズの表面ウィンドウを確立するための１つまたは複数の「仮想」ウィンドウ境界が含まれることに留意されたい。表面の関連する表面ウィンドウ内の複数のシンボルの位置（たとえば、２つの隣接する表面ウィンドウ内の２つのシンボルの位置）は、表面上の一意の位置などのデータを示す。したがって、表面のシンボルのパターン全体が、表面に関する複数の位置をエンコードする。さらに、任意の色を使用して各シンボルを表すことができることを理解されたい。また、シンボルは、任意の種類の形状とすることができる。本発明の実施形態では、シンボルの色および形状が、イメージキャプチャシステムによって区別される、表面の背景とのコントラストをもたらす。
【００４１】
図３Ｂに、特定の長方形の配列／行列の行のオリジナルシーケンスを表すベクトルのシーケンスによって形成されたシンボルの例示的パターンを示す。図３Ｃに、さらに、図３Ｂより高い情報内容またはエントロピを有するベクトルのシーケンスによって形成されたシンボルのもう１つの例示的パターンを示す。図３Ｃの箱３０２内のパターンは、図３Ｂに示されたシンボルのパターンに対応するが、より低い解像度を有する。図３Ｃからわかるように、シンボルのパターンとしてエンコードされたデータが、高い情報内容またはエントロピを有する場合に、表面上のシンボルのパターンは、知覚可能な構造を有しておらず、人間の観察者には背景ノイズに見える。黒のシンボル（またはピクセル）が、白い表面背景に対して使用される場合に、背景の平均色強度は、１２．５％であり、これは、観察者には適度に読みやすい。本発明の一実施形態では、エンコーディング密度に比例するコストを犠牲に、表面のシンボルの連続する行の間にスペースを追加することによって、表面背景を明るくすることができる。イメージ処理がより堅牢でなくなることを犠牲にして、シンボルのサイズを減らして、表面背景に対するパターンコントラストを下げることもできる。
【００４２】
パターンのデコード
図３Ｂおよび３Ｃに示されたシンボルのパターンは、人間の観察者にはランダムに見えるが、デコードシステムは、それがランダムなプロセスによって生成されたのではないことを知っている。シンボルのパターンが、上のプロセスでｋ＝３およびｍ＝６を用いてエンコードされた場合に、表面のシンボルの各行を、サイズ２ｋのｍ個のオーバーラップしない表面ウィンドウに分割することができる。たとえば、Ｙ集合が、２進数の形であり、ｍ個のオーバーラップしない表面ウィンドウのそれぞれに、１つの着色されたシンボル（またはピクセル）が含まれる。というのは、２ｎの形の２進数が、「１」の値を有する１つのデジットを有し、残りのデジットが「０」の値を有するからである。役に立つ例に、表面で２ｋ位置より近くに見つかる２つの着色されたシンボルが含まれる。この場合に、共有される表面ウィンドウ境界が、図４Ａに示されているように、表面上のシンボルの間の比較的少数の可能な位置にある。しかし、単一の表面ウィンドウ境界は、２つのシンボルが互いに２ｋを超える位置だけ離れている場合であっても、２つの着色されたシンボルの間にある可能性がある。さらに、表面の各連続する潜在的な表面ウィンドウは、図４Ｂに示されているように、表面の他の潜在的な表面ウィンドウ境界の可能な範囲または位置を制限する傾向がある。図４Ｂでは、山括弧＜＞の中のスペースが、潜在的な表面ウィンドウ境界の可能な範囲を表し、記号｜が、確立された表面ウィンドウ境界を表す。
【００４３】
表面のシンボルの連続する行が検出される時に、表面の潜在的な表面ウィンドウ境界の可能な位置は、少数の選択肢に収束する。表面で十分な行数のシンボルが与えられれば、表面の表面ウィンドウ境界の位置の一意の選択肢が、図４Ｃに示されているように現れる。
【００４４】
図４Ｄに、表面で少なくとも１つの一意の表面ウィンドウ境界が判定される場合に、シンボルのパターンによって表されるデータ値をデコードできることを示す。具体的に言うと、関連する表面ウィンドウ内の少なくとも１つのシンボルの位置がわかった後に、２ｋの長さを有する数の列（たとえば２進数の列）を判定することができる。この数の列は、関連する表面ウィンドウ内のシンボルの位置に対応する位置に置かれた１つの選択されたデジットタイプ（たとえば、２進数「１」）を有し、残りのデジットは、別のデジットタイプ（たとえば、２進数「０」）を有する。この判定された数の列に基づいて、表面でシンボルのパターンをエンコードするのに使用されたデジットのオリジナルの順序付きシーケンスの部分シーケンスを、上で説明したエンコード処理を逆転することによって判定することができる。一例で、００００００１０という判定された数の列について、ｙ値（Ｙ集合内の）は、２１になる。したがって、Ｘ集合が１０進数の形である場合に、対応するｘ値は１になる。このｘ値を２進数の形などの別の記数法に変換することによって、００１などの部分シーケンスを判定することができる。表面上の他の確立された表面ウィンドウについてこの処理を繰り返すことによって、シンボルのパターンをデコードして、デジットのオリジナルの順序付きシーケンス（たとえば、長方形の配列／行列として配置された）を判定することができる。
【００４５】
ある種の情況で、シンボルのパターンを用いてエンコードされた表面のある区域について、表面ウィンドウ境界が曖昧になる場合がある。この場合に、表面でシンボルのパターンとしてエンコードされたデータの既知の意味に基づいて、表面ウィンドウ境界の曖昧さをなくすることができる。たとえば、シンボルのパターンが、表面の複数の絶対位置を表す場合に、シンボルのパターンの隣接してデコードされる値は、表面の隣接する位置を表す。デコードされた値が、隣接する位置を表さない場合に、潜在的な表面ウィンドウ境界の少なくとも１つが、おそらく誤っており、この潜在的な表面ウィンドウ境界の次の可能な位置を評価することができる。この処理は、潜在的な表面ウィンドウ境界の正しい位置が見つかるまで繰り返すことができる。その代わりに、光学デバイスの最近の軌跡のヒストリを、メモリエリアに保管することができる。表面でのシンボルのパターンが、直接のランダムなデコードを可能にするが、ペンまたはスタイラスなどの光学デバイスの多くの応用例が、表面でのデバイスの最近の位置のヒストリを与えられて光学デバイスのありそうな現在位置を予測するのに使用できる特有の動きを有する。
【００４６】
他の情況で、光学デバイスが、表面の長方形の軸に整列していない場合がある（たとえば、ユーザが、表面に注釈を書くためにデバイスを使用する時）。ユーザは、表面の座標軸に関してデバイスが回転するように光学デバイスを持つことができる。この状況は、マスク機能として表面のシンボルの連続する行の間の連続的なスペースを使用することによって補償することができる。表面の所与の位置のシンボルのパターンのサンプリングされたイメージを、スペースマスクにデータをエンコードしたシンボルがなくなるまで、サンプリングされたイメージの中心の回りに回転することができる。その後、サンプリングされたイメージは、デコード処理が表面のシンボルのパターンをデコードするのに正しい角度アライメントになる。
【００４７】
図４Ｅに、本発明の一実施形態による検出されたイメージ部分の回転を示す。イメージキャプチャシステムによって検出されたイメージ４０２を分析して、その回転方位を判定することができ、したがって、デコードシステムが、イメージ４０２によって実際に表されるデータを解釈することができる。図４Ｅからわかるように、イメージ４０２のいくつかのマスク機能（たとえば、破線の矢印によって表される）に、データをエンコードするシンボルが含まれる（たとえば、破線の矢印４０３がいくつかのシンボルにオーバーラップする）。したがって、イメージ４０２が、イメージ４０２を回転する角度θを判定するために分析され、その結果、マスク機能に、データをエンコードするシンボルが含まれなくなる。イメージ４０２を角度θだけ回転した後に、イメージ４０４が確立され、このイメージ４０４は、正しい角度方位にあり、表面の軸に整列されている。
【００４８】
本発明の一実施形態によれば、この方位調整を行った後に、イメージ４０４が、出力され、シンボルのパターンを作成するのに使用されたデジットのオリジナルシーケンスと相関される。相関（ｃｏｒｒｅｌａｔｉｏｎ）は、さまざまな形で実行することができる。たとえば、回復された部分シーケンスをデジットのオリジナルシーケンス内の他の部分シーケンスと比較する、再帰的手法によってこれを実行することができる。さらに、回復された部分シーケンスとデジットのオリジナルシーケンスの間で、たとえばこの２つのシーケンスの間のハミング距離を使用することによって、統計分析を実行することができる。さまざまな手法を使用して、デジットのオリジナルシーケンス内の回復された部分シーケンスの位置を判定できることを理解されたい。
【００４９】
位置判定
図５に、本発明の一実施形態による、光学デバイスの位置を判定する例示的な処理を示す。入力は、光学デバイスによって検出されたイメージであり、出力は、イメージ全体と比較した、検出されたイメージの位置座標とすることができる。また、出力に、検出されたイメージの回転角度を含めることができる。
【００５０】
５０２で、イメージを検出し、光学デバイスのセンサ（たとえばカメラ）から受け取る。受け取ったイメージを、５０４で任意選択として前処理して、検出されたイメージの回転角度θを検出する試みなどで、シンボル（またはピクセル）と表面の間のコントラストを調整することができる。
【００５１】
５０６で、受け取ったイメージを分析して、このイメージによって表されるデジットのシーケンスを判定する。具体的に言うと、表面の各「仮想」表面ウィンドウの既知の長さに基づいて、表面で多くとも既知の長さだけ離れて位置する２つのシンボルの間に位置する潜在的な表面ウィンドウ境界を判定することができる。この潜在的な表面ウィンドウ境界に基づいて、受け取ったイメージの第１方向に沿った他の潜在的な表面ウィンドウ境界を、増分式に識別することができる。さらに、受け取ったイメージの第２方向に沿った表面ウィンドウ境界を、増分式に確立することができる。表面ウィンドウ境界を確立した後に、数の列を、表面の確立された表面ウィンドウ内のシンボルの位置の関数として判定することができる。この数の列をデコードして、表面でシンボルのパターンをエンコードするのに使用されたデジットのオリジナルの順序付きシーケンスの部分シーケンスを入手することができる。
【００５２】
５０８で、入手した部分シーケンスを、デジットのオリジナルシーケンスと比較し、入手した部分シーケンスの、デジットのオリジナルシーケンス内の位置を判定する。この比較は、デジットのオリジナルシーケンスが、表面のシンボルのパターン（たとえば図３Ｂに示されている）を作成するためにどのように順序付けられ、エンコードされたかをシステムが知っている時に行うことができる。５０８で検出されたイメージの位置を判定した後に、５１０で、光学デバイスの位置を判定することができる。
【００５３】
データストリームのエンコード
図６に、２進数の順序付きシーケンスなどのデジットの順序付きシーケンスをエンコードする例示的な処理を示す。６０２で、デジットの順序付きシーケンスを、プロセッサによって定義するか受け取る。６０４で、デジットの順序付きシーケンスを、シンボルのパターンとしてエンコードする。具体的に言うと、デジットの順序付きシーケンスを、１つまたは複数のシーケンシャルウィンドウに分割し（たとえば表面の幾何学的形状に基づいて）、ここで、各シーケンシャルウィンドウには、デジットの順序付きシーケンスの部分シーケンスが含まれる。この部分シーケンスは、別の記数法に変換される（たとえば、８進、１０進、１６進など）。たとえば、部分シーケンスを、１０進数として表すことができる。変換された部分シーケンスに数学関数を適用する。本発明の一実施形態では、部分シーケンスが１０進数として表される場合に、数学関数に、１０進数の値だけ所定の数（たとえば２）を累乗することが含まれる。次に、数学関数を適用された１０進数を、所定の長さの２進数表現などの別の記数法に変換する。次に、２進数表現の長さの中での選択されたデジットタイプ（たとえば２進数の「１」）の位置に基づいて、表面の１つまたは複数の表面ウィンドウ内でシンボル（たとえば、ドットまたはピクセル）を配置する。表面の各表面ウィンドウが、シーケンシャルウィンドウの１つに対応する。したがって、表面の対応する表面ウィンドウ内のシンボルの位置は、データ（たとえば表面の一意の位置）を示す。
【００５４】
６０６で、プロセッサが、デジットの順序付きシーケンスから作成されたシンボルのパターンを含むイメージを出力する。次に、出力を、任意選択として６０８で紙などの媒体に印刷することができ、あるいは、任意選択として６１０でディスプレイに表示することができる。６０８で印刷される媒体に関連付けるために、出力イメージを、印刷され、別のイメージまたは文書内容の上に置かれ、またはその下に置かれるイメージとして、グラフィックの形でレンダリングし、プリンタ（たとえば、レーザプリンタまたはインクジェットプリンタ）に送ることができる。同様に、６１０で、出力イメージを、他の情報と組み合わせ、ディスプレイ用にレンダリングすることができる。他の内容との出力イメージのレンダリングされた形の関連付けの処理を、一般に、ウォーターマーキングと呼ぶことができる。たとえば、イメージを、ディスプレイ上でウォーターマークとして表示することができ、あるいは、ディスプレイ自体に組み込むことができる（たとえば、ディスプレイの形成処理中に、または人間には視覚的に透明であるが光学デバイスによって検出可能（たとえば、赤外線波長を介して）な層として後で付ける）。本発明の一実施形態で、プリンタおよびディスプレイ（または出力イメージをレンダリングする他の技法）は、表面の表面ウィンドウ内でシンボルを配置する手段を構成する。
【００５５】
応用例
本明細書に記載のシンボルのパターンは、複数の形で使用することができる。本発明の一実施形態では、シンボルのパターンが、既存のイメージと組み合わされるイメージとして、または紙に印刷されるイメージとして、印刷された紙に組み込まれる。シンボルのパターンを表すイメージは、空白の紙に印刷することができ、あるいは、既に他の情報を含む紙（たとえばスプレッドシート）に印刷することができる。イメージに組み込み情報を追加する処理に、文書またはページのウォーターマーキングが含まれる。これに、さらに、イメージにウォーターマークを埋め込むこと、埋め込まれたウォーターマークを紙に印刷すること、ウォーターマークを別のイメージと組み合わせ、印刷すること、およびこれらのさまざまな組み合わせを含めることができる。たとえば、シンボルのパターンを、人間の読者による解釈のためのテキストおよびグラフィックスを含む紙の文書の背景に印刷することができる。しかし、このシンボルのパターンは、文書の可読性を劣化させず、少量のプリンタインクを使用してプリンタによって作ることができる。
【００５６】
本発明のもう１つの実施形態で、シンボルのパターンを表すイメージが、デバイスまたはシステムのディスプレイスクリーンの上に置かれる透明シートに組み込まれ、あるいは、保護フィルムを含む、ディスプレイと組み合わせて使用される表面に組み込まれる。一例で、シンボルのパターンが、液晶ディスプレイ（ＬＣＤ）に埋め込まれる。ＬＣＤの各ピクセルピッチは、そのフレームを有し、ＬＣＤ全体のピクセルのフレームが、グリッドを形成するためにつながれる。本発明の実施形態は、そのグリッドへのシンボルのパターンの追加を可能にする。たとえば、シンボルのパターンを含むフィルムを、グリッドに付けることができる。このフィルムは、可視光でシンボルのパターンを提供するように調整することができる。その代わりに、フィルムが、赤外線（ＩＲ）光を選択的に吸収するか、ある光波長の下で蛍光を発することができる。さらに、ＬＣＤを制御して、光を発するか吸収し、ペンまたはカメラにシンボルのパターンを投影することができる。シンボルのパターンは、ＬＣＤのカバーガラスまたはカバー材料に適用することもできる。
【００５７】
もう１つの例で、その上にシンボルのパターンをエンコードされ、８００から９００ｎｍなどの固有のスペクトルを有するＩＲ反射フィルムが、ＬＣＤグリッドに置かれる。ＩＲ発光ダイオード（ＩＲ  ＬＥＤ）およびカメラ（ＩＲフィルタを有することができる）を有する光学デバイスが、ＬＣＤ表面を移動する時にＩＲイメージを検出する。この例では、ＬＣＤグリッド上でエンコードされたシンボルのパターンが、８００から９００ｎｍなど、特定のＩＲ光を反射する。したがって、ＩＲイメージ内のシンボルのパターンは、フィルムの他の区域からは見分けられない。ＩＲイメージを処理し、デコードして、光学デバイスの位置を判定することができる。ＩＲフィルムは、表示されるイメージの遮られない透過を可能にする。
【００５８】
シンボルのパターンのサイズは、レンズ設計パラメータおよび分解能要件に従って選択することができる。たとえば、カメラの０．２１３ｍｍ×０．２１３ｍｍピクセルピッチおよび５ｍｍ×５ｍｍレンズ視野を達成するために、パターンサイズに、２×２ピクセルをセットすることができる。
【００５９】
シンボルのパターンを、ラップトップ機のディスプレイ、タブレット／スタイラスベース入力のコンピュータ、携帯情報端末、電話機、またはすべての他のデバイスに組み込むこともできる。
【００６０】
シンボルのパターンのもう１つの応用例に、文書識別子を文書に関連付けることが含まれる。一般に、ユーザは、文書の題名または参照番号を文書に印刷することができる。本発明の一実施形態では、文書にエンコードされたシンボルのパターンが、文書の参照番号または他の情報（一般に文書識別子と称する）を表すことができる。ユーザは、文書上のシンボルのパターンを含むイメージを検出し、検出されたイメージをデコードして、シンボルのパターンによって表される文書識別子を入手し、文書に書かれた注釈を、入手した文書識別子に関連付けることができる。文書識別子は、コンピュータネットワークを介してアクセスされるものとすることができる、離れた位置にある文書へのリンクまたは参照とすることもできる。
【００６１】
例示的オペレーティング環境
図７に、コンピュータ１３０の形の汎用コンピューティングデバイスの一例を示す。本発明の一実施形態で、コンピュータ１３０などのコンピュータは、ペン１０２または他の図に示され本明細書で説明したものなどの光学デバイスでの使用に適するものとすることができる。コンピュータ１３０は、１つまたは複数のプロセッサまたは処理ユニット１３２およびシステムメモリ１３４を有する。図示の実施形態では、システムバス１３６が、システムメモリ１３４を含むさまざまなシステムコンポーネントをプロセッサ１３２に結合する。バス１３６は、メモリバス、メモリコントローラ、周辺バス、ＡＧＰ（ａｃｃｅｌｅｒａｔｅｄ  ｇｒａｐｈｉｃｓ  ｐｏｒｔ）、およびさまざまなバスアーキテクチャのいずれかを使用するプロセッサバスまたはローカルバスを含む、任意の複数のタイプのバス構造のうちの１つまたは複数を表す。制限ではなく例として、そのようなアーキテクチャに、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（マイクロチャネルアーキテクチャ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとも称するＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれる。
【００６２】
コンピュータ１３０は、通常は、少なくともいくつかの形のコンピュータ読み取り可能な媒体を有する。揮発性媒体と不揮発性媒体、取外し可能媒体と固定媒体の両方を含むコンピュータ読み取り可能な媒体は、コンピュータ１３０によってアクセスできるすべての使用可能な媒体とすることができる。制限ではなく例として、コンピュータ読み取り可能な媒体に、コンピュータ記憶媒体と通信媒体が含まれる。コンピュータ記憶媒体に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージに関するすべての方法またはテクノロジで実施された、揮発性および不揮発性の、取外し可能および固定の媒体が含まれる。たとえば、コンピュータ記憶媒体に、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリテクノロジ、ＣＤ−ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）、または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイス、あるいは所望の情報を保管するのに使用でき、コンピュータ１３０によってアクセスできるすべての他の媒体が含まれる。通信媒体は、通常は、搬送波または他のトランスポートメカニズムなどの変調されたデータ信号内でコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを具現化し、すべての情報伝達媒体が含まれる。当業者は、変調されたデータ信号に精通しているが、変調されたデータ信号は、信号内で情報をエンコードする形でその特性の１つまたは複数を設定または変更される。有線ネットワークまたは直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が、通信媒体の例である。上記のいずれかの組合せも、コンピュータ読み取り可能な媒体の範囲に含まれる。
【００６３】
システムメモリ１３４に、取外し可能および／または固定の揮発性および／または不揮発性のメモリの形のコンピュータ記憶媒体が含まれる。図示の例では、システムメモリ１３４に、読取専用メモリ（ＲＯＭ）１３８およびランダムアクセスメモリ（ＲＡＭ）１４０が含まれる。スタートアップ中などにコンピュータ１３０内の要素の間での情報の転送を助ける基本ルーチンを含む基本入出力システム１４２（ＢＩＯＳ）が、通常はＲＯＭ１３８に保管される。ＲＡＭ１４０に、通常は、処理ユニット１３２によって即座にアクセス可能および／または処理ユニット１３２によって現在操作されつつあるデータおよび／またはプログラムモジュールが含まれる。制限ではなく例として、図７に、オペレーティングシステム１４４、アプリケーションプログラム１４６、他のプログラムモジュール１４８、およびプログラムデータ１５０を示す。
【００６４】
コンピュータ１３０に、他の取外し可能／固定の揮発性／不揮発性のコンピュータ記憶媒体も含めることができる。たとえば、図７に、固定の不揮発性磁気媒体から読み取り、これに書き込むハードディスクドライブ１５４を示す。図７に、取外し可能不揮発性磁気ディスク１５８から読み取り、これに書き込む磁気ディスクドライブ１５６と、ＣＤ−ＲＯＭまたは他の光学メディアなどの取外し可能不揮発性光学ディスク１６２から読み取るかこれに書き込む光学ディスクドライブ１６０も示されている。例示的オペレーティング環境で使用できる他の取外し可能／固定、揮発性／不揮発性コンピュータ記憶媒体に、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれるが、これに制限はされない。ハードディスクドライブ１５４、磁気ディスクドライブ１５６、および光学ディスクドライブ１６０は、通常は、インターフェース１６６などの不揮発性メモリインターフェースによってシステムバス１３６に接続される。
【００６５】
上で述べ、図７に示したドライブまたは他のマスストレージデバイスおよびそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータのストレージをコンピュータ１３０に提供する。図７では、たとえば、ハードディスクドライブ１５４が、オペレーティングシステム１７０、アプリケーションプログラム１７２、他のプログラムモジュール１７４、およびプログラムデータ１７６を保管するものとして図示されている。これらのコンポーネントを、オペレーティングシステム１４４、アプリケーションプログラム１４６、他のプログラムモジュール１４８、およびプログラムデータ１５０と同一のまたは異なるもののいずれかとすることができることに留意されたい。オペレーティングシステム１７０、アプリケーションプログラム１７２、他のプログラムモジュール１７４、およびプログラムデータ１７６は、最低限でも異なるコピーであることを示すために異なる符号を与えられている。
【００６６】
ユーザは、キーボード１８０およびポインティングデバイス１８２（たとえば、マウス、トラックボール、ペン、またはタッチパッド）などの入力デバイスまたはユーザインターフェース選択デバイスを介して、コンピュータ１３０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）に、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどを含めることができる。上記および他の入力デバイスは、システムバス１３６に接続されたユーザ入力インターフェース１８４を介して処理ユニット１３２に接続されるが、パラレルポート、ゲームポート、またはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）などの他のインターフェースおよびバス構造によって接続することができる。モニタ１８８または他の種類のディスプレイデバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１３６に接続される。モニタ１８８の他に、コンピュータに、しばしば、プリンタおよびスピーカなど、出力周辺インターフェース（図示せず）を介して接続できる他の周辺出力デバイス（図示せず）が含まれる。
【００６７】
コンピュータ１３０は、リモートコンピュータ１９４などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。リモートコンピュータ１９４は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることができ、通常は、上でコンピュータ１３０に関して説明した要素の多くまたはすべてが含まれる。図７に示された論理接続に、ローカルエリアネットワーク（ＬＡＮ）１９６および広域ネットワーク（ＷＡＮ）１９８が含まれるが、他のネットワークも含めることができる。ＬＡＮ１３６および／またはＷＡＮ１３８は、有線ネットワーク、無線ネットワーク、その組合せなどとすることができる。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびグローバルコンピュータネットワーク（たとえば、インターネット）でありふれたものである。
【００６８】
ローカルエリアネットワーキング環境で使用される時に、コンピュータ１３０は、ネットワークインターフェースまたはネットワークアダプタ１８６を介してＬＡＮ１９６に接続される。広域ネットワーキング環境で使用される時に、コンピュータ１３０に、通常は、インターネットなどのＷＡＮ  １９８を介する通信を確立する、モデム１７８または他の手段が含まれる。モデム１７８は、内蔵または外付けとすることができるが、ユーザ入力インターフェース１８４または他の適当な手段を介してシステムバス１３６に接続される。ネットワーク化された環境では、コンピュータ１３０に関して図示されたプログラムモジュールまたはその一部を、リモートメモリストレージデバイス（図示せず）に保管することができる。制限ではなく例として、図７に、メモリデバイスに常駐するものとしてリモートアプリケーションプログラム１９２を示す。図示のネットワーク接続が例示的であり、コンピュータの間の通信リンクを確立する他の手段を使用できることを理解されたい。
【００６９】
一般に、コンピュータ１３０のデータプロセッサは、異なる時にコンピュータのさまざまなコンピュータ読み取り可能な記憶媒体に保管される命令によってプログラムされる。プログラムおよびオペレーティングシステムは、通常は、たとえばフロッピディスクまたはＣＤ−ＲＯＭで配布される。それから、プログラムおよびオペレーティングシステムが、コンピュータの副メモリにインストールまたはロードされる。実行時に、プログラムおよびオペレーティングシステムは、少なくとも部分的にコンピュータの主電子メモリにロードされる。本明細書に記載の発明の実施形態に、マイクロプロセッサまたは他のデータプロセッサと共に、下で説明するステップを実施する命令またはプログラムを含む時の、上記および他のさまざまなタイプのコンピュータ読み取り可能な記憶媒体が含まれる。本発明の一実施形態に、本明細書で説明する方法および技法に従ってプログラムされる時のコンピュータ自体も含まれる。
【００７０】
例示のために、オペレーティングシステムなどのプログラムおよび他の実行可能プログラムコンポーネントを、本明細書では別個のブロックとして示す。しかし、そのようなプログラムおよびコンポーネントが、さまざまな時にコンピュータの異なるストレージコンポーネントに常駐し、コンピュータのデータプロセッサによって実行されることを理解されたい。
【００７１】
コンピュータ１３０を含む例示的コンピューティングシステム環境に関して説明したが、本発明の一実施形態は、多数の他の汎用のまたは特殊目的のコンピューティングシステム環境またはコンピューティングシステム構成と共に動作する。コンピューティングシステム環境は、本発明の実施形態の使用の範囲または機能性に関する制限を提案することを意図されたものではない。さらに、コンピューティングシステム環境は、例示的オペレーティング環境に示されたコンポーネントのいずれかまたはその組合せに関する依存性または要件を有するものと解釈してはならない。本発明の実施形態と共に使用するのに適する可能性がある既知のコンピューティングシステム、コンピューティング環境、および／またはコンピューティング構成の例に、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイス、ラップトップデバイス、ペン、マウス、キーボード、電話機、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルな家庭用電化製品、携帯電話機、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれるが、これに制限はされない。
【００７２】
本発明の実施形態を、プログラムモジュールなど、１つまたは複数のコンピュータまたは他のデバイスによって実行される、コンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造が含まれるが、これに制限はされない。本発明の実施形態は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実践することができる。分散コンピューティング環境では、プログラムモジュールを、メモリストレージデバイスを含むローカルおよびリモートの両方のコンピュータ記憶媒体に配置することができる。
【００７３】
動作時に、コンピュータ１３０は、本明細書に記載のものなどのコンピュータ実行可能命令を実行して、表面のシンボルのパターンでデータをエンコードする。コンピュータ実行可能命令は、エンコードされたデータを表すデジットの順序付きシーケンスを複数のシーケンシャルウィンドウに分割するように適合される。シーケンシャルウィンドウのそれぞれに、デジットの順序付きシーケンスの部分シーケンスが含まれる。コンピュータ実行可能命令は、各シーケンシャルウィンドウに含まれる部分シーケンスを一連のデジットに変換するようにも適合される。コンピュータ実行可能命令は、さらに、表面の複数の表面ウィンドウ内でシンボルを配置するように適合される。各表面ウィンドウは、シーケンシャルウィンドウの１つに対応する。各表面ウィンドウ内のシンボルの位置は、変換された一連のデジットの１つに基づく。表面ウィンドウ内のシンボルの位置は、エンコードされたデータを表す。
【００７４】
コンピュータ１３０は、本明細書に記載のものなどのコンピュータ実行可能命令を実行し、表面のシンボルのパターンをデコードして、パターンに対応するデータを判定する。パターンは、表面の複数のウィンドウに分割される。コンピュータ実行可能命令は、そのパターンを判定するために表面のシンボルを検出するように適合される。コンピュータ実行可能命令は、判定されたパターンのウィンドウ境界を判定するようにも適合される。ウィンドウ境界は、少なくとも１つのウィンドウを定義する。各定義されたウィンドウに、それに関連する少なくとも１つの検出されたシンボルが含まれる。コンピュータ実行可能命令は、さらに、関連するウィンドウ内での検出されたシンボルの位置を判定するように適合される。検出されたシンボルの、関連するウィンドウ内の判定された位置は、そのパターンに対応するデータを示す。
【００７５】
図示され、本明細書で説明された方法の実行の順序は、特に指定されない限り本質にかかわらない。すなわち、本発明人は、この方法の要素を、特に指定されない限り任意の順序で実行でき、この方法に、本明細書で開示したものより多数または少数の要素を含めることができることが意図されている。
【００７６】
本発明またはその実施形態を導入する時に、冠詞「ある（１つの）」（“ａ”、“ａｎ”）、「該」および「前記」（“ｔｈｅ”、“ｓａｉｄ”）は、１つまたは複数の要素があることを意味することが意図されている。語「備える」、「含む」（“ｃｏｍｐｒｉｓｉｎｇ”、“ｉｎｃｌｕｄｉｎｇ”）、および「有する」（“ｈａｖｉｎｇ”）は、包括的であり、リストされた要素以外の追加要素が存在し得ることを意味することが意図されている。
【００７７】
上記に鑑みて、本発明の複数の目的が達成され、他の長所が達成されることがわかる。
【００７８】
本発明の実施形態の範囲から逸脱せずに、上の構成および方法でさまざまな変更を行うことができるので、上の説明に含まれ、添付図面に図示されたもののすべてが例として解釈されること、および制限的な意味でないことが意図されている。
【図面の簡単な説明】
【００７９】
【図１Ａ】本発明の一実施形態による例示的光学デバイスを示すブロック図である。
【図１Ｂ】本発明の一実施形態による光学デバイスによって検出される例示的イメージの構成を示すブロック図である。
【図２】本発明の一実施形態による、長方形の配列／行列として配置された数の例示的シーケンスを示すブロック図である。
【図３Ａ】本発明の一実施形態による、数のシーケンスを表面上のシンボルのパターンにエンコードする例示的処理のステップを示す図である。
【図３Ｂ】本発明の一実施形態による、数のシーケンスを表面上のシンボルのパターンにエンコードする例示的処理のステップを示す図である。
【図３Ｃ】本発明の一実施形態による、数のシーケンスを表面上のシンボルのパターンにエンコードする例示的処理のステップを示す図である。
【図４Ａ】本発明の一実施形態による、表面上のシンボルのパターンをデコードする例示的処理のステップを示す図である。
【図４Ｂ】本発明の一実施形態による、表面上のシンボルのパターンをデコードする例示的処理のステップを示す図である。
【図４Ｃ】本発明の一実施形態による、表面上のシンボルのパターンをデコードする例示的処理のステップを示す図である。
【図４Ｄ】本発明の一実施形態による、表面上のシンボルのパターンをデコードする例示的処理のステップを示す図である。
【図４Ｅ】本発明の一実施形態による、表面上のシンボルのパターンをデコードする例示的処理のステップを示す図である。
【図５】本発明の一実施形態による、検出されたイメージの位置を判定する処理フローを示す例示的な流れ図である。
【図６】本発明の一実施形態による、数の順序付きシーケンスをエンコードする処理フローを示す例示的な流れ図である。
【図７】本発明の実施形態を実施できる適切なコンピューティングシステム環境の例示的実施形態を示すブロック図である。
【符号の説明】
【００８０】
１３２  処理ユニット
１３４  システムメモリ
１３６  システムバス
１３８  ＲＯＭ
１４０  ＲＡＭ
１４２  ＢＩＯＳ
１４４  オペレーティングシステム
１４６  アプリケーションプログラム
１４８  他のプログラムモジュール
１５０  プログラムデータ
１６６  不揮発性メモリインターフェース
１８４  ユーザ入力インターフェース
１８６  ネットワークインターフェース
１７０  オペレーティングシステム
１７２  アプリケーションプログラム
１７４  他のプログラムモジュール
１７６  プログラムデータ
１９０  ビデオインターフェース
１９２  リモートアプリケーションプログラム
１９６  ローカルエリアネットワーク
１９８  広域ネットワーク