CN110227259B - 一种数据处理的方法、装置、服务器和系统 - Google Patents
一种数据处理的方法、装置、服务器和系统 Download PDFInfo
- Publication number
- CN110227259B CN110227259B CN201810183257.3A CN201810183257A CN110227259B CN 110227259 B CN110227259 B CN 110227259B CN 201810183257 A CN201810183257 A CN 201810183257A CN 110227259 B CN110227259 B CN 110227259B
- Authority
- CN
- China
- Prior art keywords
- server
- gpu
- terminal
- resource pool
- stream 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.)
- Active
Links
Images
Classifications
-
- 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/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- 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 MPEG-stream for transmitting to a mobile phone or a thin client
-
- 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/45—Controlling the progress of the video game
- A63F13/48—Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/4061—Push-to services, e.g. push-to-talk or push-to-video
Abstract
本申请公开一种数据处理的方法、装置、服务器和系统,该方法中第一服务器接收终端的控制流信息,解析该控制流信息,并根据控制流信息中游戏ID启动游戏,截获指令流信息,其中,第一服务器为部署安卓仿真器的服务器。再将该指令流信息发送给第二服务器,第二服务器是图形处理器GPU资源池中服务器,由第二服务器在GPU资源池中选择目标GPU处理上述指令流信息,完成图像渲染和编码,生成视频流信息,最后,将该视频流信息发送给终端,由终端显示给用户。由此,降低云游戏场景中对终端硬件的要求,提升图像渲染的处理效率,减少处理时长,进而提升游戏的用户体验。
Description
技术领域
本申请涉及云计算领域,尤其涉及云游戏场景中的一种数据处理的方法、装置、服务器和系统。
背景技术
随着终端游戏的普及与快速增长,越来越多的游戏厂商将业务部署在数据中心,对终端用户提供云化服务。
云游戏是目前新兴的终端游戏应用场景,图1为该场景的系统架构图。游戏的服务由业务集群和进阶精简指令集机器(advanced reduced instruction set computermachine,ARM)服务器集群的服务器提供,其中,业务集群包括运行数据库应用的数据库服务器和记录游戏的数据信息的业务服务器。ARM服务器集群中ARM服务器主要用于运行云游戏的安卓仿真器(android virtual device,AVD)。通常地,云游戏场景中采用分离渲染指令流方案为用户提供流畅的游戏体验。该方案在ARM服务器集群的ARM服务器中创建AVD,在AVD中启动游戏进程,AVD将图像处理指令流截获后转发至终端,由终端完成图像渲染和显示。该方案的本质是将游戏进程及图像绘制资源消耗全部控制在云服务端,即将游戏进程及图像绘制资源消耗全部控制在ARM服务器集群的AVD中。但是,由于ARM服务器图像能力的限制,多AVD并发下图像渲染性能无法达到要求,使得图像渲染不得不在终端进行,无法完全满足云游戏的业务场景需求。需要利用终端的图形处理器(graphics processing unit,GPU)完成图像渲染,此时,对终端的硬件配置有较高的要求,当终端硬件配置不能够满足要求时,会影响用户云游戏体验。另一方面,如果直接在业务集群的X86服务器上部署AVD对图像的渲染,由于X86系统和安卓系统之间数据处理过程需要进行操作系统的指令集翻译,会极大消耗服务器性能,无法实现AVD的高密度并发,且成本高昂。
因此,当前的云游戏技术方案中如何实现云游戏场景不依赖终端GPU的情况下真正在服务端的游戏图像渲染功能成为亟待解决的问题。
发明内容
本申请提供了一种数据处理的方法、装置、服务器和系统,可以解决当前云游戏技术方案中不依赖终端GPU的情况下真正在服务端完成图像渲染功能的问题,提升用户体验。
第一方面,提供一种数据处理的方法,该方法中第一服务器接收终端的控制流信息,解析该控制流信息和终端的IP地址,并根据控制流信息中游戏ID启动游戏,截获指令流信息。然后,将该指令流信息发送给第二服务器,由第二服务器在GPU资源池中选择目标GPU处理上述指令流信息,完成图像渲染和编码,生成视频流信息。再将该视频流信息发送给终端,由终端显示给用户。其中,指令流信息包括知识游戏标识ID和触控输入信息的内容,第一服务器中运行有仿真器,该仿真器用于协助终端完成游戏处理。第一服务器是部署AVD的ARM服务器集群中的服务器,GPU资源池中包括第二服务器和至少一个GPU。
通过上述方法,通过GPU资源池来完成对游戏的图像渲染过程,降低云游戏场景中对终端硬件的要求,提升图像渲染的处理效率,减少处理时长,进而提升游戏的用户体验。
在一种可能的实现方式中,GPU资源池的组成方式可以采用以下方式中任意一种:
方式一:GPU资源池中仅包括一台第二服务器,第二服务器中部署有至少一个GPU。
方式二:GPU资源池中仅包括至少一台第二服务器,每台第二服务器部署有至少一个GPU。
方式三:GPU资源池中包括一台第二服务器和其他服务器,其他服务器中部署有至少一个GPU。
在另一种可能的实现方式中,终端安装有安卓操作系统,第一服务器中预先安装有安卓仿真器AVD,那么,AVD根据游戏ID调用操作系统命令,启动游戏进程,以使游戏进程根据触控输入信息操作游戏运行。
在另一种可能的实现方式中,第一服务器截获指令流信息的过程包括:监控游戏进程ID,当监测到存在新的游戏进程ID时,获取该游戏进程ID对应的指令流信息。
通过上述过程的描述,本申请提供的数据处理方法中第一服务器将截获的指令流信息直接发送给GPU资源池中第二服务器,由第二服务器选择目标GPU完成指令流信息的处理,并生成视频流经TCP/IP协议传输给终端,由终端完成显示,呈献给用户。相比于传统方法,第一服务器不再将截获的指令流信息发送给终端处理,降低了终端负载,以及对终端硬件配置的要求。同时,由于由GPU资源池中GPU完成图像渲染,该GPU的处理能力高于终端对图像处理能力且可以随时升级GPU的配置,进一步提升了图像渲染处理效率,降低了处理时长,彻底将云游戏的处理过程云化,即由服务端完成图像渲染和处理,终端仅用于发出触控信息和显示,从根本上解决了当前的云游戏技术方案中不依赖终端GPU的情况下真正在服务端的游戏图像渲染功能的问题,提升了用户体验。
第二方面,本申请提供一种数据处理的方法,该方法包括:首先,第二服务器接收第一服务器发送的指令流信息,其中,GPU资源池中包括第二服务器和至少一个GPU,第一服务器为运行仿真器的服务器,指令流信息中包括游戏标识ID、触控输入信息和终端的IP地址。然后,第二服务器在GPU资源池中选择一个目标GPU解析上述指令流信息,并进行图像渲染及编码,生成视频流信息。最后,再根据终端的IP地址向终端发送上述视频流信息。
相比于传统做法中由终端完成图像渲染和图像编码生成视频流的过程,本申请中由目标GPU对渲染后的图像进行了编码,生成视频流,再由目标GPU所在服务器的CPU将视频流信息传输给终端,终端仅用于显示视频流信息的内容,减少了终端的处理过程和资源消耗。而且,由GPU资源池中GPU完成上述图像编码和生成视频流信息的过程,可以减少处理时长,终端仅用于显示上述视频流信息,进一步提升了用户体验。
在一种可能的实现方式中,第二服务器可以按照以下方式中任意一种选择目标GPU:
方式一:根据GPU资源池中各个GPU的负载情况,选择负载最轻的GPU为目标GPU。
方式二:按照GPU资源池中各个GPU的标识ID选择一个GPU为目标GPU。
方式三:随机在GPU资源池中选择一个GPU为目标GPU。
在另一种可能的实现方式中,GPU资源池的组成可以按照以下方式中任意一种实现:
方式一:GPU资源池中包括一台第二服务器,第二服务器上部署有至少一个GPU。
方式二:GPU资源池中包括至少一台服务器,每台服务器中均部署有至少一个GPU,第二服务器为其中一台服务器。
方式三:GPU资源池包括至少一台服务器和第二服务器,除第二服务器外的其他服务器中均部署有至少一个GPU。
在另一种可能的实现方式中,第二服务器在GPU资源池中选择一个目标GPU解析指令流信息,包括:目标GPU根据预置的开放式图形库openGL与针对嵌入式设备的开放式图形库openGLES转换映射表将所述指令流信息的openGLES数据转换为openGL数据。
本申请中,由GPU资源池中GPU完成图像渲染,降低了对终端硬件配置的要求,减少了处理时长。相比于ARM服务器,本实施例中充分利用GPU资源池中X86服务器与GPU的兼容性优势,对指令流信息进行渲染与编码,并经TCP/IP协议传输至终端进行图像显示,提升了用户体验。进一步地,由于X86服务器和GPU的兼容性的强大优势,同一服务器可以部署多个GPU,以此提供多路高性能并发的图像渲染功能,即GPU资源池可以同时处理多个指令流信息,并完成编码、生成视频流信息,提升了整个云游戏场景的处理能力。而且,对于同一服务器的不同GPU可以处理多个指令流信息,提升了并发处理能力,也进一步降低了云游戏场景的硬件成本。
第三方面,本申请提供一种数据处理的装置,所述装置包括用于执行第一方面或第一方面任一种可能实现方式中的数据处理方法的各个模块。
第四方面,本申请提供一种数据处理的装置,所述装置包括用于执行第二方面或第二方面任一种可能实现方式中的数据处理方法的各个模块。
第五方面,本申请提供一种第一服务器,所述第一服务器包括处理器、存储器、总线,所述处理器、存储器之间通过总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述第一服务器运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述第一服务器中的硬件资源执行第一方面或第一方面任一种可能实现方式中所述方法的操作步骤。
第六方面,本申请提供一种第二服务器,所述第二服务器包括处理器、存储器、总线,所述处理器、存储器之间通过总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述第二服务器运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述第二服务器中的硬件资源执行第二方面或第二方面任一种可能实现方式中所述方法的操作步骤。
第七方面,本申请提供一种数据处理的系统,该系统包括第一服务器和第二服务器,第一服务器用于执行第五方面及第五方面的任一种可能实现方式中所述方法的操作步骤,第二服务器用于执行第六方面及第六方面的任一种可能实现方式中所述方法的操作步骤。
第八方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面及第一方面的任一种可能实现方式中所述方法。
第九方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第二方面及第二方面的任一种可能实现方式中所述方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种现有技术中云游戏场景的系统架构示意图;
图2为本申请提供的一种云游戏场景的系统架构示意图;
图3为本申请提供的一种数据处理的方法的流程示意图;
图4为本申请提供的另一种数据处理的方法的流程示意图;
图5为本申请提供的一种数据处理的装置的结构示意图;
图6为本申请提供的另一种数据处理的装置的结构示意图;
图7为本申请提供的第一服务器的结构示意图;
图8为本申请提供的第二服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述。
为了更好的介绍本发明实施例,首先,结合图1简单介绍下当前云游戏场景的系统架构。如图所示,云游戏场景的系统架构中包括业务集群、进阶精简指令集机器(advancedRISC machine,ARM)服务器集群和终端。其中,业务集群中包括至少一台服务器,业务集群的服务器主要包括用于部署数据库应用的至少一台数据库服务器,以及记录游戏的数据信息的至少一台业务服务器。此处,数据库应用主要包括保存用户信息,以及游戏的应用配置信息。游戏的数据信息包括每个用户级别、状态,以及该用户当前所处的游戏级别,装备情况等。业务集群中服务器为部署有X86架构的中央处理器(central process unit,CPU)的服务器。ARM服务器集群包括至少一个服务器,每个服务器上均部署ARM架构的CPU,用于运行游戏的服务端。具体地,ARM服务器上运行有一个或多个仿真器,该仿真器具体为虚拟机,用户通过终端对指定游戏的部分操作可以由仿真器完成,即仿真器可以协助终端完成游戏的操作过程。由于ARM服务器的硬件配置优于终端,且在局域网内可以快速与业务集群中服务器通信,因此,通过ARM服务器中的仿真器代替终端完成游戏的部分处理过程,可以提高处理效率和用户提样。
应理解的是,X86架构的处理器和ARM架构的处理器的主要区别在于其使用的指令集不同,X86架构的处理器被广泛应用在服务器、个人电脑(personal computer,PC)中,而ARM架构的处理器则被应用在终端、自动取款机(automated teller machine,ATM)、车载电脑等。终端包括手机、移动设备(如平板电脑、智能终端等)。在云游戏场景中,终端中部署有游戏的瘦客户端(thin client,TC),用户可以通过终端中TC启动游戏。另外,对于终端中安装的游戏包括轻载游戏、中载游戏,和重载游戏。其中,轻载、中载和重载是依据游戏运行时所消耗的终端和服务端的计算资源划分。
应理解的是,上述轻载游戏、中载游戏和重载游戏是依据游戏运行所消耗的终端的计算资源划分,是一个相对概念。例如,若以终端可用于游戏运行的可消耗资源为准,可以将游戏运行需要消耗30%计算资源的游戏称为轻载游戏,如愤怒的小鸟;将游戏运行需要消耗80%计算资源的游戏称为重载游戏,如王者荣耀;将游戏运行需要消耗50%计算资源的游戏称为中载游戏,如水果忍者。
还应理解的是,图1所示架构中,也可以根据业务需求将业务集群中数据库服务器和业务服务器合一部署,即部署数据库应用的服务器还用于存储游戏的应用配置信息。本发明的以下实施例中,以数据库服务器和业务服务器分开部署为例进行说明。另外,对于服务器集群的划分是一个逻辑概念,也可以将业务集群和ARM服务器集群合为一个集群。
目前,云游戏场景中主要采用分离渲染指令流方案处理数据。该方案在ARM服务器集群的服务器中安装仿真器,例如安卓仿真器(android virtual device,AVD)。具体实现过程中,每个AVD可以为一个虚拟机的一个软件模块,当用户通过终端启动游戏时,在AVD中将图像处理指令流截获之后转发至终端,由终端的图形处理器(graphics processingunit,GPU)进行图像渲染并显示。该方案的本质是将游戏进程及图像绘制资源消耗全部控制在ARM服务器集群,而由于ARM服务器图像能力的限制,多AVD并发下图像渲染性能无法达到要求,使得图像渲染不得不在终端进行,无法完全满足云游戏的业务场景需求,需要利用终端的GPU完成图像渲染,此时,对终端的硬件配置有较高的要求,当终端的硬件配置(处理器、GPU显卡、内存等)一般或较低时,会影响用户云游戏体验。另一方面,如果直接利用业务集群的X86服务器进行实现AVD对图像的渲染,由于X86系统和安卓系统之间数据处理过程需要进行操作系统的指令集翻译,会极大消耗服务器性能,无法实现AVD的高密度并发,且成本高昂。因此,当前的云游戏技术方案中如何实现云游戏场景不依赖终端GPU的情况下真正在服务端完成图像渲染功能成为亟待解决的问题。
本申请提供一种数据处理的方法,在图1所示的系统架构基础上增加基于X86服务器的多GPU资源池,由GPU资源池中服务器接收云游戏服务端转发的对游戏操作的指令流信息,并分发至各GPU进行图像渲染处理,然后经GPU编码后生成游戏的视频流,再将视频流转发至各用户的终端,由终端显示视频流信息向用户呈现游戏界面,由此,降低终端业务处理过程,提升终端用户体验。
图2为本申请提供的一种云游戏场景的系统架构图。如图所示,该系统架构中包括业务集群、ARM服务器集群、终端和GPU资源池。其中,业务集群、ARM服务器集群和终端与图1所示相同,在此不再赘述。图2与图1的区别在于,新增GPU资源池。GPU资源池由至少一台服务器组成,其中包括至少一个GPU,且每台服务器均部署X86架构的CPU。GPU资源池用于接收业务集群转发的图像指令流信息,并分发至各GPU进行图像渲染处理,然后经GPU编码后生成游戏视频流,再由服务器的处理器转发至各用户的终端。GPU又称为显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和移动设备(如平板电脑、智能终端等)上图像运算工作的微处理器。它是显卡的“心脏”,与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的,这些计算是图形渲染所必需的。
值得说明的是,云游戏场景中终端和服务器之间消息传输的方式是以“消息流”的形式传递的,此处,消息流是指携带多个消息的集合,如上述指令流信息、控制流信息和视频流信息。
为便于后续描述,我们以GPU资源池中一台服务器如何处理数据为例进行介绍。图3为本申请提供的一种数据处理方法的流程示意图,如图所示,所述方法包括:
S110、第二服务器接收第一服务器发送的指令流信息。
其中,第一服务器为运行用户待操作游戏所对应的AVD的服务器,第一服务器截获到对游戏的指令流信息时,会将该指令流信息直接转发给第二服务器,以便于第二服务器进一步处理指令流信息。第二服务器为GPU资源池中任意一台服务器。
而GPU资源池的组成方式可以为以下方式中的任意一种:
方式一:GPU资源池中可以仅包含一台服务器,该服务器中部署有多个GPU,该多个GPU组成GPU资源池,由该服务器负责接收第一服务器发送的指令流信息,并选择一个GPU进行数据处理。
方式二:GPU资源池中可以包括多台服务器,每个服务器包括一个或多个GPU,各个服务器的GPU共同组成GPU资源池。由其中一台服务器负责接收第一服务器发送的指令流信息,并选择GPU资源池中一个GPU进行数据处理。此时,由于GPU资源池需要并行处理多个第一服务器的AVD发送的指令流信息,因此,在GPU资源池中需要有一个管理服务器,负责监控各个GPU的负载情况,将各个指令流信息分配给合适的GPU处理,实现GPU资源池中负载均衡,提升处理效率,降低处理时长。
方式三:GPU资源池中包括多台服务器。其中,一台服务器仅用于接收第一服务器发送的指令流信息,以及在GPU资源池中选择GPU完成指令流信息处理。其他服务器均部署有一个或多个GPU,该多个GPU和接收指令流信息的服务器共同组成GPU资源池。方式三与方式二的区别在于,方式三中存在一台服务器仅用于接收第一服务器发送的指令流信息并分发给指定GPU处理,该服务器上未部署GPU,不需要进行指令流信息的处理。方式三的场景中,由一台服务器单独用于处理指令流信息,当存在多个指令流信息需要同时处理时,提升指令流信息处理任务分发的效率,减少处理时间。
那么,对于上述三种方式,步骤S110中接收第一服务器发送的指令流信息的执行主体有所不同。方式一中,接收第一服务器发送的指令流信息的执行主体为GPU资源池中仅有的一台服务器。方式二中,接收第一服务器发送的指令流信息的执行主体为GPU资源池中任意一台服务器,该服务器可以为预先指定的服务器,也可以是最先接收到指令流信息的服务器,此时,该服务器需要发送网络报文通知GPU资源池中其他服务器本次指令流信息由其选择目标GPU处理。方式三中,接收第一服务器发送的指令流信息的执行主体为仅用于接收第一服务器发送的指令流信息的服务器。
另外,GPU资源池的多个GPU可以并行处理多个第一服务器的AVD转发的图像渲染指令流信息,因此,在GPU资源池中需要存在第二服务器,负责管理并定时获取各GPU的使用率,针对不同AVD的指令流信息分配适当的GPU进行处理,实现负载均衡。
具体地,第二服务器中包括一个监控模块,该监控模块可以负责管理并定时获取各GPU的使用率,针对不同AVD的指令流信息分配适当的GPU进行处理。具体实现时,监控模块可以为一个软件模块,也可以制作成协处理器,并将该协处理器安装在第二服务器中,以便于其准确及时地管理GPU资源池中各GPU。
值得说明的是,虽然上述三种方式中接收指令流信息的服务器有所不同,但在接收指令流信息后服务器选择GPU的过程相同,本实施例的以下描述中以方式二为例进行进一步描述,并将接收指令流信息的服务器称为第二服务器。
另外,图2所示的架构中服务器之间,以及终端和服务器之间数据传输基于TCP/IP协议,相应地,指令流信息中包括游戏标识(identification,ID)、socket连接请求、针对嵌入式设备的开放式图形库(open graphics library for embedded system,openGLES)的操作信息。其中,socket连接请求为传输控制协议/因特网互联协议(TransmissionControl Protocol/Internet Protocol,TCP/IP)中所携带的连接请求消息,socket连接请求中可以包括终端的IP地址。openGLES是在开放式图形库(open graphics library f,openGL)基础上升级版的图形库。openGLES主要应用在嵌入式设备中,如ARM服务器等。openGL主要应用在Linux、Unix操作系统中。openGL是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口,用于三维图像或二维图像图像处理,是一个功能强大、调用方便的底层图形库。而且openGL是一个与硬件无关的软件接口,可以在不同的平台(如window、Unix、Linux、MacOS等)之间进行移植。openGLES则是在openGL基础上添加了支持嵌入式设备的图形库。openGLES的操作信息是将终端用户的触控信息转化为系统可以识别的内容,具体为openGLES图形库中接口参数。指令流信息的内容实质上是游戏进程所调用的openGLES接口和相应地接口参数。
S120、第二服务器选择目标GPU解析指令流信息,并由目标GPU完成图像渲染及编码,生成视频流信息。
具体地,第二服务器选择GPU解析上述指令流信息,我们可以将第二服务器选择的GPU称为目标GPU,目标GPU为GPU资源池中任意一个GPU。第二服务器选择目标GPU的方式可以采用以下方式中任意一种:
方式一:第二服务器根据GPU资源池中各GPU的负载选择负载最轻的GPU为目标GPU。
第二服务器可以记录GPU资源池中各GPU的负载情况,即记录每个GPU的当前状态、使用率、处理指令流信息的数量等信息。其中,当前状态包括空闲和忙碌两种,空闲状态表示该GPU当前未处理指令流信息,忙碌状态则表示该GPU当前正在处理指令流信息。
当第二服务器接收到待处理的指令流信息时,即根据第二服务器中记录的GPU资源池的负载情况选择负载最轻的GPU处理该指令流信息。
方式二:第二服务器按照GPU的ID在GPU资源池中选择一个GPU为目标GPU。
第二服务器在接收到指令流信息时,可以按照GPU的ID从高到低或从低到高的顺序依次选择一个GPU为目标GPU。例如,当第二服务器接收到指令流信息1时,选择GPU1为目标GPU处理指令流信息1。当第二服务器接收到指令流信息2时,选择GPU1为目标GPU处理指令流信息2。依此类推,第二服务器每次按照GPU的ID的从高到低或从低到高的顺序依次选择一个GPU为目标GPU。
方式三:第二服务器随机在GPU资源池中选择一个GPU为目标GPU。
目标GPU解析指令流信息的目的为让游戏进程获知对指定游戏的操作内容,然后对指定游戏进行图像渲染。GPU支持openGLES和openGLES的处理,且存储有openGL与openGLES之间转换的映射表。应理解的是,第一服务器截获的指令流信息为基于openGLES的支持终端的图形库指令,目标GPU需要根据openGL与openGLES之间转换的映射表,将指令流信息转换为基于openGLES的支持服务器的图形库指令,然后才能对指定游戏进行图像渲染。其图像渲染过程包括:顶点着色、光栅化、像素着色、纹理锁定等过程生成图像。再由目标GPU对图像进行编码生成视频流信息。视频流信息中包括对图像的编码结果。其中,对图像编码的方法包括H.264或H.265编码方法。
值得说明的是,GPU对图像编码的方法,以及生成视频流的过程均为现有技术,本发明不作限制。
S130、第二服务器向终端发送视频流信息。
第二服务器会将视频流信息发送给终端,由终端完成视频流的显示,即对用户操作游戏结果的显示。其中,第二服务器向终端发送视频流信息时,具体为第二服务器的CPU根据指令流信息中终端的IP向终端发送视频流信息。发送过程可以使用TCP/IP协议传输数据,具体可以由实时传输协议(Real-time Transport Protocol,RTP)报文承载。RTP是一种网络传输协议,提供实时的端到端传送服务,可以在互联网上传输音频和视频的标准数据包,被广泛应用于流媒体相关的通讯和娱乐领域,包括电话、视频会议、电视和基于网络的一键通业务(类似对讲机通话)。
作为一个可能的实现方式,对于第二服务器向终端发送视频流信息时,也可以使用无线、红外、蓝牙等其他网络传输技术传输视频流信息。
值得说明的是,当GPU资源池的组成方式为步骤S110中方式三时,目标GPU与第二服务器不在同一物理服务器中,此时,由目标GPU所在服务器的CPU向终端发送视频流信息。可选地,对于步骤S110中方式3所述的GPU资源池组成方式,视频流信息也可以由目标GPU所在服务器的CPU先发送给第二服务器,再由第二服务器发送给终端。
通过上述过程的描述,本实施例提供的数据处理方法中由GPU资源池中GPU完成对图像渲染,并生成视频流经TCP/IP协议传输给终端,由终端完成显示,呈献给用户。整个过程不需要终端完成对图像的渲染,对游戏的图像渲染处理过程由GPU资源池中目标GPU完成,降低了终端负载,以及对终端硬件配置的要求。同时,由于由GPU资源池中GPU完成图像渲染,该GPU的处理能力高于终端对图像处理能力,进一步提升了图像渲染处理效率,降低了处理时长,彻底将云游戏的处理过程云化,即由服务端完成图像渲染和处理,终端仅用于发出触控信息和显示,从根本上解决了当前的云游戏技术方案中不依赖终端GPU的情况下真正在服务端的游戏图像渲染功能的问题,提升了用户体验。另一方面,相比于传统做法中由终端完成图像渲染和图像编码生成视频流的过程,本申请中由目标GPU对渲染后的图像进行了编码,生成视频流,再由目标GPU所在服务器的处理器将视频流信息传输给终端,终端仅用于显示视频流信息的内容,减少了终端的处理过程和资源消耗。而且,由GPU资源池中GPU完成上述图像编码和生成视频流信息的过程,由于GPU可以随着业务需求进行升级,可以减少处理时长,终端仅用于显示上述视频流信息,进一步提升了用户体验。
作为一种可能的实现方式,在图2所示的云游戏场景的系统架构图中,GPU资源池除了可以基于X86服务器配置外,也可以基于ARM服务器配置。相应地,GPU资源池中服务器的配置也可以按照步骤S110中三种方式实现,ARM服务器及GPU工作过程与上述步骤S110至步骤S130相同,此处不再赘述。
接下来,结合图4进一步描述本申请所提供的数据处理的方法。图4与图3的区别在于,图4以终端和服务器之间交互处理的角度介绍本申请所提供的数据处理的方法。如图4所示,所述方法包括:
S401、用户在终端上启动游戏。
具体地,用户通过终端上部署的游戏TC启动游戏。此时,TC会生成信息,控制流信息包括TC的套接字(socket)连接请求、游戏标识(identification,ID),以及游戏启动以后的触控输入信息、坐标。其中,socket连接请求主要用于终端与ARM服务器之间建立TCP连接。触控输入信息是指用户通过终端屏幕输入的操作信息,如点击、向左拖拽1cm等。坐标则是用于指示用户所要操作的游戏界面图像的位置信息。
S402、终端向第一服务器发送控制器流信息。
第一服务器是ARM服务器集群中的任意一台服务器,第一服务器用于处理终端的控制流信息。
第一服务器上预先安装了一个或多个AVD,具体实施过程中,可以根据业务需求预先指定一个或多个AVD用于一个游戏的处理,当用户通过终端启动游戏时,可以根据游戏ID和AVD的对应关系选择一个AVD处理该控制流信息。
可选地,若ARM服务器集群中存在多个服务器,则可以由第一服务器承担资源调度的功能,具体实现过程包括:第一服务器可以记录ARM服务器集群中所有服务器的硬件配置和负载情况,根据云游戏场景中所支持的游戏数量预先在ARM服务器集群的服务器中安装AVD,当接收到终端发送的控制流信息时,可以根据游戏ID将该控制流转发至一个指定的AVD处理。
终端和第一服务器之间通过TCP/IP传输数据,依据TCP/IP协议,终端和第一服务器之间会首先通过三次握手建立TCP/IP连接。
应理解的是,在第一服务器中可以同时存在多个AVD,在终端和第一服务器之间建立TCP连接时,第一服务器还存储了AVD和终端之间的对应关系。当第一服务器接收到终端发送的控制流信息时,第一服务器可以根据预置的AVD和终端之间的映射关系将控制流信息转发给指定AVD处理。
示例地,表1为本申请提供的一种第一服务器中预置的AVD和游戏之间映射关系示例,当第一服务器接收到终端1发送的控制流信息时,可以根据游戏ID按照表1内容将控制流信息转发至AVD1,由AVD1完成控制流的处理。依此类推,当第一服务器接收到终端2发送的控制流信息时,将控制流信息转发至AVD2处理。当第一服务器接收到终端3发送的控制流信息时,将控制流信息转发至AVD3处理。
表1预置的AVD和终端之间映射关系示例
游戏1 | 游戏2 | 游戏3 | |
AVD1 | 是 | 否 | 否 |
AVD2 | 否 | 是 | 否 |
AVD3 | 否 | 否 | 是 |
S403、第一服务器解析控制流信息,启动游戏。
具体地,解析控制流信息的操作由第一服务器中与控制流所对应的游戏存在映射关系的AVD完成。该AVD通过游戏ID调用操作系统命令启动指定游戏进程。当游戏启动后再根据控制流信息中的触控输入信息操作游戏运行。
S404、第一服务器截获指令流信息。
具体地,在与游戏ID对应的AVD中启动一个图像渲染指令流的截获进程,由该截获进程监测指令流信息,当发现存在新的指令流信息时,则直接截获AVD内调用openGLES指令流的缓存(buffer)内容,包括用户对指定游戏操作的图像信息所对应的接口和接口参数。其中,第一服务器上启动游戏后,会存在一个游戏进程与该游戏ID相对应,该进程即为游戏的运行进程,第一服务器可以存储游戏配置信息,该配置信息指示第一服务器所支持的游戏,当系统接收启动指定游戏命令时,则启动预置的游戏进程,此时第一服务器可以确定存在新的指令流信息,进而截获该指令流信息。指令流信息是指AVD在启动游戏后,按照控制流信息中携带的触控信息对上述游戏进行的具体操作,如点击、向左拖拽等。截获指令流信息是指将带有指定标识的指令流信息保存至第一服务器的内存中,此时系统中仅在该内存中存在该指令流信息。对于第一服务器的AVD,指令流信息被截获后,游戏进程仍在运行态,但不执行其他任务,AVD中图像静止,相应地,AVD的显示界面为白屏状态。
值得说明的是,指令流信息是多个操作内容生成图像的信息,AVD解析控制流信息后,控制流中的触控输入信息会被游戏进程转换为对应的openGLES接口参数,并存储在缓存中一段连续的存储空间中。当截获进程确定存在新的游戏进程时,则可以到该游戏进程对应的指定缓存中获取指令流信息。
S405、第一服务器向第二服务器发送指令流信息。
S406、第二服务器选择GPU解析指令流信息,并进行图像渲染及编码,生成视频流信息。
S407、第二服务器向终端发送视频流信息。
其中,步骤S405至步骤S407的处理过程与步骤S110至步骤S130相同,本实施例中不在赘述。
本实施例中,由GPU资源池中GPU完成图像渲染,降低了对终端硬件配置的要求,减少了处理时长。相比于ARM服务器,本实施中充分利用GPU资源池中X86服务器与GPU的兼容性优势,对指令流信息进行渲染与编码,并经TCP/IP协议传输至终端进行图像显示,提升了用户体验。进一步地,由于X86服务器和GPU的兼容性的强大优势,同一服务器可以部署多个GPU,以此提供多路高性能并发的图像渲染功能,即GPU资源池可以同时处理多个指令流信息,并完成编码、生成视频流信息,提升了整个云游戏场景的处理能力。而且,对于同一服务器的不同GPU可以处理多个指令流信息,提升了并发处理能力,也进一步降低了云游戏场景的硬件成本。
作为一个可能的实现方式,为了第二服务器能够快速将视频流信息发送给终端,对于服务器中AVD和游戏ID的映射关系也可以存储在第二服务器,由第二服务器负责维护和管理该映射关系。相应地,步骤S402则是由终端向第二服务器发送指令流信息,第二服务器根据AVD和游戏ID的映射关系将该控制流转发给第一服务器,再由第一服务器完成步骤S403至S405的操作过程。
值得说明的是,本申请实施例是以部署安装操作系统的终端和AVD为例进行的描述,本申请中数据处理方法同样适用于其他操作系统的终端和云游戏架构中,如iOS、Firefox OS、Windows等终端操作系统和仿真器。同样可以提供支持对应操作系统的图像渲染处理的硬件资源池,由该资源池中硬件完成对游戏的图像处理过程,由此降低对终端硬件要求,提升处理效率,降低处理时长,进而提升用户体验。
值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制。
上文中结合图2至图4,详细描述了根据本发明实施例所提供的数据处理的方法,下面将结合图5至图8描述根据本发明实施例所提供的数据处理的装置、服务器和系统。
图5为本申请提供的一种数据处理装置500的结构示意图。如图所示,所述装置500包括接收单元501、处理单元502、截获单元503和发送单元504;其中,
所述接收单元501,用于接收终端发送的控制流信息,所述控制流信息中包括游戏标识ID、触控输入信息和所述终端的IP地址,所述触控输入信息用于标识用户通过终端对游戏的操作;
所述处理单元502,用于解析所述控制流信息,并根据所述游戏ID启动游戏;
所述截获单元503,用于截获指令流信息,所述指令流信息中包括指示所述游戏ID和所述触控输入信息的内容;
所述发送单元504,用于向第二服务器发送所述指令流信息,以使所述第二服务器在图形处理器GPU资源池中选择目标GPU处理所述指令流信息,完成图像渲染及编码,并生成视频流信息发送给所述终端,所述GPU资源池中包括所述第二服务器和至少一个GPU,所述第二服务器用于管理所述GPU资源池。
上述装置500可以截获指令流信息,并将该指令流信息发送给GPU资源池的第二服务器,由第二服务器选择的目标GPU完成指令流的解析、编码,并生成视频流信息,不再依赖终端的硬件完成图像渲染过程,降低了对终端硬件的要求。
可选地,所述GPU资源池中仅包括一台第二服务器,所述第二服务器中部署有至少一个GPU;或者,
所述GPU资源池中包括至少一台第二服务器,所述至少一台第二服务器中每台第二服务器部署有至少一个GPU;或者,
所述GPU资源池中包括一台第二服务器和其他服务器,所述其他服务器中部署有至少一个GPU。
可选地,所述终端安装有安卓操作系统,所述装置中预先安装有安卓仿真器AVD,则所述处理单元502解析所述控制流信息,并根据所述游戏ID启动游戏,包括:
所述AVD根据所述游戏ID调用操作系统命令,启动游戏进程,以使所述游戏进程根据所述触控输入信息操作所述游戏运行。
可选地,所述截获单元503截获指令流信息包括:监控游戏进程ID,当监测到存在新的游戏进程ID时,获取所述指令流信息。
应理解的是,本发明实施例的装置500可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图3中所示的数据处理方法时,该装置及其各个模块也可以为软件模块。
根据本发明实施例的装置500可对应于执行本发明实施例中描述的方法,并且装置500中的各个单元的上述和其它操作和/或功能分别为了实现图3至图4中的各个方法中第一服务器所执行的相应流程,为了简洁,在此不再赘述。
通过上述装置500的描述,由GPU资源池中GPU完成对图像渲染,并生成视频流经TCP/IP协议传输给终端,由终端完成显示,呈献给用户。整个过程不需要终端完成对图像的渲染,对游戏的图像渲染处理过程由GPU资源池中目标GPU完成,降低了终端负载,以及对终端硬件配置的要求。同时,由于由GPU资源池中GPU完成图像渲染,该GPU的处理能力高于终端对图像处理能力,进一步提升了图像渲染处理效率,降低了处理时长,彻底将云游戏的处理过程云化,即由服务端完成图像渲染和处理,终端仅用于发出触控信息和显示,从根本上解决了当前的云游戏技术方案中不依赖终端GPU的情况下真正在服务端完成图像渲染功能的问题,提升了用户体验。另一方面,相比于传统做法中由终端完成图像渲染和图像编码生成视频流的过程,本申请中由目标GPU对渲染后的图像进行了编码,生成视频流,直接将视频流信息传输给终端,终端仅用于显示视频流信息的内容,减少了终端的处理过程和资源消耗。而且,由GPU资源池中GPU完成上述图像编码和生成视频流信息的过程,可以减少处理时长,终端仅用于显示上述视频流信息,进一步提升了用户体验。
图6为申请提供的另一种数据处理装置600的结构示意图。如图所示,所述装置600包括接收单元601、处理单元602和发送单元603,
所述接收单元601,用于接收第一服务器发送的指令流信息,所述装置为GPU资源池中任意一个服务器,所述GPU资源池中包括至少一个GPU,所述第一服务器为运行仿真器的服务器,所述仿真器用于协助终端完成游戏处理,所述指令流信息中包括游戏标识ID、触控输入信息和终端的IP地址;
所述处理单元602,用于在GPU资源池中选择一个目标GPU解析所述指令流信息,并进行图像渲染及编码,生成视频流信息;
所述发送单元603,用于根据所述终端的IP地址向所述终端发送所述视频流信息。
可选地,所述处理单元602在GPU资源池中选择一个目标GPU解析所述指令流信息,包括:
根据所述GPU资源池中各个GPU的负载情况,选择负载最轻的GPU为目标GPU;或者,
按照所述GPU资源池中各个GPU的标识ID选择一个GPU为目标GPU;或者,
随机在所述GPU资源池中选择一个GPU为目标GPU。
可选地,所述GPU资源池中包括一台所述装置,所述装置上部署有至少一个GPU;或者,
所述GPU资源池中包括至少一台服务器,所述至少一台服务器中每台服务器中均部署有至少一个GPU;所述装置为所述至少一台服务器中任意一台服务器;或者,
所述GPU资源池中包括所述装置和至少一台第三服务器,所述至少一台第三服务器中每台第三服务器中均部署有至少一个GPU。
可选地,所述处理单元602在GPU资源池中选择一个目标GPU解析所述指令流信息,包括:
目标GPU根据预置的开放式图形库openGL与针对嵌入式设备的开放式图形库openGLES转换映射表将所述指令流信息的openGLES数据转换为openGL数据。
应理解的是,本发明实施例的装置600可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图3至图4中所示的数据处理方法时,该装置及其各个模块也可以为软件模块。
根据本发明实施例的装置600可对应于执行本发明实施例中描述的方法,并且装置600中的各个单元的上述和其它操作和/或功能分别为了实现图3至图4中的各个方法中第二服务器所执行的相应流程,为了简洁,在此不再赘述。
通过上述装置600的描述,由GPU资源池中GPU完成对图像渲染,并生成视频流经TCP/IP协议传输给终端,由终端完成显示,呈献给用户。整个过程不需要终端完成对图像的渲染,对游戏的图像渲染处理过程由GPU资源池中目标GPU完成,降低了终端负载,以及对终端硬件配置的要求。同时,由于由GPU资源池中GPU完成图像渲染,该GPU的处理能力高于终端对图像处理能力,进一步提升了图像渲染处理效率,降低了处理时长,彻底将云游戏的处理过程云化,即由服务端完成图像渲染和处理,终端仅用于发出触控信息和显示,从根本上解决了当前的云游戏技术方案中不依赖终端GPU的情况下真正在服务端完成图像渲染功能的问题,提升了用户体验。另一方面,相比于传统做法中由终端完成图像渲染和图像编码生成视频流的过程,本申请中由目标GPU对渲染后的图像进行了编码,生成视频流,直接将视频流信息传输给终端,终端仅用于显示视频流信息的内容,减少了终端的处理过程和资源消耗。而且,由GPU资源池中GPU完成上述图像编码和生成视频流信息的过程,可以减少处理时长,终端仅用于显示上述视频流信息,进一步提升了用户体验。
图7为本发明实施例提供的一种第一服务器700的示意图,如图所示,所述第一服务器700包括处理器701、存储器702、通信接口703和总线704、图形处理器705。其中,处理器701、存储器702、通信接口703、存储设备705通过总线704进行通信,也可以通过无线传输等其他手段实现通信。该存储器702用于存储指令,该处理器701用于执行该存储器702存储的指令。该存储器702存储程序代码,且处理器701可以调用存储器702中存储的程序代码执行以下操作:
接收终端发送的控制流信息,所述控制流信息中包括游戏标识ID、触控输入信息和所述终端的IP地址,所述触控输入信息用于标识用户通过终端对游戏的操作;
解析所述控制流信息,并根据所述游戏ID启动游戏;
截获指令流信息,所述指令流信息中包括指示所述游戏ID和所述触控输入信息的内容;
向第二服务器发送所述指令流信息,以使所述第二服务器在图形处理器GPU资源池中选择目标GPU处理所述指令流信息,完成图像渲染及编码,并生成视频流信息发送给所述终端,所述GPU资源池中包括所述第二服务器和至少一个GPU。
可选地,所述GPU资源池中仅包括一台第二服务器,所述第二服务器中部署有至少一个GPU;或者,
所述GPU资源池中仅包括至少一台第二服务器,所述至少一台第二服务器中每台第二服务器部署有至少一个GPU;或者,
所述GPU资源池中包括一台第二服务器和至少一台其他服务器,所述至少一台其他服务器中每台服务器均部署有至少一个GPU。
可选地,所述终端安装有安卓操作系统,所述第一服务器700中预先安装有安卓仿真器AVD,所述第一服务器700解析所述控制流信息,并根据所述游戏ID启动游戏,包括:
所述AVD根据所述游戏ID调用操作系统命令,启动游戏进程,以使所述游戏进程根据所述触控输入信息操作所述游戏运行。
可选地,所述第一服务器700截获指令流信息包括:
所述第一服务器监控游戏进程ID,当监测到存在新的游戏进程ID时,获取所述指令流信息。
应理解,在本发明实施例中,该处理器701可以是CPU,该处理器701还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器701可以是支持ARM架构的处理器。
该存储器702可以包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。存储器702还可以包括非易失性随机存取存储器。例如,存储器702还可以存储设备类型的信息。
该存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
该总线704除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线704。
应理解,根据本发明实施例的第一服务器700可对应于本发明实施例中的图5所示的数据处理的装置500,并可以对应于执行根据本发明实施例中图3至图4所示方法中的第一服务器为执行主体的操作步骤,并且第一服务器中的各个模块的上述和其它操作和/或功能分别为了实现图3至图4中的各个方法的相应流程,为了简洁,在此不再赘述。
通过上述过程的描述,由GPU资源池中GPU完成对图像渲染,并生成视频流经TCP/IP协议传输给终端,由终端完成显示,呈献给用户。整个过程不需要终端完成对图像的渲染,对游戏的图像渲染处理过程由GPU资源池中目标GPU完成,降低了终端负载,以及对终端硬件配置的要求。同时,由于由GPU资源池中GPU完成图像渲染,该GPU的处理能力高于终端对图像处理能力,进一步提升了图像渲染处理效率,降低了处理时长,彻底将云游戏的处理过程云化,即由服务端完成图像渲染和处理,终端仅用于发出触控信息和显示,从根本上解决了当前的云游戏技术方案中不依赖终端GPU的情况下真正在服务端完成图像渲染功能的问题,提升了用户体验。另一方面,相比于传统做法中由终端完成图像渲染和图像编码生成视频流的过程,本申请中由目标GPU对渲染后的图像进行了编码,生成视频流,直接将视频流信息传输给终端,终端仅用于显示视频流信息的内容,减少了终端的处理过程和资源消耗。而且,由GPU资源池中GPU完成上述图像编码和生成视频流信息的过程,可以减少处理时长,终端仅用于显示上述视频流信息,进一步提升了用户体验。
图8为本发明实施例提供的一种第二服务器800的示意图,如图所示,所述第二服务器800包括处理器801、存储器802、通信接口803和总线804、图形处理器805。其中,处理器801、存储器802、通信接口803、图形处理器805通过总线804进行通信,也可以通过无线传输等其他手段实现通信。该存储器802用于存储指令,该处理器801和图形处理器805用于执行该存储器802存储的指令。该存储器802存储程序代码,且处理器801和图形处理器805可以调用存储器802中存储的程序代码执行以下操作:
接收第一服务器发送的指令流信息,所述第二服务器为GPU资源池中任意一个服务器,所述GPU资源池中包括至少一个GPU,所述第一服务器为运行仿真器的服务器,所述指令流信息中包括游戏标识ID、触控输入信息和终端的IP地址;
在GPU资源池中选择一个目标GPU解析所述指令流信息,并进行图像渲染及编码,生成视频流信息;
根据所述终端的IP地址向所述终端发送所述视频流信息。
可选地,所述第二服务器在GPU资源池中选择一个目标GPU解析所述指令流信息包括:
所述第二服务器根据所述GPU资源池中各个GPU的负载情况,选择负载最轻的GPU为所述目标GPU;或者,
所述第二服务器按照所述GPU资源池中各个GPU的标识ID选择一个GPU为所述目标GPU;或者,
所述第二服务器随机在所述GPU资源池中选择一个GPU为所述目标GPU。
可选地,所述GPU资源池中包括一台所述第二服务器800,所述第二服务器800上部署有至少一个GPU;或者,
所述GPU资源池中包括至少一台服务器,所述至少一台服务器中每台服务器中均部署有至少一个GPU;所述第二服务器800为所述至少一台服务器中任意一台服务器;或者,
所述GPU资源池中包括第二服务器800和至少一台第三服务器,所述至少一台第三服务器中每台第三服务器均部署有至少一个GPU。
可选地,所述第二服务器800在GPU资源池中选择一个目标GPU解析所述指令流信息,包括:目标GPU根据预置的开放式图形库openGL与针对嵌入式设备的开放式图形库openGLES转换映射表将所述指令流信息的openGLES数据转换为openGL数据。
应理解,在本发明实施例中,该处理器801可以是CPU,该处理器801还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
该存储器802可以包括只读存储器和随机存取存储器,并向处理器801提供指令和数据。存储器802还可以包括非易失性随机存取存储器。例如,存储器802还可以存储设备类型的信息。
该存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
该总线804除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线804。
该GPU805为专门在个人电脑、工作站、游戏机和移动设备(如平板电脑、智能终端等)上图像运算工作的微处理器。
应理解,根据本发明实施例的第二服务器800可对应于本发明实施例中的图6所示的数据处理的装置600,并可以对应于执行根据本发明实施例中图3至图4所示方法中的第二服务器为执行主体的操作步骤,并且第二服务器中的各个模块的上述和其它操作和/或功能分别为了实现图3至图4中的各个方法的相应流程,为了简洁,在此不再赘述。
通过上述过程的描述,由GPU资源池中GPU完成对图像渲染,并生成视频流经TCP/IP协议传输给终端,由终端完成显示,呈献给用户。整个过程不需要终端完成对图像的渲染,对游戏的图像渲染处理过程由GPU资源池中目标GPU完成,降低了终端负载,以及对终端硬件配置的要求。同时,由于由GPU资源池中GPU完成图像渲染,该GPU的处理能力高于终端对图像处理能力,进一步提升了图像渲染处理效率,降低了处理时长,彻底将云游戏的处理过程云化,即由服务端完成图像渲染和处理,终端仅用于发出触控信息和显示,从根本上解决了当前的云游戏技术方案中不依赖终端GPU的情况下真正在服务端完成图像渲染功能的问题,提升了用户体验。另一方面,相比于传统做法中由终端完成图像渲染和图像编码生成视频流的过程,本申请中由目标GPU对渲染后的图像进行了编码,生成视频流,直接将视频流信息传输给终端,终端仅用于显示视频流信息的内容,减少了终端的处理过程和资源消耗。而且,由GPU资源池中GPU完成上述图像编码和生成视频流信息的过程,可以减少处理时长,终端仅用于显示上述视频流信息,进一步提升了用户体验。
本发明实施例还提供一种如图3所示云游戏的系统架构示意图。该系统中包括第一服务器和第二服务器,其中,第一服务器用于执行图3或图4中第一服务器为执行主体的操作步骤,第二服务器用于执行图3或图4中第二服务器为执行主体的操作步骤,在此不再赘述。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本发明的具体实施方式。熟悉本技术领域的技术人员根据本发明提供的具体实施方式,可想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (15)
1.一种数据处理的方法,其特征在于,所述方法包括:
第一服务器接收终端发送的控制流信息,所述第一服务器为运行所述终端待操作游戏所对应的安卓仿真器AVD的服务器,所述控制流信息中包括游戏标识ID、触控输入信息和所述终端的IP地址,所述触控输入信息用于标识用户通过终端对游戏的操作;
所述第一服务器解析所述控制流信息,并根据所述游戏标识ID启动游戏;
所述第一服务器截获指令流信息,所述指令流信息中包括指示所述游戏和所述触控输入信息的内容、所述终端的IP地址;
所述第一服务器向第二服务器发送所述指令流信息,以使所述第二服务器在图形处理器GPU资源池中选择目标GPU处理所述指令流信息,完成图像渲染及编码,并生成视频流信息发送给所述终端,所述第二服务器为所述GPU资源池中任意一台服务器,所述GPU资源池中包括多个GPU,所述第二服务器用于管理所述GPU资源池。
2.根据权利要求1所述方法,其特征在于,所述第一服务器截获指令流信息包括:
所述第一服务器监控游戏进程ID,当监测到存在新的游戏进程ID时,获取所述指令流信息。
3.一种数据处理的方法,其特征在于,所述方法包括:
第二服务器接收第一服务器发送的指令流信息,所述第一服务器为运行终端待操作游戏所对应的安卓仿真器AVD的服务器,所述第二服务器为GPU资源池中任意一台服务器,所述GPU资源池中包括多个GPU,所述第二服务器用于管理所述GPU资源池,所述第一服务器为运行仿真器的服务器,所述仿真器用于协助终端完成游戏处理,所述指令流信息中包括游戏标识ID、触控输入信息和所述终端的IP地址;
所述第二服务器在GPU资源池中选择一个目标GPU解析所述指令流信息,并进行图像渲染及编码,生成视频流信息;
所述第二服务器根据所述终端的IP地址向所述终端发送所述视频流信息。
4.根据权利要求3所述方法,其特征在于,所述第二服务器在GPU资源池中选择一个目标GPU解析所述指令流信息包括:
所述第二服务器根据所述GPU资源池中各个GPU的负载情况,选择负载最轻的GPU为所述目标GPU;或者,
所述第二服务器按照所述GPU资源池中各个GPU的标识ID选择一个GPU为所述目标GPU;或者,
所述第二服务器随机在所述GPU资源池中选择一个GPU为所述目标GPU。
5.根据权利要求3或4中所述方法,其特征在于,所述方法包括:
所述GPU资源池中包括一台所述第二服务器,所述第二服务器上部署有至少一个GPU;或者,
所述GPU资源池中包括至少一台服务器,所述至少一台服务器中每台服务器中均部署有至少一个GPU;所述第二服务器为所述至少一台服务器中任意一台服务器;或者,
所述GPU资源池中包括所述第二服务器和至少一台第三服务器,所述至少一台第三服务器中每台第三服务器均部署有至少一个GPU。
6.根据权利要求3或4所述方法,其特征在于,所述第二服务器在GPU资源池中选择一个目标GPU解析所述指令流信息,包括:
目标GPU根据预置的开放式图形库openGL与针对嵌入式设备的开放式图形库openGLES转换映射表将所述指令流信息的openGLES数据转换为openGL数据。
7.一种数据处理的装置,其特征在于,所述装置为运行终端待操作游戏所对应的安卓仿真器AVD的服务器,所述装置包括接收单元、处理单元、截获单元和发送单元;
所述接收单元,用于接收终端发送的控制流信息,所述控制流信息中包括游戏标识ID、触控输入信息和所述终端的IP地址,所述触控输入信息用于标识用户通过终端对游戏的操作;
所述处理单元,用于解析所述控制流信息,并根据所述游戏标识ID启动游戏;
所述截获单元,用于截获指令流信息,所述指令流信息中包括指示所述游戏和所述触控输入信息的内容;
所述发送单元,用于向第二服务器发送所述指令流信息,以使所述第二服务器在图形处理器GPU资源池中选择目标GPU处理所述指令流信息,完成图像渲染及编码,并生成视频流信息发送给所述终端,所述第二服务器为所述GPU资源池中任意一台服务器,所述GPU资源池中包括多个GPU,所述第二服务器用于管理所述GPU资源池。
8.根据权利要求7所述装置,其特征在于,所述截获单元截获指令流信息包括:
监控游戏进程ID,当监测到存在新的游戏进程ID时,获取所述指令流信息。
9.一种数据处理的装置,其特征在于,所述装置包括接收单元、处理单元和发送单元,
所述接收单元,用于接收第一服务器发送的指令流信息,所述第一服务器为运行终端待操作游戏所对应的安卓仿真器AVD的服务器,第二服务器为GPU资源池中任意一台服务器,所述GPU资源池中包括多个GPU,所述第一服务器为运行仿真器的服务器,所述仿真器用于协助终端完成游戏处理,所述指令流信息中包括游戏标识ID、触控输入信息和所述终端的IP地址;
所述处理单元,用于在GPU资源池中选择一个目标GPU解析所述指令流信息,并进行图像渲染及编码,生成视频流信息;
所述发送单元,用于根据所述终端的IP地址向所述终端发送所述视频流信息。
10.根据权利要求9所述装置,其特征在于,所述处理单元在GPU资源池中选择一个目标GPU解析所述指令流信息,包括:
根据所述GPU资源池中各个GPU的负载情况,选择负载最轻的GPU为目标GPU;或者,
按照所述GPU资源池中各个GPU的标识ID选择一个GPU为目标GPU;或者,
随机在所述GPU资源池中选择一个GPU为目标GPU。
11.根据权利要求9或10所述装置,其特征在于,包括:
所述GPU资源池中包括一台所述第二服务器,所述第二服务器上部署有至少一个GPU;或者,
所述GPU资源池中包括至少一台服务器,所述至少一台服务器中每台服务器中均部署有至少一个GPU;所述第二服务器为所述至少一台服务器中任意一台服务器;或者,
所述GPU资源池中包括所述第二服务器和至少一台第三服务器,所述至少一台第三服务器中每台第三服务器中均部署有至少一个GPU。
12.根据权利要求9或10所述装置,特征在于,所述处理单元在GPU资源池中选择一个目标GPU解析所述指令流信息,包括:
目标GPU根据预置的开放式图形库openGL与针对嵌入式设备的开放式图形库openGLES转换映射表将所述指令流信息的openGLES数据转换为openGL数据。
13.一种第一服务器,其特征在于,所述第一服务器包括处理器、存储器、总线,所述处理器和存储器之间通过总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述第一服务器运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述第一服务器中的硬件资源执行权利要求1至2中任一所述方法的操作步骤。
14.一种第二服务器,其特征在于,所述第二服务器包括处理器、存储器、总线,所述处理器、存储器和通信接口之间通过总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述第二服务器运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述第二服务器中的硬件资源执行权利要求3至6中任一所述方法的操作步骤。
15.一种数据处理的系统,所述系统包括第一服务器和第二服务器,所述第一服务器用于执行权利要求1至2所述方法的操作步骤,所述第二服务器用于执行权利要求3-6所述方法的操作步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810183257.3A CN110227259B (zh) | 2018-03-06 | 2018-03-06 | 一种数据处理的方法、装置、服务器和系统 |
CN202210429501.6A CN114968478A (zh) | 2018-03-06 | 2018-03-06 | 一种数据处理的方法、装置、服务器和系统 |
PCT/CN2018/118927 WO2019169913A1 (zh) | 2018-03-06 | 2018-12-03 | 一种数据处理的方法、装置、服务器和系统 |
US16/984,442 US11878237B2 (en) | 2018-03-06 | 2020-08-04 | Server and data processing method, apparatus, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810183257.3A CN110227259B (zh) | 2018-03-06 | 2018-03-06 | 一种数据处理的方法、装置、服务器和系统 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210429501.6A Division CN114968478A (zh) | 2018-03-06 | 2018-03-06 | 一种数据处理的方法、装置、服务器和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110227259A CN110227259A (zh) | 2019-09-13 |
CN110227259B true CN110227259B (zh) | 2022-04-29 |
Family
ID=67845460
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810183257.3A Active CN110227259B (zh) | 2018-03-06 | 2018-03-06 | 一种数据处理的方法、装置、服务器和系统 |
CN202210429501.6A Pending CN114968478A (zh) | 2018-03-06 | 2018-03-06 | 一种数据处理的方法、装置、服务器和系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210429501.6A Pending CN114968478A (zh) | 2018-03-06 | 2018-03-06 | 一种数据处理的方法、装置、服务器和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11878237B2 (zh) |
CN (2) | CN110227259B (zh) |
WO (1) | WO2019169913A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110933226B (zh) * | 2019-11-11 | 2021-08-24 | 深圳前海氢氧科技有限公司 | 应用程序远程托管方法及装置 |
US11798118B2 (en) | 2019-12-20 | 2023-10-24 | Intel Corporation | Asset caching in cloud rendering computing architectures |
CN111214828A (zh) * | 2020-01-03 | 2020-06-02 | 北京小米移动软件有限公司 | 游戏运行方法、装置、设备、介质及云端游戏平台 |
CN111258715B (zh) * | 2020-01-13 | 2023-10-31 | 奇安信科技集团股份有限公司 | 多操作系统渲染处理方法及装置 |
CN113368492B (zh) * | 2020-02-25 | 2023-06-27 | 华为技术有限公司 | 渲染的方法、装置 |
CN111420390A (zh) * | 2020-03-11 | 2020-07-17 | 广州微算互联信息技术有限公司 | 一种实现移动设备控制pc游戏的方法、装置及系统 |
CN111782299A (zh) * | 2020-07-03 | 2020-10-16 | 珠海金山网络游戏科技有限公司 | 一种游戏接入方法及装置 |
CN113992493A (zh) * | 2020-07-08 | 2022-01-28 | 阿里巴巴集团控股有限公司 | 视频处理方法、系统、设备及存储介质 |
CN111930328B (zh) * | 2020-08-10 | 2024-03-15 | 西安万像电子科技有限公司 | 应用数据的显示方法、装置及系统 |
CN112257067B (zh) * | 2020-11-02 | 2023-01-06 | 上海小麦互动企业发展有限公司 | 一种基于arm云游戏木马病毒服务器检测装置 |
CN112307035B (zh) * | 2020-11-26 | 2024-01-05 | 深圳云天励飞技术股份有限公司 | 一种特征值id的管理方法、装置、电子设备及存储介质 |
CN112791385A (zh) * | 2021-03-22 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 游戏运行方法、装置、控制设备以及服务器 |
CN113141511A (zh) * | 2021-04-20 | 2021-07-20 | 上海卓易科技股份有限公司 | 一种图形渲染方法及设备 |
CN113368504B (zh) * | 2021-06-09 | 2023-10-17 | 咪咕互动娱乐有限公司 | 云游戏服务系统、交互方法、存储介质 |
CN113630614A (zh) * | 2021-08-09 | 2021-11-09 | 广州虎牙科技有限公司 | 游戏直播方法、装置、系统、电子设备及可读存储介质 |
CN113794887A (zh) * | 2021-08-17 | 2021-12-14 | 镕铭微电子(济南)有限公司 | 一种游戏引擎中视频编码的方法及相关设备 |
CN113791908B (zh) * | 2021-09-16 | 2024-03-29 | 脸萌有限公司 | 服务运行方法、装置和电子设备 |
CN114666562A (zh) * | 2022-05-25 | 2022-06-24 | 天津安锐捷技术有限公司 | 3d场景交互方法、装置和系统 |
CN115955550B (zh) * | 2023-03-15 | 2023-06-27 | 浙江宇视科技有限公司 | 一种gpu集群的图像分析方法与系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571900A (zh) * | 2010-12-08 | 2012-07-11 | 中国电信股份有限公司 | 一种实现远端实时操控的系统和方法 |
CN103023872A (zh) * | 2012-11-16 | 2013-04-03 | 杭州顺网科技股份有限公司 | 一种云游戏服务平台 |
CN103309748A (zh) * | 2013-06-19 | 2013-09-18 | 上海交通大学 | 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法 |
KR20150085376A (ko) * | 2014-01-15 | 2015-07-23 | 한국전자통신연구원 | 클라우드 게이밍 환경에서 렌더링 서비스를 위한 부하 분산 시스템 및 이의 부하 분산 방법 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030130040A1 (en) * | 2001-07-17 | 2003-07-10 | Jeffrey Thomas Dripps | Distributed video game system and method |
KR101168108B1 (ko) * | 2009-06-23 | 2012-07-25 | 엔에이치엔(주) | 온라인 게임을 이용한 광고 방법, 및 그 방법을 수행하기 위한 프로그램이 기록된 기록매체 |
US20140344469A1 (en) * | 2013-05-17 | 2014-11-20 | Evology, Llc | Method of in-application encoding for decreased latency application streaming |
US9412146B2 (en) * | 2013-10-25 | 2016-08-09 | Futurewei Technologies, Inc. | System and method for distributed virtualization of GPUs in desktop cloud |
US10046236B2 (en) * | 2016-06-13 | 2018-08-14 | Sony Interactive Entertainment America, LLC | Browser-based cloud gaming |
CN107566346B (zh) * | 2017-08-10 | 2020-08-11 | 腾讯科技(深圳)有限公司 | 3d游戏数据的传输方法、装置以及存储介质、电子装置 |
CN107455346A (zh) | 2017-09-16 | 2017-12-12 | 海之星(福建)远洋渔业有限公司 | 一种远洋捕捞用浅水鱼类捕捞装置 |
CN108173735B (zh) * | 2018-01-17 | 2020-08-25 | 苏州浪潮智能科技有限公司 | 一种GPU Box服务器级联通信方法、装置及系统 |
US11937093B2 (en) * | 2019-02-19 | 2024-03-19 | Indian Institute Of Technology Madras | Simultaneous sharing of spectrum in wireless communications |
KR20210020570A (ko) * | 2019-08-16 | 2021-02-24 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
-
2018
- 2018-03-06 CN CN201810183257.3A patent/CN110227259B/zh active Active
- 2018-03-06 CN CN202210429501.6A patent/CN114968478A/zh active Pending
- 2018-12-03 WO PCT/CN2018/118927 patent/WO2019169913A1/zh active Application Filing
-
2020
- 2020-08-04 US US16/984,442 patent/US11878237B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571900A (zh) * | 2010-12-08 | 2012-07-11 | 中国电信股份有限公司 | 一种实现远端实时操控的系统和方法 |
CN103023872A (zh) * | 2012-11-16 | 2013-04-03 | 杭州顺网科技股份有限公司 | 一种云游戏服务平台 |
CN103309748A (zh) * | 2013-06-19 | 2013-09-18 | 上海交通大学 | 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法 |
KR20150085376A (ko) * | 2014-01-15 | 2015-07-23 | 한국전자통신연구원 | 클라우드 게이밍 환경에서 렌더링 서비스를 위한 부하 분산 시스템 및 이의 부하 분산 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN110227259A (zh) | 2019-09-13 |
WO2019169913A1 (zh) | 2019-09-12 |
US11878237B2 (en) | 2024-01-23 |
CN114968478A (zh) | 2022-08-30 |
US20200360805A1 (en) | 2020-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110227259B (zh) | 一种数据处理的方法、装置、服务器和系统 | |
US10915983B2 (en) | System for distributed virtualization of GPUs in desktop cloud | |
CN111681167B (zh) | 画质调整方法和装置、存储介质及电子设备 | |
US10110936B2 (en) | Web-based live broadcast | |
CN103701807B (zh) | 一种vdi环境下的数据发送方法和装置 | |
CN102413150B (zh) | 服务器、虚拟桌面控制方法以及虚拟桌面控制系统 | |
US20170004808A1 (en) | Method and system for capturing a frame buffer of a virtual machine in a gpu pass-through environment | |
CN104780339A (zh) | 一种即时视频中的表情特效动画加载方法和电子设备 | |
CN110149382A (zh) | 数据同步的方法、系统、主服务器、同步客户端及介质 | |
US20230215076A1 (en) | Image frame display method, apparatus, device, storage medium, and program product | |
CN108762934B (zh) | 远程图形传输系统、方法及云服务器 | |
US8959514B2 (en) | Virtual machine monitor display split using multiple client devices in a virtualization system | |
CN108389241A (zh) | 游戏场景中生成贴图的方法、装置和系统 | |
CN113849312A (zh) | 数据处理任务的分配方法、装置、电子设备及存储介质 | |
CN107402782A (zh) | 一种用于在直播软件中加载插件的方法及装置 | |
CN115065684B (zh) | 数据处理方法、装置、设备以及介质 | |
CN111768330A (zh) | 图像处理方法及计算机系统 | |
CN103164227B (zh) | 一种窗口图像的采集方法及装置 | |
CN114968152B (zh) | 减少virtio-gpu额外性能损耗的方法 | |
CN112835730A (zh) | 图像存储、内存分配、图像合成方法、装置、设备及介质 | |
CN114513506A (zh) | 业务处理方法、接入边缘云服务器及业务处理系统 | |
CN112488907A (zh) | 数据处理方法及系统 | |
KR20210104143A (ko) | 이미지 획득 방법, 기기, 서버 및 저장 매체 | |
CN111399976A (zh) | 基于api重定向技术的gpu虚拟化实现系统及方法 | |
CN113672387A (zh) | 一种基于绘图编程接口的远程调用图形渲染方法及其系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |