(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
コンピューティングシステムのナビゲーションと空間的コントロールに用いるマニュアル入力装置は、コンピュータシステムの機能及び全体的なユーザ体験に対して大きなインパクトを有する。複数種類のマニュアル入力装置がある。パーソナルコンピュータで最も一般的なものには、マウスやタッチパッドなどのシングルポインタ間接インターラクション型装置と、タッチスクリーンなどの直接インターラクション型装置がある。
【0003】
シングルポインタ間接インターラクション型装置センサは、センサとのユーザインターラクションを検知して、このインターラクションをディスプレイ上の位置に対応させる。入力ポイントをディスプレイに対応させる一方法には、センサ範囲(sensor extents)のディスプレイ範囲(extents
of the display)への一対一対応があり、これは絶対対応と呼ばれる。絶対対応を用いる装置例としてはペンタッチ型デジタイザがある。他の一方法には、装置センサ座標のディスプレイの可動部分への対応があり、これは相対対応と呼ばれる。
【0004】
相対的対応を用いる装置例としては、マウスや、マウスをエミュレートする装置、例えばトラックパッドなどがある。マウスは、検知されたその装置とのインターラクションに基づいて、動きを検知して、仮想開始点をある距離だけ移動させる。トラックパッドは一般的にマウスと同様に用いられる。トラックパッドへのコンタクトの動きが検知され、検知された動きはマウス入力と同様に処理される。
【0005】
直接インターラクション型装置により、ディスプレイと仮想的にアライン(align)された装置とインターラクションできる。直接インターラクション型装置は、タッチ検知面上の位置と、同じサイズのディスプレイ上の位置とを、絶対対応を用いて、対応させる。例えば、ユーザがタッチスクリーン上の点にタッチすると、入力イベントが、ユーザインタフェース中の、ユーザによりタッチされたディスプレイ上の点に対応する位置において、コマンド起動などのアプリケーション応答をトリガーする。
【0006】
マルチポインタ入力からの空間的入力のディスプレイへの絶対及び相対対応付け(mapping)には、入力装置及びディスプレイ装置の物理的属性、システムの能力、アプリケーションユーザインタフェースの性質とレイアウト、ユーザが実行するタスクの種類、及び様々なエルゴノミック要因に応じて、利点と欠点がある。
【0007】
例えば、相対的マッピングモードでは、入力装置センサは目標ディスプレイ座標空間の一部のみに広がっている。それゆえ、入力点の動きが検出されているうちに、その点の、ある形式の加速を用いなければ、一表示位置から他の一表示位置へのナビゲーションには複数のストロークが含まれ得る。逆に、ピクセルレベルの、ポイントツーポイントの目標精度を達成するため、その点の、ある形式の減速を用いることができる。かかる加速と減速は「ポインタ弾道」と呼ぶこともある。他の一例として、絶対対応付けモードにおいて、入力センサは、ディスプレイ座標空間に対して、解像度がずっと低く、アスペクト比が大きく異なるかも知れない。それゆえ、ピクセルレベルのポイントツーポイントのナビゲーションにおける精度を実現することは、ある形式の正の及び/または負の加速がなければ困難である。
【発明を実施するための形態】
【0014】
以下のセクションでは、マルチポインタ、間接入力装置を用いることができる一動作環境例をを説明する。
【0015】
図1を参照するに、コンピュータシステム100は、コンピュータプラットフォーム104(その一例の詳細は後で説明する)に接続された、センサを有するマルチポインタ間接入力装置102を含む。かかるコンピュータシステムは、パーソナルコンピュータ、ホームエンターテイメントシステム、プロジェクタ、キオスクアプリケーション、小型パーソナルエレクトロニクスなどであり得る。コンピュータプラットフォームは、一または複数のアプリケーション108と、コンピュータプラットフォーム104の資源(コンピュータプラットフォーム104のマルチポインタ間接入力装置を含む周辺装置)との間のインターラクションを管理するオペレーティングシステムを有する。
【0016】
オペレーティングシステムにおいては、複数の検知された入力点110を記述するデータが、マルチポインタ間接入力装置102のセンサから受け取られる。これらの入力点は処理され、ディスプレイ120上の点に対応付けられる。
【0017】
この対応付けプロセスは、装置座標系のディスプレイ座標系への最初の対応付けを決定し、これは相対的でも絶対的でもよく、次に、装置座標系からディスプレイ座標系への各点の対応付けを決定する。かかる最初の対応付けは、各入力セッションの初めに行われる。
【0018】
入力セッションは第1の入力がセンサにより検知された時点から、最後の入力がセンサから無くなった時点までである。入力セッション中、入力点は動きやすい。入力点はセンサ座標系の新しい位置から、ディスプレイ座標系の対応する新しい位置に対応付けられる。この動き対応付けには、バウンディングと加速などの問題を考慮できる。
【0019】
図1に示したように、入力セッションの初めに、複数の点110がビューポート選択モジュール130に入力される。ビューポート選択モジュールは、その出力として、ディスプレイ座標系におけるビューポートサイズと位置132を提供する。ビューポートは、センサ座標空間が対応付け(mapped)られるディスプレイ座標空間中の領域を確定する。複数の装置センサがシステムに接続される構成では、各センサは自分のビューポートを有する。ビューポートは、入力装置センサの形状に対応する形状を有し得る。しかし、いくつかの実施では、ビューポートは、センサとは異なるアスペクト比や方向を、さらには異なる形状を有していてもよい。例えば、楕円形のセンサが四角形のビューポートに対応付けられてもよい。ビューポートの形状は一般的に
ホストシステムにより確定されるが、装置やユーザによって確定されてもよい。ビューポートのサイズと位置は、ユーザ入力がセンサにより検知された時に計算される。ユーザ入力がセンサにより検知されていなければ、ビューポートのサイズと位置は確定されない。ビューポートは一般的にはユーザに表示されない。総合して、ビューポートの形状、サイズ及び位置は、センサ座標系のディスプレイ座標系への対応付けを表す。設定134は、後で例を詳細に説明するが、相対的または絶対的な対応付けなどにより、この対応付けをどう行うかを決定する。
【0020】
また、複数の点110は、入力セッションにより入力対応付けモジュール140に入力される。入力対応付けモジュールは、その出力として、ディスプレイ座標系における複数の点142を提供する。設定134は、あとで例を詳細に説明するが、相対的入力位置を解釈し、入力運動加速度、スパン調節、及び制約条件を適用するために、装置とディスプレイの基準位置を決定することなどにより、各点がどう対応付けられるか決定する。
【0021】
複数の点142は、ディスプレイ座標系に対応付けられると、ディスプレイ上に表示できる。各点は、例えば、表示されたアイテムを選択するための単一の点と同様に、または、例えば、ホストシステムユーザインタフェースにおいて要素のズーム、回転、または動きの実行をする直接タッチ入力センサからの複数点と同様に、オペレーティングシステム106及び/またはアプリケーション108により処理できる。ディスプレイに対応づけられたマルチポイントの可能性のある利用範囲は、本発明を限定するものではない。
【0022】
この場合において、
図2、
図3および
図4を参照して、マルチポイント(multiple points)のディスプレイへの対応付けの実施例をより詳細に説明する。
【0023】
図2において、フローチャートは、ビューポートのサイズと位置がビューポート選択モジュールによりどのように選択できるか、及び複数の点(points)がどのように対応付けできるか、実施形態を説明している。
【0024】
留意点として、以下の実施形態は、所望のユーザ体験に関する設計上の意志決定に基づく。例えば、物理的な各点の他の物理的な点に対する相対的な位置は、ディスプレイへの投影時、保持されるものと仮定する。また、すべての入力間の距離は対称的にスケールされるものと仮定する。
【0025】
ユーザ体験の他の一側面は、入力装置とディスプレイとの間の対応付けの種類である。対応付け(mapping)は相対的なものと絶対的なものがあり、各軸について独立でもよい。例えば、y軸に相対的対応付けを適用し、x軸に絶対的対応付けを適用してもよいし、その逆であってもよい。また、両方の軸について、異なる相対的対応付け(relative mappings)を用いることもできる。また、対応付けは、論理的座標に基づいても、または入力装置とディスプレイの物理的寸法に基づいてもよい。対応付けが装置の物理的寸法に基づく場合、空間的精度を高め、より直感的で認識効率の高いインタフェースを提供する。対応付けの種類に関するこれらの決定は、システムにおける任意的な設定であってもよい。
【0026】
ユーザ体験の他の一側面は制約ポリシーである。具体的に、装置入力はシステムのディスプレイ制約ポリシーを条件とできる。例えば、すべての装置入力を、ディスプレイ内に留まるように強制しても、またはそのうちの一装置入力のみを、ディスプレイ内に留まるように強制してもよい。他の一実施形態では、制約ポリシーを用いない。制約ポリシーに関するこれらの決定は、システムにおける任意的な設定であってもよい。
【0027】
ビューポートのサイズと位置は、各入力セッションの初めに決定される。例えば、ユーザ入力が無い期間の後、センサにより一または複数の入力点が検知されると、入力セッションの開始が検知される(200)。各軸のビューポートの寸法は、入力装置、ホストシステム、またはユーザにより確定され得る。この寸法は、目標ディスプレイ装置のパーセンテージまたは物理的な距離単位で表される。物理的な距離単位を用いる場合、入力センサとディスプレイの両方の物理的及び論理的(座標)範囲が、例えば、装置、ユーザ入力、またはその他の手段により提供される。ディスプレイ座標空間における出力ロケータの位置を読み出す(201)。この実施形態では、出力ロケータの位置は、(ユーザのログインに始まり、ユーザのログオフで終わる)ユーザセッションに対してグローバルである。出力ロケータ位置は、システムに接続された複数のシングルポインタ入力装置及びマルチポインタ入力装置間で共有され、更新される。出力ロケータは、前の入力セッションで保存された位置であってもよい。事前に入力セッションが無ければ、ディスプレイ装置の中心、マウスその他の装置の最終位置、または別のデフォルトディスプレイ位置が、出力ロケータ位置として用いられる。
【0028】
次に、ディスプレイ装置と入力装置の既知のパラメータ、すなわち座標と境界が与えられると、各軸のスケーリングファクタが決定される(202)。これらのパラメータは、一般的に、メモリに格納される。ディスプレイ装置の場合、パラメータはシステムAPIを用いて読み出すことができる。入力装置の場合、パラメータは、装置問い合わせ(device interrogation)により読み出すことができる。ディスプレイ装置と入力装置の座標と境界(bounds)があれば、スケーリングファクタが決まる。絶対的対応付けを用いる場合、物理的範囲に基づく計算は必要ない。x軸とy軸のスケールファクタは、装置とディスプレイの座標範囲の一対一の比率に基づく。相対的対応付けを用いる場合、x軸とy軸のスケールファクタは、装置の寸法の、ディスプレイ座標中のビューポートの寸法に対する比率により決まる。スケールファクタは、一度計算され、メモリに格納され、必要に応じて読み出される。
【0029】
ディスプレイ座標空間におけるビューポート範囲、すなわち頂点のx及びy座標は、決定されたスケールファクタを用いて決定される(203)。新しい出力ロケータが次のように計算される前に、保存された出力ロケータを用いて入力セッションに対して最初にビューポート範囲が決定される。
【0030】
ディスプレイの画素密度を用いてスケールされたビューポートの場合、スケールファクタSVは非ゼロで、0と1の間の正値であり、ビューポートの範囲は、
Rv=
{LV0x−SVx/[2*extent(RDx)],
LV0x+SVx/[2*extent(RDx)],
LV0y−SVy/[2*extent(RDy)],
LV0y+SVy/[2*extent(RDy)]}、
ここで、LV0は初期ビューポートロケータであり、一般的には目標ディスプレイの中心であり、SVはスケールファクタであり、範囲(RD)はディスプレイのx及びy座標範囲、すなわち画素幅及び高さであり、添え字xとyはx軸及びy軸における値を示す。
【0031】
物理的寸法を用いるビューポートの場合、所望のサイズSVは非ゼロ、正数であり、目標ディスプレイの物理的範囲より大きくなく、ディスプレイの画素密度Dはハードウェア問い合わせにより知ることができ、ビューポートの範囲は、
Rv=
{[LV0x−SVx/[2*extent(RDx)]]*Dx+RDx.left,
[LV0x+[SVx/[2*extent(RDx)]]*Dx+RDx.left,
[LV0y−[SVy/[2*extent(RDy)]]*Dy+RDy.top,
[LV0y+SVy/[2*extent(RDy)]]*Dy+RDy.top}。
【0032】
ビューポートの初期範囲が与えられると、最初は装置座標系中ににセンサロケータが決まる(204)。センサロケータを選択する方法はたくさんあり、所望のユーザインターラクションに応じて方法が選択される。例えば、センサにより一入力が検知された場合、センサロケータはこの一入力の座標であってもよい。複数の入力がある場合、センサロケータは、1つの「主要な」入力の位置であってもよいし、他の入力に関連した一点、例えばすべての点の幾何学的中心であってもよい。入力点が検知されなければ、センサロケータは確定されず、入力セッション間で存続しない。
【0033】
主要な入力の位置をセンサロケータとして用いる場合、様々な方法を用いてその入力を主要なものとして選択しアサインすることができる。一般的に、「主要な」入力は、任意の方法により選択された入力点である。例えば、主要な入力は、そのセッションにおいて検知された最初の入力または最後の入力であり得る。この方法には、複数の入力が同時にあった場合に、無作為による選択を強制しなければならないという欠点がある。解決策としては、主要な入力を、ある形式の幾何学的順序により、例えば幾何学的ソーティングの式による最高次入力などにより選択することである。例えば、ソーティングの式は、すべての入力と基準点の幾何学的中心にある原点に対して、各入力点により形成される角度をソートできる。基準点は、例えば、ユーザの利き手に基づき測定された角度を有する垂直線であり得る。
【0034】
方法にかかわらず、センサロケータの決定は、入力の到着時間及び出発時間により影響を受ける。ユーザが複数の入力を同時に触れたいまたは離したいが、少し異なる時間に触れたまたは離した状況に対する保護として、短い時間ウィンドウ(例えば、10−60ms)を用いて、センサロケータの計算を遅らせることができる。
【0035】
次に、センサロケータ一が、装置座標からディスプレイ座標に対応付けられる(205)。結果は、フレームの新しい出力ロケータ位置である。この位置は式[LS/extent(RS)*extent(RV)]+RV0により計算できる。ここで、LSはセンサロケータのxまたはy座標であり、extent(RS)はセンサ座標空間の幅または高さであり、extent(RV)はビューポートの幅または高さであり、RV0は初期ビューポートの幅または高さである。この新しい出力ロケータは、ディスプレイの境界内に制約される。
【0036】
新しい出力ロケータが与えられると、ビューポートは、ビューポートロケータを取得することにより、ディスプレイ座標空間中に配置される(206)。セッションの最初のフレームについて、ビューポート位置が決定される。後続のフレームにおいて、その位置がメモリから読み出される。ビューポートの位置は論理的に決定される。すなわち、ビューポートを表示するかどうかは任意的である。実際、ほとんどの実施形態では、ビューポートを表示しない方が好ましいようだ。
【0037】
上記の通り、ビューポートはディスプレイ上の入力センサ座標空間のプロジェクションであり、ビューポートロケータ位置はディスプレイ座標におけるビューポートの幾何学的中心である。上記の通り、出力ロケータとは異なり、ビューポートは入力がセンサにより検知されなければ、確定されない。ビューポートは(ユーザセッションに対してグローバルではなく)装置インスタンスに関連し、その位置はユーザがセンサ上に最初に入力した時に更新される。入力セッションが始まると、その入力セッションが終わるまで、ビューポートはフレーム間で静止している。フレームが入力セッションの継続を示す(前と現在のフレームの両方の入力のリストが空でない)場合、ビューポートロケータがメモリから読み出される。フレームが新しい入力セッションの始まりである場合、ビューポートロケータは(ステップ205で決定された)センサロケータと(ステップ201で決定された)出力ロケータ位置との間のオフセットを決めることにより、次式により得られる。
ΔLD=LD−LD0
LV=[LS/extent(RS)*extent(RV)]+LV0+ΔLD
LVは目標ディスプレイの境界に制約され、上記の決められたビューポートの範囲は新しいビューポートロケータを用いて再計算される。
【0038】
センサロケータ、ビューポートロケータ、及びフレームの出力ロケータを計算した後、そのフレームのセンサ入力が、以下により詳しく説明するように、ディスプレイ座標に対応付けられる(208)。ステップ210で決定されたように、入力セッションが終わると、入力セッションに関する情報(最後の出力ロケータなど)が保存される(212)。入力セッションが終わっておらず、(ステップ214で決定された)更新されたセンサ入力位置が受け取られた場合、プロセスは、そのフレームのセンサロケータを決定するステップ204から、これらの新しい入力をディスプレイに対応付けするステップ208までを繰り返す。しかし、フレームが継続中のセッションの一部である場合、ビューポートロケータはステップ206で決定されず、メモリから読み出される。
【0039】
図3は、ビューポートのサイズと位置が与えられると、センサ入力がビューポート中の点にどうやって対応付けられるかを、(関連する対応付けが行われる場合の)単一ディスプレイ上での境界条件の強制も含めて示している。
図3は、すべての入力がディスプレイ中にあるように制約された場合を示す。
【0040】
システムは、装置から入力点のリストを受け取る(300)。各入力点は装置座標空間中の座標を有する。次に、入力点を、ディスプレイ座標空間中の対応する点に対応付ける(302)。例えば、装置座標空間中点CSのディスプレイ座標空間中の座標CDは、[CS/extent(RS)*extent(RV)]+RVにより計算できる。
【0041】
入力点を含む境界ボックスを確定する(304)。境界ボックスの角が、ディスプレイの見える範囲に対応付けられ、比較される(306)
。ディスプレイの見えるエリアの外側
に境界ボックスの角が一つも無い場合に、入力対応付けが保持される(310)。そうでなければ、境界ボックスをディスプレイの見える範囲内に動かすオフセットを決定する(312)。最小の救済オフセットの計算において、入力境界ボックスの各非適合角の前と現在のフレームの間の変位ベクトルまたは個々の入力は、経路と、それの見えるディスプレイ境界との交点とを確定する。救済オフセットは、その経路の原点と交点との間の変位である。このオフセットを入力点に適用して、ディスプレイの見えるエリア内の新しい位置に再び対応付ける。
【0042】
他の一実施形態では、装置からの少なくとも一入力点は表示され続けるように、制約される。
図4において、システムは、装置から入力点のリストを受け取る(400)。各入力点は装置座標空間中の座標を有する。次に、入力点を、ディスプレイ座標空間中の対応する点に対応付ける(402)。入力点を含む境界ボックスを確定する(404)。境界ボックスの角が、ディスプレイの見える範囲と比較される(406)。境界ボックスの少なくとも一つの角がディスプレイの見えるエリアにあれば、入力対応付けが保持される(410)。そうでなければ、境界ボックスの少なくとも一点をディスプレイの見える範囲内に動かす救済オフセットを決定する(412)。次に、含まれる角に最も近い入力のオフセットを決定し、救済オフセットに適用する(414)。この更新されたオフセットを入力点に適用して、ディスプレイの見えるエリア内の新しい位置に再び対応付ける。
【0043】
複数のモニタディスプレイに対して、プロセスは同様である。ディスプレイの可視エリアの交わりが、内部に隙間のない、単一の四角形の「仮想的」ディスプレイである規則的なディスプレイトポロジーがある。規則的なディスプレイトポロジーの場合、仮想的ディスプレイ面の境界へ複数の入力を制限することは、単一ディスプレイの場合のそれと同じである。ディスプレイの可視エリアの交わりが、凸型または凹型の内部のすきまを有する直線的な仮想ディスプレイである不規則なディスプレイトポロジーもあり得る。これらのディスプレイトポロジーに対して、上記の方法を用いて救済オフセットを計算して適用できる。
【0044】
しかし、別のうまくいかないケースは、点が凸型または凹型の内部の隙間の一つの中にある場合、ディスプレイの見えるエリアの外側の点のみを含む境界ボックスを計算して、救済オフセットを計算するのに使える。この場合、ディスプレイの可視エリアに対応付けられない入力点を含むように、境界ボックスが計算される。ここでは、これを不適合な境界ボックスと呼ぶ。不適合な境界ボックスの少なくともひとつの角がディスプレイの可視部分内に含まれるようにする最小の救済オフセットを計算する。この救済オフセットはすべての入力に対して装置・ディスプレイ変換に適用される。
【0045】
複数のモニタの場合の境界条件のより具体的な実施形態をここで説明する。
【0046】
この例では、各入力に対して、目標境界ディスプレイ(RD,target)を次のように決定する。まず、入力位置CDが仮想ディスプレイ面の可視領域内に含まれないか、判断する。含まれなければ、前のフレームの入力のディスプレイの座標RD0を読み出す。新しいセッションを表すフレームに対して、これらの座標を出力ロケータ位置LDを含むディスプレイの座標で置き換える。次に、x軸またはy軸のどちらかで、入力CDがRD0により制約されているか判断する。どちらかの軸で位置テストをする場合、目標境界ディスプレイはディスプレイRD0である。さもなければ、入力はディスプレイRD0の境界線を越えている。この入力に対して、センサ座標の変位ベクトルΔSS:ΔSS=CS−CS0を決定する。センサの範囲extent(RS)を読み出す。変位の主要軸を決定する。|ΔSSx/extent(RSx)|>=|ΔSSy/extent(RSy)|であれば、X軸が支配的である。そうでなければ、Y軸が支配的である。
【0047】
入力変位の主要軸を用いて目標境界ディスプレイを決定する。X軸が支配的である場合、目標境界ディスプレイRDは次の条件を満たすディスプレイである:
1.入力がディスプレイの水平範囲に入る;
2.目標ディスプレイが入力の主要移動方向であり、最後のディスプレイとその境界を共有している;及び
3.最後の入力位置がディスプレイの垂直範囲内にある。
Y軸が支配的である場合、目標境界ディスプレイRDは次の条件を満たす:
1.入力がディスプレイの垂直範囲に入る;
2.目標ディスプレイが入力の主要移動方向であり、最後のディスプレイとその境界を共有している;及び
3.最後の入力位置がディスプレイの水平範囲内にある。
【0048】
主要方向を用いて目標境界ディスプレイを決定できない場合、非主要方向で検索を行う。目標境界ディスプレイがまだ見つからない場合、目標ディスプレイはその入力の前のディスプレイである。
【0049】
一入力の目標境界ディスプレイが与えられると、入力がそのディスプレイに固定され、固定オフセットが計算されて格納される。固定オフセットはすべての入力に適用され、入力間の相対的な距離が維持される。このように入力を調整した後、再びすべてをテストして、ディスプレイの見える部分にあるか確認する。
【0050】
いくつかのインターラクションモードでは、センサで同時に複数の入力をしようとするユーザの意図を実現するのに、短い時間しかない。セッションの最初の入力があると、タイマーが起動され、入力は非アクティブとマークされ、センサロケータの決定が、タイマーが経過するまで遅らされ、または入力が無くなると終了される。同様に、ユーザは複数の入力を同時にしても良い。センサロケータの位置に影響を与えずにこの意図を実現するため、タイマーを用いることもできる。タイマーが起動され、そのタイマーが経過するまで、その複数の入力が継続的にセンサロケータの計算に含められる。
【0051】
上記の説明では、相対的及び絶対的対応付けモードの両方において、複数の入力点がディスプレイ座標に直接対応付けられる。しかし、相対的対応付けモードでは、入力装置は目標ディスプレイ座標空間の一部のみに広がっている。それゆえ、入力点の動きが検出されているうちに、その点の、ある形式の加速が適用されなければ、一表示位置から他の一表示位置へのナビゲーションには複数のストロークが含まれ得る。逆に、ピクセルレベルの、ポイントツーポイントの目標精度を達成するため、その点の、ある形式の減速を用いることができる。かかる加速と減速は、「ポインタ弾道」と呼ばれることもあるが、以下のように、マルチ入力の間接的入力装置に適用できる。入力装置における入力点の変位は、装置座標空間からディスプレイ座標空間への入力点の対応付けにおいて考慮され、場合によって、ディスプレイ上でのそれらの点の動きを加速または減速する。一般的に、入力点の変位の尺度を決定する。この変位は、入力装置点の対応ディスプレイ座標への対応付けをどのように変更するか、その変位に基づいて決定する関数への入力である。
【0052】
一実施形態では、各入力点の変位が決められる。変位ベクトルが最小である入力のセンサ画素における物理的変位は、加速曲線変換され、単一の加速されたディスプレイ変位を生成する。これは出力ロケータ及びすべての点のディスプレイ変位に適用される。加速関数の入力は、ベクトルの大きさ、または各軸の値のいずれかでよく、2つの異なる加速関数に入力できる。ここで、この実施形態を
図5を参照して説明する。
【0053】
まず、第1と第2の時点から、入力センサ上の入力点が受け取られる(500)。動いているまたは静止した入力を一意的に特定しトラッキングする方法は、本技術分野において「入力認識及びトラッキング」として知られるが、装置やセンサにより決まることに留意されたい。本発明は、特定の入力認識及びトラッキング手法に限定されない。本技術分野において適切であると思われる認識及びトラッキングの任意の手法を用いることができる。
【0054】
ある時間内の各入力の各次元における装置座標(すなわち、画素)における変位を決定する(502)。その時間が一定であると分かっている場合、変位のみを使うことができる。そうでなければ、その時間を用いて速さを計算する。
【0055】
入力の各時間すなわち「フレーム」について、最小の変位または速さを特定する(504)。大きさが(平均や最大ではなく)最小の入力を選択し、入力センサにおいて静止している入力が、ディスプレイに対応付けられた時に、静止したままであるようにする。
【0056】
特定された入力の変位を、センサの画素密度を用いて、画素における変位から、物理的変位に変換できる。変位値を加速関数への入力として用いて、その値を加速された変位に変換する(506)。本発明は、用いられる特定の加速度の式により限定されない。マウスポインタの加速などに用いられているように、本技術分野で現在用いられている合理的な手法を用いることができる。本発明は、概して、各座標軸(x、y、またはz)の独立した加速を許容する加速度の式に適用できる。好適な変換を、変位値を加速された変位値に対応付ける、部分ごとの線形関数を用いて実施できる。加速された変位値は、物理的次元に基づく場合、画素座標に変換して戻すことができる。
【0057】
加速された変位は、ディスプレイ座標空間における加速された変位に変換される(508)。例えば、変換は次式DCD=DCS/extent(RS)*extent(RV)]+RVで表すことができる。ディスプレイ座標に対応付けされた各入力位置は、加速された変位により調整される(510)。
【0058】
絶対的対応付けされた次元の場合、
図6を参照して説明するように、スパン調整と呼ばれる同様の方法を用いることができる。
図6において、各センサロケータからの各入力の変位を、装置座標空間の画素単位で、決定する(600)。最小変位を選択する(602)。この最小変位値を、装置の画素密度を用いて、物理的次元に変換する(604)。物理的次元における最小変位値を、任意の適切な変換を用いて、スパン調整値に変換する(606)。好適な変換は、変位値をスパン調整値に対応付ける部分ごとの線形関数などの加速度変換と同様であってもよい。このスパン調整値は、画素値に変換して戻される(608)。加速度と同様に、スパン調整値はディスプレイ画素値に変換され(610)、各入力点はその値を用いて調整される(612)。
【0059】
留意点として、入力点への加速度とスパンの調整修正は、点が見えるディスプレイエリアに留まるようにする境界条件を適用する前に行われる。
【0060】
実施例を説明したので、かかるシステムが動作するように設計されたコンピューティング環境を説明する。以下の説明は、このシステムを実施できる好適なコンピューティング環境の簡単な一般的説明するものである。本システムは、多数の汎用または特定用途のコンピューティングハードウェア構成で実施することができる。好適な周知のコンピューティング装置の例には、限定ではなく、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置(例えば、メディアプレーヤ、ノートブックコンピュータ、セルラー電話、パーソナルデジタルアシスタント、ボイスレコーダ)、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、ゲームコンソール、プログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
【0061】
図7は、好適なコンピューティング環境の一例を示す。上記のコンピューティングシステム環境は、好適なコンピューティング環境の単なる一例であって、かかるコンピューティング環境の利用や機能の範囲に関する限定を示唆するものではない。どのコンピューティング環境も、上記の動作環境に示したコンポーネントのどれかまたはその組合せに依存するまたは必要とすると解してはならない。
【0062】
図7を参照し、コンピューティング環境例はコンピューティングマシン700などのコンピューティングマシンを含む。最も基本的な構成では、コンピューティングマシン700は少なくとも1つの処理ユニット702とメモリ704を含む。コンピューティング装置は、複数の処理ユニット及び/または追加的なグラフィックス処理ユニット720などのコ・プロセッシングユニット(co-processing units)を含む。コンピューティング装置の構成とタイプに応じて、メモリ704は、(RAMなどの)揮発性であっても、(ROMやフラッシュメモリなどの)不揮発性であっても、これらの組合せであってもよい。この最も基本的な構成を
図7において破線706で示した。また、コンピューティングマシン700は、追加的特徴や機能を有していてもよい。例えば、コンピューティングマシン700は、磁気または光学のディスクまたはテープなどを含むがこれらに限定されない(リムーバブル及び/または非リムーバブルの)追加的な記憶も含み得る。かかる追加的記憶は、
図7において、リムーバブル記憶708及び非リムーバブル記憶710により示されている。コンピュータ記憶媒体には、コンピュータプログラム命令、データ構造、プログラムモジュールその他のデータなどの情報を記憶するための任意の方法や技術で実施された、揮発性および不揮発性、リムーバブルまたは非リムーバブルの媒体を含む。メモリ704、リムーバブル記憶708、及び非リムーバブル記憶710は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリその他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)その他の光ディスク記憶媒体、磁気カセット、磁気テープ、磁気ディスク記憶その他の磁気記憶装置、またはその他の、所望の情報の記憶に使え、コンピューティングマシン700によりアクセスできる任意の媒体を含むが、これらに限定されない。かかるコンピュータ記憶媒体はコンピューティングマシン700の一部であり得る。
【0063】
コンピューティングマシン700は、装置が他の装置と通信できるようにする通信接続712も含み得る。通信接続712は通信媒体の一例である。通信媒体は、一般的に、キャリア波などの変調データ信号やその他の伝送メカニズム中のコンピュータプログラム命令、データ構造、プログラムモジュールその他のデータを担い、任意の情報配信媒体を含む。「変調データ信号」との用語は、情報を信号にエンコードするように設定または変更された特徴を有し、信号を受信する装置の構成や状態を変化させる信号を意味する。限定でなく例示として、通信媒体は、優先ネットワークや直接優先接続などの有線媒体と、音響、RF、赤外線、その他の無線媒体などの無線媒体とを含む。
【0064】
コンピューティングマシン700は、キーボード、マウス、ペン、カメラ、タッチ入力装置などの様々な入力装置714を有する。ディスプレイスピーカ、プリンタなどの出力装置716を含んでいてもよい。これらの装置はすべて本技術分野で周知であり、これ以上説明する必要はない。
【0065】
システムは、コンピューティングマシンにより処理される、プログラムモジュールなどのコンピュータ実行可能命令及び/またはコンピュータインタープリタ命令を含むソフトウェアの一般的なコンテキストで実施することもできる。一般的に、プログラムモジュールには、処理ユニットにより処理されたときに、あるタスクを実行したり、ある抽象的データタイプをインプリメントするように処理ユニットに命令する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。このシステムは、通信ネットワークによりリンクされたリモート処理装置によりタスクが実行される分散計算環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカル及びリモートのコンピュータ記憶媒体の両方に配置できる。
【0066】
添付した請求項のプリアンブルの「製品」、「方法」、「マシン」、及び「物質組成」との用語は、請求項を、米国特許法第101条におけるこれらの用語の使用により画定される保護対象の主題の範囲内になるように限定するものである。
【0067】
ここに説明した実施形態を必要に応じて組み合わせて、追加的なハイブリッドの実施形態を構成することもできる。言うまでもなく、添付した請求項で画定した主題は、上記の具体的な実施形態に必ずしも限定されない。上記の具体的な実施形態は単に例として開示したものである。