# US 8,570,305 B2 · Smoothing of touch input

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,570,305 B2
- Document ID: US8570305B2
- Status: Granted
- Kind: B2
- Application number: 12/498,864
- Filed: 2009-07-07
- Published: 2011-01-13
- Granted: 2013-10-29
- Earliest claimed: 2009-07-07
- Assignees: Microsoft Corporation
- Applicants: Eric Jorgensen
- Inventors: Eric Jorgensen
- Web page: https://patentgrep.com/patent/US8570305B2

## CPC

- G06F 3/04186: {Touch location disambiguation}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Smoothing of touch input is provided. One example method of smoothing touch input may include calculating an expected window of touch event positions for a current raw touch event position using previous raw touch event positions, and determining if the current raw touch event position is within the expected window of touch event positions. The method may further include, if the current raw touch event position is within the expected window of touch event positions, returning a distance-agnostic smoothed position. The method may also include, if the current raw touch event position is outside the expected window of touch event positions for longer than a tolerated duration, returning a distance-influenced smoothed position.

## Claims

### Claim 1

A method of smoothing touch input, the method comprising:
calculating an expected window of touch event positions for a current raw touch event position using previous raw touch event positions;
determining if the current raw touch event position is within the expected window of touch event positions; and
if the current raw touch event position is within the expected window of touch event positions, returning a distance-agnostic smoothed position; or
if the current raw touch event position is outside the expected window of touch event positions for longer than a tolerated duration, return a distance-influenced smoothed position calculated as a function of the current raw touch event position.

### Claim 2 (depends on 1)

The method of claim 1, where calculating the expected window of touch event positions includes calculating a first order expected window of touch event positions using a previous two touch event positions.

### Claim 3 (depends on 2)

The method of claim 2, where the first order expected window of touch event positions is 2x(t−Δt)−x(t−2Δt)±R(x(t−Δt)−x(t−2Δt)), where x(t−Δt) is a most recent raw touch event position, x(t−2Δt) is a second most recent raw touch event position, and R is a constant.

### Claim 4 (depends on 1)

The method of claim 1, where calculating the expected window of touch event positions includes calculating a second order expected window of touch event positions using a previous three touch event positions.

### Claim 5 (depends on 4)

The method of claim 4, where the second order expected window of touch event positions is
5
2
⁢
x
(
t
-
Δ
⁢
⁢
t
)
-
2
⁢
x
(
t
-
2
⁢
Δ
⁢
⁢
t
)
+
1
2
⁢
x
(
t
-
3
⁢
Δ
⁢
⁢
t
)
±
R
⁡
(
x
(
t
-
Δ
⁢
⁢
t
)
-
x
(
t
-
2
⁢
Δ
⁢
⁢
t
)
)
,
where x(t−Δt) is a most recent touch event position, x(t−2Δt) is a second most recent touch event position, x(t−3Δt) is a third most recent touch event position, and R is a constant.

### Claim 6 (depends on 1)

The method of claim 1, where the distance-influenced smoothed position is based on a distance between the current raw touch event position and a last-returned position.

### Claim 7 (depends on 6)

The method of claim 6, where the distance-influenced smoothed position has a component based on the current raw touch event position and a component based on the last-returned position.

### Claim 8 (depends on 7)

The method of claim 7, where the distance-influenced smoothed position is:
Last
(
1
-
1
RSpeed
+
D
RBright
)
+
Raw
(
1
RSpeed
+
D
RBright
)
,
where Last is the last-returned position, Raw is the current raw touch event position, D is the distance between the current raw touch event position and the last-returned position, RSpeed is a constant, and RBright is a constant.

### Claim 9 (depends on 1)

The method of claim 1, where the distance-agnostic smoothed position is based on the current raw touch event position and a last-returned position.

### Claim 10 (depends on 9)

The method of claim 9, where the distance-agnostic smoothed position is:
Last(1−S)+Raw(S),
where Last is the last-returned position, Raw is the current raw touch event position, and S is a constant.

