(57)【要約】タッチセンサを含むがこれに限定されない間接的インターラクション型入力装置は複数の入力点を提供できる。これらの複数の点はディスプレイなどの出力装置上の複数の点に対応付けられる。しかし、複数の入力点は、ポインタ弾道の適用と、入力センサと目標ディスプレイとの間の解像度の違いを管理しづらくする。そのため、複数の点の特徴を特定して用いて、各点の対応付けを調整する。例えば、この問題を解決する一方法は、前のフレームからの、前の点から、または基準点からの変位が最も小さい入力点を特定することである。この変位を用いて、入力装置から対応するディスプレイ座標への一組の入力点の対応付けを調節する。
2014532908.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実施される方法であって、
複数のフレームについて、マルチポインタ間接入力装置から複数の入力点を示す情報をメモリに受け取るステップと、
前記複数のフレームのうちの一フレームの前記複数の入力点を、ディスプレイのディスプレイ座標空間中の複数の位置に対応付けるステップと、
前記複数のフレームのうちの他の一フレーム中の他の一点に対して、前記一フレーム中の前記複数の入力点の各々の変位を決定するステップと、
前記決定された変位により、前記複数の入力点の対応付けを修正するステップと、
前記入力点の修正された対応付けにより、ディスプレイ上に複数の点を表示するステップと
を有する、方法。
【請求項２】
前記対応付けを修正するステップは、
前記複数の点のうちの変位が最も小さい点を選択するステップと、
前記最も小さい変位によりオフセットを決定するステップと、
各入力点について、対応付けられた位置に前記オフセットを加えるステップと
を有する、請求項１に記載のコンピュータにより実施される方法。
【請求項３】
前記対応付けを修正するステップは、
前記複数の点のうちの変位が最も小さい点を選択するステップと、
前記最も小さい変位により前記複数の入力点に関する基準点に、オフセットを適用するステップと、
各入力点について、その位置を、前記基準点からのオフセットにより決定するステップと
を有する、請求項１に記載のコンピュータにより実施される方法。
【請求項４】
前記他の一フレームの他の点は、前記他の一フレーム中の前記一入力点の位置である、
請求項１に記載のコンピュータにより実施される方法。
【請求項５】
前記他のフレーム中の前記他の点は前記他のフレームのセンサロケータである、
請求項１に記載のコンピュータにより実施される方法。
【請求項６】
小さな変位により、一フレームから次のフレームへの点の変位を減らすように、対応付けが調整される、
請求項１に記載のコンピュータにより実施される方法。
【請求項７】
大きな変位により、一フレームから次のフレームへの点の変位を増やすように、対応付けが調整される、
請求項１に記載のコンピュータにより実施される方法。
【請求項８】
前記対応付けを修正するステップは、各軸に対して異なる加速機能を適用する、
請求項１に記載のコンピュータにより実施される方法。
【請求項９】
前記対応付けを修正するステップは、前記変位の大きさにより加速を適用する、
請求項１に記載のコンピュータにより実施される方法。
【請求項１０】
製品であって、
コンピュータプログラム命令がエンコードされたコンピュータ読み取り可能記憶媒体を有し、前記コンピュータプログラム命令は、コンピュータにより処理されると、前記コンピュータに、
複数のフレームについて、マルチポインタ間接入力装置から複数の入力点を示す情報をメモリに受け取るステップと、
前記複数のフレームのうちの一フレームの前記複数の入力点を、ディスプレイのディスプレイ座標空間中の複数の位置に対応付けるステップと、
前記複数のフレームのうちの他の一フレーム中の他の一点に対して、前記一フレーム中の前記複数の入力点の各々の変位を決定するステップと、
前記決定された変位により、前記複数の入力点の対応付けを修正するステップと、
前記入力点の修正された対応付けにより、ディスプレイ上に複数の点を表示するステップと
を実行させる、製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一実施形態は、マルチポインタ間接入力装置の加速度によるインターラクションに関する。
【背景技術】
【０００２】
コンピューティングシステムのナビゲーションと空間的コントロールに用いるマニュアル入力装置は、コンピュータシステムの機能及び全体的なユーザ体験に対して大きなインパクトを有する。複数種類のマニュアル入力装置がある。パーソナルコンピュータで最も一般的なものには、マウスやタッチパッドなどのシングルポインタ間接インターラクション型装置と、タッチスクリーンなどの直接インターラクション型装置がある。
【０００３】
シングルポインタ間接インターラクション型装置センサは、センサとのユーザインターラクションを検知して、このインターラクションをディスプレイ上の位置に対応させる。入力ポイントをディスプレイに対応させる一方法には、センサ範囲（sensor extents）のディスプレイ範囲（extents
of the display）への一対一対応があり、これは絶対対応と呼ばれる。絶対対応を用いる装置例としてはペンタッチ型デジタイザがある。他の一方法には、装置センサ座標のディスプレイの可動部分への対応があり、これは相対対応と呼ばれる。
【０００４】
相対的対応を用いる装置例としては、マウスや、マウスをエミュレートする装置、例えばトラックパッドなどがある。マウスは、検知されたその装置とのインターラクションに基づいて、動きを検知して、仮想開始点をある距離だけ移動させる。トラックパッドは一般的にマウスと同様に用いられる。トラックパッドへのコンタクトの動きが検知され、検知された動きはマウス入力と同様に処理される。
【０００５】
直接インターラクション型装置により、ディスプレイと仮想的にアライン（align）された装置とインターラクションできる。直接インターラクション型装置は、タッチ検知面上の位置と、同じサイズのディスプレイ上の位置とを、絶対対応を用いて、対応させる。例えば、ユーザがタッチスクリーン上の点にタッチすると、入力イベントが、ユーザインタフェース中の、ユーザによりタッチされたディスプレイ上の点に対応する位置において、コマンド起動などのアプリケーション応答をトリガーする。
【０００６】
マルチポインタ入力からの空間的入力のディスプレイへの絶対及び相対対応付け（mapping）には、入力装置及びディスプレイ装置の物理的属性、システムの能力、アプリケーションユーザインタフェースの性質とレイアウト、ユーザが実行するタスクの種類、及び様々なエルゴノミック要因に応じて、利点と欠点がある。
【０００７】
例えば、相対的マッピングモードでは、入力装置センサは目標ディスプレイ座標空間の一部のみに広がっている。それゆえ、入力点の動きが検出されているうちに、その点の、ある形式の加速を用いなければ、一表示位置から他の一表示位置へのナビゲーションには複数のストロークが含まれ得る。逆に、ピクセルレベルの、ポイントツーポイントの目標精度を達成するため、その点の、ある形式の減速を用いることができる。かかる加速と減速は「ポインタ弾道」と呼ぶこともある。他の一例として、絶対対応付けモードにおいて、入力センサは、ディスプレイ座標空間に対して、解像度がずっと低く、アスペクト比が大きく異なるかも知れない。それゆえ、ピクセルレベルのポイントツーポイントのナビゲーションにおける精度を実現することは、ある形式の正の及び／または負の加速がなければ困難である。
【発明の概要】
【０００８】
本欄では、発明の詳細な説明で詳しく説明するコンセプトの一部を選んで、簡単に説明する。本欄は、特許を請求する主題の重要な特徴や本質的な特徴を特定するものではなく、特許を請求する主題の範囲を限定するものでもない。
【０００９】
間接的インターラクション型入力装置は、一または複数の入力センサを含む。各センサは複数の入力点を検知して提供できる。本技術分野では様々なマルチポイント入力検知技術が知られており、容量型、抵抗型、及び圧力型タッチセンサ、光センサ、及びモーションビデオ・スケルタル・トラッキングシステムが含まれるがこれらに限定されない。センサ入力点をディスプレイ等の出力への対応付けに適用される計算は、センサが（２次元座標空間中の離散的位置以外の）入力点を確定するやり方、及び入力点を検知するやり方には依存しない。例えば、タッチセンシティブセンサは、座標空間中のユーザがセンサにタッチしている二以上の位置を示すデータを提供できる。かかるセンサは形状が四角形であってもよいが、他の形状でもよい。センサはトラックパッドと同様に見えるが、一点の動きをトラッキングするのではなく、ユーザがタッチした複数の店を検知する。これらの複数の点はディスプレイなどの出力装置上の複数の点に対応付けられる。
【００１０】
しかし、複数の入力点は、ポインタ弾道の適用と、入力センサと目標ディスプレイとの間の解像度の違いを管理しづらくする。そのため、複数の点の特徴を特定して用いて、各点の対応付けを調整する。例えば、この問題を解決する一方法は、前のフレームからの、前の位置から、または基準点からの変位が最も小さい入力点を特定することである。この変位を用いて、センサから対応するディスプレイ座標への一組の入力点の対応付けを調節する。
【００１１】
したがって、一態様では、マルチポインタ間接入力型装置センサ上の入力点を示す情報をメモリに受け取る。入力点は、表示のため、ディスプレイ座標空間中の位置に対応付けられる。２つの時点間の入力点の変位を決定する。決定した変位により、入力点の対応付けを修正する。入力点の修正された対応付けにより、ディスプレイ上に複数の点を表示する。
【００１２】
以下の説明では、本手法の一部を構成する、本手法の具体的な実施例を例示として示す添付図面を参照する。言うまでもなく、これ以外の実施形態を用いてもよく、本開示の範囲から逸脱することなく、構造的な変更を施すこともできる。
【図面の簡単な説明】
【００１３】
【図１】マルチポインタ間接入力装置を用いるシステムを示すブロック図である。
【図２】ビューポート配置の一実施形態を示すフローチャートである。
【図３】入力対応付けの一実施形態を示すフローチャートである。
【図４】入力対応付けの他の一実施形態を示すフローチャートである。
【図５】入力加速の一実施形態を示すフローチャートである。
【図６】スパン調整の一実施形態を示すフローチャートである。
【図７】かかるシステムを実施できる一コンピューティング装置例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下のセクションでは、マルチポインタ、間接入力装置を用いることができる一動作環境例をを説明する。
【００１５】
図１を参照するに、コンピュータシステム１００は、コンピュータプラットフォーム１０４（その一例の詳細は後で説明する）に接続された、センサを有するマルチポインタ間接入力装置１０２を含む。かかるコンピュータシステムは、パーソナルコンピュータ、ホームエンターテイメントシステム、プロジェクタ、キオスクアプリケーション、小型パーソナルエレクトロニクスなどであり得る。コンピュータプラットフォームは、一または複数のアプリケーション１０８と、コンピュータプラットフォーム１０４の資源（コンピュータプラットフォーム１０４のマルチポインタ間接入力装置を含む周辺装置）との間のインターラクションを管理するオペレーティングシステムを有する。
【００１６】
オペレーティングシステムにおいては、複数の検知された入力点１１０を記述するデータが、マルチポインタ間接入力装置１０２のセンサから受け取られる。これらの入力点は処理され、ディスプレイ１２０上の点に対応付けられる。
【００１７】
この対応付けプロセスは、装置座標系のディスプレイ座標系への最初の対応付けを決定し、これは相対的でも絶対的でもよく、次に、装置座標系からディスプレイ座標系への各点の対応付けを決定する。かかる最初の対応付けは、各入力セッションの初めに行われる。
【００１８】
入力セッションは第１の入力がセンサにより検知された時点から、最後の入力がセンサから無くなった時点までである。入力セッション中、入力点は動きやすい。入力点はセンサ座標系の新しい位置から、ディスプレイ座標系の対応する新しい位置に対応付けられる。この動き対応付けには、バウンディングと加速などの問題を考慮できる。
【００１９】
図１に示したように、入力セッションの初めに、複数の点１１０がビューポート選択モジュール１３０に入力される。ビューポート選択モジュールは、その出力として、ディスプレイ座標系におけるビューポートサイズと位置１３２を提供する。ビューポートは、センサ座標空間が対応付け（mapped）られるディスプレイ座標空間中の領域を確定する。複数の装置センサがシステムに接続される構成では、各センサは自分のビューポートを有する。ビューポートは、入力装置センサの形状に対応する形状を有し得る。しかし、いくつかの実施では、ビューポートは、センサとは異なるアスペクト比や方向を、さらには異なる形状を有していてもよい。例えば、楕円形のセンサが四角形のビューポートに対応付けられてもよい。ビューポートの形状は一般的に干すとシステムにより確定されるが、装置やユーザによって確定されてもよい。ビューポートのサイズと位置は、ユーザ入力がセンサにより検知された時に計算される。ユーザ入力がセンサにより検知されていなければ、ビューポートのサイズと位置は確定されない。ビューポートは一般的にはユーザに表示されない。総合して、ビューポートの形状、サイズ及び位置は、センサ座標系のディスプレイ座標系への対応付けを表す。設定１３４は、後で例を詳細に説明するが、相対的または絶対的な対応付けなどにより、この対応付けをどう行うかを決定する。
【００２０】
また、複数の点１１０は、入力セッションにより入力対応付けモジュール１４０に入力される。入力対応付けモジュールは、その出力として、ディスプレイ座標系における複数の点１４２を提供する。設定１３４は、あとで例を詳細に説明するが、相対的入力位置を解釈し、入力運動加速度、スパン調節、及び制約条件を適用するために、装置とディスプレイの基準位置を決定することなどにより、各点がどう対応付けられるか決定する。
【００２１】
複数の点１４２は、ディスプレイ座標系に対応付けられると、ディスプレイ上に表示できる。各点は、例えば、表示されたアイテムを選択するための単一の点と同様に、または、例えば、ホストシステムユーザインタフェースにおいて要素のズーム、回転、または動きの実行をする直接タッチ入力センサからの複数点と同様に、オペレーティングシステム１０６及び／またはアプリケーション１０８により処理できる。ディスプレイに対応づけられたマルチポイントの可能性のある利用範囲は、本発明を限定するものではない。
【００２２】
この場合において、図２、図３および図４を参照して、マルチポイント（multiple points）のディスプレイへの対応付けの実施例をより詳細に説明する。
【００２３】
図２において、フローチャートは、ビューポートのサイズと位置がビューポート選択モジュールによりどのように選択できるか、及び複数の点（points）がどのように対応付けできるか、実施形態を説明している。
【００２４】
留意点として、以下の実施形態は、所望のユーザ体験に関する設計上の意志決定に基づく。例えば、物理的な各点の他の物理的な点に対する相対的な位置は、ディスプレイへの投影時、保持されるものと仮定する。また、すべての入力間の距離は対称的にスケールされるものと仮定する。
【００２５】
ユーザ体験の他の一側面は、入力装置とディスプレイとの間の対応付けの種類である。対応付け（mapping）は相対的なものと絶対的なものがあり、各軸について独立でもよい。例えば、ｙ軸に相対的対応付けを適用し、ｘ軸に絶対的対応付けを適用してもよいし、その逆であってもよい。また、両方の軸について、異なる相対的対応付け（relative mappings）を用いることもできる。また、対応付けは、論理的座標に基づいても、または入力装置とディスプレイの物理的寸法に基づいてもよい。対応付けが装置の物理的寸法に基づく場合、空間的精度を高め、より直感的で認識効率の高いインタフェースを提供する。対応付けの種類に関するこれらの決定は、システムにおける任意的な設定であってもよい。
【００２６】
ユーザ体験の他の一側面は制約ポリシーである。具体的に、装置入力はシステムのディスプレイ制約ポリシーを条件とできる。例えば、すべての装置入力を、ディスプレイ内に留まるように強制しても、またはそのうちの一装置入力のみを、ディスプレイ内に留まるように強制してもよい。他の一実施形態では、制約ポリシーを用いない。制約ポリシーに関するこれらの決定は、システムにおける任意的な設定であってもよい。
【００２７】
ビューポートのサイズと位置は、各入力セッションの初めに決定される。例えば、ユーザ入力が無い期間の後、センサにより一または複数の入力点が検知されると、入力セッションの開始が検知される（２００）。各軸のビューポートの寸法は、入力装置、ホストシステム、またはユーザにより確定され得る。この寸法は、目標ディスプレイ装置のパーセンテージまたは物理的な距離単位で表される。物理的な距離単位を用いる場合、入力センサとディスプレイの両方の物理的及び論理的（座標）範囲が、例えば、装置、ユーザ入力、またはその他の手段により提供される。ディスプレイ座標空間における出力ロケータの位置を読み出す（２０１）。この実施形態では、出力ロケータの位置は、（ユーザのログインに始まり、ユーザのログオフで終わる）ユーザセッションに対してグローバルである。出力ロケータ位置は、システムに接続された複数のシングルポインタ入力装置及びマルチポインタ入力装置間で共有され、更新される。出力ロケータは、前の入力セッションで保存された位置であってもよい。事前に入力セッションが無ければ、ディスプレイ装置の中心、マウスその他の装置の最終位置、または別のデフォルトディスプレイ位置が、出力ロケータ位置として用いられる。
【００２８】
次に、ディスプレイ装置と入力装置の既知のパラメータ、すなわち座標と境界が与えられると、各軸のスケーリングファクタが決定される（２０２）。これらのパラメータは、一般的に、メモリに格納される。ディスプレイ装置の場合、パラメータはシステムAPIを用いて読み出すことができる。入力装置の場合、パラメータは、装置問い合わせ（device interrogation）により読み出すことができる。ディスプレイ装置と入力装置の座標と境界（bounds）があれば、スケーリングファクタが決まる。絶対的対応付けを用いる場合、物理的範囲に基づく計算は必要ない。ｘ軸とｙ軸のスケールファクタは、装置とディスプレイの座標範囲の一対一の比率に基づく。相対的対応付けを用いる場合、ｘ軸とｙ軸のスケールファクタは、装置の寸法の、ディスプレイ座標中のビューポートの寸法に対する比率により決まる。スケールファクタは、一度計算され、メモリに格納され、必要に応じて読み出される。
【００２９】
ディスプレイ座標空間におけるビューポート範囲、すなわち頂点のｘ及びｙ座標は、決定されたスケールファクタを用いて決定される（２０３）。新しい出力ロケータが次のように計算される前に、保存された出力ロケータを用いて入力セッションに対して最初にビューポート範囲が決定される。
【００３０】
ディスプレイの画素密度を用いてスケールされたビューポートの場合、スケールファクタSVは非ゼロで、０と１の間の正値であり、ビューポートの範囲は、
Ｒｖ＝
｛ＬＶ０ｘ−ＳＶｘ／［２＊ｅｘｔｅｎｔ（ＲＤｘ）］，
ＬＶ０ｘ＋ＳＶｘ／［２＊ｅｘｔｅｎｔ（ＲＤｘ）］，
ＬＶ０ｙ−ＳＶｙ／［２＊ｅｘｔｅｎｔ（ＲＤｙ）］，
ＬＶ０ｙ＋ＳＶｙ／［２＊ｅｘｔｅｎｔ（ＲＤｙ）］｝、
ここで、ＬＶ０は初期ビューポートロケータであり、一般的には目標ディスプレイの中心であり、ＳＶはスケールファクタであり、範囲（ＲＤ）はディスプレイのｘ及びｙ座標範囲、すなわち画素幅及び高さであり、添え字ｘとｙはｘ軸及びｙ軸における値を示す。
【００３１】
物理的寸法を用いるビューポートの場合、所望のサイズＳＶは非ゼロ、正数であり、目標ディスプレイの物理的範囲より大きくなく、ディスプレイの画素密度Ｄはハードウェア問い合わせにより知ることができ、ビューポートの範囲は、
Ｒｖ＝
｛［ＬＶ０ｘ−ＳＶｘ／［２＊ｅｘｔｅｎｔ（ＲＤｘ）］］＊Ｄｘ＋ＲＤｘ．ｌｅｆｔ，
［ＬＶ０ｘ＋［ＳＶｘ／［２＊ｅｘｔｅｎｔ（ＲＤｘ）］］＊Ｄｘ＋ＲＤｘ．ｌｅｆｔ，
［ＬＶ０ｙ−［ＳＶｙ／［２＊ｅｘｔｅｎｔ（ＲＤｙ）］］＊Ｄｙ＋ＲＤｙ．ｔｏｐ，
［ＬＶ０ｙ＋ＳＶｙ／［２＊ｅｘｔｅｎｔ（ＲＤｙ）］］＊Ｄｙ＋ＲＤｙ．ｔｏｐ｝。
【００３２】
ビューポートの初期範囲が与えられると、最初は装置座標系中ににセンサロケータが決まる（２０４）。センサロケータを選択する方法はたくさんあり、所望のユーザインターラクションに応じて方法が選択される。例えば、センサにより一入力が検知された場合、センサロケータはこの一入力の座標であってもよい。複数の入力がある場合、センサロケータは、１つの「主要な」入力の位置であってもよいし、他の入力に関連した一点、例えばすべての点の幾何学的中心であってもよい。入力点が検知されなければ、センサロケータは確定されず、入力セッション間で存続しない。
【００３３】
主要な入力の位置をセンサロケータとして用いる場合、様々な方法を用いてその入力を主要なものとして選択しアサインすることができる。一般的に、「主要な」入力は、任意の方法により選択された入力点である。例えば、主要な入力は、そのセッションにおいて検知された最初の入力または最後の入力であり得る。この方法には、複数の入力が同時にあった場合に、無作為による選択を強制しなければならないという欠点がある。解決策としては、主要な入力を、ある形式の幾何学的順序により、例えば幾何学的ソーティングの式による最高次入力などにより選択することである。例えば、ソーティングの式は、すべての入力と基準点の幾何学的中心にある原点に対して、各入力点により形成される角度をソートできる。基準点は、例えば、ユーザの利き手に基づき測定された角度を有する垂直線であり得る。
【００３４】
方法にかかわらず、センサロケータの決定は、入力の到着時間及び出発時間により影響を受ける。ユーザが複数の入力を同時に触れたいまたは離したいが、少し異なる時間に触れたまたは離した状況に対する保護として、短い時間ウィンドウ（例えば、１０−６０ｍｓ）を用いて、センサロケータの計算を遅らせることができる。
【００３５】
次に、センサロケータ一が、装置座標からディスプレイ座標に対応付けられる（２０５）。結果は、フレームの新しい出力ロケータ位置である。この位置は式［ＬＳ／ｅｘｔｅｎｔ（ＲＳ）＊ｅｘｔｅｎｔ（ＲＶ）］＋ＲＶ０により計算できる。ここで、ＬＳはセンサロケータのｘまたはｙ座標であり、ｅｘｔｅｎｔ（ＲＳ）はセンサ座標空間の幅または高さであり、ｅｘｔｅｎｔ（ＲＶ）はビューポートの幅または高さであり、ＲＶ０は初期ビューポートの幅または高さである。この新しい出力ロケータは、ディスプレイの境界内に制約される。
【００３６】
新しい出力ロケータが与えられると、ビューポートは、ビューポートロケータを取得することにより、ディスプレイ座標空間中に配置される（２０６）。セッションの最初のフレームについて、ビューポート位置が決定される。後続のフレームにおいて、その位置がメモリから読み出される。ビューポートの位置は論理的に決定される。すなわち、ビューポートを表示するかどうかは任意的である。実際、ほとんどの実施形態では、ビューポートを表示しない方が好ましいようだ。
【００３７】
上記の通り、ビューポートはディスプレイ上の入力センサ座標空間のプロジェクションであり、ビューポートロケータ位置はディスプレイ座標におけるビューポートの幾何学的中心である。上記の通り、出力ロケータとは異なり、ビューポートは入力がセンサにより検知されなければ、確定されない。ビューポートは（ユーザセッションに対してグローバルではなく）装置インスタンスに関連し、その位置はユーザがセンサ上に最初に入力した時に更新される。入力セッションが始まると、その入力セッションが終わるまで、ビューポートはフレーム間で静止している。フレームが入力セッションの継続を示す（前と現在のフレームの両方の入力のリストが空でない）場合、ビューポートロケータがメモリから読み出される。フレームが新しい入力セッションの始まりである場合、ビューポートロケータは（ステップ２０５で決定された）センサロケータと（ステップ２０１で決定された）出力ロケータ位置との間のオフセットを決めることにより、次式により得られる。
ΔＬＤ＝ＬＤ−ＬＤ０
ＬＶ＝［ＬＳ／ｅｘｔｅｎｔ（ＲＳ）＊ｅｘｔｅｎｔ（ＲＶ）］＋ＬＶ０＋ΔＬＤ
ＬＶは目標ディスプレイの境界に制約され、上記の決められたビューポートの範囲は新しいビューポートロケータを用いて再計算される。
【００３８】
センサロケータ、ビューポートロケータ、及びフレームの出力ロケータを計算した後、そのフレームのセンサ入力が、以下により詳しく説明するように、ディスプレイ座標に対応付けられる（２０８）。ステップ２１０で決定されたように、入力セッションが終わると、入力セッションに関する情報（最後の出力ロケータなど）が保存される（２１２）。入力セッションが終わっておらず、（ステップ２１４で決定された）更新されたセンサ入力位置が受け取られた場合、プロセスは、そのフレームのセンサロケータを決定するステップ２０４から、これらの新しい入力をディスプレイに対応付けするステップ２０８までを繰り返す。しかし、フレームが継続中のセッションの一部である場合、ビューポートロケータはステップ２０６で決定されず、メモリから読み出される。
【００３９】
図３は、ビューポートのサイズと位置が与えられると、センサ入力がビューポート中の点にどうやって対応付けられるかを、（関連する対応付けが行われる場合の）単一ディスプレイ上での境界条件の強制も含めて示している。図３は、すべての入力がディスプレイ中にあるように制約された場合を示す。
【００４０】
システムは、装置から入力点のリストを受け取る（３００）。各入力点は装置座標空間中の座標を有する。次に、入力点を、ディスプレイ座標空間中の対応する点に対応付ける（３０２）。例えば、装置座標空間中点ＣＳのディスプレイ座標空間中の座標ＣＤは、［ＣＳ／ｅｘｔｅｎｔ（ＲＳ）＊ｅｘｔｅｎｔ（ＲＶ）］＋ＲＶにより計算できる。
【００４１】
入力点を含む境界ボックスを確定する（３０４）。境界ボックスの角が、ディスプレイの見える範囲に対応付けられ、比較される（３０６）。境界ボックスのどの角もディスプレイの見えるエリアの外側であれば、入力対応付けが保持される（３１０）。そうでなければ、境界ボックスをディスプレイの見える範囲内に動かすオフセットを決定する（３１２）。最小の救済オフセットの計算において、入力境界ボックスの各非適合角の前と現在のフレームの間の変位ベクトルまたは個々の入力は、経路と、それの見えるディスプレイ境界との交点とを確定する。救済オフセットは、その経路の原点と交点との間の変位である。このオフセットを入力点に適用して、ディスプレイの見えるエリア内の新しい位置に再び対応付ける。
【００４２】
他の一実施形態では、装置からの少なくとも一入力点は表示され続けるように、制約される。図４において、システムは、装置から入力点のリストを受け取る（４００）。各入力点は装置座標空間中の座標を有する。次に、入力点を、ディスプレイ座標空間中の対応する点に対応付ける（４０２）。入力点を含む境界ボックスを確定する（４０４）。境界ボックスの角が、ディスプレイの見える範囲と比較される（４０６）。境界ボックスの少なくとも一つの角がディスプレイの見えるエリアにあれば、入力対応付けが保持される（４１０）。そうでなければ、境界ボックスの少なくとも一点をディスプレイの見える範囲内に動かす救済オフセットを決定する（４１２）。次に、含まれる角に最も近い入力のオフセットを決定し、救済オフセットに適用する（４１４）。この更新されたオフセットを入力点に適用して、ディスプレイの見えるエリア内の新しい位置に再び対応付ける。
【００４３】
複数のモニタディスプレイに対して、プロセスは同様である。ディスプレイの可視エリアの交わりが、内部に隙間のない、単一の四角形の「仮想的」ディスプレイである規則的なディスプレイトポロジーがある。規則的なディスプレイトポロジーの場合、仮想的ディスプレイ面の境界へ複数の入力を制限することは、単一ディスプレイの場合のそれと同じである。ディスプレイの可視エリアの交わりが、凸型または凹型の内部のすきまを有する直線的な仮想ディスプレイである不規則なディスプレイトポロジーもあり得る。これらのディスプレイトポロジーに対して、上記の方法を用いて救済オフセットを計算して適用できる。
【００４４】
しかし、別のうまくいかないケースは、点が凸型または凹型の内部の隙間の一つの中にある場合、ディスプレイの見えるエリアの外側の点のみを含む境界ボックスを計算して、救済オフセットを計算するのに使える。この場合、ディスプレイの可視エリアに対応付けられない入力点を含むように、境界ボックスが計算される。ここでは、これを不適合な境界ボックスと呼ぶ。不適合な境界ボックスの少なくともひとつの角がディスプレイの可視部分内に含まれるようにする最小の救済オフセットを計算する。この救済オフセットはすべての入力に対して装置・ディスプレイ変換に適用される。
【００４５】
複数のモニタの場合の境界条件のより具体的な実施形態をここで説明する。
【００４６】
この例では、各入力に対して、目標境界ディスプレイ（ＲＤ，ｔａｒｇｅｔ）を次のように決定する。まず、入力位置ＣＤが仮想ディスプレイ面の可視領域内に含まれないか、判断する。含まれなければ、前のフレームの入力のディスプレイの座標ＲＤ０を読み出す。新しいセッションを表すフレームに対して、これらの座標を出力ロケータ位置ＬＤを含むディスプレイの座標で置き換える。次に、ｘ軸またはｙ軸のどちらかで、入力ＣＤがＲＤ０により制約されているか判断する。どちらかの軸で位置テストをする場合、目標境界ディスプレイはディスプレイＲＤ０である。さもなければ、入力はディスプレイＲＤ０の境界線を越えている。この入力に対して、センサ座標の変位ベクトルΔＳＳ：ΔＳＳ＝ＣＳ−ＣＳ０を決定する。センサの範囲ｅｘｔｅｎｔ（ＲＳ）を読み出す。変位の主要軸を決定する。｜ΔＳＳｘ／ｅｘｔｅｎｔ（ＲＳｘ）｜＞＝｜ΔＳＳｙ／ｅｘｔｅｎｔ（ＲＳｙ）｜であれば、Ｘ軸が支配的である。そうでなければ、Ｙ軸が支配的である。
【００４７】
入力変位の主要軸を用いて目標境界ディスプレイを決定する。Ｘ軸が支配的である場合、目標境界ディスプレイＲＤは次の条件を満たすディスプレイである：
１．入力がディスプレイの水平範囲に入る；
２．目標ディスプレイが入力の主要移動方向であり、最後のディスプレイとその境界を共有している；及び
３．最後の入力位置がディスプレイの垂直範囲内にある。
Ｙ軸が支配的である場合、目標境界ディスプレイＲＤは次の条件を満たす：
１．入力がディスプレイの垂直範囲に入る；
２．目標ディスプレイが入力の主要移動方向であり、最後のディスプレイとその境界を共有している；及び
３．最後の入力位置がディスプレイの水平範囲内にある。
【００４８】
主要方向を用いて目標境界ディスプレイを決定できない場合、非主要方向で検索を行う。目標境界ディスプレイがまだ見つからない場合、目標ディスプレイはその入力の前のディスプレイである。
【００４９】
一入力の目標境界ディスプレイが与えられると、入力がそのディスプレイに固定され、固定オフセットが計算されて格納される。固定オフセットはすべての入力に適用され、入力間の相対的な距離が維持される。このように入力を調整した後、再びすべてをテストして、ディスプレイの見える部分にあるか確認する。
【００５０】
いくつかのインターラクションモードでは、センサで同時に複数の入力をしようとするユーザの意図を実現するのに、短い時間しかない。セッションの最初の入力があると、タイマーが起動され、入力は非アクティブとマークされ、センサロケータの決定が、タイマーが経過するまで遅らされ、または入力が無くなると終了される。同様に、ユーザは複数の入力を同時にしても良い。センサロケータの位置に影響を与えずにこの意図を実現するため、タイマーを用いることもできる。タイマーが起動され、そのタイマーが経過するまで、その複数の入力が継続的にセンサロケータの計算に含められる。
【００５１】
上記の説明では、相対的及び絶対的対応付けモードの両方において、複数の入力点がディスプレイ座標に直接対応付けられる。しかし、相対的対応付けモードでは、入力装置は目標ディスプレイ座標空間の一部のみに広がっている。それゆえ、入力点の動きが検出されているうちに、その点の、ある形式の加速が適用されなければ、一表示位置から他の一表示位置へのナビゲーションには複数のストロークが含まれ得る。逆に、ピクセルレベルの、ポイントツーポイントの目標精度を達成するため、その点の、ある形式の減速を用いることができる。かかる加速と減速は、「ポインタ弾道」と呼ばれることもあるが、以下のように、マルチ入力の間接的入力装置に適用できる。入力装置における入力点の変位は、装置座標空間からディスプレイ座標空間への入力点の対応付けにおいて考慮され、場合によって、ディスプレイ上でのそれらの点の動きを加速または減速する。一般的に、入力点の変位の尺度を決定する。この変位は、入力装置点の対応ディスプレイ座標への対応付けをどのように変更するか、その変位に基づいて決定する関数への入力である。
【００５２】
一実施形態では、各入力点の変位が決められる。変位ベクトルが最小である入力のセンサ画素における物理的変位は、加速曲線変換され、単一の加速されたディスプレイ変位を生成する。これは出力ロケータ及びすべての点のディスプレイ変位に適用される。加速関数の入力は、ベクトルの大きさ、または各軸の値のいずれかでよく、２つの異なる加速関数に入力できる。ここで、この実施形態を図５を参照して説明する。
【００５３】
まず、第１と第２の時点から、入力センサ上の入力点が受け取られる（５００）。動いているまたは静止した入力を一意的に特定しトラッキングする方法は、本技術分野において「入力認識及びトラッキング」として知られるが、装置やセンサにより決まることに留意されたい。本発明は、特定の入力認識及びトラッキング手法に限定されない。本技術分野において適切であると思われる認識及びトラッキングの任意の手法を用いることができる。
【００５４】
ある時間内の各入力の各次元における装置座標（すなわち、画素）における変位を決定する（５０２）。その時間が一定であると分かっている場合、変位のみを使うことができる。そうでなければ、その時間を用いて速さを計算する。
【００５５】
入力の各時間すなわち「フレーム」について、最小の変位または速さを特定する（５０４）。大きさが（平均や最大ではなく）最小の入力を選択し、入力センサにおいて静止している入力が、ディスプレイに対応付けられた時に、静止したままであるようにする。
【００５６】
特定された入力の変位を、センサの画素密度を用いて、画素における変位から、物理的変位に変換できる。変位値を加速関数への入力として用いて、その値を加速された変位に変換する（５０６）。本発明は、用いられる特定の加速度の式により限定されない。マウスポインタの加速などに用いられているように、本技術分野で現在用いられている合理的な手法を用いることができる。本発明は、概して、各座標軸（ｘ、ｙ、またはｚ）の独立した加速を許容する加速度の式に適用できる。好適な変換を、変位値を加速された変位値に対応付ける、部分ごとの線形関数を用いて実施できる。加速された変位値は、物理的次元に基づく場合、画素座標に変換して戻すことができる。
【００５７】
加速された変位は、ディスプレイ座標空間における加速された変位に変換される（５０８）。例えば、変換は次式ＤＣＤ＝ＤＣＳ／ｅｘｔｅｎｔ（ＲＳ）＊ｅｘｔｅｎｔ（ＲＶ）］＋ＲＶで表すことができる。ディスプレイ座標に対応付けされた各入力位置は、加速された変位により調整される（５１０）。
【００５８】
絶対的対応付けされた次元の場合、図６を参照して説明するように、スパン調整と呼ばれる同様の方法を用いることができる。図６において、各センサロケータからの各入力の変位を、装置座標空間の画素単位で、決定する（６００）。最小変位を選択する（６０２）。この最小変位値を、装置の画素密度を用いて、物理的次元に変換する（６０４）。物理的次元における最小変位値を、任意の適切な変換を用いて、スパン調整値に変換する（６０６）。好適な変換は、変位値をスパン調整値に対応付ける部分ごとの線形関数などの加速度変換と同様であってもよい。このスパン調整値は、画素値に変換して戻される（６０８）。加速度と同様に、スパン調整値はディスプレイ画素値に変換され（６１０）、各入力点はその値を用いて調整される（６１２）。
【００５９】
留意点として、入力点への加速度とスパンの調整修正は、点が見えるディスプレイエリアに留まるようにする境界条件を適用する前に行われる。
【００６０】
実施例を説明したので、かかるシステムが動作するように設計されたコンピューティング環境を説明する。以下の説明は、このシステムを実施できる好適なコンピューティング環境の簡単な一般的説明するものである。本システムは、多数の汎用または特定用途のコンピューティングハードウェア構成で実施することができる。好適な周知のコンピューティング装置の例には、限定ではなく、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置（例えば、メディアプレーヤ、ノートブックコンピュータ、セルラー電話、パーソナルデジタルアシスタント、ボイスレコーダ）、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、ゲームコンソール、プログラマブルコンシューマエレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
【００６１】
図７は、好適なコンピューティング環境の一例を示す。上記のコンピューティングシステム環境は、好適なコンピューティング環境の単なる一例であって、かかるコンピューティング環境の利用や機能の範囲に関する限定を示唆するものではない。どのコンピューティング環境も、上記の動作環境に示したコンポーネントのどれかまたはその組合せに依存するまたは必要とすると解してはならない。
【００６２】
図７を参照し、コンピューティング環境例はコンピューティングマシン７００などのコンピューティングマシンを含む。最も基本的な構成では、コンピューティングマシン７００は少なくとも１つの処理ユニット７０２とメモリ７０４を含む。コンピューティング装置は、複数の処理ユニット及び／または追加的なグラフィックス処理ユニット７２０などのコ・プロセッシングユニット（co-processing units）を含む。コンピューティング装置の構成とタイプに応じて、メモリ７０４は、（ＲＡＭなどの）揮発性であっても、（ＲＯＭやフラッシュメモリなどの）不揮発性であっても、これらの組合せであってもよい。この最も基本的な構成を図７において破線７０６で示した。また、コンピューティングマシン７００は、追加的特徴や機能を有していてもよい。例えば、コンピューティングマシン７００は、磁気または光学のディスクまたはテープなどを含むがこれらに限定されない（リムーバブル及び／または非リムーバブルの）追加的な記憶も含み得る。かかる追加的記憶は、図７において、リムーバブル記憶７０８及び非リムーバブル記憶７１０により示されている。コンピュータ記憶媒体には、コンピュータプログラム命令、データ構造、プログラムモジュールその他のデータなどの情報を記憶するための任意の方法や技術で実施された、揮発性および不揮発性、リムーバブルまたは非リムーバブルの媒体を含む。メモリ７０４、リムーバブル記憶７０８、及び非リムーバブル記憶７１０は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリその他のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）その他の光ディスク記憶媒体、磁気カセット、磁気テープ、磁気ディスク記憶その他の磁気記憶装置、またはその他の、所望の情報の記憶に使え、コンピューティングマシン７００によりアクセスできる任意の媒体を含むが、これらに限定されない。かかるコンピュータ記憶媒体はコンピューティングマシン７００の一部であり得る。
【００６３】
コンピューティングマシン７００は、装置が他の装置と通信できるようにする通信接続７１２も含み得る。通信接続７１２は通信媒体の一例である。通信媒体は、一般的に、キャリア波などの変調データ信号やその他の伝送メカニズム中のコンピュータプログラム命令、データ構造、プログラムモジュールその他のデータを担い、任意の情報配信媒体を含む。「変調データ信号」との用語は、情報を信号にエンコードするように設定または変更された特徴を有し、信号を受信する装置の構成や状態を変化させる信号を意味する。限定でなく例示として、通信媒体は、優先ネットワークや直接優先接続などの有線媒体と、音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体とを含む。
【００６４】
コンピューティングマシン７００は、キーボード、マウス、ペン、カメラ、タッチ入力装置などの様々な入力装置７１４を有する。ディスプレイスピーカ、プリンタなどの出力装置７１６を含んでいてもよい。これらの装置はすべて本技術分野で周知であり、これ以上説明する必要はない。
【００６５】
システムは、コンピューティングマシンにより処理される、プログラムモジュールなどのコンピュータ実行可能命令及び／またはコンピュータインタープリタ命令を含むソフトウェアの一般的なコンテキストで実施することもできる。一般的に、プログラムモジュールには、処理ユニットにより処理されたときに、あるタスクを実行したり、ある抽象的データタイプをインプリメントするように処理ユニットに命令する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。このシステムは、通信ネットワークによりリンクされたリモート処理装置によりタスクが実行される分散計算環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカル及びリモートのコンピュータ記憶媒体の両方に配置できる。
【００６６】
添付した請求項のプリアンブルの「製品」、「方法」、「マシン」、及び「物質組成」との用語は、請求項を、米国特許法第１０１条におけるこれらの用語の使用により画定される保護対象の主題の範囲内になるように限定するものである。
【００６７】
ここに説明した実施形態を必要に応じて組み合わせて、追加的なハイブリッドの実施形態を構成することもできる。言うまでもなく、添付した請求項で画定した主題は、上記の具体的な実施形態に必ずしも限定されない。上記の具体的な実施形態は単に例として開示したものである。
【図１】
2014532908.tif 000003
【図２】
2014532908.tif 000004
【図３】
2014532908.tif 000005
【図４】
2014532908.tif 000006
【図５】
2014532908.tif 000007
【図６】
2014532908.tif 000008
【図７】
2014532908.tif 000009
【国際調査報告】
2014532908.tif 000010
2014532908.tif 000011
2014532908.tif 000012
2014532908.tif 000013
2014532908.tif 000014
2014532908.tif 000015
2014532908.tif 000016
2014532908.tif 000017
2014532908.tif 000018
2014532908.tif 000019