(57)【特許請求の範囲】
【請求項１】
低レイテンシでユーザー入力を処理するためのシステムであって、
入力装置、
入力処理装置、
レイテンシの高いサブシステム、
レイテンシの低いサブシステム、
ユーザー入力に応答して信号を生成するのに適した入力処理ユニットソフトウェア、および、
出力装置を備え、
レイテンシの低いサブシステムは、レイテンシの高いサブシステムと比較して、低レイテンシで複数の信号を処理し、レイテンシの高いサブシステムは、レイテンシの低いサブシステムと比較して、高レイテンシで複数の信号を処理し、
入力装置、入力処理ユニット、レイテンシの高いサブシステム、レイテンシの低いサブシステム、入力処理ユニットソフトウェア、および、出力装置は、信号の少なくともいくつかがレイテンシの低いサブシステムとレイテンシの高いサブシステムによって並行して処理され、レイテンシの低いサブシステムが低レイテンシで、出力装置で出力されるプログラム可能な応答を作成し、レイテンシの高いサブシステムが高レイテンシで、出力装置で出力される応答を作成する、ように配され、
出力装置は、レイテンシの低いサブシステムからの応答と、レイテンシの高いサブシステムからの応答が出力されると、これらの応答を出力し、
レイテンシの高いサブシステムはレイテンシの高いサブシステムの少なくとも１つの状態を反映する状態情報を含み、レイテンシの低いサブシステムは状態情報に依存する、
システム。
【請求項２】
レイテンシの低いサブシステムによって生成されたレイテンシの低いデータは、定義された応答に対応するデータを、レイテンシの低いサブシステムによって受け取られた信号のストリームの少なくとも一部の信号の少なくともいくつかの１つ以上と関連付けることによって生成される、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項３】
レイテンシの高いサブシステムによって生成されたレイテンシの高いデータと、レイテンシの低いサブシステムによって生成されたレイテンシの低いデータは、実質的に等しい忠実度を有する、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項４】
レイテンシの高いサブシステムによって生成されたレイテンシの高いデータと、レイテンシの低いサブシステムによって生成されたレイテンシの低いデータは、忠実度が異なる、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項５】
レイテンシの低いサブシステムは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラ、図形処理装置（ＧＰＵ）、または、チップ上のシステム（ＳｏＣ）の群から選択される少なくとも１つにおいて、少なくとも部分的に実行される、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項６】
レイテンシの低いサブシステムは、コンピューティングシステムの既存の構成要素に統合された論理において実行される、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項７】
コンピューティングシステムの既存の構成要素は、図形処理装置（ＧＰＵ）、入力装置コントローラー、中央処理装置（ＣＰＵ）、マイクロコントローラ、または、チップ上のシステム（ＳｏＣ）の群から選択される少なくとも１つを含む、請求項６に記載のユーザー入力を処理するためのシステム。
【請求項８】
レイテンシの高いサブシステムは、第１の図形処理および出力システムであり、
レイテンシの低いサブシステムは、第２の図形処理および出力システムであり、
第１の図形処理および出力システムから第２の図形処理および出力システムへと伝達されたデータは、ユーザーインターフェース内の図形要素の１つ以上を記載したデータの１つ以上のピースから構成され、伝達されたデータは、サイズ、場所、外観、代替的な外観、ユーザー入力に対する応答、および、ユーザーインターフェース内の図形要素の種類からなる群から選択される、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項９】
レイテンシの高いサブシステムは、第１の図形処理および出力システムであり、
レイテンシの低いサブシステムは、第２の図形処理および出力システムであり、
第１の図形処理および出力システムから第２の図形処理および出力システムまで伝達されたデータは、ボタン、スライダー、ドラッグ可能なまたはサイズ変更可能なＧＵＩ要素、スクロール可能なリスト、スピナー、ドロップダウンリスト、メニュー、ツールバー、コンボボックス、移動可能なアイコン、固定されたアイコン、ツリー表示、グリッド表示、スクロールバー、スクロール可能なウインドウ、または、ユーザーインターフェース要素の外観および／または働きについて記載している、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項１０】
レイテンシの低いサブシステムは、ユーザーインターフェース要素論理を含む、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項１１】
目に見えるＵＩ要素の視覚的な階層と特性に関するデータを含んでいるＵＩ要素データをさらに含み、
レイテンシの低いサブシステムは、ＵＩ要素データ中の情報に基づいてヒットテストを行うのに適している、請求項１０に記載のユーザー入力を処理するためのシステム。
【請求項１２】
レイテンシの低いサブシステムはストリームから信号の１つ以上を取り除くのに適しており、取り除いた信号が、レイテンシの高いサブシステムによって受け取られる受信データの少なくともいくつかに対応する信号のストリームの少なくとも一部にならないようにする、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項１３】
レイテンシの高いサブシステムは、第１の図形処理および出力システムであり、
レイテンシの低いサブシステムは、第２の図形処理および出力システムであり、
入力処理システムは、ユーザー入力信号が第１または第２の図形処理および出力システムの１つまたは両方によって受け取られる前に、ユーザー入力信号上でデシメーションを行う、請求項１２に記載のユーザー入力を処理するためのシステム。
【請求項１４】
レイテンシの高いデータに対応する信号のストリームの少なくとも一部は、レイテンシの低いデータに対応する信号の少なくとも一部とは異なる、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項１５】
ディスプレイによって使用されるレイテンシの高いデータに対応する発せられた信号の少なくともいくつかは、レイテンシの低いデータに対応する発せられた信号の少なくともいくつかとは異なる、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項１６】
レイテンシの高いサブシステムは、第１の図形処理および出力システムであり、
レイテンシの低いサブシステムは、第２の図形処理および出力システムであり、
第１と第２の図形処理および出力システムによって受け取られたユーザー入力信号は、区別して処理される、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項１７】
追加の出力装置を含み、信号のストリームの少なくとも一部の１つ以上の信号に応答して、レイテンシの低いサブシステムは、追加の出力装置によって使用される追加の出力データを生成する、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項１８】
追加の出力装置と追加の出力データは、音声出力装置および音声データ、ならびに、触覚フィードバック装置および触覚フィードバックデータを含む群から選択される、請求項１７に記載のユーザー入力を処理するためのシステム。
【請求項１９】
ユーザーインターフェースのビジュアライゼーションに影響を与え得るレイテンシの低いデータの少なくともいくつかと、ユーザーインターフェースのビジュアライゼーションに影響を与え得る対応するレイテンシの高いデータの少なくともいくつかは、ユーザーによって認識できない方法で混合される、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項２０】
アプリケーション論理によって指示される形態のレイテンシの低いシステム応答を提供するように構成される、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項２１】
システム論理によって指示される形態のレイテンシの低いシステム応答を提供するように構成される、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項２２】
レイテンシの低いシステム応答の形態は、聴覚応答、視覚応答、および触覚応答からなる群から選択された応答または一連の応答を含む、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項２３】
ユーザー入力装置は、抵抗式、直接照明、漏れ全反射、拡散照明、投影型静電容量、容量結合、音波、および、画素内センサーからなる群から選択された技術の少なくとも１つを使用する直接タッチ入力装置を含む、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項２４】
レイテンシの低いサブシステムは少なくとも１つのあらかじめレンダリングされた視覚的要素を含み、および、レイテンシの低いデータは、少なくとも１つのあらかじめレンダリングされた視覚的要素の１つ以上に対応する、請求項２に記載のユーザー入力を処理するためのシステム。
【請求項２５】
レイテンシの高いデータとレイテンシの低いデータは忠実度が異なる、請求項２４に記載のユーザー入力を処理するためのシステム。
【請求項２６】
レイテンシの高いサブシステムは、第１の図形処理および出力システムであり、
レイテンシの低いサブシステムは、第２の図形処理および出力システムであり、
第１の図形処理および出力システムから第２の図形処理および出力システムへと伝達されたデータは、ユーザーインターフェース内の図形要素の１つ以上を記載したデータの１つ以上のピースから構成され、伝達されたデータは、サイズ、場所、外観、代替的な外観、ユーザー入力に対する応答、および、ユーザーインターフェース内の図形要素の種類からなる群から選択される、請求項２４に記載のユーザー入力を処理するためのシステム。
【請求項２７】
レイテンシの高いサブシステムは、第１の図形処理および出力システムであり、
レイテンシの低いサブシステムは、第２の図形処理および出力システムであり、
第１の図形処理および出力システムから第２の図形処理および出力システムまで伝達されたデータは、ボタン、スライダー、ドラッグ可能なまたはサイズ変更可能なＧＵＩ要素、スクロール可能なリスト、スピナー、ドロップダウンリスト、メニュー、ツールバー、コンボボックス、移動可能なアイコン、固定されたアイコン、ツリー表示、グリッド表示、スクロールバー、スクロール可能なウインドウ、または、ユーザーインターフェース要素の外観および／または働きについて記載している、請求項２４に記載のユーザー入力を処理するためのシステム。
【請求項２８】
目に見えるＵＩ要素の視覚的な階層と特性に関するデータを含んでいるＵＩ要素データをさらに含み、
レイテンシの低いサブシステムは、ＵＩ要素データ中の情報に基づいてヒットテストを行うのに適している、請求項２４に記載のユーザー入力を処理するためのシステム。
【請求項２９】
ユーザー入力に対応する信号を受け取り、受け取った信号に対応して発せられた信号は、レイテンシの高いサブシステムとレイテンシの低いサブシステムにストリームで送られ、レイテンシの低いサブシステムは、ストリームから、発せられた信号の１つ以上を取り除くのに適しており、取り除いた信号が、レイテンシの高いサブシステムによって受け取られる受信データに対応する発せられた信号の少なくともいくつかの一部にならないようにする、請求項２４に記載のユーザー入力を処理するためのシステム。
【請求項３０】
追加の出力装置を含み、ユーザー入力に対応する信号を受け取り、受け取った信号に対応して発せられた信号のストリームの少なくともいくつかに応答して、レイテンシの低いサブシステムは、追加の出力装置によって使用される追加の出力データを生成する、請求項２４に記載のユーザー入力を処理するためのシステム。
【請求項３１】
追加の出力装置と追加の出力データは、視覚出力装置および視覚データ、音声出力装置および音声データ、ならびに、触覚フィードバック装置および触覚フィードバックデータを含む群から選択される、請求項３０に記載のユーザー入力を処理するためのシステム。
【請求項３２】
ユーザー入力装置は、タッチ、マルチタッチ、ペン、目の動き、視線追跡、空中ジェスチャー、音声、マウス、キーボード、２Ｄセンサーからの入力、３Ｄセンサーからの入力、および、変動する圧力からなる群から選択される少なくとも１つの形態でユーザー入力を受け取るように構成される、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項３３】
レイテンシの高いおよびレイテンシの低いビジュアライゼーションは、２つの投影映像を重ねること、表示バッファ内のビジュアライゼーションを論理的に結合させること、各々がレイテンシの高いおよびレイテンシの低いビジュアライゼーションの１つを表示することができる２つの透明な層を重ねること、一部がレイテンシの低いビジュアライゼーションから満たされ、一部がレイテンシの高いビジュアライゼーションから満たされるように、ディスプレイのピクセルをインタレースすること、あるいは、一部がレイテンシの低いビジュアライゼーションから満たされ、一部がレイテンシの高いビジュアライゼーションから満たされるように、ディスプレイのフレームをインタレースすること：の少なくとも１つによって単一のディスプレイ上で組み合わされる、請求項１に記載のユーザー入力を処理するためのシステム。
【請求項３４】
入力装置は入力サブシステムの一部であり、入力サブシステムは、入力装置に対する複数のユーザー入力に応答して、入力に関する情報を含む信号を出力するのに適しており、
レイテンシの低いサブシステムは、信号を受け取り、信号の１つ以上に応答してレイテンシの低い応答を生成し、および、レイテンシの高いサブシステムに信号の少なくとも１つを送るのに適している、請求項１に記載のユーザー入力を処理するためのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、「Ｈｙｂｒｉｄ  Ｓｙｓｔｅｍｓ  Ａｎｄ  Ｍｅｔｈｏｄｓ  Ｆｏｒ  Ｌｏｗ−Ｌａｔｅｎｃｙ  Ｕｓｅｒ  Ｉｎｐｕｔ  Ｐｒｏｃｅｓｓｉｎｇ  Ａｎｄ  Ｆｅｅｄｂａｃｋ」と題し、２０１２年１０月５日に出願された米国仮特許出願６１／７１０，２５６号の非仮特許出願であり、その優先権を主張しており、本明細書に添付のソースコード含む当該文献の開示全体は全体として参照することにより本明細書に組み込まれる。
【０００２】
本出願は著作権の保護を受ける材料を含んでいる。著作権者は、特許商標庁のファイルや記録でまたは特許記録で公にされている特許開示物の複製には反対しないが、そうでない場合はいかなる著作権もすべて留保する。
【背景技術】
【０００３】
本発明は一般にユーザー入力の分野に関し、特に、低レイテンシ（ｌａｗ  ｌａｔｅｎｃｙ）ユーザー体験を実現するユーザー入力システムに関する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は一般にユーザー入力の分野に関し、特に、低レイテンシ（ｌａｔｅｎｃｙ）のユーザー体験を実現するユーザー入力システムに関する。前述したおよびそれ以外の開示の目的、特徴、および利点は、添付の図面で例証されるような実施形態の以下の特定の記載から明らかとなり、様々な図面で参照文字は同じ部品を指している。図面は必ずしも一定の縮尺である必要はなく、その代わりに、開示された実施形態の原則を例証することに重点が置かれている。
【図面の簡単な説明】
【０００５】
【図１】タッチユーザーインターフェース内の１００ミリ秒（ｍｓ）、５０ミリ秒、１０ミリ秒、および１ミリ秒でのドラッグレイテンシの効果の証明を例証する。
【図２】インボックス（Ｉｎｂｏｘ）用のユーザーインターフェース要素の例を示しており、ユーザーインターフェース要素はタッチ式のユーザーとの対話に対して、レイテンシが低く、忠実応答性が低い（ｌｏｗ  ｆｉｄｅｌｉｔｙ  ｒｅｓｐｏｎｓｅ）だけでなく、タッチ式のユーザーとの対話に対して、レイテンシが高く、忠実応答性が高い。
【図３】スライド式トグル要素のユーザーインターフェースの例を示す。カーソル（３１０）（「十字」文字を含むボックスによって表わされる）を標的（３２０）（右側の第２の空のボックス）にドラッグすることで、ＵＩ要素を起動することができる。この要素は、タッチによる対話を提供するために、低レイテンシシステムと高レイテンシシステムの両方を用いて動作可能であり、可動式の要素を加速させ（３１０）、それにより、低レイテンシ体験をもたらす。
【図４】レイテンシ認識研究で使用されるプロトタイプ高性能タッチシステムの基本的な構造の例証的な実施形態を示す。
【図５】図４のプロトタイプ装置を使用するレイテンシ認識研究の結果を示す。
【図６】ボタン用のユーザーインターフェース要素の例を示しており、ユーザーインターフェース要素はタッチ式のユーザーとの対話に対して、レイテンシが低く、忠実応答性が低いだけでなく、タッチ式のユーザーとの対話に対して、レイテンシが高く、忠実応答性が高い。
【図７】サイズ変更可能なボックス用のユーザーインターフェース要素の例を示しており、ユーザーインターフェース要素はタッチ式のユーザーとの対話に対して、レイテンシが低く、忠実応答性が低いだけでなく、タッチ式のユーザーとの対話に対して、レイテンシが高く、忠実応答性が高い。
【図８】スクロール可能なボックス用のユーザーインターフェース要素の例を示しており、ユーザーインターフェース要素はタッチ式のユーザーとの対話に対して、レイテンシが低く、忠実応答性が低いだけでなく、タッチ式のユーザーとの対話に対して、レイテンシが高く、忠実応答性が高い。
【図９】低レイテンシ入力装置用の基本的な構造と情報の流れの例証的な実施形態を示す。
【図１０】音量調節用のＵＩを示す。スライダーをドラッグする際、ツールチップは最新の設定の数表示を示すように見える。この要素は、タッチによる対話を提供するために、低レイテンシシステムと高レイテンシシステムの両方を用いて動作可能であり、可動式の要素を加速させ、それにより、低レイテンシ体験をもたらす。
【図１１】現在のハイブリッドフィードバックユーザーインターフェースシステムにおいてペン入力のためのＵＩの実施形態と比較した、先行技術のシステムにおけるペン入力に対するシステムの応答を示す。ハイブリッドシステムでは、インクストロークは、ペン入力に対して低レイテンシ応答を有し、同様に、ペンによるユーザーの入力に対して高レイテンシ応答を有する。
【図１２】システムの一実施形態を示しており、ここで、高レイテンシフィードバックと低レイテンシフィードバックの両方をサポートするために、データは、システムの構成要素を通る２つの重複する経路を通って流れる。
【図１３】モデルビューコントローラと呼ばれる、当該技術で周知のプログラミングパラダイムを示す。
【図１４】ユーザー入力に対して高レイテンシ応答と低レイテンシ応答を混合したアプリケーションと開発と実行をサポートするシステムアーキテクチャの実施形態を示す。
【発明を実施するための形態】
【０００６】
以下の記載と図面は例証的なものであり、限定的なものとして解釈するべきではない。完全な理解を促すべく多くの明確な詳細が記載されている。しかしながら、特定の例では、記載を不明瞭にしないようにするために周知または従来の詳細が記載されていない。本開示で１つまたはある実施形態について言及することは、必ずしも同じ実施形態を言及することにはならず、こうした参照は少なくとも１つを意味する。
【０００７】
本明細書において、「１つの実施形態」または「ある実施形態」への言及は、その実施形態に関連して記載された特定の特性、構造、または特徴が、本開示の少なくとも１つの実施形態に含まれるということを意味している。本明細書の様々な面における「１つの実施形態において」というフレーズの出現は、必ずしも同じ実施形態をすべて言及しているわけではなく、それ以外の実施形態を相互に排除した別のまたは代替的な実施形態であるわけでもない。さらに、実施形態によっては示されることもあれば示されないものものある様々な特徴が記載されている。同様に、実施形態によっては要件であることもあれば要件でないものも様々な実施形態が記載されている。
【０００８】
（概略）
本出願は、高速マルチタッチセンサーのようなユーザーインターフェース、および、以下で開示された他のインターフェースに関する：「Ｌｏｗ−Ｌａｔｅｎｃｙ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｄｅｖｉｃｅ」と題し、２０１３年３月１５日に出願された米国特許出願１３／８４１，４３６号、「Ｆａｓｔ  Ｍｕｌｔｉ−Ｔｏｕｃｈ  Ｓｔｙｌｕｓ」と題し、２０１３年３月１５日に出願された米国特許出願６１／７９８，９４８号、「Ｆａｓｔ  Ｍｕｌｔｉ−Ｔｏｕｃｈ  Ｓｅｎｓｏｒ  Ｗｉｔｈ  Ｕｓｅｒ−Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｔｅｃｈｎｉｑｕｅｓ」と題し、２０１３年３月１５日に出願された米国特許出願６１／７９９，０３５号、「Ｆａｓｔ  Ｍｕｌｔｉ−Ｔｏｕｃｈ  Ｎｏｉｓｅ  Ｒｅｄｕｃｔｉｏｎ」と題し、２０１３年３月１５日に出願された米国特許出願６１／７９８，８２８号、
「Ａｃｔｉｖｅ  Ｏｐｔｉｃａｌ  Ｓｔｙｌｕｓ」と題し、２０１３年３月１５日に出願された米国特許出願６１／７９８，７０８号、「Ｈｙｂｒｉｄ  Ｓｙｓｔｅｍｓ  Ａｎｄ  Ｍｅｔｈｏｄｓ  Ｆｏｒ  Ｌｏｗ−Ｌａｔｅｎｃｙ  Ｕｓｅｒ  Ｉｎｐｕｔ  Ｐｒｏｃｅｓｓｉｎｇ  Ａｎｄ  Ｆｅｅｄｂａｃｋ」と題し、２０１３年３月１５日に出願された米国特許出願６１／７１０，２５６号、「Ｆａｓｔ  Ｍｕｌｔｉ−Ｔｏｕｃｈ  Ｐｏｓｔ  Ｐｒｏｃｅｓｓｉｎｇ」と題し、２０１３年７月１２日に出願された米国特許出願６１／８４５，８９２号、「Ｒｅｄｕｃｉｎｇ  Ｃｏｎｔｒｏｌ  Ｒｅｓｐｏｎｓｅ  Ｌａｔｅｎｃｙ  Ｗｉｔｈ  Ｄｅｆｉｎｅｄ  Ｃｒｏｓｓ−Ｃｏｎｔｒｏｌ  Ｂｅｈａｖｉｏｒ」と題し、２０１３年７月１２日に出願された米国特許出願６１／８４５，８７９号、および、「Ｓｙｓｔｅｍｓ  Ａｎｄ  Ｍｅｔｈｏｄｓ  Ｆｏｒ  Ｐｒｏｖｉｄｉｎｇ  Ｒｅｓｐｏｎｓｅ  Ｔｏ  Ｕｓｅｒ  Ｉｎｐｕｔ  Ｕｓｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ａｂｏｕｔ  Ｓｔａｔｅ  Ｃｈａｎｇｅｓ  Ａｎｄ  Ｐｒｅｄｉｃｔｉｎｇ  Ｆｕｔｕｒｅ  Ｕｓｅｒ  Ｉｎｐｕｔ」と題し、２０１３年９月１８日に出願された米国特許出願６１／８７９，２４５号。これらの出願の全開示物は引用することによって本明細書に組み込まれる。
【０００９】
様々な実施形態では、本開示は、低レイテンシの直接操作ユーザーインターフェースを提供するシステムと方法を対象としている。偽の「現実世界の」対象の物理的な直接操作は、マウス、トラックパッド、ペンタブレットなどを含む間接的な装置と同様に、直接のタッチ入力、スタイラス入力、空中でのジェスチャー入力を可能にするものを含む多くの種類の入力装置に用いられている共通のユーザーインターフェースメタファーである。本開示の目的のために、ユーザーインターフェースのレイテンシとは、物理的な入力行為に対する応答がユーザーに与えられるまでにかかる時間のことを指す。試験によると、ユーザーはレイテンシが低いことを好み、以下に非常に詳しく議論されるように、ユーザーは５−１０ミリ秒程度で低レイテンシを信頼できると認識している。
【００１０】
図１は、それぞれ、１００ミリ秒（参照番号１１０）、５０ミリ秒（参照番号１２０）、１０ミリ秒（参照番号１３０）、および、１ミリ秒（参照番号１４０）の典型的なタッチユーザーインターフェースにおけるレイテンシの効果の実証を示している。対象をドラッグする際、レイテンシの増加は、ユーザーの指とドラッグされている対象（この場合は正方形のユーザーインターフェース要素）との間の距離の増加として反映される。見て分かるように、レイテンシの効果は、１００ミリ秒（参照番号１１０）と５０ミリ秒（参照番号１２０）で非常に目立つが、１０ミリ秒（参照番号１３０）では次第にそれほど顕著ではなくなり、１ミリ秒（参照番号１４０）では事実上消えている。図１１は、典型的なスタイラスまたはペンのユーザーインターフェース（１１１０、１１２０）におけるレイテンシの効果を例証する。この実施例において、遅延（１１２０）は、スタイラス（１１００）の先端と計算されたストローク（１１１０）との間の距離の増加に見える。低レイテンシシステムを導入すると、スタイラス（１１００）の先端と計算されたストローク（１１３０）の間の距離は、著しく減少するであろう。
【００１１】
ある実施形態では、ここで開示されているシステムおよび方法は、高レベルのレイテンシでの追加の視覚的な応答と絡み合わせた、または、オーバーレイさせた、１０ミリ秒未満のレイテンシを備えた即時の視覚的なフィードバックを供給する、ハイブリッドタッチユーザーインターフェースを提供する。いくつかの実施形態では、これらの２つのセットの応答の設計は視覚的に統一するように考案されることもあり、その結果、ユーザーはそれらを識別することができない。いくつかの実施形態では、「低レイテンシ」応答は１０ミリ秒のレイテンシを超えることもある。
【００１２】
（レイテンシの原因）
様々な実施形態では、ユーザー入力装置とその入力を処理するシステムのレイテンシは、以下を含む多くのソースを有することがあり得る：
（１）タッチ事象を捕捉する物理センサー
（２）タッチ事象を処理し、表示される出力を生成するソフトウェア
（３）ディスプレイそのもの
（４）バスを含む部品間でのデータ伝送
（５）メモリー記憶装置または短緩衝記憶装置のいずれかでのデータ内部記憶装置
（６）システムリソースの割り込みと競争
（７）回路類の他のソースがレイテンシを導入することができること
（８）光の速度などの物理的な制約と回路類構造におけるその影響
（９）抵抗型タッチセンサーがその「中立な」状態に曲げ戻すのにかかる時間といった機械的な制約
【００１３】
様々な実施形態において、システムのレイテンシを減らすことは、これらの部品の１つ以上のレイテンシを改善することで対処することができる。ある実施形態では、ここに開示されるシステムおよび方法は、低レイテンシ入力センサーとディスプレイを専用の処理システムと組み合わせることにより、１ミリ秒以下のレイテンシを実現する入力装置を提供する。ある実施形態では、ここに開示されるシステムおよび方法は、こうした低レイテンシ入力センサーとディスプレイを専用の処理システムと組み合わせることにより、５ミリ秒以下のレイテンシを実現する入力装置を提供する。さらなる実施形態では、ここに開示されるシステムおよび方法は、こうした低レイテンシ入力センサーとディスプレイを専用の処理システムと組み合わせることにより、０．１ミリ秒以下のレイテンシを実現する入力装置を提供する。さらなる実施形態では、ここに開示されるシステムおよび方法は、こうした低レイテンシ入力センサーとディスプレイを専用の処理システムと組み合わせることにより、１０ミリ秒以下のレイテンシを実現する入力装置を提供する。ある実施形態では、こうした非常に低レイテンシを達成するために、ここに開示されるシステムおよび方法は、従来のオペレーティングシステム（ＯＳ）ソフトウェアおよびコンピューティングハードウェアを、専用のカスタムプログラムしたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向け集積回路（ＡＳＩＣ）に取り替えてもよい。ある実施形態では、ＦＰＧＡまたはＡＳＩＣは、低レイテンシ応答を提供するために、従来のＯＳおよびコンピューティングハードウェアを取り換えつつ、（低レイテンシ応答に加えて使用される）高レイテンシ応答を提供するために、従来のＯＳおよびコンピューティングハードウェアをそのまま残しておく。別の実施形態では、記載されるＦＰＧＡまたはＡＳＩＣの機能のいくらかまたはすべては、限定されないが、グラフィック処理装置（ＧＰＵ）、入力装置コントローラ、中央処理装置（ＣＰＵ）、またはチップ（ＳｏＣ）上のシステムなどの既存の部品へと追加論理を統合することによって、取り替えられてもよい。低レイテンシ論理は、ハードウェアまたはソフトウェアでエンコードし、および／または、こうした部品またはそれ以外の部品によって実行することができる。多くの部品が必要とされる実施形態では、通信および／または同期は共有メモリーを使用して容易にされてもよい。こうした実施形態のいずれかでは、高レイテンシまたは低レイテンシで与えられる応答は、一緒に混合されることもあれば、あるいは、１つまたは他方だけが所定の入力事象に応答して提供されることもある。
【００１４】
様々な実施形態では、開示されたシステムおよび方法は、本明細書に「ハイブリッドフィードバック」と呼ばれるものを提供する。ハイブリッドフィードバックシステムでは、入力に対する基本システムの応答のいくつかは、広範なアプリケーション論理からは論理上分離される。その結果、ユーザーの入力事象に実質的に即時のシステムフィードバックを供給することができ、より多くのフィードバックが従来のレイテンシレベルで提供されるアプリケーション論理に基づいている、応答の速い入力処理装置を備えたシステムが提供される。いくつかの実施形態では、こうしたシステムの応答は視覚的に提供される。様々な実施形態では、ハイブリッドフィードバックシステムの低レイテンシ部品は、音声または振動触知性の触覚フィードバックによって提供されてもよい。いくつかの実施形態では、実質的に即時のフィードバックは、アプリケーション論理フィードバックと同じ様式で提供されてもよい。いくつかの実施形態では、低レイテンシフィードバックは、異なる様式または複数の様式で提供されてもよい。すべての視覚的な実施形態の一例が図２に示されており、この場合では、タッチ入力装置の使用を示している。特に、図２は、ユーザーがタッチし、その後、インボックスを表すアイコン（２１０）をドラッグした後の結果を示している。ユーザーがアイコン（２１０）にタッチすると、境界（２２０）または他の適切なプリミティブ（ｐｒｉｍｉｔｉｖｅ）が表示されることもある。ある実施形態では、すべての視覚的な低レイテンシフィードバックにおいて、レンダリングしやすいことから適切な忠実度の低い表示が選択されることもある。ある実施形態では、低レイテンシフィードバックは、適切な忠実度の低い表示を提供することができる１つ以上のプリミティブを使用して、提供されることもある。ある実施形態では、ユーザーがタッチディスプレイ（２００）別の場所にアイコンをドラッグすると、忠実度の低い境界（２３０）が表示され、例えば１ミリ秒の低レイテンシで操作される（例えば、動かされる）こともある。同時に、アイコン（２１０）の移動は高レイテンシで示されることもある。ある実施形態では、実質的に即時の低レイテンシ応答と、緩慢そうなアプリケーション論理フィードバックとの間の応答の差は、ユーザーにより認識可能である。別の実施形態では、低レイテンシ応答と従来の応答との間の応答のこの差は、混合され、ユーザーにさほど顕著ではないか、あるいは、まったく顕著ではない。ある実施形態では、実質的に即時のフィードバックは、従来の経路のアプリケーション論理フィードバックよりも低い忠実度で提供されることもある。ある実施形態では、少なくともいくつかの場合において、低レイテンシ応答は、アプリケーション論理フィードバックと同じまたはそれよりも高い忠実度で提供されることもある。ある実施形態では、低レイテンシ実質的に即時のフィードバックの形態は、システムソフトウェアにあるアプリケーション論理または論理によって書き取られる。例えば、ある実施形態では、アプリケーション論理は、低レイテンシサブシステムによって後で使用することができる、多種多様なグラフィックプリミティブをあらかじめレンダリングしてもよい。同様に、ある実施形態では、ソフトウェアツールキットは、低レイテンシシステムによって必要とされるよりも前にレンダリングすることが可能なグラフィックプリミティブを開発する手段を提供してもよい。ある実施形態では、低レイテンシ応答はあらかじめ決められるか、あるいは、アプリケーションおよび／またはシステムソフトウェア論理とは無関係に決められてもよい。ある実施形態では、個々のあらかじめレンダリングされた、または、部分的にレンダリングされた低レイテンシ応答、あるいは、あらかじめレンダリングされた、または、部分的にレンダリングされた低レイテンシ応答のパッケージは、メモリーにあらかじめロードすることができ、それによって、ユーザーの入力事象に応答して使うことを必要とされる前に低レイテンシサブシステムにアクセス可能となる。
【００１５】
ある実施形態では、低レイテンシ出力の様式は聴覚によるものであってもよい。ある実施形態では、低レイテンシシステムは、例えば、音声出力システムにマイクロホン入力を迅速に送るために使用されてもよく、このシステムは、ユーザーに対して、システムに話しかける自分自身の声の「反響」を提供するものであってもよい。こうした低レイテンシ出力は、ユーザーに自分の声を聴かせる従来のアナログ電話と同じ種類の応答特徴を有しているという印象を与えることもある。ある実施形態では、低レイテンシ聴覚フィードバックは、ユーザーの入力事象（例えば、タッチ、ジェスチャー、ペン入力、または、口頭入力）に応答して提供されてもよく、レイテンシの高い応答は視覚的に提供される。
【００１６】
本方法およびシステムを使用するシステムの別の例証的な実施形態が図３に示されている。実例となるシステムでは、カーソル（３１０）（「十字」文字を含むボックスによって表わされ）は、装置のスクリーン（３００）のいかなる場所にもドラッグすることができる。カーソル（３１０）を標的ボックス（３２０）にドラッグする際、ＵＩのアクションが承諾される。カーソル（３１０）をスクリーン（３００）のどこかにドラッグすると、アクションは却下される。ある実施形態において、ドラッグする際、カーソル（３１０）は低レイテンシで引かれ、はっきりとわかるほどのレイテンシなくユーザーの指を追跡する。ある実施形態では、ユーザーの認識に影響を与えることなく、高レイテンシで標的（３２０）を引くことができる。同様に、ある実施形態では、「ＲＥＪＥＣＴ」または「ＡＣＣＥＰＴ」の応答（３３０）は、後で認識できる程度に生じることもあり、したがって、ユーザーの認識に影響を与えることなく、例えば、低レイテンシサブシステムを使用せずに、それを高レイテンシで引くことができる。
【００１７】
図示された実施形態は例示的なものであることが理解されよう。図３で示された原則は、現在知られている、または、後に当該技術分野で展開されるＵＩ要素をすべて含む、任意の種類のＵＩ要素に適用されてもよい。同様に、図３で示された原則は、様々なタイプの入力装置および／または出力装置上でのその後の任意の種類の入力事象と共に使用することができる。例えば、ある実施形態において、上記に例証した「タッチ」事象に加えて、入力事象は、限定されないが、空中または表面上でのジェスチャー、発言、自発的または無意識な目の動き、および、ペンを含み得る。ある実施形態では、いったんジェスチャーが行われると、任意のＵＩ要素の応答は二叉に枝分かれすることもあり、ここで、低レイテンシ応答（例えば、ＵＩ要素の忠実度の低い表示が示され、迅速に、例えば、０．０１ミリ秒で応答する）、および、レイテンシの低くない応答（例えば、ＵＩ要素のさらに精密な表示）には、入力を早めないシステムによって一般に示されるレイテンシが提供される。ある実施形態では、応答はハイブリッドシステムにおいて分割されることもあり、その代り、レイテンシは完全に低く、アプリケーション論理は低レイテンシ応答の原因ではなく、さもなければ高レイテンシで実行される。
【００１８】
ある実施形態では、タッチおよび／またはジェスチャーによる入力事象は、限定されないが、抵抗式、直接照明、漏れ全反射（ｆｒｕｓｔｒａｔｅｄ  ｔｏｔａｌ−ｉｎｔｅｒｎａｌ  ｒｅｆｌｅｃｔｉｏｎ）、拡散照明、投影型静電容量、容量結合、音波、および、画素内センサー（ｓｅｎｓｏｒ−ｉｎ−ｐｉｘｅｌ）を含む様々な技術を駆使して、達成することができる。ある実施形態では、ペン入力は、抵抗型、視覚的、容量性、磁気、赤外線、光学撮像、分散信号、音響パルス、または、他の技術を用いて動作可能である。ある実施形態では、ジェスチャー入力も、視覚センサーまたは携帯型の物体（センサーを含むもの、および、追跡するためだけに使用されるものを含む）を使用して、または、２Ｄと３Ｄのセンサーなどの携帯型の物体なしで動作可能である。入力事象の組み合わせ（（すなわち、タッチ、ペン、ジェスチャー、ｒｅｔｎａ移動など）のように、入力事象を識別するためのセンサーまたは技術の組み合わせも企図されている。入力事象を識別するまたは捕らえる技術が共有している１つの特性は、これらがユーザーのアクションとシステムのそのアクションに対するシステムの応答との間のレイテンシに寄与するということである。この寄与のスケールは技術と実行によって変動する。
【００１９】
典型的なマルチタッチシステムでは、入力装置と、通信手段、ＯＳ、ＵＩツールキット、アプリケーションレイヤー、および／または、音声またはグラフィックスのコントローラを含むこともあるディスプレイとの間の情報の流れの経路がある。これらの各々はレイテンシを追加しかねない。さらに、オペレーティングシステムによって開始されたレイテンシ、特に非リアルタイムのオペレーティングシステムは可変性である。Ｗｉｎｄｏｗｓ（登録商標）、ｉＯＳ、ＯＳＸ、アンドロイドなどはリアルタイムのＯＳではなく、したがって、こうしたＯＳを使用すると一定時間内に応答が起こるという保証はない。処理装置に高い負荷がかけられると、例えば、レイテンシが劇的に増加することもある。さらに、いくつかの操作はソフトウェアスタックの非常に低いレベルで処理され、高い優先順位を有している。例えば、マウスポインターは典型的には高度に最適化されており、その結果、処理装置が高い負荷をかけられたときでも、認識されるレイテンシは比較的低い。対照的に、タッチまたはジェスチャーのシステムで２本の指を用いて写真をサイズ変更するような操作は、アプリケーションおよび／またはＵＩツールキットレベルで画像の一定の倍率変更を必要とすることもあるため、一般にはるかに計算負荷が高い。その結果、プロセッサーが高い負荷をかけられているとき、こうした操作ではレイテンシを低いと認識されることはめったにない。
【００２０】
典型的なマルチタッチシステムでは、ディスプレイシステム（ディスプレイ自体とグラフィックスシステムを含む）もレイテンシに寄与することもある。フレームレートの高いシステムではシステムによって実際のレイテンシが分かりにくくなることもある。例えば、６０Ｈｚのモニターは、高度な画像処理効果を可能にするために、緩衝記憶装置の１つ以上のフレームを含むこともある。同様にプロジェクターなどの表示装置のなかには、エレクトロニクス中でのダブルバッファーリングを含み、ディスプレイのレイテンシを有効に２倍にする。３Ｄテレビやモーションアーチファクトの減少を望む気持ちがより速いＬＣＤの開発を駆り立てているが、液晶自体の物理学は、従来のＬＣＤの性能を４８０Ｈｚ以上にすることはありそうもない。ある実施形態では、本明細書に記載の低レイテンシシステムはＬＣＤディスプレイを使用することもある。ＬＣＤディスプレイの性能とは対照的に、ＯＬＥＤまたはＡＭＯＬＥＤのディスプレイは、１ミリ秒をはるかに下回る応答時間が可能である。これに応じて、ある実施形態では、本明細書に記載の高性能のタッチ（またはジェスチャー）システムは、限定されないが、以下の技術：ＯＬＥＤ、ＡＭＯＬＥＤ、プラズマ、エレクトロウェッティング、カラーフィールシーケンシャルＬＣＤ、光学上補正された屈曲モード（ＯＣＢまたはＰｉ−Ｃｅｌｌ）ＬＣＤ、電子インクなどの１つ以上に基づいたディスプレイを含む、高速の応答時間を有するディスプレイ上で実行されることもある。
【００２１】
（レイテンシの認識研究）
研究は、ユーザーが直接的なタッチインタフェースのどの程度のレイテンシを本質的に瞬間的なものとして認識するかを決定するために行われた。図４のブロック図で表わされたプロトタイプ装置は、プロトタイプの高性能なタッチシステム（４００）の基本的構造の実例となる実施形態を示す。ある実施形態では、高速入力装置（４２０）は、２４ｃｍｘ１６ｃｍのアクティブ領域を有するマルチタッチの抵抗型タッチセンサーであり、超高速な操作を可能にする電子機器である。このセンサーによる遅れはわずかに１ミリ秒未満である。ある実施形態では、タッチデータは、光リンクを介して連続的に送信されることもある。
【００２２】
実例となる試験システムでは、ディスプレイ（４６０）は、テキサス・インスツルメント社のデジタル光処理技術に基づいたＤＬＰ  Ｄｉｓｃｏｖｅｒｙ  ４１００キットである。実例となる試験システムは、タッチセンサー上で前面投射を利用し、ユーザーの指と画像の位置合わせの認識を妨害する視差を取り除く。採用されるＤＬＰプロジェクターは、非常に速い速度で効果的に画素をオンまたはオフにするミラーのマトリックスである、デジタルマイクロミラー装置（ＤＭＤ）を使用する。ミラーの高速を用いて、連続的な発色画像を出現させるべく、オン対オフのパーセント時間を変更することもある。単純なバイナリ画像のみが使用される実施形態では、これらをもっと早い速度で生成することができる。実例となる試験システムでは、プロジェクター開発システムは、４０μβ以下のレイテンシで１０２４ｘ７６８の解像度で３２，０００バイナリフレーム／秒を表示する。この速度を達成する実例となる試験システムでは、ビデオデータは２５．６  ＧｂｐｓでＤＭＤにストリームされる。
【００２３】
実例となる試験システムでは、最小のレイテンシを実現するために、すべてのタッチ処理は専用のＦＰＧＡ  ４４０上で行なわれる−タッチ入力と低レイテンシ出力のディスプレイとの間ではＰＣまたはオペレーティングシステムは採用されない。ＤＬＰキットのオンボードのＸＣ５ＶＬＸ５０アプリケーションＦＰＧＡは、タッチデータを処理し、映像出力をレンダリングするために使用されてもよい。ＦＰＧＡへのＵＳＢの連続接続により、パラメーターを劇的に変化させることができる。実例となる試験システムでは、レイテンシは、１ミリ秒の解像度で１ミリ秒から数百ミリ秒に調節することができる。異なる試験モードを動作させることができ、ポートによりタッチデータを分析のために集めることができる。
【００２４】
実例となる試験システムでは、センサー（４２０）からタッチデータを受け取るために、システムはカスタムの高速ＵＡＲＴによって通信する。レイテンシを最小限に抑えるために、２Ｍｂｐｓのボーレートを使用することができ、これは、通信路を通る高周波ノイズによって信号の品位を失うことなく使用することができる高ボーレートを表す。実例となる試験システムでは、圧縮したタッチデータの個々のバイトはその後、ＦＰＧＡ  ４４０上で実行されるタッチ検知有限状態機械によって処理される。有限状態機械（ＦＳＭ）は同時にデータを復号し、質量中心のブロッブ検出アルゴリズムを行って、タッチの座標を特定する。実例となる試験システムでは、ＦＳＭのそれぞれの繰り返しが最後に受信されたバイト上で動作して、タッチデータのバッファリングが生じないように、システムはパイプライン方式で実行される。
【００２５】
実例となる試験システムでは、その後、タッチ座標は１０段階の可変遅延ブロックに送られる。それぞれの遅延段階は計測器を備えた単純なＦＳＭであり、タッチ座標を遅らせるためのクロックサイクル数を示す制御信号を取り込み、様々な値のレイテンシを可能にする。遅延ブロックは繰り返しの開始時にタッチサンプルをラッチし、サンプルを送って次のものをラッチするために、適切なサイクル数を待つ。したがって、遅延ブロックは遅延計算の因子だけサンプリングレートを引き下げる。ある実施形態では、サンプリングレートを合理的なレベルで維持するために、１０の遅延段階を使用することができ、その結果、例えば、１００ミリ秒のレイテンシを実現するために、ブロックは、１００Ｈｚのサンプリングレートに関してサンプル間で１０ミリ秒待つ。実例となる試験システムでは、基本的なアプリケーションを実行するために、ＭｉｃｒｏＢｌａｚｅのソフトプロセッサーを用いてディスプレイをレンダリングする。
【００２６】
ある実施形態では、試験システムは、性能を改善するために、ＭｉｃｒｏＢｌａｚｅの代わりにハードコードされた制御ＦＳＭを使用することもある。ある実施形態において、別のソフトプロセッサーが使用されてもよい。実例となる試験システムでは、ＭｉｃｒｏＢｌａｚｅは、Ｘｉｌｉｎｘ  ＦＰＧＡで合成されるために最適化された３２ビットのハーバードアーキテクチャＲＩＳＣプロセッサーである。ＭｉｃｒｏＢｌａｚｅのソフトプロセッサーの例示により、必要とされるコア、周辺装置、およびメモリー構造のみを選択することができる。実例となる試験システムでは、基礎となるＭｉｃｒｏＢｌａｚｅ構造に加えて、割込み制御装置、例えば、タッチデータ用のＧＰＩＯ、可変のレイテンシを設定するためのＧＰＩＯ、画像バッファのためのＢＲＡＭメモリー制御装置、および、ＰＣと通信するＵＡＲＴユニットを使用することができる、実例となる試験システムでは、ＭｉｃｒｏＢｌａｚｅは１００ＭＨｚで計測される。ＭｉｃｒｏＢｌａｚｅは、有効なタッチ座標を検知するために割込みシステムを使用する。有効なタッチデータが遅延ブロックからＧＰＩＯの上に到着すると、タッチによる即座の割込み事象が生成され、該当する画像は画像バッファに書きこまれる。張り込み式システムには非均一な性質があることから、正確なレイテンシを計算することができないが、設計によっては、それは、入力装置による１ミリ秒のレイテンシと比較すると些細なものである。
【００２７】
実例となる試験システムでは、画像バッファはオンチップＢＲＡＭブロック内で合成される。これらのブロックは、高フレームレートディスプレイをサポートするのに十分な帯域幅を備えた、２重ポートの高速な構成可能なメモリバッファを供給することができる。実例となる試験システムでは、画像バッファは、ＤＬＰによって必要とされるように、２５．６Ｇｂｐｓの全帯域幅について１２８ビットのバス幅を含む２００ＭＨｚで計測される。最後に、ＤＭＤ制御装置は画像バッファからフレームを連続的に読出し、ＤＭＤを制御するために適切なタイミングで信号を生成する。
【００２８】
実例となる試験システムでは、ユーザー入力は、従来のＰＣに同時に送られ、処理されて、従来のよりレイテンシの高い応答をもたらす。このレイテンシの高い応答は、従来のデータ・プロジェクターによって出力され、予想される低レイテンシ応答と重複するように位置合わせされる。
【００２９】
研究は、ユーザーがタッチスクリーンインタフェース上で共通のタスクを行う際に認識することができる性能の正確なレベルを決定するために行なわれた、その目的のために、こうした研究は、様々な性能レベルの丁度可知差異（ＪＮＤ）を決定するために行なわれた。ＪＮＤは、観察者によって検知することができる２つのレベルの刺激の間の差の尺度である。この場合、ＪＮＤは、参加者が２つの等しくない刺激−−同じレベルで一貫して示される刺激（基準と呼ばれる）と、その値が実験全体を通して劇的に変化する刺激（プローブ（ｐｒｏｂｅ）と呼ばれる）とを区別することができる閾値として定義される。いくつかの任意の基準値のＪＮＤに対する一般に容認された値は、参加者が７５％の確率で基準を正確に特定することができるプローブである。こうした精度で基準と識別することができないプローブ値は、基準と「著しく異ならない」と考えられる。
【００３０】
研究は、基準として機能する１ミリ秒のレイテンシの最大性能と比較して、プローブレイテンシのＪＮＤ値を決定するために行なわれた。こうした決定は最大の認識できる性能に絶対値を提供しないが、一方で、それが我々のプロトタイプが実現することができる最も速い速度であれば、それは、他の値のレイテンシと比較することができる我々の「最良のケース」の最低限の条件として役立つことができる。参加者たちは、典型的な現世代のハードウェア（例えば、現在のタブレットおよびタッチコンピューター）が提供する（〜５０−２００ミリ秒）著しく低い（＜２０ミリ秒）レイテンシの値を識別することができることが分かった。
【００３１】
右利きの１０人の参加者（女性３人）を地域のコミュニティーから募集した。年齢は２４歳から４０歳（平均２７．８０歳、標準偏差４．７３）までであった。すべての参加者はタッチスクリーン装置を使用した経験があり、参加者はみな１つ以上のタッチ装置（ｉＯＳベースまたはアンドロイドベースの電話またはタブレット）を所有していた。参加者には対のレイテンシ条件：基準値（１ミリ秒）およびプローブ（１〜６５ミリ秒のレイテンシ）を繰り返し与えられた。参加者はタッチスクリーンディスプレイ上で指を左から右に、その後、右から左にドラッグした。いずれのドラッグするタスクは適切であったが、レイテンシの高い場合には左／右への動きにより閉塞が減少する。参加者は、研究を「急いで終わらせる（ｒａｃｅ  ｔｈｒｏｕｇｈ）」ことのないように、両方の方向に移動させるように頼まれた。ユーザーの接点の下で、システムは、図１で見られるような固体の白色の２ｃｍ×２ｃｍ正方形をレンダリングした。動きの速度は参加者たちが決めるものとした。条件の２つ順序はそれぞれの対について無作為化した。研究は２つの交互に選択を強いられる実験として設計された；参加者は、それぞれの試験でどの場合が基準（１ミリ秒）値なのか選択するように指示され、「分からない」または「自信がない」という選択をすることは許されなかった。それぞれの対の後、参加者は２つのどちらが「より速かったか」を実験者に知らせた。
【００３２】
それぞれの試験が所望の７５％のＪＮＤ値に集中するために、適応性のある階段アルゴリズムにしたがって追加のレイテンシの量を制御した。基準値をそれぞれ正確に特定することで、プローブにおけるレイテンシの量は減少し、その一方で、それぞれの不正確な応答によりプローブのレイテンシは増加した。７５％の信頼水準に達するために、増加と減少は、Ｋａｅｒｎｂａｃｈ（Ｋａｅｒｎｂａｃｈ，Ｃ．  １９９１．  Ｐｅｒｃｅｐｔｉｏｎ  ＆  Ｐｓｙｃｈｏｐｈｙｓｉｃｓ  ４９，  ２２７−２２９）によって記載された単純加重上下変動法（ｓｉｍｐｌｅ  ｗｅｉｇｈｔｅｄ  ｕｐ−ｄｏｗｎ  ｍｅｔｈｏｄ）を伴い、増加はベースのステップサイズに３倍の乗数を適用し、減少はベースのステップサイズ（当初は８ミリ秒）だった。
【００３３】
参加者が正確な応答の後に不正確に応答した場合、もしくは、不正確な応答の後に正確な応答をした場合、これによって階段の方向が（増加または減少させて）逆になることから、これは反転と呼ばれた。ステップの大きさは当初８ミリ秒であり、それぞれの反転時に半分、１ミリ秒の最小のステップの大きさになる。これは合計して１０の反転が生じるまで続き、７５％の正確さで集合状態をもたらした。それぞれの参加者は８つの階段「工程」を終えた。このうち４つは最小のプローブレイテンシ（１ミリ秒）で開始し、残りの４つは最大のレイテンシ（６５ミリ秒）で始まった。階段のより高い開始値が選ばれた。というのも、これが市販の提供物と大まかに一致し、かつ、パイロット実験によりこの値がほぼ１００％の精度で１ミリ秒の基準と区別され、天井効果を回避することが明らかになったためである。階段は、連続する刺激間の進歩を追跡する参加者の能力によって引き起こされることになる応答バイアスを防ぐために、インターリーブされた対で一度に２回実行された。こうした対のそれぞれの階段条件は、実現可能なもの（２つの開始値ｘ４回の繰り返し）からの取り換えなしで任意に選択された。階段間の休憩を含む実験全体は、１回の１時間のセッション内でそれぞれの参加者によって完了した。
【００３４】
研究は、１ミリ秒を超えるレイテンシ値に関する丁度可知差異（ＪＮＤ）値を見つけるために考案された。このＪＮＤ値は、参加者が７５％の確率で基準を正確に特定することができる値であると一般に合意される。参加者のＪＮＤ値は２．３８ミリ秒から１１．３６ミリ秒まで変動し、すべての参加者の平均ＪＮＤは６．０４ミリ秒（標準偏差４．３３ミリ秒）である。ＪＮＤ値はそれぞれの参加者の階段の８工程ではさほど著しくは変化しない。それぞれの参加者の結果が図５に現われる。
【００３５】
その結果によれば、参加者は消費者装置の典型的な閾値（５０−２００ミリ秒）をはるかに下回るレイテンシの差を識別することができた。参加者は、自分の指をタッチスクリーンのまわりを移動させる際に、スクリーン上の対象と自分の指の間の距離を推測することによって、レイテンシを決定することが多かったことに注目する。これはＵＩ（特に、ドラッグ）において使用される入力プリミティブのアーチファクトである。異なる入力プリミティブ（例えば、タップ）を試験することで、レイテンシの異なる認識を表すことになる。結果によれば、レイテンシにおける大きさの改善は、タッチ装置のユーザーによって認識され理解されるであろうことが確認される。
【００３６】
（低レイテンシ直接タッチ入力装置のアーキテクチャ）
ある実施形態では、アプリケーション開発者がツールキットベースのアプリケーション設計プロセスを使用し続けることを可能にするが、低レイテンシシステムの存在を考慮して、こうしたツールキットが非常に低レイテンシでフィードバックを与えることを可能にする、ソフトウェアインターフェースが設計されてもよい。ある実施形態では、本開示で概説されたシステムと方法は、多くのＵＩツールキットのベースになっているＵＩ開発のモデルビューコントローラ（「ＭＶＣ」）モデル上で実行されることもある。ＭＶＣによって、アプリケーション論理はアプリケーションの視覚的な表示から分離することができる。ある実施形態では、ＭＶＣは、アプリケーションに対する第２のオーバーレイされた事実上のビューを含むこともある。特に、ある実施形態では、タッチ入力は、タッチ時点のアプリケーションの状態に部分的に基づくＵＩ制御からの即時応答を受け取る。目的は基礎となるアプリケーションに文脈的にリンクされる実質的に即時の応答を提供することである。
【００３７】
タッチに対するアプリケーション独立視覚応答への事前の作業は、ＵＩの視覚要素からさえも完全に分離しており、視覚的な複雑さを加えている。ある実施形態では、本明細書で概説されたシステムおよび方法にしたがって、一連の視覚的な応答は、視覚的な複雑さを減らすために、ＵＩ要素自体にさらに完全に統合される。したがって、ある実施形態では、示された特定の視覚的要素が事実上のタッチする「マウスポインター」を提供する場合、目的は、高性能応答を統合して制御部そのものにして、もっと統一された視覚化をもたらすことである。それにもかかわらず、ある実施形態では、システムと方法により、高レイテンシサブシステムからの応答とマージされる低レイテンシサブシステムによる文脈自由の応答をレンダリングすることが可能となる。ある実施形態では、視覚要素は、システムの応答の残りと同じレンダリングパイプラインにおいて示される必要はない。代わりに、本明細書に議論されるようにハイブリッドフィードバックを利用するシステムまたは方法は、従来のシステムによって生成されるレイテンシのより高い応答に加えて、ユーザー入力に対する低レイテンシ応答を提示することもある。
【００３８】
したがって、ある実施形態では、従来の直接タッチソフトウェアが高レイテンシで通常時のように作用するように加速式の入力対話は設計され、ＵＩ要素のためにカスタマイズされたさらなるフィードバックのセットは、ユーザーが感知できないレイテンシの標的とともに、低レイテンシで提供される。ある実施形態では、これらの２つの層は２つ以上の画像を重ね合わせることにより結合する。ある実施形態では、２つの結合した画像は、低レイテンシタッチ装置からの１つの投影画像と、カスタムタッチソフトウェアを実行し、低レイテンシサブシステムからの入力を受け取るデスクトップコンピューターに接続された従来のプロジェクターからの第２の画像とを含むこともある。
【００３９】
上記の２つのプロジェクターによる解決策は、低レイテンシ応答と従来の応答を組み合わせるという一般的な考えの１つの特定の実施形態として役立つことだけを目的としている。ある実施形態では、低レイテンシサブシステムと高レイテンシサブシステムからの視覚的な出力は、ディスプレイに送られる前、したがって、表示される前に、システム中の表示バッファまたはそれ以外の場所で論理的に組み合わされる。ある実施形態では、透明で重複するディスプレイはユーザーに対して低レイテンシおよび長い出力を提示する。ある実施形態では、ディスプレイのピクセルは、その一部が低レイテンシサブシステムによって制御され、いくつかが高レイテンシサブシステムによって制御されるようにインタレースされ、インタレースによって、こうしたディスプレイはユーザーにとって重複するように見えることもある。ある実施形態では、ディスプレイ上で表示されるフレームは、その一部のフレームが低レイテンシサブシステムによって制御され、いくつかのフレームが高レイテンシサブシステムによって制御されるようにインタレースされ、フレームのインタレースによって、ディスプレイは結合した画像を包含するようにユーザーには見えることもある。ある実施形態では、低レイテンシ応答は、ハードウェア内で圧倒的にまたは完全に生成されてもよい。ある実施形態では、低レイテンシ応答は、入力センサーから直接受け取った入力センサーデータから生成されてもよい。ある実施形態では、低レイテンシ応答は、ディスプレイハードウェアへの高帯域幅リンクを有することにより表示される。
【００４０】
低レイテンシサブシステム用のユーザーインターフェースを設計する際に、以下の制約の１つ以上が考慮されることもある：
・情報：入力に対するシステムの応答を形成するために、高レイテンシサブシステムから必要とされる任意の情報または処理は、そのような情報または処理が、例えば、あらかじめレンダリングされるか、または、あらかじめ保存されていなければ、必ず、レイテンシは高くなるであろう。
・性能：低レイテンシで応答を形成するのに充てる時間は必ず限定される。ハードウェアで加速したとしても、応答の設計は、応答が所望のレイテンシを必ず満たすように、慎重に性能の影響を受けるものでなければならない。
・忠実度：レンダリングされた低レイテンシ画像の忠実度は、高レイテンシレンダリングとは判別不能なこともあり（実際に、それは高レイテンシシステムによってあらかじめレンダリングされることもある）、性能を改善するために、例えば、視覚要素は単色のみであるということ、および／または、視覚的なプリミティブに限定される、および／または、音声または触覚による応答の持続期間または特徴が限定されることなどの追加の制約が忠実度に課されることもある。この種の制約は、加速ハードウェアを含むシステムの様々な要素によって、または、出力ハードウェア（ディスプレイ、触覚型の出力装置、またはスピーカーなど）によって取り入れられることもある。
・非干渉：応答が混成した組み合わせである実施形態では、アプリケーションの応答の一部が高レイテンシ層において生成されることもあれば、低レイテンシ層で生成されるものもあり、検討事項は、例えば、ユーザーの入力に対してよどみのない応答を提供するためにこの２つをどのように混合するのかということである。ある実施形態では、低レイテンシ応答は、必ず後で生じるであろう任意の起こりうるアプリケーション応答に干渉しない。ある実施形態では、干渉は、低レイテンシ応答と従来の応答の間に生じることもあるが、その干渉は、設計によってまたは応答の混成によって処理されることもある。
【００４１】
ある実施形態では、タッチに対する区別された低レイテンシおよび高レイテンシ視覚的な応答を備えた一連の視覚的なＵＩ制御を作成するために、設計プロセスを実行した。応答の二層の間での円滑な移行を可能にするメタファーが求められた。こうしたビジュアライゼーションは物体の位置と状態のような情報を含んでいた。設計は上記制約を用いて実現可能性に基づいて選択された。そのような実施形態の最終設計は、軍用機で使用されるビジュアライゼーションに類似するヘッドアップ表示装置（ＨＵＤ）のメタファーに基づいていた。従来のＨＵＤが幾何学的に単純であるので、ＨＵＤは適切であり、信頼性のある忠実度で幾何学的に簡単な表示を実行することは比較的容易である。ＨＵＤは、多くのＨＵＤでは、結合される２つの視覚的な層の単なる一例を表しているが、コンピュータ化されたディスプレイはビデオ上でまたは「現実の世界」それ自体上で重ね合わせる。したがって、ＨＵＤは非干渉であるように一般に設計される。
【００４２】
ＨＵＤのメタファーに基づいて、タッチ事象とＵＩの要素に特有のレイテンシの低い層のビジュアライゼーションの典型的なセットは、多くの直接タッチシステムで見られる１セットのＵＩ要素について開発された。これらの典型的な要素は一般的であるとともに代表的なものであり、こうした対話（タップ、ドラグ、２本指でのピンチ）は、現在の直接タッチ装置で使用される対話の大部分を包含する。このような実施形態で展開された低レイテンシ応答が表１に記載されており、これらは図６−８に示されている。
【００４３】
【表１】
0006293763.tif 000002
【００４４】
これらの３つの要素は、タッチ入力用の標準ＵＩツールキットの広い適用範囲を表している。ほとんどの上位のＵＩ要素は、これらのより単純な要素（例えば、ラジオのボタンとチェックボックスは両方とも「ボタン」であり、スクロールバーは並進運動と回転が制約を受けてドラッグ可能／サイズ変更」である）からできている。本明細書に記載された、加速式の入力システムおよび方法は、２つの顕著に異なるレイテンシ値で動作する視覚要素の結合に依存する。このレイテンシの差はレイテンシの低いビジュアライゼーションの設計に組み込まれている。ある実施形態では、目に見える層が一列になると、ユーザーは、コヒーレント同期によって両方のシステムの状態を知らされることもある。ある実施形態では、ユーザーは、システムフィードバックの高レイテンシ部分と短い部分とを識別することができてもよい。ある実施形態では、視覚要素は、低レイテンシ応答と従来の応答との明白に区別しない方法で混合される。
【００４５】
ある実施形態では、アプリケーション開発者はツールキットを利用して、ＧＵＩ制御を組み立てる通常のプロセスによって自分のアプリケーションを構築する。実施に際して、ＵＩ要素はビジュアライゼーションを二又に分け、高レイテンシ、および、低レイテンシビジュアライゼーションをレンダリングして１つのディスプレイ上で重ね合わせる。このようなシステムを通る情報の流れの実施形態は、図９に示される通りである。情報は入力装置（９１０）からシステムに流れ、当初は入力処理ユニット（ＩＰＵ）（９２０）によって処理され、ＩＰＵソフトウェアツールキット（９３０）によってプログラムされる。その後、ＵＩの事象は、２つのサブシステム、低レイテンシ、忠実度の低いサブシステム（９４０）と、例えば、従来のソフトウェアスタックで動作する従来の管理ソフトウェアなどの高レイテンシサブシステム（９５０）とによって並列に処理される。ある実施形態では、低レイテンシ、忠実度の低いサブシステム（９４０）は、図４のＦＰＧＡ（４４０）のようなハードウェアで実行されることもある。
【００４６】
この実施形態で記載される分岐は、ユーザーが入力を始める前に、アプリケーション論理によって必要とされる低レイテンシサブシステム（９４０）によって提供される初期応答の任意のパラメーター化を定義しなければならないという、基本的な通信問題を引き起こす。アプリケーションによる表示時に処理を必要とする任意の応答は、高レイテンシシステム（９５０）に対する低レイテンシシステム（９４０）の依存を導入し、したがって、システムに遅延を再度導入することもある。ある実施形態では、低レイテンシシステム（９４０）の入力に対する応答のその後の段階は、高レイテンシサブシステム（９５０）に依存することもある。ある実施形態では、高レイテンシサブシステム（９５０）上での低レイテンシサブシステム（９４０）の入力に対する応答のその後の段階は、依存がさらなるレイテンシを導入しないように、管理される。ある実施形態では、依存は完全に回避されることになる。
【００４７】
ある実施形態では、ＵＩ要素論理は、低レイテンシサブシステムに組み込まれてもよい。ユーザー入力間で、高レイテンシサブシステム（９５０）で実行されるアプリケーションでは、ＵＩ要素の低レイテンシサブシステム（９４０）モデルにパラメーターを与える機会がある。したがって、ある実施形態では、ＵＩソフトウェア設計のＭＶＣモデルは、低レイテンシフィードバックに責任を負う個別の制御装置を提供することによって拡張されてもよい。ある実施形態では、ソフトウェア設計において、それぞれの制御について以下の１つ以上を指定することができる：
・要素の種類（例えば、ボタン、ドラッグ可能な対象、スクロール可能なリストなど）
・境界寸法（例えば、ｘ位置、ｙ位置、幅、高さなど）
・条件付きである：追加のプリミティブ情報（例えば、スクロール可能なリストなどの場合にはリストのアイテムの大きさ）。
【００４８】
ある実施形態では、タッチ入力に対する所定の要素のタイプの応答用の論理は、低レイテンシサブシステム（９４０）に保存される。ユーザー入力に対する応答のさらなるパラメーター化を、かなりの程度のカスタマイゼーションを可能にして、同じ方法で通信させることができる。ある実施形態では、センサーデータを処理して、事象（または入力ストリームのその他の処理された形態）を発生させ、これはその後、低レイテンシサブシステム（９４０）と高レイテンシサブシステム（９５０）に別々に分配される。事象は、低レイテンシサブシステム（９４０）と高レイテンシサブシステム（９５０）では異なる速度で生成されることもある。というのも、低レイテンシサブシステムは高レイテンシサブシステムよりも事象を速く処理することができるからであり、高レイテンシサブシステムに高速で事象を送ることは、そのサブシステムを圧倒することもあるからである。したがって、ユーザー入力に対する低レイテンシおよび高レイテンシサブシステムの応答は独立しているが調整される。ある実施形態では、１つのサブシステムは、ユーザー入力間の別のサブシステムの状態を設定して、「マスター」として機能する。ある実施形態では、低レイテンシサブシステムと高レイテンシサブシステム間の関係は、２つのサブシステム間の同期を含んでいる。ある実施形態では、低レイテンシサブシステムと高レイテンシサブシステム間の関係は、低レイテンシサブシステム（９４０）に処理をオフロードする高レイテンシサブシステムの能力を含んでいる。ある実施形態では、低レイテンシサブシステムと高レイテンシサブシステム間の関係は、処理負荷を減らし、および／または、事前の処理または事前のレンダリングのために高レイテンシサブシステム（９５０）を利用する、低レイテンシサブシステム（９４０）の能力を含んでいる。ある実施形態では、第２の図形処理および出力システムの応答は、第１の図形処理および出力システムに依存し、状態の情報は、第１の図形処理および出力システムから第２の図形処理および出力システムまで伝達される。ある実施形態では、第１の図形処理および出力システムから第２の図形処理および出力システムに伝達されたこうした情報は、ユーザーインターフェース内の図形要素の１つ以上を記載する１つ以上のデータで構成される。このデータは、例えば、大きさ、位置、外観、代替的な外観、ユーザー入力に対する応答、および、ユーザーインターフェース内の図形要素の種類であってもよい。第１の図形処理および出力システムから第２の図形処理および出力システムに伝達されたデータは、第２の図形処理および出力システムに利用可能な高速記憶装置に保存されてもよい。伝達されたデータは、ボタン、スライダー、ドラッグ可能なおよび／またはサイズ変更可能なＧＵＩ要素、スクロール可能なリスト、スピナー、ドロップダウンリスト、メニュー、ツールバー、コンボボックス、移動可能なアイコン、固定されたアイコン、ツリー表示、グリッド表示、スクロールバー、スクロール可能なウインドウ、または、ユーザーインターフェース要素の出現および／または働きについて記載していることもある。
【００４９】
ある実施形態では、入力処理システムは、ユーザー入力信号が第１または第２の図形処理および出力システムの１つまたは両方によって受け取られる前に、ユーザー入力信号でデシメーションを行う。第１の図形処理および出力システムから送られたユーザーインターフェースに関する情報に基づいてすべての入力信号のセットから、デシメートされた入力信号またはデシメートされていない信号を選択する。入力信号のデシメーションは、入力信号のセットを論理的に組み合わせて入力信号のより少ないセットにすることによって行われることもある。入力信号の論理結合は、ウインドウで表示される平均値の算出によって行われてもよい。入力信号のセットの大きさを縮小する場合、デシメーションは、ユーザー入力信号の時間を考慮する。入力信号の論理結合は加重平均値の算出によって行なうことができる。
ある実施形態では、第１と第２の図形処理および出力システムによって受け取られるユーザー入力信号は、区別して処理された。
【００５０】
ある実施形態では、高レイテンシ層と低レイテンシ層の間の通信が重要なこともある。高レイテンシサブシステムと低レイテンシサブシステムが同期された状態をどのようにして維持しているのかを調べる際に考慮されるいくつかの点は、以下のように記載されている。
・レイテンシの差：低レイテンシ応答は、応答を同期させるために、高レイテンシ層と低レイテンシ層の間のレイテンシの差に関する情報を使用することもある。ある実施形態では、これらのレイテンシの値は静的であり、したがってＦＰＧＡに事前にプログラムされる。レイテンシの値が一方のサブシステムで異なることもある実施形態では、同期されなくなることもある動的値を有するよりもむしろ常に達成可能な一定値でレイテンシ値を固定するか、あるいは、明確な同期機構を提供する方が有利なこともある。レイテンシの値が一方のサブシステムで異なることもある実施形態では、動的値が使用されてもよいが、同期されなくなることがないように注意を払わなければならない。レイテンシの値が一方のサブシステムで異なることもある実施形態では、明確な同期機構がサブシステム（９４０）と（９５０）の間に設けられてもよい。
・ヒットテスト：ヒットテストの決定は、目に見えるＵＩ要素の視覚的な階層と特性に関するデータを条件としていることが多い。ある実施形態では、この考慮すべき事項は、ＵＩの平らな「ヒットテストフレンドリーな」マップを要求して、重複する境界を示す長方形（ｂｏｕｎｄｉｎｇ  ｒｅｃｔａｎｇｌｅｓ）を却下とすることによって、解決することができる。ある実施形態では、個別のヒットテストは低レイテンシサブシステムに必要な情報（対象の状態、ｚオーダー、および、受信者（ｌｉｓｔｅｎｅｒｓ））を提供することもある。ある実施形態では、低レイテンシサブシステムと高レイテンシサブシステムは、ヒットテストを平行して行うこともある。ある実施形態では、低レイテンシサブシステムはヒットテストを行い、高レイテンシサブシステムに結果を供給する。
・条件付の応答：多くのインターフェースビジュアライゼーションは、即時のユーザー入力だけでなく、アプリケーション論理で定義されたさらなる意思決定論理を条件としている。
【００５１】
条件付きの応答論理の２つの説明に役立つ例は以下のとおりである：クレジットカード購入送信ボタン（ｓｕｂｍｉｓｓｉｏｎ  ｂｕｔｔｏｎ））を考慮する。これは、押しても使用できない（二重の引き落としを防ぐため）が、フォームに入力されたデータの妥当性が確認されたときにのみ使用できるようにプログラムされている。こうした場合、ボタンの働きは即時のユーザーとの対話に依存するだけでなく、追加の情報や処理をさらに条件としている。図１０に示されるようなリンクしたビジュアライゼーションについても検討する。この場合、操作している（１０１０）ＵＩ要素によるだけでなく、第２のＵＩ要素（１０２０）によっても、フィードバックをユーザーに提供する。こうした例は低レイテンシサブシステムに直接プログラムすることができる。
【００５２】
ある実施形態では、高レイテンシサブシステムと低レイテンシサブシステムの分離は、任意のユーザーインターフェース要素に依存しないこともある。確かに、両方のサブシステム間の応答性の分割は、任意の数の因子に基づいてカスタマイズすることができ、ユーザーインターフェースツールキットを欠くシステムにおいて、あるいは、利用可能なＵＩツールキットを用いて、および、用いずに、アプリケーションを開発するための機構を含むシステムにおいて、依然として可能である。ある実施形態では、２つのサブシステム間の責任の分割は、２つのサブシステムが作動している間、劇的に変動し得る。ある実施形態では、ＵＩツールキット自体が低レイテンシサブシステムに含まれることもある。応答をカスタマイズする能力は、本明細書に記載されたシステムと方法から逸脱することのない多くの方法でアプリケーション開発者に提供され得る。ある実施形態では、応答は、ＵＩ制御部で調節されるパラメーターとしてカスタマイズされてもよい。ある実施形態では、応答は、低レイテンシサブシステムまたは別の高レイテンシまたは低レイテンシ部品においてそれ自体が実行されるコードで、指示を低レイテンシサブシステムに直接与える能力を可能にすることによりカスタマイズされることもある。ある実施形態では、低レイテンシサブシステムの状態は、例えば、実行時間に、アプリケーションコードによって生成されたデータを用いて設定することができる。
【００５３】
上に記載された実施例の多くがタッチ入力の文脈で提供されるが、限定なく、ペン入力、マウス入力、間接的なタッチ入力（例えば、トラックパッド）、空気ジェスチャー入力、口頭入力、および／または、他の入力様式を含む他の実施形態も企図される。本明細書に記載されたアーキテクチャは、限定なく、混合した入力事象（すなわち、２以上の様式からの入力をサポートする）を含む、任意の種類のユーザー入力事象に等しく適用可能であろう。ある実施形態では、混合型の入力装置は、低レイテンシサブシステムと高レイテンシサブシステムのそれぞれによる処理のために生成される同じ数の事象をもたらすこともある。ある実施形態では、混合型の入力装置は、発生した事象の数で区別されることになる。したがって、例えば、タッチ入力はペン入力よりも事象が少ないこともある。ある実施形態では、それぞれの入力様式はそれ自体の低レイテンシサブシステムを含む。ある実施形態では、複数の入力様式向けの複数の低レイテンシサブシステムを含むシステムでは、サブシステムは応答を調整するために通信することもある。ある実施形態では、複数の入力様式向けの複数の低レイテンシサブシステムを含むシステムでは、複数のサブシステムは、調整を可能にするために共通の記憶領域を共有してもよい。
【００５４】
（入力処理）
本発明の実施形態では、入力ハードウェアからの低レイテンシ入力データは、入力事象の急激なストリームへと最小限に処理される。事象のこのストリームは、さらなる処理のために低レイテンシサブシステムに直接送られる。その後、この同じストリームからの事象は削除されることもあれば、あるいは、高レイテンシサブシステムに送られる前に、当該ストリームがそれ以外の方法で減らされるか、フィルタ処理にかけられることもある。事象は、低レイテンシサブシステム（９４０）と高レイテンシサブシステム（９５０）について異なる速度で生成されることもある。というのも、低レイテンシサブシステムは、高レイテンシサブシステムよりも速い事象を処理することができるからであり、速い速度で高レイテンシサブシステムに事象を送ることは、そのサブシステムを圧倒することもあるからである。したがって、ユーザー入力に対する低レイテンシサブシステムと高レイテンシサブシステムの応答は、独立していることもあるが調整されることもある。
【００５５】
事象の減少は最適化することができる。ある実施形態では、代表的な事象は、アプリケーション、ＵＩ要素、入力装置などの１つ以上に関連した基準に基づいて候補対象の事象のなかから選択されてもよい。ユーザーがデジタルインクストロークを描いている際のペン入力に関するこの例は、ユーザーの描いたストロークに最も良く適合する事象を選択することを含んでもよい。口頭による入力の別の例は、出力ストリーム内のその後の事象が同様のボリュームを有し、それによって、マイクロホンから聞こえる音を「一定にする」であろう事象に有利である。タッチ入力の別の例は、一貫した速度を有し、より「順調な」出力をもたらす出力事象ストリームを結果として生じる事象に有利である。インテリジェント削減の（ｉｎｔｅｌｌｉｇｅｎｔ  ｒｅｄｕｃｔｉｏｎ）のこの形態は、高レイテンシサブシステムの性能を低下させることなく、インテリジェントフィルターとして働く。ある実施形態では、入力ストリーム内の他の事象の集合体を表す新しい事象（例えば、統合した事象または偽の事象）を生成することができる。ある実施形態では、もっと望ましい入力ストリーム、例えば、補正または円滑化を表す、新しい事象（例えば、修正した事象、統合した事象、または偽の事象）が生成されることもある。例えば、高速入力装置からの１０の事象ごとの空気ジェスチャー入力について、高レイテンシサブシステムでは、実際の入力事象の「平均」を提供する同数またはより少数の事象が送られ、こうして入力を円滑にしてジッターを取り除くこともある。入力装置の多くの「所望」の値の各種パラメーターの混合物である新しい事象を生成することもできる。例えば、スタイラスの傾斜と圧力の特性のインテリジェント削減は、結果として、異なる事象の選択をもたらす場合、こうした特性のそれぞれに関する所望の値を含めるために、１つの、新しい事象オブジェクト（または修正された１つ以上の既存の事象オブジェクト）を作成することができる。
【００５６】
ある実施形態では、ＩＰＵまたは低レイテンシサブシステムシステムを用いて、高レイテンシシステムに処理された入力情報を供給してもよい。２つのサブシステムの活動を調整するために、方法の１つ以上を使用することができる。これらは次のものを含む：
ａ．ある実施形態では、低レイテンシサブシステムは、すべてのユーザー入力に即座に応答することができるが、高レイテンシシステムに入力を与える前に、ユーザーが入力を止める（例えば、指またはペンを上げてジェスチャーを終える）のを待つことができる。これは、データの全体性を依然として処理しつつ、ユーザーとの対話の間にシステムを妨害しないようにするという長所を有する。
ｂ．ある実施形態では、低レイテンシシステムは、ほぼリアルタイムで減少した入力の推定値を与えることができ、随意に必要に応じて高レイテンシシステムで利用可能な完全な入力待ち行列を保存することもある。
ｃ．ある実施形態では、ユーザーフィードバックは２つの工程に分けられてもよい。第１の低レイテンシフィードバックは、図１１のユーザー入力（１１３０）の大まかな即時表示を提供するであろう。高レイテンシシステムが、例えば、ペン（１１５０）の先端を持ち上げた後に、正確な応答を計算することができるときにはいつでも、第２の高レイテンシシステム応答（１１４０）は第１の（１１３０）を鳥空けることができる。代替的に、高レイテンシフィードバックは、低レイテンシフィードバックに連続的に追い付く（できる限り組み入れる）ことができる。
ｄ．ある実施形態では、低レイテンシシステムは、入力ストリームから簡単なジェスチャー作用を推測し、したがって、生の事象に加えて、または、生の事象の代わりに、入力待ち行列に含まれるジェスチャーの事象を生成することができる。
ｅ．ある実施形態では、ＩＰＵまたは低レイテンシサブシステムは、将来の入力位置を予想するために、複数の入力位置を使用することができる。この予測が高レイテンシサブシステムに伝えられ、その有効なレイテンシを短くすることができる。
ｆ．ある実施形態では、追加のサンプルまたは初期の検出から利益を得ることもあるアルゴリズムは、ＩＰＵまたは低レイテンシサブシステム内で実行される。ある実施形態では、これらの事象の実行は時間を制限することができる。例えば、最初の５０の事象を用いて、入力を特定の指として分類するか、あるいは、指とペンの入力を区別することができる。ある実施形態では、これらのアルゴリズムは連続的に作動可能である。
ｇ．ある実施形態では、さもなければ無関係な入力であると誤って判断されることもある、さらなる連続的なまたは同時の関連する入力を受け取って処理するために、事象のストリームを高レイテンシサブシステム伝える低レイテンシサブシステムのプロセスを遅らせることもある。例えば、文字「ｔ」は、２つの別々である関連するストロークとして描かれることも多い。正常な過程では、低レイテンシシステムから高レイテンシシステムまで伝えられた入力ストリームの一部は、最初の線を描いた最後に「ペンを持ち上げる（ｐｅｎ  Ｕｐ）」信号を含むことになる。ある実施形態では、減少プロセスは、ペンがサンプルウインドウ内のディスプレイで再度検出される場合に、サンプルウインドウ内の入力のまさに最後のフレームが「ｕｐ」という事象を伝えるのを待ち、それによって、事象を必要としなくなる。
【００５７】
（ハードウェアアーキテクチャ）
ある実施形態では、データはシステムの構成要素を通る２つの重複する経路を通って、高レイテンシフィードバックと低レイテンシフィードバックをサポートする。図１２は、入力装置（１２１０）、ＩＰＵ（１２２０）、システムバス（１２３０）、ＣＰＵ（１２４０）、および、ディスプレイ（１２９０）に接続されたＧＰＵ（１２８０）を含むそのような１つのシステムを示している。ユーザー（１２００）は入力装置（１２１０）を用いて入力を行う。この入力はＩＰＵ（１２２０）によって検知され、これは、様々な実施形態で、ＦＰＧＡ、ＡＳＩＣ、または、ＧＰＵ（１２８０）、ＭＰＵ、またはＳｏＣに統合された追加のソフトウェアおよびハードウェア論理のいずれかであり得る。この点で、制御流れは二叉に分かれ、システムを通る２つの別々の経路を辿る。低レイテンシ応答が入力するために、ＩＰＵ（１２２０）は、ＣＰＵ（１２４０）を迂回して、システムバス（１２３０）を介してＧＰＵ（１２８０）に入力事象を送る。その後、ＧＰＵ（１２８０）は、ユーザー（１２００）に対して迅速にフィードバックを表示する。高レイテンシ応答が入力するために、ＩＰＵ（１２２０）は、システムバス（１２３０）を介してＣＰＵ（１２４０）に入力事象を送り、ＣＰＵ（１２４０）はグラフィックアプリケーションを起動させ、他のシステムコンポーネントと相互に作用してもよい。その後、ＣＰＵ（１２４０）はユーザー（１２００）にグラフィックフィードバックを供給するために、システムバス（１２３０）によってＧＰＵ（１２８０）にコマンドを送る。入力装置（１２１０）からＩＰＵ（１２２０）まで、ＧＰＵ（１２８０）まで、システムバス（１２３０）までの低レイテンシ経路は主にハードウェアであり、低レイテンシで動作する。入力装置（１２１０）からＩＰＵ（１２２０）まで、システムバス（１２３０）まで、システムバス（１２３０）まで、ＣＰＵ（１２４０）まで、ＧＰＵ（１２８０）までの高レイテンシ経路は、本記載に以前に述べられた因子によってレイテンシは高い。関連する実施形態では、入力装置（１２１０）は、ＧＰＵ（１２８０）と直接通信し、システムバス（１２３０）を迂回する。
【００５８】
図１３は、モデルビューコントローラと呼ばれるよく知られたプログラミングパラダイムを示す。このパラダイムでは、ユーザー（１３００）は、コントローラ（１３１０）上で入力を行い、これは、その後、この入力に基づいてモデル（１３２０）を操作する。モデル（１３２０）の変化は、ユーザー（１３００）によって観察されるビュー（１３３０）に対する変化をもたらす。本発明によって対処されたレイテンシの一部は、入力のレイテンシ、これらの部品のなかでの通信のレイテンシ、および、ビュー（１３３０）の部品によって生成されたグラフィックスの表示のレイテンシによる。
【００５９】
図１４は、ユーザー入力に対する低レイテンシおよび高レイテンシ混成型の応答を備えたシステム上で進行中および実行中のアプリケーションをサポートするアーキテクチャの実施形態を示す。ユーザー（１４００）は、入力装置（１４１０）を用いて入力を行う。この入力はＩＰＵ（１４２０）によって受け取られる。ＩＰＵ（１４２０）は、従来の機構を介して高レイテンシサブシステムで動作しているコントローラ（１４３０）と、低レイテンシサブシステムで動作しているビューモデル（Ｌ）（１４９０）に対して、入力事象を同時に送る。入力はコントローラ（１４３０）によって処理され、コントローラ（１４３０）は高レイテンシサブシステムで動作しているモデル（１４４０）を操作し、これは、揮発性メモリー（１４５０）、固定記憶装置（１４７０）、ネットワークリソース（１４６０）など（遅延を導入するすべての対話）のデータと相互に作用してもよい。ビューモデル（Ｌ）（１４９０）によって受け取られた入力事象はビューモデル（Ｌ）に対する変化を生じさせ、この変化は、ビュー（Ｌ）（１４９１）に対する変化に反映され、ユーザー（１４００）に見られる。モデル（１４４０）に対する変化は、高レイテンシサブシステムのビュー（Ｈ）（１４８０）に対する変化をもたらし、これもユーザー（１４００）に見られる。ある実施形態では、ユーザーが目にするこれらの２つのタイプの変化は、同じディスプレイに示される。ある実施形態では、これらの２つのタイプの変化は、他の出力様式（例えば、音または振動など）によってユーザーに反映される。ある実施形態では、入力と入力の間に、モデル（１４４０）は、ビューモデル（Ｌ）（１４９０）とビュー（Ｌ）（１４９１）の状態を更新するため、ビューモデル（Ｌ）（１４９０）は、システムのディスプレイ上の正確な位置にＧＵＩの要素を示すために必要とされるデータを包含しており、ビューモデル（Ｌ）（１４９０）は、モデル（１４４０）の現在の状態の文脈でＩＰＵ（１４２０）からの入力を正確に解釈することができ、および、ビュー（Ｌ）（１４９１）は、モデル（１４４０）の現在の状況文脈で表示されるグラフィックスを正確に生成することができる。
【００６０】
一例として、その機能のなかで、外観を変更して起動したことを示すことでユーザーのタッチに応答するボタンを備えたタッチ感度の優れたアプリケーションを考慮する。アプリケーションが実行される際、アプリケーションは、メモリーとコンパイルされたアプリケーションコードから、ボタンの位置、大きさ、および外観の細部を読み取る。ビュー（Ｈ）（１４８０）コードは、このボタンを表示するためにユーザーに提示される必要なグラフィックスを生成する。モデル（１４４０）は、この図形要素がボタンであるということ、および、それが、タッチされると、「正常な」外観から「押された」外観にまで外観を変化させなければならないということを記録するために、ビューモデル（Ｌ）（１４９０）の状態を更新する。モデル（１４４０）はさらに、ビューモデル（Ｌ）（１４９０）における「正常な」状態と「押された」状態についての正確な外観を記録するために、ビュー（Ｌ）（１４９１）の状態を更新する。この外観は、忠実度の低い図形要素の記載であってもよく、または、表示する完全なラスターであってもよい。この実施例において、「押された」状態は、ボタンの位置のまわりにホワイトボックスを表示することによって表される。
【００６１】
ユーザーはタッチスクリーンディスプレイにタッチし、そのタッチを記載した入力データは、ＩＰＵ（１４２０）によって１ミリ秒未満後に受け取られる。ＩＰＵ（１４２０）は、入力データからタッチダウン事象を表わす入力事象を作成し、アプリケーションコントローラ（１４３０）にこの入力事象を送る。コントローラ（１４３０）はモデル（１４４０）を操作する。この場合、コントローラ（１４３０）は、ボタンが触れられたこと、および、アプリケーションが、このボタンに関連するどんなコマンドでも実行すべきであることを、モデル（１４４０）に示している。ＩＰＵ（１４２０）がコントローラ（１４３０）へ事象を送るのと同じ時間に、ＩＰＵ（１４２０）はビューモデル（Ｌ）（１４９０）に事象を送り、ボタンが触れられたことを示す。ビューモデル（Ｌ）（１４９０）は、タッチの場合には何を行うべきかに関してモデル（１４４０）によってあらかじめ指示をされ、この場合、ビューモデル（Ｌ）（１４９０）は、その状態を「押された」に変更することによってタッチ事象に応答する。ビュー（Ｌ）（１４９１）は、ボタンのまわりにホワイトボックス、その「押された」外観に対応するフィードバックを表示することによってこの変化に応答する。ボタンが触れられるというモデル（１４４０）に対する変化はビュー（Ｈ）（１４８０）の更新をもたらすため、それもボタンが今触れられていることを反映している。ビュー（Ｈ）（１４８０）とビュー（Ｌ）（１４９１）の両方の出力を見るユーザーは、ビュー（Ｌ）（１４９１）によるタッチの即時のフィードバックと、１秒の何分の１かの後のビュー（Ｈ）（１４８０）からのフィードバックを見る。
【００６２】
本出願の文脈の全体にわたって、「事象」という用語は、ユーザー入力の属性を記載した情報を記載するために使用される。この用語は一般に使用されており、事象によって作動するアーキテクチャが採用される（実際の事象のオブジェクトはソフトウェア要素間で伝達されている）実施形態と、記載された「事象」が情報のストリームの中に単純に存在するさらに基本的な入力ストリームとを含んでいる。こうした事象は、例えば、非オブジェクト指向の事象のまたはオブジェクト指向の事象であってもよい。
【００６３】
本システムおよび方法は、ユーザー入力を受け取ってこれに応答することができるコンピューターシステムを含む方法と装置のブロック図と操作図に関して上に記載されている。ブロック図または操作図のそれぞれのブロック、および、ブロック図または操作図のブロックの組み合わせは、アナログハードウェアまたはデジタルハードウェアとコンピュータープログラム命令によって実行されてもよい。これらのコンピュータープログラム命令が汎用コンピュータ、ＡＳＩＣ、または、他のプログラム可能なデータ処理装置のプロセッサーに提供され、その結果、コンピュータのプロセッサーまたは他のプログラム可能なデータ処理装置によって実行される命令が、ブロック図または操作ブロックで指定される機能／行為を実施する。いくつかの交互の実施では、ブロックに書き留められた機能／行為は、操作図で示された順序を脱して生じることもある。例えば、連続して示された２つのブロックは実際にはほぼ同時に実行されてもよく、あるいは、ブロックは、含まれる機能／行為にしたがって逆の順序でしばしば実行されることもある。
【００６４】
本発明は特に１つの好ましい実施形態に関して示され記載されてきたが、本発明の精神と範囲から逸脱することなく、本明細書で形態や詳細の様々な修正を行ってもよいことが当業者には理解されよう。
【図１】
0006293763.tif 000003
【図２】
0006293763.tif 000004
【図３】
0006293763.tif 000005
【図４】
0006293763.tif 000006
【図５】
0006293763.tif 000007
【図６】
0006293763.tif 000008
【図７】
0006293763.tif 000009
【図８】
0006293763.tif 000010
【図９】
0006293763.tif 000011
【図１０】
0006293763.tif 000012
【図１１】
0006293763.tif 000013
【図１２】
0006293763.tif 000014
【図１３】
0006293763.tif 000015
【図１４】
0006293763.tif 000016