Cursor rendering processing method of pointing control device, display device, storage medium and program product

CN122963396APending Publication Date: 2026-10-23HISENSE VISUAL TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610732556.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-05-25
Publication Date
2026-10-23

AI Technical Summary

Technical Problem

然而,指向控制设备的光标通过底层驱动在独立图层进行渲染,无法适配隔行渲染模式,会出现光标变形的情况

Benefits of technology

[0020]响应于针对指向控制设备的光标渲染指令,确定指向控制设备所控制的显示设备的屏幕分辨率是否处于隔行渲染模式;这样,在接收到光标渲染指令后,可以先判断当前是否对应于隔行渲染模式,从而可以确定是否对指向控制设备对应的基础光标图片的列分辨率进行补偿处理,以保证显示的光标不会变形。若屏幕分辨率对应于隔行渲染模式,则可以对指向控制设备对应的基础光标图片的列分辨率进行补偿处理,在进行补偿处理时,可以确定与屏幕列分辨率对应的理想光标列分辨率,以及确定在所述隔行渲染模式下的列拉伸倍数,根据所述理想光标列分辨率与所述列拉伸倍数,得到实际光标列分辨率,将所述指向控制设备对应的基础光标图片的列分辨率调整为所述实际光标列分辨率,从而可以得到目标光标图片,之后根据所述目标光标图片进行渲染处理,可以在所述显示设备的屏幕正常地显示所述指向控制设备的光标,避免光标变形的情况。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122963396A_ABST
    Figure CN122963396A_ABST
Patent Text Reader

Abstract

The application relates to the technical field of display, and provides a cursor rendering processing method of a pointing control device, a display device, a storage medium and a program product, which can be adapted to an interlaced rendering mode and avoid cursor deformation. In response to a cursor rendering instruction of the pointing control device, it is determined whether the screen resolution of a display device controlled by the pointing control device is in an interlaced rendering mode; the screen resolution comprises a screen column resolution; if the screen resolution corresponds to the interlaced rendering mode, an ideal cursor column resolution corresponding to the screen column resolution is determined, and a column stretching multiple in the interlaced rendering mode is determined; according to the ideal cursor column resolution and the column stretching multiple, an actual cursor column resolution is obtained, the column resolution of a basic cursor picture corresponding to the pointing control device is adjusted to the actual cursor column resolution, and a target cursor picture is obtained; and rendering processing is performed according to the target cursor picture, so that the cursor of the pointing control device is displayed on the screen of the display device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of display technology, and in particular to a cursor rendering processing method, display device, storage medium, and computer program product for pointing control devices. Background Technology

[0002] Display devices can include devices with screen display and data processing capabilities. Display devices can be controlled by control devices. When using a control device to control a display device, a cursor of the control device can be displayed on the display device's screen to provide appropriate visual feedback to the user.

[0003] Pointing control devices can be used. Pointing control devices are interactive devices based on relative displacement detection. They use built-in sensors to sense their own movement in the air, which drives a corresponding cursor on the screen to move accordingly, enabling air-based positioning and manipulation of screen elements. When a user points the pointing control device at the screen, a corresponding cursor (the pointing cursor) appears at that location. This cursor moves with the pointing control device; pointing control devices provide users with a natural "what you see is what you point" interactive experience.

[0004] Display devices can operate in high refresh rate mode (HSR, Horizontal Super Resolution) or HDMI (High-Definition Multimedia Interface). In high refresh rate mode (e.g., 240Hz), interlaced rendering can be used to improve rendering speed. However, the cursor pointing at the control device is rendered on a separate layer by the underlying driver, which cannot adapt to interlaced rendering mode, resulting in cursor distortion. Summary of the Invention

[0005] Therefore, it is necessary to provide a cursor rendering processing method, display device, storage medium, and computer program product for pointing to the control device, in response to the above-mentioned technical problems.

[0006] This application provides a cursor rendering method for pointing to a control device, the method comprising:

[0007] In response to a cursor rendering command for a pointing control device, determine whether the screen resolution of the display device controlled by the pointing control device is in interlaced rendering mode; the screen resolution includes the screen column resolution;

[0008] If the screen resolution corresponds to interlaced rendering mode, then determine the ideal cursor column resolution corresponding to the screen column resolution, and determine the column stretching factor in the interlaced rendering mode;

[0009] Based on the ideal cursor column resolution and the column stretching factor, the actual cursor column resolution is obtained. The column resolution of the base cursor image corresponding to the pointing control device is adjusted to the actual cursor column resolution to obtain the target cursor image.

[0010] The target cursor image is rendered to display the cursor pointing to the control device on the screen of the display device.

[0011] This application provides a display device, which includes a controller and a screen; the display device is controlled by a pointing control device.

[0012] The controller is configured to:

[0013] In response to a cursor rendering command for the pointing control device, it is determined whether the screen resolution of the display device is in interlaced rendering mode; the screen resolution includes the screen column resolution;

[0014] If the screen resolution corresponds to interlaced rendering mode, then determine the ideal cursor column resolution corresponding to the screen column resolution, and determine the column stretching factor in the interlaced rendering mode;

[0015] Based on the ideal cursor column resolution and the column stretching factor, the actual cursor column resolution is obtained. The column resolution of the base cursor image corresponding to the pointing control device is adjusted to the actual cursor column resolution to obtain the target cursor image.

[0016] The target cursor image is rendered to display the cursor pointing to the control device on the screen.

[0017] This application provides a computer-readable storage medium having a computer program stored thereon, the computer program being executed by a processor using the methods described above.

[0018] This application provides a computer program product having a computer program stored thereon, the computer program being executed by a processor using the above-described method.

[0019] The above technical solution has the following beneficial effects:

[0020] In response to a cursor rendering command for a pointing control device, it is determined whether the screen resolution of the display device controlled by the pointing control device is in interlaced rendering mode. Thus, upon receiving the cursor rendering command, it can first determine whether it corresponds to interlaced rendering mode, thereby determining whether to perform column resolution compensation processing on the base cursor image corresponding to the pointing control device to ensure that the displayed cursor is not distorted. If the screen resolution corresponds to interlaced rendering mode, column resolution compensation processing can be performed on the base cursor image corresponding to the pointing control device. During compensation processing, the ideal cursor column resolution corresponding to the screen column resolution and the column stretching factor in the interlaced rendering mode can be determined. Based on the ideal cursor column resolution and the column stretching factor, the actual cursor column resolution is obtained. The column resolution of the base cursor image corresponding to the pointing control device is adjusted to the actual cursor column resolution, thereby obtaining the target cursor image. Then, rendering processing is performed based on the target cursor image, allowing the cursor pointing to the pointing control device to be displayed normally on the screen of the display device, avoiding cursor distortion. Attached Figure Description

[0021] Figure 1 A schematic diagram illustrating an operational scenario between a display device and a pointing control device provided in some embodiments of this application;

[0022] Figure 2 This is a schematic diagram of the hardware configuration of a display device provided in some embodiments of this application;

[0023] Figure 3 This is a schematic diagram of the hardware configuration of a pointing control device provided in some embodiments of this application;

[0024] Figure 4 This is a schematic diagram of the cursor rendering process for a control device in one embodiment.

[0025] Figure 5 This is a schematic diagram illustrating the generation of a target cursor image in one embodiment;

[0026] Figure 6 This is a schematic diagram showing the target cursor image completely within the screen in one embodiment.

[0027] Figure 7 This is a schematic diagram showing the left portion of the target cursor image extending beyond the screen in one embodiment;

[0028] Figure 8 This is a schematic diagram showing the right portion of the target cursor image extending beyond the screen in one embodiment;

[0029] Figure 9 This is a schematic diagram of a target cursor image whose left boundary extends beyond the screen in one embodiment;

[0030] Figure 10 This is a schematic diagram showing the right boundary of the target cursor image extending beyond the screen in one embodiment;

