図面 (/)

技術 応用素子の代替的グラフィック表示の事前の生成による入力に対する低レイテンシの視覚的応答およびグラフィック処理ユニットの入力処理

出願人 タクチュアルラブズシーオー.
発明者 ウィグダー,ダニエルサンダース,スティーブンレオナルドコスタ,リカルドホルヘホタフォーラインズ,クリフトン
出願日 2017年9月26日 (3年3ヶ月経過) 出願番号 2017-185486
公開日 2018年2月8日 (2年10ヶ月経過) 公開番号 2018-022515
状態 特許登録済
技術分野 デジタル計算機の表示出力 デジタル計算機のユーザインターフェイス
主要キーワード 階段状態 システムフィードバック 境界寸法 最小ステップサイズ 相互作用空間 暫定データ カスタムプログラム 対話形システム
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2018年2月8日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

ユーザ入力システムにおいて、低減したレイテンシで入力に対する視覚的な応答を提供する。

解決手段

第1のGUI要素用の中間データの代替的なセットを計算する工程は、中間データの各々の代替的なセットがGUI要素の視覚的な表示を生成するのに有用なデータを含む。中間データの複数の代替的なセット、及び第2のGUI要素用の中間データのセットは、メモリに保存される。最終的なピクセル画像を形成する際に使用する第1のGUI要素用の中間データの複数の代替的なセットの第1のセットを識別するインデックスを作成する。ユーザ入力に応じて、インデックスは、第1のGUI要素用の中間データの複数の代替的なセットの第2のセットの識別を含めるために修正され、修正されたインデックスは、ユーザへ表示される最終的なピクセル画像を作成するために使用される。

概要

背景

概要

ユーザ入力システムにおいて、低減したレイテンシで入力に対する視覚的な応答を提供する。第1のGUI要素用の中間データの代替的なセットを計算する工程は、中間データの各々の代替的なセットがGUI要素の視覚的な表示を生成するのに有用なデータを含む。中間データの複数の代替的なセット、及び第2のGUI要素用の中間データのセットは、メモリに保存される。最終的なピクセル画像を形成する際に使用する第1のGUI要素用の中間データの複数の代替的なセットの第1のセットを識別するインデックスを作成する。ユーザ入力に応じて、インデックスは、第1のGUI要素用の中間データの複数の代替的なセットの第2のセットの識別を含めるために修正され、修正されたインデックスは、ユーザへ表示される最終的なピクセル画像を作成するために使用される。

目的

本発明は、一般にはユーザ入力の分野、具体的には低レイテンシのユーザ体験を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

コンピュータデバイスにおいて低減したレイテンシで入力に対する視覚的な応答を提供する方法であって、第1のグラフィックユーザインターフェース要素用の中間データの複数の代替的なセットを計算する工程であって、中間データの各々の代替的なセットがグラフィックユーザインターフェース要素の視覚的な表示を生成するのに有用なデータを含む、工程、第1のグラフィックユーザインターフェース要素用の中間データの複数の代替的なセットをメモリに保存する工程、第2のグラフィックユーザインターフェース要素用の少なくとも1セットの中間データをメモリに保存する工程、最終的なピクセル画像を形成する際に使用する第1のグラフィックユーザインターフェース要素用の中間データの複数の代替的なセットの第1のセットを識別するインデックスを作成する工程、インデックスと、グラフィックユーザインターフェース要素用の代替的な中間データの第1セットと、ユーザに表示される第1の最終的なピクセル画像を作成するための第2のグラフィックユーザインターフェース要素用の中間データを使用する工程であって、第1の最終的なピクセル画像が、第1と第2のグラフィックユーザインターフェース要素を含んでいる、工程、ユーザ入力装置からユーザ入力を受け取る工程、ユーザ入力に応じて、第1のグラフィックユーザインターフェース要素用の中間データの複数の代替的なセットの第2のセットの識別を含めるためにインデックスを修正する工程、修正されたインデックスと、第1のグラフィックユーザインターフェース要素用の中間データの第2の代替的なセットと、ユーザへ表示される最終的なピクセル画像を作成するための第2のグラフィックユーザインターフェース要素用の中間データを使用する工程であって、最終的なピクセル画像が第1と第2のグラフィックユーザインターフェース要素を含んでいる、工程、を含む、方法。

請求項2

中間データの複数の代替的なセットは作図指示の複数の代替的なセットを含む、請求項1に記載の方法。

請求項3

ユーザへ表示される第1の最終的なピクセル画像を作成するために代替的な中間データの第1セットを使用する工程は、作図指示の第1の代替的なセットを実行する工程を含む、請求項2に記載の方法。

請求項4

中間データの複数の代替的なセットはピクセルデータの複数の代替的なセットを含む、請求項1に記載の方法。

請求項5

ユーザへ表示される第1の最終的なピクセル画像を作成するために代替的な中間データの第1セットを使用する工程は、ピクセルバッファピクセルの1セットのレンダリングされた表示をコピーする工程を含む、請求項4に記載の方法。

請求項6

中間データの複数の代替的なセットは、その視覚的な外観に影響を与える第1のグラフィックユーザインターフェース要素のビュープロパティの複数の代替的なセットを含む、請求項1に記載の方法。

請求項7

中間データの複数の代替的なセットは、ベクトルデータの複数の代替的なセットを含む、請求項1に記載の方法。

請求項8

中間データの複数の代替的なセットは、ラスターデータの複数の代替的なセットを含む、請求項1に記載の方法。

請求項9

中間データの複数の代替的なセットは複数の代替的な表示リストを含む、請求項1に記載の方法。

請求項10

第1のユーザインターフェース要素はボタンであり、中間データの第1の代替的なセットは、押されていない状態のボタンの表示を含み、中間データの第2の代替的なセットは、押された状態のボタンの表示を含む、請求項1に記載の方法。

請求項11

第1のユーザインターフェース要素はウインドウであり、中間データの第1の代替的なセットは、非最大化状態のウインドウの表示を含み、中間データの第2の代替的なセットは、最大化状態のウインドウの表示を含む、請求項1に記載の方法。

請求項12

中間データの第1の代替的なセットは、別のユーザインターフェース要素の影響を受けていないときの第1のユーザインターフェース要素の表示を含み、中間データの第2の代替的なセットは、別のユーザインターフェース要素によって影響を受けているときの第1のユーザインターフェース要素の表示を含む、請求項1に記載の方法。

請求項13

第1のユーザインターフェース要素は複数の代替的な視覚的状態を有し、第2のユーザインターフェース要素は単一の視覚的状態を有する、請求項1に記載の方法。

請求項14

第1と第2のユーザインターフェース要素はそれぞれ複数の代替的な視覚的状態を有する、請求項1に記載の方法。

請求項15

第1のユーザインターフェース要素はボタンであり、中間データの第1の代替的なセットは動作不能状態のボタンの表示を含み、中間データの第2の代替的なセットは、動作可能状態のボタンの表示を含む、請求項1に記載の方法。

請求項16

中間データの2つを超える代替的なセットをさらに含む、請求項1に記載の方法。

請求項17

中間データの第2の代替的なセットは、第3のグラフィックユーザインターフェース要素のための代替的な指示へのポインターを含む、請求項1に記載の方法。

請求項18

第3のグラフィックユーザインターフェース要素は、第1のグラフィックユーザインターフェース要素の子である、請求項17に記載の方法。

請求項19

中間データの第1の代替的なセットと中間データの第2の代替的なセットの少なくとも1つは、ユーザがスクロールしているときの第1のユーザインターフェース要素の表示を含む、請求項1に記載の方法。

請求項20

中間データの第1の代替的なセットと中間データの第2の代替的なセットの少なくとも1つは、ユーザがパンしているときの第1のユーザインターフェース要素の表示を含む、請求項1に記載の方法。

請求項21

中間データの第1の代替的なセットと中間データの第2の代替的なセットの少なくとも1つは、第1のユーザインターフェース要素がドラッグされているときの第1のユーザインターフェース要素の表示を含む、請求項1に記載の方法。

請求項22

中間データの複数の代替的なセットを計算する工程は、グラフィック処理装置によって行われる、請求項1に記載の方法。

請求項23

中間データの複数の代替的なセットを計算する工程は、中央処理装置によって行われる、請求項1に記載の方法。

請求項24

インデックスを作成する工程はグラフィック処理装置によって行われる、請求項1に記載の方法。

請求項25

インデックスを作成する工程は、中央処理装置によって行われる、請求項1に記載の方法。

請求項26

インデックスを使用する工程はグラフィック処理装置によって行われる、請求項1に記載の方法。

請求項27

インデックスを使用する工程は、中央処理装置によって行われる、請求項1に記載の方法。

請求項28

第1のユーザインターフェース要素はスクロールビューの可視領域であり、中間データの第1の代替的なセットはスクロールビューの次の領域の表示を含み、中間データの第2の代替的なセットはスクロールビューの以前の領域の表示を含む、請求項1に記載の方法。

請求項29

中間データの代替的なセットは、押されていない状態のボタン、押された状態のボタン、チェック状態の制御部、未チェック状態の制御部、動作可能状態のボタン、動作不能状態のボタン、アクティブ状態の要素、非アクティブ状態の要素、ホバー状態の要素、非ホバー状態の要素、拡張状態の要素、非拡張状態の要素、フォーカスを伴う要素、フォーカスを伴わない要素、可視状態の要素、および、不可視状態の要素からなるセットから選択された少なくとも1つの表示を含む、請求項1に記載の方法。

請求項30

中間データの代替的なセットはディスプレイの様々な領域の表示を含む、請求項1に記載の方法。

請求項31

中間データの代替的なセットはユーザインターフェース要素の様々な形状またはサイズの表示を含む、請求項1に記載の方法。

請求項32

中間データの代替的なセットはユーザインターフェース要素の以前の状態を含む、請求項1に記載の方法。

請求項33

中間データの代替的なセットはユーザインターフェース要素の起こりうる未来状態を含む、請求項1に記載の方法。

請求項34

コンピュータデバイスにおいて低減したレイテンシで入力に対する視覚的な応答を提供する方法であって、第1のグラフィックユーザインターフェース要素用の中間データの複数の代替的なセットをレンダリングする工程であって、中間データのそれぞれの代替的なセットがグラフィックユーザインターフェース要素の代替的な視覚的表示を表す、工程、第1のグラフィックユーザインターフェース要素用の中間データの複数の代替的なセットをメモリに保存する工程、第2のグラフィックユーザインターフェース要素用の少なくとも1セットの中間データをメモリに保存する工程、最終的なピクセル画像を形成する際に使用する第1のグラフィックユーザインターフェース要素用の中間データの複数の代替的なセットの第1のセットを識別するインデックスを作成する工程、インデックスと、グラフィックユーザインターフェース要素用の代替的な中間データの第1のセットと、ユーザへ表示される第1の最終的なピクセル画像を作成するための第2のグラフィックユーザインターフェース要素用の中間データを使用する工程であって、第1の最終的なピクセル画像が第1と第2のグラフィックユーザインターフェース要素を含んでいる、工程、ユーザ入力装置からユーザ入力を受け取る工程、ユーザ入力に応じて、第1のグラフィックユーザインターフェース要素用の中間データの複数の代替的なセットの第2のセットの識別を含めるためにインデックスを修正する工程、修正されたインデックスと、第1のグラフィックユーザインターフェース要素用の中間データの第2の代替的なセットと、ユーザへ表示される最終的なピクセル画像を作成するための第2のグラフィックユーザインターフェース要素用の中間データを使用する工程であって、最終的なピクセル画像が第1と第2のグラフィックユーザインターフェース要素を含んでいる、工程、を含む方法。

請求項35

ユーザへ表示される第1の最終的なピクセル画像を作成するために代替的な中間データの第1のセットを使用する工程は、ピクセルバッファにピクセルの1セットのレンダリングされた表示をコピーする工程を含む、請求項34に記載の方法。

請求項36

中間データの複数の代替的なセットがベクトルデータの複数の代替的なセットを含む、請求項34に記載の方法。

請求項37

中間データの複数の代替的なセットがラスターデータの複数の代替的なセットを含む、請求項34に記載の方法。

請求項38

第1のユーザインターフェース要素はボタンであり、中間データの第1の代替的なセットは押されていない状態のボタンの表示を含み、中間データの第2の代替的なセットは押された状態のボタンの表示を含む、請求項34に記載の方法。

請求項39

第1のユーザインターフェース要素はウインドウであり、中間データの第1の代替的なセットは非最大化状態のウインドウの表示を含み、中間データの第2の代替的なセットは最大化状態のウインドウの表示を含む、請求項34に記載の方法。

請求項40

中間データの第1の代替的なセットは、別のユーザインターフェース要素の影響を受けていないときの第1のユーザインターフェース要素の表示を含み、中間データの第2の代替的なセットは、別のユーザインターフェース要素の影響を受けているときの第1のユーザインターフェース要素の表示を含む、請求項34に記載の方法。

請求項41

第1のユーザインターフェース要素は複数の代替的な視覚的状態を有し、第2のユーザインターフェース要素は単一の視覚的状態を有する、請求項34に記載の方法。

請求項42

第1と第2のユーザインターフェース要素はそれぞれ複数の代替的な視覚的状態を有する、請求項34に記載の方法。

請求項43

第1のユーザインターフェース要素はボタンであり、中間データの第1の代替的なセットは動作不能状態のボタンの表示を含み、中間データの第2の代替的なセットは動作可能状態のボタンの表示を含む、請求項34に記載の方法。

請求項44

中間データの2つを超える代替的なセットをさらに含む、請求項34に記載の方法。

請求項45

中間データの第2の代替的なセットは第3のグラフィックユーザインターフェース要素のための代替的な指示へのポインターを含む、請求項34に記載の方法。

請求項46

第3のグラフィックユーザインターフェース要素は第1のグラフィックユーザインターフェース要素の子である、請求項45に記載の方法。

請求項47

中間データの第1の代替的なセットと中間データの第2の代替的なセットの少なくとも1つは、ユーザがスクロールしているときの第1のユーザインターフェース要素の表示を含む、請求項34に記載の方法。

請求項48

中間データの第1の代替的なセットと中間データの第2の代替的なセットの少なくとも1つは、ユーザがパンしているときの第1のユーザインターフェース要素の表示を含む、請求項34に記載の方法。

請求項49

中間データの第1の代替的なセットと中間データの第2の代替的なセットの少なくとも1つは、第1のユーザインターフェース要素がドラッグされているときの第1のユーザインターフェース要素の表示を含む、請求項34に記載の方法。

請求項50

中間データの複数の代替的なセットを計算する工程は、グラフィック処理装置によって行われる、請求項34に記載の方法。

請求項51

中間データの複数の代替的なセットを計算する工程は、中央処理装置によって行われる、請求項34に記載の方法。

請求項52

インデックスを作成する工程は、グラフィック処理装置によって行われる、請求項34に記載の方法。

請求項53

