IP Library Granted Patent US 8,730,187
Granted Patent B2
US 8,730,187 · App. 12/792,664 · Granted May 20, 2014

Techniques for sorting data that represents touch positions on a sensing device

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,730,187
App. No.
12/792,664
Granted
May 20, 2014
Kind
B2
Abstract

An apparatus includes a memory and a processing device comprising touch sorting logic. The touch sorting logic sorts the raw touch position data in two stages. In each of the stages, the touch sorting logic predicts the centroid positions for each touch of the plurality of touches, compares the predicted centroid positions for each touch and indexes the centroid position for each touch based on the predicted centroid position that is closest to the raw touch position data. The sorted touch position data is sorted according to the touch index assigned to each of the centroid positions for each of the plurality of touches.

Claims (61)

1. A method, implemented by a processing device programmed to perform the following, the method comprising:

receiving raw touch position data representing positions of a plurality of touches on a sensing device, wherein the raw touch position data comprises a centroid position for each of the plurality of touches at discrete points in time;

sorting the raw touch position data, into sorted touch position data, according to a touch index assigned to each of the centroid positions for each of the plurality of touches at the discrete points in time, wherein the sorting is performed in at least two stages, and wherein in each of the at least two stages the sorting comprises:

predicting the centroid positions for each touch of the plurality of touches;

comparing the predicted centroid positions for the each touch of the plurality of touches to the raw touch position data;

indexing the centroid position for the each touch of the plurality of touches based on the predicted centroid position, of the each touch, that is closest to the raw touch position data;

wherein the sorted touch position data is sorted according to the touch index assigned to each of the centroid positions for each of the plurality of touches; and

tracking the plurality of touches on the sensing device using the sorted touch position data.

2. The method of claim 1 , wherein said tracking comprises processing the sorted touch position data corresponding to each of the plurality of touches individually on a touch-by-touch basis for at least one of cursor movement and gesture detection.

3. The method of claim 1 , further comprising recognizing a gesture based on said tracking.

4. The method of claim 1 , wherein said tracking comprises filtering the sorted touch position data, wherein the sorted touch position data corresponding to each of the plurality of touches is filtered individually.

5. The method of claim 4 , wherein said filtering the sorted touch position data comprises filtering the sorted touch position data using an infinite impulse response (IIR) low pass filter.

6. The method of claim 4 , wherein said filtering the sorted touch position data comprises filtering the sorted touch position data using a median filter.

7. The method of claim 4 , wherein said filtering the sorted touch position data comprises filtering the sorted touch position data using an error detection filter.

8. The method of claim 1 , wherein said receiving the raw data comprises receiving a plurality of samples of centroid positions at discrete points in time, each centroid position corresponding to a position of the plurality of touches at the respective discrete point in time, and wherein said sorting comprises:

assigning one of the touch indexes to each of the centroid positions of a first sample based on a scan order;

determining distances between the centroid positions of the first sample and centroid positions of a second sample;

assigning one of the touch indexes to each of the centroid positions of the second sample based on the closest centroid position from the first sample;

determining distances between the centroid positions of a third sample and predicted centroid positions based on velocities of the plurality of touches computed from the centroid positions of the first and second samples; and

assigning one of the touch indexes to each of the centroid positions of the third sample based on the closest predicted centroid position.

9. The method of claim 8 , wherein said sorting further comprises:

calculating a velocity for each of the plurality of touches using the respective centroid positions of the first and second samples; and

predicting a third centroid position for each of the plurality of touches using the respective velocity.

10. The method of claim 8 , wherein said sorting further comprises:

determining distances between the centroid positions of a fourth sample and predicted centroid positions based on angular velocities of the plurality of touches computed from the centroid positions of the first, second, and third samples; and

assigning one of the touch indexes to each of the centroid positions of the fourth sample based on the closest predicted centroid position.

11. The method of claim 10 , wherein said sorting further comprises:

calculating an angular velocity for each of the plurality of touches using the respective centroid positions of the first, second, and third samples; and

predicting a fourth position for each of the plurality of toches using the respective angular velocity.

12. The method of claim 10 , wherein said sorting further comprises:

determining distances between the centroid positions of a fifth sample and predicted centroid positions based on angular velocities of the plurality of touches computed from the centroid positions of at least three of the first, second, third, and fourth samples; and

assigning one of the touch indexes to each of the centroid positions of the fifth sample based on the closest predicted centroid position.

13. The method of claim 1 , wherein said sorting comprises three stages, and wherein said sorting comprises:

during a first stage, calculating first distance measurements between the centroid positions at a first discrete point in time and the centroid positions at a second point in time to associate the touch index of the centroid positions at the first discrete point in time with the centroid positions at the second discrete point in time;

during a second stage, calculating second distance measurements between the centroid positions at a third discrete point in time and predicted centroid positions based on a respective velocity of each of the plurality of touches; and

