WO2023093076A1 - Method and apparatus for suppressing display jitter, electronic device, and storage medium - Google Patents

Method and apparatus for suppressing display jitter, electronic device, and storage medium Download PDF

Info

Publication number
WO2023093076A1
WO2023093076A1 PCT/CN2022/105422 CN2022105422W WO2023093076A1 WO 2023093076 A1 WO2023093076 A1 WO 2023093076A1 CN 2022105422 W CN2022105422 W CN 2022105422W WO 2023093076 A1 WO2023093076 A1 WO 2023093076A1
Authority
WO
WIPO (PCT)
Prior art keywords
touch event
rendering request
update
client
input
Prior art date
Application number
PCT/CN2022/105422
Other languages
French (fr)
Chinese (zh)
Inventor
邓宝安
Original Assignee
北京字节跳动网络技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京字节跳动网络技术有限公司 filed Critical 北京字节跳动网络技术有限公司
Publication of WO2023093076A1 publication Critical patent/WO2023093076A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Definitions

  • Embodiments of the present disclosure relate to electronic device display processing technologies, for example, to a method and device for suppressing display jitter, electronic devices, and storage media.
  • the kernel events generated in the operating system are generally sent to the compositor (wayland compositor) first, and the compositor checks the scene graph (scenegraph) of kernel events to determine which window the corresponding client should receive The kernel event. After the client receives the kernel event, it starts to update the rendering interface. After the rendering is completed, the composition request is sent to the compositor (wayland compositor) through the wayland socket. The compositor (wayland compositor) synthesizes multiple interface graphics and outputs them through the display screen. Implement screen pattern refresh. However, since the compositor (wayland compositor) has other tasks to process besides receiving kernel events, sometimes it may cause thread blocking, so that kernel events cannot be responded in time, resulting in frame loss, resulting in screen pattern jitter.
  • Embodiments of the present disclosure provide a method and device for suppressing display jitter, electronic equipment, and a storage medium, so as to suppress the problem of screen pattern jitter existing in the related art.
  • the present disclosure provides a method for suppressing display jitter, including:
  • the client determines whether the updated rendering request is the same as the previous updated rendering request
  • the client obtains the touch event received by its own input thread; judges that the touch event in the updated rendering request is the latest touch event received by the input thread Whether they are the same; based on the judgment result that the touch event in the update rendering request is the same as the latest touch event received by the input thread, it is determined not to respond to the update rendering request, based on the touch event in the update rendering request and the If the judgment result of the latest touch event received by the input thread is different, update and render the corresponding scene graph according to the latest touch event received by the input thread, and output the rendered scene graph to the compositor.
  • the present disclosure provides a method for suppressing display jitter, including:
  • the compositor When the trigger period arrives, the compositor detects its own touch event queue. If the touch event queue is empty, the touch event in the previous trigger period generates an update rendering request, and sends the generated update rendering request to The client sends.
  • the present disclosure provides a device for suppressing display jitter, including:
  • the first judging unit is configured to, in response to an updated rendering request from the compositor, judge whether the updated rendering request is the same as the previous updated rendering request;
  • the acquisition unit is configured to trigger the client to acquire the touch event received by its own input thread based on the judgment result that the updated rendering request is the same as the previous updated rendering request;
  • the second judging unit is configured to judge whether the touch event in the update rendering request is the same as the latest touch event received by the input thread, based on the touch event in the update rendering request and the latest touch event received by the input thread Triggering the first processing unit if the event is the same; triggering the second processing unit based on the judgment result that the touch event in the update rendering request is different from the latest touch event received by the input thread;
  • a first processing unit configured to determine not to respond to the update rendering request
  • the second processing unit is configured to update and render the corresponding scene graph based on the latest touch event received by the input thread, and output the rendered scene graph to the compositor.
  • the present disclosure provides a device for suppressing display jitter, including:
  • the detection unit is configured to detect whether the touch event queue is empty when the trigger period arrives, and trigger the generation unit based on the detection result that the touch event queue is empty;
  • a generating unit configured to generate an update rendering request for a touch event in a previous trigger cycle
  • a sending unit configured to send the update rendering request to the client.
  • the present disclosure provides an electronic device, including a processor, a memory, and an executable program stored on the memory and capable of being run by the processor.
  • the processor runs the executable program, the aforementioned first The steps of the method for suppressing display jitter described in the aspect or the second aspect.
  • the present disclosure provides a storage medium on which an executable program is stored, and when the executable program is executed by a processor, the steps of the method for suppressing display jitter described in the aforementioned first or second aspect are implemented.
  • FIG. 1 is a schematic flowchart of a method for suppressing display jitter according to an embodiment of the present disclosure
  • FIG. 2 is a schematic flowchart of a method for suppressing display jitter according to an embodiment of the present disclosure
  • FIG. 3 is a schematic diagram of an implementation framework for suppressing display jitter according to an embodiment of the present disclosure
  • FIG. 4 is a schematic diagram of implementation signaling for suppressing display jitter according to an embodiment of the present disclosure
  • FIG. 5 is a schematic diagram of the composition and structure of a device for suppressing display jitter according to an embodiment of the present disclosure
  • FIG. 6 is a schematic diagram of the composition and structure of a device for suppressing display jitter according to an embodiment of the present disclosure
  • FIG. 7 is a schematic diagram of the composition and structure of a device for suppressing display jitter according to an embodiment of the present disclosure
  • FIG. 8 is a structural diagram of an electronic device according to an embodiment of the present disclosure.
  • FIG. 1 is a schematic flow chart of a method for suppressing display jitter in an embodiment of the present disclosure.
  • the method for suppressing display jitter in an embodiment of the present disclosure can be executed by a client.
  • the method for suppressing display jitter in an embodiment of the present disclosure includes The following processing steps:
  • Step 101 in response to an updated rendering request from the compositor, the client determines whether the updated rendering request is the same as the previous updated rendering request.
  • the client After receiving the update rendering request from the compositor, the client first obtains the touch event in the update rendering request, and determines whether the touch event is the same as the touch event in the previously received update rendering request, based on the touch event and If the touch event in the previously received update rendering request is the same as the judgment result, it is determined that the current update rendering request is the same as the previous update rendering request, based on the fact that the touch event is different from the touch event in the previously received update rendering request As a result of the judgment, it is determined that the current update rendering request is different from the previous update rendering request.
  • the same touch events refer to the same position information in the touch events.
  • the client judges the update rendering request sent by the compositor, so as to perform corresponding processing. If the updated rendering request is different from the previous updated rendering request, the client uses the touch event in the updated rendering request to perform updated rendering of the corresponding scene graph. In this case, it is considered that the synthesizer handles the touch event in a timely manner, and no thread blocking occurs.
  • the client refers to an application corresponding to multiple display windows in the display framework of the wayland protocol, and may also be a window currently displayed by a related application or its corresponding process.
  • the input thread can detect the touch event input by the input driver, set a time stamp for the detected touch event, and add the touch event with the time stamp to in the touch event queue.
  • the detected touch events can be sorted in order of time stamps, so that the client can obtain the latest touch event from the touch event queue.
  • corresponding input threads are respectively set for more than one process in the client, and each input thread detects a touch event of its corresponding process. That is, an input thread is set for each client to detect the touch event of the client and add it to a corresponding touch event queue.
  • the client detects the current display window, assigns at least one of the set number of input threads to the current display window, and Touch events are detected by the assigned input thread.
  • the number of settings here can be 3, 4, 5, 6, 7, 8, or 9, etc., that is, set a shared input thread for the current display window to dynamically call the corresponding client after the current display window is determined.
  • the input thread detects touch events.
  • Step 102 Based on the judgment result that the updated rendering request is the same as the previous updated rendering request, the client obtains the touch event received by its own input thread, and judges that the touch event in the updated rendering request is consistent with the touch event received by the input thread. Is the latest touch event the same.
  • the compositor detects that the local touch event queue is empty, it still sends an update rendering request to the client, so that the client can update and render the pattern based on the touch event detected by itself.
  • the client After the client receives the update rendering request sent by the compositor, it judges whether the touch event in the update rendering request is the same as the latest touch event received by the local input thread, so as to determine whether the compositor has discarded the touch event, so that when the compositor discards
  • the screen pattern is refreshed and rendered with the latest touch position in the touch event received by the local receiving thread to ensure that the display pattern does not shake and improve the display quality of the display.
  • Step 103 based on the judgment result that the touch event in the update rendering request is the same as the latest touch event received by the input thread, determine not to respond to the update rendering request.
  • the client refreshes and renders the screen pattern based on the touch position of the touch event in the update rendering request to ensure normal screen pattern refresh.
  • Step 104 Based on the judging result that the touch event in the update rendering request is different from the latest touch event received by the input thread, update and render the corresponding scene graph according to the latest touch event received by the input thread, and send to the composite The renderer outputs the rendered scene graph.
  • the compositor if it is determined that the touch event in the currently received update rendering request is different from the latest touch event in the client's touch event queue, it may mean that the compositor failed to respond to the touch event in time, and the compositor side A touch event is discarded due to thread blocking. At this time, in order to confirm whether the touch event is discarded on the compositor side, the compositor continues to send an update rendering request to the client, triggering the client to receive based on the local receiving thread. Refresh the screen pattern according to the received touch event to ensure that the display pattern can still be updated with the latest touch event, avoiding the jitter of the display pattern caused by the blockage of the thread on the synthesizer side.
  • the client by setting an input thread (libinput) for the client to detect the touch event (touch), the client can detect the touch event independently of the compositor, and store the acquired touch event in Local touch event queue.
  • libinput input thread
  • the client can detect the touch event independently of the compositor, and store the acquired touch event in Local touch event queue.
  • an update rendering request is generated with the old touch event and continues to be sent to the client; when the client receives the old touch event
  • the client searches for the latest touch event in the local touch event, updates the corresponding scene graph with the touch position in the latest touch event and renders it, and outputs the rendered scene graph to the compositor .
  • the embodiments of the present disclosure by setting a thread for receiving touch events on the client side, even if a compositor (compositor) does not process the touch events in time, it will not cause the shaking of the screen pattern.
  • the embodiment of the present disclosure ensures the continuity of screen pattern update, greatly improves the display effect of the display screen, and improves user experience.
  • FIG. 2 is a schematic flowchart of a method for suppressing display jitter in an embodiment of the present disclosure.
  • the method for suppressing display jitter in an embodiment of the present disclosure can be executed by a synthesizer. As shown in FIG. 2 , the method for suppressing display jitter in an embodiment of the present disclosure includes The following processing steps:
  • Step 201 when the trigger period arrives, the synthesizer detects its own touch event queue.
  • the compositor detects whether a corresponding touch event is received in its own touch event queue, and if it is determined that a touch event is received, generates a corresponding update rendering request based on the touch event,
  • the update rendering request is sent to the client, so that the client performs update rendering of the screen image based on the touch event in the update rendering request.
  • Step 202 when the touch event queue is empty, a touch event in a previous trigger cycle generates an update rendering request, and sends the generated update rendering request to the client.
  • the compositor detects that the local touch event queue is empty, it still sends an update rendering request to the client, so that the client can update and render the pattern based on the touch event detected by itself.
  • the touch event queue is empty, the touch event in the last trigger cycle is used to generate an update rendering request, that is, the update rendering request sent currently carries the same content as the update rendering request sent in the last trigger cycle.
  • This situation of repeatedly sending update rendering requests for the same content means that no new touch events are detected on the compositor side, as a reminder to the client, and the client determines whether it has not detected new touch events. If the client does not detect a new touch event, it means that the user has stopped related operations on the display window; if the client does not detect a new touch event, it means that the compositor side causes thread delay Processing. At this time, the user has relevant operations but the synthesizer does not detect the touch event. At this time, the client needs to actively update and render the screen image based on the latest touch event in its own touch event queue to avoid display jitter.
  • the compositor when the trigger period arrives and the compositor detects that its own touch event queue is still empty, it continues to send the previously generated update rendering request to the client, and when the number of sending times reaches the set threshold or when a new touch event is detected, stops sending of previously generated update rendering requests.
  • the compositor when the user stops the relevant operations on the display window, in order to prevent the compositor from continuously sending update rendering requests to the client, resulting in unnecessary occupation of processing resources and unnecessary consumption of electric energy of electronic devices, When the compositor detects that the touch event queue continues to be empty and the number of times the update rendering request is continuously sent reaches the set threshold, it actively stops sending the same update rendering request continuously.
  • the set threshold here can be 5 times, 10 times, 15 times, 20 times, etc., and can be dynamically set according to the processing resources and power consumption of the operating system.
  • the compositor When the compositor detects that the touch event queue remains empty and continues to send update rendering requests, and the compositor detects new touch events, it generates a new update rendering request and sends it to the client, ending the continuous sending of the same update rendering request Mechanisms.
  • the update rendering request is generated with the touch event whose time is closest to the current moment.
  • the synthesizer cannot detect the touch event in time due to thread blocking, it will inevitably lead to the blockage of the touch event and receive more than two touch events at a certain moment.
  • the touch event with an earlier time stamp As far as it is concerned, it is already the user's previous operation, and it does not need to be processed accordingly, it can be discarded directly, and only the latest received touch event triggers the client to update the image.
  • the window manager Kwin architecture is used as an example to illustrate the window image.
  • Kwin is generally written based on QT.
  • the touch event reception in Kwin is completed in a separate thread, the touch event is sent to the client. , needs to go through the QT event loop, that is, the touch event needs to be sent to the client on the main thread.
  • the refresh rate is 60 frames
  • the interval between each vsync is 16ms.
  • the sampling rate of touch will be higher than the frequency of vsync.
  • each vsync will receive at least one touch event, and if the main thread is slightly blocked, it will cause a certain vsync If the touch is not updated within the cycle, there will be a situation where the client end draws less and causes frame loss; in the actual display image, the user triggers the touch behavior, but the application window does not show the corresponding response.
  • the window manager examines the corresponding Scenegraph to determine which display windows should receive touch events. Among them, Scenegraph refers to the display content on the screen. After receiving the touch event, the client starts to update the rendering interface. After the rendering is completed, the composition request is sent to the compositor through the wayland socket. The compositor performs image synthesis and displays it on the screen at an appropriate time. Makes the user observe that the screen pattern is being refreshed.
  • the wayland compositor has other tasks to process besides receiving kernel events, which may cause thread blocking at certain times, so that kernel events cannot be responded in time, resulting in frame loss.
  • FIG. 3 is a schematic diagram of an implementation framework for suppressing display jitter in an embodiment of the present disclosure.
  • a receiving thread touchThread or inputThread
  • touch events that is, the client end also has a touch event.
  • the client side receives the user's touch behavior from the wayland compositor and its own libinput.
  • the touch event is used as an example for description, the embodiment of the present disclosure is still suitable for other events, such as input events such as mouse and stylus, that is, input events such as mouse and stylus can also be implemented as the present disclosure Example touch event.
  • the touch event received from the wayland compositor end discards the expired touch event in the touch event queue, and when the main thread of the wayland compositor completes the previous frame each time, if there is no new touch event Update, the touch event of the previous frame is sent to the client again. At this time, the client side will receive a touch event that is repeated from the previous frame. The client side compares its own touch event queue. If there is no updated touch event, it believes that the user no longer has touch behavior.
  • the touch event received by the client at this time is a touch event that needs to be updated, but for some reason, the wayland compositor failed to inform the client of the updated touch event.
  • the data of the touch event received by the compositor is replaced with the latest touch event received by the client itself, and the updated rendering of a new frame is completed, thus solving the problem of frame loss caused by a touch event on the wayland compositor, and still ensuring the normal operation of the client
  • the updated rendering of the display image avoids display jitter.
  • the touch event sent by the wayland compositor of the server is discarded. At this time, it means that the wayland compositor can detect the touch event in time, and no frame loss occurs.
  • the timestamp of the latest touch event obtained by the wayland client from its own libinput is different from the timestamp of the touch event sent by the server's wayland compositor
  • the latest touch event received by the wayland client replaces the touch event sent by the wayland compositor. Performs an updated rendering of the displayed image.
  • the embodiment of the present disclosure does not need to modify the third-party program, but only needs to add the corresponding transmission protocol in the corresponding file library at the operating system level.
  • the third-party application calls the bottom file layer library, the corresponding suppression can be realized. Display dithering function.
  • FIG. 4 is a schematic diagram of signaling for suppressing display jitter in an embodiment of the present disclosure.
  • the working mechanism of the Kwin architecture is modified.
  • On the wayland compositor side through Connection::processEvents Add the corresponding code logic, after judging eventQueue.isEmpty, re-emit the touch event received in the previous trigger cycle to the wayland client, so as to avoid the display image not being refreshed in time due to frame loss.
  • the wayland compositor terminal and client terminal receive the user's operation on the display window through their own libinput, and detect the corresponding touch event.
  • the trigger cycle display frame update cycle
  • touch event and when the wayland compositor main thread completes the previous frame each time, if there is no new touch event update, the previous frame touch event will be sent to the client again.
  • the client side will receive a touch event that is repeated from the previous frame.
  • the client side compares its own touch event queue. If there is no updated touch event, it believes that the user no longer has touch behavior. If there is an updated touch event In the event of an event, that is, the position of the touch event changes, the touch event received by the client needs to be updated at this time, and the wayland compositor failed to notify the client of the updated touch event. At this time, the client needs to be based on its own Received the latest touch event to complete the updated rendering of a new frame.
  • the wayland client after the wayland client receives PositionChanged, it will trigger Compositor::triggerRender to call QWaylandWindow::requestUpdate.
  • requestUpdate execution compare the position information in the touch event, based on the updated comparison result of the position, complete the updated rendering of a new frame with the updated position, based on the comparison result of the unupdated position in the touch event, from the wayland client Get the latest position from the position queue at the end, and complete the updated rendering of a new frame with the latest position.
  • the embodiment of the present disclosure solves the problem of frame loss caused by a touch event at the wayland compositor end, and can still ensure that the client end performs normal update and rendering of the display image, avoiding the phenomenon of display jitter.
  • FIG. 5 is a schematic diagram of the composition and structure of the device for suppressing display jitter in the embodiment of the present disclosure.
  • the device for suppressing display jitter in the embodiment of the present disclosure can be a client.
  • the device for suppressing display jitter in the embodiment of the present disclosure includes :
  • the first judging unit 50 is configured to, in response to the updated rendering request from the compositor, judge whether the updated rendering request is the same as the previous updated rendering request;
  • the acquisition unit 51 is configured to trigger the client to acquire the touch event received by its own input thread based on the judgment result that the updated rendering request is the same as the previous updated rendering request;
  • the second judging unit 52 is configured to judge whether the touch event in the update rendering request is the same as the latest touch event received by the input thread, based on the touch event in the update rendering request and the latest touch event received by the input thread Triggering the first processing unit if the touch event is the same; triggering the second processing unit based on the judgment result that the touch event in the update rendering request is different from the latest touch event received by the input thread;
  • the first processing unit 53 is configured to determine not to respond to the update rendering request
  • the second processing unit 54 is configured to update and render the corresponding scene graph based on the latest touch event received by the input thread, and output the rendered scene graph to the compositor.
  • the device for suppressing display jitter of the embodiment of the present disclosure as shown in FIG. 6 , further includes:
  • the adding unit 55 is configured to set a time stamp for the touch event after the input thread detects the touch event driven by the input, and add the touch event with the time stamp to the touch event queue.
  • the device for suppressing display jitter of the embodiment of the present disclosure as shown in FIG. 6 , further includes:
  • the first setting unit 56 is configured to respectively set corresponding input threads for more than one process in the client, and each input thread detects a touch event of its corresponding process.
  • the device for suppressing display jitter of the embodiment of the present disclosure as shown in FIG. 6 , further includes:
  • the second setting unit 57 is configured to set a set number of input threads
  • the assignment unit 58 is configured to trigger the client to detect the current display window, assign at least one of the set number of input threads to the current display window, and use the assigned input thread Detect touch events.
  • the second processing unit 54 is further configured to:
  • the touch event in the updated rendering request is used to perform updated rendering of the corresponding scene graph, and the touch events in the touch event queue are ignored.
  • the first judging unit 50, the acquiring unit 51, the second judging unit 52, the first processing unit 53, the second processing unit 54, the adding unit 55, the first setting unit 56, the second setting unit 57 And distribution unit 58 etc. can be used by one or more central processing unit (Central Processing Unit, CPU), application specific integrated circuit (Application Specific Integrated Circuit, ASIC), digital signal processor (Digital Signal Processor, DSP), programmable logic device (Programmable Logic Device, PLD), complex programmable logic device (Complex Programmable Logic Device, CPLD), field-programmable gate array (Field-Programmable Gate Array, FPGA), general-purpose processor, controller, microcontroller (Micro ControllerUnit , MCU), microprocessor (Microprocessor), or other electronic components to implement the steps of the method for suppressing display jitter in the foregoing embodiments.
  • CPU Central Processing Unit
  • ASIC Application Specific Integrated Circuit
  • DSP digital signal processor
  • PLD programmable logic device
  • PLD complex programmable logic
  • the device for suppressing display jitter shown in FIG. 5 is applicable to the client side in the display framework of the wayland protocol.
  • FIG. 7 is a schematic diagram of the composition and structure of the device for suppressing display jitter in the embodiment of the present disclosure.
  • the device for suppressing display jitter in the embodiment of the present disclosure may be a synthesizer. As shown in FIG. 7 , the device for suppressing display jitter in the embodiment of the present disclosure includes :
  • the detection unit 60 is configured to detect whether the touch event queue is empty when the trigger period arrives, and trigger the generation unit based on the detection result that the touch event queue is empty;
  • the generating unit 61 is configured to generate an update rendering request for a touch event in a previous trigger cycle
  • the sending unit 62 is configured to send the update rendering request to the client.
  • the detection unit 60 is further configured to detect that the touch event queue is still empty when the trigger period arrives Next, the sending unit 62 continues to send the previously generated update rendering request to the client; when the number of sending times reaches the set threshold or a new touch event is detected, the sending of the previously generated update rendering request is stopped .
  • the generating unit 61 is further configured to:
  • the update rendering request is generated with the touch event whose time is closest to the current moment.
  • the detecting unit 60, the generating unit 61 and the sending unit 62 etc. may be controlled by one or more CPUs, ASICs, DSPs, PLDs, CPLDs, FPGAs, general purpose processors, controllers, MCUs, microprocessors, or other electronic components for implementing the steps of the method for suppressing display jitter in the foregoing embodiments.
  • the device for suppressing display jitter shown in FIG. 7 is applicable to the synthesizer side in the display frame of the wayland protocol.
  • the electronic device 11 includes one or more processors 111 and a memory 112 .
  • the processor 111 may be a central processing unit (CPU), or other forms of processing units having at least one of data processing capabilities and instruction execution capabilities, and may control other components in the electronic device 11 to perform desired functions. .
  • CPU central processing unit
  • the processor 111 may be a central processing unit (CPU), or other forms of processing units having at least one of data processing capabilities and instruction execution capabilities, and may control other components in the electronic device 11 to perform desired functions. .
  • Memory 112 may include one or more computer program products, which may include various forms of computer-readable storage media, such as volatile memory and non-volatile memory.
  • the volatile memory may include random access memory (RAM), cache memory (cache), and the like.
  • the non-volatile memory may include read only memory (ROM), hard disk, flash memory, and the like.
  • One or more computer program instructions may be stored on the computer-readable storage medium, and the processor 111 may execute the program instructions to implement the methods for suppressing display jitter and the above-mentioned multiple embodiments of the present disclosure. other desired features.
  • Various contents such as input signal, signal component, noise component, etc. may also be stored in the computer-readable storage medium.
  • the electronic device 11 may further include: an input device 113 and an output device 114, and these components may be interconnected through a bus system and other forms of connection mechanisms.
  • the input device 113 may include, for example, a keyboard, a mouse, and the like.
  • the output device 114 can output a variety of information to the outside, including the determined distance information, direction information, and the like.
  • the output device 114 may include, for example, a display, a speaker, a printer, and a communication network and its connected remote output devices, and the like.
  • the electronic device 11 may also include any other appropriate components.
  • the embodiments of the present disclosure also describe a storage medium on which an executable program is stored, and the executable program is executed by a processor to perform the steps of the method for suppressing display jitter in the foregoing embodiments.
  • embodiments of the present disclosure may also be computer program products, which include computer program instructions that, when executed by a processor, cause the processor to perform the above-mentioned "exemplary method" of this specification.
  • the steps in the methods according to the embodiments of the present disclosure are described in the section.
  • the computer program product can be written in any combination of one or more programming languages to execute the program codes for performing the operations of the embodiments of the present disclosure, and the programming languages include object-oriented programming languages, such as Java, C++, etc. , also includes conventional procedural programming languages, such as the "C" language or similar programming languages.
  • the program code may execute entirely on the user's computing device, partly on the user's device, as a stand-alone software package, partly on the user's computing device and partly on a remote computing device, or entirely on the remote computing device or server to execute.
  • embodiments of the present disclosure may also be a computer-readable storage medium, on which computer program instructions are stored, and the computer program instructions, when executed by a processor, cause the processor to execute the above-mentioned "Exemplary Method" section of this specification.
  • the computer readable storage medium may employ any combination of one or more readable media.
  • the readable medium may be a readable signal medium or a readable storage medium.
  • a readable storage medium may include, for example, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination thereof.
  • Readable storage media may include: an electrical connection with one or more conductors, a portable disk, a hard disk, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory) , optical fiber, portable compact disc read only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the foregoing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

