Multi-mode optical navigation

A system and method is provided for selecting a light source in a pointing device such as a mouse. The selection of the light source may be based on attributes of a received image, which are in turn based on reflected light received at the pointing device from the tracking surface. Because the attributes of the receive image are related to characteristics of the tracking surface over which the pointing device is moved, an illumination source appropriate for a particular surface type can be chosen.

BACKGROUND

Measuring motion in two or more dimensions is extremely useful in numerous applications. Computer input devices such as mice are but one example. In particular, a computer mouse typically provides input to a computer based on the amount and direction of mouse motion over a work surface (e.g., a desk top). Many existing mice employ an imaging array for determining movement. As the mouse moves across the work surface, small overlapping work surface areas are imaged. Processing algorithms within the mouse firmware then compare these images (or frames). The relative motion of the work surface can then be calculated by comparing surface features common to overlapping portions of adjacent frames.

Imaging can be performed in various ways. One imaging method involves grazing illumination in which light from an LED strikes a surface at a relatively shallow angle. The LED light beam striking the surface at the relatively shallow angle is reflected back to a light sensor. Features on the surface generate shadows, and an image frame composed of such shadows can be compared with other image frames to calculate direction and amount of motion.

Another imaging method utilizes specular illumination. In this method, a highly focused LED or a coherent light source (e.g., a laser) strikes a surface at a less shallow or “deep” angle with respect to the surface being imaged.

Each of the above described techniques works better for certain types of surfaces. For example, a specular light source providing an incident light beam at a deep angle with respect to a surface usually provides better tracking images if the surface is glossy or highly reflective. However, specular-image tracking may not work as well if the surface is non-glossy or not highly reflective. Conversely, tracking based on images from a grazing illumination light source is generally more effective if the surface is not highly reflective and/or relatively rough.

SUMMARY

In at least some embodiments, an input device can select an illumination source and corresponding tracking algorithm for generating an image and providing improved tracking for a particular surface. In one example, an input device is provided for tracking a tracking surface and includes a controller for selecting a light source based on an attribute of a received image from a tracking surface. For example, the input device may include at least two light sources for illuminating a surface external to the input device and track motion of the input device over the surface. Also, the input device may select a light source for providing illumination based on a detected attribute of the surface. In one example, the attribute includes one of image contrast and illumination.

DETAILED DESCRIPTION

Various exemplary embodiments will be described in the context of a tracking system used to measure movement of a computer mouse relative to a desk top or other work surface. However, the invention is not limited to implementation in connection with a computer mouse. Indeed, the invention is not limited to implementation in connection with a computer input device.

FIG. 1shows a computer mouse200according to at least one exemplary embodiment. Computer mouse200includes a housing212having an opening214formed in a bottom face216. Bottom face216is movable across a work or tracking surface218. For simplicity, a small space is shown between bottom face216and work surface218inFIG. 1. In practice, however, bottom face216may rest flat on surface218. Located within mouse200is a printed circuit board (PCB)220. Positioned on an underside of PCB220is a first light source223. In the embodiment ofFIG. 1, first light source223is an LED. The first light source223directs a beam225at a portion of surface218visible through opening214. Beam225, which may include light of a visible wavelength and/or light of a non-visible wavelength, strikes tracking surface218and is reflected into an array226of a motion sensing integrated circuit (IC)228.

Beam225from the first light source223provides grazing illumination such that the beam225strikes the tracking surface218at a relatively shallow angle (i.e., angle A as illustrated inFIG. 1). Angle A is a relatively small angle such that the beam225“grazes” the tracking surface218. For example, angle A may be approximately 20°. In another example, angle A may have other values less than 30° (e.g., 28°, 26°, 25°, 23°, 20°, 19°, 18°, 17°, 16°, 15°, 14°, 13°, 12°, 11°, 10°, 9°, 8°, 7°, 6°, 5°, etc.). Angle A could also be greater than 30° (e.g., 31°, 32°, 33°, 34°, 35°, 36°, 37°, etc.). The grazing illumination from the first light source223creates an image pattern that is reflected into and detected by the array226. For example, if the tracking surface218is a non-glossy surface, the first light source223may generate shadows among surface features of an illuminated portion of tracking surface218.

In the embodiment ofFIG. 1, grazing light source223is an LED. In other embodiments, a laser can be used as a grazing light source. A diffuser, spreader or other optical elements can be interposed between a grazing light source (whether LED or laser) and the tracking surface.

The mouse200further includes a second light source222positioned underneath the PCB220. In the embodiment ofFIG. 1, the second light source222is a vertical cavity surface emitting laser (VCSEL). When activated, the second light source222directs a beam224at a portion of surface218visible through opening214. In the embodiment ofFIG. 1, the second light source222is positioned to emit light beam225to strike a point on the tracking surface218that is coincident with beam225from the first light source223. However, this need not be the case. Similar to beam225from the first light source223, light beam224from the second light source222may include light of a visible wavelength and/or light of a non-visible wavelength. Light from beam224strikes tracking surface218and is reflected into array226of motion sensing integrated circuit (IC)228.

Light beam224from the second light source222strikes the tracking surface218at an angle that is different from the angle formed by the light beam225from the first light source223. As set forth above, the light beam225from the first light source223is a grazing light beam and forms an angle A that is relatively shallow relative to the tracking surface218. The light beam224from the second light source222strikes the tracking surface218at an angle B that is larger than angle A. In other words, light beam224from the second light source222is more normal (i.e., closer to being perpendicular) to the tracking surface218. However, light beam224from the second light source222need not actually be perpendicular to the tracking surface218. As illustrated inFIG. 1, light beam224may in some embodiments be within approximately 5-30 degrees of normal (perpendicular) to the tracking surface. In one embodiment, the light beam224from the second light source strikes the tracking surface such that the light beam224forms an angle with the normal axis (i.e., perpendicular orientation with respect to the tracking surface218) that is approximately 20°. In other embodiments, the angle relative to the normal axis has other values less than 30° (e.g., 28°, 26°, 25°, 23°, 21°, 19°, 18°, 17°, 16°, 15°, 14°, 13°, 12°, 11°, 10°, etc.). In yet other embodiments, the angle with the normal axis is greater than 30° (e.g., 31°, 32°, 33°, 34°, 35°, 36°, 37°, 38°, 39°, etc.).

The second light source222provides specular illumination in which the light reaching array226has, when the portion of tracking surface218illuminated by light source222is sufficiently glossy or otherwise has the proper characteristics, a high frequency pattern of bright and dark regions. That high frequency pattern is the result of the specular illumination and reflection from the surface variations of the tracking surface, and generally causes the intensity of light falling on different parts of array226to vary. These patterns allow tracking motion of surface218relative to mouse200.

In the embodiment ofFIG. 1, specular light source222is a VCSEL. Other types of laser sources could be used for the specular light source. Indeed, specular light source222is not a laser in some embodiments. For example, some embodiments utilize a highly collimated non-coherent LED as a specular light source. As also seen in the embodiment ofFIG. 1, angles A and B of beams225and224, respectively are achieved by positioning of the light sources222and222such that the beams are emitted from those sources at the desired orientation. In other embodiments, light source223and/or222may have a different orientation within mouse200. In such an embodiment, the desired angle A and/or the desired angle B are achieved by routing the light source output through one or more light guides, prisms and/or other optical elements.

FIG. 2shows tracking surface218. In this example, the tracking surface218contains at least two types of surfaces (90,91). Surface90is a glossy surface having a high reflectivity. Surface91is a surface that is less reflective or glossy than surface90. Grazing illumination may provide improved imaging over surface91whereas specular illumination or illumination striking the tracking surface218at a more normal angle may provide improved imaging over surface90. As an input device is tracked over tracking surface218(portion90or91), mouse200provides illumination using a method that is better suited for the type of surface being tracked. For example, if the mouse200is tracked over portion91, the first light source223provides grazing illumination at a relatively shallow angle to the tracking surface. Conversely, when the mouse200ofFIG. 1is tracked over portion90, the second light source222provides illumination via a light beam that strikes the portion90at a more normal (i.e., more perpendicular) angle to the tracking surface218as compared to the angle of the first light source223.

A light source (and a corresponding tracking algorithm to be performed by IC228) can be chosen in various manners. In some cases, a light source and corresponding tracking algorithm may be selected based on a selection criteria. The selection criteria may be any criteria or signal such as a manual input (e.g., a switch position or other user input) or automatic selection based on other selection criteria pertaining to the device or tracking surface. In some cases, the illumination method (and corresponding tracking algorithm) used in the mouse200may be changed or switched manually. In particular, the mouse200may include a manual switch255which a user may activate to switch from one light source and tracking algorithm to another light source and tracking algorithm. Manual switching can be used, e.g., when a user intends to operate mouse200on a surface that is entirely composed of a surface type suitable for grazing illumination (e.g., an unvarnished wood desk top) or on a surface that is entirely composed of a surface type suitable for specular illumination (e.g., a varnished and polished wood surface). Placing switch255in one position causes mouse200to solely illuminate with the first light source223and to use a corresponding tracking algorithm. Placing switch255in a second position causes mouse200to illuminate solely with second light source222and to use another corresponding tracking algorithm. Placing switch255in a third position causes mouse200to automatically select the best illumination method and corresponding tracking algorithm. As described in more detail below, mouse200can automatically select the best illumination source (and corresponding tracking algorithm) based on attributes of light received by array226. In other embodiments, mouse200does not have a switch255, and illumination method is always selected automatically. In yet other embodiments, no automatic illumination selection is performed. In some such embodiments, switch255is only a two position switch, with each position selecting one of two available illumination methods.

FIG. 3is a partially schematic block diagram of IC228. Array226of IC228includes a plurality of pixels p. Each pixel p is a photodiode or other photosensitive element which has an electrical property that varies in relation to the intensity of received light. For simplicity, only nine pixels are shown inFIG. 3. Array226may have many more pixels, and those pixels may be arranged in a variety of different ways. At multiple times, each pixel outputs a signal (e.g., a voltage). The raw pixel output signals are amplified, converted to digital values and otherwise conditioned in processing circuitry34. Processing circuitry34then forwards data corresponding to the original pixel output signals for storage in RAM36. Computational logic38then accesses the pixel data stored in RAM36and calculates motion based on that data. Computational logic38employs one algorithm for tracking motion when illumination is from first source223and a different motion tracking algorithm illumination is from second source222.

In one example, the same array may be used for detecting and characterizing different types of illumination. For example, if a first light source provides grazing illumination and a second light source provides specular illumination, one array may be used to detect both types of illumination. In another example, a different array may be used for detecting and characterizing different types of illumination. For example, a first light source may provide grazing illumination that is detected by a first sensor and a second light source may provide specular illumination that is detected by a second sensor. In this example, the first sensor does not detect specular illumination and the second sensor does not detect the grazing illumination. In yet another example, both any number of types of illumination may be detected by an array in which the array determines a configuration corresponding to the received illumination or light. For example, an array may have a corresponding configuration including pixel size, number of pixels, etc. in which a particular type of illumination may be detected and recognized. Various algorithms are known for tracking motion based grazing illumination images and for tracking motion based on specular illumination images, and the details of such algorithms are therefore omitted. Similarly, and because numerous specific circuits for capturing values from a set of photosensitive pixels are known in the art, additional details of IC228are also omitted. Notably,FIG. 3generally shows basic elements of circuitry for processing, storing and performing computations upon signals obtained from an array. Numerous other elements and variations on the arrangement shown inFIG. 3are known to persons skilled in the art. For example, some or all of the operations performed in processing circuitry34could be performed within circuit elements contained within each pixel. At least some herein-described embodiments are directed to details of calculations, performed within computational logic38, for determining which illumination source (and corresponding tracking algorithm) to select. Adaptation of known circuits to include the necessary pixel arrangements and perform such calculations (together with motion tracking algorithm computations and other computations) are within the routine abilities of persons of ordinary skill in the art once such persons possess the information provided herein.

As also shown inFIG. 3, light sources222and223are controlled by IC228. Specifically, IC228selectively activates and deactivates light sources222and223. For simplicity,FIGS. 1 and 3only illustrate two light sources; however, any number of light sources may be controlled by IC228. The computational logic38selects the light source and activates the selected light source to provide illumination to the tracking surface. In one example, light received and detected at array226is processed in the processing circuitry34so as to determine whether to continue using a currently active illumination source or whether to change to another source. Based on attributes of the received light, the computational logic38selects the appropriate one of light sources223or222. Selection and activation or deactivation of light sources based on input signals received at the array226are described in more detail below.

FIG. 4is a partially schematic diagram of array226taken from the position indicated inFIG. 1. For convenience, pixels in array226are labeled p(r,c) inFIG. 4where r and c are (respectively) the indices of the row and column where the pixel is located relative to the x and y axes. In the embodiment ofFIGS. 1 through 4, array226is a q by q array, where q is an integer. The unnumbered squares inFIG. 4correspond to an arbitrary number of additional pixels. In other words, and notwithstanding the fact thatFIG. 4literally shows a ten pixel by ten pixel array, q is not necessarily equal to ten in all embodiments. Indeed, array26need not be square. In other words, array26could be a q by q′ array, where q≠q′.

As set forth above, the mouse200ofFIG. 1is capable of switching manually or automatically from one light source to another light source. The mouse200may track a tracking surface218containing multiple different types of surfaces as illustrated inFIG. 2. The tracking surface218, for example, may contain a first portion91that is not highly reflective and a second portion90that is highly reflective. When the mouse200tracks over the first portion91of the work surface218, the first light source223may produce a light incident on the work surface218for grazing illumination. Hence, the first light source223directs a beam225at the first portion91of work surface218visible through opening214. When the mouse is tracked over the second portion90of the tracking surface218, the mouse200may deactivate the first light source223and activate the second light source222such that illumination is now provided by the second light source at a more normal (i.e., closer to perpendicular) angle with respect to the tracking surface218. In the embodiment ofFIGS. 1-4, only one of light sources222and223is emitting light at a time (except for brief overlap periods when switching between light sources). Which light source emits light is determined by attributes of light received in array226.

One example of such an attribute is the amount of light (or the illumination level) received by array226. The illumination level, which can be gauged based on the overall output of pixels in array226, may depend on many factors (e.g., intensity of the illumination source, exposure time, the optical path between the illumination source and the array, etc.). However, for a given mouse having a known combination of components and activating a known light source for a known period of time, illumination level can generally be used to indicate what type of surface is being struck with that light source. For example, a laser striking a glossy or highly reflective surface will usually result in a higher illumination level than might result from a laser striking a non-glossy/lesser reflective surface. Similarly, an LED striking a rough surface at a grazing angle will usually result in a higher illumination level than might result from that LED striking a glossy or highly reflective surface.

The illumination source may be pre-determined and set to a fixed value, and the sensor may adjust. In this example, the sensor may adjust by changing the integration time. The amount of light each illumination source and corresponding sensor receives may thus depend on the configuration. In one example, an LED-based glancing illumination method has shallow angle illumination, with the sensor positioned directly above the illuminated area (normal to surface). In this case, a relatively rough and diffuse surface may appear bright because the light is being more uniformly scattered from the surface in all directions. If, however, the surface is relatively shiny, then much of the light striking the surface may be reflected directly along the specular angle. In this case, relatively little light reflects straight up to the sensor. Therefore, in this case, the surface may appear darker to the sensor (from less light received). In yet another example, the illumination source and sensor may be positioned directly on the specular angle. In this case, relatively shiny surfaces may get the most light back to the sensor and diffuse surfaces may get the least light back to the sensor.

A predetermined threshold may be set such that when an illumination level is above the predetermined threshold with a selected light source, that light source may continue to be used by the mouse or other input device to image a tracking surface. For example, if the illumination level is above the predetermined threshold level when an LED light source is used for grazing illumination, the use of the LED light source may continue to be used in tracking the surface. When the illumination level drops below the predetermined threshold, however, the mouse or other input device may switch from the LED light source to a different light source so that the illumination threshold may increase to a level above the predetermined threshold. For example, if an LED light source is being used in grazing illumination and the illumination level drops below the predetermined threshold level, then the mouse or other input device may switch to a laser light source for specular imaging such that the illumination level rises above the predetermined threshold level. The actual threshold values may be different for different types of illumination (e.g., different for LED illumination, laser illumination, etc.). Also the threshold values may be set to any desired level so that improved imaging may be accomplished on a variety of different types of surfaces.

Image contrast is another attribute of light received at array226which can be used to determine light source and tracking method. In one example, image contrast may be determined using auto-correlation. For example,FIG. 4illustrates an example of an array of pixels arranged in X rows and Y columns. For illustration purposes, the pixels are labeled inFIG. 4as p(x, y), where the x and y parameters indicate the row and column of the pixel, respectively, within the array.

As illustrated in the example ofFIG. 4, each non-edge pixel (i.e., each pixel that is not on an edge of the array) is surrounded by 8 neighboring pixels. For example, pixel p(2,2) inFIG. 4is surrounded by pixels p(1,1), p(1,2), p(1,3), p(2,1), p(2,3), p(3,1), p(3,2), and p(3,3). In general, and as shown inFIG. 4for an arbitrary location in array226, each non-edge pixel p(x,y) is surrounded by eight other pixels as follows:

An adjacent pixel or neighboring pixel may be described generally by p(x+i, y+j), where i and j can each be −1, 0, or 1. A difference between any pixel in an image frame and one of its neighboring pixels may be determined by Equation 1.
Diff(i,j)=Out[p(x,y)]−Out[p(x+i,y+j)]  Equation 1

In Equation 1, Out[p(x,y)] and Out[p(x+i, y+j)] are the digitized outputs of pixels p(x,y) and p(x+i,y+j), respectively. In at least one embodiment, a difference between pixel outputs alternately may be expressed as an absolute value of a difference (shown in Equation 2) or as a difference squared (Equation 3).
Diff(i,j)=ABS[Out[p(x,y)]−Out[p(x+i,y+j)]]2Equation 2
Diff(i,j)=[Out[p(x,y)]−Out[p(x+i,y+j)]]2Equation 3

Using Equation 2 or Equation 3, the differences between all non-edge pixels in array226ofFIG. 4and their respective i,j neighbors can be expressed as shown in Equation 4 or Equation 5.

AC in Equations 4 and 5 represents an autocorrelation value. Equations 4 and 5 are only two examples of manners in which an autocorrelation values may be obtained. Other techniques for calculating an autocorrelation value could be employed.

Using all combinations of i and j between −1 and 1, eight autocorrelation values may be obtained for a given image frame: AC(−1,−1), AC(−1,0), AC(−1,1), AC(0,−1), AC(0,1), AC(1,−1), AC(1,0), AC(1,1). Because AC(0,0) is a comparison of a pixel to itself, it would be expected to have a value of zero, and is thus ignored. The AC values are then used to calculate image contrast. For example, an image with poor or low contrast would have relatively low AC values; an image with high contrast would have relatively high AC values. A contrast metric can be calculated with the AC values. As one example, the contrast metric may be an average of the eight AC values associated with a given image.

In at least some embodiments, the choice of illumination source is determined by evaluating both the illumination level and the image contrast.FIG. 5is a flowchart that illustrates an example of determining an illumination method based on the illumination level and contrast of a received image. In STEP701, a default illumination source (and corresponding tracking algorithm) is selected. For example, the default illumination source in mouse200may be set to LED223, and a tracking algorithm corresponding to grazing illumination employed. Alternatively, the default illumination source may be set to VCSEL222, and a tracking algorithm corresponding to specular illumination employed.

In STEP702, the illumination level is determined. In STEP703, the detected illumination level is compared to a predetermined threshold value for illumination. If the value from STEP702is higher than the predetermined threshold value, then the default illumination source and the corresponding tracking algorithm (STEP704) may be used. After waiting a delay time T (STEP708), the illumination level may be detected again (STEP702) to determine if the illumination level has changed relative to the predetermined threshold value. If the value is lower than the predetermined threshold, then the contrast is determined (STEP705). In determining the contrast, AC values may be determined and used in a metric as described above. The contrast is compared to a threshold value (STEP706). If the contrast is less than a predetermined threshold value, then the illumination source and tracking algorithm are changed (STEP707). However, if the contrast is higher than the predetermined contrast threshold value, then use of the default illumination method and tracking algorithm are continued (STEP704). After the illumination source and tracking algorithm are changed in STEP707, further changes in the illumination level may be detected (STEP702). As illustrated in this example, after waiting a delay time T (STEP709), further changes in the illumination level may be detected.

In an alternative method, the illumination method and tracking algorithm may be switched when either the illumination level or the contrast falls below a predetermined threshold.FIG. 6is a flowchart illustrating one example of such a method. In STEP801, a default illumination method and corresponding tracking algorithm are selected. Based on the default illumination method, the illumination level of a tracking surface is detected (STEP802). For example, if an LED and grazing illumination is selected as the default illumination method, the illumination of the tracking surface based on grazing illumination from the LED light source is calculated. The calculated illumination level is compared to a predetermined threshold illumination level (STEP803). If the calculated illumination level is less than the predetermined threshold illumination level, then the illumination method and tracking algorithm are switched to an alternative illumination method and tracking algorithm (STEP804). After waiting a delay time T (STEP808), subsequent changes in the illumination method may be detected (STEP802).

If in STEP803the detected illumination level based on the default illumination method is higher than the predetermined threshold, then the image contrast of the tracking surface is calculated (STEP805) and compared to a predetermined threshold contrast value (STEP806). Contrast can be calculated using autocorrelation as described above. If the calculated image contrast is less than the predetermined threshold contrast levels, then the illumination method and tracking algorithm are changed (STEP804). After waiting a delay time T (STEP808), the process may repeat to determine any subsequent changes in illumination level (STEP802) and/or contrast level (STEP805). Alternatively, if the calculated contrast level is higher than the predetermined contrast threshold, then use of the default illumination method and its corresponding tracking algorithm are continued (STEP807). After waiting a delay time T (STEP808), the process may repeat to detect other changes in illumination level and/or contrast level.

In at least some embodiments, a mouse such as mouse200implements the algorithm ofFIG. 5. In at least some other embodiments, a mouse such as mouse200implements the algorithm ofFIG. 6. In some embodiments, the algorithm ofFIG. 5orFIG. 6may be implemented in the IC228ofFIG. 1or3.

FIG. 7is a block diagram illustrating an example of an apparatus for selecting an illumination method and corresponding tracking algorithm in an input device such as a mouse. The apparatus may include an illumination sensor901that receives an image input from a tracking surface. In some cases, the illumination sensor901may be contained in an array similar to array226illustrated inFIG. 3. The array may further be contained in an IC similar to IC228as illustrated inFIG. 3that may further contain computational logic and processing circuitry such as computational logic38and processing circuitry34, illustrated inFIG. 3. The computational logic and processing circuitry may determine and select a light source and corresponding tracking algorithm. Light may be reflected from the mouse to the tracking surface and may be reflected back to the mouse and received at the illumination sensor901. In addition, the apparatus may optionally include an input904for receiving a selection criteria that may be used in selecting a light source and corresponding tracking algorithm. For example, the input904may include a switch that may be similar to the switch255illustrated inFIG. 3. Alternatively, the input904may include a user interface in which a user may input a desired threshold value for the illumination level. For example, a user may input a desired threshold value via input904. The desired threshold value may be stored in storage905. In another example, a predetermined threshold value may be pre-stored in storage905without user input.

