説明

2次元のポインティングデバイスで1次元の信号を生成するための方法及び装置

スクロールあるいはその他のユーザインターフェース機能に適した1次元信号は、タッチパッドあるいはその他の入力デバイスによって作り出された2次元入力に応答して提供される。2次元入力の現在のキラリティ(102)は、2次元入力が主に時計回り軌道を示す場合は第1方向を有し、2次元入力が主に反時計回り軌道を示す場合は第2方向を有するものと判断される。1次元変数(104)は2次元入力によって反映される距離の関数である大きさと、現在のキラリティに基づく符号とを用いて蓄積される。次いで、蓄積された1次元変数から適宜、コンピュータシステムへの1次元入力が抽出されてよい。本文中に説明した方法は形式上のものであり、そのために、同じポインティングデバイスを、2次元と1次元入力の両方に用いることができる。

【発明の詳細な説明】
【関連出願の表示】
【0001】
本出願は2004年1月29日に出願された米国特許出願第60/540,534号の利益を主張し、当該出願は参照のために本文中に組み込まれている。
【技術分野】
【0002】
本発明は2次元のポインティングデバイスを用いてスクロール情報などの1次元データを生成する技術分野に関する。
【背景技術】
【0003】
グラフィカルユーザインターフェース(GUI)はパーソナルコンピュータとのヒューマンインタラクションを行うための標準的パラダイムとなっている。GUIはグラフィック要素を表示するための画面と、そのような要素をポインティングし、選択するためのポインティングデバイスとを含む。最も標準的なGUIグラフィック要素の1つはスクロールバーである。スクロールを使用すると、非常に小さくて全体のドキュメントを一度に見せることができない表示画面上に、大きなドキュメントの特定のセクションを見せることができる。ドキュメントをナビゲーションするほとんどすべてのプログラムは垂直スクロールバーを組み込んでおり、ほとんどが水平スクロールバーを含む。
【0004】
スクロールバーは大きなドキュメントをナビゲートするための標準的な機構となっているが、そのようなスクロールバーを使うには高水準の注意力と器用さとが求められる。また、スクロールは一般に行われている機能であることから、スクロールバーとビジュアルインタラクションを必要とせずに、スクロールに影響を与えるためのスキームを新システムは組み込み済みである。スクロールタスクを簡単にするために最も広く展開されているデバイスはホイールマウスである。ホイールマウスは、通常は左ボタンと右ボタンとの間に取り付けられた戻り止めホイールで標準のコンピュータマウスのポインティング機能を高める。最新のGUIシステムはこのホイールの回転から作り出された信号を用いて、現在のキーボードフォーカスを有するドキュメント、あるいは、ディスプレイカーソルの下にあるドキュメントを垂直にスクロールする。
【0005】
標準のマウスホイールが抱える1つの問題点として、垂直スクロールだけがサポートされている点が挙げられる。このスキームを備えた別の問題点としては、標準の構造ではホイールは遅く回転することしかできず、大きな距離のスクロールには辛うじて有益である。最後に、移動可能なシステムは多くの場合マウスの他にポインティングデバイスを組み込んでおり、そのために、さらに普遍的なスクロール加速メカニズムが望ましい。
【0006】
タッチパッド型デバイスを使用してスクロール機能を実施するために様々な努力がなされている。例えば1つの技術では、ポインティングと“仮想”スクロール機能の両方を実施するために、垂直スクロールおよび水平スクロール専用のパッドの右と下の領域をそれぞれ使用したタッチパッドを用いる。スクロール領域の1つに指が着地(land)し、その領域にとどまると、特定のソフトウェアは、通常のポインティング情報ではなくスクロール情報を生成する。ポインティングの機能は、パッドから指を離す、あるいは離さずにスクロール領域から指を動かすことで元に戻る。タッチパッドデバイス上で実施したスクロールの例示的実装品は米国特許第5,943,052号に説明されている。
【0007】
タッチパッドの仮想スクロールは、垂直と水平スクロールの両方を簡単にする問題の極めて自然な解決法であるが、これは多くの場合、大きな距離をスクロールすることが非効率的であるおそれがあるという、ホイールマウスと同じ問題に悩まされる。この問題を解消する1つの方法(コースティングと呼ぶ)は、この問題の改善に努める。通常、ユーザは、スクロールを初期化し、スクロール領域に並行する指の速度がまだ速い間に次に指をパッドから離すことによって、コースティング機能をアクティブ状態にする。コースティングがアクティブ状態になると、タッチパッドのサブシステムは通常、連続するスクロール信号の流れを生成する。これはパッドを再びタッチすると中断することができる。米国特許第5,943,052号も例示的なコースティングの実装品を示す。
【0008】
コースティングを用いると長距離を非常に速くスクロールできる一方で、多くの実装品では効率的に用いるために相当に器用であることが求められる。更に、各ユーザは通常、そのコースティング速度を個人の好みに一致させる。そのようないずれの個人好みの速度は、あるドキュメントタイプだけにしかうまく機能しないおそれがある。
【0009】
スクロールの別の技術は、ペン型のタッチパッドの一部を“ジョグダイアル”として使用する。ダイアルの中心部の周りのペンの動作はスクロール信号の生成に用いられる。通常、スクロール信号を生成する速度は、ペンがダイアルの中心の周りを移動する際の、ペンが回転する角度の速度に比例する。更なる改良により、回転した角度を求める場合に使用する中心点を動かすことができ、その結果、ペンは自由に円状に動くことができる。
【0010】
ジョグダイアルスクロールはドキュメント内の大きな距離を移動するので、マウスホイールあるいはタッチバッド仮想スクロールよりも大幅に改良されている。しかし、ジョグダイアルの概念は、直線スクロールバーとは概念的に別のものであり、そのために、未経験のユーザにジョグダイアルの用法を教えることは重要である。ジョグダイアルの特許において説明されている特定の実施形態は、ジョグダイアルがパッドの下に示されるよう、タッチパッドを表示画面上に配置している。
【0011】
タッチパッドの仮想スクロールは、GUIスクロールバーと今日のほとんどのポータブルコンピュータに備わっている専用のタッチパッド間の優れた概念マッピングである。ジョグダイアルは現在のタッチパッドスクロールの実装品にいくつかの利点を与えているが、ジョグダイアルは直線のスクロールバーとは概念的に別のものであり、そのために、未経験のユーザには相当な順応性が求められる。従って、概念的には、直線のスクロールバーと互換性があるが、改善された感度とダイナミックレンジを提供する方法とシステムとが求められている。さらに、その他の望ましいフィーチャや特徴は、添付の図面と前述の技術分野および背景技術と併せて、以下の詳細な説明と添付の請求の範囲から明らかになるであろう。
【発明の開示】
【0012】
スクロール信号などの1次元入力を生成するために、2次元のコンピュータポインティングデバイスを使用した方法及びシステムが提供されている。様々な例示的実施形態によれば、コンピュータデバイス上でスクロール機能あるいはその他のユーザインターフェース機能に適した1次元信号は、タッチパッドあるいはその他の入力デバイスによって生成された2次元入力に応答して提供される。2次元入力の現在のキラリティは、2次元入力が主に時計回り軌道を示す場合は第1方向を有し、2次元入力が主に反時計回り軌道を示す場合は第2方向を有するものと判断される。1次元変数は2次元入力によって反映される距離の関数である大きさと、現在のキラリティに基づく符号とを用いて蓄積される。次いで、蓄積された1次元変数から適宜、コンピュータシステムへの1次元入力が抽出されてよい。本文中に説明した方法は形式上のものであり、そのために、同じポインティングデバイスを、2次元と1次元入力の両方に用いることができる。様々な実施形態の別の特徴、あるいは付加的特徴を以下に詳細に説明する。
【0013】
本発明の例示的実施形態を次の図面とともに以下に説明する。同じ参照符号は同様の要素を示す。
【発明の詳細な説明】
【0014】
以下の詳細な説明は事実上、例にすぎず、本発明あるいは本出願、および、本発明の用途を制限することを意図しない。さらに、先行する技術分野、背景技術、要約、あるいは以下の詳細な説明において表現された、あるいは示されたいずれの理論によって拘束することを意図しない。
【0015】
例示的実施形態では、いったん1次元モードに入ると、大きく左に回転する2次元経路(パス)は、1つの極性の1次元信号を生成する。大きく右に回転する2次元パスは、その極性とは反対の極性の1次元信号を生成する。方向を突然反転することで、あるいは、現在優先する方向から反対の方向に十分に回転することで極性を反転することができる。生成された1次元信号の大きさは、移動した2次元パスの長さに適切に比例する。
【0016】
1次元入力モードに入る様々な方法も説明する。1つの例示的方法では、ポインティン-グデバイスが最初にその最右端に隣接する領域に近づき、デバイスを横切る最初の動作がこの端部に並行である場合に、垂直スクロールモードに入る。別の方法では、同様のアプローチと並行移動で、デバイスの最下部に隣接する領域において水平スクロールモードに入る。更に改良した方法では、並行動作の初期速度が臨界速度未満である場合に水平スクロールモードに入る。
【0017】
コンピュータタッチパッドを用いる場合に、本文中に説明する様々な技術を、直線スクロールの延長線上にあるものとして概念化できる。タッチパッドの周辺部に隣接する領域内において、線状に動くことで短距離スクロールを実現できる。周辺部から離れ、曲線パスを動くことで、長距離スクロールを実現できる。本文中に説明した様々な概念、技術、システム、および、構造は、いずれのタイプのポインティングデバイスあるいはその他の入力デバイスに組み込んでよく、そのようなデバイスとしては、どのようなタイプのタッチパッドあるいは実際のあるいは相対の位置、近接性、動作、加速あるいはその他の位置情報を感知できるその他のデバイスが挙げられる。このような、および、様々な実施形態のその他の形態を以下にさらに詳細に説明する。
【0018】
スクロールが特に重要になるのは、グラフィカルユーザインターフェースがある寸法において制限され、他の寸法では制限されていない場合である。通常、制限されている寸法はコンピュータディスプレイに完全にフィットし、一方で、制限されていない寸法はその一部のみが同一の画面にある。多くの言語は左から右の順に読むために、水平寸法ではなく垂直寸法に制限がないことはより一般的である。例えば、文書編集プログラムは、垂直に配置された一連の連続するページとしてドキュメントを次々に表示する。
【0019】
スクロール機能の一般的な動作として、高速ナビゲーションを行とページとの線形空間内でできることが挙げられる。ドキュメントには、それぞれが数十行を含む、数百ページが含まれており、所与の時間で見ることが出来るのはごく一部分であるので、スクロール機能に非常に望まれているのは、大きなダイナミックレンジである。換言すれば、優れたスクロールメカニズムは精密な制御で小さな距離をスクロールでき、また、非常に速く大きな距離をカバーできる。
【0020】
通常、ユーザはスクロール操作をコンピュータのポインティングデバイスに関連づけることを好むが、スクロールのための標準的ダイナミックレンジの要求は、アテンションポイントあるいはカーソルを大きさが固定された2次元表示空間で動かす、ポインティングデバイスに通常関連付けられる2次元操作とは全く一致しない。一般に利用可能なポインティングデバイスは、当然のことながら、ポインティング操作のために最適化されている。この特殊化(最適化)は非常に明らかであり、スクロール操作は多くの場合、例えばマウスホイールなどの、メインのポインティング機能に関連付けられただけの別のハードウェアに組み込まれる。
【0021】
ポインティング操作が通常、スクロール操作よりも微妙なニュアンスがあるものと認められると、この相違は幾分か驚くものである。2次元のポインティングデバイスをスクロールに応用する問題の本質は、大きさが固定された2次元ポインティング空間と、原則的に無限の1次元のスクロール空間との間に直観的マッピングを確立することである。これについて考える1つの方法は、潜在的に無限のスクロール空間を“折り畳む”ことであり、その結果、その空間は大きさが固定された2次元空間に適合する。あるいは、逆に考えると、折り畳まれた2次元パスは曲がっていない状態であり、1次元に沿って置かれている。
【0022】
理想的には、この2次元から1次元へのマッピングは例えば距離や最近の方向の偏位に関する一部分の情報だけを求める。適切なローカルマッピングはタッチバッドなどの絶対モードデバイスやマウスなどのリラモーティブデバイス(相対移動デバイス)に利用できる。同じく理想的には、マッピングは多様な2次元パスを受け入れることができるように、できるだけ一般的でなければならない。特に、理想的なマッピングは直線と回転パスの両方を受け入れなければならず、その理由は、直線動作は通常小さなブレが生じるものと考えられており、回転動作は通常、長い距離の移動に効率的であると考えられているからである。次のセクションのキラルパスマッピングはこのようなパラメータの両方を満たす適切な方法である。
【0023】
キラルパス(Chiral Paths)
【0024】
キラルパスは2次元空間を介した別々のパスであり、パスに沿った各セグメントには2つの可能なキラリティのうちの1つがラベル付けされている。あるセグメントのキラリティは、優勢な、あるいは“優先する”回転方向によって指定される。本文中で用いるために、有機化学用語を用いると、左旋性(L)セグメントは通常、左側回転シーケンスの一部である。右旋性(L)セグメントは通常、右に大きく回転する。例えば、円形のパスが反時計回り(CCW:Counterclockwise)に移動する場合、そのセグメントはLであり、時計回りに移動する場合はDである。
【0025】
キラルパスのセグメントにラベルが付けられると、そのパスを簡単に1次元の出力変数にマッピングできる。キラリティは出力符号を確立するように機能し、移動した距離は大きさを確立するように機能する。従来、Lセグメントは正の出力を生成し、Dのパスは負の出力を生成する。しかし、その他の実施形態では反対の、および/またはいずれのその他のスキームを用いてよい。入力パスの長さから出力の大きさを導き出すことにより、2次元のポインティングデバイスのフルダイナミックレンジは、関連付けられたどの1次元タスクにも影響を与えることができる。
【0026】
図1は24個の入力セグメントS1−S24を備えた例示的なキラルパス100を示す。該図の上部の列には、各セグメントS1−S24に対するキラリティラベル102A−Xの一覧を示す。該図の下部には、例示的にマッピングした1次元の出力変数104A−Xをグラフ表示する。各出力変数104A−Xの大きさを対応する入力セグメントS1−S24の長さに比例して示しており、その符号は入力セグメントのキラリティ102A−Xから決定される。図1に示す2次元パス100は右から左に大きく進行するが、これに対応するキラリティラベル102と出力グラフ104とは左から右に書かれている点に留意されたい。
【0027】
パスセグメントラベリング(path segment labeling)
【0028】
1次元のユーザ入力タスクに効率的であって、かつ、自然に満足のいく直感的な(naturally comfortable and intuitive)キラルパスラベリングを確立することが主要な課題である。効率性のために、突然の2次元方向の反転が確実にキラリティを反転させ、かつ、対応する出力変数符号を変化させることが望ましい。例えば、図1の(102K対102Lに明らかなように)セグメントS11とS12との間に発生する突然の反転により、 “左旋性”から“右旋性”へ現在のキラリティ102を変化させ、それに対応して、(104K対104Lに明らかなように)出力変数104の符号を変化させる。しかし、原則的に“無限の”出力変数を有限の2次元空間から生成するという所望の目的を達成することができるよう、それほど突然でない反転はキラリティを反転させないことも望ましい。このような相反する要件は、実際の入力を意図するアクションに合わせる際の典型的なユーザの不正確さと、ポインティングデバイス自体の欠点によって生じる更なる予測できない不安定さとともに、純粋な局所軌道情報からユーザの意思を完全に反映させることを困難にしている。
【0029】
幸運にも、部分的なキラリティトラッキングにおける小さな誤差は1次元ユーザインターフェース操作の大部分で許容される。しかし、特定の方向に連続して進むには、優先する回転方向に確実にキラリティラベリング102を並べなければならないと通常のユーザは予測する。一時的にキラリティの配列をミスした場合、配列ミスの間に最小の出力大きさ104でそのようなミスを比較的速く修正しなければならない。
【0030】
概略進行方向(approximate heading)の追跡によるキラリティの推定
【0031】
図2を参照すると、コンピュータ的にシンプルさを維持しながら矛盾要件を十分に満足させるキラリティラベル102を生成する1つの方法は、比較的粗いパス100の概略進行方向を部分的に追跡することに基づくものである。このスキームでは、維持されている概略進行方向を、特定の次の値、あるいは現在優先されているキラリティに基づく“バケット”だけに採用することができる。したがって、概略進行方向が、1つのバケットから隣り合う別のバケットへ、現在優先されているキラリティ方向に進む場合、次のプロセスのための現在のキラリティラベリングを維持する。
【0032】
現在優先するキラリティの方向だけに概略進行方向を進めることにより、潜在性のある局所的なキラリティの不正確さを修正するために、同様の基本メカニズムを用いることができる。このキラリティロック(chirality locking)を用いると、2つの正反対のバケットにまたがり、現在のキラリティの反対の方向の介在するバケット中への実質的な逸脱を含む軌道セグメントシーケンスもキラリティの反転を伝える。実質的に、キラリティがロックされた概略進行方向を突然変化させるどの軌道も、キラリティラベルングの現在の極性を反転させるための信号である。つまり、パス100の実際のヘディング206が現在のキラリティとは一貫性のない方向に進むと、次のキラリティ208は最後の一貫性のある値において“ロック”される。
【0033】
コンパスで位置合せした、4つの概略進行方向(“N”、“S”、“E”および“W”)を用いた概略進行方向のキラリティラベリングの例を図2に示す。例示の軌道は図面の右端近くの北から開始する。対応の、概略進行方向とキラリティラベルは図面の上部において、左から右に書かれている。便宜上、本例を4つの標準方向に対して名付けられた4つのバケットを用いているが、別の実施形態ではいずれの方法で配置され、あるいは記述されるいずれの数のバケットあるいはカテゴリーを用いてよい。
【0034】
図2において、最初のパスセグメントS1は、例えば、タッチパッドの右端から開始する垂直スクロールに対応して、反時計回り(あるいは“L”で示される“左旋性”)である。パスの方向は北から西、南、東、北へと進むので、図面の第1行に示す概略進行方向はそれとともに進む。方向の突然の反転(北から南)はセグメントS11とS12との間で起こり、上述したように、対応するキラリティ102と出力符号を反転させる。セグメントS12から開始する優先されたキラリティは、現在のところ時計回り(あるいは、“D”で示される“右旋性”)であり、概略進行方向は現在のところ南から西、北、西へと進む。しかし、ロックされた方位208はL方向へは進まないので、北から西へ最終的に進行しない。北から西への移動は上述したように突然の“反転”ではないものの、現在優先されている“D”キラリティと一貫性がないために、このようなロックが生じる。次に、概略進行方向がセグメントS23においてSに進むと、ロックされた方位208(依然としてNである)は208Wにおいて完全に反転し、その結果、キラリティ102が変化し、出力変数104の符号が反転する。要約すると、大きく対向する2つのバケット間において、間にあるバケットが実質的に脱線せずに(例えば、北から南)概略進行方向206が進行すると、突然の軌道の反転を適切に示し、一方で対向するバケット間のロックされた方位208の進行は、段階的な軌道の反転と対応するキラリティ102の変化を適切に示す。
【0035】
四象限キラルの検出(four quadrant chiral sensing)
【0036】
上述した、例示の4つの概略進行方向キラリティの検出法についてのフローチャートを図3に示す。この方法(“キラルセンス”)は、位置センサーなどから最後の動作レポートを取得後、その入力をxとy方向に移動した距離とみなす。現在の概略進行方向に依存し、方位バケット方向の移動コンポーネントが検査される。このコンポーネントが現在の概略進行方向に対して十分に反対の方向であると、現在のキラリティと方位バケットは反転する。そうでない場合、移動方向が現在の概略進行方向よりも旋回方向において隣り合う概略進行に十分に近い場合は、概略進行方向は進みうる。比較の程度によって、概略進行方向を回転させる、あるいは現在のキラリティの方向に進めることができる点に留意されたい。現在のキラリティとは反対方向へ進むことはできない。図3に示す様々な処理パラメータ(例えば、“Q”、“T”)を以下の表1および2においてより詳細に説明する。
【0037】
図3のキラリティ検出関数と互換性がある例示的な“リバース(反転)”関数を図4に示す。このリバース関数は現在のキラリティと近似ヘディングとを適宜反転させる。まず、キラリティ状態変数cの符号を反転する。次に、現在の概略進行方向を含む状態変数hを現在の方向とは反対に移動する方向に更新する。
【0038】
同様に図5は、図3に示すキラリティ検出関数と互換性のある例示的“プログレス”関数を示す。図5のプログレス関数は現在のキラリティ方向に現在の概略進行方向を進行させる。まず、その隣接するバケットのどちらか一方から選択するよう、現在の方位バケットを用いる。次に、進行を優先する方向を向いた隣接するバケットを選択するよう、現在のキラリティを用いる。
【0039】
図3から5は位置センサーなどから取得した動作レポートから導き出された情報に基づいて現在のキラリティを判断する1つの例示的技術を示す。しかし、同様の概念を実装するために、様々な等価の実施形態は多種多様なルーチンを用いてよい。
【0040】
出力変数の累積
【0041】
キラルマッピングした出力変数によって橋渡しされた空間は非常に広いので、それを生成するために用いるメカニズムが幅広いダイナミックレンジをカバーすることが望ましい。標準の2次元ポインティングデバイスは既に幅広いダイナミックレンジを有しているので、移動した入力距離から出力変数の大きさを導き出すことが望ましい。これを実現するための1つの簡単な方法として、入力動作レポートの大きさを出力アキュムレータに合計することが挙げられる。特定の振幅関数(magnitude function)を用いなければいけないわけではない。ユークリッド幾何学および直線測定は同様の結果をもたらす。
【0042】
簡単な距離測定を向上させるスキームは、キラル符号の取扱いに用いた周知の概略進行方向を利用する。基本となる概念は、蓄積した距離が現在の概略進行方向の方向に移動した距離に偏っていなければならないことである。これを実現するための簡単な方法として、現在の概略進行方向のドット積を現在の入力パスセグメントとともに蓄積することである。
【0043】
ドット積は2つの方法で標準の距離関数を改善する。まず、キラリティが一時的にユーザの意思からずれた場合、ドット積を累積することによって、このずれの間に出力変数の大きさを最小に抑えるよう支援する。例えば、図2のセグメントS21−23は西方向の移動206に大いに対応する。しかし、前の移動で右旋性のキラリティロック208が生じ、これにより、概略進行方向がたとえ大きく西方向に向かった移動であっても、北を越えて移動することを妨げる。北方向の概略進行方向ベクトルは、西方向のパスセグメントとともに比較的小さなドット積を作り出すので、方向が北から南へ変化するインターバル中に蓄積される出力は最小に抑えられる。偶然にも、このインターバルは通常、ユーザの意図が曖昧な期間と一致する。
【0044】
ドット積の第2の利点をタッチパッドなどの比較的ノイズが多い入力デバイスに適用する。ユーザが一時的に単一の位置にいる場合、2次元の入力デルタは、単に環境性外乱、あるいは測定装置の欠陥のために、ゼロを中心に変動するおそれがある。ドット積は符号の付いた量であることから、入力ノイズによるブレは出力アキュムレータにおいて合計されると、相殺される傾向にある。
【0045】
図6は、概略進行方向のドット積を蓄積するために適した1つの技術のフローチャートを示す。概略進行方向は軸的に位置決めされていると定義されるので、ただ適切な入力コンポーネントを選択するだけでドット積を形成できる。使用すべき入力コンポーネントと符号とを選択するために現在の概略進行方向を用いる。蓄積する間、基本の利得係数Gを適用することもできる。蓄積された値の符号は現在のキラリティと蓄積された入力コンポーネントの符号の両方に依存する点に留意されたい。
【0046】
整数出力単位の抽出(integral output unit extraction)
【0047】
多くの入力デバイスにとって、最小解像度の入力移動が一単位の出力動作(モーション)を生成することであると仮定すると、出力速度は実際的に有益なものよりもずっと速いものであろう。このようなデバイスに対して、積分ユニットが利用可能となるまで端数の出力ユニット(fractional output unit)を蓄積することが有益である。それらが利用可能になると、積分ユニットは出力アキュムレータから抽出されてスクロールのバックエンドに運ばれ、余った端数は保持される。
【0048】
図7は端数のアキュムレータから整数単位を抽出するために1つの適切な技術のためのフローチャートを示す。アキュムレータの符号を検査し、それがいくつの整数単位を含んでいるかを判断する。正の場合は、分数の分母で割ったアキュムレータの下限(floor)が取り出される。負の場合は、商の上限(ceiling)取り出される。取り出された部分に除数で掛け算をしたものをアキュムレータから引いて、余りが出る。別の実施形態では、アキュムレータから1次元の信号を抽出するために別の技術を用いてよい。
【0049】
非線形出力の弾道学
【0050】
変数のダイナミックレンジを拡張する1つの技術は、非線形の拡張である。入力値の値域をより大きな出力値の値域にマッピングするものが非線形マッピング機能である。図8は整数入力とともに用いるために設計された指数関数の非線形マッピング関数を示す。入力がゼロの場合、出力はゼロである。そうでない場合、出力は入力のサインに、基底の、入力の絶対値から1を引いたもののベキ乗を乗じたものとなる。ユーザ入力エレメントの動作に関連付けられた変数を適用する場合、非線形拡張関数を弾道学関数と呼ぶことがある。この特定の弾道学関数は潜在的に非常に拡張的であり、非常の大きな出力空間をナビゲートする必要がある場合に用いてよい。弾道学関数は実質的に、実装品によって異なってよいが、すべての実施形態で要求される訳ではない。
【0051】
キラルスクロールの例示的な実施形態
【0052】
図9は、ラップトップコンピュータタッチパッドあるいはその他のデバイス上の入力動作からスクロールを行うのに適した1次元の出力変数を生成するための例示的な方法900を示す。まず、キラリティ検出関数902は上述した1次元出力104が示したスクロール方向を確立する。次に、蓄積関数904を介して端数出力単位を蓄積し、その後に抽出関数906を用いて整数出力単位を抽出する。最後に、弾道学関数908は出力変数のダイナミックレンジをスクロールに適切になるまで拡張する。
【0053】
キラリティ検出関数902、蓄積関数904、抽出関数906、および弾道学関数908を上述の図3から図8に説明した技術を用いて実施する。別の実施形態では、関数902から908のいくつかあるいはすべてを、別のあるいは追加の技術とともに実施して良い。以下の表には、方法900の一実施形態で用いられる様々な状態を表すための例示的変数を示す。
【表1】

