用于通过使用分布式游戏引擎来预测状态的系统和方法

文档序号:366737 发布日期:2021-12-07 浏览:20次 >En<

阅读说明:本技术 用于通过使用分布式游戏引擎来预测状态的系统和方法 (System and method for predicting state using distributed game engines ) 是由 S.奥斯曼 于 2020-02-19 设计创作,主要内容包括:描述了一种减少游戏的执行中的延迟的方法。所述方法包括经由计算机网络接收与所述游戏相关联的用户输入,以及根据所述用户输入来确定所述游戏的当前状态。在正在确定所述游戏的所述当前状态时,所述方法包括基于所述用户输入和一个或多个预测的用户输入来预测所述游戏的下一状态。所述方法还包括:根据所述下一状态来生成一个或多个预测的图像帧;确定是否经由所述计算机网络接收到所述一个或多个预测的用户输入;以及响应于接收到所述一个或多个预测的用户输入而发送所述一个或多个预测的图像帧,以减少所述游戏的执行中的所述延迟。(A method of reducing delay in the execution of a game is described. The method includes receiving user input associated with the game via a computer network, and determining a current state of the game from the user input. While the current state of the game is being determined, the method includes predicting a next state of the game based on the user input and one or more predicted user inputs. The method further comprises the following steps: generating one or more predicted image frames from the next state; determining whether the one or more predicted user inputs are received via the computer network; and transmitting the one or more predicted image frames in response to receiving the one or more predicted user inputs to reduce the delay in execution of the game.)

用于通过使用分布式游戏引擎来预测状态的系统和方法

技术领域

本公开涉及用于通过使用分布式游戏引擎来预测状态的系统和方法。

背景技术

现今,通过计算机网络来访问视频游戏。例如,来自世界各地的许多玩家都在玩FortniteTM游戏。一个玩家控制第一化身,并且另一个玩家控制第二化身。每个化身在游戏期间收集武器并砍伐木材。然后,这些化身被迫被约束在虚拟圆圈内。如果化身留在虚拟圆圈之外,则化身实际上会在游戏中死亡。当两个化身都在该圆圈中时,他们会找到对方并且然后用他们的武器跟对方战斗。两个化身中仅一个存活。

由于经由计算机网络访问视频游戏,因此生成与视频游戏相关联的大量信息。信息量的增加会增加视频游戏的执行的延迟。

发明内容

本公开的实施方案提供了用于通过使用分布式游戏引擎来预测状态的系统和方法,以减少游戏云上的应用程序的执行中的延迟。

从以下结合附图的详细描述中,本公开的其他方面将变得显而易见,附图以示例的方式示出了本公开中描述的实施方案的原理。

本文描述的系统和方法通过使用深度学习来帮助减少处理游戏的延迟和/或帮助分布式游戏引擎的工作分配。深度学习是用于近似原本可能难以使用算法来计算的函数的技术。函数难以计算,因为算法是未知的或使用该算法的计算很复杂。

通常,许多游戏成功地执行并且这些游戏的算法通常是已知的和自动化的。然而,在本文所描述的游戏中,由于处理游戏场景的帧的多个状态之间的关系,有时难以将游戏中的诸如虚拟对象或虚拟角色等组分彼此分离。例如,用户输入用于驱动游戏中的虚拟角色。该虚拟角色的动作可根据物理定律将游戏中的人工智能非玩家角色(AI NPC)驱动为特定行为或触发效果。为了说明,当接收到用户输入时,引爆爆炸物或AI NPC移动或虚拟对象移动。AI NPC、物理定律以及用户视点的变化都会导致游戏场景的渲染的变化。这说明了游戏引擎内的不同函数的一些相互依赖。

神经网络可用于预测不同函数的输出,以便可更早地机会性地处理后续函数。在神经网络的预测不正确的情况下,可中止基于预测的早期处理,并且可重新开始基于实际函数输出的正确处理。

在一个实施方案中,系统和方法可“当然纠正”预测中的错误。作为示例,预测器可能错误地决定不需要渲染虚拟对象或虚拟角色,并且在没有虚拟对象的情况下机会性地渲染场景。稍后在帧的处理期间,由于物理定律的影响,确定虚拟对象将被推入视野。本文描述的系统和方法此时提供两种选择。选择之一是系统和方法可放弃其预处理中的一些或全部,并且重新渲染存在虚拟对象的场景。另一个选择是系统和方法可独立地渲染虚拟对象并将其合成到场景中。

在一个实施方案中,本文描述的系统和方法有助于跨计算资源分配工作。例如,物理引擎通常被分解为多个部件。这些部件的示例包括碰撞检测系统、碰撞解决系统或求解器以及更新系统。碰撞检测是昂贵的过程并且可进一步分成子部件,例如,诸如对虚拟对象是否发生碰撞进行粗略估计的宽相位检测操作,以及在计算上更昂贵且计算虚拟对象之间的精确接触点的窄相位检测操作。当宽相位检测操作正在运行时,根据宽相位检测操作的先前结果训练的神经网络可预测哪些虚拟对象极有可能、略有可能以及根本不可能碰撞。对于被预测为极有可能的那些虚拟对象,可将窄相位检测操作分派到其他计算资源。一旦宽相位检测操作完成,略有可能碰撞的那些虚拟对象将被解决并被分派或不分派。

在一个实施方案中,系统和方法更新场景的复杂背幕,诸如复杂背景。例如,可训练神经网络以基于诸如用户输入、AI状态、物理状态和其他游戏状态的多种因素来决定高分辨率背幕何时可能需要重新渲染,该高分辨率背幕是适当静态但计算起来是计算密集的。可通过神经网络来预测用于渲染高分辨率背幕的状态值,诸如强度值、颜色值、阴影值、纹理值等,使得可在预期高分辨率背幕的情况下分派远程渲染工作。

虽然游戏能够及时地更新所有这些内容是重要的,但神经网络为系统提供了移动任务的一定的自由度。考虑在分布式游戏引擎上运行的游戏,该分布式游戏引擎是基于云的分布式游戏引擎。分布式游戏引擎的单个节点能够为单个用户处理合理质量的输出,但不能处理高质量输出。这可能是例如因为节点上的资源不足。分布式游戏引擎的一些节点具有能够对计算密集型部件进行高质量图形渲染的非常快的图形处理单元(GPU),并且分布式游戏引擎的其他节点具有能够以极高分辨率的纹理渲染物品但相比之下计算能力较低的具有大量内存的GPU,而分布式游戏引擎的其他节点具有专门的物理或AI部件。游戏可在分布式游戏引擎的一个通用节点上以合理的质量运行,或者如果及早地预期,则可将高质量工作分配给分布式游戏引擎的不太繁忙或更专门的节点,以返回高质量输出。深度学习预测器可决定何时分派这些高质量工作。如果预测晚,则在通用节点处本地计算合理的质量。如果预测早,高质量输出在它被应用时失效并被丢弃。然而,如果正确地预测,例如既不晚也不早或准时,则高质量输出将及时返回,以与其他中间结果组合来提供更高质量的体验。即使分布式游戏引擎的所有节点都以类似的方式配置,但在一个实施方案中,在各情况下在节点之间应用负载平衡。在负载平衡中,并非在所有节点上都使用相同量的所有资源。

在一个实施方案中,描述了一种减少游戏的执行中的延迟的方法。所述方法包括经由计算机网络接收与所述游戏相关联的用户输入,以及根据所述用户输入来确定所述游戏的当前状态。在正在确定所述游戏的所述当前状态时,所述方法包括基于所述用户输入和一个或多个预测的用户输入来预测所述游戏的下一状态。所述方法还包括:根据所述下一状态来生成一个或多个预测的图像帧;确定是否经由所述计算机网络接收到所述一个或多个预测的用户输入;以及响应于接收到所述一个或多个预测的用户输入而发送所述一个或多个预测的图像帧,以减少所述游戏的执行中的所述延迟。

在一个实施方案中,描述了一种减少游戏的执行中的延迟的系统。所述系统包括第一节点和第二节点。所述第一节点经由计算机网络接收与所述游戏相关联的用户输入,并且根据所述用户输入来确定所述游戏的当前状态。所述第二节点耦合到所述第一节点。所述第二节点从所述第一节点接收与所述游戏相关联的所述用户输入,并且在正在确定所述游戏的所述当前状态时,基于所述用户输入和一个或多个预测的用户输入来预测所述游戏的下一状态。所述第二节点还根据所述下一状态来生成一个或多个预测的帧,确定是否经由所述计算机网络接收到所述一个或多个预测的用户输入,并且响应于接收到所述一个或多个预测的用户输入而发送所述一个或多个预测的帧,以减少在所述游戏的执行期间的所述延迟。

在一个实施方案中,描述了一种计算机可读介质,所述计算机可读介质包含用于减少游戏的执行中的延迟的程序指令。计算机系统的一个或多个处理器对所述程序指令的执行致使所述一个或多个处理器执行上述用于减少游戏的执行中的延迟的方法的多个操作。

描述了本文描述的用于通过使用分布式游戏引擎来预测状态的系统和方法的一些优点。在分布式游戏引擎接收到预测状态的用户输入之前,对状态进行预测并且生成预测状态的一个或多个帧。当接收到用户输入时,经由计算机网络将帧发送到客户端装置以显示图像并根据帧生成声音。在接收到用户输入之后生成帧的延迟被减少或消除。向客户端装置提供图像的速度和应用程序(诸如游戏应用程序)的执行速度增加。

附图说明

通过参考结合附图进行的以下描述来最好地理解本公开的各种实施方案,在附图中:

图1是用于描述诸如视频游戏或视频会议应用程序的应用程序的系统的实施方案的图。

图2A是用于示出当节点A正在生成状态1时另一个节点1正在生成预测状态2的系统的实施方案的图。

图2B是图2A的系统的剩余部分的图。

图3A是用于示出分布式游戏引擎和分布式预测器引擎的系统的实施方案的图。

图3B是用于示出在由用户A经由客户端装置控制的虚拟对象处于位置c的时间段期间生成预测状态2的图像帧和音频帧的系统的实施方案的图。

图3C是用于示出在正在生成预测状态2时由分布式游戏引擎系统经由计算机网络从客户端装置接收到的用户输入1'充当生成状态1'的触发事件的分布式游戏引擎系统的实施方案。

图3D是用于示出在接收到用户输入1'时而不是在接收到预测状态2的用户输入2时渲染虚拟对象或人工智能(AI)实体或AI虚拟对象并将其添加到虚拟背景的图。

图4A是用于示出节点1用于执行虚拟对象在虚拟场景中有可能碰撞的宽相位检测并且另一个节点2用于执行窄相位检测以确定虚拟对象的碰撞的接触点的系统的实施方案的图。

图4B是用于示出从节点1向节点2分派高质量图形工作的系统的实施方案的图。

图4C是用于示出从节点1向节点2指派与物理预测引擎相关联的一个或多个任务的系统的实施方案的图。

图4D是用于示出从节点1向节点2指派与AI预测引擎相关联的一个或多个任务的系统的实施方案的图。

图5是客户端装置的实施方案的图。

图6是概念性地示出根据本公开的实现方式的被执行来将云视频游戏流式传输到图5的客户端装置的各种操作的流程图。

图7是游戏控制台的实施方案的框图,该游戏控制台可兼容用于与图5的客户端装置的显示装置介接并且能够经由计算机网络与分布式游戏引擎系统进行通信。

图8是示出作为客户端装置的示例的头戴式显示器(HMD)的部件的图。

图9示出了信息服务提供方(INSP)架构的实施方案。

具体实施方式

描述了用于通过使用分布式游戏引擎来预测状态的系统和方法。应注意,在没有一些或所有这些具体细节的情况下实践本公开的各种实施方案。在其他情况下,没有详细地描述众所周知的过程操作,以免不必要地使本公开的各种实施方案模糊不清。

图1是用于描述诸如视频游戏或视频会议应用程序的应用程序的系统100的实施方案的图。应用程序的示例包括多玩家游戏和单玩家游戏。在多玩家游戏中,多个玩家从服务器系统104访问视频游戏。例如,第一化身由用户A控制来玩多玩家游戏,并且第二汽车由另一个用户B控制来玩多玩家游戏。此外,在多玩家游戏中,可能存在由人工智能(AI)控制的非玩家角色(NPC)。AI由服务器系统104而不是用户执行和控制。AI NPC是一种不是由用户经由客户端装置控制的虚拟对象。在单玩家游戏中,一个或多个玩家从服务器系统104访问视频游戏。作为示例,化身由用户A控制来玩但玩家游戏,并且同一化身由用户B控制来玩单玩家游戏。

系统100包括服务器系统104、计算机网络102以及多个客户端装置1、2和3。服务器系统104包括一个或多个服务器,该一个或多个服务器可以是服务器刀片或游戏控制台。每个服务器包括一个或多个处理器和一个或多个存储器装置。服务器的一个或多个处理器耦合到一个或多个存储器装置。如本文所使用,处理器的示例包括中央处理单元(CPU)、微处理器、微控制器、专用集成电路(ASIC)和可编程逻辑装置(PLD)。在一个实施方案中,存储器装置是从其读取数据或向其写入数据的装置。存储器装置的示例包括只读存储器(ROM)装置、或随机存取存储器(RAM)装置、或它们的组合。为了说明,存储器装置包括快闪存储器、高速缓存或独立磁盘冗余阵列(RAID)。

计算机网络102用于在客户端装置与服务器之间、或在客户端装置与节点之间、或在多个节点之间、或在多个服务器之间、或在多个客户端装置之间等传送数据,诸如视频数据和音频数据,以促进分布式游戏引擎系统(DGES)106的操作,该分布式游戏引擎系统包括分布式游戏引擎和分布式预测器引擎。计算机网络102的示例包括诸如互联网的广域网(WAN)、或诸如互联网的局域网(LAM)、或它们的组合。

如本文所使用,客户端装置是由用户操作以获得对分布式游戏引擎系统106执行的应用程序的访问的装置。客户端装置的示例包括计算机、平板电脑、游戏控制台、智能手机、手持式控制器、头戴式显示器(HMD)、电视机、游戏控制台和手持式控制器的组合以及HMD、手持式控制器和游戏控制台的组合。手持式控制器的示例包括DualShockTM控制器和MoveTM运动控制器,这两者均可从SonyTM公司获得。在包括游戏控制台和手持式控制器的组合中,游戏控制台经由有线或无线连接耦合到手持式控制器。此外,在HMD、手持式控制器和游戏控制台的组合中,HMD经由有线连接或无线连接耦合到游戏控制台。有线连接的示例包括串行传送电缆或并行传送电缆或通用串行总线(USB)电缆。无线连接的示例包括BluetoothTM连接和Wi-FiTM连接。

游戏控制台或HMD或手持式控制器或它们的组合包括一个或多个相机,以捕获客户端装置的输入装置(例如,手持式控制器、HMD、鼠标、小键盘、操纵杆、触摸板、触摸屏等)或用户A的身体部位的移动的姿势,诸如位置的变化或取向的变化或它们的组合。身体部位的示例包括手臂、手、腿、手腕、一个或多个手指、腿、膝盖、眼睛、头等。如本文所使用,HMD是用户佩戴以观看虚拟场景(诸如虚拟现实(VR)场景或增强现实(AR)场景)的显示装置。另外,电视机是显示装置的示例并且包括显示屏。如本文所使用,显示装置的示例包括液晶显示(LCD)装置、发光二极管显示(LED)装置和等离子显示装置。VR场景或AR场景是在分布式游戏引擎系统106执行应用程序时生成的。

服务器系统104包括作为分布式游戏引擎系统106共同地操作的多个节点。例如,分布式游戏引擎系统106包括多个AI引擎AI1至AIn,其中n是大于一的整数。此外,分布式游戏引擎系统106包括多个音频引擎(AE)AE1至AEn、多个物理引擎PE1至PEn,以及多个图形引擎(GE)GE1至GEn,其中n是大于一的整数。在一个实施方案中,分布式游戏引擎系统106还包括多个动画引擎、多个网络引擎、多个存储器管理引擎、多个尖叫引擎和/或多个脚本引擎。每个AI引擎AI1至AIn、音频引擎AE1至AEn、物理引擎PE1至PEn以及图形引擎GE1至GEn是分布式游戏引擎系统106的一部分。在一个实施方案中,如本文所使用,引擎是软件引擎。软件引擎是表示功能块的库、软件开发工具包(SDK)或对象。软件引擎由一个或多个处理器执行,诸如图形处理单元(GPU)和中央处理单元(CPU)。在一个实施方案中,如本文所使用,每个引擎都是虚拟机(VM)。在一个实施方案中,每个引擎是处理器或硬件装置。在一个实施方案中,每个引擎是神经网络或神经网络的一部分。

分布式游戏引擎系统106存储应用程序,例如游戏计算机程序、用于生成VR场景的计算机程序、用于生成增强现实AR场景的计算机程序、用于应用物理定律以生成VR场景或AR场景的物理软件程序、用于应用渲染操作以生成VR场景或AR场景的渲染计算机程序。作为示例,应用程序的一部分由分布式游戏引擎系统106的节点A存储和执行,应用程序的另一个部分由分布式游戏引擎系统106的另一个节点1存储和执行,并且应用程序的剩余部分由分布式游戏引擎系统106的又一个节点2存储和执行。如本文所使用,节点是硬件服务器或用于执行应用程序的至少一部分的分布式游戏引擎系统106的游戏控制台或硬件服务器。作为示例,一个节点具有与另一个节点的壳体分开的壳体。作为另一个示例,一个节点放置在数据中心的与数据中心内的其上放置有另一个节点的机架不同的机架上。作为又一个示例,分布式游戏引擎系统106的节点位于与分布式游戏引擎系统106的另一个节点不同的数据中心内。

在一个实施方案中,多个节点位于单个壳体内。例如,在PlayStation NowTM服务器的情况下,单个壳体由多个节点共享。当多个节点被容纳在单个壳体中时,每个节点都具有其本身经由网络通信装置到计算机网络102的网络连接。然而,作为替代方案,单个壳体包括网络通信装置,并且节点经由相同的网络通信装置耦合到计算机网络102。具有多个节点的单个壳体允许在吞吐量和延迟方面更好的连接。

在一个实施方案中,节点是虚拟机,它是对计算机系统的仿真。在虚拟机中,管理程序是共享和管理硬件资源(诸如处理器和存储器装置)以在一个或多个操作系统之上运行应用程序的计算机软件或硬件或它们的组合。作为示例,虚拟机包括操作系统、在操作系统之上运行的一个或多个应用程序计算机程序以及一个或多个硬件资源,例如,中央处理单元、图形处理单元、视频编码器、音频编码器、视频编解码器、音频编解码器、视频解码器、音频解码器、网络通信装置、存储器装置、内部通信装置等,该一个或多个硬件资源由一个或多个应用程序计算机程序经由操作系统和管理程序访问以执行在本文中被描述为由节点执行的功能。上述应用程序是应用程序计算机程序的示例。

此外,在一个实施方案中,物理引擎应用物理定律来确定虚拟对象或虚拟场景的虚拟背景的位置和取向,该虚拟场景可以是VR场景或AR场景。如本文所使用,虚拟对象的示例包括虚拟枪、虚拟矛、虚拟巨石、虚拟武器、化身、虚拟角色等。如本文所使用,虚拟背景的示例包括虚拟房间、虚拟自然环境、虚拟树木、虚拟海洋以及虚拟对象所在的虚拟环境。在一个实施方案中,术语虚拟背幕和虚拟背景在本文中可互换地使用。虚拟对象或虚拟背景由用户A经由客户端装置1控制。在一个实施方案中,虚拟对象或虚拟背景由AI而不是用户A控制。多个位置和多个取向定义了虚拟对象或虚拟背景的移动。物理引擎是被执行来确定虚拟场景中的不同部分之间以及不同虚拟场景之间的物理关系的计算机程序。物理关系是根据诸如引力定律、运动定律、摩擦定律等物理定律确定的。

在一个实施方案中,AI引擎确定视频游戏中的虚拟对象或虚拟角色的移动和功能,并且虚拟对象或虚拟角色无法由用户经由客户端装置来控制。

在一个实施方案中,音频引擎为游戏的对应虚拟场景确定并提供音频数据。例如,当虚拟场景的一部分发出声音时,音频引擎确定用于输出声音的音频数据和声音的其他变量,例如音高、音调、幅度等,并且将音频数据与虚拟场景的该部分链接起来。

在一个实施方案中,图形引擎是渲染引擎或渲染器或渲染操作,其将诸如颜色、纹理、阴影、强度、照明或它们的组合的图形应用于虚拟对象的二维(2D)模型或三维(3D)模型以创建虚拟对象的2D或3D表示,并且将图形应用于虚拟背景的2D或3D模型以创建虚拟背景的表示,以便输出一个或多个图像帧。如本文所使用,虚拟对象的模型具有虚拟对象的位置和取向,并且虚拟背景的模型具有虚拟背景的位置和取向。例如,模型是具有顶点的网格,该网格定义虚拟对象或虚拟背景的形状。该形状是根据为虚拟对象或虚拟背景计算的位置和取向定义的。渲染引擎从虚拟场景的一个或多个部分(诸如虚拟对象或虚拟背景)的2D或3D模型生成图像。例如,渲染引擎定义应用于虚拟场景的一个或多个部分的颜色、纹理、阴影和光强度。

服务器系统104包括视频编解码器108,以对一个或多个图像帧进行编码来输出一个或多个编码图像帧,并且对一个或多个编码图像帧进行解码来输出一个或多个解码图像帧。例如,视频编解码器108被实现为一个或多个处理器或被实现为计算机软件,以使用诸如H.264的视频编码协议对一个或多个图像帧进行压缩或解压缩。视频编码协议也是视频解码协议。作为另一个示例,视频编解码器108是根据视频文件格式或流式视频格式或视频编码协议(例如,H.264、H.265/MPEG-H、H.263/MPEG-4、H.262/MPEG-2a、自定义协议等)对图像帧进行压缩或解压缩的硬件装置(例如集成电路、处理器等)或软件模块(例如计算机程序等)或它们的组合。在一个实施方案中,术语压缩和编码在本文中可互换地使用,并且术语解压缩和解码在本文中可互换地使用。

在一个实施方案中,除了视频编解码器108外,系统100中还使用音频编解码器以应用音频编码协议对音频数据进行编码来输出一个或多个编码音频帧,并且应用音频解码协议对音频帧进行解码来输出一个或多个解码音频数据。音频编码协议也是音频解码协议。音频编解码器是根据音频文件格式或流式音频格式对音频数据进行压缩或解压缩的硬件装置(例如集成电路、处理器等)或软件模块(例如计算机程序等)或它们的组合。

用户A操作客户端装置1来访问存储在服务器系统104上的应用程序。例如,用户A经由网站或用户应用程序登录存储在服务器系统104上的他/她的用户账户,以访问存储在服务器系统104上的应用程序。一旦应用程序被访问,用户A就使用客户端装置1来提供用户输入1。用户输入1的示例是对客户端装置1上的按钮的选择或客户端装置1上的触摸或由用户A用他/她的身体部位或用客户端装置1做出的姿势。在一个实施方案中,用户输入包括客户端装置1的一个或多个操纵杆的一个或多个移动、或用户A做出的一个或多个姿势、或对客户端装置1上的一个或多个按钮的一个或多个选择。

用户输入1经由计算机网络102从客户端装置1发送到服务器系统104,以改变应用程序的状态。例如,物理引擎PE1至PEn中的一者或多者输出虚拟对象的一个或多个位置、虚拟场景中的虚拟对象的一个或多个取向、虚拟背景的一个或多个位置,以及虚拟场景中的虚拟背景的一个或多个取向。另外,音频引擎AE1至AEn中的一者或多者输出要由虚拟对象发出的音频数据、输出要由虚拟场景中的AI输出的音频数据,并且输出要与虚拟背景一起输出的音频数据。另外,AI引擎AI1至AIn中的一者或多者输出虚拟场景中的AI的一个或多个位置和一个或多个取向。图形引擎GE1至GEn中的一者或多者将诸如颜色、纹理、强度、阴影、照明等图形提供到虚拟对象的模型、AI的模型以及虚拟场景内的虚拟背景的模型,以输出一个或多个图像帧。虚拟场景中的虚拟对象由用户输入1控制并且可以是用户A的化身或表示。

视频编解码器108从图形引擎GE1至GEn中的一者或多者接收基于用户输入1而生成的一个或多个图像帧,并且对该一个或多个图像帧进行编码以输出编码视频帧1的视频流。另外,音频编解码器接收从音频引擎AE1至AEn中的一者或多者输出的基于用户输入1而生成的音频数据,并且对该音频数据进行编码以输出一个或多个编码音频帧。编码视频帧1和编码音频帧由服务器系统104通过应用诸如基于互联网协议(IP)的传输控制协议(TCP)的外部通信协议进行分包,以生成包。包经由计算机网络102从服务器系统104发送到客户端装置1。

客户端装置1从服务器系统104接收包,应用外部通信协议对包进行解包,以从包提取编码视频帧1和编码音频帧。另外,客户端装置1应用视频解码协议对编码视频帧1进行解压缩或解码以获得图像帧,并且应用音频解码协议对编码音频帧进行解压缩或解码以获得音频帧。音频帧的音频数据由客户端装置1输出为声音。此外,图像帧在客户端装置1的显示装置上显示为图像。如本文所使用,显示装置的示例包括液晶显示器(LCD)装置、发光二极管(LED)显示装置和等离子显示装置。

类似地,由服务器系统104经由计算机网络102从客户端装置2接收用户输入以输出编码帧2,所述编码帧包括编码视频帧和编码音频帧。编码帧2经由计算机网络102从服务器系统104发送到客户端装置2,以在客户端装置2的显示装置上显示一个或多个图像并且在客户端装置2上输出声音。客户端装置2由用户2操作并且可用于控制化身,该化身与用户A经由客户端装置1控制的化身不同。另外,类似地,由服务器系统104经由计算机网络102从客户端装置3接收用户输入以输出编码帧3,所述编码帧包括编码视频帧和编码音频帧。编码帧3经由计算机网络102从服务器系统104发送到客户端装置3,以在客户端装置3的显示装置上显示一个或多个图像并且在客户端装置3上输出声音。客户端装置3由用户3操作并且可用于控制化身,该化身与用户A经由客户端装置1控制的化身不同。另外,客户端装置3可用于控制化身,该化身与用户B经由客户端装置2控制的化身不同。

图2A是用于示出当节点A正在生成状态1时节点1正在生成预测状态2的系统200的实施方案的图。状态1在本文中有时被称为当前状态,并且预测状态2在本文中有时被称为下一状态。图2B是系统200的剩余部分的图。系统200包括节点A和节点1。此外,系统200包括计算机网络102、节点组件服务器202、云游戏服务器204和客户端装置1。另外,系统200包括交换系统206。

交换系统206包括促进节点组件服务器202与本文描述的节点A、B(未示出)和C(未示出)中的两者或更多者之间的数据传送的一个或多个交换机。例如,交换系统206是交换构架。交换构架在两个或更多个节点A、B和C之间提供大量带宽,并且经常动态地重新配置并允许服务质量(QoS)。为了说明,当两个或更多个节点之间没有足够的容量并且QoS重试发送数据时,QoS促进减少链路上的拥塞。两个或更多个节点A、B和C中的一些及时地开始处理两个或更多个节点A、B和C的缺乏容量的剩余部分的数据。作为另一个示例,交换系统206包括多路复用器,该多路复用器在形成分布式游戏引擎系统106并且从节点组件服务器206向其传送数据且经由计算机网络102从其向客户端装置1、2和3(图1)中的一者或多者传送数据的两个或多个节点A、B和C中进行选择。作为另一个示例,交换系统206包括一个或多个晶体管,该一个或多个晶体管促进节点组件服务器202与两个或更多个节点A、B和C之间的数据传送。作为又一个示例,交换系统206包括一个或多个交换机,每个交换机在断开位置与闭合位置之间改变其位置。交换机的断开位置将节点组件服务器202与耦合到该交换机的节点分离。交换机的闭合位置将节点组件服务器202与耦合到该交换机的节点耦合。在一个实施方案中,节点A、B和C是分布式游戏引擎的节点,并且本文描述的节点1和2是分布式预测器引擎的节点。

云游戏服务器204以及客户端装置1、2和3耦合到计算机网络102。此外,节点组件服务器202耦合到云游戏服务器204。

节点A包括中央处理单元A(CPU A)、存储器装置A、另一个中央处理单元A1(CPUA1)、存储器装置A1、图形处理单元A(GPU A)、GPU存储器装置A、内部通信装置A、网络通信装置A、音频编码器A以及视频编码器A。节点A的诸如CPU A、存储器装置A、CPU A1、存储器装置A1、GPU A、GPU存储器装置A、内部通信装置A、网络通信装置A、音频编码器A和视频编码器A的部件经由总线A彼此耦合。

如本文所使用,GPU执行渲染计算机程序以生成视频帧,该视频帧包括AR场景或VR场景的状态信息,诸如颜色、纹理、强度、阴影和照明。GPU的示例包括处理器、ASIC和PLD。在一个实施方案中,术语“视频帧”和“图像帧”在本文中可互换地使用。

如本文所使用,内部通信装置用于在一个节点与另一个节点之间传达数据。内部通信装置应用内部通信协议,例如,直接存储器访问(DMA)协议、远程DMA(RDMA)协议、基于融合以太网的RDMA、无线带宽、以太网协议、自定义协议、串行传送协议、并行传送协议、USB协议、无线协议、蓝牙协议、有线协议、通用数据报协议(UDP)、基于互联网协议的UDP、基于IP协议的传输控制协议(TCP)、基于TCP/IP的以太网协议等,以在两个节点之间传达数据。作为DMA的示例,节点的内部通信芯片(诸如PCI Express非透明交换芯片、RDMA芯片、或基于融合以太网的RDMA芯片、或无线带宽芯片)经由外围部件互连快速(PCIe)通信总线进行通信,以直接写入一个或多个其他节点中的存储器装置或从该存储器装置读取。此外,在如PCIe的通信总线中,诸如GPU和其他装置的外围设备是基于存储器的,因为每个外围设备在总线上都有指派的存储器地址空间。为了说明,一个节点的GPU应用内部通信协议来写入或读取另一个节点的GPU的寄存器或缓冲器。以这种方式,节点通过共享邮箱寄存器与另一个节点通信。当另一个节点向一个节点读取或从该节点写入时,在该节点的CPU上运行的应用程序或应用程序的一部分出现中断。该另一个节点在向该节点读取或从该节点写入之前发送中断信号。

如本文所使用,内部通信装置的示例包括处理器、ASIC和PLD。为了说明,内部通信装置是PCI Express非透明交换芯片或RDMA芯片、或基于融合以太网的RDMA芯片、或无线带宽芯片。作为另一个说明,内部通信装置是网络接口控制器或网络接口卡(NIC)、使用串行数据传送进行通信的装置、使用并行数据传送进行通信的装置,或使用USB协议进行通信的装置。

应注意,与以太网协议或TCP协议或UDP协议相比,PCI-Express和RDMA技术具有显著更低的延迟并提供更高的性能,因为它消除了在CPU执行的操作系统中产生开销的协议层。当节点已被授权访问其他节点内的数据块时,执行DMA协议的节点内的DMA引擎直接从其他节点中的存储器读取或向其写入而绕过该节点内的操作系统。没有诸如以太网协议或TCP协议或UDP协议的网络协议,并且节点的DMA引擎决定它如何组织存储器及其内部结构。如果需要在一个节点与其他节点之间进行转储操作,则一个节点的内部通信芯片执行DMA引擎以在不涉及该节点的CPU的情况下从其他节点读取和写入数据。

在一个实施方案中,在本文描述的一个节点经由电缆或计算机网络102耦合到也在本文描述的另一个节点。例如,节点A经由同轴电缆、USB电缆或经由互联网耦合到节点1。作为另一个示例,节点1经由电缆或计算机网络102耦合到另一个节点2。

网络通信装置用于经由计算机网络102在节点与客户端装置之间传送数据包。例如,网络通信装置应用外部通信协议(例如TCP/IP、UDP/IP等)来接收和发送数据包。网络通信装置的示例包括处理器、ASIC和PLD。为了说明,网络通信装置是网络接口控制器或NIC。

类似地,节点1包括中央处理单元1(CPU 1)、存储器装置1、另一个中央处理单元1a(CPU 1a)、存储器单元1a、图形处理单元1(GPU 1)、GPU存储器装置1、内部通信装置1、网络通信装置1、音频编码器1以及视频编码器1。节点1的部件(诸如CPU 1、存储器装置1、CPU1a、存储器装置1a、GPU 1、GPU存储器装置1、内部通信装置1、网络通信装置1、音频编码器1和视频编码器1)经由总线1彼此耦合。

客户端装置1生成游戏请求210并经由计算机网络102将该游戏请求发送到云游戏服务器204。例如,用户A使用客户端装置1的输入装置来选择输入装置上的一个或多个按钮以生成游戏请求210。云游戏服务器204基于游戏请求210来确定客户端装置1的用户A访问以生成游戏请求210的用户账户是否被授权访问分布式游戏引擎系统106。客户端装置1的用户A经由客户端装置1的输入装置来提供登录信息,例如用户名、密码等,以访问用户账户。当登录信息被云游戏服务器204认证时,客户端装置1的用户A可访问用户账户。在确定用户A的用户账户被授权访问分布式游戏引擎系统106后,云游戏服务器204向节点组件服务器202发送信号以使得能够经由客户端装置1和计算机网络102来访问应用程序的执行。应用程序由分布式游戏引擎系统106(图1)的节点A、B、C、1和2中的一者或多者执行。

在一个实施方案中,除了登录信息的认证之外,在使得客户端装置1能够耦合到节点组件服务器202以访问由分布式游戏引擎系统106执行的应用程序之前还要执行附加的操作。例如,耦合到计算机网络102的网络测试服务器(未示出)从云游戏服务器204接收信号以访问由分布式游戏引擎系统106执行的应用程序,并且对具有分布式游戏引擎系统106的多个数据中心执行带宽延迟。测试的结果由网络测试服务器提供到云资源管理器(未示出)。云资源管理器是耦合到计算机网络102的服务器。云资源管理器确定哪些数据中心将连接到客户端装置1以访问应用程序。该确定是基于测试结果和其他信息,诸如足够数量节点的可用性以及应用程序存储在哪个数据中心。云资源管理器选择具有节点A、B、C、1和2中的一者或多者的数据中心中的一者或多者,并且向节点组件服务器202发送信号以选择节点A、B、C、1和2中的一者或多者。

节点组件服务器202在从云资源管理器接收到信号后经由交换系统206来选择分布式游戏引擎系统106的将执行应用程序的节点A、B、C、1和2中的一者或多者,以将节点A、B、C、1和2中的该一个或多个初始化。例如,节点组件服务器202向交换系统206的控制输入发送信号,以耦合到节点A和1或耦合到节点A和B或耦合到节点1和2或耦合到节点A、1和2。在控制输入处接收到信号后,交换系统206将交换机中的一者或多者的位置闭合以将节点组件服务器202连接到与交换机中的一者或多者耦合的分布式游戏引擎系统106的对应的一个或多个节点,并且将其剩余的交换机的位置断开以将分布式游戏引擎106的剩余节点与节点组件服务器202断开连接。在经由交换系统206连接到节点组件服务器202后,分布式游戏引擎系统106的节点A、B、C、1和2中的一者或多者执行应用程序以经由计算机网络102将编码帧从节点A、B、C、1和2中的一者或多者传送到客户端装置1。

在交换系统206选择了节点A、B、C、1和2中的一者或多者之后,用户A使用客户端装置1的输入装置来经由计算机网络102将用户输入1提供到节点A。例如,当用户A选择客户端装置1的输入装置上的一个或多个按钮或移动输入装置1或它们的组合时,生成用户输入1。作为另一个示例,用户输入1包括输入装置或用户A的身体部位或它们的组合的移动的一个或多个图像帧。图像帧由客户端装置1的一个或多个相机捕获。用户输入1由客户端装置1使用外部通信协议进行分包以生成一个或多个包,该一个或多个包经由计算机网络102从客户端装置1发送到节点A的网络通信装置A。网络通信装置A应用外部通信协议对具有用户输入1的一个或多个包进行解包以提取用户输入1,并且将用户输入1提供到CPU A。

CPU A分析用户输入1以确定客户端装置1的输入装置的位置和取向的变化,或确定是否选择了输入装置上的按钮,或确定用户A的身体部位的位置和取向是否有变化,或它们的组合。CPU A执行物理引擎以确定由用户A使用客户端装置1的输入装置控制的虚拟场景内虚拟对象的一个或多个位置和一个或多个取向。虚拟对象的一个或多个位置和一个或多个取向对应于客户端装置1的输入装置的位置和取向的变化,或对应于用户A的身体部位的位置和取向的变化,或对应于对输入装置上的按钮的选择,或它们的组合。CPU A还应用音频引擎以确定对应于状态1的虚拟对象的一个或多个位置和一个或多个取向的音频数据。状态1的虚拟对象的一个或多个位置、要由状态1的虚拟对象输出的音频数据以及状态1的虚拟对象的一个或多个取向由CPU A存储在存储器装置A中。在一个实施方案中,虚拟背景是虚拟对象的示例。例如,虚拟背景是虚拟场景中的虚拟对象,并且另一个虚拟对象也存在于该虚拟场景中。这些虚拟对象中的一者或两者由用户A经由客户端装置1来控制。

此外,CPU A1从存储器装置A访问状态1的虚拟对象的一个或多个位置、要由状态1的虚拟对象输出的音频数据以及状态1的虚拟对象的一个或多个取向。CPU A1将AI引擎应用于状态1的虚拟对象的一个或多个位置、要由状态1的虚拟对象输出的音频数据以及状态1的虚拟对象的一个或多个取向。AI引擎由CPU A1应用于确定在具有由用户A控制的虚拟对象的虚拟场景中的一个或多个AI的一个或多个位置、一个或多个AI的一个或多个取向,以及对应于一个或多个位置和一个或多个取向的音频数据。在具有由用户A控制的虚拟对象的虚拟场景中的一个或多个AI的一个或多个位置、一个或多个AI的一个或多个取向以及对应于一个或多个位置和一个或多个取向的音频数据是针对状态1。另外,对应于一个或多个AI的一个或多个位置和一个或多个取向的音频数据将由一个或多个AI输出。状态1的一个或多个AI的一个或多个位置、状态1的一个或多个AI的一个或多个取向以及要由状态1的一个或多个AI输出的音频数据由CPU A1存储在存储器装置A1中。

GPU A从存储器装置A访问虚拟对象的一个或多个位置和虚拟对象的一个或多个取向,并且从存储器装置A1访问一个或多个AI的一个或多个位置和一个或多个AI的一个或多个取向,并且将渲染引擎应用于虚拟对象和一个或多个AI的位置和取向以生成状态1的一个或多个图像帧。状态1的图像帧由GPU A存储在GPU存储器装置A中。

音频编码器A从存储器装置A访问虚拟对象的音频数据并从存储器装置A1访问一个或多个AI的音频数据以生成一个或多个音频帧,并且对状态1的音频帧进行编码以输出状态1的一个或多个编码音频帧。类似地,视频编码器A从GPU存储器装置A访问状态1的图像帧,并且对图像帧进行编码以输出状态1的一个或多个编码图像帧。

网络通信装置A从视频编码器A接收状态1的编码图像帧并从音频编码器A接收状态1的编码音频帧,并且对状态1的编码帧应用外部通信协议,以生成状态1的一个或多个包。状态1的编码帧包括状态1的编码图像帧和状态1的编码音频帧。网络通信装置A经由计算机网络102将状态1的包发送到客户端装置1,以在客户端装置1的显示装置上显示状态1的一个或多个图像并且经由客户端装置1输出声音。基于状态1的编码图像帧生成图像并且基于状态1的编码音频帧输出声音。

CPU A将用户输入1存储在存储器装置A中。当CPU A应用物理引擎、CPU A应用音频引擎、CPU A1应用AI引擎和/或GPU A应用图形引擎时,节点1应用其物理预测引擎、音频预测引擎、AI预测引擎和/或图形预测引擎来确定预测状态2,该预测状态是在状态1之后的状态或下一个状态的示例。例如,在CPU A应用物理引擎、CPU A应用音频引擎、CPU A1应用AI引擎和/或GPU A应用图形引擎的时间段期间,CPU A确定要生成预测状态2。在确定要生成预测状态2后,CPU A指示节点A的内部通信装置A从存储器装置A访问用户输入1,并且将用户输入1提供到节点1以供节点1的CPU 1访问。节点A的内部通信装置A对用户输入1应用内部通信协议,以生成具有用户输入1的一个或多个传送单元,并且将传送单元发送到节点1。节点1的内部通信装置1从节点A的内部通信装置A接收具有用户输入1的一个或多个传送单元,并且应用内部通信协议来解析一个或多个传送单元以从一个或多个传送单元获得用户输入1。用户输入1由内部通信装置1存储在节点1的存储器装置1中。例如,内部通信装置1经由内部通信装置A从节点A的CPU A接收指令以将用户输入1存储在存储器装置1中以供CPU1访问。

节点1的CPU 1从存储器装置1访问用户输入1并且确定由用户A经由客户端装置1控制的虚拟对象的移动,诸如一个或多个位置、或一个或多个取向、或它们的组合。根据预测的用户输入2和也是预测的用户输入3来确定预测状态2的移动。例如,CPU 1应用物理定律以在经由计算机网络102从客户端装置1接收到用户输入2的情况下预测虚拟对象的附加移动,并且在经由计算机网络102从客户端装置1接收到用户输入3的情况下预测虚拟对象的进一步移动。用户输入2和3是预测的用户输入的示例,在确定预测状态2的虚拟对象的移动时实际上还没有接收到所述用户输入。CPU 1预测将接收到用户输入2和3,或有可能接收到用户输入2和3,或有可能在接收到用户输入1之后接收到用户输入2和3。CPU 1预测将在接收到用户输入1之后从客户端装置1相继地接收到用户输入2,并且CPU 1预测将在接收到用户输入2之后相继地接收到用户装置3。作为示例,预测状态2包括基于或对应于用户输入2的虚拟对象的位置和取向,并且还包括基于或对应于用户输入3的虚拟对象的位置和取向。虚拟对象由用户A经由客户端装置1进行控制。由CPU 1应用的物理定律是物理预测引擎的一部分。CPU 1还确定对应于预测状态2的虚拟对象的位置和取向的音频数据。CPU 1将预测状态2的虚拟对象的位置和取向以及要由预测状态2的虚拟对象输出的音频数据存储在节点1的存储器装置1中。在一个实施方案中,根据用户输入2或根据任何其他数量的用户输入(诸如三个、四个或五个用户输入)来确定预测状态2的移动。

此外,CPU 1a从存储器装置1访问虚拟对象的位置和取向以及要由预测状态2的虚拟对象输出的音频数据,并且应用AI预测引擎来确定在确定了预测状态2的虚拟对象的位置和取向的一个或多个虚拟场景中的一个或多个AI的一个或多个位置和一个或多个取向。例如,CPU 1a确定在由用户A经由客户端装置1控制的虚拟对象具有基于用户输入2或基于用户输入2和3确定的位置和取向的虚拟场景中的AI的位置和取向。作为另一个示例,CPU1a确定当由用户A经由客户端装置1控制的另一个虚拟对象在虚拟场景中向左跑或坐下时,由AI或CPU 1a控制的虚拟对象将在虚拟场景中向右移动或站立。

此外,CPU 1a应用音频预测引擎以基于要由预测状态2的虚拟对象输出的音频数据来生成要由预测状态2的一个或多个AI输出的音频数据。CPU 1a将一个或多个AI的一个或多个位置和一个或多个取向以及要由预测状态2的一个或多个AI输出的音频数据存储在存储器装置1a中。

节点1的GPU 1从存储器装置1访问虚拟对象的位置和预测状态2的虚拟对象的取向,并且从存储器装置1a访问预测状态2的一个或多个AI的一个或多个位置和一个或多个取向,并且将作为渲染引擎的图形预测引擎应用于位置和取向以生成预测状态2的一个或多个图像帧。预测状态2的图像帧由GPU 1存储在GPU存储器装置1中。例如,预测状态2的图像帧存储在GPU存储器装置1的一个或多个高速缓存中。

音频编码器1从存储器装置1访问虚拟对象的音频数据并从存储器装置1a访问一个或多个AI的音频数据以生成一个或多个音频帧,并且对预测状态2的音频帧进行编码以输出预测状态2的一个或多个编码音频帧。类似地,视频编码器1从GPU存储器装置1访问预测状态2的图像帧,并且对图像帧进行编码以输出一个或多个编码图像帧。音频编码器1将预测状态2的编码音频帧存储在音频编码器1的存储器装置中,并且视频编码器1将预测状态2的编码图像帧存储在视频编码器1的存储器装置中。

当实际上由节点A经由计算机网络102从客户端装置1接收到用户输入2和3时,节点A的CPU A将用户输入2和3发送到内部通信装置A。例如,节点A的网络通信装置A经由计算机网络102从客户端装置1接收用户输入2和3。内部通信装置A将内部通信协议应用于用户输入2和3以生成具有用户输入2和3的一个或多个传送单元,并且将传送单元发送到节点1的内部通信装置1。内部通信装置1接收传送单元并将内部通信协议应用于传送单元以从传送单元获得用户输入2和3,并且将用户输入2和3提供到CPU 1。

CPU 1确定实际上接收到的用户输入2和3与其中由节点1生成预测状态2的编码图像帧和编码音频帧的用户输入2和3匹配。在这样确定后,CPU 1向节点1的网络通信装置1发送信号。网络通信装置1从视频编码器1的存储器装置访问预测状态2的编码图像帧并从音频编码器1访问预测状态2的编码音频帧,并且将外部通信协议应用于预测状态2的编码图像帧和编码音频帧以生成一个或多个包。网络通信装置1经由计算机网络102将包发送到客户端装置1,以根据预测状态2的编码图像帧在客户端装置1上显示一个或多个图像,并且由客户端装置1根据预测状态2的编码音频帧输出声音。

通过在用户输入2和3被节点1或节点A实际接收之前生成预测状态2的编码图像帧和编码音频帧,减少了分布式游戏引擎系统106执行应用程序的延迟。例如,一旦用户输入2和3被节点1或节点A接收,就没有延迟地分析用户输入2和3以确定由用户A经由客户端装置1控制的虚拟对象的一个或多个位置和一个或多个取向,确定要由虚拟对象输出的音频数据,确定在具有虚拟对象的虚拟场景中的一个或多个AI的一个或多个一个或多个位置和一个或多个取向,确定要由一个或多个AI输出的音频数据,根据虚拟对象和AI的位置和取向来生成图像帧,根据图像帧来生成预测状态2的编码图像帧,并且根据AI和虚拟对象的音频数据来生成预测状态2的编码音频帧。确定在虚拟场景中的虚拟对象的一个或多个位置和一个或多个取向、确定要由虚拟对象输出的音频数据、确定在虚拟场景中的一个或多个AI的一个或多个位置和一个或多个取向、确定要由一个或多个AI输出的音频数据、根据虚拟对象和AI的位置和取向来生成图像帧、根据图像帧来生成预测状态2的编码图像帧以及根据AI和虚拟对象的音频数据来生成预测状态2的编码音频数据的操作中的一者或多者已经由节点1在节点1接收到用户输入2和3之前提前执行。一旦节点1接收到用户输入2和3,就根据预测状态2的编码图像帧和预测状态2的编码音频数据生成一个或多个包,并且经由计算机网络102将所述包从节点1发送到客户端装置1以减少应用程序的执行的延迟。

应注意,CPU 1应用物理预测引擎、CPU 1应用音频预测引擎、CPU 1a应用AI预测引擎以及节点1的GPU 1应用图形预测引擎来生成预测状态2中的一者或多者与CPU A应用物理引擎、CPU A应用音频引擎、CPU A1应用AI引擎以及节点A的GPU A应用图形引擎来生成状态1中的一者或多者同时执行。例如,在CPU A应用物理引擎、CPU A应用音频引擎、CPU A1应用AI引擎和/或节点A的GPU A应用图形引擎来生成状态1的时间段期间,用于生成预测状态2的物理预测引擎、音频预测引擎、AI预测引擎和图形预测引擎被节点1应用。

此外,当节点1在应用物理预测引擎、AI预测引擎、音频预测引擎或图形预测引擎或它们的组合来生成预测状态2的图像帧和音频帧时,在接收到用户输入1'而不是用户输入2的情况下,节点A和1中的一者或多者应用高优先级处理以基于用户输入1'来确定状态1'。例如,节点A的CPU A经由计算机网络102从客户端装置1接收用户输入1'。CPU A确定在接收到用户输入1而不是预测状态2的用户输入2之后接收到用户输入1'。CPU A进一步确定用户输入1'与为其确定预测状态2的用户输入2不匹配。

预测状态2的用户输入2和3预先存储在存储器装置A中,以用于确定预测状态2的用户输入2与用户输入1'之间以及预测状态2的用户输入3与用户输入1'之间是否发生匹配。例如,CPU 1从节点1的存储器装置1访问预测状态2的用户输入2和3,并且将预测状态2的用户输入2和3提供到节点1的内部通信装置1。内部通信装置1将内部通信协议应用于预测状态2的用户输入2和3以生成一个或多个传送单元,并且将传送单元发送到节点A的内部通信装置A。内部通信装置A将内部通信协议应用于传送单元以获得预测状态2的用户输入2和3,并且将预测状态2的用户输入2和3发送到存储器装置A进行存储。

CPU A将用户输入1'提供到内部通信装置A。内部通信装置A将内部通信协议应用于用户输入1'以生成具有用户输入1'的一个或多个传送单元,并且将传送单元发送到节点1的内部通信装置1。在接收到具有用户输入1'的传送单元后,内部通信装置A将内部通信协议应用于传送单元以从传送单元提取用户输入1',并且将用户输入1'提供到节点1的CPU1。

当节点1接收到用户输入1'而不是接收到用户输入2时,节点1停止应用用于根据预测状态2的用户输入2和3来生成预测状态2的物理预测引擎、AI预测引擎、音频预测引擎和图形预测引擎中的一者或多者,以提供与生成预测状态2相比更高的优先级来生成状态1'。例如,用户输入1'由节点1接收到或由节点A在节点1处于应用其物理预测引擎、其AI预测引擎、其音频预测引擎或图形预测引擎中的一者或多者来生成预测状态2时或在此时间段期间接收到。CPU 1停止应用物理预测引擎来确定预测状态2的由用户A控制的虚拟对象的移动,或CPU 1停止应用音频预测引擎来确定要由预测状态2的虚拟对象输出的音频数据,或CPU 1a停止应用AI预测引擎来确定预测状态2的一个或多个AI的移动,或CPU 1a停止应用AI预测引擎或音频预测引擎来确定要由预测状态2的AI输出的音频数据,或GPU 1停止应用图形预测引擎来根据预测状态2的虚拟对象的移动和AI的移动来生成一个或多个图像帧,或视频编码器1停止对预测状态2的图像帧进行编码,或音频编码器1停止对预测状态2的音频数据进行编码,或它们的组合。

另外,当接收到用户输入1'而不是用户输入2和3时,代替生成预测状态2,节点A和1中的一个立即开始根据用户输入1'生成状态1'以提供与生成预测状态2相比更高的优先级来生成状态1'。例如,用户输入1'由节点1接收到或由节点A在节点1处于生成预测状态2的图像帧或编码图像帧或编码音频帧或它们的组合的过程时或在此时间段期间接收到。节点1停止生成预测状态2的图像帧或编码图像帧或编码音频帧。相反,节点1的CPU 1或节点A的CPU A应用其物理引擎来确定状态1'的由用户A经由客户端装置1控制的虚拟对象的移动。此外,节点1的CPU 1或节点A的CPU A应用其音频引擎来确定要由状态1'的虚拟对象输出的音频数据。另外,节点A的CPU A1或节点1的CPU 1a应用其AI引擎以基于状态1'的虚拟对象的移动来确定状态1'的一个或多个AI的移动并且基于要由状态1'的虚拟对象输出的音频数据来确定要由状态1'的一个或多个AI输出的音频数据。另外,节点A的GPU A或节点1的GPU 1应用其图形引擎来生成虚拟对象的一个或多个图像帧、要在其中显示虚拟对象的虚拟场景的虚拟背景,以及状态1'的一个或多个AI的图形。此外,音频编码器A或音频编码器1对要由状态1'的虚拟对象输出的音频数据和要由状态1'的一个或多个AI输出的音频数据进行编码,以生成一个或多个编码音频帧。另外,视频编码器A或视频编码器1对状态1'的图像帧进行编码,以输出一个或多个编码图像帧。网络通信装置A或网络通信装置1将外部通信协议应用于状态1'的编码音频帧和编码图像帧以生成状态1'的一个或多个包,并且经由计算机网络102将包发送到客户端装置1。客户端装置1处理状态1'的编码图像帧以在客户端装置1的显示装置上显示状态1'的一个或多个图像,并且处理状态1'的编码音频帧以输出与一个或多个图像相关联的声音。

在一个实施方案中,当CPU 1确定实际上接收到的用户输入2和3与节点1为其生成预测状态2的图像帧和音频帧的用户输入2和3匹配时,CPU 1向节点1的视频编码器1和节点1的音频编码器1发送编码信号。预测状态2的图像帧和预测状态2的音频数据在实际上接收到用户输入2和3之前不进行编码。在接收到编码信号后,视频编码器1以上述方式执行对预测状态2的图像帧的编码,并且音频编码器1执行对预测状态2的音频数据的编码。节点1的网络通信装置1将外部通信协议应用于编码帧(包括编码音频帧和编码图像帧)以便以上述方式生成包,并且将包发送到客户端装置1。

在一个实施方案中,状态1'的一部分由节点A生成并且状态1'的另一部分由节点1基于用户输入1'生成。例如,节点A应用其物理引擎来确定状态1'的虚拟场景中的虚拟对象的移动,并且节点1应用其音频引擎来确定要由状态1'的虚拟对象输出的音频数据。作为另一个示例,节点A应用其物理引擎来确定状态1'的虚拟场景中的虚拟对象的移动,并且节点1应用其AI引擎以基于状态1'的虚拟对象的移动来确定虚拟场景中的一个或多个AI的移动。

在该实施方案中,将状态1'的由节点A生成的部分从节点A传送到节点1,或者将状态1'的由节点1生成的部分从节点1传送到节点A,以用于经由计算机网络102发送到客户端装置1。例如,由CPU A从存储器装置A访问包括定义状态1'的虚拟场景中的虚拟对象的移动的位置和取向的数据,并且发送到内部通信装置A。内部通信装置A通过将内部通信协议应用于定义状态1'的虚拟对象的移动的数据来生成一个或多个传送单元,并且将传送单元发送到内部通信装置1。内部通信装置1将内部通信协议应用于传送单元以获得定义状态1'的虚拟对象的移动的数据,并且将该数据发送到CPU 1a以用于确定定义虚拟场景中的一个或多个AI的移动的位置和取向。作为另一个示例,由GPU 1从节点1的GPU存储器装置1访问状态1'的一个或多个AI的一个或多个图像帧,并且发送到内部通信装置1以用于根据内部通信协议来生成一个或多个传送单元。传送单元从内部通信装置1发送到内部通信装置A,该内部通信装置A应用内部通信协议以获得状态1'的一个或多个AI的图像帧,并且将图像帧发送到视频编码器A。节点A的视频编码器A对从节点1接收到的状态1'的一个或多个AI的图像帧和状态1'的虚拟对象的图像帧进行编码。状态1的虚拟对象的图像帧存储在节点A的GPU存储器装置A中。此外,视频编码器A对状态1'的虚拟场景的任何剩余图像帧进行编码,以输出状态1'的编码图像帧。另外,状态1'的音频数据由音频编码器A进行编码,以输出状态1'的一个或多个编码音频帧。网络通信装置A将外部通信协议应用于状态1'的编码音频帧和编码图像帧以生成一个或多个数据包,并且经由计算机网络102将包发送到客户端装置1。

在一个实施方案中,由节点1和A中的与另一个节点相比具有更快处理速度和/或更大存储器的一者来执行高优先级处理。例如,节点1和A选择具有更快处理速度的CPU 1以应用其物理引擎来生成关于状态1'的由用户A控制的虚拟对象的移动的数据,诸如一个或多个位置和一个或多个取向。CPU A确定CPU 1具有更快的处理速度并且经由内部通信装置A和1将状态1'的用户输入1'发送到CPU 1以处理用户输入1'。作为另一个示例,与GPU存储器装置1内的存储器空间相比,GPU存储器装置A具有更大量的存储器空间。在该示例中,由CPU 1从存储器装置1访问由CPU 1确定的关于状态1'的虚拟对象的移动的数据,并且发送到内部通信装置1。内部通信装置1将内部通信协议应用于关于状态1'的虚拟对象移动的数据以生成一个或多个传送单元,并且将传送单元发送到内部通信装置A。内部通信装置A将内部通信协议应用于传送单元以获得关于虚拟对象的移动的数据,并且将该数据发送到存储器装置A进行存储。GPU A从存储器装置A访问关于状态1'的虚拟对象的移动的数据以根据该数据生成一个或多个图像帧,并且将图像帧存储在GPU存储器装置A中。

在一个实施方案中,节点1和A中的一者或多者响应于接收到用户输入1'而确定或识别预测状态2的一个或多个元素与状态1'的一个或多个元素之间的差异,并且基于该差异来生成音频数据或图像帧以经由计算机网络102提供到客户端装置1。例如,GPU 1生成虚拟场景的预测状态2的虚拟背景的一个或多个图像帧。在生成预测状态2的虚拟背景的图像帧之后,节点A接收到用户输入1'。用户输入1'从节点A提供到节点1以存储在GPU存储器装置1中。GPU 1确定从节点A接收到用户输入1'并且在接收用户输入1'时,预测状态2的虚拟背景的图像帧由节点1的GPU 1从GPU存储器装置1提供到内部通信装置1。内部通信装置1将内部通信协议应用于预测状态2的虚拟背景的图像帧以生成一个或多个传送单元,并且将传送单元发送到节点A的内部通信装置A。节点A的内部通信装置A将内部通信协议应用于传送单元以获得预测状态2的虚拟背景的图像帧,并且将图像帧提供到CPU A和节点A的CPUA1。CPU A解析预测状态2的虚拟背景的图像帧以确定或识别要为状态1'的虚拟场景生成的图像帧与预测状态2的虚拟场景的虚拟背景的图像帧之间的差异。CPU A确定该差异是要叠加在预测状态2的虚拟背景上的虚拟对象的差异。该差异是基于用户输入1'确定的。要叠加的虚拟对象或虚拟对象的位置和取向是状态1'的一个或多个元素的示例,并且预测2的虚拟背景是预测状态2的一个或多个元素的示例。CPU A确定虚拟对象的位置和取向以及要由状态1'的虚拟对象输出的音频数据,并且将位置、取向和音频数据存储在节点A的存储器装置A中。状态1'的虚拟对象的位置和取向是根据用户输入1'确定的。