The input image illumination received at the illumination sensor901may be compared to the illumination threshold value in storage905by a comparator module902. In some examples, the comparator module may be housed in an IC, such as an IC similar to IC228illustrated inFIG. 3. For example, the comparator module902may be contained in computational logic on the IC similar to the computational logic38illustrated inFIG. 3. The comparator module902may receive the image illumination from the illumination sensor901and retrieves the stored illumination threshold from storage905. The comparator module902further determines if the received image illumination is less than or greater than the stored illumination threshold value. The comparator module902may also provide the comparison data to the illumination controller903. The illumination controller903may also be contained in the computational logic38the IC. Based on the comparison data from the comparator module902, the illumination controller903may control any number or type of light sources. In this example, the illumination controller903controls a plurality of light sources (e.g., Light Source A906, Light Source B907and Light Source N908). In some cases, the different light sources may be of different types and/or may be positioned at different angles with respect to the tracking surface.

In one example, light is provided to the tracking surface via light source A906. Also, the comparator module902determines that the illumination threshold value from storage905is less than the illumination level of the received image at the illumination sensor901which corresponds to the reflected light from light source A906. Based on this determination at the comparator module902, the illumination controller903may control light source A906to provide light to the tracking surface and may also select a tracking algorithm corresponding to light source A906. Also, the illumination controller903may control the other light sources (i.e., light source B907—light source N908) not to provide light to the tracking surface (i.e., the illumination controller903may ensure that light source B907and light source908remains in an off state).

In another example, light is provided to the tracking surface via light source A906, however, the comparator module determines that the illumination threshold value from storage905is greater than the illumination level of the received image at the illumination sensor901which corresponds to the reflected light from light source A906. Based on this determination at the comparator module902, the illumination controller903may control light source A906to terminate (i.e., may turn off light source A906) and may control a different light source, such as light source B907or light source N908to emit light to the tracking surface (i.e., turn on a different light source). Also, the illumination controller903may select a tracking algorithm corresponding to the controlled light source (e.g., light source B907or light source N908). For example, if light source A906emits light to the tracking surface which is reflected back to the mouse and received at illumination sensor and the received illumination signals received at the illumination sensor901are determined to be less than the threshold illumination values in storage905by the comparator module902, then the illumination controller908(based on input from the comparator module902) may select a different light source such as light source B907or light source N908, and corresponding tracking algorithm. The selection of an alternate light source and corresponding tracking algorithm may be based on attributes of the light source. For example, the attributes may include illumination level, the type of light source or the position of the light source in the mouse relative to the tracking surface. Also, in addition to the illumination level, the light source may be selected based on contrast level of the illumination. For example, the light source may be selected based on both the illumination level and the contrast level of the light source.

FIG. 8is a block diagram illustrating another example of an apparatus for selecting an illumination method and corresponding tracking algorithm in an input device such as a mouse. The apparatus may include an image sensor1001that receives an image input from a tracking surface. The image sensor1001may include an array, for example, an array similar to array226illustrated inFIG. 3. Also, the array may be located on an IC. In one example, the IC may be similar to IC228illustrated in FIG.3. The image received may include various attributes including contrast differences between pixels in the image. Light may be emitted from the mouse to the tracking surface and may be reflected back to the mouse and received at the image sensor1001at an array. In addition, the apparatus may optionally include an input1011for receiving a selection criteria for selecting a light source and corresponding tracking algorithm. For example, the input1011may include a switch (e.g., a switch similar to switch255illustrated inFIG. 3) for manually inputting a desired light source. Alternatively, the input1011may include a user interface for receiving a desired threshold value for an image contrast or a threshold value of differences in pixel contrast between different pixels such as pixels that are adjacent to each other. For example, a user may input a desired threshold value via input1011. The desired threshold value may be stored in storage1012. Alternatively, the threshold value may be stored in storage1012without input from the user (e.g., factory-installed).

The image sensor1001may receive the input image (e.g., from a work surface) and may provide the input image to the pixel selector1002. The pixel selector1002may select a pixel from the array of pixels in the image. Information on the contrast of the selected pixel and/or pixels that adjoin, abut, are neighboring, or are adjacent to the selected pixel may also be obtained. Image contrast may be further characterized in the pixel contrast module1004which may determine the contrast differences between selected pixels and any of the selected pixels' neighboring pixels.