【表2】

【0054】
表1は図9の方法900の様々なサブ関数によって維持される状態変数を要約したものである。表2はカリフォルニア州サンノゼのSYNAPTICS INC.から入手可能なCPADブランドタッチパッド製品を使用して該方法を用いた場合の様々なフリーパラメータの例示的値を示す。しかし、このようなパラメータは別の実施形態では大きく異なってよい。図9は、単一方向におけるスクロールを言及しているが、実際には、垂直および水平スクロールユニットを生成するために同じ方法を用いてよい。次のセクションでは、スクロールさせる軸を決定するための例示的方法を説明する。
【0055】
モーダルインテント(modal intent)
【0056】
時間が同一のハードウェアを概念的には別のタスクに多重化するデバイスをモーダルデバイスと呼ぶことが多い。まずオペレーションのセパレートモードに入ることで、モーダルデバイスに求められる各タスクを達成する。特定のモードに入るために実施される一連のオペレーションを、モーダルエントリシグナチャ(modal entry signature)と呼ぶ。
【0057】
モーダルシグナチャを考案するうえでの主要な問題は、デバイスが実施する様々な機能を自然に確実に切り離すことである。特定のモードに入ることから、そのモードに関連づけられたタスクを実行するまでをスムーズにブレンドしたものがナチュラルモーダルシグナチャである。別のモードにおいて、通常のアクティビティと決して混同しない、あるいは、めったに混同しないものが非常に信頼できるモーダルシグナチャである。
【0058】
いくつかの利用可能なもののうち、シングルモードのオペレーションが選ばれることが多いので、選ばれたオペレーションには、極めて単純なモーダルエントリシグナチャを割当てることが多い。つまり、最も一般的に用いられるモードは通常、ユーザが比較的実施し易いモーダルエントリシグナチャに割当てられる。選ばれたオペレーションモードはホームモードと呼ばれ、そのモーダルエントリシグナチャはホーミングシグナチャと呼ばれる。いずれのモーダルエントリシグナチャと同様、ホーミングシグナチャは自然であり確実であることが所望される。
【0059】
タッチパッドスクロールのためのモーダルシグナチャ
【0060】
非常に確実なタッチパッドホーミングシグナチャは、パッドから指あるいはスタイラス(stylus)を外すことである。キラルスクロール技術と組み合わせると、このシグナチャはとりわけ自然である。パッドに(それらが)近づく度に、ポインティングがデフォルトオペレーションとなる。一旦スクロールモードに入ると、指がパッドを離れるまでそのモードは適切に続く。
【0061】
長方形のタッチパッド1000での使用に適した、例示的な水平および垂直スクロールエントリシグナチャを図10に示す。図面において、第1のスクロールエントリシグナチャ部分はランディングゾーンであり、ここは、パッドへの初期アプローチ領域である。第2のシグナチャ部分は移動の初期方向である。第3部分は移動の初期速度である。
【0062】
図10において、パッド周辺部1005と、内側に描かれた隣接する実線は例示的なランディングゾーン1002および1004を描く。矢印のついた実線はベクトルとして示される、潜在的な初期移動方向を示す。各ベクトルの矢印の長さは、初期速度を示し、矢印の方向は移動方向を示す。図10に示す実施形態では、いくつかの初期移動の方向と速度だけがスクロールエントリシグナチャ内で有効である。スクロールのためのベクトル値を、ベクトル1006、1010、1012、及び1016として図10に示す。ポインティングインテントをデフォルト設定するベクトルを、ベクトル1008と1014としてグループ化する。図10は1つの実施形態を例示しており、別の実施形態では大幅に異なってよい。
【0063】
ナチュラルランディングゾーン1002は、垂直スクロールのために、右端の周辺部1005に近接しており、その理由は、この位置はコンピュータディスプレイ上の、デフォルト設定のスクロールバーをうまくマッピングするからである。垂直スクロールを示すための自然な初期動作方向は、ベクトル1006および1010に示すように、右端に沿ったものである。このイベントの組合せはポインティングにはめったに用いられないので、通常、垂直スクロールエントリシグナチャ上に初期速度の制約を設ける必要はない。従って、図10において、適切に方向づけられた全ての初期動作ベクトル1006および1010は、初期速度に関係なく、様々な実施形態において許容されるものとしてマークされてよい。同様に、その他のベクトル1008(例えば、周辺部1005から離れてポインティングするベクトル)は許容できないものとしてマークされる。
【0064】
ナチュラルランディングゾーン1004は、水平スクロールのために、周辺部1005の一番下にあり、自然な最初の動作方向はその端部に沿ったものである。パッドの下端に平行な速い動作は、ポインティングインテントと関連付けられていることが多いので、確実な水平エントリシグナチャは初期速度が制限されていてもよい。例えば、図10において、より短く、適切に方向づけられたベクトル(例えば、ベクトル1012および1016)だけがスクロールすることができる。初期速度がより大きいことを示す、より長いベクトルは、ポインティングデバイスに関連付けられる可能性が高く、そのようなデバイスは、スクロールできないベクトル1014内に含まれる。
【0065】
タッチパッドモーダルシグナチャの検出
【0066】
図11は、絶対モードのタッチパッドから入力ストリームを検査し、モーダルエントリシグナチャを抽出する例示的技術を示す。状態変数の値に応じて、位置レポートがポインティングあるいはスクロールのどちらかにディスパッチされる(送られる)。スクロールに送られたレポートはまず、図9のようなScroll()メソッドを通じて通過し、利用可能な2次元の位置情報をスクロールに適した1次元変数に変換する。図11のPoint()、ScrollHorizontal()、及び、ScrollVertical()メソッドは、例示的なモーダルディスパッチルーチンを表し、ポインティング、水平スクロール、垂直スクロールをそれぞれ実現するために、いずれの従来のルーチンを用いて実装することができる。
【0067】
図11の状態変数mは、Land()およびDiscriminate()メソッドによって適切に取り扱われる。それらの例を図12および図13にそれぞれ示す。Land()は、指が最初にタッチパッドにアプローチする場所をモニタリングする義務がある。Discriminate()は、動作の最初の方向と速度とを検査する義務がある。mは最初、ポインティングに入力レポートを送ることに対応して、Pの状態にある。
【0068】
図12のLand()メソッドの最初のタスクは、パッド上に指があるかないかを判断することである。タッチパッドによってレポートされたz値が、指がある場合の閾値Fを下回る場合に、mがまだPの状態でないと、mはPの状態に反転する。パッド上の指が垂直あるいは水平スクロールランディングゾーンのどちらかにある場合、状態変数1に記録された前のz値は、フィンガーアライバルイベント(finger arrival event)がすでに発生したかどうかを判断する。最終レポートが指を示さず、最新のレポートが指を示す場合、mは一時的なスクロール状態Tに変わる。
【0069】
図13のDiscriminate()メソッドは、mがTの状態にある場合だけ呼び出され、その結果、スクロールランディングゾーンへ初期アプローチが行われたことを示す。初期アプローチゾーンに応じて、そのゾーンの初期速度が分析され、そのゾーンと位置調整が行われる。これは、そのゾーンに平行な速度コンポーネントをそのゾーンに垂直なコンポーネントと比較することで実現される。平行コンポーネントの大きさが、調整因子(alignment factor)Aで掛け算をした垂直コンポーネントよりも大きい場合、初期速度はそのゾーンに十分平行であると判断される。この比較で用いた垂直コンポーネントは符号が付けられ、その結果、パッドの中心部よりもパッドの周辺に向かういずれの最初の動作は、そのゾーンに十分平行であると判断される。
【0070】
最初のアプローチが垂直スクロールゾーンに向かい、その垂直スクロールゾーン内の初期速度がそのゾーンに十分に平行であると判断されると、mは直接的に垂直スクロール状態Vに変わる。しかし、検出すべき水平スクロールシグナチャのために、まず初期速度が最大速度Sと比較される。この比較が成功すると、mは水平スクロール状態Hへと変わる。いずれのスクロール許容テストが失敗すると、mはPに戻る。
【表3】