此外,在该实施方案中,节点A的CPU A1解析预测状态2的虚拟背景的图像帧,以确定或识别要为状态1'的虚拟场景生成的图像帧和预测状态2的虚拟场景的虚拟背景的图像帧之间的差异是要叠加在预测状态2的虚拟背景上的AI的差异。该差异是根据状态1'的虚拟对象的位置和取向确定的。要叠加的AI或AI的位置和取向是状态1'的一个或多个元素的示例。CPU A1确定AI的位置和取向以及要由状态1'的AI输出的音频数据,并且将位置、方向和音频数据存储在存储器装置A1中。状态1'的AI的位置和取向是根据状态1'的虚拟对象的位置和取向确定的。为了说明,如果状态1'的虚拟对象跳跃,则状态1'的AI跳得比虚拟对象更高,或者如果状态1'的虚拟对象在虚拟场景中射击,则AI也在虚拟场景中射击。

在该实施方案中,GPU A基于虚拟对象的位置和取向来生成具有状态1'的虚拟对象的图像帧、基于AI的位置和取向来生成具有状态1'的AI的图像帧,并且将状态1'的虚拟对象的图像帧叠加到预测状态2的虚拟背景的图像帧上,以生成状态1'的虚拟场景的叠加图像帧。GPU A将叠加图像帧发送到视频编码器A。视频编码器A对叠加图像帧进行编码,以生成状态1'的虚拟场景的编码图像帧。

另外,在该实施方案中,音频编码器A对状态1'的AI和虚拟对象的音频数据进行编码以生成编码音频帧。状态1'的虚拟场景的编码图像帧和状态1'的虚拟场景的编码音频帧由网络通信装置A转换成一个或多个包,并且通过计算机网络102发送到客户端装置1,以在客户端装置1的显示装置上显示状态1'的虚拟场景的一个或多个合成图像,该一个或多个合成图像具有预测状态2的虚拟背景以及状态1'的虚拟对象和AI。

在一个实施方案中,代替如前述实施方案中描述的将虚拟对象的图像帧和AI的图像帧叠加在虚拟背景的图像帧上,具有虚拟对象或AI或这两者以及状态1'的虚拟场景的虚拟背景的图像帧由节点A或节点1基于用户输入1'生成,并且进行编码并经由计算机网络102发送到客户端装置1进行显示。在该实施方案中,GPU 1从GPU存储器装置1丢弃(诸如删除或擦除)具有预测状态2的虚拟背景的图像帧。具有预测状态2的虚拟背景的图像帧与具有状态1'的虚拟背景的图像帧匹配。例如,预测状态2的虚拟背景与状态1'的虚拟背景相同。

应注意,在一个实施方案中,系统200包括除图2A中所示的节点之外的多个节点。例如,系统200包括50个节点、或25个节点、或5个节点。

还应注意,上述实施方案中的一些是关于两个用户输入2和3描述的。然而,在一个实施方案中,这些实施方案同样适用于一个用户输入,诸如用户输入2或用户输入3,而不是用户输入2和3两者。例如,预测状态2是基于用户输入2而不是用户输入2和3两者生成的。

在一个实施方案中,代替使用用户输入1来生成状态1或预测状态2,使用任何数量的用户输入来生成状态1或预测状态2。例如,节点A的CPU A将一个或多个先前的用户输入存储在存储器装置A中。该一个或多个先前的用户输入是在节点A从客户端装置1接收到用户输入1之前由节点A经由计算机网络102从客户端装置1接收到的用户输入。该一个或多个先前的用户输入是以与生成用户输入1类似的方式生成的。例如,当用户A选择客户端装置1的输入装置上的一个或多个按钮或移动客户端装置1上的一个或多个操纵杆或做出被客户端装置1的相机捕获的一个或多个姿势时,生成一个或多个先前的用户输入。作为示例,当用户A控制客户端装置1的输入装置来移动虚拟场景中的化身或虚拟对象时,客户端装置1生成一个或多个先前的用户输入。内部通信装置A访问存储在节点A的GPU存储器装置A中的用户输入1和状态1的一个或多个先前的用户输入,将内部应用协议应用于用户输入1和一个或多个先前的用户输入以生成具有用户输入1、先前的用户输入的一个或多个传送单元,并且将传送单元发送到节点1的内部通信装置1。预测状态2由节点1基于一个或多个先前的用户输入和用户输入1以由节点1基于用户输入1生成状态1的类似方式生成。

在一个实施方案中,状态1的输出用于生成预测状态2。例如,CPU 1基于状态1的虚拟对象的位置来确定预测状态2的由用户A经由客户端装置1控制的虚拟对象的位置。为了说明,对于预测状态2,虚拟对象从状态1的位置向右或向左或向上或向下移动。作为另一个示例,CPU 1基于状态1的虚拟对象的取向来确定预测状态2的由用户A经由客户端装置1控制的虚拟对象的取向。为了说明,对于预测状态2,虚拟对象从状态1的虚拟对象的取向顺时针或顺时针旋转。作为又一个示例,CPU 1a基于状态1的虚拟对象的位置来确定预测状态2的AI的位置,并且基于状态1的AI的取向来确定预测状态2的AI的取向。

在一个实施方案中,用户对本文描述的输入装置进行任何控制以改变状态是经由服务器系统104指派给用户的用户账户进行的。例如,用户A在登录用户账户后使用客户端装置1经由他/她的用户账户来控制虚拟对象。

应注意,在一个实施方案中,在本文中描述为由节点A的CPU A执行的功能反而由节点A的CPU A1执行,或者描述为由CPU A1执行的功能反而由CPU A执行。由类似地,在一个实施方案中,在本文中描述为由节点1的CPU 1执行的功能反而由节点1的CPU 1a执行,或者描述为由CPU 1a执行的功能反而由CPU 1执行。

图3A是用于示出分布式游戏引擎302和分布式预测器引擎304的系统300的实施方案的图。分布式游戏引擎302和分布式预测器引擎304是分布式游戏引擎系统106(图1)的部分。例如,分布式游戏引擎系统106的节点A、B和C中的一者或多者是分布式游戏引擎302的节点,并且分布式游戏引擎系统106的节点1和2中的一者或多者是分布式预测器引擎304的节点。分布式游戏引擎302和分布式预测器引擎304中的每一个的示例包括机器学习引擎和神经网络。

如图306所示,由用户A经由客户端装置1控制的虚拟对象(诸如用户A的化身或表示)从虚拟场景中的位置a移动到位置b。图306示出了虚拟场景中的虚拟对象的位置。用户输入1由分布式游戏引擎302接收并处理以生成状态1,该状态包括由用户A经由客户端装置1(图1)控制的虚拟对象的位置c。位置c是状态1的输出的示例。接收用户输入1以将由用户A经由客户端装置1控制的虚拟对象从位置b移动到位置c。

在处理用户输入1以确定位置c或生成用于将虚拟对象显示为从位置b移动到位置c的图像帧时间段期间,分布式预测器引擎304接收到用户输入1并且将经由计算机网络102(图1)从客户端装置1接收预测用户输入2,并且处理用户输入2以输出预测状态2,该预测状态包括由用户A控制的虚拟对象的位置d1以及从位置c到位置d1的移动。另外,在处理用户输入1的时间段期间,分布式预测器引擎304进一步预测在接收到用户输入2后,将接收到用户输入3以输出预测状态2,该预测状态包括由用户A控制的虚拟对象的位置f以及从位置d1到位置f的移动。

此外,如果在处理用户输入2和3以输出预测状态2的时间段期间,分布式预测器引擎304或分布式游戏引擎302确定接收到用户输入1',则分布式游戏引擎302和分布式预测器引擎304中的一者或多者基于用户输入1'来确定状态1'。例如,分布式游戏引擎302和分布式预测器引擎304中的一者或多者确定状态1',而不是继续确定预测状态2。状态1'包括由用户A经由客户端装置1控制的虚拟对象的位置d以及虚拟对象从位置c到位置d的移动。位置c、d1和f沿着路径I定位,并且位置c、d和f沿着预测路径II定位。

在一个实施方案中,分布式预测器引擎304基于虚拟场景的用户A的历史、或虚拟场景的其他用户B和C(图1)的历史、或虚拟场景中的一个或多个虚拟对象的一个或多个位置和一个或多个取向、或虚拟场景的状态1或它们的组合来确定虚拟场景的预测状态2。例如,CPU 1(图2A)确定用户A将更有可能控制客户端装置1的输入装置来生成用户输入2,以将虚拟对象从位置c移动到位置d1而不是位置d。在该示例中,CPU 1访问存储器装置1(图2A)或存储器装置A(图2A)内的数据库,以确定用户A先前经由他/她的用户账户来控制虚拟对象从位置c行进到位置d1而不是从位置c行进到位置d超过预定次数。CPU 1经由内部通信装置A和1(图2A)来访问存储器装置A内的数据库。作为另一个示例,CPU 1确定用户A将更有可能控制客户端装置1的输入装置来生成用户输入2,以将虚拟对象从位置c移动到位置d1。在该示例中,CPU 1访问存储器装置1(图2A)或存储器装置A内的数据库,以确定大于预设数量的用户B和C先前经由其对应的用户账户以及其对应的客户端装置2和3(图1)来控制虚拟对象从位置c行进到位置d1而不是从位置c行进到位置d,并且用户B和C中的每一者都控制虚拟对象超过预定次数。

作为又一个示例,CPU 1确定用户A将更有可能控制客户端装置1的输入装置来生成用户输入2,以将虚拟对象从位置c移动到位置d1而不是位置d。在该示例中,CPU 1访问存储器装置1(图2A)或存储器装置A内的数据库,以确定用户A先前经由他/她的用户账户来控制虚拟对象从位置c行进到位置d1而不是从位置c行进到位置d超过预定次数。另外,在该示例中,CPU 1访问存储器装置1(图2A)或存储器装置A内的数据库,以确定大于预设数量的用户B和C先前经由其对应的用户账户以及其对应的客户端装置2和3来控制虚拟对象从位置c行进到位置d1而不是从位置c行进到位置d,并且用户B和C中的每一者都控制虚拟对象超过预定次数。

作为另一个示例,CPU 1确定用户A将更有可能控制客户端装置1的输入装置来生成用户输入2,以将虚拟对象从位置c移动到位置d1而不是位置d。在该示例中,CPU 1访问具有由用户A经由客户端装置A控制的虚拟对象的虚拟场景内的AI的位置。从存储器装置1a(图2A)或存储器装置A1(图2A)访问AI的位置。虚拟对象位于虚拟场景中的位置c处。CPU 1经由内部通信装置A和1(图2A)来访问存储器装置A1。CPU 1根据虚拟场景中的AI的位置来确定虚拟对象更有可能从位置c移动到位置d1而不是位置d。为了说明,CPU 1确定位置c处的虚拟对象的虚拟敌人靠近虚拟对象,并且因此虚拟对象将跑到位置d1而不是位置d。位置d1比位置d更安全,因为位置d1为虚拟对象提供掩护。与没有掩护的位置d相比,位置d1可以在虚拟场景中的虚拟岩石或虚拟树后面以提供掩护。

作为又一个示例,CPU 1确定用户A将更有可能控制客户端装置1的输入装置来生成用户输入2,以将化身从位置c移动到位置d1而不是位置d。在该示例中,CPU 1从存储器装置1或存储器装置A(图2A)访问另一个虚拟对象的位置,诸如生命值水平条上的滑块,以确定化身的生命值低于预定水平。当化身的生命值低于预定水平时,CPU 1进一步确定将有可能经由计算机网络102从客户端装置1接收用户输入2而不是接收用户输入1'。

应注意,在图306中,代替位置a、b、c、d、d1和f,可使用取向a、b、c、d、d1和f,或者a、b、c、d、d1和f中的每一者是位置和取向的组合。

图3B是用于示出在由用户A经由客户端装置1(图1)控制的虚拟对象处于位置c的时间段期间生成预测状态2的图像帧和音频帧的系统310的实施方案的图。系统310包括分布式预测器引擎304,该分布式预测器引擎进一步包括分布式物理预测引擎312。分布式物理预测引擎312由节点A的CPU A、或节点B的CPU、或节点1的CPU 1、或节点2的CPU 2或它们的组合执行。

在由用户A通过客户端装置1控制的虚拟对象处于位置c的时间段期间,分布式物理预测引擎312预测或确定该虚拟对象极有可能或稍微有可能与在位置c和d1之间的另一个虚拟对象314碰撞。当虚拟对象将从预测状态2的位置c移动到位置d1时,分布式物理预测引擎312预测或确定虚拟对象将极有可能或稍微有可能与另一个虚拟对象314碰撞。在这样预测后,分布式物理预测引擎312确定在碰撞期间由用户A控制的虚拟对象的一个或多个位置和一个或多个取向以及虚拟对象314的一个或多个位置和一个或多个取向,并且将位置和取向存储在节点1(图2A)和2的一个或多个存储器装置中。另外,分布式预测器引擎304的分布式音频预测引擎生成碰撞的音频数据。另外,分布式预测器引擎304的分布式图形引擎从节点1(图2A)和2的一个或多个存储器装置访问由用户A控制的虚拟对象和虚拟对象314的位置和取向,并且根据碰撞期间的位置和取向来生成一个或多个图像帧。此外,节点1和2的一个或多个视频编码器获得图像帧,并且对图像帧进行编码以输出碰撞的一个或多个编码图像帧。另外,节点1和2的一个或多个音频编码器获得碰撞的音频数据以输出一个或多个音频帧,并且对音频帧进行编码以输出碰撞的一个或多个编码音频帧。

在实际上经由计算机网络102从客户端装置1接收到用户输入2后,节点1和2的一个或多个网络通信装置将外部通信协议应用于编码音频帧和编码视频帧以生成一个或多个包,并且经由计算机网络102将包发送到客户端装置1,以在客户端装置1上显示碰撞的一个或多个图像并且在客户端装置1上输出碰撞的声音。

图3C是用于示出在正在生成预测状态2时由分布式游戏引擎系统106经由计算机网络102(图1)从客户端装置1接收到的用户输入1'充当生成状态1'的触发事件的分布式游戏引擎系统106的实施方案。当在接收到用户输入1后立即由分布式游戏引擎系统106经由计算机网络102从客户端装置1接收到用户输入1'时,分布式游戏引擎系统106停止应用物理预测引擎、AI预测引擎、图形预测引擎和音频预测引擎来生成预测状态2的图像帧和音频帧,并且开始应用图形引擎、AI引擎、图形引擎和音频引擎来生成状态1'的图像帧和音频帧。作为示例,节点1(图2A)的CPU 1停止确定预测状态2的由用户A控制的虚拟对象的位置、取向和音频数据。相反,节点1(图1)的CPU 1或节点A(图2A)的CPU A开始基于用户输入1'来确定状态1'的虚拟对象的位置、取向和音频数据。作为另一个示例,节点1(图2A)的CPU 1a停止生成预测状态2的AI的位置、取向和音频数据。相反,节点1(图2A)的CPU 1a或节点A(图2A)的CPU A1开始基于用户输入1'来确定状态1'的AI的位置、取向和音频数据。作为又一示例,节点1(图2A)的GPU 1停止根据预测状态2的虚拟对象的一个或多个位置和取向以及预测状态2的AI的一个或多个位置和取向来生成一个或多个图像帧。虚拟对象由用户A经由客户端装置1(图1)控制。相反,节点1的GPU 1或节点A(图2A)的GPU A开始根据状态1'的虚拟对象的一个或多个位置和取向以及状态1'的AI的一个或多个位置和取向来生成一个或多个图像帧。另外,节点1(图2A)的音频编码器1停止对要由预测状态2的虚拟对象输出的音频数据进行编码,并且节点1(图2A)的视频编码器1停止对预测状态2的图像帧进行编码。相反,音频编码器1或音频编码器A开始对状态1'的音频数据进行编码以输出状态1'的编码音频帧。另外,视频编码器1或视频编码器A开始对状态1'的图像帧进行编码,以输出状态1'的编码图像帧。状态1'的编码音频帧和编码图像帧由节点A的网络通信装置A或节点1(图2A)的网络通信装置1分包,并且经由计算机网络102(图2B)发送到客户端装置1,以基于编码图像帧在客户端装置1上显示虚拟场景的一个或多个图像并且基于编码音频帧输出虚拟场景的声音。

图3D是用于示出在接收到状态1'的用户输入1'时而不是在接收到预测状态2的用户输入2时渲染虚拟对象或AI并将其添加到虚拟背景的图。节点1(图2A)的GPU 1生成预测状态2的虚拟背景的图像帧,并且图像帧不包括预测状态2的由用户A经由客户端装置1控制的虚拟对象和/或不包括预测状态2的AI。在接收到用户输入1'之后,节点A(图2A)的CPU A确定状态1'的由用户A控制的虚拟对象的位置和取向,并且基于用户输入1'来进一步确定要由虚拟对象输出的音频数据。节点A的CPU A确定状态1'的虚拟对象将在该位置和取向添加到预测状态2的虚拟背景的位置和取向。

应注意,CPU A从节点1的存储器装置1访问预测状态2的虚拟背景的位置和取向。例如,CPU A经由内部通信装置A和1(图2A)向节点1发送对预测状态2的虚拟背景的位置和取向的请求。在接收到请求后,节点1的CPU 1从节点1的存储器装置1访问预测状态2的虚拟背景的位置和取向,并且将位置和取向提供到内部通信装置1。内部通信装置1将内部通信协议应用于预测状态2的虚拟背景的位置和取向以生成一个或多个传送单元,并且将传送单元发送到节点A的内部通信装置A。内部通信装置A将内部通信协议应用于传送单元以获得预测状态2的虚拟背景的位置和取向,并且将虚拟背景的位置和取向提供到节点A的CPUA。

此外,节点A(图2A)的CPU A1确定状态1'的AI的位置和取向,并且基于用户输入1'来进一步确定要由AI输出的音频数据。CPU A1确定状态1'的AI将在该位置和取向添加到预测状态2的虚拟背景的位置和取向。CPU A1以与以上描述的CPU A从节点1访问预测状态2的虚拟背景的位置和取向类似的方式从节点1访问预测状态2的虚拟背景的位置和取向。节点A(图2A)的GPU A访问状态1'的存储在节点A的存储器装置A中的虚拟对象的位置和取向,并且将处于该位置和取向的虚拟对象叠加在预测状态2的虚拟背景的一个或多个图像帧上,以输出状态1'的虚拟场景的一个或多个叠加图像帧。此外,节点A的GPU A访问状态1'的存储在节点A的存储器装置A1中的AI的位置和方向,并且将处于该位置和方向的AI叠加在预测状态2的虚拟背景的图像帧上,以输出状态1'的虚拟场景的叠加图像帧。

节点A的视频编码器A获得叠加图像帧,并且对叠加图像帧进行编码,以输出一个或多个编码叠加图像帧。此外,节点A的音频编码器A对要由状态1'的虚拟对象输出的音频数据进行编码以生成一个或多个编码音频帧,并且对要由状态1'的AI输出的音频数据进行编码以生成一个或多个编码音频帧。节点A的网络通信装置A根据状态1'的编码叠加图像帧和编码音频帧来生成一个或多个包,并且经由计算机网络102将包发送到客户端装置1,以在客户端装置1上显示具有虚拟场景中的虚拟背景、虚拟对象和AI的一个或多个合成图像。

在一个实施方案中,代替基于预测状态2的虚拟背景来生成状态1'的叠加图像帧,具有状态1'的相同虚拟背景的一个或多个图像帧由节点A的GPU A重新渲染以生成状态1'(图2A)的一个或多个图像帧。

另外,在一个实施方案中,代替将状态1'的AI和虚拟对象两者添加到预测状态2的虚拟背景,将状态1'的AI或虚拟对象添加到预测状态2的虚拟背景。

图4A是用于示出节点1用于执行虚拟对象在虚拟场景中可能发生碰撞的宽相位检测并且节点2用于执行窄相位检测以确定虚拟对象的碰撞的接触点的系统400的实施方案的图。节点2还用于执行碰撞解决。系统400包括节点1、节点2、节点A、节点B、计算机网络102、节点组件服务器202、云游戏服务器204和客户端装置1。节点B耦合到交换系统206。

节点2包括中央处理单元2(CPU 2)、存储器装置2、另一个中央处理单元2a(CPU2a)、存储器单元2a、图形处理单元2(GPU 2)、GPU存储器装置2、内部通信装置2、网络通信装置2、音频编码器(AE)2以及视频编码器(VE)2。节点2的部件(诸如CPU 2、存储器装置2、CPU2a、存储器装置2a、GPU 2、GPU存储器装置2、内部通信装置2、网络通信装置2、音频编码器2和视频编码器2)经由总线2彼此耦合。

在接收到用户输入1后,节点1的CPU 1执行物理预测引擎以执行广泛的检测,并且将执行窄相位检测的计算密集型工作发送到CPU 2和/或将执行碰撞解决的计算密集型工作发送到CPU 2。例如,CPU 1执行物理预测引擎,以基于预测的用户输入2(如果接收到的话)来确定虚拟场景中的第一虚拟对象是否将与虚拟场景中的第二虚拟对象碰撞或极有可能碰撞或稍微有可能碰撞。在这样确定后,CPU 1不确定在碰撞期间第一虚拟对象的位置和取向以及第二虚拟对象的位置和取向。另外,在这样确定后,CPU 1不确定在碰撞之后第一虚拟对象的位置和取向以及第二虚拟对象的位置和取向。而是,CPU 1用指令将第一虚拟对象将与第二虚拟对象碰撞或极有可能碰撞或略有可能碰撞的确定提供到内部通信装置1,以执行窄相位检测和/或碰撞解决。与确定第一虚拟对象和第二虚拟对象将彼此碰撞或极有可能碰撞或略有可能碰撞相比,确定第一虚拟对象和第二虚拟对象在碰撞期间和之后的位置和取向在计算上更加密集。第一虚拟对象和第二虚拟对象在碰撞期间的位置和取向提供第一虚拟对象和第二虚拟对象发生碰撞的碰撞点,并且是复杂物理状态的示例。类似地,第一虚拟对象和第二虚拟对象在碰撞之后的位置和取向是复杂物理状态的附加示例。此外,确定第一虚拟对象和第二虚拟对象将碰撞或极有可能碰撞或稍微有可能碰撞是确定简单物理状态的示例。确定第一虚拟对象和第二虚拟对象具有大于预定百分比(诸如70%或65%)的碰撞机会是确定第一对象和第二对象极有可能碰撞的示例。另外,确定第一虚拟对象和第二虚拟对象具有大于另一个预设百分比(诸如大于40%或50%)且小于预设百分比(诸如70%或65%)的碰撞机会是确定第一虚拟对象和第二虚拟对象略有可能碰撞的示例。

内部通信装置1接收用于执行窄相位检测和/或碰撞解决的指令以及关于第一虚拟对象和第二虚拟对象的碰撞的确定,并且将内部通信协议应用于指令和确定以生成具有指令和确定的一个或多个传送单元。关于第一虚拟对象和第二虚拟对象的碰撞的确定包括第一虚拟对象和第二虚拟对象将碰撞的确定、或第一虚拟对象和第二虚拟对象极有可能碰撞的确定、或第一虚拟对象和第二虚拟对象稍微有可能碰撞的确定。内部通信装置1将传送单元发送到节点2的内部通信装置2。内部通信装置2执行内部通信协议以从传送单元获得用于执行窄相位检测和/或碰撞解决的指令以及关于第一虚拟对象和第二虚拟对象的碰撞的确定,并且将指令和确定发送到节点2的CPU 2。

CPU 2基于关于第一虚拟对象和第二虚拟对象的碰撞的确定来执行用于窄相位检测和/或碰撞解决的指令。例如,CPU 2应用物理预测引擎来确定在碰撞期间第一虚拟对象的一个或多个位置和一个或多个取向以及第二虚拟对象的一个或多个位置和一个或多个取向以及碰撞期间的音频数据,并且将第一虚拟对象和第二虚拟对象的位置和取向以及音频数据存储在存储器装置2中。作为另一个示例,为了解决碰撞,CPU 2应用物理预测引擎来确定在碰撞之后将第一虚拟对象与第二虚拟对象分开多远,并且应用物理定律来产生力以将第一虚拟对象和第二虚拟对象彼此分开。CPU 2还确定对应于在碰撞之后的第一虚拟对象和第二虚拟对象的音频数据并且将音频数据存储在存储器装置2中。在碰撞之后第一虚拟对象与第二虚拟对象之间的间隔由第一虚拟对象的一个或多个位置和一个或多个取向以及第二虚拟对象的一个或多个位置和一个或多个取向限定。

GPU 2从存储器装置2访问第一虚拟对象在碰撞期间和之后的位置和取向以及第二虚拟对象在碰撞期间和之后的位置和取向,并且应用图形预测引擎以基于第一虚拟对象和第二虚拟对象的位置和取向来渲染一个或多个图像帧,并且将图像帧存储在GPU存储器装置2内。视频编码器VE2访问存储在存储器装置2内的图像帧,并且对图像帧进行编码以输出一个或多个编码图像帧,该一个或多个编码图像帧存储在视频编码器VE 2中。此外,音频编码器AE 2访问存储在存储器装置2内的音频数据并对音频数据进行编码以输出一个或多个编码音频帧,该一个或多个编码音频帧存储在音频编码器AE 2中。

由节点A通过计算机网络102从客户端装置1接收用于预测状态2的用户输入2。节点A经由内部通信装置A和1将用户输入2提供到节点1的CPU 1。用户输入2由CPU 1提供到内部通信装置1。内部通信装置1将内部通信协议应用于用户输入2以生成一个或多个传送单元,并且将传送单元发送到内部通信装置2。

内部通信装置2将内部通信协议应用于传送单元以获得用户输入2,并且将用户输入2发送到网络通信装置2。网络通信装置2响应于接收到用户输入2而从音频编码器AE 2获得碰撞的编码音频帧并从视频编码器VE 2获得碰撞的编码视频帧,并且将外部通信协议应用于编码音频帧和编码视频帧以生成一个或多个包,并且经由计算机网络102将包发送到客户端装置1,以在客户端装置1的显示装置上显示第一虚拟对象和第二虚拟对象的碰撞的一个或多个图像并经由客户端装置1输出碰撞的声音。

在一个实施方案中,第一虚拟对象和第二虚拟对象在碰撞期间和之后的位置和取向以及在碰撞期间和之后的音频数据是针对预测状态2。

在一个实施方案中,CPU 2具有比CPU 1更高的处理器性能。例如,与CPU 1相比,CPU 2具有更短的响应时间、或更高的吞吐量、或对节点2的部件的更低利用率、或更大的处理能力、或更少的负载、或更少的要执行的工作量、或更少数量的要执行的任务,或者它们的组合。

应注意,在一个实施方案中,在本文中描述为由节点2的CPU 2执行的功能反而由节点2的CPU 2a执行,或者描述为由CPU 2a执行的功能反而由CPU 2执行。

在一个实施方案中,用户输入1由节点A提供到节点1。例如,用户输入1由节点1经由计算机网络102从客户端装置1接收。CPU 1访问存储在存储器装置1中的用户输入1,并且将用户输入1提供到内部通信装置1。内部通信装置1将内部通信协议应用于用户输入1以生成一个或多个传送单元,并且将传送单元发送到内部通信装置A。内部通信装置A将内部通信协议应用于传送单元以提取用户输入1,并且提供用户输入1以存储在节点1的存储器装置1中,以供CPU 1从存储器中装置1访问。

