(57)【要約】１次元のＧＵＩ信号を２次元のマウスの動きから生成するための様々な方法が開示されている。該方法はモードを有してもよく、２次元と１次元のタスクでマウスの使用を可能にする。境界のある２次元領域に残り、ポインティング表面から出ずに、１つの１次元のモードの呼び出し内で、どちらか一方の極性を持つ境界のない信号が、単一の１次元の様式的な呼び出しにおいて生成されてよい。生成された１次元信号の大きさは、マウスが移動した２次元距離に比例するものである。
2007535726.tif 000002
【特許請求の範囲】
【請求項１】
入力デバイスによって検出された動きに基づき、所望のユーザインターフェースナビゲーションタスクを示すための方法であって、前記動きは第１方向を有する第１セクションと前記第１方向とは実質的に反対の第２方向を有する第２セクションを含み、前記方法は、
２次元信号のシーケンスを受信するステップであって、第１の複数の２次元信号は前記第１セクションの動きに対応し、第２の複数の２次元信号は前記第２セクションの動きに対応するステップと、
距離測定を決定するために前記２次元信号のシーケンスの少なくとも一部を処理するステップと、
前記所望のユーザインターフェースナビゲーションタスクを示すために複数の１次元出力信号を提供するステップとを含み、前記複数の１次元出力信号の各々は、
前記２次元信号の少なくとも１つに応答して提供され、
前記距離測定の少なくとも一部に基づいた大きさを有し、さらに、
共通の極性を有する、
方法。
【請求項２】
前記入力デバイスはマウスである、請求項１記載の方法。
【請求項３】
前記入力デバイスはトラックボールである、請求項１記載の方法。
【請求項４】
前記入力デバイスはジョイスティックである、請求項１記載の方法。
【請求項５】
前記入力デバイスは慣性ポインティングデバイスである、請求項１記載の方法。
【請求項６】
前記入力デバイスはビデオゲームコントローラである、請求項１記載の方法。
【請求項７】
前記ユーザインターフェースナビゲーションタスクはスクロールである、請求項１記載の方法。
【請求項８】
前記ユーザインターフェースナビゲーションタスクはリストからアイテムを選択することである、請求項１記載の方法。
【請求項９】
前記共通の極性を決定するステップを更に含む、請求項１記載の方法。
【請求項１０】
前記共通の極性は少なくとも前記第１の複数の２次元信号のうちの１つの方向から決定される、請求項９記載の方法。
【請求項１１】
前記共通の極性は所定の定数である、請求項９記載の方法。
【請求項１２】
前記共通の極性は前記ユーザインターフェース構造から決定される、請求項９記載の方法。
【請求項１３】
前記共通の極性は前記ユーザによって選択可能である、請求項９記載の方法。
【請求項１４】
監視した前記入力デバイスの休止期間に応答して、前記決定ステップを繰り返すステップを更に含む、請求項９記載の方法。
【請求項１５】
前記受信するステップは更に、第３セクションの動きに対応する第３の複数の２次元信号を受信し、かつ、前記第３の複数の２次元信号に応答して前記共通の極性とは反対の極性を有する第２の複数の１次元信号を生成するステップを含む、請求項１記載の方法。
【請求項１６】
前記第３セクションの前記動きは前記第２セクションの動作の実質的な反転に対応する、請求項１５記載の方法。
【請求項１７】
前記反転は突然の反転である、請求項１６記載の方法。
【請求項１８】
前記反転は確立された前記動きの回転方向から徐々に逸脱する、請求項１６記載の方法。
【請求項１９】
前記逸脱は前記確立された回転方向から９０度を超えるものである、請求項１８記載の方法。
【請求項２０】
前記確立された回転方向は、少なくとも一部が前記動きの第１および第２のセクションの十分な回転から決定される、請求項１８記載の方法。
【請求項２１】
十分な回転量は実質的に逸脱した回転量に相当する、請求項２０記載の方法。
【請求項２２】
前記処理するステップは前記２次元信号の少なくとも１つの数学関数として距離測定を決定するステップを含む、請求項１記載の方法。
【請求項２３】
前記距離測定は前記２次元信号の大きさから決定される、請求項２２記載の方法。
【請求項２４】
前記１次元信号のそれぞれの前記大きさは、前記距離測定の少なくとも１つに実質的に比例する、請求項２３記載の方法。
【請求項２５】
前記１次元信号の大きさの決定には、少なくとも１つの前記距離測定を含む数学関数を含む、請求項１記載の方法。
【請求項２６】
前記数学関数は少なくとも１つの線形項を含む、請求項２５記載の方法。
【請求項２７】
前記数学関数は少なくとも１つの非線形項を含む、請求項２５記載の方法。
【請求項２８】
前記非線形項は多項式関数である、請求項２７記載の方法。
【請求項２９】
前記非線形項は指数関数である、請求項２７記載の方法。
【請求項３０】
前記２次元信号の少なくとも１つに関連づけられた現在のヘディングを決定するステップを更に含む、請求項１６記載の方法。
【請求項３１】
前記現在のヘディングは複数の潜在的なヘディングの１つと関連づけられる、請求項３０記載の方法。
【請求項３２】
前記複数の潜在的なヘディングはオクタントを含む、請求項３１記載の方法。
【請求項３３】
候補ヘディングを確立するステップを更に含む、請求項３２記載の方法。
【請求項３４】
前記現在のヘディングを前記候補ヘディングで更新するステップを更に含む、請求項３３記載の方法。
【請求項３５】
前記更新するステップは、十分な動きが生じるまで前記候補ヘディングの方向に互換性のある動きを蓄積するステップを含む、請求項３４記載の方法。
【請求項３６】
前記候補ヘディングと互換性のない動き上に修正した候補ヘディングを確立するステップを更に含む、請求項３５記載の方法。
【請求項３７】
前記現在のヘディング方向を向いた動きは前記現在のヘディングの方向を向いた候補ヘディングと互換性がある、請求項３６記載の方法。
【請求項３８】
前記現在のヘディングとは反対の３つのオクタントの動きのうちどれかは、現在のヘディングとは反対の３つのオクタントの候補ヘディングのうちのどれかと互換性がある、請求項３７記載の方法。
【請求項３９】
前記現在のヘディング、または、前記現在のヘディングの右側のオクタントと前記現在のヘディングに最も近いオクタントのどちらの動作も、前記現在のヘディングの右側の２つのオクタントの候補ヘディングのうちどちらとも互換性がある、請求項３８記載の方法。
【請求項４０】
前記現在のヘディング、または、前記現在のヘディングの左側のオクタント、かつ前記現在のヘディングに最も近いオクタントのどちらも、前記現在のヘディングの左側の２つのオクタントの候補ヘディングどちらとも互換性がある、請求項３９記載の方法。
【請求項４１】
前記共通の極性は、前記現在のヘディングが、前記現在のヘディングとは反対のいずれの３つのオクタントにおいて前記候補ヘディングに更新したときに変化する、請求項４０記載の方法。
【請求項４２】
意図した前記動作の回転方向を決定するステップを更に含む、請求項４１記載の方法。
【請求項４３】
候補ヘディングは、前記現在のヘディング、前記現在のヘディングとは反対の前記３つのオクタント、および、前記意図する回転方向において前記現在のヘディングに対して前記２つの最も近接したオクタントからなる群より選択される、請求項４２記載の方法。
【請求項４４】
入力デバイスによって検出される動きに基づき、所望するユーザインターフェースナビゲーションタスクを示すための方法であって、前記方法は、
前記動きに対応する複数の付加的２次元信号を受信するステップであって、前記２次元信号の大きさの合計は前記２次元信号の合計の大きさよりも実質的に大きいステップと、
前記複数の付加的２次元信号から複数の距離測定を決定するステップと、
前記所望のユーザインターフェースナビゲーションタスクを示すために、前記距離測定から生じた共通の極性の複数の付加的１次元信号を出力するステップとを含む、
方法。
【請求項４５】
前記大きさの前記合計は、前記付加的２次元信号の前記合計の大きさの少なくとも２倍である、請求項４４記載の方法。
【請求項４６】
所望のユーザインターフェースナビゲーションタスクを示すために構成された信号を出力するための入力デバイスを用いる方法であって、前記方法は、
２次元の出力信号を生成するために前記入力デバイスに第１の動き入力を提供するステップと、
次元を縮退したモードに前記デバイスを設定するステップと、
共通の極性の複数の１次元出力信号を生成するために、第２の動き入力を提供するステップを含み、前記第２の動き入力は、
前記複数の１次元出力信号の第１サブセットを生成するための、第１方向における第１の移動を含み、前記第１サブセットは前記第１の移動とは実質的に異なる部分の大きさと相関し、かつ、
前記複数の１次元出力信号の第２サブセットを生成するための、前記第１方向とは実質的に反対の第２方向における第２の移動を含み、前記第２サブセットは前記第２の移動とは実質的に異なる部分の大きさと相関する、
方法。
【請求項４７】
２次元のポインティングデバイスの動きからユーザインターフェースナビゲーションタスクを示すための方法であって、前記方法は、
前記動きの複数の付加的な２次元測定を取得するステップであって、前記２次元測定の大きさの合計は前記２次元測定の合計の大きさよりも実質的に大きいステップと、
前記２次元測定の大きさから複数の付加的１次元信号を導き出すステップと、
前記ユーザインターフェースナビゲーションタスクを示すために、共通の極性の複数の付加的１次元信号を提供するステップと、を含む
方法。
【請求項４８】
入力デバイスによって検出された２次元の動きに応答して、１次元のユーザインターフェース機能を示すための、コンピュータによって実行可能な命令を記録したデータ記録媒体であって、前記コンピュータによって実行可能な命令は、
前記２次元の動きに対応する複数の２次元信号を受信するために構成された第１モジュールと、
少なくとも１つの距離測定と、前記２次元の動きの確立された回転方向を決定するために、前記２次元信号を処理するように構成された第２モジュールと、
前記ユーザインターフェース機能の前記１次元表示を生成するように構成された第３モジュールとを含み、前記１次元表示は、少なくとも１つの距離測定の関数として決定された大きさと、前記２次元動作の確立された回転方向の関数として決定された極性とを含む、
データ記録媒体。
【請求項４９】
ユーザによって与えられた２次元の動きを受信するよう、かつ、前記２次元の動きに対応する複数の付加的２次元信号を生成するよう構成された入力デバイスと、
前記ユーザに１次元のユーザインターフェース機能を示すように構成されたディスプレイと、
前記入力デバイスと前記ディスプレイとに結合されたプロセッサと、を含み、前記プロセッサは前記入力デバイスから前記複数の２次元信号を受信するよう、少なくとも１つの距離測定を決定するために前記２次元信号を処理するよう、かつ、前記ディスプレイ上に前記ユーザインターフェース機能の前記１次元表示を生成するよう構成されており、前記１次元表示は少なくとも１つの距離測定と一定の極性の関数によって決定された大きさを含む、
データ処理システム。
【請求項５０】
前記入力デバイスはマウスである、請求項４９記載のデータ処理システム。
【請求項５１】
前記入力デバイスはトラックボールである、請求項４９記載のデータ処理システム。
【請求項５２】
前記入力デバイスはジョイスティックである、請求項４９記載のデータ処理システム。
【請求項５３】
前記入力デバイスは慣性ポインティングデバイスである、請求項４９記載のデータ処理システム。
【請求項５４】
前記入力デバイスはビデオゲームコントローラである、請求項４９記載のデータ処理システム。
【請求項５５】
前記ユーザインターフェース機能はスクロールである、請求項４９記載のデータ処理システム。
【請求項５６】
前記ユーザインターフェース機能はリストからアイテムを選択することである、請求項４９記載のデータ処理システム。
【請求項５７】
前記プロセッサは更に、回転方向を確立するように構成されている、請求項４９記載のデータ処理システム。
【請求項５８】
前記入力デバイスは更に、前記２次元の動きに対応する第２の複数の付加的な２次元信号を生成するために、ユーザによって適応された第２の２次元の動きを受信するように構成されており、かつ、
前記プロセッサは更に、少なくとも１つの付加的距離測定を決定するために前記第２の複数の２次元信号を処理するよう、前記第２の複数の２次元信号に関連づけられた前記回転方向が前記確立された回転方向とは反対であることを判断するよう、かつ、前記ディスプレイ上に前記ユーザインターフェース機能の第２の複数の１次元表示を生成するよう、前記入力デバイスから前記第２の複数の付加的２次元信号を受信するように構成されており、前記第２の１次元表示は少なくとも１つの付加的距離測定と前記一定の極性とは反対の極性の関数として決定される大きさを含む、請求項５７記載のデータ処理システム。
【請求項５９】
ユーザによって提供された２次元の動きに応答して１次元のユーザインターフェース機能を示すための入力デバイスであって、前記入力デバイスは、
前記２次元の動きに対応する複数の付加的２次元信号を生成するように構成された入力モジュールと、
前記ユーザインターフェース機能の前記１次元表示を生成するように構成された出力モジュールとを含み、前記１次元表示は前記少なくとも１つの距離測定と一定の極性との関数として決定される大きさを含む、
入力デバイス。
【請求項６０】
１次元モードと２次元モードとの間の入力デバイスをトグルで切り替えるために、前記処理モードと連通するユーザが動かすことができるモード（ユーザアクチュエータブルモード）のコントローラスイッチを更に含む、請求項５９記載の入力デバイス。
【請求項６１】
前記プロセッサは更に、回転方向を確立するように構成されている、請求項５９記載のデータ処理システム。
【請求項６２】
前記入力モジュールは更に、前記ユーザによって提供された第２の２次元の動きに対応する第２の複数の付加的な２次元信号を生成するように構成されており、
前記処理モジュールは更に、少なくとも１つの付加的距離測定を決定するために前記第２の複数の２次元信号を処理するよう、かつ、前記第２の複数の２次元信号に関連づけられた前記回転方向が前記確立された回転方向とは反対であると判断するよう、前記入力デバイスから前記第２の複数の付加的２次元信号を受信するように構成されており、かつ、
前記出力モジュールは、前記ディスプレイ上に前記ユーザインターフェース機能の第２の複数の１次元表示を生成するように構成されており、前記第２の１次元表示は、少なくとも１つの付加的な距離測度および前記一定の極性とは反対の極性の関数として決定される大きさを含む、請求項６１記載のデータ処理システム。
【請求項６３】
リラモーティブポインティングデバイスの２次元の動きから１次元のユーザインターフェース信号を生成するための方法であって、
２次元の動き測定シーケンスを入力として受信するステップを含み、前記入力の動きの第１部分は前記入力の動きの第２部分によって実質的に対立する方向を含み、
１次元信号シーケンスを出力として生成するステップを含み、各出力信号は少なくとも１つの前記２次元の動き測定の受信と実質的に同時に生成されるものであり、かつ、
各出力信号は共通する極性を有する、
方法。
【請求項６４】
各出力信号は、前記同時に受信する動き測定から実質的に決定される大きさを有する、請求項６３記載の方法。
【請求項６５】
リラモーティブポインティングデバイスの２次元の動きから１次元ユーザインターフェース信号を生成するための方法であって、
２次元の動き測定シーケンスとして入力を受信し、１次元出力信号シーケンスとして出力を生成するステップを含み、各出力信号は少なくとも１つの前記２次元の動き測定と実質的に同時に生成され、かつ、
各出力信号は最近受信した２次元の動き測定によって示された回転方向から実質的に決定された符号を含む、
方法。
【請求項６６】
各出力信号は前記同時に受信した動き測定から実質的に決定される大きさを有する、請求項６５記載の方法。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本願は２００４年１月２９日に出願された米国特許出願第６０／５４０，５３４号の利益を主張する。
【技術分野】
【０００２】
概して、本発明は、スクロール信号などの１次元ＧＵＩ入力を生成するために、コンピュータマウスなどの２次元のポインティングデバイスを用いる技術分野に関する。
【背景技術】
【０００３】
グラフィカルユーザインターフェース、つまりＧＵＩは、パーソナルコンピュータとのヒューマンインタラクションを行うための標準的パラダイムとなっている。標準のＧＵＩは、グラフィック要素を表示するための画面と、そのような要素とインタラクションを行うためのポインティングデバイスとを含む。ポインティングデバイスの第１の機能としては、カーソルなどのアテンションインジケータ（indicator of attention）を所望のＧＵＩ要素の上に動かし、同時に表示されている複数のＧＵＩ要素の中から選択することが挙げられる。ポインティングデバイスの第２の機能としては、ＧＵＩ要素とインタラクションを行うためのボタンあるいはその他の制御機器を動かし、アテンションポイントに到達させることが挙げられる。例えば、表示画面上に見える模写されたボタン上にカーソルを動かし、ポインティングデバイスと関連付けられた物理ボタンを押すことで通常、ＧＵＩ“ボタン”が“押さ” れる。
【０００４】
最も重要なＧＵＩタスクの１つに、電子文書の空間ナビゲーションがある。この空間ナビゲーションは、従来、文書の周辺部に沿って、スクロールバーとのインタラクションを行うことによって実行されている。図１は、スクロールバーと関連付けられた標準的なテキスト文書ウインドウを示す。ウインドウの右側には垂直スクロールバーを、ウインドウの下部には水平スクロールバーを示す。図１の例では、スクロールせずに文書全体の幅を見ることができるほどウインドウは幅広く、そのため、水平スクロールバーは非アクティブの状態である。図示している垂直スクロールバーは、ラインアップとラインダウンアローをそれぞれの端部に、その内側にはページアップとページダウン領域を有し、また、各ページング領域間にはスクロールサムを有する。通常、スクロールサムの位置は、全体のうち見えている文書部分を表す。通常、スクロールサムの大きさは、現在見えている文書の割合を表す。
【０００５】
関連するスクロールバーアローのポインティングデバイスボタンを左クリックすると、見ている文書を上か下に一行分（１ライン）スクロールする。適切なページング領域をクリックすると、文書を上か下に１ページ分スクロールする。サム上で左ボタンを押しホールドしてスクロールサムを把持することにより、次のポインティングデバイスの移動でサムを直接動かすことができる。１ピクセルのサムを移動させると文書がスクロールし、そのスクロール量は文書の長さによって変化する。この変化量は、ちょうどスクロールサムがその動きの限界に到達したときに、関連する文書の末端にスムーズに到達するようにするものである。短い文書に対しては、サムの１ピクセルの移動は、文書の１ピクセルのスクロールに、また、長い文書に対しては、サムの１ピクセルの移動は、複数ページの文書に相当する。本段落で説明した特徴は標準的なものであるが、このような特徴はアプリケーションによって違ってもよい。
【０００６】
スクロールバーについて幅広く認識されている問題の１つは、アテンションポイントが文書からその周辺部へ移動し、再び戻って、ナビゲーションタスクとその他のＧＵＩタスク間の切り替えを行わなければならないことである。このために、ハードウェアを配置したポインティングデバイスから直接的に、スクロールを実効的に行うためのいくつかの機構が最近利用可能になっている。この傾向の一部として、アプリケーションに応用可能なポインティングデバイスから生じるスクロール情報を作成するための標準化された方法が生まれている。さらに、多くのより最近のＰＣアプリケーションは、スクロール以外の１次元タスク用にこれらの信号を利用している。
【０００７】
このような固有の１次元ナビゲーション装置に最も幅広く用いられているものはマウスホイールである。通常、ホイルは左右のマウスボタンの間に位置し、垂直スクロールを行うために最適化される。また、最新の多くのシステムは、ホイールが回転すると、初期設定により垂直スクロールオペレーションを行う。拡張したモード情報を提供することで、ホイールを別の１次元ナビゲーション機能に使用してもよい。例えば、一般に普及している表計算プログラムはズームイン（拡大）あるいはズームアウト（縮小）する。そのため、キーボードのＣｔｒｌキーを押しながら、ホイールを上あるいは下にそれぞれ回転させると、可視部分が少なく、より詳細を表示した状態になる（つまり拡大表示）、あるいは、可視部分が多く、詳細をあまり表示しない状態になる（つまり縮小表示）。
【０００８】
スクロールホイールが市場で成功したことによって、１次元のＧＵＩタスクを直接的に実行できる能力がマウスの望ましい特徴であることが示された。しかし、スクロールホイールにもいくつかの問題点があり、そのような問題点がスクロールホイールを一般化した１次元ＧＵＩ入力には最適とは言えないものにしている。第１に、ホイールが指定可能な速度範囲は非常に小さい。人差し指でホイールの操作を行って、ホイールを所定の方向に回転させることができるのは比較的少ない量にすぎず、その後、人指し指をホイールから離し、再び元の位置に戻して更に次にホイールを動かすことができる状態にしなければならない。更に、通常、ホイールの回転で移動する量には制限があり、指の位置を変えることで移動する量はわずかである。通常、ホイールの移動速度は比較的遅く、最大入力速度が比較的低いか、あるいは、タスク増加分の最小値が比較的大きいかのいずれかである。
【０００９】
さらに重要なホイールの限界として、通常、ホイールを回転させることと拡張したモード情報を提供することの両方を同じ手で行うことは困難であることが挙げられる。このため、様々な１次元タスク間でホイールのモード切り替えを困難にしている。例えば、既に説明したスプレッドシートのズーム特徴では、キーボードを介して拡張したモード情報を提供するために、空いているほうの手を使うことが求められる。おそらく、最も重要なマウスホイールの問題点として、マウスホイールが他の最新の光学式マウスよりも機械的により複雑であることが挙げられる。機械的に複雑なために製造原価が高くなり、また、この複雑さがその後の展開を失敗させている。
【００１０】
要約すると、原則的にマウスホイールは、直接的１次元ＧＵＩ入力の基本的問題をその場限りで解決するものであって、多くの問題点を有する。ホイールは比較的高額であり、信頼できない。ホイールは最も器用な手の指を固定し、入力のモード切替えを困難にする。さらに、通常、スクロールの他に１次元タスクの有用性を制限する付加的オペレーションモードによって、低ダイナミックレンジの埋め合わせを行う必要がある。
【００１１】
従って、２次元のマウス動作を１次元のＧＵＩ変数に変換するための一般的方法が求められている。マウスに内在する大きなダイナミックレンジを最も効果的に利用するために、ニュアンス(nuance)や制御を最大にし、精神的疲労を最小にするよう、次元縮退技術(dimensionality reduction technique)は、実質的に（以下で説明するように）ゼロオーダー(zero-order)でなければならない。この技術によって、同じモード呼び出し内で正と負両方の値の生成が可能になる。この技術によって、マウスを持ち上げずに、予測した最小と最大のブレに簡単に実効的に対応することができるように、非常に幅広いダイナミックレンジを提供しなければならない。２次元の入力空間では中心位置近くに残りながら１次元タスク空間で任意の距離を移動するための高い自由度を有する点で、セルフセンター（self-center）しなければならない。さらに、その他の望ましい特徴および特性は、添付の図面と本発明の背景を併せて、以下の詳細な説明および添付の請求の範囲から明らかであろう。
【発明の開示】
【００１２】
本発明の様々な実施形態は、２次元のマウス移動から１次元のＧＵＩ信号を生成する方法を含む。本方法はモードを持つものでもよく、２次元と１次元の両タスクでマウスの使用を可能にする。境界のある２次元領域内に残り、かつ、ポインティング表面を出ずに、境界のないいずれの極性の信号が単一の１次元の形式上の呼び出し内に生成される。生成された１次元信号の大きさは、マウスが移動した２次元の距離にほぼ比例する。
【００１３】
１次元モードに入ると、最初に移動した方向から最初の極性が決定する。特定の方向に十分に回転すると、最初に決定した極性はその回転方向に関連づけられる。反転方向を突然変更することで極性の反転が起きることがある。あるいは、極性に関連づけられた方向から反対の方向に十分に回転することで、回転方向と極性とを関連付けた後、極性の反転が起きることがある。極性の反転が起きるたびに、反転した極性は回転方向との関連付けが解消される。反転後に十分な回転をすると、新しい関連性が生じる。
【００１４】
本文中に説明している方法およびシステムはマウスと共に使用するために設計されたものであるが、そのような方法およびシステムを以下に更に詳細を説明している相対移動入力を生成できるどのようなポインティングデバイスと共に用いてもよい。通常のポインティングデバイスコントローラに組み込まれた用法に適切な様々な実施形態の方法が開示されている。
【００１５】
本発明を以下の図面と併せて説明する。同じ参照符号は同様の要素を示す。
【発明の詳細な説明】
【００１６】
様々な実施形態によれば、マウスあるいはその他の入力デバイスからの２次元入力を１次元の信号に変換するための新たな技術により、従来技術の様々な欠点を持たないスクロールあるいはその他のユーザインターフェースナビゲーションタスクが可能になる。そのような１つの技術として、入力デバイスの２次元の移動量に対応した極性と大きさとを有する１次元信号を生成するオペレーションモードに入力デバイスを設定する。ユーザが入力デバイスを動かすにつれ、その動き（動作）に対応した２次元信号が処理されて、その動きに関連する距離測定が判断される。この距離測定は、結果として生じる１次元信号の大きさを判断するために用いられる。更なる実施形態では、１次元信号の極性を２次元の移動方向から判断する。その結果、上述した多くの欠点を克服する、ダイナミックレンジが広い低オーダー（低次）の技術が提供される。本文中に説明している様々な技術及びシステムは多様な環境で応用することができ、また、ハードウェアおよび／またはソフトウェアのいずれの組み合わせを用いていずれの方法で実装してよい。さらに、本文中に説明している信号及びデータ処理技術はどのようなソフトウェア言語あるいは環境において実装してよい。そのようなソフトウェアは例えばマウスあるいはその他の入力デバイス内に存在してよく、あるいは、ポインティングデバイスと通信するホストコンピュータ内のメモリあるいはその他のデータストレージに、あるいは、その他のいずれのデバイスあるいは場所に存在してよい。
【００１７】
本文中に説明している概念を、マウス、トラックボール、ジョイスティック、慣性検出装置、ビデオゲームコントローラなどを含む多様な入力デバイスとともに実装してよい。特に、以下に説明する技術は、マウスやジョイスティックなどのいわゆる“相対移動”（relamotive）デバイスに適している。リラモーティブ方式を用いるということは、マッピングの判定が絶対位置、力などに関する情報ではなく、実動距離や方向に関する情報に基づくということである。したがって、マウス、ジョイスティックなどのリラモーティブポインティングデバイスは、デバイスあるいはデバイスのコンポーネントの絶対位置ではなく（あるいは、それらの絶対位置に加えて）デバイスあるいはデバイスのコンポーネントの移動量を報告する。そのようなデバイスがある特定方向（例えば、マウスパッドの端部あるいはマウスのその他の作業面）の動きの限界まで移動した場合、リラモーティブデバイスは通常その作業面から離れ、その方向で更に動きが生じる前に、その動作限界から離れた位置に戻される。このような再センタリングオペレーションを回避するため、従来は、１回の移動で動作限界に頻繁に近づかないよう指示する。リラモーティブデバイスのこのような点を克服するため、本文中に説明する様々な技術は、デバイスの２次元移動に対応する拡張スクロール（あるいはその他の１次元の移動）を可能にする。
【００１８】
用語
【００１９】
１次元入力を向上させるための様々な方法に目を向ける前に、ＧＵＩ入力に通常応用できるいくつかの用語を発展させることが有益である。この分野はより発達しているので、この発展を動機付けとなるよう２次元入力あるいはポインティングを用いる。
【００２０】
ダイナミックレンジ
【００２１】
ＧＵＩタスクのダイナミックレンジとは、その最大予想タスクレートをその最小値で割ったものである。通常、標準的なポインティングのＧＵＩタスクに対し、高解像度画面にわたってカーソルを移動させた場合に最大レートが発生する。最新の画面の幅は２０００ピクセル以上であり、通常、ユーザたちは数分の一秒で画面全体を横切ることを望むために、通常は毎秒２０００ピクセル以上のタスクレートが使用される。これに対して、表示画面がどんなに大きくても、通常、ウィンドウサイジングボーダー（window sizing border）などの小構造（スモールフィーチャ）を獲得しなければならない。ＧＵＩタスクが合わせなければならない最小の構造寸法はその解像度であり、また、ポインティングタスクの所要の解像度は通常単一ピクセルである。単一ピクセルを合わせるのにかかる時間は当然ながら任意の長さであってよく、その結果、ポインティングレートが任意に最小のレートになる。しかし、ユーザは通常、１秒以上をＧＵＩタスク部分の微調整に費やさない。したがって、解像度が１秒程度の時間でアクセス可能になると仮定することで、タスクのダイナミックレンジを正規化することができる。
【００２２】
タスクの解像度をＲ、その最小タスクレートをＲＬ、および、その最大タスクレートをＲＨと定義すると、タスクのダイナミックレンジの公式を以下のように簡素化できる。
【数１】
2007535726.tif 000003
【００２３】
ポインティングのために、この結果から要求されるポインティングダイナミックレンジは以下の通りである。
【数２】
2007535726.tif 000004
【００２４】
特定のＧＵＩタスクを入力デバイスが効率的に実行するよう、デバイスのダイナミックレンジをタスクのダイナミックレンジと合理的に一致させなければならない。タスクに類似する用語を使用すると、入力デバイスのダイナミックレンジはその最大デバイスレートをその最小値で割ったものと定義される。＠再度、１秒の最小デバイス時間を仮定することによって正規化することで、デバイスのダイナミックレンジは、１秒でレポート可能な、最小解像度での入力単位の合計数に相当する。
【００２５】
マウスの最大デバイスレートは、１回のレポートで運ばれる最大動き量に、１秒で作り出されるレポート数を掛けることによって求められる。最小解像度でのマウスの移動量の従来の名前は“ミッキー”であり、最新のＵＳＢマウスは毎秒約１２０回までのレポートレートにおいて、最大で１２８ミッキーの動きをレポートできる。したがって、マウスの生のダイナミックレンジは以下のようになる。
【数３】
2007535726.tif 000005
【００２６】
これはポインティングタスクには十分対応できるが、残念なことに別の要因がマウスのダイナミックレンジを制限する。
【００２７】
マウスなどのリラモーティブポインティングデバイスは、絶対位置ではなく、あるいは、絶対位置に加えて、移動量を報告する。ある特定の方向において、動作限界まで動いた場合、その方向で更なる動きのレポートを行うためには、通常、リラモーティブデバイスをその作業面から離し、その動作限界から離れた場所に戻す必要がある。通常、このような再センタリングを回避するには、１回の移動で頻繁に動作限界に近づかないことが求められる。経験則によると、再センタリングの必要性を最小に抑えるには、ポインティングデバイスのどのような１回の移動量を実質的にその作業空間の５０％未満に制限することである。
【００２８】
例えば、快適なマウスの作業空間は通常、直径が約４−５インチである。この１回の移動についての経験則に従えば、最大の予想移動量は約２インチである。１インチの４００分の１のである通常のミッキー解像度と、１ミッキーのマウス移動で１ピクセルの画面移動を行う単一ゲインシステムとを与えると、通常のマウスは２インチでカーソルを４００×２＝８００ピクセル動かすことができる。従って、空間が制限されているマウスのダイナミックレンジは、本例においては、２０００ピクセル幅のディスプレイで使用する場合に求められるダイナミックレンジの半分未満であり、生のダイナミックレンジは１０分の１未満である。
【００２９】
入力デバイスは、デバイス空間で直線移動を行う場合だけ空間を制限する点に留意するのは有益である。閉路を進む動きは必ずしも空間が制限されているわけではない。例えば、直径が５インチの円でマウスを動かし続けることにより、マウス速度をその生のダイナミックレンジである毎秒１０，０００ミッキーにほぼ維持することができる。
【００３０】
弾道学(ballistics)
【００３１】
利用可能なデバイスと所要タスクのダイナミックレンジとの溝（deficit）を埋めるための１つの手法として、デバイス変数からタスク変数を形成する際に非線形処理関数を介入させることが挙げられる。ポインティングデバイス業界用語では、このような処理関数は“弾道学関数”(ballistics functions)と称される。この名前は、発射体の弾道が重力や風といった環境要因によって影響を受けるのと同じように、外力により影響を受ける入力デバイスを連想させる。しかし、コンピュータ入力ドメインでは、この“外”力は人為的に介入させた弾道学関数である。
【００３２】
最も簡素化したＧＵＩ入力システムでは、ユニティ・ゲインを適用することによって、タスク変数をデバイス変数から取得する。
【数４】
2007535726.tif 000006
【００３３】
つまり、デバイス変数は原則的にＧＵＩタスク変数に等しい。例えば、単一ゲインポインティングシステムは常に、レポートされた各ミッキーのデバイス動作に対してカーソルを１ピクセル動かす。弾道学関数の目的は、より小さなゲインを比較的小さなデバイス入力に適用し、より大きなゲインを比較的大きなデバイス入力に適用することでタスクのダイナミックレンジを広げることである。これを数学的に公式化すると以下のようになる。
【数５】
2007535726.tif 000007
【００３４】
各ステップにおいて、通常、ＧＵＩ変数はデバイス変数依存ゲインを適用することにより、デバイス変数から形成される。例えば、マウスを使用した最も古い弾道学関数の１つには、デバイスレポートサイズが４以上のものを２倍し、かつ、サイズが１０以上のものを再度２倍にする機能がある。Ｃ三項演算子シンタックスを用いると、より形式的な説明は以下のようになる。
【数６】
2007535726.tif 000008
【００３５】
レポートすべき動きが１ミッキー未満にならない限り、マウスは一定の速度でその動きをレポートするので、このスキームが成り立つ。レポートすべき動きが１ミッキー未満の場合は何も報告されず、潜在的な分数ミッキーはすべて保持され、次のレポートポイントで次の動きと組み合わせられる。したがって、マウスの動きが遅い間は、何もレポートしないか、１ミッキーをレポートする。動作速度が上がると、フルレポートレートを達成するまで１ミッキーレポートの周波数は増加する。フルレポートレートを超えると、１レポートあたりのミッキー数は増加する。通常のマウスのレポート速度は毎秒１２０レポートであるので、レポートが１ミッキーより多くを含む場合、マウスの移動速度は比較的速く、１レポートあたり５ミッキーを含む場合は、毎秒６００ミッキーである。
【００３６】
５ミッキーのレポートはマウスの動きが比較的速いことを示すので、ピクセル空間の距離を倍にすることができ、ユーザには、カーソルが速く動いているということだけを伝える。最終的に、カーソルは、速度を急速に上げてから速度を落とす短距離の移動によって、スクリーンをより速く移動することができる。カーソルがターゲットに近づくと、余分なゲインを与えないように動きを遅くし、完全な単一ピクセル制御を行う。
【００３７】
弾道学関数はデバイスのダイナミックレンジを拡張するために用いることができるが、レンジが増加すると制御性が低下する。幸運にも、通常この制御性の低下は、高速度時に発生し、その速度によって実質的に制御性の低下が隠される。しかし、ユーザが認識したものと実際の制御レベルの双方に実質的な影響を与えずに、弾道学関数を介して拡張できるダイナミックレンジの程度にも制限がある。通常のＧＵＩタスクの経験則制御は、もともとのデバイスのダイナミックレンジを約１０倍拡張したものである。
【００３８】
高次数オペレーション(higher order operation)
【００３９】
既に説明したように、マウスのダイナミックレンジを制限する主な要因は、作業領域寸法である。弾道学関数によりデバイスのダイナミックレンジを拡張できることが示されたが、それは幾分か制御性を犠牲にしたものである。通常、多くの入力デバイスに適用される原則とは、制御可能な入力デバイスのダイナミックレンジがその作業領域寸法にほぼ比例するということである。
【００４０】
デバイス寸法が特に制限されている場合、高次数ペレーションと記述されているさらに別の処理技術により、寸法に対してタスクの制御性をさらにトレードオフできる。デバイスのオペレーション次数（オーダー）は、入力あるいは出力変数の変化が出力あるいはＧＵＩタスク変数の変化にどのように伝わるかを決定する。数学的に、この次数は入力／出力の関係を関連づける導関数の数に関連する。出力変数が入力変数に比例するオペレーションモードは、例えば公式（４）のように、ゼロ次数モードである。出力変数の一次導関数が入力変数に比例するモードでは、第１次モードである。この第１次の関係を以下の微分式で表す。
【数７】
2007535726.tif 000009
【００４１】
また、積分式では以下のようになる。
【数８】
2007535726.tif 000010
【００４２】
第１次よりも高いオペレーション次数は幾分か実用的でないが、第２次モードは二次導関数などによって関連づけられる。
【００４３】
第１次オペレーションの背後にある概念とは、入力変数の比較的小さな変化が時間とともに累積して、出力変数の比較的大きな変化になることである。この概念をリラモーティブデバイスに対してさらに具体化するため、入力変数ｄ（ｔ）およびタスク変数ｇ（ｔ）は、タイムインターバルｔにおいて、どこに移動するかではなく、どれくらいの距離を移動するかを示す。リラモーティブオペレーションおよび入力の時間積分が示す第２の概念事項は、入力空間における絶対主義(absolutism)である。ほとんどのデバイスで出力空間の動きを中止するためには、ｇ（ｔ）がゼロになり、その結果、Ｄ(ｔ)もゼロにならなければならない。Ｄ（ｔ）がゼロになるために、特定のタイムインターバルを超えた積分ｄ（ｔ）はゼロでなければならない。これは、ゼロポイント、あるいは入力空間におけるホームロケーションの概念を意味する。入力空間において１つの極性にどのような偏差が生じても、反対の極性の入力空間の動きによって相殺されるまでは、周期的に出力空間信号を生成し続ける。入力の動きが止まった場合であっても出力信号は生成され続けるので、第１次モードは“自動”モードと称される場合がある。自動出力信号の生成に使用するタイムベースは通常、入力動作をレポートするために使用するものとは異なり、また、出力信号は通常、入力動作と同時には発生しない。
【００４４】
第１次オペレーションモードに非線形の弾道学関数を適用してもよい。分析と実装とを簡単に行うことができるので、従来、弾道学は入力の時間積分に応用されている。
【数９】
2007535726.tif 000011
【００４５】
弾道学は入力及び出力の比例を決定することができるが、基本のオペレーションオ次数は変更しない点に留意されたい。
【００４６】
通常、第１次のオペレーションを行う、最も幅広く配置されたポインティングデバイスは等尺性（isometric）ジョイスティックであり、これは、多くのラップトップコンピュータ上でポインティングのために用いられている、ゴム引きのナブ(rubberized nub)である。この等尺性ジョイスティックは、知覚できるほど動かないので、これは第１オーダーのオペレーションを行うその他のデバイスよりもずっと小さくてよく、例えば、わずかに変更が加えられた標準のキーボードのＧとＨの間に納まるくらいに小さくてよい。
【００４７】
等尺性ジョイスティックが生成する入力変数は、通常は人指し指に加えられた力の大きさである。第１次のオペレーションは表示カーソル速度をこの力に比例させる。人間の指で無理なくかけられる力、あるいは、無理なく分散（resolve）された力の範囲では、カーソルの速い動きとシングルピクセルの解像度とに対応するには不十分なので、弾道学関数がジョイスティックシステムに組み込まれることが多い。実際のシステムでは、このような関数は２０：１を上回るダイナミックレンジ拡張比を備えている。
【００４８】
等尺性デバイスを第１オペレーションに特に適したものにする等尺性デバイスの属性は、一次の積分結果をより速く求めることができることである。これは、等尺性デバイスの反転には、加えられた力の反転だけが求められるからである。移動可能なデバイスに対して、反対の極性が生成される前に、１つの極性のスラック（slack）を用いるために、加えられた力の反転に続いて、更なる時間が求められる。等尺デバイスの積分結果を求める時間がより早ければ、両者が第１次のオペレーションを行う場合に、移動可能なデバイスよりも優れた制御性をもたらす。
【００４９】
等尺性ジョイスティックをポインティングに使用するための主な欠点は、第１次オペレーションと拡張した弾道学関数とが共に、制御性を制限するために共謀することである。多くのユーザたちはこれらを効果的に使用できるほどに器用であるが、そうでないユーザもいる。これにより、普遍的に受け入れられるポインティングデバイスとして等尺性ジョイスティックを、潜在的に不適切なものにしている。
【００５０】
様式(modality)
【００５１】
単一デバイスを使用して１次元および２次元の信号を生成するために求められるもう１つの概念は、その様式である。この概念もまた、ポインティングに関連して効果的に考察されてよい。様式的用法では、シングルデバイスのデータストリームは、追加情報を介して１つ以上のＧＵＩタスクに向けられる。この拡張した様式情報は多くの場合、デバイスのデータストリームに含まれるが、また、全く別のソースによって提供されてもよい。特定のモードへデータのディスパッチをさせる特定の情報は、そのモードに対する様式インジケータと呼ばれる。拡張した様式情報がない場合、あるいは、デフォルト様式状態において、デバイスデータはその通常モードあるいはホームモードにディスパッチされる。
【００５２】
例えば、２次元入力データは、ボタンの状態で、拡張した様式情報を介して、ＧＵＩポインティングとドラッグタスク間で様式的に切り替えられる。通常、ボタンの状態はポインティングデータを生成する同じデバイスに関連づけられ、また、そのデータと同時に運ばれる。マウスに関して、ドラッグ中のモードインジケータは、第１の、通常は左のマウスボタンのダウン状態である。マウスのホームモードは、その左ボタンのアップ状態によって示されたポインティングである。
【００５３】
拡張したモード情報は同時に複数のソースからもたらされてよい。例えば、いくつかのＧＵＩは、ドラッグオペレーションをさらに２つに分けることができ、データを移動あるいはコピーする。コピーのためのモードインジケータは通常、マウスの左ボタンのダウン状態、及び、いずれのキーボードのＳｈｉｆｔボタンのダウン状態である。移動はデフォルトあるいはホームドラッグモードであり、マウスの左ボタンのダウン状態及びキーボードの両Ｓｈｉｆｔキーのアップ状態によって示される。
【００５４】
次元縮退
【００５５】
２次元から１次元空間にマッピングすることができる多くの技術がある。簡単な１つのマッピング法は、それぞれのペアになった２次元座標のうち１つを破棄することである。例えば、従来の垂直座標（つまり、従来の（Ｘ、Ｙ）ペアの“Ｙ”座標）を破棄するだけで、右上がりで左下がりの１次元変数になる。リラモーティブ用法では、この変数は、右側に移動すると正であり、左に移動すると負である。しかし、この種のマッピングでは、境界のある２次元の移動から境界のない１次元変数を生成する問題を解決しない。左端の２次元の境界に到達すると、１次元の更なるどのような出力も右になるので、正になる。デバイスを利用することができる２次元空間にはもともと境界があるために、この単純なマッピングを用いることができない場合は、その問題に対して任意の大きな負の出力、あるいは、正の出力を生成することは非常に困難である。
【００５６】
その結果、通常有益な縮退マッピング（reductive mapping）が所望する１つの属性として、境界のある入力から境界のない出力を合成することが挙げられる。これをイメージする１つの方法は、潜在的に無限の１次元空間を“折り畳む”ことであり、その結果、その１次元空間が固定した寸法の２次元空間に適合する。反対に、折り畳まれた２次元経路は、巻きが解けた状態(unwounded)と考えられ、単一の次元に沿って配置される。例えて言えば、４分の１マイルのトラックを１２周走り終えているランナーは、出力空間においては既に３マイルを走っているが、入力空間ではランナーのスタート位置と停止位置は同じである。同様に、パッド上あるいはその他の作業空間におけるマウスの２次元移動は、１次元では境界のない移動であると言い換えることができる。数学的用語で言えば、リラモーディブレポートの大きさの合計（移動量の総計を表す）は、リラモーティブレポートの合計の大きさ（開始位置からの正味の移動量を表わす）よりも実質的に大きい。リラモーティブデバイスがその開始位置から実質的に移動していなくても、実質的な移動量が生じる。用語“実質的に”はこの場合、直線経路から突発的に逸れること、あるいは測定誤差によって説明されるものよりも量が大きいことを意味する。
【００５７】
第２の望ましい属性は、ダイナミックレンジの意味で、境界のある入力空間を利用することである。より大きな入力空間ではより大きな大きさを認める必要があり、その結果、出力空間の蓄積がより速くなる。例えば、回転移動の縮退マッピングは公式化することができ、実際に回転した角度に基づいて出力の大きさを求めるものである。しかし、このタイプのマッピングは、移動するサークルがどれほど大きくても、出力の大きさは同じである。小さなサークルは大きなサークルよりも物理的に速く移動することができるので、そのようなマッピングは、入力空間寸法とダイナミックレンジ間に望ましくない反比例関係を有する。
【００５８】
第３の望ましいマッピング属性は、人間によって簡単に学習される点である。マッピングの学習可能性を決定する、同時に発生する一定のフィードバックは主要な属性である。適切なフィードバックを提供するよう、入力空間で移動がある場合はいつでも、出力空間で移動を生成するようにマッピングを構成しなければならない。差し支えがなく可能な範囲で、入力空間のデッドスポット(dead spot)あるいはデッドディレクション（dead direction）を回避しなければならない。
【００５９】
第４の望ましいマッピング属性は、直観的でなければならない点である。周知の動作は予想した結果を生成しなければならない。最も一般的な２つのコントロールジェスチャは、直線及び回転動作である。小さな動きには直線動作が自然であり、また大きな動きには回転動作ではより自然であるので、直線および回転の両方を扱うための一体化した機構が望ましい。次元を縮退するために、このような２種類の動作を一体化することは、適切な符号取り扱いの主な機能である。単一方向において直線動作を継続して行う場合、符号が反転してはならず、一方で、直線動作中に方向が明らかに反転する場合、符号が反転しなければならない。ある特定の回転方向（handedness）回転動作を継続する場合、符号が反転してはならず、一方で、回転動作の方向が明らかに反転する場合は、符号が反転しなければならない。
【００６０】
実装を便宜化するため、第１の入力属性が出力符号を生成し、第２の入力属性が出力の大きさを生成するという意味では、マッピングは分離可能であってよい。入力空間の、サイズ比例のダイナミックレンジ要件を出力空間に転送することは、入力距離から出力の大きさを生成することを示す。それは同様に、入力方向と、周知の極性座標記述に類似した距離の記述を示す。マッピングが分離可能であるという原理を応用し、入力距離を用いて出力の大きさを決定すると、入力方向が出力符号を決定する。このような原則に基づいた減縮マッピングについて以下に説明する。
【００６１】
符号付きの減縮マッピング
【００６２】
テーブル１の様々な原則は、これまでに説明した特性を備えた例示的減縮マッピングを総合的に生成する。直線と回転の反転が回避される限り、出力符号は変化しないという点で、マッピングに境界がない場合がある。出力の大きさは移動した入力距離に大きく比例することから、出力のダイナミックレンジは入力デバイスの寸法に比例し、また、出力デッドスポットあるいはデッドディレクションは実質的に回避される。直線動作からの出力符号の変化には、突然の方向反転の判断基準によって対応し、回転動作からの符号の変化には、回転方向の反転の判断基準によって対応する。出力符号が入力方向に依存し、出力の大きさが入力距離に依存するという点で、マッピングは本来、分離可能なものである。
【表１】
2007535726.tif 000012
【００６３】
このような原則の実際の適用法について更に具体化するために、一連の（Δｘ、Δｙ）ペアによって適切に表されてよい、別々の２次元のリラモーティブ変数（“レポート”）を定義することが有益であろう。以下に説明した実施形態において、各レポートは、サンプル期間において２つの直交する基礎となる連続デバイス変数が蓄積した動き量を適切に表す。例えば、従来の座標系では、（１，１）のコンピュータマウスレポートは、マウスがユーザから離れて１基準単位（例えば、“ミッキー”）移動し、前のレポートからのインターバルにユーザの右側に１基準単位移動したことを示す。
【００６４】
図面に戻り、図２を参照すると、理論的にはエンドツーエンドになった例示的な一連のレポートＳ１−Ｓ４０は、２次元入力空間２０２を介して入力デバイスの経路２０６を表す。経路２０６を構成する各レポートは、その経路の特定のセグメントと１対１で対応して示されている。そのため、図２に示す例示的経路２０６は、４０個のセグメントを含み、各セグメントは、各レポートＳ１からＳ４０の１つよりも前に配置されている。例えば、セグメント２０５はレポートＳ２に対応し、入力デバイスがレポートＳ１とＳ２との間を移動した移動量に近い直線を表す。
【００６５】
入力経路のフレームワークを与えると、経路の各セグメントを符号と大きさでラベル付けすることによって減縮マッピング技術の主な仕事を達成できる。これらの符号／大きさのペアを１つの符号付き変数にアセンブルすると、関連づけられた１次元出力変数ストリーム２０４を簡単に生成する。図２の下方部分に示す１次元出力信号ストリームでは、２次元入力経路２０６のレポートＳ１は、出力ストリーム２０４の一番目の信号２０８を生成し、レポートＳ４０は最後の信号２１０を生成する。しかし、様々な等価の実施形態において、その他の信号生成およびマッピング法を用いてよい。
【００６６】
既にリストに挙げた減縮原則に関連して、１次元の信号ストリーム２０４における符号のラベル付けは、前のセグメントの符号を使って経路２０６の各セグメントをラベル付けする定常状態のプロセスと見られる。この、前のセグメントの符号は、経路２０６が表す２次元動作において、直線と回転方向の反転を検出する反転プロセスにより増大される。直線の反転は通常、回転の反転よりも速く検出できる点で、一般に直線の反転は優先権を有する。図２に示す例では、直線の反転は、レポートＳ１３とＳ１４の間で起こり、これらの２つのレポートの情報だけで直線の反転を直感的に検出することができる。これに対し、レポートＳ２７付近から開始する回転の反転は、実際にはもっと後まで、おそらくはレポートＳ３０に近づくまでは不明瞭である。
【００６７】
符号のラベル付けと比較すると、ある大きさを有する経路セグメントのラベル付けは比較的簡単である。第３の減縮原則（Ｐ３）によれば、ある経路セグメントの大きさを、そのセグメントの長さにほぼ比例して決定することができる。最も一般的に使用されている長さ寸法はユークリッド距離√（Δｘ２＋Δｙ２）、であるが、コンピュータ的により簡単な方法または同種のものを、様々な他の実施形態において実装してよい、及び／あるいは増加(augment)してよい。図２の信号ストリーム２０４で示した例示的な大きさは、少しだけ変更した絶対距離寸法によって生成される。この絶対距離寸法は、潜在的な回転の反転に近い動作を弱めるものである。しかし、そのような拡張はすべての実施形態に設ける必要なない。
【００６８】
方向、キラリティ、及び、符号
【００６９】
前項の原則は、特定の入力動作に与えられた前の状態からの、例示的な符号の変化についての概略を示すが、これまでのところ、変化させる初期状態を決定する議論は行っていない。初期化すべき１つの状態変数は、出力符号のラベルである。反転について既に説明したように、通常、直線動作は回転動作よりも速く決定することができる。これは、ユーザが認識する精度レベルに対して、回転動作を複数の直線動作に分解することができるからである。図２の経路２０６を形成する様々なセグメントをそれぞれ、例えば、レポート間の２次元回転移動に近似する直線と考えてよい。回転動作よりも直線動作からの符号を決定することによって、初期符号を決定する際の遅れを減らすことができる。この符号初期化の原則をテーブル２に要約する。
【表２】
2007535726.tif 000013
【００７０】
垂直に配列した出力変数に適切な符号の初期化技術の例を図３に示す。この技術によれば、最初の上方向移動３０２は、最初の正の符号を生成すると定義され、一方で下方向移動３０４は最初の負の符号を生成すると定義される。図３に示す移動３０２および３０４の両方の回転方向は、双方の最初の符号に一致する点に留意されたい。つまり、経路３０２および３０４が両方とも反時計方向動作を描いたとしても、経路３０２は最初に上方向に移動したために正であり、パス３０４は最初に下方向に移動したために負である。それでもなお、本例は、異なる符号と同じ回転方向とを関連付ける必要性、あるいは同様に、異なる回転方向と同じ符号とを関連付ける必要性を示す。
【００７１】
したがって、初期化すべき別の状態変数は、符号と関連付けられた回転方向を表す。ある１つの符号は、別の、関連付けられた回転方向を有することができるために、また、ある１つの符号は回転方向よりも速く推測できるために、回転方向とある１つの符号との関連付けを、最初の符号発見ポイントを超えて遅らせてよい。用語“レイジー”は多くの場合、決定を遅らせるコンピュータアルゴリズムを説明するために用いられる。本用語を便宜上、本文に用いる。
【００７２】
より具体的にこの概念に対処するため、ある入力経路のセグメントに第２のラベル付けを行い、その回転の優先傾向(turning preference)を示すことが有益である。ある分子が平面偏光を回転する方向を示すために、化学用語を採用すると、“回転の優先傾向”、あるいはセグメントが優位に回転する方向を説明するために、“キラリティ”セグメントラベルを用いてよい。左方向の回転（つまり、反時計回り）に優先傾向がある場合は、“左旋性”（Ｌ：Levorotary）と示す。同様に、右方向の回転（つまり、時計回り）に優先傾向がある場合は、“右旋性”（Ｄ：Dextrorotary）と示す。確立したキラリティがないセグメントはラセミ（Ｒ：Racemic）と示す。
【００７３】
いくつかのデバイスと様式エントリ構造は、ラセミ状態を取り除き、キラリティと符号との間に固定した関係を選定することができる。例えば、図４は境界のあるポインティング表面４０６の右端における最初の上方動作４０２と下方動作４０４とを示す。この状態は、例えば、タッチパッドの右端に沿った並行動作を介して減縮モードに入る際に生じる。この例では、更に右側に移動することができないので、初期の上方移動４０２は必然的に左旋回キラリティを示し、下方移動４０４は右旋回キラリティを示す。その結果、表面の端部に沿った最初の移動で、出力符号とキラリティの両方の初期値を同時に定めることができる。その理由は、上方および下方移動は次の回転で、最初の符号を保持するという予測した動作を行うからである。回転することで導き出される初期符号の符号反転という複雑な状態は、様式的な幾何学制約によって回避される。
【００７４】
しかし、幾何学制約がない場合は、次の回転のどちらかの方向が最初に決定した符号と関連付けられる場合、学習可能性およびその作業面の中心付近にデバイスを維持するための自由度が高まる。これを実現するための１つの技術として、ユーザの意図を推測できるほどに十分回転するまで、最初のキラリティの決定を遅らせることである。図５は、キラリティと符号間の最初の関係を遅らせる一例を示す。この例では、“上方”移動５０２は正の符号を素早く認識でき、また、“下方”移動５０４は負の符号を素早く認識できる。しかし、キラリティは、最初はラセミの状態である。最初の回転方向で十分に回転した後、左旋回あるいは右旋回キラリティを決定してよい。上述した図４の固定スキームでは、２つの関係：Ｌ＋およびＤ−だけが可能である点に留意されたい。レイジースキームでは、２つのラセミの状態、Ｒ＋およびＲ−は、キラリティ及び符号に対して４つの可能な関係：Ｌ＋、Ｌ−、Ｄ＋、Ｄ−をもたらし、これらはそれぞれパス５０６、５１０、５０８、および５１２に対応するものである。
【００７５】
キラリティと符号との間に関係を築くために必要な回転量は、ユーザの意図が明らかになるまで関係が築かれないように大きくなければならないが、一方、ユーザの意図を無視することがないように小さなものでなければならない。このような２つの要件は矛盾してよいが、１つの可能な解決案としては、キラリティの関係を確立するために用いた回転量を、符号の反転を引き起こすのに必要な量にほぼ等しくすることが挙げられる。
【００７６】
別の複雑な問題としては、キラリティの関係を確立するには不十分な回転が次の反対方向の回転の十分性に影響を及ぼすことが挙げられる。この問題を解決するための２つの可能性として、以前の反対方向の回転を無視すること、および、前の反対方向の回転を合計し、関係を確立するために必要な次の反対方向の回転量を増やすことが挙げられる。そのような、回転を無視するのではなく合計することを好む理由は、関係が決定したことを初期の移動方向とともに記録しなくてはならないからである。これは、ユーザたちは最初の移動方向を正確にたどらないが、その方向の直観的概念(intuitive notion)は持ち続けているからである。図６は、キラリティの関係を築くには不十分ないくつかの反対方向の回転６０２、６０４、６０６、および６０８を相互に平衡させるように示す。つまり、反対方向に少し回転しただけでは、キラリティを変えるのに十分な正味の回転量を蓄積しない。関係を決定する状態がその初期状態に戻る例示的なポイントを図面の破線で示すが、等価の実施形態においてその他の技術を用いてもよい。
【００７７】
既に説明したように、遅れた、あるいは“レイジー”キラリティを割り当てるための動機付けとして、リラモーティブ方式を用いる場合、予想外の回転に関連する符号の反転を回避することが挙げられる。基本の概念は、回転により導かれる符号の反転には通常、反対方向を表すための回転ベースラインが必要であるということである。回転ベースラインを一旦確立すると、突然の方位反転といった直線の概念を介在させて、そのような回転ベースラインをなくしてよい。このマスキング効果のために、ラセミのキラリティ状態を、直線の反転上に戻すことによって、より直感的な回転の反転予測を生成する。また、介在する直線の反転がない場合には、２つの回転の反転は相対的に起きにくく、ラセミのキラリティを回転の反転上に戻し、同様に、より安定した回転の反転動作の生成をサポートする。
【００７８】
したがって、例示的なレイジーキラリティの割当スキームは、まず、直線の反転及び回転の反転後にラセミ状態のキラリティを割り当てる。回転ベースラインを確立するために用いる回転量は、回転の反転を伝えるのに必要な回転量に近似するよう、あるいは一致するように設計されてよい。一方向において不十分な回転が、関係を築くために必要な次の反対の回転量を増やすように、１方向の不十分な回転が関連性をもたらすのに必要な、次の反対方向の回転量を増やすように、ベースラインに関連する回転を適切に蓄積する。これらの例示的なキラリティと符号の関係の原則をテーブル３に要約する。
【００７９】
図７を参照すると、一連の２次元信号／レポートによって示された例示的な入力経路７００は、テーブル３にいくつかの原則を例示する。移動経路７００が開始すると、キラリティはまずラセミ状態であると仮定される（原則Ｐ２ａ）。初めは下方向に移動する。そのため、初めは負の符号値を生成する。レポートは通常反時計回りに進むので、レポート７０２付近では左旋回キラリティが確認される。レポート７０３と７０４との間で直線の反転が起きる。これは、符号が正になり、原則Ｐ２ｄによると、キラリティがラセミ状態にリセットされる／キラリティが不確定であることを意味する。レポート７０６付近では、時計回り回転が確認される。経路７００はレポート７０８の前後で反時計回り回転を開始する。これにより、レポート７１０などにおいて、キラリティを最終的にラセミ状態にリセットする（また、符号をトグリングする）。次の動作が時計回りと半時計周りとに混合しているので、時計回り回転がレポート７１２の前後で右旋回性の割り当てを調整するまで、（原則Ｐ２ｃによると）キラリティはラセミ状態のままである。図７に示す例示的な経路７００の下位部分は上位部分の鏡像である点に留意されたい。しかし本例では、経路の各部分の出力符号は同じままである。全体の効果としては、境界のない符号の付いた出力を表すための自由度の量を最大にし、入力デバイスを再センタリングする必要性を最小にすることである。
【表３】
2007535726.tif 000014
【００８０】
方向の量子化
【００８１】
既に説明した符号を取扱う手続に続いて、直線あるいは回転の反転が発生するときを判断する問題に着目する必要がある。埋め込み式を使用する１つの問題点として、反転の判断を下すために必要なコンピュータリソースを最小にすることが挙げられる。通常、この問題は、状態の簡素化の１つであり、つまり、制限されていない２次元入力の相対的なそれまでの動きから外れた動き（relative cacophony）からいくつかのキーとなる計算点を求めることである。入力方向は反転を判断するために用いられる判断基準であるので、この目的に有益であろう基本的概念は、方向を量子化するという考えである。方向を相対的に２、３の検出が可能な値に量子化すると、進行方向（ヘディング）の変化は非常に有益な計算点である。これに関連して、検出可能なヘディングの数が少なければ少ないほど、反転を判断するうえで進行方向の変化はより効率的になる。他方、量子化したヘディングが非常に少ない場合は、ユーザの意図を失う結果になるおそれがある。そのため、量子化したヘディングの数をできるだけ少なくしなければならないが、少なすぎてはならない。また本文では、量子化したヘディングを“検出可能ヘディング”あるいは“バケット”と記述する。
【００８２】
量子化 “バケット”アーティファクトを回避するため、少なくとも３つの検出可能なヘディングを反転方向において利用可能にしなければならず、その結果、各前方向のヘディングは正反対のヘディングと、アラインメントガード(alignment guard)としてその正反対のヘディングに隣接する２つの反対方向のヘディング（その反対のヘディングの両側に１つのヘディングがある：one on either side of the opposing heading）を有する。回転の進行を受信するため、少なくとも１つのヘディングを現在の前方向のヘディングの各側面に提供する必要がある。量子化したすべてのヘディングの寸法が略同じであると定義されると、２つの、進行方向を受信するヘディングは、上述した３つの反転ヘディングにより良いバランスを与える。現在の量子化したヘディングを数えると、本実施形態で用いた量子化したバケット数は８（１＋２＋２＋３＝８）である。
【００８３】
図８はコンピュータマウスあるいはその他の入力デバイスにおいて、埋め込み式の使用に適した例示的な不均一の八分円（オクタント）量子化スキームを示す。図面に示しているように、４つの軸的に配置された“基本となる方向”(cardinal direction)のバケットの大きさは任意に、散在させて対角線上に配置したバケットの２倍であると定義されており、その結果、以下に説明しているように、整数加算とシングルビットシフトによって量子化についての判断を行うことができる。この量子化スキームでは、“タイ”(ties)（バケット間で境界線に沿った方向においての移動）はより小さな対角のバケットに有利に分割される。このスキームにより、典型的にマウスレポートが遭遇する少数を用いて、バケットポピュレーションを等しくすることができる。
【００８４】
入力デバイスからのリラモーティブレポートを量子化スキームに適用することにより、近似したヘディングを簡単に識別できる。例示的なＮおよびＮＥバケットにおいて、小さな正の整数レポートの量子化した分布をテーブル４に示す。バケット間の各境界に対して類似する割当てスキームを公式化し、いずれの方向の２次元移動を特定のバケットに割り当てることができる。
【表４】
2007535726.tif 000015
【００８５】
量子化したヘディングを与えると、過去の入力から維持されている固定されたヘディングと、過去の入力および現在のレポートとから形成された、提示されたヘディングとをただ比較するだけで、デバイスレポートを処理する間に符号およびキラリティの反転の判断を行ってよい。直線の反転の判断を直接示すことができるのは、固定されたヘディングと提案されたヘディングとが、３つ以上のオクタントによって異なる場合である。例えば、固定されたヘディングと提案されたヘディングとが、１つのオクタントによって異なる場合、回転動作を示す。２つのオクタントの違いを１オクタント差にまでリラックス（relax）できる。その理由は、次の動作がリラックスした進行を続けるからである。以下にさらに詳細を説明しているように、回転動作は現在の符号を変化させず、一方で、回転の反転は符号の反転を引き起こす。このような一般的な概念のそれぞれは例示的なものであり、様々な別の実施形態において、変形、補足、あるいは、置換えることができる。
【００８６】
ほとんどの場合で、提示されたヘディングは次のレポート用に固定されたヘディングとなる。しかし、オクタントの進行ルールを少しだけ変えることによって、直線および回転の反転の両方を判断するための一体化したメカニズムが生じる。この変更により、現在優先するキラルの方向において、１つのオクタントのヘディングだけを変えることができる。ヘディングを変えることが出来るかどうかに関わらず、判断に関する統計が更新される場合、現在のキラリティとは反対の回転が、最終的には、固定されたヘディングと提示されたヘディングとの間に３オクタントの違いをもたらす。３オクタントの違いが発生すると、直線の反転ルールだけを用いて回転を識別する。上述した方向ルールからの、例示的な一体化した符号を表５に要約する。
【表５】
2007535726.tif 000016
【００８７】
量子化したヘディングを進行させるための既に説明したルールは、直線および回転の反転の判断を一体化する。しかし、直線の反転を判断する際の基本的な不明瞭さに疑問が残る。ポインティングデバイスの軌道を人間が正確に反転させるのは非常に難しいので、軌道の反転が、反転軸に垂直の少なくともいくつかの動作を含むのは非常に一般的である。さらに、反転動作が速ければ速いほど、そのような動作はより不正確なものになる。第２の困惑させる要因として、ポインティングデバイス自体にわずかな不正確さが存在するということが挙げられる。一貫性のある結果をもたらす最小の直径において回転移動するという、人間のもう１つの傾向により、このような不正確さは重大な問題になる。
【００８８】
このような２つの人間の傾向は相反するものである。その理由は、一方では、より大きな直線移動の下では通常、小さな直径の回転は無視されるからである。他方、その他の小さな直径の回転の下で、小さな直径の回転は通常無視されない。このような予測できない変化（vagary）は、２つの連続した近似ヘディングから反転の判断を下す単純な計算モデルとともに、デバイスノイズあるいは人間の不正確さに起因して変化しない近似へディングの重要さを強調する。
【００８９】
不正確さとノイズによる影響を減らすための第１の原理として、量子化したヘディングは、新しい方向において、次の十分に一貫性のある動作の後でのみ変化することが挙げられる。一貫性のある動作は複数のデバイスレポートから蓄積できるので、十分量を徐々に増やしていく必要があるかもしれない。計算の簡素化のため、十分量を確立するために、単一のスカラ値を用いることが望ましい。したがって、十分量に関する判断を下すために、確実に一貫性のある情報だけを用いる機構が求められている。
【００９０】
動きを一貫性のあるものとするために、動作は１つの意図との互換性を有していなければならない。反時計回りに互換性のある動作は、例えば、現在のオクタントとそのオクタントに最も近接した２つの左旋性隣のオクタントに位置する。反対に、時計回りに互換性のある動作は、現在のオクタントとそのオクタントに最も近接した２つの右旋性隣のオクタントに位置する。反転を意図としたものと互換性のある動作は完全に現在のオクタントと反対の３つのオクタントに位置する。充分性アキュムレータ(sufficiency accumulator)の現在の中身と互換性のないいずれかの動作は、当該アキュムレータをクリアする。主に現在のヘディングの方向に向かう動作もまた、充分性アキュムレータをクリアしなければならない。このような例示的なヘディングの進行原則を表６に要約する。
【００９１】
既に述べたように、１つの状況で目的を確立するために十分な動作は、別の状況では不十分であるおそれがある。このことは適応進行充足判断基準（adaptive progression sufficiency accumulator）の必要性を示す。考慮すべき２つの影響は、デバイスの不正確さと人間の不正確さである。与えられたデバイスの不正確さは幾分か修正され、その結果、適切な判断基準は修正した要素を含む必要がある。人間の不正確さは変わりやすく、移動速度が高まることによって不正確さが増す。従って、速度に依存した充足要素(speed-dependent sufficiency component)も有益である。
【表６】
2007535726.tif 000017
【００９２】
速度に依存した充足要素は、速度が増加すると比較的速く速度変化を追跡しなければならない。しかし、速度は相対的に、不正確さよりも速く減速する。これは、本来、加速よりも減速を制御することがより困難であるためである。したがって、速度に依存した充足要素は、比較的ゆっくりと減速することだけを可能にしなければならない。このような例示的な進行の充足の原則を表７に要約する。
【表７】
2007535726.tif 000018
【００９３】
進行の充足の判断基準を減らすための、コンピュータ的に効果のある方法は、量子化したヘディング変化の現在の速度方向の判断基準を徐々に消すことである。
この方法はまた、レポートレートなどのデバイスの予測できない変化に大いに依存し、また、時間ベースのエバネセント（evanescent）スキームに優先される。
【００９４】
距離と大きさ
【００９５】
既に説明した減縮の原則が求めることは、１次元の出力変数の大きさが２次元の移動距離にほぼ比例するということである。既に説明した出力符号の取扱い原則に関連して、この比例原則のリラクゼーション(relaxation)は有用性を有してよい。主な問題点は、ある状況では動作の意図が曖昧であるおそれがあることである。更に、不正確に解釈される曖昧な動作により、ある状況が予想外の出力をもたらすおそれがある。
【００９６】
各要因が最も不利に組み合わせられた状況は、回転によって導かれる符号の反転である。これは、反対の角度に大きく回転するまで、回転の反転を検出することができないためである。回転の直径が非常に大きい場合、回転の反転が開始するポイントと回転の反転を検出するポイント間に多量の１次元出力を生成してよい。これにより、現在の出力符号の方向で、かなりのオーバーシュートをもたらすおそれがある。
【００９７】
方向の曖昧さの改善をサポートする一般的原則は、現在のオクタント方向にある入力動作のコンポーネントだけを出力するために蓄積することである。これは、入力レポートと現在のオクタント方向を向いた標準ベクトルとのドット積を実施することで行うことができる。計算を簡素化するために、標準ベクトルをゼロと１との様々な組み合わせに限定してよい。例えば、“北”の標準ベクトルを（０，１）と定義し、“北東”の標準ベクトルを（１，１）と定義してよい。同様に、任意のいずれの基準に割り当てられた様々なヘディングを使って、どのような方向性スキームを適用してよい。本文中の標準の方向に関する記載は、単に例示と参照の便宜化を目的としたものであり、実際には、様々な等価の実施形態において、いずれの座標および／あるいは方向システムあるいは配置を用いることができる。
【００９８】
最も一般的な状況では、移動した入力距離よりも遅く出力が蓄積することが望ましい。これは通常、単一の出力ユニットが１以上のピクセルによって直線のＧＵＩ表示を変化させるからである。例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓのオープニングシステム上で、ＷＭ＿ＭＯＵＳＥＷＨＥＥＬメッセージを用いて垂直スクロールを実行すると、単一のホイール情報ユニットに対する通常のアプリケーション応答は、数ラインのテキストに相当する距離分をスクロールすることである。この動作は、マウスホイールを介してスクロール出力を生成する際には適切であるが、マウス自体がスクロール出力の生成を減らす場合は幾分か混乱させるものである。マウス動作を介してスクロールする場合、ユーザは、特定の動作速度を与えると、ウインドウコンテンツはスクロールする場合にピクセル空間においてカーソルがポインティングする時と同じくらい速く動くと予想する。
【００９９】
したがって、低減した出力と１次元のＧＵＩナビゲーションに影響を及ぼすために実際に用いられる機構との間に、ゲイン一致スキームを介在させることが有益である。減縮モードは従来利用可能なものよりも高いダイナミックレンジを提供するので、既存のナビゲーション機構にゲインを一致させるには通常、減縮出力を弱めること、つまり１未満のゲインを適用することが求められる。
【０１００】
整数演算を介して分数ゲイン（fractional gain）を適用するための標準技術は、分数ユニットを蓄積することである。アキュムレータベースと呼ばれる閾値に到達するまで、マッチング変数は入力ユニットを蓄積する。アキュムレータベースを超過すると、アキュムレータをそのベース(基数)で割り、その商は分数ゲインの整数出力になる。その除算の余りをアキュムレータに残す。効率性の理由から、分数基数は通常２の累乗であり、そのために、除算をバイナリシフトで実施してよい。多くの１次元ナビゲーションタスクに対して、最小ナビゲーション単位は、１ラインのテキストである。従って、有益な分数ゲインは通常のフォントサイズに反比例する。
【０１０１】
減縮モード(reductive mode)は非常に優れたダイナミックレンジを提供するので、より高パフォーマンスを表す状況においてもバリスティック関数を適用することができる。例えば、有益なナビゲーションツールであれば、アテンションポイントを長い文書の一方の端部からもう一方の端部まで移動させることができる。このタスクを実現するために、十分に非線形の弾道は急速な動きの減少を可能にする。２乗した弾道(square-law ballistic)の一例を数１０に示す。任意に、最大リラモーティブデバイス座標の大きさを１２８、絶対距離測定、および、分数アキュムレータ基数８を選択すると、本実施形態において、約３２のシングルレポートから最大出力を生成する。その結果、単純な２乗した弾道、
【数１０】
2007535726.tif 000019
はダイナミックレンジを約３２倍拡張する。
【０１０２】
実施形態の詳細な説明
【０１０３】
組み込み式のマイクロコントローラあるいはその他のプロセッサによって好適に実行される、最適化された符号減縮マッピング法(optimized signed reductive mapping)を図９から図２５に示す。例示的方法は、割り算の結果、整数商だけが残るように整数演算を用いる。また、できるだけ２の累乗で乗除算を実行し、そのため、ビットシフトを用いることによって、乗除算を行うことができる。このような特徴は任意のものであり、すべての実施形態に備わっていなくてよい。
【０１０４】
簡素化のため、本文中に示し議論している例示的フローチャートは、より高いレベルのプロシージャが用いる前に低レベルのプロシージャで階層的に順序付けられている。各フローチャートには名前がつけられており、これらの名前を通じて、各プロシージャは相互に参照される。プロシージャの定義とそのユースポイント(point of use)の両方においてプロシージャパラメータ名が同じ名前を有する場合、プロシージャパラメータは参照によって通過でき、そうでない場合は、値によって通過できる。同様に、様々な等価の実施形態は以下の詳細な実装品とは異なってよい。
【表８】
2007535726.tif 000020
【０１０５】
例示的方法では、２次元リラモーティブ入力変数の操作を行い、それに応じて符号付き１次元出力変数を生成する。２種類の内部状態が維持され、１つは、１つのレポートから別レポートが発行されるまでは変わらない、つまり固定された状態、もう１つは、１レポート毎に変化する状態である。本実装品において、すべての状態変数は最大で１６ビットの整数表示内に適合するように設計されている。その他の実装品はこれと異なる設計がなされてよい。テーブル８に、１１の固定された状態変数の名前および定義を示す。図９は例示的な局所変数を示す。本文中におけるこのような状態変数のすべての名前は、長さが１文字である。固定変数名は大文字で、局所変数名は小文字である。双方の名前の種類は、変数の用法に関する付加的情報を提供する、大文字のギリシャ文字の接頭辞を含んでよい。
【表９】
2007535726.tif 000021
【０１０６】
テーブル１０に、例示的フローチャートで使用する所定の定数を示す。所定の定数の全名前は、長さが１文字あるいは２文字であり、大文字である。すべての定数は基礎となる整数表示を有しており、その例示的な値もテーブル中に示す。該方法を用いるデバイスの特徴に応じて、特定のその他の所定の定数は異なる値を有する。このようなデバイス依存パラメータの値をフローチャートの説明の次に与える。
【表１０】
2007535726.tif 000022
【０１０７】
図９は、８つの検出可能なオクタントヘディング（possible octant heading）のうちの１つに動作レポートを量子化するための一般的なプロシージャを示す。各オクタントの名前を、羅針盤の方位メモリの略語によって示す。従来、ユーザから離れて配置されるのが北（North）であり、ユーザの右側に配置されるのが東（East）である。５つあるいはそれ以下の整数比較によってこの量子化を実現する。第１の比較により、左右のどちらに移動するかどうかを決定する。次の比較では、傾斜が１／２（２分の１）、−１／２（マイナス２分の１）、２、および−２の４本の線を用いて、入力面（input plane）を分割する。これらの４本の線は、図８に示す分割ポイントに対応する。方向レポートが分割線上に落ちる場合、比較はより小さなオクタントを優先するようになっている。
【０１０８】
図１０は、オクタントヘディングを用いて動作レポートのドット積を行うための例示的プロシージャを示す。符号の付いた直交入力の様々な組み合わせから整数の結果を形成する。用いる組み合わせを選択するのはオクタントヘディングである。入力動作レポートが入力オクタント内にある場合、各直交方向の絶対値の合計がその結果である点に留意されたい。しかし、オクタントに対して直交の動作は結果がゼロになり、オクタントに対して逆方向の動作はマイナスの結果になる。
【０１０９】
図１１は、入力レポートを正規化する例示的プロシージャを示す。これに関連して、標準のレポートは、入力と同じオクタント内にある最小の整数レポートである。このプロシージャではまず、入力レポートがあるオクタントを、すでに説明したＱｕａｎｔｉｚｅ（）プロシージャを呼び出すことにより決定する。リターンした(returned)オクタントは、０と±１の正しいペアを選択する。
【０１１０】
図１２は、別のオクタントに特定の回転関係を有するオクタントを探し出すための例示的プロシージャを示す。ＦｉｎｄＲｅｌａｔｅｄ（）プロシージャの第１パラメータは、関係するオクタントを見つけるためのオクタントである。第２パラメータは、オクタントの整数として表される所望の回転関係である。正の回転関係は反時計周りを、負の回転関係は時計周りを特定する。入力オクタントと整数の回転関係を合計することで、暫定的な結果が得られる。結果がオクタントの最大表示可能数（largest possible octant representation）を超える場合は８を引く。結果が最小表示可能数（smallest possible octant representation）に満たない場合の場合は８を足す。
【０１１１】
図１３は、２つのオクタント間の回転距離を定めるための例示的プロシージャである。各オクタントの距離を計測し、符号を付ける。この２つのソースオクタントを引き算することで、暫定的な結果が得られる。距離が−４未満の場合は８を足し、距離が４以上の場合は８を引く。これにより、２つの検出可能な回転距離のうち距離の短いオクタントを返す（リターンする）効果がある。
【０１１２】
図１４は、多くの動作の合計を表す固定状態変数(persistent state variable)に動作レポートを加算するための例示的プロシージャを示す。まず入力レポートの各座標を、そのそれぞれの合計に加算する。両方の合計がゼロの場合はその合計をレポートに置き換える。適切に量子化を行うために、各ヘディングは少なくとも１つのゼロでない座標を有することが必要であるために、これによって、次の不適切な量子化を回避する効果がある。
【０１１３】
図１５は、１つのオクタントが別のオクタントの方へリラックスするための例示的なプロシージャを示す。各オクタント間の回転距離が２に等しい場合にだけリラックスする。第1パラメータが特定したオクタントは、第２パラメータが特定したオクタントの方へリラックスする。この２つの間の半分の回転距離によって第１パラメータに関係するオクタントを見つけることにより、リラクゼーションを実現する。Ｄｉｓｔａｎｃｅ（）プロシージャを用いて回転距離を計測し、ＦｉｎｄＲｅｌａｔｅｄ（）プロシージャを用いて関係するオクタントを見つける。
【０１１４】
図１６は、最初に量子化したヘディングがその他の２つのヘディングと互換性があるかどうかを判断するための例示的プロシージャである。互換性とは、第２および第３のオクタントが両方とも、第１オクタントとは逆方向である、あるいは、第２および第３のオクタントが両方とも、第１オクタントに対して回転方向が同じであることを意味する。より形式的な用語で言えば、第２および第３オクタントがどちらも、第１オクタントから２オクタント以上離れている、あるいは、第２および第３オクタントが両方とも、２オクタント以下だけ第１オクタントの同じ側面から離れている場合に、互換性が示される。第１と第２オクタントおよび第１と第３オクタント間の回転距離を取得することにより、演算処理を行う。これらの距離を３分割し、商を比較する。分割した距離が異なる場合、非互換性が示される。そうでない場合は、２つの距離の符号を比較する。符号が同じ場合、互換性が示される。そうでない場合、２つの距離の大きさを合計する。合計が４以上の場合は互換性を示し、合計が４以下の場合は非互換性を示す。
【０１１５】
図１７は、現在のオクタントを候補オクタント(candidate octant)に進めるために、候補オクタントの方向に十分な動作が蓄積されたかどうかを判断するための例示的プロシージャを示す。このプロシージャにより、進行した場合は変化しない候補オクタント、あるいは、進行しなかった場合は現在のオクタントにリセットする候補オクタントが生じる。このプロシージャはまず、現在のオクタントと候補オクタントとを比較する。これらのオクタントが同一である場合、あるいは、これらのオクタントが非互換性である場合に、現在の動作レポートから新しい候補ヘディングを取得する。副作用として、オクタントアクティブティアキュムレータがクリアされる。次に、変化した、あるいは、変化していない候補オクタントを再度現在のオクタントと比較する。これらの２つのオクタントが同一である場合、プロシージャを出る前に、より大きな現在のアクティビティ閾値(octant activity threshold)で更新する、あるいは、現在の瞬間速度でアップデートする。この閾値のアップデートプロシージャはその他すべてのプロシージャ出口経路パスからも呼び出される。
【０１１６】
以前の比較で現在のオクタントと候補オクタントとが異なる場合、オクタントアクティビティアキュムレータを更新し、その結果をデバイスファミリースペシフィックゲインパラメータで増加したアクティビティ閾値に対してスケーリングと比較とを行う。アキュムレータが閾値未満の場合、プロシージャを出る前に候補オクタントを現在のオクタントに設定する。そうしない場合、候補オクタントを保持する。保持した候補オクタントを戻す前に、蓄積したデルタを正規化し、アクティビティ閾値をアクティビティアキュムレータ値に設定し、そのアクティビティアキュムレータをクリアする。アクティビティ比較はスケーリングしたアクティビティ値を用いるので、アクティビティ閾値をアクティビティアキュムレータ値で置き換えると、アクティビティ閾値をゼロに近づける効果がある。
【０１１７】
図１８は、キラリティと符号とを関連づける例示的プロシージャである。オクタントのヘディングが変わるたびに、現在のオクタントと候補オクタントとをパラメータとしてＡｓｓｏｃｉａｔｅ（）プロシージャが呼び出される。このプロシージャの副作用としては、現在のキラリティに反対する、１つのオクタントの方向変化を無効にすることが挙げられる。このプロシージャではまず、２つのオクタント間の回転距離を算出する。絶対距離が３以上で、反転が継続していることを示す場合、キラリティアソーシエーションカウンタ(the chirality association counter)をリセットし、現在のキラリティをラセミ状態に設定する。全ての出口経路の場合と同様、この距離結果が返される。
【０１１８】
絶対回転距離が１に等しい場合は、現在のキラリティ状態について判断を行う。現在のキラリティがラセミ状態である場合、キラリティアソーシエーションカウンタは増加し、その値が３以上の場合、現在のキラリティはキラリティアソーシエーションカウンタの符号に設定される。現在のキラリティがラセミ状態でなく、現在のキラリティとオクタント距離の符号が異なる場合、候補オクタントを現在のオクタントに置き換えることで、提案されたオクタントの進行を無効にする。その結果発生する距離は、出る前にゼロにされる。
【０１１９】
図１９は、量子化された現在のヘディングをアップデートするために、動作レポートを用いるための例示的プロシージャを示す。まず、動作レポートから動作の合計アップデートする。動作の合計から候補オクタントを取得し、動作レポートから最新のオクタントを取得する。オクタントが十分にアクティビティを行えるよう、候補オクタントをフィルタリングし、次に、リラックスする。最後に、キラリティを適切に関係づけるために候補オクタントをフィルタリングし、現在のヘディングを候補ヘディングに置き換える。アクティビティと、関連する（アソシアティブ）フィルタリングが、現在のオクタントと置き換えられる候補オクタントをもたらす点に留意されたい。そのような状況では、量子化した最新のヘディングは変化しないままである。
【０１２０】
図２０は、最初の動作方向と最初のキラリティから、方向に関連する固定された減縮状態を初期化するための例示的方法を示す。動作の合計をクリアし、量子化した最初のヘディングを取得する。続いて、アクティビティアキュムレータ、アクティビティ閾値、および、キラリティアソーシエーションカウンタをクリアする。最後に、現在のキラリティを提供された最初のキラリティに置き換える。
【０１２１】
図２１は、提供された動作レポート、符号、及びオクタントヘディングから、１次元の分数出力アキュムレータをアップデートするための例示的プロシージャを示す。アキュムレータは、動作レポートのドット積、および、符号とコンテキスト依存ゲインパラメータ(context dependent gain parameter)を掛けたオクタントヘディングで増大される。その結果として生じるアキュムレータ値が返される。
【０１２２】
図２２は、画分出力アキュムレータの整数部分を抽出する例示的プロシージャを示す。アキュムレータをその基数で割り、ゼロに近づくように結果を丸めることで整数部分を取得する。その基数を掛けた、抽出した整数部分を引くことで、分数分をアップデートする。
【０１２３】
図２３は、供給された抽出した整数出力から初期符号を感知するための例示的プロシージャを示す。副作用としては、供給された出力符号、出力画分アキュムレータ、および、変換状態が更新されることが挙げられる。供給された整数出力がゼロの場合、いずれのアクションも実行せずにプロシージャは終了する。そうでない場合、供給された変換状態変数がキラル状態へとアップデートされる。次に、提供された符号が提供された整数出力と比較される。これらの２つの値の符号が同じ場合、提供された動作レポートが用いられ、ラセミ状態のキラリティで、方向に関連する固定された減縮状態が初期化される。そうでない場合、提供された符号と画分アキュムレータとは、固定された状態が初期化される前に無効にされる。
【０１２４】
図２４は、１次元の結果を生成するために、供給された動作レポートの次元を減らすための例示的プロシージャを示す。方向に関連する固定状態を初期化するために、供給された軸パラメータを用いる。供給されたモーダル記述子は、減縮した状態を初期化する必要があるときを指示する。その記述子が真であり、方向に関連する状態が供給された動作レポートとともにラセミ状態に初期化される場合、出力符号は垂直軸に対して負に初期化され、水平軸に対して正に初期化される。出力アキュムレータはクリアされ、また、内部の変換状態変数はIに設定される。次に、画分出力は蓄積され、整数出力が抽出される。続いて、変換状態変数がIの状態にある場合、符号の感知を行う。符号検知は、ゼロでない整数出力が以前の抽出で生成される場合に、変換状態変数をCの状態に発展させるという副作用を有する。これにより、供給された様式的記述子が減縮状態の初期化を強要するまで、符号の感知を停止するという効果がある。各プロシージャが呼び出されると、蓄積、抽出、符号感知経路を実行する。
【０１２５】
供給されたモーダル記述子が偽である場合、変換状態変数はCに設定され、現在のオクタントヘディングが更新される。更新されたものが３オクタント以上の大きさで回転する場合、出力信号は反転する。変換状態変数がIに設定されている限り、方向は更新されない点に留意されたい。これにより、最初の整数出力が生成され、最初の符号が感知されるまで、蓄積される出力を、軸に沿った入力動作によって生成されたものに限定する。
【０１２６】
図２５は、拡張された様式的情報で増大されたデバイスレポートの流れをモニタリングし、ポインティングのために、あるいは２つの異なる１次元のＧＵＩタスクのためにデータをディスパッチするための例示的プロシージャを示す。拡張した様式的情報により、垂直方向のＧＵＩタスクを実行することが特定される場合、垂直方向に減縮するためにレポートをディスパッチし、タスクを実行するためにその結果を用いる。拡張した様式的情報により、垂直方向のＧＵＩタスクを実行することが特定される場合、水平方向に減縮するためにレポートをディスパッチし、タスクを実行するためにその結果を用いる。そうでない場合、ポインティングのためにレポートをディスパッチする。減縮のためにレポートをディスパッチする場合、内部の状態変数が維持される。この状態変数は、ポインティングレポート後の第１の減縮レポートについて真である。この状態変数は内部の減縮状態を初期化するために用いられる。
【０１２７】
図９から図２５の方法は、リラモーティブオペレーションが可能ないずれのポインティングデバイスとともに使用するために設計されている。方法のいくつかのパラメータは種類の異なるデバイスを用いて最適なオペレーションを行うことができるよう、調整可能である。テーブル１１は、マウスを用いた使用に適したこれらのパラメータの値を一覧にしたものである。テーブル１２は、Ｓｙｎａｐｔｉｃｓ，Ｉｎｃ．が製造したタッチパッドを用いた使用に適した値を示す。
【表１１】
2007535726.tif 000023
【０１２８】
この２つのデバイスの違いは主にゲインに関連する。タッチパッドはマウスよりも感度が高く、そのため、同様の感触（feel）をもたらすよう、画分アキュムレータ基数はさらに大きい。同様に、オクタントアクティビティゲインパラメータもまた大きい。通常、タッチパッドはマウスよりもうるさいので、ゼロでないタッチパッドのアクティビティノイズパラメータはオクタントアクティビティを徐々に減らし、進行に十分なアクティビティの蓄積をさらに困難にする。
【表１２】
2007535726.tif 000024
【０１２９】
両方のデバイスの出力画分アキュムレータゲインは１であるが、減縮モードの全体的な感度を調整するために異なってよい。通常、このパラメータは、コンフィギュレーションインターフェースを介してユーザベースでカストマイズされる。
【０１３０】
状態進行ダイアグラム
【０１３１】
図２６から図２９は、以前に説明した減縮プロシージャをいくつかの例示的な２次元経路に応用した結果を示す。各図面は例示的な経路と状態進行テーブルを含む。状態進行テーブルは、経路を処理したときの減縮状態の進行を示す。状態進行テーブルの左端列は経路の第１セグメントに対応し、右端列は最後のセグメントに対応する。図示している固定された状態値は、関連する経路のセグメントを処理した跡に推測されたものである。
【０１３２】
図２６は２つの垂直方向経路に対する初期符号の発見を示す。１つは大きく上方（北）に移動し、１つは下方（南）に大きく移動する。両方の場合で、最初の南方向と最初の負の符号で減縮プロシージャを初期化する。変換状態変数を最初にＩに設定する。これは、初期符号が発見されるまではキラルの進行が可能ではないことを示す。
【０１３３】
南へ向かう経路に対して、最初に正に変化した後、画分出力アキュムレータは次第に負になる。これは、最初の南方向のオクタントの正のドット積と南方向の動作が最初の負の符号で無効にされるからである。第５番目の経路セグメントまでに、整数出力を生成するために十分な画分出力が蓄積される。この点で、変換状態はキラルに変わり、回転の進行が可能になる。しかし、最初のヘディングと入力経路は一致することから、量子化されたヘディングは変更しない。整数出力は負であり、そのため、出力符号も変化しない。
【０１３４】
北へ向かう経路に対して、最初に負に変化した後、画分出力アキュムレータは次第に正になる。これは、最初の南方向のオクタントの負のドット積と、大きく北方向に向かう動作が、最初の負の符号で掛け算を行うことで正になるからである。第５番目の経路セグメントまでに、正の整数出力を生成するために十分な画分出力が蓄積される。北方向の移動が整数出力を生成するので、キラルの量子化したヘディング(chiral quantized heading)はＮに設定される。整数出力は正であり、よって、符号状態変数も正を反映するものである。
【０１３５】
図２７は直線方向の反転を含む、例示的な入力経路を示す。この方向の変化により伝えられた出力符号の変化は関連する状態進行テーブルにおいて太線で区別されている。このテーブルから留意すべき第１の点として、３行目と４行目の部分的に蓄積されたデルタは常に正規化されていることが挙げられる。これは、オクタントの進行中及び最新のオクタントと正規化されたオクタントが非互換性である場合はいつでも正規化が行われるからである。留意すべき第２の一般的なパターンとして、現在のオクタントは最新のオクタントをわずかに遅らせる傾向があるという点である。これは、オクタントを進行させるのに必要な動作量は、１つのレポートで利用可能な動作量を超えるおそれがあるからである。例えば、セグメント３はＳＥに対してのものであるが、同じくＳＥである次のセグメント４を処理するまで、量子化したヘディングはＳからＳＥへ適応しない。オクタントアクティビティが進行の閾値を十分に超えた場合だけ適応する。直線反転符号はセグメント１６で変化し、ここではオクタントヘディングが反転する。セグメント１８までは正の整数出力は生じない点に留意されたい。
【０１３６】
図２８は８の形をした入力経路と状態進行テーブルを示す。状態進行テーブルは、１つ以上の入力経路の横断に対応する。２つの回転符号の反転が生じ、それぞれ経路の北方向のセグメントで反転する。キラリティを確立するためには３つのオクタントの変化が必要である点に留意されたい。各キラリティを関係付けた後(chirality association)、回転が反転し、確立したキラリティに反対すると、現在のヘディングを固定する。移動方向が別の３つのオクタントを回転させると、反転が起きる。従って、全体としては、６オクタントの回転ごとに反転し、あるいは、図面が横切るたびに２回反転する。図面が１回以上横切る場合は、開始位置で反転を記録し続ける点に留意されたい。
【０１３７】
図２９は速度に関連する進行マスキングから生じる直線の反転を示す。最初に高速回転した後、より高速な直線動作と、連続する、よりタイトで低速な回転が続く。高速動作は、オクタントを進行させるには不十分なアクティビティを次のより遅い回転が生成するよう、オクタントアクティビティの閾値を高める。経路はＮからＮＷ、Ｗ、ＳＷへと回転するので、現在の量子化したヘディングはＮにとどまる。高められたアクティビティ閾値を克服するには、次の継続した南方向の動作だけで十分であるが、そのときまでにＮとＳ間の４つのオクタントの差異で直線の反転が生じる。
【０１３８】
図２９の回転を図２８の回転が導く反転と区別しなければならない。図２９の反転は図２７で示したものに類似している。完全な軌道の反転を人間が実行するのは非常に困難であり、そのために、ほとんどが少なくとも少しの垂直回転動作を含む。図２９に示すラピッドスローイング(rapid slowing)は相対的に高いアクティビティ閾値を残し、直線の反転中に許容される垂直動作量を増加する。
【０１３９】
任意の特徴
【０１４０】
これまでに説明したリラモーティブ減縮モードの潜在的な難点として、どちらかの動作方向およびどちらかの回転方向が時としてどちらかの出力符号に結び付けられる点が挙げられる。このことは、実施される１次元のＧＵＩタスクが提供するビジュアルフィードバックが連続性をもたらすことから、継続動作にとっては特に目立ったことではない。つまり、継続するユーザアクションは同じ方向の移動を作り出し、反転は反対方向の移動を作り出す。しかし、ポインティングデバイスが連続的でない移動バースト(non-continuous bursts of movement)に動くと、この連続性は失われ、所望の結果を作り出す動作方向を記憶することをより困難にする。したがって、ポインティングデバイスが不活動（インアクティブ）となるある期間の後、減縮モードを初期状態にリセットすることを望むユーザもいる。この期間の長さは個人の好みによって決まり、また、様々な値となりうる。
【０１４１】
更に、より単純であるがパフォーマンスはより低いオプションは符号の付いていない減縮モードを使用する。拡張した様式的情報を通じて入力したときに、あるいは、最初の移動方向によって、符号が確立される。どちらの場合でも。符号は各モードの起動のために固定される。出力の大きさは依然として入力距離に比例し、境界のない出力を可能にする。
【０１４２】
本文に説明した幅広い概念に対して、多くのその他の変形および拡張を実施してよい。さらに、本文中に説明した技術を幅広いコンピュータ環境にわたって、また、多様な入力デバイスとともに用いてよい。
【０１４３】
前述の詳細な説明で少なくとも１つの実施形態を示しているが、当然のことながら多数の等価のバリエーションがあってよい。当然のことながら、例示した実施形態は単なる例であって、発明の範囲、応用性、あるいは構造をどのようにも限定しないことを意図する。むしろ、前述の詳細な説明は当業者に例示の実施形態を実装するための便利なロードマップを提供するものであり、機能や要素の配置に関して、添付の請求項に説明した発明の範囲、およびそれらの法的な等価性から逸れることなく様々な変化がなされることが理解される。
【図面の簡単な説明】
【０１４４】
【図１】アクティブ状態の垂直スクロールバーと非アクティブ状態の水平スクロールバーを備えた従来のＧＵＩウインドウの説明図。
【図２】例示的な入力経路とその次元を縮退した出力変数の説明図。
【図３】最初の移動方向から割当てられた例示的な最初の符号の説明図。
【図４】例示的な固定されたキラリティの関係の説明図。
【図５】例示的なレイジーキラリティの関係の説明図。
【図６】どのようなキラリティの関係が連続する回転を求めるかについての一例を示した説明図。
【図７】例示的なリラモーティブキラルマッピングの説明図。
【図８】関連する方向パラメータの実効的な計算に適した、８つの例示的な近似ヘディング、つまりオクタントの説明図。
【図９】動作レポートに最も近似するオクタントヘディングを確立するための例示的フローチャート。
【図１０】動作ベクトルとオクタントヘディングから１次元出力変数の付加的変化を確立するための例示的フローチャート。
【図１１】オクタントヘディングから正規化した動作ベクトルを生成するための例示的フローチャート。
【図１２】所与のオクタントヘディングと回転量から関連するオクタントヘディングを見つけるための例示的フローチャート。
【図１３】１つのオクタントヘディングから別のオクタントヘディングへ移動するために必要な回転量を求めるための例示的フローチャート。
【図１４】フィルタリングされた有効な移動方向を取得するために、部分的に動作レポートを積分するための例示的フローチャート。
【図１５】反転に必要な量よりは少ないが１オクタント以上の方向の変化を、ちょうど１位オクタントにリラックスするための例示的フローチャート。
【図１６】３つの近似ヘディングは互換性があるかどうかを判断するための例示的フローチャート。
【図１７】オクタントヘディングを変えるかどうかを判断するアクティビティの統計を蓄積するための例示的フローチャート。
【図１８】１次元極性をキラリティと関連づけるための例示的フローチャート。
【図１９】オクタントヘディングの変化量を決定するための例示的フローチャート。
【図２０】縮退状態変数を初期化するための例示的フローチャート。
【図２１】動作レポートと現在の符号から１次元出力変数を増加させるための例示的フローチャート。
【図２２】ＧＵＩサブシステムに運ぶために１次元出力変数の積分部分を抽出するための例示的フローチャート。
【図２３】一連の動作レポートから最初の符号を感知するための例示的フローチャート。
【図２４】一連の２次元動作レポートを一連の１次元ＧＵＩ変数レポートに縮退するための例示的な全体のフローチャート。
【図２５】マウスレポートの流れをモニタリングし、２次元と１次元のＧＵＩタスク間を様式的に切り替えるための例示的な全体のフローチャート。
【図２６】最初の符号を感知するために用いる例示的な状態変数の進行を示した説明図。
【図２７】例示的な直線によって導かれた符号反転から生じた状態変数の進行を示した説明図。
【図２８】例示的な回転によって導かれた符号反転から生じた状態変数の進行を示した説明図。
【図２９】適用した直線によって導かれた符号反転から生じた、例示的状態変数の進行を示した説明図。
【図１】
2007535726.tif 000025
【図２】
2007535726.tif 000026
【図３】
2007535726.tif 000027
【図４】
2007535726.tif 000028
【図５】
2007535726.tif 000029
【図６】
2007535726.tif 000030
【図７】
2007535726.tif 000031
【図８】
2007535726.tif 000032
【図９】
2007535726.tif 000033
【図１０】
2007535726.tif 000034
【図１１】
2007535726.tif 000035
【図１２】
2007535726.tif 000036
【図１３】
2007535726.tif 000037
【図１４】
2007535726.tif 000038
【図１５】
2007535726.tif 000039
【図１６】
2007535726.tif 000040
【図１７】
2007535726.tif 000041
【図１８】
2007535726.tif 000042
【図１９】
2007535726.tif 000043
【図２０】
2007535726.tif 000044
【図２１】
2007535726.tif 000045
【図２２】
2007535726.tif 000046
【図２３】
2007535726.tif 000047
【図２４】
2007535726.tif 000048
【図２５】
2007535726.tif 000049
【図２６】
2007535726.tif 000050
【図２７】
2007535726.tif 000051
【図２８】
2007535726.tif 000052
【図２９】
2007535726.tif 000053