[0031] Figure 11 This is a schematic diagram showing the upper boundary of the target cursor image extending beyond the screen in one embodiment;

[0032] Figure 12 This is a schematic diagram showing the bottom right boundary of the target cursor image extending beyond the screen in one embodiment;

[0033] Figure 13 This is a schematic diagram showing the lower left boundary of the target cursor image extending beyond the screen in one embodiment;

[0034] Figure 14 This is a schematic diagram showing the lower boundary of the target cursor image extending beyond the screen in one embodiment;

[0035] Figure 15 This is a schematic diagram illustrating the processing when the lower boundary of the target cursor image exceeds the screen in one embodiment.

[0036] Figure 16 This is a schematic diagram illustrating the processing when the upper boundary of the target cursor image exceeds the screen in one embodiment.

[0037] Figure 17 This is a schematic diagram of the architecture in one embodiment, pointing to a scenario involving a remote control and a television.

[0038] Figure 18 This is a diagram of inter-unit signaling interaction in a cursor drawing service in one embodiment. Detailed Implementation

[0039] Figure 1 This is a schematic diagram illustrating an operational scenario between a display device and a pointing control device provided in some embodiments of this application. For example... Figure 1 As shown, a user can operate the display device 200 by pointing at the control device 100. For example, the control device 100 can be a remote control, a stylus, etc.

[0040] like Figure 1 The diagram also shows that the display device 200 communicates with the server 300 via various communication methods. This allows the display device 200 to communicate via a local area network (LAN), a wireless local area network (WLAN), and other networks.

[0041] Display device 200 can provide broadcast television reception function, and can also be equipped with intelligent network television function that provides computer support function, including but not limited to network television, smart television, Internet Protocol television (IPTV), etc.

[0042] Figure 2 Provided for some embodiments of this application Figure 1 Hardware configuration block diagram of display device 200.

[0043] In some embodiments, the display device 200 may include at least one of a tuner 210, a communication device 220, a detector 230, a device interface 240, a controller 250, a screen 260, an audio output device 270, a memory, a power supply, and a user input interface.

[0044] In some embodiments, detector 230 is used to acquire signals from the external environment or to interact with the outside world. For example, detector 230 includes a light receiver, a sensor for acquiring ambient light intensity; or, detector 230 includes an image acquisition device, such as a camera, which can be used to acquire external environmental scenes, user attributes, or user interaction gestures; or, detector 230 includes a sound acquisition device, such as a microphone, for receiving external sounds.

[0045] In some embodiments, screen 260 includes display function components for presenting images. Screen 260 is used to receive and display image signals output from controller 250. For example, screen 260 can be used to display video content, image content, menu control interface components, and user control UI interfaces, etc.

[0046] In some embodiments, the communication device 220 is a component used to communicate with external devices or the server 300 according to various communication protocol types. The display device 200 may have multiple communication devices 220 depending on the supported communication methods. For example, when the display device 200 supports wireless network communication, it may have a communication device 220 with WiFi functionality. When the display device 200 supports Bluetooth connectivity, it needs to have a communication device 220 with Bluetooth functionality.

[0047] The communication device 220 enables the display device 200 to communicate with external devices or the server 300 via wireless or wired connections. Wired connections utilize data cables, interfaces, or other components to connect the display device 200 to external devices. Wireless connections utilize wireless signals or wireless networks. The display device 200 can directly establish a connection with external devices or indirectly through gateways, routers, or other connection devices.

[0048] In some embodiments, the controller 250 may include at least one of a central processing unit, a video processor, an audio processor, a graphics processor, and a power processor, and a first to an nth interface for input / output. The controller 250 controls the operation of the display device and responds to user operations through various software control programs stored in memory. The controller 250 controls the overall operation of the display device 200.

[0049] In some embodiments, the controller 250 and the tuner 210 may be located in different separate devices, that is, the tuner 210 may also be located in an external device of the main device where the controller 250 is located, such as an external set-top box.

[0050] In some embodiments, a user can input user commands through a graphical user interface (GUI) displayed on screen 260, and the user input interface receives user input commands through the graphical user interface (GUI).

[0051] In some embodiments, the audio output device 270 can be a built-in speaker of the display device 200 or an external audio output device connected to the display device 200. For the external audio output device connected to the display device 200, the display device 200 may also be provided with an external audio output terminal, through which the audio output device can be connected to the display device 200 to output sound from the display device 200.

[0052] In some embodiments, the user input interface 280 can be used to receive instructions from user input.

[0053] Figure 3 Provided for some embodiments of this application Figure 1 The middle finger refers to the hardware configuration block diagram of the control device. (Example: ...) Figure 3 As shown, the pointing control device 100 may include: a controller 110, a communication interface 130, a user input / output interface, a memory, and a power supply.

[0054] The pointing control device 100 is configured to control the display device 200, and to receive user input operation commands and convert the operation commands into commands that the display device 200 can recognize and respond to, thus acting as an intermediary for interaction between the user and the display device 200.

[0055] In some embodiments, the pointing control device 100 may be a smart device. For example, the pointing control device 100 may be equipped with various applications to control the display device 200 according to user needs.

[0056] The controller 110 includes a processor 112, RAM 113, ROM 114, a communication interface 130, and a communication bus. The controller 110 is used to control the operation of the control device 100, as well as the communication and cooperation between internal components and the external and internal data processing functions.

[0057] Under the control of the controller 110, the communication interface 130 enables communication of control signals and data signals with the display device 200. The communication interface 130 may include at least one of other near-field communication modules such as WiFi chip 131, Bluetooth module 132, and NFC module 133.

[0058] User input / output interface 140, wherein the input interface includes at least one of other input interfaces such as microphone 141, touchpad 142, sensor 143, and button 144.

[0059] In some embodiments, the pointing control device 100 includes at least one of a communication interface 130 and an input / output interface 140. The pointing control device 100 is configured with the communication interface 130, such as a WiFi, Bluetooth, or NFC module, which can encode user input commands via WiFi, Bluetooth, or NFC protocols and send them to the display device 200.

[0060] The memory 190 is used, under the control of the controller, to store various operating programs, data, and applications that drive and control the control device 100. The memory 190 can also store various control signal commands input by the user.

[0061] The power supply 180 is used to provide operating power support for the various components of the pointing control device 100 under the control of the controller.

[0062] To enable user interaction, in some embodiments, the display device 200 may run an operating system. The operating system is a computer program used to manage and control the hardware and software resources of the display device 200. The operating system can (control the display device) provide a user interface, allowing users to interact with the display device 200 and supporting the running of various applications. It should be noted that the operating system can be a native operating system based on a specific operating platform, a third-party operating system deeply customized for a specific operating platform, or an independent operating system specifically developed for the display device.

[0063] When the display device is in high refresh rate mode, interlaced rendering mode can be used to improve rendering speed; compared with progressive rendering mode, the resolution of the frame buffer corresponding to the screen of the display device is reduced when interlaced rendering mode is used.

[0064] As an example, the screen resolution of the display device is 3840×2160, where 3840 can be the row resolution and 2160 can be the column resolution. In progressive rendering, the resolution of the frame buffer (which can be denoted as screen fb; fb stands for framebuffer) can be 3840×2160, where 3840 can be the row resolution and 2160 can be the column resolution. In interlaced rendering, where every other row is skipped, the screen fb resolution can become 3840×1080, where 3840 can be the row resolution and 1080 can be the column resolution. In interlaced rendering, where every two rows are skipped, the screen fb resolution can become 3840×720, where 3840 can be the row resolution and 720 can be the column resolution.

[0065] In interlaced rendering mode, the screen frame resolution (FB) differs from the display device's screen resolution. Specifically, when rendering every N rows, the ratio between the screen FB's column resolution and the display device's column resolution can be 1 / (N+1). For example, in an interlaced rendering scene with one row skipped, the ratio of the screen FB's column resolution to the display device's screen column resolution is 1 / 2, meaning the screen FB's column resolution is half that of the display device's screen column resolution.