during a third stage, calculating third distance measurements between the centroid positions at a fourth discrete point in time and predicted centroid positions based on a respective angular velocity of each of the plurality of touches.

14. The method of claim 13 , further comprising:

receiving additional raw touch position data, including centroid positions of an additional touch, during the second or third stage; and

processing the additional raw touch position data at the first stage while processing the raw touch position data at the second or third stage.

15. A computer-readable storage medium having instructions, which when executed, cause a processing device to perform a method, the method comprising:

receiving raw touch position data representing positions of a plurality of touches on a sensing device, wherein the raw touch position data comprises a centroid position for each of the plurality of touches at discrete points in time;

sorting the raw touch position data, into sorted touch position data, according to a touch index assigned to each of the centroid positions for each of the plurality of touches at the discrete points in time, wherein the sorting is performed in at least two stages, and wherein in each of the at least two stages the sorting comprises:

predicting the centroid positions for each touch of the plurality of touches;

comparing the predicted centroid positions for the each touch of the plurality of touches to the raw touch position data;

indexing the centroid position for the each touch of the plurality of touches based on the predicted centroid position, of the each touch, that is closest to the raw touch position data;

wherein the sorted touch position data is sorted according to the touch index assigned to each of the centroid positions for each of the plurality of touches; and

tracking the plurality of touches on the sensing device using the sorted touch position data.

16. The computer-readable storage medium of claim 15 , further comprising processing the sorted touch position data corresponding to each of the plurality of touches individually on a touch-by-touch basis for at least one of cursor movement and gesture detection.

17. The computer-readable storage medium of claim 15 , wherein said receiving the raw data comprises receiving a plurality of samples of centroid positions at discrete points in time, each centroid position corresponding to a position of the plurality of touches at the respective discrete point in time, and wherein said sorting comprises:

assigning one of the touch indexes to each of the centroid positions of a first sample based on a scan order;

determining distances between the centroid positions of the first sample and centroid positions of a second sample;

assigning one of the touch indexes to each of the centroid positions of the second sample based on the closest centroid position from the first sample;

determining distances between the centroid positions of a third sample and predicted centroid positions based on velocities of the plurality of touches computed from the centroid positions of the first and second samples; and

assigning one of the touch indexes to each of the centroid positions of the third sample based on the closest predicted centroid position.

18. The computer-readable storage medium of claim 17 , wherein said sorting further comprises:

determining distances between the centroid positions of a fourth sample and predicted centroid positions based on angular velocities of the plurality of touches computed from the centroid positions of the first, second, and third samples; and

assigning one of the touch indexes to each of the centroid positions of the fourth sample based on the closest predicted centroid position.

19. An apparatus, comprising:

a memory; and

a processing device, coupled to the memory, comprising touch sorting logic, wherein the touch sorting logic is configured to receive raw touch position data representing positions of a plurality of touches on a sensing device, wherein the raw touch position data comprises a centroid position for each of the plurality of touches at discrete points in time, wherein the touch sorting logic is further configured to sort the raw touch position data, into sorted touch position data, according to a touch index assigned to each of the centroid positions for each of the plurality of touches at the discrete points in time, wherein the touch sorting logic is further configured to sort the raw touch position data in at least two stages, wherein in each of the at least two stages the touch sorting logic predicts the centroid positions for each touch of the plurality of touches, compares the predicted centroid positions for the each touch of the plurality of touches to the raw touch position data, and indexes the centroid position for the each touch of the plurality of touches based on the predicted centroid position, of the each touch, that is closest to the raw touch position data, wherein the sorted touch position data is sorted according to the touch index assigned to each of the centroid positions for each of the plurality of touches, and wherein the touch sorting logic is further configured to track the plurality of touches on the sensing device using the sorted touch position data.

20. The apparatus of claim 19 , wherein the processing device further comprises a filter coupled to the touch sorting logic, wherein the filter is configured to individually filter the sorted touch position data corresponding to each of the plurality of touches.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTERST. Recorded Nov 3, 2020
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058002/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2015
From: CYPRESS SEMICONDUCTOR CORPORATION
To: PARADE TECHNOLOGIES, LTD.
Reel/Frame 036508/0284 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS AND TRADEMARKS Recorded Aug 4, 2015
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: CYPRESS SEMICONDUCTOR CORPORATION
Reel/Frame 036264/0114 →
SECURITY INTEREST Recorded Mar 21, 2015
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035240/0429 →
PATENT SECURITY AGREEMENT Recorded Aug 28, 2012
From: CYPRESS SEMICONDUCTOR CORPORATION
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 028863/0870 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2010
From: WILSON, COLE D.; OLSON, DANA JON
To: CYPRESS SEMICONDUCTOR CORPORATION
Reel/Frame 024475/0949 →