CN105556471A - 自适应远程计算 - Google Patents
自适应远程计算 Download PDFInfo
- Publication number
- CN105556471A CN105556471A CN201380077952.7A CN201380077952A CN105556471A CN 105556471 A CN105556471 A CN 105556471A CN 201380077952 A CN201380077952 A CN 201380077952A CN 105556471 A CN105556471 A CN 105556471A
- Authority
- CN
- China
- Prior art keywords
- display frame
- application
- client
- remote
- computing devices
- 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.)
- Granted
Links
Classifications
-
- 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
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Digital Computer Display Output (AREA)
Abstract
本文公开了一种与操作应用相关联的设备、方法和存储介质。在实施例中,一种方法可包括通过应用的客户端侧在客户端计算装置上本地创建该应用的图形上下文。该图形上下文包括多个与产生该应用的显示帧相关联的再现资源。该应用的客户端侧可能通过该应用的远程侧使得在远程计算资源的集合上创建图形上下文的副本。该应用的客户端侧随后自适应地使得本地或者远程产生显示帧。还可描述和要求保护其它的实施例。
Description
技术领域
本发明涉及计算领域,具体地,涉及与自适应远程计算相关联的设备、方法和存储介质。
背景技术
在此提供的背景技术描述是为了通常呈现本发明的上下文的目的。除非在本文中特别指出,否则在这一部分描述的材料对于本申请中的权利要求不是现有技术并且不被允许通过包括在这一部分中而作为现有技术。
在通用微处理器、连网以及相关联技术中的发展推动了远程计算的进一步发展。当前,很多应用是在计算云中执行的。普通的云应用,例如云游戏,典型地在云侧也被称为服务器侧或者远程侧执行大部分再现。但是,响应时间可能并非总是很好,尤其是在拥塞网络条件下。
附图说明
通过下面结合附图的详细描述,可以很容易理解实施例。为了有利于该描述,类似的参考标记表示类似的结构单元。实施例是通过举例的方式在附图的图中示出的,而不是通过限制的方式。
附图1示出了根据多个实施例的,合并了本发明的教导的用于自适应远程计算的示例性的计算设置的总体图。
附图2示出了根据多个实施例的显示帧以及与产生显示帧相关联的图形调用。
附图3示出了根据多个实施例的用于自适应远程计算的客户端侧的处理。
附图4示出了根据多个实施例的用于自适应远程计算的远程侧的处理。
附图5示出了根据多个实施例的适合于实现本发明的示例性计算环境。
附图6示出了根据多个实施例的,具有被配置为使得设备实现本发明的各个方面的指令的示例性存储介质。
具体实施方式
在此公开了与操作应用相关联的设备、方法和存储介质。在实施例中,一种方法可通过应用的客户端侧在客户端计算装置上本地创建该应用的图形上下文。该图形上下文可包括多个与产生该应用的显示帧相关联的再现资源。该应用的客户端侧可能通过该应用的远程侧使得在远程计算资源的集合上创建图形上下文的副本。该应用的客户端侧随后可自适应地使得本地或者远程产生显示帧。该应用的一个例子是基于云的游戏应用,其具有作为计算云的计算资源的远程计算资源的集合。
在实施例中,该应用的客户端侧可在显示帧的开始以及显示帧的结束做出是否本地或者远程产生显示帧的确定。在显示帧的开始,应用的客户端侧可至少部分基于例如客户端计算装置的图形单元的能力,和/或耦合客户端计算装置和远程计算资源的集合的网络的带宽来做出确定。在显示帧的结束,被配置为打包和发送图形调用使得远程产生显示帧的应用的客户端侧的包装器可重确定是否确实远程产生显示帧或者改为本地产生。该重确定可进一步基于例如显示帧的复杂度。
在实施例中,例如智能电话或者计算平板的一个设备可包括一个或者多个处理器,以及具有被配置为使得该设备响应于一个或者多个处理器的操作来执行任意上述方法和它们的变形的应用的客户端侧的存储介质。在实施例中,至少一个存储介质可包括配置为响应于由该设备执行使得该设备而执行任意上述方法和它们的变形的指令。
在后面的详细描述中,参考了作为描述的一部分的附图,其中贯穿全文,相似的标记表示相似的部分,并且其中通过可被实现的示范实施例的方式来示出。应当理解其它实施例可能被使用并且在不超出本发明的范围的情况下做出结构和逻辑改变。因此,下面的详细描述不是限制意义,而实施例的范围是通过附加的权利要求及其等同替换来定义的。
各种操作可被以最有助于理解要求保护的主题的方式描述为多个单独的动作或者连续的操作。但是,描述的顺序不应被解释为意味是这些操作必须按照顺序。特别是,描述的操作可以不按照呈现的顺序执行。描述的操作可能以与描述的实施例不同的顺序执行。在附加实施例中,各种附加的操作可以被执行和/或描述的操作可以被省略。
为了本发明的目的,短语“A和/或B”意思是(A)、(B)或者(A和B)。为了本发明的目的,短语“A、B、和/或C”意思是(A)、(B)、(C)、(A和B)、(A和C)、(B和C),或者(A、B和C)。
本描述可能使用短语“在一个实施例中,”或者“在实施例中,”,它们的每一个指的是一个或者多个相同的或者不同的实施例。此外,如针对发明的实施例使用的术语“包含”、“包括”、“具有”之类的是相同的意思。
如包括权利要求书的下文使用的术语“模块”被认为包括专用集成电路(“ASIC”)、电子电路、执行一个或者多个软件或者固件程序的处理器(共享的、专用的,或者群组)和/或存储器(共享的、专用的,或者群组)、组合逻辑电路、和/或其它提供描述的功能的合适的部件或者是以上所列的一部分。术语“封闭字幕”将包括传统的封闭字幕和/或子标题。
现在参考附图1,示出了一种根据多个实施例的合并了本发明的教导的用于自适应远程计算的示例性计算设置的总体图。如所示,在实施例中,计算设置100可包括通过网络106彼此耦合的客户端计算装置102以及计算云104。客户端计算装置102可包括彼此耦合的如所示的处理器和存储器设置112,以及多个外部装置,例如存储装置114、图形处理单元(GPU)116、连网接口(NIC)118以及显示器单元120。处理器和存储器设置112可被配置为主机并且操作操作系统和服务及应用,例如应用的客户端侧122,其可具有应用的远程侧142。在实施例中,应用的远程侧142可在计算云104的一些计算资源132上操作。在实施例中,应用的客户端侧122和远程侧124可配置有本发明的教导从而使得应用的显示帧能够被在客户端计算装置102或者计算云104上自适应地产生。结果是,该应用的用户体验可被潜在地增强。下面另外参考附图2-6进一步描述这些和其它方面。
现在仍然参考附图1,在实施例中,应用的客户端侧122可被配置为确定显示帧是否在计算装置102上例如使用GPU116本地或者例如使用计算云104的计算资源132远程产生。应用的客户端侧122可被配置为在显示帧的开始,以及显示帧的结束做出本地或者远程产生确定。在每一个确定时,应用的客户端侧122可考虑一个或者多个因素,包括但是不限制于,例如网络106的带宽、GPU116的能力和/或显示帧的复杂度。
在实施例中,应用的客户端侧122可被配置为在客户端计算装置102上创建和保存包括多个与产生显示帧相关联的再现资源的图形上下文123。再现资源的例子包括但是不限制于纹理、索引缓冲器、顶点缓冲器、实例缓冲器或者着色器。此外,应用的客户端则122可能被配置为例如通过应用的远程侧142在计算云104的计算资源132上产生将要被创建和保持的图形上下文143的副本。换句话说,每一次应用的客户端侧122在客户端计算装置102上创建或者更新图形上下文123的再现资源时,例如创建纹理或者缓冲器时,应用的客户端侧122还可请求应用的远程侧142在计算云104上创建或者更新图形上下文143的副本中的再现资源,例如创建相同的纹理或者缓冲器。在实施例中,应用的客户端侧122还产生将要分配给再现资源的标识符,例如,纹理_A、纹理_B、缓冲器_A、缓冲器_B等等。
现在再参考附图2,其中示出了根据本发明的多个实施例的显示帧和与产生显示帧相关联的图形调用。如所示,每一个显示帧202可能包括通过帧起始标记204和帧结束标记208限制的边界的帧内容部分206。每一个帧内容部分206包括多个图形调用210。各种各样的图形调用,例如,但是不限制于,用于产生纹理和/或着色的图形调用,并且具有相关联的数据。一些这些相关联数据可能具有实质数量。图形调用的例子,除了产生纹理和/或着色的调用之外,可能包括,但是不限制于,更新或者清空缓冲器,再现到目标的调用等等。
在实施例中,如在附图1中所示,应用的客户端侧122可包括图形调用包装器124、打包器126和解包器128。反之,应用的远程侧142可包括处理引擎144、打包器146和解包器148。图形调用包装器124(或者此后,简称为“包装器”)被配置为截取图形调用和与产生显示帧相关联的相关联数据。在实施例中,包装器124被配置为响应于确定例如在显示帧的开始远程产生显示帧,截取图形调用和与产生显示帧相关联的相关联数据。在截取后,包装器124被配置为将图形调用和相关联数据保存到例如存储装置114中。此外,包装器124被配置为修改后续的(非再现资源创建)图形调用以通过它们的标识符来参考再现资源,从而潜在地降低传输图形调用(无相关联数据)给应用的远程侧142以处理所需要的带宽,以及产生显示帧。在处理图形调用中,应用的远程侧144将操作在通过标识符参考的再现资源的远程副本上。
在实施例中,客户端侧122的打包器126可被配置为编码和/或压缩图形调用(以及它们的相关联数据,如果在选择的情况下包括的话)从而被发送到应用的远程侧142,从而潜在地进一步降低将图形调用传输到应用的远程侧142所需要的网络106的带宽。远程侧142的解包器148可被配置为解码和/或解压缩打包的图形调用(以及它们的相关联数据,如果包括)以用于处理引擎144。处理引擎144可被配置为处理图形调用从而产生显示帧,其操作在通过标识符参考的再现资源的远程副本上,如之前描述的。
远程侧142的打包器146可被配置为编码和/或压缩在计算云104上产生的显示帧,从而准备将它们传输到客户端计算装置102,以便于潜在地降低将显示帧传输到应用的客户端侧122所需的网络106的带宽。客户端侧122的解包器128可被配置为解码和/或解压缩显示帧从而恢复显示帧。此外,解包器128可被配置为将恢复的显示帧发送到客户端计算装置102的再现器(未示出)从而在例如显示器单元120上再现显示帧。
仍然参考附图1,处理器和存储器设置102是用于表示广范围的处理器和存储器装置,包括但是不限制于为移动计算设计的设置。例如而不限制,处理器可能是现有技术中的多个单一或者多核通用或者专用目的处理器中的任意一个。存储器可能是现有技术中的包括但不限制于动态随机访问存储器(DRAM)、FLASH等等的多个易失和/或非易失存储装置中的任意一种。类似的,一个或者多个存储器单元可能被使用。此外,存储器可能包括一个或者多个缓存级别。
存储装置114可以是多种易失或者非易失永久存储装置中的任意一个。易失存储装置的例子包括静态随机访问存储器(SRAM)、动态随机访问存储器(DRAM)等等。非易失永久存储装置可能是多个现有技术中的磁、光和/或固态存储装置中的任意一个。可能包括一个或者多个存储装置单元。为了本申请的目的,术语“存储器”和“存储装置”被认为是可以互换的,除非上下文明确指出。同样,GPU116可以是现有技术中已知的广范围的图形处理器中的任意一种。NIC118可以是被配置为将处理器和存储器设置102耦合到个人、局域和/或广域网的广范围的有线和/或无线通信接口中的任一种。有线通信接口的例子包括以太网连网接口。无线通信接口的例子包括支持WiFi、3G/4G无线通信的接口。局域和/或广域网络可包括私人和/或公共网络,例如互联网。显示器单元120可以是多个现有技术中已知的显示器装置的任意一个,包括但是不限制于触摸屏显示器,其也可以作为输入装置使用。
在实施例中,客户端计算装置102可能包括其它部件,例如其它输入和输出装置。输入装置可能包括键盘或者其它光标控制和/或姿势识别装置。又另外,客户端计算装置102可包括全球定位系统(GPS)支持,摄像机,以及多种传感器。
在实施例中,处理器和存储器设置102以及各种外部装置可共同位于相同的平台上并且通过诸如系统总线的耦合而彼此耦合。也就是,单独或者与多个外部装置在一起的处理器和存储器设置102可形成单一计算装置,例如智能电话、计算平板、超级本、膝上计算机、台式计算机、服务器、机顶盒、游戏控制台、媒体播放器、e-阅读器等等。在其它实施例中,处理器和存储器设置102以及一些或者全部外部装置彼此间远程设置,并且通过耦合而彼此耦合,例如通过有线和/或无线、个人、局域和/或广域网络的通信耦合。
在远程侧,计算云104用于表示广范围的云计算服务器模型,包括但不限制于基础设施即服务(IaaS)、平台即服务(PaaS)、和/或软件即服务(SaaS)。计算资源132可能包括任意数量的处理器、存储器、存储装置、连网以及其它资源。类似于客户端计算装置102,这些处理器、存储器、存储装置、连网等资源用于表示现有技术中已知的广范围的这些资源,其具有适合用于构成计算云104的能力和性能特征。
在进行对本公开的自适应远程计算的其它描述之前,应当注意到,为了本申请的目的,术语云计算和远程计算被认为是相同的。云计算资源的集合被称为远程计算资源的集合。同样,应用的远程侧142也可被称为应用的服务器端侧。
现在参考附图3,其中示出了根据各种实施例的自适应远程计算的客户端侧的处理。例如通过应用的客户端侧122的多个单元来执行处理器300。如所示,处理300从框302开始,其中在显示帧的开始,可做出用于确定是否本地或者远程产生显示帧的第一确定。该第一确定可通过例如应用的客户端侧122来做出。如之前描述的,第一确定的做出是考虑了GPU116的能力、网络106的带宽和/或显示帧的复杂度。如果第一确定的结果是本地产生显示帧,则处理器300可从框302进行到框304。在框304,图形调用以及与产生显示相关联的相关联数据被例如通过应用的客户端侧122路由到例如GPU116的本地图形单元以便于处理。处理300可从框304前进到框306。在框306,例如通过GPU116,图形调用可被处理从而产生显示帧。处理300从框306进行到框308。在框308,产生的显示帧被路由到再现器从而在例如显示器单元120上再现。
返回到框302,如果在显示帧的开始,第一确定的结果是远程产生显示帧,则处理300可替代地前进到框310。在框310,例如通过包装器124,图形调用和相关联数据被截取。在框310,截取的图形调用和相关联数据还可被保存到例如存储装置114中。处理300可从框310前进到框312。在框312,在显示帧的结束,例如通过包装器124做出另一个(第二)关于是否本地或者远程产生显示帧的确定。如之前对第一确定描述的,第二确定的做出也同样考虑GPU116的能力、网络106的带宽,并且尤其是显示帧的复杂度。当确定显示帧应当被本地产生后,处理300前进到框304并且如先前描述的继续这些步骤。换句话说,在实施例中,在显示帧的开始的远程产生显示帧的之前的第一确定依然可能仍在显示帧的结束被改变,并且本地产生显示帧。在显示帧的开始来远程产生显示帧的之前的第一确定在显示帧的结束在使得显示帧被远程产生之前被第二确定再确认。重复的确定可提供应用的增强的自适应操作,并且进而可提供增强的用户体验。
另一方面,响应于以远程产生显示的之前的第一确定来继续的结果,处理300可前进到框314。在框314,例如通过打包器126将图形调用打包以便于传输给应用的远程侧142。此外,如之前描述的,打包之前图形调用被修改以通过它们的标识符来参考再现资源,从而无需传输图形调用的相关联数据,并且降低了用于传输网络106的带宽需求。
处理300可从框314进入到框316。在框316,打包的图形调用被例如通过打包器126传输到应用的远程侧142。处理300可从框316前进到框318。在框318,从应用的远程侧142接收显示帧。在实施例中,为了降低的网络106上的带宽需求,可以打包的形式接收显示帧。因此,处理300可能从框318进入到框320。在框320,可通过解包器128将打包的显示帧解包并且恢复。在解包后,处理300进入到框308,并且如之前描述的从其而继续。
现在参考附图4,其中示出了根据各种实施例的自适应远程计算的远程侧处理。例如可通过应用的远程侧142执行处理400。如所示,在实施例中,处理400可在框402开始。在框402,从应用的客户端侧122接收打包的图形调用。处理400从框402前进到框404。在框404,可例如通过解包器148将打包的图形调用解包。再解包后,处理400前进到框406。在框406,图形调用可被例如处理引擎148处理从而产生显示帧。在产生后,处理400可前进到框408。在框408,可例如通过打包器144将显示帧打包从而传输给应用的客户端侧122,从而潜在地降低例如网络106的网络带宽需求。在打包后,处理400可前进到框410。在框410,打包的显示帧可被传输给应用的客户端侧122从而解包和再现。该传输例如可以是通过打包器144执行的。
现在参考附图5,其中示出了根据多个实施例的适合用于附图1的设置的示例性计算机。如所示,计算机500可包括一个或者多个处理器或者处理器核502,以及系统存储器504。为了本申请的目的,包括权利要求,术语“处理器”和“处理器核”被认为是相同意思,除非上下文明确要求其它意思。此外,计算机500包括大容量存储装置506(例如,磁盘、硬驱动器、致密盘只读存储装置(CD-ROM)等等)、输入/输出装置508(例如显示器、键盘、光标控制器等等)以及通信接口510(例如连网接口卡、调制解调器等等)。这些元件可通过系统总线512来彼此耦合,系统总线512可表示一个或者多个总线。在多个总线的情况下,它们通过一个或者多个总线桥(未示出)来桥接。
这些元件中的每一个执行现有技术中已知的功能。具体来说,系统存储器504和大容量存储装置506被用于存储实现与之前描述的附图1的应用的客户端侧122和远程侧142相关联的操作的编程指令的工作副本以及永久副本,其共同地被表示为计算逻辑522。可通过处理器(多个)502支持的汇编器指令或者更高等级的语言,诸如例如可以被编译为此类指令的C来实现各种元件。
编程指令的永久副本可以在工厂中或者在现场中通过例如分布式介质(未示出),诸如光盘(CD),或者通过通信接口510(从分布式服务器(未示出))被置于永久存储装置506中。也就是,一个或者多个具有代理程序的实现的分布式介质可可被用于分配代理和编程各种计算装置。
这些元件510-512的数量、性能和/或容量可以变化,这依赖于示例性计算机500的期望的用途,例如是否示例性计算机500是固定计算装置,类似机顶盒或者台式计算机,还是移动计算装置,类似智能电话、计算平板、超级本或者膝上计算机。这些元件510-512的构成都是另外已知的,并且因此不再做进一步描述。
附图6示出了根据多个实施例的计算机可读非短暂性存储介质的例子,其具有配置为实现之前描述的与附图1中的应用的客户端侧122和/或远程侧142相关联的操作的所有或者选择的那些操作的指令。如所示的,非短暂性计算机可读存储介质602包括多个编程指令604。编程指令604可被配置为使得例如计算机500的装置响应于编程指令的执行,来执行例如附图3和/或4的处理300和/或400的多个操作。在备选实施例中,编程指令604被替代地布置在多个非短暂性计算机可读存储介质602上。在又另一个实施例中,编程指令604可被布置在计算机可读短暂性存储介质中,例如信号中。
返回参考附图5,对于一个实施例,至少一个处理器502被与配置为实现附图3和/或4的处理(多个)的多方面的计算逻辑522(替代存储在存储器504和/或大容量存储装置506中)一起封装。对于一个实施例,至少一个处理器502被与配置为实现附图3和/或4的处理(多个)的多方面的计算逻辑522一起封装从而形成系统级封装(SiP)。对一个实施例,至少一个处理器502被与配置为实现附图3和/或4的处理(多个)的多方面的计算逻辑522集成在同一个芯片上。对于一个实施例,至少一个处理器502被与配置为实现附图3和/或4的处理(多个)的多方面的计算逻辑522一起封装从而形成片上系统(SoC)。对于至少一个实施例,该SoC例如但是不限制于被用在计算平板中。
因此,描述的示例性实施例包括但是不限制于:
例子1是一种操作应用的方法。该方法包括通过在客户端计算装置上操作的应用的客户端侧来在客户端计算装置上本地创建该应用的图形上下文,其中该图形上下文包括多个与产生应用的显示帧相关联的再现资源;以及通过应用的客户端侧使得通过应用的远程侧在远程计算资源的集合上创建图形上下文的副本。该方法还包括自适应地使得通过应用的客户端侧使用客户端计算装置的图形单元和本地图形上下文来本地产生,或者使用远程计算资源的集合、图形上下文的远程副本以及应用的远程侧来远程产生显示帧。
例子2是根据例子1的方法,其中该多个再现资源包括一个或者多个纹理、索引缓冲器、顶点缓冲器、实例缓冲器或者着色器;并且其中的图形调用包括一个或者多个用于产生纹理、更新缓冲器,或者产生着色的调用。
例子3是根据例子1或者2的方法,其中自适应地使得本地或者远程产生显示帧包括通过应用的客户端侧在显示帧的开始确定是否本地或者远程产生显示帧。
例子4是根据例子3的方法,其中的确定是至少部分基于图形单元的能力和耦合客户端计算装置和远程计算资源的集合的网络的带宽可利用性。
例子5是根据例子3的方法,进一步包括响应于确定在显示帧的开始本地产生显示帧,通过应用的客户端侧来将图形调用和与产生显示帧相关联的相关联数据路由到客户端计算装置的图形单元。
例子6是根据例子3的方法,还包括响应于确定,在显示帧的开始,通过应用的客户端侧包装器来远程产生显示帧,截取图形调用和与产生显示帧相关联的相关联数据;以及通过包装器将图形调用和相关联数据存储到客户端计算装置的存储装置中。
例子7是根据例子6的方法,进一步包括在收集到图形调用和相关联数据后,在显示帧的结束,通过包装器重确定是否本地或者远程产生显示帧。
例子8是根据例子7的方法,其中重确定至少部分基于显示帧的复杂度,考虑到截取的图形调用。
例子9是根据例子7的方法,进一步包括响应于确定来远程产生显示帧,通过应用的客户端侧的打包器来打包至少图形调用,并且通过打包器传输打包的至少图形调用给应用的远程侧以便于进行解包、处理,并且产生显示帧。
例子10是根据例子9的方法,其中使得产生将要被远程创建的图形上下文的副本包括通过应用的客户端侧分配标识符给再现资源;以及该方法进一步包括通过包装器,在打包之前修改图形调用的非再现资源创建的那些来选择性地使用标识符来参考再现资源的远程副本。
例子11是根据例子9的方法,进一步包括在显示帧已经通过应用的远程侧产生和打包后,通过应用的客户端侧的解包器从应用的远程侧接收打包形式的显示帧;在接收打包的显示帧后,通过解包器解包打包的显示帧从而恢复显示帧;以及通过解包器将恢复的显示帧发送到客户端计算装置的再现器从而在客户端计算装置的显示器单元上再现显示帧。
例子12是一种用于操作应用的设备。该设备包括一个或者多个处理器;和耦合到一个或者多个处理器的图形单元;以及耦合到一个或者多个处理器并且被配置为通过网络将该设备耦合到远程计算资源的集合的连网接口。该设备还包括配置为通过一个或者多个处理器操作的应用的客户端侧,其中该应用的客户端侧被配置为在该设备上本地创建该应用的图形上下文,其中该图形上下文包括多个与产生应用的显示帧相关联的再现资源;通过应用的客户端侧使得在远程计算资源的集合上创建图形上下文的副本;以及
自适应地使得使用图形单元和本地图形上下文来本地产生,或者使用远程计算资源的集合、图形上下文的远程副本以及应用的远程侧来远程产生显示帧。
例子13是根据例子12的设备,其中该应用的客户端侧被配置为在显示帧的开始确定是否本地或者远程产生显示帧。
例子14是根据例子13的设备,其中应用的客户端侧被配置为至少部分基于图形单元的能力和耦合客户端计算装置和远程计算资源的集合的网络的带宽可利用性来确定。
例子15是根据例子13的设备,其中应用的客户端侧被进一步配置为响应于确定,在显示帧的开始,本地产生显示帧,将图形调用和与产生显示帧相关联的相关联数据路由到图形单元。
例子16是根据例子13-15的任意一个的设备,其中的设备进一步包括存储装置;以及其中应用的客户端侧包括一个包装器,其被配置为响应于确定,在显示帧的开始,远程产生显示帧,截取图形调用和与产生显示帧相关联的相关联数据,以及将图形调用和相关联数据存储到存储装置中。
例子17是根据例子16的设备,其中该包装器被进一步配置为在收集到图形调用和相关联数据后,在显示帧的结束,重确定是否本地或者远程产生显示帧。
例子18是根据例子17的设备,其中该包装器被配置为至少部分基于显示帧的复杂度重确定,考虑到截取的图形调用。
例子19是根据例子17的设备,其中应用的客户端侧进一步包括打包器,其被配置为响应于确定来远程产生显示帧,打包至少图形调用,并且传输打包的至少图形调用给应用的远程侧以便于进行解包、处理,并且产生显示帧。
例子20是根据例子19的设备,其中应用的客户端侧被配置为分配标识符给再现资源;以及包装器进一步配置为,在打包之前修改图形调用的非再现资源创建的那些来选择性地使用标识符来参考再现资源的远程副本。
例子21是根据例子19的设备,其中该设备进一步包括显示器单元,以及与该显示器单元耦合的再现器。该设备进一步包括应用的客户端侧,其包括解包器,被配置为在显示帧已经通过应用的远程侧产生和打包后,从应用的远程侧接收打包形式的显示帧;以及在接收打包的显示帧后,解包打包的显示帧从而恢复显示帧。以及解包器进一步配置为将恢复的显示帧发送到再现器从而在显示器单元上再现显示帧。
例子22是根据例子13-21的任意一个的设备,其中该设备是机顶盒、智能电话、计算平板、超级本、膝上计算机、台式计算机、服务器计算机、游戏控制台,或者媒体播放器中的选择的一个。
例子23包括至少一个存储介质,其包括多个被配置为使得该设备响应于该设备执行的指令来执行权利要求1-12的任意一个的方法的指令。
例子24是一种执行权利要求1-12的任意一个的方法的装置的设备。
例子25是一种操作应用的方法。该方法包括通过在计算资源的集合上操作的应用的远程侧来在与客户端计算装置远程的计算资源的集合上创建对应于通过在客户端计算装置上的应用的客户端侧创建的图形上下文的应用的图形上下文的副本,其中该图形上下文包括多个与产生应用的显示帧相关联的再现资源。该方法还包括通过应用的远程侧从应用的客户端侧接收至少与产生多个但并非所有应用的显示帧相关联的打包的图形调用,其中的接收包括在客户端计算装置重确定之前的在计算资源的集合上远程产生多个显示帧的确定之后,通过客户端计算装置在显示帧的结束接收多个显示帧。该方法还包括通过应用的远程侧解包和处理图形调用从而产生多个显示帧;以及通过应用的远程侧打包和发送多个显示帧给应用的客户端侧从而解包,并且在客户端计算装置的显示器单元上再现。
例子26是一种操作应用的设备。该设备包括:一个或者多个处理器;以及与一个或者多个处理器耦合并且被配置为通过网络将该设备与多个远程计算资源的集合耦合的连网接口。该设备还包括被配置为通过一个或者多个处理器操作的应用的远程侧,其中该应用的远程侧被配置为创建通过在客户端计算装置上的应用的客户端侧创建的应用的图形上下文的副本,其中该图形上下文包括多个与产生应用的显示帧相关联的再现资源。应用的远程侧可被配置为从应用的客户端侧接收与产生多个但并非所有应用的显示帧相关联的打包的图形调用,其中接收包括在客户端计算装置重确定之前的在计算资源的集合上远程产生多个显示帧的确定之后,通过客户端计算装置在显示帧的处理结束时接收多个显示帧。该应用的远程侧还被配置为解包和处理图形调用从而产生多个显示帧;将多个显示帧打包并且发送到应用的客户端侧以便于解包和在客户端计算装置的显示器单元上再现。
例子27是至少一个存储介质,其包括多个被配置为使得该设备响应于该设备执行的指令来执行权利要求25的任意一个的方法的指令。
例子28是包括执行权利要求25的任意一个的方法的装置的设备。
尽管为了描述的目的,在此示出和描述了某些实施例,但替代的和/或等同的实施例的很多变形或者认为达到相同的目的实现都可以代替示出的和描述的实施例而不超出本发明的范围。本申请意在覆盖任意在此讨论的实施例的改变或者变形。因此,很明显,在此描述的实施例仅仅被权利要求书所限制。
在本公开引述“一个”或者“第一”元件或者它们的等同替代时,这样的公开包括一个或者多个这样的元件,认同既不要求也不排除两个或者更多这种元件。用于标识的元件的顺序指示(例如第一、第二或者第三)被用于区别元件,而不表示或者意味着这类元件的所需要的或者限制的数量,它们也不表示这类元件的特定的位置或者顺序,除非另外特别说明。
Claims (27)
1.一种用于操作应用的设备,所述设备包括:
一个或者多个处理器;
耦合到所述一个或者多个处理器的图形单元;
耦合到所述一个或者多个处理器,以通过网络将所述设备耦合到远程计算资源的集合的连网接口;以及
用于通过所述一个或者多个处理器操作的应用的客户端侧,用于:
在所述设备上本地创建所述应用的图形上下文,其中所述图形上下文包括多个与产生所述应用的显示帧相关联的再现资源;
通过所述应用的远程侧使得在所述远程计算资源的集合上创建所述图形上下文的副本;以及
自适应地使得通过使用所述图形单元和所述本地图形上下文来本地产生,或者通过使用所述远程计算资源的集合、所述图形上下文的所述远程副本以及所述应用的所述远程侧来远程产生所述应用的显示帧。
2.根据权利要求1的设备,其中所述应用的所述客户端侧用于在所述显示帧的开始确定是否本地或者远程地产生所述显示帧。
3.根据权利要求2的设备,其中所述应用的所述客户端侧用于至少部分基于所述图形单元的能力和所述网络的带宽可利用性来确定。
4.根据权利要求2的设备,其中所述应用的所述客户端侧用于响应于确定在所述显示帧的开始本地产生所述显示帧,将图形调用和与产生所述显示帧相关联的相关联数据路由到所述图形单元。
5.根据权利要求2-4的任意一个的设备,其中所述设备进一步包括存储装置;以及其中所述应用的所述客户端侧包括包装器,其用于响应于确定在所述显示帧的开始远程产生所述显示帧,截取图形调用和与产生所述显示帧相关联的相关联数据,以及将所述图形调用和相关联数据存储到存储装置中。
6.根据权利要求5的设备,其中所述包装器用于在收集到所述图形调用和相关联数据后,在所述显示帧的结束,重确定是否本地或者远程产生所述显示帧。
7.根据权利要求6的设备,其中所述包装器用于考虑到所截取的图形调用至少部分基于所述显示帧的复杂度执行所述重确定。
8.根据权利要求6的设备,其中所述应用的所述客户端侧进一步包括打包器,用于响应于确定远程产生所述显示帧,打包至少所述图形调用,并且传输所打包的至少图形调用给所述应用的所述远程侧以便所述应用的所述远程侧解包、处理并且产生所述显示帧。
9.根据权利要求8的设备,其中所述应用的所述客户端侧用于分配标识符给所述再现资源;以及所述包装器用于修改所述图形调用的非再现资源创建的那些以通过使用所述标识符来选择性地参考所述再现资源的所述远程副本。
10.根据权利要求8的设备,其中所述设备进一步包括显示器单元,以及与所述显示器单元耦合的再现器,并且所述应用的所述客户端侧还包括解包器,用于:
在所述显示帧已经通过所述应用的所述远程侧产生和打包后,从所述应用的所述远程侧接收打包形式的所述显示帧;
在接收所打包的显示帧后,解包所打包的显示帧从而恢复所述显示帧;以及
将所恢复的显示帧发送到所述再现器以在所述显示器单元上再现所述显示帧。
11.根据权利要求1的设备,其中所述设备是机顶盒、智能电话、计算平板、超级本、膝上计算机、台式计算机、服务器计算机、游戏控制台,或者媒体播放器中的选择的一个。
12.一种用于操作应用的方法,所述方法包括:
通过在客户端计算装置上操作的应用的客户端侧来在所述客户端计算装置上本地创建所述应用的图形上下文,其中所述图形上下文包括多个与产生所述应用的显示帧相关联的再现资源;
通过所述应用的所述客户端侧使得通过所述应用的所述远程侧在远程计算资源的集合上创建所述图形上下文的副本;以及
自适应地使得通过所述应用的所述客户端侧使用所述客户端计算装置的图形单元和所述本地图形上下文来本地产生,或者使用所述远程计算资源的集合、所述图形上下文的所述远程副本以及所述应用的远程侧来远程产生显示帧。
13.根据权利要求12的方法,其中所述多个再现资源包括一个或者多个纹理、索引缓冲器、顶点缓冲器、实例缓冲器或者着色器;并且其中所述图形调用包括一个或者多个用于产生纹理、更新缓冲器或者产生着色的调用。
14.根据权利要求12的方法,其中自适应地使得本地或者远程产生显示帧包括通过所述应用的所述客户端侧在所述显示帧的开始确定是否本地或者远程产生所述显示帧。
15.根据权利要求14的方法,其中确定是至少部分基于所述图形单元的能力和耦合所述客户端计算装置和所述远程计算资源的集合的网络的带宽可利用性。
16.根据权利要求14的方法,进一步包括响应于确定在所述显示帧的开始本地产生所述显示帧,通过所述应用的所述客户端侧来将所述图形调用和与产生所述显示帧相关联的相关联数据路由到所述客户端计算装置的所述图形单元。
17.根据权利要求14的方法,还包括响应于确定在所述显示帧的开始远程产生所述显示帧,通过所述应用的所述客户端侧的包装器来截取图形调用和与产生所述显示帧相关联的相关联数据;以及通过所述包装器将所述图形调用和相关联数据存储到所述客户端计算装置的存储装置中。
18.根据权利要求17的方法,进一步包括在收集到所述图形调用和相关联数据后,在所述显示帧的结束,通过所述包装器重确定是否本地或者远程产生所述显示帧。
19.根据权利要求18的方法,其中考虑到所截取的图形调用,重确定至少部分基于所述显示帧的复杂度。
20.根据权利要求18的方法,进一步包括响应于确定远程产生所述显示帧,通过所述应用的所述客户端侧的打包器来打包至少所述图形调用,并且通过所述打包器传输所打包的至少图形调用给所述应用的所述远程侧以进行解包、处理并且产生所述显示帧。
21.根据权利要求20的方法,其中使得产生将要被远程创建的所述图形上下文的副本包括通过所述应用的所述客户端侧分配标识符给所述再现资源;以及所述方法进一步包括通过所述包装器在打包之前修改所述图形调用的非再现资源创建的那样来选择性地使用所述标识符来参考所述再现资源的所述远程副本。
22.根据权利要求20的方法,进一步包括:
在所述显示帧已经通过所述应用的所述远程侧产生和打包后,通过所述应用的所述客户端侧的解包器从所述应用的所述远程侧接收打包形式的所述显示帧;
在接收所打包的显示帧后,通过所述解包器解包所打包的显示帧从而恢复所述显示帧;以及
通过所述解包器将所恢复的显示帧发送到所述客户端计算装置的再现器从而在所述客户端计算装置的显示器单元上再现所述显示帧。
23.至少一个计算机可读存储介质,其包括多个指令,所述指令被配置为使得所述设备响应于由所述设备执行所述指令来执行权利要求12-22的任意一个的方法。
24.一种用于操作应用的设备,包括:
一个或者多个处理器;
与所述一个或者多个处理器耦合,以通过网络将所述设备作为远程计算资源的集合的成员与客户端计算装置耦合的连网接口;以及
由所述一个或者多个处理器操作的应用的远程侧,用于:
创建通过在所述客户端计算装置上的所述应用的客户端侧创建的所述应用的图形上下文的副本,其中所述图形上下文包括多个与产生所述应用的显示帧相关联的再现资源;
从所述应用的所述客户端侧接收与产生多个但并非所有所述应用的显示帧相关联的打包的图形调用,其中接收包括在所述客户端计算装置重确定之前的在所述计算资源的集合上远程产生多个显示帧的确定之后,通过所述客户端计算装置在所述显示帧的处理结束时接收所述多个显示帧;以及
解包和处理所述图形调用从而产生所述多个显示帧。
25.根据权利要求24的设备,其中应用远程侧还将多个显示帧打包并且发送到应用的客户端侧以用于解包和在所述客户端计算装置的显示器单元上再现。
26.一种用于操作应用的方法,包括:
通过在计算资源的集合上操作的应用的远程侧来在客户端计算装置远程的所述计算资源的集合上创建对应于通过在所述客户端计算装置上的所述应用的客户端侧创建的图形上下文的所述应用的所述图形上下文的副本,其中所述图形上下文包括多个与产生所述应用的显示帧相关联的再现资源;
通过所述应用的所述远程侧从所述应用的所述客户端侧接收至少与产生多个但并非所有所述应用的显示帧相关联的打包的图形调用,其中接收包括在所述客户端计算装置重确定之前的在所述计算资源的集合上远程产生所述多个显示帧的确定之后,通过所述客户端计算装置在所述显示帧的处理的结束接收所述多个显示帧;以及
通过所述应用的所述远程侧解包和处理所述图形调用从而产生所述多个显示帧。
27.根据权利要求26的方法,进一步包括通过所述应用的所述远程侧打包和发送所述多个显示帧给所述应用的所述客户端侧以用于解包并且在所述客户端计算装置的显示器单元上再现。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/080602 WO2015013944A1 (en) | 2013-08-01 | 2013-08-01 | Adaptive remote computing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105556471A true CN105556471A (zh) | 2016-05-04 |
CN105556471B CN105556471B (zh) | 2021-04-20 |
Family
ID=52430877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380077952.7A Expired - Fee Related CN105556471B (zh) | 2013-08-01 | 2013-08-01 | 自适应远程计算 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9183613B2 (zh) |
CN (1) | CN105556471B (zh) |
WO (1) | WO2015013944A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105556471B (zh) * | 2013-08-01 | 2021-04-20 | 英特尔公司 | 自适应远程计算 |
WO2021143182A1 (zh) * | 2020-01-14 | 2021-07-22 | 厦门雅基软件有限公司 | 游戏的处理方法、装置、电子设备及计算机可读存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11106641B2 (en) | 2017-08-18 | 2021-08-31 | Red Hat, Inc. | Supporting graph database backed object unmarshalling |
US11023527B2 (en) | 2018-02-22 | 2021-06-01 | Red Hat, Inc. | Using observable data object to unmarshal graph data |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030191860A1 (en) * | 2002-04-05 | 2003-10-09 | Gadepalli Krishna K. | Accelerated collaboration of high frame rate applications |
CN1776604A (zh) * | 2004-11-18 | 2006-05-24 | 微软公司 | 图形数据流的复用和去复用 |
CN101896940A (zh) * | 2007-10-10 | 2010-11-24 | 苹果公司 | 用于硬件资源的动态配置的框架 |
CN101918921A (zh) * | 2008-01-27 | 2010-12-15 | 思杰系统有限公司 | 用于远程提供三维图形的方法和系统 |
CN101933041A (zh) * | 2008-02-01 | 2010-12-29 | 微软公司 | 图形远程化体系结构 |
CN102932324A (zh) * | 2011-09-02 | 2013-02-13 | 微软公司 | 支持降低的网络带宽使用的跨帧渐进损坏 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8196056B2 (en) * | 2001-07-24 | 2012-06-05 | The Mathworks, Inc. | Handling parameters in block diagram modeling |
US8238678B2 (en) * | 2006-08-30 | 2012-08-07 | Siemens Medical Solutions Usa, Inc. | Providing representative image information |
TWI453603B (zh) * | 2010-06-30 | 2014-09-21 | Ibm | 平台無關之資訊處理系統,其通訊方法,及其電腦程式產品 |
US9514507B2 (en) * | 2011-11-29 | 2016-12-06 | Citrix Systems, Inc. | Methods and systems for maintaining state in a virtual machine when disconnected from graphics hardware |
CN105556471B (zh) * | 2013-08-01 | 2021-04-20 | 英特尔公司 | 自适应远程计算 |
-
2013
- 2013-08-01 CN CN201380077952.7A patent/CN105556471B/zh not_active Expired - Fee Related
- 2013-08-01 US US14/125,274 patent/US9183613B2/en not_active Expired - Fee Related
- 2013-08-01 WO PCT/CN2013/080602 patent/WO2015013944A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030191860A1 (en) * | 2002-04-05 | 2003-10-09 | Gadepalli Krishna K. | Accelerated collaboration of high frame rate applications |
CN1776604A (zh) * | 2004-11-18 | 2006-05-24 | 微软公司 | 图形数据流的复用和去复用 |
CN101896940A (zh) * | 2007-10-10 | 2010-11-24 | 苹果公司 | 用于硬件资源的动态配置的框架 |
CN101918921A (zh) * | 2008-01-27 | 2010-12-15 | 思杰系统有限公司 | 用于远程提供三维图形的方法和系统 |
CN101933041A (zh) * | 2008-02-01 | 2010-12-29 | 微软公司 | 图形远程化体系结构 |
CN102932324A (zh) * | 2011-09-02 | 2013-02-13 | 微软公司 | 支持降低的网络带宽使用的跨帧渐进损坏 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105556471B (zh) * | 2013-08-01 | 2021-04-20 | 英特尔公司 | 自适应远程计算 |
WO2021143182A1 (zh) * | 2020-01-14 | 2021-07-22 | 厦门雅基软件有限公司 | 游戏的处理方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US9183613B2 (en) | 2015-11-10 |
CN105556471B (zh) | 2021-04-20 |
US20150154727A1 (en) | 2015-06-04 |
WO2015013944A1 (en) | 2015-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6996005B2 (ja) | リソース構成方法、装置、端末、および記憶媒体 | |
US9455931B2 (en) | Load balancing between processors | |
CN112233217B (zh) | 一种虚拟场景的渲染方法和装置 | |
CN101553771B (zh) | 绘制超文本标记语言内容 | |
JP6333180B2 (ja) | オンラインゲーム | |
CN104102545A (zh) | 移动增强现实浏览器三维资源配置与加载的优化方法 | |
CN108449409B (zh) | 动画推送方法、装置、设备和存储介质 | |
CN108563517A (zh) | 系统接口的调用方法及装置 | |
CN102713848A (zh) | 用于使用轻量级客户端通过网络来与虚拟化计算服务对接的方法 | |
CN102968755A (zh) | 基元组成 | |
CN102984189A (zh) | 一种无线网络及其实现方法、终端 | |
CN104093046B (zh) | 一种基于云游戏的视频插播系统及方法 | |
JP6211110B2 (ja) | コンテンツ提供システムおよびコンテンツ提供方法 | |
CN105556471A (zh) | 自适应远程计算 | |
CN101799847A (zh) | 一种网页游戏角色的换装方法及系统 | |
JP2022553965A (ja) | ビデオコンテンツを表示するための方法、コンピュータシステム、およびコンピュータプログラム | |
KR20080069646A (ko) | 멀티미디어 장면의 렌더링 최적화 방법, 해당 프로그램,신호, 데이터 저장 매체, 단말 및 수신 방법 | |
CN115294310A (zh) | 基于gis云渲染的多用户场景控制系统、方法及存储介质 | |
CN114077489A (zh) | 一种模型加载方法以及相关装置 | |
Zorrilla et al. | HTML5-based system for interoperable 3D digital home applications | |
CN108076139A (zh) | 用于云流送服务的方法和设备 | |
CN116704154A (zh) | 一种数据处理方法、装置以及相关设备 | |
CN107193848A (zh) | 地图增量更新方法及装置 | |
CN107005731A (zh) | 云端流媒体服务系统、使用应用代码的图像云端流媒体服务方法及其设备 | |
KR102445391B1 (ko) | 지능형 에이전트와 상호작용하기 위한 통신 인터페이스 구축 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210420 |