[0066] To adapt to the screen column resolution, an interpolation algorithm can be used to interpolate the data stored in the screen frame buffer (FB) along the column direction, thereby obtaining data that matches the screen resolution. For example, in an interlaced rendering scene where every other row is alternated, the data size stored in the screen FB can be 3840×1080. After interpolation along the column direction, the data size obtained can be 3840×2160, and the interpolated data matches the screen resolution of 3840×2160.

[0067] To improve rendering performance and decouple it from the system_server (system service), the cursor drawing service is designed as an independent unit. It can render directly on an independent layer through the underlying driver. During rendering, the cursor drawing service generally defaults to the screen frame's resolution as the screen resolution. In progressive rendering mode, if the cursor drawing service defaults to the screen frame's resolution as the screen resolution, cursor distortion will not occur. However, in interlaced rendering mode, if the cursor drawing service defaults to the screen frame's resolution as the screen resolution, cursor distortion will occur because the column resolution of the screen frame is no longer the screen column resolution in interlaced rendering mode, but the data submitted by the cursor drawing service to the screen frame is still based on the screen column resolution.

[0068] For example, the screen resolution can be 3840×2160, and correspondingly, the cursor resolution displayed on the screen can be 200×200. In progressive rendering mode, the screen frameset (FB) resolution can be 3840×2160, and the data submitted by the cursor drawing service to the FB can be 200×200. The cursor displayed on the screen will then be 200×200, displaying normally without distortion. In interlaced rendering mode, where every other line is rendered, the screen frameset resolution becomes 3840×1080. While the data submitted by the cursor drawing service to the FB remains 200×200, subsequent interpolation along the column direction will result in a cursor resolution of 200×400. The cursor will appear stretched by a factor of two along the vertical axis, resulting in distortion.

[0069] Based on this, the solution provided in this application enables cursor rendering to adapt to interlaced rendering mode, thus avoiding cursor distortion. This solution relates to a cursor rendering processing method for a pointing control device, which may include... Figure 4 The steps are shown.

[0070] Step S401: In response to a cursor rendering instruction for a pointing control device, determine whether the screen resolution of the display device controlled by the pointing control device is in interlaced rendering mode.

[0071] As an implementation method, the cursor drawing service can receive cursor rendering instructions for a pointing control device. The pointing control device can be, but is not limited to, a pointing remote control. The cursor on the pointing control device is similar to a mouse cursor on a computer. When the pointing function is used to point at the screen of a display device (such as a television), a cursor appears at the corresponding position on the screen. This cursor can move with the movement of the pointing control device. When the user performs different actions such as clicking, swiping up, down, left, right, or hovering, different styles can be displayed in real time. Interfaces for showing, hiding, and changing the cursor can also be provided. The cursor of the pointing control device can be displayed on the screen of the display device; the pointing control device can control the display device, thereby controlling the content displayed on the screen of the display device.

[0072] Upon receiving a cursor rendering command, the cursor drawing service can determine whether the display device's screen resolution is in interlaced rendering mode. Screen resolution can include both row resolution and column resolution.

[0073] Step S402: If the screen resolution corresponds to the interlaced rendering mode, determine the ideal cursor column resolution corresponding to the screen column resolution, and determine the column stretching factor in the interlaced rendering mode.

[0074] As an implementation method, the ideal cursor resolution can be preset for different screen resolutions; for example, when the screen resolution is 1920×1080, the corresponding ideal cursor resolution can be 100×100; or, for example, when the screen resolution is 3840×2160, the corresponding ideal cursor resolution can be 200×200.

[0075] After determining that the screen resolution is in interlaced rendering mode, the cursor drawing service can determine the ideal cursor resolution corresponding to the screen resolution based on the pre-set ideal cursor resolution for different screen resolutions. The ideal cursor resolution can include the ideal cursor column resolution and the ideal cursor row resolution. The cursor drawing service can obtain the ideal cursor column resolution based on the ideal cursor resolution. As an example, if the screen resolution is 3840×2160, the cursor drawing service can determine that the ideal cursor resolution corresponding to this screen resolution is 200×200, and thus the ideal cursor column resolution can be determined to be 200.

[0076] The cursor drawing service can also determine the column stretch factor in interlaced rendering mode. Interlaced rendering mode represents the number of rows between rendering operations. The cursor drawing service can determine the number of rows (denoted as N) corresponding to the interlaced rendering mode. Based on the number of rows between the rows, the column stretch factor corresponding to subsequent interpolation along the column direction can be determined. As an example, if the number of rows N corresponding to the interlaced rendering mode is 1, then the column stretch factor corresponding to subsequent interpolation along the column direction can be determined to be 2. As another example, if the number of rows N corresponding to the interlaced rendering mode is 2, then the column stretch factor corresponding to subsequent interpolation along the column direction can be determined to be 3.

[0077] Step S403: Based on the ideal cursor column resolution and column stretching factor, obtain the actual cursor column resolution, adjust the column resolution of the basic cursor image corresponding to the pointing control device to the actual cursor column resolution, and obtain the target cursor image.

[0078] After determining the ideal cursor column resolution and column stretch factor, the cursor drawing service can determine the corresponding actual cursor column resolution.

[0079] The cursor drawing service can obtain the cursor resource corresponding to the pointing control device. This cursor resource may include a cursor image, which can be referred to as the base cursor image for distinction. The resolution of the base cursor image includes row resolution and column resolution. The cursor drawing service can adjust the column resolution of the base cursor image to the actual cursor column resolution and adjust the row resolution of the base cursor image to the ideal cursor row resolution, thereby obtaining the target cursor image.

[0080] This allows you to set the resolution of the base cursor image to fit the lowest screen resolution, specifically the ideal cursor resolution corresponding to that lowest screen resolution. For example, if the lowest screen resolution is 1920×1080 and the corresponding ideal cursor resolution is 100×100, then you can set the resolution of the base cursor image to 100×100.

[0081] As an example, in this case, the ideal cursor row resolution and ideal cursor column resolution can be 200, the column stretching factor can be 2, and the resolution of the base cursor image can be 100×100. The cursor drawing service can determine the corresponding actual cursor column resolution as 100 based on the ideal cursor column resolution of 200 and the column stretching factor of 2. In this example, both the row resolution of the base cursor image and the actual cursor column resolution are 100. Therefore, the cursor drawing service can maintain the row resolution of the base cursor image at 100, and can adjust the row resolution of the base cursor image from 100 to 200 (i.e., horizontal stretching) using an interpolation algorithm, thus obtaining a row-interpolated cursor image with a resolution of 200×100, as shown below. Figure 5 As shown; the cursor drawing service can also stitch a 200×100 resolution blank image below the line interpolation cursor image, thus obtaining a stitched cursor image with a resolution of 200×200. This stitched cursor image can be used as the target cursor image, such as... Figure 5 As shown, this ensures that the resolution of the target cursor image matches the ideal cursor resolution, which in this example is 200×200. The row resolution of the blank image can match the row resolution of the row-interpolated cursor image, while the column resolution of the blank image can be obtained by subtracting the column resolution of the row-interpolated cursor image from the ideal cursor column resolution. The cursor style can be, but is not limited to, a circle; Figure 5 In the example shown, the gray circle in the base cursor image can be the cursor style. During the line resolution adjustment and stitching process of the base cursor image, the distance between the top of the gray circle and the top edge of the image can remain unchanged; as an example, the distance between the top of the gray circle and the top edge of the base cursor image can be 25, correspondingly, the distance between the top of the gray circle and the top edge of the line interpolation cursor image is also 25, and the distance between the top of the gray circle and the top edge of the target cursor image is also 25.

[0082] Step S404: Render the target cursor image to display a cursor pointing to the control device on the screen of the display device.