The comparator module1003may compare the pixel contrast to that of pixels that are next to, adjacent, or neighboring the selected pixel. In some examples, the comparator module1003may be located on an IC such as an IC similar to IC228illustrated inFIG. 3. In some examples, the IC may further include computational logic such as computational logic38illustrated inFIG. 3. Alternatively, the comparator module may be located on the array itself and may be further controlled by processing circuitry similar to processing circuitry34illustrated inFIG. 3. The IC may further include an auto correlator1005. For example, the auto correlator1005may be part of the computational logic or processing circuitry of the IC. The auto correlator1005may receive pixel contrast data from the comparator module1003and may determine, based on the received data, at least one autocorrelation (AC) parameter. The AC comparator1006may compare the AC parameters or contrast levels of the received image with a predetermined contrast threshold value. The contrast threshold value may be stored in storage1012in one embodiment. For example, a user may optionally input a desired threshold value via input1011and the input threshold value may be stored in storage1012. Based on the image contrast, the illumination controller1007may control at least one light source. In the example illustrated inFIG. 8, the illumination controller1007selects a corresponding light source from a plurality of light sources (i.e., Light Source A1008, Light Source B1009, . . . , Light Source N1010, in the example illustrated inFIG. 8). Also, as set forth above, the light source may be selected based on both the contrast level and the illumination level of the received light.

FIG. 9illustrates another embodiment of a mouse containing at least two separate light sources in which each light source emits an incident light at a different portion of the work surface. In this example, an LED light source601emits grazing illumination603onto the tracking surface602to provide a reflected light beam604. The reflected light beam604is received at an array605of an IC610. Also, the input device may further contain a separate light source606for emitting a light beam607at the tracking surface602. The light beam607strikes the tracking surface602at a different point on the tracking surface as compared to the light beam603from the LED light source601. The reflected beam of light609from the incident light beam607from the separate light source606may be received at array608of IC611. The array608is positioned at a different location in the device relative to the array605. Also, the separate light source606may be oriented to the tracking surface602at a different angle as compared to the LED light source601. For example, the LED light source601may be positioned to emit a light beam603that is approximately 20 degrees or less from the work surface602and the separate light source606may be positioned to emit a light beam607that is approximately 20 degrees or less from a vertical or perpendicular orientation.

IC610and IC611may each contain logic for determining which array and light source (601or606) to use. The determination of which light source to use and which corresponding tracking algorithm to use may be based on any selection criteria including, for example, a manual input (e.g., a switch position) or selection criteria based on the status of the device or tracking surface602. Selection of a light source and corresponding tracking algorithm may also be determined automatically, for example, based on attributes of the tracking surface602. For example, if the tracking surface602is highly reflective or glossy, light source606and corresponding tracking algorithm may be selected. If the tracking surface602is not highly reflective or non-glossy, then light source601and corresponding tracking algorithm may be selected. As set forth above, logic contained in the IC610or the IC611may perform the selection based on tracking surface attributes such as illumination level or contrast level. In addition, one IC may control more than one array. Thus, in one example, more than one array is included on the IC for detecting light and each of the more than one arrays may be controlled by a single IC. In another example, more than one array is included on the IC for detecting light and each of the more than one arrays may be controlled by any number of ICs (e.g., 2, 3, 4, 5, 6, etc.). In yet another example, one IC may control all of the arrays included on the IC.

It is understood that aspects of the present invention can take many forms and aspects. The embodiments shown herein are intended to illustrate rather than to limit the invention, it being appreciated that variations may be made without departing from the spirit of the scope of the invention. Although illustrative aspects of the invention have been shown and described, a wide range of modification, change and substitution is intended in the foregoing disclosure and in some instances some features of the present invention may be employed without a corresponding use of the other features. Accordingly, it is appropriate that the appended claims be construed broadly and in a manner consistent with the scope of the invention. As used herein (including the claims), “light” includes emissions in the visible and/or non-visible portions of the electromagnetic spectrum. In the claims, various portions are prefaced with letter or number references for convenience. However, use of such references does not imply a temporal relationship not otherwise required by the language of the claims.