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