JP2016522522A - プロセッサグラフィックスを用いた並行タッチポイント検出 - Google Patents

プロセッサグラフィックスを用いた並行タッチポイント検出 Download PDF

Info

Publication number
JP2016522522A
JP2016522522A JP2016521391A JP2016521391A JP2016522522A JP 2016522522 A JP2016522522 A JP 2016522522A JP 2016521391 A JP2016521391 A JP 2016521391A JP 2016521391 A JP2016521391 A JP 2016521391A JP 2016522522 A JP2016522522 A JP 2016522522A
Authority
JP
Japan
Prior art keywords
computing device
touch
cells
identifier
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016521391A
Other languages
English (en)
Other versions
JP6099234B2 (ja
Inventor
ガンドラ、チャイターニャ
ベンブ、バラジ
クマール、アルビンド
シャー、ニルシュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2016522522A publication Critical patent/JP2016522522A/ja
Application granted granted Critical
Publication of JP6099234B2 publication Critical patent/JP6099234B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/0418Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
    • G06F3/04186Touch location disambiguation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04104Multi-touch detection in digitiser, i.e. details about the simultaneous detection of a plurality of touching locations, e.g. multiple fingers or pen and finger

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Processing (AREA)

Abstract

タッチポイント検出のための技術は、タッチスクリーンから入力フレームを受信し、複数のタッチポイント重心および複数のクラスタ境界を識別し、複数のタッチポイントを追跡するよう構成されたコンピューティングデバイスを備える。コンピューティングデバイスは入力フレームの複数のセルを複数のブロックにグループ化してよい。プロセッサグラフィックスを用いることで、コンピューティングデバイスは、入力フレームの局所的な最大値を識別しタッチ距離閾値内の複数の重心をマージするべく、1つのスレッドをブロックごとにディスパッチしてよい。コンピューティングデバイスは、複数のクラスタ境界を検出するべく、1つのスレッドを重心ごとにディスパッチしてよい。コンピューティングデバイスは、前の追跡タッチポイントの識別子を追跡距離閾値内のタッチポイントに割り当て、重複識別子を除去し、かつ、最も近いタッチポイントに未割当の識別子を割り当てるべく、1つのスレッドを前に識別されたタッチポイントごとにディスパッチしてよい。コンピューティングデバイスは、各未割当のタッチポイントに固有識別子を割り当てるべく、1つのスレッドをブロックごとにディスパッチしてよい。複数の他の実施形態が説明および主張される。

Description

現在の多くのコンピューティングデバイスはユーザからの主要な入力モードとしてタッチスクリーンを用いる。タッチコンピューティングは直観的な効率のよいユーザインタラクションを提供する能力を有する。コンピューティングデバイスは、典型的にタッチスクリーン上の複数の同時タッチポイントを検出して解釈するタッチインタフェースを用いることで、タッチ入力ジェスチャを認識し、スクリーン上に乗っているユーザの掌などの偽の接触を拒否する。タッチ追跡およびジェスチャーインタラクションは、自然なヒューマンインタラクションを可能とすべく、高速かつ滑らかであるべきである。
タッチポイントの識別および追跡の典型的なアルゴリズムは、本質的に高度に連続的(sequential)で、反復型(iterative)で、および/または再帰的(recursive)である。コンピューティングデバイスは、重心と呼ばれるタッチ強度ピークの位置を識別すること、および、クラスタ境界と呼ばれるタッチポイントの範囲(extents)を識別することで複数のタッチポイントを識別しうる。コンピューティングデバイスはまた、タッチポイントの動きを継時的に追跡することで、ジェスチャ認識を可能にしうる。例えば、タッチポイント重心境界の検出のための典型的なアルゴリズムは、入力フレームにおける複数の隣接セルの再帰的なトラバースを含んでよく、また、潜在的なタッチポイントごとに連続して反復されうる。またタッチポイント追跡のための典型的なアルゴリズムは、複数の予測タッチポイント位置と、複数の現在のタッチポイントの検出位置との全ての既知の組み合わせを用いて反復されうる。これらの典型的なアルゴリズムは、うまくスケーリングしないかもしれず、または、並行な実行によく反応しないかもしれない。
本明細書で説明された複数の概念は、例として示されるものであり、添付の複数の図において限定として示されるものではない。例示の簡略化及び明瞭化のため、複数の図に示される複数の要素は、必ずしも縮尺に従って表されていない。適切とみなされる場合には、複数の参照符号は、複数の対応するまたは類似の要素を示すために、複数の図の間で反復されている。
プロセッサグラフィックスを用い、並行して複数のタッチポイントを検出するためのコンピューティングデバイスの少なくとも1つの実施形態の簡略ブロック図である。 図1のコンピューティングデバイスの環境の少なくとも1つの実施形態の簡略ブロック図である。 図1および2のコンピューティングデバイスにより実行されうる、複数のタッチポイントを検出するための方法の少なくとも1つの実施形態の簡略フロー図である。 図1および2のコンピューティングデバイスのタッチスクリーンにより生成され得る入力データフレームの概略図である。 図1および2のコンピューティングデバイスにより実行されうる、複数のタッチポイント重心および複数のクラスタを検出するための方法の少なくとも1つの実施形態の簡略フロー図である。 図1および2のコンピューティングデバイスにより実行され得る、プロセッサグラフィックスを用い並行して複数の入力フレームをトラバースするための方法の少なくとも1つの実施形態の簡略フロー図である。 図1および2のコンピューティングデバイスにより実行され得る、プロセッサグラフィックスを用い並行して複数のタッチポイントクラスタ境界を識別するための方法の少なくとも1つの実施形態の簡略フロー図である。 図7の方法の実行の間に用いられ得る入力ウィンドウおよび比較ウィンドウの概略図である。 図1および2のコンピューティングデバイスにより実行され得る、プロセッサグラフィックスを用い並行して複数のタッチポイントクラスタ境界を識別するための他の方法の少なくとも1つの実施形態の簡略フロー図である。 図1および2のコンピューティングデバイスにより実行され得る、複数のタッチポイント位置を追跡するための方法の少なくとも1つの実施形態の簡略フロー図である。 図10の方法の一部として実行され得る、プロセッサグラフィックスを用い並行してタッチポイントデータに複数のタッチポイント識別子を割り当てるためのサブ方法の少なくとも1つの実施形態の簡略フロー図である。 図10の方法の一部として実行され得る、プロセッサグラフィックスを用い並行して重複のタッチポイント識別子を除去するためのサブ方法の少なくとも1つの実施形態の簡略フロー図である。 図10の方法の一部として実行され得る、プロセッサグラフィックスを用い並行して未使用の予測タッチポイントの識別子を割り当てるためのサブ方法の少なくとも1つの実施形態の簡略フロー図である。
本開示の複数の概念は、様々な複数の改良及び複数の代替形式に容易に想到するが、それらの具体的な複数の実施形態は、例として複数の図面において示されており、本明細書で詳細に説明される。しかしながら、本開示の複数の概念を開示された特定の複数の形式に限定する意図はなく、反対に、本開示及び添付された特許請求の範囲に一致する全ての改良、均等物及び代替物を包含することを意図することが理解されるべきである。
明細書における「一実施形態」、「実施形態」、「例示的な実施形態」等の記載は、説明される実施形態が特定の特徴、構造または特性を含み得るが、各実施形態が当該特定の特徴、構造または特性を含んでもよく、または必ずしも含まないこともあることを示す。さらに、そのような複数の表現は、必ずしも同じ実施形態を参照するものではない。さらに、特定の特徴、構造または特性が、ある実施形態と関連して説明される場合、明示的に説明されているか否かに関わらず、このような特徴、構造または特性を他の複数の実施形態に関連してもたらすことは、当業者の知識の範囲内にあるとされる。
複数の開示された実施形態は、いくつかの場合、ハードウェア、ファームウェア、ソフトウェアまたはそれらの任意の組み合わせで実装されてもよい。複数の開示された実施形態は、1または複数のプロセッサによって読み出し及び実行可能な一時的または非一時的機械可読(例えば、コンピュータ可読)記憶媒体によって伝達され、またはこれに格納される複数の命令としてさらに実装されてもよい。機械可読記憶媒体は、任意のストレージデバイス、メカニズム、または機械によって可読な形式で情報を格納または送信するための他の物理的構造(例えば、揮発性または不揮発性メモリ、メディアディスクまたは他のメディアデバイス)として具現化されてもよい。
複数の図面において、いくつかの構造または方法の特徴は、複数の具体的な構成および/または複数の順番で示されてもよい。しかしながら、このような複数の具体的な構成および/または複数の順序が必要とされなくてもよいことが理解されるべきである。むしろ、いくつかの実施形態において、このような特徴は、例示的な複数の図において示されるものとは異なる態様および/または順序で構成されてもよい。さらに、特定の図において構造または方法の特徴を含むことは、このような特徴が全ての実施形態で必要とされることを示唆することを意味するものではなく、いくつかの実施形態においては、含まれなくてもよく、または、他の複数の特徴と組み合わせられてもよい。
ここで図1を参照すると、コンピューティングデバイス100は、プロセッサグラフィックスを用い並行してタッチスクリーンから受信される、タッチ入力されたフレームデータを処理する。入力フレームデータの処理は、複数の入力フレームをまたぐ複数のタッチポイントの動きの追跡と同様に、複数のタッチポイント重心および複数のクラスタ境界の識別を含んでよい。入力フレームデータのプロセッサグラフィックス上での並行な処理は、性能を向上させ、電力消費を低減し、または、それらの任意の組み合わせを行ってよい。さらに、本明細書で開示される処理アルゴリズムは、多数の異なるタッチ入力に対してより安定した実行時間を有してよく、よってタッチスクリーンの感応性および予測精度を向上しうる。
コンピューティングデバイス100は、タッチ入力フレームの処理と、その他の本明細書で説明される複数の機能の実行が可能な任意のタイプのコンピューティングデバイスとして具現化されてよい。例えば、コンピューティングデバイス100は、限定されるものではないが、コンピュータ、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、モバイルコンピューティングデバイス、デスクトップコンピュータ、ワークステーション、セルラー電話、ハンドセット、メッセージングデバイス、車載テレマティクスデバイス、ネットワークアプライアンス、ウェブアプライアンス、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースシステム、消費者向け電子デバイス、デジタルテレビデバイスおよび/または、並行してタッチポイントデータを処理するよう構成された任意の他のコンピューティングデバイスとして具現化されてよい。図1に示されるように、コンピューティングデバイス100は、プロセッサ120、I/Oサブシステム130、メモリ132、データストレージ134、ディスプレイ136、およびタッチスクリーン138を備える。当然のことながら、コンピューティングデバイス100は、他の実施形態においては、タブレットコンピュータでよく見られるもの(例えば様々な入出力デバイス)など、他のまたは追加の複数のコンポーネントを備えてよい。さらに、いくつかの実施形態において、例示的な複数のコンポーネントのうち1または複数は、他のコンポーネントに組み込まれ、またはその一部を形成してもよい。例えば、メモリ132またはそれらの一部は、いくつかの実施形態において、プロセッサ120に組み込まれてもよい。
プロセッサ120は、本明細書で説明される複数のファンクションを実行することが可能な任意のタイプのプロセッサとして具現化されてもよい。プロセッサ120は、複数のプロセッサコア122を有するマルチコアプロセッサとして例示的に具現化される。しかしながら、プロセッサ120は、シングルまたはマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラ、または他のプロセッサもしくは処理/制御回路として具現化されてもよい。同様に、メモリ132は、本明細書で説明される複数のファンクションを実行することが可能な、任意のタイプの揮発性または不揮発性メモリ、あるいはデータストレージとして具現化されてもよい。動作中、メモリ132は、コンピューティングデバイス100の動作中に用いられる様々なデータおよびソフトウェア(例えば、複数のオペレーティングシステム、複数のアプリケーション、複数のプログラム、複数のライブラリ、および複数のドライバ)を格納してもよい。メモリ132は、I/Oサブシステム130を介して、プロセッサ120と通信可能に連結されてもよく、これは、コンピューティングデバイス100のプロセッサ120、メモリ132及び複数の他のコンポーネントとの入出力動作を容易にする回路および/または複数のコンポーネントとして具現化されてもよい。例えば、I/Oサブシステム130は、複数のメモリコントローラハブ、複数の入出力制御ハブ、複数のファームウェアデバイス、複数の通信リンク(すなわち、複数のポイントツーポイントリンク、複数のバスリンク、複数の有線、複数のケーブル、複数の光ガイド、複数のプリント回路基板トレース等)および/または複数の入出力動作を容易にする複数の他のコンポーネント及びサブシステムとして具現化されてもよく、または、これらを含んでもよい。いくつかの実施形態において、I/Oサブシステム130は、システムオンチップ(SoC)の一部を形成してもよく、プロセッサ120、メモリ132及びコンピューティングデバイス100の複数の他のコンポーネントと共に、単一の集積回路チップに組み込まれてもよい。
プロセッサ120はプロセッサグラフィックス124を有する。プロセッサグラフィックス124は、3次元グラフィック、2次元グラフィックおよび様々な動画フォーマットの促進された処理およびレンダリングを提供しうるグラフィックおよびメディア処理回路を有する。プロセッサグラフィックス124は概して、密に並行な複数のコンピューティングリソースによって特徴づけられており、複数の実行ユニット126として具現化されうる。いくつかの実施形態において、複数の実行ユニット126は、複数の完全なプログラマブル実行ユニットまたは、ジオメトリ処理、変換及びライティング、ラスター化、メディアデコーディング、メディアエンコーディングおよびその他のための複数の固定機能実行ユニットの任意の組み合わせを有してよい。
プロセッサグラフィックス124は、複数の汎用のコンピューティングタスクを実行するべく、プロセッサコア122とともに用いられてよい。複数のコンピューティングタスクは、複数のスレッド、複数のカーネル、または、プロセッサグラフィックス124による実行のために複数のプロセッサコア122の1または複数によりディスパッチされる他の実行可能コードとして具現化されてよい。複数のタスクは、プロセッサグラフィックス124の複数のプログラマブル実行ユニット126および/または複数の固定機能実行ユニット126により並行して実行される。複数の実行ユニット126は、SIMD減算およびSIMD加算命令などの、多数の単一命令多重データ(SIMD)命令を提供してよい。
いくつかの実施形態において、プロセッサグラフィックス124は、実行のために複数のタスクをディスパッチするスコアボード128などの命令スケジューラを有してよい。これらの実施形態において、プロセッサコア122は、スコアボード128に対する複数のタスクの間のデータ従属性の記録をとり、プロセッサグラフィックス124は、記録されたデータ従属性と、利用可能な実行リソースとに従って複数のタスクをディスパッチするべくスコアボード128を用いる。プロセッサグラフィックス124を用いる汎用コンピューティングは、複数のコンピュートシェーダ、ディレクトコンピュート、OpenCL(商標)、CUDA(商標)(Compute Unified Device Architectureとしても知られる)またはその他などの並行プログラミングインタフェースによってユーザに露出されうる。いくつかの実施形態において、プロセッサグラフィックス124は、プロセッサコア122と同じ集積回路チップに含まれるか、或いは、プロセッサコア122と同じ物理的パッケージに含まれる別個の集積回路チップと同じ回路チップに含まれてよい。他の実施形態において、プロセッサグラフィックス124は、以下でより詳細に説明されるI/Oサブシステム130に含まれてよい。さらに他の実施形態において、プロセッサグラフィックス124は、コンピューティングデバイス100のマザーボードに通信可能に結合された別個の拡張ボードに含まれてよい。
データストレージ134は、データの短期間または長期間のストレージ用に構成された任意のタイプのデバイスまたは複数のデバイスとして具現化されてよい。例えば、データストレージ134は、任意の1または複数のメモリデバイスおよび回路、複数のメモリカード、複数のハードディスクドライブ、複数のソリッドステートドライブ、または複数の他のデータストレージデバイスを含んでよい。いくつかの実施形態において、以下でさらに説明されるように、データストレージ134は、入力フレームデータまたはタッチポイント追跡データを格納してよい。
コンピューティングデバイス100のディスプレイ136は、液晶ディスプレイ(LCD)、発光ダイオード(LED)、プラズマディスプレイ、陰極線管(CRT)または他のタイプのディスプレイデバイスなど、デジタル情報を表示可能な任意のタイプのディスプレイとして具現化されてよい。タッチスクリーン138は、コンピューティングデバイス100のユーザによりタッチされることに応じて入力データを生成することが可能な任意のタイプのタッチスクリーンとして具現化されてよい。タッチスクリーン138は、抵抗タッチスクリーン、静電容量式タッチスクリーン、またはカメラベースのタッチスクリーンとして具現化されてよい。タッチスクリーン138は、複数の同時タッチポイントに対して反応する。
ここで図2を参照すると、実施形態において、コンピューティングデバイス100は動作中に環境200を確立する。例示的な環境200は、重心検出モジュール202、入力フレームモジュール210、タッチポイント追跡モジュール212、および並行ディスパッチモジュール218を備える。環境200の様々なモジュールおよびサブ環境は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせとして具現化されてよい。
入力フレームモジュール210は、タッチスクリーン138からデータを受信して入力データを一連の入力フレームとしてフォーマットするよう構成される。各入力フレームは、タッチスクリーン138上の特定位置で感知されたタッチ値を表すタッチデータ値をそれぞれ含む入力セルアレイとして具現化されてよい。入力フレームモジュール210は、高解像度のタッチ追跡を可能にすべく、更新された入力フレームを継続的に生成する。
重心検出モジュール202は、複数の重心、つまり、各タッチポイントの中心にほぼ対応するタッチスクリーン138上の複数のポイントを見つけるべく、入力フレームモジュール210から受信した複数の入力フレームを探索するよう構成される。重心検出モジュール202は、隣接する複数の重心を単一の重心にマージするとともに、各重心を囲む複数の入力セルの複数のクラスタの複数の境界を検出するようさらに構成される。クラスタ境界は各タッチポイントの範囲を表す。いくつかの実施形態において、これらの機能は、例えば重心探索モジュール204、重心マージモジュール206、またはクラスタ特定モジュール208などの複数のサブモジュールによって実行されてよい。
タッチポイント追跡モジュール212は、複数の入力フレームにわたって継時的に複数の特定のタッチポイントを識別および追跡するよう構成される。特に、タッチポイント追跡モジュール212は、複数の前の追跡タッチポイントの位置を予測し、次に、重心検出モジュール202により現在の入力フレーム内で検出された複数のタッチポイントに対し、複数の前の追跡タッチポイントからの複数の識別子を割り当てるよう構成される。タッチポイント追跡モジュール212はまた、現在の入力フレーム内の、前に追跡されていない複数のタッチポイントに対し、複数の固有識別子を割り当ててよい。いくつかの実施形態において、タッチポイント追跡モジュール212は、入力フレームモジュール210からの未処理の入力フレームデータを処理してよい。いくつかの実施形態において、これらの機能は、例えばタッチポイント予測モジュール214またはタッチポイント割り当てモジュール216などの複数のサブモジュールにより実行されてよい。
並行ディスパッチモジュール218は、プロセッサグラフィックス124を用い、並行して複数のコンピューティングタスクをスケジュールして実行するよう構成される。つまり、並行ディスパッチモジュール218は、プロセッサグラフィックス124の複数の実行ユニット126を用い、複数のタスクを同時に実行されるようディスパッチする。並行ディスパッチモジュール218は、複数のタスクの実行順序を制御するべく、プロセッサグラフィックス124のスコアボード128を用いてデータ従属性を記録してよい。重心検出モジュール202およびタッチポイント追跡モジュール212の両方は、並行ディスパッチモジュール218を用いることで、これらのそれぞれのアルゴリズムの一部を並行して実行してよい。さらに、重心検出モジュール202およびタッチポイント追跡モジュール212の両方は、プロセッサグラフィックス124のSIMD命令を用い、これらのそれぞれのアルゴリズムの一部を実行してよい。例えば、重心検出モジュール202は、プロセッサグラフィックス124を用い、並行して複数の重心を探索し、複数の重心をマージし、複数のクラスタを識別してよい。同様に、タッチポイント追跡モジュール212は複数の予測タッチポイントからの複数の識別子を割り当ててよく、また、プロセッサグラフィックス124を用い、並行して新たな複数の固有タッチポイントを生成してよい。
ここで図3を参照すると、使用において、コンピューティングデバイス100はタッチポイントの処理方法300を実行してよい。方法300はブロック302で開始し、ここでコンピューティングデバイス100はタッチスクリーン138から入力フレームを受信する。上述したように、入力フレームは、短いサンプル期間の間にタッチスクリーン138により感知されるタッチポイント強度を表す値のアレイを含む。例えば、例示的な入力フレーム402が図4に示される。入力フレーム402は複数のセル404のスクウェアアレイとして示される。複数のセル404のそれぞれは、タッチスクリーン138の領域上で感知されたタッチデータ値を含む。各タッチデータ値は、タッチスクリーン138によりその領域上で感知されるタッチ強度、例えば、タッチスクリーン138に対するユーザの指の静電容量に対応する。タッチデータ値は16ビット整数値、または、タッチスクリーン138により感知される強度値の範囲を含むのに十分な広さの任意のデジタル値として具現化されてよい。
再び図3を参照すると、入力フレームの受信後に、ブロック304においてコンピューティングデバイス100は入力フレームを処理することで、複数のタッチポイント重心および複数のクラスタ境界を識別する。複数のクラスタは単一のタッチポイントに関連付けられた、入力フレームの複数の隣接セルの複数のグループとして具現化されてよい。複数の重心は、クラスタに対するタッチ強度のピークを含む入力フレームの複数のセルとして具現化されてよい。クラスタおよび関連付けられた重心はそれぞれタッチスクリーン138上の潜在的(potential)なタッチポイントを表す。コンピューティングデバイス100は重心およびクラスタデータを分析することで、複数の潜在的なタッチポイントを承諾または拒否してよい。例えば、コンピューティングデバイス100は、クラスタ境界のサイズおよび/または形状に基づいて指先および掌のタッチを区別し、指先のタッチに対応する複数の重心を承諾し、掌のタッチに対応する複数の重心を拒否してよい。図5〜7に関連して、ブロック304の機能が以下でさらに説明される。
ブロック306において、未処理の入力フレームからの複数のタッチポイントの識別の後に、コンピューティングデバイス100は、識別されたタッチポイントそれぞれに持続性の識別子を割り当てる。複数の持続性の識別子は、フレームからフレームでの複数のタッチポイントの移動を追跡する。これら複数の持続性の識別子は、コンピューティングデバイス100に用いられることで、ジェスチャーインタラクションまたは他のユーザインタラクションの処理を支援してよい。図8〜11に関連して、ブロック306の機能が以下でさらに説明される。持続性の識別子の割り当ての後に、方法300はループしてブロック302に戻り、他の入力フレームを受信する。
ここで図5を参照すると、使用において、コンピューティングデバイス100は複数のタッチポイント重心および複数のクラスタ境界の識別方法500を実行してよい。方法500はブロック502で開始し、ここでコンピューティングデバイス100は入力フレームの複数のセルを多数のスクウェアブロックにグループ化する。例えば、図4を参照すると、入力フレーム402は、スクウェアアレイに配置された256個の入力セル404を含む。これらの入力セル404は16個の4×4のセルブロック406にグループ化される。図示されていない他の実施形態において、複数の入力セル404は3×3セルブロックにグループ化されてよい。また、当然のことながら、入力フレーム402は任意の数の入力セル404を含んでよい。
再び図5を参照すると、ブロック504において、コンピューティングデバイス100は複数のブロック406のそれぞれについて、信号閾値を超える局所的な最大値を含む複数のセルを検出する。換言すると、複数のブロック406のそれぞれについて、コンピューティングデバイス100は、ブロック内で最大で、また信号閾値を超えるタッチデータ値を有するセルを探索する。信号閾値未満の複数のタッチデータ値は、ノイズか、或いはタッチスクリーン138により検出される他の偽の信号を表し、拒否される。識別された局所的な最大値のそれぞれは、重心として暫定的にマーク付けされる。例えば、図4に示されるように、陰影を付けた(shaded)複数のセル450〜472は、各ブロックで検出された局所的な最大値を表す。例えば、ブロック410はセル450で局所的な最大値を有する。各ブロックは最大で1つの局所的な最大値を有してよく、いくつかのブロック、例えばブロック422、428、434、440は、識別された局所的な最大値を全く有しないかもしれない。いくつかの実施形態において、コンピューティングデバイス100は別個の探索タスクにおいて複数のブロック406のそれぞれを探索してよく、これらのタスクのそれぞれは並行した実行のためにプロセッサグラフィックス124にディスパッチされてよい。
複数の重心を識別した後に、ブロック506においてコンピューティングデバイス100は、複数の隣接ブロックにわたって複数の重心をマージする。ブロック504において、単一のブロック406からのデータを用いて複数の重心のそれぞれが識別される。しかしながら、ブロックの境界の両側で識別された複数の重心は、同じタッチポイントの一部でありうる。そのような誤った複数の重心を取り除くべく、コンピューティングデバイス100は複数のブロック406をトラバースすることで、互いにタッチ距離閾値内の複数のタッチポイントを見つける。タッチ距離閾値は、複数の固有タッチポイントの間の複数の入力フレームセルの最小数を表し、これはデバイスまたは実装に依存しうる。いくつかの実施形態において、タッチ距離閾値は、人の指のサイズに近づくよう設定されてよい。例えば、64×32セルの入力フレームを用いた15インチタッチスクリーン138を仮定すると、タッチ距離閾値は2セルであってよい。タッチ距離閾値内の複数の重心は、より大きいタッチデータ値を有するセルのみを重心としてマークすることでマージされる。ブロック508において、コンピューティングデバイス100は、縦方向に複数のブロック406をトラバースする。ブロック510において、 コンピューティングデバイス100は、横方向に複数のブロック406をトラバースする。ブロック512においてコンピューティングデバイス100は、斜め方向に複数のブロック406をトラバースする。いくつかの実施形態において、コンピューティングデバイス100は別個のマージタスクにおいて複数のブロック406のそれぞれをトラバースしてよく、これらのタスクのそれぞれは並行した実行のためにプロセッサグラフィックス124にディスパッチされてよい。図6に関連して、複数の重心をマージする一方法が以下でさらに説明される。
複数の重心をマージした後に、ブロック514においてコンピューティングデバイス100は、各重心の周りのクラスタ境界を検出する。検出されたクラスタ境界は検出されたタッチポイントの範囲を表す。例えば、図4を参照すると、実線の境界480〜492は複数のクラスタ境界を表し、クラスタ境界内の陰影を付けた複数のセルは当該クラスタに含まれる。各クラスタ、例えばクラスタ480、486、488、492、494は単一のセルを含んでよく、または、各クラスタ、例えばクラスタ482、484、490は複数のセルを含んでよい。いくつかの実施形態において、コンピューティングデバイス100は、別個の検出タスクにおいて各重心の周りの複数のクラスタ境界を検出してよい。これらのタスクのそれぞれは、並行した実行のためにプロセッサグラフィックス124にディスパッチされてよい。図7に関連して、クラスタ境界を検出する一方法が以下でさらに説明される。複数のクラスタ境界の検出後に、方法500はリターンし、コンピューティングデバイス100が複数の検出されたタッチポイントの処理を継続することを可能にする。
ここで図6を参照すると、使用において、コンピューティングデバイス100は複数の隣接ブロックにわたり複数の重心をマージする方法600を実行してよい。方法600はブロック602で開始し、ここでコンピューティングデバイス100は、プロセッサグラフィックス124上で並行して、複数のブロック406のそれぞれについてタスクをディスパッチする。トラバースの順序を制御するべく、コンピューティングデバイス100は、プロセッサグラフィックス124のスコアボード128を用い、複数のタスクの間のデータ従属性をセットしてよい。例えば、図4を参照すると、縦方向のトラバースのために、コンピューティングデバイス100は、ブロック418をブロック410に基づかせ、ブロック420をブロック412に基づかせるなどのようにセットしてよく、その結果、複数のタスクは入力フレーム402にわたり複数の縦線において実行される。同様に、横方向のトラバースのために、コンピューティングデバイス100は、ブロック412をブロック410に基づかせ、ブロック420をブロック418に基づかせるなどのようにセットしてよく、その結果、複数のタスクは入力フレーム402にわたり複数の横線において実行される。斜め方向のトラバースのために、コンピューティングデバイスは、ブロック406ごとに単一のタスクをディスパッチする代わりに、4つのブロックのグループごとに1つのタスクをディスパッチしてよく、複数のタスクは全体として入力フレーム402をカバーする。例えば、第1タスクはブロック410、412、418、420を含んでよく、第2タスクはブロック412、414、420、422を含んでよい。コンピューティングデバイス100は、左から右、上から下、または任意の一貫性のある順序で処理するべく、これらのタスクの間の従属性をセットしてよい。
ブロック602でディスパッチされた複数のタスクのそれぞれに対し、ブロック604においてコンピューティングデバイス100は、現在のブロックと、トラバース順序における次のブロックとの全ての重心の位置を決定する。例えば、図4を参照すると、ブロック410について縦方向にトラバースする場合に、コンピューティングデバイス100は、ブロック410における重心450の位置と、トラバース順序における次のブロックであるブロック418の重心458の位置とを決定してよい。他の実施例として、ブロック410について横方向にトラバースする場合に、コンピューティングデバイス100は重心450と、ブロック412の重心452との位置を決定してよい。第3の例として、斜め方向にトラバースする場合に、コンピューティングデバイス100はブロック410の重心450と、ブロック420の重心460との位置を決定してよい。各重心の位置は、重心を含む入力セル404に対応する複数の座標のペアとして決定されてよい。当然のことながら、いくつかのブロック、 例えばブロック422、428、434、440は、識別された重心を全く含まないかもしれない。
ブロック606において、コンピューティングデバイス100は、トラバース方向において、ブロック604で識別された複数の重心の間の距離を決定する。複数の重心の間の距離は、複数の重心を分離する複数の入力セル404の観点で測定されてよい。トラバース方向(例えば縦方向、横方向または斜め方向)に並んだ複数の重心についてのみ距離が測定されてよい。例えば、図4を参照すると、ブロック412内で縦方向にトラバースする場合に、セル452、460は、縦方向においてそれらの間に2つの入力セルの距離を有し、他方では、ブロック418においてセル458、464は、それらの間に4つの入力セルの距離を有する。ブロック418において横方向にトラバースする場合に、セル458、460は、それらの間に2つの入力セルの距離を有し、他方では、ブロック430においてセル466、468は、それらの間に3つの入力セルの距離を有する。ブロック414において斜め方向にトラバースする場合に、セル454、462は、それらの間に2つの入力セルの距離を有し、他方では、ブロック420においてセル460、466は、それらの間に5つの入力セルの距離を有する。
再び図6を参照すると、ブロック608においてコンピューティングデバイス100は、トラバース方向での複数の重心の間の距離がタッチ閾値距離以下であるか判定する。上述したように、距離閾値は、複数の固有タッチポイントの間の入力フレームセルの最小数を表す。いくつかの実施形態において、タッチ距離閾値は2つの入力セルであってよい。距離が閾値より大きい場合には、方法600は重心のマージを全く行うことなくリターンし、現在のブロックについて完了する。さらに、現在のブロックと次のブロックにおいて2つより少ない重心が存在する場合には、方法600はリターンし、現在のブロックについて完了する。さらに、現在のブロックと次のブロックの重心がトラバース方向に並んでいない場合には、方法600はリターンし、現在のブロックについて完了する。距離がタッチ距離閾値以下である場合には、方法600はブロック610に進む。
ブロック610においてコンピューティングデバイス100は、2つの重心を、より大きいタッチデータ値を有する入力セル404にマージする。マージの後に、より大きいタッチデータ値を含む入力フレームセルは重心としてマーク付けされたままであり、他の入力フレームセルはもはや重心としてマーク付けされない。例えば、ブロック412において縦方向にトラバースする場合に、セル452、460のタッチデータ値が比較され、セル460がより大きいタッチデータ値を有すると仮定すると、重心はセル460にマージされてよい。複数の重心は、連続する複数のトラバース方向に繰り返しマージされてよい。例えば、ブロック418において横方向にトラバースする場合に、セル460が再びより大きいタッチデータを有すると仮定すると、セル458、460はセル460にマージされてよい。他の実施例として、ブロック414において斜め方向にトラバースする場合に、セル454、462がマージされてよい。複数の重心のマージの後に、方法600はリターンし、現在のブロックについて完了する。このように、全てのトラバース方向におけるマージの後に、複数のブロック境界をまたぐ任意のクラスタは、単一のマーク付けされた重心を含む。例えば、全てのトラバース方向におけるマージの後に、入力セル460は、クラスタ境界482内でのマーク付けされた唯一の重心であってよい。
ここで図7を参照すると、使用において、コンピューティングデバイス100は、複数の重心がマーク付けされマージされた後に、複数のクラスタ境界を識別する方法700を実行してよい。方法700はブロック702で開始し、ここでコンピューティングデバイス100はプロセッサグラフィックス124上で並行して、複数のマーク付けされた重心のそれぞれについてタスクをディスパッチする。ブロック702でディスパッチされた複数のタスクのそれぞれについて、ブロック704においてコンピューティングデバイス100は、重心を囲む複数のセルに対する入力フレームデータをロードする。ロードされるセル数は、許可された指または掌のサイズに依存する。いくつかの実施形態において、コンピューティングデバイス100は、重心をほぼ中央とする複数のセルの16×16のスクウェアブロックをロードしてよい。
ブロック706において、コンピューティングデバイス100は、信号閾値未満のタッチデータ値を有する複数の入力セルをゼロにする。つまり、コンピューティングデバイス100は、そのような複数のセルの値をゼロにセットする。入力閾値未満の複数の入力セルにゼロを書き込むことは、検出性能を向上させうる。
ブロック708において、コンピューティングデバイス100は、比較ウィンドウを構築すべく、クラスタの複数のエッジセルを複製する。第1のイタレーションにおいて、クラスタは、重心として前もってマーク付けされたセルのみを含む。コンピューティングデバイス100は、クラスタを囲む入力ウィンドウを定義する。例えば、第1のイタレーションにおいて、入力ウィンドウは、重心を囲む3×3のセルのスクウェアウィンドウとして具現化されてよい。後のイタレーションにおいて、入力ウィンドウは、クラスタを囲む5×5のセルのスクウェアウィンドウとして具現化されてよい。例示的な実施形態は複数のスクウェアウィンドウを用いるが、他の実施形態は、3×5ウィンドウ、5×3ウィンドウなどのような、可変サイズのウィンドウを用いてよい。次に、コンピューティングデバイス100は、入力ウィンドウと同じサイズの比較ウィンドウを形成する。クラスタの複数のエッジセルのそれぞれは、重心から離れる方向における比較ウィンドウの隣接エッジセルにコピーされる。そこで、入力ウィンドウの複数のコーナーセルは、斜め方向、横方向および縦方向の3方向に拡張される。上述したように、第1のイタレーションにおいて、重心値は、比較ウィンドウの複数のエッジに拡張される。
ここで図8を参照すると、ダイアグラム800は入力ウィンドウおよび比較ウィンドウの一実施形態を示す。アレイ802は入力ウィンドウを示す。セルCは、識別された重心を含む。クラスタ境界804は、クラスタの複数のメンバーとして前に識別されたセルC〜Cを含む3×3のセルのスクウェアである。入力ウィンドウ802は、16個のエッジセルPを含む。アレイ806は、比較ウィンドウを示す。比較ウィンドウ806は、メモリ内に格納される別個のアレイとして具現化されてよい。クラスタ境界808はクラスタ境界804に対応し、セルC〜Cのコピーを含む。比較ウィンドウ806の複数のエッジセルは、クラスタ境界808内からコピーされた複数の値を含む。示されるように、セルCの値は3つのコーナーセルにコピーされ、セルCの値は単一のエッジセルにコピーされ、セルCの値は3つのコーナーセルにコピーされ、同じように続く。
再び図7を参照すると、ブロック710においてコンピューティングデバイス100は、入力フレームの複数のエッジセルの値を、対応する比較ウィンドウの複数のエッジセルから減算する。いくつかの実施形態において、コンピューティングデバイス100は、コンピューティングデバイス100の単一命令多重データ(SIMD)命令を用い、複数のウィンドウの全4つのエッジでその減算を実行してよい。例えば、各エッジの値はベクトルにパックされてよく、コンピューティングデバイス100は、単一のパックドベクトル減算命令を用いて各エッジの減算を実行してよい。当然のことながら、他の実施形態において、コンピューティングデバイス100は、セルごとに別々の減算を実行してよい。例えば、図8を参照すると、入力ウィンドウ802は上部エッジ810、下部エッジ812、左エッジ814および右エッジ816を含む。比較ウィンドウ806は上部エッジ818、下部エッジ820、左エッジ822および右エッジ824を含む。上部エッジの差異を計算するべく、コンピューティングデバイス100は、上部エッジ810および上部エッジ818の値を複数のベクトルにパックし、上部エッジ810のベクトルを上部エッジ818のベクトルから減算してよい。コンピューティングデバイス100は、他の複数のエッジに対して同様の計算を実行してよい。
再び図7を参照すると、ブロック712においてコンピューティングデバイス100は、ブロック710において計算された減算から生じる差異のいずれかがゼロより少ないか否かを判定する。そうである場合には、このことは、複数のエッジセルのうち少なくとも1つに関し、入力フレーム値がクラスタ内の隣接セルの値より大きいことを意味する。第1のイタレーションに関し、このことは、重心を囲む複数のセルのうちの1つが重心より大きいことを意味する。この状況において、タッチデータ値の勾配は非負であり、すなわち、タッチ値データが増加し始めている。そこで、この状況においては、重心境界が見つかっている。差異のいずれかがゼロより少ない場合には、方法700は、下で説明されるブロック718に分岐する。差異のいずれもゼロより少なくない場合には、方法700はブロック714に進む。
ブロック714においてコンピューティングデバイス100は、比較ウィンドウのサイズが最大ウィンドウサイズに達したか否かを判定する。最大ウィンドウサイズは、例えば、ブロック704においてロードされた入力フレームデータブロックのサイズに基づいて定義されてよい。例えば、最大ウィンドウサイズは、15個のセル×15個のセルであってよく、これは、入力フレームデータの16セルスクウェアブロック内で可能な最大ウィンドウサイズである。最大ウィンドウサイズに達した場合に、方法700は、下で説明されるブロック718に分岐する。最大ウィンドウサイズに達していない場合には、方法700はブロック716に進む。
ブロック716においてコンピューティングデバイス100は、比較ウィンドウのサイズを増やす。ブロック710で計算された差異のいずれもゼロ未満でないので、現在の比較ウィンドウの全てのセルは重心境界内に含まれる。よって、比較ウィンドウのサイズと、関係する入力ウィンドウサイズは、境界の探索を続けるべく増やされてよい。比較ウィンドウのサイズの増加の後に、方法700はループしてブロック708に戻り、他の比較ウィンドウを構築する。
再びブロック712を参照すると、何れかの差異がゼロより少ない場合には、方法700はブロック718に分岐する。さらに、再びブロック714を参照すると、最大ウィンドウサイズに達した場合に、方法700はブロック718に分岐する。ブロック718においてコンピューティングデバイス100は、比較ウィンドウにおける有効セルの数をカウントする。有効セルは、ブロック710において計算された差異がゼロより少なくないものである。いくつかの実施形態において、コンピューティングデバイス100は入力ウィンドウ内の全ての0でないセルを有効セルとして識別してよい。なぜならば、信号閾値未満の複数のセルは、ブロック706においてゼロを書き込まれているためである。コンピューティングデバイス100は、SIMD加算命令を用いて有効セルの数をカウントしてよい。有効セルの数は、クラスタ境界、すなわち、重心を囲むタッチポイントのサイズを決定するべくコンピューティングデバイス100により用いられてよい。
ここで図9を参照すると、使用において、コンピューティングデバイス100は、複数の重心がマーク付けされマージされた後に、複数のクラスタ境界を識別する方法900を実行してよい。方法900は、ノイズの多い入力フレームを生成する傾向があるタッチスクリーン138と共に使用するのに適切であってよい。方法900はブロック902で開始し、ここでコンピューティングデバイス100は、プロセッサグラフィックス124上で並行して、複数のマーク付けされた重心のそれぞれについてタスクをディスパッチする。ブロック902でディスパッチされた複数のタスクのそれぞれについて、ブロック904においてコンピューティングデバイス100は、重心を囲む複数のセルに対する入力フレームデータをロードする。ロードされるセル数は、許可された指または掌のサイズに依存する。いくつかの実施形態において、コンピューティングデバイス100は、重心をほぼ中央とする複数のセルの16×16のスクウェアブロックをロードしてよい。
ブロック906において、コンピューティングデバイス100は、信号閾値未満のタッチデータ値を有する複数の入力セルをゼロにする。つまり、コンピューティングデバイス100は、そのような複数のセルの値をゼロにセットする。入力閾値未満の複数の入力セルにゼロを書き込むことは、検出性能を向上させうる。
ブロック908においてコンピューティングデバイス100は、ウィンドウ内の全てのエッジセルの合計と、ウィンドウ内の全てのエッジセルの最大値とを計算する。コンピューティングデバイス100は、後の取得(retrieval)のために当該合計および最大値をアレイにして格納してよい。開始ウィンドウは重心を囲む3×3のスクウェアウィンドウであってよい。例えば、図8を参照すると、開始ウィンドウはウィンドウ804によって示されてよい。複数のエッジセルの合計は、従って、セルC〜Cの合計となる。最大値はセルC〜Cの最も大きい値となる。
再び図9を参照すると、ブロック910においてコンピューティングデバイス100は、現在のウィンドウ内のエッジセルの数と、信号閾値との積を計算する。例えば、3×3のウィンドウは8個のエッジセルを含み、5×5のウィンドウは16個のエッジセルを含み、同じように続く。ブロック912においてコンピューティングデバイス100は、現在のウィンドウの複数のエッジセルの合計が複数のエッジセル×信号閾値の積より少ないかを判定する。そうである場合には、エッジセルの平均値は信号閾値より少なく、クラスタ境界が見つかったことを意味する。合計がセルの数×信号閾値より少ない場合には、方法900は、下で説明されるブロック920に分岐する。合計がセルの数×信号閾値以上である場合には、方法900はブロック914に進む。
ブロック914においてコンピューティングデバイス100は、現在のウィンドウの最大値が前のウィンドウの最大値以下であるかを判定する。開始ウィンドウに関し、コンピューティングデバイス100は、現在のウィンドウの最大値が重心の値以下であるか判定する。例えば、コンピューティングデバイス100は、5×5のウィンドウ(現在のウィンドウ)の最大値が3×3のウィンドウ(前のウィンドウ)の最大値以下であるか判定してよい。現在のウィンドウの最大値が前のウィンドウの最大値以下でない場合、つまり、現在のウィンドウの最大値が前のウィンドウの最大値より大きい場合には、次に方法900は、下で説明するブロック920に分岐する。現在のウィンドウの最大値が前のウィンドウの最大値以下である場合には、方法900はブロック916に進む。
ブロック916においてコンピューティングデバイス100は、ウィンドウサイズを増やす。現在のウィンドウの最大値が前のウィンドウの最大値以下であるので、現在のウィンドウの全てのセルは、重心境界内に含まれてよい。よって、ウィンドウサイズは、境界の探索を続けるべく増やされてよい。ブロック918においてコンピューティングデバイス100は、最大ウィンドウサイズが超過したか否かを判定する。最大ウィンドウサイズは、例えば、ブロック904においてロードされた入力フレームデータブロックのサイズに基づいて定義されてよい。例えば、最大ウィンドウサイズは15個のセル×15個のセルであってよく、これは、入力フレームデータの16セルスクウェアブロック内で可能な最大ウィンドウサイズである。最大ウィンドウサイズが超過していない場合には、方法900はループしてブロック908に戻り、クラスタ境界の探索を続ける。最大ウィンドウサイズを超過した場合には、方法900はブロック920に進む。
ブロック920においてコンピューティングデバイス100は、前のウィンドウにおける有効セルの数をカウントする。この点において、コンピューティングデバイスは、ブロック912において現在のウィンドウの複数のエッジセルの平均値が信号閾値を超えていない、ブロック914において現在のウィンドウの最大値が前のウィンドウの最大値を超えた、或いは、ブロック918において最大ウィンドウサイズが超過したと判定していてよい。このような全ての状況において、前の、より小さなウィンドウはクラスタ境界として用いられうる。開始ウィンドウに関し、重心は前のウィンドウとして用いられてよく、これは単一セルクラスタとなる。コンピューティングデバイス100は、選択されたウィンドウ内の全ての0でないセルを有効セルとして識別してよい。なぜならば、信号閾値未満の複数のセルはブロック906においてゼロを書き込まれているためである。コンピューティングデバイス100は、例えばSIMD加算命令などのSIMD命令を用いて複数のエッジセルをカウントしてよい。
ここで図10を参照すると、使用において、コンピューティングデバイス100は複数のタッチポイントに対して持続性の識別子を割り当てる方法1000を実行してよい。図3のブロック306に関連して上述したように、方法1000を実行すると、コンピューティングデバイス100は既に、タッチスクリーンから入力フレームを受信し、重心およびクラスタ境界検出を実行することで入力フレームにおける複数の現在のタッチポイントを識別していてよい。方法1000はブロック1002で開始し、ここでコンピューティングデバイス100は、全ての前の追跡タッチポイントについて、現在の入力フレームにおける位置を予測する。当然のことながら、方法1000の最初の呼出しに関し、前の追跡タッチポイントは存在しない。いくつかの実施形態において、コンピューティングデバイス100は、例えば、各タッチポイントのスピードを判定すること、および、速度関数として位置を予測することにより、複数の前の位置から複数の予測位置を推定(extrapolate)してよい。しかしながら、いくつかの実施形態においてコンピューティングデバイス100は、前の追跡タッチポイントそれぞれの位置を前の入力フレームと同じであるとして単純に予測してよい。この単純化されたアプローチは、複数のタッチポイントが相対的に遅く移動する可能性が高い場合に、適切であるかも知れない。
ブロック1004において、予測タッチポイントのそれぞれに関し、コンピューティングデバイス100は、予測タッチポイントの追跡距離閾値内に位置する現在のタッチポイントに、予測タッチポイントの識別子を割り当てる。各予測タッチポイントは、複数のフレームの間でタッチポイントの位置を追跡するのに用いられうる固有識別子に関連付けられる。追跡距離閾値は、タッチポイントが複数の入力フレーム間で移動し、かつ同じタッチポイントであるとみなされ得るタッチスクリーン138上の最大距離を表す。追跡距離閾値は、複数の入力フレームセルの観点で測定されてよい。例えば、いくつかの実施形態において、閾値は7個のセルであってよい。いくつかの実施形態において、コンピューティングデバイス100は、別個の割り当てタスクにおいて予測タッチポイントごとに識別子を割り当ててよく、これらのタスクのそれぞれは並行した実行のためにプロセッサグラフィックス124にディスパッチされてよい。図11に関連して、識別子の割り当て方法が下でさらに説明される。
ブロック1006において、複数の予測タッチポイントのそれぞれに関し、コンピューティングデバイス100は、現在のタッチポイントに割り当てられた全ての重複識別子を除去する。なぜならば、ブロック1004の方法は予測タッチポイントごとに独立して実行され、同じ識別子が複数の現在のタッチポイントに割り当てられうるためである。この問題を修正するべく、コンピューティングデバイス100は、予測タッチポイントに最も近い現在のタッチポイントの識別子を維持しつつ、重複識別子を除去する。いくつかの実施形態において、コンピューティングデバイス100は、別個の除去タスクにおいて、予測タッチポイントごとに重複識別子を除去し、これらのタスクのそれぞれは並行した実行のためにプロセッサグラフィックス124にディスパッチされてよい。図12に関連して、重複識別子の除去方法が下でさらに説明される。
ブロック1008において、予測タッチポイントごとに、コンピューティングデバイス100は、閾値距離内の最も近い未割当の現在のタッチポイントに対し、任意の未使用予測タッチポイント識別子を割り当てる。いくつかの実施形態において、コンピューティングデバイス100は、別個の割り当てタスクにおいて予測タッチポイントごとに未使用予測タッチポイント識別子を割り当ててよく、これらのタスクのそれぞれは、並行した実行のためにプロセッサグラフィックス124にディスパッチされてよい。図13に関連して、未使用予測タッチポイント識別子の割り当て方法が下でさらに説明される。
ブロック1010において、入力フレームのブロックごとに、コンピューティングデバイス100は、未割当の現在の各タッチポイントに対し、新たな固有識別子を割り当てる。上述したように、入力フレームは、複数のセルの複数のスクウェアブロックにグループ化されてよい。いくつかの実施形態において、複数のブロックは4×4のセルのスクウェアであってよく、他の実施形態において、複数のブロックは3×3のセルのスクウェアであってよい。いくつかの実施形態において、コンピューティングデバイス100は、ブロック内で未割当の現在の各タッチポイントに対する識別子を見つけて割り当てるべく、プロセッサグラフィックス124上のブロックごとに割り当てタスクをディスパッチしてよい。例えば、コンピューティングデバイス100は、グローバルカウンタを維持し、増加する整数値を識別子として割り当ててよい。カウンタは、ロールオーバー(rolling over)なしに一般的な個数の固有識別子を可能にするのに十分大きくてよい。例えば、いくつかの実施形態において、符号なしの8ビットの整数がカウンタとして用いられてよく、これは256個の固有識別子を可能にする。他の実施例として、複数の識別子が固有であることを保証すべく、コンピューティングデバイス100は複数の識別子のマップを維持し、当該マップを用いて未使用の識別子を選択してよい。マップは、全256ビットを含む、8個の符号なしの32ビットの整数として具現化されてよく、マップの各ビットは特定の識別子が割り当てられているか否かを表している。
ブロック1012においてコンピューティングデバイス100は、複数のブロックの評価順序を制御すべくブロック間のデータ従属性をセットしてよい。実行順序の制御は、コンピューティングデバイス100が未割当の現在のタッチポイントに対し、繰り返すのに適した固有識別子のセットを生成することを可能にする。上述したように、データ従属性は、実行順序を制御するべくプロセッサグラフィックス124のスコアボード128により用いられ得る。例えば、データ従属性は、次の列に進む前に各列を縦方向にトラバースしつつ列方向に複数のブロックを探索するべくセットされてよい。データ従属性は、上で説明されたグローバルカウンタまたは識別子のマップを有してよく、これにより各ブロックが前のブロックの結果に基づいて固有識別子を計算することが可能となる。
ここで図11を参照すると、使用において、コンピューティングデバイス100は、現在のタッチポイントに対して識別子を割り当てる方法1100を実行してよい。方法1100はブロック1102で開始し、ここでコンピューティングデバイス100は、プロセッサグラフィックス124上で並行して、複数の予測タッチポイントのそれぞれについてタスクをディスパッチする。複数のタスクのそれぞれに関し、ブロック1104においてコンピューティングデバイス100は、予測タッチポイントの位置の周りのウィンドウ内で現在の入力フレームの全ての現在のタッチポイントを取得する。上述したように、コンピューティングデバイス100は、複数の入力フレームセルを複数のスクウェアブロック、例えば4×4のブロックまたは3×3セルブロックにグループ化することでメモリ内の入力フレームをまとめてよい。そのような複数のブロックへのグループ化は、図5のブロック502に関連して上で説明された重心検出のための構成と同様であってよい。ブロックごとのタッチポイント情報は、プロセッサグラフィックス124により容易にロード、格納、および、その他の処理をされうるフォーマット、例えばイメージまたはテクスチャフォーマットで格納されてよい。例えば、ブロックごとのタッチポイント情報は、32ビットの浮動2次元表面フォーマット(float two−dimensional surface format)で格納されてよい。ウィンドウは、予測タッチポイントの追跡距離閾値内の全てのセルを含むのに十分な大きさとなるよう形成される。例えば、7セルの追跡距離閾値をカバーするには2個の4×4のブロックまたは3個の3×3ブロックが必要とされ、追跡距離閾値は予測タッチポイントから全ての方向においてカバーされ得る。そこで、いくつかの実施形態において、4×4のセルのブロックに対し、ウィンドウは5個のブロックのスクウェアであってよく、3個の3×3ブロックに対し、ウィンドウは7個のブロックのスクウェアであってよい。予測タッチポイントを含むブロックは、ウィンドウの中心に位置する。
ブロック1106において、コンピューティングデバイス100は、ウィンドウ内に位置する予測タッチポイントに最も近い現在のタッチポイントを見つける。コンピューティングデバイス100は、後の処理のために、その最も近い現在のタッチポイントをベストマッチのタッチポイントとして格納する。
ブロック1108においてコンピューティングデバイス100は、ブロック1106において識別されたベストマッチのタッチポイントの周りのウィンドウ内で全ての予測タッチポイントを見つける。ウィンドウはブロック1104において探索されたウィンドウと同じサイズである。しかしながら、ベストマッチのタッチポイントは異なるブロックに位置しうるので、コンピューティングデバイス100は、異なる複数のブロックを取得して探索してよい。ブロック1110においてコンピューティングデバイス100は、最も近い予測タッチポイントの識別子をベストマッチのタッチポイントに割り当てる。そこで、ベストマッチのタッチポイントは、ブロック1104において最初に探索された予測タッチポイントの識別子とは異なる識別子を割り当てられてよい。識別子の割り当ての後に、方法1100はリターンする。
ここで図12を参照すると、使用において、コンピューティングデバイス100は複数の重複識別子を除去する方法1200を実行してよい。方法1200はブロック1202で開始し、ここでコンピューティングデバイス100は、プロセッサグラフィックス124上で並行して、複数の予測タッチポイントのそれぞれについてタスクをディスパッチする。ブロック1204において、コンピューティングデバイス100は、予測タッチポイントの周りのウィンドウ内の全ての現在のタッチポイントを取得する。図10のブロック1104に関して上述したように、ウィンドウは、予測タッチポイントの追跡距離閾値内の複数のセルを含んだ全てのブロックを含むサイズに形成され、ブロックサイズに応じて5×5ブロックのスクウェアウィンドウまたは7×7ブロックのスクウェアウィンドウとして具現化されうる。
ブロック1206において、コンピューティングデバイス100は、予測タッチポイントの識別子に適合する識別子を有するウィンドウ内の全ての現在のタッチポイントを見つける。ブロック1208において、コンピューティングデバイスは、1より多い現在のタッチポイントが予測タッチポイントと同じ識別子を有するか否かを判定する。そうでない場合には、識別子が除去される必要はなく、方法1200はリターンする。そうである場合には、方法1200はブロック1210に進む。
ブロック1210において、コンピューティングデバイス100は、適合する識別子を有する複数の現在のタッチポイントの中で、最も近い現在のタッチポイントに対する識別子を維持し、残りから識別子を除去する。識別子が除去された現在のタッチポイントそれぞれは、その元の未割当状態に戻る。そこで、ブロック1210の完了の後に、全ての重複識別子は除去され、方法1200はリターンする。
ここで図13を参照すると、使用において、コンピューティングデバイス100は、複数の未使用予測タッチポイント識別子を割り当てる方法1300を実行してよい。方法1300はブロック1302で開始し、ここでコンピューティングデバイス100はプロセッサグラフィックス124上で並行して、複数の予測タッチポイントのそれぞれについてタスクをディスパッチする。ブロック1304において、コンピューティングデバイス100は、予測タッチポイントが未使用であるか否かを判定する。つまり、コンピューティングデバイス100は、予測タッチポイントの識別子が何れかの現在のタッチポイントに割り当てられているかを判定する。予測タッチポイントが未使用でない場合、つまり、予測タッチポイントが割り当てられている場合には、方法1300はリターンする。予測タッチポイントが未使用である場合には、方法1300はブロック1306に進む。
ブロック1306において、コンピューティングデバイス100は、未使用の予測タッチポイントの周りのウィンドウ内の全ての現在のタッチポイントを取得する。図11のブロック1104に関して上述したように、ウィンドウは、予測タッチポイントの追跡距離閾値内の複数のセルを含んだ全てのブロックを含むサイズに形成され、ブロックサイズに応じて5×5ブロックのスクウェアウィンドウまたは7×7ブロックのスクウェアウィンドウとして具現化されうる。ブロック1308において、コンピューティングデバイス100は、最も近い未割当の現在のタッチポイントに対し予測タッチポイント識別子を割り当てる。未割当の現在のタッチポイントがウィンドウ内に全く見つからない可能性がある場合には、予測タッチポイントは未使用のままとなる。予測タッチポイントは、未使用の場合には削除されてよく、或いは、それなりの時間だけ未使用の場合にはエイジアウト(aged out)になってよい(図示せず)。ブロック1308の完了の後に、方法1300はリターンする。
[例]
本明細書に開示された複数の技術の複数の例示的な例が、後述される。複数の技術の実施形態は、後述される複数の例の任意の1つまたは複数、及び任意の組み合わせを含んでもよい。
例1は、タッチポイント重心検出のためのコンピューティングデバイスであって、タッチスクリーンと、タッチスクリーンから入力フレームを受信する入力フレームモジュールと、重心検出モジュールと、を備え、入力フレームは複数のセルを定義し、各セルはタッチデータ値を有し、重心検出モジュールは、入力フレームの複数のセルを複数のブロックにグループ化し、複数のブロックのそれぞれにおいて、信号閾値と予め定められた関係を持つタッチデータ値を有する局所的な最大セルを探索し、複数の局所的な最大セルのそれぞれを重心として識別し、互いのタッチ距離閾値内に位置する複数の重心をマージし、かつ、マージされた複数の重心のそれぞれの周りのクラスタ境界を検出し、各クラスタ境界は、入力フレームの少なくとも1つのセルを含む、コンピューティングデバイスを備える。
例2は例1の主題を備え、複数のブロックのそれぞれは、16個の連続セルの4セルスクウェアブロック、または、9個の連続セルの3セルスクウェアブロックのうちの1つを有する。
例3は例1および2のいずれかの主題を備え、局所的な最大セルを探索することは、信号閾値以上のタッチデータ値を有する局所的な最大セルを探索することを有する。
例4は例1〜3のいずれかの主題を備え、重心をマージすることは、複数の縦線において複数のブロックをトラバースしてタッチ距離閾値未満だけ縦方向に隔てられた、複数の隣接ブロックにおける複数の重心をマージすることと、複数の横線において複数のブロックをトラバースしてタッチ距離閾値未満だけ横方向に隔てられた、複数の隣接ブロックにおける複数の重心をマージすることと、斜め方向に隣接する複数のペアにおいて複数のブロックをトラバースしてタッチ距離閾値未満だけ斜め方向に隔てられた、複数の隣接ブロックにおける複数の重心をマージすることとを含む。
例5は例1〜4のいずれかの主題を備え、隣接ブロックにおける複数の重心をマージすることは、タッチ距離閾値未満だけ隔てられた重心のペアの第1重心および第2重心を識別することと、重心としての特定を第2重心から除去することとを有し、第1重心は第2重心の第2タッチデータ値より大きい第1タッチデータ値を有する。
例6は例1〜5のいずれかの主題を備え、タッチ距離閾値は2つのセルを有する。
例7は例1〜6のいずれかの主題を備え、複数の縦線において複数のブロックをトラバースし、複数の横線において複数のブロックをトラバースし、斜め方向に隣接する複数のペアにおいて複数のブロックをトラバースするプロセッサグラフィックスをさらに備え、複数の縦線において複数のブロックをトラバースすることは、プロセッサグラフィックスを用いてブロックごとに1つのタスクをディスパッチすることと、複数の縦線において複数のブロックをトラバースするべく、プロセッサグラフィックスのスコアボードを用いて複数のタスクの間のデータ従属性をセットすることとを含み、各タスクは、隣接ブロックに位置する他の重心からタッチ距離閾値内に位置するブロック内で重心をマージすることを含み、複数の横線において複数のブロックをトラバースすることは、プロセッサグラフィックスを用いてブロックごとに1つのタスクをディスパッチすることと、複数の横線において複数のブロックをトラバースするべく、プロセッサグラフィックスのスコアボードを用いて複数のタスクの間のデータ従属性をセットすることとを含み、各タスクは、隣接ブロックに位置する他の重心からタッチ距離閾値内に位置するブロック内で重心をマージすることを含み、斜め方向に隣接する複数のペアにおいて複数のブロックをトラバースすることは、プロセッサグラフィックスを用いて4個のブロックのスクウェアグループごとに1つのタスクをディスパッチすることと、斜め方向に隣接する複数のペアにおいて複数のブロックをトラバースするべく、プロセッサグラフィックスのスコアボードを用いて複数のタスクの間でデータ従属性をセットすることとを含み、各タスクは、隣接ブロックに位置する他の重心からタッチ距離閾値内に位置する複数のブロックのスクウェアグループ内で複数の重心をマージすることを含む。
例8は例1〜7のいずれかの主題を備え、マージされた複数の重心のそれぞれの周りのクラスタ境界を検出することは、重心を囲む複数のセルに対する入力フレームからデータをロードすることと、信号閾値未満のタッチデータ値を含む複数のセルをゼロに設定することと、クラスタ境界を囲む入力フレームの複数のセルを含む入力ウィンドウを定義することと、入力ウィンドウのサイズと等しいサイズを有する比較ウィンドウを構築すべくクラスタの複数のエッジセルを複製することと、エッジセルの複数の差異を決定すべく、比較ウィンドウの対応複製エッジセルのタッチデータ値から、入力ウィンドウの各エッジセルのタッチデータ値を減算することと、エッジセルの複数の差異のいずれもゼロより小さくないとの判定に応じて比較ウィンドウのサイズを増やすことと、エッジセルの複数の差異のいずれかがゼロより小さいとの判定に応じて入力ウィンドウにおける有効セルの数をカウントすることとを有し、各有効セルはゼロより小さくない対応エッジセルの差異を有する。
例9は例1〜8のいずれかの主題を備え、入力フレームデータをロードすることは、重心を囲む複数のセルの16×16スクウェアからデータをロードすることを有する。
例10は例1〜9のいずれかの主題を備え、各エッジセルのタッチデータ値を減算することは、プロセッサグラフィックスの単一命令多重データ減算命令を用いて、入力ウィンドウのエッジを第1ベクトルにパックすることと、比較ウィンドウのエッジを第2ベクトルにパックすることと、第2ベクトルから第1ベクトルを減算することとを有する。
例11は例1〜10のいずれかの主題を備え、有効セルの数をカウントすることは、プロセッサグラフィックスの単一命令多重データ加算命令を用いて、有効セルの数をカウントすることを有する。
例12は例1〜11のいずれかの主題を備え、マージされた複数の重心のそれぞれの周りのクラスタ境界を検出することは、重心を囲む複数のセルに対する入力フレームからデータをロードすることと、信号閾値未満のタッチデータ値を含む複数のセルをゼロに設定することと、第1ウィンドウ内の複数のエッジセルの第1最大値を計算することと、重心を囲む入力フレームの第2ウィンドウ内の複数のエッジセルの合計を計算することであって、第2ウィンドウは第1ウィンドウを囲むことと、第2ウィンドウ内の複数のエッジセルの第2最大値を計算することと、信号閾値を乗算された第2ウィンドウ内のエッジセル数よりも合計が小さいか否かを判定することと、第2最大値が第1最大値より大きいかを判定することと、信号閾値を乗算された第2ウィンドウ内のエッジセル数よりも合計が小さくないとの判定、および、第2最大値が第1最大より大きくないとの判定に応じて、第1ウィンドウおよび第2ウィンドウのサイズを増やすことと、信号閾値を乗算された第2ウィンドウ内のエッジセル数よりも合計が小さいとの判定、または、第2最大値が第1最大より大きいとの判定に応じて、第1ウィンドウ内の有効セルの数をカウントすることとを含む。
例13は例1〜12のいずれかの主題を備え、プロセッサグラフィックスと、並行ディスパッチモジュールとをさらに備え、局所的な最大セルを探索することは、プロセッサグラフィックスにより実行される1つの探索タスクをブロックごとに割り当てることを有し、複数の重心をマージすることは、プロセッサグラフィックスにより実行される1つのマージタスクをブロックごとに割り当てることを有し、マージされた複数の重心のそれぞれの周りのクラスタ境界を検出することは、プロセッサグラフィックスにより実行される1つの検出タスクをマージされた重心ごとに割り当てることを有し、並行ディスパッチモジュールは、プロセッサグラフィックスの複数の実行ユニットを用いて、(i)並行して複数の探索タスクを実行し、(ii)並行して複数のマージタスクを実行し、(iii)並行して複数の検出タスクを実行する。
例14は例1〜13のいずれかの主題を備え、重心検出モジュールは、プロセッサグラフィックスの単一命令多重データ命令を用いて、局所的な最大セルを探索すること、複数の重心をマージすること、または、クラスタ境界を検出することのうち少なくとも1つを実行する。
例15は、タッチポイント追跡のためのコンピューティングデバイスを備え、コンピューティングデバイスは、タッチスクリーンと、(i)タッチスクリーンから前の入力フレームを受信するとともに、(ii)タッチスクリーンから現在の入力フレームを受信する入力フレームモジュールと、タッチポイント追跡モジュールとを備え、前の入力フレームは、複数の前の追跡タッチポイントを識別する複数のセルを定義し、現在の入力フレームは、複数のセルを定義するとともに複数の現在のタッチポイントを識別し、タッチポイント追跡モジュールは、前の入力フレームにおいて識別された、複数の前の追跡タッチポイントのそれぞれの位置を予測し、前の追跡タッチポイントの予測された位置の追跡距離閾値内に現在位置を有する現在のタッチポイントに、前の追跡タッチポイントの識別子を割り当て、複数の現在のタッチポイントに割り当てられた複数の重複識別子を除去し、複数の前の追跡タッチポイントの各未割当の識別子を、(i)追跡距離閾値内で前の追跡タッチポイントに最も近い現在のタッチポイントであり、かつ、(ii)複数の前の追跡タッチポイントの識別子が以前に割り当てられていない現在のタッチポイントに割り当て、未割当の現在の各タッチポイントに固有識別子を割り当てる。
例16は例15の主題を備え、複数の前の追跡タッチポイントのそれぞれの位置を予測することは、(i)前の入力フレームにおける複数の前の追跡タッチポイントのそれぞれの位置を決定すること、または、(ii)複数の前の追跡タッチポイントのそれぞれのスピードを判定し、速度関数として位置を予測することのうち1つを有する。
例17は例15および16のいずれかの主題を備え、前の追跡タッチポイントの識別子を現在のタッチポイントに割り当てることは、前の追跡タッチポイントの予測された位置の追跡距離閾値内に位置する入力フレームの全ての現在のタッチポイントを取得し、取得された複数の現在のタッチポイントのうち、予測された位置に最も近い現在のタッチポイントを識別し、最も近い現在のタッチポイントの追跡距離閾値内に複数の予測された位置を有する、全ての前の追跡タッチポイントを取得し、取得された複数の前の追跡タッチポイントのうち、最も近い現在のタッチポイントに対して最も近い前の追跡タッチポイントを識別し、最も近い前の追跡タッチポイントの識別子を、最も近い現在のタッチポイントに割り当てることを含む。
例18は例15〜17のいずれかの主題を備え、現在のタッチポイントに割り当てられた複数の重複識別子を除去することは、前の追跡タッチポイントの予測された位置の追跡距離閾値内に位置する入力フレームの全ての現在のタッチポイントを取得することと、取得された複数の現在のタッチポイントのうち1つより多いものが、前の追跡タッチポイントの識別子に適合する識別子を有するかを判定することと、取得された複数の現在のタッチポイントのうち1つより多いものが、前の追跡タッチポイントの識別子に適合する識別子を有するとの判定に応じて、取得された複数の現在のタッチポイントのうち、(i)前の追跡タッチポイントに最も近い位置、および、(ii)前の追跡タッチポイントの識別子に適合する識別子を有する、最も近い現在のタッチポイントを識別し、最も近い現在のタッチポイントの識別子を維持し、かつ、取得された複数の現在のタッチポイントのうち、前の追跡タッチポイントの識別子に適合する識別子を有する、複数の他の現在のタッチポイントの識別子を除去することとを有する。
例19は例15〜18のいずれかの主題を備え、現在の入力フレームは、コンピューティングデバイスのプロセッサグラフィックスにより画像データとしてフォーマットされた現在の入力フレームを有する。
例20は例15〜19のいずれかの主題を備え、プロセッサグラフィックスにより認識された画像データは、32ビットの浮動2次元表面フォーマットを有する。
例21は例15〜20のいずれかの主題を備え、追跡距離閾値は現在の入力フレームの7個の入力セルを有する。
例22は例15〜21のいずれかの主題を備え、プロセッサグラフィックスおよび並行ディスパッチモジュールをさらに備え、前の追跡タッチポイントの識別子を割り当てることは、プロセッサグラフィックスにより実行される1つの割り当てタスクを、前の追跡タッチポイントごとに割り当てることを含み、複数の重複識別子を除去することは、プロセッサグラフィックスにより実行される1つの除去タスクを、前の追跡タッチポイントごとに割り当てることを含み、未使用の前の追跡タッチポイントそれぞれの識別子を割り当てることは、プロセッサグラフィックスにより実行される1つの未使用識別子割り当てタスクを、前の追跡タッチポイントごとに割り当てることを含み、未割当の現在の各タッチポイントに固有識別子を割り当てることは、現在の入力フレームの複数のセルを複数のブロックにグループ化することと、プロセッサグラフィックスにより実行される1つの固有識別子割り当てタスクを、ブロックごとに割り当てることと、プロセッサグラフィックスのスコアボードを用いて複数のブロックの間のデータ従属性をセットすることとを含み、並行ディスパッチモジュールは、プロセッサグラフィックスの複数の実行ユニットを用いて、(i)並行して複数の割り当てタスクを実行し、(ii)並行して複数の除去タスクを実行し、(iii)並行して複数の未使用識別子割り当てタスクを実行し、(iv)並行して複数の固有識別子割り当てタスクを実行する。
例23は例15〜22のいずれかの主題を備え、タッチポイント追跡モジュールは、プロセッサグラフィックスの単一命令多重データ命令を用い、前の追跡タッチポイントの識別子を割り当てること、複数の重複識別子を除去すること、各未割当の識別子を割り当てること、または、未割当の現在の各タッチポイントに固有識別子を割り当てることのうち少なくとも1つを実行する。
例24は、コンピューティングデバイス上で複数のタッチポイント重心を検出する方法を備え、当該方法は、コンピューティングデバイス上で、コンピューティングデバイスのタッチスクリーンから入力フレームを受信する段階であって、入力フレームが複数のセルを定義し、各セルがタッチデータ値を有する段階と、コンピューティングデバイス上で、入力フレームの複数のセルを複数のブロックにグループ化する段階と、コンピューティングデバイス上で、複数のブロックのそれぞれ内の局所的な最大セルを探索する段階であって、局所的な最大セルは、信号閾値と予め定められた関係を持つタッチデータ値を有する段階と、コンピューティングデバイス上で、複数の局所的な最大セルのそれぞれを重心として識別する段階と、コンピューティングデバイス上で、互いにタッチ距離閾値内に位置する複数の重心をマージする段階と、コンピューティングデバイス上で、マージされた複数の重心のそれぞれの周りのクラスタ境界を検出する段階であって、各クラスタ境界は入力フレームの少なくとも1つのセルを含む段階と、を備える。
例25は例24の主題を備え、複数のセルをグループ化する段階は、16個の隣接セルを4セルのスクウェアブロックにグループ化する段階、または、9個の隣接セルを3セルスクウェアブロックにグループ化する段階のうちの1つを有する。
例26は例24および25のいずれかの主題を備え、局所的な最大セルを探索する段階は、信号閾値以上のタッチデータ値を有する局所的な最大セルを探索する段階を有する。
例27は例24〜26のいずれかの主題を備え、重心をマージする段階は、複数の縦線において複数のブロックをトラバースしてタッチ距離閾値未満だけ縦方向に隔てられた、複数の隣接ブロックにおける複数の重心をマージする段階と、複数の横線において複数のブロックをトラバースしてタッチ距離閾値未満だけ横方向に隔てられた、複数の隣接ブロックにおける複数の重心をマージする段階と、斜め方向に隣接する複数のペアにおいて複数のブロックをトラバースしてタッチ距離閾値未満だけ斜め方向に隔てられた、複数の隣接ブロックにおける複数の重心をマージする段階とを含む。
例28は例24〜27のいずれかの主題を備え、隣接ブロックにおける複数の重心をマージする段階は、タッチ距離閾値未満だけ隔てられた重心のペアの第1重心および第2重心を識別する段階と、重心としての特定を第2重心から除去する段階とを有し、第1重心は第2重心の第2タッチデータ値より大きい第1タッチデータ値を有する。
例29は例24〜28のいずれかの主題を備え、複数の重心をマージする段階は、トラバース方向において2つより少ないセルにより隔てられた隣接ブロック内の複数の重心をマージする段階を有する。
例30は例24〜29のいずれかの主題を備え、複数の縦線において複数のブロックをトラバースする段階は、コンピューティングデバイスのプロセッサグラフィックスを用いてブロックごとに1つのタスクをディスパッチする段階と、複数の縦線において複数のブロックをトラバースするべく、プロセッサグラフィックスのスコアボードを用いて、複数のタスクの間のデータ従属性をセットする段階とを含み、各タスクは、隣接ブロックに位置する他の重心からタッチ距離閾値内に位置するブロック内で重心をマージすることを含み、複数の横線において複数のブロックをトラバースする段階は、プロセッサグラフィックスを用いてブロックごとに1つのタスクをディスパッチする段階と、複数の横線において複数のブロックをトラバースするべく、プロセッサグラフィックスのスコアボードを用いて、複数のタスクの間のデータ従属性をセットする段階とを含み、各タスクは隣接ブロックに位置する他の重心からタッチ距離閾値内に位置するブロック内で重心をマージすることを含み、斜め方向に隣接する複数のペアにおいて複数のブロックをトラバースする段階は、プロセッサグラフィックスを用いて4個のブロックのスクウェアグループごとに1つのタスクをディスパッチする段階と、斜め方向に隣接する複数のペアにおいて複数のブロックをトラバースするべく、プロセッサグラフィックスのスコアボードを用いて、複数のタスクの間のデータ従属性をセットする段階とを含み、各タスクは、隣接ブロックに位置する他の重心からタッチ距離閾値内に位置する複数のブロックのスクウェアグループ内で複数の重心をマージすることを含む。
例31は例24〜30のいずれかの主題を備え、マージされた複数の重心のそれぞれの周りのクラスタ境界を検出する段階は、重心を囲む複数のセルに対する入力フレームからデータをロードする段階と、信号閾値未満のタッチデータ値を有する複数のセルにゼロを書き込む段階と、クラスタ境界を囲む入力フレームの複数のセルを有する入力ウィンドウを定義する段階と、入力ウィンドウのサイズに等しいサイズを有する比較ウィンドウを構築するべくクラスタの複数のエッジセルを複製する段階と、エッジセルの複数の差異を決定するべく、入力ウィンドウの各エッジセルのタッチデータ値を、比較ウィンドウの対応複製エッジセルのタッチデータ値から減算する段階と、エッジセルの複数の差異のいずれもゼロより少なくないとの判定に応じて比較ウィンドウのサイズを増やす段階と、エッジセルの複数の差異のいずれかがゼロより少ないとの判定に応じて入力ウィンドウ内の有効セルの数をカウントする段階と、を有し、各有効セルは、ゼロより小さくない対応エッジセルの差異を有する。
例32は例24〜31のいずれかの主題を備え、入力フレームデータをロードする段階は、重心を囲む複数のセルの16×16スクウェアからデータをロードする段階を有する。
例33は例24〜32のいずれかの主題を備え、各エッジセルのタッチデータ値を減算する段階は、プロセッサグラフィックスの単一命令多重データ減算命令を用いて、入力ウィンドウのエッジを第1ベクトルにパックする段階と、比較ウィンドウのエッジを第2ベクトルにパックする段階と、第2ベクトルから第1ベクトルを減算する段階とを有する。
例34は例24〜33のいずれかの主題を備え、有効セルの数をカウントする段階は、プロセッサグラフィックスの単一命令多重データ加算命令を用いて、有効セルの数をカウントする段階を有する。
例35は例24〜34のいずれかの主題を備え、マージされた複数の重心のそれぞれの周りのクラスタ境界を検出する段階は、重心を囲む複数のセルに対する入力フレームからデータをロードする段階と、信号閾値未満のタッチデータ値を有する複数のセルにゼロを書き込む段階と、第1ウィンドウ内の複数のエッジセルの第1最大値を計算する段階と、重心を囲む入力フレームの第2ウィンドウ内の複数のエッジセルの合計を計算する段階であって、第2ウィンドウが第1ウィンドウを囲む段階と、第2ウィンドウ内の複数のエッジセルの第2最大値を計算する段階と、信号閾値を乗算された第2ウィンドウ内のエッジセル数よりも合計が小さいか否かを判定する段階と、第2最大値が第1最大値より大きいか否かを判定する段階と、信号閾値を乗算された第2ウィンドウ内のエッジセル数よりも合計が小さくないとの判定、および、第2最大値が第1最大より大きくないとの判定に応じて、第1ウィンドウおよび第2ウィンドウのサイズを増やす段階と、信号閾値を乗算された第2ウィンドウ内のエッジセル数よりも合計が小さいとの判定、または、第2最大値が第1最大値より大きいとの判定に応じて、第1ウィンドウ内の有効セルの数をカウントする段階と、を有する。
例36は例24〜35のいずれかの主題を備え、局所的な最大セルを探索する段階は、コンピューティングデバイスのプロセッサグラフィックスにより実行される1つの探索タスクをブロックごとに割り当てる段階と、プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の探索タスクを実行する段階とを有し、複数の重心をマージする段階は、プロセッサグラフィックスにより実行される1つのマージタスクをブロックごとに割り当てる段階と、プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数のマージタスクを実行する段階とを有し、マージされた複数の重心のそれぞれの周りのクラスタ境界を検出する段階は、プロセッサグラフィックスにより実行される1つの検出タスクをマージされた重心ごとに割り当てる段階と、プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の検出タスクを実行する段階とを有する。
例37は例24〜36のいずれかの主題を備え、プロセッサグラフィックスの単一命令多重データ命令を用いて、局所的な最大セルを探索する段階、複数の重心をマージする段階、またはクラスタ境界を検出する段階のうち1つを実行する段階をさらに備える。
例38は、タッチポイントを追跡する方法を備え、当該方法は、コンピューティングデバイス上で、コンピューティングデバイスのタッチスクリーンから受信された前の入力フレーム内で識別された複数の前の追跡タッチポイントのそれぞれの位置を予測する段階であって、前の入力フレームは複数のセルを定義する段階と、コンピューティングデバイス上で、複数のセルを定義するとともに複数の現在のタッチポイントを識別する現在の入力フレームを、タッチスクリーンから受信する段階と、コンピューティングデバイス上で、前の追跡タッチポイントの予測された位置の追跡距離閾値内に現在位置を有する現在のタッチポイントに対し、前の追跡タッチポイントの識別子を割り当てる段階と、コンピューティングデバイス上で、複数の現在のタッチポイントに割り当てられた複数の重複識別子を除去する段階と、コンピューティングデバイス上で、複数の前の追跡タッチポイントの各未割当の識別子を、(i)追跡距離閾値内の前の追跡タッチポイントに最も近い現在のタッチポイントであって、かつ、(ii)複数の前の追跡タッチポイントの識別子を以前に割り当てられていない現在のタッチポイントに対して割り当てる段階と、コンピューティングデバイス上で、未割当の現在の各タッチポイントに固有識別子を割り当てる段階とを備える。
例39は例38の主題を備え、複数の前の追跡タッチポイントのそれぞれの位置を予測する段階は、(i)前の入力フレームにおける複数の前の追跡タッチポイントのそれぞれの位置を決定する段階、または、(ii)複数の前の追跡タッチポイントのそれぞれのスピードを判定し、速度関数として位置を予測する段階のうち1つを有する。
例40は例38および39のいずれかの主題を備え、前の追跡タッチポイントの識別子を現在のタッチポイントに割り当てる段階は、前の追跡タッチポイントの予測された位置の追跡距離閾値内に位置する、入力フレームの全ての現在のタッチポイントを取得する段階と、取得された複数の現在のタッチポイントのうち、予測された位置に最も近い現在のタッチポイントを識別する段階と、最も近い現在のタッチポイントの追跡距離閾値内に複数の予測された位置を有する全ての前の追跡タッチポイントを取得する段階と、取得された複数の前の追跡タッチポイントのうち、最も近い現在のタッチポイントに最も近い前の追跡タッチポイントを識別する段階と、最も近い前の追跡タッチポイントの識別子を、最も近い現在のタッチポイントに割り当てる段階とを有する。
例41は例38〜40のいずれかの主題を備え、現在のタッチポイントに割り当てられた複数の重複識別子を除去する段階は、前の追跡タッチポイントの予測された位置の追跡距離閾値内に位置する、入力フレームの全ての現在のタッチポイントを取得する段階と、取得された複数の現在のタッチポイントのうちの1つより多くが、前の追跡タッチポイントの識別子に適合する識別子を有するか否かを判定する段階と、取得された複数の現在のタッチポイントのうちの1つより多くが、前の追跡タッチポイントの識別子に適合する識別子を有するとの判定に応じて、取得された複数の現在のタッチポイントのうち、(i)前の追跡タッチポイントに最も近い位置、および、(ii)前の追跡タッチポイントの識別子に適合する識別子、を有する、最も近い現在のタッチポイントを識別し、最も近い現在のタッチポイントの識別子を維持し、かつ、取得された複数の現在のタッチポイントのうち、前の追跡タッチポイントの識別子に適合する識別子を有する複数の他の現在のタッチポイントの識別子を除去する段階とを有する。
例42は例38〜41のいずれかの主題を備え、現在の入力フレームを受信する段階は、コンピューティングデバイスのプロセッサグラフィックスにより画像データとしてフォーマットされた現在の入力フレームを受信する段階を有する。
例43は例38〜42のいずれかの主題を備え、画像データとしてフォーマットされた現在の入力フレームを受信する段階は、32ビット浮動2次元表面フォーマットでフォーマットされた現在の入力フレームを受信する段階を有する。
例44は例38〜43のいずれかの主題を備え、追跡距離閾値は現在の入力フレームの7個の入力セルを有する。
例45は例38〜44のいずれかの主題を備え、前の追跡タッチポイントの識別子を割り当てる段階は、コンピューティングデバイスのプロセッサグラフィックスにより実行される1つの割り当てタスクを前の追跡タッチポイントごとに割り当てる段階と、プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の割り当てタスクを実行する段階とを有し、複数の重複識別子を除去する段階は、プロセッサグラフィックスにより実行される1つの除去タスクを前の追跡タッチポイントごとに割り当てる段階と、プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の除去タスクを実行する段階とを有し、未使用の前の追跡タッチポイントそれぞれの識別子を割り当てる段階は、プロセッサグラフィックスにより実行される1つの割り当てタスクを前の追跡タッチポイントごとに割り当てる段階と、プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の割り当てタスクを実行する段階とを有し、未割当の現在の各タッチポイントに固有識別子を割り当てる段階は、現在の入力フレームの複数のセルを複数のブロックにグループ化する段階と、プロセッサグラフィックスにより実行される1つの割り当てタスクをブロックごとに割り当てる段階と、プロセッサグラフィックスのスコアボードを用いて、複数のブロックの間のデータ従属性をセットする段階と、プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の割り当てタスクを実行する段階とを含む。
例46は例38〜45のいずれかの主題を備え、プロセッサグラフィックスの単一命令多重データ命令を用いて、前の追跡タッチポイントの識別子を割り当てる段階、複数の重複識別子を除去する段階、各未割当の識別子を割り当てる段階、または、未割当の現在の各タッチポイントに固有識別子を割り当てる段階のうち少なくとも1つを実行する段階をさらに備える。
例47はコンピューティングデバイスを備え、当該コンピューティングデバイスは、プロセッサと、プロセッサにより実行される場合にコンピューティングデバイスに例24〜46のいずれかに記載の方法を実行させる複数の命令が格納されたメモリとを備える。
例48は、実行されることに応じてコンピューティングデバイスが例24〜46のいずれかの方法を実行することをもたらす複数の命令が格納された1または複数の機械可読ストレージメディアを備える。
例49はタッチポイント重心検出のためのコンピューティングデバイスを備え、コンピューティングデバイスは例24〜46のいずれかの方法を実行する手段を有する。

Claims (25)

  1. タッチポイント重心検出のためのコンピューティングデバイスであって、
    タッチスクリーンと、
    前記タッチスクリーンから入力フレームを受信する入力フレームモジュールと、
    重心検出モジュールと、
    を備え、
    前記入力フレームは複数のセルを定義し、各セルはタッチデータ値を有し、
    前記重心検出モジュールは、
    前記入力フレームの前記複数のセルを複数のブロックにグループ化し、
    前記複数のブロックのそれぞれにおいて、信号閾値と予め定められた関係を持つタッチデータ値を有する局所的な最大セルを探索し、
    複数の前記局所的な最大セルのそれぞれを重心として識別し、
    互いのタッチ距離閾値内に位置する複数の重心をマージし、かつ、
    マージされた前記複数の重心のそれぞれの周りのクラスタ境界を検出し、
    各クラスタ境界は、前記入力フレームの少なくとも1つのセルを含む、コンピューティングデバイス。
  2. 前記重心をマージすることは、
    複数の縦線において前記複数のブロックをトラバースして前記タッチ距離閾値未満だけ縦方向に隔てられた、複数の隣接ブロックにおける複数の重心をマージすることと、
    複数の横線において前記複数のブロックをトラバースして前記タッチ距離閾値未満だけ横方向に隔てられた、複数の隣接ブロックにおける複数の重心をマージすることと、
    斜め方向に隣接する複数のペアにおいて前記複数のブロックをトラバースして前記タッチ距離閾値未満だけ斜め方向に隔てられた、複数の隣接ブロックにおける複数の重心をマージすることと
    を含む、請求項1に記載のコンピューティングデバイス。
  3. 複数の縦線において前記複数のブロックをトラバースし、複数の横線において前記複数のブロックをトラバースし、斜め方向に隣接する複数のペアにおいて前記複数のブロックをトラバースするプロセッサグラフィックスをさらに備え、
    複数の縦線において前記複数のブロックをトラバースすることは、
    前記プロセッサグラフィックスを用いてブロックごとに1つのタスクをディスパッチすることと、
    複数の縦線において前記複数のブロックをトラバースするべく、前記プロセッサグラフィックスのスコアボードを用いて前記複数のタスクの間のデータ従属性をセットすることと
    を含み、
    各タスクは、前記隣接ブロックに位置する他の重心から前記タッチ距離閾値内に位置する前記ブロック内で重心をマージすることを含み、
    複数の横線において前記複数のブロックをトラバースすることは、
    前記プロセッサグラフィックスを用いてブロックごとに1つのタスクをディスパッチすることと、
    複数の横線において前記複数のブロックをトラバースするべく、前記プロセッサグラフィックスの前記スコアボードを用いて前記複数のタスクの間のデータ従属性をセットすることと
    を含み、
    各タスクは、前記隣接ブロックに位置する他の重心から前記タッチ距離閾値内に位置する前記ブロック内で重心をマージすることを含み、
    斜め方向に隣接する複数のペアにおいて前記複数のブロックをトラバースすることは、
    前記プロセッサグラフィックスを用いて4個のブロックのスクウェアグループごとに1つのタスクをディスパッチすることと、
    斜め方向に隣接する複数のペアにおいて前記複数のブロックをトラバースするべく、前記プロセッサグラフィックスの前記スコアボードを用いて前記複数のタスクの間でデータ従属性をセットすることと
    を含み、
    各タスクは、隣接ブロックに位置する他の重心から前記タッチ距離閾値内に位置する複数のブロックの前記スクウェアグループ内で複数の重心をマージすることを含む、請求項2に記載のコンピューティングデバイス。
  4. マージされた前記複数の重心のそれぞれの周りの前記クラスタ境界を検出することは、
    前記重心を囲む複数のセルに対する前記入力フレームからデータをロードすることと、
    前記信号閾値未満のタッチデータ値を含む複数のセルをゼロに設定することと、
    前記クラスタ境界を囲む前記入力フレームの複数のセルを含む入力ウィンドウを定義することと、
    前記入力ウィンドウのサイズと等しいサイズを有する比較ウィンドウを構築すべく前記クラスタの複数のエッジセルを複製することと、
    エッジセルの複数の差異を決定すべく、前記比較ウィンドウの対応複製エッジセルのタッチデータ値から、前記入力ウィンドウの各エッジセルのタッチデータ値を減算することと、
    エッジセルの前記複数の差異のいずれもゼロより小さくないとの判定に応じて前記比較ウィンドウのサイズを増やすことと、
    エッジセルの前記複数の差異のいずれかがゼロより小さいとの判定に応じて前記入力ウィンドウにおける有効セルの数をカウントすることと
    を有し、
    各有効セルはゼロより小さくない対応エッジセルの差異を有する、請求項1に記載のコンピューティングデバイス。
  5. マージされた前記複数の重心のそれぞれの周りの前記クラスタ境界を検出することは、
    前記重心を囲む複数のセルに対する前記入力フレームからデータをロードすることと、
    前記信号閾値未満のタッチデータ値を含む複数のセルをゼロに設定することと、
    第1ウィンドウ内の複数のエッジセルの第1最大値を計算することと、
    前記重心を囲む前記入力フレームの第2ウィンドウ内の複数のエッジセルの合計を計算することであって、前記第2ウィンドウは前記第1ウィンドウを囲むことと、
    前記第2ウィンドウ内の複数のエッジセルの第2最大値を計算することと、
    前記信号閾値を乗算された前記第2ウィンドウ内のエッジセル数よりも前記合計が小さいか否かを判定することと、
    前記第2最大値が前記第1最大値より大きいかを判定することと、
    前記信号閾値を乗算された前記第2ウィンドウ内の前記エッジセル数よりも前記合計が小さくないとの判定、および、前記第2最大値が前記第1最大より大きくないとの判定に応じて、前記第1ウィンドウおよび前記第2ウィンドウのサイズを増やすことと、
    前記信号閾値を乗算された前記第2ウィンドウ内の前記エッジセル数よりも前記合計が小さいとの判定、または、前記第2最大値が前記第1最大より大きいとの判定に応じて、前記第1ウィンドウ内の有効セルの数をカウントすることと
    を含む、請求項1に記載のコンピューティングデバイス。
  6. プロセッサグラフィックスと、
    並行ディスパッチモジュールと
    をさらに備え、
    前記局所的な最大セルを探索することは、
    前記プロセッサグラフィックスにより実行される1つの探索タスクをブロックごとに割り当てることを有し、
    前記複数の重心をマージすることは、前記プロセッサグラフィックスにより実行される1つのマージタスクをブロックごとに割り当てることを有し、
    マージされた前記複数の重心のそれぞれの周りの前記クラスタ境界を検出することは、前記プロセッサグラフィックスにより実行される1つの検出タスクをマージされた重心ごとに割り当てることを有し、
    前記並行ディスパッチモジュールは、前記プロセッサグラフィックスの複数の実行ユニットを用いて、(i)並行して複数の前記探索タスクを実行し、(ii)並行して複数の前記マージタスクを実行し、(iii)並行して複数の前記検出タスクを実行する、請求項1〜5のいずれか1項に記載のコンピューティングデバイス。
  7. 前記重心検出モジュールは、前記プロセッサグラフィックスの単一命令多重データ命令を用いて、局所的な最大セルを探索すること、複数の重心をマージすること、または、前記クラスタ境界を検出することのうち少なくとも1つを実行する、請求項6に記載のコンピューティングデバイス。
  8. タッチポイント追跡のためのコンピューティングデバイスであって、
    タッチスクリーンと、
    (i)前記タッチスクリーンから前の入力フレームを受信するとともに、(ii)前記タッチスクリーンから現在の入力フレームを受信する入力フレームモジュールと、
    タッチポイント追跡モジュールと
    を備え、
    前記前の入力フレームは、複数の前の追跡タッチポイントを識別する複数のセルを定義し、
    前記現在の入力フレームは、複数のセルを定義するとともに複数の現在のタッチポイントを識別し、
    前記タッチポイント追跡モジュールは、
    前記前の入力フレームにおいて識別された、前記複数の前の追跡タッチポイントのそれぞれの位置を予測し、
    前記前の追跡タッチポイントの予測された前記位置の追跡距離閾値内に現在位置を有する現在のタッチポイントに、前の追跡タッチポイントの識別子を割り当て、
    複数の前記現在のタッチポイントに割り当てられた複数の重複識別子を除去し、
    複数の前記前の追跡タッチポイントの各未割当の識別子を、(i)前記追跡距離閾値内で前記前の追跡タッチポイントに最も近い現在のタッチポイントであり、かつ、(ii)複数の前記前の追跡タッチポイントの識別子が以前に割り当てられていない現在のタッチポイントに割り当て、
    未割当の現在の各タッチポイントに固有識別子を割り当てる、コンピューティングデバイス。
  9. 前記前の追跡タッチポイントの前記識別子を前記現在のタッチポイントに割り当てることは、
    前記前の追跡タッチポイントの予測された前記位置の前記追跡距離閾値内に位置する前記入力フレームの全ての現在のタッチポイントを取得することと、
    取得された複数の前記現在のタッチポイントのうち、予測された前記位置に最も近い現在のタッチポイントを識別することと、
    前記最も近い現在のタッチポイントの前記追跡距離閾値内に複数の予測された位置を有する、全ての前の追跡タッチポイントを取得することと、
    取得された複数の前記前の追跡タッチポイントのうち、前記最も近い現在のタッチポイントに対して最も近い前の追跡タッチポイントを識別することと、
    前記最も近い前の追跡タッチポイントの識別子を、前記最も近い現在のタッチポイントに割り当てることとを含む、請求項8に記載のコンピューティングデバイス。
  10. 前記現在のタッチポイントに割り当てられた前記複数の重複識別子を除去することは、
    前記前の追跡タッチポイントの予測された前記位置の前記追跡距離閾値内に位置する前記入力フレームの全ての現在のタッチポイントを取得することと、
    取得された複数の前記現在のタッチポイントのうち1つより多いものが、前記前の追跡タッチポイントの前記識別子に適合する識別子を有するかを判定することと、
    取得された複数の前記現在のタッチポイントのうち1つより多いものが、前記前の追跡タッチポイントの前記識別子に適合する識別子を有するとの判定に応じて、
    取得された複数の前記現在のタッチポイントのうち、(i)前記前の追跡タッチポイントに最も近い位置、および、(ii)前記前の追跡タッチポイントの前記識別子に適合する識別子を有する、最も近い現在のタッチポイントを識別し、
    前記最も近い現在のタッチポイントの前記識別子を維持し、かつ、
    取得された複数の前記現在のタッチポイントのうち、前記前の追跡タッチポイントの前記識別子に適合する識別子を有する、複数の他の現在のタッチポイントの前記識別子を除去することと
    を有する、請求項8に記載のコンピューティングデバイス。
  11. プロセッサグラフィックスおよび並行ディスパッチモジュールをさらに備え、
    前記前の追跡タッチポイントの前記識別子を割り当てることは、
    前記プロセッサグラフィックスにより実行される1つの割り当てタスクを、前の追跡タッチポイントごとに割り当てることを含み、
    前記複数の重複識別子を除去することは、
    前記プロセッサグラフィックスにより実行される1つの除去タスクを、前の追跡タッチポイントごとに割り当てることを含み、
    未使用の前の追跡タッチポイントそれぞれの前記識別子を割り当てることは、
    前記プロセッサグラフィックスにより実行される1つの未使用識別子割り当てタスクを、前の追跡タッチポイントごとに割り当てることを含み、
    未割当の現在の各タッチポイントに固有識別子を割り当てることは、
    前記現在の入力フレームの複数のセルを複数のブロックにグループ化することと、
    前記プロセッサグラフィックスにより実行される1つの固有識別子割り当てタスクを、ブロックごとに割り当てることと、
    前記プロセッサグラフィックスのスコアボードを用いて前記複数のブロックの間のデータ従属性をセットすることと
    を含み、
    前記並行ディスパッチモジュールは、前記プロセッサグラフィックスの複数の実行ユニットを用いて、
    (i)並行して複数の前記割り当てタスクを実行し、
    (ii)並行して複数の前記除去タスクを実行し、
    (iii)並行して複数の前記未使用識別子割り当てタスクを実行し、
    (iv)並行して複数の前記固有識別子割り当てタスクを実行する、請求項8〜10の何れか1項に記載のコンピューティングデバイス。
  12. 前記タッチポイント追跡モジュールは、前記プロセッサグラフィックスの単一命令多重データ命令を用い、
    前記前の追跡タッチポイントの前記識別子を割り当てること、
    複数の重複識別子を除去すること、
    各未割当の識別子を割り当てること、または、
    未割当の現在の各タッチポイントに前記固有識別子を割り当てること
    のうち少なくとも1つを実行する、請求項11に記載のコンピューティングデバイス。
  13. コンピューティングデバイス上で複数のタッチポイント重心を検出する方法であって、
    前記コンピューティングデバイス上で、前記コンピューティングデバイスのタッチスクリーンから入力フレームを受信する段階であって、前記入力フレームが複数のセルを定義し、各セルがタッチデータ値を有する段階と、
    前記コンピューティングデバイス上で、前記入力フレームの前記複数のセルを複数のブロックにグループ化する段階と、
    前記コンピューティングデバイス上で、前記複数のブロックのそれぞれ内の局所的な最大セルを探索する段階であって、前記局所的な最大セルは、信号閾値と予め定められた関係を持つタッチデータ値を有する段階と、
    前記コンピューティングデバイス上で、複数の前記局所的な最大セルのそれぞれを重心として識別する段階と、
    前記コンピューティングデバイス上で、互いにタッチ距離閾値内に位置する複数の重心をマージする段階と、
    前記コンピューティングデバイス上で、マージされた前記複数の重心のそれぞれの周りのクラスタ境界を検出する段階であって、各クラスタ境界は前記入力フレームの少なくとも1つのセルを含む段階と、
    を備える方法。
  14. 前記複数の重心をマージする段階は、
    複数の縦線において前記複数のブロックをトラバースする段階と、
    複数の横線において前記複数のブロックをトラバースする段階と、
    斜め方向に隣接する複数のペアにおいて前記複数のブロックをトラバースする段階と
    を備え、
    複数の縦線において前記複数のブロックをトラバースする段階は、
    前記コンピューティングデバイスのプロセッサグラフィックスを用いてブロックごとに1つのタスクをディスパッチする段階と、
    複数の縦線において前記複数のブロックをトラバースするべく、前記プロセッサグラフィックスのスコアボードを用いて、前記複数のタスクの間のデータ従属性をセットする段階と
    を含み、
    各タスクは、前記隣接ブロックに位置する他の重心から前記タッチ距離閾値内に位置する前記ブロック内で重心をマージすることを含み、
    複数の横線において前記複数のブロックをトラバースする段階は、
    前記プロセッサグラフィックスを用いてブロックごとに1つのタスクをディスパッチする段階と、
    複数の横線において前記複数のブロックをトラバースするべく、前記プロセッサグラフィックスの前記スコアボードを用いて、前記複数のタスクの間のデータ従属性をセットする段階と
    を含み、
    各タスクは前記隣接ブロックに位置する他の重心から前記タッチ距離閾値内に位置する前記ブロック内で重心をマージすることを含み、
    斜め方向に隣接する複数のペアにおいて前記複数のブロックをトラバースする段階は、
    前記プロセッサグラフィックスを用いて4個のブロックのスクウェアグループごとに1つのタスクをディスパッチする段階と、
    斜め方向に隣接する複数のペアにおいて前記複数のブロックをトラバースするべく、前記プロセッサグラフィックスの前記スコアボードを用いて、前記複数のタスクの間のデータ従属性をセットする段階と
    を含み、
    各タスクは、隣接ブロックに位置する他の重心から前記タッチ距離閾値内に位置する複数のブロックの前記スクウェアグループ内で複数の重心をマージすることを含む、請求項13に記載の方法。
  15. マージされた前記複数の重心のそれぞれの周りの前記クラスタ境界を検出する段階は、
    前記重心を囲む複数のセルに対する前記入力フレームからデータをロードする段階と、
    前記信号閾値未満のタッチデータ値を有する複数のセルにゼロを書き込む段階と、
    前記クラスタ境界を囲む前記入力フレームの複数のセルを有する入力ウィンドウを定義する段階と、
    前記入力ウィンドウのサイズに等しいサイズを有する比較ウィンドウを構築するべく前記クラスタの複数のエッジセルを複製する段階と、
    エッジセルの複数の差異を決定するべく、前記入力ウィンドウの各エッジセルのタッチデータ値を、前記比較ウィンドウの対応複製エッジセルのタッチデータ値から減算する段階と、
    エッジセルの前記複数の差異のいずれもゼロより少なくないとの判定に応じて前記比較ウィンドウのサイズを増やす段階と、
    エッジセルの前記複数の差異のいずれかがゼロより少ないとの判定に応じて前記入力ウィンドウ内の有効セルの数をカウントする段階と、
    を有し、
    各有効セルは、ゼロより小さくない対応エッジセルの差異を有する、請求項13に記載の方法。
  16. マージされた前記複数の重心のそれぞれの周りの前記クラスタ境界を検出する段階は、
    前記重心を囲む複数のセルに対する前記入力フレームからデータをロードする段階と、
    前記信号閾値未満のタッチデータ値を有する複数のセルにゼロを書き込む段階と、
    第1ウィンドウ内の複数のエッジセルの第1最大値を計算する段階と、
    前記重心を囲む前記入力フレームの第2ウィンドウ内の複数のエッジセルの合計を計算する段階であって、前記第2ウィンドウが前記第1ウィンドウを囲む段階と、
    前記第2ウィンドウ内の複数のエッジセルの第2最大値を計算する段階と、
    前記信号閾値を乗算された前記第2ウィンドウ内のエッジセル数よりも前記合計が小さいか否かを判定する段階と、
    前記第2最大値が前記第1最大値より大きいか否かを判定する段階と、
    前記信号閾値を乗算された前記第2ウィンドウ内の前記エッジセル数よりも前記合計が小さくないとの判定、および、前記第2最大値が前記第1最大より大きくないとの判定に応じて、前記第1ウィンドウおよび前記第2ウィンドウのサイズを増やす段階と、
    前記信号閾値を乗算された前記第2ウィンドウ内の前記エッジセル数よりも前記合計が小さいとの判定、または、前記第2最大値が前記第1最大値より大きいとの判定に応じて、前記第1ウィンドウ内の有効セルの数をカウントする段階と、
    を有する、請求項13に記載の方法。
  17. 前記局所的な最大セルを探索する段階は、
    前記コンピューティングデバイスのプロセッサグラフィックスにより実行される1つの探索タスクをブロックごとに割り当てる段階と、
    前記プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の前記探索タスクを実行する段階と
    を有し、
    前記複数の重心をマージする段階は、
    前記プロセッサグラフィックスにより実行される1つのマージタスクをブロックごとに割り当てる段階と、
    前記プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の前記マージタスクを実行する段階と
    を有し、
    マージされた前記複数の重心のそれぞれの周りの前記クラスタ境界を検出する段階は、
    前記プロセッサグラフィックスにより実行される1つの検出タスクをマージされた重心ごとに割り当てる段階と、
    前記プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の前記検出タスクを実行する段階と
    を有する、請求項13に記載の方法。
  18. 前記コンピューティングデバイスの前記プロセッサグラフィックスの単一命令多重データ命令を用いて、前記局所的な最大セルを探索する段階、前記複数の重心をマージする段階、または、前記クラスタ境界を検出する段階のうち少なくとも1つを実行する段階をさらに備える、請求項17に記載の方法。
  19. タッチポイントを追跡する方法であって、
    コンピューティングデバイス上で、前記コンピューティングデバイスのタッチスクリーンから受信された前の入力フレーム内で識別された複数の前の追跡タッチポイントのそれぞれの位置を予測する段階であって、前記前の入力フレームは複数のセルを定義する段階と、
    前記コンピューティングデバイス上で、複数のセルを定義するとともに複数の現在のタッチポイントを識別する現在の入力フレームを、前記タッチスクリーンから受信する段階と、
    前記コンピューティングデバイス上で、前の追跡タッチポイントの予測された前記位置の追跡距離閾値内に現在位置を有する現在のタッチポイントに対し、前記前の追跡タッチポイントの識別子を割り当てる段階と、
    前記コンピューティングデバイス上で、複数の前記現在のタッチポイントに割り当てられた複数の重複識別子を除去する段階と、
    前記コンピューティングデバイス上で、複数の前記前の追跡タッチポイントの各未割当の識別子を、(i)前記追跡距離閾値内の前記前の追跡タッチポイントに最も近い現在のタッチポイントであって、かつ、(ii)複数の前記前の追跡タッチポイントの識別子を以前に割り当てられていない現在のタッチポイントに対して割り当てる段階と、
    前記コンピューティングデバイス上で、未割当の現在の各タッチポイントに固有識別子を割り当てる段階と
    を備える方法。
  20. 前記前の追跡タッチポイントの前記識別子を前記現在のタッチポイントに割り当てる段階は、
    前記前の追跡タッチポイントの予測された前記位置の前記追跡距離閾値内に位置する、前記入力フレームの全ての現在のタッチポイントを取得する段階と、
    取得された複数の前記現在のタッチポイントのうち、予測された前記位置に最も近い現在のタッチポイントを識別する段階と、
    前記最も近い現在のタッチポイントの前記追跡距離閾値内に複数の予測された位置を有する全ての前の追跡タッチポイントを取得する段階と、
    取得された複数の前記前の追跡タッチポイントのうち、前記最も近い現在のタッチポイントに最も近い前の追跡タッチポイントを識別する段階と、
    前記最も近い前の追跡タッチポイントの識別子を、前記最も近い現在のタッチポイントに割り当てる段階と
    を有する、請求項19に記載の方法。
  21. 前記現在のタッチポイントに割り当てられた前記複数の重複識別子を除去する段階は、
    前記前の追跡タッチポイントの予測された前記位置の前記追跡距離閾値内に位置する、前記入力フレームの全ての現在のタッチポイントを取得する段階と、
    取得された複数の前記現在のタッチポイントのうちの1つより多くが、前記前の追跡タッチポイントの前記識別子に適合する識別子を有するか否かを判定する段階と、
    取得された複数の前記現在のタッチポイントのうちの1つより多くが、前記前の追跡タッチポイントの前記識別子に適合する識別子を有するとの判定に応じて、
    取得された複数の前記現在のタッチポイントのうち、(i)前記前の追跡タッチポイントに最も近い位置、および、(ii)前記前の追跡タッチポイントの前記識別子に適合する識別子、を有する、最も近い現在のタッチポイントを識別し、
    前記最も近い現在のタッチポイントの前記識別子を維持し、かつ、
    取得された複数の前記現在のタッチポイントのうち、前記前の追跡タッチポイントの前記識別子に適合する識別子を有する複数の他の現在のタッチポイントの前記識別子を除去する段階と
    を有する、請求項19に記載の方法。
  22. 前記前の追跡タッチポイントの前記識別子を割り当てる段階は、
    前記コンピューティングデバイスのプロセッサグラフィックスにより実行される1つの割り当てタスクを前の追跡タッチポイントごとに割り当てる段階と、
    前記プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の前記割り当てタスクを実行する段階と
    を有し、
    前記複数の重複識別子を除去する段階は、
    前記プロセッサグラフィックスにより実行される1つの除去タスクを前の追跡タッチポイントごとに割り当てる段階と、
    前記プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の前記除去タスクを実行する段階と
    を有し、
    未使用の前の追跡タッチポイントそれぞれの前記識別子を割り当てる段階は、
    前記プロセッサグラフィックスにより実行される1つの割り当てタスクを前の追跡タッチポイントごとに割り当てる段階と、
    前記プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の前記割り当てタスクを実行する段階と
    を有し、
    未割当の現在の各タッチポイントに固有識別子を割り当てる段階は、
    前記現在の入力フレームの複数のセルを複数のブロックにグループ化する段階と、
    前記プロセッサグラフィックスにより実行される1つの割り当てタスクをブロックごとに割り当てる段階と、
    前記プロセッサグラフィックスのスコアボードを用いて、前記複数のブロックの間のデータ従属性をセットする段階と、
    前記プロセッサグラフィックスの複数の実行ユニットを用いて、並行して複数の前記割り当てタスクを実行する段階と
    を含む、請求項19に記載の方法。
  23. 前記プロセッサグラフィックスの単一命令多重データ命令を用いて、
    前記前の追跡タッチポイントの前記識別子を割り当てる段階、複数の重複識別子を除去する段階、各未割当の識別子を割り当てる段階、または、未割当の現在の各タッチポイントに前記固有識別子を割り当てる段階のうち少なくとも1つを実行する段階をさらに備える、請求項22に記載の方法。
  24. コンピューティングデバイスであって、
    プロセッサと、
    前記プロセッサにより実行される場合に前記コンピューティングデバイスに請求項13〜23の何れか1項に記載の方法を実行させる複数の命令が格納されたメモリと
    を備えるコンピューティングデバイス。
  25. 実行されることに応じてコンピューティングデバイスに請求項13〜23の何れか1項に記載の方法を実行させる、自身に格納された複数の命令を備える1または複数の機械可読記憶媒体。
JP2016521391A 2013-06-28 2013-06-28 プロセッサグラフィックスを用いた並行タッチポイント検出 Active JP6099234B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/048435 WO2014209335A1 (en) 2013-06-28 2013-06-28 Parallel touch point detection using processor graphics

Publications (2)

Publication Number Publication Date
JP2016522522A true JP2016522522A (ja) 2016-07-28
JP6099234B2 JP6099234B2 (ja) 2017-03-22

Family

ID=52142469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016521391A Active JP6099234B2 (ja) 2013-06-28 2013-06-28 プロセッサグラフィックスを用いた並行タッチポイント検出

Country Status (6)

Country Link
US (1) US9448663B2 (ja)
EP (1) EP3014401A4 (ja)
JP (1) JP6099234B2 (ja)
KR (1) KR101784758B1 (ja)
CN (1) CN105247456B (ja)
WO (1) WO2014209335A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213458B2 (en) * 2013-10-14 2015-12-15 Parade Technologies, Ltd. Hover position calculation in a touchscreen device
US9983738B2 (en) 2013-10-14 2018-05-29 Parade Technologies, Ltd. Contact detection mode switching in a touchscreen device
JP6303575B2 (ja) * 2014-02-18 2018-04-04 日本電産リード株式会社 タッチパネルのタッチ位置検出方法、タッチパネル検査方法、及びタッチパネル検査装置
US9778789B2 (en) * 2014-05-21 2017-10-03 Apple Inc. Touch rejection
JP6532128B2 (ja) * 2015-09-14 2019-06-19 株式会社東海理化電機製作所 操作検出装置
US20210166053A1 (en) * 2016-01-26 2021-06-03 Hewlett Packard Enterprise Development Lp Merging object detections using graphs
CN105912166B (zh) * 2016-04-15 2019-03-26 惠州Tcl移动通信有限公司 一种移动终端触摸屏检测方法及系统
CN105975119B (zh) * 2016-04-21 2018-11-30 北京集创北方科技股份有限公司 多目标追踪方法、触摸屏控制方法及系统
US10521880B2 (en) * 2017-04-17 2019-12-31 Intel Corporation Adaptive compute size per workload
WO2019039984A1 (en) * 2017-08-23 2019-02-28 Flatfrog Laboratories Ab ENHANCED PEN ENHANCEMENT
KR20220131982A (ko) 2020-02-10 2022-09-29 플라트프로그 라보라토리즈 에이비 향상된 터치-감지 장치
KR20210116936A (ko) * 2020-03-18 2021-09-28 주식회사 실리콘웍스 터치 감지 장치 및 그 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100315372A1 (en) * 2009-06-12 2010-12-16 Stmicroelectronics Asia Pacific Pte Ltd. Touch coordinate calculation for a touch-sensitive interface
US20120050216A1 (en) * 2010-08-24 2012-03-01 Cypress Semiconductor Corporation Smart scanning for a capacitive sense array
WO2012034715A1 (en) * 2010-09-15 2012-03-22 Advanced Silicon Sa Method for detecting an arbitrary number of touches from a multi-touch device
KR20120041516A (ko) * 2010-10-21 2012-05-02 주식회사 애트랩 입력 장치 및 이 장치의 접촉 위치 검출 방법
WO2012059595A1 (en) * 2010-11-05 2012-05-10 Promethean Limited Touch detection
US20120206380A1 (en) * 2011-02-12 2012-08-16 Microsoft Corporation Prediction-based touch contact tracking
JP2013025788A (ja) * 2011-07-22 2013-02-04 Tpk Touch Solutions (Xiamen) Inc タッチスクリーンのタッチトラッキングデバイス及び方法
JP2013120598A (ja) * 2011-12-06 2013-06-17 Lg Display Co Ltd タッチ領域ラベリング方法及びタッチセンサ駆動装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7916126B2 (en) * 2007-06-13 2011-03-29 Apple Inc. Bottom-up watershed dataflow method and region-specific segmentation based on historic data to identify patches on a touch sensor panel
US8482536B1 (en) * 2008-07-23 2013-07-09 Cypress Semiconductor Corporation Compensation of signal values for a touch sensor
US20100079385A1 (en) * 2008-09-29 2010-04-01 Smart Technologies Ulc Method for calibrating an interactive input system and interactive input system executing the calibration method
EP2488931A4 (en) 2009-10-16 2013-05-29 Rpo Pty Ltd METHOD FOR DETECTING AND LOCATING TOUCH OBJECTS
WO2011161673A2 (en) * 2010-06-21 2011-12-29 N-Trig Ltd. System and method for finger resolution in touch screens
US9122341B2 (en) * 2010-11-08 2015-09-01 Microsoft Technology Licensing, Llc Resolving merged touch contacts
CN102467284B (zh) 2010-11-13 2016-05-25 宸鸿科技(厦门)有限公司 一种多触摸点的真坐标侦测装置及其侦测方法
WO2012087308A1 (en) 2010-12-22 2012-06-28 Intel Corporation Touch sensor gesture recognition for operation of mobile devices
KR20130018600A (ko) * 2011-08-08 2013-02-25 누보톤 테크놀로지 코포레이션 표면-정전용량형 터치 패널들에서 다수의 터치 포인트들을 검출하기 위한 시스템들 및 방법들
US8674962B2 (en) 2011-11-30 2014-03-18 Silicon Integrated Systems Corp. Touch coordinate calculation method for touch panel
US9213052B2 (en) * 2012-08-01 2015-12-15 Parade Technologies, Ltd. Peak detection schemes for touch position detection

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100315372A1 (en) * 2009-06-12 2010-12-16 Stmicroelectronics Asia Pacific Pte Ltd. Touch coordinate calculation for a touch-sensitive interface
US20120050216A1 (en) * 2010-08-24 2012-03-01 Cypress Semiconductor Corporation Smart scanning for a capacitive sense array
WO2012034715A1 (en) * 2010-09-15 2012-03-22 Advanced Silicon Sa Method for detecting an arbitrary number of touches from a multi-touch device
KR20120041516A (ko) * 2010-10-21 2012-05-02 주식회사 애트랩 입력 장치 및 이 장치의 접촉 위치 검출 방법
WO2012059595A1 (en) * 2010-11-05 2012-05-10 Promethean Limited Touch detection
US20120206380A1 (en) * 2011-02-12 2012-08-16 Microsoft Corporation Prediction-based touch contact tracking
JP2013025788A (ja) * 2011-07-22 2013-02-04 Tpk Touch Solutions (Xiamen) Inc タッチスクリーンのタッチトラッキングデバイス及び方法
JP2013120598A (ja) * 2011-12-06 2013-06-17 Lg Display Co Ltd タッチ領域ラベリング方法及びタッチセンサ駆動装置

Also Published As

Publication number Publication date
EP3014401A4 (en) 2017-02-08
KR20160003166A (ko) 2016-01-08
CN105247456B (zh) 2018-06-26
KR101784758B1 (ko) 2017-10-12
CN105247456A (zh) 2016-01-13
JP6099234B2 (ja) 2017-03-22
US9448663B2 (en) 2016-09-20
EP3014401A1 (en) 2016-05-04
US20160098148A1 (en) 2016-04-07
WO2014209335A1 (en) 2014-12-31

Similar Documents

Publication Publication Date Title
JP6099234B2 (ja) プロセッサグラフィックスを用いた並行タッチポイント検出
US9418048B2 (en) Apparatus and method for allocating shared storage areas to parallel processors for multiplication of sparse matrix and vector
US8135171B2 (en) Multipoint tracking method and related device
US9746975B2 (en) Capacitive measurement processing for mode changes
US9122341B2 (en) Resolving merged touch contacts
US9762834B2 (en) Configurable hardware for computing computer vision features
US20080087477A1 (en) Apparatus, method, and medium for multi-touch decision
KR102356705B1 (ko) 커널 퓨징, 리사이징 및 인터리빙 자동 연산 방법
CN114026569A (zh) 使用脉动阵列的扩张卷积
US20160042246A1 (en) A haar calculation system, an image classification system, associated methods and associated computer program products
EP3425593A1 (en) Highly parallelizable algorithm for detecting intersections of shapes
CN105892895A (zh) 多指滑动手势的识别方法、装置及终端设备
US20150277609A1 (en) Touch data segmentation method of touch controller
Park et al. A vision processor with a unified interest-point detection and matching hardware for accelerating a stereo-matching algorithm
CN109298809A (zh) 一种触控动作识别方法、装置及终端设备
US9639073B2 (en) Information processing apparatus for discriminating between combined results of plurality of elements, program product and method for same
CN111724406A (zh) 一种区域连通合并方法、装置、设备和介质
US8522175B2 (en) Semiconductor circuit design supporting apparatus and method, and non-transitory computer-readable medium
KR101549213B1 (ko) 터치 스크린 상에서 터치 포인트를 검출하기 위한 장치 및 그 방법
JP2020525963A (ja) メディア特徴の比較方法及び装置
TWI613585B (zh) 區別非輸入接觸之技術
TWI474234B (zh) 觸控板之多點定位方法
US20150153904A1 (en) Processing method of object image for optical touch system
KR20150083378A (ko) 멀티 터치 정보를 이용한 제스쳐 인식 장치 및 제스쳐 인식 방법
KR20220022591A (ko) 터치센싱방법 및 장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170218

R150 Certificate of patent or registration of utility model

Ref document number: 6099234

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250