WO2023020124A1 - 数据处理方法、装置、计算设备和系统 - Google Patents

数据处理方法、装置、计算设备和系统 Download PDF

Info

Publication number
WO2023020124A1
WO2023020124A1 PCT/CN2022/101956 CN2022101956W WO2023020124A1 WO 2023020124 A1 WO2023020124 A1 WO 2023020124A1 CN 2022101956 W CN2022101956 W CN 2022101956W WO 2023020124 A1 WO2023020124 A1 WO 2023020124A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
rendered
computing device
identifier
indication information
Prior art date
Application number
PCT/CN2022/101956
Other languages
English (en)
French (fr)
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 华为技术有限公司
Priority to EP22857437.2A priority Critical patent/EP4375940A1/en
Publication of WO2023020124A1 publication Critical patent/WO2023020124A1/zh
Priority to US18/436,999 priority patent/US20240177352A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • G06F3/1462Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised management of display operation, e.g. in a server instead of locally

Definitions

  • the present application relates to the field of remote control, and in particular to a data processing method, device, computing device and system.
  • Cloudphone is a kind of virtual mobile phone, and the service of cloud phone is provided by cloud server.
  • a cloud mobile phone application program (application, APP) is installed on the terminal.
  • the terminal displays the cloud phone interface after running the cloud phone application.
  • the terminal can receive the user's operation on the cloud phone.
  • the cloud server can receive the operation instruction to the cloud mobile phone sent by the terminal through the network.
  • the cloud server executes the operation instruction on the cloud mobile phone to complete the operation on the cloud mobile phone.
  • the terminal can receive drawing instructions and data to be rendered sent by the cloud server through the network.
  • the terminal renders the data to be rendered according to the drawing instruction, so that the terminal displays an image of the operation result.
  • the cloud server can use a common compression method (such as: zstd or lz4) to compress the drawing instructions and the data to be rendered, and transmit the compressed data to the terminal.
  • a common compression method such as: zstd or lz4
  • the compression efficiency of this general compression method is low, the amount of compressed data is still relatively large, and the time delay for the terminal to receive drawing instructions and data to be rendered is still relatively long. Therefore, how to reduce the time delay of the information required by the terminal to display images is an urgent problem to be solved.
  • the present application provides a data processing method, device, computing device and system, thereby reducing the time delay of information required by a terminal to display images.
  • a data processing method is provided, and the method is executed by a first computing device.
  • the method includes that the first computing device obtains first information used by the second computing device to display the first image, the first information includes a drawing instruction, and the drawing instruction is used to render the first data to be rendered to obtain the first image.
  • the first computing device determines the indication information of the first data to be rendered, and sends the second information including the drawing instruction and the indication information to the second computing device.
  • the indication information includes a first indication or a second indication
  • the first indication is used to identify the first data to be rendered that the first computing device previously sent to the second computing device
  • the second indication is used to identify the data currently sent by the first computing device Compressed data of the first data to be rendered for the second computing device.
  • the first computing device uses the indication information of the data to be rendered to indicate the data to be rendered that needs to be repeatedly transmitted, so as to avoid repeated transmission of the same data to be rendered, thereby reducing the data volume of the data to be rendered carried by the transmitted drawing instruction and reducing the cost of transmitting data.
  • the bandwidth and time delay enable the second computing device to obtain information required for displaying images in time to display images, thereby improving user experience.
  • determining the indication information of the first data to be rendered includes: the first computing device determines the indication information according to a sending record, and the sending record is used to indicate that the first computing device has sent the data to be rendered to the second computing device. data. Therefore, the first computing device judges whether the data to be rendered to be sent has been transmitted by using the sending record, and if the data to be rendered to be sent has already been transmitted, determine the indication information of the data to be rendered to avoid repeated transmission of the same data to be rendered , thereby reducing the amount of data to be rendered carried by the transmission drawing instruction.
  • determining the indication information of the first data to be rendered includes: the first computing device acquires the identifier of the first data to be rendered, compares the identifier of the first data to be rendered with the identifier of the data to be rendered included in the sending record, and determines the indication information.
  • the first computing device may determine according to the sending record that the first computing device has previously sent the first data to be rendered to the second computing device, or the first computing device may determine that the first computing device has not sent the first data to be rendered to the second computing device before.
  • the instruction information may contain different contents.
  • Example 1 comparing the identifier of the first data to be rendered with the identifier of the data to be rendered included in the sending record, determining the indication information includes: if the sending record includes the identifier of the first data to be rendered, the first computing device sends the first data to be rendered to The data identifier is carried in the indication information.
  • the first computing device performs mapping processing on the data to be rendered that needs to be repeatedly transmitted, and carries the identifier of the first data to be rendered in the indication information sent to the second computing device, so as to avoid repeated transmission of the same data to be rendered, and reduce The amount of data to be rendered carried by the drawing instruction is transmitted, and the bandwidth and delay of transmitting the information required for displaying the image by the second computing device are reduced, so that the second computing device can obtain the information required for displaying the image in time to display the image, and improve user experience.
  • Example 2 comparing the identifier of the first data to be rendered with the identifier of the data to be rendered included in the sending record, determining the indication information includes: if the sending record does not include the identifier of the first data to be rendered, the first computing device Including the identification of the second data to be rendered, determining the difference data between the first data to be rendered and the second data to be rendered, and carrying the identification and difference data of the second data to be rendered in the instruction information.
  • the first computing device deduplicates the data to be rendered that needs to be repeatedly transmitted, and carries the identification and difference data of the second data to be rendered in the indication information sent to the second computing device, so as to avoid duplication of the same data to be rendered transmission, then reduce the data volume of the data to be rendered carried by the transmission drawing instruction, reduce the bandwidth and time delay of transmitting the information required by the second computing device to display the image, so that the second computing device can obtain the information required for displaying the image in time Display images to improve user experience.
  • Example 3 comparing the identifier of the first data to be rendered with the identifier of the data to be rendered included in the sending record, determining the indication information includes: if the sending record does not include the identifier of the first data to be rendered, the first computing device compresses the first data to be rendered The rendered data obtains compressed data, and the compressed data is carried in the indication information.
  • the untransmitted first data to be rendered perform compression processing on the first data to be rendered, transmit the compressed data of the first data to be rendered to the second computing device, and reduce the data volume of the data to be rendered carried by the transmission drawing instruction, The bandwidth and time delay of transmitting the information required for displaying the image by the second computing device are reduced, so that the second computing device can obtain the information required for displaying the image in time to display the image, thereby improving user experience.
  • the method further includes: the first computing device updates a sending record, where the sending record includes an identifier of the first data to be rendered. Therefore, when the first computing device sends the first data to be rendered again, it can be determined according to the identifier of the first data to be rendered contained in the sending record that the first data to be rendered has been sent to the second computing device, so as to avoid repeated sending.
  • the first data to be rendered includes at least one of texture data and vertex data.
  • obtaining the first information includes: the first computing device receives an operation instruction sent by the second computing device, and obtains the first information according to the operation instruction.
  • the operation indication is used to indicate an operation on the cloud application running on the second computing device.
  • the method further includes: the first computing device deletes the data to be rendered according to the aging rule, and sends the deletion instruction to the second computing device.
  • Aging rules are used to limit the amount of data to be rendered for sending record indications.
  • the deletion indication is used to indicate the data to be rendered to be deleted by the second computing device. Therefore, it is avoided that the first computing device buffers data indefinitely and wastes the storage space of the memory.
  • a data processing method is provided, and the method is executed by a second computing device.
  • the method includes that the second computing device receives second information including a drawing instruction and instruction information sent by the first computing device, acquires first data to be rendered according to the instruction information, and renders the first data to be rendered according to the drawing instruction to obtain a first image; Display the first image.
  • the second information is used to instruct the second computing device to display the first image.
  • the indication information includes a first indication or a second indication, the first indication is used to identify the first data to be rendered that the first computing device previously sent to the second computing device, and the second indication is used to identify the data currently sent to the second computing device by the first computing device. 2. Computing the compressed data of the first data to be rendered of the device.
  • the second computing device obtains the data to be rendered locally according to the indication information of the data to be rendered, avoiding repeated transmission of the same data to be rendered, thereby reducing the data volume of the data to be rendered carried by the transmission drawing instruction, reducing the bandwidth and
  • the time delay enables the second computing device to obtain the information required for displaying the image in time to display the image, thereby improving user experience.
  • Example 1 if the indication information includes the identification of the first data to be rendered, obtaining the first data to be rendered according to the indication information includes: the second computing device acquires the first data to be rendered according to the identification of the first data to be rendered and the receiving record, and the receiving record It is used to indicate that the second computing device has received the data to be rendered previously sent by the first computing device.
  • the received data to be rendered is stored in the second computing device to avoid repeated transmission of the same data to be rendered, which reduces the amount of data to be rendered carried by the transmitted drawing command and reduces the need for transmitting the second computing device to display images.
  • the bandwidth and time delay of the information so that the second computing device obtains the information required for displaying the image from the local as quickly as possible to display the image, thereby improving user experience.
  • Example 2 if the indication information includes the identification of the second data to be rendered and the difference data of the second data to be rendered, obtaining the first data to be rendered according to the indication information includes: the second computing device according to the identification of the second data to be rendered and the receiving record Obtaining second data to be rendered; obtaining first data to be rendered according to the same data and difference data of the second data to be rendered and the first data to be rendered, where the first data to be rendered includes difference data and the same data.
  • the second computing device obtains the first data to be rendered locally according to the difference data, so that the second computing device obtains the information required for displaying the image from the local as quickly as possible to display the image, thereby improving user experience.
  • Example 3 if the indication information includes compressed data, obtaining the first data to be rendered according to the indication information includes: the second computing device decompresses the compressed data to obtain the first data to be rendered.
  • the second computing device updates a receiving record, where the receiving record includes the first data to be rendered and an identifier of the first data to be rendered. Therefore, when the second computing device receives the identifier of the first data to be rendered again, it can query the receiving record according to the identifier of the first data to be rendered to determine that the first data to be rendered has been received, thereby obtaining the first data to be rendered locally .
  • the method further includes: the second computing device receives a deletion instruction sent by the first computing device, and deletes the stored data to be rendered according to the deletion instruction.
  • the deletion indication is used to indicate the data to be rendered to be deleted by the second computing device. Therefore, it is avoided that the second computing device buffers data indefinitely and wastes the storage space of the memory.
  • a data processing device in a third aspect, includes various modules for executing the data processing method in any possible design of the first aspect or the first aspect; or, implementing the second aspect or the second aspect The individual modules of the data processing method in any of the possible designs.
  • a computing device in a fourth aspect, includes at least one processor and a memory, and the memory is used to store a set of computer instructions; When the device executes the set of computer instructions, it executes the first aspect or the operation steps of the data processing method in any possible implementation manner of the first aspect.
  • a computing device in a fifth aspect, includes at least one processor, a memory, and a display, and the memory is used to store a set of computer instructions; when the processor is used as the second aspect or in any possible implementation manner of the second aspect
  • the execution device executes the set of computer instructions, it executes the second aspect or the operation steps of the data processing method in any possible implementation manner of the second aspect, so that the display displays an image.
  • a computer-readable storage medium including: computer software instructions; when the computer software instructions are run in the computing device, the computing device is made to execute the computer program described in the first aspect or any one of the possible implementation manners of the first aspect.
  • a computer program product is provided.
  • the computing device executes the operation steps of the method described in the first aspect or any possible implementation manner of the first aspect, or, Execute the operation steps of the method described in the second aspect or any possible implementation manner of the second aspect.
  • Fig. 1 is a schematic structural diagram of a system provided by the present application.
  • Fig. 2 is a flow chart of a data processing method provided by the present application.
  • Fig. 3 is a flowchart of another data processing method provided by the present application.
  • Fig. 4 is a flowchart of another data processing method provided by the present application.
  • Fig. 5 is a flowchart of another data processing method provided by the present application.
  • FIG. 6 is a schematic diagram of a process of displaying an image provided by the present application.
  • FIG. 7 is a schematic structural diagram of a data processing device provided by the present application.
  • FIG. 8 is a schematic structural diagram of another data processing device provided by the present application.
  • FIG. 9 is a schematic structural diagram of a computing device provided by the present application.
  • the data processing method provided by the embodiment of the present application is mainly applied to the remote display image scene based on the drawing instruction (Graphic API), that is, the first computing device (such as: a server) sends the data to be rendered to the second computing device (such as: a terminal) drawing instruction, so that after the second computing device renders the data to be rendered according to the drawing instruction, it displays an image described by the data to be rendered.
  • the terminal displays game scenes and game characters of the cloud game.
  • the terminal displays an image of the operation result.
  • the second computer remotely controls the first computer, and the second computer displays the interface of the first computer.
  • Rendering refers to the process in which a computer generates an image based on drawing instructions and data to be rendered. For example, in game development, the rendering of game scenes and game characters. As another example, in the development of audio and video, the data after video encoding is rendered to realize the filter effect.
  • the data to be rendered includes, for example, geometric data, vertex data, texture data, and lighting data of an object.
  • the data to be rendered includes description information of objects in computer language or data structure.
  • Drawing instructions include Open Graphics Library (OpenGL), OpenGL for Embedded Systems (OpenGL ES), cross-platform 2D and 3D drawing application interface (Vulkan), Windows multimedia programming interface (Direct eXtension , DirectX) and iOS Rendering API (Metal).
  • OpenGL Open Graphics Library
  • OpenGL ES OpenGL for Embedded Systems
  • Vulkan cross-platform 2D and 3D drawing application interface
  • Windows multimedia programming interface Direct eXtension , DirectX
  • iOS Rendering API Method
  • OpenGL is a cross-platform, cross-language rendering application programming interface for rendering 2D or 3D vector graphics.
  • OpenGL ES is a subset of OpenGL. It is mainly designed for smart terminals (such as: mobile phones), tablet computers, and game consoles.
  • OpenGL ES does not include complex primitive instructions such as start/end (glBegin/glEnd) instructions, quadrilateral (GL_QUADS) instructions, and polygon (GL_POLYGONS) instructions.
  • FIG. 1 is a schematic structural diagram of a system provided by an embodiment of the present application.
  • the system includes a first computing device 110 and a second computing device 120 .
  • the first computing device 110 and the second computing device 120 perform data transmission through the network 130 .
  • the first computing device 110 may be a physical device, for example, the first computing device 110 may be a cloud device or a terminal device.
  • the first computing device 110 may also be a virtual machine (virtual machine, VM) on a physical device.
  • VM virtual machine
  • the second computing device 120 may be a mobile phone terminal, a tablet computer, a notebook computer, a virtual reality (virtual reality, VR) device, an augmented reality (Augmented Reality, AR) device, a mixed reality (Mixed Reality, MR) device, an extended reality (Extended Reality) Reality, ER) equipment or vehicle-mounted terminals, etc.
  • Network 130 may refer to the Internet.
  • Both the first computing device 110 and the second computing device 120 are preset with a drawing instruction library 112, capable of executing drawing instructions, and realize remote display of images by transmitting drawing instructions.
  • the first computing device 110 also includes an application program 111 and a communication interface 113 . After the first computing device 110 runs the application program 111 , it can call the drawing command in the drawing command library 112 , and send the drawing command and the rendering data to be selected to the second computing device 120 through the communication interface 113 .
  • the second computing device 120 receives the drawing instruction and the rendering data to be selected through the communication interface 122, and transmits the drawing instruction and the rendering data to be selected to the graphics card 123, and the graphics card 123 uses the drawing instruction to render the data to be rendered to obtain a displayed image, that is, the first computing device 110 Execute the running result of the application program 111 .
  • the second computing device 120 may also include an application program 121 .
  • the first computing device 110 and the second computing device 120 may be devices that support the operation of the cloud phone.
  • the first computing device 110 is a server for managing cloud phones.
  • the second computing device 120 is a terminal installed with a cloud mobile application program (such as the application program 121 ).
  • the cloud mobile phone can install the same application program (for example, game client) as the physical mobile phone.
  • the application program 111 run by the first computing device 110 may be an application program installed on the cloud mobile phone, and the application program 111 is, for example, a game program.
  • the user can operate the cloud mobile phone in the same manner as operating the physical mobile phone, for example, the user operates the game interface on the cloud mobile phone of the second computing device 120 .
  • the first computing device 110 receives the operation instruction sent by the second computing device 120, and the first computing device 110 executes the operation instruction to obtain an operation result.
  • the first computing device 110 sends a drawing instruction carrying data to be rendered to the second computing device 120 through the communication interface 113 .
  • the second computing device 120 receives the drawing instruction carrying the data to be rendered through the communication interface 122 , and uses the drawing instruction to render the data to be rendered and display an operation result image.
  • the first computing device 110 is a server running a cloud game.
  • the second computing device 120 is a terminal on which a cloud game application program (eg, application program 121 ) is installed. After the user operates the cloud game interface displayed by the second computing device 120, the second computing device 120 receives the drawing instruction carrying the data to be rendered sent by the first computing device 110 through the communication interface 122, and uses the drawing instruction to render the data to be rendered for display. The resulting image of the operation.
  • a cloud game application program eg, application program 121
  • the data processing method provided by the embodiment of the present application processes the data to be rendered that needs to be transmitted repeatedly, avoiding repeated transmission of the same data to be rendered, thereby reducing the data volume of the data to be rendered carried by the transmission drawing command, and reducing the time required for the image to be displayed by the transmission terminal.
  • the bandwidth and delay of the required information enable the terminal to obtain the information required to display the image in time to display the image and improve the user experience.
  • FIG. 2 is a flow chart of a data processing method provided by an embodiment of the present application. As shown in Fig. 2, the method may include the following steps.
  • the first computing device acquires first information.
  • the first information is used to instruct the second computing device to display the first image.
  • the first information includes a drawing instruction, and the drawing instruction is used to render the first data to be rendered to obtain the first image.
  • the first computing device may actively acquire the first information, push the first information to the second computing device, and cause the second computing device to display the actively pushed first image.
  • the first computing device after receiving the operation instruction sent by the second computing device, the first computing device passively acquires the first information according to the operation instruction.
  • the first computing device determines indication information of the first data to be rendered.
  • the first computing device After the first computing device sends the data to be rendered to the second computing device, it stores information related to the data to be rendered in the main memory of the first computing device. For example, a transmission record is stored in the main memory of the first computing device.
  • the sending record is used to indicate the data to be rendered that the first computing device has sent to the second computing device.
  • the sending record contains the identifier of the data to be rendered.
  • the data to be rendered identifier is used to uniquely identify the data to be rendered.
  • the different to-be-rendered data identifiers indicate different to-be-rendered data sent by the first computing device to the second computing device.
  • the identifier of the data to be rendered may be obtained by performing a hash operation on the data to be rendered by the first computing device.
  • the first computing device may determine the indication information of the first data to be rendered according to the sending record.
  • the first computing device uses the indication information to notify the second computing device whether the first data to be rendered has been transmitted before, so that the second computing device acquires the first data to be rendered according to the indication information.
  • the indication information includes the first indication or the second indication.
  • the first indication is used to identify first data to be rendered that the first computing device previously sent to the second computing device. Understandably, the first computing device has previously sent the first data to be rendered or part of the first data to be rendered to the second computing device.
  • the second indication is used to identify the compressed data of the first data to be rendered that is currently sent by the first computing device to the second computing device. Understandably, the first computing device has not sent the first data to be rendered to the second computing device before, and the first computing device sends the first data to be rendered to the second computing device for the first time.
  • two bits may be used to represent the indication information.
  • the value of the two bits is "00", indicating that the first computing device has not previously sent the first data to be rendered to the second computing device.
  • the value of the two bits is "01”, indicating that the first computing device has previously sent the first data to be rendered to the second computing device.
  • the value of the two bits is "10”, indicating that the first computing device has previously sent part of the first data to be rendered to the second computing device.
  • FIG. 3 is an illustration of the specific operation process included in S220 in FIG. 2 .
  • the first computing device acquires an identifier of the first data to be rendered.
  • the identifier of the first data to be rendered is used to uniquely identify the first data to be rendered.
  • the first computing device may perform a hash operation on the first data to be rendered to obtain an identifier of the first data to be rendered.
  • the first computing device may also use the md5 algorithm or the sha256 algorithm to perform operations on the first data to be rendered to obtain the identifier of the first data to be rendered.
  • the first computing device may also acquire part of the data in the first data to be rendered according to a preset rule, and use the part of data as an identifier of the first data to be rendered.
  • the preset rule may refer to the bits from the first to the Nth bit in the data to be rendered, and the first computing device generates an identifier of the first data to be rendered according to the bits from the first to the Nth bit in the data to be rendered .
  • the preset rule may refer to vertex data or texture data in the data to be rendered, and the first computing device generates an identifier of the first data to be rendered according to the vertex data or texture data in the data to be rendered.
  • the first computing device determines whether the sending record includes an identifier of the first data to be rendered.
  • the first computing device compares the identifier of the first data to be rendered with the identifier of the data to be rendered included in the sending record, judges whether the sending record includes the identifier of the first data to be rendered, and determines the indication information.
  • the sending record includes the identifier of the first data to be rendered, it means that the first computing device has sent the first data to be rendered to the second computing device, and S223 is executed.
  • sending record does not include the identifier of the first data to be rendered, it means that the first computing device has not sent the first data to be rendered to the second computing device, and S224 is executed.
  • the first computing device may also determine difference data from the sent data to be rendered, transmit the difference data to the second computing device, and execute S225. For example, in a cloud game scene, if the backgrounds in the two frames of pictures are the same, but the positions of the characters are different, then the difference data in the data to be rendered in the two frames of pictures may be the position coordinates of the characters.
  • the first computing device carries the identifier of the first data to be rendered in the indication information.
  • the first computing device performs mapping processing on the data to be rendered that needs to be repeatedly transmitted, and carries the identifier of the first data to be rendered in the indication information sent to the second computing device, so as to avoid repeated transmission of the same data to be rendered, and reduce The amount of data to be rendered carried by the drawing instruction is transmitted, and the bandwidth and delay of transmitting the information required for displaying the image by the second computing device are reduced, so that the second computing device can obtain the information required for displaying the image in time to display the image, and improve user experience.
  • the first computing device compresses the first data to be rendered to obtain compressed data of the first data to be rendered, and carries the compressed data of the first data to be rendered in the indication information.
  • the first computing device may use a zstd or jpeg compression algorithm to compress the first data to be rendered to obtain compressed data of the first data to be rendered.
  • the untransmitted first data to be rendered perform compression processing on the first data to be rendered, transmit the compressed data of the first data to be rendered to the second computing device, and reduce the data volume of the data to be rendered carried by the transmission drawing instruction, The bandwidth and time delay of transmitting the information required for displaying the image by the second computing device are reduced, so that the second computing device can obtain the information required for displaying the image in time to display the image, thereby improving user experience.
  • the first computing device determines the difference data between the first data to be rendered and the second data to be rendered according to the identifier of the second data to be rendered included in the sending record, and carries the identifier of the difference data and the second data to be rendered in the instruction information.
  • the first computing device may determine a variance according to at least one frame of data to be rendered and the first data to be rendered, where the variance represents the difference between two frames of data to be rendered, and according to the variance between the first data to be rendered and the first data to be rendered The smallest data to render gets diff data.
  • the difference data includes at least one of vertex data and texture data in the data to be rendered.
  • the second to-be-rendered data may be data that has been previously sent by the first to-be-rendered data that is currently to be sent.
  • the image represented by the second data to be rendered may be the image most similar to the image represented by the first data to be rendered.
  • the first computing device may determine difference data in the first data to be rendered that is different from the second data to be rendered. For example, in a cloud game scene, the background environment image in the game interface remains unchanged, but the image of the game character changes, and the difference data may refer to the rendering data of the changed game character.
  • the sending record includes the correspondence between the identifier of the data to be rendered and the storage address of the data to be rendered.
  • the first computing device In order for the first computing device to obtain the storage address of the data to be rendered according to the identifier of the data to be rendered, obtain the first data to be rendered according to the storage address of the data to be rendered, and determine the difference data between the first data to be rendered and the second data to be rendered.
  • the first computing device deduplicates the data to be rendered that needs to be repeatedly transmitted, and carries the identification and difference data of the second data to be rendered in the indication information sent to the second computing device, so as to avoid duplication of the same data to be rendered transmission, then reduce the data volume of the data to be rendered carried by the transmission drawing instruction, reduce the bandwidth and time delay of transmitting the information required by the second computing device to display the image, so that the second computing device can obtain the information required for displaying the image in time Display images to improve user experience.
  • the first computing device After the first computing device executes S224 and S225, it may further execute S226. S226.
  • the first computing device updates the sending record, where the sending record includes an identifier of the first data to be rendered.
  • the first computing device may store the identifier of the first data to be rendered, the first data to be rendered, and the size of the first data to be rendered in the main memory.
  • the first computing device when the first computing device sends the first data to be rendered again, it can be determined according to the identifier of the first data to be rendered that the first data to be rendered has been sent to the second computing device, so as to avoid repeated sending.
  • the data to be rendered transmitted by the remote display image includes a large amount of texture data and vertex data. Since the texture data and vertex data in the data to be rendered carried by different drawing instructions in the drawing instruction stream vary little, there is a phenomenon of repeated transmission of the texture data and the vertex data.
  • the same data to be rendered only needs to be transmitted once, and only the identification of the data to be rendered or the identity of the data to be rendered needs to be transmitted when it is transmitted again. Differential data, thereby reducing the amount of transmitted data and lowering the requirements for network bandwidth.
  • the first data to be rendered includes at least one of texture data and vertex data.
  • Texture in computer graphics includes not only the texture of the surface of the object in the general sense, even if the surface of the object presents uneven grooves, but also the color pattern (also called pattern) on the smooth surface of the object.
  • pattern color patterns or patterns are drawn on the surface of the object, and the surface of the object is still smooth after the texture is generated.
  • Texture data includes groove data and pattern data. Vertex data may refer to a collection of graphics coordinates.
  • the first computing device sends second information to the second computing device, where the second information includes a drawing instruction and instruction information.
  • the first computing device may transmit the second information to the second computing device over the network.
  • the second information is used to instruct the second computing device to display the first image.
  • the second computing device receives second information sent by the first computing device.
  • the second computing device acquires the first data to be rendered according to the indication information.
  • the second computing device After receiving the data to be rendered and the identifier of the data to be rendered sent by the first computing device, the second computing device stores the data to be rendered and the identifier of the data to be rendered in the main memory of the second computing device.
  • the main memory of the second computing device stores the receipt record.
  • the receiving record is used to indicate that the second computing device has received the data to be rendered previously sent by the first computing device.
  • the receiving record includes the corresponding relationship between the identifier of the data to be rendered and the data to be rendered.
  • the receiving record includes the corresponding relationship between the identifier of the data to be rendered and the storage location of the data to be rendered, so that the second computing device can locally obtain the data to be rendered according to the corresponding relationship between the identifier of the data to be rendered and the storage location of the data to be rendered .
  • the different to-be-rendered data identifier indicates that the second computing device has received different to-be-rendered data previously sent by the first computing device.
  • the second computing device receives the second information sent by the first computing device, can acquire the first data to be rendered according to the instruction information included in the second information, and render the first data to be rendered according to the drawing instruction to obtain the first image.
  • the second information includes drawing instructions and indication information.
  • the indication information includes a first indication or a second indication.
  • the first indication is used to identify first data to be rendered that the first computing device previously sent to the second computing device.
  • the second indication is used to identify the compressed data of the first data to be rendered that is currently sent by the first computing device to the second computing device.
  • FIG. 4 is an illustration of the specific operation process included in S250 in FIG. 2 .
  • the second computing device acquires the first data to be rendered according to the identifier and the receiving record of the first data to be rendered.
  • the second computing device compares the identifier of the first data to be rendered included in the instruction information with the identifier of the data to be rendered included in the received record, and obtains the data corresponding to the identifier of the data to be rendered that is the same as the identifier of the first data to be rendered in the received record. Data to be rendered. If the receiving record contains the identifier of the first data to be rendered and the first data to be rendered, it means that the second computing device has previously received the first data to be rendered, and the second computing device hits the cache and can obtain the first data to be rendered from the main memory. Render data.
  • the received data to be rendered is stored in the second computing device to avoid repeated transmission of the same data to be rendered, which reduces the amount of data to be rendered carried by the transmitted drawing command and reduces the need for transmitting the second computing device to display images.
  • the bandwidth and time delay of the information so that the second computing device obtains the information required for displaying the image from the local as quickly as possible to display the image, thereby improving user experience.
  • the indication information includes difference data between the first data to be rendered and the second data to be rendered, and an identifier of the second data to be rendered, execute S252 and S253.
  • the second computing device acquires the second data to be rendered according to the identification and the receiving record of the second data to be rendered.
  • the second computing device compares the identifier of the second data to be rendered included in the instruction information with the identifier of the data to be rendered included in the received record, and obtains the identifier corresponding to the identifier of the data to be rendered that is the same as the identifier of the second data to be rendered in the received record.
  • Data to be rendered If the receiving record contains the identifier of the second data to be rendered and the second data to be rendered, it means that the second computing device has received the second data to be rendered before, and the second computing device hits the cache, and can obtain the second data to be rendered from the main memory. Render data.
  • the second computing device obtains the first data to be rendered according to the second data to be rendered, the same data as the first data to be rendered, and the difference data, where the first data to be rendered includes the difference data and the same data.
  • the second computing device acquires data different from the difference data from the second data to be rendered, that is, acquires the same data as the second data to be rendered and the first data to be rendered, and combines the same data and the difference data to obtain the first data to be rendered.
  • the second computing device decompresses the compressed data to obtain the first data to be rendered.
  • the second computing device can use the zstd or jpeg compression algorithm to decompress the compressed data to obtain the first data to be rendered.
  • the indication information does not include the identifier of the first data to be rendered, it means that the second computing device has not received the first data to be rendered before, and the second computing device obtains the first data to be rendered according to the method described in S253 or S254. After rendering the data, execute S255.
  • the second computing device updates the receiving record, where the receiving record includes the first data to be rendered and an identifier of the first data to be rendered.
  • the second computing device when the second computing device receives the identifier of the first data to be rendered again, it can be determined according to the identifier of the first data to be rendered that the first data to be rendered has been received, so as to obtain the first data to be rendered locally.
  • the second computing device renders the first data to be rendered according to the drawing instruction to obtain the first image.
  • Drawing instructions may include glTexImage2D, glTexSubImage2D, glTexImage3D, glTexSubImage3D, and glBufferData.
  • glTexImage2D, glTexSubImage2D, glTexImage3D, and glTexSubImage3D are all used to paste textures on graphics.
  • glBufferData is used to render the vertices of the graphics.
  • the drawing instruction not only includes instructions for processing vertex data and texture data, but also includes other instructions, such as vertex shader, fragment Shaders, framebuffer settings, and drawing instructions for processing, etc.
  • rendering and displaying images with OpenGL instructions requires the execution of many instructions, and rendering data to be rendered according to drawing instructions is a process of state superposition.
  • the second computing device displays the first image.
  • the first computing device performs mapping processing or deduplication processing on the data to be rendered, and transmits the processed data to avoid repeated transmission of the same data to be rendered, thereby reducing the traffic consumption of the data to be rendered , reducing the requirement on the network bandwidth, so that the second computing device can obtain the information required for displaying the image in time to display the image, thereby improving user experience.
  • the first computing device may also compress the drawing instruction and indication information to obtain the second information.
  • the second computing device first decompresses the second information to obtain drawing instructions and instruction information.
  • the second computing device acquires the first data to be rendered according to the indication information, renders the first data to be rendered according to the drawing instruction to obtain the first image, and displays the first image. Therefore, the data volume and traffic consumption of the data to be rendered are further reduced, and the requirement on network bandwidth is lowered.
  • an aging mechanism may be used to clean up the data to be rendered.
  • the embodiment of the present application further includes the following steps.
  • the first computing device deletes the data to be rendered indicated by the sending record according to the aging rule.
  • Aging rules are used to limit the amount of data to be rendered for sending record indications.
  • the first computing device may clear the data to be rendered indicated by the sending record according to the threshold indicated by the aging rule.
  • the threshold can be a data volume-related value or a time-related value.
  • the first computing device may record the size of the data to be rendered.
  • the first computing device deletes the data to be rendered and the identifier of the data to be rendered that is larger than the preset data volume. For example, the first computing device may delete the data to be rendered and the identifier of the data to be rendered that are sent out earliest.
  • the first computing device may record the time when the data to be rendered is sent.
  • the first computing device deletes the data to be rendered and the identifier of the data to be rendered longer than the preset duration.
  • the first computing device sends a deletion indication to the second computing device, where the deletion indication is used to indicate the data to be rendered to be deleted by the second computing device.
  • the deletion indication may include an identification of data to be rendered.
  • the second computing device receives the deletion instruction sent by the first computing device.
  • the second computing device deletes the stored data to be rendered according to the deletion instruction.
  • the second computing device queries the receiving record according to the identifier of the data to be rendered included in the deletion instruction, and deletes the identifier of the data to be rendered and the data to be rendered indicated by the identifier of the data to be rendered. Therefore, it is avoided that the first computing device and the second computing device cache data indefinitely and waste the storage space of the memory.
  • the server 610 actively acquires drawing instructions and first data to be rendered, and the first data to be rendered is used to describe the selected image of the game character, that is, the first image can be is the game character selection scene image.
  • the server 610 sends the drawing instruction and the instruction information of the first data to be rendered to the terminal 620, and the terminal 620 obtains the first data to be rendered according to the instruction information of the first data to be rendered, and renders the first data to be rendered according to the drawing instruction to obtain the game character selection
  • the terminal 620 displays a game character selection interface 621 .
  • a cloud mobile phone APP icon 622 is displayed on the display screen of the terminal 620, and the user can click the cloud mobile phone APP icon 622, and the terminal 620 responds to the click operation, and the terminal 620 runs the cloud mobile phone application, and sends an operation instruction to the server 610.
  • the terminal 620 receives the drawing instruction sent by the server 610 and the indication information of the first data to be rendered.
  • the first data to be rendered is used to describe the user interface image of the cloud phone APP, that is, the first image may be the user interface image of the cloud phone APP.
  • the terminal 620 acquires the first data to be rendered according to the indication information of the first data to be rendered, and renders the first data to be rendered according to the drawing instruction to obtain the user interface image of the cloud mobile APP, and the terminal 620 displays the user interface 623 of the cloud mobile APP.
  • the computing device includes corresponding hardware structures and/or software modules for performing various functions.
  • the present application can be implemented in the form of hardware or a combination of hardware and computer software in combination with the units and method steps of the examples described in the embodiments disclosed in the present application. Whether a certain function is executed by hardware or computer software drives the hardware depends on the specific application scenario and design constraints of the technical solution.
  • FIG. 7 is a schematic structural diagram of a possible data processing device provided by this embodiment.
  • These data processing apparatuses can be used to implement the functions of the first computing device in the above method embodiments, and thus can also achieve the beneficial effects of the above method embodiments.
  • the data processing apparatus may be the first computing device 110 as shown in FIG. 1 , or may be a module (such as a chip) applied to a server.
  • the data processing device 700 includes a communication module 710 , a data processing module 720 , a data acquisition module 730 and a storage module 740 .
  • the data processing apparatus 700 is configured to implement the functions of the first computing device in the method embodiments shown in FIG. 2 , FIG. 3 , FIG. 4 or FIG. 5 above.
  • the data acquiring module 730 is configured to acquire first information, the first information is used to instruct the second computing device to display the first image, the first information includes a drawing instruction, and the drawing instruction is used to render the first data to be rendered to obtain the first image.
  • the data acquisition module 730 is configured to execute S210 in FIG. 2 , FIG. 3 , FIG. 4 or FIG. 5 .
  • the data processing module 720 is configured to determine indication information of the first data to be rendered, where the indication information includes a first indication or a second indication, and the first indication is used to identify that the first computing device previously sent to the The first data to be rendered of the second computing device, the second indication is used to identify compressed data of the first data to be rendered currently sent by the first computing device to the second computing device.
  • the data processing module 720 is configured to execute S220 in FIG. 2 , FIG. 3 , FIG. 4 or FIG. 5 .
  • the data processing module 720 may also execute S510 in FIG. 5 .
  • the communication module 710 is configured to send second information to the second computing device, where the second information includes the drawing instruction and the indication information.
  • the communication module 710 is configured to execute S230 in FIG. 2 , FIG. 3 , FIG. 4 or FIG. 5 .
  • the communication module 710 may also execute S520 in FIG. 5 .
  • the storage module 740 is used for storing the drawing instruction set, the sending record and the data to be rendered, so that the data obtaining module 730 obtains the drawing instructions required for rendering the data to be rendered.
  • the data processing module 720 is specifically configured to determine the indication information according to the sending record, where the sending record is used to indicate the data to be rendered that has been sent by the first computing device to the second computing device.
  • the data processing module 720 acquires the identifier of the first data to be rendered; compares the identifier of the first data to be rendered with the identifier of the data to be rendered contained in the sending record to determine the indication information.
  • the data processing module 720 is specifically configured to include the identifier of the first data to be rendered in the indication information if the sending record includes the identifier of the first data to be rendered.
  • the data processing module 720 is specifically configured to, if the sending record does not include the identifier of the first data to be rendered, determine the first data to be rendered and the first data to be rendered according to the identifier of the second data to be rendered included in the sending record. For the difference data of the second data to be rendered, the identifier of the second data to be rendered and the difference data are carried in the indication information.
  • the data processing module 720 is specifically configured to compress the first data to be rendered to obtain the compressed data if the sending record does not include the identifier of the first data to be rendered, and carry the compressed data in the instruction information .
  • the data processing device 700 also includes an update module 750 .
  • the updating module 750 is used for updating the sending record.
  • FIG. 8 is a schematic structural diagram of a possible data processing device provided by this embodiment.
  • These data processing apparatuses can be used to implement the functions of the second computing device in the above method embodiments, and therefore can also achieve the beneficial effects of the above method embodiments.
  • the data processing apparatus may be the second computing device 120 as shown in FIG. 1 , or may be a module (such as a chip) applied to a server.
  • the data processing device 800 includes a communication module 810 , a data acquisition module 820 , a rendering module 830 and a storage module 840 .
  • the data processing apparatus 800 is configured to implement the functions of the second computing device in the method embodiments shown in FIG. 2 , FIG. 3 , FIG. 4 or FIG. 5 above.
  • the communication module 810 is configured to receive second information sent by the first computing device, the second information includes the drawing instruction and the instruction information, and the second information is used to instruct the second computing device to display the first image , the second information includes a drawing instruction and indication information, the indication information includes a first indication or a second indication, and the first indication is used to identify that the first computing device previously sent to the second computing device The first data to be rendered, the second indication is used to identify compressed data of the first data to be rendered that is currently sent by the first computing device to the second computing device.
  • the communication module 810 is configured to execute S240 in FIG. 2 , FIG. 3 , FIG. 4 or FIG. 5 .
  • the communication module 810 may also execute S530 in FIG. 5 .
  • the data acquisition module 820 is configured to acquire the first data to be rendered according to the indication information.
  • the data acquisition module 820 is configured to execute S250 in FIG. 2 , FIG. 3 , FIG. 4 or FIG. 5 .
  • the data acquisition module 820 may also execute S540 in FIG. 5 .
  • the rendering module 830 is configured to render the first data to be rendered according to the drawing instruction to obtain the first image.
  • the rendering module 830 is configured to execute S260 in FIG. 2 , FIG. 3 , FIG. 4 or FIG. 5 .
  • the storage module 840 is configured to store the drawing instruction set, the receiving record and the data to be rendered, so that the data obtaining module 820 obtains the first data to be rendered according to the indication information.
  • the data acquiring module 820 is specifically configured to acquire the first data to be rendered according to the identification of the first data to be rendered and a receiving record, and the receiving record is used to indicate that the second computing device has received the first computing device The previously sent data to be rendered.
  • the data acquisition module 820 is specifically configured to acquire the second data to be rendered according to the identification and receiving record of the second data to be rendered; according to the same data of the second data to be rendered and the first data to be rendered, and The difference data obtains the first data to be rendered, and the first data to be rendered includes the difference data and the same data.
  • the data acquisition module 820 is specifically configured to decompress the compressed data to obtain the first data to be rendered.
  • the data processing device 800 also includes a display module 850 and an update module 860 .
  • the display module 850 is configured to display a first image obtained by rendering the first data to be rendered by using drawing instructions.
  • the display module 850 is configured to execute S270 in FIG. 2 , FIG. 3 , FIG. 4 or FIG. 5 .
  • the updating module 860 is used for updating the receiving record.
  • the data processing device 700 or the data processing device 800 in the embodiment of the present application may be realized by an application-specific integrated circuit (application-specific integrated circuit, ASIC), or a programmable logic device (programmable logic device, PLD).
  • the PLD can be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
  • CPLD complex programmable logical device
  • FPGA field-programmable gate array
  • GAL generic array logic
  • the data processing device 700 and its respective modules can also be software modules
  • the data processing device 800 and its respective modules can also be software modules. module.
  • the data processing device 700 or the data processing device 800 according to the embodiment of the present application may correspond to execute the method described in the embodiment of the present application, and the above-mentioned and other operations and/or The functions are respectively to realize the corresponding flow of each method in FIG. 2 , FIG. 3 , FIG. 4 or FIG. 5 , and for the sake of brevity, details are not repeated here.
  • FIG. 9 is a schematic structural diagram of a computing device 900 provided in this embodiment. As shown, computing device 900 includes processor 910 , bus 920 , memory 930 and communication interface 940 .
  • the processor 910 may be a CPU, and the processor 910 may also be other general-purpose processors, digital signal processing (digital signal processing, DSP), ASIC, FPGA or other programmable logic devices, Discrete gate or transistor logic devices, discrete hardware components, etc.
  • a general purpose processor may be a microprocessor or any conventional processor or the like.
  • the processor can also be a graphics processing unit (graphics processing unit, GPU), a neural network processor (neural network processing unit, NPU), a microprocessor, an ASIC, or one or more integrations used to control the execution of the program program of this application circuit.
  • graphics processing unit graphics processing unit, GPU
  • neural network processor neural network processing unit, NPU
  • microprocessor microprocessor
  • ASIC application specific integrated circuit
  • the communication interface 940 is used to realize communication between the computing device 900 and external devices or devices. In this embodiment, when the computing device 900 is used to implement the functions of the first computing device 110 shown in FIG. 1 , the communication interface 940 is used to send drawing instructions and indication information. When the computing device 900 is used to implement the functions of the second computing device 120 shown in FIG. 1 , the communication interface 940 is used to receive drawing instructions and indication information.
  • Bus 920 may include a path for transferring information between the components described above (eg, processor 910 and memory 930).
  • the bus 920 may also include a power bus, a control bus, a status signal bus, and the like. However, for clarity of illustration, the various buses are labeled as bus 920 in the figure.
  • computing device 900 may include multiple processors.
  • the processor may be a multi-CPU processor.
  • a processor herein may refer to one or more devices, circuits, and/or computing units for processing data (eg, computer program instructions).
  • the processor 910 may call the sending record determination indication information stored in the memory 930 .
  • the processor 910 may call the receiving record stored in the memory 930 to determine the data to be rendered.
  • the computing device 900 when used to realize the functions of the second computing device 120 shown in FIG. image.
  • the computing device 900 includes only one processor 910 and one memory 930 as an example.
  • the processor 910 and the memory 930 are respectively used to indicate a type of device or device.
  • the quantity of each type of device or equipment can be determined according to business needs.
  • the memory 930 may correspond to a storage medium for storing information such as computer instructions, data to be rendered, sending records, and receiving records in the above method embodiments, for example, a magnetic disk, such as a mechanical hard disk or a solid-state hard disk.
  • the above-mentioned computing device 900 may be a general-purpose device or a special-purpose device.
  • the computing device 900 may be a mobile phone terminal, a tablet computer, a notebook computer, a VR device, an AR device, an MR device or an ER device, a vehicle-mounted computing device, etc., or an edge device (for example, a box carrying a chip with a processing capability), etc.
  • computing device 900 may also be a server or other devices with computing capabilities.
  • the computing device 900 may correspond to the data processing device 700 or the data processing device 800 in this embodiment, and may correspond to executing any method according to FIG. 2 , FIG. 3 , FIG. 4 or FIG. 5 , and the above-mentioned and other operations and/or functions of each module in the data processing device 700 or the data processing device 800 are respectively in order to realize the corresponding flow of each method in FIG. 2 , FIG. 3 , FIG. 4 or FIG. 5 , For the sake of brevity, details are not repeated here.
  • the method steps in this embodiment may be implemented by means of hardware, and may also be implemented by means of a processor executing software instructions.
  • Software instructions can be composed of corresponding software modules, and software modules can be stored in random access memory (random access memory, RAM), flash memory, read-only memory (read-only memory, ROM), programmable read-only memory (programmable ROM) , PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically erasable programmable read-only memory (electrically EPROM, EEPROM), register, hard disk, mobile hard disk, CD-ROM or known in the art any other form of storage medium.
  • An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium.
  • the storage medium may also be a component of the processor.
  • the processor and storage medium can be located in the ASIC. Additionally, the ASIC may reside in a computing device. Of course, the processor and the storage medium can also exist in the computing device as discrete
  • all or part of them may be implemented by software, hardware, firmware or any combination thereof.
  • software When implemented using software, it may be implemented in whole or in part in the form of a computer program product.
  • the computer program product comprises one or more computer programs or instructions. When the computer program or instructions are loaded and executed on the computer, the processes or functions described in the embodiments of the present application are executed in whole or in part.
  • the computer may be a general purpose computer, a special purpose computer, a computer network, network equipment, user equipment, or other programmable devices.
  • the computer program or instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer program or instructions may be downloaded from a website, computer, A server or data center transmits to another website site, computer, server or data center by wired or wireless means.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device such as a server or a data center integrating one or more available media. Described usable medium can be magnetic medium, for example, floppy disk, hard disk, magnetic tape; It can also be optical medium, for example, digital video disc (digital video disc, DVD); It can also be semiconductor medium, for example, solid state drive (solid state drive) , SSD).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了数据处理方法、装置、计算设备和系统,涉及远程控制领域。所述方法包括第一计算设备获取第二计算设备显示第一图像所使用的第一信息,第一信息包含绘图指令,绘图指令用于渲染第一待渲染数据得到第一图像。第一计算设备确定第一待渲染数据的指示信息,向第二计算设备发送包括了绘图指令和指示信息的第二信息,使第二计算设备根据指示信息从本地获取第一待渲染数据。如此,第一计算设备利用待渲染数据的指示信息指示需要重复传输的待渲染数据,避免相同的待渲染数据重复传输,从而,减少传输绘图指令携带的待渲染数据的数据量,降低传输数据的带宽和时延,使第二计算设备能够及时获取到显示图像所需的信息来显示图像,提升用户体验。

Description

数据处理方法、装置、计算设备和系统
本申请要求于2021年08月17日提交国家知识产权局、申请号为202110943564.9、申请名称为“数据处理方法、装置、计算设备和系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及远程控制领域,尤其涉及一种数据处理方法、装置、计算设备和系统。
背景技术
云手机(Cloudphone)是一种虚拟手机,由云服务器提供云手机的服务。通常,终端上安装有云手机应用程序(application,APP)。终端运行云手机应用程序后显示云手机界面。终端可以接收用户对云手机的操作。云服务器可以通过网络接收终端发送的对云手机的操作指令。云服务器执行对云手机的操作指令,完成对云手机的操作。终端可以通过网络接收云服务器发送的绘图指令和待渲染数据。终端根据绘图指令渲染待渲染数据,使得终端显示操作结果的图像。
由于终端显示图像所需的信息(包括绘图指令和待渲染数据)的数据量较大,则传输绘图指令和待渲染数据所需的网络带宽也较高。如果网络带宽较小,导致终端无法及时接收到绘图指令和待渲染数据,造成终端显示图像画面的显示卡顿,降低用户体验。目前,云服务器可以采用通用压缩方式(如:zstd或lz4)对绘图指令和待渲染数据进行压缩,向终端传输压缩数据。但是,该通用压缩方式压缩效率较低,压缩数据的数据量依然较大,终端接收到绘图指令和待渲染数据的时延还是较长。因此,如何降低终端显示图像所需的信息的时延是一个亟待解决的问题。
发明内容
本申请提供了数据处理方法、装置、计算设备和系统,由此降低终端显示图像所需的信息的时延。
第一方面,提供了一种数据处理方法,所述方法由第一计算设备执行。所述方法包括第一计算设备获取第二计算设备显示第一图像所使用的第一信息,第一信息包含绘图指令,绘图指令用于渲染第一待渲染数据得到第一图像。第一计算设备在向第二计算设备发送绘图指令之前,第一计算设备确定第一待渲染数据的指示信息,向第二计算设备发送包含包括绘图指令和指示信息的第二信息。其中,指示信息包括第一指示或第二指示,第一指示用于标识第一计算设备在先发送给第二计算设备的第一待渲染数据,第二指示用于标识第一计算设备当前发送给第二计算设备的第一待渲染数据的压缩数据。
如此,第一计算设备利用待渲染数据的指示信息指示需要重复传输的待渲染数据,避免相同的待渲染数据重复传输,从而,减少传输绘图指令携带的待渲染数据的数据量,降低传输数据的带宽和时延,使第二计算设备能够及时获取到显示图像所需的信息来显示图像,提升用户体验。
在一种可能的实现方式中,确定第一待渲染数据的指示信息包括:第一计算设备根据发送记录确定指示信息,发送记录用于指示第一计算设备向第二计算设备已发送的待渲染数据。从而,使得第一计算设备利用发送记录判断待发送的待渲染数据是否已经传输过,若待发送的待渲染数据是已经传输过,确定待渲染数据的指示信息,避免相同的待渲染数据重复传输,从而,减少传输绘图指令携带的待渲染数据的数据量。
示例地,确定第一待渲染数据的指示信息包括:第一计算设备获取第一待渲染数据的标识,根据第一待渲染数据的标识和发送记录包含的待渲染数据的标识进行比较,确定指示信息。
第一计算设备可以根据发送记录确定第一计算设备在先已经向第二计算设备发送了第一待渲染数据,或者第一计算设备确定在先未向第二计算设备发送第一待渲染数据。针对不同的场景,指示信息可以包含不同的内容。
示例一,根据第一待渲染数据的标识和发送记录包含的待渲染数据的标识进行比较,确定指示信息包括:若发送记录包括第一待渲染数据的标识,第一计算设备将第一待渲染数据的标识携带在指示信息中。从而,第一计算设备对需要重复传输的待渲染数据进行映射处理,在向第二计算设备发送的指示信息中携带第一待渲染数据的标识,避免相同的待渲染数据进行重复传输,则减少传输绘图指令携带的待渲染数据的数据量,降低传输第二计算设备显示图像所需的信息的带宽和时延,使第二计算设备能够及时获取到显示图像所需的信息来显示图像,提升用户体验。
示例二,根据第一待渲染数据的标识和发送记录包含的待渲染数据的标识进行比较,确定指示信息包括:若发送记录不包括第一待渲染数据的标识,第一计算设备根据发送记录中包括的第二待渲染数据的标识,确定第一待渲染数据和第二待渲染数据的差异数据,将第二待渲染数据的标识和差异数据携带在指示信息中。从而,第一计算设备对需要重复传输的待渲染数据进行去重处理,在向第二计算设备发送的指示信息中携带第二待渲染数据的标识和差异数据,避免相同的待渲染数据进行重复传输,则减少传输绘图指令携带的待渲染数据的数据量,降低传输第二计算设备显示图像所需的信息的带宽和时延,使第二计算设备能够及时获取到显示图像所需的信息来显示图像,提升用户体验。
示例三,根据第一待渲染数据的标识和发送记录包含的待渲染数据的标识进行比较,确定指示信息包括:若发送记录不包括第一待渲染数据的标识,第一计算设备压缩第一待渲染数据得到压缩数据,将压缩数据携带在指示信息中。从而,对于未传输过的第一待渲染数据,对第一待渲染进行压缩处理,向第二计算设备传输第一待渲染数据的压缩数据,减少传输绘图指令携带的待渲染数据的数据量,降低传输第二计算设备显示图像所需的信息的带宽和时延,使第二计算设备能够及时获取到显示图像所需的信息来显示图像,提升用户体验。
在另一种可能的实现方式中,向第二计算设备发送第二信息之后,方法还包括:第一计算设备更新发送记录,发送记录包含第一待渲染数据的标识。从而,以便于第一计算设备再次发送第一待渲染数据时,可以根据发送记录包含的第一待渲染数据的标识确定已经向第二计算设备发送了第一待渲染数据,避免重复发送。
其中,第一待渲染数据包括纹理数据和顶点数据中至少一个。
在另一种可能的实现方式中,获取第一信息包括:第一计算设备接收第二计算设备发送的操作指示,根据操作指示获取第一信息。例如,操作指示用于指示对第二计算设备运行的云应用的操作。
在另一种可能的实现方式中,向第二计算设备发送第二信息之后,方法还包括:第一计算设备根据老化规则删除发送记录指示的待渲染数据,向第二计算设备发送删除指示。老化规则用于限制发送记录指示的待渲染数据的数量。删除指示用于指示第二计算设备待删除的待渲染数据。从而,避免第一计算设备无限量地缓存数据,浪费存储器的存储空间。
第二方面,提供了一种数据处理方法,所述方法由第二计算设备执行。所述方法包括第二计算设备接收第一计算设备发送的包括绘图指令和指示信息的第二信息,根据指示信息获取第一待渲染数据,根据绘图指令渲染第一待渲染数据得到第一图像;显示第一图像。其中,第二信息用于指示第二计算设备显示第一图像。指示信息包括第一指示或第二指示,第一指示用于标识第一计算设备在先发送给第二计算设备的第一待渲染数据,第二指示用于标识第一计算设备当前发送给第二计算设备的第一待渲染数据的压缩数据。
如此,第二计算设备根据待渲染数据的指示信息从本地获取待渲染数据,避免相同的待渲染数据重复传输,从而,减少传输绘图指令携带的待渲染数据的数据量,降低传输数据的带宽和时延,使第二计算设备能够及时获取到显示图像所需的信息来显示图像,提升用户体验。
示例一,若指示信息包括第一待渲染数据的标识,根据指示信息获取第一待渲染数据包括:第二计算设备根据第一待渲染数据的标识和接收记录获取第一待渲染数据,接收记录用于指示第二计算设备已接收第一计算设备在先发送的待渲染数据。如此,在第二计算设备存储已接收到的待渲染数据,避免相同的待渲染数据进行重复传输,则减少传输绘图指令携带的待渲染数据的数据量,降低传输第二计算设备显示图像所需的信息的带宽和时延,使第二计算设备从本地尽可能快地获取显示图像所需的信息来显示图像,提升用户体验。
示例二,若指示信息包括第二待渲染数据的标识和第二待渲染数据的差异数据,根据指示信息获取第一待渲染数据包括:第二计算设备根据第二待渲染数据的标识和接收记录获取第二待渲染数据;根据第二待渲染数据和第一待渲染数据的相同数据,以及差异数据得到第一待渲染数据,第一待渲染数据包括差异数据和相同数据。如此,第二计算设备根据差异数据从本地获取第一待渲染数据,使第二计算设备从本地尽可能快地获取显示图像所需的信息来显示图像,提升用户体验。
示例三,若指示信息包括压缩数据,根据指示信息获取第一待渲染数据包括:第二计算设备解压压缩数据得到第一待渲染数据。
在一种可能的实现方式中,第二计算设备更新接收记录,接收记录包括第一待渲染数据和第一待渲染数据的标识。从而,以便于第二计算设备再次接收到第一待渲染数据的标识时,可以根据第一待渲染数据的标识查询接收记录确定已经接收到了第一待渲染数据,从而本地获取第一待渲染数据。
在另一种可能的实现方式中,显示第一图像之后,方法还包括:第二计算设备接 收第一计算设备发送的删除指示,依据删除指示删除存储的待渲染数据。删除指示用于指示第二计算设备待删除的待渲染数据。从而,避免第二计算设备无限量地缓存数据,浪费存储器的存储空间。
第三方面,提供了一种数据处理装置,所述装置包括用于执行第一方面或第一方面任一种可能设计中的数据处理方法的各个模块;或者,执行第二方面或第二方面任一种可能设计中的数据处理方法的各个模块。
第四方面,提供一种计算设备,该计算设备包括至少一个处理器和存储器,存储器用于存储一组计算机指令;当处理器作为第一方面或第一方面任一种可能实现方式中的执行设备执行所述一组计算机指令时,执行第一方面或第一方面任一种可能实现方式中的数据处理方法的操作步骤。
第五方面,提供一种计算设备,该计算设备包括至少一个处理器、存储器和显示器,存储器用于存储一组计算机指令;当处理器作为第二方面或第二方面任一种可能实现方式中的执行设备执行所述一组计算机指令时,执行第二方面或第二方面任一种可能实现方式中的数据处理方法的操作步骤,使得显示器显示图像。
第六方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算设备中运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤,或者,执行如第二方面或第二方面任意一种可能的实现方式中所述方法的操作步骤。
第七方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤,或者,执行如第二方面或第二方面任意一种可能的实现方式中所述方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种系统的结构示意图;
图2为本申请提供的一种数据处理方法的流程图;
图3为本申请提供的另一种数据处理方法的流程图;
图4为本申请提供的另一种数据处理方法的流程图;
图5为本申请提供的另一种数据处理方法的流程图;
图6为本申请提供的一种显示图像的过程示意图;
图7为本申请提供的一种数据处理装置的结构示意图;
图8为本申请提供的另一种数据处理装置的结构示意图;
图9为本申请提供的一种计算设备的结构示意图。
具体实施方式
本申请实施例提供的数据处理方法主要应用于基于绘图指令(Graphic API)的远程显示图像场景,即第一计算设备(如:服务器)向第二计算设备(如:终端)发送携带待渲染数据的绘图指令,以使第二计算设备根据绘图指令渲染待渲染数据后,显示待渲染数据描述的图像。例如,终端显示云游戏的游戏场景和游戏人物等。又如, 终端接收用户对云手机的操作后,显示操作结果的图像。又如,远程桌面场景下,第二计算机远程控制第一计算机,第二计算机显示第一计算机的界面。
渲染是指计算机根据绘图指令和待渲染数据生成图像的过程。例如,在游戏开发中,对游戏场景和游戏人物的渲染。又如,在音视频开发中,对视频编码后数据渲染,实现滤镜效果。
待渲染数据例如包括物体的几何数据、顶点数据、纹理数据和照明数据等。待渲染数据包括用计算机语言或数据结构对物体的描述信息。
绘图指令包括开放图形库(Open Graphics Library,OpenGL)、开放图形库嵌入系统(OpenGL for Embedded Systems,OpenGL ES)、跨平台的2D和3D绘图应用程序接口(Vulkan)、Windows多媒体编程接口(Direct eXtension,DirectX)和iOS渲染应用程序编程接口(Metal)。
OpenGL是用于渲染2D或3D矢量图形的跨平台、跨语言的渲染应用程序编程接口。通过将计算机资源抽象为OpenGL对象,并通过OpenGL指令操纵OpenGL对象,实现从简单的二维图形到复杂的三维图像。
OpenGL ES是OpenGL的子集。主要针对智能终端(如:手机),平板电脑,游戏主机设计。例如,OpenGL ES不包含开始/结束(glBegin/glEnd)指令、四边形(GL_QUADS)指令和多边形(GL_POLYGONS)指令等复杂图元指令。
示例地,图1为本申请实施例提供的一种系统的结构示意图。如图1所示,该系统包括第一计算设备110和第二计算设备120。第一计算设备110和第二计算设备120通过网络130进行数据传输。第一计算设备110可以是一个物理设备,例如第一计算设备110可以是云端设备或端侧设备。第一计算设备110还可以是一个物理设备上的虚拟机(virtual machine,VM)。第二计算设备120可以是手机终端、平板电脑、笔记本电脑、虚拟现实(virtual reality,VR)设备、增强现实(Augmented Reality,AR)设备、混合现实(Mixed Reality,MR)设备、扩展现实(Extended Reality,ER)设备或车载终端等。网络130可以是指互联网络。
第一计算设备110和第二计算设备120都预设有绘图指令库112,拥有能执行绘图指令的能力,并且通过传输绘图指令来实现远程显示图像。
第一计算设备110还包括应用程序111和通信接口113。第一计算设备110运行应用程序111后,可以调用绘图指令库112中的绘图指令,通过通信接口113向第二计算设备120发送绘图指令和待选渲染数据。
第二计算设备120通过通信接口122接收绘图指令和待选渲染数据,将绘图指令和待选渲染数据传输给显卡123,显卡123利用绘图指令渲染待渲染数据得到显示的图像,即第一计算设备110运行应用程序111的运行结果。第二计算设备120还可以包括应用程序121。
在一种示例中,第一计算设备110和第二计算设备120可以是支持云手机运行的设备。第一计算设备110是用于管理云手机的服务器。第二计算设备120是安装云手机应用程序(如:应用程序121)的终端。
云手机可以安装与实体手机相同的应用程序(例如,游戏客户端)。第一计算设备110运行的应用程序111可以是云手机安装的应用程序,应用程序111例如是游戏 程序。用户可以与操作实体手机相同的方式操作云手机,例如用户对第二计算设备120的云手机上的游戏界面进行了操作。第一计算设备110接收第二计算设备120发送的操作指令,第一计算设备110运行操作指令得到操作结果。第一计算设备110通过通信接口113向第二计算设备120发送携带待渲染数据的绘图指令。第二计算设备120通过通信接口122接收携带待渲染数据的绘图指令,利用绘图指令渲染待渲染数据显示操作结果图像。
在另一种示例中,第一计算设备110是运行云游戏的服务器。第二计算设备120是安装云游戏应用程序(如:应用程序121)的终端。用户对第二计算设备120显示的云游戏界面进行了操作后,第二计算设备120通过通信接口122接收第一计算设备110发送的携带待渲染数据的绘图指令,利用绘图指令渲染待渲染数据显示操作结果图像。
但是,由于终端显示图像所需的信息(包括绘图指令和待渲染数据)的数据量较大,如果网络带宽较小,传输显示图像所需的信息的时延较长,可能导致终端无法及时接收到绘图指令和待渲染数据,造成终端显示图像画面的显示卡顿,降低用户体验。在终端显示游戏界面(例如,云游戏)的场景下,终端基于绘图指令流显示动态变化的游戏界面场景下,显示卡顿现象尤为明显。本申请实施例提供的数据处理方法对需要重复传输的待渲染数据进行处理,避免相同的待渲染数据重复传输,从而,减少传输绘图指令携带的待渲染数据的数据量,降低传输终端显示图像所需的信息的带宽和时延,使终端能够及时获取到显示图像所需的信息来显示图像,提升用户体验。
接下来,结合图2至图6,对本申请实施例提供的数据处理方法进行详细说明。在这里以第一计算设备用于提供远程显示图像所需的绘图指令的服务器,第二计算设备用于利用服务器提供的绘图指令显示图像的终端为例进行说明。图2为本申请实施例提供的一种数据处理方法流程图。如图2所示,该方法可以包括以下步骤。
S210、第一计算设备获取第一信息。
第一信息用于指示第二计算设备显示第一图像。第一信息包含绘图指令,绘图指令用于渲染第一待渲染数据得到第一图像。
在一种可能的示例中,第一计算设备可以主动获取第一信息,向第二计算设备推送第一信息,使第二计算设备显示主动推送的第一图像。
在另一种可能的示例中,第一计算设备接收第二计算设备发送的操作指示后,根据操作指示被动地获取第一信息。
S220、第一计算设备确定第一待渲染数据的指示信息。
第一计算设备向第二计算设备发送了待渲染数据后,将待渲染数据的相关信息存储于第一计算设备的主存中。例如,第一计算设备的主存存储有发送记录。发送记录用于指示第一计算设备向第二计算设备已发送的待渲染数据。例如,发送记录包含了待渲染数据标识。待渲染数据标识用于唯一标识待渲染数据。不同的待渲染数据标识指示了第一计算设备向第二计算设备发送的不同的待渲染数据。待渲染数据标识可以是第一计算设备对待渲染数据进行哈希运算得到。
第一计算设备可以根据发送记录确定第一待渲染数据的指示信息。第一计算设备采用指示信息通知第二计算设备,第一待渲染数据是否在先已经传输过,以便于第二 计算设备根据指示信息获取第一待渲染数据。比如,指示信息包括第一指示或第二指示。第一指示用于标识第一计算设备在先发送给第二计算设备的第一待渲染数据。可理解的,第一计算设备在先已经向第二计算设备发送了第一待渲染数据或第一待渲染数据的部分数据。第二指示用于标识第一计算设备当前发送给第二计算设备的第一待渲染数据的压缩数据。可理解的,第一计算设备在先未向第二计算设备发送第一待渲染数据,第一计算设备向第二计算设备首次发送第一待渲染数据。
在一些实施例中,可以采用两个比特表示指示信息。例如,两个比特的取值为“00”,表示第一计算设备在先未向第二计算设备发送第一待渲染数据。两个比特的取值为“01”,表示第一计算设备在先已经向第二计算设备发送了第一待渲染数据。两个比特的取值为“10”,表示第一计算设备在先已经向第二计算设备发送了第一待渲染数据的部分数据。
图3所述的方法流程是对图2中S220所包括的具体操作过程的阐述。
S221、第一计算设备获取第一待渲染数据的标识。
第一待渲染数据的标识用于唯一标识第一待渲染数据。第一计算设备可以对第一待渲染数据进行哈希运算,得到第一待渲染数据的标识。第一计算设备也可以采用md5算法或sha256算法对第一待渲染数据进行运算,得到第一待渲染数据的标识。第一计算设备也可以根据预设规则获取第一待渲染数据中的部分数据,将该部分数据作为第一待渲染数据的标识。例如,预设规则可以是指待渲染数据中第一位至第N位的比特位,第一计算设备根据待渲染数据中第一位至第N位的比特位生成第一待渲染数据的标识。又如,预设规则可以是指待渲染数据中顶点数据或纹理数据,第一计算设备根据待渲染数据中顶点数据或纹理数据生成第一待渲染数据的标识。
S222、第一计算设备判断发送记录是否包含第一待渲染数据的标识。
第一计算设备根据第一待渲染数据的标识和发送记录包含的待渲染数据的标识进行比较,判断发送记录是否包含第一待渲染数据的标识,确定指示信息。
若发送记录包含第一待渲染数据的标识,表示第一计算设备已经向第二计算设备发送了第一待渲染数据,执行S223。
若发送记录不包含第一待渲染数据的标识,表示第一计算设备未向第二计算设备发送第一待渲染数据,执行S224。
可选地,若发送记录不包含第一待渲染数据的标识,第一计算设备还可以确定与已发送的待渲染数据的差异数据,向第二计算设备传输的差异数据,执行S225。例如,在云游戏场景中,两帧画面中的背景一样,只是人物的位置不同,则两帧画面中的待渲染数据中的差异数据可以是人物的位置坐标。
S223、第一计算设备将第一待渲染数据的标识携带在指示信息中。
从而,第一计算设备对需要重复传输的待渲染数据进行映射处理,在向第二计算设备发送的指示信息中携带第一待渲染数据的标识,避免相同的待渲染数据进行重复传输,则减少传输绘图指令携带的待渲染数据的数据量,降低传输第二计算设备显示图像所需的信息的带宽和时延,使第二计算设备能够及时获取到显示图像所需的信息来显示图像,提升用户体验。
S224、第一计算设备压缩第一待渲染数据得到第一待渲染数据的压缩数据,将第 一待渲染数据的压缩数据携带在指示信息中。
第一计算设备可以采用zstd或jpeg压缩算法压缩第一待渲染数据得到第一待渲染数据的压缩数据。
从而,对于未传输过的第一待渲染数据,对第一待渲染进行压缩处理,向第二计算设备传输第一待渲染数据的压缩数据,减少传输绘图指令携带的待渲染数据的数据量,降低传输第二计算设备显示图像所需的信息的带宽和时延,使第二计算设备能够及时获取到显示图像所需的信息来显示图像,提升用户体验。
S225、第一计算设备根据发送记录中包括的第二待渲染数据的标识,确定第一待渲染数据和第二待渲染数据的差异数据,将差异数据和第二待渲染数据的标识携带在指示信息中。
第一计算设备可以根据至少一帧已发送的待渲染数据与第一待渲染数据确定方差,方差表示两帧待渲染数据的差异大小,根据第一待渲染数据和与第一待渲染数据的方差最小的待渲染数据获取差异数据。差异数据包括待渲染数据中的顶点数据和纹理数据中至少一种。
第二待渲染数据可以是当前待发送的第一待渲染数据在先已经发送的数据。在发送记录记载的待渲染数据表示的图像中,第二待渲染数据表示的图像可以是与第一待渲染数据表示的图像最相似的图像。第一计算设备可以确定第一待渲染数据中与所述第二待渲染数据不同的差异数据。例如,云游戏场景中,游戏界面中背景环境图像不变,游戏人物图像变化,差异数据可以是指变化的游戏人物的渲染数据。
例如,发送记录包含了待渲染数据标识与待渲染数据的存储地址的对应关系。以便于第一计算设备根据待渲染数据标识获取待渲染数据的存储地址,依据待渲染数据的存储地址获取第一待渲染数据,确定第一待渲染数据和第二待渲染数据的差异数据。
从而,第一计算设备对需要重复传输的待渲染数据进行去重处理,在向第二计算设备发送的指示信息中携带第二待渲染数据的标识和差异数据,避免相同的待渲染数据进行重复传输,则减少传输绘图指令携带的待渲染数据的数据量,降低传输第二计算设备显示图像所需的信息的带宽和时延,使第二计算设备能够及时获取到显示图像所需的信息来显示图像,提升用户体验。
第一计算设备执行S224和S225之后,还可以执行S226。S226、第一计算设备更新发送记录,发送记录包含第一待渲染数据的标识。
第一计算设备可以将第一待渲染数据的标识、第一待渲染数据和第一待渲染数据的大小存储于主存。
从而,以便于第一计算设备再次发送第一待渲染数据时,可以根据第一待渲染数据的标识确定已经向第二计算设备发送了第一待渲染数据,避免重复发送。
需要说明的是,远程显示图像所传输的待渲染数据包含大量的纹理数据和顶点数据。由于绘图指令流中不同绘图指令携带的待渲染数据中的纹理数据和顶点数据变化较小,则纹理数据和顶点数据存在重复传输的现象。本申请实施例提供的数据处理方法,通过对待渲染数据进行映射处理或者去重处理,相同的待渲染数据只需要传输一次,再次传输时只需要传输待渲染数据的标识或与其他待渲染数据的差异数据,进而减少了传输的数据量,降低对网络带宽的要求。可理解的,第一待渲染数据包括纹理 数据和顶点数据中至少一个。
计算机图形学中的纹理既包括通常意义上物体表面的纹理即使物体表面呈现凹凸不平的沟纹,也包括在物体的光滑表面上的彩色图案(也可以称为花纹)。对于花纹而言,在物体表面绘出彩色花纹或图案,产生了纹理后的物体表面依然光滑如故。对于沟纹而言,在表面绘出彩色花纹或图案,也要求视觉上给人以凹凸不平感。纹理数据包括表示沟纹数据和花纹数据。顶点数据可以是指图形坐标的集合。
S230、第一计算设备向第二计算设备发送第二信息,第二信息包括绘图指令和指示信息。
第一计算设备可以通过网络向第二计算设备传输第二信息。第二信息用于指示第二计算设备显示第一图像。
S240、第二计算设备接收第一计算设备发送的第二信息。
S250、第二计算设备根据指示信息获取第一待渲染数据。
第二计算设备接收第一计算设备发送的待渲染数据和待渲染数据标识后,将待渲染数据和待渲染数据标识存储于第二计算设备的主存中。例如,第二计算设备的主存存储有接收记录。接收记录用于指示第二计算设备已接收第一计算设备在先发送的待渲染数据。例如,接收记录包含了待渲染数据标识和待渲染数据的对应关系。又如,接收记录包含了待渲染数据标识和待渲染数据的存储位置的对应关系,以便于第二计算设备依据待渲染数据标识和待渲染数据的存储位置的对应关系,从本地获取待渲染数据。不同的待渲染数据标识指示了第二计算设备已接收第一计算设备在先发送的不同的待渲染数据。
第二计算设备接收到第一计算设备发送的第二信息,可以根据第二信息包括的指示信息获取第一待渲染数据,根据绘图指令渲染第一待渲染数据得到第一图像。第二信息包括绘图指令和指示信息。指示信息包括第一指示或第二指示。第一指示用于标识第一计算设备在先发送给第二计算设备的第一待渲染数据。第二指示用于标识第一计算设备当前发送给第二计算设备的第一待渲染数据的压缩数据。关于第一指示和第二指示的具体解释可以参考上述S220的阐述。
图4所述的方法流程是对图2中S250所包括的具体操作过程的阐述。
在第一种示例中,若指示信息包括第一待渲染数据的标识,执行S251。
S251、第二计算设备根据第一待渲染数据的标识和接收记录获取第一待渲染数据。
第二计算设备根据指示信息包含的第一待渲染数据的标识和接收记录包含的待渲染数据的标识进行比较,获取接收记录中与第一待渲染数据的标识相同的待渲染数据的标识对应的待渲染数据。若接收记录包含第一待渲染数据的标识和第一待渲染数据,表示第二计算设备在先已经接收到了第一待渲染数据,第二计算设备命中缓存,可以从主存中获取第一待渲染数据。如此,在第二计算设备存储已接收到的待渲染数据,避免相同的待渲染数据进行重复传输,则减少传输绘图指令携带的待渲染数据的数据量,降低传输第二计算设备显示图像所需的信息的带宽和时延,使第二计算设备从本地尽可能快地获取显示图像所需的信息来显示图像,提升用户体验。
在第二种示例中,若指示信息包括第一待渲染数据和第二待渲染数据的差异数据,以及第二待渲染数据的标识,执行S252和S253。
S252、第二计算设备根据第二待渲染数据的标识和接收记录获取第二待渲染数据。
第二计算设备根据指示信息包含的第二待渲染数据的标识和接收记录包含的待渲染数据的标识进行比较,获取接收记录中与第二待渲染数据的标识相同的待渲染数据的标识对应的待渲染数据。若接收记录包含第二待渲染数据的标识和第二待渲染数据,表示第二计算设备在先已经接收到了第二待渲染数据,第二计算设备命中缓存,可以从主存中获取第二待渲染数据。
S253、第二计算设备根据第二待渲染数据和第一待渲染数据的相同数据,以及差异数据得到第一待渲染数据,第一待渲染数据包括差异数据和相同数据。
第二计算设备从第二待渲染数据中获取与差异数据不同的数据,即获取第二待渲染数据与第一待渲染数据的相同数据,将相同数据和差异数据组合得到第一待渲染数据。
在第三种示例中,若指示信息包括压缩数据,执行S254。
S254、第二计算设备解压压缩数据得到第一待渲染数据。
第二计算设备可以利用zstd或jpeg压缩算法解压压缩数据得到第一待渲染数据。
需要说明的是,若指示信息不包括第一待渲染数据的标识,表示第二计算设备在先未接收到第一待渲染数据,第二计算设备依据S253或S254阐述的方法获取到第一待渲染数据后,执行S255。
S255、第二计算设备更新接收记录,接收记录包括第一待渲染数据和第一待渲染数据的标识。
从而,以便于第二计算设备再次接收到第一待渲染数据的标识时,可以根据第一待渲染数据的标识确定已经接收到了第一待渲染数据,从而本地获取第一待渲染数据。
S260、第二计算设备根据绘图指令渲染第一待渲染数据得到第一图像。
绘图指令可以包括glTexImage2D、glTexSubImage2D、glTexImage3D、glTexSubImage3D和glBufferData。
glTexImage2D、glTexSubImage2D、glTexImage3D和glTexSubImage3D均用于在图形上贴纹理。glBufferData用于渲染图形的顶点。
第二计算设备根据绘图指令渲染第一待渲染数据得到第一图像的过程中,绘图指令不仅包含处理顶点数据和纹理数据的指令,绘图指令还可以包含其他一些指令,例如对顶点着色器、片段着色器、帧缓冲的设置和处理的绘图指令等。
比如,OpenGL指令渲染显示图像需要很多条指令执行,根据绘图指令渲染待渲染数据是一个状态叠加的过程。
S270、第二计算设备显示第一图像。
本申请实施例提供的数据处理方法,第一计算设备对待渲染数据进行映射处理或去重处理,传输处理后的数据,避免相同的待渲染数据的重复传输,从而减少了待渲染数据的流量消耗,降低了对网络带宽的要求,使第二计算设备能够及时获取到显示图像所需的信息来显示图像,提升用户体验。
可选地,第一计算设备还可以对绘图指令和指示信息进行压缩,得到第二信息。第二计算设备先对第二信息进行解压,得到绘图指令和指示信息。进而,第二计算设备根据指示信息获取第一待渲染数据,根据绘图指令渲染第一待渲染数据得到第一图 像,显示第一图像。从而,进一步地减少待渲染数据的数据量和流量消耗,降低了对网络带宽的要求。
在另一些实施例中,为了避免缓存过多的待渲染数据,可以采用老化机制清理待渲染数据。如图5所示,在S210~S270之后,本申请实施例还包括以下步骤。
S510、第一计算设备根据老化规则删除发送记录指示的待渲染数据。
老化规则用于限制发送记录指示的待渲染数据的数量。第一计算设备可以根据老化规则指示的阈值清除发送记录指示的待渲染数据。阈值可以是与数据量相关的数值或与时间相关的数值。
例如,第一计算设备向第二计算设备发送待渲染数据后,可以记录待渲染数据的大小。第一计算设备存储的待渲染数据的数据量大于预设数据量时,第一计算设备删除大于预设数据量的待渲染数据和待渲染数据标识。示例地,第一计算设备可以删除最早发出的待渲染数据和该待渲染数据的标识。
又如,第一计算设备向第二计算设备发送待渲染数据后,可以记录发送该待渲染数据的时间。当第一计算设备存储的待渲染数据的时长大于预设时长时,第一计算设备删除大于预设时长的待渲染数据和待渲染数据标识。
S520、第一计算设备向第二计算设备发送删除指示,删除指示用于指示第二计算设备待删除的待渲染数据。
删除指示可以包括待渲染数据的标识。
S530、第二计算设备接收第一计算设备发送的删除指示。
S540、第二计算设备依据删除指示删除存储的待渲染数据。
第二计算设备依据删除指示包含的待渲染数据的标识查询接收记录,删除待渲染数据的标识和待渲染数据的标识指示的待渲染数据。从而,避免第一计算设备和第二计算设备无限量地缓存数据,浪费存储器的存储空间。
下面举例说明本申请实施例提供的远程显示图像的过程。例如,如图6中的(a)所示,在云游戏场景下,服务器610主动获取绘图指令和第一待渲染数据,第一待渲染数据用于描述游戏人物选择图像,即第一图像可以是游戏人物选择场景图像。服务器610向终端620发送绘图指令和第一待渲染数据的指示信息,终端620根据第一待渲染数据的指示信息获取第一待渲染数据,以及根据绘图指令渲染第一待渲染数据得到游戏人物选择图像,终端620显示游戏人物选择界面621。
例如,如图6中的(b)所示,在云手机场景下,终端620的显示屏上显示有云手机APP图标622,用户可以点击云手机APP图标622,终端620响应于点击操作,终端620运行云手机应用程序,向服务器610发送操作指示。终端620接收服务器610发送的绘图指令和第一待渲染数据的指示信息,第一待渲染数据用于描述云手机APP的用户界面图像,即第一图像可以是云手机APP的用户界面图像。终端620根据第一待渲染数据的指示信息获取第一待渲染数据,以及根据绘图指令渲染第一待渲染数据得到云手机APP的用户界面图像,终端620显示云手机APP的用户界面623。
可以理解的是,为了实现上述实施例中的功能,计算设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件 相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
上文中结合图1至图6,详细描述了根据本实施例所提供的数据处理方法,下面将结合图7和图8,描述根据本实施例所提供的数据处理装置。
图7为本实施例提供的可能的数据处理装置的结构示意图。这些数据处理装置可以用于实现上述方法实施例中第一计算设备的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该数据处理装置可以是如图1所示的第一计算设备110,还可以是应用于服务器的模块(如芯片)。
如图7所示,数据处理装置700包括通信模块710、数据处理模块720、数据获取模块730和存储模块740。数据处理装置700用于实现上述图2、图3、图4或图5中所示的方法实施例中第一计算设备的功能。
数据获取模块730用于获取第一信息,所述第一信息用于指示第二计算设备显示第一图像,所述第一信息包含绘图指令,所述绘图指令用于渲染第一待渲染数据得到所述第一图像。例如,数据获取模块730用于执行图2、图3、图4或图5中S210。
数据处理模块720用于确定所述第一待渲染数据的指示信息,所述指示信息包括第一指示或第二指示,所述第一指示用于标识所述第一计算设备在先发送给所述第二计算设备的所述第一待渲染数据,所述第二指示用于标识所述第一计算设备当前发送给所述第二计算设备的所述第一待渲染数据的压缩数据。例如,数据处理模块720用于执行图2、图3、图4或图5中S220。可选地,数据处理模块720还可以执行图5中S510。
通信模块710用于向所述第二计算设备发送第二信息,所述第二信息包括所述绘图指令和所述指示信息。例如,通信模块710用于执行图2、图3、图4或图5中S230。可选地,通信模块710还可以执行图5中S520。
存储模块740用于存储绘图指令集、发送记录和待渲染数据,以便于数据获取模块730获取渲染待渲染数据所需的绘图指令。
数据处理模块720具体用于根据发送记录确定所述指示信息,所述发送记录用于指示所述第一计算设备向所述第二计算设备已发送的待渲染数据。
例如,数据处理模块720获取所述第一待渲染数据的标识;根据所述第一待渲染数据的标识和所述发送记录包含的待渲染数据的标识进行比较,确定所述指示信息。
数据处理模块720具体用于若所述发送记录包括所述第一待渲染数据的标识,将所述第一待渲染数据的标识携带在所述指示信息中。
数据处理模块720具体用于若所述发送记录不包括所述第一待渲染数据的标识,根据所述发送记录中包括的第二待渲染数据的标识,确定所述第一待渲染数据和第二待渲染数据的差异数据,将所述第二待渲染数据的标识和所述差异数据携带在所述指示信息中。
数据处理模块720具体用于若所述发送记录不包括所述第一待渲染数据的标识,压缩所述第一待渲染数据得到所述压缩数据,将所述压缩数据携带在所述指示信息中。
数据处理装置700还包括更新模块750。更新模块750用于更新发送记录。
图8为本实施例提供的可能的数据处理装置的结构示意图。这些数据处理装置可 以用于实现上述方法实施例中第二计算设备的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该数据处理装置可以是如图1所示的第二计算设备120,还可以是应用于服务器的模块(如芯片)。
如图8所示,数据处理装置800包括通信模块810、数据获取模块820、渲染模块830和存储模块840。数据处理装置800用于实现上述图2、图3、图4或图5中所示的方法实施例中第二计算设备的功能。
通信模块810用于接收第一计算设备发送的第二信息,所述第二信息包括所述绘图指令和所述指示信息,所述第二信息用于指示所述第二计算设备显示第一图像,所述第二信息包括绘图指令和指示信息,所述指示信息包括第一指示或第二指示,所述第一指示用于标识所述第一计算设备在先发送给所述第二计算设备的第一待渲染数据,所述第二指示用于标识所述第一计算设备当前发送给所述第二计算设备的所述第一待渲染数据的压缩数据。例如,通信模块810用于执行图2、图3、图4或图5中S240。可选地,通信模块810还可以执行图5中S530。
数据获取模块820用于根据所述指示信息获取所述第一待渲染数据。例如,数据获取模块820用于执行图2、图3、图4或图5中S250。可选地,数据获取模块820还可以执行图5中S540。
渲染模块830用于根据所述绘图指令渲染所述第一待渲染数据得到所述第一图像。例如,渲染模块830用于执行图2、图3、图4或图5中S260。
存储模块840用于存储绘图指令集、接收记录和待渲染数据,以便于数据获取模块820根据所述指示信息获取所述第一待渲染数据。
数据获取模块820具体用于根据所述第一待渲染数据的标识和接收记录获取所述第一待渲染数据,所述接收记录用于指示所述第二计算设备已接收所述第一计算设备在先发送的待渲染数据。
数据获取模块820具体用于根据所述第二待渲染数据的标识和接收记录获取所述第二待渲染数据;根据所述第二待渲染数据和所述第一待渲染数据的相同数据,以及所述差异数据得到所述第一待渲染数据,所述第一待渲染数据包括所述差异数据和所述相同数据。
数据获取模块820具体用于解压所述压缩数据得到所述第一待渲染数据。
数据处理装置800还包括显示模块850和更新模块860。
显示模块850用于显示利用绘图指令渲染第一待渲染数据得到的第一图像。例如,显示模块850用于执行图2、图3、图4或图5中S270。
更新模块860用于更新接收记录。
应理解的是,本申请实施例的数据处理装置700或数据处理装置800可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图2、图3、图4或图5所示的数据处理方法时,数据处理装置700及其各个模块也可以为软件模块,数据处理装置800及其各个模块也可以为软件模块。
根据本申请实施例的数据处理装置700或数据处理装置800可对应于执行本申请实施例中描述的方法,并且数据处理装置700或数据处理装置800中的各个单元的上述和其它操作和/或功能分别为了实现图2、图3、图4或图5中的各个方法的相应流程,为了简洁,在此不再赘述。
图9为本实施例提供的一种计算设备900的结构示意图。如图所示,计算设备900包括处理器910、总线920、存储器930和通信接口940。
应理解,在本实施例中,处理器910可以是CPU,该处理器910还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
处理器还可以是图形处理器(graphics processing unit,GPU)、神经网络处理器(neural network processing unit,NPU)、微处理器、ASIC、或一个或多个用于控制本申请方案程序执行的集成电路。
通信接口940用于实现计算设备900与外部设备或器件的通信。在本实施例中,计算设备900用于实现图1所示的第一计算设备110的功能时,通信接口940用于发送绘图指令和指示信息。计算设备900用于实现图1所示的第二计算设备120的功能时,通信接口940用于接收绘图指令和指示信息。
总线920可以包括一通路,用于在上述组件(如处理器910和存储器930)之间传送信息。总线920除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线920。
作为一个示例,计算设备900可以包括多个处理器。处理器可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的计算单元。在本实施例中,计算设备900用于实现图1所示的第一计算设备110的功能时,处理器910可以调用存储器930存储的发送记录确定指示信息。计算设备900用于实现图1所示的第二计算设备120的功能时,处理器910可以调用存储器930存储的接收记录确定待渲染数据。
可选地,计算设备900用于实现图1所示的第二计算设备120的功能时,计算设备900还包括显示器950,显示器950用于显示利用绘图指令渲染第一待渲染数据得到的第一图像。
值得说明的是,图9中仅以计算设备900包括1个处理器910和1个存储器930为例,此处,处理器910和存储器930分别用于指示一类器件或设备,具体实施例中,可以根据业务需求确定每种类型的器件或设备的数量。
存储器930可以对应上述方法实施例中用于存储计算机指令、待渲染数据、发送记录、接收记录等信息的存储介质,例如,磁盘,如机械硬盘或固态硬盘。
上述计算设备900可以是一个通用设备或者是一个专用设备。例如,计算设备900可以是手机终端,平板电脑,笔记本电脑,VR设备、AR设备、MR设备或ER设备,车载计算设备等,还可以是边缘设备(例如,携带具有处理能力芯片的盒子)等。可选地,计算设备900也可以是服务器或其他具有计算能力的设备。
应理解,根据本实施例的计算设备900可对应于本实施例中的数据处理装置700 或数据处理装置800,并可以对应于执行根据图2、图3、图4或图5中任一方法中的相应主体,并且数据处理装置700或数据处理装置800中的各个模块的上述和其它操作和/或功能分别为了实现图2、图3、图4或图5中的各个方法的相应流程,为了简洁,在此不再赘述。
本实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于计算设备中。当然,处理器和存储介质也可以作为分立组件存在于计算设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (27)

  1. 一种数据处理方法,其特征在于,所述方法由第一计算设备执行,所述方法包括:
    获取第一信息,所述第一信息用于指示第二计算设备显示第一图像,所述第一信息包含绘图指令,所述绘图指令用于渲染第一待渲染数据得到所述第一图像;
    确定所述第一待渲染数据的指示信息,所述指示信息包括第一指示或第二指示,所述第一指示用于标识所述第一计算设备在先发送给所述第二计算设备的所述第一待渲染数据,所述第二指示用于标识所述第一计算设备当前发送给所述第二计算设备的所述第一待渲染数据的压缩数据;
    向所述第二计算设备发送第二信息,所述第二信息包括所述绘图指令和所述指示信息。
  2. 根据权利要求1所述的方法,其特征在于,所述确定所述第一待渲染数据的指示信息包括:
    根据发送记录确定所述指示信息,所述发送记录用于指示所述第一计算设备向所述第二计算设备已发送的待渲染数据。
  3. 根据权利要求2所述的方法,其特征在于,所述确定所述第一待渲染数据的指示信息包括:
    获取所述第一待渲染数据的标识;
    根据所述第一待渲染数据的标识和所述发送记录包含的待渲染数据的标识进行比较,确定所述指示信息。
  4. 根据权利要求3所述的方法,其特征在于,根据所述第一待渲染数据的标识和所述发送记录包含的待渲染数据的标识进行比较,确定所述指示信息包括:
    若所述发送记录包括所述第一待渲染数据的标识,将所述第一待渲染数据的标识携带在所述指示信息中。
  5. 根据权利要求3所述的方法,其特征在于,根据所述第一待渲染数据的标识和所述发送记录包含的待渲染数据的标识进行比较,确定所述指示信息包括:
    若所述发送记录不包括所述第一待渲染数据的标识,根据所述发送记录中包括的第二待渲染数据的标识,确定所述第一待渲染数据和所述第二待渲染数据的差异数据,将所述第二待渲染数据的标识和所述差异数据携带在所述指示信息中。
  6. 根据权利要求3所述的方法,其特征在于,根据所述第一待渲染数据的标识和所述发送记录包含的待渲染数据的标识进行比较,确定所述指示信息包括:
    若所述发送记录不包括所述第一待渲染数据的标识,压缩所述第一待渲染数据得到所述压缩数据,将所述压缩数据携带在所述指示信息中。
  7. 根据权利要求5或6所述的方法,其特征在于,向所述第二计算设备发送第二信息之后,所述方法还包括:
    更新所述发送记录,所述发送记录包含所述第一待渲染数据的标识。
  8. 根据权利要求1至7中任一项所述的方法,其特征在于,所述第一待渲染数据包括纹理数据和顶点数据中至少一个。
  9. 一种数据处理方法,其特征在于,所述方法由第二计算设备执行,所述方法包 括:
    接收第一计算设备发送的第二信息,所述第二信息用于指示所述第二计算设备显示第一图像,所述第二信息包括绘图指令和指示信息,所述指示信息包括第一指示或第二指示,所述第一指示用于标识所述第一计算设备在先发送给所述第二计算设备的第一待渲染数据,所述第二指示用于标识所述第一计算设备当前发送给所述第二计算设备的所述第一待渲染数据的压缩数据;
    根据所述指示信息获取所述第一待渲染数据;
    根据所述绘图指令渲染所述第一待渲染数据得到所述第一图像;
    显示所述第一图像。
  10. 根据权利要求9所述的方法,其特征在于,若所述指示信息包括所述第一待渲染数据的标识,根据所述指示信息获取第一待渲染数据包括:
    根据所述第一待渲染数据的标识和接收记录获取所述第一待渲染数据,所述接收记录用于指示所述第二计算设备已接收所述第一计算设备在先发送的待渲染数据。
  11. 根据权利要求9所述的方法,其特征在于,若所述指示信息包括第二待渲染数据的标识和所述第二待渲染数据的差异数据,根据所述指示信息获取第一待渲染数据包括:
    根据所述第二待渲染数据的标识和接收记录获取所述第二待渲染数据;
    根据所述第二待渲染数据和所述第一待渲染数据的相同数据,以及所述差异数据得到所述第一待渲染数据,所述第一待渲染数据包括所述差异数据和所述相同数据。
  12. 根据权利要求9所述的方法,其特征在于,若所述指示信息包括所述压缩数据,根据所述指示信息获取第一待渲染数据包括:
    解压所述压缩数据得到所述第一待渲染数据。
  13. 一种数据处理装置,其特征在于,包括:
    数据获取模块,用于获取第一信息,所述第一信息用于指示第二计算设备显示第一图像,所述第一信息包含绘图指令,所述绘图指令用于渲染第一待渲染数据得到所述第一图像;
    数据处理模块,用于确定所述第一待渲染数据的指示信息,所述指示信息包括第一指示或第二指示,所述第一指示用于标识在先发送给所述第二计算设备的所述第一待渲染数据,所述第二指示用于标识当前发送给所述第二计算设备的所述第一待渲染数据的压缩数据;
    通信模块,用于向所述第二计算设备发送第二信息,所述第二信息包括所述绘图指令和所述指示信息。
  14. 根据权利要求13所述的装置,其特征在于,所述数据处理模块确定所述第一待渲染数据的指示信息时,具体用于:
    根据发送记录确定所述指示信息,所述发送记录用于指示向所述第二计算设备已发送的待渲染数据。
  15. 根据权利要求14所述的装置,其特征在于,所述数据处理模块确定所述第一待渲染数据的指示信息时,具体用于:
    获取所述第一待渲染数据的标识;
    根据所述第一待渲染数据的标识和所述发送记录包含的待渲染数据的标识进行比较,确定所述指示信息。
  16. 根据权利要求15所述的装置,其特征在于,所述数据处理模块根据所述第一待渲染数据的标识和所述发送记录包含的待渲染数据的标识进行比较,确定所述指示信息时,具体用于:
    若所述发送记录包括所述第一待渲染数据的标识,将所述第一待渲染数据的标识携带在所述指示信息中。
  17. 根据权利要求15所述的装置,其特征在于,所述数据处理模块根据所述第一待渲染数据的标识和所述发送记录包含的待渲染数据的标识进行比较,确定所述指示信息时,具体用于:
    若所述发送记录不包括所述第一待渲染数据的标识,根据所述发送记录中包括的第二待渲染数据的标识,确定所述第一待渲染数据和所述第二待渲染数据的差异数据,将所述第二待渲染数据的标识和所述差异数据携带在所述指示信息中。
  18. 根据权利要求15所述的装置,其特征在于,所述数据处理模块根据所述第一待渲染数据的标识和所述发送记录包含的待渲染数据的标识进行比较,确定所述指示信息时,具体用于:
    若所述发送记录不包括所述第一待渲染数据的标识,压缩所述第一待渲染数据得到所述压缩数据,将所述压缩数据携带在所述指示信息中。
  19. 根据权利要求17或18所述的装置,其特征在于,所述装置还包括更新模块;
    所述更新模块,用于更新所述发送记录,所述发送记录包含所述第一待渲染数据的标识。
  20. 根据权利要求13至19中任一项所述的装置,其特征在于,所述第一待渲染数据包括纹理数据和顶点数据中至少一个。
  21. 一种数据处理装置,其特征在于,包括:
    通信模块,用于接收第一计算设备发送的第二信息,所述第二信息用于指示显示第一图像,所述第二信息包括绘图指令和指示信息,所述指示信息包括第一指示或第二指示,所述第一指示用于标识所述第一计算设备在先发送的第一待渲染数据,所述第二指示用于标识所述第一计算设备当前发送的所述第一待渲染数据的压缩数据;
    数据获取模块,用于根据所述指示信息获取所述第一待渲染数据;
    渲染模块,用于根据所述绘图指令渲染所述第一待渲染数据得到所述第一图像;
    显示模块,用于显示所述第一图像。
  22. 根据权利要求21所述的装置,其特征在于,若所述指示信息包括所述第一待渲染数据的标识,所述数据获取模块根据所述指示信息获取第一待渲染数据时,具体用于:
    根据所述第一待渲染数据的标识和接收记录获取所述第一待渲染数据,所述接收记录用于指示已接收所述第一计算设备在先发送的待渲染数据。
  23. 根据权利要求21所述的装置,其特征在于,若所述指示信息包括第二待渲染数据的标识和所述第二待渲染数据的差异数据,所述数据获取模块根据所述指示信息获取第一待渲染数据时,具体用于:
    根据所述第二待渲染数据的标识和接收记录获取所述第二待渲染数据;
    根据所述第二待渲染数据和所述第一待渲染数据的相同数据,以及所述差异数据得到所述第一待渲染数据,所述第一待渲染数据包括所述差异数据和所述相同数据。
  24. 根据权利要求21所述的装置,其特征在于,若所述指示信息包括所述压缩数据,所述数据获取模块根据所述指示信息获取第一待渲染数据时,具体用于:
    解压所述压缩数据得到所述第一待渲染数据。
  25. 一种计算设备,其特征在于,所述计算设备包括存储器和至少一个处理器,所述存储器用于存储一组计算机指令;当所述处理器执行所述一组计算机指令时,执行上述权利要求1至8中任一项所述的方法的操作步骤。
  26. 一种计算设备,其特征在于,所述计算设备包括存储器、至少一个处理器和显示器,所述存储器用于存储一组计算机指令;当所述处理器执行所述一组计算机指令时,执行上述权利要求9至12中任一项所述的方法的操作步骤,使得所述显示器显示第一图像。
  27. 一种系统,其特征在于,所述系统包括第一计算设备和第二计算设备,所述第一计算设备用于执行上述权利要求1至8中任一项所述的方法的操作步骤,所述第二计算设备用于执行上述权利要求9至12中任一项所述的方法的操作步骤,使得所述第二计算设备显示第一图像。