[0083] After obtaining the target cursor image, the cursor drawing service can determine whether the target cursor image contains an image area outside the screen based on the cursor position pointing at the control device. As an implementation, the cursor position can represent the position of a specific point in the target cursor image relative to the screen. The cursor drawing service can align the cursor position with the specific point in the target cursor image. After alignment, it can determine whether the target cursor image contains an image area outside the screen based on the target cursor image's position relative to the screen. The specific point may include, but is not limited to, the center point of the target cursor image.

[0084] Based on the cursor position, a region can be defined within the screen frame buffer (FB). This region can be used to write the data corresponding to the cursor; this region can be called the cursor frame buffer. The cursor drawing service can determine the data to be written to the cursor frame buffer from the target cursor image based on whether there is an image region outside the screen. The corresponding data can then be written to the cursor frame buffer in the screen FB. Thus, based on the data stored in the cursor frame buffer, a cursor pointing to the control device can be displayed on the screen, and the cursor's display position corresponds to the aforementioned cursor position.

[0085] In the above embodiments, in response to a cursor rendering command for a pointing control device, it is determined whether the screen resolution of the display device controlled by the pointing control device is in interlaced rendering mode. Thus, upon receiving the cursor rendering command, it can first determine whether it corresponds to interlaced rendering mode, thereby determining whether to perform column resolution compensation processing on the basic cursor image corresponding to the pointing control device to ensure that the displayed cursor is not distorted. If the screen resolution corresponds to interlaced rendering mode, then the column resolution of the basic cursor image corresponding to the pointing control device can be compensated. During compensation processing, the ideal cursor column resolution corresponding to the screen column resolution and the column stretching factor in interlaced rendering mode can be determined. Based on the ideal cursor column resolution and the column stretching factor, the actual cursor column resolution is obtained. The column resolution of the basic cursor image corresponding to the pointing control device is adjusted to the actual cursor column resolution, thereby obtaining the target cursor image. Then, rendering processing is performed based on the target cursor image, allowing the cursor pointing to the control device to be displayed normally on the screen of the display device, avoiding cursor distortion.

[0086] In one embodiment, determining the column stretch factor in interlaced rendering mode includes: determining the number of interval rows in the interlaced rendering mode; and adjusting the number of interval rows to obtain the column stretch factor.

[0087] Interlaced rendering mode can represent how many rows are rendered at intervals. The cursor drawing service can determine the number of rows N corresponding to the interlaced rendering mode. Then, the number of rows N can be incremented by one, and the result N+1 can be used as the column stretching factor.

[0088] This embodiment can determine the number of rows in the interlaced rendering mode. By using this more specific mathematical parameter (number of rows in the interlaced mode) to calculate the column stretching factor, the vertical stretching ratio of the base cursor image can be quantified more accurately.

[0089] In one embodiment, obtaining the actual cursor column resolution based on the ideal cursor column resolution and the column stretching factor includes: determining the ratio of the ideal cursor column resolution to the column stretching factor; and obtaining the actual cursor column resolution based on the ratio.

[0090] After determining the ideal cursor column resolution and column stretch factor, the cursor drawing service can divide the ideal cursor column resolution by the column stretch factor to obtain the ratio of the ideal cursor column resolution to the column stretch factor. This ratio can then be used as the actual cursor column resolution.

[0091] As an example, the ideal cursor column resolution can be 200, and the column stretching factor can be 2. Dividing the ideal cursor column resolution of 200 by the column stretching factor of 2 gives a ratio of 100, which can be used as the actual cursor column resolution.

[0092] In this embodiment, the actual cursor column resolution can be obtained based on the ratio of the ideal cursor column resolution to the column stretching factor. Thus, the column resolution of the base cursor image is adjusted to the actual cursor column resolution. After subsequent interpolation processing along the column direction, the displayed cursor column resolution can be restored to the ideal cursor column resolution, thus avoiding deformation caused by cursor stretching.

[0093] In one embodiment, rendering based on the target cursor image includes: if the upper boundary of the target cursor image does not exceed the upper boundary of the screen of the display device, and the lower boundary of the target cursor image does not exceed the lower boundary of the screen, then a write operation is performed on the cursor frame buffer pointing to the control device based on the target cursor image.

[0094] As an implementation method, the cursor position can be used to represent the position of a specific point of the target cursor image relative to the screen. The cursor drawing service can align the cursor position with the specific point of the target cursor image. After alignment, it can determine whether the upper boundary of the target cursor image exceeds the upper boundary of the screen of the display device, and whether the lower boundary of the target cursor image exceeds the lower boundary of the screen. The specific point may include, but is not limited to, the center point of the target cursor image.

[0095] As an example, we can use the top-left corner of the screen as the origin of a coordinate system. The line connecting the top-left and top-right corners of the screen can be used as the x-axis, and the line connecting the top-left and bottom-left corners can be used as the y-axis. The positive direction of the x-axis can be from left to right, and the positive direction of the y-axis can be from top to bottom. This coordinate system can be called the screen coordinate system. The screen resolution can be 3840×2160, and the cursor position can be used to represent the position of the center point of the target cursor image relative to the screen; the resolution of the target cursor image can be 200×200.

[0096] In one example, such as Figure 6 As shown, the cursor position in the screen coordinate system can be (1920, 1080). After aligning the center point of the target cursor image to the cursor position (1920, 1080), the coordinates of the top left corner of the target cursor image can be determined as (1820, 1180), the top right corner as (2020, 1180), the bottom left corner as (1820, 980), and the bottom right corner as (2020, 980). The coordinates of the top left corner of the screen are (0, 0), the top right corner as (3840, 0), the bottom left corner as (0, 2160), and the bottom right corner as (3840, 2160). Based on the four corner coordinates of the target cursor image and the four corner coordinates of the screen, it can be determined that the upper boundary of the target cursor image does not exceed the upper boundary of the screen, and the lower boundary of the target cursor image does not exceed the lower boundary of the screen.

[0097] exist Figure 6 In the example shown, the target cursor image is entirely within the screen; that is, the left and right edges of the target cursor image do not extend beyond the left and right edges of the screen. Therefore, the area of ​​the target cursor image in the screen coordinate system can be defined as the target region. The target region can be a quadrilateral region, and its resolution can be the same as the target cursor image's resolution (200×200 in this example). The area in the screen framebuffer corresponding to the target region can be used as the cursor framebuffer, and its resolution can be the same as the target region's resolution.

[0098] The target cursor image is located in the same area as the target area in the screen coordinate system. Therefore, the value of the corresponding position in the target area can be determined based on the value of each pixel in the target cursor image. Based on the value of each position in the target area, the cursor frame buffer is written. Subsequently, the cursor pointing to the control device can be displayed on the screen based on the data stored in the cursor frame buffer. The display position of the cursor corresponds to the aforementioned cursor position.

[0099] In another example, such as Figure 7 As shown, the upper boundary of the target cursor image does not exceed the upper boundary of the screen, and the lower boundary of the target cursor image does not exceed the lower boundary of the screen. Figure 7 In the example shown, the target cursor image is partially within the screen, with its left edge extending beyond the left edge of the screen and its right edge situated between the left and right edges. Therefore, the left edge of the screen can be used as the left edge of the target region, and the top edge of the target cursor image as its top edge. Furthermore, considering that the resolution of the target region matches the resolution of the target cursor image, the target region can be determined in the screen coordinate system.

[0100] A region located between the left and right edges of the target cursor image can be identified. This region can be called a partial image region. The upper edge of the partial image region aligns with the upper edge of the target cursor image, and the left edge aligns with the left edge of the screen. Using the alignment of the upper and left edges of the partial image region with the target region as a reference, the partial image region is aligned with the target region. This establishes the correspondence between pixels in the partial image region and their positions in the target region. The values ​​of pixels in the partial image region can be assigned to the corresponding values ​​in the target region. If there are some positions in the target region that do not correspond to pixels in the partial image region, their values ​​can be set to invalid values, such as zero. Based on the correspondence between the target region and the cursor frame buffer, and the values ​​of each position in the target region, a write operation is performed on the cursor frame buffer. Subsequently, based on the data stored in the cursor frame buffer, a cursor pointing to the control device can be displayed on the screen, with the cursor's display position corresponding to the previously mentioned cursor position.