インデックスを作成する工程は、中央処理装置によって行われる、請求項34に記載の方法。

請求項54

インデックスを使用する工程は、グラフィック処理装置によって行われる、請求項34に記載の方法。

請求項55

インデックスを使用する工程は、中央処理装置によって行われる、請求項34に記載の方法。

請求項56

第1のユーザインターフェース要素はスクロールビューの可視領域であり、中間データの第1の代替的なセットはスクロールビューの次の領域の表示を含み、中間データの第2の代替的なセットはスクロールビューの以前の領域の表示を含む、請求項34に記載の方法。

請求項57

中間データの代替的なセットは、押されていない状態のボタン、押された状態のボタン、チェック状態の制御部、未チェック状態の制御部、動作可能状態のボタン、動作不能状態のボタン、アクティブ状態の要素、非アクティブ状態の要素、ホバー状態の要素、非ホバー状態の要素、拡張状態の要素、非拡張状態の要素、フォーカスを伴う要素、フォーカスを伴わない要素、可視状態の要素、および、不可視状態の要素、からなるセットから選択された少なくとも1つの表示を含む、請求項34に記載の方法。

請求項58

中間データの代替的なセットはディスプレイの様々な領域の表示を含む、請求項34に記載の方法。

請求項59

中間データの代替的なセットはユーザインターフェース要素の様々な形状またはサイズの表示を含む、請求項34に記載の方法。

請求項60

中間データの代替的なセットはユーザインターフェース要素の以前の状態を含む、請求項34に記載の方法。

請求項61

中間データの代替的なセットはユーザインターフェース要素の起こりうる未来状態を含む、請求項34に記載の方法。

請求項62

コンピュータデバイスにおいて低減したレイテンシで入力に対する視覚的な応答を提供する方法であって、第1のグラフィックユーザインターフェース要素用の中間データの複数の代替的なセットを計算する工程であって、中間データのそれぞれの代替的なセットがグラフィックユーザインターフェース要素の代替的な視覚的表示をレンダリングするための作図指示を含む、工程、第1のグラフィックユーザインターフェース要素用の中間データの複数の代替的なセットをメモリに保存する工程、第2のグラフィックユーザインターフェース要素用の少なくとも1セットの中間データをメモリに保存する工程、最終的なピクセル画像を形成する際に使用する第1のグラフィックユーザインターフェース要素用の中間データの複数の代替的なセットの第1のセットを識別するインデックスを作成する工程、インデックスと、グラフィックユーザインターフェース要素用の代替的な中間データの第1のセットと、ユーザへ表示される第1の最終的なピクセル画像をレンダリングするための第2のグラフィックユーザインターフェース要素用の中間データを使用する工程であって、第1の最終的なピクセル画像が第1と第2のグラフィックユーザインターフェース要素を含んでいる、工程、ユーザ入力装置からユーザ入力を受け取る工程、ユーザ入力に応じて、第1のグラフィックユーザインターフェース要素用の中間データの複数の代替的なセットの第2のセットの識別を含めるためにインデックスを修正する工程、修正したインデックスと、第1のグラフィックユーザインターフェース要素用の中間データの第2の代替的なセットと、ユーザへ表示される最終的なピクセル画像を作成するための第2のグラフィックユーザインターフェース要素用の中間データを使用する工程であって、最終的なピクセル画像が第1と第2のグラフィックユーザインターフェース要素を含んでいる、工程、を含む、方法。

請求項63

ユーザへ表示される第1の最終的なピクセル画像を作成するために代替的な中間データの第1のセットを使用する工程は、作図指示の第1の代替的なセットを実行する工程を含む、請求項62に記載の方法。

請求項64

中間データの複数の代替的なセットがベクトルデータの複数の代替的なセットを含む、請求項62に記載の方法。

請求項65

中間データの複数の代替的なセットがラスターデータの複数の代替的なセットを含む、請求項62に記載の方法。

請求項66

中間データの複数の代替的なセットが複数の代替的な表示リストを含む、請求項62に記載の方法。

請求項67

第1のユーザインターフェース要素はボタンであり、中間データの第1の代替的なセットは、押されていない状態のボタンの表示を含み、中間データの第2の代替的なセットは、押された状態のボタンの表示を含む、請求項62に記載の方法。

請求項68

第1のユーザインターフェース要素はウインドウであり、中間データの第1の代替的なセットは、非最大化状態のウインドウの表示を含み、中間データの第2の代替的なセットは、最大化状態のウインドウの表示を含む、請求項62に記載の方法。

請求項69

中間データの第1の代替的なセットは、別のユーザインターフェース要素の影響を受けていないときの第1のユーザインターフェース要素の表示を含み、中間データの第2の代替的なセットは、別のユーザインターフェース要素によって影響を受けているときの第1のユーザインターフェース要素の表示を含む、請求項62に記載の方法。

請求項70

第1のユーザインターフェース要素は複数の代替的な視覚的状態を有し、第2のユーザインターフェース要素は単一の視覚的状態を有する、請求項62に記載の方法。

請求項71

第1と第2のユーザインターフェース要素はそれぞれ複数の代替的な視覚的状態を有する、請求項62に記載の方法。

請求項72

第1のユーザインターフェース要素はボタンであり、中間データの第1の代替的なセットは、動作不能状態のボタンの表示を含み、中間データの第2の代替的なセットは、動作可能状態のボタンの表示を含む、請求項62に記載の方法。

請求項73

中間データの2つを超える代替的なセットをさらに含む、請求項62に記載の方法。

請求項74

中間データの第2の代替的なセットは、第3のグラフィックユーザインターフェース要素のための代替的な指示へのポインターを含む、請求項62に記載の方法。

請求項75

第3のグラフィックユーザインターフェース要素は第1のグラフィックユーザインターフェース要素の子である、請求項74に記載の方法。

請求項76

中間データの第1の代替的なセットと中間データの第2の代替的なセットの少なくとも1つは、ユーザがスクロールしているときの第1のユーザインターフェース要素の表示を含む、請求項62に記載の方法。

請求項77

中間データの第1の代替的なセットと中間データの第2の代替的なセットの少なくとも1つは、ユーザがパンしているときの第1のユーザインターフェース要素の表示を含む、請求項62に記載の方法。

請求項78

中間データの第1の代替的なセットと中間データの第2の代替的なセットの少なくとも1つは、第1のユーザインターフェース要素がドラッグされているときの第1のユーザインターフェース要素の表示を含む、請求項62に記載の方法。

請求項79

中間データの複数の代替的なセットを計算する工程は、グラフィック処理装置によって行われる、請求項62に記載の方法。

請求項80

中間データの複数の代替的なセットを計算する工程は、中央処理装置によって行われる、請求項62に記載の方法。

請求項81

インデックスを作成する工程は、グラフィック処理装置によって行われる、請求項62に記載の方法。

請求項82

インデックスを作成する工程は、中央処理装置によって行われる、請求項62に記載の方法。

請求項83

インデックスを使用する工程は、グラフィック処理装置によって行われる、請求項62に記載の方法。

請求項84

インデックスを使用する工程は、中央処理装置によって行われる、請求項62に記載の方法。

請求項85

第1のユーザインターフェース要素はスクロールビューの可視領域であり、中間データの第1の代替的なセットは、スクロールビューの次の領域の表示を含み、中間データの第2の代替的なセットは、スクロールビューの以前の領域の表示を含む、請求項62に記載の方法。

請求項86

中間データの代替的なセットは、押されていない状態のボタン、押された状態のボタン、チェック状態の制御部、未チェック状態の制御部、動作可能状態のボタン、動作不能状態のボタン、アクティブ状態の要素、非アクティブ状態の要素、ホバー状態の要素、非ホバー状態の要素、拡張状態の要素、非拡張状態の要素、フォーカスを伴う要素、フォーカスを伴わない要素、可視状態の要素、および、不可視状態の要素、からなるセットから選択された少なくとも1つの表示を含む、請求項62に記載の方法。

請求項87

中間データの代替的なセットはディスプレイの様々な領域の表示を含む、請求項62に記載の方法。

請求項88

中間データの代替的なセットはユーザインターフェース要素の様々な形状またはサイズの表示を含む、請求項62に記載の方法。

請求項89

中間データの代替的なセットはユーザインターフェース要素の以前の状態を含む、請求項62に記載の方法。

請求項90

中間データの代替的なセットはユーザインターフェース要素の起こりうる未来状態を含む、請求項62に記載の方法。

請求項91

コンピュータデバイスにおいて低減したレイテンシで入力に対する視覚的な応答を提供するために、CPUと協働してGPUを操作する方法であって、グラフィック処理ユニットで、ユーザ入力を表すデータを受け取る工程、ユーザ入力の結果として更新されるグラフィックユーザインターフェース要素を識別するために、グラフィック処理ユニットにおいてユーザ入力を表わすデータをヒットテストする工程、グラフィック処理ユニットで、グラフィックユーザインターフェース要素用の中間データの複数の代替的なセットの中から中間データの第1のセットを識別する工程、グラフィックユーザインターフェース要素を更新するために、中間データの識別された代替的なセットを使用する工程、を含む、方法。

請求項92

グラフィックユーザインターフェース要素を更新するために中間データの識別された代替的なセットを使用する工程は、グラフィック処理ユニットによって行われる、請求項89に記載の方法。

請求項93

グラフィックユーザインターフェース要素を更新するために中間データの識別された代替的なセットを使用する工程は、中央処理装置によって行われる、請求項89に記載の方法。

請求項94

コンピュータデバイスにおいて低減したレイテンシで入力に対する視覚的な応答を提供するために、CPUと協働してGPUを操作する方法であって、グラフィック処理ユニットで、ユーザ入力を表すデータを受け取る工程、ユーザ入力の結果として更新されるグラフィックユーザインターフェース要素を識別するために、グラフィック処理ユニットにおいてユーザ入力を表わすデータをヒットテストする工程、グラフィックユーザインターフェース要素用の中間データの複数の代替的なセットの中から中間データの第1のセットを識別する工程、グラフィックユーザインターフェース要素を更新するために、中間データの識別された代替的なセットを使用する工程、を含む、方法。

請求項95

コンピュータデバイスにおいて実行中のアニメーションに対する視覚的な応答を提供するために処理装置を操作する方法であって、少なくとも1つの処理装置において、プロパティアニメーションを処理する工程、少なくとも1つの処理装置において、プロパティアニメーション用の中間データの複数の代替的なセットの中から中間データの第1のセットを識別する工程、プロパティアニメーション用の中間データを更新するために中間データの識別された代替的なセットを使用する工程、グラフィック処理ユニットにおいて、プロパティアニメーション用の更新された暫定データを実行する工程、を含む、方法。

請求項96

処理装置の少なくとも1つはGPUである、請求項95に記載の方法。

請求項97

少なくとも1つの処理装置は同じCPUの複数のコアを含む、請求項95に記載の方法。

請求項98

コンピュータデバイスにおいて低減したレイテンシで入力に対する聴覚的な応答を提供する方法であって、第1のユーザインターフェース要素用の中間データの複数の代替的なセットを計算する工程であって、中間データのそれぞれの代替的なセットがユーザインターフェース要素に関する聴覚出力を生成するのに有用なデータを含む、工程、第1のユーザインターフェース要素用の中間データの複数の代替的なセットをメモリに保存する工程、第2のユーザインターフェース要素用の少なくとも1セットの中間データをメモリに保存する工程、最終的な音を形成する際に使用する第1のユーザインターフェース要素用の中間データの複数の代替的なセットの第1のセットを識別するインデックスを作成する工程、インデックスと、ユーザインターフェース要素用の代替的な中間データの第1のセットと、ユーザへ表示される第1の最終的な音を作成するための第2のグラフィックユーザインターフェース要素用の中間データを使用する工程であって、第1の最終的な音が第1と第2のユーザインターフェース要素の音を含んでいる、工程、ユーザ入力装置からユーザ入力を受け取る工程、ユーザ入力に応じて、第1のユーザインターフェース要素用の中間データの複数の代替的なセットの第2のセットの識別を含めるためにインデックスを修正する工程、修正したインデックスと、第1のユーザインターフェース要素用の中間データの第2の代替的なセットと、ユーザへ出力される最終的な音を作成するための第2のユーザインターフェース要素用の中間データを使用する工程であって、最終的な音が第1と第2のユーザインターフェース要素からの音を含んでいる、工程、を含む、方法。

技術分野

0001

本出願は2014年2月4日出願の米国仮特許出願第61/935,674号の正規の出願であり優先権を請求し、その全体の開示は参考文献により本明細書に組み込まれる。

0002

本出願は、高速マルチタッチセンサなどのユーザインターフェース、ならびに「Hybrid Systems And MethodsFor Low−Latency User Input Processing And Feedback」と題された2013年10月4日出願の米国特許出願第14/046,823号、「Low−Latency Touch Sensitive Device」と題された2013年3月15日出願の米国特許出願第13/841,436号、「Hybrid Systems And Methods For Low−Latency User Input Processing And Feedback」と題された2013年10月4日出願の米国特許出願第14/046,819号、「Fast Multi−Touch Stylus」と題された2013年3月15日出願の米国仮特許出願第61/798,948号、「Fast Multi−Touch Sensor With User−Identification Techniques」と題された2013年3月15日出願の米国仮特許出願第61/799,035号、「Fast Multi−Touch Noise Reduction」と題された2013年3月15日出願の米国仮特許出願第61/798,828号、「Active Optical Stylus」と題された2013年3月15日出願の米国仮特許出願第61/798,708号、「Hybrid Systems And Methods For Low−Latency User Input Processing And Feedback」と題された2013年10月5日出願の米国仮特許出願第61/710,256号、「Fast Multi−Touch Post Processing」と題された2013年7月12日出願の米国仮特許出願第61/845,892号、「Reducing Control Response Latency With Defined Cross−Control Behavior」と題された2013年7月12日出願の米国仮特許出願第61/845,879号、「Systems And Methods For Providing Response To User Input Using Information About State Changes And Predicting Future User Input」と題された2013年9月18日出願の米国仮特許出願第61/879,245号、「Systems And Methods For Providing Response To User Input Using Information About State Changes And Predicting Future User Input」と題された2013年9月21日出願の米国仮特許出願第61/880,887号、「Fast Multi−Touch Post Processing」と題された2013年11月1日出願の米国特許出願第14/069,609号、「Touch And Stylus Latency Testing Apparatus」と題された2013年10月7日出願の米国仮特許出願第61/887,615号、「Fast Multi−Touch Update Rate Throttling」と題された2014年1月16日出願の米国仮特許出願第61/928,069号、「Dynamic Assignment Of Possible Channels In A Touch Sensor」と題された2014年1月22日出願の米国仮特許出願第61/930,159号、および「Decimation Strategies For Input Event Processing」と題された2014年1月27日米国仮特許出願第61/932,047号に開示される他のインターフェースに関連する。それらの出願の全体の開示は、参考文献により本明細書に組み込まれる。

0003

本出願は、著作権保護下にある題材を含む。特許商標ファイル又は記録で示されるように、版権所有者は、第三者による特許情報開示のファックスによる複製に異存は無いが、そうでなければ、いかなるものであっても全ての著作権を保有する。

0004

<分野>
本発明は、一般にはユーザ入力の分野、具体的には低レイテンシのユーザ体験を提供するユーザ入力システムに関連する。

図面の簡単な説明

0005

本開示の前述の、ならびに他の物体、特徴および利点は、添付の図面に例証されている実施例のより具体的な説明から明白になり、その中で参照符号が様々な視点を通じて同じ部分を参照する。図面は必ずしも正確な縮尺ではなく、その代わりに重点は、開示された実施形態の原理概説することに置かれている。
図1は、タッチユーザインターフェースにおける100ms、50ms、10msおよび1msのドラッグレイテンシの効果の実証を示す。
図2は、インボックスためのユーザインターフェース要素の実施例を示し、その要素はタッチユーザ対話処理に対する低レイテンシおよび低忠実度応答、同様にタッチユーザ対話処理に対する高レイテンシおよび高忠実度の応答を有する。
図3は、スライドトグルの要素のユーザインターフェースにおける例を示す。カーソル(310)(「十字」符号を含んでいるボックスによって表わされる)は、UI要素軌道するために標的(320)(右側の第2の空のボックス)にドラッグすることが可能である。この要素は、可動要素加速された(310)、タッチ対話処理を提供するために低レイテンシおよび高レイテンシのシステムの両方を使用することで可能になり、それにより、低レイテンシの体験を提供する。
図4は、レイテンシ認識研究において使用されるプロトタイプ高性能タッチシステム基礎的な構造の実例となる実施形態を示す。
図5は、図4のプロトタイプ装置を使用した、レイテンシ認識研究の結果を示す。
図6は、ボタンに関するユーザインターフェース要素の例を示し、その要素はタッチユーザ対話処理に対する低レイテンシおよび低忠実度の応答、同様にタッチユーザ対話処理に対する高レイテンシおよび高忠実度の応答を有する。
図7は、リサイズ可能であるボックスのためのユーザインターフェース要素の例を示し、その要素はタッチユーザ対話処理に対する低レイテンシおよび低忠実度の応答、同様にタッチユーザ対話処理に対する高レイテンシおよび高忠実度の応答を有する。
図8は、スクロール可能であるリストのためのユーザインターフェース要素の例を示し、その要素はタッチユーザ対話処理に対する低レイテンシおよび低忠実度の応答、同様にタッチユーザ対話処理に対する高レイテンシおよび高忠実度の応答を有する。
図9は、低レイテンシの入力装置のための基礎的な構造および情報フローの実例となる実施形態を示す。
図10は、音量調節のためのUIを示す。スライダをドラッグする時、現行セッティング数値表示を示すツールチップが現われる。この要素は、可動要素が加速されるタッチ対話処理を提供するために低レイテンシおよび高レイテンシのシステムの両方を使用することで可能になり、それにより、低レイテンシの体験を提供する。
図11は、本出願のハイブリッドフィードバックユーザインターフェースシステム内のペン入力のためのUIの実施例と比較した、先行技術におけるペン入力に対するシステムの応答を示す。ハイブリッドシステムにおいて、インクストロークは、ペン入力に対する低レイテンシの応答、同様にペン入力に対する高レイテンシの応答を有する。
図12は、高レイテンシ及び低レイテンシのフィードバックをサポートするために、データがシステムの構成要素を介して2つの重複する経路を流れるシステムの実施形態を示す。
図13は、モデルビューコントローラと呼ばれる当該技術分野において周知のプログラミングパラダイムを示す。
図14は、ユーザ入力に対する高レイテンシおよび低レイテンシの混合した応答によりアプリケーションの開発および実行をサポートするシステムのアーキテクチャの実施形態を示す。
図15は、先行技術に従ったGUI表示および中間データ階層を示すブロック図である。
図16は、中間データの実行を示すタイムライン表示である。
図17は、GUI表示および中間データ階層を示すブロック図である。
図18は、本出願で開示されるシステムおよび方法の実施形態に従ったGUI表示および中間データ階層を示すブロック図である。
図19は、本出願で開示されるシステムおよび方法の実施形態に従ったGUI表示および中間データ階層を示すブロック図である。
図20は、本出願で開示されるシステムおよび方法の実施形態に従ったGPU、CPU、入力装置のコントローラおよびディスプレイの動作を示すブロック図である。
図21は、本出願で開示されるシステムおよび方法の実施形態に従ったGPU、CPU、入力装置のコントローラおよびディスプレイの動作を示すブロック図である。
図22は、本出願で開示されるシステムおよび方法の実施形態に従ったGPU、CPU、入力装置のコントローラおよびディスプレイの動作を示すブロック図である。
図23は、本出願で開示されるシステムおよび方法の実施形態に従ったGPU、CPU、入力装置のコントローラおよびディスプレイの動作を示すブロック図である。

実施例

0006

以下の記載および図面は実例であり、制限として解釈されるものではない。徹底した理解をもたらすために多数の特異的な詳細が記述される。しかしながら、特定の例において、周知または従来の詳細は、記載が不明瞭になる事を避けるために記述されない。本出願の開示における1つのまたは一実施形態に対する言及は必ずしも同じ実施形態に対して言及していない;また、そのような言及は、少なくとも1つを意味している。

0007

本明細書における「1つの実施形態」又は「一実施形態」に対する言及は、実施形態に関連して記載される特定の特徴、構造、又は特徴が、少なくとも本開示における1つの実施形態に含まれることを意味する。本明細書の様々な箇所における「1つの実施形態において」というフレーズ出現は、必ずしも全て同じ実施形態に言及してはおらず、また、他の実施形態に対して相互排他的な別個または代替的な実施形態に言及してもいない。さらに、様々な特徴が記述され、それらはいくつかの実施形態より示されるが他の実施形態によっては示されない場合がある。同様に、様々な必要条件が記述され、それらはいくつかの実施形態の必要条件であって他の実施形態の必要条件ではない場合がある。

0008

本出願は、高速マルチタッチセンサ、および「Low−Latency Touch Sensitive Device」と題された2013年3月15日出願の米国特許出願第13/841,436号、「Fast Multi−Touch Stylus」と題された2013年3月15日出願の米国仮特許出願第61/798,948号、「Fast Multi−Touch Sensor With User−Identification Techniques」と題された2013年3月15日出願の米国仮特許出願第61/799,035号、「Fast Multi−Touch Noise Reduction」と題された2013年3月15日出願の米国仮特許出願第61/798,828号、「Active Optical Stylus」と題された2013年3月15日出願の米国仮特許出願第61/798,708号、「Hybrid Systems And MethodsFor Low−Latency User Input Processing And Feedback」と題された2012年10月5日出願の米国仮特許出願第61/710,256号、「Fast Multi−Touch Post Processing」と題された2013年7月12日出願の米国仮特許出願第61/845,892号、「Reducing Control Response Latency With Defined Cross−Control Behavior」と題された2013年7月12日出願の米国仮特許出願第61/845,879号、および「Systems And Methods For Providing Response To User Input Using Information About State Changes And Predicting Future User Input」と題された2013年9月18日出願の米国仮特許出願第61/879,245号に記述される他のインターフェースなどの、ユーザインターフェースに関連する。それらの出願の全体的な開示は、参考文献により本明細書に組み込まれる。

0009

様々な実施形態において、本出願における開示は、低レイテンシでのダイレクトマニピュレーションユーザインターフェースを提供するシステムおよび方法に関する。擬似的な「現実世界」の物体の直接的な物理的操作は、直接タッチ入力スタイラス入力、空中ジェスチャー入力を可能にするものなどの多くのタイプの入力装置、同様にマウストラックパッドペンタブレット、その他を含む間接的装置のために使用される一般的なユーザインターフェースのメタファー(metaphor)である。本出願における開示のために、ユーザインターフェースにおけるレイテンシは、ユーザの物理的な入力行為に対する応答が提示されるまでにかかる時間について言及する。以下により詳しく議論されるように、テストは、ユーザが低レイテンシを好み、ユーザが確実に5−10msもの低レイテンシを認識出来る事を示した。

0010

図1は、それぞれ100ms(参照番号110)、50ms(参照番号120)、10ms(参照番号130)および1ms(参照番号140)の典型的なタッチユーザインターフェースにおけるレイテンシの効果の実証を示す。物体をドラッグする時、レイテンシの増大は、ユーザの指と、ドラッグされている物体(この場合は正方形のユーザインターフェース要素)の間の増大する距離として反映される。示されているように、レイテンシの効果は、100ms(参照番号110)および50ms(参照番号120)において明白であるが、10ms(参照番号130)で徐々に重要でなくなり、実質的に1ms(参照番号140)で消える。図11は、典型的なスタイラスまたはペンのユーザインターフェース(1110)と(1120)におけるレイテンシの効果を示す。この実施例において、遅延(1120)は、スタイラス(1100)の先端とコンピュータ処理されたストローク(1110)の間の増大する距離として視認出来る。低レイテンシのシステムの導入によって、スタイラス(1100)の先端とコンピュータ処理されたストローク(1130)の間の距離は、著しく低減する。

0011

一実施形態では、本出願において開示されるシステムおよび方法は、より高いレベルのレイテンシで追加の視覚応答を織り交ぜた、またはそれを重ねた、即時のビジュアルフィードバックを10ms未満のレイテンシで提示するハイブリッドタッチユーザインターフェースを提供する。いくつかの実施形態では、応答のこれらの2つのセットの設計は、視覚的に一体になっているように設計され、その結果、ユーザはそれらを識別出来ない。いくつかの実施形態では、「低レイテンシ」の応答は10msのレイテンシを超え得る。

0012

<レイテンシの原因>
様々な実施形態において、ユーザ入力装置およびその入力のシステム処理におけるレイテンシは、次のものを含む多くのソースを有することが可能である:
(1)タッチ事象補足する物理センサ
(2) タッチ事象を処理し、ディスプレイのための出力を生成するソフトウェア
(3) ディスプレイ自体;
(4)バスを含む構成要素間のデータ送信
(5)メモリ記憶装置または短いバッファのいずれかにおける、データ内部記憶装置
(6)システムリソースのためのインタラプトおよび競合
(7) レイテンシを導入することが可能である回路構成の他のソース;
(8) 光の速度などの物理的な制約、およびその回路構成アーキテクチャにおける波及
(9)抵抗性タッチセンサーがその「ニュートラル」状態に戻る(bend back)ために必要な時間などの機械的な制限。

0013

様々な実施形態システムレイテンシの縮小は、これらの構成要素の1つ以上におけるレイテンシの改善を通じて対処することが可能である。ある実施形態では、本出願において開示されたシステムおよび方法は、低レイテンシの入力センサおよびディスプレイを専用の処理システムと組み合わせることにより、1ms以下のレイテンシを達成し得る入力装置を提供する。ある実施形態では、本出願において開示されたシステムおよび方法は、そのような低レイテンシの入力センサおよびディスプレイを専用の処理システムと組み合わせることにより、5ms以下のレイテンシを達成し得る入力装置を提供する。さらなる実施形態では、本出願において開示されたシステムおよび方法は、そのような低レイテンシの入力センサおよびディスプレイを専用の処理システムと組み合わせることにより、0.1ms以下のレイテンシを達成し得る入力装置を提供する。さらなる実施形態では、本出願において開示されたシステムおよび方法は、そのような低レイテンシの入力センサおよびディスプレイを専用の処理システムと組み合わせることにより、10ms以下のレイテンシを達成し得る入力装置を提供する。ある実施形態では、そのような極めて低いレイテンシを達成するために、本出願において開示されたシステムおよび方法は、従来のオペレーティングシステム(OS)ソフトウェアおよびコンピューティングハードウェアを、専用の、カスタムプログラムを施したフィールドプログラマブルゲートアレイFPGA)または特定用途向け集積回路ASIC)に置き換える場合がある。ある実施形態では、FPGAまたはASICは、低レイテンシ応答を提供するために従来のOSおよびコンピューティングハードウェアを置き換え、一方で、代わりに従来のOSおよびコンピューティングハードウェアを、より高レイテンシ応答(低レイテンシ応答に加えて使用される)を提供するために残す。別の実施形態では、記述されたFPGAまたはASICの機能のいくらかまたは全ては、限定されないが、グラフィック処理装置(GPU)、入力デバイスコントローラ、中央処理装置(CPU)またはチップ上のシステム(SoC)のような、既存の構成要素に追加論理統合することにより、置き換えられる場合がある。低レイテンシのロジックは、ハードウェア内で、ならびに、それらのまたは他の構成要素に内蔵された、および/または実行されたソフトウェア内でエンコードすることが可能である。多数の構成要素が必要な実施形態において、通信及び/又は同期は共有メモリの使用により促進される場合がある。これらの実施形態の何れかにおいて、高レイテンシまたは低レイテンシで提供される応答は混合される、または、いずれか一方のみが所定の入力事象に対して提供される場合がある。

0014

様々な実施形態において、開示されるシステムおよび方法は、本明細書において「ハイブリッドフィードバック」として言及されるものを提供する。ハイブリッドフィードバックシステムにおいて、入力に対する基本的なシステム応答のうちのいくつかは、より広範囲アプリケーションロジックから論理上分離される。結果は、従来のレベルのレイテンシで提供されるアプリケーションロジックに基づくよりも多くのフィードバックを有する、ユーザ入力事象にほぼ即時のシステムフィードバックを提供可能である、敏活な入力プロセッサを備えたシステムを提供する。いくつかの実施形態において、これらのシステム応答が視覚的に提供される。様々な実施形態において、ハイブリッドフィードバックシステムの低レイテンシの構成要素は音声または振動触覚フィードバックを通じて提供される場合がある。いくつかの実施形態では、アプリケーションロジックフィードバックと同じモダリティでほぼ即時のフィードバックが提供されるかもしれない。いくつかの実施形態では、低レイテンシのフィードバックが異なるモダリティ、または多数のモダリティの中で提供されるかもしれない。完全に視覚的な実施形態の実施例は図2に示され、この場合はタッチ入力装置の使用を示す。とりわけ図2は、ユーザがインボックスを表わすアイコン(210)に触れて、その後これをドラッグした後の結果を示す。ユーザがアイコン(210)に触れる時、境界(220)または他の適切なプリミティブが表示される。ある実施形態では、完全に視覚的な低レイテンシフィードバックにおいて、適切な低忠実度の表示がそのレンダリングの容易さにより選択される場合がある。ある実施形態では、低レイテンシのフィードバックが適切な低忠実度の表示を提供可能である1つ以上のプリミティブを用いて提供される場合がある。ある実施形態では、ユーザがタッチディスプレイ(200)中でアイコンを他の場所へドラッグすれば、低忠実度の境界(230)が表示され、例えば1msの低レイテンシで操作される(例えば移動される)場合がある。同時に、アイコン(210)の動作はより高いレイテンシで示される場合もある。ある実施形態では、ほぼ即時の低レイテンシ応答と、おそらくより遅いアプリケーションロジックフィードバックの間の応答の差が、ユーザによって認識されることが可能である。別の実施形態では、低レイテンシの応答と従来の応答の間の応答のこの差は混合され、より顕著でない、またはユーザが認識できない。ある実施形態では、ほぼ即時のフィードバックは、従来の経路のアプリケーションロジックフィードバックより低忠実度で提供される場合がある。ある実施形態では、少なくともいくつかのケースにおいて、低レイテンシの応答は、アプリケーションロジックフィードバックと同様か、さらに高忠実度で提供される場合がある。ある実施形態では、低レイテンシのほぼ即時のフィードバックの形態は、アプリケーションロジック、またはシステムソフトウェア(ユーザインターフェースツールキットなど)にあるロジックにより指示される。例えば、ある実施形態では、アプリケーションロジックは、様々なグラフィックプリミティブ事前レンダリングされる場合があり、プリミティブはその後低レイテンシのサブシステムにより使用されることが可能である。同様に、ある実施形態では、ソフトウェアツールキットは、低レイテンシシステムによる必要性に先立ってレンダリングされることが可能であるグラフィックプリミティブを開発する手段を提供する場合がある。ある実施形態では、低レイテンシの応答はあらかじめ決定されるか、または他の場合には、アプリケーション及び/又はシステムソフトウェアロジックを考慮せずに決定される。ある実施形態では、個々の事前レンダリングされたまたは部分的にレンダリングされた低レイテンシの応答、あるいは事前レンダリングされたまたは部分的にレンダリングされた低レイテンシの応答のパッケージは、ユーザ入力事象の応答に使用する必要性に先立って低レイテンシのサブシステムにアクセス可能であるように、メモリ事前にロードされることが可能である。

0015

一実施形態において、低レイテンシ出力のモダリティは聴覚的な場合がある。一実施形態において、低レイテンシシステムは例えば、音声出力システムに向けて話されている自分の音声の「エコー」をユーザに提供し得る、音声出力システムへ迅速にマイクロホン入力を送信するために使用されることがある。前記低レイテンシ出力は、ユーザが自身の声を聞くのを可能にする従来のアナログ電話として、エコーの特徴の同一形式を持つという印象を提供することがある。一実施形態において、低レイテンシの聴覚フィードバックが、ユーザ入力事象(例えば、タッチ、ジェスチャ、ペン入力、又は口頭入力)に応じて提供されることがあり、より高いレイテンシ応答が視覚的に提供される。

0016

本件の方法及びシステムを使用するシステムの別の例示的な実施形態を図3に示す。例示的なシステムにおいて、カーソル(310)(「十字」特徴を包含しているボックスにより表わされる)は、装置のスクリーン(300)のあらゆる場所へドラッグされ得る。カーソル(310)が標的のボックス(320)へドラッグされると、UI動作受諾される。カーソル(310)がスクリーン(300)のどこかへとドラッグされると、動作が拒絶される。一実施形態において、ドラッグされると、カーソル(310)は低レイテンシで引き寄せられ、故に認識可能なレイテンシ無しにユーザの指を追跡する。一実施形態において、標的(320)は、ユーザ認識に影響を与えることなく、より高いレイテンシで引き寄せられる。同様に、一実施形態において、「REJECT」又は「ACCEPT」の応答(330)が後に認識できる程度に生じることがあり、故に、ユーザ認識に影響を与えることなく、例えば低レイテンシのサブシステムを使用せずに、より高いレイテンシで引き寄せられ得る。

0017

図示された実施形態は例示的であることを理解されたい。図3に示される原理は、現在知られている、又は当該技術分野で後に開発される全てのUI要素を含む、任意の種類のUI要素に適用されることがある。同様に、図3に示される原理は、様々なタイプの入力装置及び/又は出力装置上で、実質的に任意の種類の入力事象と共に使用され得る。例えば、一実施形態において、上述の「タッチ」事象に加えて、入力事象は、限定されないが、空中又は表面上でのジェスチャ、音声、意識的又は無意識の目の動き、及びペンを含み得る。一実施形態において、一旦ジェスチャが生じると、任意のUI要素の応答は分岐されることがあり、そこでは、低レイテンシ応答(例えば、UI要素の低忠実度の表示が示され、例えば0.1ミリ秒で迅速に応答する)、及び非低レイテンシ応答(例えば、UI要素の更に洗練された表示)が、加速された入力を提供しないシステムにより共通して提示されるレイテンシにより提供される。一実施形態において、応答はハイブリッドシステムにおいて分離しないこともあり、代わりに完全に低レイテンシである場合があり、アプリケーションロジックは、その他により高いレイテンシで実行する低レイテンシ応答の原因ではない。

0018

一実施形態において、タッチ及び/又はジェスチャの入力事象は様々な技術を使用して達成され得、この技術は限定されないが、抵抗性、直接照明、阻止波全内部反射(frustrated total−internal reflection)、拡散照明投影容量(projected capacitive)、容量結合音波、及びセンサーインピクセル(sensor−in−pixel)を含む。一実施形態において、ペン入力は、抵抗性、視覚的、容量性磁気的、赤外線光学的なイメージング分散信号、音声パルス、又は他の技術を使用して可能にされ得る。一実施形態において、ジェスチャ入力も、視覚センサ又は携帯型の物体(センサを包含しているもの、及び単に追跡のために使用されるものを含む)を使用して、又は、2D及び3Dセンサなどの携帯型の物体無しに、可能となる場合がある。入力事象を識別するためのセンサ又は技術の組み合わせはまた、事象のタイプ(即ち、タッチ、ペン、ジェスチャ、網膜の動きなど)の組み合わせとして考慮される。入力事象を識別又は捕捉するための技術が共有する1つのプロパティは、その技術がユーザ動作と該動作に対するシステムの応答との間のレイテンシに起因するということである。この起因に関する規模は、技術及び実装にわたって異なる。

0019

典型的なマルチタッチシステムにおいて、入力装置と、通信に関与し得るディスプレイ、動作システム、UIツールキット、アプリケーション層、及び/又は根本的に、オーディオ又はグラフィックスコントローラとの間に、情報フローの経路がある。これらの各々はレイテンシを加えることができる。更に、動作システム、具体的に非実時間動作システムにより導入されたレイテンシは、変更自在である。Windows、iOS、OSX、Androidなどは非実時間動作システムではなく、故に、このような動作システムを使用すると、特定の期間内に応答が生じるという保証は無い。プロセッサが重くロードされると、例えばレイテンシは劇的に増大することがある。更に、幾つかの動作はソフトウェアスタックにおいて非常に低いレベルで扱われ、高優先順位を持つ。例えば、マウスポインタは典型的に、プロセッサが重くロードされている状態にある場合に認識されたレイテンシが比較的低くなるように、高度に最適化される。対照的に、タッチ又はジェスチャのシステム上で2本の指により写真のサイズを変更するといった動作は通常、アプリケーション及び/又はUIツールキットのレベルで画像の一定の縮尺変更を必要とする場合があるので、非常に計算集約的である。その結果、プロセッサが高負荷状態にある場合、そのような動作は低い認識されたレイテンシをめったに有することができない。

0020

典型的なマルチタッチシステムにおいて、ディスプレイシステムグラフィックスシステム、同様にディスプレイも含む)も、レイテンシに起因することがある。高いフレームレートのシステムは、該システムを通じて実際のレイテンシを曖昧にすることがある。例えば、60Hzのモニタは、精巧な画像処理効果を可能にするために、バッファの1以上のフレームを含むことがある。同様に、プロジェクタなどの幾つかの表示装置は、電子機器ダブルバッファリングを含み、ディスプレイのレイテンシを効果的に二倍にする。3Dテレビ及びモーションアーチファクトの低減に対する望みは、より迅速なLCDの開発を駆り立てているが、しかし、液晶自体の物理特性により、480Hzを超える従来のLCDのパフォーマンスが起こりにくくされる。一実施形態において、本明細書に記載される低レイテンシシステムはLCDディスプレイを使用することがある。LCDディスプレイのパフォーマンスとは対照的に、OLED又はAMOLEDのディスプレイは、1ms未満で十分に時間応答(response times)が可能である。従って、一実施形態において、本明細書に記載される高性能のタッチ(又はジェスチャ)システムは、限定されないが次の技術の1つ以上に基づいたディスプレイを含む、より高速な時間応答を持つディスプレイに実装されることがある:OLED、AMOLED、プラズマエレクトロウェッティングカラーフィールドシーケンシャルLCD、光学的に補正されたベンドモード(OCB又はPi−Cell)LCD、電子インクなど。

0021

<レイテンシ認識研究>
ユーザが直接のタッチインターフェースにおいてどのようなレイテンシを本質的に瞬間的なものとして認識するかを判定するために研究が試みられた。図4のブロック図の中で表わされたプロトタイプの装置は、プロトタイプの高性能タッチシステム(400)の基礎的な構造の例示的な実施形態を示す。一実施形態において、高速入力装置(420)は、24cm×16cmの活動領域を持つマルチタッチ抵抗型タッチセンサ、及び、非常に高速の動作を可能にする電子機器である。このセンサによる遅れは僅か1ms未満である。一実施形態において、タッチデータは、光リンクの上で連続して送信されることがある。

0022

例示的な試験システムにおいて、ディスプレイ(460)は、Texas InstrumentsのDigital Light Processing技術に基づくDLPDiscovery 4100キットである。例示的な試験システムは、タッチセンサ上で前面投影を利用し、故に、ユーザによる指及び画像アライメントの認識を妨害する視差を排除する。利用されたDLPプロジェクタは、Digital Micromirror Device(DMD)、即ち、非常に高速でピクセルオンオフを効果的に設定するミラーマトリクスを使用する。このミラーの高速は、連続したカラー画像の出現をもたらすようにオンオフでのパーセンテージ時間を変更するために使用されることがある。一実施形態において、単純な2値画像のみが使用される場合、これらはより高いレートでさえも生成され得る。例示的な試験システムにおいて、プロジェクタ開発システムは、40μsより下のレイテンシを持つ1024×728の分解能で32,000の2値のフレーム/秒を表示する。このスピードを達成するための例示的な試験システムにおいて、ビデオデータは25.6GbpsでDMDにストリームされる。

0023

例示的な試験システムにおいて、最小のレイテンシを達成するために、全てのタッチ処理は専用のFPGA(440)の上で実行され、PC又は動作システムは、タッチ入力と低いレイテンシ出力のディスプレイとの間で利用されない。XC5VLX50アプリケーションFPGAに搭載されたDLPキットは、タッチデータを処理してビデオ出力を与えるために使用されることがある。FPGAへのUSBの連続的な接続により、パラメータが動的に変更されることが可能となる。例示的な試験システムにおいて、レイテンシは、1msの分解能で1msから数百msまで調整され得る。異なる試験モード起動され得、ポートによりタッチデータを分析のために収集することが可能となる。

0024

例示的な試験システムにおいて、センサ(420)からタッチデータを受信するために、システムはカスタム高速UARTを介して通信する。レイテンシを最小化するために、2Mbpsボーレートが使用され得、それは、通信チャネルにわたる高周波ノイズを理由に、信号の保全性を失わずに使用され得る高いボーレートを表わす。例示的な試験システムにおいて、圧縮されたタッチデータの個々のバイトはその後、FPGA(440)に実装されたタッチ検出有限状態機械により処理される。有限状態機械(FSM)はデータを同時にデコードし、タッチの座標を識別するために質量中心ブロッブ検出(center−of−mass blob−detection)アルゴリズムを行う。例示的な試験システムにおいて、該システムは、タッチデータのバッファリングが生じないように、FSMの各反復が最後の受信されたバイト上で作動するよう、パイプライン化される。

0025

例示的な試験システムにおいて、タッチ座標はその後、10段階の変更自在な遅延ブロックに送信される。各遅延ステージカウンタを持つ単純なFSMであり、タッチ座標を遅らせるためにクロック相数のサイクルを示す制御信号を得て、様々なレベルのレイテンシを可能にする。遅延ブロックは反復の最初にタッチサンプルラッチし、そして、サンプルを送信して次のものにラッチする前にサイクルの適切な数を待つ。それ故、遅延ブロックは、遅延カウント因子だけサンプルレート引き下げる。一実施形態において、合理的なレベルでサンプルレートを維持するために、10の遅延ステージが使用され得、その結果、例えば100msのレイテンシを達成するために、ブロックは、100Hzのサンプルレートをサンプル間で10msを待つ。例示的な試験システムにおいて、基礎的なアプリケーションを実行するために、MicroBlazeのソフトプロセッサが、ディスプレイを与えるために使用される。

0026

一実施形態において、試験システムは、パフォーマンスの改善のためにMicroBlazeの代わりにハードコードされた制御FSMを使用することがある。一実施形態において、別のソフトプロセッサを使用してもよい。例示的な試験システムにおいて、MicroBlazeは、XilinxのFPGAにおいて合成されるように最適化された、32ビットハーバードアーキテクチャRISCプロセッサである。MicroBlazeソフトプロセッサのインスタンス化により、必要とされるコア周辺装置、及びメモリ構造のみの選択が可能となる。例示的な試験システムにおいて、ベースとなるMicroBlazeの構成に加えて、割込みコントローラが使用され得、例えば、タッチデータのためのGPIO、変更自在なレイテンシを設定するためのGIPO、画像バッファのためのBRAMメモリコントローラ、及びPCと通信するURATユニットである。例示的な試験システムにおいて、MicroBlazeは100MHzで計測される。MicroBlazeは、有効なタッチ座標を検出するために割込みシステムを使用する。有効なタッチデータが遅延ブロックからGIPOに到達する場合にタッチの実行可能な割込み事象(touch ready interrupt event)が生成され、対応する画像は画像バッファに書かれる。割込みベースのシステムの不均一な性質を理由に、正確なレイテンシを計算することは出来ないが、設計により、それは入力装置により1msのレイテンシと比較して些細なものである。

0027

例示的な試験システムにおいて、画像バッファはオンチップRAMブロックの中で合成される。このようなブロックは、デュアルポートの高速の構成自在なメモリバッファに、高いフレームレートのディスプレイを支持するのに十分な帯域幅を提供することができる。例示的な試験システムにおいて、画像バッファは、DLPにより必要とされるように、25.6Gbpsの合計の帯域幅のために128ビットのバス幅により200MHzで計測される。最終的に、DMDコントローラは、画像バッファからフレームを連続的に読み出し、DMDを制御するのに適切なタイミングで信号を生成する。

0028

例示的な試験システムにおいて、ユーザ入力は、従来のPCに同時に送信され、従来のより高いレイテンシ応答を生成するように処理される。このより高いレイテンシ応答は、従来のデータプロジェクタにより出力され、投影された低レイテンシ応答に重なるように位置合わせされる。