PCT/CN2022/101956 2021-08-17 2022-06-28 数据处理方法、装置、计算设备和系统 WO2023020124A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22857437.2A EP4375940A1 (en) 2021-08-17 2022-06-28 Data processing method and apparatus, and computing device and system
US18/436,999 US20240177352A1 (en) 2021-08-17 2024-02-08 Data processing method and apparatus, computing device, and system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110943564.9 2021-08-17
CN202110943564.9A CN115705664A (zh) 2021-08-17 2021-08-17 数据处理方法、装置、计算设备和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/436,999 Continuation US20240177352A1 (en) 2021-08-17 2024-02-08 Data processing method and apparatus, computing device, and system

Publications (1)

Publication Number Publication Date
WO2023020124A1 true WO2023020124A1 (zh) 2023-02-23

Family

ID=85180503

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/101956 WO2023020124A1 (zh) 2021-08-17 2022-06-28 数据处理方法、装置、计算设备和系统

Country Status (4)

Country Link
US (1) US20240177352A1 (zh)
EP (1) EP4375940A1 (zh)
CN (1) CN115705664A (zh)
WO (1) WO2023020124A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140340419A1 (en) * 2013-05-15 2014-11-20 Google Inc. Use of Map Data Difference Tiles to Iteratively Provide Map Data to a Client Device
CN105427236A (zh) * 2015-12-18 2016-03-23 魅族科技(中国)有限公司 一种图像渲染方法及装置
US20180040098A1 (en) * 2016-08-03 2018-02-08 Samsung Electronics Co., Ltd. Method and apparatus for performing tile-based rendering
CN111508055A (zh) * 2019-01-30 2020-08-07 华为技术有限公司 渲染方法及装置
CN111629228A (zh) * 2020-04-30 2020-09-04 西安万像电子科技有限公司 数据传输方法及服务器
CN112686981A (zh) * 2019-10-17 2021-04-20 华为终端有限公司 画面渲染方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140340419A1 (en) * 2013-05-15 2014-11-20 Google Inc. Use of Map Data Difference Tiles to Iteratively Provide Map Data to a Client Device
CN105427236A (zh) * 2015-12-18 2016-03-23 魅族科技(中国)有限公司 一种图像渲染方法及装置
US20180040098A1 (en) * 2016-08-03 2018-02-08 Samsung Electronics Co., Ltd. Method and apparatus for performing tile-based rendering
CN111508055A (zh) * 2019-01-30 2020-08-07 华为技术有限公司 渲染方法及装置
CN112686981A (zh) * 2019-10-17 2021-04-20 华为终端有限公司 画面渲染方法、装置、电子设备及存储介质
CN111629228A (zh) * 2020-04-30 2020-09-04 西安万像电子科技有限公司 数据传输方法及服务器

