CN115705664A - 数据处理方法、装置、计算设备和系统 - Google Patents
数据处理方法、装置、计算设备和系统 Download PDFInfo
- Publication number
- CN115705664A CN115705664A CN202110943564.9A CN202110943564A CN115705664A CN 115705664 A CN115705664 A CN 115705664A CN 202110943564 A CN202110943564 A CN 202110943564A CN 115705664 A CN115705664 A CN 115705664A
- Authority
- CN
- China
- Prior art keywords
- data
- rendered
- computing device
- identifier
- indication information
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 63
- 230000005540 biological transmission Effects 0.000 claims abstract description 42
- 238000009877 rendering Methods 0.000 claims abstract description 28
- 238000004891 communication Methods 0.000 claims description 21
- 238000012217 deletion Methods 0.000 description 11
- 230000037430 deletion Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000032683 aging Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital 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/1462—Digital 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/147—Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
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
技术领域
本申请涉及远程控制领域,尤其涉及一种数据处理方法、装置、计算设备和系统。
背景技术
云手机(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还可以是一个物理设备上的虚拟机(virtualmachine,VM)。第二计算设备120可以是手机终端、平板电脑、笔记本电脑、虚拟现实(virtual reality,VR)设备、增强现实(Augmented Reality,AR)设备、混合现实(MixedReality,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可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),现场可编程门阵列(field-programmable gatearray,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中任一项所述的方法的操作步骤,使得所述第二计算设备显示第一图像。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110943564.9A CN115705664A (zh) | 2021-08-17 | 2021-08-17 | 数据处理方法、装置、计算设备和系统 |
EP22857437.2A EP4375940A4 (en) | 2021-08-17 | 2022-06-28 | DATA PROCESSING METHOD AND APPARATUS AND COMPUTER DEVICE AND SYSTEM |
PCT/CN2022/101956 WO2023020124A1 (zh) | 2021-08-17 | 2022-06-28 | 数据处理方法、装置、计算设备和系统 |
US18/436,999 US20240177352A1 (en) | 2021-08-17 | 2024-02-08 | Data processing method and apparatus, computing device, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110943564.9A CN115705664A (zh) | 2021-08-17 | 2021-08-17 | 数据处理方法、装置、计算设备和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115705664A true CN115705664A (zh) | 2023-02-17 |
Family
ID=85180503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110943564.9A Pending CN115705664A (zh) | 2021-08-17 | 2021-08-17 | 数据处理方法、装置、计算设备和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240177352A1 (zh) |
EP (1) | EP4375940A4 (zh) |
CN (1) | CN115705664A (zh) |
WO (1) | WO2023020124A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140292803A1 (en) * | 2013-03-29 | 2014-10-02 | Nvidia Corporation | System, method, and computer program product for generating mixed video and three-dimensional data to reduce streaming bandwidth |
US9396508B2 (en) * | 2013-05-15 | 2016-07-19 | 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 | 魅族科技(中国)有限公司 | 一种图像渲染方法及装置 |
US10373286B2 (en) * | 2016-08-03 | 2019-08-06 | Samsung Electronics Co., Ltd. | Method and apparatus for performing tile-based rendering |
CN111508055B (zh) * | 2019-01-30 | 2023-04-11 | 华为技术有限公司 | 渲染方法及装置 |
CN112686981B (zh) * | 2019-10-17 | 2024-04-12 | 华为终端有限公司 | 画面渲染方法、装置、电子设备及存储介质 |
CN111629228B (zh) * | 2020-04-30 | 2024-09-13 | 西安万像电子科技有限公司 | 数据传输方法及服务器 |
-
2021
- 2021-08-17 CN CN202110943564.9A patent/CN115705664A/zh active Pending
-
2022
- 2022-06-28 WO PCT/CN2022/101956 patent/WO2023020124A1/zh active Application Filing
- 2022-06-28 EP EP22857437.2A patent/EP4375940A4/en active Pending
-
2024
- 2024-02-08 US US18/436,999 patent/US20240177352A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240177352A1 (en) | 2024-05-30 |
EP4375940A4 (en) | 2024-09-04 |
EP4375940A1 (en) | 2024-05-29 |
WO2023020124A1 (zh) | 2023-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020220953A1 (zh) | 用于图形渲染的方法及装置 | |
EP2710559B1 (en) | Rendering mode selection in graphics processing units | |
US9715750B2 (en) | System and method for layering using tile-based renderers | |
Akenine-Moller et al. | Graphics processing units for handhelds | |
US11908039B2 (en) | Graphics rendering method and apparatus, and computer-readable storage medium | |
US10699361B2 (en) | Method and apparatus for enhanced processing of three dimensional (3D) graphics data | |
WO2021169236A1 (zh) | 渲染的方法、装置 | |
CN113286005B (zh) | 抓屏方法、装置、电子设备及存储介质 | |
CN111080505B (zh) | 一种提高图元装配效率的方法、装置及计算机存储介质 | |
CN113655975B (zh) | 图像显示方法、装置、电子设备和介质 | |
WO2023134277A1 (zh) | 可见元素的确定方法和装置、存储介质及电子设备 | |
CN115359226B (zh) | 鸿蒙系统基于纹理压缩的vr展示方法、电子设备及介质 | |
CN111258693B (zh) | 远程显示方法及装置 | |
CN113495933A (zh) | 一种矢量瓦片显示方法及系统 | |
CN109302523B (zh) | 一种手机端和服务器端手机性能评估方法 | |
KR20130043241A (ko) | 그래픽 이미지들의 시각적 창작 동안의 성능 분석 | |
CN108769715B (zh) | 图形指令数据的处理方法及装置 | |
CN115705664A (zh) | 数据处理方法、装置、计算设备和系统 | |
CN114820878B (zh) | 图像编辑方法及设备 | |
CN112116719B (zh) | 三维场景中对象的确定方法、装置、存储介质和电子设备 | |
CN112218003B (zh) | 一种桌面图像采集方法、装置及电子设备 | |
CN113763552A (zh) | 三维地理模型的展示方法、装置、计算机设备和存储介质 | |
CN114904274A (zh) | 云游戏的画面渲染方法、装置、电子设备以及存储介质 | |
US9972064B1 (en) | Non-intrusive and low-power recording | |
US12118653B2 (en) | Depth analyzer and shading rate controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |