Optical navigation device, optical sensor device and method
By adopting the technology of adjustable frame rate in the optical navigation device, combined with actual and predicted displacement data, the high power consumption problem of traditional optical navigation devices during low-speed operation is solved, and the consistency of displacement variation returns and power savings are achieved.
Patent Information
- Application Number
- CN202110216729.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-10-20
- Filing Date
- 2021-02-26
- Publication Date
- 2025-01-14
- Estimated Expiration
- 2041-02-26
AI Technical Summary
Traditional optical navigation devices are difficult to achieve lower power consumption when operating at low speeds, and the minimum frame rate requirements limit the capabilities of the e-sports sensors and cannot maintain consistency in the return on displacement variation.
By introducing a mechanism that adjusts the frame rate in the optical navigation device, multiple image frames are captured to generate actual displacement data, and combined with predicted displacement data to form synthetic displacement data, output to remote computer devices, adapt to different polling frequency requirements, and achieve high speed Switch between tracking mode and energy saving mode.
Effectively save power during low-speed operation, while maintaining consistency in the return on displacement variation, reducing current consumption, and significantly reducing battery current consumption in high-speed tracking mode.
Smart Images

Figure CN114442821B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to an optical navigation device, and more particularly to an optical navigation device, an optical sensor device, and a method applied to an optical navigation device. Background Art
[0002] Generally speaking, for a traditional optical navigation device (especially a high-performance gaming mouse device), the minimum frame rate requirement is generally maintained at 1Kfps (i.e., 1,000 frames per second), so that it can be the same as the reporting frequency corresponding to the displacement change reported once every 1 millisecond by the universal serial bus of the high-performance gaming mouse device to maintain the consistency of the change report (delta reporting). However, the minimum frame rate requirement of 1,000 frames per second will limit the capabilities of gaming sensors and cannot achieve the effect of lower power consumption at low-speed operations. Summary of the invention
[0003] Therefore, one of the objectives of the present application is to disclose an optical navigation device and an optical sensor device to solve the above-mentioned problems.
[0004] According to an embodiment of the present application, an optical navigation device is disclosed. The optical navigation device is used to communicate with a remote computer device based on a transmission interface, and includes a controller and an optical sensor device. The controller is coupled to the remote computer device through the transmission interface, and is used to output the synthetic displacement data generated by the optical sensor device to the remote computer device based on the specific polling frequency specified by the transmission interface. The optical sensor device is coupled to the controller, and is used to generate the synthetic displacement data according to a specific frame rate and then output the synthetic displacement data to the controller. The specific frame rate is lower than the specific polling frequency specified by the transmission interface; and the optical sensor device is capable of capturing multiple image frames according to the specific frame rate to obtain actual displacement data corresponding to the multiple image frames, generating predicted displacement data based on the actual displacement data, and using the actual displacement data and the predicted displacement data to form the synthetic displacement data to be output to the controller.
[0005] According to an embodiment of the present application, an optical sensor device is disclosed. The optical sensor device is used to communicate with a remote computer device based on a transmission interface, and includes a sensing unit and a processing circuit. The sensing unit is used to receive and sense light reflected from the surface on which the optical navigation device moves according to a specific flash frequency, and the specific flash frequency is lower than the specific polling frequency of the transmission interface. The processing circuit is coupled to the light emitting unit and is used to capture multiple image frames according to a specific frame rate to generate actual displacement data and predicted displacement data to form synthetic displacement data, and the synthetic displacement data is output from the optical navigation device to the remote computer device.
[0006] According to an embodiment of the present application, a method for an optical navigation device is disclosed. The optical navigation device communicates with a remote computer device based on a transmission interface, and the method includes: capturing multiple image frames according to a specific frame rate to obtain actual displacement data corresponding to the multiple image frames, the specific frame rate is lower than a specific polling frequency specified by the transmission interface; generating predicted displacement data based on the actual displacement data; using the actual displacement data and the predicted displacement data to form synthetic displacement data to be output; and outputting the synthetic displacement data to the remote computer device based on the specific polling frequency specified by the transmission interface.
[0007] According to an embodiment of the present application, a novel optical navigation interpolation or extrapolation algorithm / mechanism at low speeds is disclosed to enable the use of e-sports sensors with higher performance, operating them at a frame rate corresponding to a polling frequency limit lower than the minimum / post-protocol limit (e.g., 1,000 frames per second) while maintaining / preserving the consistency of displacement change reports. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Figure 1 It is a block diagram showing an optical navigation device communicating with a remote computer device based on a transmission interface such as a universal serial bus transmission interface according to an embodiment of the present application.
[0009] Figure 2 According to an embodiment of the present application Figure 1 An exemplary schematic diagram of an optical navigation device operating in a high-speed tracking mode or a power-saving mode.
[0010] Figure 3 According to another embodiment of the present application Figure 1 An exemplary schematic diagram of an optical navigation device operating in a high-speed tracking mode or a power-saving mode.
[0011] Figure 4 According to another embodiment of the present application Figure 1An exemplary schematic diagram of an optical navigation device operating in a high-speed tracking mode or a power-saving mode.
[0012] Figure 5 According to another embodiment of the present application Figure 1 An exemplary schematic diagram of an optical navigation device operating in a high-speed tracking mode or a power-saving mode.
[0013] Figure 6 According to another embodiment of the present application Figure 1 An exemplary schematic diagram of an optical navigation device operating in a high-speed tracking mode or a power-saving mode.
[0014] The reference numerals are described as follows:
[0015] 100 Optical navigation device
[0016] 101 Remote Computer Devices
[0017] 105 Controller
[0018] 110 Optical sensor device
[0019] 115 Lighting Unit
[0020] 1101 Sensor unit
[0021] 1102 Processing Circuit
[0022] 1103 Buffer DETAILED DESCRIPTION
[0023] The present application aims to disclose an optical navigation device, which is capable of supporting one or more operation modes corresponding to different polling / reporting frequency (or minimum polling / reporting rate) requirements, and these polling / reporting frequencies are respectively regulated by an intermediate transmission interface, that is, the reporting frequency of the optical navigation device can also be regarded as the polling frequency of the transmission interface, and the transmission interface is, for example, a universal serial bus (USB) transmission interface between the optical navigation device and a remote computer device (such as a host personal computer).
[0024] In one or each operation mode, the optical navigation device can capture multiple image frames according to an adjustable / variable frame rate (VFR) to generate displacement / position data, and then report the displacement / position data to the remote computer device based on the specified polling frequency and through the universal serial bus transmission interface, wherein the adjustable / variable frame rate is higher than, equal to or equivalent to the minimum polling frequency. In addition, the optical navigation device can capture multiple image frames according to the variable frame rate lower than the above-mentioned polling frequency (or the minimum polling frequency) to save more power and at the same time in this case can generate a predicted displacement data to use an actual displacement data and the predicted displacement data to form a composite displacement data, and then report the composite displacement data to the remote computer device based on the specified polling frequency and through the universal serial bus transmission interface.
[0025] The optical navigation device is, for example, an optical navigation mouse device. The one or more operation modes may include a high-speed tracking mode corresponding to a requirement of a higher polling frequency (for example, a polling frequency higher than or equal to 1KHz, but not limited thereto) and a power saving mode corresponding to a requirement of a lower polling frequency (for example, a polling frequency lower than 1KHz, but not limited thereto). The transmission interface is, for example, a universal serial bus transmission interface that defines or standardizes the requirements of a higher polling frequency and a lower polling frequency.
[0026] In each operation mode (either the high-speed tracking mode or the power-saving mode), the optical navigation device can be used to predict the displacement / movement of the optical navigation device to generate a predicted displacement data and to combine or combine the predicted displacement data with an actual displacement data directly generated from one or more captured images to form a synthetic displacement data, wherein the amount of data of the formed synthetic displacement data meets the requirement of a higher frame reporting frequency defined in the high-speed tracking mode, so the optical navigation device can reduce its own frame rate and light emission frequency to save more power, especially for the high-speed tracking mode, it can save power more effectively. For example, in the high-speed tracking mode, the requirement of a higher frame reporting frequency is usually defined as that the minimum reporting frequency must be equal to 1KHz (but not limited). It should be noted that in order to save more power in the high-speed tracking mode, the optical navigation device can reduce its variable frame rate but not reduce the requirement of the minimum reporting frequency.
[0027] Figure 1The block diagram of an optical navigation device 100 for communicating with a remote computer device 101 based on a universal serial bus transmission interface (but not limited thereto) according to an embodiment of the present application, the optical navigation device 100 is, for example, a mouse device for optical navigation tracking, such as an e-sports mouse device with high-speed performance (but not limited thereto), and the remote computer device 101 is a host device, such as a personal computer, and the personal computer can poll the optical navigation device 100 by periodically sending a polling request and transmitting the polling request to the optical navigation device 100 through the universal serial bus transmission interface, so that the optical navigation device 100 reports the displacement / position data of the optical navigation device 100. For example, if the minimum polling frequency (i.e., the minimum reporting frequency) needs to be at least equal to 1KHz, the optical navigation device 100 is at least required to report a displacement data to the remote computer device 101 through the universal serial bus transmission interface at least every millisecond; however, this is not a limitation of the present application.
[0028] The optical navigation device 100 includes a controller 105 (e.g., a microcontroller MCU), an optical sensor device 110, and a light-emitting unit 115 (e.g., a light-emitting diode LED). The optical sensor device 110 includes a sensor unit 1101, a processing circuit 1102, and a buffer 1103. The controller 105 is coupled to the remote computer device 101 via the universal serial bus transmission interface. The optical sensor device 110 is coupled to the controller 105 and also coupled to the light-emitting unit 115. The processing circuit 1102 is coupled to the sensor unit 1101 and also coupled to the buffer 1103. The optical sensor device 110 is coupled to the controller 105 and is used to generate the synthetic displacement data according to an adjustable / variable frame rate and then output the synthetic displacement data to the controller 105. The adjustable / variable frame rate is lower than the specific polling frequency specified by the universal serial bus transmission interface. In addition, the optical sensor device 110 is capable of capturing multiple image frames according to the adjustable / variable frame rate to obtain actual displacement data corresponding to the captured multiple image frames, predicting and generating another displacement data based on the actual displacement data, and using the actual displacement data and the predicted displacement data to form the synthetic displacement data to be output to the controller 105.
[0029] In one embodiment, at the beginning of each image frame, the processing circuit 1102 controls and provides a current pulse to the light emitting unit 115, so that the light emitting unit 115 emits light / flashes to a working surface where the optical navigation device 100 moves; that is, the flashing frequency or the light emitting frequency will be equal to or consistent with the frame rate. In addition, in one embodiment, for a portion of the image frames, the processing circuit 1102 may not provide a current pulse to the light emitting unit 115 so that it does not flash, that is, the flashing frequency or the light emitting frequency may be lower than the frame rate, and it may be dynamically controlled by the processing circuit 1102.
[0030] The processing circuit 1102 then controls the sensor unit 1101 to receive and sense the reflected light from the work surface to capture one or more frames or one or more images. The processing circuit 1102 then performs digital signal processing and executes a navigation engine / operation according to the captured one or more frames to generate actual displacement data, wherein the navigation engine can be hardware, software or a combination thereof. The actual displacement data generated by the processing circuit 1102 is then transmitted to and stored in the buffer 1103. In addition, after generating the actual displacement data, if necessary, the processing circuit 1102 can perform an operation of predicting and generating displacement data once or multiple times, and the predicted displacement data is then transmitted to the buffer 1103 to update the actual displacement data stored in the buffer 1103 or update the previous predicted displacement data stored in the buffer 1103.
[0031] In practice, a set of actual displacement data includes two actual change values (delta values) respectively related to two coordinate axes, namely, the actual change value of the X axis and the actual change value of the Y axis. For example, the actual change value of the X axis and the actual change value of the Y axis will correspond to the two actual movement differences of the X axis and the Y axis respectively, or they will correspond to the two actual moving average differences of the X axis and the Y axis respectively, or they will correspond to multiple combinations of the above-mentioned actual movement differences and the actual moving average differences. Similarly, a set of predicted displacement data includes two predicted change values respectively related to two coordinate axes, namely, the predicted change value of the X axis and the predicted change value of the Y axis. For example, the predicted change value of the X axis and the predicted change value of the Y axis will correspond to the two predicted movement differences of the X axis and the Y axis respectively, or they will correspond to the two predicted moving average differences of the X axis and the Y axis respectively, or they will correspond to multiple combinations of the above-mentioned predicted movement differences and the predicted moving average differences. It should be noted that the above-mentioned implementation variations are not limitations of the present application.
[0032] The controller 105 can obtain or acquire the displacement data currently stored in the buffer 1103 to use the obtained data information as the synthetic displacement data, that is, the synthetic data can be formed by actual data, a combination of the actual data and the predicted data, or actual data updated by the predicted data, and the controller 105 can output the synthetic displacement data to the remote computer device 101 based on the specific polling frequency (or minimum polling frequency) specified by the universal serial bus transmission interface. For example (but not limited to), since the minimum polling frequency of the universal serial bus transmission interface is 1KHz, the controller 105 can obtain or acquire the information of the displacement data currently stored in the buffer 1103 every 1 millisecond.
[0033] The processing circuit 1102 is capable of generating sufficient actual displacement data to the buffer 1103 according to a variable frame rate higher than the minimum polling frequency or a variable frame rate higher than the specific polling frequency specified in the universal serial bus transmission interface. It can also generate actual displacement data according to a variable frame rate lower than the minimum polling frequency or a variable frame rate lower than the specific polling frequency and additionally predict sufficient displacement data to update the actual displacement data, so as to equivalently form sufficient synthetic displacement data to timely or immediately reflect the position or movement of the optical navigation device 100.
[0034] That is to say, in order to save more power, the frequency of generating the actual displacement data and the light emitting frequency are both on average lower than the minimum polling frequency or lower than the specific / protocol polling frequency (i.e., the reporting frequency), while the frequency of generating the actual displacement data plus the calculated predicted displacement data meets or is equal to the minimum polling frequency or the specific / protocol polling frequency. This means that for the controller 105 (or for the remote computer device 101), the updated information of the displacement data currently stored in the buffer 1103 is applicable or available both on average and in real time, and can accurately reflect the movement of the optical navigation device 100.
[0035] Figure 21 is a schematic diagram showing an example of the optical navigation device 100 operating in a high-speed tracking mode according to an embodiment of the present application. The optical navigation device 100 is, for example, an e-sports mouse requiring high performance. The minimum polling frequency specified in the universal serial bus transmission interface is set to 1 kHz. In this example, the optical navigation device 100 can be used to control the optical sensor device 110 to operate at a frame rate equal to or consistent with the minimum polling frequency to capture one or more images to generate and store sufficient actual displacement data to the buffer 1103, wherein the frame rate is, for example, 1 Kfps (i.e., 1,000 frames per second) to maintain consistency between the report of the displacement change and the polling frequency of the universal serial bus corresponding to the report every 1 millisecond.
[0036] At the beginning of one or each image frame, the optical sensor device 110 is used to provide a current pulse to the light emitting unit 115 to emit light to the working surface on which the optical navigation device 100 is placed, so that the sensor unit 1101 receives and senses the reflected light from the working surface to obtain one or more images. Figure 2 As shown, the current pulse times of the plurality of light emitting diodes respectively show that the current pulses are provided to the light emitting unit 115 in different frames to control the light emitting time of the light emitting unit 115. Then, after the light sensing operation is completed, the processing circuit 1102 performs digital signal processing and performs or uses the optical navigation engine to calculate the change values (i.e., the actual movement differences of the X-axis and the Y-axis, the actual moving average differences, or multiple corresponding combinations of the actual movement differences and the actual moving average differences), and the change values will be stored in the register 1103. Therefore, when the execution of the optical navigation engine is completed each time (i.e., before the end of the frame and at the end of the optical navigation operation), the actual change values will be available to the controller 105. For displacement / position change, the pulse signals displayed on the displacement / position change signal line are used to indicate that the displacement data (i.e., the plurality of change values) stored in the register 1103 become available at the timing associated with the pulse signals, however, this is not a limitation of the present application. Furthermore, in Figure 2 In the example of FIG. 1 , the processing circuit 1102 may also decide not to reduce the variable frame rate, and a frequency for generating actual displacement data based on the captured multiple image frames meets the requirement of the minimum polling frequency.
[0037] In another embodiment, in order to save more battery power of the optical navigation device 100, the processing circuit 1102 can reduce the variable frame rate to a lower frame rate to equivalently reduce the flash frequency of the light-emitting unit 115 and additionally generate or calculate the predicted displacement data (i.e., multiple predicted change values) to update the information / values of the actual displacement data generated from the image captured by the lower flash frequency. The processing circuit 1102 is capable of controlling the specific flash frequency to make it consistent with or lower than the specific polling frequency of the transmission interface (i.e., the polling frequency or the lowest polling frequency in either the high-speed tracking mode or the energy-saving mode).
[0038] In practice, in order to dynamically determine the value of the lower variable frame rate, the optical navigation device 100 (or the processing circuit 1102) is used to detect or predict the moving speed of the optical navigation device 100 on the working surface based on the currently used frame rate (i.e., the previously adjusted frame rate) so as to determine the actual value of the variable frame rate, and the determined actual value of the variable frame rate is sufficient to effectively track the movement of the optical navigation device 100 and effectively save more power of the optical navigation device 100. For example, the following table shows the relationship between the current consumption, frame rate, and moving speed of the optical navigation device 100 in different examples according to the embodiment of the present application:
[0039]
[0040] As shown above, the movement speed or average movement speed of the optical navigation device 100 may vary, for example, from 1 inch per second to 30 inches per second, however, this is not a limitation of the present application. In response to different movement speeds, in order to still effectively track the movement of the optical navigation device 100, the optical navigation device 100 may perform operations according to different frame rates, and the variation of the different frame rates may range from 600 frames per second to 2,000 frames per second, however, this is not a limitation of the present application. In other words, in response to different movement speeds, the optical navigation device 100 (or the processing circuit 1102) may control / adjust the variable frame rate so that the variable frame rate becomes lower, such as a frame rate lower than the minimum polling frequency of 1 kHz. For example, when the movement speed becomes smaller (such as 1 inch per second, 5 inches per second, or 10 inches per second), the processing circuit 1102 may adjust its variable frame rate to 600 frames per second or 800 frames per second. In addition, the current consumption of the battery of the optical navigation device 100 is almost dominated by the light emission frequency and is almost proportional to the light emission frequency, which is proportional to the variable frame rate. In this way, under the condition that the movement of the optical navigation device 100 can still be effectively tracked, dynamically adjusting the variable frame rate to a different and lower frequency based on different situations can effectively reduce its current consumption and save more power from its battery. For example, compared with conventional technology, the current consumption of the optical navigation device 100 can be reduced to 0.611 mA or 0.443 mA, which is significantly lower than the current consumption of 0.785 mA corresponding to the conventional technology that maintains the frame rate at a minimum frequency of 1,000 frames per second.
[0041] Figure 3 1 is another exemplary schematic diagram of the optical navigation device 100 operating in a high-speed tracking mode according to an embodiment of the present application. In this example, the optical navigation device 100 can be used to control the optical sensor device 110 to operate at an adjustable / variable frame rate to capture one or more images to generate actual displacement data and then predict another displacement data based on the actual displacement data so as to generate sufficient displacement data for the controller 105. For example (but not limited to), when the polling frequency of the universal serial bus transmission interface is maintained at 1.2 thousand frames per second by the protocol, the variable frame rate can be adjusted to 600 frames per second, that is, the frequency of the variable frame rate can be adjusted to half of the agreed polling frequency. In other examples, the variable frame rate can also be adjusted to 500 frames per second, that is, half of the minimum polling frequency of 1KHz.
[0042] like Figure 3As shown in, for example, when the optical navigation device 100 moves slowly on the work surface, for example, when it can detect that its moving speed is 1 inch per second (but not limited to), the variable frame rate can be reduced and adjusted to a lower frame rate, for example, when the optical navigation device 100 moves at a moving speed of 1 inch per second, a frame rate that can be effectively used to track the movement of the optical navigation device 100 is 600 frames per second. At the beginning of one or each frame corresponding to 600 frames per second, the processing circuit 1102 provides a current pulse to control the light emitting unit 115 to enable the sensor unit 1101 to capture / acquire a frame / image, and then performs digital signal processing and the operation of the optical navigation engine to calculate the actual change values. At the end of the execution of the optical navigation engine of one or each image frame, the processing circuit 1102 generates a set of actual change values to the register 1103 to update the information / one or more values of the displacement data stored in the register 1103, so that the data of the change values becomes available at the end of the execution of the optical navigation engine. During a period between the end of the execution of the optical navigation engine and the end of one or each image frame, the processing circuit 1102 predicts and generates a set of predicted / estimated change values to the register 1103 to update the information / one or more values of the displacement data stored in the register 1103, so that for the data reading of the controller 105, the data of the estimated change values at this time point also becomes available. Equivalently, in this example, the processing circuit 1102 is used to insert a set of estimated change values / displacement values between any two consecutive sets of actual change values / displacement values generated by multiple image frames captured by the optical sensor device 110. Furthermore, it should be noted that the multiple pulse signals displayed on the displacement change signal line are used to indicate whether the displacement data stored in the buffer 1103 is the same as that in the Figure 3 The timings of the pulse signals shown above become available. In this example, the frequency of generating the actual change values plus generating the predicted change values is equal to 1.2KHz on average, which is at least higher than the minimum polling frequency of 1KHz, or meets the agreed polling frequency of 1.2KHz. However, this is not a limitation of the present application.
[0043] Furthermore, in another embodiment, the variable frame rate can be adjusted to another different frame rate MN×PR, where the value of M is a positive integer less than the integer N, and PR represents the polling frequency (or minimum polling frequency) after the protocol defined in the universal serial bus transmission interface. For example, after detecting the moving speed, the optical navigation device 100 (or the processing circuit 1102) can decide to set the value of M to 1 and the value of N to 4 based on the detected moving speed to reduce power consumption and still be able to effectively track the movement of the optical navigation device 100. Therefore, in this example, if the polling frequency PR of the protocol is equal to 1.2KHz, the variable frame rate will be equal to 0.25×PR=300fps. Therefore, in each image frame, the optical sensor device 110 is used to predict and generate more estimated change data. In this example, for each image frame, the optical sensor device 110 generates 3 sets of predicted change values (but not limited to), and the 3 sets of predicted change values will follow one set of actual change values in sequence, so that the information of the displacement data stored in the buffer 1103 can be updated and available according to an average frequency of 1.2KHz; Figure 4 Equivalently, in this embodiment, the processing circuit 1102 is used to insert three sets of predicted change / displacement values between any two consecutive sets of actual change / displacement values generated by the image frames captured by the optical sensor device 110 .
[0044] In another embodiment, in order to make the synthetic change data stored in the buffer 1103 updated and available at least according to the minimum required polling frequency (e.g., 1 KHz), the optical sensor device 110 can predict and generate the change values to the buffer 1103 for different frames at different timing points. Figure 5 and Figure 6 , Figure 5 is a schematic diagram of an example of an operation of performing A1 and A2 predictions and generating change values on the optical navigation device 100 for a plurality of different frames (such as any two consecutive frames, but not limited thereto) according to an embodiment of the present application. Figure 6 1 is a schematic diagram showing an example of the optical navigation device 100 performing A1, A2, A3 and A4 predictions and generating change values for a plurality of different image frames according to an embodiment of the present application.
[0045] like Figure 5As shown, for example, the processing circuit 1102 can perform A1 predictions during a time period between the start and end of a first image frame F1 and generate multiple variable values, and can also perform A2 predictions during a time period between the start and end of a second image frame F2 and generate multiple variable values. The values of integers A1 and A2 are not the same, and in this example, the second image frame F2 is after the first image frame F1, and in another example, the second image frame F2 is after the first image frame F1 and directly follows the first image frame F1. Figure 5 As shown, for any two consecutive image frames, the optical sensor device 110 can be used to perform A1 and A2 predictions respectively and generate multiple change values. It should be noted that the processing circuit 1102 is used to periodically perform A1 or A2 operations to generate multiple predicted change values during a time period between the end of the execution of the optical navigation engine of an image frame and the end of the image frame. For example, in one embodiment, the predicted change values of the A1 group can be evenly or non-evenly distributed during a time period between the end of the execution of the optical navigation engine of an image frame F1 and the end of the image frame F1, and the predicted change values of the A2 group can be evenly or non-evenly distributed during a time period between the end of the execution of the optical navigation engine of an image frame F2 and the end of the image frame F2.
[0046] like Figure 6As shown, for example, the processing circuit 1102 may perform A1 predictions during a time period between the start and end of a first image frame F1 and generate a plurality of change values, perform A2 predictions during a time period between the start and end of a second image frame F2 and generate a plurality of change values, perform A3 predictions during a time period between the start and end of a third image frame F3 and generate a plurality of change values, and perform A4 predictions during a time period between the start and end of a fourth image frame F4 and generate a plurality of change values, etc. The values of integers A1, A2, A3, and A4 may be different, partially different, or all the same, which is not a limitation of the present application. For each image frame, a plurality of groups of predicted change values having different numbers may be evenly or non-evenly distributed within a time period between the end of the execution of the optical navigation engine of each image frame and the end of each image frame. It should be noted that any integer among A1, A2, A3 and A4 and the subsequent integers can also be set to zero, that is, the processing circuit 1102 can insert more sets of predicted change values for one frame, and can not insert predicted change values for another different frame. In other words, in some cases, there may be no predicted change values generated and inserted between two sets of actual change values related to two frames, that is, there is no predicted displacement data. Furthermore, the frequency of generating the actual change values plus the frequency of generating the predicted change values is equivalent to (or consistent with) or higher than the frequency of the minimum polling frequency on average, thereby making it possible to effectively and accurately track the movement of the optical navigation device 100 and greatly reduce the current consumption of its battery. In this way, whether in the high-speed tracking mode or the energy-saving mode, when the optical navigation device 100 moves slower, more power can be saved.
[0047] Furthermore, the operation of generating the predicted change / displacement data may be performed by interpolating or extrapolating the predicted change / displacement data by predicting the movement speed of the optical navigation device 100 based on previously estimated displacement data, a portion of actual displacement data (generated from one or more captured images) and / or the previously adjusted variable frame rate, or based on any combination of the above three. Furthermore, in other embodiments, the operation of generating the predicted change / displacement data may be performed by interpolating or extrapolating the predicted displacement data by predicting the movement speed of the optical navigation device 100 based on the movement detected in one or more previous frames and / or the previously adjusted variable frame rate, and the detected movement is a portion of the actual displacement data corresponding to the multiple image frames captured by the optical sensor device 110. Furthermore, the optical sensor device 110 may also be used to generate a set of predicted change values on the X-axis and the Y-axis based on multiple differences or multiple averages of at least two sets of actual change values on the X-axis and the Y-axis.
[0048] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention shall be included in the protection scope of the present invention.
Claims
1. An optical navigation device, used to communicate with a remote computer device based on a transmission interface, and supporting at least one operation mode, wherein the operation mode corresponds to a specific polling frequency specified by the transmission interface, characterized in that: include: a controller coupled to the remote computer device via the transmission interface, and configured to output the synthetic displacement data generated by the optical sensor device to the remote computer device based on a specific polling frequency specified by the transmission interface; as well as The optical sensor device is coupled to the controller and is used to generate the synthetic displacement data according to a specific frame rate and then output the synthetic displacement data to the controller; wherein the specific frame rate is lower than the specific polling frequency specified by the transmission interface; The optical navigation device is used to detect the moving speed of the optical navigation device on the work surface based on the currently used frame rate; and the optical sensor device is capable of capturing a plurality of image frames according to the specific frame rate to obtain actual displacement data corresponding to the plurality of image frames, generating predicted displacement data based on the actual displacement data when the moving speed is low, and using the actual displacement data and the predicted displacement data to form the synthesized displacement data to be output to the controller, and then reporting the synthesized displacement data to the remote computer device based on the specific polling frequency and through the transmission interface; The optical sensor device is used for generating and inserting a set of predicted displacement data between every two consecutive sets of actual displacement data generated by the plurality of image frames captured by the optical sensor device.
2. The optical navigation device according to claim 1, wherein: The optical sensor device is used to extrapolate the predicted displacement data by predicting the moving speed of the optical navigation device based on the specific frame rate and a portion of the actual displacement data corresponding to the plurality of image frames captured by the optical sensor device.
3. The optical navigation device according to claim 1, wherein: The optical sensor device is used to generate a set of predicted displacement data on the X-axis and the Y-axis according to a plurality of differences or a plurality of average values of at least two sets of actual displacement data on the X-axis and the Y-axis.
4. The optical navigation device as claimed in claim 1, wherein include: a light emitting unit, configured to emit light to the surface on which the optical navigation device moves according to a specific flashing frequency, wherein the specific flashing frequency is lower than the specific polling frequency of the transmission interface; and The optical sensor device comprises: a sensing unit for receiving and sensing light reflected from the surface to capture one or more image frames; and A processing circuit is coupled to the light emitting unit and is used for generating the actual displacement data and the predicted displacement data.
5. An optical sensor device for communicating with a remote computer device based on a transmission interface and supporting at least one operation mode, wherein the operation mode corresponds to a specific polling frequency specified by the transmission interface, characterized in that: Included are: a sensing unit for receiving and sensing light reflected from a surface on which an optical navigation device moves according to a specific flash frequency, wherein the specific flash frequency is lower than a specific polling frequency of the transmission interface, wherein the optical navigation device includes the optical sensor device and a light emitting unit; as well as a processing circuit coupled to the light emitting unit, for capturing a plurality of image frames according to a specific frame rate to generate actual displacement data and predicted displacement data to form synthetic displacement data, wherein the synthetic displacement data is output from the optical navigation device to the remote computer device; wherein the specific frame rate is lower than the specific polling frequency specified by the transmission interface; The optical navigation device is used to detect the moving speed of the optical navigation device on the work surface based on the currently used frame rate; and the processing circuit is used to capture the plurality of image frames according to the specific frame rate to obtain actual displacement data corresponding to the captured plurality of image frames, generate predicted displacement data based on the actual displacement data when the moving speed is relatively low, and use the actual displacement data and the predicted displacement data to form the synthesized displacement data output from the optical navigation device, and then report the synthesized displacement data to the remote computer device based on the specific polling frequency and through the transmission interface; The optical sensor device is used for generating and inserting a set of predicted displacement data between every two consecutive sets of actual displacement data generated by the plurality of image frames captured by the optical sensor device.
6. The optical sensor device according to claim 5, characterized in that The processing circuit is used for extrapolating the predicted displacement data by predicting the moving speed of the optical navigation device based on the specific frame rate and a portion of the actual displacement data corresponding to the plurality of image frames captured by the optical sensor device.
7. The optical sensor device according to claim 5, characterized in that The processing circuit is used for generating a set of predicted displacement data on the X-axis and the Y-axis according to a plurality of differences or a plurality of average values of at least two sets of actual displacement data on the X-axis and the Y-axis.
8. A method for an optical navigation device, wherein the optical navigation device communicates with a remote computer device based on a transmission interface and supports at least one operation mode, wherein the operation mode corresponds to a specific polling frequency specified by the transmission interface, wherein the optical navigation device includes an optical sensor device, characterized in that: The method comprises: capturing a plurality of image frames according to a specific frame rate to obtain actual displacement data corresponding to the plurality of image frames, wherein the specific frame rate is lower than a specific polling frequency specified by the transmission interface; detecting a moving speed of the optical navigation device on the work surface based on a currently used frame rate; generating predicted displacement data based on the actual displacement data when the moving speed is relatively small; using the actual displacement data and the predicted displacement data to form composite displacement data to be output; as well as outputting the synthesized displacement data to the remote computer device based on the specific polling frequency specified by the transmission interface; Wherein, the step of generating predicted displacement data comprises: A set of predicted displacement data is generated and inserted between every two consecutive sets of actual displacement data generated by the plurality of image frames captured by the optical sensor device.
9. The method according to claim 8, characterized in that The step of generating the predicted displacement data comprises: The predicted displacement data is extrapolated by predicting the moving speed of the optical navigation device based on the specific frame rate and a portion of the actual displacement data corresponding to the plurality of image frames captured by the optical sensor device.
10. The method according to claim 8, characterized in that The step of generating the predicted displacement data comprises: A set of predicted displacement data on the X-axis and the Y-axis is generated according to a plurality of differences or a plurality of average values of at least two sets of actual displacement data on the X-axis and the Y-axis.
Citation Information
Patent Citations
Device for controlling screen pointer based on speed frame rate
CN1517943A