【0071】
モーダルシグナチャ検出関数によって維持されている状態変数を表3に要約する。表4は上述したCPADブランドデバイスとともにシグナチャを用いる場合に、様々なフリーパラメータの例示的値を示す。しかし、別の実装品では異なる値を用いてよい。表4に示す指の閾値は、絶対モードの場合にCPADデバイスがレポートする任意のユニット(単位)である。ランディングゾーンの評価基準もデバイスがレポートする任意の単位である。速度を任意のタッチパッド単位/秒で示す。
【表4】

【0072】
上記に説明した概念と技術とを用いると、位置センサーあるいはその他のデバイスから取得した2次元入力を、スクロールあるいはその他のユーザインターフェース機能を導くことに適した、有意義な1次元信号に変換することができる。前述の詳細な説明で、少なくとも1つの実施形態を示したが、多数の様々な実施形態があってよいことは明らかである。更に、例示の実施形態は単なる例であり、どのような方法でも本発明の範囲、利用可能性、あるいは構造を限定するものではないことは明らかであろう。むしろ、前述の詳細な説明は当業者たちに、例示的実施形態を実装するための便利なロードマップを提供する。機能や要素の配置に関して、添付の請求項に説明した発明の範囲、およびそれらの法的な等価性から逸れることなく様々な変化がなされることが理解される。
【図面の簡単な説明】
【0073】
【図1】2次元のポインティング情報を1次元のスクロール情報に変換するための例示的技術の説明図。
【図2】キラルパスの現在のキラリティをキラルロックされた概略進行方向を介して維持するための例示的技術の説明図。
【図3】キラル状態を維持するための例示的技術のフローチャート。
【図4】概略進行方向の方向を反転させるための例示的技術のフローチャート。
【図5】概略進行方向をキラル状態に調整した方向だけに進めるための例示的技術を示したフローチャート。
【図6】近似するキラルパスの長さから分数スクロール情報を蓄積するための例示的技術を示したフローチャート。
【図7】わずかなスクロール情報から整数スクロールユニットを抽出するための例示的技術を示したフローチャート。
【図8】抽出したスクロールユニットのダイナミックレンジを非線形拡張する例示的技術を示したフローチャート。
【図9】2つのポインティング次元の相対変化をスクロール単位に変換するための例示的な全体の流れを示したフローチャート。
【図10】ポインティングをスクロールから離すための例示的な識別シグナチャの説明図。
【図11】一時的にスクロールを受け入れる方法で、ポインティング器具の初期位置を用いるための例示的技術を示すフローチャート。
【図12】ポインティング用器具の初期速度と軌道とを用いて、ポインティングインテントをスクロールインテントと識別するための例示的技術を示したフローチャート。
【図13】ポインティングデータをモニタリングし、そのデータをポインティングまたはスクロールに用いるかどうかを判断するための例示的な全体の流れを示した説明図。

