説明

ローカルメタデータ埋め込みソリューション

【課題】ローカルメタデータを埋め込み、復号化するソリューションを効率的に解決する。
【解決手段】ローカルメタデータは埋め込み対話コード文書に埋め込まれ、埋め込み対話コード文書から抽出される。複数のローカルメタデータの値は、ローカルメタデータの競合解決規則のセットに従い、複数の部分共有チャネルを経由して、複数のローカルメタデータフィールドのそれぞれに割り当てられる。ローカルメタデータは、部分共有チャネルを復号化し、ローカルメタデータ競合解決規則のセットに従って復号化されたローカルメタデータ値が競合する可能性を解決することによって復号化される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、デジタルペンを使用して媒体と対話(interacting)する方法に関する。より詳細には、本発明の実施形態は、1つまたは複数のサーフェス(surfaces)と対話するときに、デジタルペンの位置を決定する方法に関する。
【背景技術】
【0002】
コンピュータユーザは、パーソナルコンピュータと対話する手段として、マウスやキーボードを使用することに慣れている。パーソナルコンピュータは書面の文書に優る多くの利点を提供しているが、多くのユーザは引き続き印刷された書類を使用して特定の機能を実行している。こうした機能のいくつかには、書面の文書の読み取りや注釈の記入がある。注釈を記入する場合に、印刷された文書はユーザがその文書に注釈を記入することによってより大きな意味を持つことが想定される。しかし、印刷された文書に注釈を記入することの1つの問題点は、後で文書の電子的なフォームに注釈を記入し直さなければならないことである。このためには、注釈を記入したユーザまたは別のユーザが注釈を読み直してパーソナルコンピュータに入力する必要がある。場合によっては、ユーザが注釈と元のテキストをスキャナーで読み込むことによって新しい文書を作成する。こうした複数のステップにより、印刷された文書と電子形式の文書との対話は反復処理が難しくなる。さらに、スキャナーで読み込まれたイメージは変更できないことが多い。元のテキストから注釈を分離する方法はなさそうである。このことによって、注釈の使い方が困難になる。したがって、注釈を記入する方法の改善が求められている。
【0003】
【非特許文献1】Douglas W. Clark and Lih-Jyh Weng, "Maximal and Near-Maximal Shift Register Sequences: Efficient Event Counters and Easy Discrete Logarithms," IEEE Transactions on Computers 43.5 (May 1994, pp 560-568)
【発明の開示】
【発明が解決しようとする課題】
【0004】
ユーザは、空白の用紙と内容が記載された用紙のいずれへの書き込みにも慣れている。こうしたそれぞれのサーフェスに書き込まれた注釈を電子的に表現するためには、このような様々な環境でペンの位置を決定する必要がある。
【0005】
カメラを使用してペンの位置を決定するデジタルペンは、通常は総合的な情報のブロックをキャプチャして位置を符号化した媒体に対するペンの総体的な位置、または位置を符号化した媒体に埋め込まれたその他の情報を取得できる。ただし、カメラで取得したイメージには、ペン先のイメージが含まれていても含まれていなくてもよい。
【0006】
したがって、位置を符号化した媒体の特定の領域に関連するローカルメタデータが導入されると、問題への対処はさらに困難になる。図11に、ローカルメタデータ領域と拡張された領域を示す。図11に示すように、一部の事例では、ローカルメタデータを領域に割り当てるときに、領域が拡張され、ローカルメタデータはここに埋め込まれるので、元の領域に書き込み、デジタルペンを任意のポーズ(pose)で保持する場合に(ペンの回転と角度とは独立して)、このローカルメタデータを取得できる。一般的な余白のサイズは7mmである。
【0007】
図12に、同じ拡張領域をもつ(conterminous)いくつかのフィールドを伴うフォームを示す。図12は、従来のローカルメタデータ埋め込み方法に伴う競合の可能性の例を示している。重複する領域は、同じ領域に埋め込まれる2つのローカルメタデータの値によって発生する競合を表している。
【0008】
同じ拡張領域をもつローカルメタデータ領域に伴う競合を解決しようとするいくつかのソリューション(図13に示す)は、同じ拡張領域をもつフィールドの回避に基づいている。これは、ローカルメタデータが埋め込まれたすべてのフィールドを切り離すことを意味する。したがって、フォームの作成に利用できる設計のレイアウトオプションは制限され、多くのスペースが無駄になる。この種のソリューションは効率的ではない。
【0009】
図13には、ローカルメタデータの競合を回避するために切り離されたフィールドが示されている。
【課題を解決するための手段】
【0010】
本発明の態様により、前述の問題に対する少なくとも1つのソリューションが提供され、それによってサーフェス上の1つまたは複数の位置を特定できるようになる。他の態様により、メタデータの格納と復号化が可能になる。したがって、文書またはフォームのスペースに関する制限が緩和されるので、より多くの情報を格納できる。
【0011】
本発明の実施形態により、ローカルメタデータは埋め込み対話コード(embedded interaction code)文書に埋め込まれ、埋め込み対話コード文書から抽出される。複数のローカルメタデータの値は、ローカルメタデータの競合解決(conflict−resolution)規則のセットに従い、複数の部分共有チャネルのそれぞれを経由して、複数のローカルメタデータフィールドのそれぞれに割り当てられる。ローカルメタデータは、部分共有チャネルを復号化し、ローカルメタデータ競合解決規則のセットに従って、復号化されたローカルメタデータの値が競合する可能性を解決することによって復号化される。左の領域のローカルメタデータの値は、競合する可能性のある右の領域のローカルメタデータの値より小さく、その値は連続しなくてもよい。上の領域のローカルメタデータの値は、競合する可能性のある下の領域のローカルメタデータの値より小さく、その値は連続してもよい。
【0012】
以上に示す本発明の解決手段と後述の好ましい実施形態に関する詳細な説明は、添付の図面を参照しながら読むことによってより深く理解される。こうした図面は、本発明の請求項に関連して、限定としてではなく例として示されている。
【発明を実施するための最良の形態】
【0013】
本発明の態様は、キャプチャされたイメージの、より大きなイメージに関連する位置を決定する方法に関する。本発明の態様は、検索する必要のあるイメージセットの数を最小化する方法に関する。こうした検索サイズの縮小により、ペンのパスを決定する速度を向上する。本明細書で説明する位置決定技術は、多機能のペンと組み合わせて使用してもよい。
【0014】
本発明のさらなる態様は、メタデータ情報を格納し、復号化する方法に関する。
【0015】
以下の説明は、読者の便宜を図り、小見出し(subheadings)によって分割されている。このような小見出しには、用語、汎用コンピュータ、イメージキャプチャペン、アクティブコード、パッシブコード、パスの決定、コードのグループ化、パスの決定、およびメタデータソリューションの各項目が含まれる。
【0016】
「および」は、特に指定のない限り、直接的または間接的な「および」であり、本明細書ではこの点に関して限定する意図はない。
【0017】
用語
ペン − 書き込みを行う任意の道具。インクを保持する機能を備えていても備えていなくてもよい。いくつかの例において、インク機能のないスタイラス(stylus)を本発明の実施形態によるペンとして利用できる。
カメラ − 紙、コンピュータのディスプレイ、または他の任意の媒体からイメージをキャプチャできるイメージキャプチャシステム。
【0018】
汎用コンピュータ
図1は、本発明を実装できる適切なコンピューティングシステム環境の例100を示している。コンピューティングシステム環境100は適切なコンピューティング環境の1つの例にすぎず、本発明の使い方または機能の範囲に関するいかなる制限を示すものでもない。また、コンピューティング環境100は、例示的なオペレーティング環境100に示すコンポーネントの1つまたは組合せに関して、依存性も要件もないものとする。
【0019】
本発明は、他の様々な汎用または専用のコンピューティングシステム環境または構成にも適用できる。本発明の使用に適した周知のコンピューティングシステム、環境、および/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、埋め込みのシステム、前述の任意のシステムまたはデバイスを含む分散コンピューティング環境などが含まれるが、これらに限定はされない。
【0020】
本発明は、プログラムモジュールのようにコンピュータで実行可能な命令をコンピュータで実行する一般的なコンテクストで説明できる。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などがあり、特定のタスクを実行するものや、特定の抽象データ型を実装するものもある。本発明は、通信ネットワークを介してリンクするリモート処理装置でタスクを実行する分散コンピューティング環境でも実施できる。分散コンピューティング環境では、メモリ記憶装置を含むローカルとリモートの両方のコンピュータ記憶媒体にプログラムモジュールを格納できる。
【0021】
図1を参照すると、本発明を実施する例示的なシステムに、コンピュータ110の形態で汎用コンピューティングデバイスが配置されている。コンピュータ110のコンポーネントには、処理装置120、システムメモリ130、および様々なシステムコンポーネント(システムメモリや処理装置120など)を接続するシステムバス121が含まれるが、それらに限定はされない。システムバス121は、様々なバスアーキテクチャの任意の1つを使用したメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む各種バス構造のいずれでもよい。こうしたアーキテクチャには、例として、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびPCI(Peripheral Component Interconnect)バス(メザニン(Mezzanine)バスとも呼ばれる)が含まれるが、これらに限定はされない。
【0022】
コンピュータ110は、通常は様々なコンピュータ可読媒体を備えている。コンピュータ可読媒体は、コンピュータ110からアクセスできる任意の使用可能な媒体でよい。揮発性と不揮発性の両方、および取り外し可能と不可能の両方の媒体が含まれる。例として、コンピュータ可読媒体にはコンピュータ記憶媒体および通信媒体を含めてもよいが、これらに限定はされない。コンピュータ記憶媒体には、コンピュータ可読の命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶する任意の方法または技術で実装された、揮発性と不揮発性の両方、および取り外し可能と不可能の両方の媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリなどのメモリ技術、CD ROM、デジタル多用途ディスク(DVD:digital versatile disk)などの光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスクなどの磁気記憶装置、または所望の情報を格納でき、コンピュータ110からアクセスできる他の任意の媒体が含まれるが、これらに限定はされない。通信媒体は、搬送波やその他の搬送メカニズムのような変調データ信号に含まれるコンピュータ可読の命令、データ構造、プログラムモジュール、またはその他のデータなどを具体化したものであり、任意の情報伝達媒体を含む。「変調データ信号」という用語は、信号内の情報を符号化するように、1つまたは複数のフィーチャを設定または変更された信号を意味する。例として、通信媒体には、有線ネットワーク、または直接ワイヤ接続などの有線媒体と、音、RF、赤外線などの無線媒体が含まれるが、これらに限定はされない。上記の任意の組合せも、コンピュータ可読媒体の範囲内に含まれるものとする。
【0023】
システムメモリ130には、読み取り専用メモリ(ROM:read only memory)131やランダムアクセスメモリ(RAM:random access memory)132のように揮発性および/または不揮発性メモリという形をとるコンピュータ記憶媒体が含まれる。起動時などにコンピュータ110内のエレメント間の情報転送を支援する基本ルーチンを含む基本入出力システム133(BIOS:basic input/output system)は、通常はROM 131に格納される。RAM 132には、通常は処理装置120から直ちにアクセスできる、および/または処理装置120で現在操作しているデータおよび/またはプログラムモジュールが格納される。例として、図1にはオペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137が示されているが、それらに限定はされない。
【0024】
コンピュータ110には、その他の取り外し可能/不可能、揮発性/不揮発性のコンピュータ記憶媒体を含めてもよい。単に例として、図1に取り外し不可能な不揮発性の磁気媒体の読み出しまたは書き込みを行うハードディスクドライブ141、取り外し可能な不揮発性の磁気ディスク152の読み出しまたは書き込みを行う磁気ディスクドライブ151、CD ROMや他の光媒体のような取り外し可能な不揮発性の光ディスク156の読み出しまたは書き込みを行う光ディスクドライブ155を示す。例示的なオペレーティング環境で使用できる上記以外の取り外し可能/不可能、揮発性/不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれるが、それらに限定はされない。ハードディスクドライブ141は、通常はインターフェース140などの取り外し不可能なメモリインターフェースを介してシステムバス121に接続し、磁気ディスクドライブ151と光ディスクドライブ155は、通常はインターフェース150などの取り外し可能なメモリインターフェースを介してシステムバス121に接続する。
【0025】
図1に示す前述のドライブとこれに対応するコンピュータ記憶媒体には、コンピュータ可読の命令、データ構造、プログラムモジュールなど、コンピュータ110のデータを格納できる。例えば、図1を参照すると、ハードディスクドライブ141にオペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147が格納されている。ただし、こうしたコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同じでもよいし、異なっていてもよい。ここでは、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147には異なる番号を付けて、少なくとも別の複製であることを示している。ユーザは、キーボード162やポインティングデバイス161(一般に、マウス、トラックボール、またはタッチパッドと呼ばれる)のような入力装置を使用してコンピュータ20にコマンドや情報を入力できる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ(satellite dish)、スキャナーなどを含めてもよい。これらの入力装置および他の入力装置は、多くの場合にシステムバスに接続されたユーザ入力インターフェース160を介して処理装置120に接続するが、パラレルポート、ゲームポート、またはUSB(universal serial bus)のような他のインターフェースやバス構造によって接続してもよい。モニタ191または他のタイプの表示装置も、ビデオインターフェース190のようなインターフェースを介してシステムバス121に接続される。さらに、コンピュータには出力インターフェース195を介してスピーカ197やプリンタ196など、モニタ以外の出力周辺装置を接続できる。
【0026】
コンピュータ110は、リモートコンピュータ180のような1台または複数台のリモートコンピュータへの論理接続を使用してネットワーク環境で動作できる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般のネットワークノードでよい。通常は、コンピュータ110に関連して前述のエレメントの多くまたはすべてが含まれるが、図1にはメモリ記憶装置181のみを示す。図1に示す論理接続には、ローカルエリアネットワーク(LAN:local area network)171とワイドエリアネットワーク(WAN:wide area network)173が含まれるが、他のネットワークを含めてもよい。このようなネットワーキング環境は、職場、企業規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。
【0027】
LANネットワーキング環境で使用した場合、コンピュータ110はLAN 171にネットワークインターフェースまたはアダプタ170を介して接続する。WANネットワーキング環境で使用した場合、コンピュータ110は一般にインターネットなどのWAN 173を介して通信を確立するためのモデム172またはその他の手段を備えている。モデム172(内蔵または外付け)は、ユーザ入力インターフェース160または他の適切なメカニズムを使用してシステムバス121に接続できる。ネットワーク環境では、コンピュータ110またはその一部に関連して説明したプログラムモジュールをリモートメモリ記憶装置に格納できる。例として、図1にメモリデバイス181に格納されたリモートアプリケーションプログラム185を示すが、これには限定されない。図示されたネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことが理解されるであろう。
【0028】
いくつかの態様において、手書きの入力をデジタル処理でキャプチャするために、ペンデジタイザ165と付属のペンまたはスタイラス166が提供される。ペンデジタイザ165とユーザ入力インターフェース160との直接接続が示されているが、ペンデジタイザ165は処理装置110に直接接続してもよいし、パラレルポート、またはその他のインターフェースおよびシステムバス130に無線を含む任意の技術によって接続してもよい。また、ペン166は、ペンに関連付けられたカメラと、カメラでキャプチャされたイメージ情報をバス130と対話するインターフェースに無線で送信するトランシーバを備えていてもよい。さらに、ペンはカメラと併用するかまたはカメラに代わって電子的インクのストローク(strokes)を決定する他の感知システム(加速度計、磁気計、およびジャイロスコープなど)を備えていてもよい。
【0029】
図示されたネットワーク接続は説明を目的とするものであり、コンピュータ間の通信リンクを確立する他の技術を使用してもよいことが理解されるであろう。TCP/IP、Ethernet(登録商標)、FTP、HTTPなどのように、周知の様々なプロトコルのいずれかの存在が想定されており、システムはクライアントサーバシステムで動作できるので、ユーザはWebベースのサーバからWebページを取得できる。従来の様々なWebブラウザのいずれを使用しても、Webページのデータを表示でき、操作できる。
【0030】
図示されたネットワーク接続は説明を目的とするものであり、コンピュータ間の通信リンクを確立する他の技術を使用してもよいことが理解されるであろう。TCP/IP、Ethernet(登録商標)、FTP、HTTP、Bluetooth、IEEE 802.11xなどのように、様々な周知のプロトコルのいずれかの存在が想定されており、システムはクライアントサーバの構成で動作できるので、ユーザはWebベースのサーバからWebページを取得できる。従来の様々なWebブラウザのいずれを使用しても、Webページのデータを表示でき、操作できる。
【0031】
イメージキャプチャペン
本発明の態様には、符号化されたデータストリームを表示されたフォームに配置する方法が含まれる。表示されたフォームは、印刷された紙(または他の物理的な媒体)でも、符号化されたデータストリームを別のイメージまたはイメージのセットと組み合わせて投影するディスプレイでもよい。例えば、符号化されたデータストリームは、紙の上の物理的に符号化されたイメージまたは表示されたイメージの上に重ねる符号化されたイメージとして表されてもよい。あるいは、表示画面上の物理的に符号化されたイメージとして表されてもよい(したがって、ペンでキャプチャされたイメージの任意の部分は表示画面上で位置を特定できる)。
【0032】
このキャプチャされたイメージの位置の決定は、ユーザが紙、物理媒体または表示画面と対話した位置を決定するのに使用してもよい。本発明のいくつかの態様において、ペンは紙に書き込むインクペンでもよい。他の態様において、ペンはユーザがコンピュータディスプレイのサーフェスに書き込むスタイラスでもよい。対話がある場合は、文書上の符号化されたイメージに関する知識と共にシステムに返すこともできる。あるいは、コンピュータの画面上に表示された文書をサポートできる。カメラの位置を繰り返しキャプチャすることによって、システムはユーザが制御しているスタイラスの移動を追跡できる。
【0033】
図2Aおよび図2Bは、カメラ203付きのペン201を説明するための例を示している。ペン201は、ペン先202にインクリザーバ(ink reservoir)を備えていても備えていなくてもよい。カメラ203は、サーフェス207からイメージ204をキャプチャする。ペン201は、さらに破線のボックス206で示される付加的なセンサおよび/またはプロセッサを含んでいてもよい。このようなセンサおよび/またはプロセッサ206は、別のペン201および/またはパーソナルコンピュータに情報を送信する機能(例えば、Bluetoothまたは他の無線プロトコルを使用して)を備えることもできる。
【0034】
図2Bはカメラ203から見たイメージを表している。1つの説明のため例において、カメラ203の視野は32×32ピクセルである(ただし、N=32)。これに応じて、図2Bは長さ32ピクセル×幅32ピクセルの視野を示している。Nのサイズは、所望のイメージの解像度に基づいて調整できる。また、カメラ203の視野は本明細書において説明のために正方形で示されているが、当業者に知られているように、視野にはその他の形状を含めてもよい。
【0035】
カメラ203からペン201への入力は、一連のイメージフレーム{Ii}、i=1,2,...,Aとして定義できる。ただし、Iiはサンプリング時間tiでペン201によってキャプチャされている。サンプリングレートの選択は、ペン先の最大運動周波数(motion frequency)に従う。これは人が描くときの手の振動数と同じでもよい。この振動数は、0Hzから最大20Hzとして知られている。ナイキストシャノン(Nyquist−Shannon)の標本化定理(sampling theorem)によれば、サンプリングレートは最小で40Hz、一般的には100Hzが要求される。1つの例において、サンプリングレートは110Hzである。キャプチャされたイメージフレームのサイズは、文書のサイズと要求される精度によって、大きくすることも小さくすることもできる。また、カメラのイメージサイズは、検索する文書のサイズに基づいて決定することができる。
【0036】
カメラ203によってキャプチャされたイメージは、そのまま処理システムで使用することも、プレフィルタリング(pre−filtering)を実行することもできる。プレフィルタリングは、ペン201で実行することも、ペン201以外(例えばパーソナルコンピュータ)で実行することもできる。
【0037】
図2Bのイメージのサイズは、32×32ピクセルである。個々の符号化単位のサイズが3×3ピクセルの場合は、キャプチャされた符号化単位の数が約100単位となる。符号化単位のサイズが5×5ピクセルの場合は、キャプチャされた符号化単位の数が約36単位である。
【0038】
図2Aは、位置204にあるパターンのイメージ210が形成されるイメージ平面(image plane)209も示している。オブジェクト平面(object plane)207上のパターンから受信した光は、レンズ208によって集束する。レンズ208は単レンズでも複合レンズシステム(multi−part lens system)でもよいが、ここでは簡単にするために単レンズとして表されている。イメージキャプチャセンサ211は、イメージ210をキャプチャする。
【0039】
イメージセンサ211は、イメージ210をキャプチャするのに十分なサイズでよい。代替として、イメージセンサ211は位置212にあるペン先202のイメージをキャプチャするのに十分なサイズでもよい。参考のために、位置212のイメージは仮想ペン先と呼ばれる。ペン先、レンズ208、およびイメージセンサ211間の関係は一定であるため、イメージセンサ211に対する仮想ペン先の位置は固定であることに留意されたい。仮想ペン先の位置212(Lvirtual−pentipと表す)を実際のペン先202の位置(Lpentipと表す)に変換することによって、キャプチャされたイメージ210に関する実際のペン先の位置を決定できる。
【0040】
次の変換Fs→pは、カメラによってキャプチャされたイメージを紙の上の実際のイメージに変換する。
paper=Fs→p(LSensor
【0041】
書き込み中は、ペン先と紙が同じ平面上にある。したがって、仮想ペン先から実際のペン先への変換もFs→pを使って次のように表すことができる。
pentip=Fs→p(Lvirtual−pentip
【0042】
この変換Fs→pは、透視変換(perspective transformation)と呼ぶこともできる。これは、Fs→pの見積りとして次のように簡素化できる。
【0043】
【数1】

【0044】
ただし、θ、SおよびSは位置204でキャプチャされたパターンの回転と2つの方向の縮尺(scale)である。さらに、キャプチャされたイメージを紙の上の対応する背景のイメージに適合させることによってF’s→pをリファイン(refine)し、Fs→pに近づけることができる。「リファイン」するとは、再帰的手法(recursive method)と呼ばれる最適化アルゴリズムの一種を使用して、より正確な透視行列Fs→p(8個のパラメータ)を得ることを意味する。再帰的手法では、行列F’s→pを初期値として使用する。Fs→pは、F’s→pより正確にSとPとの変換を表す。
【0045】
次に、キャリブレーションによって仮想ペン先の位置を決定できる。
【0046】
ペン先202を紙面上の既知の位置Lpentipに置く。次に、ペンの傾きを調整することによって、ペンの様々なポーズ(poses)による一連のイメージをカメラ203からキャプチャできる。キャプチャされたそれぞれのイメージに対して、変換Fs→pを得ることができる。この変換から、次のようにペン先の仮想イメージの位置Lvirtual−pentipを得ることができる。
virtual−pentip=Fp→s(Lpentip
および
p→s=1/Fs→p
【0047】
各イメージから受け取ったLvirtual−pentipを平均することによって、仮想ペン先の正確な位置Lvirtual−pentipを決定してもよい。
【0048】
仮想ペン先の位置Lvirtual−pentipはこれで既知である。キャプチャされたイメージから変換Fs→pを求めることもできる。最終的に、この情報を使用して次のように実際のペン先の位置Lpentipを決定できる。
pentip=Fs→p(Lvirtual−pentip
【0049】
アクティブコード(ACTIVE CODES)
ペンの位置を決定するのに役立つ情報を文書に挿入してもよい(あるいはイメージとして追加するか、コンピュータのディスプレイ上に追加してもよい)。この情報は、配列内の指定されたサイズの各部分配列が一意となるような2次元の配列でもよい。
【0050】
2次元配列は、1次元の列の畳み込み(folding)によって構成できる。2次元配列の任意の部分を使用して、2次元配列全体の中の位置を決定できる。1つの問題は、カメラによってキャプチャされたイメージの部分はサイズが制限されることである。したがって、キャプチャされたイメージまたは複数のキャプチャされたイメージから位置を決定できる必要がある。そこで、キャプチャされたイメージ内に存在するエラーによって、キャプチャされたイメージ内のいくつかのポイントが利用できなくなるという新しい問題が発生する。キャプチャされたイメージの部分が2次元配列内の2カ所以上の位置に関連付けられる可能性を最小にするために、繰り返しのない列を使用して配列を生成することもできる。作成された列の1つの特性は、その列は長さ(またはウィンドウ)nにわたって繰り返しがないことである。以下では、1次元の列の生成し、この列を畳み込んで配列にする方法について説明する。
【0051】
列の構成
数値の列は、符号化システムの開始ポイントとして使用できる。例えば、列(m列とも呼ばれる)はフィールドF内のqエレメントのセットとして表すことができる。ここで、q=pただしn≧1であり、pは素数である。列またはm列は、多項式の除算を含むがこれに限定されない様々な技術で生成できる。多項式の除算を使用すると、列は次のように定義できる。
【0052】
【数2】

【0053】
ただし、P(x)はフィールドF[x](qの要素を持つ)内の次数(degree)nの原始多項式である。R(x)は、フィールドF[x]内の次数l(ただしl<n)のゼロでない多項式である。列は、まず2つの多項式の除算を行い(結果はフィールドFの要素となる)、次に余りにxをかけるという2つのステップからなる反復手順を使用して生成できる。出力の繰り返しが開始されると、計算は停止する。このプロセスは、非特許文献1で説明されている線形フィードバックシフトレジスタ(linear feedback shift register)を使用して実施できる。この環境では、列の循環シフトと多項式R(x)との間に、R(x)を変更すると列は循環的にのみシフトし、すべての循環シフトは多項式R(x)に対応するという関係が確立される。得られる列の特性の1つは、幅(または長さ)nにわたって任意の部分が列内に一度だけ出現することである。
【0054】
上述のプロセスは、繰り返しのない列を生成するために使用できる様々なプロセスの1つにすぎない。
【0055】
配列の構成
イメージを生成するために使用できる配列(またはm配列)(この一部がカメラによってキャプチャされる)は1次元の列またはm列の拡張である。Aを周期(period)(m,m)の配列、すなわちA(k+m,l)=A(k,l+m)=A(k,l)とする。n×nのウィンドウがAの周期でシフトすると、F上のゼロでないすべてのn×n行列が一度だけ現れる。この特性は「ウィンドウ特性」と呼ばれることがあり、この特性において各ウィンドウは一意である。その結果、Aは周期(m1,m2)(mおよびmは配列内に存在するの水平および垂直のビット数)および次数(n1,n2)の配列として表現できる。
【0056】
2進の配列(またはm配列)は、列の畳み込みによって構成してもよい。1つの方法は、列を取得してからそれを畳み込んでサイズm×mにすることである。ただし、配列の長さはL=m×m=2−1である。代替として、あらかじめ指定されたサイズの対象となるスペースで開始し(例えば、1枚の紙、30枚の紙、またはコンピュータのモニタのサイズ)、領域(m×m)を決定してから、L≧mとなるサイズを使用してもよい。ただし、L=2−1である。
【0057】
別の様々な畳み込みの技術を使用することもできる。例えば、図3Aから図3Cは3つの異なる列を示している。これらはそれぞれ図3Dに示すように配列に畳み込むことができる。3つの異なる畳み込みの方法、すなわち図3Dのオーバレイ(overlay)、図3Eと3Fのラスターパス(raster paths)が示されている。図3Dに示す畳み込み方法は、gcd(m,m)=1の場合として表されている。ただし、L=2−1である。
【0058】
図3Dに示す畳み込み方法を作成するために、長さL、次数nの列{a}を作成する。次に、列{a}からサイズm×mの配列{bkl}を作成する。ここで、配列の各ビットは次の式2で示すように計算される。
(2) bkl=a
ただし、k=imod(m),l=imod(m),i=0,...,L−1
【0059】
この畳み込みの方法は、代替的に、列を配列の対角線上に配置し、端まで達した場合は反対側から続けるとして表現することもできる。
【0060】
復号化
図2Aのペンを使用して書くか、符号化されたパターンの近くにペンを移動すると、カメラはイメージをキャプチャする。例えば、ペン201は紙に押し付けられ、ペン201は紙面の文書を横断するので、ペン201は圧力センサを利用してもよい。ここで、イメージが処理され、キャプチャされたイメージの、符号化されたイメージ全体の表現を基準にした方向(orientation)を決定し、キャプチャされたイメージを構成するビットを抽出する。
【0061】
キャプチャされたイメージの符号化された領域全体に対する方向を決定するために、図4A〜4Dに示された考えられる4つのコーナーのすべてがグラフィックパターン403内に存在するわけではないことがわかる。実際に、正しい方向では、グラフィックパターン403には図4Aに示すタイプのコーナーが存在しない。したがって、図4Aに示すタイプのコーナーがない方向が正しい方向である。
【0062】
続いて図5では、カメラがキャプチャしたイメージ501が解析され、イメージ501で実際に表される位置を説明できるようにその方向が決定される。まず、イメージ501を調べて、ピクセルが水平方向および垂直方向に整列するようにイメージを回転するために必要な角度θを決定する。基盤となる(underlying)グリッドが水平方向および垂直方向以外の配置となる回転(例えば45度)を含めて、代替のグリッドの整列が可能であることが知られている。ユーザはまず水平と垂直のパターンに注目する傾向があるため、水平方向および垂直方向以外の配置を使用することによって、ユーザから視覚的錯乱を取り除くという有望な利点を提供できる。簡単にするために、グリッドの方向(基盤となるグリッドの水平と垂直および他の任意の回転)を、集合的にあらかじめ定義されたグリッドの方向と呼ぶ。
【0063】
次に、イメージ501が解析され、どのコーナーが存在しないかを決定する。イメージ501を復号可能なイメージ503となるように回転するのに必要な回転の量oはo=(θ+回転量{どのコーナーが存在しないかによって決定される})と表される。この回転量は、図6の式で表される。図5に戻り、まずピクセルのレイアウトによって角度θが決定され、ピクセルの配置が水平および垂直(またはその他のあらかじめ定義されたグリッドの方向)になるように、イメージを回転させる(502に示すように)。次に、解析を行って存在しないコーナーを決定し、イメージ502をイメージ503まで回転してイメージを復号化する準備を行う。ここで、イメージを反時計回りに90度回転すると、イメージ603は正しい方向になり復号化に使用できる。
【0064】
回転角θは、存在しないコーナーを明らかにするためのイメージ501の回転より前または後のいずれにも適用できることが理解される。キャプチャされたイメージのノイズを考慮すると、4つのコーナータイプのすべてが存在する場合があることも理解される。それぞれのコーナータイプの数を数え、最も少ない数のコーナーを存在しないコーナータイプとして選択してもよい。
【0065】
最後に、イメージ503のコードを読み出し、イメージの生成に使用された元のビットストリームに関連付ける。この関連付けは、様々な方法で実行できる。例えば、回復したビットストリームを元のビットストリーム内にある他のすべてのビットストリームの断片と比較するという再帰的な方法で実行してもよい。または、回復したビットストリームと元のビットストリームの間で、例えば2つのビットストリーム間のハミング距離を使用することにより、統計に基づく解析を実行してもよい。回復したビットストリームの元のビットストリーム内での位置を決定する場合に、様々な方法を使用できることが理解される。
【0066】
後述するように、迷路パターンの解析(maze pattern analysis)ではイメージ503から回復されたビットを取得する。回復されたビットを取得したら、キャプチャされたイメージの元の配列内での位置を確認する必要がある。ビットのセグメントの配列全体内での位置を決定するプロセスは、様々な要素によって複雑になる。第1に、キャプチャされる実際のビットが不明瞭な場合がある(例えば、カメラが手書きの文字を伴うイメージをキャプチャする場合は、元のコードが不明瞭になる可能性がある)。第2に、ほこり、折り目、反射などによって、キャプチャされたイメージにエラーが発生する場合もある。このようなエラーによって、位置を特定する(localization)プロセスはさらに困難になる。この意味で、イメージキャプチャシステムはイメージから抽出した不連続のビットに対しても機能する必要がある。以下は、イメージから抽出した不連続のビットを操作する方法を表している。
【0067】
列(またはm列)Iをべき級数(power series)I(x)=1/P(x)に対応させる。ただし、nはm列の次数で、キャプチャされたイメージはIの中のKビットb=(b...bK−1を含む。ただしK≧nであり、上付き文字tは行列またはベクトルの転置を表す。Kビットの位置sは、bをが列の先頭になるように、Iを何回か循環シフトしたものにすぎない。その結果、シフトした列Rはべき級数x/P(x)に対応するか、またはR=T(I)となる。ただし、Tは循環シフト演算子である。このsを間接的に検出する。多項式のP(x)によるモジュロはフィールドを形成する。x≡r+rx+...rn−1n−1mod(P(x))となることが保証されている。したがって、(r,r,...,rn−1)を求め、sを解くことができる。
【0068】
関係x≡r+rx+...rn−1n−1mod(P(x))はR=r+rT(I)+...+rn−1n−1(I)を意味する。2進の線形方程式で記述すると、次のようになる。
R=rA (2)
【0069】
ただし、r=(r...rn−1およびA=(I T(I)...Tn−1(I))でAはIの0シフトからn−1シフトまでの巡回シフトで構成されている。ここで、R内で疎な(sparse)Kビットのみがrを解くために利用可能である。Rにおけるbとbの添え字の違いをk,i=1,2,...,k−1とすると、Rにおける第1要素と第(k+1)要素(i=1,2,...,k−1)は正確にb,b,...,bk−1となる。Aの第1列と第(k+1)列(i=1,2,...,k−1)を選択することによって、次の2進の一次方程式が形成される。
=rM (3)
【0070】
ただし、MはAのn×K部分行列である。
【0071】
bにエラーがなければ、rの解は次のように表すことができる。
【0072】
【数3】

【0073】
ただし、
【0074】
【数4】

【0075】
はMの任意の非退化(non−degenerate)n×n部分行列であり、
【0076】
【数5】

【0077】
は対応するbの部分ベクトルである。
【0078】
既知のrを使用して、x≡r+rx+...rn−1n−1mod(P(x))となるsを求めるために、非特許文献1で知られるPohlig−Hellman−Silverアルゴリズムを使用することもできる。
【0079】
行列A(サイズn×L、ただしL=2−1)は巨大化する可能性があるため、行列A全体の保存は避ける必要がある。実際、上記のプロセスで説明したように、添え字の差がkとなる所定のビットが抽出された場合、Aの第1列と第(k+1)列のみが計算に関連する。キャプチャされたイメージのサイズが指定された場合は、このようなkの選択はきわめて限定的である。したがって、このように計算に関連する列のみを保存する必要がある。このような列の総数は、L(ただし、L=2−1はm列の長さである)よりはるかに小さい。
【0080】
エラー訂正
bにエラーがあると、rの解はさらに複雑になる。従来のエラー訂正を伴う復号化の方法は、キャプチャされたビットに関連する行列Mがキャプチャされたイメージごとに変わる可能性があるので、容易には適用できない。
【0081】
ここでは、確率論的な方法を採用する。b内のエラービットの個数nがKと比較して相対的に小さいと仮定すると、bのKビットから正しいnビットを選び、非縮重である対応するMの部分行列
【0082】
【数6】

【0083】
を選ぶ確率は高くなる。
【0084】
選択したnビットがすべて正しい場合、bとrM間のハミング距離またはrに関連するエラービットの個数は最小になるはずである。ただし、rは式(4)で計算されたものである。この処理を数回繰り返すことによって、エラービットが最小の正しいrを識別できる可能性が高い。
【0085】
エラービットの数が最小となるrが唯一の場合は、それが正しい解とみなされる。一方、エラービットの数が最小となるrが2つ以上ある場合は、nがMによって生成されたコードのエラー訂正能力を超えており、復号化処理は失敗する確率が高い。この場合は、システムが次にキャプチャされたイメージの処理を開始してもよい。別の実施例では、ペンの直前の位置に関する情報を考慮に入れることができる。すなわち、それぞれのキャプチャされたイメージに対して、次に期待されるペンの移動先の領域を識別できる。例えば、カメラによってキャプチャされた2つのイメージの間でユーザがペンを持ち上げていない場合に、2番目にキャプチャされたイメージによって決定されたペンの位置は最初の位置からそれほど遠く離れていないはずである。次に、エラービット数が最小のrのそれぞれについて、rから計算された位置sが局所的な制約を満たしているか、すなわちその位置が指定された移動先の領域内にあるかどうかを確認できる。
【0086】
位置sが局所的な制約を満たしている場合は、配列内の抽出されたビットのXとYの位置が返される。満たしていない場合は復号化プロセスが失敗する。
【0087】
図7は、キャプチャされたイメージの列(またはm列)の位置を決定するために使用できるプロセスを表している。まず、ステップ701でキャプチャされたイメージに関連するデータストリームを受信する。ステップ702で、Aから対応する列を抽出し、行列Mを構成する。
【0088】
ステップ703で、行列Mからn個の独立した列ベクトルをランダムに選択し、式(4)を解いてベクトルrを決定する。ステップ704で、この処理がQ回(例えば、100回)実行される。ループ回数の決定は、「ループ回数の計算」のセクションで説明する。
【0089】
ステップ705で、rを関連するエラービットの数に基づいてソートする。ソートは、当業者には周知の様々なソートアルゴリズムを使用して行うことができる。例えば、選択ソートアルゴリズム(selection sorting algorithm)を使用してもよい。選択ソートアルゴリズムは、数Qが大きくない場合に効果的である。しかし、Qが大きくなる場合は、より多くの項目をより効率よく処理する他のソートアルゴリズム(例えば、マージソート(merge sort))を使用してもよい。
【0090】
次にステップ706で、システムはエラービット数が最小のrが複数存在するかどうかを確認することによって、エラー訂正が正常に行われたかどうかを判定する。複数のrが存在する場合は、ステップ709で復号化プロセスが失敗したことを示すエラーが返される。複数のrが存在しない場合は、ステップ707で、例えばPohig−Hellman−Silverアルゴリズムを使用して、列(またはm列)中の抽出されたビットの位置sを計算する。
【0091】
次にステップ708で、x=s mod mおよびy=s mod mとして配列内の(X,Y)位置を計算し、結果を返す。
【0092】
位置の決定
図8は、ペン先の位置を決定するプロセスを示している。入力はカメラによってキャプチャされたイメージであり、出力はペン先の位置座標でもよい。また、出力は例えばキャプチャされたイメージの回転角など他の情報を含んでいても(いなくても)よい。
【0093】
ステップ801で、カメラからイメージを受信する。次に、ステップ802で、明るいピクセルと暗いピクセルのコントラストを調整するなどのために、オプションで受信したイメージを前処理してもよい(ステップ802の破線で示されている)。
【0094】
次に、ステップ803で、イメージを解析してイメージ内のビットストリームを決定する。
【0095】
さらに、ステップ804で、ビットストリームからnビットを複数回ランダムに選択し、受信したビットストリームの元の列(またはm列)内の位置を決定する。
【0096】
最終的に、ステップ804でキャプチャされたイメージの位置が決定すると、ステップ805でペン先の位置を決定できる。
【0097】
図9は、803および804に関する詳細な説明であり、キャプチャされたイメージ内のビットストリームを抽出する方法を示している。最初に、ステップ901でカメラからイメージを受信する。次にステップ902で、イメージに対してオプションでイメージの前処理を実行してもよい(ステップ902の破線のボックスで示されている)。ステップ903で、パターンを抽出する。ここで、様々な線上のピクセルが抽出され、パターンの方向と角度θが検出される。
【0098】
次にステップ904で、受信したイメージを分析し、基盤となるグリッド線を決定する。ステップ905でグリッド線が検出されると、ステップ906でパターンからコードを抽出する。
【0099】
次に、ステップ907でコードを復号化し、ステップ908でペン先の位置を決定する。ステップ905でグリッド線が検出されなかった場合は、ステップ909でエラーが返される。
【0100】
ローカルメタデータの符号化
図10は、本発明の実施形態に従ってローカルメタデータを符号化するシステムの流れ図を示している。1つまたは複数のm配列(m配列1002で示す)とローカルメタデータ1004は、ローカルメタデータ符号化モジュール1006に入力される。これは符号化されたローカルメタデータによる結合された配列(combined array)1008を出力する。1つまたは複数の入力m配列は、位置(position)m配列2702およびローカルメタデータm配列2704などのm配列でもよい(いずれも図27に示されている)。
【0101】
本発明の実施形態により、領域にローカルメタデータが埋め込まれているかどうかに関わらず、領域は結合されたm配列を使用して符号化することができる。このローカルメタデータm配列は、X、Yの位置の情報を表すm配列と同じでもよい。また、メタデータm配列はメタデータの値に従ってシフトされてもよい。領域にローカルメタデータが埋め込まれていない場合は、そのローカルメタデータの値として0が選択されてもよい。この場合、メタデータm配列はシフトされない。したがって、ローカルメタデータを埋め込むように選択された領域のローカルメタデータの値として0は使用されない。
【0102】
図27は、本発明の実施形態に従ってローカルメタデータを符号化する例を示している。2つの同等のm配列(位置m配列2702とローカルメタデータm配列2704)は、図27の左に示されている。いずれのm配列も、次数6のm配列である。したがって、各m配列の幅は2+1であり、各m配列の高さは2−1である。位置m配列とローカルメタデータm配列は、長さは同じであるが、互いに異なるビットシーケンスの繰り返しが含まれていてもよい。別の言い方をすれば、次数nの様々な原始多項式を使用して、様々なビットシーケンスの繰り返しを含む様々なm配列を生成してもよい。
【0103】
本発明の実施形態により、2つのm配列を結合して2つのビットを1つのEIC記号に符号化してもよい。図24にEIC記号の例を示す。図24のEIC記号は、図24に示す最下行と右端の列を除くグリッド領域のすべての行と列を占めている。最下行と右端の列は、隣接するEIC記号に属している。したがって、黒のドット2402−1と2402−4は図24に示すEIC記号に属しているが、黒のドット2402−2と2402−3はこのEIC記号の要素ではない。データのドット2406−1から2406−16は、黒または白であり、ビットの情報を表すことができる。方向のドット2404−1から2404−4は常に白であり、カメラでキャプチャされたEIC記号イメージを正しく方向付けることができる。
【0104】
位置m配列2702とローカルメタデータm配列2704がローカルメタデータの値(例えば11)に基づいて結合された場合、図27の2730に示すように、ローカルメタデータm配列2704の先頭が位置m配列2702の位置(x,y)にシフトされる。x、yの座標は次のように計算できる。
【0105】
【数7】

【0106】
ただし、nはm配列の次数、および0≦ローカルメタデータ≦2−2である。
【0107】
図27において、符号化されるローカルメタデータ2706の値は11であり、m配列の次数は6(すなわち、n=6)である。したがって、次の式が得られる。
【0108】
【数8】

【0109】
部分的に結合されたm配列2708で示すように、ローカルメタデータm配列2704は位置m配列2702の位置(2,1)から開始している。位置m配列2702とローカルメタデータm配列2704は自らを繰り返すので、図14の右下コーナーに示す符号化されたローカルメタデータを伴う結合されたm配列2710が生成されてもよい。ローカルメタデータm配列2704を(2,1)から開始した結果として、位置m配列2702の重複する行と列およびローカルメタデータm配列2704の重複した行と列を結合した後に、ローカルメタデータm配列2704の一部2720、2714、および2726が残る。ローカルメタデータm配列2704の一部2726および位置m配列2702の一部2724は、2728に示すように、結合された配列2710に結合される。同様に、ローカルメタデータm配列2704の一部2714および位置m配列2702の一部2712は、2716で示すように結合された配列2710に結合される。さらに、ローカルメタデータm配列2704の一部2720および位置m配列2702の一部2718は、2722に示すように結合された配列2710に結合される。
【0110】
メタデータの値は、位置m配列2702とローカルメタデータm配列2704との、結合された配列内での距離である。この距離は、結合された配列2710のビットの各ペアで同じになるように保持される。したがって、対応するm配列の各ビットの位置が得られれば、結合された配列2710内での距離を決定できる。
【0111】
ローカルメタデータの復号化
図26は、本発明の実施形態による、ローカルメタデータを復号化するシステムの流れ図である。符号化されたローカルメタデータによる結合された配列1008がローカルメタデータ復号化モジュール2602に入力される。このモジュールの出力は復号化されたローカルメタデータ2604である。
【0112】
ローカルメタデータを復号化するには、結合された配列1008を形成するために結合されたm配列がそれぞれ別々に復号化される。例えば、図27に示す例を参照すると、位置m配列2702とローカルメタデータm配列2704は別々に復号化される。次に、特定のポイントP 2732の場合、位置m配列2702のポイントの位置である(x,y)とローカルメタデータm配列2704のポイントの位置である(x,Y)の2つの位置が取得される。
【0113】
したがって、ローカルメタデータの値は次のように計算できる。
【0114】
【数9】

【0115】
ただし、nは結合されたm配列1008の次数である。
【0116】
図27に示す例において、第1のm配列内でのPの位置は(4,3)である。第2のm配列のPの位置は(2,2)である。したがって、メタデータの値は次のようにして得られる。
ローカルメタデータ=mod(3−2,2−1)・(2+1)+mod(4−2,2+1)=11
【0117】
メタデータソリューション
本発明の実施形態により、ローカルメタデータは複数の独立したチャネルを経由して埋め込まれてもよい。例えば、ローカルメタデータの競合を解決するEICローカルメタデータ埋め込みソリューションは、本発明の実施形態により、8ビット埋め込み対話コード(EIC)記号(EF−diamond−8bit−a−16およびEF−diamond−8bit−i−14など)に基づいていてもよい。前述のように、8ビットEIC記号の例を図24に示す。
【0118】
8次元EIC記号に対する可能性のあるメタデータ割り当て方法は、1:6:1(1:1:1:1:1:1:1:1)である。ただし、1つの共有は位置、6つの共有はグローバルメタデータ、1つの共有はローカルメタデータに使用される。8つの共有はそれぞれ物理データチャネルを構成しており、例では次数28のそれぞれに該当している(すなわち、各共有の符号化に使用される各m配列の幅は214+1であり、各共有の符号化に使用される各m配列の高さは214−1である)。
【0119】
本発明の実施形態によるメタデータの割り当て方法では、1:5:0.5:0.5:0.5:0.5で示されるように8つのローカルメタデータ共有を割り当てる。ここで次数28の1共有は位置に使用され、各共有全体の次数28の5共有はグローバルメタデータに使用され、4つの0.5共有(2分の1共有とも呼ばれる)は各0.5共有の次数が14であり、4つの独立したメタデータの値に使用される。このようにビットの比率が変化することによって、次数14のm配列が各0.5共有データチャネルで使用され、EIC配列を構成する。
【0120】
図14A〜14Eに本発明の実施形態による、ローカルメタデータの競合を防ぐためのローカルメタデータ符号化技術を示す。
【0121】
0.5共有による独立したローカルメタデータチャネルは、以下のように本発明の実施形態に従って実装してもよい。図15は、8ビットEIC記号の1ビットを共有する2つの0.5共有を示す。これは、記号の奇数ラインは1つの0.5共有のビットを表すために使用され、記号の偶数ラインはもう1つの0.5共有のビットを表すために使用されることを意味する。本発明の実施形態により、キャプチャされたイメージを復号化することによって、4つの独立したローカルメタデータの値が生成される。
【0122】
これで4つの独立したローカルメタデータの値を利用できるので、競合する可能性のある4つのローカルメタデータフィールド、すなわち、フィールドA 1402、フィールドB 1404、フィールドC 1406、およびフィールドD 1408のそれぞれを、図14Aに示すようにそれぞれのローカルメタデータチャネルに割り当てることができる。フィールドA、B、C、およびDの境界線は、図14Aでは太線で描くことによって強調されている。図14Bから14Eは、それぞれフィールドA、B、C、およびDに関連して、いずれも競合が発生する可能性がある領域1412、1414、1416、および1418を示している。フィールドAは、フィールドAの競合する可能性がある領域1412が、フィールドBの競合する可能性がある領域1414、フィールドCの競合する可能性がある領域1416、およびフィールドDの競合する可能性がある領域1418と重複する領域において、それぞれフィールドB、フィールドC、フィールドDと競合する可能性がある。同様に、フィールドBは、フィールドBの競合する可能性がある領域1414が、フィールドCの競合する可能性がある領域1416およびフィールドDの競合する可能性がある領域1418と重複する領域で、それぞれフィールドCおよびフィールドDと競合する可能性がある。さらに、フィールドCは、フィールドCの競合する可能性がある領域1416がフィールドDの競合する可能性がある領域1418と重複する領域で、フィールドDと競合する可能性がある。
【0123】
図15は、競合する可能性がある領域内にローカルメタデータを埋め込み、こうした領域のローカルメタデータを復号化するために2つの0.5共有のビットがEIC記号の1ビットを共有する例を示している。
【0124】
図25は、本発明の実施形態に従って、埋め込み対話コード文書にローカルメタデータを埋め込むステップおよび埋め込み対話コード文書からローカルメタデータを抽出するステップを示している。2502に示すように、複数のローカルメタデータの値は、ローカルメタデータの競合解決規則のセットに従い、複数の部分共有チャネルを経由して、複数のローカルメタデータフィールドのそれぞれに割り当てられる。2504に示すように、ローカルメタデータは、部分共有チャネルを復号化し、ローカルメタデータ競合解決規則のセットに従い、復号化されたローカルメタデータの値が競合する可能性を解決することによって、復号化される。
【0125】
競合が発生する可能性がある領域にローカルメタデータを埋め込みこれを復号化する場合に、様々な考慮事項および/または規則(ローカルメタデータ競合解決規則のセットとも呼ばれる)が適用されてもよい。次に例を示す。
【0126】
・ 文書内のいかなる場所でも、水平方向で競合発生する領域が2カ所を超えず、垂直方向で競合発生する領域が2カ所を超えないものとする。
【0127】
・ 競合する領域が発生する場合に、左の領域にあるローカルメタデータの値は右の領域にあるローカルメタデータの値よりも小さく、その値は連続しない。以上の規則の優先順位は、以下の規則の優先順位よりも高い(すなわち、以上の箇条書きの規則は、以下の箇条書きの規則より優先される)。
【0128】
・ 競合する領域が発生する場合に、上の領域にあるローカルメタデータの値は下の領域にあるローカルメタデータの値よりも小さく、その値は連続しなければならない。
【0129】
ペン先の位置とローカルメタデータを復号化した後、ローカルメタデータの競合が発生する可能性がある。これは、キャプチャされた1つのイメージから複数のローカルメタデータが発生する可能性があることを意味する。さらに、ローカルメタデータを復号化した結果に関して発生する可能性がある競合を解決するために、何らかの考慮事項および/または規則が適用されてもよい。これらの考慮事項には、以下が含まれる。
【0130】
・ ゼロでない4つのローカルメタデータの値が実質上同時に復号化される場合は、以下のようになる。
○ 図16に示すように、ペン先の位置が、キャプチャされたイメージの中心の左上にある場合は、復号化された最小のメタデータの値が正常な(競合が解決されたとも言う)ローカルメタデータの結果である。
○ 図17に示すように、ペン先の位置が、キャプチャされたイメージの中心の左下にある場合は、復号化された2番目に小さい(すなわち3番目に大きい)メタデータの値が正常なローカルメタデータの結果である。
○ 図18に示すように、ペン先の位置が、キャプチャされたイメージの中心の右上にある場合は、復号化された2番目に大きい(すなわち3番目に小さい)メタデータの値が正常なローカルメタデータの結果である。
○ 図19に示すように、ペン先の位置が、キャプチャされたイメージの中心の右下にある場合は、復号化された最大のメタデータの値が正常なローカルメタデータの結果である。
【0131】
・ ゼロでない連続する値を得る2つのローカルメタデータが実質上同時に復号化される場合は以下のようになる。
○ 図20に示すように、ペン先の位置が、キャプチャされたイメージの中心より上にある場合は、復号化された小さい方のメタデータの値が正常なローカルメタデータの結果である。
○ 図21に示すように、ペン先の位置がキャプチャされたイメージの中心より下にある場合は、大きい方の値が正常なローカルメタデータの結果である。
【0132】
・ ゼロでない連続しない値をとる2つのローカルメタデータの値が実質上同時に復号化される場合は以下のようになる。
○ 図22に示すように、ペン先の位置が、キャプチャされたイメージの中心の左にある場合は、復号化された小さい方のメタデータの値が正常なローカルメタデータの結果である。
○ 図23に示すように、ペン先の位置がキャプチャされたイメージの中心の右にある場合は、復号化された大きい方のメタデータの値が正常なローカルメタデータの結果である。
【0133】
文書の一部の領域にはローカルメタデータの競合は存在しない。例えば、独立したそれぞれのローカルメタデータチャネルのc=1023という値は、唯一の文書内の競合する領域にローカルメタデータの値を割り当てるために予約されているものとする。したがって、4つのローカルメタデータチャネルのそれぞれに対して、競合のない領域に使用できるl=(214−1)−cの値がある。これらの4つの0.5共有は、統一され、一緒に割り当てられてもよい。競合のない領域で利用できる一意のローカルメタデータの値の数は、L=lと表すことができる。次に、Lの範囲は、c≦L<(l+c)であり、この範囲内のローカルメタデータの値は競合のない領域に割り当てられる。
【0134】
前述の例では、ローカルメタデータアドレス空間Lは55ビットより大きく、およそ55.6ビットであるが、最適化の最大4×14=56ビットよりも小さい。これは、適切なアドレス空間以外は、最大4つのローカルメタデータ領域が競合する場合があり、重複する可能性があるため、アドレス指定に使用されないことを意味している。
【0135】
本発明の実施形態によるローカルメタデータの埋め込みソリューションは、拡張可能なので、他のタイプの競合を解決することもできる。以上の説明は、EIC配列ソリューションの1つの事例に関連しており、これまでに説明したEIC配列ソリューションの背後にはさらに拡張可能なEIC配列の設計が存在する。例えば、水平方向および/または垂直方向に拡張された3つの重複された領域に存在する可能性がある競合を解決するために、EIC配列のビットを1:5:0.33:0.33:0.33:0.33:0.33:0.33の比率で割り当ててもよい。さらに、ローカルメタデータを埋め込み、復号化する場合に、前述したものと同様の規則を適用してもよい。したがって、本発明の実施形態に従って1/2共有、1/3共有、1/4共有などの様々なタイプの部分共有を使用できる。
【0136】
ユニバーサルローカルメタデータは、アプリケーションまたはシステムによって予約されたローカルメタデータであるが、本発明の実施形態により、様々な文書およびフォームで使用できる。例えば、特定の学生に関する大学のファイルなどの特定のシステムでは、学生の情報が様々な文書および/またはフォーム、およびその様々なバージョンに記載される。同じ情報を伴うほとんどすべてのフォームのフィールド、例えば学生の名前、ID、および専攻などには、共通のローカルメタデータの値を割り当てることができる。このタイプの情報フィールドに割り当てられた値は、大学の学生情報データベースと同期してもよい。
【0137】
本発明の実施形態によるローカルメタデータの埋め込みおよび復号化技術は、次のように前述のローカルメタデータの使用をサポートできる。ローカルメタデータ復号化の競合が発生した場合に、競合を保持する(conflict−reserved)ローカルメタデータから一意のローカルメタデータへのマッピングテーブルを構成できる。マッピングテーブルはEIC文書を使用して保存でき、マッピングテーブルのコピーをイメージキャプチャペンで保存できるので、イメージキャプチャペンを使用してEIC文書と対話するときに、ローカルメタデータ復号化の競合を効率的に解決できる。
【0138】
本発明は添付の特許請求の範囲を使用して定義されるが、これらの特許請求の範囲は本発明を説明するためのものであり、本発明には本明細書で説明する要素およびステップの任意の組合せまたは任意の部分的な組合せが含まれることを意図している。したがって、本発明を定義する代わりの組合せは任意の数だけ存在しており、説明、特許請求の範囲、および図を含む本明細書の1つまたは複数の要素が、様々な組合せまたは部分的な組合せによって組み込まれている。本明細書に照らして、本発明の態様の代替としての組合せは、単独であっても、本明細書で定義した1つまたは複数の要素またはステップとの組合せであっても、本発明または本発明の一部を変更または代替として利用できることは、当業者には理解されるであろう。本明細書に記載される本発明の実施形態の説明は、こうした変更と代替をすべて含むものとする。
【図面の簡単な説明】
【0139】
【図1】本発明の実施形態と組み合わせて使用できるコンピュータの一般的な説明を示す図である。
【図2A】本発明の実施形態によるイメージキャプチャシステムと、対応するキャプチャされたイメージを示す図である。
【図2B】本発明の実施形態によるイメージキャプチャシステムと、対応するキャプチャされたイメージを示す図である。
【図3A】本発明の実施形態による、情報を符号化するための様々な列と畳み込み技術を示す図である。
【図3B】本発明の実施形態による、情報を符号化するための様々な列と畳み込み技術を示す図である。
【図3C】本発明の実施形態による、情報を符号化するための様々な列と畳み込み技術を示す図である。
【図3D】本発明の実施形態による、情報を符号化するための様々な列と畳み込み技術を示す図である。
【図3E】本発明の実施形態による、情報を符号化するための様々な列と畳み込み技術を示す図である。
【図3F】本発明の実施形態による、情報を符号化するための様々な列と畳み込み技術を示す図である。
【図4A】図4Aと4Bによる符号化システムに関連して得られる4つのコーナーを示す図である。
【図4B】図4Aと4Bによる符号化システムに関連して得られる4つのコーナーを示す図である。
【図4C】図4Aと4Bによる符号化システムに関連して得られる4つのコーナーを示す図である。
【図4D】図4Aと4Bによる符号化システムに関連して得られる4つのコーナーを示す図である。
【図5】本発明の実施形態によるキャプチャされたイメージ部分の回転を示す図である。
【図6】図4Aから4Eに示す符号化システムと組み合わせて使用する様々な回転の角度を示す図である。
【図7】本発明の実施形態によるキャプチャされた配列の位置を決定するプロセスを示す図である。
【図8】本発明の実施形態による、キャプチャされたイメージの位置を決定する方法を示す図である。
【図9】本発明の実施形態による、キャプチャされたイメージの位置を決定するもう1つの方法を示す図である。
【図10】本発明の実施形態による、ローカルメタデータを符号化するシステムを示す流れ図である。
【図11】メタデータを格納する技術を示す図である。
【図12】メタデータを格納する技術を示す図である。
【図13】メタデータを格納する技術を示す図である。
【図14A】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図14B】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図14C】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図14D】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図14E】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図15】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図16】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図17】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図18】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図19】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図20】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図21】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図22】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図23】本発明の態様による、メタデータを格納し、復号化する技術を示す図である。
【図24】本発明の実施形態による埋め込み対話コード(EIC)記号の例を示す図である。
【図25】本発明の実施形態による、埋め込み対話コード文書にローカルメタデータを埋め込むステップ、および埋め込み対話コード文書からローカルメタデータを抽出するステップを示す図である。
【図26】本発明の実施形態による、ローカルメタデータを復号化するシステムを示す流れ図である。
【図27】本発明の実施形態により、ローカルメタデータを符号化する例を示す図である。
【符号の説明】
【0140】
120 処理装置
121 システムバス
130 システムメモリ
134 オペレーティングシステム
135 アプリケーションプログラム
136 その他のプログラムモジュール
137 プログラムデータ
140 取り外し不可能な不揮発性メモリインターフェース
144 オペレーティングシステム
145 アプリケーションプログラム
146 その他のプログラムモジュール
147 プログラムデータ
150 取り外し可能な不揮発性メモリインターフェース
160 ユーザ入力インターフェース
161 マウス
162 キーボード
165 デジタイザ
170 ネットワークインターフェース
171 ローカルエリアネットワーク
173 ワイドエリアネットワーク
172 モデム
180 リモートコンピュータ
181 メモリ
185 アプリケーションプログラム
190 ビデオインターフェース
191 モニタ
195 出力周辺インターフェース
196 スピーカ
197 プリンタ

【特許請求の範囲】
【請求項1】
ローカルメタデータの競合解決規則のセットに従い、複数のローカルメタデータの値を、複数の部分共有チャネルを経由して、複数のローカルメタデータフィールドのそれぞれに割り当てるステップ
を備えるステップを実行することによって、埋め込み対話コード文書にローカルメタデータを埋め込むコンピュータ実行可能命令を格納することを特徴とするコンピュータ可読媒体。
【請求項2】
前記複数のローカルメタデータフィールドの第1のローカルメタデータフィールドが前記複数のローカルメタデータフィールドの第2のローカルメタデータフィールドの左にある場合に、前記第1のローカルメタデータの値は前記第2のローカルメタデータの値より小さいことを特徴とする請求項1に記載のコンピュータ可読媒体。
【請求項3】
前記第1のローカルメタデータの値と前記第2のローカルメタデータの値は連続しないことを特徴とする請求項2に記載のコンピュータ可読媒体。
【請求項4】
前記複数のローカルメタデータフィールドの第3のローカルメタデータフィールドが前記複数のローカルメタデータフィールドの第4のローカルメタデータフィールドより上にある場合に、前記第3のローカルメタデータの値は前記第4のローカルメタデータの値より小さいことを特徴とする請求項3に記載のコンピュータ可読媒体。
【請求項5】
前記第3のローカルメタデータの値と前記第4のローカルメタデータの値は連続することを特徴とする請求項4に記載のコンピュータ可読媒体。
【請求項6】
前記第1と第2のローカルメタデータフィールドに関する規則は、前記第3と第4のローカルメタデータフィールドに関する規則より優先されることを特徴とする請求項5に記載のコンピュータ可読媒体。
【請求項7】
複数の部分共有チャネルを復号化するステップを備えるステップを実行することと、復号化されたローカルメタデータの値が競合する可能性をローカルメタデータの競合解決規則のセットに従って解決することとによって、
埋め込み対話コード文書からローカルメタデータを復号化するコンピュータ実行可能命令を格納することを特徴とするコンピュータ可読媒体。
【請求項8】
4つのローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が左上にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記4つのローカルメタデータの値の中で復号化された最小のローカルメタデータの値が選択されることを特徴とする請求項7に記載のコンピュータ可読媒体。
【請求項9】
4つのローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が左下にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記4つのローカルメタデータの値の中で復号化された2番目に小さいメタデータの値が選択されることを特徴とする請求項8に記載のコンピュータ可読媒体。
【請求項10】
4つのローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が右上にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記4つのローカルメタデータの値の中で復号化された2番目に大きいローカルメタデータの値が選択されることを特徴とする請求項9に記載のコンピュータ可読媒体。
【請求項11】
4つのローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が右下にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記4つのローカルメタデータの値の中で復号化された最大のメタデータの値が選択されることを特徴とする請求項10に記載のコンピュータ可読媒体。
【請求項12】
2つの連続するローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が上にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記2つの連続するローカルメタデータの値の中で復号化された小さい方のローカルメタデータの値が選択されることを特徴とする請求項11に記載のコンピュータ可読媒体。
【請求項13】
2つの連続するローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が下にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記2つの連続するローカルメタデータの値の中で復号化された大きい方のローカルメタデータの値が選択されることを特徴とする請求項12に記載のコンピュータ可読媒体。
【請求項14】
2つの連続しないローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が左にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記2つの連続しないローカルメタデータの値の中で復号化された小さい方のローカルメタデータの値が選択されることを特徴とする請求項13に記載のコンピュータ可読媒体。
【請求項15】
2つの連続しないローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が右にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記2つの連続しないローカルメタデータの値の中で復号化された大きい方のローカルメタデータの値が選択されることを特徴とする請求項14に記載のコンピュータ可読媒体。
【請求項16】
ローカルメタデータの競合解決規則のセットに従い、複数のローカルメタデータの値を、複数の部分共有チャネルを経由して、複数のローカルメタデータフィールドのそれぞれに割り当てるステップと、
前記複数の部分共有チャネルを復号化することと、復号化されたローカルメタデータの値が競合の可能性を前記ローカルメタデータの競合解決規則のセットに従って解決することとによって、前記ローカルメタデータを復号化するステップと
を備えるステップを実行することによって、埋め込み対話コード文書にローカルメタデータを埋め込み、前記埋め込み対話コード文書から前記ローカルメタデータを抽出するコンピュータ実行可能命令を格納することを特徴とするコンピュータ可読媒体。
【請求項17】
前記複数のローカルメタデータフィールドの第1のローカルメタデータフィールドが前記複数のローカルメタデータフィールドの第2のローカルメタデータフィールドの左にある場合に、前記第1のローカルメタデータの値は前記第2のローカルメタデータの値より小さいことと、
前記第1のローカルメタデータの値と前記第2のローカルメタデータの値とは連続しないことと、
前記複数のローカルメタデータフィールドの第3のローカルメタデータフィールドが前記複数のローカルメタデータフィールドの第4のローカルメタデータフィールドより上にある場合に、前記第3のローカルメタデータの値は前記第4のローカルメタデータの値より小さいことと、
前記第3のローカルメタデータの値と前記第4のローカルメタデータの値とは連続することと、
前記第1と第2のローカルメタデータフィールドとに関する規則は、前記第3と第4のローカルメタデータフィールドとに関する規則より優先されることと
を特徴とする請求項16に記載のコンピュータ可読媒体。
【請求項18】
4つのローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が左上にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記4つのローカルメタデータの値の中で復号化された最小のローカルメタデータの値が選択されることと、
4つのローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が左下にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記4つのローカルメタデータの値の中で復号化された2番目に小さいメタデータの値が選択されることと、
4つのローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が右上にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記4つのローカルメタデータの値の中で復号化された2番目に大きいローカルメタデータの値が選択されることと、
4つのローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が右下にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記4つのローカルメタデータの値の中で復号化された最大のメタデータの値が選択されることと
を特徴とする請求項17に記載のコンピュータ可読媒体。
【請求項19】
2つの連続するローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が上にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記2つの連続するローカルメタデータの値の中で復号化された小さい方のローカルメタデータの値が選択されることと、
2つの連続するローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が下にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記2つの連続するローカルメタデータの値の中で復号化された大きい方のローカルメタデータの値が選択されることと
を特徴とする請求項18に記載のコンピュータ可読媒体。
【請求項20】
2つの連続しないローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が左にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記2つの連続しないローカルメタデータの値の中で復号化された小さい方のローカルメタデータの値が選択されることと、
2つの連続しないローカルメタデータの値が復号化され、前記ローカルメタデータが復号化されるキャプチャされたイメージの中心よりペン先の位置が右にある場合は、復号化され、競合が解決されたローカルメタデータの結果として、前記2つの連続しないローカルメタデータの値の中で復号化された大きい方のローカルメタデータの値が選択されることと
を特徴とする請求項19に記載のコンピュータ可読媒体。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図3D】
image rotate

【図3E】
image rotate

【図3F】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図4C】
image rotate

【図4D】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14A】
image rotate

【図14B】
image rotate

【図14C】
image rotate

【図14D】
image rotate

【図14E】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate


【公開番号】特開2006−325180(P2006−325180A)
【公開日】平成18年11月30日(2006.11.30)
【国際特許分類】
【外国語出願】
【出願番号】特願2005−351235(P2005−351235)
【出願日】平成17年12月5日(2005.12.5)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】