Filtering stylus strokes
First Claim
1. A computer-implemented method for displaying a line corresponding to contact between a stylus and a device, the method comprising:
- determining a plurality of input events corresponding to a stroke input, the plurality of input events corresponding to multiple points of contact on a display of the device, each of the multiple points of contact having respective coordinates at which the display detects contact;
identifying some of the plurality of input events as first input events, the first input events including a selected input event;
identifying some of the plurality of input events as second input events, the second input events occurring at times prior to a time of the selected input event;
determining a second velocity of the stroke input based on the second input events;
determining a first velocity of the stroke input based on the first input events;
determining a second velocity of the stroke input based on the second input events;
selecting a first cutoff frequency of a first filter based on the first average velocity;
selecting a second cutoff frequency of a second filter based on the second average velocity;
removing high frequency components of the plurality of input events using the first filter to generate first filtered inputs, the high frequency components having a frequency above the first cutoff frequency;
removing high frequency components of the plurality of input events using the second filter to generate second filtered inputs, the high frequency components having a frequency above the second cutoff frequency;
generating a first output including the first filtered inputs, the first output being a first filtered version of the stroke input;
displaying the output on the touchscreen display; and
replacing portions of the first output originally corresponding to the first filtered inputs with the second filtered inputs to create a second filtered version of the stroke input.
1 Assignment
0 Petitions
Accused Products
Abstract
Devices, systems and methods are disclosed for processing stylus interactions with a device and drawing the results of those interactions in a manner that reduces noise and latency. This includes selecting a filter based on a velocity of an input, the velocity determined by comparing coordinates and timestamps associated with the input events. A first filter may be determined using previous input events to reduce latency and a second filter may be determined using previous and subsequent input events to improve accuracy of the filter selection. An output may be generated using the first filter and/or the second filter to combine the benefits of the reduced latency and the increased accuracy.
2 Citations
25 Claims
-
1. A computer-implemented method for displaying a line corresponding to contact between a stylus and a device, the method comprising:
-
determining a plurality of input events corresponding to a stroke input, the plurality of input events corresponding to multiple points of contact on a display of the device, each of the multiple points of contact having respective coordinates at which the display detects contact; identifying some of the plurality of input events as first input events, the first input events including a selected input event; identifying some of the plurality of input events as second input events, the second input events occurring at times prior to a time of the selected input event; determining a second velocity of the stroke input based on the second input events; determining a first velocity of the stroke input based on the first input events; determining a second velocity of the stroke input based on the second input events; selecting a first cutoff frequency of a first filter based on the first average velocity; selecting a second cutoff frequency of a second filter based on the second average velocity; removing high frequency components of the plurality of input events using the first filter to generate first filtered inputs, the high frequency components having a frequency above the first cutoff frequency; removing high frequency components of the plurality of input events using the second filter to generate second filtered inputs, the high frequency components having a frequency above the second cutoff frequency; generating a first output including the first filtered inputs, the first output being a first filtered version of the stroke input; displaying the output on the touchscreen display; and replacing portions of the first output originally corresponding to the first filtered inputs with the second filtered inputs to create a second filtered version of the stroke input. - View Dependent Claims (2, 3)
-
-
4. A computer-implemented method, comprising:
-
determining a plurality of input events corresponding to a stroke input, the plurality of input events corresponding to multiple points of contact on a display of a device, each of the multiple points of contact having respective coordinates at which the display detects contact; identifying some of the plurality of input events as first input events, the first input events including a selected input event; identifying some of the plurality of input events as second input events, the second input events occurring at times prior to a time of the selected input event; determining a first velocity of the stroke input based on the first input events; determining a second velocity of the stroke input based on the second input events; selecting a first cutoff frequency of a first filter based on the first velocity selecting a second cutoff frequency of a second filter based on the second velocity; removing first high frequency components of the plurality of input events using the first filter to generate first filtered inputs, the first high frequency components having a frequency above the first cutoff frequency; removing second high frequency components of the plurality of input events using the second filter to generate second filtered inputs, the second high frequency components having a frequency above the second cutoff frequency; generating a first output including the first filtered inputs; generating a second output including the second filtered inputs; displaying the first output on the device; and replacing portions of the first output originally corresponding to the first filtered inputs with the second filtered inputs. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computing device, comprising:
-
a touchscreen; at least one processor; a memory device including instructions operable to be executed by the at least one processor to cause the device to; determine a plurality of input events corresponding to a stroke input, the plurality of input events corresponding to multiple points of contact on the touchscreen, each of the multiple points of contact having respective coordinates at which the touchscreen detects contact; identify some of the plurality of input events as first input events, the first input events including a selected input event; identify some of the plurality of input events as second input events, the second input events occurring at times prior to a time of the selected input event determine a first velocity of the stroke input based on the first input events; determine a second velocity of the stroke input based on the second input events; select a first cutoff frequency of a first filter based on the first velocity select a second cutoff frequency of a second filter based on the second velocity; remove high frequency components of the plurality of input events using the first filter to generate first filtered inputs, the high frequency components having a frequency above the first cutoff frequency; remove high frequency components of the plurality of input events using the second filter to generate second filtered inputs, the high frequency components having a frequency above the second cutoff frequency; generate a first output including the first filtered inputs; generate a second output including the second filtered inputs; display the first output on the device; and replace portions of the first output originally corresponding to the first filtered inputs with the second filtered inputs. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
Specification