在一个实施方案中,用户输入1或本文描述的任何其他用户输入(诸如用户输入2、用户输入3和用户输入1')从客户端装置1发送到被交换系统206选择用于执行应用程序的节点中的一者或多者。

在一个实施方案中,CPU 2确定第一虚拟对象和第二虚拟对象要碰撞的接触平面以及距接触点的穿透距离。在一个实施方案中,CPU 2详细地分析来自CPU 1的指令,以确定第一虚拟对象和第二虚拟对象之间没有碰撞,并且不需要确定第一虚拟对象和第二虚拟对象在碰撞期间和之后的位置和取向。

图4B是用于示出从节点1向节点2分派高质量图形工作的系统410的实施方案的图。GPU 1生成预测状态2的一个或多个图像帧或图像帧的一部分,并且将图像帧或图像帧的部分存储在GPU存储器装置1中。预测状态2的一个或多个图像帧或图像帧的部分是简单图形状态的示例,诸如虚拟场景中的虚拟背景。GPU 1生成指令以生成预测状态2的剩余图像帧或图像帧的剩余部分。剩余图像帧或图像帧的剩余部分是复杂图形状态的示例,诸如要在虚拟场景中显示的虚拟对象。虚拟场景在显示时包括简单图形状态的虚拟背景。GPU 1向内部通信装置1发送指令以向节点2提供确定复杂图形状态的任务。内部通信装置1响应于接收到该指令而从存储器装置1访问虚拟对象的一个或多个位置和一个或多个取向、或从存储器装置1a方位AI的一个或多个位置和一个或多个取向、或它们的组合,以促进生成预测状态2的剩余图像帧或图像帧的剩余部分。存储在存储器装置1内的预测状态2的虚拟对象的位置和取向以及存储在存储器装置1a内的预测状态2的AI的位置和取向由节点1的GPU 1用于生成预测状态2的图像帧或图像帧的一部分。

内部通信装置1将内部通信协议应用于从GPU 1接收到的指令并应用于预测状态2的虚拟对象和AI的位置和取向以生成一个或多个传送单元,并且将传送单元发送到内部通信装置2。内部通信装置2接收传送单元,并且将内部通信协议应用于传送单元以获得指令以及预测状态2的虚拟对象和AI的位置和取向。内部通信装置2将指令连同虚拟对象和AI的位置和取向一起发送到GPU 2。

GPU 2根据预测状态2的虚拟对象和AI的位置和取向来生成剩余图像帧或图像帧的剩余部分,并且将剩余图像帧或图像帧的剩余部分存储在GPU存储器装置2内。内部通信装置2从GPU存储器装置2访问预测状态2的剩余图像帧或图像帧的剩余部分,并且将内部通信协议应用于剩余图像帧或图像帧的剩余部分以生成一个或多个传送单元。

预测状态2的传送单元从内部通信装置2发送到节点1的内部通信装置1。内部通信装置1将内部通信协议应用于传送单元以获得预测状态2的剩余图像帧或图像帧的剩余部分,并且将剩余图像帧或剩余部分提供到GPU存储器装置1进行存储。

GPU 1将预测状态2的图像帧的部分与预测状态2的图像帧的剩余部分组合或将预测状态2的图像帧与预测状态2的剩余图像帧组合。例如,GPU 1从预测状态2的图像帧的部分和预测状态2的图像帧的剩余部分识别出该部分和该剩余部分标识相同的图像帧以及该部分的位置相对于该剩余部分的位置。通过识别该部分和剩余部分将被组合成预测状态2的图像帧以及该部分和剩余部分在图像帧中的位置,GPU 1输出预测状态2的图像帧,该图像帧具有在图像帧中的适当位置的该部分和在适当位置的剩余部分。作为另一个示例,GPU1从预测状态2的由GPU 1生成的图像帧和预测状态2的由GPU 2生成的剩余图像帧中识别将在客户端装置1上显示图像帧的序列。GPU 1按该序列来排列预测状态2的由GPU 1生成的图像帧和预测状态2的由GPU 2生成的剩余图像帧,并且输出用于呈现或显示由GPU 1生成的图像帧和由GPU 2生成的剩余图像帧的顺序。由GPU 1生成的图像帧和由GPU 2生成的剩余图像帧由GPU 1按该顺序进行组合,诸如排列。

视频编码器VE1对预测状态2的由GPU 1生成的图像帧和预测状态2的由GPU 2生成的剩余图像帧的组合进行编码,以输出一个或多个编码图像帧。视频编码器VE 1根据图像帧和剩余图像帧组合的顺序对GPU 1生成的图像帧和GPU 2生成的剩余图像帧进行编码。在一个实施方案中,视频编码器VE1对预测状态2的具有预测状态2的由GPU 1生成的部分的图像帧和预测状态2的由GPU 2生成的剩余部分进行编码,以输出编码图像帧。

当由节点1从节点A接收到预测状态2的用户输入2时,除了来自节点1的音频编码器1的预测状态2的编码音频帧之外,节点1的网络通信装置1还从视频编码器VE1访问预测状态2的编码图像帧,并且将外部通信协议应用于编码图像帧和编码音频帧以生成一个或多个包,并且通过计算机网络102将包发送到客户端装置1。在接收到包之后,客户端装置1基于预测状态2的编码图像帧来显示一个或多个图像,并且基于预测状态2的编码音频帧来输出声音。

与预测状态2的由GPU 2生成的剩余图像帧相比,预测状态2的由GPU 1生成的图像帧具有更低的质量。例如,GPU 1生成的图像帧具有比GPU 2生成的剩余图像帧更低的分辨率。作为另一个示例,与GPU 2生成的剩余图像帧的显示相比,将以更低的帧速率来显示GPU1生成的图像帧。

类似地,与预测状态2的由GPU 2生成的图像帧的剩余部分相比,预测状态2的由GPU 1生成的图像帧的部分具有更低的质量。例如,GPU 1生成的图像帧具有比GPU 2生成的图像帧的剩余部分的分辨率更低的分辨率。

在一个实施方案中,GPU 2具有比GPU 1更高的质量。例如,GPU 2具有比GPU 1更高的计算机性能。为了说明,与GPU 1相比,GPU 2具有更短的响应时间、或更高的吞吐量、或对节点2的部件的更低利用率、或更大的处理能力、或更少的负载、或更少的要执行的工作量、或更少数量的要执行的任务,或者它们的组合。

在一个实施方案中,当由节点1从节点A接收到预测状态2的用户输入2时,视频编码器VE1对预测状态2的由GPU 1生成的图像帧和预测状态2的由GPU 2生成的剩余图像帧的组合进行编码以输出一个或多个编码图像帧,或对预测状态2的具有预测状态2的由GPU 1生成的部分的图像帧和预测状态2的由GPU 2生成的剩余部分进行编码以输出编码图像帧。在接收到用户输入2之后而不是在此之前执行对GPU 1生成的图像帧和GPU 2生成的剩余图像帧的组合的编码或对通过将预测状态2的由GPU 1生成的图像帧的部分和预测状态2的由GPU 2生成的图像帧的剩余部分进行组合而生成的图像帧的编码。除了来自节点1的音频编码器1的预测状态2的编码音频帧之外,节点1的网络通信装置1还从视频编码器VE1访问的预测状态2的编码图像帧,并且将外部通信协议应用于编码图像帧和编码音频帧以生成一个或多个包,并且通过计算机网络102将包发送到客户端装置1。

图4C是用于示出从节点1向节点2指派与物理预测引擎相关联的一个或多个任务的系统420的实施方案的图。系统420包括节点1和2。节点1的一个或多个处理器(诸如CPU1、CPU 1a和GPU 1)与节点2的一个或多个处理器相比具有更低的处理器性能。节点2的一个或多个处理器包括CPU 2、CPU A1和GPU 2。另外,节点1的一个或多个存储器装置(诸如存储器装置1、存储器装置1a和GPU存储器装置1)与节点2的一个或多个存储器装置相比具有更低的存储空间量。节点2的一个或多个存储器装置包括存储器装置2、存储器装置2a和GPU存储器装置2。

在接收到用户输入1后,CPU 1基于用户输入1以及用户输入2和3(图3A)来确定其处理性能将不足以确定预测状态2的一部分。例如,CPU 1确定将使用大于阈值量的处理能力来确定预测状态2的由用户A经由客户端装置1(图1)控制的虚拟对象的一个或多个位置和一个或多个取向。作为另一个示例,CPU 1确定将使用大于节点1的预设数量的部件来确定预测状态2的由用户A经由客户端装置1控制的虚拟对象的一个或多个位置和一个或多个取向。

在这样确定后,CPU 1经由内部通信装置1和2将用户输入1、2和3发送到CPU 2。例如,内部通信装置1将内部通信协议应用于用户输入1、2和3以生成具有用户输入1、2和3的一个或多个传送单元,并且将传送单元发送到内部通信装置2。内部通信装置2将内部通信协议应用于传送单元以获得用户输入1、2和3,并且将用户输入1、2和3发送到CPU 2。

CPU 2应用物理预测引擎以基于用户输入1、2和3来确定由用户A经由客户端装置1控制的虚拟对象的一个或多个位置和一个或多个取向。虚拟对象的位置和取向是针对预测状态2。此外,CPU 2应用音频预测引擎以基于用户输入1、2和3来确定预测状态2的由用户A经由客户端装置1控制的虚拟对象要输出的音频数据。CPU 2将预测状态2的虚拟对象的位置和取向存储在节点2的存储器装置2中。

此外,节点2的CPU 2a从存储器装置2访问预测状态2的虚拟对象的位置和取向,将物理预测引擎应用于虚拟对象的位置和取向以确定在具有虚拟对象的虚拟场景中的一个或多个AI的一个或多个位置和取向。虚拟场景是针对预测状态2。CPU 2a将AI的位置和取向存储在存储器装置2a中。此外,CPU 2a应用音频预测引擎以基于AI的位置和取向来确定要由虚拟场景中的AI输出的音频数据。要由AI输出的音频数据是针对预测状态2。

节点2的GPU 2从存储器装置2访问虚拟对象的位置和取向并从存储器装置2a访问AI的位置和取向,并且将图形预测引擎(诸如渲染代码)应用于位置和取向,以生成预测状态2的虚拟场景的一个或多个图像帧。节点2的视频编码器VE 2对虚拟场景的图像帧进行编码,以输出预测状态2的虚拟场景的一个或多个编码图像帧。此外,节点2的音频编码器2从存储器装置2访问要由虚拟对象输出的音频数据并从存储器装置2a访问要由AI输出的音频数据,并且对音频数据进行编码以输出预测状态2的编码音频帧。

由节点2经由计算机网络102(图1)、节点A和节点1从客户端装置1的输入装置接收用户输入2和3。例如,节点A(图2A)的CPU A通过计算机网络102从客户端装置1接收用户输入2和3,并且CPU A将用户输入2和3提供到内部通信装置A。节点A的内部通信设装置A将内部通信协议应用于用户输入2和3以生成一个或多个传送单元,并且将传送单元发送到节点1的内部通信装置1。内部通信装置1将内部通信协议应用于传送单元以从传送单元提取用户输入2和3,并且将用户输入2和3发送到节点1的CPU 1。节点1的CPU 1指示内部通信装置1并将用户输入2和3发送到节点2。节点1的内部通信装置1将内部通信协议应用于用户输入2和3以生成一个或多个传送单元,并且将传送单元发送到节点2的内部通信装置2。内部通信装置2将内部通信协议应用于从节点1接收到的传送单元以提取用户输入2和3,并且将用户输入2和3发送到节点2的CPU 2a。

在经由计算机网络102(图1)、节点A和节点1从客户端装置1的输入装置接收到用户输入2和3后,节点2的网络通信装置2将外部通信协议应用于预测状态2的虚拟场景的编码图像帧和编码音频帧以生成一个或多个包,并且经由计算机网络102将包发送到客户端装置1。客户端装置1在接收到包后基于编码视频帧来显示预测状态2的虚拟场景的一个或多个图像,并且基于预测状态2的编码音频帧来输出声音。

在一个实施方案中,在接收到用户输入1后,CPU 1应用物理预测引擎以基于用户输入1以及用户输入2和3(图3A)来确定预测状态2的一部分,其中较低的处理性能就足够了。例如,CPU 1确定由用户A经由客户端装置1(图1)控制的虚拟对象的位置和取向。此外,CPU 1应用音频预测引擎以基于用户输入1、2和3来确定由用户A经由客户端装置1(图1)控制的虚拟对象要输出的音频数据。

在该实施方案中,CPU 1经由内部通信装置1和2将用户输入1、2和3以及虚拟对象的位置、取向和音频数据发送到CPU 2。例如,内部通信装置1将内部通信协议应用于用户输入1、2和3以及虚拟对象的位置、取向和音频数据以生成具有用户输入1、2和3的一个或多个传送单元,并且将传送单元发送到内部通信装置2。内部通信装置2将内部通信协议应用于传送单元以获得用户输入1、2和3以及虚拟对象的位置、取向和音频数据,并且将用户输入1、2和3以及虚拟对象的位置、取向和音频数据发送到CPU 2和CPU 2a。CPU 2将虚拟对象的位置和取向以及要由预测状态2的虚拟对象输出的音频数据存储在存储器装置2中。

在同一实施方案中,CPU 2a将物理预测引擎应用于用户输入1、2和3以及虚拟对象的位置和取向,以确定具有位置和取向由CPU 1确定的虚拟对象的虚拟场景中的一个或多个AI的一个或多个位置和取向。该虚拟场景是针对预测状态2。此外,CPU 2a应用音频预测引擎以基于用户输入1、2和3来确定要由预测状态2的虚拟场景中的AI输出的音频数据。预测状态2的AI的位置和取向以及要由预测状态2的AI输出的音频数据存储在存储器装置2a中。与确定虚拟场景中的预测状态2的虚拟对象的位置和取向的任务相比,确定预测状态2的AI的位置和取向的任务在计算上更加密集。此外,确定虚拟场景中的预测状态2的AI要输出的音频数据的任务也比确定虚拟场景中的预测状态2的虚拟对象要输出的音频数据的任务在计算上更加密集。

在该实施方案中,节点2的GPU 2从存储器装置2访问虚拟对象的位置和取向并从存储器装置2a访问AI的位置和取向,并且将图形预测引擎(诸如渲染代码)应用于位置和取向以生成预测状态2的虚拟场景的一个或多个图像帧。节点2的视频编码器VE2对虚拟场景的图像帧进行编码,以输出预测状态2的虚拟场景的一个或多个编码帧。此外,节点2的音频编码器2从存储器装置2访问要由虚拟对象输出的音频数据并从存储器装置2a访问要由AI输出的音频数据,并且对音频数据进行编码以输出预测状态2的编码音频帧。

在该实施方案中,在经由计算机网络102(图1)、节点A和节点1从客户端装置1的输入装置接收到用户输入2和3后,节点2的网络通信装置2将外部通信协议应用于预测状态2的虚拟场景的编码图像帧和编码音频帧以生成一个或多个包,并且经由计算机网络102将包发送到客户端装置1。客户端装置1在收到包后基于编码视频帧来显示预测状态2的虚拟场景的一个或多个图像,并且基于预测状态2的编码音频帧来输出声音。

在一个实施方案中,在接收到预测状态2的用户输入2和3中的一者或多者之后执行本文描述的任何编码。例如,在经由计算机网络102(图1)、节点A和节点1从客户端装置1的输入装置接收到用户输入2和3后,节点2的视频编码器VE 2对虚拟场景的图像帧进行编码以输出预测状态2的虚拟场景的一个或多个编码图像帧。此外,在接收到用户输入2和3后,节点2的音频编码器2从存储器装置2访问要由虚拟对象输出的音频数据并从存储器装置2a访问要由AI输出的音频数据,并且对音频数据进行编码以输出预测状态2的编码音频帧。节点2的网络通信装置2将外部通信协议应用于预测状态2的虚拟场景的编码图像帧和编码音频帧以生成一个或多个包,并且经由计算机网络102将包发送到客户端装置1。客户端装置1在接收到后基于编码视频帧来显示预测状态2的虚拟场景的一个或多个图像,并且基于预测状态2的编码音频帧来输出声音。

在一个实施方案中,与CPU 2a相比,CPU 1a具有更高的处理器性能。在该实施方案中,由用户A经由客户端装置1控制的虚拟对象的位置和取向从节点2发送到节点1,以用于确定在具有预测状态2的虚拟对象的虚拟场景中的一个或多个AI的一个或多个位置和一个或多个取向。另外,要由虚拟对象输出的音频数据从节点2发送到节点1,以用于确定要由预测状态2的AI输出的音频数据。例如,内部通信装置2从存储器装置2访问预测状态2的虚拟对象的位置、取向和音频数据,并且应用内部通信协议以生成一个或多个传送单元,并且将传送单元发送到节点1的内部通信装置1。内部通信装置1应用内部通信协议来解析传送单元以获得预测状态2的虚拟对象的位置、取向和音频数据,并且将位置和取向提供到节点1的CPU 1a。节点1的CPU 1a基于预测状态2的虚拟场景中的虚拟对象的位置和取向来确定一个或多个AI的一个或多个位置和取向。此外,CPU 1a基于要由预测状态2的虚拟场景中的虚拟对象输出的音频数据来确定要由AI输出的音频数据。

在一个实施方案中,GPU 1具有比节点2的GPU 2更高的处理器性能。在该实施方案中,代替GPU 2根据由用户A经由客户端装置1控制的虚拟对象的位置和取向以及AI的位置和取向来生成一个或多个图像帧,GPU 1生成预测状态2的图像帧。GPU 1在位置和取向由CPU 1确定的情况下从存储器装置1访问或在位置和取向由CPU 2确定的情况下从存储器装置2访问预测状态2的虚拟对象的位置和取向。

在该实施方案中,GPU 1经由内部通信装置1和2从存储器装置2访问预测状态2的虚拟对象的位置和取向。例如,GPU 1生成用于从存储器装置2获得虚拟对象的位置和取向的指令,并且将指令发送到内部通信装置1。内部通信装置1将内部通信协议应用于该指令以生成一个或多个传送单元,并且将传送单元发送到内部通信装置2。内部通信装置2将内部通信协议应用于传送单元以获得指令,并且将该指令发送到CPU 2。CPU 2从存储器装置2访问虚拟对象的位置和取向,并且将位置和取向发送到内部通信装置2。内部通信装置2将内部通信协议应用于虚拟对象的位置和取向以生成一个或多个传送单元,并且将传送单元发送到内部通信装置1。内部通信装置1将内部通信协议应用于传送单元以提取虚拟对象的位置和取向,并且将位置和取向发送到GPU 1。

继续该实施方案,GPU 1在位置和取向由CPU 1a确定的情况下从存储器装置1a访问或在位置和取向由CPU 2a确定的情况下从存储器装置2a访问AI的位置和取向。GPU 1经由内部通信装置1和2从存储器装置2a访问预测状态2的AI的位置和取向。例如,GPU 1生成用于从存储器装置2a获得预测状态2的AI的位置和取向的指令,并且将指令发送到内部通信装置1。内部通信装置1将内部通信协议应用于该指令以生成一个或多个传送单元,并且将传送单元发送到内部通信装置2。内部通信装置2将内部通信协议应用于传送单元以提取指令,并且将该指令发送到CPU 2a。CPU 2a从存储器装置2a访问预测状态2的AI的位置和取向,并且将位置和取向发送到内部通信装置2。内部通信装置2将内部通信协议应用于预测状态2的AI的位置和取向以生成一个或多个传送单元,并且将传送单元发送到内部通信装置1。内部通信装置1将内部通信协议应用于传送单元以获得预测状态2的AI的位置和方向,并且将位置和取向发送到GPU 1。

在一个实施方案中,音频编码器1具有比节点2的音频编码器2更高的处理器性能。在该实施方案中,如果预测状态2的虚拟对象要输出的音频数据由CPU 2生成,则音频编码器1生成用于从节点2获得音频数据的指令,并且将指令提供到内部通信装置1。内部通信装置1将内部通信协议应用于该指令以生成具有该指令的一个或多个传送单元,并且将传送单元发送到内部通信装置2。内部通信装置2将内部通信协议应用于传送单元以获得指令,并且将指令发送到CPU 2。CPU 2响应于该指令并从存储器装置2访问音频数据,并且将音频数据发送到内部通信装置2。内部通信装置2将内部通信协议应用于要由预测状态2的虚拟对象输出的音频数据以生成一个或多个传送单元,并且将传送单元发送到内部通信装置1。内部通信装置1将内部通信协议应用于传送单元以获得要由预测状态2的虚拟对象输出的音频数据,并且将音频数据发送到音频编码器1。在接收到音频数据后,音频编码器1对音频数据进行编码以输出编码音频帧。以类似的方式,如果要由预测状态2的一个或多个AI输出的音频数据由CPU 2a生成,则音频编码器1生成用于从节点2的存储器装置2a获得音频数据的指令。在经由内部通信装置1和2从存储器装置2a接收到音频数据后,音频编码器1对要由AI输出的音频数据进行编码以生预测状态2的一个或多个编码音频帧。

在一个实施方案中,音频编码器1从存储器装置1访问由用户A经由客户端装置1控制的虚拟对象要输出的音频数据,并且从节点2的存储器装置2访问要由一个或多个AI输出的音频数据。要由虚拟对象输出的音频数据和要由AI输出的音频数据是针对预测状态2的虚拟场景。

在一个实施方案中,音频编码器1从存储器装置1访问要由一个或多个AI输出的音频数据,并且从节点2的存储器装置2访问由用户A使用客户端装置1控制的虚拟对象要输出的音频数据。要由虚拟对象输出的音频数据和要由AI输出的音频数据是针对预测状态2的虚拟场景。

在一个实施方案中,视频编码器1具有比节点2的视频编码器2更高的处理器性能。在该实施方案中,如果具有预测状态2的虚拟对象的一个或多个图像帧由GPU 2生成,则视频编码器1生成用于从节点2获得图像帧的指令,并且将指令提供到内部通信装置1。内部通信装置1将内部通信协议应用于该指令以生成具有该指令的一个或多个传送单元,并且将传送单元发送到内部通信装置2。内部通信装置2将内部通信协议应用于传送单元以提取指令,并且将指令发送到GPU 2。GPU 2响应于该指令并从GPU存储器装置2访问图像帧,并且将图像帧发送到内部通信装置2。内部通信装置2将内部通信协议应用于要由预测状态2的虚拟对象输出的图像帧以生成一个或多个传送单元,并且将传送单元发送到内部通信装置1。内部通信装置1将内部通信协议应用于传送单元以提取预测状态2的虚拟对象的图像帧,并且将图像帧发送到视频编码器1。在接收到图像帧后,视频编码器1对图像帧进行编码以输出编码图像帧。类似地,如果具有预测状态2的一个或多个AI的图像帧由GPU 2生成,则视频编码器1生成用于从节点2的GPU存储器装置2获得图像帧的指令。在经由内部通信装置1和2从GPU存储器装置2接收到图像帧后,视频编码器1对AI的图像帧进行编码以生一个或多个编码图像帧。

在一个实施方案中,视频编码器1从GPU存储器装置1访问具有由用户A使用客户端装置1控制的虚拟对象的图像帧,并且从节点2的GPU存储器装置2访问具有一个或多个AI的图像帧。具有虚拟对象和AI的图像帧是针对预测状态2的虚拟场景。

在一个实施方案中,视频编码器1从GPU存储器装置1访问具有一个或多个AI的图像帧,并且从节点2的GPU存储器装置2访问具有由用户A使用客户端装置1控制的虚拟对象的图像帧。具有虚拟对象和AI的图像帧是针对预测状态2的虚拟场景。

在一个实施方案中,网络通信装置1具有比节点2的网络通信装置2更高的处理器性能。在该实施方案中,如果从视频编码器VE 2输出预测状态2的一个或多个编码图像帧,则网络通信装置1生成用于从节点2获得编码图像帧的指令,并且将指令提供到内部通信装置1。内部通信装置1将内部通信协议应用于该指令以生成具有指令的一个或多个传送单元,并且将传送单元发送到内部通信装置2。内部通信装置2将内部通信协议应用于传送单元以提取指令,并且将指令发送到视频编码器VE 2。视频编码器VE 2响应指令并从视频编码器VE 2的存储器装置访问编码图像帧,并且将编码图像帧发送到内部通信装置2。内部通信装置2将内部通信协议应用于预测状态2的编码图像帧以生成一个或多个传送单元,并且将传送单元发送到内部通信装置1。内部通信装置1将内部通信协议应用于传送单元以提取预测状态2的编码图像帧,并且将编码图像帧发送到网络通信装置1。在接收到编码图像帧后并且在接收到用户输入2和3之后或响应于此,网络通信装置1将外部通信协议应用于编码图像帧以生成一个或多个包,并且经由计算机网络102将包发送到客户端装置1,以基于编码图像帧在客户端装置1的显示装置上显示一个或多个图像。

以类似的方式,在一个实施方案中,如果从音频编码器VE 2输出预测状态2的一个或多个编码音频帧,则节点1的网络通信装置1生成用于经由内部通信装置1和2从节点2的音频编码器AE 2获得预测状态2的编码音频帧的指令。该指令从节点1发送到节点2。在接收到编码音频帧后并且在接收到用户输入2和3之后或响应于此,网络通信装置1将外部通信协议应用于编码音频帧以生成一个或多个包,并且经由计算机网络102将包发送到客户端装置1以基于编码音频帧输出声音。

图4D是用于示出从节点1向节点2指派与AI预测引擎相关联的一个或多个任务的系统420的实施方案的图。在接收到用户输入1后,CPU 1a基于用户输入1确定将要为预测状态2确定复杂AI状态。作为示例,CPU 1a确定将基于有待由节点1接收的用户输入2和3来为预测状态2确定多个AI的多个碰撞点。CPU 1a执行基于预测状态2的用户输入2和3确定多个AI将相互碰撞的任务。多个AI的碰撞是简单AI状态的示例。作为另一个示例,在接收到用户输入1后,CPU 1a基于用户输入1来确定预测状态2的用户输入2和3。CPU 1a进一步基于用户输入2和3(图3A)来确定其处理性能将不足以确定预测状态2的一部分。为了说明,CPU 1a确定将使用大于阈值量的处理能力来确定预测状态2的虚拟场景中的一个或多个AI的一个或多个位置和一个或多个取向。作为另一个示例,CPU 1a确定将使用节点1的大于预设数量的部件来确定预测状态2的虚拟场景中的AI的一个或多个位置和一个或多个取向。

在确定将要确定复杂AI状态后,CPU 1a经由内部通信装置1和2将用户输入2和3发送到CPU 2a以用于确定预测状态2的复杂AI状态。例如,内部通信装置1将内部通信协议应用于用户输入1、2和3以生成具有用户输入2和3的一个或多个传送单元,并且将传送单元发送到内部通信装置2。内部通信装置2将内部通信协议应用于传送单元以提取用户输入2和3,并且将用户输入2和3发送到CPU 2a。

CPU 2a应用AI预测引擎以基于用户输入2和3来确定AI的位置和取向。AI的位置和取向是针对预测状态2。此外,CPU 2a应用音频预测引擎以基于用户输入2和3来确定要由预测状态2的虚拟场景中的AI输出的音频数据。CPU 2a将AI的位置和取向以及要由预测状态2的AI输出的音频数据存储在节点2的存储器装置2a中。

剩余的操作类似于上面参考图4C描述的那些操作。例如,节点2的GPU 2基于预测状态2的虚拟场景中的虚拟对象的位置和取向以及虚拟场景中的AI的位置和取向来生成图像帧。此外,视频编码器2通过对GPU 2生成的图像帧进行编码来输出编码图像帧。另外,音频编码器AE2对要由AI输出的音频数据和要由预测状态2的虚拟场景中的虚拟对象输出的音频数据进行编码以生成编码音频帧。在接收到用户输入2和3后,网络通信装置2生成具有由节点2生成的编码音频帧和编码图像帧的包,并且经由计算机网络102(图4C)将包发送到客户端装置1。

在一个实施方案中,节点A(图2A)在本文中被称为第一节点,节点1在本文中被称为第二节点,并且节点2在本文中有时被称为第三节点。

图5是客户端装置500的实施方案的图,该客户端装置是客户端装置1、2或3(图1)的示例。客户端装置500的示例包括蜂窝电话和HMD。客户端装置500包括多个部件,诸如视频音频分离器502、网络通信装置(NCD)504、流缓冲器506、一个或多个扬声器508、输入装置510、显示装置512、音频缓冲器514、外部数字相机516、内部数字相机518、视频缓冲器520、视频音频同步器522、麦克风524、惯性传感器526、帧编码器528、帧解码器530、音频数模转换器(DAC)532、视频DAC 534、音频模数转换器(ADC)536、视频ADC 538以及触觉反馈装置540。触觉反馈装置540包括触觉反馈处理器542、驱动器544和机械装置546。客户端装置500的部件经由总线536彼此耦合。如本文所使用,缓冲器用于在短时间内或临时地存储数据,诸如视频数据或音频数据。作为另一个示例,缓冲器是存储器装置内的用于在移动数据时临时地存储数据的区域。

外部数字相机516面向诸如用户A、B或C(图1)的用户的真实世界环境,而内部数字相机518面向用户的眼睛。真实世界环境的示例包括房间、仓库、小隔间和封闭空间等。如本文所使用,相机的示例包括广角相机、红外传感器相机、全景相机等。相机是用于记录静止图像或记录作为移动图像的视频以存储在数字存储器装置中的光学仪器。相机包括将从真实世界环境或从用户的眼睛反射的光聚焦的镜头,并且包括封闭图像捕获机构的相机主体,该图像捕获机构用于捕获真实世界环境或用户的眼睛的图像。外部数字相机516的示例包括由Sony Computer Entertainment,IncTM制造的Playstation相机。显示装置512的示例包括发光二极管(LED)显示装置、液晶显示(LCD)显示装置、硅基液晶显示装置、有机LED(OLED)显示装置、等离子屏幕等。

显示装置512包括微控制器,该微控制器包括微处理器、驱动器和存储器装置,以在显示装置512的显示屏上显示游戏。作为示例,显示装置512的微处理器从帧解码器530获得解码图像帧,并且将信号发送到显示装置512的显示屏的驱动器到驱动器元件,诸如LED,以在显示屏上显示游戏或另一个应用程序的一个或多个图像。如本文所使用,驱动器包括彼此耦合的一个或多个晶体管。

惯性传感器526的示例包括陀螺仪、磁力计和加速度计。NCD 504的示例包括网络接口卡(NIC)和网络接口控制器。输入装置510的示例包括小键盘、键盘、触摸屏、触摸板、惯性传感器、一个或多个按钮、一个或多个开关、一个或多个操纵杆等。在一个实施方案中,惯性传感器526是输入装置510的一部分。

帧编码器528包括视频编码器,该视频编码器对多个图像帧或图像帧内的数据进行压缩或编码以输出一个或多个编码图像帧。例如,帧编码器528的视频编码器应用诸如H.264和运动联合图像专家组(MJPEG)的视频帧间压缩协议来压缩多个图像帧或应用帧内压缩协议来压缩图像帧内的数据,以输出一个或多个编码图像帧。作为示例,帧编码器528的视频编码器包括处理器和缓冲器,该缓冲器以用于存储将被压缩或已经被处理器压缩的图像帧。作为另一个示例,帧编码器528的视频编码器包括处理器而不包括缓冲器。

此外,帧编码器528包括音频编码器,该音频编码器对音频数据进行编码以输出编码音频帧。例如,帧编码器528的音频编码器将诸如高级音频编码(AAC)的音频帧间压缩协议应用于音频数据,以输出编码音频帧。

类似地,帧解码器530包括视频解码器,该视频解码器对编码图像帧或编码图像帧内的编码数据进行解码以输出一个或多个解码图像帧或一个或多个图像帧。作为示例,帧解码器530的视频解码器应用诸如H.264和运动联合图像专家组(MJPEG)的视频帧间解压缩协议来解压缩多个图像帧或应用帧内解压缩协议来解压缩图像帧内的数据,以输出一个或多个解码图像帧。作为示例,帧解码器530的视频解码器包括处理器和缓冲器,该缓冲器以用于存储将被解压缩或已经被处理器解压缩的图像帧。作为另一个示例,帧解码器530包括处理器而不包括缓冲器。

另外,帧解码器530包括音频解码器,该音频解码器对一个或多个编码音频帧进行解码以输出音频帧或解码音频帧。例如,帧解码器530的音频解码器将诸如AAC的音频帧间解压缩协议应用于编码音频帧,以输出解码音频数据或音频数据。

在一个实施方案中,视频音频分离器502是从图像帧分离出音频数据的计算机程序。在一个实施方案中,视频音频分离器502是硬件电路,诸如被设计和制造来区分音频数据和图像帧的ASIC或PLD。

在一个实施方案中,视频音频同步器522是将视频帧与音频数据同步的计算机程序,使得视频帧中的任何一个与基于对应音频数据输出的声音一起显示。在一个实施方案中,视频音频同步器522是硬件电路,诸如被设计和制造来使视频帧中的任一个的显示与根据对应音频数据输出的声音同步的ASIC或PLD。

在一个实施方案中,如本文所使用,DAC是将诸如视频帧或图像帧或数字音频数据的数字数据转换成诸如电压、电流或电荷的模拟信号的电子装置。例如,视频DAC是将图像帧转换为模拟信号以在显示装置512上显示游戏的硬件电路,并且音频DAC 532是将音频数据转换为模拟音频信号以经由扬声器508输出声音的电子电路。

在一个实施方案中,如本文所使用,ADC是将模拟信号转换为诸如视频帧或图像帧或音频数据的数字数据的电子装置。例如,视频ADC 538是将模拟信号转换为图像帧的硬件电路,并且音频ADC 536是将模拟音频信号转换为音频数据的电子电路。

驱动器544的示例包括晶体管或彼此耦合的一个或多个晶体管。此外,机械部件546的示例是振动的金属板,或者马达和金属板。马达经由连接机构(诸如一个或多个杆或经由齿轮相互联接的杆)联接到金属板。

数据包流经由计算机网络102(图1)或经由计算机网络102以及耦合到计算机网络102和客户端装置500的路由器(未示出)被接收到流缓冲器506中。作为示例,路由器耦合在计算机网络102与客户端装置500之间。NCD 504从流缓冲器506检索数据包流并且对该流进行解包。例如,NCD 504应用外部通信协议以从包提取或获得编码帧,诸如编码图像帧或编码音频帧。为了进一步说明,NCD 504根据包的报头来确定包的有效载荷,并且从有效载荷访问编码帧。NCD 504将编码帧发送到帧解码器530,或者帧解码器530从NCD 504访问编码帧。帧解码器530应用诸如H.264、H.265/MPEG-H、H.263/MPEG-4、H.262/MPEG-2a或自定义协议的解码协议对编码帧进行解码,以输出解码图像帧和音频数据。

解码图像帧由视频音频分离器502从解码器530访问或从解码器530发送到视频音频分离器502。视频音频分离器502将音频数据与解码图像帧分离。例如,视频音频分离器502根据提供到音频数据的标识符和提供到解码图像帧的标识符来将音频数据与解码图像帧分离。视频音频分离器502将音频数据发送到音频缓冲器514并且将解码图像帧发送到视频缓冲器520。视频音频同步器522将存储在视频缓冲器520中的解码图像帧与存储在音频缓冲器514中的音频数据同步。例如,视频音频同步器522使用生成解码图像帧中的一个的时间和生成对应的音频数据的时间来确定解码图像帧将与根据对应的音频数据输出的声音一起显示。

音频DAC 532将同步的音频数据从数字格式转换为模拟格式以生成音频信号,并且音频信号由扬声器508转换为声音。视频DAC 534将同步的图像帧从数字格式变为模拟格式以生成模拟视频信号。显示装置512基于模拟视频信号而在显示装置的显示屏上显示游戏的图像。图像与扬声器508输出的声音同步显示。

此外,用户A、B或C(图1)对着麦克风524说话,该麦克风将用户的声音(例如,语音等)转换为音频信号,例如电压、电流、电信号等。音频ADC 538将音频信号从模拟格式转换为数字格式以生成音频数据,该音频数据存储在音频缓冲器514中。由NCD 504从音频缓冲器514访问音频数据以经由计算机网络102(图1)发送到分布式游戏引擎系统106(图1)。例如,NCD 504应用外部通信协议以生成嵌入音频数据的一个或多个包,并且经由计算机网络102将包发送到分布式游戏引擎系统106。

在一个实施方案中,帧编码器528将音频帧间压缩协议应用于由音频ADC 538生成的音频数据以输出编码音频帧,并且将编码音频帧提供到NCD 504。NCD 504将外部通信协议应用于编码音频帧以生成一个或多个包,并且经由计算机网络102将包发送到分布式游戏引擎系统106。

内部数字相机518捕获用户A、B或C(图1)的眼睛或面部或头部或身体的一个或多个图像。内部数字相机518面向用户A、B或C。例如,当客户端装置500是用户A佩戴的HMD时,内部数字相机518面向用户A的眼睛。作为另一个示例,当客户端装置500是智能手机时,内部数字相机518是位于客户端装置500的显示装置512的显示屏所在的同一侧或同一表面上的前置相机。作为又一个示例,内部数字相机518是面向用户A的手或用户A的手臂以捕获用户A做出的手势的前置相机。类似地,外部数字相机516捕获用户周围的真实环境的一个或多个图像。作为示例,当客户端装置500是智能手机时,外部数字相机516是位于客户端装置500的与显示装置512的显示屏所在的侧相比的相对侧或相对表面上的后置相机。由数字相机516和518捕获的图像存储在视频缓冲器520中。在一个实施方案中,术语图像和图像帧在本文中可互换地使用。在一个实施方案中,由数字相机516和518捕获的图像由视频DAC 534从数字格式转换为模拟格式并且发送以在显示装置512上显示图像。

由NCD 504从视频缓冲器520访问由数字相机516和518捕获的图像,以生成具有图像的一个或多个数据包。NCD 504经由计算机网络102将数据包发送到分布式游戏引擎系统106(图1)。在一个实施方案中,数字相机516和518所捕获的图像由帧编码器530访问。帧编码器530将帧间压缩协议或帧内压缩协议应用于图像以生成一个或多个编码图像帧,并且经由总线536将编码图像帧提供给NCD 504。NCD 504将外部通信协议应用于编码图像帧以根据编码图像帧来生成一个或多个数据包,并且经由计算机网络102将数据包发送到分布式游戏引擎系统106。

惯性传感器526生成惯性传感器数据,诸如用户A的身体部位的加速度、用户A的身体部位的旋转速度、用户A的身体部位的取向、或它们的组合。如果客户端装置500包括手持式控制器,则惯性传感器526生成关于手持式控制器的移动的惯性传感器数据。惯性传感器数据由惯性传感器526经由总线536提供到NCD 504。NCD 504生成嵌入惯性传感器数据的一个或多个数据包,并且经由计算机网络102将数据包发送到分布式游戏引擎系统106(图1)。

此外,NCD 504接收由用户A、B或C通过选择一个或多个按钮或通过做出一个或多个手势或通过对输入装置510进行一个或多个操纵杆移动而做出的一个或多个选择以生成输入数据,并且经由总线536将输入数据提供到NCD 504。NCD 504将外部通信协议应用于输入数据以生成具有输入数据的一个或多个数据包,并且经由计算机网络102将数据包发送到分布式游戏引擎系统106。

在一个实施方案中,由NCD 504生成的数据包经由路由器(未示出)进行发送,该路由器经由无线连接(诸如Wi-FiTM连接或BluetoothTM连接)耦合到NCD 504。路由器接收数据包并且从数据包中确定目的地址。路由器经由计算机网络102(图1)将数据包路由到分布式游戏引擎系统106的被指派目的地地址的一个或多个节点。

类似地,在一个实施方案中,由分布式游戏引擎系统106生成的数据包经由耦合在计算机网络102和客户端装置500之间的路由器(未示出)进行发送。路由器经由无线连接耦合到客户端装置500的NCD 504。路由器从分布式游戏引擎系统106接收数据包并且从数据包中确定目的地址。路由器经由无线连接将数据包路由到客户端装置500的被指派目的地地址的NCD 514。

在一个实施方案中,输入装置510是与客户端装置500分开的装置的一部分。例如,输入装置510是手持式控制器的一部分,该手持式控制器诸如是SonyTMMoveTM控制器或SonyTMDualShockTM控制器或游戏控制器或操纵杆控制器。手持式控制器经由无线连接或有线连接(诸如并行数据传送电缆或串行数据传送电缆或USB电缆)耦合到客户端装置500的内部通信装置(未示出)。内部通信装置的示例是应用诸如BluetoothTM或Wi-FiTM的无线协议来与输入装置510传达数据的数据传送装置。作为示例,客户端装置500的内部通信装置经由总线536耦合到NCD 504。NCD 504访问由内部通信装置从手持式控制器接收到的输入数据并且应用外部通信协议以生成一个或多个包,并且经由计算机网络102将包发送到分布式游戏引擎系统106。

在一个实施方案中,客户端装置500不包括内部数字相机518。

在一个实施方案中,外部数字相机516位于客户端装置500的外部以捕获用户A、B或C的身体部位(诸如手臂、手或头部或它们的组合)或用户佩戴的HMD或用户握住的手持式控制器的移动的图像。

在一个实施方案中,术语包和数据包在本文中可互换地使用。

在一个实施方案中,触觉反馈装置540、麦克风524、输入装置510和惯性传感器526是手持式控制器的部件。另外,在该实施方案中,显示装置512和扬声器508是电视机的部件。此外,外部数字相机516是与手持式控制器、游戏控制台和电视机分开的装置。该实施方案不包括内部数字相机518。此外,在该实施方案中,客户端装置500的剩余部件(诸如帧编码器528、视频音频分离器502、NCD 504、帧解码器530、音频DAC 532、流缓冲器506、视频DAC534、音频缓冲器514、视频ADC 538、音频ADC 536、视频音频同步器522和视频缓冲器520)是游戏控制台的部件。游戏控制台经由有线连接或无线连接耦合到手持式控制器。另外,游戏控制台经由无线连接或高清晰度多媒体接口(HDMITM)连接耦合到显示装置。

在一个实施方案中,触觉反馈装置540、麦克风524、输入装置510、惯性传感器526、显示装置512、扬声器508、外部数字相机516和内部数字相机518是佩戴在用户A、B或C的头部上的HMD的部件。此外,在该实施方案中,客户端装置500的剩余部件(诸如帧编码器528、视频音频分离器502、NCD 504、帧解码器530、音频DAC 532、流缓冲器506、视频DAC 534、音频缓冲器514、视频ADC 538、音频ADC 536、视频音频同步器522和视频缓冲器520)是游戏控制台的部件。游戏控制台经由有线连接或无线连接耦合到HMD。

图6是概念性地示出根据本公开的实现方式的被执行来将云视频游戏流式传输到客户端装置500(图5)的各种操作的流程图。分布式游戏引擎系统106的一个或多个游戏服务器602执行视频游戏并且生成原始(未压缩)视频604和音频606。服务器在本文中有时被称为节点。服务器的示例是游戏控制台或服务器刀片。视频604和音频606被一个或多个游戏服务器602编码以用于流式传输目的,如在所示图中的附图标记608所指示。编码提供用于视频和音频流的压缩,以减少带宽使用并且优化游戏体验。编码格式的示例包括H.265/MPEG-H、H.264/MPEG-4、H.263/MPEG-4、H.262/MPEG-2、WMV、VP6/7/8/9等。

编码音频610和编码视频612进一步被诸如NCD 504(图5)的流引擎打包为数据包或网络包,如附图标记614所指示,以用于通过计算机网络102(诸如互联网)进行传输。在一些实施方案中,网络包编码过程也采用数据加密过程,从而提供增强的数据安全性。在所示的实现方式中,通过应用外部通信协议来生成音频包616和视频包618以在计算机网络102上传输。

一个或多个游戏服务器602另外地生成触觉反馈数据622,该触觉反馈数据也被打包为数据包以用于网络传输。在所示的实现方式中,生成触觉反馈包624以在计算机网络102上传输。

上述生成原始视频和音频以及触觉反馈数据的操作是在分布式游戏引擎系统106的一个或多个数据中心的一个或多个游戏服务器602上执行的,并且对视频和音频进行编码以及将编码的音频/视频和触觉反馈数据打包以供传输的操作由一个或多个数据中心的流引擎执行。如附图标记620所指示,音频、视频和触觉反馈包通过计算机网络102进行传输。如附图标记626所指示,音频包616、视频包618和触觉反馈包624被客户端装置500分解,例如解析等,以在客户端装置500处从数据包提取编码音频628、编码视频630和触觉反馈数据632。如果数据已经加密,那么还对数据进行解密。然后,由客户端装置500对编码音频628和编码视频630进行解码,如附图标记634所指示,以生成客户端侧原始音频和视频数据以在客户端装置500的显示装置512上显示。触觉反馈数据632由客户端装置500的触觉反馈处理器542(图5)处理,以在手持式控制器设备642或可通过其呈现触觉效果的其他接口装置(例如HMD等)处产生触觉反馈效果。触觉效果的一个示例是控制器装置642或HMD的振动或隆隆声。

应理解,视频游戏对用户输入作出响应,并且因此执行与上述用于用户输入的传输和处理的过程类似但是在从客户端装置500到一个或多个服务器502的相反方向上的过程流程。如图所示,控制器装置642或另一个输入装置或它们的组合生成输入数据644。该输入数据644在客户端装置500处打包以生成输入数据包646,以通过计算机网络102传输到一个或多个服务器602。输入数据包646被一个或多个服务器602拆包并重组以在数据中心侧定义输入数据648。输入数据648被馈送到一个或多个服务器602,该一个或多个服务器处理输入数据648以生成一个或多个状态,如上所述。

在音频包616、视频包618和触觉反馈包624经由计算机网络102传输期间,在一些实施方案中,监控通过计算机网络102的数据传输以确保服务质量。例如,监控计算机网络102的网络状况,如附图标记650所指示,所述网络状况包括上游和下游网络带宽两者,并且响应于可用带宽的变化来调整游戏流式传输。也就是,基于当前网络状况来控制网络包的编码和解码,如附图标记652所指示。

图7是游戏控制台700的实施方案的框图,该游戏控制台可兼容用于与客户端装置500的显示装置512介接并且能够经由计算机网络102与分布式游戏引擎系统106(图1)进行通信。游戏控制台700位于数据中心A内或位于用户A所在的位置处。在一些实施方案中,游戏控制台700用于执行在HMD上显示的游戏。游戏控制台700设置有可连接到游戏控制台700的各种外围装置。游戏控制台700具有cell处理器728、动态随机存取存储器(XDRAM)单元726、具有专用视频随机存取存储器(VRAM)单元732的Reality SynthesizerTM图形处理器单元730,以及输入/输出(I/O)桥734。游戏控制台700还具有可通过I/O桥734访问的用于从磁盘740a和可移除插入式硬盘驱动器(HDD)736进行读取的Blu磁盘只读存储器(BD-ROM)光学磁盘读取器740。任选地,游戏控制台700还包括类似地可通过I/O桥734访问的用于读取紧凑型闪存卡、Memory存储卡等的存储卡读取器738。I/O桥734还连接到通用串行总线(USB)2.0端口724、千兆以太网端口722、IEEE 802.11b/g无线网络(Wi-Fi)端口720,以及能够支持蓝牙连接的无线链路端口718。

在操作中,I/O桥734处理所有无线、USB和以太网数据,包括来自游戏控制器642和/或703以及来自HMD 705的数据。例如,当用户A在玩通过执行游戏代码的一部分而生成的游戏时,I/O桥734经由蓝牙链路从游戏控制器642和/或703和/或HMD 705接收数据并且将该输入数据引导到cell处理器728,该cell处理器相应地更新游戏的当前状态。作为示例,HMD 705内的相机捕获用户A的手势以生成表示该手势的图像。该图像是输入数据的示例。每个游戏控制器642和703是手持式控制器(HHC)的示例。

无线、USB和以太网端口还为除了游戏控制器642和703以及HMD 705之外的其他外围装置提供连接,例如:诸如遥控器704;键盘706;鼠标708;便携式娱乐装置710,例如,诸如Sony Playstation娱乐装置等;摄像机,例如,诸如摄像机712等;麦克风耳机714;以及麦克风715。在一些实施方案中,此类外围装置无线地连接到游戏控制台700,例如,便携式娱乐装置710经由Wi-FiTM特设连接进行通信,而麦克风耳机714经由BluetoothTM链路进行通信。

提供这些接口意味着游戏控制台700还可能与其他外围装置相容,诸如数字录像机(DVR)、机顶盒、数字相机、便携式媒体播放器、互联网协议语音(IP)电话、移动电话、打印机和扫描仪。

另外,传统的存储卡读取器716经由USB端口724连接到游戏控制台700,从而使得能够读取游戏控制台700使用的种类的存储卡748。游戏控制器642和703以及HMD 705可操作以经由蓝牙链路718与游戏控制台700无线地通信,或连接到USB端口724,从而还接收电力以对游戏控制器642和703以及HMD 705的电池充电。在一些实施方案中,游戏控制器642和703以及HMD 705中的每一者包括存储器、处理器、存储卡读取器、永久存储器(例如,诸如闪存等)、光发射器(例如,诸如发光的球形区段、发光二极管(LED)或红外灯等)、用于超声通信的麦克风和扬声器、声学室、数字相机、内部时钟、可识别的形状(例如,诸如面对游戏控制台700的球形区段),以及使用协议(例如,诸如蓝牙、Wi-Fi等)的无线装置。

游戏控制器642是被设计为由用户A的两只手使用的控制器,并且游戏控制器703是带有附接件的单手控制器。HMD 705被设计为装配在用户A的头顶上和/或眼睛前面。除了一个或多个模拟操纵杆和常规控制按钮外,每个游戏控制器642和703都易于进行三维定位确定。类似地,HMD 705易于进行三维定位确定。因此,在一些实施方案中,除了常规按钮或操纵杆命令之外或作为代替,将由用户A使用游戏控制器642和703以及HMD 705做出的手势和移动转换为对游戏的输入。任选地,将其他支持无线的外围装置(例如,诸如PlaystationTM便携式装置)用作控制器。在PlaystationTM便携式装置的情况下,在装置的显示屏上提供附加的游戏或控制信息,例如,控制指令或生命的数量等。在一些实施方案中,使用其他替代或补充的控制装置,例如,诸如跳舞毯(未示出)、光枪(未示出)、方向盘和踏板(未示出)、定制的控制器等。定制的控制器的示例包括用于快速响应问答游戏(也未示出)的单个或若干个大按钮。

遥控器704还可操作以经由蓝牙链路718与游戏控制台700无线地通信。遥控器704包括适用于Blu RayTM磁盘BD-ROM读取器740的操作以及磁盘内容的导航的控制件。

除了常规的预先录制和可录制的CD以及所谓的超音频CD外,Blu RayTM磁盘BD-ROM读取器740可操作以读取与游戏控制台700相容的CD-ROM。除了常规的预先录制和可录制的DVD外,Blu RayTM磁盘BD-ROM读取器740还可操作以读取与游戏控制台700相容的数字视频盘-ROM(CD-ROM)。Blu RayTM磁盘BD-ROM读取器740可进一步操作以读取与游戏控制台700相容的BD-ROM,以及常规的预先录制和可录制的Blu-Ray磁盘。

游戏控制台700可操作以通过音频连接器750和视频连接器752将经由RealitySynthesizer图形单元730生成或解码的音频和视频供应到具有显示屏744和一个或多个扬声器746的显示器和声音输出装置742,例如,诸如监视器或电视机等,或经由无线链路端口718将音频和视频供应到HMD 705的显示装置。在各种实施方案中,音频连接器750包括常规的模拟和数字输出,而视频连接器752不同地包括分量视频、S视频、复合视频以及一个或多个高清晰度多媒体接口(HDMI)输出。因此,视频输出可呈诸如相位交替线(PAL)或国家电视系统委员会(NTSC)的格式,或者呈2220p、1080i或1080p高清晰度。音频处理(例如,生成、解码等)由cell处理器708执行。游戏控制台700的操作系统支持环绕声、剧场环绕(DTS),以及对来自磁盘的7.1环绕声的解码。

在一些实施方案中,摄像机(例如,摄像机712等)包括单电荷耦合器件(CCD)、LED指示器以及基于硬件的实时数据压缩和编码设备,使得压缩视频数据以适当的格式传输,诸如基于图像内的运动图像专家组(MPEG)标准,以供游戏控制台700进行解码。摄像机712的LED指示器被布置为响应于来自游戏控制台700的适当控制数据而照亮,例如,以表示不利的照明条件等。摄像机712的一些实施方案经由USB、蓝牙或Wi-Fi通信端口不同地连接到游戏控制台700。摄像机的各种实施方案包括一个或多个相关联的麦克风,并且还能够传输音频数据。在摄像机的若干实施方案中,CCD具有适合于高清晰度视频捕获的分辨率。在使用中,由摄像机捕获的图像被并入游戏内或被解释为游戏控制输入。在另一个实施方案中,摄像机是适用于检测红外光的红外相机。

在各种实施方案中,为了经由游戏控制台700的通信端口中的一个与外围装置(例如,诸如摄像机或遥控器)进行成功的数据通信,提供了适当的软件,诸如装置驱动程序等。

在一些实施方案中,上述系统装置(包括游戏控制台700、手持式控制器和HMD705)使得HMD 705能够显示和捕获游戏的交互会话的视频。系统装置发起游戏的交互会话,该交互会话定义用户A与游戏之间的交互。系统装置进一步确定由用户A操作的手持式控制器和/或HMD 705的初始位置和取向。游戏控制台700基于用户A与游戏之间的交互来确定游戏的当前状态。在用户A与游戏的交互会话期间,系统装置跟踪手持式控制器和/或HMD 705的位置和取向。系统装置基于游戏的当前状态以及手持式控制器和/或HMD 705的跟踪位置和取向来生成交互会话的观众视频流。在一些实施方案中,手持式控制器在手持式控制器的显示屏上呈现观众视频流。在各种实施方案中,HMD 705在HMD 705的显示屏上呈现观众视频流。

参考图8,示出了说明HMD 802的部件的图。HMD 802是HMD 705(图7)的示例。HMD802包括用于执行程序指令的处理器800。提供存储器装置802以用于存储目的。存储器装置802的示例包括易失性存储器、非易失性存储器或它们的组合。包括显示装置804,该显示装置提供用户A(图1)观看的视觉界面,例如图像帧的显示等。提供电池806作为HMD 802的电源。运动检测模块808包括各种运动敏感硬件中的任一者,诸如磁力计810、加速度计88和陀螺仪814。

加速度计是用于测量加速度和重力引起的反作用力的装置。单轴和多轴模型可用于检测不同方向上的加速度的量值和方向。加速度计用于感测倾斜度、振动和冲击。在一个实施方案中,使用三个加速度计812来提供重力方向,该重力方向给出两个角度(例如,世界空间俯仰角和世界空间滚转角等)的绝对参考。

磁力计测量HMD 802附近的磁场的强度和方向。在一些实施方案中,在HMD 802内使用三个磁力计810,以确保世界空间偏航角的绝对参考。在各种实施方案中,磁力计被设计为跨越±80微特斯拉的地球磁场。磁力计受金属影响,并且提供随实际偏航单调变化的偏航测量值。在一些实施方案中,磁场由于真实世界环境中的金属而发生翘曲,从而导致偏航测量的翘曲。在各种实施方案中,使用于自其他传感器(例如,陀螺仪814、相机816等)的信息来校准该翘曲。在一个实施方案中,将加速度计812与磁力计810一起使用以获得HMD802的倾斜度和方位角。

陀螺仪是用于基于角动量原理来测量或维持取向的装置。在一个实施方案中,代替陀螺仪814,三个陀螺仪基于惯性感测来提供关于跨相应的轴(诸如x轴、y轴和z轴)的移动的信息。陀螺仪有助于检测快速旋转。然而,在一些实施方案中,陀螺仪在没有绝对参考的情况下随时间漂移。这会触发周期性地重置陀螺仪,这可以使用其他可用的信息来完成,诸如基于对象的视觉跟踪、加速度计、磁力计等进行的位置/取向确定。

提供相机816以用于捕获用户A周围的真实世界环境(例如,房间、小屋、自然环境等)的图像和图像流。在各种实施方案中,HMD 802中包括多于一个相机,包括面向后(例如,当用户A在观看HMD 802的显示器等时背离用户A指向)的相机,以及面向前(例如,当用户A在观看HMD 802的显示器等时朝向用户A指向)的相机。另外,在若干实施方案中,HMD 802中包括深度相机818以用于感测真实世界环境中的对象的深度信息。

HMD 802包括用于提供音频输出的扬声器820。另外,在一些实施方案中,包括麦克风822以用于捕获来自真实世界空间的音频,包括来自周围环境的声音和用户A发出的语音等。HMD 802包括触觉反馈模块824(例如振动装置等),以用于向用户A提供触觉反馈。在一个实施方案中,触觉反馈模块824能够引起HMD 802的移动和/或振动以向用户A提供触觉反馈。

提供LED 826作为HMD 802的状态的视觉指示器。例如,LED可指示电池电量、通电等。提供读卡器828以使得HMD 802能够从存储卡读取信息和向存储卡写入信息。包括USB接口830以作为用于实现外围装置的连接或与诸如其他便携式装置、计算机等其他装置的连接的接口的一个示例。在HMD 802的各种实施方案中,可包括各种接口中的任一种以实现HMD 802的更大连接性。

包括WiFi模块832以使得能够经由无线联网技术连接到互联网。另外,HMD 802包括蓝牙模块834以用于实现与其他装置的无线连接。还可以包括通信链路836以用于连接到其他装置。在一个实施方案中,通信链路836利用红外传输进行无线通信。在其他实施方案中,通信链路836利用各种无线或有线传输协议中的任一种与其他装置进行通信。

包括输入按钮/传感器838来为用户A(图1)提供输入接口。包括各种输入接口中的任一种,诸如按钮、触摸板、操纵杆、轨迹球等。在各种实施方案中,HMD 802中包括超声通信模块840,以用于促进经由超声技术与其他装置的通信。

包括生物传感器842以使得能够检测来自用户的生理数据。在一个实施方案中,生物传感器842包括一个或多个干电极,以用于通过用户的皮肤来检测用户的生物电信号。

HMD 802的前述部件仅被描述为可包括在HMD 802中的示例性部件。在各种实施方案中,HMD 802包括或不包括各种上述部件中的一些。

图9示出了信息服务提供方(INSP)架构的实施方案。INSP 902向地理上分散且经由计算机网络102(例如LAN、WAN或它们的组合等)连接的用户A、B和C以及用户D递送大量的信息服务。WAN的示例包括互联网,并且LAN的示例包括内联网。用户A操作客户端装置920-1,用户B操作另一个客户端装置920-2,用户C操作又一个客户端装置920-3,并且用户D操作另一个客户端装置920-4。客户端装置920-1是客户端装置1(图1)的示例,客户端装置920-2是客户端装置2(图1)的示例,并且客户端装置920-3是客户端装置3(图1)的示例。

在一些实施方案中,每个客户端装置920-1、920-2、920-3和920-4包括中央处理单元(CPU)、显示器和输入/输出(I/O)接口。每个客户端装置920-1、920-2、920-3和920-4的示例包括个人计算机(PC)、移动电话、上网本、平板电脑、游戏系统、个人数字助理(PDA)、游戏控制台700和显示装置、HMD 802(图11)、游戏控制台700和HMD 802、台式计算机、膝上型计算机、智能电视等。在一些实施方案中,INSP 902识别客户端装置的类型并调整所采用的通信方法。

在一些实施方案中,INSP递送一种类型的服务,诸如股票价格更新,或者递送多种服务,诸如广播媒体、新闻、体育、游戏等。另外,每个INSP所提供的服务都是动态的,也就是,可在任何时间点添加或移除服务。因此,向特定个人提供特定类型的服务的INSP可随时间而变化。例如,当客户端装置920-1在用户A的家乡时,客户端装置920-1由靠近客户端装置920-1的INSP服务,而当用户A旅行到不同的城市时,客户端装置920-1由不同的INSP服务。家乡INSP将所需的信息和数据传送到新的INSP,使得信息“跟随”客户端装置920-1到新的城市,从而使数据更接近客户端装置920-1并且更易于访问。在各种实施方案中,在管理客户端装置920-1的信息的主INSP和在主INSP的控制下与客户端装置920-1直接介接的服务器INSP之间建立主服务器关系。在一些实施方案中,在客户端装置920-1移动到世界各地时,数据从一个ISP传送到另一个ISP,以使处在为客户端装置920-1提供服务的更好位置的INSP成为提供这些服务的INSP。

INSP 902包括通过计算机网络102向客户提供基于计算机的服务的应用服务提供方(ASP)909。使用ASP模型提供的软件有时也称为按需软件或软件即服务(SaaS)。提供对基于计算机的服务(例如客户关系管理等)的访问的简单形式是使用标准协议,例如超文本传送协议(HTTP)等。应用软件驻留在供应商的服务器上,并且由每个客户端装置920-1、920-2、920-3和920-4通过由供应商提供的专用客户端软件和/或其他远程接口(例如瘦客户端)等借助使用超文本标记语言(HTML)等的网络浏览器来访问。

在广泛的地理区域内递送的服务通常使用云计算。云计算是其中通过计算机网络102将动态可扩展和通常虚拟化的资源提供作为服务的计算方式。用户A、B、C和D不需要成为支持他们的“云”中的技术基础设施方面的专家。在一些实施方案中,云计算被划分为不同的服务,诸如基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。云计算服务通常提供从网络浏览器访问的在线通用业务应用,而软件和数据被存储在服务器上。术语云基于在计算机网络图中如何描绘计算机网络102而被用作计算机网络102的隐喻,例如使用服务器、存储和逻辑等,并且是对它所隐藏的复杂基础设施的抽象概念。

此外,INSP 902包括游戏处理提供方(GPP)910,在本文中有时也被称为游戏处理服务器,其被客户端装置920-1、920-2、920-3和920-4用于玩单玩家和多玩家视频游戏。通过计算机网络102来玩的大多数视频游戏都是经由连接到游戏服务器来运行的。通常,游戏使用专用服务器应用程序,该专用服务器应用程序从客户端装置920-1、920-2、920-3和920-4收集数据并将其分发到由其他用户操作的其他客户端。这比对等布置更有效且高效,但使用单独的服务器来托管服务器应用程序。在一些实施方案中,GPP 910在客户端装置920-1、920-2、920-3和920-4之间建立通信,所述客户端装置在不进一步依赖集中式GPP910的情况下交换信息。

专用GPP是独立于客户端运行的服务器。这样的服务器通常在位于数据中心的专用硬件上运行,从而提供更多的带宽和专用的处理能力。对于大多数基于PC的多玩家游戏,专用服务器是托管游戏服务器的方法。大型多玩家在线游戏在通常由拥有游戏名称的软件公司托管的专用服务器上运行,从而允许它们控制和更新内容。

广播处理服务器(BPS)912,在本文中有时被称为广播处理提供方,向听众分发音频或视频信号。向很小范围的听众广播有时称为窄播。广播分发的最后一段是信号如何到达客户端装置920-1、920-2、920-3和920-4,并且在一些实施方案中,该信号与无线电台或电视台一样空中分发到天线和接收器,或通过有线电视或有线广播或“无线电缆”经由电台进行分发。在各种实施方案中,计算机网络102也将无线电或电视信号带到客户端装置920-1、920-2、920-3和920-4,尤其是通过允许共享信号和带宽的多播。历史上,在若干实施方案中,广播是按地理区域划定界限的,例如国家广播、区域广播等。然而,随着高速互联网的普及,广播不再按地理限定,因为内容可到达世界上几乎任何一个国家。

存储服务提供方(SSP)914提供计算机存储空间和相关的管理服务。SSP 914还提供周期性备份和存档。通过提供存储即服务,与不将存储用作服务时相比,客户端装置920-1、920-2、920-3和920-4使用更多存储。另一个主要优点是SSP 914包括备份服务,并且客户端装置920-1、920-2、920-3和920-4在其硬盘驱动器发生故障的情况下不会丢失数据。此外,在一些实施方案中,多个SSP具有从客户端装置920-1、920-2、920-3和920-4接收到的数据的全部或部分副本,从而允许客户端装置920-1、920-2、920-3和920-4以独立于客户端装置920-1、920-2、920-3和920-4所在的地方或客户端类型的有效方式访问数据。例如,用户A经由家用计算机并且当用户A在移动时经由移动电话来访问个人文件。

通信提供方916提供到客户端装置920-1、920-2、920-3和920-4的连接。一种通信提供方916是提供对计算机网络102的访问的互联网服务提供方(ISP)。ISP使用适合于递送互联网协议数据报的数据传输技术来连接客户端装置920-1、920-2、920-3和920-4,诸如拨号、数字订户线(DSL)、电缆调制解调器、光纤、无线或专用高速互连。在一些实施方案中,通信提供方916还提供消息传递服务,诸如电子邮件、即时消息传递和短消息服务(SMS)短信。另一种类型的通信提供方是通过提供对计算机网络102的直接骨干访问来出售带宽或网络访问的网络服务提供方(NSP)。网络服务提供方的示例包括电信公司、数据运营商、无线通信提供方、互联网服务提供方、提供高速互联网接入的有线电视运营商等。

数据交换918将INSP 902内的几个模块互连并且经由计算机网络102将这些模块连接到客户端装置920-1、920-2、920-3和920-4。在各种实施方案中,数据交换918覆盖其中INSP 902的所有模块都非常靠近的小的区域,或者当不同的模块地理上分散时,覆盖大的地理区域。例如,数据交换902包括数据中心的机柜内的快速千兆以太网,或者洲际虚拟LAN。

在一个实施方案中,本文描述的一个或多个节点确定将接收到诸如用户输入2(图3A)的预测的用户输入的误预测量,并且使用第一阈值来触发帧(诸如图像帧或音频帧)的充分渲染或生成。误预测量是预测水平的示例并且大于第一阈值。第一阈值是在基于预测的用户输入确定当前图像帧或当前音频帧被错误地预测或生成而另一图像帧或音频帧将被完全地生成或渲染时。

在一个实施方案中,存在低于第一阈值的第二阈值,并且第二阈值用于触发下一次渲染或生成帧。例如,本文描述的节点中的一者或多者检测到它们处于误预测的尖点,并且不会基于下一预测的用户输入而抢先生成或渲染下一帧,诸如图像帧或音频帧下一预测的用户输入是在该预测的用户输入之后。当前图像帧或当前音频帧的生成或渲染是基于预测的用户输入的预定的预测水平,例如,预测水平低于第一阈值,并且一个或多个节点预测下一帧的生成或渲染将不基于下一预测的用户输入的预定的预测水平。第一阈值和第二阈值中的每一个都是预定的预测水平的示例。

另外,在一个实施方案中,当本文描述的一个或多个节点确定对预测的用户输入的接收的预测不满足(例如,不超过)预定的预测水平时,一个或多个节点临时地暂停或不执行其基于预测的用户输入来生成或渲染图像帧的操作。当操作暂停时,一个或多个节点基于诸如用户输入1'(图3A)的实际用户输入来执行图像帧和音频帧的生成或渲染。当操作暂停时,一个或多个节点学习预测以达到预定的预测水平。作为示例,在固定的时间段内、在游戏会话的持续时间内、或直到游戏中发生了已知事件为止、或直到预测引擎预测到大于预定水平的水平为止,暂停操作和/或进行学习。预测引擎是由节点中的一者或多者执行的计算机程序。已知事件的示例是游戏场景的结束,该游戏场景是以预定的预测水平预测的挑战场景。挑战场景的图示是具有虚拟对象或虚拟角色的大于预定量的移动或操作或它们组合的图示。在固定时间段、或游戏会话结束、或已知事件发生、或预测引擎预测到大于预定水平的水平之后,本文描述的节点中的一者或多者恢复到预测用户输入并且基于预测的用户输入来生成图像帧和音频帧。

应注意,在各种实施方案中,本文描述的一些实施方案的一个或多个特征与本文描述的剩余的实施方案中的一者或多者的一个或多个特征组合。

本公开中描述的实施方案可用包括手持式装置、微处理器系统、基于微处理器或可编程的消费型电子设备、小型计算机、大型计算机等的各种计算机系统配置来实践。在一个实现方式中,在分布式计算环境中实践本公开中描述的实施方案,在该分布式计算环境中,由通过基于有线或无线网络链接的远程处理装置来执行任务。

考虑到以上实施方案,应理解,在一个实现方式中,本公开中描述的实施方案采用涉及存储在计算机系统中的数据的各种计算机实现的操作。这些操作是需要物理地操纵物理量的那些操作。本文描述的形成本公开描述的实施方案的一部分的任何操作都是有用的机器操作。本公开中描述的一些实施方案还涉及用于执行这些操作的装置或设备。该设备被专门构造用于所需目的,或者该设备是由存储在计算机中的计算机程序选择性地激活或配置的通用计算机。特别地,在一个实施方案中,各种通用机器与根据本文中的教导编写的计算机程序一起使用,或者构造更专门的设备来执行所需的操作可能更方便。

在一个实现方式中,本公开中描述的一些实施方案体现为计算机可读介质上的计算机可读代码。计算机可读介质是存储数据的任何数据存储装置,该数据随后由计算机系统读取。计算机可读介质的示例包括硬盘驱动器、网络附加存储(NAS)、ROM、RAM、光盘ROM(CD-ROM)、可录式CD(CD-R)、可重写CD(CD-RW)、磁带、光学数据存储装置、非光学数据存储装置等。作为示例,计算机可读介质包括分布在网络耦合的计算机系统上的计算机可读有形介质,使得以分布式方式存储和执行计算机可读代码。

此外,尽管关于游戏环境描述了一些上述实施方案,但是在一些实施方案中,代替游戏,使用其他环境,例如视频会议环境等。

虽然以特定的次序描述了方法操作,但是应当理解,可在操作之间执行其他内务操作,或者可调整操作,使得它们在稍微不同的时间发生,或者可将操作分布在允许以与处理相关联的各种间隔发生处理操作的系统中,只要以期望的方式执行叠加操作的处理即可。

虽然为了清楚理解的目的而略微详细地描述了本公开中描述的前述实施方案,但是将显而易见,可在所附权利要求的范围内实践某些变化和修改。因此,本实施方案被认为是说明性的而非限制性的,并且所述实施方案不限于本文给出的细节,而是可在所附权利要求的范围和等效范围内进行修改。

64页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:具有反冲洗物引导件的旋转盘过滤器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类