Calibrate touch input
By implementing multi-touch input processing and correction technology in the computing device, the accuracy problem of touch input processing near the camera is solved, the offset and jitter of the measurement position are reduced, and the touch input response capability of the computing device is improved.
Patent Information
- Application Number
- CN202080100917.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-06-03
- Publication Date
- 2025-04-08
- Estimated Expiration
- 2040-06-03
AI Technical Summary
There are difficulties in processing touch input near the camera in computing devices, especially in the measurement position offset and jitter problems caused by changes in the density of the touch sensor.
By implementing the instruction configuration in the computing device, it is able to receive multiple touch inputs, determine a skew position, correct based on the positions and times of the multiple touch inputs, generate a compensated touch value, and process the touch input to determine the shift position and correct the skew.
It effectively solves the accuracy of touch input processing near the camera, reduces the offset and jitter of the measurement position, and improves the ability of computing devices to respond to touch input.
Smart Images

Figure CN115605831B_ABST
Abstract
Description
Technical Field
[0001] This description relates to computing devices that receive touch input. Background Art
[0002] Computing devices can include a touch screen display that presents visual output and receives touch input. Some computing devices can include a camera inside the touch screen display. Accurately processing touch input near the camera can be difficult. Summary of the invention
[0003] According to an example, a non-transitory computer-readable storage medium can include instructions stored thereon. When executed by at least one processor, the instructions can be configured to cause a computing device to: receive a first measured touch value indicating a first touch input at a first location (which can be near a camera included in the computing device); receive a second measured touch value indicating a second touch input at a second location farther from the camera than the first location, the density of touch sensors in the second location being greater than the density of touch sensors in the first location; generate a first compensated touch value based on the first measured touch value and a first scaling value; generate a second compensated touch value based on the second measured touch value and a second scaling value, the second scaling value being less than the first scaling value; and process the first touch input and the second touch input based on the first compensated touch value and the second compensated touch value.
[0004] According to an example, a non-transitory computer-readable storage medium can include instructions stored thereon. When executed by at least one processor, the instructions can be configured to cause a computing device to: determine that the measured position of a touch input on a touch screen is within a predefined area close to a camera (i.e., meets a proximity criterion with respect to the camera); determine a shift value for the touch input based on the measured position of the touch input; determine a shift position for the touch input based on the measured position and the shift value; and process the touch input based on the shift position. In practice, an area where an object such as a stylus or a user's finger contacts the touch screen may include multiple locations with touch input (i.e., a non-zero measurement of the applied force). Some of these may be within the predefined area, while others may not. The shift value may be applied to those of the measured positions within the area. Subsequently, an operation may be applied (e.g., based on the shift position and the measurement value outside the predefined area) to estimate the location of the center of the area where the object touches the touch screen.
[0005] According to an example, a method may include: contacting a touch screen at multiple known locations, the multiple known locations including at least a first location having a first touch sensor density and a second location having a second touch sensor density, the second touch sensor density being less than the first touch sensor density; determining multiple measured locations on the touch screen corresponding to the multiple known locations; and generating a mapping that maps the multiple measured locations to the multiple known locations.
[0006] According to an example, a non-transitory computer-readable storage medium can include instructions stored thereon. When executed by at least one processor, the instructions can be configured to cause a computing device to: receive multiple touch inputs, the multiple touch inputs being received at different times and being included in a single moving contact; determine that a measured position of at least one touch input in the multiple touch inputs is skewed; based on determining that the position of at least one touch input in the multiple touch inputs is skewed, correct the skewed position of the at least one touch input in the multiple touch inputs based on the position of the at least one touch input in the skewed multiple touch inputs and the positions of at least two other touch inputs in the multiple touch inputs; and process the multiple touch inputs with the corrected position.
[0007] In a further example, a computer system is provided, which includes a processor and any type of computer-readable storage medium defined above, and is arranged to execute instructions. The details of one or more embodiments are set forth in the following drawings and description. Other features will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Figure 1A A computing device according to an example implementation is shown.
[0009] Figure 1B According to an example embodiment, Figure 1A A partial cross-sectional view of a computing device is shown.
[0010] Figure 2 According to an example embodiment, Figure 1A The computing device shown includes an expanded area for a touch screen and a camera.
[0011] Figure 3A A finger is shown contacting a portion of an extended area near a camera according to an example embodiment.
[0012] Figure 3B Measured touch values for a position contacted by a finger in an expanded area according to example embodiments are shown.
[0013] Figure 3CA zoom map for locations in an expanded area is shown according to an example implementation.
[0014] Figure 3D A compensated touch value for a position contacted by a finger in an expanded area according to example embodiments is shown.
[0015] Figure 3E is a graph illustrating measured touch values and compensated touch values as a function of position according to example embodiments.
[0016] Figure 4A A predefined area is shown where the position measured within the expanded area is to be shifted according to an example embodiment.
[0017] Figure 4B Shift values for correcting measured positions according to example embodiments are shown.
[0018] Figure 4C An arm is shown enabling a stylus to contact an extended area according to an example embodiment.
[0019] Figure 5 A measured touch position and a corrected touch position according to example embodiments are shown.
[0020] Figure 6 is a schematic diagram of a computing device according to an example implementation.
[0021] Figure 7 A pipeline of functions performed by a computing device according to an example implementation is shown.
[0022] Figure 8 is a flow chart illustrating a method performed by a computing device according to an example implementation.
[0023] Fig. 9 is a flow chart illustrating a method performed by a computing device according to an example implementation.
[0024] Fig.10 is a flow chart illustrating a method performed by a computing system according to an example embodiment.
[0025] Fig.11 is a flow chart illustrating a method performed by a computing device according to an example implementation.
[0026] Fig.12 Examples of computer devices and mobile computer devices that can be used to implement the techniques described herein are shown. DETAILED DESCRIPTION
[0027] The touch screen can have a lower touch sensor density near and / or above the camera to improve the camera's ability to capture images. The lower touch sensor density near the camera can cause the measured touch value to be lower than the measured touch value at a location farther from the camera with a higher touch sensor density. The computing device can generate a compensated touch value based on the measured touch value and a scaling value. The scaling value can be associated with the location of the touch input for which the measured touch value was measured. The density of the touch sensors is the number of touch sensors per unit area of the touch screen; for example, the density of the touch sensors at any location can be defined as the number of touch sensors in a circle, rectangle, or square of a predefined size and / or orientation centered at that location.
[0028] Lower sensor densities and / or transitions between locations with different touch sensor densities can cause the measured location of the touch input to be shifted from the actual and / or true location of the touch input. Computing device 100 can determine the shifted location based on the measured location and determine a shifted value or shifted location associated with the measured location. In some examples, different computing systems can determine the shifted value or shifted location by contacting the touch screen with a stylus at multiple known locations and mapping the known locations where the stylus contacts the touch screen to the measured touch locations.
[0029] Lower sensor density and / or transitions between locations with different touch sensor densities can cause the measured location of the touch input to be skewed from the actual and / or true location of the touch input. The computing device can determine that the measured location is skewed by comparing the measured location and / or the shifted location with other measured locations and / or shifted locations within the continuous contact. The computing device can correct the skewed location based on the other measured locations, such as by applying a filter to the multiple locations.
[0030] Figure 1A A computing device 100 is shown according to an example implementation. The computing device 100 can include, for example, a smartphone with a touch screen 102, a tablet computing device with a touch screen 102, a notebook or laptop computing device with a touch screen 102, or a personal computing device with a touch screen 102.
[0031] Touch screen 102 can present visual output to a user. Touch screen 102 can include pixels that emit colored light to collectively display pictures, icons, letters, or other images.
[0032] Touch screen 102 can also receive touch input from a user. Touch input can include physical contact on touch screen 102 that causes a measurable change within touch screen 102, such as a capacitance change and / or a resistance change. In some examples, touch screen 102 can include a capacitive touch screen that detects touch input by measuring a change in capacitance caused by a part of a human body, such as a user's finger, contacting touch screen 102. In some examples, a touch sensor included in touch screen 102 can include metal traces surrounding pixels. In some examples, touch screen 102 can detect touch input by measuring a change in resistance.
[0033] The computing device 100 can include a frame 104 that supports, encloses, and / or surrounds the touch screen. As a non-limiting example, the frame 104 can also support, enclose, and / or surround the computing device 100. Figure 1A Other components not shown, such as memory, processor, speaker, microphone, wired communication interface and / or wireless communication interface.
[0034] The computing device 100 can include a camera 106. The camera 106 can capture visual data from outside the computing device 100. The camera 106 can be included in and / or behind the touch screen 102 and arranged to capture visual data from light passing through the touch screen 102.
[0035] Figure 1A The front of computing device 100 is shown, including touch screen 102 and camera 106. In some examples, computing device 100 can include a back opposite the front that also includes a second camera, but does not include a touch screen or other display.
[0036] In order to allow the touch screen 102 to present visual output in the area above the camera 106, but still allow the camera 106 to capture visual data, the pixel density of the touch screen 102 in the area above the camera 106 can be lower than the pixel density in the area of the touch screen 102 that is not above the camera 106. The term "above the camera" here refers to the portion of the camera that the normal direction of the touch screen intercepts. For some such portions of the touch screen, the normal direction may intercept the light capture area of the camera. The lower pixel density allows the camera 106 to capture visual data accurately enough and present visual output of satisfactory quality. However, the lower pixel density can cause non-uniformity in parasitic capacitance compared to other portions of the touch screen, which is measured to determine touch input. Figure 2 An extended area 108 of the touch screen 102 above and around the camera 106 is shown as described below, where some portions of the touch screen 102 in the extended area 108 have a lower pixel density than other portions of the touch screen 102 .
[0037] Figure 1B According to an example embodiment, Figure 1A A partial cross-sectional view of the computing device 100 is shown. The cross-sectional view is taken along Figure 1A The dashed line represented by 'A' in FIG.
[0038] Touch screen 102 can include cover 112, touch sensor layer 114, and / or display layer 116. Cover 112 can be made of a transparent material such as glass or plastic. Cover 112 can cover and / or protect other components of touch screen 102, such as touch sensor layer 114 and / or display layer 116. Cover 112 can be superimposed and / or disposed over other components of touch screen 102, such as touch sensor layer 114 and / or display layer 116.
[0039] Touch screen 102 can include touch sensor layer 114. Touch sensor layer 114 can detect and / or measure touch input. Touch sensor layer 114 can detect and / or measure touch input, such as by detecting and / or measuring a change in capacitance and / or a change in resistance in response to the touch input. In some examples, touch sensor layer 114 can be disposed and / or located between cover 112 and display layer 116. In some examples, portions of touch sensor layer 114 can surround portions of display layer 116, such as by surrounding display pixels included in display layer 116 with metal traces included in touch sensor layer 114.
[0040] Touch screen 102 can include display layer 116. Display layer 116 can generate and / or display visual output, such as graphical output. Display layer 116 can include a plurality of pixels that each generate colored light to collectively display a picture, icon, letter, or other image.
[0041] Computing device 100 can include camera 106. In some examples, camera 106 can be disposed and / or positioned below touch screen 102 (i.e., toward display layer 116 in a normal direction of cover 112). In some examples, camera 106 can be disposed and / or positioned between touch screen 102 and frame 104. In some examples, camera 106 can be disposed and / or positioned within touch sensor layer 114 and / or display layer 116 of touch screen 102.
[0042] Computing device 100 can include frame 104. Frame 104 can support, surround, and / or enclose components of computing device 100, such as touch screen 102 and / or camera 106.
[0043] Figure 2 According to an example embodiment, Figure 1AThe computing device 100 shown includes an extended area 108 of the touch screen 102 and the camera 106. The extended area 108 includes a plurality of locations 211-288. Figure 2 As shown in FIG. 1 , the second digit in the reference numerals for positions 211-288 indicates the row of the corresponding position, and the third digit in the reference numerals indicates the column. Figure 2 The extended region 108 is divided into sixty-four locations, but other levels of granularity can be achieved, and the extended region can be divided into more or less than sixty-four locations.
[0044] In this example, the shaded locations 233, 234, 235, 243, 244, 245, 253, 254, 255 have a lower touch sensor density than other locations in the extended area 108. The touch sensor density can refer to the number of touch sensors per unit area of the touch screen 102 superimposed on the touch sensors and / or the number of touch sensors underlying a given area of the touch screen 102. In some examples, the lower touch sensor density can include a lower pixel density and / or a lower metal trace density around the pixel where the capacitance change is measured. In some examples, the shaded locations 233, 234, 235, 243, 244, 245, 253, 254, 255 with the lower touch sensor density can be closer and / or closer to the camera 106 than other locations in the extended area 108. The term "close" is used to mean "meeting a proximity criterion." For example, the proximity criteria may be that the location is within a predefined distance of the camera, or that it covers the camera (i.e., the normal of the sensor layer at the location intercepts the camera), or that the location is within a predefined distance in the plane of sensor layer 114 from a portion of sensor layer 114 that is on the camera optical axis. The density change may be abrupt, where adjacent locations have much higher or lower touch sensor density than each other, or gradual, where a path of locations gradually increases or decreases in touch sensor density. In some examples, other locations with higher touch sensor density may be farther from camera 106 and / or less close to camera 106 than locations 233, 234, 235, 243, 244, 245, 253, 254, 255. In some examples, locations 233 , 234 , 235 , 243 , 244 , 245 , 253 , 254 , 255 having a lower touch sensor density can be completely superimposed on camera 106 (i.e., completely cover camera 106 , as viewed from a direction transverse to cover 112 ).
[0045] Figure 3A A finger 300 is shown contacting a portion of the extended area 108 near the camera 106 in accordance with an example embodiment. The finger 300 can contact any number of locations 211-288 inside or outside the extended area 108.
[0046] Figure 3B Measured touch values for a position contacted by the finger 300 in the expanded area 108 according to an example embodiment are shown. Figure 3B Shown with Figure 2 and Figure 3A The positions 211-288 are shown as corresponding to the measured touch values in a map 310. For ease of viewing, Figure 3B The reference numerals of the locations 211-288 to which the measured touch values correspond are not shown in FIG. However, for ease of reference, the locations with lower touch sensor density are shaded. Figure 3B The measured touch values are graphically shown in a two-dimensional map, but the measured touch values can be represented and / or stored in other formats such as a comma separated value file or a two-dimensional array. The measured touch values can represent raw data received from the touch sensor, such as a change in capacitance and / or a change in resistance. The measured touch values can include a range of values, such as a lower bound of zero (0) to indicate no contact or touch being detected and an upper bound to represent the maximum measurable force or change in capacitance and / or resistance. The measured location of the touch input can represent a location where the measured touch value is greater than zero (0).
[0047] exist Figure 3B In the example shown, the area with a value of 0 indicates that no contact or touch is measured or detected at the location corresponding to the area with a value of 0. Also in this example, the area corresponding to positions 232, 242, 243, 252 has a measured touch value of 50. Also in this example, the area corresponding to positions 233, 234, 244, 253, 254 has a measured touch value of 50. These measured touch input values are examples, and computing device 100 may measure other touch input values. Based solely on these raw touch input data, the contact made by finger 300 would appear to be placed heaviest to the left along the second column, as reflected by the measured touch value of fifty for positions 232, 242, 252. However, as discussed above, positions 233, 234, 235, 243, 244, 245, 253, 254, 255 have a lower touch sensor density than other positions, which can cause the measured values at positions 233, 234, 235, 243, 244, 245, 253, 254, 255 to be lower than the measured values that the actual contact made by finger 300 should reflect. To correct the inaccurately low measured touch values, computing device 100 can compensate for the lower touch sensor density by increasing the touch values of positions 233, 234, 235, 243, 244, 245, 253, 254, 255.
[0048] Figure 3CA scaling map 320 (or "scaling value map") for locations in an extended area is shown according to an example embodiment. The scaling map can associate scaling values with locations. These locations can be identified by x and y values in the case where the locations represent points on the touch screen 102, and / or by ranges of x and y values in the case where the locations represent rectangular areas on the touch screen 102. The scaling map 320 shows scaling values that will be multiplied by the measured touch values to compensate for the lower touch sensor density in the locations 233, 234, 235, 243, 244, 245, 253, 254, 255 that are close to and / or near the camera 106. The scaling values can be values associated with locations that will correct for the lower touch sensor density, so that after correction based on the measured touch values and the scaling values, contacts made by the same object with the same amount of force will have the same compensated touch values in different locations, even if the different locations have different touch sensor densities.
[0049] In this example, the scaling value for locations 233, 234, 235, 243, 244, 245, 253, 254, 255 that are close to and / or near the camera 106 is two (2), while the scaling value for other locations is one (1). This is merely an example, and other scaling values can be included and / or stored in the scaling value map 320 to compensate for lower touch sensor density in some locations. Figure 3C In the example shown, the scaling value can include two values, or the scaling value can be more granular, where many more than two distinct values are represented on the scaling map. Figure 3C The scaling value map 320 is diagrammatically shown in a two-dimensional map, but the scaling value map 320 can be represented and / or stored in other formats such as a comma separated value file or a two-dimensional array. In some examples, the scaling value for each position can be inversely proportional to the density of the touch sensors in the corresponding position, and / or the ratio of the scaling values of two different positions to each other can be inversely proportional to the ratio of the densities of the touch sensors in those same two different positions to each other.
[0050] The computing device 100 can be Figure 3B The measured touch values shown are multiplied by Figure 3C The scaling values in 233, 234, 235, 243, 244, 245, 253, 254, 255 are used to correct and / or compensate for the lower touch sensor density in locations 233, 234, 235, 243, 244, 245, 253, 254, 255. Figure 3B The measured touch values shown are multiplied by Figure 3C The product of the scaled values in can be the compensated touch value.
[0051] Figure 3D FIG. 1 shows a compensated touch value for a location touched by a finger in the expanded area 108 according to an example embodiment. The compensated touch value is Figure 3Dis represented in the compensated touch value map 330 (or "compensated value map"). Figure 3D The compensation value map 330 is diagrammatically shown in a two-dimensional map, but the compensation value map 330 can be represented and / or stored in other formats such as a comma separated value file or a two-dimensional array. The compensated touch value can be a numerical value having the same range as the measured touch value, which represents the force applied by the object after the measured touch value is corrected and / or compensated by the scaling value. The compensated touch value can be passed to the application and / or operating system, and / or processed by the application and / or operating system as a touch input to be managed by the application and / or operating system.
[0052] Computing device 100 can process the compensated touch values as touch input to determine how to respond to the touch input. Compensated touch value 100 for location 243 and compensated touch value 50 for locations 232, 233, 234, 242, 244, 252, 253, 254 indicate that the contact made by finger 300 is the strongest and / or heaviest at location 243, and is also significant for locations 232, 233, 234, 242, 244, 252, 253, 254.
[0053] Figure 3E is a graph showing measured touch values 315 and compensated touch values 335 as a function of position according to an example embodiment. Figure 3E The graph of FIG. 1 shows the touch value as a function of position in only a single direction, such as vertical or horizontal. Compared with the graph shown in the previous figure, Figure 3E The smooth curves of measured touch values 315 and compensated touch values 335 shown show greater granularity of measured touch values, and / or the division of touch screen 102 and / or expanded area 108 into more locations. In addition, in this example, there may be different scaling values for different corresponding locations within the lower density area, for example, where the scaling value rises toward the centroid of the lower density area 350. The difference between the compensated touch values 335 and the measured touch values 315 in the lower density area 350, which can correspond to the locations 233, 234, 235, 243, 244, 245, 253, 254, 255 with a lower touch sensor density, indicates the effect of multiplying the measured touch values by the scaling value. A skewed curve of measured touch values 315 would erroneously show a touch contact that is strong to the right of the contact. The symmetrical curve of compensated touch values 335 correctly shows the touch contact that is strongest at the center of the contact.
[0054] exist Figure 3EIn the example shown, tilted curve 315 of measured touch values shows measured center 360 skewed and / or shifted to the right of actual center 370 of contact, as shown by the peak of compensated touch value 335 curve, at the peak of measured touch value curve 315. Computing device 100 can determine the exact location of the center of contact at actual center 370 and / or the peak of compensated touch value 335 curve by compensating the measured touch values based on compensated touch value mapping 330.
[0055] Figure 4A A predefined area 400 is shown where the measured position within the expanded area 108 will be shifted according to an example embodiment. The predefined area 400 can be an area on the touch screen 102 where the measured position can be shifted and / or incorrect due to changes in touch sensor density. The predefined area 400 can be stored in the computing device 100, such as in a memory of the computing device 100. In some examples, the predefined area 400 is located at a location with a lower touch sensor density and / or at an edge of a location with a lower touch sensor density. In some examples, the predefined area 400 is located at an interface between a location with a lower touch sensor density and a location with a normal and / or standard touch sensor density.
[0056] In some examples, the predefined area 400 has a shape that is homeomorphic to the ring. If two shapes can be deformed into each other by bending or stretching their respective parts without breaking, cutting, or attaching any of their respective parts, the shapes can be considered homeomorphic. The predefined area 400 can define a hole 402 that is not part of the predefined area 400, and / or the hole 402 can be bounded by the predefined area 400. As non-limiting examples, the predefined area 400 can have a shape such as a square, a circle, a rectangle, or an ellipse around the hole 402. The hole 402 can be superimposed on the camera 106 (in Figure 4A On at least a portion of the device (not shown).
[0057] In some examples, predefined area 400 has a shape that is homeomorphic to a square, such as a square, a circle, a rectangle, or an ellipse, as non-limiting examples. Predefined area 400 can be superimposed on at least a portion and / or all of camera 106 .
[0058] In some examples, a transition from a lower touch sensor density to a higher touch sensor density within an extended area of touch screen 102 within a predefined area can cause the measured touch location to be shifted outward and / or away from camera 106 compared to the actual location of the contact at the measured touch location. Computing device 100 can correct the outward shift by shifting the measured location inward toward camera 106. Computing device 100 can shift the measured location inward by adding a vector, such as an x-value and a y-value, to the measured touch location. Computing device 100 can determine the vector to be added to the measured touch location by mapping the measured touch location to the vector. As non-limiting examples, the measured touch location and the vector can be associated with each other on a stored mapping and / or table, a comma-separated value file, or a two-dimensional array.
[0059] Figure 4B Shift values for correcting measured positions according to example embodiments are shown. Shift values can be vectors by which measured touch values will be changed to reach corrected and / or shifted values. In this example, the shift values are graphically shown on the shift map 410. Bullet holes show measured positions that do not need to be shifted. Arrows graphically show shift values. Shift values can also be represented as a pair of values, such as positive or negative values for each of the horizontal (x) direction and the vertical (y) direction.
[0060] The computing device 100 can add the shift value to the measured touch position to determine the correct shifted position. The computing device 100 can determine the shift value based on the measured touch position, such as by mapping the measured touch value to the shift position. The computing device 100 can process the touch input based on the shifted value and / or the shifted position. The shifted value and / or the shifted position can be the position where the touch input will be processed after correcting the shift caused by the change in the density of the touch sensor. In some examples, the computing device 100 can directly determine the shifted position and / or the corrected position based on the measured touch position, such as by mapping the measured touch position to the corrected position and / or the shifted position. In practice, the area where an object such as a stylus or a user's finger is located may include multiple positions with non-zero touch values. Some of these may be within a predefined area, while others may not. The offset value can be applied to those of the measured positions within the area. Subsequently, an operation can be applied (e.g., based on the shifted position outside the predefined area and the (unshifted) measured value) to estimate the position of the center of the area where the object touched the touch screen. For example, the estimated position can be a weighted average of the shifted and unshifted positions, where the weights are the corresponding touch values or compensated touch values. Alternatively, the touch values (or compensated touch values) at the shifted and unshifted positions can be used in a curve fitting process to find the peak of the curve.
[0061] Computing device 100 and / or another computing system can experimentally determine the shift value. In some examples, the computing system can cause a stylus or other object to contact touch screen 102 or another touch screen having similar hardware features as touch screen 102 and / or computing device 100 at multiple known locations on the touch screen. The computing system can map the known touch locations to corresponding measured touch locations, and / or associate the known touch locations to corresponding measured touch locations. The computing system can determine the difference between the known touch locations and the corresponding measured touch locations. The computing system can store the difference between the known touch locations and the corresponding measured touch locations as a shift value associated with the corresponding measured touch locations. As a non-limiting example, the computing system can store the shift value associated with the corresponding measured touch location as such. Figure 4B The shift map 410 is shown stored as, or in another format such as, a table, a comma separated value file, or a two-dimensional array.
[0062] Figure 4C An arm 430 is shown causing a stylus 420 to contact an extended area 108 according to an example embodiment. The arm 430 and / or the stylus can be controlled by a computing system to cause the stylus 420 to contact the touch screen 102 and / or the extended area 108 within the touch screen 102 at a plurality of known locations. The known locations can be previously determined locations on the touch screen 102 and / or locations where the stylus 420 intended to contact the touch screen 102, and / or locations where the stylus was measured as being in contact by a computing device 100 and / or an instrument external to the computing system that the stylus 420 was contacting. The location on the touch screen 102 where the stylus 420 contacts the touch screen 102 can be known to the computing system and / or predetermined. The computing system can determine a shift value based on a difference between the known location of the contact and the measured touch location of the contact. As a non-limiting example, the computing system can store the determined shift value, such as in a format such as Figure 4B 4. The stored shift values may be stored in the shift map 410 shown in FIG. 1 or in another format such as a table, a comma-separated value file, or a two-dimensional array. In some examples, the computing system can generate the shift map 410 based on the known location of the contact and the measured touch location of the contact. The computing system and / or an intermediate computing system can provide the stored shift values to the computing device 100.
[0063] In some examples, the measured touch location can be the measured center of contact, such as Figure 3E , which is caused by the skew caused by the reduced sensor density in some areas. In these examples, computing device 100 can move the position of measured center 360 to the actual center based on movement map 410.
[0064] Figure 5Measured touch locations 502, 504, 506, 508, 510, 512 and corrected touch locations 507, 509 are shown according to an example implementation. Computing device 100 is capable of receiving multiple touch inputs at different times. Computing device 100 is capable of receiving multiple touch inputs within a predetermined time period, such as within one second of each other. Multiple touch inputs can be part of and / or included in a single moving contact across touch screen 102 and / or an extended area 108 of touch screen 102. Measured touch locations 502, 504, 506, 508, 510, 512 can represent measured locations of multiple touch inputs. In some examples, changes in the density of touch sensors can cause some measured locations to be skewed from the actual location of the contact. In some examples, even in the implementation of the above with respect to Figure 4A , Figure 4B and Figure 4C Following the described shift, changes in the density of the touch sensors can also cause some measured locations to be skewed from the actual location of the contact.
[0065] The computing device 100 can determine that the position of at least one of the plurality of measured touch positions 502, 504, 506, 508, 510, 512 is skewed. Figure 5 In the example shown, computing device 100 determines that measured touch locations 506, 508 are skewed. For illustrative purposes, the distance between locations 506, 508 and corrected locations 507, 509 is Figure 5 The computing device 100 can determine that at least one of the plurality of measured touch locations 502, 504, 506, 508, 510, 512 is skewed based on comparing the positions and / or times of the measured touch locations 502, 504, 506, 508, 510, 512 to one another (where “time of a measured touch location” refers to the time at which the force was measured at that location; the time may be recorded), such as by comparing the positions and / or times of the measured touch locations 502, 504, 506, 508, 510, 512 to predicted curves and / or arcs, and / or by applying one or more filters to the positions and / or times of the measured touch locations 502, 504, 506, 508, 510, 512 and determining that the position of at least one of the measured touch locations 502, 504, 506, 508, 510, 512 is skewed.
[0066] Based on determining that the position of at least one of the measured touch positions 502, 504, 506, 508, 510, 512 is skewed, computing device 100 can correct the measured position of the touch input determined to be skewed based on the touch values and / or the measured touch positions 506, 508 and the positions of at least two other touch values, such as the measured touch positions 502, 504, 510, 512. In some examples, computing device 100 can correct the skewed position by applying a filter to the measured touch positions 502, 504, 506, 508, 510, 512. In some examples, the filter can include an infinite impulse response filter, a Kalman filter, and / or a Butterworth filter.
[0067] exist Figure 5 In the example shown, vectors 530, 532 represent corrections to measured touch locations 506, 508. Computing device 100 can add vectors 530, 532 to measured touch location 506 to arrive at corrected location 507, 509 and / or corrected path. Computing device 100 can process the touch input based on corrected location 507, 509 and / or corrected path 540 and measured touch locations 502, 504, 510, 512 that are determined to not have been skewed.
[0068] Figure 6 6 is a schematic diagram of a computing device 100 according to an example implementation. The computing device 100 can include a touch input processor 602. The touch input processor 602 can process touch input, such as by measuring changes in capacitance of a touch sensor caused by an object contacting the touch screen 102.
[0069] The touch input processor 602 can include a touch value measurer 604. The touch value measurer 604 can measure a value associated with a touch input to the touch screen 102, such as a position, a magnitude, and / or a time.
[0070] The position measurer 606 included in the touch value measurer 604 can measure the position of the touch input. The position can be measured based on which touch sensors experience a capacitance change. The position can be expressed and / or stored as an x-value and a y-value that can represent a horizontal distance from a corner of the touch screen 102 and a vertical distance from the same corner of the touch screen 102. In some examples, the horizontal distance can be measured in pixels and / or the vertical distance can be measured in pixels.
[0071] Amplitude measurer 608 included in touch value measurer 604 can measure the magnitude and / or force of a touch input. The magnitude can be measured based on the amount of capacitance change experienced by the touch sensor. The magnitude can be expressed and / or stored as an absolute value.
[0072] The time measurer 609 included in the touch value measurer 604 can measure the time and / or duration of the touch input. The time can be measured by comparing the capacitance change with a clock inside the computing device 100 and / or accessed by the computing device 100. The time can be expressed and / or stored as an absolute date and / or time, or relative to a specific time. The duration can be the time between when the touch input starts and when the touch input ends. The duration can be expressed and / or stored as seconds and / or fractions of seconds.
[0073] The computing device can include a touch value compensator 610. The touch value compensator 610 can compensate, enhance, and / or multiply the measured touch values by a scaling value that is based on and selected to compensate for fewer touch sensors at the location of the touch contact.
[0074] The touch value compensator 610 can include a scale mapper 612. The scale mapper 612 can map the location of the touch contact to a scale value, such as in Figure 3C The scaling values included in the illustrated scaling value map 320. The touch value compensator 610 can multiply the measured touch value by the scaling value to generate a compensated touch value.
[0075] The computing device 100 can include a shift corrector 614. The shift corrector 614 can correct for shifted touch position values caused by touch sensor density variations, such as described above with respect to Figure 4A The shifted touch position values in the predefined area 400 are described.
[0076] The shift corrector 614 can include a shift mapper 616. The shift mapper 616 can map the detected and / or measured touch position to a shift value. The shift mapper 616 can, for example, determine whether the measured position of the touch input is within the predefined area 400. If the measured position is within the predefined area, the shift mapper 616 can determine the shift value based on the measured touch position. In some examples, the shift mapper 616 can determine the shift value by, for example, mapping the measured touch position to the shift value included on the shift map 410. In some examples, the shift mapper 616 can determine the shift value by finding the shift value associated with the measured touch position stored in a file. In some examples, instead of the shift value, the shift corrector 614 can determine the corrected position for the touch input by finding the corrected position associated with the measured touch position stored in a file.
[0077] The shift corrector 614 can determine a corrected position and / or a shifted position for the touch input based on the measured position and the shift value. The computing device 100 can process the touch input based on the shifted position and / or the corrected position.
[0078] Computing device 100 can include skew corrector 618. Skew corrector 618 can correct a skewed position where the position of at least one of the multiple touch inputs indicates that the touch inputs are skewed. In some examples, skew corrector 618 can correct the skewed position after touch value compensator 610 has corrected and / or compensated the measured touch values and / or shift corrector 614 has corrected the shifted position.
[0079] The skew corrector 618 can include a skew determiner 620. The skew determiner 620 can determine that the location of at least one of the multiple touch inputs is skewed. The skew determiner 620 can determine that the location of at least one of the multiple touch inputs is skewed based on the time and location of the multiple touch inputs. The skew determiner 620 can determine that the location of at least one of the multiple touch inputs is skewed, for example, based on the multiple touch inputs not fitting a previously stored pattern such as an arc or line.
[0080] The skew corrector 618 can include a filter 622. The filter 622 can correct the position of the touch input position determined as skewed by the skew determiner 620. The filter 622 can correct the position of the skewed touch input position by applying a filter such as an infinite impulse response filter, a Kalman filter, and / or a Butterworth filter to the plurality of touch inputs.
[0081] Computing device 100 can include a display processor 624. Display processor 624 can control graphical output generated by touch screen 102 based on instructions from one or more applications executing on computing device 100 and / or an operating system executing on computing device 100, for example.
[0082] The computing device 100 can include a camera processor 626. The camera processor 626 can receive and / or process visual data received by the camera 106.
[0083] The computing device 100 can include at least one processor 628. The at least one processor 628 can execute instructions, such as instructions stored in at least one memory device 630, to cause the computing device 100 to perform any combination of the methods, functions, and / or techniques described herein.
[0084] The computing device 100 can include at least one memory device 630. The at least one memory device 630 can include a non-transitory computer-readable storage medium. The at least one memory device 630 can store thereon data and instructions that, when executed by at least one processor such as the processor 628, are configured to cause the computing device 100 to perform any combination of methods, functions, and / or techniques described herein. Thus, in any implementation described herein (even if not explicitly indicated in conjunction with a particular implementation), software (e.g., processing modules, stored instructions) and / or hardware (e.g., processors, memory devices, etc.) associated with or included in the computing device 100 can be configured to perform any combination of methods, functions, and / or techniques described herein, either alone or in conjunction with the computing device 100.
[0085] The memory 630 can store a map, such as the above-described scaling map 320 and / or the shift map 410. The memory 630 can store touch values 632, such as the above-described touch values. For each stored touch value 632, the memory 630 can store a position 634, an amplitude 636, and / or a time 638 and / or a duration.
[0086] The computing device 100 may include at least one input / output node 640 (i.e., interface). The at least one input / output node 640 may receive and / or send data, such as receiving data from a server and / or sending data to a server, and / or may receive input from a user and provide output to the user. The input and output functions may be combined into a single node, or may be divided into separate input and output nodes. The input / output node 640 may include, for example, a touch screen 102, a camera 106, a speaker, a microphone, one or more buttons, and / or one or more wired or wireless interfaces for communicating with other computing devices.
[0087] Figure 7 A pipeline 700 of functions performed by a computing device 100 according to an example implementation is shown. The computing device 100 is capable of receiving a touch input 702. The computing device 100 is capable of receiving a touch input via the touch screen 102.
[0088] Computing device 100 can process the measured touch values (704). Computing device 100 can process the measured touch values by determining a magnitude of the touch values based on, for example, an amount of change in capacitance of a touch sensor that detected the touch input.
[0089] Computing device 100 can compensate the measured touch values (706). Computing device 100 can compensate the measured touch values by, for example, determining a scaling value associated with the location of the touch input and multiplying the measured touch values by the scaling value.
[0090] Computing device 100 can determine 708 whether the location of the touch input is within predefined area 400. If the touch input is within predefined area 400, computing device 100 can shift 710 the measured location of the touch input, such as by shifting the measured location of the touch input based on shift map 410.
[0091] Computing device 100 can reduce jitter of the measured touch input (712). Computing device 100 can reduce jitter of the measured touch input by, for example, applying a filter, such as an averaging filter, to the plurality of touch inputs.
[0092] Computing device 100 can determine whether one or more locations that may or may not have been shifted at (710) are skewed (714). Computing device 100 can determine whether the location is skewed based on the locations and times of the multiple touch inputs, such as by applying a filter to the multiple locations and times. If computing device 100 determines that the location is not skewed, computing device 100 can process the touch value (716). If computing device 100 determines that the location is skewed, computing device 100 can correct the skew (718) and then process the corrected touch value (716).
[0093] Figure 8 is a flow chart illustrating a method performed by computing device 100 according to an example implementation. The method can include receiving a first measured touch value (802). The first measured touch value can indicate a first touch input at a first location near camera 106 included in computing device 100, such as location 243. Examples of measured touch values are shown in Figure 3B The method can also include receiving a second measured touch value (804). The second measured touch value can indicate a second touch input at a second location, such as location 242, that is farther from the camera 106 than the first location. The density of touch sensors in the second location can be greater than the density of touch sensors in the first location. The method can also include generating a first compensated touch value (806). The first compensated touch value can be generated based on the first measured touch value and the first scaling value. Examples of scaling values are shown in Figure 3C The method can also include generating a second compensated touch value (808). The second compensated touch value can be generated based on the second measured touch value and the second scaled value. The second scaled value can be less than the first scaled value. The method can also include processing the first touch input and the second touch input (810). The first touch input and the second touch input can be processed based on the first compensated touch value and the second compensated touch value.
[0094] According to an example, a ratio between the first scaling value and the second scaling value can be inversely proportional to a ratio of a density of touch sensors in the first location to a density of touch sensors in the second location.
[0095] According to an example, the first measured touch value can indicate a change in capacitance in response to the first touch input.
[0096] According to an example, the second measured touch value can indicate a change in capacitance in response to the second touch input.
[0097] According to an example, a first measured touch value can be received from a touch screen, such as touch screen 102 .
[0098] According to an example, a first measured touch value can be received from a capacitive touch screen.
[0099] Fig. 9 is a flow chart illustrating a method performed by a computing device according to an example embodiment. The method can include determining that a measured location of a touch input on a touch screen is within a predefined area (902). A predefined area, such as predefined area 400, can be proximate to camera 106. The method can include determining a shift value (904). A shift value—an example of which is schematically shown in FIG. Figure 4B The method can include determining a shifted position (906) for the touch input based on the measured position and the shift value. The method can include processing the touch input (908). The touch input can be processed based on the shifted position.
[0100] According to an example, the predefined area can have a shape that is homeomorphic to the ring, and a hole, such as hole 402, can be defined by the shape. The hole can overlay at least a portion of the camera.
[0101] According to an example, determining the shift can include mapping the location of the touch input to the shift value.
[0102] Fig.10 is a flow chart illustrating a method performed by a computing system according to an example embodiment. The method can include contacting a touch screen at a plurality of known locations (1002). An example of contacting a touch screen 102 at a plurality of known locations is shown in Figure 4C An example of identifying a known location is shown in Figure 2The plurality of known locations can include at least a first location having a first touch sensor density, such as location 242, and a second location having a second touch sensor density, such as location 243. The second touch sensor density can be less than the first touch sensor density. The method can also include determining a plurality of measured locations (1004). The plurality of measured locations can be on touch screen 102. The plurality of measured locations can correspond to a plurality of known locations. The method can also include generating a map (1006). The map, an example of which can be Figure 4B The shift map 410 shown or replaces measured locations with a map of known locations - it is possible to map multiple measured locations to multiple known locations.
[0103] According to an example, the method can further include storing the mapping on a memory of the mobile computing device, such as the memory 630 of the computing device 100 .
[0104] According to an example, the touch screen may be a first touch screen, such as a first touch screen on a measuring and / or calibration device. The method may further include receiving a touch input on a second touch screen, such as touch screen 102. The method may further include determining that a location of the touch input on second touch screen 102 is within a predefined area, such as predefined area 400, proximate to camera 106. The method may further include determining a shift value for the touch input based on the location of the touch input and the generated mapping, such as Figure 4B An example of a generated mapping could be Figure 4B The method can also include processing the touch input based on the location of the touch input and the determined shift value. The touch input can be processed by a client device such as computing device 100.
[0105] Fig.11 1 is a flow chart illustrating a method performed by a computing device 100 according to an example implementation. The method can include receiving multiple touch inputs (1102). The multiple touch inputs can be received at different times and can be included in a single moving contact. Examples of multiple touch inputs 502, 504, 506, 508, 510, 512 are shown in FIG. Figure 5 The method can include determining that a measured position of at least one touch input in the plurality of touch inputs is skewed (1104). Figure 5In an example of , touch inputs 506, 508 are determined to be skewed. The method can include, based on determining that the position of at least one touch input in the multiple touch inputs is skewed, correcting the skewed position of the at least one touch input in the multiple touch inputs (1106). The skewed position can be corrected based on the position of at least one touch input in the skewed multiple touch inputs and the positions of at least two other touch inputs in the multiple touch inputs. Examples of at least two other touch inputs in the multiple touch inputs are touch inputs 504, 504, 510, 512. The method can also include processing the multiple touch inputs with the corrected positions (1108). The corrected positions can include correcting touch positions 507, 509.
[0106] According to an example, correcting the skewed positions can include applying a filter to the positions of the plurality of touch inputs.
[0107] According to an example, correcting the skewed positions can include applying an infinite impulse response filter to the positions of the plurality of touch inputs.
[0108] According to an example, correcting the skewed positions can include applying a Kalman filter to the positions of the plurality of touch inputs.
[0109] According to an example, correcting the skewed positions can include applying a Butterworth filter to the positions of the plurality of touch inputs.
[0110] According to an example, multiple touch inputs can be received via a touch screen such as touch screen 102 .
[0111] According to an example, multiple touch inputs can be received via a capacitive touch screen.
[0112] According to an example, the method can further include determining that the plurality of touch inputs are received within a predetermined time period. Correcting the skewed position can include correcting the skewed position based on determining that the plurality of touch inputs are received within a predetermined time period and determining that the position of at least one of the plurality of touch inputs is skewed.
[0113] Fig.12 Examples of a general purpose computer device 1200 and a general purpose mobile computer device 1250 that can be used with the techniques described herein are shown. Computing device 1200 is intended to represent various forms of digital computers, such as laptops, desktops, tablets, workstations, personal digital assistants, televisions, servers, blade servers, mainframes, and other appropriate computing devices. Computing device 1250 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular phones, smart phones, and other similar computing devices. The components shown here, their connections and relationships, and their functions are intended to be exemplary only and are not intended to limit the embodiments of the inventions described and / or claimed in this document.
[0114] The computing device 1200 includes a processor 1202, a memory 1204, a storage device 1206, a high-speed interface 1208 connected to the memory 1204 and a high-speed expansion port 1210, and a low-speed interface 1212 connected to a low-speed bus 1214 and the storage device 1206. The processor 1202 can be a semiconductor-based processor. The memory 1204 can be a semiconductor-based memory. Each of the components 1202, 1204, 1206, 1208, 1210, and 1212 is interconnected using various buses and can be appropriately mounted on a common motherboard or otherwise installed. The processor 1202 is capable of processing instructions executed within the computing device 1200, including instructions stored in the memory 1204 or on the storage device 1206 to display graphical information for a GUI on an external input / output device such as a display 1216 coupled to the high-speed interface 1208. In other embodiments, multiple processors and / or multiple buses can be appropriately used together with multiple memories and multiple types of memories. Additionally, multiple computing devices 1200 may be connected, with each device providing portions of the necessary operations (eg, as a server bank, a group of blade servers, or a multi-processor system).
[0115] The memory 1204 stores information within the computing device 1200. In one implementation, the memory 1204 is one or more volatile memory units. In another implementation, the memory 1204 is one or more non-volatile memory units. The memory 1204 may also be another form of computer-readable medium, such as a magnetic disk or optical disk.
[0116] Storage device 1206 can provide mass storage for computing device 1200. In one embodiment, storage device 1206 can be or include a computer readable medium, such as a floppy disk device, a hard disk device, an optical disk device or a tape device, a flash memory or other similar solid-state memory device, or an array of devices, including devices in a storage area network or other configuration. A computer program product can be tangibly embodied in an information carrier. A computer program product can also include instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer or machine readable medium, such as memory 1204, storage device 1206, or memory on processor 1202.
[0117] The high-speed controller 1208 manages bandwidth-intensive operations of the computing device 1200, while the low-speed controller 1212 manages less bandwidth-intensive operations. Such an allocation of functions is exemplary only. In one embodiment, the high-speed controller 1208 is coupled to the memory 1204, the display 1216 (e.g., through a graphics processor or accelerator), and is coupled to a high-speed expansion port 1210 that can accept various expansion cards (not shown). In this embodiment, the low-speed controller 1212 is coupled to the storage device 1206 and the low-speed expansion port 1214. The low-speed expansion port, which can include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), can be coupled to one or more input / output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, for example, through a network adapter.
[0118] As shown, computing device 1200 can be implemented in many different forms. For example, it can be implemented as a standard server 1220, or multiple times in a group of such servers. It can also be implemented as part of a rack server system 1224. In addition, it can be implemented in a personal computer such as a laptop computer 1222. Alternatively, components from computing device 1200 can be combined with other components in a mobile device (not shown) such as device 1250. Each of such devices can contain one or more of computing devices 1200, 1250, and the entire system can be composed of multiple computing devices 1200, 1250 that communicate with each other.
[0119] The computing device 1250 includes components such as a processor 1252, a memory 1264, an input / output device such as a display 1254, a communication interface 1266, and a transceiver 1268. The device 1250 may also be provided with a storage device, such as a micro drive or other device, to provide additional storage. Each of the components 1250, 1252, 1264, 1254, 1266, and 1268 are interconnected using various buses, and several components may be appropriately mounted on a common motherboard or otherwise mounted.
[0120] The processor 1252 is capable of executing instructions within the computing device 1250, including instructions stored in the memory 1264. The processor may be implemented as a chipset including a separate plurality of analog and digital processor chips. The processor may provide, for example, coordination of other components of the device 1250, such as control of a user interface, applications executed by the device 1250, and wireless communications performed by the device 1250.
[0121] The processor 1252 can communicate with the user through the control interface 1258 and the display interface 1256 coupled to the display 1254. The display 1254 can be, for example, a TFT LCD (thin film transistor liquid crystal display) or an OLED (organic light emitting diode) display or other appropriate display technology. The display interface 1256 may include an appropriate circuit system for driving the display 1254 to present graphics and other information to the user. The control interface 1258 can receive commands from the user and convert them for submission to the processor 1252. In addition, the external interface 1262 can be configured to communicate with the processor 1252 to enable near-area communication of the device 1250 with other devices. The external interface 1262 can be provided for wired communication in some embodiments, or for wireless communication in other embodiments, and multiple interfaces can also be used.
[0122] The memory 1264 stores information within the computing device 1250. The memory 1264 may be implemented as one or more of the following: one or more computer-readable media, one or more volatile memory units, or one or more non-volatile memory units. An extended memory 1274 may also be provided and connected to the device 1250 via an extended interface 1272, which may include, for example, a SIMM (single in-line memory module) card interface. Such an extended memory 1274 may provide additional storage space for the device 1250, or may also store applications or other information for the device 1250. Specifically, the extended memory 1274 may include instructions for performing or supplementing the above-mentioned processes, and may also include security information. Therefore, for example, the extended memory 1274 may be provided as a security module for the device 1250, and may be programmed with instructions for the secure use of the licensed device 1250. In addition, secure applications and additional information may be provided via a SIMM card, such as placing identification information on the SIMM card in an unbreakable manner.
[0123] As discussed below, the memory may include, for example, flash memory and / or NVRAM memory. In one embodiment, a computer program product is tangibly embodied in an information carrier. The computer program product includes instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer or machine readable medium, such as memory 1264, expansion memory 1274, or memory on processor 1252, which may be received, for example, via transceiver 1268 or external interface 1262.
[0124] Device 1250 can communicate wirelessly via communication interface 1266, which may include digital signal processing circuitry as necessary. Communication interface 1266 may provide for communication in various modes or protocols such as GSM voice calls, SMS, EMS or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000 or GPRS. Such communication may occur, for example, via radio frequency transceiver 1268. In addition, short-range communication may occur, such as using Bluetooth, WiFi or other such transceivers (not shown). In addition, GPS (Global Positioning System) receiver module 1270 may provide additional navigation and location-related wireless data to device 1250, which may be used appropriately by applications executed on device 1250.
[0125] Device 1250 may also communicate audibly using audio codec 1260, which may receive verbal information from a user and convert it into usable digital information. Audio codec 1260 may likewise generate audible sounds for the user, such as through, for example, a speaker in a headset of device 1250. Such sounds may include sounds from voice phone calls, may include recorded sounds (e.g., voice messages, music files, etc.), and may also include sounds generated by applications operating on device 1250.
[0126] As shown, computing device 1250 can be implemented in many different forms. For example, it can be implemented as a cellular phone 1280. It can also be implemented as part of a smart phone 1282, a personal digital assistant, or other similar mobile device.
[0127] Various implementations of the systems and techniques described herein can be implemented using digital electronic circuit systems, integrated circuit systems, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementations in one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor, which can be special-purpose or general-purpose, coupled to receive data and instructions from a storage system, at least one input device, and at least one output device, and to transmit data and instructions to the storage system, at least one input device, and at least one output device.
[0128] These computer programs (also referred to as programs, software, software applications or code) include machine instructions for a programmable processor and can be implemented in high-level procedural and / or object-oriented programming languages and / or in assembly / machine languages. As used herein, the terms "machine-readable medium", "computer-readable medium" refer to any computer program product, apparatus and / or device (e.g., disk, optical disk, memory, programmable logic device (PLD)) for providing machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal for providing machine instructions and / or data to a programmable processor.
[0129] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and pointing device (e.g., a mouse or trackball) that the user can use to provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, voice, or tactile input.
[0130] The systems and techniques described herein can be implemented in a computing system that includes a back-end component (e.g., as a data server), or includes a middleware component (e.g., an application server), or includes a front-end component (e.g., a client computer with a graphical user interface or a Web browser that a user can use to interact with embodiments of the systems and techniques described herein), or includes any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), and the Internet.
[0131] A computing system can include clients and servers. Clients and servers are usually remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
[0132] A number of embodiments have been described, however, it will be appreciated that various modifications can be made without departing from the spirit and scope of the invention.
[0133] In addition, the logic flows depicted in the figures do not require the particular order or sequential order shown to achieve the desired results. In addition, other steps can be provided from the described processes, or steps can be eliminated, and other components can be added to or removed from the described systems. Therefore, other implementations are within the scope of the following claims.
Claims
1. A non-transitory computer-readable storage medium comprising instructions stored thereon, which, when executed by at least one processor of a computing device including a camera located behind a touch screen of the computing device and configured to capture visual data from light passing through the touch screen, causes the computing device to: receiving, via the touch screen, a first measured touch value indicating a first touch input at a first location; receiving, via the touch screen, a second measured touch value indicating a second touch input at a second location farther from the camera than the first location, a density of touch sensors in the second location being greater than a density of touch sensors in the first location, wherein the second position does not cover the camera, and wherein the first position covers the camera such that the density of touch sensors covering the camera is reduced relative to other positions on the touch screen, thereby causing the camera to capture the visual data from light passing through the first position; generating a first compensated touch value based on the first measured touch value and a first scaling value; generating a second compensated touch value based on the second measured touch value and a second scaled value, the second scaled value being less than the first scaled value; and The first touch input and the second touch input are processed based on the first compensated touch value and the second compensated touch value to compensate for a reduced density of touch sensors in the first location compared to the second location.
2. The non-transitory computer-readable storage medium of claim 1, wherein: A ratio between the first scaling value and the second scaling value is inversely proportional to a ratio of the density of the touch sensors in the first location and the density of the touch sensors in the second location.
3. The non-transitory computer-readable storage medium of claim 1, wherein: The first measured touch value indicates a change in capacitance in response to the first touch input.
4. The non-transitory computer-readable storage medium of claim 3, wherein: The second measured touch value indicates a change in capacitance in response to the second touch input.
5. The non-transitory computer-readable storage medium of claim 1, wherein: The touch screen includes a capacitive touch screen.
6. A method for correcting touch input, comprising: receiving, via a touch screen of a computing device, a first measured touch value indicating a first touch input at a first location; receiving, via the touch screen, a second measured touch value indicating a second touch input at a second location farther from a camera of the computing device than the first location, wherein the camera is configured to capture visual data from light that passes through the touch screen, wherein a density of touch sensors in the second location is greater than a density of touch sensors in the first location, wherein the second location does not cover the camera, and wherein the first location covers the camera such that the density of touch sensors covering the camera is reduced relative to other locations on the touch screen, thereby causing the camera to capture the visual data from light that passes through the first location; generating, by one or more processors of the computing device, a first compensated touch value based on the first measured touch value and a first scaling value; generating, by the one or more processors, a second compensated touch value based on the second measured touch value and a second scaled value, the second scaled value being less than the first scaled value; and The first touch input and the second touch input are processed by the one or more processors based on the first compensated touch value and the second compensated touch value to compensate for a reduced density of touch sensors in the first location compared to the second location.
7. The method according to claim 6, wherein: A ratio between the first scaling value and the second scaling value is inversely proportional to a ratio of the density of the touch sensors in the first location and the density of the touch sensors in the second location.
8. A computing device comprising: A touch screen, the touch screen comprising a plurality of touch sensors; a camera positioned behind the touch screen and configured to capture visual data from light passing through the touch screen, wherein a first position of the touch screen covers the camera and a second position of the touch screen does not cover the camera, wherein a density of the plurality of touch sensors in the second position is greater than a density of the plurality of touch sensors in the first position such that the density of touch sensors covering the camera is reduced relative to other positions on the touch screen; One or more processors configured to: receiving, via the touch screen, a first measured touch value indicating a first touch input at a first location; receiving, via the touch screen, a second measured touch value indicating a second touch input at a second location; generating a first compensated touch value based on the first measured touch value and a first scaling value; generating a second compensated touch value based on the second measured touch value and a second scaled value, the second scaled value being less than the first scaled value; and The first touch input and the second touch input are processed based on the first compensated touch value and the second compensated touch value to compensate for a reduced density of touch sensors in the first location compared to the second location.
9. The computing device of claim 8, wherein: A ratio between the first scaling value and the second scaling value is inversely proportional to a ratio of the density of the touch sensors in the first location and the density of the touch sensors in the second location.
Citation Information
Patent Citations
Method and apparatus for improving capacitive sensing detection
CN106990880A