Tracking pointing device motion using a single buffer for cross and auto correlation determination
First Claim
1. A pointing device that produces an output signal indicative of a relative movement between at least a portion of the pointing device and an adjacent surface, comprising:
- (a) an imaging detector that produces a signal corresponding to an image of the adjacent surface;
(b) an electronic switch having a first input to receive the signal from the imaging detector, and a second input, said switch being operative to selectively couple one of the first input and the second input to an output;
(c) a sequential memory buffer having an input through which data are input for storage and an output through which data are transferred out of the sequential memory buffer, said input of the sequential memory buffer being coupled to the output of the electronic switch and said output of the sequential memory buffer being coupled to the second input of the electronic switch so that said input of the sequential memory buffer selectively receives data conveyed by either the signal from the imaging detector or the output of the sequential memory buffer, depending upon a state of the electronic switch; and
(d) a processing circuit that is coupled to the imaging detector to respond to the signal corresponding to the image, to the sequential memory buffer to selectively read data stored therein, and to the electronic switch, said processing circuit carrying out a logical process that;
(i) selectively controls a state of the electronic switch to selectively load the sequential memory buffer with data derived from the signal produced by the imaging detector in a first state and with data from the output of the sequential memory buffer in a second state;
(ii) uses the data in the sequential memory buffer for a reference frame and the signal from the imaging detector that comprises a comparison frame to calculate a cross correlation between the reference frame and the comparison frame; and
(iii) produces the output signal indicative of the relative movement between at least the portion of the pointing device and the adjacent surface as a function of the cross correlation.
5 Assignments
0 Petitions
Accused Products
Abstract
Cross correlation between a reference image frame and a comparison image frame determine the direction of motion relative to x and y orthogonal axes for a pointing device that uses optical imaging to monitor movement relative to a surface. Pixel data for a portion of the surface are loaded into a buffer memory that shifts the data between successive positions in the buffer memory as each pixel of a comparison frame is processed to compute cross correlation. Auto correlation is determined for positions in the reference frame and used with the cross correlation results to determine a sub-pixel interpolation for the movement of the pointing device. A new reference frame is loaded using data for the comparison frame currently being processed if the pointing device is moved sufficiently so that the next comparison frame will not overlap the existing reference frame.
165 Citations
52 Claims
-
1. A pointing device that produces an output signal indicative of a relative movement between at least a portion of the pointing device and an adjacent surface, comprising:
-
(a) an imaging detector that produces a signal corresponding to an image of the adjacent surface;
(b) an electronic switch having a first input to receive the signal from the imaging detector, and a second input, said switch being operative to selectively couple one of the first input and the second input to an output;
(c) a sequential memory buffer having an input through which data are input for storage and an output through which data are transferred out of the sequential memory buffer, said input of the sequential memory buffer being coupled to the output of the electronic switch and said output of the sequential memory buffer being coupled to the second input of the electronic switch so that said input of the sequential memory buffer selectively receives data conveyed by either the signal from the imaging detector or the output of the sequential memory buffer, depending upon a state of the electronic switch; and
(d) a processing circuit that is coupled to the imaging detector to respond to the signal corresponding to the image, to the sequential memory buffer to selectively read data stored therein, and to the electronic switch, said processing circuit carrying out a logical process that;
(i) selectively controls a state of the electronic switch to selectively load the sequential memory buffer with data derived from the signal produced by the imaging detector in a first state and with data from the output of the sequential memory buffer in a second state;
(ii) uses the data in the sequential memory buffer for a reference frame and the signal from the imaging detector that comprises a comparison frame to calculate a cross correlation between the reference frame and the comparison frame; and
(iii) produces the output signal indicative of the relative movement between at least the portion of the pointing device and the adjacent surface as a function of the cross correlation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for producing a signal indicative of a relative movement between at least a portion of a pointing device and an adjacent surface, comprising the steps of:
-
(a) imaging the adjacent surface to produce image data;
(b) sequentially storing the image data in a memory buffer, the image data stored in the memory buffer corresponding to a reference frame;
(c) acquiring successive pixels of a comparison frame by imaging the adjacent surface, as the relative movement occurs between at least the portion of the pointing device and the adjacent surface, so that it is unnecessary to store said comparison frame in a separate memory buffer;
(d) determining a cross correlation between the reference frame stored in the memory buffer and the successive pixels of the comparison frame; and
(e) as a function of the cross correlation, producing a signal indicative of the extent of the relative movement between at least the portion of the pointing device and the adjacent surface. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A user input device that is movable and which produces an output signal indicative of a movement of the user input device, for input to a computing device, comprising:
-
(a) a housing that is movable relative to a surface;
(b) an image sensor disposed in the housing and oriented so as to detect an image of the surface, producing a signal corresponding to pixel data for the image of the surface;
(c) a buffer memory in which pixel data for a reference frame are stored, pixel data for said reference frame being sequentially shifted through the buffer memory; and
(d) a processing circuit that is coupled to the image sensor and the buffer memory, said processing circuit implementing a plurality of functions, including;
(i) selectively loading the pixel data for the reference frame into the buffer memory;
(ii) determining a cross correlation between the reference frame and pixel data received from the image sensor as the user input device is moved over the surface, so that it is unnecessary to store the pixel data in a buffer memory prior to determining the cross correlation; and
(iii) based upon the cross correlation, determining the movement of the user input device over the surface, producing a corresponding output signal indicative of said movement. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A motion sensing circuit for detecting movement relative to a surface, comprising:
-
(a) an image sensor that produces a signal corresponding to pixel data for an image of the surface;
(b) a shift memory in which the pixel data are selectively loaded;
(c) a processing circuit that controls loading of pixel data into the shift memory and determines a cross correlation between the data previously loaded into the shift memory and pixel data for a subsequent image of the surface without first loading the pixel data for the subsequent image into a memory, the pixel data for successive pixels of the subsequent image being used to determine the cross correlation as the pixel data in the shift memory are sequentially moved through the shift memory, the relative movement being determined based upon the cross correlation thus determined. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44)
-
-
45. A method for determining a sub-pixel interpolation component for relative movement between an object and an adjacent surface, comprising the steps of:
-
(a) producing a signal corresponding to a pixelated image of the surface;
(b) storing a reference frame for the surface that includes data for each of a plurality of pixels of the pixelated image, said reference frame being stored in a memory buffer that enables the data to be shifted through the memory buffer a pixel at a time;
(c) as relative movement occurs between the object and the adjacent surface, producing a comparison frame that includes data for a plurality of pixels in a new pixelated image;
(d) determining a cross correlation between the data for the reference frame and the data for the comparison frame as successive pixels of the data for the comparison frame are read from the pixilated image corresponding to the comparison frame as said data for the reference frame are shifted through the memory buffer;
(e) determining an auto correlation of the data for the reference frame; and
(f) determining the sub-pixel interpolation component for the relative movement as a function of both the cross correlation and the auto correlation. - View Dependent Claims (46, 47, 48, 49)
-
-
50. A user controlled object that determines a sub-pixel interpolation component for relative movement between said object and an adjacent surface, comprising:
-
(a) a pixelated image sensor that produces a signal corresponding to pixels of an image of a surface;
(b) a memory in which data corresponding to the pixels of the image are stored, said data comprising a reference frame and being shifted through the memory;
(c) a processing circuit that is coupled to the memory and to the pixelated image sensor, said processing circuit implementing a plurality of functions, including;
(i) determining a cross correlation between the data for the reference frame stored in the memory and data for successive pixels of a comparison frame that corresponds to new data for the image of the surface, as the relative movement between the surface and the object occurs, said cross correlation being determined as successive pixels of the comparison frame are read from the pixelated image sensor and as pixels of the data for the reference frame are shifted through the memory;
(ii) determining an auto correlation using the data for the reference frame that is stored in the memory; and
(iii) determining the sub-pixel interpolation component for the relative movement as a function of both the cross correlation and the auto correlation. - View Dependent Claims (51, 52)
-
Specification