0029

タッチスクリーンインターフェース上で共通のタスクを実行する際にユーザが認識可能なパフォーマンスの正確なレベルを判定するために、研究が行われた。その目的のため、様々なパフォーマンスレベル弁別域(just−noticeable difference)(JND)を判定するために研究が行われた。JNDは、観察者により検出され得る2つのレベルの刺激間の差の測定値である。この場合、JNDは、参加者が2つの不均等な刺激間を識別することができる閾値レベルとして定義され、2つの不均等な刺激のうち一方は、同じレベルで一貫して提示され、基準と称されるものであり、他方は、その値が実験を通じて動的に変更され、プローブと称されるものである。幾つかの恣意的な基準値でJNDに関して共通して受諾された値は、参加者が時間のうち75%を基準として正しく識別することができるプローブである。このレベルの精度で基準を識別することができないプローブ値は、基準とは「顕著に異なることはない」と考慮される。

0030

基準として役立つ1msのレイテンシの最大パフォーマンスと比較した場合のプローブレイテンシのJNDレベルを判定するために、研究が行われた。そのような判定は最大の認識可能なパフォーマンスに絶対値を提供しない一方で、我々のプロトタイプが達成し得る最速のスピードであったと仮定した場合、他のレベルのレイテンシが測定され得るものに対する我々の「最良の場合の」フロア条件として機能することができる。典型的な現世代ハードウェア(例えば現行のタブレット及びタッチコンピュータ)が提供する著しく低い(<20ms)レイテンシ値(〜50−200ms)を参加者が識別することができることを、見出した。

0031

10人の右利きの参加者(内3人は女性)を地域コミュニティから募集した。年齢は24から40歳までに及んだ(平均27.80、標準偏差4.73)。参加者は全員、以前にタッチスクリーン装置を使用した経験があり、1以上のタッチ装置(iOS又はAndroidベースの電話又はタブレット)を所有していた。参加者は、以下のレイテンシ状態の対:基準値(1ms)及びプローブ(1乃至65msの間のレイテンシ)を繰り返し提示された。参加者は、タッチスクリーンディスプレイ上で自身の指を左から右へ、次に右から左へとドラッグした。任意のドラッギングタスクが適切である一方、左/右の動きは高レイテンシの場合に閉鎖(occlusion)を低減する。参加者は、研究を「駆け巡らなかった(race through)」ことを確実にするために、両方向に動くよう求められた。ユーザの接点の下に、システムは、図1に見られるような固形の白色の2cm×2cmの正方形を提供した。動きのスピードは参加者により決定されるままであった。状態の順序は各対のために無作為化された。研究は、2つの代替的な強制的な選択試験として設計された;参加者は、各試験内に、どの場合が基準(1ms)値であるかを選択するよう指示され、「分からない」又は「不確か」という選択を行うことは認められなかった。各対の後、参加者は、2つのうちどちらが「より速かった」かを実験者通知した。

0032

各試験が75%の所望のJNDレベルで集まるために、追加されたレイテンシの量は、適応性階段アルゴリズムに従い制御された。基準値の正確な識別はそれぞれ、プローブにおけるレイテンシの量の減少を引き起こし、一方で不正確な応答はそれぞれプローブのレイテンシを増大させた。75%の信頼レベルに達するために、増大及び減少は、Kaernbach(Kaernbach, C. 1991. Perception & Psychophysics 49, 227−229)により記載される単純な加重されたアップダウン方法に従い、ここで、増加はベースステップサイズに適用される3倍の乗数を有し、減少はベースステップサイズ(最初に8ms)であった。

0033

参加者が正確な応答後に不正確に、或いは不正確な応答後に正確に応答すると、このことは、階段の方向を反転させる(増大又は減少させる)ので、反転と称された。最初に8msであるステップサイズは、1msの最小の最小ステップサイズへと各反転において半分にされた。これは、合計10の反転が生じ、結果75%の正確さでの集中性がもたらされるまで継続した。各参加者は、8つの階段「走行」を完了した。このうち4つは最小のプローブレイテンシ(1ms)で始まり、残り4つは最大(65ms)で始まった。階段のより高い開始値が、商業上の提供物にほぼ一致し、且つ、この値が100%近くの精度で1msの基準と区別され天井効果を回避することをパイロット試験が明らかにしたことを理由に、選択された。階段は、その他に連続的な刺激間の進行を追跡する参加者の能力により引き起こされる応答バイアスを妨げるために、インターリーブ型の対において一度に2つを実行した。このような対の各々に関する階段状態は、可能性から置き換えることなく無作為に選択された(2つの開始値×4つの反復)。階段間の破損を含む実験全体は、単一の1時間のセッション内で各参加者により完了された。

0034

1msより大きなレイテンシ値に関する弁別域(JND)レベルを見出すために研究が設計された。このJNDレベルは、参加者が時間の基準75%を正確に識別することができるレベルであると共通して同意される。参加者のJNDレベルは、2.38msから11.36までにおよび、平均JNDは全参加者にわたって6.04msであった(標準偏差4.33ms)。JNDレベルは、各参加者に関する階段の8つの実行にわたって著しく異なってはいなかった。各参加者の結果を図5に現わす。

0035

結果として、参加者は、消費者装置の典型的な閾値よりはるかに下のレイテンシ(50−200ms)の差を識別することができたことが示される。参加者は、タッチスクリーンの周囲を動かされるにつれて、スクリーン上の物体と自身の指との間の距離を推定することにより恐らく頻繁にレイテンシを判定することに注目されたい;これは、UIにおいて使用される入力基本要素(特にドラッギング)のアーチファクトである。異なる入力基本要素(例えばタッピング)の試験は、レイテンシの異なる認識を示す。結果は、レイテンシにおける桁の改善がタッチ装置のユーザにより気づかれ且つ評価されることを確認する。

0036

<低レイテンシの直接タッチ入力装置のための構造>
一実施形態において、アプリケーション開発者がツールキットベースのアプリケーション設計プロセスを使用し続けることが可能となるが、低レイテンシシステムの存在を仮定した場合にそのようなツールキットが非常に低いレイテンシでフィードバックを提供するのを可能にする、ソフトウェアインターフェースが設計される場合がある。一実施形態において、本開示に概説されたシステムと方法は、多くのUIツールキットが基づくUI開発のモデルビューコントローラ(「MVC」)モデルに実装されることがある。MVCは、アプリケーションロジックがアプリケーションの視覚的表示から分離されることを可能にする。一実施形態において、MVCは、アプリケーションのために第2の重なった事実上の(de facto)ビューを含むことがある。特に、一実施形態において、タッチ入力は、タッチが行われる時間でアプリケーションの状態に部分的に基づく、UI制御からの即時の応答を受信する。その目的は、根本的なアプリケーションに文脈上結合される、ほぼ即時の応答を提供することである。

0037

タッチに対するアプリケーション非依存の視覚応答に関する前の研究は、UIの視覚的要素とも完全に別のものであり、視覚的複雑性を加えている。一実施形態では、本明細書で概説されるシステムおよび方法によると、視覚的複雑性を低減するために、1セットの視覚応答は、UI要素自体に完全に統合される。したがって、一実施形態において、示される特定の視覚が、タッチに事実上の「マウスポインター」を提供する場合では、その目的は、制御部自体に高性能応答を統合し、より一体となった視覚化を提供することである。それにもかかわらず、一実施形態において、システムおよび方法は、後に高レイテンシのサブシステムからの応答と融合される、低レイテンシのサブシステムによる文脈自由応答のレンダリングを可能にする。一実施形態では、システムの応答の残りと同じレンダリングパイプラインにおいて、視覚は示される必要はない。代わりに、本明細書で議論されるようなハイブリッドフィードバックを利用するシステムまたは方法は、従来のシステムによって生成されたより高いレイテンシ反応に加えて、ユーザ入力に対するより低いレイテンシ反応を供給し得る。

0038

したがって、一実施形態では、従来のダイレクトタッチソフトウェアが、通常では高いレイテンシ反応を有して実行するように、加速した入力相互作用(accelerated input interactions)は設計され、一方で、UI要素のためにカスタマイズされた、追加のセットのフィードバックが、ユーザが感知できない(user−imperceptible)レイテンシの標的とともに、より低いレイテンシで提供される。一実施形態では、これらの2つの層は、2つ以上の画像を重ねることによって組み合わせられる。一実施形態では、2つの組み合わせた画像は、低レイテンシのタッチ装置からの1つの投射画像およびカスタムタッチソフトウェアを実行するデスクトップコンピュータに接続された従来のプロジェタからの第2の投射画像を含み得、これは、低レイテンシのサブシステムから入力を受信する。

0039

上に記載される2つのプロジェクターソリューションは、低レイテンシ応答と従来の応答を組み合わせる、より一般的な概念の1つの特定の実施形態として働くことのみを意図している。一実施形態では、低レイテンシおよび高レイテンシのサブシステムからの視覚出力は、ディスプレイに送信される前にディスプレイバッファまたはシステムのどこかに論理的に組み合わせられ、それ故、表示される。一実施形態では、透明な、重ね合わせディスプレイは、ユーザに低い及び高いレイテンシ出力を供給する。一実施形態では、ディスプレイのピクセルは、低レイテンシのサブシステムによって制御されるものもあれば、高レイテンシのサブシステムによって制御されるものもあるように、インターレースされ、インターレースを介して、これらのディスプレイは、重ね合わせるためにユーザに現われ得る。一実施形態では、ディスプレイ上に供給されたフレームは、低レイテンシのサブシステムによって制御されるものもあれば、高レイテンシのサブシステムによって制御されるものもあるように、インターレースされ、インターレースを介して、これらのディスプレイは、組み合わせた画像を含むためにユーザに現われ得る。一実施形態では、低レイテンシ応答は、ハードウェアにおいて優性に又は完全に生成され得る。一実施形態では、低レイテンシ応答は、入力センサから直接受信した入力センサデータから生成され得る。一実施形態では、低レイテンシ応答は、ディスプレイハードウェアへの高帯域リンクを有することによって表示される。

0040

低レイテンシのサブシステム用にユーザインターフェースを設計する際に、次の制約の1つ以上が考慮され得る:
・情報:入力に対するシステムの応答を形成するために高レイテンシのサブシステムから必要とされるあらゆる情報または処理は、それが、例えば、予めレンダリングまたは供給されない限り、必然的に高レイテンシを有するだろう。
・パフォーマンス:低レイテンシでの応答の形成を可能にした時間は、必然的に制限される。ハードウェア加速を伴おうと、応答が所望の低レイテンシを満たすことを保証するために、応答の設計は、慎重にパフォーマンスが重視されなければならない。
忠実度:レンダリングされた低レイテンシ画像の忠実度は、より高いレイテンシのレンダリングと区別できないかもしれない(実際には、それは、高レイテンシのシステムによって予めレンダリングされ得る);例えば、視覚が、単に単色であり、及び/又は視覚プリミティブ(visual primitives)に限定される、及び/又は音声または触覚の応答の期間または特性が制限されるなど、パフォーマンスを向上させるための忠実度に、追加の制約がかけられ得る。この種の制約は、加速ハードウェアを含む、または出力ハードウェア(ディスプレイ、触覚出力装置、またはスピーカーなど)による、システムの様々な要素によって導入され得る。
・非干渉:応答が、ハイブリダイズされた(hybridized)組み合わせであり、アプリケーションの応答の幾つかが、低レイテンシ層において生成され得、およびその幾つかが、高レイテンシ層において生成され得る、実施形態では、2つの応答が、例えば、ユーザの入力に対するシームレスな応答を提供するために、どのように混合されるかが考慮され得る。一実施形態では、低レイテンシ応答は、後に必然的に生じる、あらゆる考えられるアプリケーション応答も干渉しない。一実施形態で、低レイテンシ応答と従来の応答との間に干渉が生じ得るが、その干渉は、設計によって、または応答の混合によって処理され得る。

0041

一実施形態では、タッチに対する区別された低い及び高いレイテンシの視覚応答を有する1セットの視覚的UI制御部を作り出すために、設計プロセスが行われた。応答の二層間のシームレスな移行を可能にするメタファーが求められた。これらの視覚化は、物体の位置および状態などの情報を含んだ。設計は、上記の制約を用いて、実行可能性に基づいて抜粋された。そのような実施形態の最終的な設計は、軍用機において使用される視覚化に類似した、ヘッドアップ表示装置(HUD)のメタファーに基づいた。従来のHUDが幾何学的に簡素であるため、HUDは、適切であり、本物の忠実度で幾何学的に簡素な表示を実行するのは比較的容易である。HUDは、組み合わされている2つの視覚層のたった1つの例を表わすが、多くのHUDにおいて、コンピュータ化されたディスプレイは、ビデオまたは「実世界(real world)」自体に重ね合わせられる。したがって、HUDは、一般に、非干渉となるように設計される。

0042

HUDのメタファーに基づいて、タッチ事象およびUI要素に特有のレイテンシ層視覚化の典型的なセットは、多くのダイレクトタッチシステムで見られるUI要素のセットのために開発された。これらの典型的な要素は、一般的且つ代表的なものであり;それらの相互作用タップ、ドラッグ、2本の指でのピンチ)は、現在のダイレクトタッチ装置で使用される相互作用空間の大部分をカバーする。そのような実施形態において発達された低レイテンシ応答は、表1に記載され、それらは図6−8にも示される。

0043

0044

これらの3つの要素は、タッチ入力用の標準のUIツールキットの広範囲なカバレッジを表わす。ほとんどの高次UI要素は、これらのより単純な要素から構成される(例えば、ラジオボタンおよびチェックボックスは、両方とも「ボタン」であり、スクロールバーは、制約された(constrained)翻訳および交替で「ドラッグ可能/サイズ変更可能」である)。本明細書に記載される加速された入力システムおよび方法は、2つの顕著に異なるレイテンシレベルで作動する視覚の融合に依存し;このレイテンシ差は、低レイテンシの視覚化の設計に組み込まれた。一実施形態では、ユーザは、視覚層が一列に並ときのコヒーレント同期化とともに、両システムの状態を知らされ得る。一実施形態では、ユーザは、システムフィードバックの高レイテンシ部分と低レイテンシ部分とを区別することができるかもしれない。一実施形態では、視覚的要素は、低レイテンシ応答と従来の応答との間の明白な区別を提供しない方法で混合される。

0045

一実施形態では、アプリケーション開発者は、GUI制御部を組み立てる正規過程によってそれらのアプリケーションを構築するためのツールキットを利用する。実行することで、UI要素は、それらの視覚化を分岐させ、高レイテンシおよび低レイテンシの視覚化は、レンダリングされ、単一のディスプレイ上に重ねられる。そのようなシステムによる情報フローの実施形態は、図9に示される通りである。情報は、入力装置(910)からシステムへと流れ、IPUソフトウェアツールキット(930)を介してプログラムされた、入力処理装置(IPU)(920)によって最初に処理される。その後、UI事象は、2つのサブシステム、例えば、従来のソフトウェアスタック中で実行する従来のソフトウェアなどの、低レイテンシの、低忠実度サブシステム(940)、および高レイテンシのサブシステム(950)によって並列に処理される。一実施形態では、低レイテンシの、低忠実度サブシステム(940)は、図4のFPGA 440などの、ハードウェア中に実装され得る。

0046

本実施形態に記載される分岐は、アプリケーションロジックにより必要とされる低レイテンシのサブシステム(940)によって提供される初期応答のあらゆるパラメータ化が、ユーザが入力を与え始める前に定義しなければならないという、根本的な通信問題を引き起こす。アプリケーションによる提示時に処理を必要とする応答は、高レイテンシシステム(950)への低レイテンシシステム(940)の従属性を導入し、それ故、遅延をシステムに導入して戻す。一実施形態では、入力に対する低レイテンシシステム(940)の応答の後の段階は、高レイテンシのサブシステム(950)に依存し得る。一実施形態では、高レイテンシのサブシステム(950)上の入力に対する低レイテンシのサブシステム(940)の応答の後の段階の従属性は、従属性が追加のレイテンシを導入しないように管理される。一実施形態では、従属性は、完全に回避されるだろう。

0047

一実施形態では、UI要素のロジックは、低レイテンシのサブシステムに組み込まれ得る。ユーザ入力間で、高レイテンシのサブシステム(950)において実行するアプリケーションは、UI要素の低レイテンシのサブシステム(940)のモデルにパラメータを提供する機会を有する。したがって、一実施形態では、UIソフトウェア設計のMVCモデルは、低レイテンシのフィードバックの要因である別々のコントローラーを提供することによって拡張され得る。一実施形態では、ソフトウェア設計において、以下の1つ以上は、各制御部に指定され得る:
要素型(例えば、ボタン、ドラッグ可能な対象、スクロール可能なリストなど)。
境界寸法(Bounding dimensions)(例えば、x位置、y位置、幅、高さなど)。
条件付き:付加的なプリミティブ情報(例えば、スクロール可能なリストの場合におけるリスト項目のサイズなど)。

0048

一実施形態では、タッチ入力に対する与えられた要素型の応答のためのロジックは、低レイテンシのサブシステム(940)に保存される。ユーザ入力に対する低レイテンシのサブシステムの応答の更なるパラメータ化は、同じ方法で通信され得、より多様なカスタマイゼーションを可能にする。一実施形態では、センサデータは、事象を生成するために処理され(または入力ストリームの他の処理された形態)、その後、これは、低レイテンシのサブシステム(940)および高レイテンシのサブシステム(950)に別々に分配される。事象は、低レイテンシのサブシステム(940)および高レイテンシのサブシステム(950)に対する異なる割合で生成され得るが、これは、低レイテンシのサブシステムが、高レイテンシのサブシステムより速く事象を処理することができ、そのサブシステムを圧倒し得る高い割合で、事象を高レイテンシのサブシステムに送信することができるからである。それ故、ユーザ入力に対する低レイテンシおよび高レイテンシのサブシステムの応答は、独立しているが、調整される。一実施形態では、1つのサブシステムは、「マスター」として働き、ユーザ入力間の別のサブシステムの状態を設定する。一実施形態では、低レイテンシのサブシステムと高レイテンシのサブシステムとの間の関係性は、2つのサブシステム間の同期を含む。一実施形態では、低レイテンシのサブシステムと高レイテンシのサブシステムとの間の関係性は、処理を低レイテンシのサブシステム(940)にオフロードする高レイテンシのサブシステムの能力を含む。一実施形態では、低レイテンシのサブシステムと高レイテンシのサブシステムとの間の関係性は、その処理負荷を軽減する及び/又は前処理または予めのレンダリングのために高レイテンシのサブシステム(950)を利用する、低レイテンシのサブシステム(940)の能力を含む。一実施形態では、第2のグラフィック処理および出力システムの応答は、第1のグラフィック処理および出力システムに依存し、状態情報は、第1のグラフィック処理および出力システムから第2のグラフィック処理および出力システムまで渡される。そのような実施形態では、第1のグラフィック処理および出力システムから第2のグラフィック処理および出力システムまで渡された情報は、ユーザインターフェースにおいてグラフィック要素の1つ以上について記述する1以上のデータで構成される。このデータは、例えば、サイズ、位置、外観、代替的な外観、ユーザ入力に対する応答、およびユーザインターフェースにおけるグラフィック要素のタイプである。第1のグラフィック処理および出力システムから第2のグラフィック処理および出力システムまで渡されたデータは、第2のグラフィック処理および出力システムに利用可能な高速メモリに保存され得る。渡されたデータは、ボタン、スライダ、ドラッグ可能及び/又はサイズ変更可能なGUI要素、スクロール可能なリスト、スピナドロップダウンリストメニュー、ツールバーコンボボックス、移動可能なアイコン、固定したアイコン、ツリー表示グリッド表示、スクロールバー、スクロール可能なウィンドウ、またはユーザインターフェース要素、の外観及び/又は作用について記述し得る。

0049

一実施形態では、入力処理システムは、ユーザ入力信号が、第1または第2のグラフィック処理および出力システムの1つ又は両方によって受信される前に、ユーザ入力信号上でデシメーションを実行する。デシメーション済入力信号またはデシメーションがなされていない信号は、第1のグラフィック処理および出力システムから送信されたユーザインターフェースに関する情報に基づいて、すべての入力信号のセットから選択される。入力信号のデシメーションは、入力信号のセットを入力信号のより小さなセットに論理的に組み合わせることによって実行され得る。入力信号の論理的組み合わせは、窓付き平均化(windowed averaging)によって実行され得る。デシメーションは、入力信号のセットのサイズを縮小するときのユーザ入力信号の時間を考慮する。入力信号の論理的組み合わせは、加重平均によって実行され得る。一実施形態では、第1および第2のグラフィック処理および出力システムによって受信されたユーザ入力信号は、差動的に処理されてきた。

0050

一実施形態では、高レイテンシ層と低レイテンシ層との間の通信は、重要であり得る。高レイテンシおよび低レイテンシのサブシステムが、どのように同期されたままであるかを判定する際に考慮される幾つかの点が、以下に記載される:
・ レイテンシ差:低レイテンシ応答は、応答を同期するために高レイテンシ層と低レイテンシ層との間のレイテンシ差に関する情報を使用し得る。一実施形態では、これらのレイテンシ値は、静的であり、それ故、FPGAへとプリプログラムされる。レイテンシレベルがいずれかのサブシステムにおいて異なり得る実施形態では、同期されなくなり得る動的値を有するよりもむしろ、常に達成可能な一定のレイテンシレベルを定着させるか、または明示的な同期機構を提供することが好適であり得る。レイテンシレベルがいずれかのサブシステムにおいて異なり得る実施形態では、動的値が使用されてよいが、同期されなくなることを避けるように注意すべきである。レイテンシレベルがいずれかのサブシステムにおいて異なり得る実施形態では、明示的な同期機構は、サブシステム(940)と(950)との間で提供されてよい。
ヒットテスト(Hit testing):ヒットテスト決定は、しばしば、可視のUI要素の視覚的な階層および特性に関するデータ次第である。一実施形態では、この考察は、UIのフラットで、「ヒットテストフレンドリーな(hit test friendly)」マップを必要とする、外接長方形の重なりを不可能にすることによって解決され得る。一実施形態では、別々のヒットテストは、必要な情報(物体状態、zオーダー、およびリスナー)を低レイテンシのサブシステムに提供し得る。一実施形態では、低レイテンシおよび高レイテンシのサブシステムの両方は、ヒットテストを平行して行ってよい。一実施形態では、低レイテンシのサブシステムは、ヒットテストを行い、高レイテンシのサブシステムに結果を提供する。
条件付き応答:多くのインターフェースの視覚化は、即時のユーザ入力次第であるだけでなく、アプリケーションロジックにおいて定義される更なる意思決定論理次第でもある。

0051

条件付き応答のロジックの2つの実例は、以下の通りである:フォームへと入力されたデータの確証時のみではあるが、押したときに無効になる(二重請求を防ぐ)ようにプログラムされる、クレジットカード購入送信ボタンを考慮する。そのような場合では、ボタンの作用は、即時のユーザ対話処理に依存するだけでなく、付加的な情報および処理次第でもある。図10に示されるものなどの、リンクされた視覚化も考慮する。この場合では、フィードバックは、操作しているUI要素(1010)だけでなく、第2のUI要素(1020)によってもユーザに提供される。これらの例は、直接、低レイテンシのサブシステムへとプログラムされ得る。

0052

一実施形態では、高レイテンシのサブシステムと低レイテンシのサブシステムとの間の分割は、任意のユーザインターフェース要素とは無関係であり得る。実際に、サブシステム間の応答性(responsibility)の分割は、任意数の因子に基づいてカスタマイズされ得、ユーザインターフェースツールキットを欠くシステムにおいて、または実際は、利用可能となり得るUIツールキットの使用内および使用外でアプリケーションを開発するための機構を含んだシステムにおいてもまだ可能となる。一実施形態では、2つのサブシステム間の応答性の分割は、サブシステムが実行している間、動的に変更され得る。一実施形態では、UIツールキット自体は、低レイテンシのサブシステム内に含まれ得る。応答をカスタマイズする能力は、本明細書に記載されるシステムおよび方法から逸脱することなく、多くの方法でアプリケーション開発者に提供され得る。一実施形態では、応答は、UI制御部で調節されるパラメータとしてカスタマイズされ得る。一実施形態では、応答は、低レイテンシのサブシステム中でそれ自体が実行するコードにおいて、または別の高い又は低いレイテンシにおいて、直接、低レイテンシのサブシステムに指示を提供する能力を可能にすることによってカスタマイズされ得る。一実施形態では、低レイテンシのサブシステムの状態は、例えば、実行時にアプリケーションコードによって生成されたデータを使用して設定され得る。

0053

上記の例の多くがタッチ入力の文脈で提供されている一方で、限定されないが、ペン入力、マウス入力、間接タッチ入力(例えばトラックパッド)、空中ジェスチャー入力、口頭入力、および/または、他の入力様式を含む他の実施形態が企図されている。本明細書に記載されたアーキテクチャは、限定なく、混合した入力事象(すなわち、2以上の様式からの入力をサポートする)を含む、任意の種類のユーザ入力事象に等しく適用可能となる。ある実施形態では、混合型の入力装置は、低レイテンシのサブシステムと高レイテンシのサブシステムのそれぞれによる処理のために生成される同じ数の事象をもたらすこともある。ある実施形態では、混合型の入力装置は、発生した事象の数で区別されることになる。したがって、例えば、タッチ入力はペン入力よりも事象が少ないこともある。ある実施形態では、それぞれの入力様式はそれ自体の低レイテンシのサブシステムを含む。ある実施形態では、複数の入力様式向けの複数の低レイテンシのサブシステムを含むシステムでは、サブシステムは応答を調整するために通信することもある。ある実施形態では、複数の入力様式向けの複数の低レイテンシのサブシステムを含むシステムでは、複数のサブシステムは、調整を可能にするために共通の記憶領域を共有してもよい。

0054

入力処理
本発明の実施形態では、入力ハードウェアからの低レイテンシの入力データは、入力事象の急速なストリームへと最小限に処理される。事象のこのストリームは、さらなる処理のために低レイテンシのサブシステムに直接送られる。その後、この同じストリームからの事象は削除されることもあれば、あるいは、高レイテンシのサブシステムに送られる前に、当該ストリームがそれ以外の方法で減らされるか、フィルタ処理にかけられることもある。事象は、低レイテンシのサブシステム(940)と高レイテンシのサブシステム(950)について異なる速度で生成されることもある。というのも、低レイテンシのサブシステムは、高レイテンシのサブシステムよりも速い事象を処理することができるからであり、速い速度で高レイテンシのサブシステムに事象を送ることは、そのサブシステムを圧倒することもある。したがって、ユーザ入力に対する低レイテンシのサブシステムと高レイテンシのサブシステムの応答は、独立していることもあるが調整されることもある。

0055

事象の減少は最適化可能である。ある実施形態では、代表的な事象は、アプリケーション、UI要素、入力装置などの1つ以上に関連した基準に基づいて候補対象の事象のなかから選択されてもよい。ユーザがデジタルインクストロークを描いている際のペン入力に関するこの例は、ユーザの描いたストロークに最も良く適合する事象を選択することを含んでもよい。口頭による入力の別の例は、出力ストリーム中のその後の事象が同様のボリュームを有し、それによって、マイクロホンから聞こえる音を「一定にする」事象に有利である。タッチ入力の別の例は、一貫した速度を有し、より「順調な」出力をもたらす出力事象ストリームを結果として生じることになる事象に有利である。インテリジェント削減(intelligent reduction)のこの形態は、高レイテンシのサブシステムの性能を低下させることなく、インテリジェントフィルターとして働く。ある実施形態では、入力ストリーム中の他の事象の集合体を表す新しい事象(例えば、統合した事象またはの事象)を生成することができる。ある実施形態では、もっと望ましい入力ストリーム、例えば、補正または円滑化を表す、新しい事象(例えば、修正した事象、統合した事象、または偽の事象)が生成されることもある。例えば、高速入力装置からの10の事象ごとの空気ジェスチャー入力について、高レイテンシのサブシステムには、実際の入力事象の「平均」を提供する同数またはより少数の事象が送られ、こうして入力を円滑にしてジッターを取り除くこともある。入力装置の多くの「所望」の値の各種パラメータの混合物である新しい事象を生成することもできる。例えば、スタイラスの傾斜と圧力特性のインテリジェント削減が異なる事象の選択をもたらす場合、こうした特性のそれぞれの所望の値を含めるために、1つの、新しい事象オブジェクト(または修正された1つ以上の既存の事象オブジェクト)を作成することができる。

0056

一実施形態では、IPUまたは低レイテンシのサブシステムシステムは、高レイテンシシステムに処理された入力情報を供給するために使用されてもよい。2つのサブシステムの活動を調整するために、1つ以上の方法を使用することができる。これらは次のものを含む:
a.ある実施形態では、低レイテンシのサブシステムは、すべてのユーザ入力に即座に応答することができるが、高レイテンシのシステムに入力を与える前に、ユーザが入力を止める(例えば、指またはペンを上げてジェスチャーを終える)のを待つことができる。これは、データの全体を依然として処理しつつ、ユーザとの対話の間にシステムを妨害しないようにするという長所を有する。
b.ある実施形態では、低レイテンシのシステムは、ほぼリアルタイムで減少した入力の推定値を与えることができ、随意に必要に応じて高レイテンシのシステムで利用可能な完全な入力待ち行列を保存することもある。
c.ある実施形態では、ユーザフィードバックは2つの工程に分けられてもよい。
第1の低レイテンシのフィードバックは、図11のユーザ入力(1130)の大まかな即時表示を提供することになる。高レイテンシのシステムが、例えば、ペン(1150)の先端を持ち上げた後に、正確な応答を計算することができるときにはいつでも、第2の高レイテンシのシステム応答(1140)は第1のユーザ入力(1130)に取って代わることができる。代替的に、高レイテンシのフィードバックは、低レイテンシのフィードバックに連続的に「追い付く」(おそらく組み入れる)ことができる。
d.ある実施形態では、低レイテンシのシステムは、入力ストリームから簡単なジェスチャー作用を推測し、したがって、生の事象に加えて、または、生の事象の代わりに、入力待ち行列に含まれるジェスチャーの事象を生成することができる。
e.ある実施形態では、IPUまたは低レイテンシのサブシステムは、将来の入力位置予想するために、複数の入力位置を使用することができる。この予測が高レイテンシのサブシステムに伝えられ、その有効なレイテンシを短くすることができる。
f.ある実施形態では、追加のサンプルまたは初期の検出から利益を得ることもあるアルゴリズムは、IPUまたは低レイテンシのサブシステム内で実行される。ある実施形態では、これらの事象の実行は時間が制限され得る。例えば、最初の50の事象を用いて、入力を特定の指として分類するか、あるいは、指とペンの入力を区別することができる。ある実施形態では、これらのアルゴリズムは連続的に作動可能である。
g.ある実施形態では、さもなければ無関係な入力であると誤って判断されることもある、さらなる連続的なまたは同時の関連する入力を受け取って処理するために、事象のストリームを高レイテンシのサブシステム伝える低レイテンシのサブシステムのプロセスを遅らせることもある。例えば、文字「t」は、2つの別々であるが関連するストロークとして描かれることも多い。通常の過程では、低レイテンシのシステムから高レイテンシのシステムまで伝えられた入力ストリームの一部は、最初の線を描いた最後に「ペンを持ち上げる(pen Up)」信号を含むことになる。ある実施形態では、減少プロセスは、ペンがサンプルウインドウ内のディスプレイで再度検出される場合に、サンプルウインドウ内の入力のまさに最後のフレームが「up」という事象を伝えるのを待ち、それによって、事象を必要としなくなる。

0057

ハードウェアアーキテクチャ
一実施形態において、データは、高レイテンシと低レイテンシのフィードバックをサポートするために、システムの構成要素を介する2つの重複する経路を通って流れる。図12は、入力装置(1210)、IPU(1220)、システムバス(1230)、CPU(1240)、および、ディスプレイ(1290)に接続されたGPU(1280)を含むこうした1つのシステムを示している。ユーザ(1200)は入力装置(1210)を用いて入力を行う。この入力はIPU(1220)によって検知され、これは、様々な実施形態では、FPGA、ASIC、あるいは、GPU(1280)、MPU、またはSoCに統合された追加のソフトウェアおよびハードウェア論理のいずれかであり得る。この点で、制御流れは二叉に分かれ、システムを通る2つの別々の経路を辿る。低レイテンシの応答が入力するために、IPU(1220)は、CPU(1240)を迂回して、システムバス(1230)を介してGPU(1280)に入力事象を送る。その後、GPU(1280)は、ユーザ(1200)に対して迅速にフィードバックを表示する。高レイテンシの応答が入力するために、IPU(1220)は、システムバス(1230)を介してCPU(1240)に入力事象を送り、CPU(1240)はグラフィックアプリケーションを起動させ、他のシステムコンポーネントと相互に作用してもよい。その後、CPU(1240)はユーザ(1200)にグラフィックフィードバックを供給するために、システムバス(1230)によってGPU(1280)にコマンドを送る。入力装置(1210)からIPU(1220)まで、GPU(1280)まで、システムバス(1230)までの低レイテンシの経路は主にハードウェアであり、低レイテンシで動作する。入力装置(1210)からIPU(1220)まで、システムバス(1230)まで、システムバス(1230)まで、CPU(1240)まで、GPU(1280)までの高レイテンシの経路は、本記載で先に記載された因子により高レイテンシである。関連する実施形態では、入力装置(1210)は、GPU(1280)と直接通信し、システムバス(1230)を迂回する。

0058

図13は、モデル・ビュー・コントローラと呼ばれるよく知られているプログラミングパラダイムを示す。このパラダイムでは、ユーザ(1300)は、コントローラ(1310)上で入力を行い、これは、その後、この入力に基づいてモデル(1320)を操作する。モデル(1320)の変化は、ユーザ(1300)によって観察されるビュー(1330)に対する変化をもたらす。本発明によって対処されるレイテンシの一部は、入力のレイテンシ、こうした構成要素のなかでの通信のレイテンシ、および、ビュー(1330)の構成要素により生成されるグラフィックスの表示のレイテンシによる。

0059

図14は、ユーザ入力に対する高レイテンシと低レイテンシの混合した応答を含むシステム上のアプリケーションの開発と実行をサポートするアーキテクチャの実施形態を示す。ユーザ(1400)は、入力装置(1410)を用いて入力を行う。この入力はIPU(1420)によって受け取られる。IPU(1420)は、従来の機構を介して高レイテンシのサブシステムで動作しているコントローラ(1430)と、低レイテンシのサブシステムで動作しているビューモデル(L)(1490)に対して、入力事象を同時に送る。入力はコントローラ(1430)によって処理され、コントローラ(1430)は高レイテンシのサブシステムで動作しているモデル(1440)を操作し、これは、揮発性メモリ(1450)、固定記憶装置(1470)、ネットワークリソース(1460)など(遅延を導入するすべての対話)のデータと相互に作用してもよい。ビューモデル(L)(1490)によって受け取られた入力事象はビューモデル(L)に対する変化を生じさせ、この変化は、ビュー(L)(1491)に対する変化に反映され、ユーザ(1400)に見られる。モデル(1440)に対する変化は、高レイテンシのサブシステムのビュー(H)(1480)に対する変化をもたらし、これもユーザ(1400)に見られる。ある実施形態では、ユーザが目にするこれらの2つのタイプの変化は、同じディスプレイに示される。ある実施形態では、これらの2つのタイプの変化は、他の出力様式(例えば、音または振動など)によってユーザに反映される。一実施形態において、入力の間、モデル(1440)はビューモデル(L)1490とビューモデル(L)(1491)の状態を更新し、その結果、ビューモデル(L)(1490)は、システムのディスプレイ上の正しい位置にGUIの構成要素を提示するために必要とされるデータを含み、および、ビューモデル(L)(1490)は、モデル(1440)の現状の文脈でIPU(1420)からの入力を正確に解釈することができ、および、ビュー(L)(1491)は、モデル(1440)の現状の文脈で表示されるグラフィックスを正確に生成することができる。

0060

一例として、その機能の中でも起動されたことを示す外観を変更することによりユーザのタッチに応答するボタンを備えたタッチ感知式のアプリケーションを考慮する。アプリケーションが実行される際、アプリケーションは、メモリとコンパイルされたアプリケーションコードから、ボタンの位置、大きさ、および外観の細部を読み取る。ビュー(H)(1480)コードは、このボタンを表示するためにユーザに提示される必要なグラフィックスを生成する。モデル(1440)は、このグラフィック要素がボタンであるということ、および、それが、タッチされると、「正常な」外観から「押された」外観にまで外観を変化させなければならないということを記録するために、ビューモデル(L)(1490)の状態を更新する。モデル(1440)はさらに、ビューモデル(L)(1490)における「正常な」状態と「押された」状態についての正確な外観を記録するために、ビュー(L)(1491)の状態を更新する。この外観は、忠実度の低いグラフィック要素の記載であってもよく、または、表示される完全なラスターであってもよい。この実施例において、「押された」状態は、ボタンの位置のまわりにホワイトボックスを表示することによって表される。

0061

ユーザはタッチ・スクリーン・ディスプレイにタッチし、そのタッチを記載する入力データは、IPU(1420)によって1ミリ秒未満後に受け取られる。IPU(1420)は、入力データからタッチダウン事象を表わす入力事象を作成し、アプリケーションコントローラ(1430)にこの入力事象を送る。コントローラ(1430)はモデル(1440)を操作する。この場合、コントローラ(1430)は、ボタンが触れられたこと、および、アプリケーションが、このボタンに関連するどんなコマンドでも実行すべきであることを、モデル(1440)に示している。IPU(1420)がコントローラ(1430)へ事象を送るのと同じ時間に、IPU(1420)はビューモデル(L)(1490)に事象を送り、ボタンが触れられたことを示す。ビューモデル(L)(1490)は、タッチの場合には何を行うべきかに関してモデル(1440)によってあらかじめ指示され、この場合、ビューモデル(L)(1490)は、その状態を「押された」に変更することによってタッチ事象に応答する。ビュー(L)(1491)は、ボタンのまわりにホワイトボックス、その「押された」外観に対応するフィードバックを表示することによってこの変化に応答する。ボタンが触れられるというモデル(1440)に対する変化はビュー(H)(1480)の更新をもたらすことから、それもボタンが今触れられていることを反映している。ビュー(H)(1480)とビュー(L)(1491)の両方の出力を見るユーザは、ビュー(L)(1491)によるタッチの即時のフィードバックと、その1秒の何分の1かの後のビュー(H)(1480)からのフィードバックを見る。

0062

本出願の文脈全体にわたって、「事象」との用語はユーザ入力の属性を記載する情報を記載するために使用される。この用語は一般に使用されており、記載された「事象」が情報のストリームの中に単純に存在するさらに基本的な入力ストリームと同様に、事象によって作動するアーキテクチャが採用される(実際の事象のオブジェクトはソフトウェア要素間で伝達されている)実施形態を含んでいる。こうした事象は、例えば、非オブジェクト指向の事象またはオブジェクト指向の事象であってもよい。アプリケーション要素の代替的なグラフィック表示事前生成を介した入力に対する低レイテンシの視覚的な応答と

0063

グラフィック処理ユニット上での入力の取り扱い
背景技術
図15は、従来技術に従ってグラフィックユーザインターフェース(GUI)ビューと中間のデータ階層を例証するブロック図である。CPU上で作動するアプリケーションは多くのGUI要素を一般に含んでいるが、必ずしもツリーで配されるわけではない。こうした「ビュー」(ウィジェット、構成要素、要素などとも呼ばれる)は、スライダ、ウインドウ、ボタン、パネルなどのよく知られている要素を含むこともあり、これらはそれぞれ、要素がユーザ入力により作動する際に実行すべき現在の状態および関連アプリケーションのコードを有している。

0064

アプリケーションがその状態のいずれかを更新し、アプリケーションの視覚的な外観の変化がユーザに表示される必要がある際には、アプリケーションは「ペイント」コマンドを行い(いくつかのシステムでは、描く、レンダリングするなどとも呼ばれる)、これはこのツリーをたどり(または、他のデータ構造:例えば「シーングラフ」)、アプリケーション中のGUI要素から中間の図面データを生成する。この中間データは、アプリケーション中の各要素のための個々のビットマップ(別名ラスター、ピクセルデータ)からなることもあれば、あるいはアプリケーション中の各要素の最終ピクセル(レンダリングされた)の外観をもたらすために作図指示からなることもあれば、メモリ(ピクセルデータ、DisplayLists、作図指示、ベクトルデータなど)中でアプリケーション中の視覚的な外観を表すディスプレイ上でコンピューターがピクセル(または、ディスプレイ技術の必要に応じて他の基本的なグラフィック基本要素)を生成することを可能にするあらゆる表示からなることもある。図15に示される例において、この中間データは、GUI要素の最終的なピクセルの出現をもたらすために実行される作図指示からなる。この中間データはメモリ中に存在し、コンピューターのCPUまたは専用のグラフィック処理ユニット(GPU)または、その両方にアクセス可能であってもよい。

0065

最終的なレンダリングされたGUIを生成するために、この中間データは実行されるか、またはピクセルバッファコピーされ、これはディスプレイに送られて、ユーザに見られる。図16を参照。

0066

レンダリング用のCPUとGPUの両方を含むシステムにおいて、ユーザ入力を取り扱い、中間データを生成する/更新する(CPUによって行われる)プロセスは一般に、最終的なピクセルバッファを生成する(GPUによって行われる)中間命令を実行する過程よりもかなりの時間がかかる。

0067

図17は、GUI要素の視覚的な外観の変化がどのようにユーザに見えるようになるかを示す。この例において、CPU上で作動するアプリケーションは、「ビューG」の視覚的な外観の変化を要求するユーザからの入力を受け取っている。この例について、ビューGがボタンであり、ユーザがそれを押したと仮定すると、ボタンはディスプレイ上で「押された」ように見えることを要求される。ユーザ入力はアプリケーション中のビューGの状態を修正し、これが「ペイント」コマンドを作動させ、これはGの最新の中間データを生成する。最終的なレンダリングされたGUI(Gの新しい視覚的な外観を含む)を生成するために、中間データは実行されるか、またはピクセルバッファにコピーされ、これがディスプレイに送られてユーザに見られる。このディスプレイはビューGの修正された外観を含む。

0068

現代のオペレーティングシステムが更新を要求する中間データだけを効率的に更新する多くの工程を行なっているが、ユーザ入力を受け取りアプリケーション状態を修正し、およびこの中間データを生成するプロセスは、依然として時間を消費するものであり、ユーザ入力に対する視覚的な応答へレイテンシを導入する。したがって、GUIのユーザへの入力に対する視覚的な応答を表示するのに必要な時間を改善するシステムを作成することが望ましい。

0069

アプリケーション要素の代替的グラフィック表示の事前生成を通じた、入力に対する低レイテンシ視覚反応
本明細書において、GUI中の要素が、GUI要素に対する1つ以上の可能性のある視覚的状態に相当する1つ以上の中間データを生成するために使用される発明について記載される。これらの複数の視覚表示は、ユーザに表示するための最終ピクセルグラフィックを提示するときに使用する適切な中間データを選択する制御ロジック組合せられる。

0070

図18は、本発明の実施形態を示し、この発明において、アプリケーションのGUI中の各GUI要素は、要素のタイプおよびその要素の可能な視覚的状態の個数に依存する1つ以上の中間データを生成する。この実施例において、ビューGおよびビューHはこのGUI中、複数の可能性のある外観を有する唯一のビューであり、ビューGは2つの代替的外観に対応する2つの代替的中間データを生成し、ビューHは、3つの可能性のある可視的外観に対する3つの中間データを生成する。好ましい実施形態において、本発明は、ユーザに表示される最終のピクセルバッファーを生成するための中間データを実行するときに使用する現在の代替物に対応する、インデックスを記録する。

0071