The present disclosure provides a method and apparatus for suppressing display jitter, an electronic device, and a storage medium. The method comprises: in response to an update rendering request from a synthesizer, a client determining whether the update rendering request is the same as the previous update rendering request; on the basis of a determination result that the update rendering request is the same as the previous update rendering request, the client obtaining a touch event received by its own input thread, and determining whether the touch event in the update rendering request is the same as the latest touch event received by the input thread; on the basis of a determination result that the touch event in the update rendering request is the same as the latest touch event received by the input thread, determining not to respond to the update rendering request; and on the basis of a determination result that the touch event in the update rendering request is not the same as the latest touch event received by the input thread, performing update rendering of a corresponding scene graph according to the latest touch event received by the input thread, and outputting the rendered scene graph to the synthesizer.

Description

抑制显示抖动的方法及装置、电子设备、存储介质Method and device for suppressing display jitter, electronic equipment, storage medium
本公开要求在2021年11月23日提交中国专利局、申请号为202111392446.X的中国专利申请的优先权,该申请的全部内容通过引用结合在本公开中。This disclosure claims priority to a Chinese patent application with application number 202111392446.X filed with the China Patent Office on November 23, 2021, the entire contents of which are incorporated by reference into this disclosure.
技术领域technical field
本公开实施例涉及电子设备显示处理技术,例如涉及一种抑制显示抖动的方法及装置、电子设备、存储介质。Embodiments of the present disclosure relate to electronic device display processing technologies, for example, to a method and device for suppressing display jitter, electronic devices, and storage media.
背景技术Background technique
在基于wayland协议的显示框架中,操作系统中产生的内核事件一般先发送给合成器(wayland compositor),由合成器检查内核事件的场景图(scenegraph),以决定哪个窗口对应的客户端应该接收该内核事件。在客户端接收到内核事件后,开始更新渲染界面,渲染完成后将合成请求通过wayland socket发送给合成器(wayland compositor),合成器(wayland compositor)对多个界面图形合成后通过显示屏输出,实现屏幕图案刷新。但是,由于合成器(wayland compositor)除了接收内核事件还有其他任务需要处理,某些时候可能会造成线程阻塞,这样内核事件就不能及时被响应,导致丢帧,从而导致屏幕图案抖动。In the display framework based on the wayland protocol, the kernel events generated in the operating system are generally sent to the compositor (wayland compositor) first, and the compositor checks the scene graph (scenegraph) of kernel events to determine which window the corresponding client should receive The kernel event. After the client receives the kernel event, it starts to update the rendering interface. After the rendering is completed, the composition request is sent to the compositor (wayland compositor) through the wayland socket. The compositor (wayland compositor) synthesizes multiple interface graphics and outputs them through the display screen. Implement screen pattern refresh. However, since the compositor (wayland compositor) has other tasks to process besides receiving kernel events, sometimes it may cause thread blocking, so that kernel events cannot be responded in time, resulting in frame loss, resulting in screen pattern jitter.
发明内容Contents of the invention
本公开实施例提供一种抑制显示抖动的方法及装置、电子设备、存储介质,以抑制相关技术中存在的屏幕图案抖动的问题。Embodiments of the present disclosure provide a method and device for suppressing display jitter, electronic equipment, and a storage medium, so as to suppress the problem of screen pattern jitter existing in the related art.
第一方面,本公开提供一种抑制显示抖动的方法,包括:In a first aspect, the present disclosure provides a method for suppressing display jitter, including:
响应于来自合成器的更新渲染请求,客户端判断所述更新渲染请求与前次更新渲染请求是否相同;In response to the updated rendering request from the compositor, the client determines whether the updated rendering request is the same as the previous updated rendering request;
基于所述更新渲染请求与前次更新渲染请求相同的判断结果,所述客户端获取自身输入线程接收的触摸事件;判断所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件是否相同;基于所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件相同的判断结果,确定不响应所述更新渲染请求,基于所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件不同的判断结果,根据所述输入线程接收的最新触摸事件进行相应场景图的更新渲染,向所述合成器输出渲染后的场景图。Based on the judgment result that the updated rendering request is the same as the previous updated rendering request, the client obtains the touch event received by its own input thread; judges that the touch event in the updated rendering request is the latest touch event received by the input thread Whether they are the same; based on the judgment result that the touch event in the update rendering request is the same as the latest touch event received by the input thread, it is determined not to respond to the update rendering request, based on the touch event in the update rendering request and the If the judgment result of the latest touch event received by the input thread is different, update and render the corresponding scene graph according to the latest touch event received by the input thread, and output the rendered scene graph to the compositor.
第二方面,本公开提供一种抑制显示抖动的方法,包括:In a second aspect, the present disclosure provides a method for suppressing display jitter, including:
在触发周期到来的情况下,合成器检测自身的触摸事件队列,在所述触摸事件队列为空的情况下,以前一触发周期内的触摸事件生成更新渲染请求,将所生成的更新渲染请求向所述客户端发送。When the trigger period arrives, the compositor detects its own touch event queue. If the touch event queue is empty, the touch event in the previous trigger period generates an update rendering request, and sends the generated update rendering request to The client sends.
第三方面,本公开提供一种抑制显示抖动的装置,包括:In a third aspect, the present disclosure provides a device for suppressing display jitter, including:
第一判断单元,被设置为响应于来自合成器的更新渲染请求,判断所述更新渲染请求与前次更新渲染请求是否相同;The first judging unit is configured to, in response to an updated rendering request from the compositor, judge whether the updated rendering request is the same as the previous updated rendering request;
获取单元,被设置为基于所述更新渲染请求与前次更新渲染请求相同的判断结果,触发所述客户端获取自身输入线程接收的触摸事件;The acquisition unit is configured to trigger the client to acquire the touch event received by its own input thread based on the judgment result that the updated rendering request is the same as the previous updated rendering request;
第二判断单元,被设置为判断所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件是否相同,基于所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件相同的判断结果,触发第一处理单元;基于所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件不同的判断结果,触发第二处理单元;The second judging unit is configured to judge whether the touch event in the update rendering request is the same as the latest touch event received by the input thread, based on the touch event in the update rendering request and the latest touch event received by the input thread Triggering the first processing unit if the event is the same; triggering the second processing unit based on the judgment result that the touch event in the update rendering request is different from the latest touch event received by the input thread;
第一处理单元,被设置为确定不响应所述更新渲染请求;a first processing unit configured to determine not to respond to the update rendering request;
第二处理单元,被设置为基于所述输入线程接收的最新触摸事件进行相应场景图的更新渲染,向所述合成器输出渲染后的场景图。The second processing unit is configured to update and render the corresponding scene graph based on the latest touch event received by the input thread, and output the rendered scene graph to the compositor.
第四方面,本公开提供一种抑制显示抖动的装置,包括:In a fourth aspect, the present disclosure provides a device for suppressing display jitter, including:
检测单元,被设置为在触发周期到来的情况下,检测触摸事件队列是否为空,基于触摸事件队列为空的检测结果,触发生成单元;The detection unit is configured to detect whether the touch event queue is empty when the trigger period arrives, and trigger the generation unit based on the detection result that the touch event queue is empty;
生成单元,被设置为以前一触发周期内的触摸事件生成更新渲染请求;a generating unit configured to generate an update rendering request for a touch event in a previous trigger cycle;
发送单元,被设置为将所述更新渲染请求向所述客户端发送。A sending unit configured to send the update rendering request to the client.
第五方面,本公开提供一种电子设备,包括处理器、存储器及存储在存储器上并能够由所述处理器运行的可执行程序,所述处理器运行所述可执行程序时执行前述第一方面或第二方面所述的抑制显示抖动的方法的步骤。In a fifth aspect, the present disclosure provides an electronic device, including a processor, a memory, and an executable program stored on the memory and capable of being run by the processor. When the processor runs the executable program, the aforementioned first The steps of the method for suppressing display jitter described in the aspect or the second aspect.
第六方面,本公开提供一种存储介质,其上存储由可执行程序,所述可执行程序被处理器执行时实现前述第一方面或第二方面所述的抑制显示抖动的方法的步骤。In a sixth aspect, the present disclosure provides a storage medium on which an executable program is stored, and when the executable program is executed by a processor, the steps of the method for suppressing display jitter described in the aforementioned first or second aspect are implemented.
附图说明Description of drawings
下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍。The following will briefly introduce the drawings that need to be used in the description of the embodiments or related technologies.
图1为本公开实施例的抑制显示抖动的方法的流程示意图;FIG. 1 is a schematic flowchart of a method for suppressing display jitter according to an embodiment of the present disclosure;
图2为本公开实施例的抑制显示抖动的方法的流程示意图;FIG. 2 is a schematic flowchart of a method for suppressing display jitter according to an embodiment of the present disclosure;
图3为本公开实施例的抑制显示抖动的实现框架示意图;FIG. 3 is a schematic diagram of an implementation framework for suppressing display jitter according to an embodiment of the present disclosure;
图4为本公开实施例的抑制显示抖动的实现信令示意图;FIG. 4 is a schematic diagram of implementation signaling for suppressing display jitter according to an embodiment of the present disclosure;
图5为本公开实施例的抑制显示抖动的装置的组成结构示意图;FIG. 5 is a schematic diagram of the composition and structure of a device for suppressing display jitter according to an embodiment of the present disclosure;
图6为本公开实施例的抑制显示抖动的装置的组成结构示意图;FIG. 6 is a schematic diagram of the composition and structure of a device for suppressing display jitter according to an embodiment of the present disclosure;
图7为本公开实施例的抑制显示抖动的装置的组成结构示意图;FIG. 7 is a schematic diagram of the composition and structure of a device for suppressing display jitter according to an embodiment of the present disclosure;
图8为本公开实施例的电子设备的结构图。FIG. 8 is a structural diagram of an electronic device according to an embodiment of the present disclosure.
具体实施方式Detailed ways
以下结合附图,详细阐明本公开实施例。Embodiments of the present disclosure will be described in detail below in conjunction with the accompanying drawings.
图1为本公开实施例的抑制显示抖动的方法的流程示意图,本公开实施例的抑制显示抖动的方法可被客户端执行,如图1所示,本公开实施例的抑制显示抖动的方法包括以下处理步骤:FIG. 1 is a schematic flow chart of a method for suppressing display jitter in an embodiment of the present disclosure. The method for suppressing display jitter in an embodiment of the present disclosure can be executed by a client. As shown in FIG. 1 , the method for suppressing display jitter in an embodiment of the present disclosure includes The following processing steps:
步骤101,响应于来自合成器的更新渲染请求,客户端判断所述更新渲染请求与前次更新渲染请求是否相同。 Step 101, in response to an updated rendering request from the compositor, the client determines whether the updated rendering request is the same as the previous updated rendering request.
客户端接收到来自合成器的更新渲染请求后,首先获取该更新渲染请求中的触摸事件,确定该触摸事件是否与前一次接收到的更新渲染请求中的触摸事件是否相同,基于该触摸事件与前一次接收到的更新渲染请求中的触摸事件相同的判断结果,确定当前的更新渲染请求与前次更新渲染请求相同,基于该触摸事件与前一次接收到的更新渲染请求中的触摸事件不同的判断结果,确定当前的更新渲染请求与前次更新渲染请求不同。其中,触摸事件相同是指触摸事件中的位置信息相同。After receiving the update rendering request from the compositor, the client first obtains the touch event in the update rendering request, and determines whether the touch event is the same as the touch event in the previously received update rendering request, based on the touch event and If the touch event in the previously received update rendering request is the same as the judgment result, it is determined that the current update rendering request is the same as the previous update rendering request, based on the fact that the touch event is different from the touch event in the previously received update rendering request As a result of the judgment, it is determined that the current update rendering request is different from the previous update rendering request. Wherein, the same touch events refer to the same position information in the touch events.
这里,客户端通过对合成器发送的更新渲染请求的情况进行判断,以便进行相应的处理。在所述更新渲染请求与前次更新渲染请求不同的情况下,所述客户端以所述更新渲染请求中的触摸事件进行相应场景图的更新渲染。这种情况认为合成器对触摸事件的处理比较及时,未发生线程阻塞情况。Here, the client judges the update rendering request sent by the compositor, so as to perform corresponding processing. If the updated rendering request is different from the previous updated rendering request, the client uses the touch event in the updated rendering request to perform updated rendering of the corresponding scene graph. In this case, it is considered that the synthesizer handles the touch event in a timely manner, and no thread blocking occurs.
本公开实施例中,客户端是指wayland协议的显示框架中的多个显示窗口对应的应用,也可以是相关应用当前显示的窗口或其对应的进程。In the embodiments of the present disclosure, the client refers to an application corresponding to multiple display windows in the display framework of the wayland protocol, and may also be a window currently displayed by a related application or its corresponding process.
本公开实施例中,通过为客户端设置所述输入线程,该输入线程可以检测输入驱动输入的触摸事件,为检测到的所述触摸事件设置时间戳,并将设置有时间戳的触摸事件添加于触摸事件队列中。在该触摸事件队列中,可以以时间戳顺序对所检测到的触摸事件进行排序,以方便客户端从触摸事件队列中获取最新的触摸事件。In the embodiment of the present disclosure, by setting the input thread for the client, the input thread can detect the touch event input by the input driver, set a time stamp for the detected touch event, and add the touch event with the time stamp to in the touch event queue. In the touch event queue, the detected touch events can be sorted in order of time stamps, so that the client can obtain the latest touch event from the touch event queue.
作为一种实现方式,本公开实施例中,为所述客户端中一个以上的进程分别设置对应的所述输入线程,由每个所述输入线程对自身对应的进程的触摸事件进行检测。即可以为每个客户端均设置输入线程,以对客户端的触摸事件进行检测,并添加到相应的触摸事件队列中。As an implementation manner, in the embodiment of the present disclosure, corresponding input threads are respectively set for more than one process in the client, and each input thread detects a touch event of its corresponding process. That is, an input thread is set for each client to detect the touch event of the client and add it to a corresponding touch event queue.
或者,操作系统中仅设置设定数量的所述输入线程,所述客户端检测当前的显示窗口,将设定数量的所述输入线程中的至少之一分配给所述当前的显示窗口,并由所分配的所述输入线程对触摸事件进行检测。这里的设定数量可以为3、4、5、6、7、8或9等,即为当前的显示窗口设置共用的输入线程,以在确定出当前显示窗口后,为相应的客户端动态调用输入线程进行触摸事件的检测。Alternatively, only a set number of input threads are set in the operating system, the client detects the current display window, assigns at least one of the set number of input threads to the current display window, and Touch events are detected by the assigned input thread. The number of settings here can be 3, 4, 5, 6, 7, 8, or 9, etc., that is, set a shared input thread for the current display window to dynamically call the corresponding client after the current display window is determined. The input thread detects touch events.
步骤102,基于所述更新渲染请求与前次更新渲染请求相同的判断结果,所述客户端获取自身输入线程接收的触摸事件,判断所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件是否相同。Step 102: Based on the judgment result that the updated rendering request is the same as the previous updated rendering request, the client obtains the touch event received by its own input thread, and judges that the touch event in the updated rendering request is consistent with the touch event received by the input thread. Is the latest touch event the same.
本公开实施例中,为避免因合成器未及时对触摸事件进行响应导致屏幕图案刷新不同步,从而导致显示屏的屏幕图案抖动。在合成器检测到本地触摸事件队列为空的情况下,仍向客户端发送更新渲染请求,以便客户端基于自身检测的触摸事件进行图案的更新渲染。In the embodiment of the present disclosure, in order to avoid that the screen pattern refreshing is out of sync due to the failure of the synthesizer to respond to the touch event in time, thus causing the screen pattern of the display screen to shake. When the compositor detects that the local touch event queue is empty, it still sends an update rendering request to the client, so that the client can update and render the pattern based on the touch event detected by itself.
客户端接收到合成器发送的更新渲染请求后,判断该更新渲染请求中的触摸事件是否与本地输入线程接收的最新触摸事件是否相同,以确定合成器是否丢弃了触摸事件,以便在合成器丢弃了触摸事件的情况下,以本地接收线程接收到的触摸事件中的最新触摸位置对屏幕图案进行刷新并渲染,保证显示图案不抖动,提升显示屏的显示品质。After the client receives the update rendering request sent by the compositor, it judges whether the touch event in the update rendering request is the same as the latest touch event received by the local input thread, so as to determine whether the compositor has discarded the touch event, so that when the compositor discards When a touch event is received, the screen pattern is refreshed and rendered with the latest touch position in the touch event received by the local receiving thread to ensure that the display pattern does not shake and improve the display quality of the display.
步骤103,基于所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件相同的判断结果,确定不响应所述更新渲染请求。 Step 103, based on the judgment result that the touch event in the update rendering request is the same as the latest touch event received by the input thread, determine not to respond to the update rendering request.
本公开实施例中,在确定当前接收的更新渲染请求中触摸事件与客户端的触摸事件队列中最新的触摸事件相同的情况下,意味着合成器能及时对触摸事件进行响应,未发生合成器因线程阻塞而丢弃触摸事件的情况,此时,客户端基于更新渲染请求中的触摸事件的触摸位置对屏幕图案进行刷新并渲染,保证 正常的屏幕图案刷新。In the embodiment of the present disclosure, if it is determined that the touch event in the currently received update rendering request is the same as the latest touch event in the client's touch event queue, it means that the compositor can respond to the touch event in time, and no compositor failure occurs. When the thread is blocked and the touch event is discarded, at this time, the client refreshes and renders the screen pattern based on the touch position of the touch event in the update rendering request to ensure normal screen pattern refresh.
步骤104,基于所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件不同的判断结果,根据所述输入线程接收的最新触摸事件进行相应场景图的更新渲染,向所述合成器输出渲染后的场景图。Step 104: Based on the judging result that the touch event in the update rendering request is different from the latest touch event received by the input thread, update and render the corresponding scene graph according to the latest touch event received by the input thread, and send to the composite The renderer outputs the rendered scene graph.
本公开实施例中,在确定当前接收的更新渲染请求中触摸事件与客户端的触摸事件队列中最新的触摸事件不同的情况下,可能意味着合成器未能及时对触摸事件进行响应,合成器端发生了因线程阻塞而丢弃触摸事件的情况,此时,为确认合成器端是否发生了丢弃触摸事件的情形,合成器仍继续向客户端发送更新渲染请求,触发客户端基于本地接收线程所接收到的触摸事件进行屏幕图案刷新,以保证显示图案仍能以最新的触摸事件进行更新,避免了因合成器端的线程阻塞导致显示图形的抖动。In the embodiment of the present disclosure, if it is determined that the touch event in the currently received update rendering request is different from the latest touch event in the client's touch event queue, it may mean that the compositor failed to respond to the touch event in time, and the compositor side A touch event is discarded due to thread blocking. At this time, in order to confirm whether the touch event is discarded on the compositor side, the compositor continues to send an update rendering request to the client, triggering the client to receive based on the local receiving thread. Refresh the screen pattern according to the received touch event to ensure that the display pattern can still be updated with the latest touch event, avoiding the jitter of the display pattern caused by the blockage of the thread on the synthesizer side.
本公开实施例中,通过为客户端设置用于检测触摸事件(touch)的输入线程(libinput),客户端能独立于合成器(compositor)对触摸事件进行检测,并将获取的触摸事件存储于本地的触摸事件队列中。而对于合成器(compositor)侧,在触发周期到来后,未检测到新触摸事件的情况下,以旧触摸事件生成更新渲染请求,并继续向客户端发送;在客户端接收到包含旧触摸事件的更新渲染请求后,客户端再在本地的触摸事件中查找最新的触摸事件,以该最新的触摸事件中的触摸位置更新相应场景图并进行渲染,向所述合成器输出渲染后的场景图。本公开实施例通过在客户端设置触摸事件接收的线程,即使合成器(compositor)处理触摸事件不及时,也不会导致屏幕图案的抖动。本公开实施例保证了屏幕图案更新的连续性,大大提升了显示屏的显示效果,提升了用户体验。In the embodiment of the present disclosure, by setting an input thread (libinput) for the client to detect the touch event (touch), the client can detect the touch event independently of the compositor, and store the acquired touch event in Local touch event queue. For the compositor side, after the trigger cycle arrives, if no new touch event is detected, an update rendering request is generated with the old touch event and continues to be sent to the client; when the client receives the old touch event After the updated rendering request, the client searches for the latest touch event in the local touch event, updates the corresponding scene graph with the touch position in the latest touch event and renders it, and outputs the rendered scene graph to the compositor . In the embodiments of the present disclosure, by setting a thread for receiving touch events on the client side, even if a compositor (compositor) does not process the touch events in time, it will not cause the shaking of the screen pattern. The embodiment of the present disclosure ensures the continuity of screen pattern update, greatly improves the display effect of the display screen, and improves user experience.
图2为本公开实施例的抑制显示抖动的方法的流程示意图,本公开实施例的抑制显示抖动的方法可被合成器执行,如图2所示,本公开实施例的抑制显示抖动的方法包括以下处理步骤:FIG. 2 is a schematic flowchart of a method for suppressing display jitter in an embodiment of the present disclosure. The method for suppressing display jitter in an embodiment of the present disclosure can be executed by a synthesizer. As shown in FIG. 2 , the method for suppressing display jitter in an embodiment of the present disclosure includes The following processing steps:
步骤201,在触发周期到来的情况下,合成器检测自身的触摸事件队列。 Step 201, when the trigger period arrives, the synthesizer detects its own touch event queue.
本公开实施例中,在触发周期到来的情况下,合成器检测自身的触摸事件队列中是否接收到了相应的触摸事件,确定接收到触摸事件的情况下,基于触摸事件生成相应的更新渲染请求,向客户端发送该更新渲染请求,以使客户端基于该更新渲染请求中的触摸事件进行屏幕图像的更新渲染。In the embodiment of the present disclosure, when the trigger period arrives, the compositor detects whether a corresponding touch event is received in its own touch event queue, and if it is determined that a touch event is received, generates a corresponding update rendering request based on the touch event, The update rendering request is sent to the client, so that the client performs update rendering of the screen image based on the touch event in the update rendering request.
步骤202,在所述触摸事件队列为空的情况下,以前一触发周期内的触摸事件生成更新渲染请求,将所生成的更新渲染请求向所述客户端发送。 Step 202, when the touch event queue is empty, a touch event in a previous trigger cycle generates an update rendering request, and sends the generated update rendering request to the client.
本公开实施例中,为避免因合成器未及时对触摸事件进行响应导致屏幕图案刷新不同步,从而导致显示屏的屏幕图案抖动。在合成器检测到本地触摸事件队列为空的情况下,仍向客户端发送更新渲染请求,以便客户端基于自身检测的触摸事件进行图案的更新渲染。在触摸事件队列为空的情况下,采用上一触发周期中的触摸事件生成更新渲染请求,即当前发送的更新渲染请求与上一触发周期发送的更新渲染请求携带有相同的内容。这种重复发送相同内容的更新渲染请求的情况,意味着合成器侧未检测到新的触摸事件,以作为对客户端的提醒,由客户端确定自身是否也未检测到新的触摸事件,在客户端也未检测到新的触摸事件的情况下,意味着是用户停止了对显示窗口的相关操作;在客户端也未检测到新的触摸事件的情况下,意味着合成器侧导致了线程延迟处理,此时用户有相关操作而合成器未检测到触摸事件,此时需要由客户端基于自身的触摸事件队列中最新的触摸事件主动进行屏幕图像的更新渲染,以避免显示抖动的现象。In the embodiment of the present disclosure, in order to avoid that the screen pattern refreshing is out of sync due to the failure of the synthesizer to respond to the touch event in time, thus causing the screen pattern of the display screen to shake. When the compositor detects that the local touch event queue is empty, it still sends an update rendering request to the client, so that the client can update and render the pattern based on the touch event detected by itself. When the touch event queue is empty, the touch event in the last trigger cycle is used to generate an update rendering request, that is, the update rendering request sent currently carries the same content as the update rendering request sent in the last trigger cycle. This situation of repeatedly sending update rendering requests for the same content means that no new touch events are detected on the compositor side, as a reminder to the client, and the client determines whether it has not detected new touch events. If the client does not detect a new touch event, it means that the user has stopped related operations on the display window; if the client does not detect a new touch event, it means that the compositor side causes thread delay Processing. At this time, the user has relevant operations but the synthesizer does not detect the touch event. At this time, the client needs to actively update and render the screen image based on the latest touch event in its own touch event queue to avoid display jitter.
本公开实施例中,在触发周期到来,所述合成器检测自身的触摸事件队列仍为空的情况下,继续以之前所生成的更新渲染请求向所述客户端发送,在发送次数达到设定阈值或检测到新触摸事件的情况下,停止之前所生成的更新渲染请求的发送。In the embodiment of the present disclosure, when the trigger period arrives and the compositor detects that its own touch event queue is still empty, it continues to send the previously generated update rendering request to the client, and when the number of sending times reaches the set threshold or when a new touch event is detected, stops sending of previously generated update rendering requests.
在一实施例中,对于用户停止了对显示窗口的相关操作的情况下,为了避免合成器不停地向客户端发送更新渲染请求,而导致处理资源无谓占用及电子设备电能无谓消耗的情形,在合成器检测触摸事件队列持续为空并持续发送更新渲染请求的次数达到设定阈值情况下,主动停止持续发送相同更新渲染请求。这里的设定阈值可以为5次、10次、15次、20次等,可以根据操作系统的处理资源及耗电情形而动态设置。在合成器检测触摸事件队列持续为空并持续发送更新渲染请求的情况下,而合成器又检测到新触摸事件,则生成新的更新渲染请求并向客户端发送,结束持续发送相同更新渲染请求的机制。In one embodiment, when the user stops the relevant operations on the display window, in order to prevent the compositor from continuously sending update rendering requests to the client, resulting in unnecessary occupation of processing resources and unnecessary consumption of electric energy of electronic devices, When the compositor detects that the touch event queue continues to be empty and the number of times the update rendering request is continuously sent reaches the set threshold, it actively stops sending the same update rendering request continuously. The set threshold here can be 5 times, 10 times, 15 times, 20 times, etc., and can be dynamically set according to the processing resources and power consumption of the operating system. When the compositor detects that the touch event queue remains empty and continues to send update rendering requests, and the compositor detects new touch events, it generates a new update rendering request and sends it to the client, ending the continuous sending of the same update rendering request Mechanisms.
本公开实施例中,所述合成器检测到触摸事件为两个以上的情况下,以时间最接近当前时刻的触摸事件生成更新渲染请求。在合成器因线程阻塞而不能及时对触摸事件进行检测的情况下,必然会导致触摸事件的阻塞而在某一时刻接收到两个以上的触摸事件,此时,对于时间戳较早的触摸事件而言,已是用户之前的操作,不必再对其进行相应处理,可以直接丢弃,仅以最新接收到的触摸事件触发客户端进行图像更新。In the embodiment of the present disclosure, when the synthesizer detects that there are more than two touch events, the update rendering request is generated with the touch event whose time is closest to the current moment. In the case that the synthesizer cannot detect the touch event in time due to thread blocking, it will inevitably lead to the blockage of the touch event and receive more than two touch events at a certain moment. At this time, for the touch event with an earlier time stamp As far as it is concerned, it is already the user's previous operation, and it does not need to be processed accordingly, it can be discarded directly, and only the latest received touch event triggers the client to update the image.
以下结合示例,对本公开实施例作详细说明。The embodiments of the present disclosure will be described in detail below with reference to examples.
本公开实施例中,以窗口管理器Kwin架构绘制窗口图像为例进行说明,其 中,Kwin一般是基于QT方式编写,虽然Kwin中touch事件接收是在单独线程完成的,但是touch事件发送到client端,需要经过QT事件循环,也就是最终需要在主线程上将touch事件发送给客户端,比如60帧的刷新率,则每个vsync间隔16ms,在每次vsync更新的情况下,会检测当前的touch队列是否有更新,一般情况下touch的采样率会高于vsync频率,假如没有阻塞的情况下,每次vsync会至少接收到一个touch事件,而若主线程的轻微阻塞,会导致某个vsync周期内没有更新touch,这样就会出现client端少绘而导致丢帧的情况;在实际显示图像上就是用户触发了touch行为,但应用的窗口没有表现出来对应的响应。In the embodiment of the present disclosure, the window manager Kwin architecture is used as an example to illustrate the window image. Kwin is generally written based on QT. Although the touch event reception in Kwin is completed in a separate thread, the touch event is sent to the client. , needs to go through the QT event loop, that is, the touch event needs to be sent to the client on the main thread. For example, if the refresh rate is 60 frames, the interval between each vsync is 16ms. In the case of each vsync update, the current Whether the touch queue is updated, under normal circumstances, the sampling rate of touch will be higher than the frequency of vsync. If there is no blocking, each vsync will receive at least one touch event, and if the main thread is slightly blocked, it will cause a certain vsync If the touch is not updated within the cycle, there will be a situation where the client end draws less and causes frame loss; in the actual display image, the user triggers the touch behavior, but the application window does not show the corresponding response.
窗口管理器检查相应的Scenegraph,以决定哪个显示窗口应该接收touch事件。其中,Scenegraph是指屏幕上的显示内容,客户端接收到touch事件开始更新渲染界面,渲染完成后将合成请求通过wayland socket发送给合成器compositor,compositor进行图像合成后在合适的时机上屏显示,使用户观察到屏幕图案被刷新。但一般情况下wayland compositor除了接收内核事件还有其他任务需要处理,某些时候可能会造成线程阻塞,这样内核事件就不能及时被响应,导致丢帧。The window manager examines the corresponding Scenegraph to determine which display windows should receive touch events. Among them, Scenegraph refers to the display content on the screen. After receiving the touch event, the client starts to update the rendering interface. After the rendering is completed, the composition request is sent to the compositor through the wayland socket. The compositor performs image synthesis and displays it on the screen at an appropriate time. Makes the user observe that the screen pattern is being refreshed. However, in general, the wayland compositor has other tasks to process besides receiving kernel events, which may cause thread blocking at certain times, so that kernel events cannot be responded in time, resulting in frame loss.
图3为本公开实施例的抑制显示抖动的实现框架示意图,如图3所示,为了避免上述问题,在client端开启一个接收线程(touchThread或inputThread)来接收touch事件,即client端也具备touch事件的接收能力。client端从wayland compositor和自身的libinput接收用户的touch行为。本公开实施例中,虽然以touch事件为例来进行描述,但本公开实施例依然适合其他事件,例如鼠标,手写笔等输入事件,即鼠标、手写笔等的输入事件也可以作为本公开实施例的touch事件。FIG. 3 is a schematic diagram of an implementation framework for suppressing display jitter in an embodiment of the present disclosure. As shown in FIG. 3 , in order to avoid the above problems, a receiving thread (touchThread or inputThread) is opened at the client end to receive touch events, that is, the client end also has a touch event. The ability to receive events. The client side receives the user's touch behavior from the wayland compositor and its own libinput. In the embodiment of the present disclosure, although the touch event is used as an example for description, the embodiment of the present disclosure is still suitable for other events, such as input events such as mouse and stylus, that is, input events such as mouse and stylus can also be implemented as the present disclosure Example touch event.
从wayland compositor端接收到的touch事件,根据touch事件所携带的时间戳,丢弃touch事件队列中的过期touch事件,并在wayland compositor主线程每次完成上一帧的情况下,若无新touch事件更新,则将上一帧touch事件再次向client端发送。此时,client端会接收到一个和上一帧重复的touch事件,client端对比自身的touch事件队列,在无更新的touch事件的情况下,认为用户不再有touch行为,在存在更新的touch事件的情况下,client端此时所接收到的touch事件是需要真实更新的touch事件,但由于某种原因,wayland compositor未能将该更新的touch事件告知client端,此时只需要将从wayland compositor接收到的touch事件的数据替换成client端自身接收到的最新touch事件,完成新一帧的更新渲染,从而解决了即使wayland compositor端发生了touch事件丢帧问题,仍能保证client端进行正常的显示图像的更新渲染,避免了显示抖动现象。The touch event received from the wayland compositor end, according to the timestamp carried by the touch event, discards the expired touch event in the touch event queue, and when the main thread of the wayland compositor completes the previous frame each time, if there is no new touch event Update, the touch event of the previous frame is sent to the client again. At this time, the client side will receive a touch event that is repeated from the previous frame. The client side compares its own touch event queue. If there is no updated touch event, it believes that the user no longer has touch behavior. If there is an updated touch event In the case of an event, the touch event received by the client at this time is a touch event that needs to be updated, but for some reason, the wayland compositor failed to inform the client of the updated touch event. The data of the touch event received by the compositor is replaced with the latest touch event received by the client itself, and the updated rendering of a new frame is completed, thus solving the problem of frame loss caused by a touch event on the wayland compositor, and still ensuring the normal operation of the client The updated rendering of the display image avoids display jitter.
本公开实施例中,在wayland client端从自身的libinput获得的touch事件的时间戳与来自server的wayland compositor发送的touch事件时间戳相同的情况下,则丢弃来自server的wayland compositor发送的touch事件。此时,意味着wayland compositor能及时检测touch事件,未发生丢帧现象。在wayland client端从自身的libinput获得的最新touch事件的时间戳与来自server的wayland compositor发送的touch事件时间戳不同的情况下,以wayland client端接收的最新touch事件替代wayland compositor发送的touch事件,进行显示图像的更新渲染。In the embodiment of the present disclosure, when the time stamp of the touch event obtained by the wayland client from its own libinput is the same as the time stamp of the touch event sent by the wayland compositor of the server, the touch event sent by the wayland compositor of the server is discarded. At this time, it means that the wayland compositor can detect the touch event in time, and no frame loss occurs. When the timestamp of the latest touch event obtained by the wayland client from its own libinput is different from the timestamp of the touch event sent by the server's wayland compositor, the latest touch event received by the wayland client replaces the touch event sent by the wayland compositor. Performs an updated rendering of the displayed image.
通过图3所示的抑制显示抖动的框架结构,能够避免因wayland compositor丢帧导致的显示图像刷新抖动,提升了显示效果。Through the framework structure for suppressing display jitter shown in Figure 3, it is possible to avoid the refresh jitter of the display image caused by the frame loss of the wayland compositor, and improve the display effect.
本公开实施例无需对第三方程序进行修改,只需要在操作系统层面的相应文件库中增加对应的传输协议即可,在第三方应用调用底文件层库的情况下,即可实现相应的抑制显示抖动功能。The embodiment of the present disclosure does not need to modify the third-party program, but only needs to add the corresponding transmission protocol in the corresponding file library at the operating system level. When the third-party application calls the bottom file layer library, the corresponding suppression can be realized. Display dithering function.
图4为本公开实施例的抑制显示抖动的实现信令示意图,如图4所示,本公开实施例中,对Kwin架构的工作机理进行修改,在wayland compositor端,通过在Connection::processEvents中添加相应的代码逻辑,判断eventQueue.isEmpty后,将上一个触发周期内接收到的touch事件重新emit给wayland client端,以避免丢帧导致显示图像未能及时刷新。在wayland client端,需要为每个客户端对应的进程新建一个input thread,并维护一个position queue(touch事件对应的position信息)。FIG. 4 is a schematic diagram of signaling for suppressing display jitter in an embodiment of the present disclosure. As shown in FIG. 4 , in the embodiment of the present disclosure, the working mechanism of the Kwin architecture is modified. On the wayland compositor side, through Connection::processEvents Add the corresponding code logic, after judging eventQueue.isEmpty, re-emit the touch event received in the previous trigger cycle to the wayland client, so as to avoid the display image not being refreshed in time due to frame loss. On the wayland client side, it is necessary to create an input thread for the process corresponding to each client, and maintain a position queue (position information corresponding to the touch event).
wayland compositor端和client端通过自身的libinput接收用户针对显示窗口的操作,检测相应的touch事件。其中,在wayland compositor端在触发周期(显示帧更新周期)到来的情况下,判断touch事件队列中是否为空,基于touch事件队列为空的判断结果,可以向client端发送的前一触发周期的touch事件,并在wayland compositor主线程每次完成上一帧的情况下,若无新touch事件更新,则将上一帧touch事件再次向client端发送。The wayland compositor terminal and client terminal receive the user's operation on the display window through their own libinput, and detect the corresponding touch event. Among them, when the trigger cycle (display frame update cycle) arrives at the wayland compositor side, it is judged whether the touch event queue is empty, and based on the judgment result that the touch event queue is empty, the previous trigger cycle can be sent to the client. touch event, and when the wayland compositor main thread completes the previous frame each time, if there is no new touch event update, the previous frame touch event will be sent to the client again.
此时,client端会接收到一个和上一帧重复的touch事件,client端对比自身的touch事件队列,在无更新的touch事件的情况下,认为用户不再有touch行为,在存在更新的touch事件的情况下,即touch事件的位置改变,client端此时所接收到的touch事件是需要更新的,而wayland compositor未能将该更新的touch事件告知client端,此时,client端需要基于自身接收到的最新touch事件,完成新一帧的更新渲染。At this time, the client side will receive a touch event that is repeated from the previous frame. The client side compares its own touch event queue. If there is no updated touch event, it believes that the user no longer has touch behavior. If there is an updated touch event In the event of an event, that is, the position of the touch event changes, the touch event received by the client needs to be updated at this time, and the wayland compositor failed to notify the client of the updated touch event. At this time, the client needs to be based on its own Received the latest touch event to complete the updated rendering of a new frame.
在一实施例中,在wayland client端接收到PositionChanged后,会触发Compositor::triggerRender调用QWaylandWindow::requestUpdate。在 requestUpdate执行的情况下,对比touch事件中的position信息,基于position有更新的对比结果,以更新的position完成新一帧的更新渲染,基于touch事件中的position未更新的对比结果,从wayland client端的position队列中获取最新的position,以最新的position完成新一帧的更新渲染。In one embodiment, after the wayland client receives PositionChanged, it will trigger Compositor::triggerRender to call QWaylandWindow::requestUpdate. In the case of requestUpdate execution, compare the position information in the touch event, based on the updated comparison result of the position, complete the updated rendering of a new frame with the updated position, based on the comparison result of the unupdated position in the touch event, from the wayland client Get the latest position from the position queue at the end, and complete the updated rendering of a new frame with the latest position.
本公开实施例,解决了即使wayland compositor端发生了touch事件丢帧问题,仍能保证client端进行正常的显示图像的更新渲染,避免了显示抖动现象。The embodiment of the present disclosure solves the problem of frame loss caused by a touch event at the wayland compositor end, and can still ensure that the client end performs normal update and rendering of the display image, avoiding the phenomenon of display jitter.
图5为本公开实施例的抑制显示抖动的装置的组成结构示意图,本公开实施例的抑制显示抖动的装置可以为客户端,如图5所示,本公开实施例的抑制显示抖动的装置包括:FIG. 5 is a schematic diagram of the composition and structure of the device for suppressing display jitter in the embodiment of the present disclosure. The device for suppressing display jitter in the embodiment of the present disclosure can be a client. As shown in FIG. 5 , the device for suppressing display jitter in the embodiment of the present disclosure includes :
第一判断单元50,被设置为响应于来自合成器的更新渲染请求,判断所述更新渲染请求与前次更新渲染请求是否相同;The first judging unit 50 is configured to, in response to the updated rendering request from the compositor, judge whether the updated rendering request is the same as the previous updated rendering request;
获取单元51,被设置为基于所述更新渲染请求与前次更新渲染请求相同的判断结果,触发所述客户端获取自身输入线程接收的触摸事件;The acquisition unit 51 is configured to trigger the client to acquire the touch event received by its own input thread based on the judgment result that the updated rendering request is the same as the previous updated rendering request;
第二判断单元52,被设置为判断所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件是否相同,基于所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件相同的判断结果,触发第一处理单元;基于所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件不同的判断结果,触发第二处理单元;The second judging unit 52 is configured to judge whether the touch event in the update rendering request is the same as the latest touch event received by the input thread, based on the touch event in the update rendering request and the latest touch event received by the input thread Triggering the first processing unit if the touch event is the same; triggering the second processing unit based on the judgment result that the touch event in the update rendering request is different from the latest touch event received by the input thread;
第一处理单元53,被设置为确定不响应所述更新渲染请求;The first processing unit 53 is configured to determine not to respond to the update rendering request;
第二处理单元54,被设置为基于所述输入线程接收的最新触摸事件进行相应场景图的更新渲染,向所述合成器输出渲染后的场景图。The second processing unit 54 is configured to update and render the corresponding scene graph based on the latest touch event received by the input thread, and output the rendered scene graph to the compositor.
在一个实施例中,在图5所示的抑制显示抖动的装置的基础上,本公开实施例的抑制显示抖动的装置,如图6所示,还包括:In one embodiment, based on the device for suppressing display jitter shown in FIG. 5 , the device for suppressing display jitter of the embodiment of the present disclosure, as shown in FIG. 6 , further includes:
添加单元55,被设置为在所述输入线程检测输入驱动输入的触摸事件后,为所述触摸事件设置时间戳,将设置有时间戳的触摸事件添加于触摸事件队列中。The adding unit 55 is configured to set a time stamp for the touch event after the input thread detects the touch event driven by the input, and add the touch event with the time stamp to the touch event queue.
在一个实施例中,在图5所示的抑制显示抖动的装置的基础上,本公开实施例的抑制显示抖动的装置,如图6所示,还包括:In one embodiment, based on the device for suppressing display jitter shown in FIG. 5 , the device for suppressing display jitter of the embodiment of the present disclosure, as shown in FIG. 6 , further includes:
第一设置单元56,被设置为为所述客户端中一个以上的进程分别设置对应的所述输入线程,由每个所述输入线程对自身对应的进程的触摸事件进行检测。The first setting unit 56 is configured to respectively set corresponding input threads for more than one process in the client, and each input thread detects a touch event of its corresponding process.
在一个实施例中,在图5所示的抑制显示抖动的装置的基础上,本公开实施例的抑制显示抖动的装置,如图6所示,还包括:In one embodiment, based on the device for suppressing display jitter shown in FIG. 5 , the device for suppressing display jitter of the embodiment of the present disclosure, as shown in FIG. 6 , further includes:
第二设置单元57,被设置为设置设定数量的所述输入线程;The second setting unit 57 is configured to set a set number of input threads;
分配单元58,被设置为触发所述客户端检测当前的显示窗口,将设定数量的所述输入线程中的至少之一分配给所述当前的显示窗口,并由所分配的所述输入线程对触摸事件进行检测。The assignment unit 58 is configured to trigger the client to detect the current display window, assign at least one of the set number of input threads to the current display window, and use the assigned input thread Detect touch events.
在一个实施例中,所述第二处理单元54,还用于:In one embodiment, the second processing unit 54 is further configured to:
基于所述更新渲染请求与前次更新渲染请求不同的判断结果,以所述更新渲染请求中的触摸事件进行相应场景图的更新渲染,忽略所述触摸事件队列中的触摸事件。Based on the judgment result that the updated rendering request is different from the previous updated rendering request, the touch event in the updated rendering request is used to perform updated rendering of the corresponding scene graph, and the touch events in the touch event queue are ignored.
在示例性实施例中,第一判断单元50、获取单元51、第二判断单元52、第一处理单元53、第二处理单元54、添加单元55、第一设置单元56、第二设置单元57和分配单元58等可以被一个或多个中央处理器(Central Processing Unit,CPU)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital SignalProcessor,DSP)、可编程逻辑器件(Programmable Logic Device,PLD)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器(Micro ControllerUnit,MCU)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述实施例的抑制显示抖动的方法的步骤。In an exemplary embodiment, the first judging unit 50, the acquiring unit 51, the second judging unit 52, the first processing unit 53, the second processing unit 54, the adding unit 55, the first setting unit 56, the second setting unit 57 And distribution unit 58 etc. can be used by one or more central processing unit (Central Processing Unit, CPU), application specific integrated circuit (Application Specific Integrated Circuit, ASIC), digital signal processor (Digital Signal Processor, DSP), programmable logic device (Programmable Logic Device, PLD), complex programmable logic device (Complex Programmable Logic Device, CPLD), field-programmable gate array (Field-Programmable Gate Array, FPGA), general-purpose processor, controller, microcontroller (Micro ControllerUnit , MCU), microprocessor (Microprocessor), or other electronic components to implement the steps of the method for suppressing display jitter in the foregoing embodiments.
在本公开实施例中,图5示出的抑制显示抖动的装置中每个单元执行操作的方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。In the embodiment of the present disclosure, the operation manner of each unit in the apparatus for suppressing display jitter shown in FIG. 5 has been described in detail in the embodiment of the method, and will not be described in detail here.
图5所示的抑制显示抖动的装置适用于wayland协议的显示框架中的客户端侧。The device for suppressing display jitter shown in FIG. 5 is applicable to the client side in the display framework of the wayland protocol.
图7为本公开实施例的抑制显示抖动的装置的组成结构示意图,本公开实施例的抑制显示抖动的装置可以为合成器,如图7所示,本公开实施例的抑制显示抖动的装置包括:FIG. 7 is a schematic diagram of the composition and structure of the device for suppressing display jitter in the embodiment of the present disclosure. The device for suppressing display jitter in the embodiment of the present disclosure may be a synthesizer. As shown in FIG. 7 , the device for suppressing display jitter in the embodiment of the present disclosure includes :
检测单元60,被设置为在触发周期到来的情况下,检测触摸事件队列是否为空,基于触摸事件队列为空的检测结果,触发生成单元;The detection unit 60 is configured to detect whether the touch event queue is empty when the trigger period arrives, and trigger the generation unit based on the detection result that the touch event queue is empty;
生成单元61,被设置为以前一触发周期内的触摸事件生成更新渲染请求;The generating unit 61 is configured to generate an update rendering request for a touch event in a previous trigger cycle;
发送单元62,被设置为将所述更新渲染请求向所述客户端发送。The sending unit 62 is configured to send the update rendering request to the client.
在一个实施例中,所述发送单元62将所述更新渲染请求向所述客户端发送之后,所述检测单元60还被设置为在触发周期到来且检测所述触摸事件队列仍为空的情况下,所述发送单元62继续以之前所生成的更新渲染请求向所述客户 端发送;在发送次数达到设定阈值或检测到新触摸事件的情况下,停止之前所生成的更新渲染请求的发送。In one embodiment, after the sending unit 62 sends the update rendering request to the client, the detection unit 60 is further configured to detect that the touch event queue is still empty when the trigger period arrives Next, the sending unit 62 continues to send the previously generated update rendering request to the client; when the number of sending times reaches the set threshold or a new touch event is detected, the sending of the previously generated update rendering request is stopped .
在一个实施例中,所述生成单元61,还被设置为:In one embodiment, the generating unit 61 is further configured to:
在所述检测单元60检测到触摸事件为两个以上的情况下,以时间最接近当前时刻的触摸事件生成更新渲染请求。When the detection unit 60 detects that there are more than two touch events, the update rendering request is generated with the touch event whose time is closest to the current moment.
在示例性实施例中,检测单元60、生成单元61和发送单元62等可以被一个或多个CPU、ASIC、DSP、PLD、CPLD、FPGA、通用处理器、控制器、MCU、微处理器、或其他电子元件实现,用于执行前述实施例的抑制显示抖动的方法的步骤。In an exemplary embodiment, the detecting unit 60, the generating unit 61 and the sending unit 62 etc. may be controlled by one or more CPUs, ASICs, DSPs, PLDs, CPLDs, FPGAs, general purpose processors, controllers, MCUs, microprocessors, or other electronic components for implementing the steps of the method for suppressing display jitter in the foregoing embodiments.
在本公开实施例中,图7示出的抑制显示抖动的装置中每个单元执行操作的方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。In the embodiment of the present disclosure, the operation manner of each unit in the apparatus for suppressing display jitter shown in FIG. 7 has been described in detail in the embodiment of the method, and will not be described in detail here.
图7所示的抑制显示抖动的装置适用于wayland协议的显示框架中的合成器侧。The device for suppressing display jitter shown in FIG. 7 is applicable to the synthesizer side in the display frame of the wayland protocol.
下面,参考图8来描述根据本公开实施例的电子设备11。Next, an electronic device 11 according to an embodiment of the present disclosure is described with reference to FIG. 8 .
如图8所示,电子设备11包括一个或多个处理器111和存储器112。As shown in FIG. 8 , the electronic device 11 includes one or more processors 111 and a memory 112 .
处理器111可以是中央处理单元(CPU),也可以是具有数据处理能力和指令执行能力中至少一种能力的其他形式的处理单元,并且可以控制电子设备11中的其他组件以执行期望的功能。The processor 111 may be a central processing unit (CPU), or other forms of processing units having at least one of data processing capabilities and instruction execution capabilities, and may control other components in the electronic device 11 to perform desired functions. .
存储器112可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括多种形式的计算机可读存储介质,例如易失性存储器和非易失性存储器。所述易失性存储器可以包括随机存取存储器(RAM)或高速缓冲存储器(cache)等。所述非易失性存储器可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器111可以运行所述程序指令,以实现上文所述的本公开的多个实施例的抑制显示抖动的方法以及其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等多种内容。 Memory 112 may include one or more computer program products, which may include various forms of computer-readable storage media, such as volatile memory and non-volatile memory. The volatile memory may include random access memory (RAM), cache memory (cache), and the like. The non-volatile memory may include read only memory (ROM), hard disk, flash memory, and the like. One or more computer program instructions may be stored on the computer-readable storage medium, and the processor 111 may execute the program instructions to implement the methods for suppressing display jitter and the above-mentioned multiple embodiments of the present disclosure. other desired features. Various contents such as input signal, signal component, noise component, etc. may also be stored in the computer-readable storage medium.
在一个示例中,电子设备11还可以包括:输入装置113和输出装置114,这些组件可以通过总线系统和其他形式的连接机构互连。In an example, the electronic device 11 may further include: an input device 113 and an output device 114, and these components may be interconnected through a bus system and other forms of connection mechanisms.
该输入装置113可以包括例如键盘、鼠标等等。The input device 113 may include, for example, a keyboard, a mouse, and the like.
该输出装置114可以向外部输出多种信息,包括确定出的距离信息、方向信息等。该输出装置114可以包括例如显示器、扬声器、打印机、以及通信网 络及其所连接的远程输出设备等等。The output device 114 can output a variety of information to the outside, including the determined distance information, direction information, and the like. The output device 114 may include, for example, a display, a speaker, a printer, and a communication network and its connected remote output devices, and the like.
为了简化,图8中仅示出了该电子设备11中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据实际应用情况,电子设备11还可以包括任何其他适当的组件。For simplicity, only some of the components related to the present disclosure in the electronic device 11 are shown in FIG. 8 , and components such as a bus, an input/output interface, etc. are omitted. In addition, according to actual application conditions, the electronic device 11 may also include any other appropriate components.
本公开实施例还记载了一种存储介质,其上存储由可执行程序,所述可执行程序被处理器执行前述实施例的抑制显示抖动的方法的步骤。The embodiments of the present disclosure also describe a storage medium on which an executable program is stored, and the executable program is executed by a processor to perform the steps of the method for suppressing display jitter in the foregoing embodiments.
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开实施例的方法中的步骤。In addition to the above-mentioned methods and devices, embodiments of the present disclosure may also be computer program products, which include computer program instructions that, when executed by a processor, cause the processor to perform the above-mentioned "exemplary method" of this specification. The steps in the methods according to the embodiments of the present disclosure are described in the section.
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。The computer program product can be written in any combination of one or more programming languages to execute the program codes for performing the operations of the embodiments of the present disclosure, and the programming languages include object-oriented programming languages, such as Java, C++, etc. , also includes conventional procedural programming languages, such as the "C" language or similar programming languages. The program code may execute entirely on the user's computing device, partly on the user's device, as a stand-alone software package, partly on the user's computing device and partly on a remote computing device, or entirely on the remote computing device or server to execute.
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开实施例的方法中的步骤。In addition, the embodiments of the present disclosure may also be a computer-readable storage medium, on which computer program instructions are stored, and the computer program instructions, when executed by a processor, cause the processor to execute the above-mentioned "Exemplary Method" section of this specification. The steps in the method according to the embodiments of the present disclosure described in .
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质可以包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。The computer readable storage medium may employ any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may include, for example, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination thereof. Readable storage media may include: an electrical connection with one or more conductors, a portable disk, a hard disk, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory) , optical fiber, portable compact disc read only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the foregoing.
以上结合实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例,不能认为这些优点、优势、效果等是本公开的多个实施例必须具备的。The basic principles of the present disclosure have been described above in conjunction with the embodiments. However, it should be pointed out that the advantages, advantages, effects, etc. mentioned in the present disclosure are only examples, and these advantages, advantages, effects, etc. cannot be considered as the multiple aspects of the present disclosure. An embodiment must have.

Claims (18)

  1. 一种抑制显示抖动的方法,包括:A method for suppressing display jitter, comprising:
    响应于来自合成器的更新渲染请求,客户端判断所述更新渲染请求与前次更新渲染请求是否相同;In response to the updated rendering request from the compositor, the client determines whether the updated rendering request is the same as the previous updated rendering request;
    基于所述更新渲染请求与前次更新渲染请求相同的判断结果,所述客户端获取自身输入线程接收的触摸事件;Based on the judgment result that the updated rendering request is the same as the previous updated rendering request, the client acquires the touch event received by its own input thread;
    判断所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件是否相同;judging whether the touch event in the update rendering request is the same as the latest touch event received by the input thread;
    基于所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件相同的判断结果,确定不响应所述更新渲染请求,基于所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件不同的判断结果,根据所述输入线程接收的最新触摸事件进行相应场景图的更新渲染,向所述合成器输出渲染后的场景图。Based on the judgment result that the touch event in the update rendering request is the same as the latest touch event received by the input thread, it is determined not to respond to the update rendering request, and based on the touch event in the update rendering request and the latest touch event received by the input thread According to the latest touch event received by the input thread, update and render the corresponding scene graph according to the latest touch event received by the input thread, and output the rendered scene graph to the compositor.
  2. 根据权利要求1所述的方法,还包括:The method according to claim 1, further comprising:
    所述输入线程检测输入驱动输入的触摸事件,为所述触摸事件设置时间戳,将设置有时间戳的触摸事件添加于触摸事件队列中。The input thread detects an input-driven touch event, sets a time stamp for the touch event, and adds the touch event with the time stamp to the touch event queue.
  3. 根据权利要求1所述的方法,还包括:The method according to claim 1, further comprising:
    为所述客户端中一个以上的进程分别设置对应的所述输入线程,由每个所述输入线程对自身对应的进程的触摸事件进行检测。Corresponding input threads are respectively set for more than one process in the client, and each input thread detects a touch event of its corresponding process.
  4. 根据权利要求1所述的方法,还包括:The method according to claim 1, further comprising:
    设置设定数量的所述输入线程,所述客户端检测当前的显示窗口,将设定数量的所述输入线程中的至少之一分配给所述当前的显示窗口,并由所分配的所述输入线程对触摸事件进行检测。Setting a set number of input threads, the client detects the current display window, assigns at least one of the set number of input threads to the current display window, and the assigned The input thread detects touch events.
  5. 根据权利要求2所述的方法,还包括:The method of claim 2, further comprising:
    基于所述更新渲染请求与前次更新渲染请求不同的判断结果,所述客户端以所述更新渲染请求中的触摸事件进行相应场景图的更新渲染,忽略所述触摸事件队列中的触摸事件。Based on the judgment result that the updated rendering request is different from the previous updated rendering request, the client uses the touch event in the updated rendering request to perform updated rendering of the corresponding scene graph, and ignores the touch events in the touch event queue.
  6. 一种抑制显示抖动的方法,包括:A method for suppressing display jitter, comprising:
    在触发周期到来的情况下,合成器检测自身的触摸事件队列;When the trigger cycle arrives, the synthesizer detects its own touch event queue;
    在所述触摸事件队列为空的情况下,以前一触发周期内的触摸事件生成更新渲染请求,将所生成的更新渲染请求向所述客户端发送。When the touch event queue is empty, an update rendering request is generated by a touch event in a previous trigger cycle, and the generated update rendering request is sent to the client.
  7. 根据权利要求6所述的方法,将所生成的更新渲染请求向所述客户端发送 之后,所述方法还包括:According to the method according to claim 6, after the generated update rendering request is sent to the client, the method further includes:
    在触发周期到来且所述合成器检测自身的触摸事件队列仍为空的情况下,继续以之前所生成的更新渲染请求向所述客户端发送,在发送次数达到设定阈值或检测到新触摸事件的情况下,停止之前所生成的更新渲染请求的发送。When the trigger period arrives and the compositor detects that its own touch event queue is still empty, it continues to send the previously generated update rendering request to the client. When the number of sending times reaches the set threshold or a new touch is detected In the case of an event, the sending of update rendering requests generated before is stopped.
  8. 根据权利要求6或7所述的方法,还包括:The method according to claim 6 or 7, further comprising:
    所述合成器检测到触摸事件为两个以上的情况下,以时间最接近当前时刻的触摸事件生成更新渲染请求。When the compositor detects that there are more than two touch events, it uses the touch event whose time is closest to the current moment to generate an update rendering request.
  9. 一种抑制显示抖动的装置,包括:A device for suppressing display jitter, comprising:
    第一判断单元,被设置为响应于来自合成器的更新渲染请求,判断所述更新渲染请求与前次更新渲染请求是否相同;The first judging unit is configured to, in response to an updated rendering request from the compositor, judge whether the updated rendering request is the same as the previous updated rendering request;
    获取单元,被设置为基于所述更新渲染请求与前次更新渲染请求相同的判断结果,触发所述客户端获取自身输入线程接收的触摸事件;The acquisition unit is configured to trigger the client to acquire the touch event received by its own input thread based on the judgment result that the updated rendering request is the same as the previous updated rendering request;
    第二判断单元,被设置为判断所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件是否相同,基于所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件相同的判断结果,触发第一处理单元;基于所述更新渲染请求中的触摸事件与所述输入线程接收的最新触摸事件不同的判断结果,触发第二处理单元;The second judging unit is configured to judge whether the touch event in the update rendering request is the same as the latest touch event received by the input thread, based on the touch event in the update rendering request and the latest touch event received by the input thread Triggering the first processing unit if the event is the same; triggering the second processing unit based on the judgment result that the touch event in the update rendering request is different from the latest touch event received by the input thread;
    第一处理单元,被设置为确定不响应所述更新渲染请求;a first processing unit configured to determine not to respond to the update rendering request;
    第二处理单元,被设置为基于所述输入线程接收的最新触摸事件进行相应场景图的更新渲染,向所述合成器输出渲染后的场景图。The second processing unit is configured to update and render the corresponding scene graph based on the latest touch event received by the input thread, and output the rendered scene graph to the compositor.
  10. 根据权利要求9所述的装置,还包括:The apparatus of claim 9, further comprising:
    添加单元,被设置为在所述输入线程检测输入驱动输入的触摸事件后,为所述触摸事件设置时间戳,将设置有时间戳的触摸事件添加于触摸事件队列中。The adding unit is configured to set a time stamp for the touch event after the input thread detects the touch event driven by the input, and add the touch event with the time stamp to the touch event queue.
  11. 根据权利要求9所述的装置,还包括:The apparatus of claim 9, further comprising:
    第一设置单元,被设置为为所述客户端中一个以上的进程分别设置对应的所述输入线程,由每个所述输入线程对自身对应的进程的触摸事件进行检测。The first setting unit is configured to respectively set corresponding input threads for more than one process in the client, and each input thread detects a touch event of its corresponding process.
  12. 根据权利要求9所述的装置,还包括:The apparatus of claim 9, further comprising:
    第二设置单元,被设置为设置设定数量的所述输入线程;a second setting unit configured to set a set number of said input threads;
    分配单元,被设置为触发所述客户端检测当前的显示窗口,将设定数量的所述输入线程中的至少之一分配给所述当前的显示窗口,并由所分配的所述输入线程对触摸事件进行检测。An allocation unit configured to trigger the client to detect the current display window, allocate at least one of the set number of input threads to the current display window, and assign the input thread to the current display window. Touch events are detected.
  13. 根据权利要求10所述的装置,其中,所述第二处理单元,还被设置为:The device according to claim 10, wherein the second processing unit is further configured to:
    基于所述更新渲染请求与前次更新渲染请求不同的判断结果,以所述更新渲染请求中的触摸事件进行相应场景图的更新渲染,忽略所述触摸事件队列中的触摸事件。Based on the judgment result that the updated rendering request is different from the previous updated rendering request, the touch event in the updated rendering request is used to perform updated rendering of the corresponding scene graph, and the touch events in the touch event queue are ignored.
  14. 一种抑制显示抖动的装置,包括:A device for suppressing display jitter, comprising:
    检测单元,被设置为在触发周期到来的情况下,检测触摸事件队列是否为空,基于触摸事件队列为空的检测结果,触发生成单元;The detection unit is configured to detect whether the touch event queue is empty when the trigger period arrives, and trigger the generation unit based on the detection result that the touch event queue is empty;
    生成单元,被设置为以前一触发周期内的触摸事件生成更新渲染请求;a generating unit configured to generate an update rendering request for a touch event in a previous trigger cycle;
    发送单元,被设置为将所述更新渲染请求向所述客户端发送。A sending unit configured to send the update rendering request to the client.
  15. 根据权利要求14所述的装置,其中,所述发送单元将所述更新渲染请求向所述客户端发送之后,所述检测单元还被设置为在触发周期到来且检测所述触摸事件队列仍为空的情况下,所述发送单元继续以之前所生成的更新渲染请求向所述客户端发送;在发送次数达到设定阈值或检测到新触摸事件的情况下,停止之前所生成的更新渲染请求的发送。The device according to claim 14, wherein after the sending unit sends the update rendering request to the client, the detection unit is further configured to detect that the touch event queue is still If it is empty, the sending unit continues to send the previously generated update rendering request to the client; when the number of sending times reaches a set threshold or a new touch event is detected, the previously generated update rendering request is stopped sent.
  16. 根据权利要求14或15所述的装置,其中,所述生成单元,还被设置为:The device according to claim 14 or 15, wherein the generating unit is further configured to:
    在所述检测单元检测到触摸事件为两个以上的情况下,以时间最接近当前时刻的触摸事件生成更新渲染请求。When the detection unit detects that there are more than two touch events, the update rendering request is generated with the touch event whose time is closest to the current moment.
  17. 一种电子设备,包括处理器、存储器及存储在存储器上并能够由所述处理器运行的可执行程序,所述处理器运行所述可执行程序时执行如权利要求1至8任一项所述的抑制显示抖动的方法的步骤。An electronic device, comprising a processor, a memory, and an executable program stored on the memory and capable of being run by the processor, when the processor runs the executable program, it executes the process described in any one of claims 1 to 8 Steps in the method for suppressing display jitter described above.
  18. 一种存储介质,其上存储有可执行程序,所述可执行程序被处理器执行时实现如权利要求1至8任一项所述的抑制显示抖动的方法的步骤。A storage medium, on which an executable program is stored, and when the executable program is executed by a processor, the steps of the method for suppressing display jitter according to any one of claims 1 to 8 are implemented.