【特許請求の範囲】
【請求項1】
各々が実質的に距離と軌道とに対応する2次元入力セットを、コンピュータシステムのための1次元入力セットに変換する方法であって、
前記2次元入力セットの現在のキラリティを判断するステップであって、前記現在のキラリティは、前記2次元入力セットが主に時計回り軌道を示す場合は第1方向を有し、前記2次元入力セットが主に反時計回り軌道を示す場合は第2方向を有するものであるステップと、
前記2次元入力セットの距離の関数である大きさと、前記現在のキラリティに基づく符号とを有する1次元変数を蓄積するステップと、
少なくとも前記蓄積した1次元変数の一部を、前記コンピュータシステムのための前記1次元入力セットの少なくとも1つとして抽出するステップと、
を含む方法。
【請求項2】
前記判断するステップは、前記軌道が実質的に変化しない場合に、前記現在のキラリティの方向を維持するステップを含む、請求項1記載の方法。
【請求項3】
前記判断するステップは、前記軌道が実質的に反転する場合に、現在のキラリティの方向を反転させるステップを含む、請求項1記載の方法。
【請求項4】
前記判断するステップは、前記軌道が突然反転する場合に現在のキラリティの方向を反転させるステップを含む、請求項1記載の方法。
【請求項5】
前記判断するステップは、前記2次元入力の現在の軌道を、複数の方向のうちの1つに実質的に沿っているものとして分類するステップを含む、請求項1記載の方法。
【請求項6】
前記複数の方向の各々は、前記複数の方向と反対の方向に関連づけられる、請求項5記載の方法。
【請求項7】
前記判断するステップはさらに、現在の軌道が、前記複数の方向の1つに沿ったものから、前記複数の方向の1つとは反対方向に移り変わるのを確認するために、現在の軌道をモニタリングするステップと、それに応答して現在のキラリティを反転させるステップとをさらに含む、請求項6記載の方法。
【請求項8】
前記判断するステップはさらに、前記軌道が現在のキラリティに従って進み続ける場合に、前記複数の方向のうちの第1の方向から、前記複数の方向のうちの第2の方向へ進むステップを含む、請求項7記載の方法。
【請求項9】
前記判断するステップはさらに、前記現在のキラリティに従わない方向に前記軌道が進み続ける場合に、前記複数の方向からロックした方向を維持するステップを含む、請求項7記載の方法。
【請求項10】
前記判断するステップはさらに、前記軌道が前記ロックした方向の反対方向に変わる場合に、前記現在のキラリティを反転させるステップを含む、請求項9記載の方法。
【請求項11】
前記関数はゲインを適用するステップを含む、請求項1記載の方法。
【請求項12】
前記抽出するステップは、前記蓄積した1次元変数の整数部分を前記1次元入力として取り出すステップを含む、請求項1記載の方法。
【請求項13】
前記抽出するステップは更に、前記抽出した部分に弾道学関数を適用し、前記コンピュータシステムに前記1次元入力の前記ダイナミックレンジを拡張するステップを含む、請求項1記載の方法。
【請求項14】
前記弾道学関数は非線形関数である、請求項13記載の方法。
【請求項15】
前記非線形関数は指数関数を含む、請求項14記載の方法。
【請求項16】
2次元から1次元の変換モードに入るステップをさらに含む、請求項1記載の方法。
【請求項17】
前記一連の2次元入力の各々は、周辺部を有する検出領域を有するポインティングデバイスから受信される、請求項1記載の方法。
【請求項18】
前記1次元変換モードに入るステップは、
前記検出領域周辺部に最も近い領域のポインティングデバイスへのアプローチを識別するステップと、
前記アプローチに続く初期動作を識別するステップとを含み、前記初期動作は前記周辺部に実質的に平行な方向の検出領域の少なくとも一部を超えて進む、請求項17記載の方法。
【請求項19】
前記1次元変換モードに入るステップはさらに、前記周辺部に平行な前記初期動作の初期速度が閾値以下であることを証明するステップを含む、請求項18記載の方法。
【請求項20】
前記1次元変換モードに入るステップは、前記検出領域の周辺部に最も近い第1領域への初期アプローチと、前記検出領域の周辺部に最も近い第1領域内の初期動作の検出に応答して、コンピュータシステムの第1ユーザインターフェース関連機能を提供するステップを含む、請求項17記載の方法。
【請求項21】
前記1次元変換モードに入るステップはさらに、前記検出領域の周辺部に最も近い第2領域への初期アプローチと、前記検出領域の周辺部に最も近い第2領域内の初期動作の検出に応答して、コンピュータシステムの第2ユーザインターフェース関連機能を提供するステップを含む、請求項20記載の方法。
【請求項22】
前記第1領域は前記検出領域の右端に最も近く、前記第1ユーザインターフェース関連機能は垂直スクロールであり、前記第2領域は前記検出領域の下端に最も近く、前記第2ユーザインターフェース関連機能は水平スクロールである、請求項21記載の方法。
【請求項23】
前記1次元変換モードに入るステップは、前記第2領域内の制限された初期速度への初期アプローチと、前記第2領域内の贅言された初期速度での初期動作の検出に応答して、コンピュータシステムの第2ユーザインターフェース関連機能を提供するステップを含む、請求項21記載の方法。
【請求項24】
前記ポインティングデバイスはタッチセンサーである、請求項17記載の方法。
【請求項25】
前記タッチセンサーはタッチパッドである、請求項24記載の方法。
【請求項26】
各2次元入力が実質的に距離と軌道とに対応する2次元入力セットを、コンピュータシステムの1次元入力セットに変換するデバイスであって、
前記2次元入力セットの現在のキラリティを判断する手段であって、前記現在のキラリティは、前記2次元入力セットが主に時計回り軌道を示す場合は第1方向を、前記2次元入力が主に反時計回り軌道を示す場合は第2方向を有するものであるところの手段と、
前記一連の2次元入力の距離の関数である大きさと、前記現在のキラリティに基づく符号とを有する1次元変数を蓄積する手段と、
少なくとも前記蓄積した1次元変数の一部を、前記コンピュータシステムの前記一連の1次元入力の少なくとも1つとして抽出する手段と、
を備えるデバイス。
【請求項27】
周辺部を有するタッチセンサーを備えたコンピュータシステムのスクロール機能を指示する方法であって、
前記周辺部に最も近い領域の前記タッチセンサーへの初期アプローチと、前記周辺部と実質的に平行方向の前記タッチパッドの少なくとも一部に沿った第1移動とを検出するステップと、
前記周辺部から離れた方向の前記タッチセンサーを横切る距離の次の移動に応じて、前記コンピュータシステム上のスクロール量を導き出すステップとを含み、前記スクロール量は前記距離の関数として決定される、
方法。
【請求項28】
前記距離は前記次の移動中に移動した前記タッチセンサー上の少なくとも一部のパスに基づく、請求項27記載の方法。
【請求項29】
前記第1の移動速度はしきい速度以下である、請求項27記載の方法。
【請求項30】
第1スクロール機能は、前記周辺部に最も近い領域内の第1の移動に応答して提供される、請求項27記載の方法。
【請求項31】
第1スクロール機能は前記周辺部に最も近い第1領域内の第1の移動に応答して提供され、第2スクロール機能は、前記周辺部に最も近い第2領域内の第1の移動に応答して提供される、請求項27記載の方法。
【請求項32】
第1スクロール機能は前記周辺部に最も近い第1領域内の第1の移動に応答して提供され、第2スクロール機能は前記周辺部に最も近い第2領域内の初期速度が制限された第1の移動に応答して提供される、請求項27記載の方法。
【請求項33】
前記第1領域は前記タッチパッドの右端部に対応し、前記第1スクロール機能は垂直スクロールであり、前記第2領域は前記タッチパッドの下端部に対応し、前記第2スクロール機能は水平スクロールである、請求項32記載の方法。
【請求項34】
前記実施されたスクロールは前記タッチパッドを横切る移動のキラリティの関数として判断された方向を有する、請求項27記載の方法。
【請求項35】
前記キラリティは、前記タッチパッドを横切る前記次の移動が主に時計回りである場合は第1方向を有し、前記タッチパッドを横切る次の移動が主に反時計回りである場合は第2方向を有する、請求項34記載の方法。
【請求項36】
電子デバイスへの2次元入力を1次元入力に変換する方法であって、
前記2次元入力に対して近接する2次元方向を決定するステップと、
前記2次元入力の現在のキラリティを前記近接する2次元方向の変化の関数としてコンピュータ計算するステップであって、前記現在のキラリティは複数の方向のうちの1つを有し、前記複数の方向は少なくとも第1の方向と第2の方向とを含み、各々は関連づけられた角度方向と関連付けられた反対角度方向を有しているステップと、
前記近接する2次元方位を前記現在のキラリティに関連づけられた前記角度方向に進めることを許可し、一方で、前記概略進行方向が、前記2次元入力と同時に発生する方向に応答して前記現在のキラリティに関連づけられた前記反対の角度方向に進むことを妨げるステップと、
前記同時に発生した2次元動作方向が実質的に前記概略進行方向と反対である場合に、前記近似する2次元方位と前記現在のキラリティとを反転させるステップと、
前記概略進行方向の方向に前記2次元入力によって移動された距離により増加し、前記概略進行方向は反対の方向に前記2次元入力によって移動された距離によって減少する1次元出力変数を蓄積するステップと、
前記現在のキラリティが第1の方向である場合に前記蓄積した出力変数に第1符号を割り当て、前記現在のキラリティが反対の方向である場合に前記蓄積した出力変数に第2符号を割当てるステップと、
前記蓄積した1次元出力変数の一部を定期的に抽出し、前記抽出した部分を1次元入力として前記コンピュータシステムに送るステップと、
を含む方法。
【請求項37】
タッチセンサー上のユーザの指の動きに応答して、コンピュータシステム上にスクロール機能を提供する方法であって、
最初に前記タッチセンサーの周辺部付近の領域において前記タッチセンサーをタッチするステップと、
次に前記タッチパッドの周辺部に沿って前記指を動かすステップと、
前記周辺部から離れた方向に前記タッチセンサーを横切る前記指の次の動作を提供するステップとを含み、前記コンピュータシステム上で生成されたスクロール量は前記次の動作で移動した距離の関数として決定される、
方法。
【請求項38】
前記コンピュータシステム上に生成されたスクロールの前記方向は、前記タッチセンサー上のユーザの指の動きが主に時計回りである場合は第1方向であり、前記ユーザの指の動きが主に反時計回りである場合は反対方向である、請求項37記載の方法。
【請求項39】
2次元入力パスに応答してコンピュータシステムのための1次元入力セットを提供するデバイスであって、
2次元入力セットを提供するよう構成されたタッチセンサーであって、前記2次元入力の各々は、方位と方向とを備えた前記2次元入力パスのセグメントに対応しているタッチセンサーと、
前記2次元入力セットの現在のキラリティを判断し、前記2次元入力の距離の関数である大きさと、前記現在のキラリティに基づく符号とを有する1次元変数を蓄積し、かつ、前記蓄積された1次元変数の少なくとも一部を、前記コンピュータシステムのための前記1次元入力セットの少なくとも1つとして抽出するために、前記2次元入力セットを受信するように構成されたプロセッサを含む、
デバイス。
【請求項40】
前記現在のキラリティは、前記2次元パスが主に時計回り軌道を示す場合は第1方向を有し、前記2次元パスが主に半時計回り軌道を示す場合は第2方向を有する、請求項39記載のデバイス。
【請求項41】
前記タッチセンサーはタッチパッドである、請求項39記載のデバイス。
【請求項42】
前記タッチセンサーは容量タッチセンサーである、請求項39記載のデバイス。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公表番号】特表2007−525749(P2007−525749A)
【公表日】平成19年9月6日(2007.9.6)
【国際特許分類】
【出願番号】特願2006−551489(P2006−551489)
【出願日】平成17年1月28日(2005.1.28)
【国際出願番号】PCT/US2005/002676
【国際公開番号】WO2005/073954
【国際公開日】平成17年8月11日(2005.8.11)
【出願人】(502161508)シナプティクス インコーポレイテッド (18)
【Fターム(参考)】