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