[0101] In another example, such as Figure 8 As shown, the upper boundary of the target cursor image does not exceed the upper boundary of the screen, and the lower boundary of the target cursor image does not exceed the lower boundary of the screen. Figure 8 In the example shown, the target cursor image is partially within the screen. The left edge of the target cursor image lies between the left and right edges of the screen, while the right edge extends beyond the right edge. Therefore, the right edge of the screen can be used as the right edge of the target region, and the top edge of the target cursor image can be used as the top edge of the target region. Furthermore, considering that the resolution of the target region is the same as the resolution of the target cursor image, the target region can be determined in the screen coordinate system.

[0102] A region located between the right edge of the screen and the left edge of the target cursor image can be identified. This region can be called a partial image region. The upper edge of the partial image region coincides with the upper edge of the target cursor image, and the right edge of the partial image region coincides with the right edge of the screen. Using the alignment of the upper edge of the partial image region with the upper edge of the target region, and the alignment of the right edge of the partial image region with the right edge of the target region, the partial image region is aligned with the target region. This establishes the correspondence between the pixels in the partial image region and their positions in the target region. The values ​​of the pixels in the partial image region can be assigned to the corresponding values ​​in the target region. If there is a mismatch between the pixels in the target region and those in the partial image region, the values ​​in these positions can be set to invalid values, such as zero. Based on the correspondence between the target region and the cursor frame buffer, and the values ​​at each position in the target region, a write operation is performed on the cursor frame buffer. Subsequently, based on the data stored in the cursor frame buffer, a cursor pointing to the control device can be displayed on the screen, with the cursor's display position corresponding to the previously mentioned cursor position.

[0103] In this embodiment, when it is determined from the cursor position that the upper and lower boundaries of the target cursor image do not exceed the screen, a write operation on the entire image can be performed on the cursor frame buffer based on the target cursor image, thereby improving cursor rendering efficiency.

[0104] In one embodiment, rendering processing based on the target cursor image includes: if the upper boundary of the target cursor image exceeds the upper boundary of the screen of the display device, or the lower boundary of the target cursor image exceeds the lower boundary of the screen, then obtaining the upper boundary distance based on the position of the upper boundary of the target area in the screen coordinate system and the position of the upper boundary of the target cursor image in the screen coordinate system; the upper boundary of the target area is the upper boundary of the cursor frame buffer pointing to the control device; obtaining the target distance based on the ratio of the upper boundary distance to the column stretching factor; and performing a write operation on the cursor frame buffer based on the target distance and a portion of the image area in the target cursor image.

[0105] As an implementation method, the cursor position can be used to represent the position of a specific point in the target cursor image relative to the screen. The cursor drawing service can align the cursor position with the specific point in the target cursor image. After alignment, it can determine whether the target cursor image has an image area located outside the screen based on the position of the target cursor image relative to the screen. The specific point may include, but is not limited to, the center point of the target cursor image.

[0106] This embodiment is based on the following assumptions: The interlaced rendering mode can be an interlaced rendering mode with every other line. The origin of the coordinate system can be the top-left corner of the screen. The line connecting the top-left and top-right corners of the screen can be used as the x-axis, and the line connecting the top-left and bottom-left corners can be used as the y-axis. The positive direction of the x-axis can be from left to right, and the positive direction of the y-axis can be from top to bottom. This coordinate system can be called the screen coordinate system. The screen resolution can be 3840×2160, and the resolution of the target cursor image is 200×200. Specifically, the coordinates of the top-left corner of the screen are (0, 0), the top-right corner is (3840, 0), the bottom-left corner is (0, 2160), and the bottom-right corner is (3840, 2160).

[0107] like Figure 9 As shown, in example (1), the cursor position can be used to represent the position of the center point of the target cursor image relative to the screen. The coordinates of the cursor position in the screen coordinate system can be (-50, -50). After aligning the center point of the target cursor image to the cursor position (-50, -50), the coordinates of the top left corner of the target cursor image can be determined as (-150, -150), the coordinates of the top right corner as (50, -150), the coordinates of the bottom left corner as (-150, 50), and the coordinates of the bottom right corner as (50, 50). Based on the four corner coordinates of the target cursor image and the four corner coordinates of the screen, it can be determined that the target cursor image is not completely located within the screen, and the target cursor image exists in an image area located outside the screen.

[0108] The target area can be determined in the screen coordinate system. The target area can be a quadrilateral area, and the coordinates of the top-left corner of the target area can be the coordinates of the top-left corner of the screen (0, 0). The resolution of the target area can be the same as the resolution of the target cursor image (in this example, both are 200×200). The area in the screen frame buffer corresponding to the target area can be used as the cursor frame buffer, and the resolution of the cursor frame buffer can be the same as the resolution of the target area.

[0109] The upper boundary of the target region is located at y=0 in the screen coordinate system, and the upper boundary of the target cursor image is located at y=-150 in the screen coordinate system. Based on these two positions, the distance between the upper boundary of the target region and the upper boundary of the target cursor image (which can be called the upper boundary distance) can be determined to be 150. Dividing the upper boundary distance by the column stretch factor (in this example, the column stretch factor is 2) yields a ratio of 75, which can be used as the target distance. After determining the target distance, a write operation can be performed on the cursor frame buffer based on the target distance and a portion of the image area in the target cursor image.

[0110] like Figure 10As shown, in example (2), for ease of explanation, the coordinates of the upper right corner of the screen (3840, 0) are denoted as (a, 0). The cursor position can be used to represent the position of the center point of the target cursor image relative to the screen. The coordinates of the cursor position in the screen coordinate system can be (a+50, -50). After aligning the center point of the target cursor image to the cursor position (a+50, -50), the coordinates of the upper left, upper right, lower left, and lower right corners of the target cursor image can be determined. Based on the four corner coordinates of the target cursor image and the four corner coordinates of the screen, it can be determined that the target cursor image is not completely located within the screen, and the target cursor image exists in an image area located outside the screen.

[0111] The target area can be determined in the screen coordinate system. The target area can be a quadrilateral area, and the coordinates of the upper right corner of the target area can be the coordinates of the upper right corner of the screen (a, 0). The resolution of the target area can be the same as the resolution of the target cursor image (in this example, both are 200×200). The area in the screen framebuffer corresponding to the target area can be used as the cursor framebuffer, and the resolution of the cursor framebuffer can be the same as the resolution of the target area.

[0112] The upper boundary of the target region is located at y=0 in the screen coordinate system, and the upper boundary of the target cursor image is located at y=-150 in the screen coordinate system. Based on these two positions, the distance between the upper boundary of the target region and the upper boundary of the target cursor image (which can be called the upper boundary distance) can be determined to be 150. Dividing the upper boundary distance by the column stretch factor (in this example, the column stretch factor is 2) yields a ratio of 75, which can be used as the target distance. After determining the target distance, a write operation can be performed on the cursor frame buffer based on the target distance and a portion of the image area in the target cursor image.

[0113] like Figure 11 As shown, in example (3), the cursor position can be used to represent the position of the center point of the target cursor image relative to the screen. The coordinates of the cursor position in the screen coordinate system can be (200, -50). After aligning the center point of the target cursor image to the cursor position (200, -50), the coordinates of the top left, top right, bottom left, and bottom right corners of the target cursor image can be determined. Based on the four corner coordinates of the target cursor image and the four corner coordinates of the screen, it can be determined that the target cursor image is not completely located within the screen, and the target cursor image exists in an image area located outside the screen.

[0114] The target area can be determined in the screen coordinate system. The target area can be a quadrilateral area, and the coordinates of the upper right corner of the target area can be (100, 0). The resolution of the target area can be the same as the resolution of the target cursor image (in this example, both are 200×200). The area in the screen frame buffer corresponding to the target area can be used as the cursor frame buffer, and the resolution of the cursor frame buffer can be the same as the resolution of the target area.

[0115] The upper boundary of the target region is located at y=0 in the screen coordinate system, and the upper boundary of the target cursor image is located at y=-150 in the screen coordinate system. Based on these two positions, the distance between the upper boundary of the target region and the upper boundary of the target cursor image (which can be called the upper boundary distance) can be determined to be 150. Dividing the upper boundary distance by the column stretch factor (in this example, the column stretch factor is 2) yields a ratio of 75, which can be used as the target distance. After determining the target distance, a write operation can be performed on the cursor frame buffer based on the target distance and a portion of the image area in the target cursor image.

[0116] It is understandable that examples (1) to (3) above fall under the following situation: the upper boundary of the target cursor image extends beyond the upper boundary of the screen, and the lower boundary of the target cursor image is between the upper and lower boundaries of the screen. Furthermore, in examples (1) to (3) above, the method for determining the target region can be described as follows:

[0117] In example (1), the left edge of the target cursor image extends beyond the left edge of the screen, and the right edge of the target cursor image is between the left and right edges of the screen. The x-coordinate of the top left corner of the target area matches the position of the left edge of the screen (i.e., x=0), and the y-coordinate of the top left corner of the target area matches the position of the top edge of the screen (i.e., y=0). Then, using the resolution of the target cursor image as the resolution of the target area, combined with the coordinate of the top left corner of the target area, the target area can be determined in the screen coordinate system.

[0118] In example (2), the right edge of the target cursor image extends beyond the right edge of the screen, and the left edge of the target cursor image is between the left and right edges of the screen. The upper right corner x-coordinate of the target area matches the position of the right edge of the screen (i.e., x=a), and the upper left corner y-coordinate of the target area matches the position of the upper edge of the screen (i.e., y=0). Then, using the resolution of the target cursor image as the resolution of the target area, combined with the upper right corner coordinate of the target area, the target area can be determined in the screen coordinate system.

[0119] In example (3), the left edge of the target cursor image does not exceed the left edge of the screen, and the right edge of the target cursor image does not exceed the right edge of the screen. The horizontal coordinate of the upper left corner of the target area matches the position of the left edge of the target cursor image (i.e., x=100), and the vertical coordinate of the upper left corner of the target area matches the position of the upper edge of the screen (i.e., y=0). Then, using the resolution of the target cursor image as the resolution of the target area, combined with the upper left corner coordinate of the target area, the target area can be determined in the screen coordinate system.

[0120] In example (4), for ease of explanation, the coordinates of the bottom right corner of the screen (3840, 2160) are denoted as (a, b). Figure 12 As shown, the cursor position represents the location of the center point of the target cursor image relative to the screen. The cursor position's coordinates in the screen coordinate system can be (a+50, b+50). After aligning the center point of the target cursor image to the cursor position (a+50, b+50), the coordinates of the top-left corner of the target cursor image can be determined as (a-50, b-50), the top-right corner as (a+150, b-150), the bottom-left corner as (a-50, b+150), and the bottom-right corner as (a+150, b+150). Based on the four corner coordinates of the target cursor image and the four corner coordinates of the screen, it can be determined that the target cursor image is not entirely within the screen; it exists in an image area outside the screen.

[0121] The target area can be determined in the screen coordinate system. The target area can be a quadrilateral area, and the coordinates of the upper right corner of the target area can be the coordinates of the lower right corner of the screen (a, b). The resolution of the target area can be the same as the resolution of the target cursor image (in this example, both are 200×200). The area in the screen frame buffer corresponding to the target area can be used as the cursor frame buffer, and the resolution of the cursor frame buffer can be the same as the resolution of the target area.

[0122] The upper boundary of the target region is located at y=b-200 in the screen coordinate system, and the upper boundary of the target cursor image is located at y=b-50 in the screen coordinate system. Based on these two positions, the distance between the upper boundary of the target region and the upper boundary of the target cursor image (which can be called the upper boundary distance) can be determined to be 150. Dividing the upper boundary distance by the column stretch factor (in this example, the column stretch factor is 2) yields a ratio of 75, which can be used as the target distance. After determining the target distance, a write operation can be performed on the cursor frame buffer based on the target distance and a portion of the image area in the target cursor image.

[0123] In example (5), for ease of explanation, the coordinates of the lower left corner of the screen (0, 2160) are denoted as (0, b). Figure 13As shown, the cursor position represents the location of the center point of the target cursor image relative to the screen. The cursor position's coordinates in the screen coordinate system can be (-50, b+50). After aligning the center point of the target cursor image to the cursor position (-50, b+50), the coordinates of the top-left, top-right, bottom-left, and bottom-right corners of the target cursor image can be determined. Based on the four corner coordinates of the target cursor image and the four corner coordinates of the screen, it can be determined that the target cursor image is not entirely within the screen; it exists in an image area outside the screen.

[0124] The target area can be determined in the screen coordinate system. The target area can be a quadrilateral area, and the coordinates of the lower left corner of the target area can be the coordinates of the lower left corner of the screen (0, b). The resolution of the target area can be the same as the resolution of the target cursor image (in this example, both are 200×200). The area in the screen frame buffer corresponding to the target area can be used as the cursor frame buffer, and the resolution of the cursor frame buffer can be the same as the resolution of the target area.

[0125] The upper boundary of the target region is located at y=b-200 in the screen coordinate system, and the upper boundary of the target cursor image is located at y=b-50 in the screen coordinate system. Based on these two positions, the distance between the upper boundary of the target region and the upper boundary of the target cursor image (which can be called the upper boundary distance) can be determined to be 150. Dividing the upper boundary distance by the column stretch factor (in this example, the column stretch factor is 2) yields a ratio of 75, which can be used as the target distance. After determining the target distance, a write operation can be performed on the cursor frame buffer based on the target distance and a portion of the image area in the target cursor image.

[0126] In example (6), such as Figure 14 As shown, the cursor position represents the location of the center point of the target cursor image relative to the screen. The cursor position's coordinates in the screen coordinate system can be (200, b+50). After aligning the center point of the target cursor image to the cursor position (200, b+50), the coordinates of the top-left, top-right, bottom-left, and bottom-right corners of the target cursor image can be determined. Based on the four corner coordinates of the target cursor image and the four corner coordinates of the screen, it can be determined that the target cursor image is not entirely within the screen; it exists in an image area outside the screen.

[0127] The target area can be determined in the screen coordinate system. The target area can be a quadrilateral area, and the coordinates of the lower left corner of the target area can be (100, b). The resolution of the target area can be the same as the resolution of the target cursor image (in this example, both are 200×200). The area in the screen frame buffer corresponding to the target area can be used as the cursor frame buffer, and the resolution of the cursor frame buffer can be the same as the resolution of the target area.

[0128] The upper boundary of the target region is located at y=b-200 in the screen coordinate system, and the upper boundary of the target cursor image is located at y=b-50 in the screen coordinate system. Based on these two positions, the distance between the upper boundary of the target region and the upper boundary of the target cursor image (which can be called the upper boundary distance) can be determined to be 150. Dividing the upper boundary distance by the column stretch factor (in this example, the column stretch factor is 2) yields a ratio of 75, which can be used as the target distance. After determining the target distance, a write operation can be performed on the cursor frame buffer based on the target distance and a portion of the image area in the target cursor image.

[0129] It is understandable that examples (4) to (6) above fall under the following situation: the upper boundary of the target cursor image is between the upper and lower boundaries of the display device's screen, and the lower boundary of the target cursor image extends beyond the lower boundary of the screen. Furthermore, in examples (4) to (6) above, the method for determining the target area can be described as follows:

[0130] In example (4), the right edge of the target cursor image extends beyond the right edge of the screen, and the left edge of the target cursor image is between the left edge and the right edge of the screen. The horizontal coordinate of the lower right corner of the target area matches the position of the right edge of the screen (i.e., x=a), and the vertical coordinate of the lower right corner of the target area matches the position of the lower edge of the screen (i.e., y=b). Then, using the resolution of the target cursor image as the resolution of the target area, combined with the lower right corner coordinate of the target area, the target area can be determined in the screen coordinate system.

[0131] In example (5), the left edge of the target cursor image extends beyond the left edge of the screen, and the right edge of the target cursor image is between the left and right edges of the screen. The horizontal coordinate of the lower left corner of the target area matches the position of the left edge of the screen (i.e., x=0), and the vertical coordinate of the lower left corner of the target area matches the position of the lower edge of the screen (i.e., y=b). Then, using the resolution of the target cursor image as the resolution of the target area, combined with the lower left corner coordinate of the target area, the target area can be determined in the screen coordinate system.

[0132] In example (6), the left edge of the target cursor image does not exceed the left edge of the screen, and the right edge of the target cursor image does not exceed the right edge of the screen. The horizontal coordinate of the lower left corner of the target area matches the position of the left edge of the target cursor image (i.e., x=100), and the vertical coordinate of the lower left corner of the target area matches the position of the lower edge of the screen (i.e., y=b). Then, using the resolution of the target cursor image as the resolution of the target area, combined with the lower left corner coordinate of the target area, the target area can be determined in the screen coordinate system.

[0133] In this embodiment, after calculating the upper boundary distance between the upper boundary of the target region and the upper boundary of the target cursor image, the ratio of the upper boundary distance to the column stretching factor can be obtained, thereby determining the target distance. Based on the target distance and a portion of the image region in the target cursor image, a write operation can be performed on the cursor frame buffer, thereby enabling the cursor to adapt to the interlaced rendering mode and avoiding deformation caused by the cursor being stretched.

[0134] In one embodiment, writing to the cursor frame buffer based on the target distance and a portion of the image area in the target cursor image includes: if the upper boundary of the target cursor image is between the upper and lower boundaries of the screen of the display device, and the lower boundary of the target cursor image extends beyond the lower boundary of the screen, then a writing baseline is determined below the upper boundary of the target area and at a distance equal to the target distance from the upper boundary of the target area; a portion of the image area is obtained based on the image area in the target cursor image located between the upper boundary of the image and the lower boundary of the screen; and the cursor frame buffer is written based on the portion of the image area, with the upper boundary of the portion of the image area aligned with the writing baseline.

[0135] In such Figures 12 to 14 In the example shown, the upper boundary of the target cursor image is between the upper and lower boundaries of the display device's screen, and the lower boundary of the target cursor image extends beyond the lower boundary of the screen. The upper boundary of the target area is at y=b-200. In this example, the target distance is 75. y=b-275 is a straight line below the upper boundary of the target area and at a distance equal to the target distance from the upper boundary of the target area. This line y=b-275 can be used as the writing baseline. Figure 15 As shown.

[0136] A region within the target cursor image, between its upper boundary and the lower boundary of the screen, can be defined as a partial image region. After obtaining this partial image region, it can be aligned with the target region by aligning its upper boundary to the write baseline and its left boundary to the left boundary of the target region. Figure 15As shown, this allows us to determine the correspondence between pixels in a portion of the image region and their positions in the target region. The values ​​of pixels in a portion of the image region can be assigned to the corresponding positions in the target region. If there are some positions in the target region that do not correspond to pixels in the portion of the image region, the values ​​at these positions can be set to invalid values, such as zero. Based on the correspondence between the target region and the cursor frame buffer, and the values ​​at each position in the target region, a write operation is performed on the cursor frame buffer.

[0137] In this embodiment, when the upper boundary of the target cursor image is between the upper and lower boundaries of the screen of the display device, and the lower boundary of the target cursor image exceeds the lower boundary of the screen, a writing baseline can be determined below the upper boundary of the target area and at a target distance from the upper boundary of the target area. After obtaining a partial image area based on the image area located between the upper and lower boundaries of the target cursor image, the cursor frame buffer can be written based on the partial image area with its upper boundary aligned to the writing baseline. This ensures that the cursor can be displayed normally after subsequent interpolation algorithm processing, avoiding deformation caused by cursor stretching.

[0138] In one embodiment, a write operation is performed on the cursor frame buffer based on the target distance and a portion of the image area in the target cursor image, including: if the upper boundary of the target cursor image exceeds the upper boundary of the screen of the display device, and the lower boundary of the target cursor image is between the upper boundary of the screen and the lower boundary of the screen, then an extraction upper boundary line is determined above the upper boundary of the target area and at a target distance from the upper boundary of the target area; a portion of the image area is obtained based on the image area in the target cursor image located below the extraction upper boundary line; and a write operation is performed on the cursor frame buffer based on the portion of the image area.

[0139] In such Figures 9 to 11 In the example shown, the upper boundary of the target cursor image extends beyond the top edge of the screen, while the lower boundary lies between the top and bottom edges of the screen. The upper boundary of the target area is at y=0. In this example, the target distance is 75. y=-75 is a straight line above the upper boundary of the target area and at a distance equal to the target distance from the upper boundary. This line y=-75 can be used as the upper boundary line for extraction. Figure 16 As shown.

[0140] A partial image region can be obtained by identifying an image area located below the upper boundary line y=-75 in the target cursor image. Alternatively, an image region can be identified in the target cursor image between the upper boundary line y=-75 and the lower boundary of the image, and this region can be used as the partial image region. After obtaining the partial image region, it can be aligned with the target region by aligning the upper boundary of the partial image region with the upper boundary of the target region, and aligning the right boundary of the partial image region with the right boundary of the target region. Figure 16 As shown, this allows us to determine the correspondence between pixels in a portion of the image region and their positions in the target region. The values ​​of pixels in a portion of the image region can be assigned to the corresponding positions in the target region. If there are some positions in the target region that do not correspond to pixels in the portion of the image region, the values ​​at these positions can be set to invalid values, such as zero. Based on the correspondence between the target region and the cursor frame buffer, and the values ​​at each position in the target region, a write operation is performed on the cursor frame buffer.

[0141] In this embodiment, when the upper boundary of the target cursor image exceeds the upper boundary of the display device screen, and the lower boundary of the target cursor image is between the upper and lower boundaries of the screen, the upper boundary line can be determined above the upper boundary of the target area and at a target distance from the upper boundary of the target area. Based on this upper boundary line, a portion of the image area in the target cursor image located below the upper boundary line can be written. This ensures that the cursor can be displayed normally after subsequent interpolation algorithm processing, avoiding deformation caused by cursor stretching.

[0142] The pointing control device method provided in this application can be used in scenarios where pointing is made to a remote control and a television. In this scenario, pointing to the remote control can be used to control the television.

[0143] The remote control can be paired with the TV's dongle (via Bluetooth or StarFlash). When the user moves the pointer to the remote control, the remote control's position and swipe data can be written to the TV's HID node.

[0144] The TV system can launch the cursor rendering service (PrcRenderService) and the input event management service (InputManagerService, IMS). The input event management service can include an input event collector (InputReader) unit and an input event dispatcher (InputDispatcher) unit. The cursor rendering service can read cursor rendering materials (such as a basic cursor image) and, based on real-time received remote control position and swipe data, move the cursor or display cursor swipe animation effects. Figure 17As shown, the cursor drawing service can include four units: PrclnputReader (input reading), PrcResource (resource management), PrcDrawManager (drawing management), and PrcFbDevice (frame buffer processing). The interaction process between these four units is as follows: Figure 18 As shown.

[0145] The PrcInputReader unit can run in a separate thread (such as the readpr thread), responsible for managing pointers to the remote control and supporting hot-swapping of the device. The PrcInputReader unit can listen to the hidraw node data based on epoll, read the hid remote control input events, and send the event data back to the PrcDrawManager unit.