図19は、ビューGに対する更新されたインデックスを有する中間データを示す。この実施例において、ビューGはボタンであり、「作図指示G」は、その押圧されていない外観を描くための指示を与え、「代替的作図指示G」は、その押圧された外観を描くための指示を与える、と仮定する。この実施例において、ユーザがボタンを押すと、「代替的作図指示G」が選択されるように、システムは、Gに対するインデックスを更新する。この選択は、ビューGが、ディスプレイに送られてユーザに対し可視化される中間データが、その後、実行されるか、またはピクセルバッファーへコピーされたときに、正確に現れることを保証する。GUI中の要素に対する作図指示があらかじめ計算されているので、ユーザ入力に対する視覚反応を、その時に時間を消費する「ペイント」動作を実行する必要がないため、低レイテンシで非常に速く起こすことが可能である。

0072

代替的作図指示に結び付けられ得るUIビューの状態の他の例は、窓の現在の/最大化された状態、任意のUI要素の押圧−非押圧状態、他の要素によって影響されると、それらが現れ可能性があるUI要素(例えば:1つのビューが別のものを通り過ぎてドロップシャドーを示す場合に、ビュー上のその影の外観がその「下側」になる )、または、情況に応じて適用される代替的「スキン」(例えば:ゲーム内打撃を受け得るUI対象物の非損傷及び損傷バージョン)を含む。実際、その外観に影響し得るビューの任意の特性は、結びつけられ、あらかじめ計算され得る。まださらに、その値が相互作用する特性は、さらに多くの代替的レンダリングを提供し得る。(例えば、不能かつ非押圧、不能かつ押圧、など)。非常に多くの可能な値を有する特性は、例えば、所定の代替的外観が、現在の状態から直接移行することが可能な状態を表すかどうかに基づいて、過去のユーザの行為に基づいて、他のユーザの行為に基づいて、または、アプリケーションの開発者によって明示的に示されたように、非常に多くの可能性のある値を用いて、予め計算され得る。

0073

これらの実施例において、代替的要素で描かれたビューは、ツリーの「リーフノードである。本発明のいくつかの実施形態において、関連するビューは、図18および図19のビューEのような、非リーフノードであってもよい。そのような状況において、子のノード(および実際には、この実施例の再帰的な性質が評価される場合のすべての子孫)は、それらの親の代替的作図指示に結びつけられた代替的作図指示を有しても、有さなくてもよい。例えば、ビューEが、ビューH、IおよびJの集合を含むUIパネルであったならば、Eに対する1つの代替的作図指示は、それに「不能」の外観を与えることを含む。典型的には、必ずしもGUI内ではなくが、親ビューが不能に設定されたならば、次いで、子ビューが同様になされる。したがって、それに「不能」の外観を与えるビューEに対する代替的作図指示は、ビューH、IおよびJに同様の不能の外観を与えるための、それらへの同様の代替的指示に対するポインターを含むことになる。このポインター(または他のインジケータ)は、ある中央レジストリ、または読者に公知であろう任意の個数の他の場所に格納されうる。いくつかの実施形態において、ビューツリーのルーツ(しばしば、しかし常ではないが、それが含まれるウィンドウ)は、あらかじめ計算されてもよく、したがって、ツリー内のビューのあるサブセット(または全部)が、同様にあらかじめ計算されてもよい。これは、最表面ウィンドウ高速スイッチングを容易にするであろう。

0074

代替的作図指示の維持が、ある時点で難儀になる得ることは、理解されるべきである。これらの指示は、例えば、アプリケーションが分配のためにコンパイル/準備がされるとき、それが装置に搭載されるとき、プログラムが最初に実行されるとき、ビューがシーン内に最初に配置されるとき、または予備計算サイクルが利用可能であるアイドル時間で、後の検索のために格納されてもよい。

0075

代替的描画命令が、アニメーションを含み得る(または含まれ得る)ことも、理解されるべきである。UIに対するアニメーションの変化は、ユーザが状態間の変移を理解するのを支援することが知られている。いくつかの実施形態において、代替的指示の全体集合は、アニメーションを高速化するために、予め計算されてもよい。

0076

いくつかの実施形態において、特定のビューは、他のビュー(例えば親または子)を再描画「無し」なしで提示され得る。これには、システムが、他のビューによって塞がれていないビューの部分のみを提示することを必要とし得る。その、描画されるべき要素の部分の限定は、関連する描画支持(及び/又は代替的描画支持)に含まれ得る。いくつかの実施形態において、代替的指示の全体は、閉塞の領域の相違に依存して含まれ得る。

0077

グラフィック処理装置の入力処理
記載された発明は、ユーザ入力に対する視覚的応答のレイテンシを著しく低減するが、その一方、コンピュータのCPUは、入力装置からのユーザ入力事象、正しいアプリケーションに対するこれらの事象の発送、この事象をGUIにおける正しい要素へ送信するためのヒットテストの実施、GUI要素の視覚的外観を変化させるのと同様に任意量のコードを遂行し得るコールバックの実行、などに対し、まだ応答可能である。

0078

図20は、先行技術における、ユーザ入力に対する視覚的応答を表示するために採用された工程を概説する概念的なダイアグラムを示す。先行技術中の個々のシステムは、図20に概説された正確な工程とは異なっているが、一方、それらはすべて、CPU内での入力の受信および操作、CPU内でのグラフィック要素のプロパティの更新、CPU内での中間データの生成、および、その後の、GPUに対する最終レンダリングの手渡しの基本パターンに従っている。この開示の目的のために、この発明は、すべてのその変更に対し適用されることを想定すべきである。

0079

図21は、入力事象がCPUだけでなくGPUへ送られる実施形態を示し、これは、ユーザ入力に対する低レイテンシの応答を実行するために使用される。GPUにおいて、「ヒットテスト」動作が、どのグラフィック要素をディスプレイ上で更新する必要があるかを決定するため、最初に実行される。多重出現を有するグラフィック的な要素(図21において、3つの代替的外観を有する要素が示され、各々、中間データの個別のセットで表示される)、その後、「暫定データピッカ(Interim Data Picker)」動作が、ユーザに対し可視のディスプレイに対しGUIと通過ピクセルとを描画するときに、中間データのどのセットを使用するかを決定する。

0080

GPUとCPUとは平行に動作するので、CPUが「追いついて」GUI要素の視覚的外観の変化とは関係のないユーザ入力のプログラム的副効果を発揮するときに、GPU内のこれらの工程は非常に迅速に実行することができる。最終結果は、ユーザ入力に対する低レイテンシの視覚的応答である。

0081

図は、CPUとGPUとの間のある程度の重複を示す(例えば、ヒットテストは両方の場所で実行される)が、いくつかの実施形態において、この重複は、GPU内でのそれらの動作の実行によってパフォーマンスを低下させることなく除去され、それらの結果を通過させてCPUへ戻す。例えば、入力は、GPU「のみ」へ通過され、ヒットテストはGPU内でのみ行われ、その結果はさらなる処理のためにCPUへ通過される。

0082

ユーザ入力に応答してGUI要素の代替的外観のUTIで高速に切り替えるために、本発明を使用することが記載される。図22は、GPU内での中間データ構造の直接的修正を通じた、GUI要素の視覚的外観の迅速な変更を示す。GUI要素の外観の多くの共通の変更は、それらの位置(例えば、スクロール、ドラッグ、パン)、回転、傾斜または他の視覚的特性の変更を通じて生じる。それ故、本発明のこの実施形態において、GPUはユーザ入力を受け、どのGUI要素が、ユーザによって入力中であるのかを判定するためにヒットテストを実行する。次に、作用中の要素の暫定データが、GPU内で直接的に修正される。例えば、垂直スクロールの場合、要素のY位置は、この工程で直接的に更新することができ、その要素に対する暫定データ全体を再生成する必要性を除去する。更新後、暫定データの実行は継続可能であり、GUIは、ユーザが見ることができるように、スクリーン上に提示され表示されることが可能である。

0083

いくつかの実施形態において、更新は、グラフィック変換に限定される。いくつかの実施形態において、これらの変換は、アプリケーションロジックに依存してもよい。いくつかの実施形態において、このロジックはCPUに対してのみ利用可能でもよく、したがって、相互作用を遅くする「チェックイン」を必要とするか、または、GPU内で動作を一回実行するが、その後、それらは、CPU内の描画動作の結果と取り替えられる。他の実施形態において、機構は、アプリケーションの開発者によってGPU内にアプリケーションロジックを配置するために存在してもよい。そのような機構は、UI要素上のプロパティセット(例えば:変換の最大範囲、または、変換を1つの方向には許容し別の方向には許容しないような条件付きの動作)、あらかじめ定められたレシピのセット内からの選択、またはGPU自身のプログラミング言語か「ネイティブ」の指示に翻訳される他の言語における実際の指示の提供を含んでもよい。これらの指示は、アプリケーション開発者によって特定され、後続のヒットテストが実行され得る。事実、これらはGPU内で実行される事象操作の形態をなすであろう。

0084

いくつかの実施形態において、GPUとCPUによって操作される入力は、干渉をもたらし得る。例えば、CPUが事象操作において捕捉し防止するであろう、その範囲をGPUが認識しない場合、ユーザはリスト終端を過ぎてスクロールし得る。しかしながら、GPUコードはCPUよりも高速に実行するので、スクローリングが生じた後に、この防止が生じることになる。いくつかの実施形態において、共通のUIビューに関する基礎的なロジックは、GPUに対する指示としてエンコードされ、多くのそのような干渉が第1の場所で発生するのを防止するであろう。しかしながら、アプリケーション開発者が、ビューの外観及び/又は動作を変化させるようにCPUコードを記述することが可能な実施形態においては、衝突は避けられないかもしれない。そのような実施形態において、機構は、それらを緩和するために含まれてもよい。これらは、開発者がどのように干渉を衝突を扱うべきかを特定することを可能にするために、CPUおよびGPU部分の一方または両方に「事象」コールバックを提供することを含んでもよい。これらは、それらの操作に関するポリシー(規定的かまたは開発者が選択可能のいずれか)を含んでもよい。これらのポリシーは、「不法」なGPU生成状態から「適法」なCPU生成状態(または逆に)へ移行するための、アニメーションの指定または他のグラフィック的効果を含んでもよい。

0085

干渉の他の例は、入力ストリームの処理を含んでもよい。例えば、いくつかの対話形システムは、ジェスチャが生じたかどうか判定するために、入力を処理する機構を含む。いくつかの実施形態において、ジェスチャ検出機構はGPU内に存在してもよく、他の場合はCPU内に、他の場合は両方に位置し、他の場合は、システム内のもう1つの場所である。この例における干渉の解消は、前述のものと同様の機構を使用し得る。ジェスチャが検出される場合、その事実は状態情報にエンコードされ、CPUおよびGPU表示の一方または両方まで広げられる。いくつかの実施形態において、この状態情報は、直接的に、またはメモリをコピーする他の手段を通じて、伝達されてもよい。他の実施形態において、それは、CPUとGPUの一方または両方に対する実行の指示の伝達を通じて、広めげられてもよい。

0086

ヒットテストおよび中間データの修正は、GPU上で非常に高速に実行可能な操作であるので、この発明の結果は、GUI要素の視覚的特性を修正するためのユーザ入力に対する低レイテンシの視覚的応答をもたらす。

0087

図23は、GPUは、ユーザ入力に対する応答よりもむしろ、動作するアニメーションに対する応答の暫定データを修正する、代替実施形態を示す。この場合、「プロパティアニメーション」工程は、GUI要素の外観における経時的な視覚的変化に影響するために、規則的な時間間隔で暫定データの更新を実行する。各更新の後、GPUは、暫定データを実行し、ディスプレイはユーザに見えるように更新される。この実施形態は、アニメーションの実行からCPUを解放し、したがって、CPUのリソースがOSの他のファセットによって消費される場合に、アニメーションが妨害されない。

0088

一般に、CPU/GPUの1つの「側」による、ビュー(すなわちユーザに見える状態)の実際のまたは見かけの状態のどのような修正も、2つの側面間のある程度の協調を必要とするであろう。いくつかの実施形態において、「正確」な状態を決定し設定するため、および、必要な場合に、スクリーン上に示されるものを、その正確な状態へ移行させるための衝突解消機構(たとえば前述のもののような)を可能ならば使用して、この協調が2つの間の状態情報を伝達することにより行われる。他の実施形態において、1つの側から他方への指示の伝達により(またはある衝突解消ユニットによって)状態衝突が解決される。他の実施形態において、状態は、単に1つの側から他方へコピーされた全体であり得る。さらに別の実施形態において、アプリケーションの複数の例が実証され、各々は異なる状態を有し、現在状態上書きするための「選択された」それらの例のうちの1つを有する(例えば前述のポリシーに従って)。

0089

本システムおよび方法は、ブロック図と、ユーザ入力を受信して応答することが可能なコンピュータ・システムを含む方法および装置の動作図とを参照して前に記載されている。ブロック図または動作図の各ブロック、およびブロック図または動作図中のブロックの組合せは、アナログまたはデジタルハードウェアの手段、およびコンピュータープログラム指示によって実施され得ることが理解される。これらのコンピュータープログラム命令は、汎用コンピュータ、特定目的コンピュータ、ASICまたは他のプログラマブルデータプロセシング装置のプロセッサに提供され、それによって、指示が、コンピュータのプロセッサまたは他のプログラマブルデータプロセシング装置のプロセッサによって実行されて、ブロック図または動作ブロックにおいて特定された機能/動作を実施する。ある代替の実施例において、ブロックに表記された機能/動作は、動作図に表記された命令から生じさせてもよい。例えば、連続して示された2つのブロックが実際に実質的同時的に実行されてもよく、あるいは、これらのブロックが、含まれている機能/動作に依存して、ときには逆順で実行されてもよい。

0090

本発明は、その好ましい実施形態を参照して詳細に示し且つ記載したが、本発明の形態及び細部における様々な変更を、本発明の精神および範囲から逸脱することなく実行し得ることは、当業者によって理解されるだろう。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 京セラ株式会社の「 電子機器、制御方法、及びプログラム」が 公開されました。( 2020/10/29)

    【課題】操作性を向上させた電子機器、制御方法、及びプログラムを提供する。【解決手段】電子機器1は、自機器に接触されないジェスチャを検出する第1センサ(近接センサ18)と、自機器に接触されるタッチを検出... 詳細

  • 京セラ株式会社の「 電子機器、制御方法、及びプログラム」が 公開されました。( 2020/10/29)

    【課題】移動体の運転の安全性を向上可能な電子機器、制御方法、及びプログラムを提供する。【解決手段】自動車に搭載可能な電子機器は、自機器に触れられずにジェスチャを検出する第1センサと、自機器に接触される... 詳細

  • クリスタルメソッド株式会社の「 推定システム、及び推定装置」が 公開されました。( 2020/10/29)

    【課題】キー入力を推定する精度の向上を図ることができる推定システム、及び推定装置を提供する。【解決手段】仮想キーボードを用いて入力された文字列を推定する推定システムであって、ユーザが前記仮想キーボード... 詳細

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