### Claim 11 (depends on 1)

The method of claim 1, further comprising returning a last-returned position if the current raw touch event position is outside the expected window of touch event positions for less than the tolerated duration.

### Claim 12 (depends on 1)

The method of claim 1, where the tolerated duration is five frames.

### Claim 13

A method of smoothing touch input, the method comprising:
calculating a second order expected window of touch event positions using a previous three touch event positions;
determining if a current raw touch event position is within the second order expected window of touch event positions; and
if the current raw touch event position is within the second order expected window of touch event positions, returning a distance-agnostic smoothed position that is based on the current raw touch event position and a last-returned position; and
if the current raw touch event position is outside the second order expected window of touch event positions, determining if a set of most recent raw touch event positions have remained outside the second order expected window of touch event positions for longer than a tolerated duration; then
if the set of most recent raw touch event positions have not remained outside the second order expected window of touch event positions for longer than the tolerated duration, returning a last-returned position; or
if the set of most recent raw touch event positions have remained outside the second order expected window of touch event positions for longer than the tolerated duration, returning a distance-influenced smoothed position based on the current raw touch event position, a last-returned position, and a distance between the current raw touch event position and the last-returned position.

### Claim 14 (depends on 13)

The method of claim 13, where the second order expected window is
5
2
⁢
x
(
t
-
Δ
⁢
⁢
t
)
-
2
⁢
x
(
t
-
2
⁢
Δ
⁢
⁢
t
)
+
1
2
⁢
x
(
t
-
3
⁢
Δ
⁢
⁢
t
)
±
R
⁡
(
x
(
t
-
Δ
⁢
⁢
t
)
-
x
(
t
-
2
⁢
Δ
⁢
⁢
t
)
)
,
where x(t−Δt) is a most recent touch event position, x(t−2Δt) is a second most recent touch event position, x(t−3Δt) is a third most recent touch event position, and R is a constant.

### Claim 15 (depends on 13)

The method of claim 13, where the distance-influenced smoothed position is:
Last
(
1
-
1
Rspeed
+
D
RBright
)
+
Raw
(
1
Rspeed
+
D
RBright
)
where Last is the last-returned position, Raw is the current raw touch event position, D is the distance between the current raw touch event position and the last-returned position, RSpeed is a constant, and RBright is a constant.

### Claim 16 (depends on 13)

The method of claim 13, where the distance-agnostic smoothed position is:
Last(1−S)+Raw(S),
where Last is the last-returned position, Raw is the current raw touch event position, and S is a constant.

### Claim 17

A computing system, comprising:
a touch display;
an input module to recognize a touch event position of a touch input directed to the touch display;
a distance-agnostic module to return a distance-agnostic smoothed position if a current raw touch event position is within an expected window of touch event positions; and
a distance-influenced module to return a distance-influenced smoothed position if the current raw touch event position is outside the expected window of touch event positions for longer than a tolerated duration, the distance-influenced smoothed position being based on a distance between the current raw touch event position and a last-returned position.

### Claim 18 (depends on 17)

The computing system of claim 17, further comprising an outlier-ignore module to return the last-returned position if the current raw touch event position is outside the expected window of touch event positions for less than the tolerated duration.

### Claim 19 (depends on 17)

The computing system of claim 17, where the distance-agnostic smoothed position is:
Last(1−S)+Raw(S),
where Last is the last-returned position, Raw is the current raw touch event position, and S is a constant.

### Claim 20 (depends on 17)

The computing system of claim 17, where the distance-influenced smoothed position is:
Last
(
1
-
1
RSpeed
+
D
RBright
)
+
Raw
(
1
RSpeed
+
D
RBright
)
,
where Last is the last-returned position, Raw is the current raw touch event position, D is the distance between the current raw touch event position and the last-returned position, RSpeed is a constant, and RBright is a constant.