[0146] The PrcDrawManager unit can call the PrcResource unit during initialization to decode the basic cursor image and save the resulting RGBA data to memory. Upon receiving event data from the PrcInputReader unit, the PrcDrawManager unit first parses the event type. If it's a swipe event, the PrcDrawManager unit can obtain the corresponding swipe style cursor material and pass the material animation data to the PrcFbDevice unit for rendering. If it's a move event, the PrcDrawManager unit can obtain the screen resolution and screen frame rate (FB) resolution, determine whether the screen resolution corresponds to interlaced rendering mode, and if so, re-call the PrcResource unit to initialize the cursor resource and generate RGBA data adapted to the target cursor image using interpolation. Rendering is then performed based on the cursor position and the RGBA data of the target cursor image, and the rendering instructions are passed to the PrcFbDevice unit.

[0147] The PrcFbDevice unit can obtain the resolution of the cursor frame buffer (e.g., 200×200) and set the number of buffers during initialization. The PrcFbDevice unit can directly interact with the frame buffer, obtain the screen resolution and the frame buffer's own resolution, and submit RGBA data to the frame buffer for rendering.

[0148] In one embodiment, a pointing control device apparatus is provided, comprising:

[0149] The mode determination module is used to determine, in response to a cursor rendering command for a pointing control device, whether the screen resolution of the display device controlled by the pointing control device is in interlaced rendering mode; the screen resolution includes the screen column resolution;

[0150] The information determination module is used to determine the ideal cursor column resolution corresponding to the screen column resolution and to determine the column stretching factor in the interlaced rendering mode if the screen resolution corresponds to the interlaced rendering mode.

[0151] The resolution adjustment module is used to obtain the actual cursor column resolution based on the ideal cursor column resolution and the column stretching factor, and adjust the column resolution of the basic cursor image corresponding to the pointing control device to the actual cursor column resolution to obtain the target cursor image;

[0152] The rendering processing module is used to perform rendering processing based on the target cursor image so as to display the cursor pointing to the control device on the screen of the display device.

[0153] The modules in the aforementioned pointing and control device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device, or stored in the memory of a computer device as software, so that the processor can call and execute the operations corresponding to each module.

[0154] In one embodiment, a display device is provided, the display device including a controller and a screen; the display device is controlled by a pointing control device;

[0155] The controller is configured to:

[0156] In response to a cursor rendering command for the pointing control device, it is determined whether the screen resolution of the display device is in interlaced rendering mode; the screen resolution includes the screen column resolution;

[0157] If the screen resolution corresponds to interlaced rendering mode, then determine the ideal cursor column resolution corresponding to the screen column resolution, and determine the column stretching factor in the interlaced rendering mode;

[0158] Based on the ideal cursor column resolution and the column stretching factor, the actual cursor column resolution is obtained. The column resolution of the base cursor image corresponding to the pointing control device is adjusted to the actual cursor column resolution to obtain the target cursor image.

[0159] The target cursor image is rendered to display the cursor pointing to the control device on the screen.

[0160] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the steps in the various method embodiments described above.

[0161] In one embodiment, a computer program product is provided having a computer program stored thereon, the computer program being executed by a processor of the steps described in the various method embodiments above.

[0162] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data must comply with relevant regulations.

[0163] Those skilled in the art will understand that all or part of the processes in the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as the combination of these technical features does not contradict each other, it should be considered within the scope of this application. The above embodiments only illustrate several implementation methods of this application, and their descriptions are relatively specific and detailed, but they should not be construed as limiting the scope of this application. It should be noted that those skilled in the art can make several modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. A method for rendering a cursor pointing to a control device, characterized in that, The method includes: In response to a cursor rendering command for a pointing control device, determine whether the screen resolution of the display device controlled by the pointing control device is in interlaced rendering mode; the screen resolution includes the screen column resolution; If the screen resolution corresponds to interlaced rendering mode, then determine the ideal cursor column resolution corresponding to the screen column resolution, and determine the column stretching factor in the interlaced rendering mode; Based on the ideal cursor column resolution and the column stretching factor, the actual cursor column resolution is obtained. The column resolution of the base cursor image corresponding to the pointing control device is adjusted to the actual cursor column resolution to obtain the target cursor image. The target cursor image is rendered to display the cursor pointing to the control device on the screen of the display device.

2. The method according to claim 1, characterized in that, Determining the column stretch factor in the interlaced rendering mode includes: Determine the number of interlaced lines in the interlaced rendering mode; The column stretching factor is obtained by adjusting the number of rows at intervals.

3. The method according to claim 1, characterized in that, The step of obtaining the actual cursor column resolution based on the ideal cursor column resolution and the column stretching factor includes: Determine the ratio of the ideal cursor column resolution to the column stretch factor; The actual cursor column resolution is obtained based on the ratio.

4. The method according to claim 1, characterized in that, The rendering process based on the target cursor image includes: If the upper boundary of the target cursor image does not exceed the upper boundary of the screen of the display device, and the lower boundary of the target cursor image does not exceed the lower boundary of the screen, then a write operation is performed on the cursor frame buffer of the pointing control device based on the target cursor image.

5. The method according to claim 1, characterized in that, The rendering process based on the target cursor image includes: If the upper boundary of the target cursor image exceeds the upper boundary of the screen of the display device, or the lower boundary of the target cursor image exceeds the lower boundary of the screen, then the upper boundary distance is obtained based on the position of the upper boundary of the target area in the screen coordinate system and the position of the upper boundary of the target cursor image in the screen coordinate system; the upper boundary of the target area is the upper boundary of the target area corresponding to the cursor frame buffer in the screen coordinate system. The target distance is obtained based on the ratio of the upper boundary distance to the column stretch factor; The cursor frame buffer is written based on the target distance and a portion of the image area in the target cursor image.

6. The method according to claim 5, characterized in that, The step of writing to the cursor frame buffer based on the target distance and a portion of the image region in the target cursor image includes: If the upper boundary of the target cursor image is between the upper and lower boundaries of the screen of the display device, and the lower boundary of the target cursor image extends beyond the lower boundary of the screen, then a writing baseline is determined below the upper boundary of the target area and at a distance equal to the target distance from the upper boundary of the target area. Based on the image region located between the upper boundary of the target cursor image and the lower boundary of the screen, a partial image region is obtained; The cursor frame buffer is written by aligning the upper boundary of the partial image region with the writing baseline, based on the partial image region.

7. The method according to claim 5, characterized in that, The step of writing to the cursor frame buffer based on the target distance and a portion of the image region in the target cursor image includes: If the upper boundary of the target cursor image exceeds the upper boundary of the screen of the display device, and the lower boundary of the target cursor image is between the upper boundary of the screen and the lower boundary of the screen, then the upper boundary line is determined to be extracted above the upper boundary of the target area and at a distance from the upper boundary of the target area equal to the target distance. A partial image region is obtained based on the image region in the target cursor image located below the upper boundary line of the extraction; Write operations are performed on the cursor frame buffer based on the specified image region.

8. A display device, characterized in that, The display device includes a controller and a screen; the display device is controlled by a pointing control device. The controller is configured to: In response to a cursor rendering command for the pointing control device, it is determined whether the screen resolution of the display device is in interlaced rendering mode; the screen resolution includes the screen column resolution; If the screen resolution corresponds to interlaced rendering mode, then determine the ideal cursor column resolution corresponding to the screen column resolution, and determine the column stretching factor in the interlaced rendering mode; Based on the ideal cursor column resolution and the column stretching factor, the actual cursor column resolution is obtained. The column resolution of the base cursor image corresponding to the pointing control device is adjusted to the actual cursor column resolution to obtain the target cursor image. The target cursor image is rendered to display the cursor pointing to the control device on the screen.

9. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 7.

10. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 7.