PCT/CN2022/105422 2021-11-23 2022-07-13 Method and apparatus for suppressing display jitter, electronic device, and storage medium WO2023093076A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111392446.XA CN114115688B (en) 2021-11-23 2021-11-23 Method and device for inhibiting display jitter, electronic equipment and storage medium
CN202111392446.X 2021-11-23

Publications (1)

Publication Number Publication Date
WO2023093076A1 true WO2023093076A1 (en) 2023-06-01

Family

ID=80440058

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/105422 WO2023093076A1 (en) 2021-11-23 2022-07-13 Method and apparatus for suppressing display jitter, electronic device, and storage medium

Country Status (2)

Country Link
CN (1) CN114115688B (en)
WO (1) WO2023093076A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114115688B (en) * 2021-11-23 2023-08-01 北京字节跳动网络技术有限公司 Method and device for inhibiting display jitter, electronic equipment and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140171204A1 (en) * 2012-12-13 2014-06-19 Microsoft Corporation Asynchronous cloud rendered video delivery
US20170235411A1 (en) * 2014-11-18 2017-08-17 Tactual Labs Co. System and method for timing input sensing, rendering, and display to minimize latency
CN107077252A (en) * 2014-11-18 2017-08-18 触觉实验室股份有限公司 For timing input sensing, render and show the system and method to minimize time delay
CN112614202A (en) * 2020-12-24 2021-04-06 北京元心科技有限公司 GUI rendering display method, terminal, server, electronic device and storage medium
CN113448662A (en) * 2020-03-27 2021-09-28 海信电子科技(武汉)有限公司 Window image display method, device and storage medium
CN114115688A (en) * 2021-11-23 2022-03-01 北京鲸鲮信息系统技术有限公司 Method and device for suppressing display jitter, electronic equipment and storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075631B2 (en) * 2011-10-18 2015-07-07 Blackberry Limited Method of rendering a user interface
US9383840B2 (en) * 2013-04-22 2016-07-05 Samsung Display Co., Ltd. Method and apparatus to reduce display lag using image overlay
WO2015060831A1 (en) * 2013-10-22 2015-04-30 Citrix Systems Inc. Method and system for displaying graphics for a local virtual machine
CN111654740B (en) * 2020-06-24 2022-12-16 杭州海康威视数字技术股份有限公司 Rendering method and device in video playing process and electronic equipment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140171204A1 (en) * 2012-12-13 2014-06-19 Microsoft Corporation Asynchronous cloud rendered video delivery
US20170235411A1 (en) * 2014-11-18 2017-08-17 Tactual Labs Co. System and method for timing input sensing, rendering, and display to minimize latency
CN107077252A (en) * 2014-11-18 2017-08-18 触觉实验室股份有限公司 For timing input sensing, render and show the system and method to minimize time delay
CN113448662A (en) * 2020-03-27 2021-09-28 海信电子科技(武汉)有限公司 Window image display method, device and storage medium
CN112614202A (en) * 2020-12-24 2021-04-06 北京元心科技有限公司 GUI rendering display method, terminal, server, electronic device and storage medium
CN114115688A (en) * 2021-11-23 2022-03-01 北京鲸鲮信息系统技术有限公司 Method and device for suppressing display jitter, electronic equipment and storage medium

