2次元のポインティングデバイスで1次元信号を生成する方法及び装置
1次元のGUI信号を2次元のマウスの動きから生成するための様々な方法が開示されている。該方法はモードを有してもよく、2次元と1次元のタスクでマウスの使用を可能にする。境界のある2次元領域に残り、ポインティング表面から出ずに、1つの1次元のモードの呼び出し内で、どちらか一方の極性を持つ境界のない信号が、単一の1次元の様式的な呼び出しにおいて生成されてよい。生成された1次元信号の大きさは、マウスが移動した2次元距離に比例するものである。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本願は2004年1月29日に出願された米国特許出願第60/540,534号の利益を主張する。
【技術分野】
【0002】
概して、本発明は、スクロール信号などの1次元GUI入力を生成するために、コンピュータマウスなどの2次元のポインティングデバイスを用いる技術分野に関する。
【背景技術】
【0003】
グラフィカルユーザインターフェース、つまりGUIは、パーソナルコンピュータとのヒューマンインタラクションを行うための標準的パラダイムとなっている。標準のGUIは、グラフィック要素を表示するための画面と、そのような要素とインタラクションを行うためのポインティングデバイスとを含む。ポインティングデバイスの第1の機能としては、カーソルなどのアテンションインジケータ(indicator of attention)を所望のGUI要素の上に動かし、同時に表示されている複数のGUI要素の中から選択することが挙げられる。ポインティングデバイスの第2の機能としては、GUI要素とインタラクションを行うためのボタンあるいはその他の制御機器を動かし、アテンションポイントに到達させることが挙げられる。例えば、表示画面上に見える模写されたボタン上にカーソルを動かし、ポインティングデバイスと関連付けられた物理ボタンを押すことで通常、GUI“ボタン”が“押さ” れる。
【0004】
最も重要なGUIタスクの1つに、電子文書の空間ナビゲーションがある。この空間ナビゲーションは、従来、文書の周辺部に沿って、スクロールバーとのインタラクションを行うことによって実行されている。図1は、スクロールバーと関連付けられた標準的なテキスト文書ウインドウを示す。ウインドウの右側には垂直スクロールバーを、ウインドウの下部には水平スクロールバーを示す。図1の例では、スクロールせずに文書全体の幅を見ることができるほどウインドウは幅広く、そのため、水平スクロールバーは非アクティブの状態である。図示している垂直スクロールバーは、ラインアップとラインダウンアローをそれぞれの端部に、その内側にはページアップとページダウン領域を有し、また、各ページング領域間にはスクロールサムを有する。通常、スクロールサムの位置は、全体のうち見えている文書部分を表す。通常、スクロールサムの大きさは、現在見えている文書の割合を表す。
【0005】
関連するスクロールバーアローのポインティングデバイスボタンを左クリックすると、見ている文書を上か下に一行分(1ライン)スクロールする。適切なページング領域をクリックすると、文書を上か下に1ページ分スクロールする。サム上で左ボタンを押しホールドしてスクロールサムを把持することにより、次のポインティングデバイスの移動でサムを直接動かすことができる。1ピクセルのサムを移動させると文書がスクロールし、そのスクロール量は文書の長さによって変化する。この変化量は、ちょうどスクロールサムがその動きの限界に到達したときに、関連する文書の末端にスムーズに到達するようにするものである。短い文書に対しては、サムの1ピクセルの移動は、文書の1ピクセルのスクロールに、また、長い文書に対しては、サムの1ピクセルの移動は、複数ページの文書に相当する。本段落で説明した特徴は標準的なものであるが、このような特徴はアプリケーションによって違ってもよい。
【0006】
スクロールバーについて幅広く認識されている問題の1つは、アテンションポイントが文書からその周辺部へ移動し、再び戻って、ナビゲーションタスクとその他のGUIタスク間の切り替えを行わなければならないことである。このために、ハードウェアを配置したポインティングデバイスから直接的に、スクロールを実効的に行うためのいくつかの機構が最近利用可能になっている。この傾向の一部として、アプリケーションに応用可能なポインティングデバイスから生じるスクロール情報を作成するための標準化された方法が生まれている。さらに、多くのより最近のPCアプリケーションは、スクロール以外の1次元タスク用にこれらの信号を利用している。
【0007】
このような固有の1次元ナビゲーション装置に最も幅広く用いられているものはマウスホイールである。通常、ホイルは左右のマウスボタンの間に位置し、垂直スクロールを行うために最適化される。また、最新の多くのシステムは、ホイールが回転すると、初期設定により垂直スクロールオペレーションを行う。拡張したモード情報を提供することで、ホイールを別の1次元ナビゲーション機能に使用してもよい。例えば、一般に普及している表計算プログラムはズームイン(拡大)あるいはズームアウト(縮小)する。そのため、キーボードのCtrlキーを押しながら、ホイールを上あるいは下にそれぞれ回転させると、可視部分が少なく、より詳細を表示した状態になる(つまり拡大表示)、あるいは、可視部分が多く、詳細をあまり表示しない状態になる(つまり縮小表示)。
【0008】
スクロールホイールが市場で成功したことによって、1次元のGUIタスクを直接的に実行できる能力がマウスの望ましい特徴であることが示された。しかし、スクロールホイールにもいくつかの問題点があり、そのような問題点がスクロールホイールを一般化した1次元GUI入力には最適とは言えないものにしている。第1に、ホイールが指定可能な速度範囲は非常に小さい。人差し指でホイールの操作を行って、ホイールを所定の方向に回転させることができるのは比較的少ない量にすぎず、その後、人指し指をホイールから離し、再び元の位置に戻して更に次にホイールを動かすことができる状態にしなければならない。更に、通常、ホイールの回転で移動する量には制限があり、指の位置を変えることで移動する量はわずかである。通常、ホイールの移動速度は比較的遅く、最大入力速度が比較的低いか、あるいは、タスク増加分の最小値が比較的大きいかのいずれかである。
【0009】
さらに重要なホイールの限界として、通常、ホイールを回転させることと拡張したモード情報を提供することの両方を同じ手で行うことは困難であることが挙げられる。このため、様々な1次元タスク間でホイールのモード切り替えを困難にしている。例えば、既に説明したスプレッドシートのズーム特徴では、キーボードを介して拡張したモード情報を提供するために、空いているほうの手を使うことが求められる。おそらく、最も重要なマウスホイールの問題点として、マウスホイールが他の最新の光学式マウスよりも機械的により複雑であることが挙げられる。機械的に複雑なために製造原価が高くなり、また、この複雑さがその後の展開を失敗させている。
【0010】
要約すると、原則的にマウスホイールは、直接的1次元GUI入力の基本的問題をその場限りで解決するものであって、多くの問題点を有する。ホイールは比較的高額であり、信頼できない。ホイールは最も器用な手の指を固定し、入力のモード切替えを困難にする。さらに、通常、スクロールの他に1次元タスクの有用性を制限する付加的オペレーションモードによって、低ダイナミックレンジの埋め合わせを行う必要がある。
【0011】
従って、2次元のマウス動作を1次元のGUI変数に変換するための一般的方法が求められている。マウスに内在する大きなダイナミックレンジを最も効果的に利用するために、ニュアンス(nuance)や制御を最大にし、精神的疲労を最小にするよう、次元縮退技術(dimensionality reduction technique)は、実質的に(以下で説明するように)ゼロオーダー(zero-order)でなければならない。この技術によって、同じモード呼び出し内で正と負両方の値の生成が可能になる。この技術によって、マウスを持ち上げずに、予測した最小と最大のブレに簡単に実効的に対応することができるように、非常に幅広いダイナミックレンジを提供しなければならない。2次元の入力空間では中心位置近くに残りながら1次元タスク空間で任意の距離を移動するための高い自由度を有する点で、セルフセンター(self-center)しなければならない。さらに、その他の望ましい特徴および特性は、添付の図面と本発明の背景を併せて、以下の詳細な説明および添付の請求の範囲から明らかであろう。
【発明の開示】
【0012】
本発明の様々な実施形態は、2次元のマウス移動から1次元のGUI信号を生成する方法を含む。本方法はモードを持つものでもよく、2次元と1次元の両タスクでマウスの使用を可能にする。境界のある2次元領域内に残り、かつ、ポインティング表面を出ずに、境界のないいずれの極性の信号が単一の1次元の形式上の呼び出し内に生成される。生成された1次元信号の大きさは、マウスが移動した2次元の距離にほぼ比例する。
【0013】
1次元モードに入ると、最初に移動した方向から最初の極性が決定する。特定の方向に十分に回転すると、最初に決定した極性はその回転方向に関連づけられる。反転方向を突然変更することで極性の反転が起きることがある。あるいは、極性に関連づけられた方向から反対の方向に十分に回転することで、回転方向と極性とを関連付けた後、極性の反転が起きることがある。極性の反転が起きるたびに、反転した極性は回転方向との関連付けが解消される。反転後に十分な回転をすると、新しい関連性が生じる。
【0014】
本文中に説明している方法およびシステムはマウスと共に使用するために設計されたものであるが、そのような方法およびシステムを以下に更に詳細を説明している相対移動入力を生成できるどのようなポインティングデバイスと共に用いてもよい。通常のポインティングデバイスコントローラに組み込まれた用法に適切な様々な実施形態の方法が開示されている。
【0015】
本発明を以下の図面と併せて説明する。同じ参照符号は同様の要素を示す。
【発明の詳細な説明】
【0016】
様々な実施形態によれば、マウスあるいはその他の入力デバイスからの2次元入力を1次元の信号に変換するための新たな技術により、従来技術の様々な欠点を持たないスクロールあるいはその他のユーザインターフェースナビゲーションタスクが可能になる。そのような1つの技術として、入力デバイスの2次元の移動量に対応した極性と大きさとを有する1次元信号を生成するオペレーションモードに入力デバイスを設定する。ユーザが入力デバイスを動かすにつれ、その動き(動作)に対応した2次元信号が処理されて、その動きに関連する距離測定が判断される。この距離測定は、結果として生じる1次元信号の大きさを判断するために用いられる。更なる実施形態では、1次元信号の極性を2次元の移動方向から判断する。その結果、上述した多くの欠点を克服する、ダイナミックレンジが広い低オーダー(低次)の技術が提供される。本文中に説明している様々な技術及びシステムは多様な環境で応用することができ、また、ハードウェアおよび/またはソフトウェアのいずれの組み合わせを用いていずれの方法で実装してよい。さらに、本文中に説明している信号及びデータ処理技術はどのようなソフトウェア言語あるいは環境において実装してよい。そのようなソフトウェアは例えばマウスあるいはその他の入力デバイス内に存在してよく、あるいは、ポインティングデバイスと通信するホストコンピュータ内のメモリあるいはその他のデータストレージに、あるいは、その他のいずれのデバイスあるいは場所に存在してよい。
【0017】
本文中に説明している概念を、マウス、トラックボール、ジョイスティック、慣性検出装置、ビデオゲームコントローラなどを含む多様な入力デバイスとともに実装してよい。特に、以下に説明する技術は、マウスやジョイスティックなどのいわゆる“相対移動”(relamotive)デバイスに適している。リラモーティブ方式を用いるということは、マッピングの判定が絶対位置、力などに関する情報ではなく、実動距離や方向に関する情報に基づくということである。したがって、マウス、ジョイスティックなどのリラモーティブポインティングデバイスは、デバイスあるいはデバイスのコンポーネントの絶対位置ではなく(あるいは、それらの絶対位置に加えて)デバイスあるいはデバイスのコンポーネントの移動量を報告する。そのようなデバイスがある特定方向(例えば、マウスパッドの端部あるいはマウスのその他の作業面)の動きの限界まで移動した場合、リラモーティブデバイスは通常その作業面から離れ、その方向で更に動きが生じる前に、その動作限界から離れた位置に戻される。このような再センタリングオペレーションを回避するため、従来は、1回の移動で動作限界に頻繁に近づかないよう指示する。リラモーティブデバイスのこのような点を克服するため、本文中に説明する様々な技術は、デバイスの2次元移動に対応する拡張スクロール(あるいはその他の1次元の移動)を可能にする。
【0018】
用語
【0019】
1次元入力を向上させるための様々な方法に目を向ける前に、GUI入力に通常応用できるいくつかの用語を発展させることが有益である。この分野はより発達しているので、この発展を動機付けとなるよう2次元入力あるいはポインティングを用いる。
【0020】
ダイナミックレンジ
【0021】
GUIタスクのダイナミックレンジとは、その最大予想タスクレートをその最小値で割ったものである。通常、標準的なポインティングのGUIタスクに対し、高解像度画面にわたってカーソルを移動させた場合に最大レートが発生する。最新の画面の幅は2000ピクセル以上であり、通常、ユーザたちは数分の一秒で画面全体を横切ることを望むために、通常は毎秒2000ピクセル以上のタスクレートが使用される。これに対して、表示画面がどんなに大きくても、通常、ウィンドウサイジングボーダー(window sizing border)などの小構造(スモールフィーチャ)を獲得しなければならない。GUIタスクが合わせなければならない最小の構造寸法はその解像度であり、また、ポインティングタスクの所要の解像度は通常単一ピクセルである。単一ピクセルを合わせるのにかかる時間は当然ながら任意の長さであってよく、その結果、ポインティングレートが任意に最小のレートになる。しかし、ユーザは通常、1秒以上をGUIタスク部分の微調整に費やさない。したがって、解像度が1秒程度の時間でアクセス可能になると仮定することで、タスクのダイナミックレンジを正規化することができる。
【0022】
タスクの解像度をR、その最小タスクレートをRL、および、その最大タスクレートをRHと定義すると、タスクのダイナミックレンジの公式を以下のように簡素化できる。
【数1】
【0023】
ポインティングのために、この結果から要求されるポインティングダイナミックレンジは以下の通りである。
【数2】
【0024】
特定のGUIタスクを入力デバイスが効率的に実行するよう、デバイスのダイナミックレンジをタスクのダイナミックレンジと合理的に一致させなければならない。タスクに類似する用語を使用すると、入力デバイスのダイナミックレンジはその最大デバイスレートをその最小値で割ったものと定義される。@再度、1秒の最小デバイス時間を仮定することによって正規化することで、デバイスのダイナミックレンジは、1秒でレポート可能な、最小解像度での入力単位の合計数に相当する。
【0025】
マウスの最大デバイスレートは、1回のレポートで運ばれる最大動き量に、1秒で作り出されるレポート数を掛けることによって求められる。最小解像度でのマウスの移動量の従来の名前は“ミッキー”であり、最新のUSBマウスは毎秒約120回までのレポートレートにおいて、最大で128ミッキーの動きをレポートできる。したがって、マウスの生のダイナミックレンジは以下のようになる。
【数3】
【0026】
これはポインティングタスクには十分対応できるが、残念なことに別の要因がマウスのダイナミックレンジを制限する。
【0027】
マウスなどのリラモーティブポインティングデバイスは、絶対位置ではなく、あるいは、絶対位置に加えて、移動量を報告する。ある特定の方向において、動作限界まで動いた場合、その方向で更なる動きのレポートを行うためには、通常、リラモーティブデバイスをその作業面から離し、その動作限界から離れた場所に戻す必要がある。通常、このような再センタリングを回避するには、1回の移動で頻繁に動作限界に近づかないことが求められる。経験則によると、再センタリングの必要性を最小に抑えるには、ポインティングデバイスのどのような1回の移動量を実質的にその作業空間の50%未満に制限することである。
【0028】
例えば、快適なマウスの作業空間は通常、直径が約4−5インチである。この1回の移動についての経験則に従えば、最大の予想移動量は約2インチである。1インチの400分の1のである通常のミッキー解像度と、1ミッキーのマウス移動で1ピクセルの画面移動を行う単一ゲインシステムとを与えると、通常のマウスは2インチでカーソルを400×2=800ピクセル動かすことができる。従って、空間が制限されているマウスのダイナミックレンジは、本例においては、2000ピクセル幅のディスプレイで使用する場合に求められるダイナミックレンジの半分未満であり、生のダイナミックレンジは10分の1未満である。
【0029】
入力デバイスは、デバイス空間で直線移動を行う場合だけ空間を制限する点に留意するのは有益である。閉路を進む動きは必ずしも空間が制限されているわけではない。例えば、直径が5インチの円でマウスを動かし続けることにより、マウス速度をその生のダイナミックレンジである毎秒10,000ミッキーにほぼ維持することができる。
【0030】
弾道学(ballistics)
【0031】
利用可能なデバイスと所要タスクのダイナミックレンジとの溝(deficit)を埋めるための1つの手法として、デバイス変数からタスク変数を形成する際に非線形処理関数を介入させることが挙げられる。ポインティングデバイス業界用語では、このような処理関数は“弾道学関数”(ballistics functions)と称される。この名前は、発射体の弾道が重力や風といった環境要因によって影響を受けるのと同じように、外力により影響を受ける入力デバイスを連想させる。しかし、コンピュータ入力ドメインでは、この“外”力は人為的に介入させた弾道学関数である。
【0032】
最も簡素化したGUI入力システムでは、ユニティ・ゲインを適用することによって、タスク変数をデバイス変数から取得する。
【数4】
【0033】
つまり、デバイス変数は原則的にGUIタスク変数に等しい。例えば、単一ゲインポインティングシステムは常に、レポートされた各ミッキーのデバイス動作に対してカーソルを1ピクセル動かす。弾道学関数の目的は、より小さなゲインを比較的小さなデバイス入力に適用し、より大きなゲインを比較的大きなデバイス入力に適用することでタスクのダイナミックレンジを広げることである。これを数学的に公式化すると以下のようになる。
【数5】
【0034】
各ステップにおいて、通常、GUI変数はデバイス変数依存ゲインを適用することにより、デバイス変数から形成される。例えば、マウスを使用した最も古い弾道学関数の1つには、デバイスレポートサイズが4以上のものを2倍し、かつ、サイズが10以上のものを再度2倍にする機能がある。C三項演算子シンタックスを用いると、より形式的な説明は以下のようになる。
【数6】
【0035】
レポートすべき動きが1ミッキー未満にならない限り、マウスは一定の速度でその動きをレポートするので、このスキームが成り立つ。レポートすべき動きが1ミッキー未満の場合は何も報告されず、潜在的な分数ミッキーはすべて保持され、次のレポートポイントで次の動きと組み合わせられる。したがって、マウスの動きが遅い間は、何もレポートしないか、1ミッキーをレポートする。動作速度が上がると、フルレポートレートを達成するまで1ミッキーレポートの周波数は増加する。フルレポートレートを超えると、1レポートあたりのミッキー数は増加する。通常のマウスのレポート速度は毎秒120レポートであるので、レポートが1ミッキーより多くを含む場合、マウスの移動速度は比較的速く、1レポートあたり5ミッキーを含む場合は、毎秒600ミッキーである。
【0036】
5ミッキーのレポートはマウスの動きが比較的速いことを示すので、ピクセル空間の距離を倍にすることができ、ユーザには、カーソルが速く動いているということだけを伝える。最終的に、カーソルは、速度を急速に上げてから速度を落とす短距離の移動によって、スクリーンをより速く移動することができる。カーソルがターゲットに近づくと、余分なゲインを与えないように動きを遅くし、完全な単一ピクセル制御を行う。
【0037】
弾道学関数はデバイスのダイナミックレンジを拡張するために用いることができるが、レンジが増加すると制御性が低下する。幸運にも、通常この制御性の低下は、高速度時に発生し、その速度によって実質的に制御性の低下が隠される。しかし、ユーザが認識したものと実際の制御レベルの双方に実質的な影響を与えずに、弾道学関数を介して拡張できるダイナミックレンジの程度にも制限がある。通常のGUIタスクの経験則制御は、もともとのデバイスのダイナミックレンジを約10倍拡張したものである。
【0038】
高次数オペレーション(higher order operation)
【0039】
既に説明したように、マウスのダイナミックレンジを制限する主な要因は、作業領域寸法である。弾道学関数によりデバイスのダイナミックレンジを拡張できることが示されたが、それは幾分か制御性を犠牲にしたものである。通常、多くの入力デバイスに適用される原則とは、制御可能な入力デバイスのダイナミックレンジがその作業領域寸法にほぼ比例するということである。
【0040】
デバイス寸法が特に制限されている場合、高次数ペレーションと記述されているさらに別の処理技術により、寸法に対してタスクの制御性をさらにトレードオフできる。デバイスのオペレーション次数(オーダー)は、入力あるいは出力変数の変化が出力あるいはGUIタスク変数の変化にどのように伝わるかを決定する。数学的に、この次数は入力/出力の関係を関連づける導関数の数に関連する。出力変数が入力変数に比例するオペレーションモードは、例えば公式(4)のように、ゼロ次数モードである。出力変数の一次導関数が入力変数に比例するモードでは、第1次モードである。この第1次の関係を以下の微分式で表す。
【数7】
【0041】
また、積分式では以下のようになる。
【数8】
【0042】
第1次よりも高いオペレーション次数は幾分か実用的でないが、第2次モードは二次導関数などによって関連づけられる。
【0043】
第1次オペレーションの背後にある概念とは、入力変数の比較的小さな変化が時間とともに累積して、出力変数の比較的大きな変化になることである。この概念をリラモーティブデバイスに対してさらに具体化するため、入力変数d(t)およびタスク変数g(t)は、タイムインターバルtにおいて、どこに移動するかではなく、どれくらいの距離を移動するかを示す。リラモーティブオペレーションおよび入力の時間積分が示す第2の概念事項は、入力空間における絶対主義(absolutism)である。ほとんどのデバイスで出力空間の動きを中止するためには、g(t)がゼロになり、その結果、D(t)もゼロにならなければならない。D(t)がゼロになるために、特定のタイムインターバルを超えた積分d(t)はゼロでなければならない。これは、ゼロポイント、あるいは入力空間におけるホームロケーションの概念を意味する。入力空間において1つの極性にどのような偏差が生じても、反対の極性の入力空間の動きによって相殺されるまでは、周期的に出力空間信号を生成し続ける。入力の動きが止まった場合であっても出力信号は生成され続けるので、第1次モードは“自動”モードと称される場合がある。自動出力信号の生成に使用するタイムベースは通常、入力動作をレポートするために使用するものとは異なり、また、出力信号は通常、入力動作と同時には発生しない。
【0044】
第1次オペレーションモードに非線形の弾道学関数を適用してもよい。分析と実装とを簡単に行うことができるので、従来、弾道学は入力の時間積分に応用されている。
【数9】
【0045】
弾道学は入力及び出力の比例を決定することができるが、基本のオペレーションオ次数は変更しない点に留意されたい。
【0046】
通常、第1次のオペレーションを行う、最も幅広く配置されたポインティングデバイスは等尺性(isometric)ジョイスティックであり、これは、多くのラップトップコンピュータ上でポインティングのために用いられている、ゴム引きのナブ(rubberized nub)である。この等尺性ジョイスティックは、知覚できるほど動かないので、これは第1オーダーのオペレーションを行うその他のデバイスよりもずっと小さくてよく、例えば、わずかに変更が加えられた標準のキーボードのGとHの間に納まるくらいに小さくてよい。
【0047】
等尺性ジョイスティックが生成する入力変数は、通常は人指し指に加えられた力の大きさである。第1次のオペレーションは表示カーソル速度をこの力に比例させる。人間の指で無理なくかけられる力、あるいは、無理なく分散(resolve)された力の範囲では、カーソルの速い動きとシングルピクセルの解像度とに対応するには不十分なので、弾道学関数がジョイスティックシステムに組み込まれることが多い。実際のシステムでは、このような関数は20:1を上回るダイナミックレンジ拡張比を備えている。
【0048】
等尺性デバイスを第1オペレーションに特に適したものにする等尺性デバイスの属性は、一次の積分結果をより速く求めることができることである。これは、等尺性デバイスの反転には、加えられた力の反転だけが求められるからである。移動可能なデバイスに対して、反対の極性が生成される前に、1つの極性のスラック(slack)を用いるために、加えられた力の反転に続いて、更なる時間が求められる。等尺デバイスの積分結果を求める時間がより早ければ、両者が第1次のオペレーションを行う場合に、移動可能なデバイスよりも優れた制御性をもたらす。
【0049】
等尺性ジョイスティックをポインティングに使用するための主な欠点は、第1次オペレーションと拡張した弾道学関数とが共に、制御性を制限するために共謀することである。多くのユーザたちはこれらを効果的に使用できるほどに器用であるが、そうでないユーザもいる。これにより、普遍的に受け入れられるポインティングデバイスとして等尺性ジョイスティックを、潜在的に不適切なものにしている。
【0050】
様式(modality)
【0051】
単一デバイスを使用して1次元および2次元の信号を生成するために求められるもう1つの概念は、その様式である。この概念もまた、ポインティングに関連して効果的に考察されてよい。様式的用法では、シングルデバイスのデータストリームは、追加情報を介して1つ以上のGUIタスクに向けられる。この拡張した様式情報は多くの場合、デバイスのデータストリームに含まれるが、また、全く別のソースによって提供されてもよい。特定のモードへデータのディスパッチをさせる特定の情報は、そのモードに対する様式インジケータと呼ばれる。拡張した様式情報がない場合、あるいは、デフォルト様式状態において、デバイスデータはその通常モードあるいはホームモードにディスパッチされる。
【0052】
例えば、2次元入力データは、ボタンの状態で、拡張した様式情報を介して、GUIポインティングとドラッグタスク間で様式的に切り替えられる。通常、ボタンの状態はポインティングデータを生成する同じデバイスに関連づけられ、また、そのデータと同時に運ばれる。マウスに関して、ドラッグ中のモードインジケータは、第1の、通常は左のマウスボタンのダウン状態である。マウスのホームモードは、その左ボタンのアップ状態によって示されたポインティングである。
【0053】
拡張したモード情報は同時に複数のソースからもたらされてよい。例えば、いくつかのGUIは、ドラッグオペレーションをさらに2つに分けることができ、データを移動あるいはコピーする。コピーのためのモードインジケータは通常、マウスの左ボタンのダウン状態、及び、いずれのキーボードのShiftボタンのダウン状態である。移動はデフォルトあるいはホームドラッグモードであり、マウスの左ボタンのダウン状態及びキーボードの両Shiftキーのアップ状態によって示される。
【0054】
次元縮退
【0055】
2次元から1次元空間にマッピングすることができる多くの技術がある。簡単な1つのマッピング法は、それぞれのペアになった2次元座標のうち1つを破棄することである。例えば、従来の垂直座標(つまり、従来の(X、Y)ペアの“Y”座標)を破棄するだけで、右上がりで左下がりの1次元変数になる。リラモーティブ用法では、この変数は、右側に移動すると正であり、左に移動すると負である。しかし、この種のマッピングでは、境界のある2次元の移動から境界のない1次元変数を生成する問題を解決しない。左端の2次元の境界に到達すると、1次元の更なるどのような出力も右になるので、正になる。デバイスを利用することができる2次元空間にはもともと境界があるために、この単純なマッピングを用いることができない場合は、その問題に対して任意の大きな負の出力、あるいは、正の出力を生成することは非常に困難である。
【0056】
その結果、通常有益な縮退マッピング(reductive mapping)が所望する1つの属性として、境界のある入力から境界のない出力を合成することが挙げられる。これをイメージする1つの方法は、潜在的に無限の1次元空間を“折り畳む”ことであり、その結果、その1次元空間が固定した寸法の2次元空間に適合する。反対に、折り畳まれた2次元経路は、巻きが解けた状態(unwounded)と考えられ、単一の次元に沿って配置される。例えて言えば、4分の1マイルのトラックを12周走り終えているランナーは、出力空間においては既に3マイルを走っているが、入力空間ではランナーのスタート位置と停止位置は同じである。同様に、パッド上あるいはその他の作業空間におけるマウスの2次元移動は、1次元では境界のない移動であると言い換えることができる。数学的用語で言えば、リラモーディブレポートの大きさの合計(移動量の総計を表す)は、リラモーティブレポートの合計の大きさ(開始位置からの正味の移動量を表わす)よりも実質的に大きい。リラモーティブデバイスがその開始位置から実質的に移動していなくても、実質的な移動量が生じる。用語“実質的に”はこの場合、直線経路から突発的に逸れること、あるいは測定誤差によって説明されるものよりも量が大きいことを意味する。
【0057】
第2の望ましい属性は、ダイナミックレンジの意味で、境界のある入力空間を利用することである。より大きな入力空間ではより大きな大きさを認める必要があり、その結果、出力空間の蓄積がより速くなる。例えば、回転移動の縮退マッピングは公式化することができ、実際に回転した角度に基づいて出力の大きさを求めるものである。しかし、このタイプのマッピングは、移動するサークルがどれほど大きくても、出力の大きさは同じである。小さなサークルは大きなサークルよりも物理的に速く移動することができるので、そのようなマッピングは、入力空間寸法とダイナミックレンジ間に望ましくない反比例関係を有する。
【0058】
第3の望ましいマッピング属性は、人間によって簡単に学習される点である。マッピングの学習可能性を決定する、同時に発生する一定のフィードバックは主要な属性である。適切なフィードバックを提供するよう、入力空間で移動がある場合はいつでも、出力空間で移動を生成するようにマッピングを構成しなければならない。差し支えがなく可能な範囲で、入力空間のデッドスポット(dead spot)あるいはデッドディレクション(dead direction)を回避しなければならない。
【0059】
第4の望ましいマッピング属性は、直観的でなければならない点である。周知の動作は予想した結果を生成しなければならない。最も一般的な2つのコントロールジェスチャは、直線及び回転動作である。小さな動きには直線動作が自然であり、また大きな動きには回転動作ではより自然であるので、直線および回転の両方を扱うための一体化した機構が望ましい。次元を縮退するために、このような2種類の動作を一体化することは、適切な符号取り扱いの主な機能である。単一方向において直線動作を継続して行う場合、符号が反転してはならず、一方で、直線動作中に方向が明らかに反転する場合、符号が反転しなければならない。ある特定の回転方向(handedness)回転動作を継続する場合、符号が反転してはならず、一方で、回転動作の方向が明らかに反転する場合は、符号が反転しなければならない。
【0060】
実装を便宜化するため、第1の入力属性が出力符号を生成し、第2の入力属性が出力の大きさを生成するという意味では、マッピングは分離可能であってよい。入力空間の、サイズ比例のダイナミックレンジ要件を出力空間に転送することは、入力距離から出力の大きさを生成することを示す。それは同様に、入力方向と、周知の極性座標記述に類似した距離の記述を示す。マッピングが分離可能であるという原理を応用し、入力距離を用いて出力の大きさを決定すると、入力方向が出力符号を決定する。このような原則に基づいた減縮マッピングについて以下に説明する。
【0061】
符号付きの減縮マッピング
【0062】
テーブル1の様々な原則は、これまでに説明した特性を備えた例示的減縮マッピングを総合的に生成する。直線と回転の反転が回避される限り、出力符号は変化しないという点で、マッピングに境界がない場合がある。出力の大きさは移動した入力距離に大きく比例することから、出力のダイナミックレンジは入力デバイスの寸法に比例し、また、出力デッドスポットあるいはデッドディレクションは実質的に回避される。直線動作からの出力符号の変化には、突然の方向反転の判断基準によって対応し、回転動作からの符号の変化には、回転方向の反転の判断基準によって対応する。出力符号が入力方向に依存し、出力の大きさが入力距離に依存するという点で、マッピングは本来、分離可能なものである。
【表1】
【0063】
このような原則の実際の適用法について更に具体化するために、一連の(Δx、Δy)ペアによって適切に表されてよい、別々の2次元のリラモーティブ変数(“レポート”)を定義することが有益であろう。以下に説明した実施形態において、各レポートは、サンプル期間において2つの直交する基礎となる連続デバイス変数が蓄積した動き量を適切に表す。例えば、従来の座標系では、(1,1)のコンピュータマウスレポートは、マウスがユーザから離れて1基準単位(例えば、“ミッキー”)移動し、前のレポートからのインターバルにユーザの右側に1基準単位移動したことを示す。
【0064】
図面に戻り、図2を参照すると、理論的にはエンドツーエンドになった例示的な一連のレポートS1−S40は、2次元入力空間202を介して入力デバイスの経路206を表す。経路206を構成する各レポートは、その経路の特定のセグメントと1対1で対応して示されている。そのため、図2に示す例示的経路206は、40個のセグメントを含み、各セグメントは、各レポートS1からS40の1つよりも前に配置されている。例えば、セグメント205はレポートS2に対応し、入力デバイスがレポートS1とS2との間を移動した移動量に近い直線を表す。
【0065】
入力経路のフレームワークを与えると、経路の各セグメントを符号と大きさでラベル付けすることによって減縮マッピング技術の主な仕事を達成できる。これらの符号/大きさのペアを1つの符号付き変数にアセンブルすると、関連づけられた1次元出力変数ストリーム204を簡単に生成する。図2の下方部分に示す1次元出力信号ストリームでは、2次元入力経路206のレポートS1は、出力ストリーム204の一番目の信号208を生成し、レポートS40は最後の信号210を生成する。しかし、様々な等価の実施形態において、その他の信号生成およびマッピング法を用いてよい。
【0066】
既にリストに挙げた減縮原則に関連して、1次元の信号ストリーム204における符号のラベル付けは、前のセグメントの符号を使って経路206の各セグメントをラベル付けする定常状態のプロセスと見られる。この、前のセグメントの符号は、経路206が表す2次元動作において、直線と回転方向の反転を検出する反転プロセスにより増大される。直線の反転は通常、回転の反転よりも速く検出できる点で、一般に直線の反転は優先権を有する。図2に示す例では、直線の反転は、レポートS13とS14の間で起こり、これらの2つのレポートの情報だけで直線の反転を直感的に検出することができる。これに対し、レポートS27付近から開始する回転の反転は、実際にはもっと後まで、おそらくはレポートS30に近づくまでは不明瞭である。
【0067】
符号のラベル付けと比較すると、ある大きさを有する経路セグメントのラベル付けは比較的簡単である。第3の減縮原則(P3)によれば、ある経路セグメントの大きさを、そのセグメントの長さにほぼ比例して決定することができる。最も一般的に使用されている長さ寸法はユークリッド距離√(Δx2+Δy2)、であるが、コンピュータ的により簡単な方法または同種のものを、様々な他の実施形態において実装してよい、及び/あるいは増加(augment)してよい。図2の信号ストリーム204で示した例示的な大きさは、少しだけ変更した絶対距離寸法によって生成される。この絶対距離寸法は、潜在的な回転の反転に近い動作を弱めるものである。しかし、そのような拡張はすべての実施形態に設ける必要なない。
【0068】
方向、キラリティ、及び、符号
【0069】
前項の原則は、特定の入力動作に与えられた前の状態からの、例示的な符号の変化についての概略を示すが、これまでのところ、変化させる初期状態を決定する議論は行っていない。初期化すべき1つの状態変数は、出力符号のラベルである。反転について既に説明したように、通常、直線動作は回転動作よりも速く決定することができる。これは、ユーザが認識する精度レベルに対して、回転動作を複数の直線動作に分解することができるからである。図2の経路206を形成する様々なセグメントをそれぞれ、例えば、レポート間の2次元回転移動に近似する直線と考えてよい。回転動作よりも直線動作からの符号を決定することによって、初期符号を決定する際の遅れを減らすことができる。この符号初期化の原則をテーブル2に要約する。
【表2】
【0070】
垂直に配列した出力変数に適切な符号の初期化技術の例を図3に示す。この技術によれば、最初の上方向移動302は、最初の正の符号を生成すると定義され、一方で下方向移動304は最初の負の符号を生成すると定義される。図3に示す移動302および304の両方の回転方向は、双方の最初の符号に一致する点に留意されたい。つまり、経路302および304が両方とも反時計方向動作を描いたとしても、経路302は最初に上方向に移動したために正であり、パス304は最初に下方向に移動したために負である。それでもなお、本例は、異なる符号と同じ回転方向とを関連付ける必要性、あるいは同様に、異なる回転方向と同じ符号とを関連付ける必要性を示す。
【0071】
したがって、初期化すべき別の状態変数は、符号と関連付けられた回転方向を表す。ある1つの符号は、別の、関連付けられた回転方向を有することができるために、また、ある1つの符号は回転方向よりも速く推測できるために、回転方向とある1つの符号との関連付けを、最初の符号発見ポイントを超えて遅らせてよい。用語“レイジー”は多くの場合、決定を遅らせるコンピュータアルゴリズムを説明するために用いられる。本用語を便宜上、本文に用いる。
【0072】
より具体的にこの概念に対処するため、ある入力経路のセグメントに第2のラベル付けを行い、その回転の優先傾向(turning preference)を示すことが有益である。ある分子が平面偏光を回転する方向を示すために、化学用語を採用すると、“回転の優先傾向”、あるいはセグメントが優位に回転する方向を説明するために、“キラリティ”セグメントラベルを用いてよい。左方向の回転(つまり、反時計回り)に優先傾向がある場合は、“左旋性”(L:Levorotary)と示す。同様に、右方向の回転(つまり、時計回り)に優先傾向がある場合は、“右旋性”(D:Dextrorotary)と示す。確立したキラリティがないセグメントはラセミ(R:Racemic)と示す。
【0073】
いくつかのデバイスと様式エントリ構造は、ラセミ状態を取り除き、キラリティと符号との間に固定した関係を選定することができる。例えば、図4は境界のあるポインティング表面406の右端における最初の上方動作402と下方動作404とを示す。この状態は、例えば、タッチパッドの右端に沿った並行動作を介して減縮モードに入る際に生じる。この例では、更に右側に移動することができないので、初期の上方移動402は必然的に左旋回キラリティを示し、下方移動404は右旋回キラリティを示す。その結果、表面の端部に沿った最初の移動で、出力符号とキラリティの両方の初期値を同時に定めることができる。その理由は、上方および下方移動は次の回転で、最初の符号を保持するという予測した動作を行うからである。回転することで導き出される初期符号の符号反転という複雑な状態は、様式的な幾何学制約によって回避される。
【0074】
しかし、幾何学制約がない場合は、次の回転のどちらかの方向が最初に決定した符号と関連付けられる場合、学習可能性およびその作業面の中心付近にデバイスを維持するための自由度が高まる。これを実現するための1つの技術として、ユーザの意図を推測できるほどに十分回転するまで、最初のキラリティの決定を遅らせることである。図5は、キラリティと符号間の最初の関係を遅らせる一例を示す。この例では、“上方”移動502は正の符号を素早く認識でき、また、“下方”移動504は負の符号を素早く認識できる。しかし、キラリティは、最初はラセミの状態である。最初の回転方向で十分に回転した後、左旋回あるいは右旋回キラリティを決定してよい。上述した図4の固定スキームでは、2つの関係:L+およびD−だけが可能である点に留意されたい。レイジースキームでは、2つのラセミの状態、R+およびR−は、キラリティ及び符号に対して4つの可能な関係:L+、L−、D+、D−をもたらし、これらはそれぞれパス506、510、508、および512に対応するものである。
【0075】
キラリティと符号との間に関係を築くために必要な回転量は、ユーザの意図が明らかになるまで関係が築かれないように大きくなければならないが、一方、ユーザの意図を無視することがないように小さなものでなければならない。このような2つの要件は矛盾してよいが、1つの可能な解決案としては、キラリティの関係を確立するために用いた回転量を、符号の反転を引き起こすのに必要な量にほぼ等しくすることが挙げられる。
【0076】
別の複雑な問題としては、キラリティの関係を確立するには不十分な回転が次の反対方向の回転の十分性に影響を及ぼすことが挙げられる。この問題を解決するための2つの可能性として、以前の反対方向の回転を無視すること、および、前の反対方向の回転を合計し、関係を確立するために必要な次の反対方向の回転量を増やすことが挙げられる。そのような、回転を無視するのではなく合計することを好む理由は、関係が決定したことを初期の移動方向とともに記録しなくてはならないからである。これは、ユーザたちは最初の移動方向を正確にたどらないが、その方向の直観的概念(intuitive notion)は持ち続けているからである。図6は、キラリティの関係を築くには不十分ないくつかの反対方向の回転602、604、606、および608を相互に平衡させるように示す。つまり、反対方向に少し回転しただけでは、キラリティを変えるのに十分な正味の回転量を蓄積しない。関係を決定する状態がその初期状態に戻る例示的なポイントを図面の破線で示すが、等価の実施形態においてその他の技術を用いてもよい。
【0077】
既に説明したように、遅れた、あるいは“レイジー”キラリティを割り当てるための動機付けとして、リラモーティブ方式を用いる場合、予想外の回転に関連する符号の反転を回避することが挙げられる。基本の概念は、回転により導かれる符号の反転には通常、反対方向を表すための回転ベースラインが必要であるということである。回転ベースラインを一旦確立すると、突然の方位反転といった直線の概念を介在させて、そのような回転ベースラインをなくしてよい。このマスキング効果のために、ラセミのキラリティ状態を、直線の反転上に戻すことによって、より直感的な回転の反転予測を生成する。また、介在する直線の反転がない場合には、2つの回転の反転は相対的に起きにくく、ラセミのキラリティを回転の反転上に戻し、同様に、より安定した回転の反転動作の生成をサポートする。
【0078】
したがって、例示的なレイジーキラリティの割当スキームは、まず、直線の反転及び回転の反転後にラセミ状態のキラリティを割り当てる。回転ベースラインを確立するために用いる回転量は、回転の反転を伝えるのに必要な回転量に近似するよう、あるいは一致するように設計されてよい。一方向において不十分な回転が、関係を築くために必要な次の反対の回転量を増やすように、1方向の不十分な回転が関連性をもたらすのに必要な、次の反対方向の回転量を増やすように、ベースラインに関連する回転を適切に蓄積する。これらの例示的なキラリティと符号の関係の原則をテーブル3に要約する。
【0079】
図7を参照すると、一連の2次元信号/レポートによって示された例示的な入力経路700は、テーブル3にいくつかの原則を例示する。移動経路700が開始すると、キラリティはまずラセミ状態であると仮定される(原則P2a)。初めは下方向に移動する。そのため、初めは負の符号値を生成する。レポートは通常反時計回りに進むので、レポート702付近では左旋回キラリティが確認される。レポート703と704との間で直線の反転が起きる。これは、符号が正になり、原則P2dによると、キラリティがラセミ状態にリセットされる/キラリティが不確定であることを意味する。レポート706付近では、時計回り回転が確認される。経路700はレポート708の前後で反時計回り回転を開始する。これにより、レポート710などにおいて、キラリティを最終的にラセミ状態にリセットする(また、符号をトグリングする)。次の動作が時計回りと半時計周りとに混合しているので、時計回り回転がレポート712の前後で右旋回性の割り当てを調整するまで、(原則P2cによると)キラリティはラセミ状態のままである。図7に示す例示的な経路700の下位部分は上位部分の鏡像である点に留意されたい。しかし本例では、経路の各部分の出力符号は同じままである。全体の効果としては、境界のない符号の付いた出力を表すための自由度の量を最大にし、入力デバイスを再センタリングする必要性を最小にすることである。
【表3】
【0080】
方向の量子化
【0081】
既に説明した符号を取扱う手続に続いて、直線あるいは回転の反転が発生するときを判断する問題に着目する必要がある。埋め込み式を使用する1つの問題点として、反転の判断を下すために必要なコンピュータリソースを最小にすることが挙げられる。通常、この問題は、状態の簡素化の1つであり、つまり、制限されていない2次元入力の相対的なそれまでの動きから外れた動き(relative cacophony)からいくつかのキーとなる計算点を求めることである。入力方向は反転を判断するために用いられる判断基準であるので、この目的に有益であろう基本的概念は、方向を量子化するという考えである。方向を相対的に2、3の検出が可能な値に量子化すると、進行方向(ヘディング)の変化は非常に有益な計算点である。これに関連して、検出可能なヘディングの数が少なければ少ないほど、反転を判断するうえで進行方向の変化はより効率的になる。他方、量子化したヘディングが非常に少ない場合は、ユーザの意図を失う結果になるおそれがある。そのため、量子化したヘディングの数をできるだけ少なくしなければならないが、少なすぎてはならない。また本文では、量子化したヘディングを“検出可能ヘディング”あるいは“バケット”と記述する。
【0082】
量子化 “バケット”アーティファクトを回避するため、少なくとも3つの検出可能なヘディングを反転方向において利用可能にしなければならず、その結果、各前方向のヘディングは正反対のヘディングと、アラインメントガード(alignment guard)としてその正反対のヘディングに隣接する2つの反対方向のヘディング(その反対のヘディングの両側に1つのヘディングがある:one on either side of the opposing heading)を有する。回転の進行を受信するため、少なくとも1つのヘディングを現在の前方向のヘディングの各側面に提供する必要がある。量子化したすべてのヘディングの寸法が略同じであると定義されると、2つの、進行方向を受信するヘディングは、上述した3つの反転ヘディングにより良いバランスを与える。現在の量子化したヘディングを数えると、本実施形態で用いた量子化したバケット数は8(1+2+2+3=8)である。
【0083】
図8はコンピュータマウスあるいはその他の入力デバイスにおいて、埋め込み式の使用に適した例示的な不均一の八分円(オクタント)量子化スキームを示す。図面に示しているように、4つの軸的に配置された“基本となる方向”(cardinal direction)のバケットの大きさは任意に、散在させて対角線上に配置したバケットの2倍であると定義されており、その結果、以下に説明しているように、整数加算とシングルビットシフトによって量子化についての判断を行うことができる。この量子化スキームでは、“タイ”(ties)(バケット間で境界線に沿った方向においての移動)はより小さな対角のバケットに有利に分割される。このスキームにより、典型的にマウスレポートが遭遇する少数を用いて、バケットポピュレーションを等しくすることができる。
【0084】
入力デバイスからのリラモーティブレポートを量子化スキームに適用することにより、近似したヘディングを簡単に識別できる。例示的なNおよびNEバケットにおいて、小さな正の整数レポートの量子化した分布をテーブル4に示す。バケット間の各境界に対して類似する割当てスキームを公式化し、いずれの方向の2次元移動を特定のバケットに割り当てることができる。
【表4】
【0085】
量子化したヘディングを与えると、過去の入力から維持されている固定されたヘディングと、過去の入力および現在のレポートとから形成された、提示されたヘディングとをただ比較するだけで、デバイスレポートを処理する間に符号およびキラリティの反転の判断を行ってよい。直線の反転の判断を直接示すことができるのは、固定されたヘディングと提案されたヘディングとが、3つ以上のオクタントによって異なる場合である。例えば、固定されたヘディングと提案されたヘディングとが、1つのオクタントによって異なる場合、回転動作を示す。2つのオクタントの違いを1オクタント差にまでリラックス(relax)できる。その理由は、次の動作がリラックスした進行を続けるからである。以下にさらに詳細を説明しているように、回転動作は現在の符号を変化させず、一方で、回転の反転は符号の反転を引き起こす。このような一般的な概念のそれぞれは例示的なものであり、様々な別の実施形態において、変形、補足、あるいは、置換えることができる。
【0086】
ほとんどの場合で、提示されたヘディングは次のレポート用に固定されたヘディングとなる。しかし、オクタントの進行ルールを少しだけ変えることによって、直線および回転の反転の両方を判断するための一体化したメカニズムが生じる。この変更により、現在優先するキラルの方向において、1つのオクタントのヘディングだけを変えることができる。ヘディングを変えることが出来るかどうかに関わらず、判断に関する統計が更新される場合、現在のキラリティとは反対の回転が、最終的には、固定されたヘディングと提示されたヘディングとの間に3オクタントの違いをもたらす。3オクタントの違いが発生すると、直線の反転ルールだけを用いて回転を識別する。上述した方向ルールからの、例示的な一体化した符号を表5に要約する。
【表5】
【0087】
量子化したヘディングを進行させるための既に説明したルールは、直線および回転の反転の判断を一体化する。しかし、直線の反転を判断する際の基本的な不明瞭さに疑問が残る。ポインティングデバイスの軌道を人間が正確に反転させるのは非常に難しいので、軌道の反転が、反転軸に垂直の少なくともいくつかの動作を含むのは非常に一般的である。さらに、反転動作が速ければ速いほど、そのような動作はより不正確なものになる。第2の困惑させる要因として、ポインティングデバイス自体にわずかな不正確さが存在するということが挙げられる。一貫性のある結果をもたらす最小の直径において回転移動するという、人間のもう1つの傾向により、このような不正確さは重大な問題になる。
【0088】
このような2つの人間の傾向は相反するものである。その理由は、一方では、より大きな直線移動の下では通常、小さな直径の回転は無視されるからである。他方、その他の小さな直径の回転の下で、小さな直径の回転は通常無視されない。このような予測できない変化(vagary)は、2つの連続した近似ヘディングから反転の判断を下す単純な計算モデルとともに、デバイスノイズあるいは人間の不正確さに起因して変化しない近似へディングの重要さを強調する。
【0089】
不正確さとノイズによる影響を減らすための第1の原理として、量子化したヘディングは、新しい方向において、次の十分に一貫性のある動作の後でのみ変化することが挙げられる。一貫性のある動作は複数のデバイスレポートから蓄積できるので、十分量を徐々に増やしていく必要があるかもしれない。計算の簡素化のため、十分量を確立するために、単一のスカラ値を用いることが望ましい。したがって、十分量に関する判断を下すために、確実に一貫性のある情報だけを用いる機構が求められている。
【0090】
動きを一貫性のあるものとするために、動作は1つの意図との互換性を有していなければならない。反時計回りに互換性のある動作は、例えば、現在のオクタントとそのオクタントに最も近接した2つの左旋性隣のオクタントに位置する。反対に、時計回りに互換性のある動作は、現在のオクタントとそのオクタントに最も近接した2つの右旋性隣のオクタントに位置する。反転を意図としたものと互換性のある動作は完全に現在のオクタントと反対の3つのオクタントに位置する。充分性アキュムレータ(sufficiency accumulator)の現在の中身と互換性のないいずれかの動作は、当該アキュムレータをクリアする。主に現在のヘディングの方向に向かう動作もまた、充分性アキュムレータをクリアしなければならない。このような例示的なヘディングの進行原則を表6に要約する。
【0091】
既に述べたように、1つの状況で目的を確立するために十分な動作は、別の状況では不十分であるおそれがある。このことは適応進行充足判断基準(adaptive progression sufficiency accumulator)の必要性を示す。考慮すべき2つの影響は、デバイスの不正確さと人間の不正確さである。与えられたデバイスの不正確さは幾分か修正され、その結果、適切な判断基準は修正した要素を含む必要がある。人間の不正確さは変わりやすく、移動速度が高まることによって不正確さが増す。従って、速度に依存した充足要素(speed-dependent sufficiency component)も有益である。
【表6】
【0092】
速度に依存した充足要素は、速度が増加すると比較的速く速度変化を追跡しなければならない。しかし、速度は相対的に、不正確さよりも速く減速する。これは、本来、加速よりも減速を制御することがより困難であるためである。したがって、速度に依存した充足要素は、比較的ゆっくりと減速することだけを可能にしなければならない。このような例示的な進行の充足の原則を表7に要約する。
【表7】
【0093】
進行の充足の判断基準を減らすための、コンピュータ的に効果のある方法は、量子化したヘディング変化の現在の速度方向の判断基準を徐々に消すことである。
この方法はまた、レポートレートなどのデバイスの予測できない変化に大いに依存し、また、時間ベースのエバネセント(evanescent)スキームに優先される。
【0094】
距離と大きさ
【0095】
既に説明した減縮の原則が求めることは、1次元の出力変数の大きさが2次元の移動距離にほぼ比例するということである。既に説明した出力符号の取扱い原則に関連して、この比例原則のリラクゼーション(relaxation)は有用性を有してよい。主な問題点は、ある状況では動作の意図が曖昧であるおそれがあることである。更に、不正確に解釈される曖昧な動作により、ある状況が予想外の出力をもたらすおそれがある。
【0096】
各要因が最も不利に組み合わせられた状況は、回転によって導かれる符号の反転である。これは、反対の角度に大きく回転するまで、回転の反転を検出することができないためである。回転の直径が非常に大きい場合、回転の反転が開始するポイントと回転の反転を検出するポイント間に多量の1次元出力を生成してよい。これにより、現在の出力符号の方向で、かなりのオーバーシュートをもたらすおそれがある。
【0097】
方向の曖昧さの改善をサポートする一般的原則は、現在のオクタント方向にある入力動作のコンポーネントだけを出力するために蓄積することである。これは、入力レポートと現在のオクタント方向を向いた標準ベクトルとのドット積を実施することで行うことができる。計算を簡素化するために、標準ベクトルをゼロと1との様々な組み合わせに限定してよい。例えば、“北”の標準ベクトルを(0,1)と定義し、“北東”の標準ベクトルを(1,1)と定義してよい。同様に、任意のいずれの基準に割り当てられた様々なヘディングを使って、どのような方向性スキームを適用してよい。本文中の標準の方向に関する記載は、単に例示と参照の便宜化を目的としたものであり、実際には、様々な等価の実施形態において、いずれの座標および/あるいは方向システムあるいは配置を用いることができる。
【0098】
最も一般的な状況では、移動した入力距離よりも遅く出力が蓄積することが望ましい。これは通常、単一の出力ユニットが1以上のピクセルによって直線のGUI表示を変化させるからである。例えば、Microsoft Windowsのオープニングシステム上で、WM_MOUSEWHEELメッセージを用いて垂直スクロールを実行すると、単一のホイール情報ユニットに対する通常のアプリケーション応答は、数ラインのテキストに相当する距離分をスクロールすることである。この動作は、マウスホイールを介してスクロール出力を生成する際には適切であるが、マウス自体がスクロール出力の生成を減らす場合は幾分か混乱させるものである。マウス動作を介してスクロールする場合、ユーザは、特定の動作速度を与えると、ウインドウコンテンツはスクロールする場合にピクセル空間においてカーソルがポインティングする時と同じくらい速く動くと予想する。
【0099】
したがって、低減した出力と1次元のGUIナビゲーションに影響を及ぼすために実際に用いられる機構との間に、ゲイン一致スキームを介在させることが有益である。減縮モードは従来利用可能なものよりも高いダイナミックレンジを提供するので、既存のナビゲーション機構にゲインを一致させるには通常、減縮出力を弱めること、つまり1未満のゲインを適用することが求められる。
【0100】
整数演算を介して分数ゲイン(fractional gain)を適用するための標準技術は、分数ユニットを蓄積することである。アキュムレータベースと呼ばれる閾値に到達するまで、マッチング変数は入力ユニットを蓄積する。アキュムレータベースを超過すると、アキュムレータをそのベース(基数)で割り、その商は分数ゲインの整数出力になる。その除算の余りをアキュムレータに残す。効率性の理由から、分数基数は通常2の累乗であり、そのために、除算をバイナリシフトで実施してよい。多くの1次元ナビゲーションタスクに対して、最小ナビゲーション単位は、1ラインのテキストである。従って、有益な分数ゲインは通常のフォントサイズに反比例する。
【0101】
減縮モード(reductive mode)は非常に優れたダイナミックレンジを提供するので、より高パフォーマンスを表す状況においてもバリスティック関数を適用することができる。例えば、有益なナビゲーションツールであれば、アテンションポイントを長い文書の一方の端部からもう一方の端部まで移動させることができる。このタスクを実現するために、十分に非線形の弾道は急速な動きの減少を可能にする。2乗した弾道(square-law ballistic)の一例を数10に示す。任意に、最大リラモーティブデバイス座標の大きさを128、絶対距離測定、および、分数アキュムレータ基数8を選択すると、本実施形態において、約32のシングルレポートから最大出力を生成する。その結果、単純な2乗した弾道、
【数10】
はダイナミックレンジを約32倍拡張する。
【0102】
実施形態の詳細な説明
【0103】
組み込み式のマイクロコントローラあるいはその他のプロセッサによって好適に実行される、最適化された符号減縮マッピング法(optimized signed reductive mapping)を図9から図25に示す。例示的方法は、割り算の結果、整数商だけが残るように整数演算を用いる。また、できるだけ2の累乗で乗除算を実行し、そのため、ビットシフトを用いることによって、乗除算を行うことができる。このような特徴は任意のものであり、すべての実施形態に備わっていなくてよい。
【0104】
簡素化のため、本文中に示し議論している例示的フローチャートは、より高いレベルのプロシージャが用いる前に低レベルのプロシージャで階層的に順序付けられている。各フローチャートには名前がつけられており、これらの名前を通じて、各プロシージャは相互に参照される。プロシージャの定義とそのユースポイント(point of use)の両方においてプロシージャパラメータ名が同じ名前を有する場合、プロシージャパラメータは参照によって通過でき、そうでない場合は、値によって通過できる。同様に、様々な等価の実施形態は以下の詳細な実装品とは異なってよい。
【表8】
【0105】
例示的方法では、2次元リラモーティブ入力変数の操作を行い、それに応じて符号付き1次元出力変数を生成する。2種類の内部状態が維持され、1つは、1つのレポートから別レポートが発行されるまでは変わらない、つまり固定された状態、もう1つは、1レポート毎に変化する状態である。本実装品において、すべての状態変数は最大で16ビットの整数表示内に適合するように設計されている。その他の実装品はこれと異なる設計がなされてよい。テーブル8に、11の固定された状態変数の名前および定義を示す。図9は例示的な局所変数を示す。本文中におけるこのような状態変数のすべての名前は、長さが1文字である。固定変数名は大文字で、局所変数名は小文字である。双方の名前の種類は、変数の用法に関する付加的情報を提供する、大文字のギリシャ文字の接頭辞を含んでよい。
【表9】
【0106】
テーブル10に、例示的フローチャートで使用する所定の定数を示す。所定の定数の全名前は、長さが1文字あるいは2文字であり、大文字である。すべての定数は基礎となる整数表示を有しており、その例示的な値もテーブル中に示す。該方法を用いるデバイスの特徴に応じて、特定のその他の所定の定数は異なる値を有する。このようなデバイス依存パラメータの値をフローチャートの説明の次に与える。
【表10】
【0107】
図9は、8つの検出可能なオクタントヘディング(possible octant heading)のうちの1つに動作レポートを量子化するための一般的なプロシージャを示す。各オクタントの名前を、羅針盤の方位メモリの略語によって示す。従来、ユーザから離れて配置されるのが北(North)であり、ユーザの右側に配置されるのが東(East)である。5つあるいはそれ以下の整数比較によってこの量子化を実現する。第1の比較により、左右のどちらに移動するかどうかを決定する。次の比較では、傾斜が1/2(2分の1)、−1/2(マイナス2分の1)、2、および−2の4本の線を用いて、入力面(input plane)を分割する。これらの4本の線は、図8に示す分割ポイントに対応する。方向レポートが分割線上に落ちる場合、比較はより小さなオクタントを優先するようになっている。
【0108】
図10は、オクタントヘディングを用いて動作レポートのドット積を行うための例示的プロシージャを示す。符号の付いた直交入力の様々な組み合わせから整数の結果を形成する。用いる組み合わせを選択するのはオクタントヘディングである。入力動作レポートが入力オクタント内にある場合、各直交方向の絶対値の合計がその結果である点に留意されたい。しかし、オクタントに対して直交の動作は結果がゼロになり、オクタントに対して逆方向の動作はマイナスの結果になる。
【0109】
図11は、入力レポートを正規化する例示的プロシージャを示す。これに関連して、標準のレポートは、入力と同じオクタント内にある最小の整数レポートである。このプロシージャではまず、入力レポートがあるオクタントを、すでに説明したQuantize()プロシージャを呼び出すことにより決定する。リターンした(returned)オクタントは、0と±1の正しいペアを選択する。
【0110】
図12は、別のオクタントに特定の回転関係を有するオクタントを探し出すための例示的プロシージャを示す。FindRelated()プロシージャの第1パラメータは、関係するオクタントを見つけるためのオクタントである。第2パラメータは、オクタントの整数として表される所望の回転関係である。正の回転関係は反時計周りを、負の回転関係は時計周りを特定する。入力オクタントと整数の回転関係を合計することで、暫定的な結果が得られる。結果がオクタントの最大表示可能数(largest possible octant representation)を超える場合は8を引く。結果が最小表示可能数(smallest possible octant representation)に満たない場合の場合は8を足す。
【0111】
図13は、2つのオクタント間の回転距離を定めるための例示的プロシージャである。各オクタントの距離を計測し、符号を付ける。この2つのソースオクタントを引き算することで、暫定的な結果が得られる。距離が−4未満の場合は8を足し、距離が4以上の場合は8を引く。これにより、2つの検出可能な回転距離のうち距離の短いオクタントを返す(リターンする)効果がある。
【0112】
図14は、多くの動作の合計を表す固定状態変数(persistent state variable)に動作レポートを加算するための例示的プロシージャを示す。まず入力レポートの各座標を、そのそれぞれの合計に加算する。両方の合計がゼロの場合はその合計をレポートに置き換える。適切に量子化を行うために、各ヘディングは少なくとも1つのゼロでない座標を有することが必要であるために、これによって、次の不適切な量子化を回避する効果がある。
【0113】
図15は、1つのオクタントが別のオクタントの方へリラックスするための例示的なプロシージャを示す。各オクタント間の回転距離が2に等しい場合にだけリラックスする。第1パラメータが特定したオクタントは、第2パラメータが特定したオクタントの方へリラックスする。この2つの間の半分の回転距離によって第1パラメータに関係するオクタントを見つけることにより、リラクゼーションを実現する。Distance()プロシージャを用いて回転距離を計測し、FindRelated()プロシージャを用いて関係するオクタントを見つける。
【0114】
図16は、最初に量子化したヘディングがその他の2つのヘディングと互換性があるかどうかを判断するための例示的プロシージャである。互換性とは、第2および第3のオクタントが両方とも、第1オクタントとは逆方向である、あるいは、第2および第3のオクタントが両方とも、第1オクタントに対して回転方向が同じであることを意味する。より形式的な用語で言えば、第2および第3オクタントがどちらも、第1オクタントから2オクタント以上離れている、あるいは、第2および第3オクタントが両方とも、2オクタント以下だけ第1オクタントの同じ側面から離れている場合に、互換性が示される。第1と第2オクタントおよび第1と第3オクタント間の回転距離を取得することにより、演算処理を行う。これらの距離を3分割し、商を比較する。分割した距離が異なる場合、非互換性が示される。そうでない場合は、2つの距離の符号を比較する。符号が同じ場合、互換性が示される。そうでない場合、2つの距離の大きさを合計する。合計が4以上の場合は互換性を示し、合計が4以下の場合は非互換性を示す。
【0115】
図17は、現在のオクタントを候補オクタント(candidate octant)に進めるために、候補オクタントの方向に十分な動作が蓄積されたかどうかを判断するための例示的プロシージャを示す。このプロシージャにより、進行した場合は変化しない候補オクタント、あるいは、進行しなかった場合は現在のオクタントにリセットする候補オクタントが生じる。このプロシージャはまず、現在のオクタントと候補オクタントとを比較する。これらのオクタントが同一である場合、あるいは、これらのオクタントが非互換性である場合に、現在の動作レポートから新しい候補ヘディングを取得する。副作用として、オクタントアクティブティアキュムレータがクリアされる。次に、変化した、あるいは、変化していない候補オクタントを再度現在のオクタントと比較する。これらの2つのオクタントが同一である場合、プロシージャを出る前に、より大きな現在のアクティビティ閾値(octant activity threshold)で更新する、あるいは、現在の瞬間速度でアップデートする。この閾値のアップデートプロシージャはその他すべてのプロシージャ出口経路パスからも呼び出される。
【0116】
以前の比較で現在のオクタントと候補オクタントとが異なる場合、オクタントアクティビティアキュムレータを更新し、その結果をデバイスファミリースペシフィックゲインパラメータで増加したアクティビティ閾値に対してスケーリングと比較とを行う。アキュムレータが閾値未満の場合、プロシージャを出る前に候補オクタントを現在のオクタントに設定する。そうしない場合、候補オクタントを保持する。保持した候補オクタントを戻す前に、蓄積したデルタを正規化し、アクティビティ閾値をアクティビティアキュムレータ値に設定し、そのアクティビティアキュムレータをクリアする。アクティビティ比較はスケーリングしたアクティビティ値を用いるので、アクティビティ閾値をアクティビティアキュムレータ値で置き換えると、アクティビティ閾値をゼロに近づける効果がある。
【0117】
図18は、キラリティと符号とを関連づける例示的プロシージャである。オクタントのヘディングが変わるたびに、現在のオクタントと候補オクタントとをパラメータとしてAssociate()プロシージャが呼び出される。このプロシージャの副作用としては、現在のキラリティに反対する、1つのオクタントの方向変化を無効にすることが挙げられる。このプロシージャではまず、2つのオクタント間の回転距離を算出する。絶対距離が3以上で、反転が継続していることを示す場合、キラリティアソーシエーションカウンタ(the chirality association counter)をリセットし、現在のキラリティをラセミ状態に設定する。全ての出口経路の場合と同様、この距離結果が返される。
【0118】
絶対回転距離が1に等しい場合は、現在のキラリティ状態について判断を行う。現在のキラリティがラセミ状態である場合、キラリティアソーシエーションカウンタは増加し、その値が3以上の場合、現在のキラリティはキラリティアソーシエーションカウンタの符号に設定される。現在のキラリティがラセミ状態でなく、現在のキラリティとオクタント距離の符号が異なる場合、候補オクタントを現在のオクタントに置き換えることで、提案されたオクタントの進行を無効にする。その結果発生する距離は、出る前にゼロにされる。
【0119】
図19は、量子化された現在のヘディングをアップデートするために、動作レポートを用いるための例示的プロシージャを示す。まず、動作レポートから動作の合計アップデートする。動作の合計から候補オクタントを取得し、動作レポートから最新のオクタントを取得する。オクタントが十分にアクティビティを行えるよう、候補オクタントをフィルタリングし、次に、リラックスする。最後に、キラリティを適切に関係づけるために候補オクタントをフィルタリングし、現在のヘディングを候補ヘディングに置き換える。アクティビティと、関連する(アソシアティブ)フィルタリングが、現在のオクタントと置き換えられる候補オクタントをもたらす点に留意されたい。そのような状況では、量子化した最新のヘディングは変化しないままである。
【0120】
図20は、最初の動作方向と最初のキラリティから、方向に関連する固定された減縮状態を初期化するための例示的方法を示す。動作の合計をクリアし、量子化した最初のヘディングを取得する。続いて、アクティビティアキュムレータ、アクティビティ閾値、および、キラリティアソーシエーションカウンタをクリアする。最後に、現在のキラリティを提供された最初のキラリティに置き換える。
【0121】
図21は、提供された動作レポート、符号、及びオクタントヘディングから、1次元の分数出力アキュムレータをアップデートするための例示的プロシージャを示す。アキュムレータは、動作レポートのドット積、および、符号とコンテキスト依存ゲインパラメータ(context dependent gain parameter)を掛けたオクタントヘディングで増大される。その結果として生じるアキュムレータ値が返される。
【0122】
図22は、画分出力アキュムレータの整数部分を抽出する例示的プロシージャを示す。アキュムレータをその基数で割り、ゼロに近づくように結果を丸めることで整数部分を取得する。その基数を掛けた、抽出した整数部分を引くことで、分数分をアップデートする。
【0123】
図23は、供給された抽出した整数出力から初期符号を感知するための例示的プロシージャを示す。副作用としては、供給された出力符号、出力画分アキュムレータ、および、変換状態が更新されることが挙げられる。供給された整数出力がゼロの場合、いずれのアクションも実行せずにプロシージャは終了する。そうでない場合、供給された変換状態変数がキラル状態へとアップデートされる。次に、提供された符号が提供された整数出力と比較される。これらの2つの値の符号が同じ場合、提供された動作レポートが用いられ、ラセミ状態のキラリティで、方向に関連する固定された減縮状態が初期化される。そうでない場合、提供された符号と画分アキュムレータとは、固定された状態が初期化される前に無効にされる。
【0124】
図24は、1次元の結果を生成するために、供給された動作レポートの次元を減らすための例示的プロシージャを示す。方向に関連する固定状態を初期化するために、供給された軸パラメータを用いる。供給されたモーダル記述子は、減縮した状態を初期化する必要があるときを指示する。その記述子が真であり、方向に関連する状態が供給された動作レポートとともにラセミ状態に初期化される場合、出力符号は垂直軸に対して負に初期化され、水平軸に対して正に初期化される。出力アキュムレータはクリアされ、また、内部の変換状態変数はIに設定される。次に、画分出力は蓄積され、整数出力が抽出される。続いて、変換状態変数がIの状態にある場合、符号の感知を行う。符号検知は、ゼロでない整数出力が以前の抽出で生成される場合に、変換状態変数をCの状態に発展させるという副作用を有する。これにより、供給された様式的記述子が減縮状態の初期化を強要するまで、符号の感知を停止するという効果がある。各プロシージャが呼び出されると、蓄積、抽出、符号感知経路を実行する。
【0125】
供給されたモーダル記述子が偽である場合、変換状態変数はCに設定され、現在のオクタントヘディングが更新される。更新されたものが3オクタント以上の大きさで回転する場合、出力信号は反転する。変換状態変数がIに設定されている限り、方向は更新されない点に留意されたい。これにより、最初の整数出力が生成され、最初の符号が感知されるまで、蓄積される出力を、軸に沿った入力動作によって生成されたものに限定する。
【0126】
図25は、拡張された様式的情報で増大されたデバイスレポートの流れをモニタリングし、ポインティングのために、あるいは2つの異なる1次元のGUIタスクのためにデータをディスパッチするための例示的プロシージャを示す。拡張した様式的情報により、垂直方向のGUIタスクを実行することが特定される場合、垂直方向に減縮するためにレポートをディスパッチし、タスクを実行するためにその結果を用いる。拡張した様式的情報により、垂直方向のGUIタスクを実行することが特定される場合、水平方向に減縮するためにレポートをディスパッチし、タスクを実行するためにその結果を用いる。そうでない場合、ポインティングのためにレポートをディスパッチする。減縮のためにレポートをディスパッチする場合、内部の状態変数が維持される。この状態変数は、ポインティングレポート後の第1の減縮レポートについて真である。この状態変数は内部の減縮状態を初期化するために用いられる。
【0127】
図9から図25の方法は、リラモーティブオペレーションが可能ないずれのポインティングデバイスとともに使用するために設計されている。方法のいくつかのパラメータは種類の異なるデバイスを用いて最適なオペレーションを行うことができるよう、調整可能である。テーブル11は、マウスを用いた使用に適したこれらのパラメータの値を一覧にしたものである。テーブル12は、Synaptics,Inc.が製造したタッチパッドを用いた使用に適した値を示す。
【表11】
【0128】
この2つのデバイスの違いは主にゲインに関連する。タッチパッドはマウスよりも感度が高く、そのため、同様の感触(feel)をもたらすよう、画分アキュムレータ基数はさらに大きい。同様に、オクタントアクティビティゲインパラメータもまた大きい。通常、タッチパッドはマウスよりもうるさいので、ゼロでないタッチパッドのアクティビティノイズパラメータはオクタントアクティビティを徐々に減らし、進行に十分なアクティビティの蓄積をさらに困難にする。
【表12】
【0129】
両方のデバイスの出力画分アキュムレータゲインは1であるが、減縮モードの全体的な感度を調整するために異なってよい。通常、このパラメータは、コンフィギュレーションインターフェースを介してユーザベースでカストマイズされる。
【0130】
状態進行ダイアグラム
【0131】
図26から図29は、以前に説明した減縮プロシージャをいくつかの例示的な2次元経路に応用した結果を示す。各図面は例示的な経路と状態進行テーブルを含む。状態進行テーブルは、経路を処理したときの減縮状態の進行を示す。状態進行テーブルの左端列は経路の第1セグメントに対応し、右端列は最後のセグメントに対応する。図示している固定された状態値は、関連する経路のセグメントを処理した跡に推測されたものである。
【0132】
図26は2つの垂直方向経路に対する初期符号の発見を示す。1つは大きく上方(北)に移動し、1つは下方(南)に大きく移動する。両方の場合で、最初の南方向と最初の負の符号で減縮プロシージャを初期化する。変換状態変数を最初にIに設定する。これは、初期符号が発見されるまではキラルの進行が可能ではないことを示す。
【0133】
南へ向かう経路に対して、最初に正に変化した後、画分出力アキュムレータは次第に負になる。これは、最初の南方向のオクタントの正のドット積と南方向の動作が最初の負の符号で無効にされるからである。第5番目の経路セグメントまでに、整数出力を生成するために十分な画分出力が蓄積される。この点で、変換状態はキラルに変わり、回転の進行が可能になる。しかし、最初のヘディングと入力経路は一致することから、量子化されたヘディングは変更しない。整数出力は負であり、そのため、出力符号も変化しない。
【0134】
北へ向かう経路に対して、最初に負に変化した後、画分出力アキュムレータは次第に正になる。これは、最初の南方向のオクタントの負のドット積と、大きく北方向に向かう動作が、最初の負の符号で掛け算を行うことで正になるからである。第5番目の経路セグメントまでに、正の整数出力を生成するために十分な画分出力が蓄積される。北方向の移動が整数出力を生成するので、キラルの量子化したヘディング(chiral quantized heading)はNに設定される。整数出力は正であり、よって、符号状態変数も正を反映するものである。
【0135】
図27は直線方向の反転を含む、例示的な入力経路を示す。この方向の変化により伝えられた出力符号の変化は関連する状態進行テーブルにおいて太線で区別されている。このテーブルから留意すべき第1の点として、3行目と4行目の部分的に蓄積されたデルタは常に正規化されていることが挙げられる。これは、オクタントの進行中及び最新のオクタントと正規化されたオクタントが非互換性である場合はいつでも正規化が行われるからである。留意すべき第2の一般的なパターンとして、現在のオクタントは最新のオクタントをわずかに遅らせる傾向があるという点である。これは、オクタントを進行させるのに必要な動作量は、1つのレポートで利用可能な動作量を超えるおそれがあるからである。例えば、セグメント3はSEに対してのものであるが、同じくSEである次のセグメント4を処理するまで、量子化したヘディングはSからSEへ適応しない。オクタントアクティビティが進行の閾値を十分に超えた場合だけ適応する。直線反転符号はセグメント16で変化し、ここではオクタントヘディングが反転する。セグメント18までは正の整数出力は生じない点に留意されたい。
【0136】
図28は8の形をした入力経路と状態進行テーブルを示す。状態進行テーブルは、1つ以上の入力経路の横断に対応する。2つの回転符号の反転が生じ、それぞれ経路の北方向のセグメントで反転する。キラリティを確立するためには3つのオクタントの変化が必要である点に留意されたい。各キラリティを関係付けた後(chirality association)、回転が反転し、確立したキラリティに反対すると、現在のヘディングを固定する。移動方向が別の3つのオクタントを回転させると、反転が起きる。従って、全体としては、6オクタントの回転ごとに反転し、あるいは、図面が横切るたびに2回反転する。図面が1回以上横切る場合は、開始位置で反転を記録し続ける点に留意されたい。
【0137】
図29は速度に関連する進行マスキングから生じる直線の反転を示す。最初に高速回転した後、より高速な直線動作と、連続する、よりタイトで低速な回転が続く。高速動作は、オクタントを進行させるには不十分なアクティビティを次のより遅い回転が生成するよう、オクタントアクティビティの閾値を高める。経路はNからNW、W、SWへと回転するので、現在の量子化したヘディングはNにとどまる。高められたアクティビティ閾値を克服するには、次の継続した南方向の動作だけで十分であるが、そのときまでにNとS間の4つのオクタントの差異で直線の反転が生じる。
【0138】
図29の回転を図28の回転が導く反転と区別しなければならない。図29の反転は図27で示したものに類似している。完全な軌道の反転を人間が実行するのは非常に困難であり、そのために、ほとんどが少なくとも少しの垂直回転動作を含む。図29に示すラピッドスローイング(rapid slowing)は相対的に高いアクティビティ閾値を残し、直線の反転中に許容される垂直動作量を増加する。
【0139】
任意の特徴
【0140】
これまでに説明したリラモーティブ減縮モードの潜在的な難点として、どちらかの動作方向およびどちらかの回転方向が時としてどちらかの出力符号に結び付けられる点が挙げられる。このことは、実施される1次元のGUIタスクが提供するビジュアルフィードバックが連続性をもたらすことから、継続動作にとっては特に目立ったことではない。つまり、継続するユーザアクションは同じ方向の移動を作り出し、反転は反対方向の移動を作り出す。しかし、ポインティングデバイスが連続的でない移動バースト(non-continuous bursts of movement)に動くと、この連続性は失われ、所望の結果を作り出す動作方向を記憶することをより困難にする。したがって、ポインティングデバイスが不活動(インアクティブ)となるある期間の後、減縮モードを初期状態にリセットすることを望むユーザもいる。この期間の長さは個人の好みによって決まり、また、様々な値となりうる。
【0141】
更に、より単純であるがパフォーマンスはより低いオプションは符号の付いていない減縮モードを使用する。拡張した様式的情報を通じて入力したときに、あるいは、最初の移動方向によって、符号が確立される。どちらの場合でも。符号は各モードの起動のために固定される。出力の大きさは依然として入力距離に比例し、境界のない出力を可能にする。
【0142】
本文に説明した幅広い概念に対して、多くのその他の変形および拡張を実施してよい。さらに、本文中に説明した技術を幅広いコンピュータ環境にわたって、また、多様な入力デバイスとともに用いてよい。
【0143】
前述の詳細な説明で少なくとも1つの実施形態を示しているが、当然のことながら多数の等価のバリエーションがあってよい。当然のことながら、例示した実施形態は単なる例であって、発明の範囲、応用性、あるいは構造をどのようにも限定しないことを意図する。むしろ、前述の詳細な説明は当業者に例示の実施形態を実装するための便利なロードマップを提供するものであり、機能や要素の配置に関して、添付の請求項に説明した発明の範囲、およびそれらの法的な等価性から逸れることなく様々な変化がなされることが理解される。
【図面の簡単な説明】
【0144】
【図1】アクティブ状態の垂直スクロールバーと非アクティブ状態の水平スクロールバーを備えた従来のGUIウインドウの説明図。
【図2】例示的な入力経路とその次元を縮退した出力変数の説明図。
【図3】最初の移動方向から割当てられた例示的な最初の符号の説明図。
【図4】例示的な固定されたキラリティの関係の説明図。
【図5】例示的なレイジーキラリティの関係の説明図。
【図6】どのようなキラリティの関係が連続する回転を求めるかについての一例を示した説明図。
【図7】例示的なリラモーティブキラルマッピングの説明図。
【図8】関連する方向パラメータの実効的な計算に適した、8つの例示的な近似ヘディング、つまりオクタントの説明図。
【図9】動作レポートに最も近似するオクタントヘディングを確立するための例示的フローチャート。
【図10】動作ベクトルとオクタントヘディングから1次元出力変数の付加的変化を確立するための例示的フローチャート。
【図11】オクタントヘディングから正規化した動作ベクトルを生成するための例示的フローチャート。
【図12】所与のオクタントヘディングと回転量から関連するオクタントヘディングを見つけるための例示的フローチャート。
【図13】1つのオクタントヘディングから別のオクタントヘディングへ移動するために必要な回転量を求めるための例示的フローチャート。
【図14】フィルタリングされた有効な移動方向を取得するために、部分的に動作レポートを積分するための例示的フローチャート。
【図15】反転に必要な量よりは少ないが1オクタント以上の方向の変化を、ちょうど1位オクタントにリラックスするための例示的フローチャート。
【図16】3つの近似ヘディングは互換性があるかどうかを判断するための例示的フローチャート。
【図17】オクタントヘディングを変えるかどうかを判断するアクティビティの統計を蓄積するための例示的フローチャート。
【図18】1次元極性をキラリティと関連づけるための例示的フローチャート。
【図19】オクタントヘディングの変化量を決定するための例示的フローチャート。
【図20】縮退状態変数を初期化するための例示的フローチャート。
【図21】動作レポートと現在の符号から1次元出力変数を増加させるための例示的フローチャート。
【図22】GUIサブシステムに運ぶために1次元出力変数の積分部分を抽出するための例示的フローチャート。
【図23】一連の動作レポートから最初の符号を感知するための例示的フローチャート。
【図24】一連の2次元動作レポートを一連の1次元GUI変数レポートに縮退するための例示的な全体のフローチャート。
【図25】マウスレポートの流れをモニタリングし、2次元と1次元のGUIタスク間を様式的に切り替えるための例示的な全体のフローチャート。
【図26】最初の符号を感知するために用いる例示的な状態変数の進行を示した説明図。
【図27】例示的な直線によって導かれた符号反転から生じた状態変数の進行を示した説明図。
【図28】例示的な回転によって導かれた符号反転から生じた状態変数の進行を示した説明図。
【図29】適用した直線によって導かれた符号反転から生じた、例示的状態変数の進行を示した説明図。
【関連出願の相互参照】
【0001】
本願は2004年1月29日に出願された米国特許出願第60/540,534号の利益を主張する。
【技術分野】
【0002】
概して、本発明は、スクロール信号などの1次元GUI入力を生成するために、コンピュータマウスなどの2次元のポインティングデバイスを用いる技術分野に関する。
【背景技術】
【0003】
グラフィカルユーザインターフェース、つまりGUIは、パーソナルコンピュータとのヒューマンインタラクションを行うための標準的パラダイムとなっている。標準のGUIは、グラフィック要素を表示するための画面と、そのような要素とインタラクションを行うためのポインティングデバイスとを含む。ポインティングデバイスの第1の機能としては、カーソルなどのアテンションインジケータ(indicator of attention)を所望のGUI要素の上に動かし、同時に表示されている複数のGUI要素の中から選択することが挙げられる。ポインティングデバイスの第2の機能としては、GUI要素とインタラクションを行うためのボタンあるいはその他の制御機器を動かし、アテンションポイントに到達させることが挙げられる。例えば、表示画面上に見える模写されたボタン上にカーソルを動かし、ポインティングデバイスと関連付けられた物理ボタンを押すことで通常、GUI“ボタン”が“押さ” れる。
【0004】
最も重要なGUIタスクの1つに、電子文書の空間ナビゲーションがある。この空間ナビゲーションは、従来、文書の周辺部に沿って、スクロールバーとのインタラクションを行うことによって実行されている。図1は、スクロールバーと関連付けられた標準的なテキスト文書ウインドウを示す。ウインドウの右側には垂直スクロールバーを、ウインドウの下部には水平スクロールバーを示す。図1の例では、スクロールせずに文書全体の幅を見ることができるほどウインドウは幅広く、そのため、水平スクロールバーは非アクティブの状態である。図示している垂直スクロールバーは、ラインアップとラインダウンアローをそれぞれの端部に、その内側にはページアップとページダウン領域を有し、また、各ページング領域間にはスクロールサムを有する。通常、スクロールサムの位置は、全体のうち見えている文書部分を表す。通常、スクロールサムの大きさは、現在見えている文書の割合を表す。
【0005】
関連するスクロールバーアローのポインティングデバイスボタンを左クリックすると、見ている文書を上か下に一行分(1ライン)スクロールする。適切なページング領域をクリックすると、文書を上か下に1ページ分スクロールする。サム上で左ボタンを押しホールドしてスクロールサムを把持することにより、次のポインティングデバイスの移動でサムを直接動かすことができる。1ピクセルのサムを移動させると文書がスクロールし、そのスクロール量は文書の長さによって変化する。この変化量は、ちょうどスクロールサムがその動きの限界に到達したときに、関連する文書の末端にスムーズに到達するようにするものである。短い文書に対しては、サムの1ピクセルの移動は、文書の1ピクセルのスクロールに、また、長い文書に対しては、サムの1ピクセルの移動は、複数ページの文書に相当する。本段落で説明した特徴は標準的なものであるが、このような特徴はアプリケーションによって違ってもよい。
【0006】
スクロールバーについて幅広く認識されている問題の1つは、アテンションポイントが文書からその周辺部へ移動し、再び戻って、ナビゲーションタスクとその他のGUIタスク間の切り替えを行わなければならないことである。このために、ハードウェアを配置したポインティングデバイスから直接的に、スクロールを実効的に行うためのいくつかの機構が最近利用可能になっている。この傾向の一部として、アプリケーションに応用可能なポインティングデバイスから生じるスクロール情報を作成するための標準化された方法が生まれている。さらに、多くのより最近のPCアプリケーションは、スクロール以外の1次元タスク用にこれらの信号を利用している。
【0007】
このような固有の1次元ナビゲーション装置に最も幅広く用いられているものはマウスホイールである。通常、ホイルは左右のマウスボタンの間に位置し、垂直スクロールを行うために最適化される。また、最新の多くのシステムは、ホイールが回転すると、初期設定により垂直スクロールオペレーションを行う。拡張したモード情報を提供することで、ホイールを別の1次元ナビゲーション機能に使用してもよい。例えば、一般に普及している表計算プログラムはズームイン(拡大)あるいはズームアウト(縮小)する。そのため、キーボードのCtrlキーを押しながら、ホイールを上あるいは下にそれぞれ回転させると、可視部分が少なく、より詳細を表示した状態になる(つまり拡大表示)、あるいは、可視部分が多く、詳細をあまり表示しない状態になる(つまり縮小表示)。
【0008】
スクロールホイールが市場で成功したことによって、1次元のGUIタスクを直接的に実行できる能力がマウスの望ましい特徴であることが示された。しかし、スクロールホイールにもいくつかの問題点があり、そのような問題点がスクロールホイールを一般化した1次元GUI入力には最適とは言えないものにしている。第1に、ホイールが指定可能な速度範囲は非常に小さい。人差し指でホイールの操作を行って、ホイールを所定の方向に回転させることができるのは比較的少ない量にすぎず、その後、人指し指をホイールから離し、再び元の位置に戻して更に次にホイールを動かすことができる状態にしなければならない。更に、通常、ホイールの回転で移動する量には制限があり、指の位置を変えることで移動する量はわずかである。通常、ホイールの移動速度は比較的遅く、最大入力速度が比較的低いか、あるいは、タスク増加分の最小値が比較的大きいかのいずれかである。
【0009】
さらに重要なホイールの限界として、通常、ホイールを回転させることと拡張したモード情報を提供することの両方を同じ手で行うことは困難であることが挙げられる。このため、様々な1次元タスク間でホイールのモード切り替えを困難にしている。例えば、既に説明したスプレッドシートのズーム特徴では、キーボードを介して拡張したモード情報を提供するために、空いているほうの手を使うことが求められる。おそらく、最も重要なマウスホイールの問題点として、マウスホイールが他の最新の光学式マウスよりも機械的により複雑であることが挙げられる。機械的に複雑なために製造原価が高くなり、また、この複雑さがその後の展開を失敗させている。
【0010】
要約すると、原則的にマウスホイールは、直接的1次元GUI入力の基本的問題をその場限りで解決するものであって、多くの問題点を有する。ホイールは比較的高額であり、信頼できない。ホイールは最も器用な手の指を固定し、入力のモード切替えを困難にする。さらに、通常、スクロールの他に1次元タスクの有用性を制限する付加的オペレーションモードによって、低ダイナミックレンジの埋め合わせを行う必要がある。
【0011】
従って、2次元のマウス動作を1次元のGUI変数に変換するための一般的方法が求められている。マウスに内在する大きなダイナミックレンジを最も効果的に利用するために、ニュアンス(nuance)や制御を最大にし、精神的疲労を最小にするよう、次元縮退技術(dimensionality reduction technique)は、実質的に(以下で説明するように)ゼロオーダー(zero-order)でなければならない。この技術によって、同じモード呼び出し内で正と負両方の値の生成が可能になる。この技術によって、マウスを持ち上げずに、予測した最小と最大のブレに簡単に実効的に対応することができるように、非常に幅広いダイナミックレンジを提供しなければならない。2次元の入力空間では中心位置近くに残りながら1次元タスク空間で任意の距離を移動するための高い自由度を有する点で、セルフセンター(self-center)しなければならない。さらに、その他の望ましい特徴および特性は、添付の図面と本発明の背景を併せて、以下の詳細な説明および添付の請求の範囲から明らかであろう。
【発明の開示】
【0012】
本発明の様々な実施形態は、2次元のマウス移動から1次元のGUI信号を生成する方法を含む。本方法はモードを持つものでもよく、2次元と1次元の両タスクでマウスの使用を可能にする。境界のある2次元領域内に残り、かつ、ポインティング表面を出ずに、境界のないいずれの極性の信号が単一の1次元の形式上の呼び出し内に生成される。生成された1次元信号の大きさは、マウスが移動した2次元の距離にほぼ比例する。
【0013】
1次元モードに入ると、最初に移動した方向から最初の極性が決定する。特定の方向に十分に回転すると、最初に決定した極性はその回転方向に関連づけられる。反転方向を突然変更することで極性の反転が起きることがある。あるいは、極性に関連づけられた方向から反対の方向に十分に回転することで、回転方向と極性とを関連付けた後、極性の反転が起きることがある。極性の反転が起きるたびに、反転した極性は回転方向との関連付けが解消される。反転後に十分な回転をすると、新しい関連性が生じる。
【0014】
本文中に説明している方法およびシステムはマウスと共に使用するために設計されたものであるが、そのような方法およびシステムを以下に更に詳細を説明している相対移動入力を生成できるどのようなポインティングデバイスと共に用いてもよい。通常のポインティングデバイスコントローラに組み込まれた用法に適切な様々な実施形態の方法が開示されている。
【0015】
本発明を以下の図面と併せて説明する。同じ参照符号は同様の要素を示す。
【発明の詳細な説明】
【0016】
様々な実施形態によれば、マウスあるいはその他の入力デバイスからの2次元入力を1次元の信号に変換するための新たな技術により、従来技術の様々な欠点を持たないスクロールあるいはその他のユーザインターフェースナビゲーションタスクが可能になる。そのような1つの技術として、入力デバイスの2次元の移動量に対応した極性と大きさとを有する1次元信号を生成するオペレーションモードに入力デバイスを設定する。ユーザが入力デバイスを動かすにつれ、その動き(動作)に対応した2次元信号が処理されて、その動きに関連する距離測定が判断される。この距離測定は、結果として生じる1次元信号の大きさを判断するために用いられる。更なる実施形態では、1次元信号の極性を2次元の移動方向から判断する。その結果、上述した多くの欠点を克服する、ダイナミックレンジが広い低オーダー(低次)の技術が提供される。本文中に説明している様々な技術及びシステムは多様な環境で応用することができ、また、ハードウェアおよび/またはソフトウェアのいずれの組み合わせを用いていずれの方法で実装してよい。さらに、本文中に説明している信号及びデータ処理技術はどのようなソフトウェア言語あるいは環境において実装してよい。そのようなソフトウェアは例えばマウスあるいはその他の入力デバイス内に存在してよく、あるいは、ポインティングデバイスと通信するホストコンピュータ内のメモリあるいはその他のデータストレージに、あるいは、その他のいずれのデバイスあるいは場所に存在してよい。
【0017】
本文中に説明している概念を、マウス、トラックボール、ジョイスティック、慣性検出装置、ビデオゲームコントローラなどを含む多様な入力デバイスとともに実装してよい。特に、以下に説明する技術は、マウスやジョイスティックなどのいわゆる“相対移動”(relamotive)デバイスに適している。リラモーティブ方式を用いるということは、マッピングの判定が絶対位置、力などに関する情報ではなく、実動距離や方向に関する情報に基づくということである。したがって、マウス、ジョイスティックなどのリラモーティブポインティングデバイスは、デバイスあるいはデバイスのコンポーネントの絶対位置ではなく(あるいは、それらの絶対位置に加えて)デバイスあるいはデバイスのコンポーネントの移動量を報告する。そのようなデバイスがある特定方向(例えば、マウスパッドの端部あるいはマウスのその他の作業面)の動きの限界まで移動した場合、リラモーティブデバイスは通常その作業面から離れ、その方向で更に動きが生じる前に、その動作限界から離れた位置に戻される。このような再センタリングオペレーションを回避するため、従来は、1回の移動で動作限界に頻繁に近づかないよう指示する。リラモーティブデバイスのこのような点を克服するため、本文中に説明する様々な技術は、デバイスの2次元移動に対応する拡張スクロール(あるいはその他の1次元の移動)を可能にする。
【0018】
用語
【0019】
1次元入力を向上させるための様々な方法に目を向ける前に、GUI入力に通常応用できるいくつかの用語を発展させることが有益である。この分野はより発達しているので、この発展を動機付けとなるよう2次元入力あるいはポインティングを用いる。
【0020】
ダイナミックレンジ
【0021】
GUIタスクのダイナミックレンジとは、その最大予想タスクレートをその最小値で割ったものである。通常、標準的なポインティングのGUIタスクに対し、高解像度画面にわたってカーソルを移動させた場合に最大レートが発生する。最新の画面の幅は2000ピクセル以上であり、通常、ユーザたちは数分の一秒で画面全体を横切ることを望むために、通常は毎秒2000ピクセル以上のタスクレートが使用される。これに対して、表示画面がどんなに大きくても、通常、ウィンドウサイジングボーダー(window sizing border)などの小構造(スモールフィーチャ)を獲得しなければならない。GUIタスクが合わせなければならない最小の構造寸法はその解像度であり、また、ポインティングタスクの所要の解像度は通常単一ピクセルである。単一ピクセルを合わせるのにかかる時間は当然ながら任意の長さであってよく、その結果、ポインティングレートが任意に最小のレートになる。しかし、ユーザは通常、1秒以上をGUIタスク部分の微調整に費やさない。したがって、解像度が1秒程度の時間でアクセス可能になると仮定することで、タスクのダイナミックレンジを正規化することができる。
【0022】
タスクの解像度をR、その最小タスクレートをRL、および、その最大タスクレートをRHと定義すると、タスクのダイナミックレンジの公式を以下のように簡素化できる。
【数1】
【0023】
ポインティングのために、この結果から要求されるポインティングダイナミックレンジは以下の通りである。
【数2】
【0024】
特定のGUIタスクを入力デバイスが効率的に実行するよう、デバイスのダイナミックレンジをタスクのダイナミックレンジと合理的に一致させなければならない。タスクに類似する用語を使用すると、入力デバイスのダイナミックレンジはその最大デバイスレートをその最小値で割ったものと定義される。@再度、1秒の最小デバイス時間を仮定することによって正規化することで、デバイスのダイナミックレンジは、1秒でレポート可能な、最小解像度での入力単位の合計数に相当する。
【0025】
マウスの最大デバイスレートは、1回のレポートで運ばれる最大動き量に、1秒で作り出されるレポート数を掛けることによって求められる。最小解像度でのマウスの移動量の従来の名前は“ミッキー”であり、最新のUSBマウスは毎秒約120回までのレポートレートにおいて、最大で128ミッキーの動きをレポートできる。したがって、マウスの生のダイナミックレンジは以下のようになる。
【数3】
【0026】
これはポインティングタスクには十分対応できるが、残念なことに別の要因がマウスのダイナミックレンジを制限する。
【0027】
マウスなどのリラモーティブポインティングデバイスは、絶対位置ではなく、あるいは、絶対位置に加えて、移動量を報告する。ある特定の方向において、動作限界まで動いた場合、その方向で更なる動きのレポートを行うためには、通常、リラモーティブデバイスをその作業面から離し、その動作限界から離れた場所に戻す必要がある。通常、このような再センタリングを回避するには、1回の移動で頻繁に動作限界に近づかないことが求められる。経験則によると、再センタリングの必要性を最小に抑えるには、ポインティングデバイスのどのような1回の移動量を実質的にその作業空間の50%未満に制限することである。
【0028】
例えば、快適なマウスの作業空間は通常、直径が約4−5インチである。この1回の移動についての経験則に従えば、最大の予想移動量は約2インチである。1インチの400分の1のである通常のミッキー解像度と、1ミッキーのマウス移動で1ピクセルの画面移動を行う単一ゲインシステムとを与えると、通常のマウスは2インチでカーソルを400×2=800ピクセル動かすことができる。従って、空間が制限されているマウスのダイナミックレンジは、本例においては、2000ピクセル幅のディスプレイで使用する場合に求められるダイナミックレンジの半分未満であり、生のダイナミックレンジは10分の1未満である。
【0029】
入力デバイスは、デバイス空間で直線移動を行う場合だけ空間を制限する点に留意するのは有益である。閉路を進む動きは必ずしも空間が制限されているわけではない。例えば、直径が5インチの円でマウスを動かし続けることにより、マウス速度をその生のダイナミックレンジである毎秒10,000ミッキーにほぼ維持することができる。
【0030】
弾道学(ballistics)
【0031】
利用可能なデバイスと所要タスクのダイナミックレンジとの溝(deficit)を埋めるための1つの手法として、デバイス変数からタスク変数を形成する際に非線形処理関数を介入させることが挙げられる。ポインティングデバイス業界用語では、このような処理関数は“弾道学関数”(ballistics functions)と称される。この名前は、発射体の弾道が重力や風といった環境要因によって影響を受けるのと同じように、外力により影響を受ける入力デバイスを連想させる。しかし、コンピュータ入力ドメインでは、この“外”力は人為的に介入させた弾道学関数である。
【0032】
最も簡素化したGUI入力システムでは、ユニティ・ゲインを適用することによって、タスク変数をデバイス変数から取得する。
【数4】
【0033】
つまり、デバイス変数は原則的にGUIタスク変数に等しい。例えば、単一ゲインポインティングシステムは常に、レポートされた各ミッキーのデバイス動作に対してカーソルを1ピクセル動かす。弾道学関数の目的は、より小さなゲインを比較的小さなデバイス入力に適用し、より大きなゲインを比較的大きなデバイス入力に適用することでタスクのダイナミックレンジを広げることである。これを数学的に公式化すると以下のようになる。
【数5】
【0034】
各ステップにおいて、通常、GUI変数はデバイス変数依存ゲインを適用することにより、デバイス変数から形成される。例えば、マウスを使用した最も古い弾道学関数の1つには、デバイスレポートサイズが4以上のものを2倍し、かつ、サイズが10以上のものを再度2倍にする機能がある。C三項演算子シンタックスを用いると、より形式的な説明は以下のようになる。
【数6】
【0035】
レポートすべき動きが1ミッキー未満にならない限り、マウスは一定の速度でその動きをレポートするので、このスキームが成り立つ。レポートすべき動きが1ミッキー未満の場合は何も報告されず、潜在的な分数ミッキーはすべて保持され、次のレポートポイントで次の動きと組み合わせられる。したがって、マウスの動きが遅い間は、何もレポートしないか、1ミッキーをレポートする。動作速度が上がると、フルレポートレートを達成するまで1ミッキーレポートの周波数は増加する。フルレポートレートを超えると、1レポートあたりのミッキー数は増加する。通常のマウスのレポート速度は毎秒120レポートであるので、レポートが1ミッキーより多くを含む場合、マウスの移動速度は比較的速く、1レポートあたり5ミッキーを含む場合は、毎秒600ミッキーである。
【0036】
5ミッキーのレポートはマウスの動きが比較的速いことを示すので、ピクセル空間の距離を倍にすることができ、ユーザには、カーソルが速く動いているということだけを伝える。最終的に、カーソルは、速度を急速に上げてから速度を落とす短距離の移動によって、スクリーンをより速く移動することができる。カーソルがターゲットに近づくと、余分なゲインを与えないように動きを遅くし、完全な単一ピクセル制御を行う。
【0037】
弾道学関数はデバイスのダイナミックレンジを拡張するために用いることができるが、レンジが増加すると制御性が低下する。幸運にも、通常この制御性の低下は、高速度時に発生し、その速度によって実質的に制御性の低下が隠される。しかし、ユーザが認識したものと実際の制御レベルの双方に実質的な影響を与えずに、弾道学関数を介して拡張できるダイナミックレンジの程度にも制限がある。通常のGUIタスクの経験則制御は、もともとのデバイスのダイナミックレンジを約10倍拡張したものである。
【0038】
高次数オペレーション(higher order operation)
【0039】
既に説明したように、マウスのダイナミックレンジを制限する主な要因は、作業領域寸法である。弾道学関数によりデバイスのダイナミックレンジを拡張できることが示されたが、それは幾分か制御性を犠牲にしたものである。通常、多くの入力デバイスに適用される原則とは、制御可能な入力デバイスのダイナミックレンジがその作業領域寸法にほぼ比例するということである。
【0040】
デバイス寸法が特に制限されている場合、高次数ペレーションと記述されているさらに別の処理技術により、寸法に対してタスクの制御性をさらにトレードオフできる。デバイスのオペレーション次数(オーダー)は、入力あるいは出力変数の変化が出力あるいはGUIタスク変数の変化にどのように伝わるかを決定する。数学的に、この次数は入力/出力の関係を関連づける導関数の数に関連する。出力変数が入力変数に比例するオペレーションモードは、例えば公式(4)のように、ゼロ次数モードである。出力変数の一次導関数が入力変数に比例するモードでは、第1次モードである。この第1次の関係を以下の微分式で表す。
【数7】
【0041】
また、積分式では以下のようになる。
【数8】
【0042】
第1次よりも高いオペレーション次数は幾分か実用的でないが、第2次モードは二次導関数などによって関連づけられる。
【0043】
第1次オペレーションの背後にある概念とは、入力変数の比較的小さな変化が時間とともに累積して、出力変数の比較的大きな変化になることである。この概念をリラモーティブデバイスに対してさらに具体化するため、入力変数d(t)およびタスク変数g(t)は、タイムインターバルtにおいて、どこに移動するかではなく、どれくらいの距離を移動するかを示す。リラモーティブオペレーションおよび入力の時間積分が示す第2の概念事項は、入力空間における絶対主義(absolutism)である。ほとんどのデバイスで出力空間の動きを中止するためには、g(t)がゼロになり、その結果、D(t)もゼロにならなければならない。D(t)がゼロになるために、特定のタイムインターバルを超えた積分d(t)はゼロでなければならない。これは、ゼロポイント、あるいは入力空間におけるホームロケーションの概念を意味する。入力空間において1つの極性にどのような偏差が生じても、反対の極性の入力空間の動きによって相殺されるまでは、周期的に出力空間信号を生成し続ける。入力の動きが止まった場合であっても出力信号は生成され続けるので、第1次モードは“自動”モードと称される場合がある。自動出力信号の生成に使用するタイムベースは通常、入力動作をレポートするために使用するものとは異なり、また、出力信号は通常、入力動作と同時には発生しない。
【0044】
第1次オペレーションモードに非線形の弾道学関数を適用してもよい。分析と実装とを簡単に行うことができるので、従来、弾道学は入力の時間積分に応用されている。
【数9】
【0045】
弾道学は入力及び出力の比例を決定することができるが、基本のオペレーションオ次数は変更しない点に留意されたい。
【0046】
通常、第1次のオペレーションを行う、最も幅広く配置されたポインティングデバイスは等尺性(isometric)ジョイスティックであり、これは、多くのラップトップコンピュータ上でポインティングのために用いられている、ゴム引きのナブ(rubberized nub)である。この等尺性ジョイスティックは、知覚できるほど動かないので、これは第1オーダーのオペレーションを行うその他のデバイスよりもずっと小さくてよく、例えば、わずかに変更が加えられた標準のキーボードのGとHの間に納まるくらいに小さくてよい。
【0047】
等尺性ジョイスティックが生成する入力変数は、通常は人指し指に加えられた力の大きさである。第1次のオペレーションは表示カーソル速度をこの力に比例させる。人間の指で無理なくかけられる力、あるいは、無理なく分散(resolve)された力の範囲では、カーソルの速い動きとシングルピクセルの解像度とに対応するには不十分なので、弾道学関数がジョイスティックシステムに組み込まれることが多い。実際のシステムでは、このような関数は20:1を上回るダイナミックレンジ拡張比を備えている。
【0048】
等尺性デバイスを第1オペレーションに特に適したものにする等尺性デバイスの属性は、一次の積分結果をより速く求めることができることである。これは、等尺性デバイスの反転には、加えられた力の反転だけが求められるからである。移動可能なデバイスに対して、反対の極性が生成される前に、1つの極性のスラック(slack)を用いるために、加えられた力の反転に続いて、更なる時間が求められる。等尺デバイスの積分結果を求める時間がより早ければ、両者が第1次のオペレーションを行う場合に、移動可能なデバイスよりも優れた制御性をもたらす。
【0049】
等尺性ジョイスティックをポインティングに使用するための主な欠点は、第1次オペレーションと拡張した弾道学関数とが共に、制御性を制限するために共謀することである。多くのユーザたちはこれらを効果的に使用できるほどに器用であるが、そうでないユーザもいる。これにより、普遍的に受け入れられるポインティングデバイスとして等尺性ジョイスティックを、潜在的に不適切なものにしている。
【0050】
様式(modality)
【0051】
単一デバイスを使用して1次元および2次元の信号を生成するために求められるもう1つの概念は、その様式である。この概念もまた、ポインティングに関連して効果的に考察されてよい。様式的用法では、シングルデバイスのデータストリームは、追加情報を介して1つ以上のGUIタスクに向けられる。この拡張した様式情報は多くの場合、デバイスのデータストリームに含まれるが、また、全く別のソースによって提供されてもよい。特定のモードへデータのディスパッチをさせる特定の情報は、そのモードに対する様式インジケータと呼ばれる。拡張した様式情報がない場合、あるいは、デフォルト様式状態において、デバイスデータはその通常モードあるいはホームモードにディスパッチされる。
【0052】
例えば、2次元入力データは、ボタンの状態で、拡張した様式情報を介して、GUIポインティングとドラッグタスク間で様式的に切り替えられる。通常、ボタンの状態はポインティングデータを生成する同じデバイスに関連づけられ、また、そのデータと同時に運ばれる。マウスに関して、ドラッグ中のモードインジケータは、第1の、通常は左のマウスボタンのダウン状態である。マウスのホームモードは、その左ボタンのアップ状態によって示されたポインティングである。
【0053】
拡張したモード情報は同時に複数のソースからもたらされてよい。例えば、いくつかのGUIは、ドラッグオペレーションをさらに2つに分けることができ、データを移動あるいはコピーする。コピーのためのモードインジケータは通常、マウスの左ボタンのダウン状態、及び、いずれのキーボードのShiftボタンのダウン状態である。移動はデフォルトあるいはホームドラッグモードであり、マウスの左ボタンのダウン状態及びキーボードの両Shiftキーのアップ状態によって示される。
【0054】
次元縮退
【0055】
2次元から1次元空間にマッピングすることができる多くの技術がある。簡単な1つのマッピング法は、それぞれのペアになった2次元座標のうち1つを破棄することである。例えば、従来の垂直座標(つまり、従来の(X、Y)ペアの“Y”座標)を破棄するだけで、右上がりで左下がりの1次元変数になる。リラモーティブ用法では、この変数は、右側に移動すると正であり、左に移動すると負である。しかし、この種のマッピングでは、境界のある2次元の移動から境界のない1次元変数を生成する問題を解決しない。左端の2次元の境界に到達すると、1次元の更なるどのような出力も右になるので、正になる。デバイスを利用することができる2次元空間にはもともと境界があるために、この単純なマッピングを用いることができない場合は、その問題に対して任意の大きな負の出力、あるいは、正の出力を生成することは非常に困難である。
【0056】
その結果、通常有益な縮退マッピング(reductive mapping)が所望する1つの属性として、境界のある入力から境界のない出力を合成することが挙げられる。これをイメージする1つの方法は、潜在的に無限の1次元空間を“折り畳む”ことであり、その結果、その1次元空間が固定した寸法の2次元空間に適合する。反対に、折り畳まれた2次元経路は、巻きが解けた状態(unwounded)と考えられ、単一の次元に沿って配置される。例えて言えば、4分の1マイルのトラックを12周走り終えているランナーは、出力空間においては既に3マイルを走っているが、入力空間ではランナーのスタート位置と停止位置は同じである。同様に、パッド上あるいはその他の作業空間におけるマウスの2次元移動は、1次元では境界のない移動であると言い換えることができる。数学的用語で言えば、リラモーディブレポートの大きさの合計(移動量の総計を表す)は、リラモーティブレポートの合計の大きさ(開始位置からの正味の移動量を表わす)よりも実質的に大きい。リラモーティブデバイスがその開始位置から実質的に移動していなくても、実質的な移動量が生じる。用語“実質的に”はこの場合、直線経路から突発的に逸れること、あるいは測定誤差によって説明されるものよりも量が大きいことを意味する。
【0057】
第2の望ましい属性は、ダイナミックレンジの意味で、境界のある入力空間を利用することである。より大きな入力空間ではより大きな大きさを認める必要があり、その結果、出力空間の蓄積がより速くなる。例えば、回転移動の縮退マッピングは公式化することができ、実際に回転した角度に基づいて出力の大きさを求めるものである。しかし、このタイプのマッピングは、移動するサークルがどれほど大きくても、出力の大きさは同じである。小さなサークルは大きなサークルよりも物理的に速く移動することができるので、そのようなマッピングは、入力空間寸法とダイナミックレンジ間に望ましくない反比例関係を有する。
【0058】
第3の望ましいマッピング属性は、人間によって簡単に学習される点である。マッピングの学習可能性を決定する、同時に発生する一定のフィードバックは主要な属性である。適切なフィードバックを提供するよう、入力空間で移動がある場合はいつでも、出力空間で移動を生成するようにマッピングを構成しなければならない。差し支えがなく可能な範囲で、入力空間のデッドスポット(dead spot)あるいはデッドディレクション(dead direction)を回避しなければならない。
【0059】
第4の望ましいマッピング属性は、直観的でなければならない点である。周知の動作は予想した結果を生成しなければならない。最も一般的な2つのコントロールジェスチャは、直線及び回転動作である。小さな動きには直線動作が自然であり、また大きな動きには回転動作ではより自然であるので、直線および回転の両方を扱うための一体化した機構が望ましい。次元を縮退するために、このような2種類の動作を一体化することは、適切な符号取り扱いの主な機能である。単一方向において直線動作を継続して行う場合、符号が反転してはならず、一方で、直線動作中に方向が明らかに反転する場合、符号が反転しなければならない。ある特定の回転方向(handedness)回転動作を継続する場合、符号が反転してはならず、一方で、回転動作の方向が明らかに反転する場合は、符号が反転しなければならない。
【0060】
実装を便宜化するため、第1の入力属性が出力符号を生成し、第2の入力属性が出力の大きさを生成するという意味では、マッピングは分離可能であってよい。入力空間の、サイズ比例のダイナミックレンジ要件を出力空間に転送することは、入力距離から出力の大きさを生成することを示す。それは同様に、入力方向と、周知の極性座標記述に類似した距離の記述を示す。マッピングが分離可能であるという原理を応用し、入力距離を用いて出力の大きさを決定すると、入力方向が出力符号を決定する。このような原則に基づいた減縮マッピングについて以下に説明する。
【0061】
符号付きの減縮マッピング
【0062】
テーブル1の様々な原則は、これまでに説明した特性を備えた例示的減縮マッピングを総合的に生成する。直線と回転の反転が回避される限り、出力符号は変化しないという点で、マッピングに境界がない場合がある。出力の大きさは移動した入力距離に大きく比例することから、出力のダイナミックレンジは入力デバイスの寸法に比例し、また、出力デッドスポットあるいはデッドディレクションは実質的に回避される。直線動作からの出力符号の変化には、突然の方向反転の判断基準によって対応し、回転動作からの符号の変化には、回転方向の反転の判断基準によって対応する。出力符号が入力方向に依存し、出力の大きさが入力距離に依存するという点で、マッピングは本来、分離可能なものである。
【表1】
【0063】
このような原則の実際の適用法について更に具体化するために、一連の(Δx、Δy)ペアによって適切に表されてよい、別々の2次元のリラモーティブ変数(“レポート”)を定義することが有益であろう。以下に説明した実施形態において、各レポートは、サンプル期間において2つの直交する基礎となる連続デバイス変数が蓄積した動き量を適切に表す。例えば、従来の座標系では、(1,1)のコンピュータマウスレポートは、マウスがユーザから離れて1基準単位(例えば、“ミッキー”)移動し、前のレポートからのインターバルにユーザの右側に1基準単位移動したことを示す。
【0064】
図面に戻り、図2を参照すると、理論的にはエンドツーエンドになった例示的な一連のレポートS1−S40は、2次元入力空間202を介して入力デバイスの経路206を表す。経路206を構成する各レポートは、その経路の特定のセグメントと1対1で対応して示されている。そのため、図2に示す例示的経路206は、40個のセグメントを含み、各セグメントは、各レポートS1からS40の1つよりも前に配置されている。例えば、セグメント205はレポートS2に対応し、入力デバイスがレポートS1とS2との間を移動した移動量に近い直線を表す。
【0065】
入力経路のフレームワークを与えると、経路の各セグメントを符号と大きさでラベル付けすることによって減縮マッピング技術の主な仕事を達成できる。これらの符号/大きさのペアを1つの符号付き変数にアセンブルすると、関連づけられた1次元出力変数ストリーム204を簡単に生成する。図2の下方部分に示す1次元出力信号ストリームでは、2次元入力経路206のレポートS1は、出力ストリーム204の一番目の信号208を生成し、レポートS40は最後の信号210を生成する。しかし、様々な等価の実施形態において、その他の信号生成およびマッピング法を用いてよい。
【0066】
既にリストに挙げた減縮原則に関連して、1次元の信号ストリーム204における符号のラベル付けは、前のセグメントの符号を使って経路206の各セグメントをラベル付けする定常状態のプロセスと見られる。この、前のセグメントの符号は、経路206が表す2次元動作において、直線と回転方向の反転を検出する反転プロセスにより増大される。直線の反転は通常、回転の反転よりも速く検出できる点で、一般に直線の反転は優先権を有する。図2に示す例では、直線の反転は、レポートS13とS14の間で起こり、これらの2つのレポートの情報だけで直線の反転を直感的に検出することができる。これに対し、レポートS27付近から開始する回転の反転は、実際にはもっと後まで、おそらくはレポートS30に近づくまでは不明瞭である。
【0067】
符号のラベル付けと比較すると、ある大きさを有する経路セグメントのラベル付けは比較的簡単である。第3の減縮原則(P3)によれば、ある経路セグメントの大きさを、そのセグメントの長さにほぼ比例して決定することができる。最も一般的に使用されている長さ寸法はユークリッド距離√(Δx2+Δy2)、であるが、コンピュータ的により簡単な方法または同種のものを、様々な他の実施形態において実装してよい、及び/あるいは増加(augment)してよい。図2の信号ストリーム204で示した例示的な大きさは、少しだけ変更した絶対距離寸法によって生成される。この絶対距離寸法は、潜在的な回転の反転に近い動作を弱めるものである。しかし、そのような拡張はすべての実施形態に設ける必要なない。
【0068】
方向、キラリティ、及び、符号
【0069】
前項の原則は、特定の入力動作に与えられた前の状態からの、例示的な符号の変化についての概略を示すが、これまでのところ、変化させる初期状態を決定する議論は行っていない。初期化すべき1つの状態変数は、出力符号のラベルである。反転について既に説明したように、通常、直線動作は回転動作よりも速く決定することができる。これは、ユーザが認識する精度レベルに対して、回転動作を複数の直線動作に分解することができるからである。図2の経路206を形成する様々なセグメントをそれぞれ、例えば、レポート間の2次元回転移動に近似する直線と考えてよい。回転動作よりも直線動作からの符号を決定することによって、初期符号を決定する際の遅れを減らすことができる。この符号初期化の原則をテーブル2に要約する。
【表2】
【0070】
垂直に配列した出力変数に適切な符号の初期化技術の例を図3に示す。この技術によれば、最初の上方向移動302は、最初の正の符号を生成すると定義され、一方で下方向移動304は最初の負の符号を生成すると定義される。図3に示す移動302および304の両方の回転方向は、双方の最初の符号に一致する点に留意されたい。つまり、経路302および304が両方とも反時計方向動作を描いたとしても、経路302は最初に上方向に移動したために正であり、パス304は最初に下方向に移動したために負である。それでもなお、本例は、異なる符号と同じ回転方向とを関連付ける必要性、あるいは同様に、異なる回転方向と同じ符号とを関連付ける必要性を示す。
【0071】
したがって、初期化すべき別の状態変数は、符号と関連付けられた回転方向を表す。ある1つの符号は、別の、関連付けられた回転方向を有することができるために、また、ある1つの符号は回転方向よりも速く推測できるために、回転方向とある1つの符号との関連付けを、最初の符号発見ポイントを超えて遅らせてよい。用語“レイジー”は多くの場合、決定を遅らせるコンピュータアルゴリズムを説明するために用いられる。本用語を便宜上、本文に用いる。
【0072】
より具体的にこの概念に対処するため、ある入力経路のセグメントに第2のラベル付けを行い、その回転の優先傾向(turning preference)を示すことが有益である。ある分子が平面偏光を回転する方向を示すために、化学用語を採用すると、“回転の優先傾向”、あるいはセグメントが優位に回転する方向を説明するために、“キラリティ”セグメントラベルを用いてよい。左方向の回転(つまり、反時計回り)に優先傾向がある場合は、“左旋性”(L:Levorotary)と示す。同様に、右方向の回転(つまり、時計回り)に優先傾向がある場合は、“右旋性”(D:Dextrorotary)と示す。確立したキラリティがないセグメントはラセミ(R:Racemic)と示す。
【0073】
いくつかのデバイスと様式エントリ構造は、ラセミ状態を取り除き、キラリティと符号との間に固定した関係を選定することができる。例えば、図4は境界のあるポインティング表面406の右端における最初の上方動作402と下方動作404とを示す。この状態は、例えば、タッチパッドの右端に沿った並行動作を介して減縮モードに入る際に生じる。この例では、更に右側に移動することができないので、初期の上方移動402は必然的に左旋回キラリティを示し、下方移動404は右旋回キラリティを示す。その結果、表面の端部に沿った最初の移動で、出力符号とキラリティの両方の初期値を同時に定めることができる。その理由は、上方および下方移動は次の回転で、最初の符号を保持するという予測した動作を行うからである。回転することで導き出される初期符号の符号反転という複雑な状態は、様式的な幾何学制約によって回避される。
【0074】
しかし、幾何学制約がない場合は、次の回転のどちらかの方向が最初に決定した符号と関連付けられる場合、学習可能性およびその作業面の中心付近にデバイスを維持するための自由度が高まる。これを実現するための1つの技術として、ユーザの意図を推測できるほどに十分回転するまで、最初のキラリティの決定を遅らせることである。図5は、キラリティと符号間の最初の関係を遅らせる一例を示す。この例では、“上方”移動502は正の符号を素早く認識でき、また、“下方”移動504は負の符号を素早く認識できる。しかし、キラリティは、最初はラセミの状態である。最初の回転方向で十分に回転した後、左旋回あるいは右旋回キラリティを決定してよい。上述した図4の固定スキームでは、2つの関係:L+およびD−だけが可能である点に留意されたい。レイジースキームでは、2つのラセミの状態、R+およびR−は、キラリティ及び符号に対して4つの可能な関係:L+、L−、D+、D−をもたらし、これらはそれぞれパス506、510、508、および512に対応するものである。
【0075】
キラリティと符号との間に関係を築くために必要な回転量は、ユーザの意図が明らかになるまで関係が築かれないように大きくなければならないが、一方、ユーザの意図を無視することがないように小さなものでなければならない。このような2つの要件は矛盾してよいが、1つの可能な解決案としては、キラリティの関係を確立するために用いた回転量を、符号の反転を引き起こすのに必要な量にほぼ等しくすることが挙げられる。
【0076】
別の複雑な問題としては、キラリティの関係を確立するには不十分な回転が次の反対方向の回転の十分性に影響を及ぼすことが挙げられる。この問題を解決するための2つの可能性として、以前の反対方向の回転を無視すること、および、前の反対方向の回転を合計し、関係を確立するために必要な次の反対方向の回転量を増やすことが挙げられる。そのような、回転を無視するのではなく合計することを好む理由は、関係が決定したことを初期の移動方向とともに記録しなくてはならないからである。これは、ユーザたちは最初の移動方向を正確にたどらないが、その方向の直観的概念(intuitive notion)は持ち続けているからである。図6は、キラリティの関係を築くには不十分ないくつかの反対方向の回転602、604、606、および608を相互に平衡させるように示す。つまり、反対方向に少し回転しただけでは、キラリティを変えるのに十分な正味の回転量を蓄積しない。関係を決定する状態がその初期状態に戻る例示的なポイントを図面の破線で示すが、等価の実施形態においてその他の技術を用いてもよい。
【0077】
既に説明したように、遅れた、あるいは“レイジー”キラリティを割り当てるための動機付けとして、リラモーティブ方式を用いる場合、予想外の回転に関連する符号の反転を回避することが挙げられる。基本の概念は、回転により導かれる符号の反転には通常、反対方向を表すための回転ベースラインが必要であるということである。回転ベースラインを一旦確立すると、突然の方位反転といった直線の概念を介在させて、そのような回転ベースラインをなくしてよい。このマスキング効果のために、ラセミのキラリティ状態を、直線の反転上に戻すことによって、より直感的な回転の反転予測を生成する。また、介在する直線の反転がない場合には、2つの回転の反転は相対的に起きにくく、ラセミのキラリティを回転の反転上に戻し、同様に、より安定した回転の反転動作の生成をサポートする。
【0078】
したがって、例示的なレイジーキラリティの割当スキームは、まず、直線の反転及び回転の反転後にラセミ状態のキラリティを割り当てる。回転ベースラインを確立するために用いる回転量は、回転の反転を伝えるのに必要な回転量に近似するよう、あるいは一致するように設計されてよい。一方向において不十分な回転が、関係を築くために必要な次の反対の回転量を増やすように、1方向の不十分な回転が関連性をもたらすのに必要な、次の反対方向の回転量を増やすように、ベースラインに関連する回転を適切に蓄積する。これらの例示的なキラリティと符号の関係の原則をテーブル3に要約する。
【0079】
図7を参照すると、一連の2次元信号/レポートによって示された例示的な入力経路700は、テーブル3にいくつかの原則を例示する。移動経路700が開始すると、キラリティはまずラセミ状態であると仮定される(原則P2a)。初めは下方向に移動する。そのため、初めは負の符号値を生成する。レポートは通常反時計回りに進むので、レポート702付近では左旋回キラリティが確認される。レポート703と704との間で直線の反転が起きる。これは、符号が正になり、原則P2dによると、キラリティがラセミ状態にリセットされる/キラリティが不確定であることを意味する。レポート706付近では、時計回り回転が確認される。経路700はレポート708の前後で反時計回り回転を開始する。これにより、レポート710などにおいて、キラリティを最終的にラセミ状態にリセットする(また、符号をトグリングする)。次の動作が時計回りと半時計周りとに混合しているので、時計回り回転がレポート712の前後で右旋回性の割り当てを調整するまで、(原則P2cによると)キラリティはラセミ状態のままである。図7に示す例示的な経路700の下位部分は上位部分の鏡像である点に留意されたい。しかし本例では、経路の各部分の出力符号は同じままである。全体の効果としては、境界のない符号の付いた出力を表すための自由度の量を最大にし、入力デバイスを再センタリングする必要性を最小にすることである。
【表3】
【0080】
方向の量子化
【0081】
既に説明した符号を取扱う手続に続いて、直線あるいは回転の反転が発生するときを判断する問題に着目する必要がある。埋め込み式を使用する1つの問題点として、反転の判断を下すために必要なコンピュータリソースを最小にすることが挙げられる。通常、この問題は、状態の簡素化の1つであり、つまり、制限されていない2次元入力の相対的なそれまでの動きから外れた動き(relative cacophony)からいくつかのキーとなる計算点を求めることである。入力方向は反転を判断するために用いられる判断基準であるので、この目的に有益であろう基本的概念は、方向を量子化するという考えである。方向を相対的に2、3の検出が可能な値に量子化すると、進行方向(ヘディング)の変化は非常に有益な計算点である。これに関連して、検出可能なヘディングの数が少なければ少ないほど、反転を判断するうえで進行方向の変化はより効率的になる。他方、量子化したヘディングが非常に少ない場合は、ユーザの意図を失う結果になるおそれがある。そのため、量子化したヘディングの数をできるだけ少なくしなければならないが、少なすぎてはならない。また本文では、量子化したヘディングを“検出可能ヘディング”あるいは“バケット”と記述する。
【0082】
量子化 “バケット”アーティファクトを回避するため、少なくとも3つの検出可能なヘディングを反転方向において利用可能にしなければならず、その結果、各前方向のヘディングは正反対のヘディングと、アラインメントガード(alignment guard)としてその正反対のヘディングに隣接する2つの反対方向のヘディング(その反対のヘディングの両側に1つのヘディングがある:one on either side of the opposing heading)を有する。回転の進行を受信するため、少なくとも1つのヘディングを現在の前方向のヘディングの各側面に提供する必要がある。量子化したすべてのヘディングの寸法が略同じであると定義されると、2つの、進行方向を受信するヘディングは、上述した3つの反転ヘディングにより良いバランスを与える。現在の量子化したヘディングを数えると、本実施形態で用いた量子化したバケット数は8(1+2+2+3=8)である。
【0083】
図8はコンピュータマウスあるいはその他の入力デバイスにおいて、埋め込み式の使用に適した例示的な不均一の八分円(オクタント)量子化スキームを示す。図面に示しているように、4つの軸的に配置された“基本となる方向”(cardinal direction)のバケットの大きさは任意に、散在させて対角線上に配置したバケットの2倍であると定義されており、その結果、以下に説明しているように、整数加算とシングルビットシフトによって量子化についての判断を行うことができる。この量子化スキームでは、“タイ”(ties)(バケット間で境界線に沿った方向においての移動)はより小さな対角のバケットに有利に分割される。このスキームにより、典型的にマウスレポートが遭遇する少数を用いて、バケットポピュレーションを等しくすることができる。
【0084】
入力デバイスからのリラモーティブレポートを量子化スキームに適用することにより、近似したヘディングを簡単に識別できる。例示的なNおよびNEバケットにおいて、小さな正の整数レポートの量子化した分布をテーブル4に示す。バケット間の各境界に対して類似する割当てスキームを公式化し、いずれの方向の2次元移動を特定のバケットに割り当てることができる。
【表4】
【0085】
量子化したヘディングを与えると、過去の入力から維持されている固定されたヘディングと、過去の入力および現在のレポートとから形成された、提示されたヘディングとをただ比較するだけで、デバイスレポートを処理する間に符号およびキラリティの反転の判断を行ってよい。直線の反転の判断を直接示すことができるのは、固定されたヘディングと提案されたヘディングとが、3つ以上のオクタントによって異なる場合である。例えば、固定されたヘディングと提案されたヘディングとが、1つのオクタントによって異なる場合、回転動作を示す。2つのオクタントの違いを1オクタント差にまでリラックス(relax)できる。その理由は、次の動作がリラックスした進行を続けるからである。以下にさらに詳細を説明しているように、回転動作は現在の符号を変化させず、一方で、回転の反転は符号の反転を引き起こす。このような一般的な概念のそれぞれは例示的なものであり、様々な別の実施形態において、変形、補足、あるいは、置換えることができる。
【0086】
ほとんどの場合で、提示されたヘディングは次のレポート用に固定されたヘディングとなる。しかし、オクタントの進行ルールを少しだけ変えることによって、直線および回転の反転の両方を判断するための一体化したメカニズムが生じる。この変更により、現在優先するキラルの方向において、1つのオクタントのヘディングだけを変えることができる。ヘディングを変えることが出来るかどうかに関わらず、判断に関する統計が更新される場合、現在のキラリティとは反対の回転が、最終的には、固定されたヘディングと提示されたヘディングとの間に3オクタントの違いをもたらす。3オクタントの違いが発生すると、直線の反転ルールだけを用いて回転を識別する。上述した方向ルールからの、例示的な一体化した符号を表5に要約する。
【表5】
【0087】
量子化したヘディングを進行させるための既に説明したルールは、直線および回転の反転の判断を一体化する。しかし、直線の反転を判断する際の基本的な不明瞭さに疑問が残る。ポインティングデバイスの軌道を人間が正確に反転させるのは非常に難しいので、軌道の反転が、反転軸に垂直の少なくともいくつかの動作を含むのは非常に一般的である。さらに、反転動作が速ければ速いほど、そのような動作はより不正確なものになる。第2の困惑させる要因として、ポインティングデバイス自体にわずかな不正確さが存在するということが挙げられる。一貫性のある結果をもたらす最小の直径において回転移動するという、人間のもう1つの傾向により、このような不正確さは重大な問題になる。
【0088】
このような2つの人間の傾向は相反するものである。その理由は、一方では、より大きな直線移動の下では通常、小さな直径の回転は無視されるからである。他方、その他の小さな直径の回転の下で、小さな直径の回転は通常無視されない。このような予測できない変化(vagary)は、2つの連続した近似ヘディングから反転の判断を下す単純な計算モデルとともに、デバイスノイズあるいは人間の不正確さに起因して変化しない近似へディングの重要さを強調する。
【0089】
不正確さとノイズによる影響を減らすための第1の原理として、量子化したヘディングは、新しい方向において、次の十分に一貫性のある動作の後でのみ変化することが挙げられる。一貫性のある動作は複数のデバイスレポートから蓄積できるので、十分量を徐々に増やしていく必要があるかもしれない。計算の簡素化のため、十分量を確立するために、単一のスカラ値を用いることが望ましい。したがって、十分量に関する判断を下すために、確実に一貫性のある情報だけを用いる機構が求められている。
【0090】
動きを一貫性のあるものとするために、動作は1つの意図との互換性を有していなければならない。反時計回りに互換性のある動作は、例えば、現在のオクタントとそのオクタントに最も近接した2つの左旋性隣のオクタントに位置する。反対に、時計回りに互換性のある動作は、現在のオクタントとそのオクタントに最も近接した2つの右旋性隣のオクタントに位置する。反転を意図としたものと互換性のある動作は完全に現在のオクタントと反対の3つのオクタントに位置する。充分性アキュムレータ(sufficiency accumulator)の現在の中身と互換性のないいずれかの動作は、当該アキュムレータをクリアする。主に現在のヘディングの方向に向かう動作もまた、充分性アキュムレータをクリアしなければならない。このような例示的なヘディングの進行原則を表6に要約する。
【0091】
既に述べたように、1つの状況で目的を確立するために十分な動作は、別の状況では不十分であるおそれがある。このことは適応進行充足判断基準(adaptive progression sufficiency accumulator)の必要性を示す。考慮すべき2つの影響は、デバイスの不正確さと人間の不正確さである。与えられたデバイスの不正確さは幾分か修正され、その結果、適切な判断基準は修正した要素を含む必要がある。人間の不正確さは変わりやすく、移動速度が高まることによって不正確さが増す。従って、速度に依存した充足要素(speed-dependent sufficiency component)も有益である。
【表6】
【0092】
速度に依存した充足要素は、速度が増加すると比較的速く速度変化を追跡しなければならない。しかし、速度は相対的に、不正確さよりも速く減速する。これは、本来、加速よりも減速を制御することがより困難であるためである。したがって、速度に依存した充足要素は、比較的ゆっくりと減速することだけを可能にしなければならない。このような例示的な進行の充足の原則を表7に要約する。
【表7】
【0093】
進行の充足の判断基準を減らすための、コンピュータ的に効果のある方法は、量子化したヘディング変化の現在の速度方向の判断基準を徐々に消すことである。
この方法はまた、レポートレートなどのデバイスの予測できない変化に大いに依存し、また、時間ベースのエバネセント(evanescent)スキームに優先される。
【0094】
距離と大きさ
【0095】
既に説明した減縮の原則が求めることは、1次元の出力変数の大きさが2次元の移動距離にほぼ比例するということである。既に説明した出力符号の取扱い原則に関連して、この比例原則のリラクゼーション(relaxation)は有用性を有してよい。主な問題点は、ある状況では動作の意図が曖昧であるおそれがあることである。更に、不正確に解釈される曖昧な動作により、ある状況が予想外の出力をもたらすおそれがある。
【0096】
各要因が最も不利に組み合わせられた状況は、回転によって導かれる符号の反転である。これは、反対の角度に大きく回転するまで、回転の反転を検出することができないためである。回転の直径が非常に大きい場合、回転の反転が開始するポイントと回転の反転を検出するポイント間に多量の1次元出力を生成してよい。これにより、現在の出力符号の方向で、かなりのオーバーシュートをもたらすおそれがある。
【0097】
方向の曖昧さの改善をサポートする一般的原則は、現在のオクタント方向にある入力動作のコンポーネントだけを出力するために蓄積することである。これは、入力レポートと現在のオクタント方向を向いた標準ベクトルとのドット積を実施することで行うことができる。計算を簡素化するために、標準ベクトルをゼロと1との様々な組み合わせに限定してよい。例えば、“北”の標準ベクトルを(0,1)と定義し、“北東”の標準ベクトルを(1,1)と定義してよい。同様に、任意のいずれの基準に割り当てられた様々なヘディングを使って、どのような方向性スキームを適用してよい。本文中の標準の方向に関する記載は、単に例示と参照の便宜化を目的としたものであり、実際には、様々な等価の実施形態において、いずれの座標および/あるいは方向システムあるいは配置を用いることができる。
【0098】
最も一般的な状況では、移動した入力距離よりも遅く出力が蓄積することが望ましい。これは通常、単一の出力ユニットが1以上のピクセルによって直線のGUI表示を変化させるからである。例えば、Microsoft Windowsのオープニングシステム上で、WM_MOUSEWHEELメッセージを用いて垂直スクロールを実行すると、単一のホイール情報ユニットに対する通常のアプリケーション応答は、数ラインのテキストに相当する距離分をスクロールすることである。この動作は、マウスホイールを介してスクロール出力を生成する際には適切であるが、マウス自体がスクロール出力の生成を減らす場合は幾分か混乱させるものである。マウス動作を介してスクロールする場合、ユーザは、特定の動作速度を与えると、ウインドウコンテンツはスクロールする場合にピクセル空間においてカーソルがポインティングする時と同じくらい速く動くと予想する。
【0099】
したがって、低減した出力と1次元のGUIナビゲーションに影響を及ぼすために実際に用いられる機構との間に、ゲイン一致スキームを介在させることが有益である。減縮モードは従来利用可能なものよりも高いダイナミックレンジを提供するので、既存のナビゲーション機構にゲインを一致させるには通常、減縮出力を弱めること、つまり1未満のゲインを適用することが求められる。
【0100】
整数演算を介して分数ゲイン(fractional gain)を適用するための標準技術は、分数ユニットを蓄積することである。アキュムレータベースと呼ばれる閾値に到達するまで、マッチング変数は入力ユニットを蓄積する。アキュムレータベースを超過すると、アキュムレータをそのベース(基数)で割り、その商は分数ゲインの整数出力になる。その除算の余りをアキュムレータに残す。効率性の理由から、分数基数は通常2の累乗であり、そのために、除算をバイナリシフトで実施してよい。多くの1次元ナビゲーションタスクに対して、最小ナビゲーション単位は、1ラインのテキストである。従って、有益な分数ゲインは通常のフォントサイズに反比例する。
【0101】
減縮モード(reductive mode)は非常に優れたダイナミックレンジを提供するので、より高パフォーマンスを表す状況においてもバリスティック関数を適用することができる。例えば、有益なナビゲーションツールであれば、アテンションポイントを長い文書の一方の端部からもう一方の端部まで移動させることができる。このタスクを実現するために、十分に非線形の弾道は急速な動きの減少を可能にする。2乗した弾道(square-law ballistic)の一例を数10に示す。任意に、最大リラモーティブデバイス座標の大きさを128、絶対距離測定、および、分数アキュムレータ基数8を選択すると、本実施形態において、約32のシングルレポートから最大出力を生成する。その結果、単純な2乗した弾道、
【数10】
はダイナミックレンジを約32倍拡張する。
【0102】
実施形態の詳細な説明
【0103】
組み込み式のマイクロコントローラあるいはその他のプロセッサによって好適に実行される、最適化された符号減縮マッピング法(optimized signed reductive mapping)を図9から図25に示す。例示的方法は、割り算の結果、整数商だけが残るように整数演算を用いる。また、できるだけ2の累乗で乗除算を実行し、そのため、ビットシフトを用いることによって、乗除算を行うことができる。このような特徴は任意のものであり、すべての実施形態に備わっていなくてよい。
【0104】
簡素化のため、本文中に示し議論している例示的フローチャートは、より高いレベルのプロシージャが用いる前に低レベルのプロシージャで階層的に順序付けられている。各フローチャートには名前がつけられており、これらの名前を通じて、各プロシージャは相互に参照される。プロシージャの定義とそのユースポイント(point of use)の両方においてプロシージャパラメータ名が同じ名前を有する場合、プロシージャパラメータは参照によって通過でき、そうでない場合は、値によって通過できる。同様に、様々な等価の実施形態は以下の詳細な実装品とは異なってよい。
【表8】
【0105】
例示的方法では、2次元リラモーティブ入力変数の操作を行い、それに応じて符号付き1次元出力変数を生成する。2種類の内部状態が維持され、1つは、1つのレポートから別レポートが発行されるまでは変わらない、つまり固定された状態、もう1つは、1レポート毎に変化する状態である。本実装品において、すべての状態変数は最大で16ビットの整数表示内に適合するように設計されている。その他の実装品はこれと異なる設計がなされてよい。テーブル8に、11の固定された状態変数の名前および定義を示す。図9は例示的な局所変数を示す。本文中におけるこのような状態変数のすべての名前は、長さが1文字である。固定変数名は大文字で、局所変数名は小文字である。双方の名前の種類は、変数の用法に関する付加的情報を提供する、大文字のギリシャ文字の接頭辞を含んでよい。
【表9】
【0106】
テーブル10に、例示的フローチャートで使用する所定の定数を示す。所定の定数の全名前は、長さが1文字あるいは2文字であり、大文字である。すべての定数は基礎となる整数表示を有しており、その例示的な値もテーブル中に示す。該方法を用いるデバイスの特徴に応じて、特定のその他の所定の定数は異なる値を有する。このようなデバイス依存パラメータの値をフローチャートの説明の次に与える。
【表10】
【0107】
図9は、8つの検出可能なオクタントヘディング(possible octant heading)のうちの1つに動作レポートを量子化するための一般的なプロシージャを示す。各オクタントの名前を、羅針盤の方位メモリの略語によって示す。従来、ユーザから離れて配置されるのが北(North)であり、ユーザの右側に配置されるのが東(East)である。5つあるいはそれ以下の整数比較によってこの量子化を実現する。第1の比較により、左右のどちらに移動するかどうかを決定する。次の比較では、傾斜が1/2(2分の1)、−1/2(マイナス2分の1)、2、および−2の4本の線を用いて、入力面(input plane)を分割する。これらの4本の線は、図8に示す分割ポイントに対応する。方向レポートが分割線上に落ちる場合、比較はより小さなオクタントを優先するようになっている。
【0108】
図10は、オクタントヘディングを用いて動作レポートのドット積を行うための例示的プロシージャを示す。符号の付いた直交入力の様々な組み合わせから整数の結果を形成する。用いる組み合わせを選択するのはオクタントヘディングである。入力動作レポートが入力オクタント内にある場合、各直交方向の絶対値の合計がその結果である点に留意されたい。しかし、オクタントに対して直交の動作は結果がゼロになり、オクタントに対して逆方向の動作はマイナスの結果になる。
【0109】
図11は、入力レポートを正規化する例示的プロシージャを示す。これに関連して、標準のレポートは、入力と同じオクタント内にある最小の整数レポートである。このプロシージャではまず、入力レポートがあるオクタントを、すでに説明したQuantize()プロシージャを呼び出すことにより決定する。リターンした(returned)オクタントは、0と±1の正しいペアを選択する。
【0110】
図12は、別のオクタントに特定の回転関係を有するオクタントを探し出すための例示的プロシージャを示す。FindRelated()プロシージャの第1パラメータは、関係するオクタントを見つけるためのオクタントである。第2パラメータは、オクタントの整数として表される所望の回転関係である。正の回転関係は反時計周りを、負の回転関係は時計周りを特定する。入力オクタントと整数の回転関係を合計することで、暫定的な結果が得られる。結果がオクタントの最大表示可能数(largest possible octant representation)を超える場合は8を引く。結果が最小表示可能数(smallest possible octant representation)に満たない場合の場合は8を足す。
【0111】
図13は、2つのオクタント間の回転距離を定めるための例示的プロシージャである。各オクタントの距離を計測し、符号を付ける。この2つのソースオクタントを引き算することで、暫定的な結果が得られる。距離が−4未満の場合は8を足し、距離が4以上の場合は8を引く。これにより、2つの検出可能な回転距離のうち距離の短いオクタントを返す(リターンする)効果がある。
【0112】
図14は、多くの動作の合計を表す固定状態変数(persistent state variable)に動作レポートを加算するための例示的プロシージャを示す。まず入力レポートの各座標を、そのそれぞれの合計に加算する。両方の合計がゼロの場合はその合計をレポートに置き換える。適切に量子化を行うために、各ヘディングは少なくとも1つのゼロでない座標を有することが必要であるために、これによって、次の不適切な量子化を回避する効果がある。
【0113】
図15は、1つのオクタントが別のオクタントの方へリラックスするための例示的なプロシージャを示す。各オクタント間の回転距離が2に等しい場合にだけリラックスする。第1パラメータが特定したオクタントは、第2パラメータが特定したオクタントの方へリラックスする。この2つの間の半分の回転距離によって第1パラメータに関係するオクタントを見つけることにより、リラクゼーションを実現する。Distance()プロシージャを用いて回転距離を計測し、FindRelated()プロシージャを用いて関係するオクタントを見つける。
【0114】
図16は、最初に量子化したヘディングがその他の2つのヘディングと互換性があるかどうかを判断するための例示的プロシージャである。互換性とは、第2および第3のオクタントが両方とも、第1オクタントとは逆方向である、あるいは、第2および第3のオクタントが両方とも、第1オクタントに対して回転方向が同じであることを意味する。より形式的な用語で言えば、第2および第3オクタントがどちらも、第1オクタントから2オクタント以上離れている、あるいは、第2および第3オクタントが両方とも、2オクタント以下だけ第1オクタントの同じ側面から離れている場合に、互換性が示される。第1と第2オクタントおよび第1と第3オクタント間の回転距離を取得することにより、演算処理を行う。これらの距離を3分割し、商を比較する。分割した距離が異なる場合、非互換性が示される。そうでない場合は、2つの距離の符号を比較する。符号が同じ場合、互換性が示される。そうでない場合、2つの距離の大きさを合計する。合計が4以上の場合は互換性を示し、合計が4以下の場合は非互換性を示す。
【0115】
図17は、現在のオクタントを候補オクタント(candidate octant)に進めるために、候補オクタントの方向に十分な動作が蓄積されたかどうかを判断するための例示的プロシージャを示す。このプロシージャにより、進行した場合は変化しない候補オクタント、あるいは、進行しなかった場合は現在のオクタントにリセットする候補オクタントが生じる。このプロシージャはまず、現在のオクタントと候補オクタントとを比較する。これらのオクタントが同一である場合、あるいは、これらのオクタントが非互換性である場合に、現在の動作レポートから新しい候補ヘディングを取得する。副作用として、オクタントアクティブティアキュムレータがクリアされる。次に、変化した、あるいは、変化していない候補オクタントを再度現在のオクタントと比較する。これらの2つのオクタントが同一である場合、プロシージャを出る前に、より大きな現在のアクティビティ閾値(octant activity threshold)で更新する、あるいは、現在の瞬間速度でアップデートする。この閾値のアップデートプロシージャはその他すべてのプロシージャ出口経路パスからも呼び出される。
【0116】
以前の比較で現在のオクタントと候補オクタントとが異なる場合、オクタントアクティビティアキュムレータを更新し、その結果をデバイスファミリースペシフィックゲインパラメータで増加したアクティビティ閾値に対してスケーリングと比較とを行う。アキュムレータが閾値未満の場合、プロシージャを出る前に候補オクタントを現在のオクタントに設定する。そうしない場合、候補オクタントを保持する。保持した候補オクタントを戻す前に、蓄積したデルタを正規化し、アクティビティ閾値をアクティビティアキュムレータ値に設定し、そのアクティビティアキュムレータをクリアする。アクティビティ比較はスケーリングしたアクティビティ値を用いるので、アクティビティ閾値をアクティビティアキュムレータ値で置き換えると、アクティビティ閾値をゼロに近づける効果がある。
【0117】
図18は、キラリティと符号とを関連づける例示的プロシージャである。オクタントのヘディングが変わるたびに、現在のオクタントと候補オクタントとをパラメータとしてAssociate()プロシージャが呼び出される。このプロシージャの副作用としては、現在のキラリティに反対する、1つのオクタントの方向変化を無効にすることが挙げられる。このプロシージャではまず、2つのオクタント間の回転距離を算出する。絶対距離が3以上で、反転が継続していることを示す場合、キラリティアソーシエーションカウンタ(the chirality association counter)をリセットし、現在のキラリティをラセミ状態に設定する。全ての出口経路の場合と同様、この距離結果が返される。
【0118】
絶対回転距離が1に等しい場合は、現在のキラリティ状態について判断を行う。現在のキラリティがラセミ状態である場合、キラリティアソーシエーションカウンタは増加し、その値が3以上の場合、現在のキラリティはキラリティアソーシエーションカウンタの符号に設定される。現在のキラリティがラセミ状態でなく、現在のキラリティとオクタント距離の符号が異なる場合、候補オクタントを現在のオクタントに置き換えることで、提案されたオクタントの進行を無効にする。その結果発生する距離は、出る前にゼロにされる。
【0119】
図19は、量子化された現在のヘディングをアップデートするために、動作レポートを用いるための例示的プロシージャを示す。まず、動作レポートから動作の合計アップデートする。動作の合計から候補オクタントを取得し、動作レポートから最新のオクタントを取得する。オクタントが十分にアクティビティを行えるよう、候補オクタントをフィルタリングし、次に、リラックスする。最後に、キラリティを適切に関係づけるために候補オクタントをフィルタリングし、現在のヘディングを候補ヘディングに置き換える。アクティビティと、関連する(アソシアティブ)フィルタリングが、現在のオクタントと置き換えられる候補オクタントをもたらす点に留意されたい。そのような状況では、量子化した最新のヘディングは変化しないままである。
【0120】
図20は、最初の動作方向と最初のキラリティから、方向に関連する固定された減縮状態を初期化するための例示的方法を示す。動作の合計をクリアし、量子化した最初のヘディングを取得する。続いて、アクティビティアキュムレータ、アクティビティ閾値、および、キラリティアソーシエーションカウンタをクリアする。最後に、現在のキラリティを提供された最初のキラリティに置き換える。
【0121】
図21は、提供された動作レポート、符号、及びオクタントヘディングから、1次元の分数出力アキュムレータをアップデートするための例示的プロシージャを示す。アキュムレータは、動作レポートのドット積、および、符号とコンテキスト依存ゲインパラメータ(context dependent gain parameter)を掛けたオクタントヘディングで増大される。その結果として生じるアキュムレータ値が返される。
【0122】
図22は、画分出力アキュムレータの整数部分を抽出する例示的プロシージャを示す。アキュムレータをその基数で割り、ゼロに近づくように結果を丸めることで整数部分を取得する。その基数を掛けた、抽出した整数部分を引くことで、分数分をアップデートする。
【0123】
図23は、供給された抽出した整数出力から初期符号を感知するための例示的プロシージャを示す。副作用としては、供給された出力符号、出力画分アキュムレータ、および、変換状態が更新されることが挙げられる。供給された整数出力がゼロの場合、いずれのアクションも実行せずにプロシージャは終了する。そうでない場合、供給された変換状態変数がキラル状態へとアップデートされる。次に、提供された符号が提供された整数出力と比較される。これらの2つの値の符号が同じ場合、提供された動作レポートが用いられ、ラセミ状態のキラリティで、方向に関連する固定された減縮状態が初期化される。そうでない場合、提供された符号と画分アキュムレータとは、固定された状態が初期化される前に無効にされる。
【0124】
図24は、1次元の結果を生成するために、供給された動作レポートの次元を減らすための例示的プロシージャを示す。方向に関連する固定状態を初期化するために、供給された軸パラメータを用いる。供給されたモーダル記述子は、減縮した状態を初期化する必要があるときを指示する。その記述子が真であり、方向に関連する状態が供給された動作レポートとともにラセミ状態に初期化される場合、出力符号は垂直軸に対して負に初期化され、水平軸に対して正に初期化される。出力アキュムレータはクリアされ、また、内部の変換状態変数はIに設定される。次に、画分出力は蓄積され、整数出力が抽出される。続いて、変換状態変数がIの状態にある場合、符号の感知を行う。符号検知は、ゼロでない整数出力が以前の抽出で生成される場合に、変換状態変数をCの状態に発展させるという副作用を有する。これにより、供給された様式的記述子が減縮状態の初期化を強要するまで、符号の感知を停止するという効果がある。各プロシージャが呼び出されると、蓄積、抽出、符号感知経路を実行する。
【0125】
供給されたモーダル記述子が偽である場合、変換状態変数はCに設定され、現在のオクタントヘディングが更新される。更新されたものが3オクタント以上の大きさで回転する場合、出力信号は反転する。変換状態変数がIに設定されている限り、方向は更新されない点に留意されたい。これにより、最初の整数出力が生成され、最初の符号が感知されるまで、蓄積される出力を、軸に沿った入力動作によって生成されたものに限定する。
【0126】
図25は、拡張された様式的情報で増大されたデバイスレポートの流れをモニタリングし、ポインティングのために、あるいは2つの異なる1次元のGUIタスクのためにデータをディスパッチするための例示的プロシージャを示す。拡張した様式的情報により、垂直方向のGUIタスクを実行することが特定される場合、垂直方向に減縮するためにレポートをディスパッチし、タスクを実行するためにその結果を用いる。拡張した様式的情報により、垂直方向のGUIタスクを実行することが特定される場合、水平方向に減縮するためにレポートをディスパッチし、タスクを実行するためにその結果を用いる。そうでない場合、ポインティングのためにレポートをディスパッチする。減縮のためにレポートをディスパッチする場合、内部の状態変数が維持される。この状態変数は、ポインティングレポート後の第1の減縮レポートについて真である。この状態変数は内部の減縮状態を初期化するために用いられる。
【0127】
図9から図25の方法は、リラモーティブオペレーションが可能ないずれのポインティングデバイスとともに使用するために設計されている。方法のいくつかのパラメータは種類の異なるデバイスを用いて最適なオペレーションを行うことができるよう、調整可能である。テーブル11は、マウスを用いた使用に適したこれらのパラメータの値を一覧にしたものである。テーブル12は、Synaptics,Inc.が製造したタッチパッドを用いた使用に適した値を示す。
【表11】
【0128】
この2つのデバイスの違いは主にゲインに関連する。タッチパッドはマウスよりも感度が高く、そのため、同様の感触(feel)をもたらすよう、画分アキュムレータ基数はさらに大きい。同様に、オクタントアクティビティゲインパラメータもまた大きい。通常、タッチパッドはマウスよりもうるさいので、ゼロでないタッチパッドのアクティビティノイズパラメータはオクタントアクティビティを徐々に減らし、進行に十分なアクティビティの蓄積をさらに困難にする。
【表12】
【0129】
両方のデバイスの出力画分アキュムレータゲインは1であるが、減縮モードの全体的な感度を調整するために異なってよい。通常、このパラメータは、コンフィギュレーションインターフェースを介してユーザベースでカストマイズされる。
【0130】
状態進行ダイアグラム
【0131】
図26から図29は、以前に説明した減縮プロシージャをいくつかの例示的な2次元経路に応用した結果を示す。各図面は例示的な経路と状態進行テーブルを含む。状態進行テーブルは、経路を処理したときの減縮状態の進行を示す。状態進行テーブルの左端列は経路の第1セグメントに対応し、右端列は最後のセグメントに対応する。図示している固定された状態値は、関連する経路のセグメントを処理した跡に推測されたものである。
【0132】
図26は2つの垂直方向経路に対する初期符号の発見を示す。1つは大きく上方(北)に移動し、1つは下方(南)に大きく移動する。両方の場合で、最初の南方向と最初の負の符号で減縮プロシージャを初期化する。変換状態変数を最初にIに設定する。これは、初期符号が発見されるまではキラルの進行が可能ではないことを示す。
【0133】
南へ向かう経路に対して、最初に正に変化した後、画分出力アキュムレータは次第に負になる。これは、最初の南方向のオクタントの正のドット積と南方向の動作が最初の負の符号で無効にされるからである。第5番目の経路セグメントまでに、整数出力を生成するために十分な画分出力が蓄積される。この点で、変換状態はキラルに変わり、回転の進行が可能になる。しかし、最初のヘディングと入力経路は一致することから、量子化されたヘディングは変更しない。整数出力は負であり、そのため、出力符号も変化しない。
【0134】
北へ向かう経路に対して、最初に負に変化した後、画分出力アキュムレータは次第に正になる。これは、最初の南方向のオクタントの負のドット積と、大きく北方向に向かう動作が、最初の負の符号で掛け算を行うことで正になるからである。第5番目の経路セグメントまでに、正の整数出力を生成するために十分な画分出力が蓄積される。北方向の移動が整数出力を生成するので、キラルの量子化したヘディング(chiral quantized heading)はNに設定される。整数出力は正であり、よって、符号状態変数も正を反映するものである。
【0135】
図27は直線方向の反転を含む、例示的な入力経路を示す。この方向の変化により伝えられた出力符号の変化は関連する状態進行テーブルにおいて太線で区別されている。このテーブルから留意すべき第1の点として、3行目と4行目の部分的に蓄積されたデルタは常に正規化されていることが挙げられる。これは、オクタントの進行中及び最新のオクタントと正規化されたオクタントが非互換性である場合はいつでも正規化が行われるからである。留意すべき第2の一般的なパターンとして、現在のオクタントは最新のオクタントをわずかに遅らせる傾向があるという点である。これは、オクタントを進行させるのに必要な動作量は、1つのレポートで利用可能な動作量を超えるおそれがあるからである。例えば、セグメント3はSEに対してのものであるが、同じくSEである次のセグメント4を処理するまで、量子化したヘディングはSからSEへ適応しない。オクタントアクティビティが進行の閾値を十分に超えた場合だけ適応する。直線反転符号はセグメント16で変化し、ここではオクタントヘディングが反転する。セグメント18までは正の整数出力は生じない点に留意されたい。
【0136】
図28は8の形をした入力経路と状態進行テーブルを示す。状態進行テーブルは、1つ以上の入力経路の横断に対応する。2つの回転符号の反転が生じ、それぞれ経路の北方向のセグメントで反転する。キラリティを確立するためには3つのオクタントの変化が必要である点に留意されたい。各キラリティを関係付けた後(chirality association)、回転が反転し、確立したキラリティに反対すると、現在のヘディングを固定する。移動方向が別の3つのオクタントを回転させると、反転が起きる。従って、全体としては、6オクタントの回転ごとに反転し、あるいは、図面が横切るたびに2回反転する。図面が1回以上横切る場合は、開始位置で反転を記録し続ける点に留意されたい。
【0137】
図29は速度に関連する進行マスキングから生じる直線の反転を示す。最初に高速回転した後、より高速な直線動作と、連続する、よりタイトで低速な回転が続く。高速動作は、オクタントを進行させるには不十分なアクティビティを次のより遅い回転が生成するよう、オクタントアクティビティの閾値を高める。経路はNからNW、W、SWへと回転するので、現在の量子化したヘディングはNにとどまる。高められたアクティビティ閾値を克服するには、次の継続した南方向の動作だけで十分であるが、そのときまでにNとS間の4つのオクタントの差異で直線の反転が生じる。
【0138】
図29の回転を図28の回転が導く反転と区別しなければならない。図29の反転は図27で示したものに類似している。完全な軌道の反転を人間が実行するのは非常に困難であり、そのために、ほとんどが少なくとも少しの垂直回転動作を含む。図29に示すラピッドスローイング(rapid slowing)は相対的に高いアクティビティ閾値を残し、直線の反転中に許容される垂直動作量を増加する。
【0139】
任意の特徴
【0140】
これまでに説明したリラモーティブ減縮モードの潜在的な難点として、どちらかの動作方向およびどちらかの回転方向が時としてどちらかの出力符号に結び付けられる点が挙げられる。このことは、実施される1次元のGUIタスクが提供するビジュアルフィードバックが連続性をもたらすことから、継続動作にとっては特に目立ったことではない。つまり、継続するユーザアクションは同じ方向の移動を作り出し、反転は反対方向の移動を作り出す。しかし、ポインティングデバイスが連続的でない移動バースト(non-continuous bursts of movement)に動くと、この連続性は失われ、所望の結果を作り出す動作方向を記憶することをより困難にする。したがって、ポインティングデバイスが不活動(インアクティブ)となるある期間の後、減縮モードを初期状態にリセットすることを望むユーザもいる。この期間の長さは個人の好みによって決まり、また、様々な値となりうる。
【0141】
更に、より単純であるがパフォーマンスはより低いオプションは符号の付いていない減縮モードを使用する。拡張した様式的情報を通じて入力したときに、あるいは、最初の移動方向によって、符号が確立される。どちらの場合でも。符号は各モードの起動のために固定される。出力の大きさは依然として入力距離に比例し、境界のない出力を可能にする。
【0142】
本文に説明した幅広い概念に対して、多くのその他の変形および拡張を実施してよい。さらに、本文中に説明した技術を幅広いコンピュータ環境にわたって、また、多様な入力デバイスとともに用いてよい。
【0143】
前述の詳細な説明で少なくとも1つの実施形態を示しているが、当然のことながら多数の等価のバリエーションがあってよい。当然のことながら、例示した実施形態は単なる例であって、発明の範囲、応用性、あるいは構造をどのようにも限定しないことを意図する。むしろ、前述の詳細な説明は当業者に例示の実施形態を実装するための便利なロードマップを提供するものであり、機能や要素の配置に関して、添付の請求項に説明した発明の範囲、およびそれらの法的な等価性から逸れることなく様々な変化がなされることが理解される。
【図面の簡単な説明】
【0144】
【図1】アクティブ状態の垂直スクロールバーと非アクティブ状態の水平スクロールバーを備えた従来のGUIウインドウの説明図。
【図2】例示的な入力経路とその次元を縮退した出力変数の説明図。
【図3】最初の移動方向から割当てられた例示的な最初の符号の説明図。
【図4】例示的な固定されたキラリティの関係の説明図。
【図5】例示的なレイジーキラリティの関係の説明図。
【図6】どのようなキラリティの関係が連続する回転を求めるかについての一例を示した説明図。
【図7】例示的なリラモーティブキラルマッピングの説明図。
【図8】関連する方向パラメータの実効的な計算に適した、8つの例示的な近似ヘディング、つまりオクタントの説明図。
【図9】動作レポートに最も近似するオクタントヘディングを確立するための例示的フローチャート。
【図10】動作ベクトルとオクタントヘディングから1次元出力変数の付加的変化を確立するための例示的フローチャート。
【図11】オクタントヘディングから正規化した動作ベクトルを生成するための例示的フローチャート。
【図12】所与のオクタントヘディングと回転量から関連するオクタントヘディングを見つけるための例示的フローチャート。
【図13】1つのオクタントヘディングから別のオクタントヘディングへ移動するために必要な回転量を求めるための例示的フローチャート。
【図14】フィルタリングされた有効な移動方向を取得するために、部分的に動作レポートを積分するための例示的フローチャート。
【図15】反転に必要な量よりは少ないが1オクタント以上の方向の変化を、ちょうど1位オクタントにリラックスするための例示的フローチャート。
【図16】3つの近似ヘディングは互換性があるかどうかを判断するための例示的フローチャート。
【図17】オクタントヘディングを変えるかどうかを判断するアクティビティの統計を蓄積するための例示的フローチャート。
【図18】1次元極性をキラリティと関連づけるための例示的フローチャート。
【図19】オクタントヘディングの変化量を決定するための例示的フローチャート。
【図20】縮退状態変数を初期化するための例示的フローチャート。
【図21】動作レポートと現在の符号から1次元出力変数を増加させるための例示的フローチャート。
【図22】GUIサブシステムに運ぶために1次元出力変数の積分部分を抽出するための例示的フローチャート。
【図23】一連の動作レポートから最初の符号を感知するための例示的フローチャート。
【図24】一連の2次元動作レポートを一連の1次元GUI変数レポートに縮退するための例示的な全体のフローチャート。
【図25】マウスレポートの流れをモニタリングし、2次元と1次元のGUIタスク間を様式的に切り替えるための例示的な全体のフローチャート。
【図26】最初の符号を感知するために用いる例示的な状態変数の進行を示した説明図。
【図27】例示的な直線によって導かれた符号反転から生じた状態変数の進行を示した説明図。
【図28】例示的な回転によって導かれた符号反転から生じた状態変数の進行を示した説明図。
【図29】適用した直線によって導かれた符号反転から生じた、例示的状態変数の進行を示した説明図。
【特許請求の範囲】
【請求項1】
入力デバイスによって検出された動きに基づき、所望のユーザインターフェースナビゲーションタスクを示すための方法であって、前記動きは第1方向を有する第1セクションと前記第1方向とは実質的に反対の第2方向を有する第2セクションを含み、前記方法は、
2次元信号のシーケンスを受信するステップであって、第1の複数の2次元信号は前記第1セクションの動きに対応し、第2の複数の2次元信号は前記第2セクションの動きに対応するステップと、
距離測定を決定するために前記2次元信号のシーケンスの少なくとも一部を処理するステップと、
前記所望のユーザインターフェースナビゲーションタスクを示すために複数の1次元出力信号を提供するステップとを含み、前記複数の1次元出力信号の各々は、
前記2次元信号の少なくとも1つに応答して提供され、
前記距離測定の少なくとも一部に基づいた大きさを有し、さらに、
共通の極性を有する、
方法。
【請求項2】
前記入力デバイスはマウスである、請求項1記載の方法。
【請求項3】
前記入力デバイスはトラックボールである、請求項1記載の方法。
【請求項4】
前記入力デバイスはジョイスティックである、請求項1記載の方法。
【請求項5】
前記入力デバイスは慣性ポインティングデバイスである、請求項1記載の方法。
【請求項6】
前記入力デバイスはビデオゲームコントローラである、請求項1記載の方法。
【請求項7】
前記ユーザインターフェースナビゲーションタスクはスクロールである、請求項1記載の方法。
【請求項8】
前記ユーザインターフェースナビゲーションタスクはリストからアイテムを選択することである、請求項1記載の方法。
【請求項9】
前記共通の極性を決定するステップを更に含む、請求項1記載の方法。
【請求項10】
前記共通の極性は少なくとも前記第1の複数の2次元信号のうちの1つの方向から決定される、請求項9記載の方法。
【請求項11】
前記共通の極性は所定の定数である、請求項9記載の方法。
【請求項12】
前記共通の極性は前記ユーザインターフェース構造から決定される、請求項9記載の方法。
【請求項13】
前記共通の極性は前記ユーザによって選択可能である、請求項9記載の方法。
【請求項14】
監視した前記入力デバイスの休止期間に応答して、前記決定ステップを繰り返すステップを更に含む、請求項9記載の方法。
【請求項15】
前記受信するステップは更に、第3セクションの動きに対応する第3の複数の2次元信号を受信し、かつ、前記第3の複数の2次元信号に応答して前記共通の極性とは反対の極性を有する第2の複数の1次元信号を生成するステップを含む、請求項1記載の方法。
【請求項16】
前記第3セクションの前記動きは前記第2セクションの動作の実質的な反転に対応する、請求項15記載の方法。
【請求項17】
前記反転は突然の反転である、請求項16記載の方法。
【請求項18】
前記反転は確立された前記動きの回転方向から徐々に逸脱する、請求項16記載の方法。
【請求項19】
前記逸脱は前記確立された回転方向から90度を超えるものである、請求項18記載の方法。
【請求項20】
前記確立された回転方向は、少なくとも一部が前記動きの第1および第2のセクションの十分な回転から決定される、請求項18記載の方法。
【請求項21】
十分な回転量は実質的に逸脱した回転量に相当する、請求項20記載の方法。
【請求項22】
前記処理するステップは前記2次元信号の少なくとも1つの数学関数として距離測定を決定するステップを含む、請求項1記載の方法。
【請求項23】
前記距離測定は前記2次元信号の大きさから決定される、請求項22記載の方法。
【請求項24】
前記1次元信号のそれぞれの前記大きさは、前記距離測定の少なくとも1つに実質的に比例する、請求項23記載の方法。
【請求項25】
前記1次元信号の大きさの決定には、少なくとも1つの前記距離測定を含む数学関数を含む、請求項1記載の方法。
【請求項26】
前記数学関数は少なくとも1つの線形項を含む、請求項25記載の方法。
【請求項27】
前記数学関数は少なくとも1つの非線形項を含む、請求項25記載の方法。
【請求項28】
前記非線形項は多項式関数である、請求項27記載の方法。
【請求項29】
前記非線形項は指数関数である、請求項27記載の方法。
【請求項30】
前記2次元信号の少なくとも1つに関連づけられた現在のヘディングを決定するステップを更に含む、請求項16記載の方法。
【請求項31】
前記現在のヘディングは複数の潜在的なヘディングの1つと関連づけられる、請求項30記載の方法。
【請求項32】
前記複数の潜在的なヘディングはオクタントを含む、請求項31記載の方法。
【請求項33】
候補ヘディングを確立するステップを更に含む、請求項32記載の方法。
【請求項34】
前記現在のヘディングを前記候補ヘディングで更新するステップを更に含む、請求項33記載の方法。
【請求項35】
前記更新するステップは、十分な動きが生じるまで前記候補ヘディングの方向に互換性のある動きを蓄積するステップを含む、請求項34記載の方法。
【請求項36】
前記候補ヘディングと互換性のない動き上に修正した候補ヘディングを確立するステップを更に含む、請求項35記載の方法。
【請求項37】
前記現在のヘディング方向を向いた動きは前記現在のヘディングの方向を向いた候補ヘディングと互換性がある、請求項36記載の方法。
【請求項38】
前記現在のヘディングとは反対の3つのオクタントの動きのうちどれかは、現在のヘディングとは反対の3つのオクタントの候補ヘディングのうちのどれかと互換性がある、請求項37記載の方法。
【請求項39】
前記現在のヘディング、または、前記現在のヘディングの右側のオクタントと前記現在のヘディングに最も近いオクタントのどちらの動作も、前記現在のヘディングの右側の2つのオクタントの候補ヘディングのうちどちらとも互換性がある、請求項38記載の方法。
【請求項40】
前記現在のヘディング、または、前記現在のヘディングの左側のオクタント、かつ前記現在のヘディングに最も近いオクタントのどちらも、前記現在のヘディングの左側の2つのオクタントの候補ヘディングどちらとも互換性がある、請求項39記載の方法。
【請求項41】
前記共通の極性は、前記現在のヘディングが、前記現在のヘディングとは反対のいずれの3つのオクタントにおいて前記候補ヘディングに更新したときに変化する、請求項40記載の方法。
【請求項42】
意図した前記動作の回転方向を決定するステップを更に含む、請求項41記載の方法。
【請求項43】
候補ヘディングは、前記現在のヘディング、前記現在のヘディングとは反対の前記3つのオクタント、および、前記意図する回転方向において前記現在のヘディングに対して前記2つの最も近接したオクタントからなる群より選択される、請求項42記載の方法。
【請求項44】
入力デバイスによって検出される動きに基づき、所望するユーザインターフェースナビゲーションタスクを示すための方法であって、前記方法は、
前記動きに対応する複数の付加的2次元信号を受信するステップであって、前記2次元信号の大きさの合計は前記2次元信号の合計の大きさよりも実質的に大きいステップと、
前記複数の付加的2次元信号から複数の距離測定を決定するステップと、
前記所望のユーザインターフェースナビゲーションタスクを示すために、前記距離測定から生じた共通の極性の複数の付加的1次元信号を出力するステップとを含む、
方法。
【請求項45】
前記大きさの前記合計は、前記付加的2次元信号の前記合計の大きさの少なくとも2倍である、請求項44記載の方法。
【請求項46】
所望のユーザインターフェースナビゲーションタスクを示すために構成された信号を出力するための入力デバイスを用いる方法であって、前記方法は、
2次元の出力信号を生成するために前記入力デバイスに第1の動き入力を提供するステップと、
次元を縮退したモードに前記デバイスを設定するステップと、
共通の極性の複数の1次元出力信号を生成するために、第2の動き入力を提供するステップを含み、前記第2の動き入力は、
前記複数の1次元出力信号の第1サブセットを生成するための、第1方向における第1の移動を含み、前記第1サブセットは前記第1の移動とは実質的に異なる部分の大きさと相関し、かつ、
前記複数の1次元出力信号の第2サブセットを生成するための、前記第1方向とは実質的に反対の第2方向における第2の移動を含み、前記第2サブセットは前記第2の移動とは実質的に異なる部分の大きさと相関する、
方法。
【請求項47】
2次元のポインティングデバイスの動きからユーザインターフェースナビゲーションタスクを示すための方法であって、前記方法は、
前記動きの複数の付加的な2次元測定を取得するステップであって、前記2次元測定の大きさの合計は前記2次元測定の合計の大きさよりも実質的に大きいステップと、
前記2次元測定の大きさから複数の付加的1次元信号を導き出すステップと、
前記ユーザインターフェースナビゲーションタスクを示すために、共通の極性の複数の付加的1次元信号を提供するステップと、を含む
方法。
【請求項48】
入力デバイスによって検出された2次元の動きに応答して、1次元のユーザインターフェース機能を示すための、コンピュータによって実行可能な命令を記録したデータ記録媒体であって、前記コンピュータによって実行可能な命令は、
前記2次元の動きに対応する複数の2次元信号を受信するために構成された第1モジュールと、
少なくとも1つの距離測定と、前記2次元の動きの確立された回転方向を決定するために、前記2次元信号を処理するように構成された第2モジュールと、
前記ユーザインターフェース機能の前記1次元表示を生成するように構成された第3モジュールとを含み、前記1次元表示は、少なくとも1つの距離測定の関数として決定された大きさと、前記2次元動作の確立された回転方向の関数として決定された極性とを含む、
データ記録媒体。
【請求項49】
ユーザによって与えられた2次元の動きを受信するよう、かつ、前記2次元の動きに対応する複数の付加的2次元信号を生成するよう構成された入力デバイスと、
前記ユーザに1次元のユーザインターフェース機能を示すように構成されたディスプレイと、
前記入力デバイスと前記ディスプレイとに結合されたプロセッサと、を含み、前記プロセッサは前記入力デバイスから前記複数の2次元信号を受信するよう、少なくとも1つの距離測定を決定するために前記2次元信号を処理するよう、かつ、前記ディスプレイ上に前記ユーザインターフェース機能の前記1次元表示を生成するよう構成されており、前記1次元表示は少なくとも1つの距離測定と一定の極性の関数によって決定された大きさを含む、
データ処理システム。
【請求項50】
前記入力デバイスはマウスである、請求項49記載のデータ処理システム。
【請求項51】
前記入力デバイスはトラックボールである、請求項49記載のデータ処理システム。
【請求項52】
前記入力デバイスはジョイスティックである、請求項49記載のデータ処理システム。
【請求項53】
前記入力デバイスは慣性ポインティングデバイスである、請求項49記載のデータ処理システム。
【請求項54】
前記入力デバイスはビデオゲームコントローラである、請求項49記載のデータ処理システム。
【請求項55】
前記ユーザインターフェース機能はスクロールである、請求項49記載のデータ処理システム。
【請求項56】
前記ユーザインターフェース機能はリストからアイテムを選択することである、請求項49記載のデータ処理システム。
【請求項57】
前記プロセッサは更に、回転方向を確立するように構成されている、請求項49記載のデータ処理システム。
【請求項58】
前記入力デバイスは更に、前記2次元の動きに対応する第2の複数の付加的な2次元信号を生成するために、ユーザによって適応された第2の2次元の動きを受信するように構成されており、かつ、
前記プロセッサは更に、少なくとも1つの付加的距離測定を決定するために前記第2の複数の2次元信号を処理するよう、前記第2の複数の2次元信号に関連づけられた前記回転方向が前記確立された回転方向とは反対であることを判断するよう、かつ、前記ディスプレイ上に前記ユーザインターフェース機能の第2の複数の1次元表示を生成するよう、前記入力デバイスから前記第2の複数の付加的2次元信号を受信するように構成されており、前記第2の1次元表示は少なくとも1つの付加的距離測定と前記一定の極性とは反対の極性の関数として決定される大きさを含む、請求項57記載のデータ処理システム。
【請求項59】
ユーザによって提供された2次元の動きに応答して1次元のユーザインターフェース機能を示すための入力デバイスであって、前記入力デバイスは、
前記2次元の動きに対応する複数の付加的2次元信号を生成するように構成された入力モジュールと、
前記ユーザインターフェース機能の前記1次元表示を生成するように構成された出力モジュールとを含み、前記1次元表示は前記少なくとも1つの距離測定と一定の極性との関数として決定される大きさを含む、
入力デバイス。
【請求項60】
1次元モードと2次元モードとの間の入力デバイスをトグルで切り替えるために、前記処理モードと連通するユーザが動かすことができるモード(ユーザアクチュエータブルモード)のコントローラスイッチを更に含む、請求項59記載の入力デバイス。
【請求項61】
前記プロセッサは更に、回転方向を確立するように構成されている、請求項59記載のデータ処理システム。
【請求項62】
前記入力モジュールは更に、前記ユーザによって提供された第2の2次元の動きに対応する第2の複数の付加的な2次元信号を生成するように構成されており、
前記処理モジュールは更に、少なくとも1つの付加的距離測定を決定するために前記第2の複数の2次元信号を処理するよう、かつ、前記第2の複数の2次元信号に関連づけられた前記回転方向が前記確立された回転方向とは反対であると判断するよう、前記入力デバイスから前記第2の複数の付加的2次元信号を受信するように構成されており、かつ、
前記出力モジュールは、前記ディスプレイ上に前記ユーザインターフェース機能の第2の複数の1次元表示を生成するように構成されており、前記第2の1次元表示は、少なくとも1つの付加的な距離測度および前記一定の極性とは反対の極性の関数として決定される大きさを含む、請求項61記載のデータ処理システム。
【請求項63】
リラモーティブポインティングデバイスの2次元の動きから1次元のユーザインターフェース信号を生成するための方法であって、
2次元の動き測定シーケンスを入力として受信するステップを含み、前記入力の動きの第1部分は前記入力の動きの第2部分によって実質的に対立する方向を含み、
1次元信号シーケンスを出力として生成するステップを含み、各出力信号は少なくとも1つの前記2次元の動き測定の受信と実質的に同時に生成されるものであり、かつ、
各出力信号は共通する極性を有する、
方法。
【請求項64】
各出力信号は、前記同時に受信する動き測定から実質的に決定される大きさを有する、請求項63記載の方法。
【請求項65】
リラモーティブポインティングデバイスの2次元の動きから1次元ユーザインターフェース信号を生成するための方法であって、
2次元の動き測定シーケンスとして入力を受信し、1次元出力信号シーケンスとして出力を生成するステップを含み、各出力信号は少なくとも1つの前記2次元の動き測定と実質的に同時に生成され、かつ、
各出力信号は最近受信した2次元の動き測定によって示された回転方向から実質的に決定された符号を含む、
方法。
【請求項66】
各出力信号は前記同時に受信した動き測定から実質的に決定される大きさを有する、請求項65記載の方法。
【請求項1】
入力デバイスによって検出された動きに基づき、所望のユーザインターフェースナビゲーションタスクを示すための方法であって、前記動きは第1方向を有する第1セクションと前記第1方向とは実質的に反対の第2方向を有する第2セクションを含み、前記方法は、
2次元信号のシーケンスを受信するステップであって、第1の複数の2次元信号は前記第1セクションの動きに対応し、第2の複数の2次元信号は前記第2セクションの動きに対応するステップと、
距離測定を決定するために前記2次元信号のシーケンスの少なくとも一部を処理するステップと、
前記所望のユーザインターフェースナビゲーションタスクを示すために複数の1次元出力信号を提供するステップとを含み、前記複数の1次元出力信号の各々は、
前記2次元信号の少なくとも1つに応答して提供され、
前記距離測定の少なくとも一部に基づいた大きさを有し、さらに、
共通の極性を有する、
方法。
【請求項2】
前記入力デバイスはマウスである、請求項1記載の方法。
【請求項3】
前記入力デバイスはトラックボールである、請求項1記載の方法。
【請求項4】
前記入力デバイスはジョイスティックである、請求項1記載の方法。
【請求項5】
前記入力デバイスは慣性ポインティングデバイスである、請求項1記載の方法。
【請求項6】
前記入力デバイスはビデオゲームコントローラである、請求項1記載の方法。
【請求項7】
前記ユーザインターフェースナビゲーションタスクはスクロールである、請求項1記載の方法。
【請求項8】
前記ユーザインターフェースナビゲーションタスクはリストからアイテムを選択することである、請求項1記載の方法。
【請求項9】
前記共通の極性を決定するステップを更に含む、請求項1記載の方法。
【請求項10】
前記共通の極性は少なくとも前記第1の複数の2次元信号のうちの1つの方向から決定される、請求項9記載の方法。
【請求項11】
前記共通の極性は所定の定数である、請求項9記載の方法。
【請求項12】
前記共通の極性は前記ユーザインターフェース構造から決定される、請求項9記載の方法。
【請求項13】
前記共通の極性は前記ユーザによって選択可能である、請求項9記載の方法。
【請求項14】
監視した前記入力デバイスの休止期間に応答して、前記決定ステップを繰り返すステップを更に含む、請求項9記載の方法。
【請求項15】
前記受信するステップは更に、第3セクションの動きに対応する第3の複数の2次元信号を受信し、かつ、前記第3の複数の2次元信号に応答して前記共通の極性とは反対の極性を有する第2の複数の1次元信号を生成するステップを含む、請求項1記載の方法。
【請求項16】
前記第3セクションの前記動きは前記第2セクションの動作の実質的な反転に対応する、請求項15記載の方法。
【請求項17】
前記反転は突然の反転である、請求項16記載の方法。
【請求項18】
前記反転は確立された前記動きの回転方向から徐々に逸脱する、請求項16記載の方法。
【請求項19】
前記逸脱は前記確立された回転方向から90度を超えるものである、請求項18記載の方法。
【請求項20】
前記確立された回転方向は、少なくとも一部が前記動きの第1および第2のセクションの十分な回転から決定される、請求項18記載の方法。
【請求項21】
十分な回転量は実質的に逸脱した回転量に相当する、請求項20記載の方法。
【請求項22】
前記処理するステップは前記2次元信号の少なくとも1つの数学関数として距離測定を決定するステップを含む、請求項1記載の方法。
【請求項23】
前記距離測定は前記2次元信号の大きさから決定される、請求項22記載の方法。
【請求項24】
前記1次元信号のそれぞれの前記大きさは、前記距離測定の少なくとも1つに実質的に比例する、請求項23記載の方法。
【請求項25】
前記1次元信号の大きさの決定には、少なくとも1つの前記距離測定を含む数学関数を含む、請求項1記載の方法。
【請求項26】
前記数学関数は少なくとも1つの線形項を含む、請求項25記載の方法。
【請求項27】
前記数学関数は少なくとも1つの非線形項を含む、請求項25記載の方法。
【請求項28】
前記非線形項は多項式関数である、請求項27記載の方法。
【請求項29】
前記非線形項は指数関数である、請求項27記載の方法。
【請求項30】
前記2次元信号の少なくとも1つに関連づけられた現在のヘディングを決定するステップを更に含む、請求項16記載の方法。
【請求項31】
前記現在のヘディングは複数の潜在的なヘディングの1つと関連づけられる、請求項30記載の方法。
【請求項32】
前記複数の潜在的なヘディングはオクタントを含む、請求項31記載の方法。
【請求項33】
候補ヘディングを確立するステップを更に含む、請求項32記載の方法。
【請求項34】
前記現在のヘディングを前記候補ヘディングで更新するステップを更に含む、請求項33記載の方法。
【請求項35】
前記更新するステップは、十分な動きが生じるまで前記候補ヘディングの方向に互換性のある動きを蓄積するステップを含む、請求項34記載の方法。
【請求項36】
前記候補ヘディングと互換性のない動き上に修正した候補ヘディングを確立するステップを更に含む、請求項35記載の方法。
【請求項37】
前記現在のヘディング方向を向いた動きは前記現在のヘディングの方向を向いた候補ヘディングと互換性がある、請求項36記載の方法。
【請求項38】
前記現在のヘディングとは反対の3つのオクタントの動きのうちどれかは、現在のヘディングとは反対の3つのオクタントの候補ヘディングのうちのどれかと互換性がある、請求項37記載の方法。
【請求項39】
前記現在のヘディング、または、前記現在のヘディングの右側のオクタントと前記現在のヘディングに最も近いオクタントのどちらの動作も、前記現在のヘディングの右側の2つのオクタントの候補ヘディングのうちどちらとも互換性がある、請求項38記載の方法。
【請求項40】
前記現在のヘディング、または、前記現在のヘディングの左側のオクタント、かつ前記現在のヘディングに最も近いオクタントのどちらも、前記現在のヘディングの左側の2つのオクタントの候補ヘディングどちらとも互換性がある、請求項39記載の方法。
【請求項41】
前記共通の極性は、前記現在のヘディングが、前記現在のヘディングとは反対のいずれの3つのオクタントにおいて前記候補ヘディングに更新したときに変化する、請求項40記載の方法。
【請求項42】
意図した前記動作の回転方向を決定するステップを更に含む、請求項41記載の方法。
【請求項43】
候補ヘディングは、前記現在のヘディング、前記現在のヘディングとは反対の前記3つのオクタント、および、前記意図する回転方向において前記現在のヘディングに対して前記2つの最も近接したオクタントからなる群より選択される、請求項42記載の方法。
【請求項44】
入力デバイスによって検出される動きに基づき、所望するユーザインターフェースナビゲーションタスクを示すための方法であって、前記方法は、
前記動きに対応する複数の付加的2次元信号を受信するステップであって、前記2次元信号の大きさの合計は前記2次元信号の合計の大きさよりも実質的に大きいステップと、
前記複数の付加的2次元信号から複数の距離測定を決定するステップと、
前記所望のユーザインターフェースナビゲーションタスクを示すために、前記距離測定から生じた共通の極性の複数の付加的1次元信号を出力するステップとを含む、
方法。
【請求項45】
前記大きさの前記合計は、前記付加的2次元信号の前記合計の大きさの少なくとも2倍である、請求項44記載の方法。
【請求項46】
所望のユーザインターフェースナビゲーションタスクを示すために構成された信号を出力するための入力デバイスを用いる方法であって、前記方法は、
2次元の出力信号を生成するために前記入力デバイスに第1の動き入力を提供するステップと、
次元を縮退したモードに前記デバイスを設定するステップと、
共通の極性の複数の1次元出力信号を生成するために、第2の動き入力を提供するステップを含み、前記第2の動き入力は、
前記複数の1次元出力信号の第1サブセットを生成するための、第1方向における第1の移動を含み、前記第1サブセットは前記第1の移動とは実質的に異なる部分の大きさと相関し、かつ、
前記複数の1次元出力信号の第2サブセットを生成するための、前記第1方向とは実質的に反対の第2方向における第2の移動を含み、前記第2サブセットは前記第2の移動とは実質的に異なる部分の大きさと相関する、
方法。
【請求項47】
2次元のポインティングデバイスの動きからユーザインターフェースナビゲーションタスクを示すための方法であって、前記方法は、
前記動きの複数の付加的な2次元測定を取得するステップであって、前記2次元測定の大きさの合計は前記2次元測定の合計の大きさよりも実質的に大きいステップと、
前記2次元測定の大きさから複数の付加的1次元信号を導き出すステップと、
前記ユーザインターフェースナビゲーションタスクを示すために、共通の極性の複数の付加的1次元信号を提供するステップと、を含む
方法。
【請求項48】
入力デバイスによって検出された2次元の動きに応答して、1次元のユーザインターフェース機能を示すための、コンピュータによって実行可能な命令を記録したデータ記録媒体であって、前記コンピュータによって実行可能な命令は、
前記2次元の動きに対応する複数の2次元信号を受信するために構成された第1モジュールと、
少なくとも1つの距離測定と、前記2次元の動きの確立された回転方向を決定するために、前記2次元信号を処理するように構成された第2モジュールと、
前記ユーザインターフェース機能の前記1次元表示を生成するように構成された第3モジュールとを含み、前記1次元表示は、少なくとも1つの距離測定の関数として決定された大きさと、前記2次元動作の確立された回転方向の関数として決定された極性とを含む、
データ記録媒体。
【請求項49】
ユーザによって与えられた2次元の動きを受信するよう、かつ、前記2次元の動きに対応する複数の付加的2次元信号を生成するよう構成された入力デバイスと、
前記ユーザに1次元のユーザインターフェース機能を示すように構成されたディスプレイと、
前記入力デバイスと前記ディスプレイとに結合されたプロセッサと、を含み、前記プロセッサは前記入力デバイスから前記複数の2次元信号を受信するよう、少なくとも1つの距離測定を決定するために前記2次元信号を処理するよう、かつ、前記ディスプレイ上に前記ユーザインターフェース機能の前記1次元表示を生成するよう構成されており、前記1次元表示は少なくとも1つの距離測定と一定の極性の関数によって決定された大きさを含む、
データ処理システム。
【請求項50】
前記入力デバイスはマウスである、請求項49記載のデータ処理システム。
【請求項51】
前記入力デバイスはトラックボールである、請求項49記載のデータ処理システム。
【請求項52】
前記入力デバイスはジョイスティックである、請求項49記載のデータ処理システム。
【請求項53】
前記入力デバイスは慣性ポインティングデバイスである、請求項49記載のデータ処理システム。
【請求項54】
前記入力デバイスはビデオゲームコントローラである、請求項49記載のデータ処理システム。
【請求項55】
前記ユーザインターフェース機能はスクロールである、請求項49記載のデータ処理システム。
【請求項56】
前記ユーザインターフェース機能はリストからアイテムを選択することである、請求項49記載のデータ処理システム。
【請求項57】
前記プロセッサは更に、回転方向を確立するように構成されている、請求項49記載のデータ処理システム。
【請求項58】
前記入力デバイスは更に、前記2次元の動きに対応する第2の複数の付加的な2次元信号を生成するために、ユーザによって適応された第2の2次元の動きを受信するように構成されており、かつ、
前記プロセッサは更に、少なくとも1つの付加的距離測定を決定するために前記第2の複数の2次元信号を処理するよう、前記第2の複数の2次元信号に関連づけられた前記回転方向が前記確立された回転方向とは反対であることを判断するよう、かつ、前記ディスプレイ上に前記ユーザインターフェース機能の第2の複数の1次元表示を生成するよう、前記入力デバイスから前記第2の複数の付加的2次元信号を受信するように構成されており、前記第2の1次元表示は少なくとも1つの付加的距離測定と前記一定の極性とは反対の極性の関数として決定される大きさを含む、請求項57記載のデータ処理システム。
【請求項59】
ユーザによって提供された2次元の動きに応答して1次元のユーザインターフェース機能を示すための入力デバイスであって、前記入力デバイスは、
前記2次元の動きに対応する複数の付加的2次元信号を生成するように構成された入力モジュールと、
前記ユーザインターフェース機能の前記1次元表示を生成するように構成された出力モジュールとを含み、前記1次元表示は前記少なくとも1つの距離測定と一定の極性との関数として決定される大きさを含む、
入力デバイス。
【請求項60】
1次元モードと2次元モードとの間の入力デバイスをトグルで切り替えるために、前記処理モードと連通するユーザが動かすことができるモード(ユーザアクチュエータブルモード)のコントローラスイッチを更に含む、請求項59記載の入力デバイス。
【請求項61】
前記プロセッサは更に、回転方向を確立するように構成されている、請求項59記載のデータ処理システム。
【請求項62】
前記入力モジュールは更に、前記ユーザによって提供された第2の2次元の動きに対応する第2の複数の付加的な2次元信号を生成するように構成されており、
前記処理モジュールは更に、少なくとも1つの付加的距離測定を決定するために前記第2の複数の2次元信号を処理するよう、かつ、前記第2の複数の2次元信号に関連づけられた前記回転方向が前記確立された回転方向とは反対であると判断するよう、前記入力デバイスから前記第2の複数の付加的2次元信号を受信するように構成されており、かつ、
前記出力モジュールは、前記ディスプレイ上に前記ユーザインターフェース機能の第2の複数の1次元表示を生成するように構成されており、前記第2の1次元表示は、少なくとも1つの付加的な距離測度および前記一定の極性とは反対の極性の関数として決定される大きさを含む、請求項61記載のデータ処理システム。
【請求項63】
リラモーティブポインティングデバイスの2次元の動きから1次元のユーザインターフェース信号を生成するための方法であって、
2次元の動き測定シーケンスを入力として受信するステップを含み、前記入力の動きの第1部分は前記入力の動きの第2部分によって実質的に対立する方向を含み、
1次元信号シーケンスを出力として生成するステップを含み、各出力信号は少なくとも1つの前記2次元の動き測定の受信と実質的に同時に生成されるものであり、かつ、
各出力信号は共通する極性を有する、
方法。
【請求項64】
各出力信号は、前記同時に受信する動き測定から実質的に決定される大きさを有する、請求項63記載の方法。
【請求項65】
リラモーティブポインティングデバイスの2次元の動きから1次元ユーザインターフェース信号を生成するための方法であって、
2次元の動き測定シーケンスとして入力を受信し、1次元出力信号シーケンスとして出力を生成するステップを含み、各出力信号は少なくとも1つの前記2次元の動き測定と実質的に同時に生成され、かつ、
各出力信号は最近受信した2次元の動き測定によって示された回転方向から実質的に決定された符号を含む、
方法。
【請求項66】
各出力信号は前記同時に受信した動き測定から実質的に決定される大きさを有する、請求項65記載の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【公表番号】特表2007−535726(P2007−535726A)
【公表日】平成19年12月6日(2007.12.6)
【国際特許分類】
【出願番号】特願2006−551417(P2006−551417)
【出願日】平成17年1月25日(2005.1.25)
【国際出願番号】PCT/US2005/002395
【国際公開番号】WO2005/072350
【国際公開日】平成17年8月11日(2005.8.11)
【出願人】(502161508)シナプティクス インコーポレイテッド (18)
【Fターム(参考)】
【公表日】平成19年12月6日(2007.12.6)
【国際特許分類】
【出願日】平成17年1月25日(2005.1.25)
【国際出願番号】PCT/US2005/002395
【国際公開番号】WO2005/072350
【国際公開日】平成17年8月11日(2005.8.11)
【出願人】(502161508)シナプティクス インコーポレイテッド (18)
【Fターム(参考)】
[ Back to top ]