Also Published As

Publication number Publication date
US20240177352A1 (en) 2024-05-30
EP4375940A1 (en) 2024-05-29
CN115705664A (zh) 2023-02-17

Similar Documents

Publication Publication Date Title
US11344806B2 (en) Method for rendering game, and method, apparatus and device for generating game resource file
EP3951595A1 (en) Method and apparatus for graphics rendering
EP2293192B1 (en) Methods and systems for remoting three dimensional graphics
EP2417518B1 (en) Methods and systems for prioritizing dirty regions within an image
US9715750B2 (en) System and method for layering using tile-based renderers
Akenine-Moller et al. Graphics processing units for handhelds
US20100001995A1 (en) Method and System for Remote Visualization Client Acceleration
WO2021169236A1 (zh) 渲染的方法、装置
US10699361B2 (en) Method and apparatus for enhanced processing of three dimensional (3D) graphics data
CN113286005B (zh) 抓屏方法、装置、电子设备及存储介质
JP2010257454A (ja) 遠隔の表示部へ伝送するためにフレームバッファをコピーする方法及びシステム
KR20160123311A (ko) 공유 데이터 채널들을 가지는 셰이더 파이프라인
CN111080505B (zh) 一种提高图元装配效率的方法、装置及计算机存储介质
CN112189219A (zh) 低分辨率深度预过程
WO2022095526A1 (zh) 图形引擎和适用于播放器的图形处理方法
CN116821040B (zh) 基于gpu直接存储器访问的显示加速方法、装置及介质
US20240189720A1 (en) Performing rendering processing by a graphics processing unit and a central processing unit
CN113495933A (zh) 一种矢量瓦片显示方法及系统
US20210200255A1 (en) Higher graphics processing unit clocks for low power consuming operations
WO2023020124A1 (zh) 数据处理方法、装置、计算设备和系统
CN114904274A (zh) 云游戏的画面渲染方法、装置、电子设备以及存储介质
US20230206380A1 (en) Optimizing partial writes to compressed blocks
US9972064B1 (en) Non-intrusive and low-power recording
CN116166367B (zh) 提升显示帧缓存图像读取效率的方法
WO2023241210A1 (zh) 虚拟场景的渲染方法、装置、设备及存储介质

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: 22857437

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022857437

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022857437

Country of ref document: EP

Effective date: 20240221

NENP Non-entry into the national phase

Ref country code: DE