Hardware-integrated pointing transfer processing device and method
The hardware-integrated pointing transfer processing device and method address inconsistencies in pointing devices by setting user-defined gains within the hardware firmware, ensuring consistent performance across varying OS and hardware settings.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- IND ACADEMIC COOP FOUND YONSEI UNIV
- Filing Date
- 2025-02-04
- Publication Date
- 2026-05-15
AI Technical Summary
Existing pointing devices, such as mice, suffer from inconsistent performance due to operating system and hardware settings, particularly in environments requiring precise control, like gaming, where default settings can hinder user experience.
A hardware-integrated pointing transfer processing device and method that includes a user control command receiving unit, sensor, and pointing data processing unit to set a user-defined gain, offsetting the base gain provided by the operating system, ensuring consistent pointing performance by embedding this function in the hardware firmware.
Provides consistent pointing performance regardless of operating system or hardware settings, allowing users to define and maintain their desired pointing experience, even with changes in external environments.
Smart Images

Figure 2026079656000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to hardware-embedded pointing transfer processing technology, and more particularly to a hardware-embedded pointing transfer processing device and method that can provide consistent pointing performance regardless of the operating system (OS) or hardware settings via a pointing transfer function embedded in the hardware. [Background technology]
[0002] Indirect pointing devices like mice play a crucial role in human-computer interaction, and the pointing transfer function, which translates mouse movements into on-screen pointer movements, significantly impacts the user experience. However, operating systems often provide transfer functions through fixed settings or limited presets, which may not meet the diverse requirements of individual users.
[0003] For example, Windows' "mouse acceleration" feature significantly impacts the perceived pointer movement speed, but this setting may not be suitable for each user's environment or may even be inconvenient. In particular, in environments requiring highly precise pointer control, such as games, the operating system's default settings can hinder the user experience.
[0004] High-performance users, such as professional gamers, prefer specific settings that allow them to maintain consistent performance without relying on the operating system's fundamental transfer functions. However, some of the operating system's fundamental functions, particularly those that apply non-linear acceleration at varying speeds, can lead to inconsistent results depending on mouse hardware settings (Count per Inch - mouse sensitivity, Polling Rate - mouse polling speed). This becomes a problem in environments requiring precise control that relies on muscle memory.
[0005] To solve this problem, some gamers try to control pointer movement solely through hardware settings, but it remains difficult to completely eliminate the influence of operating system settings. [Prior art documents] [Patent Documents]
[0006] [Patent Document 1] Korean Published Patent No. 10-2012-0050131 [Overview of the project] [Problems that the invention aims to solve]
[0007] The present invention has been made in view of the above-mentioned conventional problems, and the object of the present invention is to provide a hardware-integrated pointing transfer processing device and method that provides consistent pointing performance. [Means for solving the problem]
[0008] A hardware-integrated pointing transfer processing device according to one aspect of the present invention, made to achieve the above objective, comprises: a user control command receiving unit that receives user control commands; a sensor that outputs mouse movement data based on the control commands; and a pointing data processing unit that sets a user-defined gain based on the mouse movement data and provides a counter-gain that cancels out a basic gain provided by the operating system for the user-defined gain.
[0009] The pointing data processing unit may include a gain calculation module that determines the physical movement speed of the sensor in physical units of the mouse movement data and determines the pointer movement speed on the screen in physical units of the mouse movement data. The gain calculation module can calculate the user-defined gain as the ratio between the physical movement speed of the sensor (in m / s) and the movement speed of the pointer on the screen (in px / s). The pointing data processing unit may further include a cancellation gain determination module that determines the cancellation gain through the relationship between the user-defined gain and the base gain. The offset gain determination module can store the offset gain in memory and reflect it in real time each time mouse movement data is generated. The pointing data processing unit may further include a basic gain determination module that determines the basic gain based on an acceleration gain or a constant gain provided by the operating system. The basic gain determination module can calculate a residual value based on the user-defined gain, the offsetting gain, and the basic gain, and correct the error in the mouse movement data that is then input to the gain calculation module.
[0010] A hardware-embedded pointing transfer processing method performed by a hardware-embedded pointing transfer processing device according to one aspect of the present invention, made to achieve the above objective, comprises: a receiving step of receiving a user control command to receive a user control command; a sensing step of a sensor that outputs mouse movement data based on the control command; and a pointing data processing step of setting a user-defined gain based on the mouse movement data and providing a counter-gain that cancels out a basic gain provided by the operating system for the user-defined gain.
[0011] The pointing data processing step may include the steps of determining the physical movement speed of the sensor in physical units of the mouse movement data, determining the movement speed of the pointer on the screen in physical units of the mouse movement data, and calculating the ratio between the physical movement speed of the sensor (unit: m / s) and the movement speed of the pointer on the screen (unit: px / s) as the user-defined gain. The pointing data processing step may include the step of determining the offsetting gain through the relationship between the user-defined gain and the base gain, and the step of storing the offsetting gain in memory and reflecting it in real time each time the mouse movement data is generated. The pointing data processing step may include the steps of determining the base gain based on an acceleration gain or constant gain provided by the operating system, and calculating a residual value based on the user-defined gain, the offsetting gain, and the base gain to correct errors in the next input mouse movement data. [Effects of the Invention]
[0012] The technology disclosed herein has the following effects. However, this does not mean that any particular embodiment must include all of the following effects or only the following effects, and the scope of rights to the disclosed technology should not be understood to be limited by this.
[0013] According to the hardware-integrated pointing transfer processing device and method of the present invention, consistent pointing performance can be provided through a pointing transfer function integrated into the hardware, regardless of the operating system (OS) or hardware settings.
[0014] Furthermore, according to the hardware-embedded pointing transfer processing device and method of the present invention, the relationship between the physical speed of an indirect pointing device such as a mouse and the speed of the pointer on the screen can be defined as a physical unit desired by the user, and by embedding this in the firmware, the same user experience can be provided even when the basic settings of the operating system or the hardware configuration changes. [Brief explanation of the drawing]
[0015] [Figure 1] This diagram illustrates a hardware-integrated pointing transfer processing device according to one embodiment of the present invention. [Figure 2] This diagram illustrates the pointing data processing unit in Figure 1. [Figure 3] This is a flowchart illustrating a hardware-integrated pointing transfer processing method according to one embodiment of the present invention. [Figure 4] This figure shows a custom-made mouse hardware used in one embodiment of the present invention. [Figure 5] This figure shows the firmware configuration of a hardware-embedded pointing transfer processing unit according to one embodiment of the present invention. [Figure 6] This diagram illustrates the setting of user-defined gains according to one embodiment of the present invention. [Figure 7] This diagram visually shows the direction settings for sensor readings and HID reports. [Figure 8] This figure shows the native functions used in the baseline conditions. [Figure 9] This figure shows the gain functions generated by 12 different scale and morphological combinations used under the conditions of one embodiment of the present invention. [Figure 10] This diagram shows the accumulation of user-defined pointer movement and actual pointer movement within a time window. [Figure 11A] This figure shows the effect of each baseline independent variable on R² and MAE. [Figure 11B] This figure shows the effect of each independent variable on R2 and MAE according to one embodiment of the present invention. [Figure 12] This figure shows a baseline and random sampling of user-defined pointer movement amounts and actual pointer movement amount pairs within the same number of time windows according to one embodiment of the present invention. [Figure 13] This diagram illustrates the system configuration of a hardware-embedded pointing transfer device according to one embodiment of the present invention. [Modes for carrying out the invention]
[0016] Hereinafter, specific examples of embodiments for carrying out the present invention will be described in detail with reference to the drawings.
[0017] Since the descriptions relating to the present invention are merely embodiments for structural or functional explanation, the scope of the present invention should not be construed as being limited by the embodiments described herein. That is, since embodiments of the present invention can be modified in various ways and may take on various forms, the scope of the present invention should be understood to include equivalents that can realize the technical idea. Furthermore, since the purposes or effects presented in the present invention do not mean that any particular embodiment should include all of them or only such effects, the scope of the present invention should not be understood as being limited by them.
[0018] On the other hand, the meanings of the terms used herein should be understood as follows:
[0019] Terms such as "first," "second," etc., are used to distinguish one component from another, and these terms should not limit the scope of rights. For example, the first component may be named the second component, and similarly, the second component may also be named the first component.
[0020] When it is mentioned that one component is "connected" to another, it must be understood that it may be directly connected to the other component, or that other components may exist in between. Conversely, when it is mentioned that one component is "directly connected" to another, it must be understood that there are no other components in between. On the other hand, other expressions describing the relationship between components, namely "between" and "immediately between," or "adjacent to" and "directly adjacent to," must be interpreted in the same way.
[0021] Unless the context clearly indicates otherwise, singular expressions should be understood to include plural expressions, and terms such as “includes” or “possesses” should be understood to indicate the existence of features, figures, steps, actions, components, parts, or combinations thereof that are implemented, without prejudice to the existence or possibility of adding one or more other features, figures, steps, actions, components, parts, or combinations thereof.
[0022] In each step, the identification codes (e.g., a, b, c, etc.) are used for explanatory purposes only and do not indicate the order of the steps. The steps may occur in a different order than specified unless the context clearly indicates a specific order. That is, the steps may occur in the same order as specified, substantially simultaneously, or in the reverse order.
[0023] Embodiments of the present invention are embodied as computer-readable code on a computer-readable recording medium, and the computer-readable recording medium includes all types of recording devices that store data to be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage devices, etc. Furthermore, the computer-readable recording media are distributed across a network of connected computer systems, and the computer-readable code is stored and executed in a distributed manner.
[0024] All terms used herein have the same meaning as generally understood by a person of ordinary skill in the art to which this invention pertains, unless otherwise defined. Terms as defined in commonly used dictionaries should be interpreted in accordance with their meaning in the context of the relevant art and should not be interpreted as having an ideal or overly formal meaning unless expressly defined herein.
[0025] Figure 1 is a diagram illustrating a hardware-integrated pointing transfer processing device according to one embodiment of the present invention, and Figure 2 is a diagram illustrating the pointing data processing unit 150 of Figure 1.
[0026] Referring to Figure 1, the hardware-integrated pointing transfer processing unit 100 includes a user control command receiving unit (User) 110, a sensor (Sensor) 130, and a pointing data processing unit (Custom Gain in Physica Unit) 150.
[0027] The user control command receiving unit 110 receives control commands from the user.
[0028] Sensor 130 outputs mouse movement data based on control commands.
[0029] The pointing data processing unit 150 sets a user-defined gain based on mouse movement data and provides a counter-gain that offsets the base gain provided by the operating system against the user-defined gain. The pointing data processing unit 150 incorporates the user-defined gain into the hardware firmware, thereby neutralizing the influence of the operating system 170 and hardware settings. Specifically, the pointing data processing unit 150 defines the gain desired by the user as a function based on physical velocity, uploads it to the firmware, and controls the pointer speed on the screen. The user-defined gain is automatically corrected for changes in hardware CPI and polling speed, ensuring that the user experiences consistent pointing performance even with changes in the external environment. Through this, the influence of the operating system 170 and hardware settings is minimized, providing the user with a high-performance, optimal pointing experience. Here, the pointing data processing unit 150 is implemented through a mechanism that sets the user-defined gain within the hardware and neutralizes the influence of the operating system (OS) settings.
[0030] Referring to Figure 2, the pointing data processing unit 150 includes a gain calculation module 151, a counteracting gain determination module 153, a basic gain determination module 155, and a control module 157.
[0031] The gain calculation module 151 determines the physical movement speed of the sensor 130 in physical units of mouse movement data, and determines the pointer movement speed on the screen in physical units of mouse movement data. The gain calculation module 151 calculates the ratio between the physical movement speed of the sensor 130 (unit: m / s) and the pointer movement speed on the screen (unit: px / s) as the user-defined gain. That is, the user-defined gain is defined as the relationship between the physical speed and the pointer speed on the screen. The user can design a custom curve within a specific speed range and upload it to the hardware firmware. For example, an acceleration curve or a constant curve can be set. In this case, the maximum physical speed v max The initial setting is 1 m / s, and within this range, it is divided into N intervals (for example, 100 intervals) and finely adjusted.
[0032] The gain calculation module 151 calculates the physical movement speed of the sensor 130 based on the mouse movement data. At this time, the mouse movement data is recorded every 1 / P seconds according to the polling rate P and the mouse sensitivity setting CPI, and the x, y axis values (c) measured by the sensor 130 are calculated. x ,c y ) via the physical movement speed (v i ) is calculated by the following formula 1.
[0033]
number
[0034] Here, 0.0254 is a constant for converting inches to meters, and CPI is the currently set mouse sensitivity.
[0035] The offsetting gain determination module 153 determines the offsetting gain through the relationship between the user-defined gain and the base gain. The offsetting gain determination module 153 stores the offsetting gain in memory and reflects it in real time each time mouse movement data is generated. Here, since the base gain is defined as a logical unit rather than a physical unit, its performance may be distorted by changes in hardware settings. To solve this, the offsetting gain determination module 153 determines an offsetting gain that offsets the base gain provided by the operating system 170 and reflects the offsetting gain in the mouse movement data. Each time mouse movement data is generated, the offsetting gain determination module 153 compares the size of the data with the result of applying the base gain of the operating system 170 and determines an offsetting gain that offsets the two values.
[0036] The base gain determination module 155 determines the base gain based on the acceleration gain and constant gain provided by the operating system 170. The base gain determination module 155 calculates a residual value based on the user-defined gain, the offsetting gain, and the base gain, and corrects the error in the mouse movement data that is then input to the gain calculation module 151. Through this, precisely controlled pointer movement becomes possible.
[0037] The control module 157 controls the overall operation of the pointing data processing unit 150 and manages the control flow or data flow between the gain calculation module 151, the offset gain determination module 153, and the basic gain determination module 155.
[0038] Figure 3 is a flowchart illustrating a hardware-integrated pointing transfer processing method according to one embodiment of the present invention.
[0039] Referring to Figure 3, the hardware-integrated pointing transfer processing unit 100 receives user control commands via the user control command receiving unit 110 (step S310). The hardware-integrated pointing transfer processing unit 100 outputs mouse movement data based on the control command via the sensor 130 (step S330).
[0040] Furthermore, the hardware-integrated pointing transfer processing unit 100 sets a user-defined gain based on mouse movement data via the pointing data processing unit 150 (step S350). The pointing data processing unit 150 performs the following steps via the gain calculation module 151: determining the physical movement speed of the sensor 130 in physical units of mouse movement data and determining the movement speed of the pointer on the screen in physical units of mouse movement data; and calculating the ratio between the physical movement speed of the sensor 130 (unit: m / s) and the movement speed of the pointer on the screen (unit: px / s) as the user-defined gain.
[0041] Furthermore, the hardware-integrated pointing transfer processing unit 100 provides a counter-gain that cancels out the base gain provided by the operating system for the user-defined gain via the pointing data processing unit 150 (step S370). The pointing data processing unit 150 performs the steps of determining the counter-gain via the relationship between the user-defined gain and the base gain via the counter-gain determination module 153, and storing the counter-gain in memory and reflecting it in real time each time mouse movement data is generated. Here, the base gain is determined based on the acceleration gain and constant gain provided by the operating system 170.
[0042] Furthermore, the hardware-integrated pointing transfer processing unit 100 calculates a residual value based on the user-defined gain, the offsetting gain, and the basic gain via the pointing data processing unit 150 to correct the error in the next input mouse movement data (step S390).
[0043] The following describes in more detail a hardware-integrated pointing transfer processing device and method according to one embodiment of the present invention with reference to Figures 4 to 13.
[0044] When using an indirect pointing device, the pointing transfer function can vary depending on the basic settings of the hardware or operating system (OS), making it difficult for the user to find and adapt to the optimal transfer function they desire. Therefore, the present invention proposes a hardware-embedded pointing transfer processing technique that allows the user to experience a consistent transfer function even when hardware or operating system settings are changed. This technique defines the desired function in the device firmware on a physical basis, eliminating the influence of changes to the operating system's basic functions and hardware settings, and ensuring that the uploaded function is maintained independently of the external environment.
[0045] The technique according to the present invention is embodied through a computer mouse, which is a widely used input device among various indirect pointing devices. For this purpose, the mouse hardware and firmware are embodied as shown in Figure 4.
[0046] Figure 4 shows a custom-made mouse hardware used in one embodiment of the present invention.
[0047] Referring to Figure 4, the custom-made mouse used in one embodiment of the present invention is a dual-sensor mouse manufactured based on open-source 3D printer drawings and Arduino source code. Here, only one of the two sensors, the one closest to the fingertip, is used.
[0048] The mouse drive firmware is implemented using the Arduino IDE. The microcontroller (MCU) reads displacement values from the PWM3389 sensor via SPI (Serial Peripheral Interface) communication, processes the sensor data, and transfers a USB HID (Human Interface Device) report to the host computer. The USB HID descriptor is extended to report x and y displacements in 16 bits instead of the standard 8 bits, thereby handling a range from -32,768 to 32,768.
[0049] Figure 5 shows the firmware configuration of a hardware-embedded pointing transfer processing device according to one embodiment of the present invention.
[0050] In Figure 5, the hardware-embedded pointing transfer processing device 100 according to one embodiment of the present invention defines the relationship between the physical movement speed of the mouse and the movement speed of the pointer on the screen as a user-defined gain, i.e., a pointing gain function G(v) desired by the user. When the mouse moves at a speed v (unit: m / s), the movement speed of the pointer on the screen s (unit: px / s) is determined as shown in Equation 2 below.
[0051]
number
[0052] Here, the unit of the user-defined gain G(v) is px / m, which represents the amount of pixels (px) the pointer moves on the screen per physical distance (m). The maximum physical speed of the mouse is v. max The settings are configured, and the gain function is divided into N intervals and uploaded to the firmware in the form of an array 510 as shown in equation 3 below.
[0053]
number
[0054] FIG. 6 is a diagram for explaining the setting of a user-defined gain according to an embodiment of the present invention.
[0055] In the case of FIG. 6, the maximum physical speed (v max ) of the mouse is set to 1 m / s and N is set to 100, and the user-defined gain function is divided into 100 intervals so as to be finely adjusted.
[0056] The physical speed v of the mouse is precisely estimated by analyzing the reading value of the sensor 130. If the polling speed of the mouse is represented by P (unit: Hz), the sensor reading value is obtained every 1 / P seconds. Assuming that the i-th reading value of the sensor 130 is cx i and cy i (unit: counts) respectively on the x-axis and y-axis, the estimated value of the mouse speed at that moment TIFF2026079656000005.tif8130 is calculated by the following formula 4.
[0057]
Equation
[0058] Here, CPI is the mouse sensitivity setting at the time when the sensor reading value is generated. 0.0254 is a proportional constant introduced to convert inches to meters.
[0059] The gain G i applied to the i-th sensor reading value (cx i , cy i ) is obtained as linear interpolation using the fractional index corresponding to the speed TIFF2026079656000007.tif8130 estimated in the transfer function array. According to the gain function definition of the above formula 2, the pointer speed s i on the screen to be generated by the i-th sensor reading is determined as follows in formula 5.
[0060]
Equation
[0061] Each sensor reading is performed in 1 / P (unit: seconds), where P is the mouse polling rate (Hz). The average speed s obtained using equation 5 above is used to move the pointer on the screen. i To move it, you need to move the pointer a corresponding distance d on the screen. i Calculate this using formula 6 below.
[0062]
number
[0063] A hardware-embedded pointing transfer processing device 100 according to one embodiment of the present invention calculates how far the pointer on the screen should move with each sensor reading and calculates a user-defined gain. In particular, as shown in equation 4 above, the firmware automatically compensates internally for the effects of hardware settings such as CPI and polling speed, so that even if the hardware settings change, the user can always experience the same transfer function in physical units.
[0064] In operating system 170, the process of pointer movement begins with the i-th sensor reading stage, where the input device (e.g., mouse) receives an HID (Human Interface Device) report as an integer vector (hx). i hy i The data is transferred to the operating system 170 via the USB bus in the form of ). The operating system 170 then processes the report size (i.e., the length of the vector) | h i Calculate | and the basic gay G OS Multiply by the amount of pointer pixel movement (Δx i ,Δy i ) is determined. Finally, the calculated displacement (Δx i ,Δy i This reflects the pointer position on the screen. In other words, when the user moves the mouse, the pointer on the screen moves appropriately accordingly. The relationship between the pointer movement vector and the HID report vector is expressed as shown in equation 7 below.
[0065]
number
[0066] Here, the basic gain function G OS This calculates the size of the HID report received as input using a method other than the common Euclidean norm. For example, in Windows, the size of the HID report is |h i | max(hx i hy i ) + min(hx i hy i It is calculated using a unique method called ) / 2. This formula calculates the size by adding the maximum movement of both axes and half of the minimum movement.
[0067] Basic gain function G OS Assuming that the user-defined gain G is uploaded to the mouse in the form of an array, and the maximum HID report size is h max When set to this value, the array of fundamental gain functions 530 is expressed as shown in equation 8 below.
[0068]
number
[0069] Here, N OS to 1,000, G OS (0) to 0, and h max Set each to 500.
[0070] The distance d of the pointer movement on the screen is derived from the above formula 6. i This can be expressed in relation to the fundamental gain as shown in equation 9 below.
[0071]
number
[0072] Figure 7 is a diagram that visually shows the direction settings for sensor readings and HID reports.
[0073] In the case of Figure 7, in order to prevent directional jitter from being recognized due to the movement of the pointer towards the user, the integer vector (hx) of the HID report is used. i hy i ) to the sensor reading c i =(cx i ,cy i It must be set parallel to ). Directional jitter refers to the phenomenon where the pointer does not move smoothly but shakes or trembles irregularly. Therefore, the integer vector (hx) of the HID report i hy i ) is the sensor reading (cx i ,cy i ) with the constant k i Multiplying by this, the result is determined as shown in equation 10 below.
[0074]
number
[0075] cx, the value measured by the sensor i ,cy i ) size |c i | OS , the Euclidean norm |c i | E When expressed in this way, the above formula 9 takes the form of the following formula 11 |c i | OS It will be converted.
[0076]
number
[0077] Here k i ·|c i | OS By substituting x with x, the x-coordinate can be found through the intersection calculation of the two functions. The intersection x-value obtained for a specific K is These values are uploaded to the firmware as an array named TIFF2026079656000015.tif7147. At this time, array 550 is stored in the form of the following formula 12.
[0078]
number
[0079] Here, K max Set the desired maximum K value to 500, N d Set it to 1,000 to adjust the size of the array.
[0080] A hardware-integrated pointing transfer processing method according to one embodiment of the present invention is: Uploading TIFF2026079656000017.tif24128 to the firmware will offset the effects of the operating system's base gain without the need for additional client software installation, allowing you to move the pointer as desired.
[0081] One embodiment of the hardware-embedded pointing transfer processing method uses equations 4 to 6 above to determine the desired pointer movement amount d from the i-th sensor reading. i After calculating the sensor reading vector (cx i ,cy i ) parallel to the desired pointer movement vector (Δx i ,Δy i ) is calculated as shown in formula 13 below.
[0082]
number
[0083] The residual value of the pointer movement vector that was not processed in the previous sensor reading is (Δx i ,Δy i In the case of ), this is the pointer movement vector (Δx) to be processed at the current stage. i ,Δyi After being added to ), the desired pointer movement vector d is included in the residual value. i Update it as shown in formula 14 below.
[0084]
number
[0085] Next, calculate the K value, The relevant file is TIFF2026079656000020.tif7128. Apply the TIFF2026079656000021.tif7128 value using interpolation.
[0086] Finally, the HID report to be sent to the operating system 170 is calculated according to formula 10 above, as shown in formula 15 below.
[0087]
number
[0088] However, since operating system 170 only accepts HID reports with integer elements, the HID report vector calculated using formula 15 above is a FLOOR function. The data is transferred to operating system 170 after passing through TIFF2026079656000023.tif7128. The loss of pointer movement that occurs at this time is calculated based on formula 7 above. This is calculated using TIFF2026079656000024.tif7128, and this is set as the residual value to be processed during the next sensor reading.
[0089] The hardware-embedded pointing transfer processing method according to one embodiment of the present invention uploads user-defined gains to firmware, and the firmware pairs them with each sensor data and performs calculations according to the above formula to maintain the user experience. The hardware-embedded pointing transfer processing method according to one embodiment of the present invention generates an array of each gain to efficiently implement the cancellation of user-defined gains and base gains, stores it in firmware, and processes sensor data in real time.
[0090] Two experiments were conducted to evaluate whether the method proposed in one embodiment of the present invention operates consistently with various OS gain functions and hardware settings. In the first experiment, pointer movement was measured with various hardware settings and OS base gain functions to confirm that the target transfer function was correctly realized. In the second experiment, professional gamers and general users were asked to subjectively evaluate the performance.
[0091] The experiment was performed independently under baseline conditions and under the conditions of the method proposed in Embodiment 1. The same mouse was used in both experiments. Under baseline conditions, the mouse's sensor readings were directly transmitted to the OS as HID reports, as with existing mice. Under the conditions of the method proposed in Embodiment 1, the mouse firmware was implemented to proceed with the experiment.
[0092] The baseline experimental levels are as follows:
[0093] - Native Function: C2, A2, C6, A6, C10, A10 -CPI: 400 or 800 - Polling speed (Hz): 125 or 250
[0094] Figure 8 shows the six levels of native functions used under baseline conditions. The native functions represent the basic gain settings of the OS (window) executed during the experiment, where C represents the constant gain and A represents the acceleration gain.
[0095] The experimental level of the method proposed in one embodiment of the present invention is as follows:
[0096] -Shape: Constant, sigmoid, sine, or zigzag - Scale: Low, Mid, High - Native functions: C2, A2, C6, A6, C10, A10 -CPI: 400 or 800 - Polling speed (Hz): 125 or 250
[0097] Figure 9 shows the gain functions generated by 12 different scale and morphology combinations used under the conditions of one embodiment of the present invention, where morphology indicates the shape of the gain function and scale indicates the amplitude of the desired gain function. The low, medium, and high scale conditions were determined by referring to the ranges of the native functions A2, A6, and A10, respectively.
[0098] Furthermore, in subsequent experiments, the device's CPI and polling speed were randomly changed every second while the mouse was moving, and the experimental conditions were set to one of the following four:
[0099] [CPI, Polling Speed] = [400, 125], [400, 250], [800, 125], [800, 250]
[0100] In further experiments, the desired gain function's form and scale were fixed to sigmoid-mid, and the Nate ratio function was fixed to the A6 condition. Through these experiments, we evaluated whether the proposed method could reliably reproduce the desired gain function even under unintended disturbances from hardware settings such as CPI and polling speed.
[0101] While collecting data according to the baseline and the respective experimental conditions of one embodiment of the present invention, the mice were moved randomly on a desk.
[0102] The experimental results showed that the mouse speed was measured by the firmware. The actual desired gain is in TIFF2026079656000025.tif6128 Multiply by TIFF2026079656000026.tif7128 to get the intended pointer movement d intend This was calculated. Under baseline conditions, the size of the sensor reading was multiplied by the basic gain of the operating system (OS) corresponding to d intend The actual pointer movement d on the screen was calculated. screen Measure this instantaneously, and this is d intend It was compared to that.
[0103] There may be a delay between the pointer coordinate data and the data transferred from the mouse firmware (mouse speed and HID report). The delay time for each condition was estimated through the cross-correlation delay between the sampled pointer coordinates and the HID report data. On average, a time delay of 2.3 ms (σ=2.2) was observed, and the two data sets were synchronized for each condition. The pointer coordinate data was obtained by removing adjacent rows to represent the pointer movement amount (d screen ) On the other hand, d intend The data is the recorded mouse speed. TIFF2026079656000027.tif7128 or size of sensor reading | (c x ,c y )| E The desired gain value corresponding to TIFF2026079656000028.tif7128 or G OS |(cx,cy)| OSIt can be directly obtained by multiplying. When the pointer touches the edge of the screen, the movement of the pointer in the HID report may not be completed completely. This acts as significant noise in the experimental results. Therefore, the data measured while the pointer touches the edge of the screen and the data measured before and after that are regarded as outliers and excluded from the analysis.
[0104] Since the pointer coordinate data and the data transferred from the firmware are measured at different sampling rates, comparable (d intend ,d screen ) pairs may not always exist. Therefore, the focus was on the method of determining d intend data sampled at a high frequency from d screen . As shown in FIG. 10, after equally dividing the data of d intend and d screen into time windows of length W - ms, within each time window, the sum of d intend and d screen , |d intend | W and |d intend | W was calculated. In the case of FIG. 10, considering the sampling rate (125 Hz or 250 Hz) at which the pointer coordinates are collected, the time window W was set to 16 ms so that at least two pointer coordinates are included in each time window.
[0105] |d intend | W and |d intend | W To evaluate the degree of agreement between, two metrics were introduced. The first metric is the correlation relationship between the two values. For all (|d intend | W , |d intend | W ) points under each condition, linear regression was performed and the regression equation and the coefficient of determination (R2) were analyzed. The second metric is the difference between |d intend | W and |d intend | W , that is, the error that occurs when implementing the desired pointer movement amount. For all (|dintend | W ,|d intend | W The mean absolute error (MAE, in pixels) was calculated for each pair.
[0106] As a result, there were no significant differences between the baseline and R2 and MAE according to one embodiment of the present invention, as follows.
[0107] Baseline R² = 0.9666 (σ = 0.0400), MAE = 5.0020 (σ = 5.8621). R² = 0.9692 (σ = 0.0341), MAE = 4.6514 (σ = 4.4401) according to one embodiment of the present invention.
[0108] The mean slope and intercept of the regression equation were as follows:
[0109] Baseline gradient 0.9644 (σ=0.0361) and intercept 3.6276 (σ=4.6703), gradient 0.9436 (σ=0.0388) and intercept 4.7642 (σ=4.4972) according to one embodiment of the present invention.
[0110] Figures 11A and 11B show the effects of each independent variable on R2 and MAE, respectively, based on the baseline and one embodiment of the present invention (Ours).
[0111] Furthermore, for all conditions, the same number of (|d intend | W ,|d intend | W When pairs are randomly sampled, this results in a scatter plot like that in Figure 12. In Figure 12, under the conditions of Baseline and Ours, the noise commonly observed was d during a single measurement even after pre-synchronization. intend and d screen This is presumed to be because the measurement delay between and changes slightly in real time. Such stochastic noise causes the number of data points included in the 16ms time window to be one more or one less, which is |d intend |W and |d intend | W This leads to inaccurate calculations, resulting in a lower R2 and an increase in MAE. In particular, such noise is amplified in proportion to the pointer speed, and it was observed that as the overall size of the processed gain increases in all conditions, including the baseline and according to one embodiment of the present invention, R2 decreases and MAE increases (see condition A10 in Figure 11A and the high condition in Figure 11B). Increasing the time window size to 256 ms reduces the noise in the scatter plot in proportion to the size of the displacement, which supports the idea that the noise arises from the measurement delay.
[0112] Using the same method, analysis of data measured under conditions where CPI and polling speed were randomly changed every second showed that R2 and MAE were still not distinguishable from the baseline. Even at the moment when hardware settings were automatically changed, there were no noticeable anomalies in pointer movement.
[0113] Figure 13 illustrates the system configuration of a hardware-integrated pointing transfer processing device according to one embodiment of the present invention.
[0114] Referring to Figure 13, the hardware-integrated pointing transfer processing unit 100 includes a processor 1310, memory 1330, user input / output unit 1350, network input / output unit 1370, and communication port unit 1390.
[0115] The processor 1310 executes a hardware-integrated pointing transfer processing procedure according to one embodiment of the present invention, manages the memory 1330 that is read from or created in such a process, and schedules the synchronization time between the volatile and non-volatile memory in the memory 1330. The processor 1310 controls the overall operation of the hardware-integrated pointing transfer processing unit 100 and is electrically connected to the memory 1330, the user input / output unit 1350, the network input / output unit 1370, and the communication port unit 1390, and controls the data flow between them. The processor 1310 is embodied in the CPU (Central Processing Unit) of the hardware-integrated pointing transfer processing unit 100.
[0116] The memory 1330 includes an auxiliary storage device that is embodied as a non-volatile memory such as an SSD (Solid State Disk) or HDD (Hard Disk Drive) and is used to store all the data required for the hardware-integrated pointing transfer processing device 100, and a main memory that is embodied as a volatile memory such as RAM (Random Access Memory). Furthermore, the memory 1330 stores a set of instructions that execute the hardware-integrated pointing transfer processing method according to one embodiment of the present invention, which is executed by an electrically connected processor 1310.
[0117] The user input / output unit 1350 includes an environment for receiving user input and an environment for outputting specific information to the user, and includes an input device including an adapter such as a touchpad, touchscreen, image keyboard, or pointing device, and an output device including an adapter such as a monitor or touchscreen. In one embodiment, the user input / output unit 1350 corresponds to a computing device connected via a remote connection, in which case the hardware-integrated pointing transfer processing device 100 runs as an independent server.
[0118] The network input / output unit 1370 provides a communication environment for connecting to a user terminal via a network, and includes adapters for communication such as LAN (Local Area Network), MAN (Metropolitan Area Network), WAN (Wide Area Network), and VAN (Value Added Network). The network input / output unit 1370 is also designed to provide short-range communication functions such as WiFi and Bluetooth®, or wireless communication functions of 4G or higher for wireless data transmission.
[0119] The communication port section 1390 serves as a hardware interface for connecting to external hardware, such as a printer, mouse, or USB hardware. The communication port section 1390 detects the connection of specific USB hardware and acts as a hardware-integrated pointing transfer processing unit 100.
[0120] The hardware-embedded pointing transfer processing device and method according to the present invention are expected to provide user-defined gains that are applied consistently without being affected by the operating system (OS) and hardware settings, thereby offering user-customized pointer control, independence from operating system settings, suitability for games and high-performance tasks, and versatility in various environments. In other words, users can directly define pointing transfer functions tailored to their needs at a physical level and upload them to the hardware firmware, thereby experiencing the same pointer speed and performance regardless of changes in the operating system or hardware settings, increasing the consistency of the user experience and making it useful in environments such as high-performance tasks and games.
[0121] Furthermore, the present invention enables the hardware-embedded firmware to offset the effects of the operating system's base gains, continuously providing the user with the desired pointing transfer function, thus offering an optimal solution for high-performance users such as professional gamers.
[0122] Although embodiments of the present invention have been described in detail above with reference to the drawings, the present invention is not limited to the embodiments described above, and can be modified and implemented in various ways without departing from the technical spirit of the present invention.
[0123] [National Research and Development Project of the Republic of Korea that supported this invention] [Issue-specific number] 2710006677 [Issue Number] RS-2020-11201361 [Ministry / Agency Name] Ministry of Science and ICT [Name of the (specialized) organization for issue management] Information and Communications Planning and Evaluation Institute [Research Project Name] Training and Development of Innovative Human Resources in Information, Communications, and Broadcasting (R&D) [Research Project Title] Support for Graduate School of Artificial Intelligence (Yonsei University) [Project Implementation Organization Name] Yonsei University Industry-Academia Cooperation Group [Research Period] 2024.01.01~2024.12.31 [National Research and Development Project of the Republic of Korea that supported this invention] [Project-Specific Number] 2710001593 [Issue Number] RS-2023-00223062 [Ministry / Agency Name] Ministry of Science and ICT [Project Management (Specialized) Organization Name] Korea Research Foundation [Research project name] Basic laboratory training project [Research Project Title] Esports Player Behavior Simulation Laboratory Based on Restricted Rationality Theory [Project Implementation Organization Name] Yonsei University Industry-Academia Cooperation Group [Research Period] March 1, 2024 - February 28, 2025 [Explanation of Symbols]
[0124] 100 Hardware-integrated pointing transfer processing unit 110 User control command receiver (User) 130 Sensor 150 Pointing Data Processing Unit (Custom Gain in Physica Unit) 151 Gain Calculation Module 153 Cancellation Gain Determination Module 155 Basic Gain Determination Module 157 Control Module 170 Operating Systems (OS) 510 Pointing data processing unit 530 (basic gain) array 550 (canceling gain) array 1310 Processor 1330 memory 1350 User Input / Output Section 1370 Network Input / Output Section 1390 Communication port section
Claims
1. A user control command receiving unit that receives user control commands and A sensor that outputs mouse movement data based on the aforementioned control command, A hardware-integrated pointing transfer processing device comprising: a pointing data processing unit that sets a user-defined gain based on the mouse movement data and provides a counter-gain that cancels out the basic gain provided by the operating system for the user-defined gain.
2. The hardware-integrated pointing transfer processing device according to claim 1, characterized in that the pointing data processing unit includes a gain calculation module that determines the physical movement speed of the sensor in physical units of the mouse movement data and determines the pointer movement speed on the screen in physical units of the mouse movement data.
3. The hardware-integrated pointing transfer processing device according to claim 2, characterized in that the gain calculation module calculates the ratio between the physical movement speed of the sensor (unit: m / s) and the movement speed of the pointer on the screen (unit: px / s) as the user-defined gain.
4. The hardware-integrated pointing transfer processing device according to claim 3, further comprising a cancellation gain determination module that determines the cancellation gain through the relationship between the user-defined gain and the basic gain.
5. The hardware-integrated pointing transfer processing device according to claim 4, characterized in that the offset gain determination module stores the offset gain in memory and reflects it in real time each time mouse movement data is generated.
6. The hardware-integrated pointing transfer processing device according to claim 5, further comprising a basic gain determination module that determines the basic gain based on an acceleration gain or a constant gain provided by the operating system.
7. The hardware-integrated pointing transfer processing device according to claim 6, characterized in that the basic gain determination module calculates a residual value based on the user-defined gain, the offsetting gain, and the basic gain, and corrects the error of the mouse movement data that is then input to the gain calculation module.
8. A hardware-integrated pointing transfer processing method performed by a hardware-integrated pointing transfer processing device, The receiving stage receives user control commands and A sensing step by a sensor that outputs mouse movement data based on the control command, A hardware-integrated pointing transfer processing method characterized by comprising: a pointing data processing step of setting a user-defined gain based on the mouse movement data and providing a counter-gain that cancels out a basic gain provided by the operating system for the user-defined gain.
9. The aforementioned pointing data processing step is: The steps include determining the physical movement speed of the sensor in physical units of the mouse movement data, and determining the movement speed of the pointer on the screen in physical units of the mouse movement data, The hardware-integrated pointing transfer processing method according to claim 8, comprising the step of calculating the ratio between the physical movement speed of the sensor (unit: m / s) and the pointer movement speed on the screen (unit: px / s) as the user-defined gain.
10. The aforementioned pointing data processing step is: A step of determining the cancellation gain through the relationship between the user-defined gain and the basic gain, The hardware-integrated pointing transfer processing method according to claim 9, characterized by including the step of storing the offsetting gain in memory and reflecting it in real time each time the mouse movement data is generated.
11. The aforementioned pointing data processing step is: A step of determining the basic gain based on the acceleration gain or constant gain provided by the operating system, The hardware-integrated pointing transfer processing method according to claim 10, characterized by including the step of calculating a residual value based on the user-defined gain, the offsetting gain, and the basic gain, and correcting the error in the next input mouse movement data.