Also Published As

Publication number Publication date
CN114115688A (en) 2022-03-01
CN114115688B (en) 2023-08-01

Similar Documents

Publication Publication Date Title
WO2018209871A1 (en) Wireless screen transmission method and system
US8453148B1 (en) Method and system for image sequence transfer scheduling and restricting the image sequence generation
US10949154B2 (en) Systems and methods for using screen sampling to detect display changes
US8467631B2 (en) Method and apparatus for identification of image uniqueness
WO2023093076A1 (en) Method and apparatus for suppressing display jitter, electronic device, and storage medium
WO2023065732A1 (en) Touch processing method and apparatus based on graphic display system, and electronic device and storage medium
US20150163281A1 (en) Moving objects of a remote desktop in unstable network environments
JP2012515961A (en) Method and system for realizing message interaction in a multi-tab application
KR20070110127A (en) A method and apparatus for updating a graphical display in a distributed processing environment using compression
JP2008539449A (en) Method and apparatus for updating a graphic display in a distributed processing environment
EP3836484A2 (en) Method for transmitting live message, apparatus, electronic device, medium and computer program product
US8856385B1 (en) Image display method and apparatus
WO2016197590A1 (en) Method and apparatus for providing screenshot service on terminal device and storage medium and device
WO2023083208A1 (en) Cloud desktop system processing method, cloud desktop system control method and related device
WO2020135776A1 (en) Interaction data transmission method, device, terminal and server
WO2021052100A1 (en) Wayland protocol-based graphics compositing method, apparatus and system, and computer-readable storage medium
JP2022524745A (en) Methods and equipment for step-aware workflows
CN110489318B (en) Systrace information grabbing method and device, storage medium and terminal
CN109831673B (en) Live broadcast room data processing method, device, equipment and storage medium
CN103902727A (en) Network search method and device
US10061373B2 (en) System and method for managing display-related resources
CN114554110A (en) Video generation method and device, electronic equipment and storage medium
CN113961442A (en) Method and device for monitoring stuck anomaly, terminal equipment and medium
US10089121B2 (en) System and method for managing display-related resources
US11523190B1 (en) Generating notifications that provide context for predicted content interruptions

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22897172

Country of ref document: EP

Kind code of ref document: A1