CN115220906A - 音频/视频合成应用的云执行 - Google Patents

音频/视频合成应用的云执行 Download PDF

Info

Publication number
CN115220906A
CN115220906A CN202210261804.1A CN202210261804A CN115220906A CN 115220906 A CN115220906 A CN 115220906A CN 202210261804 A CN202210261804 A CN 202210261804A CN 115220906 A CN115220906 A CN 115220906A
Authority
CN
China
Prior art keywords
data
computing device
application
client device
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210261804.1A
Other languages
English (en)
Inventor
J·万·威尔森
A·帕里克
J·怀特
T·米伦斯特恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN115220906A publication Critical patent/CN115220906A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/86Watching games played by other players
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

公开了音频/视频合成应用的云执行。在各个示例中,可以在远程计算设备上执行应用以与视频数据和音频数据合成并广播玩游戏。公开了在不同计算设备之间和之中分配任务的处理的系统和方法,所述任务的处理包括游戏的渲染、不同类型的数据的合成、以及合成的数据的广播。所述任务可在远离客户端设备的计算设备上执行,例如虚拟机、GPU、服务器和/或云中的其他计算设备,这些全部通过网络连接。可通过将诸如游戏的合成和渲染之类的任务分配到具有高性能能力并且专门用于处理存储器和时间密集型任务的计算设备,来在系统内生成定制的合成内容,而没有延迟和丢帧。

Description

音频/视频合成应用的云执行
背景技术
随着用复杂的数字资产增强的视频游戏的直播游戏玩法(gameplay)在大量在线观众之间获得吸引力,用户正花费越来越多的时间量来定制他们的观众的观看体验。为了实现这一点,用户经常寻求通过将图形设计资产(例如,贴纸、数字图形、自定义徽标、图形设计、头像、图片、表情包、视频、与其他玩家的聊天对话等)和其他数据(例如,在玩游戏时用户的音频和视频数据、游戏会话中的其他玩家的直播等)与直播游戏玩法合成来增强游戏性(gameplay)。例如,用户可能想要直播流行游戏的游戏玩法,同时还包括用户的徽标以及与游戏(gameplay)同步以实时提供用户的反应和评论的用户的音频流和视频流。当玩游戏并直播游戏时,用户可能想要在展现给观看者的内容的一个或更多个所创建的布局(例如,每个布局具有不同的音频和视频流和/或资产的位置)之间调整或切换。然而,合成多个数据流(例如,经由后处理或合成应用)以及实时执行高质量视频游戏而不丢帧,需要高带宽容量、高性能计算资源和大型存储器空间存储。即使云中的大量存储器被使用,具有充足的网络资源来渲染游戏、从用户接收命令控制信号、与其他元素合成游戏、以及将合成内容广播到广播服务器也是有挑战的。在没有充足资源的情况下,合成多个数据源可能导致用户的延迟、滞后、丢帧、和/或处理器或存储器容量问题——从而影响到向观众的最终广播和/或针对用户的游戏玩法。例如,因为并非所有用户都可以使用高性能计算机,所以当用户尝试参与游戏同时还本地托管合成的广播时,延迟问题可能出现。照此,在许多用户设备执行游戏、合成和/或广播应用的能力与期望为用户及其观众提供值得的体验的高水平的质量和性能之间存在差异。
例如,常规系统通常利用本地机器来执行游戏、合成和/或广播应用。然而,由于许多原因,这种方法是有问题的。例如,不太可能有高性能的个人计算设备具有有限能力来执行需要高带宽的若干应用,同时在玩游戏中保持低延迟水平和高质量水平。要求每个用户立刻使用一个或更多个个人计算设备或者购买具有更大带宽和存储器容量的计算设备都是昂贵的,并且可以为许多用户造成进入的禁止性障碍。结果,成本和质量的竞争利益使得实现高质量直播游戏玩法,将游戏玩法与其他数据(例如,音频和视频数据、图形设计资产)合成,以及以高同步和低延迟向大量观众广播合成的流媒体数据越来越费力,尤其是当考虑以具有小资源池的实体开始时。
发明内容
本公开的实施例涉及在远程计算设备上执行应用以与视频和音频数据合成和广播(例如,直播)游戏玩法。公开了将任务(诸如游戏渲染和数据合成)分发到远离客户端设备的一个或更多个计算设备的系统和方法。
与常规系统(诸如本文描述的那些系统)相比,本公开的系统和方法将游戏的渲染和游戏玩法内容的合成(这两者都是存储器和时间密集型任务)卸载至远程计算设备(例如,其执行一个或更多个虚拟机)以减少客户端设备上的负担。例如,可使用一个或更多个虚拟机(VM)、GPU、服务器和/或其他计算设备实现的内容流媒体服务器可以处理(例如,管理、托管、执行、和/或促进)游戏应用的渲染。例如但不限于,内容流媒体服务器可以使用分配的VM、GPU等处理针对特定用户的应用的个体座位(seat)或实例的渲染。同样,合成服务器可类似地使用一个或更多个虚拟机、GPU、虚拟桌面、服务器和/或其他计算设备来实现,并且可以管理与广播相关或关联的不同类型的数据(例如,图形设计资产、游戏玩法、音频数据、视频数据)的渲染和合成,其可以与游戏应用输出的渲染分离和独立。内容流媒体服务器和合成服务器中的每一者还可安装和执行用于客户端设备本地的I/O设备(例如,麦克风、相机等)的虚拟驱动器,以模拟直接接收输入信号的每一服务器(例如,使得基于云的设备或远程设备可执行客户端应用,诸如合成应用,而无需为云执行重新编程该应用)。
照此,因为使用远离客户端设备的设备来实现内容流媒体服务器和/或合成服务器,所以客户端设备不太可能经历处理和性能瓶颈。同样,因为每个服务器可使用与客户端设备相关联的虚拟I/O驱动器,所以内容流媒体服务器和合成服务器可在客户端设备上执行应用,而很少乃至没有附加配置。在一些实施例中,每个服务器可以使用抽象输入数据的源的已建立的插入架构来提供应用的无缝执行。在一些示例中,内容流媒体服务器和合成服务器(不管每一者是虚拟机、服务器、GPU还是其他计算设备)可在相同或不同服务器上执行。
在一些示例中,内容流媒体服务器可以远程执行游戏应用,包括执行游戏的任何数量的实例——包括执行游戏的渲染图形输出的实例。客户端设备可以从内容流媒体服务器接收经渲染的游戏,并且作为响应,发送输入数据以允许用户与游戏进行交互(例如,但不限于,经由一个或更多个用户界面和/或用户输入设备)。内容流媒体服务器还可将图形渲染的游戏输出提供给合成服务器以供与其他数据合成。合成服务器还可以与从内容流媒体服务器接收的经渲染的游戏一起从客户端设备接收图形设计资产、音频数据和视频数据。利用接收到的数据,合成服务器可以基于用户的选择来合成数据。例如,合成服务器可向用户提供渲染的用户界面,以向用户提供用于调整具有要被合成的内容的布局的控件。一旦被合成,合成服务器就可将合成的内容流传输到广播服务器,该广播服务器将该内容广播到一个或更多个其他客户端设备(例如,通过流媒体服务向广大观众广播的广播服务器)。作为非限制性示例,通过在云中执行一些处理任务(例如,游戏渲染、合成),系统中的一个或更多个设备(尤其是客户端设备)可受益于改进的带宽使用、增加的处理速度、较低的延迟、较高的游戏流分辨率、以及高质量广播体验。
附图说明
以下参照附图详细描述用于在远程计算设备上执行应用以利用视频数据和音频数据来合成和广播游戏玩法的本系统和方法,其中:
图1是适合用于实现本公开的一些实施例的示例内容流传输、合成和广播系统的框图;
图2A是用于实现本公开的一些实施例的包括内容流媒体服务器、合成服务器和广播服务器的用于内容流传输、合成和广播的示例系统图,其中每个服务器都远离客户端设备;
图2B是用于实现本公开的一些实施例的包括内容流媒体虚拟机、合成虚拟机和广播服务器的用于内容流传输、合成和广播的示例系统图,其中每一个都远离客户端设备;
图2C是用于实现本公开的一些实施例的包括合成服务器和广播服务器的用于内容流传输、合成和广播的示例系统图,其中每个服务器都远离客户端设备;
图3是由用于实现本公开的一些实施例的包括内容流媒体服务器和合成服务器的一个或更多个调制器进行内容流传输和合成的示例系统图,每个调制器都远离一个或更多个客户端设备;
图4-5是示出根据本公开的一些实施例的使用远程云设备进行内容流传输和合成的方法的流程图;以及
图6是适合用于实现本公开的一些实施例的示例内容流媒体系统的框图;
图7是适合用于实现本公开的一些实施例的示例计算设备的框图;以及
图8是适合用于实现本公开的一些实施例的示例数据中心的框图。
具体实施方式
公开了涉及执行远程计算设备上的应用以用视频数据和音频数据合成和广播游戏设计的系统和方法。如本文中所描述,与常规系统相反,本公开提供了在远程计算设备上执行应用,包括涉及合成、广播和/或玩游戏的应用,以相比于在用户的本地设备上努力高效地利用云中的计算资源、网络使用和存储容量。结果,一个或更多个计算设备(例如,负责渲染游戏玩法、用附加元素合成游戏玩法、以及将所合成的内容广播给一个或更多个用户的服务器)和一个或更多个客户端设备(例如,平板电脑、计算机、智能电话、流媒体设备、游戏控制台、或显示游戏的直播以及用户界面以帮助合成内容并接收和发送输入的其他设备)可以负责以为玩游戏的用户和接收广播内容的用户二者提供高质量、低延时的体验的方式在系统内执行任务。
与常规系统(诸如本文描述的那些系统)相比,本公开的系统接收包括游戏玩法、音频数据和视频数据的多个数据流,合成数据,并且将合成的数据广播给观看观众——所有这些都可以在一个或更多个远程计算设备(例如,使用数据中心中的一个或更多个虚拟机托管)上执行。结果,用户的本地计算设备具有减少的处理和带宽负担(部分由于本地计算设备不再必须渲染游戏玩法、合成内容、以及将内容发送到广播服务),广播数据的质量保持高,并且相对于游戏和经同步的音频/视频数据,延迟低。例如,客户端设备可以接收游戏玩法数据流,诸如来自已经由(第一)远程计算设备渲染的游戏应用的数据。在一些实施例中,游戏应用的实例在本地计算设备上渲染。在游戏期间,客户端设备可以向(第二)远程计算设备发送用户的实况音频和视频数据,然后(第二)远程计算设备可以使用合成应用将音频和视频数据与其他数据合成,例如来自(第一)远程计算设备的经渲染的游戏玩法。在一些实施例中,计算设备可以是同一虚拟桌面、虚拟机或设备中的不同应用。同样,计算设备可以是在同一(或不同的)虚拟机或设备内执行的单独的虚拟桌面。要被合成的各种数据(例如,游戏玩法、音频数据、视频数据、其他图形或音频数据等)一旦被(第二)远程计算设备渲染,就可被发送到客户端设备。在一些实施例中,要被合成的数据可在虚拟桌面内被流传输到用户,该虚拟桌面包括对应于合成/广播应用的用户界面,该合成/广播应用包括控件(例如,供用户创建和修改广播内容的布局的选项)和合成内容的预览。在一些实施例中,合成应用和广播应用在不同的计算设备和/或虚拟机上执行。(第二)远程计算设备可接收对应于合成应用的输入数据并相应地调整合成的数据。一旦被合成,(第二)远程计算设备就可生成或渲染可被广播给更大观众的附加数据流。在一些实施例中,合成的数据和/或附加的数据流由(第二)远程计算设备发送到一个或更多个广播服务器/服务。通过使用远离客户端设备的一个或更多个计算设备来合成数据,用户的本地计算设备的能力不会造成观看用户的体验的性能和质量的瓶颈。本公开的系统和方法的一些非限制性益处是提高的流传输的游戏玩法的质量,游戏中的低延迟,以及音频和视频与游戏玩法同步的低延迟,以及定制向观看者的大量观众广播的合成内容的能力——由此减少用户的本地计算设备上的计算负担或用户对高性能计算设备的本地访问的要求。
在本公开的一些实施例中,并且为了最终帮助分配游戏应用和合成应用的工作负载,可以使用各种设备来实现计算设备,这些设备中的每一个都远离客户端设备。例如,远程计算设备可以包括可使用一个或更多个图形处理单元(GPU)来执行游戏(或其他内容)流媒体应用和合成应用的一个或更多个虚拟机(VM)。在一些实施例中,计算设备可以是在同一或不同服务器上实现的一个或更多个VM——例如,对应于游戏应用的第一VM和对应于合成应用的第二VM。类似地,在一些实施例中,计算设备可以是一个或更多个GPU。同样,每个VM可以托管与一个或更多个游戏实例和/或合成应用的一个或更多个实例相对应的一个或更多个虚拟桌面。通过使用远程计算设备的组合,游戏和/或合成应用的计算必要性可以基于当前游戏/合成组合的当前计算要求跨多个计算设备动态地分布。例如,游戏应用的实例可在包括将提供高质量游戏体验的高功率GPU的VM上执行,而合成应用的实例可使用包括较低功率GPU的VM来执行。通过将应用实例分布到单独的远程设备上,用户能够具有延迟极少的高性能体验。
多个远程设备的使用还为用户提供了容易定制不同资产、音频数据、视频数据、游戏玩法和其他数据如何在被广播给大量观众之前被合成和合并的能力。例如,客户端设备的用户(例如,游戏应用的玩家)可以在单独的应用窗口(例如,在实施例中,对应于一个或更多个虚拟桌面)中查看每个正在执行的应用,其中一个窗口表示游戏应用的游戏玩法,而另一窗口表示用于定制用户的已渲染游戏玩法如何与音频和视觉数据合成的用户界面。当用户在用户界面中改变合成的数据的布局和其他细节时,这些改变可被发送给(第二)远程计算设备。合成的数据然后被相应地修改并广播给其他用户。在一些实施例中,关于游戏应用的控制的数据可以被输入到用户的本地计算设备上并发送至(第一)远程计算设备,从而使得输入影响流传输的游戏玩法的渲染。通过在远程计算设备上执行游戏和合成应用的实例,用户能够对每个应用进行控制,就好像它正在用户的本地计算设备上执行一样,而不会由于延迟或过载的计算资源而损失质量。
在一些实施例中,远程计算设备可以使用或安装虚拟或仿真的驱动器来仿真远程计算设备本地接收输入数据(例如,来自麦克风的音频数据、来自相机的视频数据、由用户做出的使用键盘和/或鼠标来控制游戏和合成应用的改变)。例如,最初由用户的本地计算设备经由麦克风和相机接收的音频和视频数据可被发送给(第二)远程计算设备并且最终被应用于使用一个或更多个虚拟驱动器来执行合成/广播应用的VM。在一些实施例中,远程计算设备可以使用与对输入数据的源进行提取的应用相关联的插件。通过使用一个或更多个虚拟驱动器和/或插件,远程计算设备可以接收输入数据,就好像它是由物理地附接到远程计算设备的本地输入设备(例如,麦克风、相机、游戏控制器等)接收的一样。以此方式,在一个或更多个远程计算设备(例如,VM)上执行的应用可能不知道它们正在云中执行,因此不需要在基于云的环境中执行对应用的任何修改或定制(例如,应用就像它们正在本地运行那样被执行)。
参见图1,图1是根据本公开的一些实施例的示例内容流传输、合成和广播系统。应当理解,本文所述的这种和其他布置仅作为示例被阐述。除了所示的那些布置和元素之外或代替所示的那些布置和元素,可以使用其他布置和元素(例如,机器、接口、功能、顺序、功能分组等),并且一些元素可以完全省略。进一步,本文描述的许多元件是可作为分立式或分布式组件或结合其他组件、并以任何合适的组合和位置实现的功能实体。本文中描述为由实体执行的各种功能可由硬件、固件和/或软件执行。例如,各种功能可由执行存储在存储器中的指令的处理器执行。在一些实施例中,系统100可以包括与图6的示例内容流媒体系统600、图7的示例计算设备700和/或图8的示例数据中心800的组件、特征和/或功能类似的组件、特征和/或功能。
内容流传输、合成和广播系统100可以包括一个或更多个客户端设备102、一个或更多个内容流媒体服务器104、一个或更多个合成服务器106、一个或更多个广播服务器108和/或一个或更多个网络140等等。尽管被示为分立设备,但这不旨在是限制性的。例如,在一些实施例中,一个或更多个内容流媒体服务器104、一个或更多个合成服务器106和一个或更多个广播服务器108中的一个或更多个可对应于同一服务器。此外,服务器104、106和/或108可以共享计算资源,诸如通过虚拟机的方式,或者可以包括分立的或单独的计算资源。内容流传输、合成和广播系统100(及其组件和/或特征)可使用一个或更多个计算设备来实现,诸如图7的计算设备700和/或图8的数据中心800,这在本文中更详细地被描述。
内容流传输、合成和广播系统100的设备或组件中的每一个可以使用网络140在彼此之间和之中通信。一个或更多个网络140可包括广域网(WAN)(例如,互联网、公共交换电话网(PSTN)等)、局域网(LAN)(例如,Wi-Fi、以太网等)和/或另一网络类型。
一个或更多个客户端设备102可以包括智能电话,膝上型计算机,平板计算机,台式计算机,可穿戴设备,游戏控制台,虚拟、增强和/或混合现实系统(例如,头戴式耳机、计算机、游戏控制台、一个或更多个遥控器、一个或更多个控制器、和/或其他组件),流媒体设备(例如,NVIDIA SHIELD),可以包括智能个人助理的智能家居设备,至少能够支持显示游戏应用122的直播和/或来自I/O设备114的输入的另一类型的设备。
一个或更多个客户端设备102可以包括显示器110、一个或更多个I/O设备114、客户端应用112、一个或更多个数据存储120、和/或应用窗口115(在实施例中,其可对应于虚拟桌面,或可包括客户端设备102的显示器110上的显示空间的至少一部分)。在一些示例中,一个或更多个应用窗口115的功能中的至少一些功能(其可以对应于来自服务器104或106中的一个或更多个的虚拟桌面流)可以在客户端应用112内执行。尽管图1中示出了客户端设备102的某些组件和/或特征,但这不旨在是限制性的。例如,一个或更多个客户端设备102可以具有附加的或可替代的组件,诸如但不限于本文中关于图6的计算设备600所描述的那些。客户端设备102的特征和功能可在本文中关于图2A-C更详细地描述。
客户端应用112可以是移动应用、计算机应用、控制台应用、游戏应用、虚拟桌面应用和/或另一类型的应用。客户端应用112可包括指令,这些指令在由客户端设备102的处理器执行时,使处理器执行一个或更多个操作(诸如但不限于本文中关于内容流传输、合成和广播系统100描述的操作)。客户端应用112可以作为用于实现游戏应用122的游戏玩法的促进器来操作——例如,用于从客户端应用112的用户的角度来促进游戏的特定实例。例如,客户端应用112可以但不限于,显示从内容流媒体服务器104接收的和/或在本地渲染的游戏的直播,向合成服务器106发送要与直播的游戏玩法合成的信息,接收和/或处理来自客户端设备102的I/O设备114中的一个或更多个的输入,和/或使得将表示输入(例如,到游戏应用的输入和/或到合成应用的用户界面的输入)的输入数据发送到一个或更多个内容流媒体服务器104和/或一个或更多个合成服务器106。在一些示例中,如本文所描述的,客户端应用112可包括虚拟桌面的一些特征或功能,诸如用游戏玩法和/或要与游戏玩法合成的附加数据(例如,聊天功能、徽标、贴纸、其他图形设计资产)渲染用户界面,等等。此外,在一些示例中,客户端应用112可以使得向一个或更多个其他用户广播与其他元素合成的游戏玩法(例如,直接向广播服务器108发送合成的内容)等。
一个或更多个应用窗口115可以对应于移动应用、计算机应用和/或另一种类型的应用。在一些实施例中,一个或更多个应用窗口115可以向用户提供由远离一个或更多个客户端设备102的计算设备渲染的数据。在一些实施例中,一个或更多个应用窗口115可以向用户提供(或者可以显示)用户界面,用于促进控制在一个或更多个内容流媒体服务器104上执行游戏124的实例。同样,一个或更多个应用窗口115还可以通过一个或更多个用户界面和/或一个或更多个应用窗口115来促进对一个或更多个合成服务器106上的合成应用130的实例和一个或更多个广播服务器108上的广播应用136的实例的控制。例如,如果内容流媒体服务器104和合成服务器106远离客户端设备,应用窗口115可以但不限于,显示从内容流媒体服务器104接收的游戏玩法,显示用户界面(如由合成服务器106渲染的),该用户界面包括来自数据存储120的游戏和其他图形设计资产的直播的布局,向合成服务器106发送要与直播的游戏玩法合成的信息,从客户端设备102的I/O设备114中的一个或更多个接收输入和/或处理输入,和/或使得向内容流媒体服务器104发送表示输入的输入数据。此外,在一些示例中,一个或更多个应用窗口115可以促进向一个或更多个其他用户广播合成的内容(例如,与音频数据、视频数据和/或图形设计资产合成的直播游戏玩法)。在一些实施例中,如本文所述,应用窗口115可对应于虚拟桌面窗口,或可显示从执行虚拟桌面应用的远程设备接收的数据流。
一个或更多个客户端设备102可以包括一个或更多个组件(例如,通信组件、网络接口等)和用于跨一个或更多个网络(诸如,一个或更多个网络140)进行通信的特征。作为非限制性示例,为了在内容流传输、合成和广播系统100内进行通信,客户端设备102可以使用有线以太网连接和/或通过路由器来访问互联网以便与内容流媒体服务器104、合成服务器106和/或广播服务器108进行通信的Wi-Fi连接。
显示器110可以包括能够显示游戏的任何类型的显示器(例如,发光二极管显示器(LED)、有机LED显示器(OLED)、液晶显示器(LCD)、有源矩阵OLED显示器(AMOLED)、量子点显示器(QDD)、等离子显示器和/或另一类型的显示器)。在一些示例中,取决于客户端设备102的配置,显示器110可包括不止一个显示器(例如,用于计算机游戏的双监视器显示器、用于控制游戏的第一显示器以及用于控制游戏玩法与附加数字元素的合成的第二显示器等)。其中在显示器110是触摸屏显示器的情况下,诸如智能电话、平板式计算机、膝上型计算机等的触摸屏,显示器110可以被用作一个或更多个客户端设备102的一个或更多个I/O设备114中的至少一个(例如,一个或更多个I/O设备114中的一个用于生成到游戏124的输入以供发送到一个或更多个内容流媒体服务器104以用于更新游戏玩法的渲染,以及用于生成到合成应用130的输入以用于更新游戏玩法和正被合成的其他图形设计资产的布局)。
一个或更多个I/O设备114可以包括能够向游戏提供用户输入的任何类型的设备。一个或更多个I/O设备114包括麦克风117和相机119。在一些实施例中,麦克风117和相机119被定位为捕获用户的面部表情、用户对诸如游戏控制器之类的输入设备的移动、以及用户在游戏玩法期间的声音评论。例如,麦克风117可以在游戏玩法期间生成用户的评论的音频数据,并且在数据被记录时为该数据提供时间戳。类似地,相机119也可以捕获具有与视频数据相对应的时间戳的用户的视频数据(例如,面部表情、游戏控制器上的手部移动等)。I/O设备还可以包括键盘、鼠标、操纵杆、扬声器、触摸屏显示器110、一个或更多个控制器、一个或更多个遥控器、耳机(例如,虚拟、增强和/或混合现实耳机的传感器)、另一种类型的输入设备、和/或其组合。例如,一个或更多个I/O设备114可以包括捕获关于游戏控制器的控制信号的设备(以便基于用户对游戏控制器的各部分的移动来修改游戏玩法),键盘和鼠标(以便修改在应用窗口115中显示的游戏玩法和/或游戏玩法及图形设计资产的布局),麦克风117和/或相机119(以便在游戏玩法期间捕获用户的表情和评论)。
数据存储120可包括任何存储器设备类型。在客户端设备102可被分派存储和/或生成合成内容的任务的实施例中,一个或更多个数据存储120可存储游戏玩法的直播中的一些或全部。例如,一个或更多个数据存储120可以存储整个游戏流以及从所存储的该游戏流中生成的快照、精彩片段和/或记录。在一些实施例中,一个或更多个数据存储120可存储与用户相关联的图形设计资产(例如,贴纸、数字图形、与其他玩家的聊天对话等),所述图形设计资产可用于增强游戏玩法的直播。例如,一个或更多个数据存储120可存储与用户的品牌相关联的徽标的数字图像,该用户的品牌打算在直播的游戏玩法的右下角浮现。另外,一个或更多个数据存储120可包括其他实时信息,诸如与用户相关联的聊天会话。在一些实施例中,一个或更多个数据存储120可存储用户的音频和视频数据。
一个或更多个内容流媒体服务器104可以包括在远离一个或更多个客户端设备102的计算设备上执行游戏124的一个或更多个实例的游戏应用122。在一些实施例中,一个或更多个内容流媒体服务器104可以渲染游戏124,并且将游戏玩法流作为游戏的一个或更多个流传送至一个或更多个设备——例如,将第一流传送至一个或更多个客户端设备102以及将第二流传送至一个或更多个合成服务器106和/或一个或更多个广播服务器108。在一些实施例中,游戏的两个或更多个流可以是游戏124的实例所渲染的游戏玩法的副本。例如,作为游戏应用122的已执行实例的游戏124的实例(包括游戏玩法的音频和视频元素)可被渲染并被发送到客户端设备102以向用户呈现游戏玩法的当前状态。游戏124的经渲染的实例还可被流传输到一个或更多个合成服务器106,以使得直播的游戏玩法能够与附加的图形设计资产进行合成。在一些实施例中,经由网络140发送游戏124的所渲染的实例的单独流可能有利于同时在客户端设备102处显示游戏124的实例的流和/或向合成服务器106提供游戏124的实例的另一流,以将游戏玩法与附加图形设计资产进行合成,以便减少帧之间的延迟和丢帧的频率。
游戏应用122可以通过输入数据接收器138接收表示一个或更多个客户端设备102的输入的输入数据,渲染游戏124的实例,将游戏132的实例编码成一个或更多个流,并且将一个或更多个流发送到一个或更多个客户端设备102和/或一个或更多个合成服务器106。
一个或更多个内容流媒体服务器104可以包括输入数据接收器138,用于接收表示到一个或更多个客户端设备102的关于游戏124的实例的所发送的流的输入的输入数据。例如,游戏124的实例可被流传输并呈现给客户端设备102。作为响应,用户可通过游戏控制器(诸如操纵杆、键盘、鼠标等)来提供输入以控制游戏124的实例。在一些实施例中,输入数据接收器138可以在客户端设备102上安装和执行对应于I/O设备114的虚拟驱动器,以便接收输入数据,就好像其是内容流设备104本地的一样。这样,游戏应用122不需要被配置或修改以便在内容流媒体服务器104而不是客户端设备102上执行。本文中可关于图2A-3更详细地描述内容流媒体服务器104的特征和功能性。
一个或更多个内容流媒体服务器104可以使用一个或更多个虚拟机127来执行用于特定客户端设备的游戏应用122的实例。一个或更多个虚拟机127可以渲染被编码和流传输(例如,作为一个或更多个虚拟桌面)到一个或更多个客户端设备102的一个或更多个用户界面,用于促进对游戏124的实例的控制。例如,虚拟机127可渲染一个或更多个用户界面,以便向用户提供导航通过视频游戏的选项。一旦被渲染,虚拟机127就可以与一个或更多个客户端设备102通信以流传输用户界面并且使得在一个或更多个虚拟桌面115和/或一个或更多个I/O设备114上呈现用户界面。在一些实施例中,虚拟机127可与其他虚拟机(诸如虚拟机133)一起在设备(例如,服务器、PC)上执行。虚拟机还可使用一个或更多个GPU来执行以促进游戏124的实例的渲染。类似地,GPU可以与一个或更多个合成服务器106共享和/或可以是与一个或更多个合成服务器106驻留在同一设备(例如,服务器、PC)上的单独的GPU。此外,在一些示例中,虚拟机127可以促进所渲染的游戏124的实例向一个或更多个合成服务器106的发送。在一些实施例中,虚拟机127可以使用一个或更多个虚拟桌面来执行作为游戏124的实例的游戏应用122。
一个或更多个内容流媒体服务器104可以包括一个或更多个数据存储120,类似于本文描述的一个或更多个客户端设备102、一个或更多个合成服务器106和/或一个或更多个广播服务器108的一个或更多个数据存储120。
一个或更多个合成服务器106可以包括被实现为远离一个或更多个客户端设备102的计算设备上的合成应用130的实例的合成应用128。例如,一个或更多个合成服务器106可渲染合成应用130的一个或更多个实例(或至少其用户界面),并将所渲染的内容流传输到一个或更多个设备。合成应用的流可以是合成应用130的实例的所渲染的数据的副本。例如,合成应用128可作为包括与游戏玩法和图形设计资产同步的用户的音频和视频数据在内的合成应用130的实例来执行,并且作为用户界面被发送到客户端设备102以使得用户能够查看内容如何被合成。在一些实施例中,合成应用可以仅渲染用户界面,并且直播游戏玩法的同步可以由客户端设备102使用本地渲染的和/或接收到的直播游戏玩法的流来执行。在一些实施例中,合成的内容在没有用户界面的情况下被渲染并发送到广播服务器108以传输到对应于广播观众的一个或更多个其他客户端设备。例如,一个或更多个广播服务器108可以是不需要用户界面的广播服务。提供合成应用128的作为合成应用130的实例由远离客户端设备102的计算设备经由网络140来执行的单独流,对在客户端设备102处以用户界面的形式同时显示合成应用130的实例和/或将合成应用130的另一流(作为流)提供给广播服务器108以用于广播合成的内容以便将合成定制内容的处理负载分配到系统100中的其他高性能设备来说可能是有利的。合成服务器106的特征和功能可在本文中关于图2A-3更详细地描述。
一个或更多个合成服务器106可以包括用于合成流游戏玩法、图形设计资产、用户的音频和视频数据和/或附加信息的合成应用128。例如,一个或更多个合成服务器106可以将来自用户的视频和音频数据与游戏玩法进行合成,使得观众可以实时地查看直播的游戏玩法以及用户的反应和评论。例如,一个或更多个合成服务器106可以在屏幕的大部分中合成直播游戏玩法,而屏幕的较小部分专用于用户的视频数据。用户的视频数据可以进一步与数据周围的过滤器和/或帧合成,所述过滤器和/或帧提供与用户或其他图形设计资产相关联的徽标。在一些实施例中,音频和视频数据可以与游戏玩法同步,使得用户的评论和面部表情与直播的游戏玩法同时显示在屏幕上。在一些实施例中,通过对齐来自每种类型的数据的时间戳,音频和视频数据的显示可以与游戏玩法同步。
以此方式,合成应用128可由远离一个或更多个客户端设备102的计算设备实现为合成应用130的实例,以便将合成游戏玩法和来自用户的本地设备(诸如客户端设备102)的其他数据的工作负载转移到具有附加资源和带宽的云上。因此,一个或更多个客户端设备102已经降低了其计算资源关于不同类型的数据的合成的负担。
一个或更多个合成服务器106还可以与各种源通信以检索要与游戏玩法合成的内容。在一些实施例中,仅驻留在一个或更多个客户端设备102的一个或更多个数据存储120中的图形设计资产(例如,定制徽标、头像、图片、视频)也可以被发送到一个或更多个合成服务器106以供合成。类似地,合成应用128还可从其他远程计算设备(例如,管理在线游戏平台上的聊天功能的服务器)检索附加信息,诸如聊天消息。
合成应用128还可提供一个或更多个用户界面以允许用户修改包括游戏玩法、视频数据、音频数据和其他图形设计资产的布局。例如,合成应用128可以渲染被编码并流传输到一个或更多个客户端设备102的用户界面,以促进通过交互来控制和修改布局。布局可在屏幕上显示要与每一类型的数据的位置、对齐和大小一起合成的数据。例如,用户可以与用户界面交互以通过将直播游戏玩法的大小缩小到占据屏幕的75%并且在剩余空间中在游戏玩法周围添加定制的数字框架来修改布局。另外,用户可进一步与用户界面交互以将传入的聊天消息覆盖在框架区域的顶部上并将其放置在游戏玩法下方。在一些实施例中,用户可能够在将被广播给观众时预览合成的内容的屏幕。随着用户继续玩游戏,用户可调整正被合成的内容的类型以及该内容的放置、大小、位置等。在一些实施例中,用户界面还可使得用户能够在不同类型的数据之间切换。例如,用户可以使用预设布局并且在游戏玩法期间选择它们之间的切换。如本文所描述的,与流传输的用户界面的用户交互——在应用窗口内显示——可以包括生成输入数据,向合成服务器106发送输入数据,向在合成服务器106上执行应用的虚拟机模拟一个或更多个虚拟驱动器,更新用户界面和/或合成信息,和/或将用户界面和/或经更新的合成信息流传输回到客户端设备102以反映用户的输入。照此,一个或更多个客户端设备102与合成应用的用户界面的交互可类似于与虚拟桌面应用的交互,由此向一个或更多个合成服务器106卸载处理负担。
合成应用128可以通过输入数据接收器138接收表示到一个或更多个客户端设备102的输入的输入数据,渲染合成应用130的实例,为用户渲染用于修改一个或更多个流中的布局的用户界面,以及将一个或更多个流发送至一个或更多个客户端设备102、一个或更多个合成服务器106和/或一个或更多个广播服务器108(例如,没有用户界面)。
合成服务器106可包括输入数据接收器138,用于接收表示来自客户端设备102的输入的输入数据。在一些实施例中,输入数据接收器138可以从一个或更多个客户端设备102接收音频和视频数据,所述音频和视频数据将与游戏玩法合成并且被广播到其他设备。输入数据接收器138还可以接收在客户端设备102本地的图形设计资产。在一些实施例中,由于合成的内容(如经由合成应用130的实例所渲染的用户界面所显示的)可被广播到附加的客户端设备,因此输入数据接收器138还可以通过诸如键盘、鼠标等之类的I/O设备114接收输入数据以控制合成应用130的实例。如本文所讨论的,输入数据可以包括来自一个或更多个客户端设备102的控制信号,其修改布局中的数据的内容和布置。
在一些实施例中,输入数据接收器138可以使用输入/输出设备虚拟驱动器来接收输入数据,就好像其对内容流设备104本身是本地的,以减少延迟。例如,输入数据接收器138可以安装和执行与麦克风117和相机119相关联的虚拟驱动器,以模拟本地且直接地从一个或更多个I/O设备114接收音频和视频数据的一个或更多个合成服务器106。这样,不需要定制合成应用128(或者一个或更多个合成服务器106上的任何其他应用),以便作为远离一个或更多个客户端设备102的计算设备(例如,使用一个或更多个虚拟机)(诸如一个或更多个合成服务器106)上的合成应用130的实例无缝地执行。
一个或更多个合成服务器106可以使用一个或更多个虚拟机133来执行作为合成应用130的实例的合成应用128。例如,一个或更多个虚拟机133(包括一个或更多个虚拟GPU、一个或更多个分立GPU、一个或更多个虚拟CPU和/或一个或更多个分立CPU)可渲染一个或更多个用户界面,以向用户提供修改布局和调整合成的内容的能力。可包括游戏玩法、音频数据、视频数据和/或其他图形设计资产的用户界面可被渲染并流传输到一个或更多个客户端设备102的一个或更多个应用窗口115。虚拟机133还可从客户端设备102接收输入数据以更新布局并准备合成的内容以供广播。在一些实施例中,虚拟机可与其他虚拟机(诸如虚拟机127)一起在设备(例如,服务器、PC)上执行。虚拟机还可包括一个或更多个GPU(例如,虚拟的或分立的),用于促进执行合成应用130的实例。在一些实施例中,虚拟机133可使用一个或更多个虚拟桌面来执行作为合成应用130的实例的合成应用128。类似地,一个或更多个GPU可以与一个或更多个合成服务器106共享和/或可以是与一个或更多个合成服务器106驻留在同一设备(例如,服务器、PC)上的单独的GPU。
在一些实施例中,一个或更多个合成服务器106可以向一个或更多个广播服务器108传送合成内容。例如,合成应用128可被实现为合成应用130的实例,包括游戏玩法以及所选图形设计资产、音频数据和视频数据,并被发送到广播服务器108以向其他客户端设备广播合成的内容。
一个或更多个合成服务器106可以包括一个或更多个数据存储120,类似于本文描述的一个或更多个客户端设备102、一个或更多个内容流媒体服务器104和/或一个或更多个广播服务器108的一个或更多个数据存储120。例如,一个或更多个数据存储120可保留由用户提供的用于与游戏玩法合成以供将来引用的信息。例如,一个或更多个数据存储120可在本地存储用户先前已经传送的定制徽标和图形设计资产以供后续使用。
广播服务器108可包括用于将合成的数据广播到其他客户端设备102的广播应用134。在一些实施例中,广播应用134可以与为其他用户提供平台以查看直播合成内容的服务进行通信。例如,一个或更多个广播服务器108可从一个或更多个合成服务器106接收合成内容,这些合成内容随后可被广播给其他用户的客户端设备。
广播应用134可以作为广播应用136的实例来执行,通过输入数据接收器138接收表示到一个或更多个客户端设备102的输入的输入数据,并且将一个或更多个流发送到其他用户的客户端设备。在一些实施例中,广播应用134还可以渲染用户界面并且将该用户界面发送至一个或更多个应用窗口115——例如,作为虚拟桌面或图形覆盖。广播服务器108的特征和功能可在本文中关于图2A-3更详细地描述。
在一些实施例中,广播应用134可以作为广播应用136的实例来执行,并且将合成的内容传送到一个或更多个附加的远程计算设备以促进大规模的广播。通过在远离一个或更多个客户端设备102的一个或更多个广播服务器108上执行广播应用136的实例,合成内容、渲染游戏玩法以及广播合成的内容的工作负载不再对用户的本地机器造成负担,本地机器可能不总是高性能计算设备。
广播服务器108可包括输入数据接收器138,用于接收表示到客户端设备102的输入的输入数据。例如,用户可通过经由应用窗口115显示的渲染的用户界面指定合成的内容被广播给用户的所选择的观众或由特定广播服务促进广播。广播应用134可以基于所接收的输入数据来调整所广播的材料的参数,所接收的输入数据可以随着合成的数据改变而改变。
广播服务器108可以包括一个或更多个数据存储120,类似于本文描述的一个或更多个客户端设备102、一个或更多个内容流媒体服务器104和/或一个或更多个合成服务器106的一个或更多个数据存储120。
现在参见图2A,图2A是根据本公开的一些实施例的包括内容流媒体服务器、合成服务器和广播服务器的内容流传输、合成和广播系统200的另一示例系统图,每个服务器都远离客户端设备。内容流传输、合成和广播系统200可以包括一个或更多个客户端设备102A(其可以包括与图1的一个或更多个客户端设备102类似的组件、特征和/或功能),一个或更多个内容流媒体服务器104A(其可以包括与图1的一个或更多个内容流媒体服务器104类似的组件、特征和/或功能),一个或更多个合成服务器106A(其可包括与图1的一个或更多个合成服务器106类似的组件、特征和/或功能),以及一个或更多个广播服务器108A(其可以包括与图1的一个或更多个广播服务器108类似的组件、特征和/或功能)。
在内容流传输、合成和广播系统200中,一个或更多个客户端设备102A可以具有显示器和扬声器,用于显示从一个或更多个内容流媒体服务器104A和一个或更多个合成服务器106A接收的内容。例如,一个或更多个内容流媒体服务器104A可以在服务器上执行游戏的实例、渲染游戏玩法并且将内容流传输至一个或更多个客户端设备102A。结果,一个或更多个客户端设备102A的用户可以通过应用窗口查看他们的显示器上的游戏玩法。如图2A所示,可以在内容流媒体服务器104A上执行和渲染游戏,内容流媒体服务器104A远离客户端设备102A并且在云中。在一些非限制性实施例中,一个或更多个内容流媒体服务器104A可以使用驻留在与合成服务器106A和广播服务器108A分离的服务器上的一个或更多个GPU(例如,虚拟的和/或分立的)来执行。
当用户通过游戏控制器或连接至客户端设备102A的其他I/O设备与游戏交互时,输入数据从客户端设备102A发送至内容流媒体服务器104A。在一些实施例中,一个或更多个内容流媒体服务器104A可以执行与关联于一个或更多个客户端设备102A的I/O设备相对应的虚拟驱动器,以便接收输入数据,就好像它在一个或更多个内容流媒体服务器104A本地一样。在一些实施例中,一个或更多个内容流媒体服务器104A可以创建游戏的多个流并且将一个实例流传输至一个或更多个客户端设备102A并且将另一个流流传输至一个或更多个内容流媒体服务器104A。在一些非限制性实施例中,一个或更多个合成服务器106A由一个或更多个GPU(例如,虚拟的和/或分立的)执行,该一个或更多个GPU驻留在与一个或更多个内容流媒体服务器104A和一个或更多个广播服务器108A分离的服务器上。此外,一个或更多个合成服务器106A可以由与一个或更多个内容流媒体服务器104A和/或一个或更多个广播服务器108A相同的计算设备中的一个或更多个GPU(例如,虚拟的和/或分立的)来执行。
通过在远离客户端设备102A的设备上执行游戏的实例,客户端设备102A不再负担渲染存储器、计算和时间密集型图像数据以促进游戏玩法。类似地,通过将任务卸载到更可能频繁地升级的基于云的资源,可以使用高性能、专用硬件(诸如一个或更多个GPU)来渲染游戏,所述高性能、专用硬件被构建成以低延迟渲染高质量图像。同样,可以在云中的一个或更多个虚拟机上执行的内容流媒体服务器104A上渲染游戏。然而,在一些实施例中,游戏可由客户端设备102A在本地渲染,同时将所渲染的内容卸载到使用远程合成服务器106A和/或主机执行的广播应用的实例。
一个或更多个合成服务器106A可以从一个或更多个内容流媒体服务器104A(和/或一个或更多个客户端设备102A,在一个或更多个客户端设备102A本地地渲染游戏的实施例中)接收经渲染的游戏玩法以及从一个或更多个客户端设备102A接收附加内容,所有这些都被合成。例如,一个或更多个合成服务器106A可从一个或更多个内容流媒体服务器104A接收游戏的直播游戏玩法以及从一个或更多个客户端设备102A接收布局,该布局详述游戏玩法如何被诸如徽标和实况聊天信息之类的图形设计资产覆盖。一个或更多个合成服务器106A还可以分别从一个或更多个客户端设备102A接收由麦克风和相机捕获的音频和视频数据,而一个或更多个内容流媒体服务器104A接收对应于游戏玩法的用户输入(例如,经由一个或更多个客户端设备102A本地的用户输入设备)。在一些实施例中,一个或更多个合成服务器106A可以在合成期间同步接收到的数据(例如,音频和视频数据与游戏玩法同步)。
在一些实施例中,一个或更多个合成服务器106A可以渲染用户界面并将其发送至一个或更多个客户端设备102A,所述用户界面使得用户能够修改内容的布局。当用户通过用户界面修改布局时,一个或更多个合成服务器106A调整接收到的内容的布置和大小。在一些实施例中,通过客户端设备102A上的应用窗口(例如,对应于虚拟桌面)向用户呈现用户界面。用户界面还可预览合成的内容将如何对接收广播的观众显现。一旦内容已经被合成,一个或更多个合成服务器106A可以编码合成的内容并且将其流传输到一个或更多个广播服务器108A。
如关于内容流媒体服务器104A所描述的,通过将诸如合成内容之类的任务卸载到诸如合成服务器106A之类的基于云的资源,不再需要客户端设备102A来执行可能需要大量存储器和带宽的合成任务。
广播服务器108A可从合成服务器106A接收合成内容,编码数据,且将其流传输到大量客户端设备。在一些实施例中,一个或更多个广播服务器106A可以将数据流传输到一个或更多个其他服务器或促进将内容广播到若干其他客户端设备的服务。
类似于图2A,图2B包括诸如如本文描述的一个或更多个客户端设备102B(其可以包括与图1的客户端设备102类似的组件、特征和/或功能),内容流媒体虚拟机127B(其可以包括与图1的内容流媒体服务器104类似的组件、特征和/或功能),合成虚拟机133B(其可包括与图1的合成服务器106类似的组件、特征和/或功能),以及一个或更多个广播服务器108B(其可以包括与图1的一个或更多个广播服务器108类似的组件、特征和/或功能)之类的组件。如图2B所示,当与图2A中的系统200相比时,系统202中的若干组件以不同的方式相互作用。例如,内容流媒体虚拟机127B和合成虚拟机133B被实现为相同的一个或更多个服务器208上的虚拟机。在内容流媒体虚拟机127B和合成虚拟机133B都由同一计算设备上的虚拟机执行的情况下,虚拟机之间的通信中几乎没有滞后时间,从而导致观众接收到几乎实时呈现用户与游戏的交互的广播体验。一旦内容已经被合成,合成虚拟机133B就可向广播服务器108B发送合成的内容以向大规模观众广播数据。
在一些实施例中,内容流媒体虚拟机127B和合成虚拟机133B可存在于单独的服务器上。同样,内容流媒体虚拟机127B和合成虚拟机133B可使用单独的GPU(或可包括共享GPU资源的单独的虚拟GPU)来实现,这些GPU可封装在彼此相同或不同的服务器上。同样,在一些实施例中,每个虚拟机可使用不同的物理设备来执行。例如,因为内容流媒体虚拟机127B渲染高质量游戏玩法图像,所以可使用高性能的专用的并行处理器(诸如GPU)来执行内容流媒体虚拟机127B,而合成虚拟机133B可使用较不适合高质量图形渲染的处理器(例如,CPU或较低性能的GPU)来执行。
类似于图2A,图2C包括诸如如本文所述的一个或更多个客户端设备102C(其可以包括与图1的一个或更多个客户端设备102类似的组件、特征和/或功能),一个或更多个合成服务器106C(其可包括与图1的一个或更多个合成服务器106类似的组件、特征和/或功能),以及一个或更多个广播服务器108C(其可以包括与图1的一个或更多个广播服务器108类似的组件、特征和/或功能)之类的组件。如图2C所示,当分别与图2A-2B中的系统200和202相比时,系统202中的若干组件以不同的方式交互。例如,一个或更多个客户端设备102C本地地执行游戏的实例。在该配置中,一个或更多个客户端设备102C渲染游戏实例的游戏玩法并将渲染的游戏玩法与其他内容(例如,图形设计资产、视频数据、音频数据)流传输到一个或更多个合成服务器106C以供合成。合成服务器106C合成所接收的信息,并将其发送到广播服务器108C,广播服务器108C向广大观众广播合成的数据。
类似于图2A-2C,图3包括诸如如本文所述的客户端设备102C(其可以包括与图1的客户端设备102类似的组件、特征和/或功能),一个或更多个内容流媒体服务器104D(其可以包括与图1的一个或更多个内容流媒体服务器104类似的组件、特征和/或功能),一个或更多个合成服务器106D(其可包括与图1的一个或更多个合成服务器106类似的组件、特征和/或功能),以及一个或更多个广播服务器108D(其可以包括与图1的一个或更多个广播服务器108类似的组件、特征和/或功能)之类的组件。如图3所示,系统300描绘了具有客户端设备102D的多个用户经由一个或更多个内容流媒体服务器104D与游戏的实例交互。每个内容流媒体服务器104D可专用于客户端设备102D的特定用户。例如,一个或更多个给定的内容流媒体服务器104D可以执行游戏的实例、渲染游戏玩法、将其流传输到相关联的一个或更多个客户端设备102D、从一个或更多个客户端设备102D接收输入数据、以及基于输入数据来执行游戏的实例。每个内容流媒体服务器104D还可将游戏的流发送给合成服务器106D以供合成和显示给一组调制器306。
合成服务器106D可以将每个用户的游戏玩法与对应于该用户的附加内容(例如,标识哪个用户关联于示出游戏玩法的屏幕的信息、关联用户的音频数据、关联用户的视频数据)一起合成到用户界面304中。鉴于与标识信息合成的每个用户的游戏玩法,一个或更多个调制器306可通过通信设备302与一个或更多个客户端设备102D的用户进行通信。例如,在用户正在试玩测试一个应用或应用版本的示例场景中,调制器306可指示用户测试特定特征。在一些实施例中,系统300示出了利用被一组调制器306监视的客户端设备102D上的多个β系数测定器来试玩测试一款游戏的系统。
现在参见图4-5,本文描述的方法400和500的每个框包括可以使用硬件、固件和/或软件的任何组合执行的计算过程。例如,各种功能可由执行存储在存储器中的指令的处理器执行。方法400和500还可以体现为存储在计算机存储介质上的计算机可用指令。方法400和500可以由独立的应用、服务或托管服务(独立地或与另一托管服务组合)或另一产品的插件来提供,仅举几例。此外,通过举例的方式,关于图1-3的系统来描述方法400和500。然而,此方法可另外或替代地由任一系统或系统的任何组合执行,所述系统包括(但不限于)本文中所描述的系统。
图4是示出根据本公开的一些实施例的用于在远离客户端设备的计算设备上执行游戏的实例并与其他内容合成游戏玩法的方法400的流程图。在框B402处,方法400包括:使用客户端设备生成对应于第一应用的用户输入数据,该第一应用是使用相对于该客户端远程定位的第一计算设备来执行的。例如,图2A-3提供了其中计算设备(例如,一个或更多个内容流媒体服务器)远离一个或更多个客户端设备的系统的示例。在一些实施例中,第一远程计算设备可以是一个或更多个虚拟机、GPU、虚拟桌面、或其他计算设备,其每一个都远离客户端设备102。如本文所描述的,第一远程计算设备可以是一个或更多个内容流媒体服务器104,所述内容流媒体服务器执行第一应用(例如,游戏应用),渲染游戏玩法以及将游戏玩法流传输至一个或更多个客户端设备102。用户输入数据可包括由客户端设备102捕获的操纵杆移动、键盘数据和鼠标数据。
在框B404处,方法400包括:使用客户端设备发送用户输入数据,以使得第一数据流的渲染对应于第一应用并且响应于用户输入数据。例如,当用户参与游戏时,用户输入数据从一个或更多个客户端设备102发送并使得渲染游戏玩法,其包括根据用户输入数据的改变。例如,如果用户使用操纵杆来将游戏角色导航通过场景,则用户输入数据(其可包括操纵杆移动的方向和力)的发送将导致游戏玩法的经更新的渲染。游戏玩法的经更新的渲染反过来可被生成为第一数据流。在一些实施例中,第一数据流对应于第一应用的实况实例。在一些实施例中,第一数据流可经由一个或更多个应用窗口115显示在客户端设备102上。在一些实施例中,第一数据流可被复制到被发送到其他计算设备的多个实例中。
在框B406处,方法400包括:使用相对于客户端设备接近定位的一个或更多个传感器设备来生成用户交互数据。用户交互数据可以包括示出用户与正在第一计算设备上执行的第一应用(例如,游戏应用)进行交互的数据。例如,客户端设备102附近的传感器设备(诸如麦克风)可在用户参与客户端设备102上的游戏玩法时捕获音频数据。同样,当用户在客户端设备102上玩游戏时,客户端设备102附近的相机也可以捕获视频数据。例如,图2A-3提供了一个或更多个客户端设备102(经由邻近的传感器设备)捕获音频和视频数据的系统的示例。
在框B408,方法400包括:使用客户端设备发送用户交互数据,以使得生成包括第一数据流与用户交互数据的渲染的合成的一个或更多个第二数据流,使用在相对于客户端设备或第一计算设备中的至少一个远程定位的第二计算设备上执行的第二应用来执行所述生成。例如,图2A-3提供了其中计算设备(例如,一个或更多个合成服务器)远离一个或更多个客户端设备的系统的示例。在一些实施例中,由一个或更多个客户端设备102向第二计算设备发送用户交互数据可以使得第二计算设备生成附加的数据流。例如,第二远程计算设备(其可以是一个或更多个合成服务器104)可以执行第二应用(诸如合成应用),并且渲染包括合成的内容的布局的用户界面,使得用户能够通过与用户界面交互来调整布局。例如,第二计算设备(例如,一个或更多个合成服务器106)可生成包括合成的内容(诸如游戏玩法、视频数据和音频数据)的数据流。在一些实施例中,第二远程计算设备可以渲染具有不同图形设计资产、用户交互数据(例如,视频数据和/或音频数据)和第一数据流(例如,游戏玩法)的用户界面,该用户界面可以作为第二数据流被流传输到客户端设备102。一个或更多个客户端设备102可以接收与由一个或更多个合成服务器104渲染的用户界面有关的输入数据。例如,用户可以经由一个或更多个客户端设备102与用户界面交互以调整如何在布局中合成数据,使得一个或更多个客户端设备102接收关于合成应用的输入数据。在一些实施例中,第二数据流作为第一应用的实况实例的广播被发送。在一些实施例中,第二数据流可被复制到被发送到其他计算设备的多个实例中。
在一些实施例中,基于关于渲染的用户界面的用户的输入数据,第二计算设备可相应地布置和合成内容。例如,第二数据流可以是由用户选择和布置的数据(例如,图形设计资产、用户交互数据、游戏玩法)的合成。在一些实施例中,合成的数据流可经由广播应用被发送到大量其他客户端设备。在一些实施例中,第二数据流可经由客户端设备102上的一个或更多个应用窗口115呈现给用户。
图5是示出根据本公开的一些实施例的用于在远离客户端设备的计算设备上执行游戏的实例并与其他内容合成游戏玩法的方法500的流程图。在框B502处,方法500包括:使用执行第一应用的第一计算设备接收包括用户交互数据的第一数据流,所述用户交互数据是使用对应于客户端设备的一个或更多个传感器设备生成的,所述客户端设备相对于第一计算设备远程定位。例如,第一计算设备可以是促进不同类型的数据的合成以用于流传输的合成服务器106。图2A-2B提供一个或更多个合成服务器(诸如一个或更多个合成服务器106A和一个或更多个合成服务器106B)的示例,它们都借助于在云中执行而远离一个或更多个客户端设备102A-102B。例如,一个或更多个合成服务器106可以从一个或更多个客户端设备102接收包括在与游戏应用交互期间由与一个或更多个客户端设备102相对应的传感器设备捕获的用户的音频数据和视频数据的用户交互数据。由一个或更多个合成服务器106接收的音频和视频数据可以被用来与其他数据(诸如从其他计算设备(例如,一个或更多个内容流媒体设备104)接收的游戏玩法)合成。合成服务器106还可接收关于用于合成内容(例如,重新布置要被合成的内容的鼠标点击和键盘敲击)的经渲染的用户界面的用户输入数据。例如,用户可调整布局中的各种数据的位置和覆盖,其将作为控制信号从客户端设备102发送到第一计算设备。第一计算设备还可渲染合成应用的用户界面(作为第二数据流),以使得用户能够修改示出内容将如何被合成的布局。在一些实施例中,用户界面可以提供接收广播内容的观众将查看什么的预览。第一计算设备可基于从客户端设备102接收的用户输入来布置或重新布置合成的内容。在一些实施例中,第一计算设备可以使用与一个或更多个客户端设备102的麦克风和相机相对应的所安装的虚拟驱动器,以便接收输入作为本地输入。
在框B504处,方法500包括:使用执行第二应用的第二计算设备渲染包括第二应用的输出的第二数据流,第二应用的输出至少部分地基于使用对应于客户端设备的一个或更多个用户输入设备生成的用户输入数据。例如,图2A-3提供了其中第二计算设备(诸如一个或更多个内容流媒体服务器104和/或一个或更多个合成服务器106)远离一个或更多个客户端设备的系统的示例。在一些实施例中,第二远程计算设备可以是在客户端设备102远程的一个或更多个虚拟机、GPU、虚拟桌面或其他计算设备。例如,第二计算设备可类似于图2A-2B中的一个或更多个内容流媒体服务器104A-104B,其在远离一个或更多个客户端设备102A-102B的云中执行。如本文所描述的,第二远程计算设备可以是一个或更多个内容流媒体服务器104,所述内容流媒体服务器执行第二应用(例如,游戏应用)、渲染来自游戏实例的游戏玩法、以及从一个或更多个客户端设备102接收用户输入数据。例如,一个或更多个内容流媒体服务器104可以从一个或更多个客户端设备102接收与正在执行的游戏应用中可用的控件相关联的用户输入数据(例如,操纵杆移动、键盘数据、鼠标数据)。在一些实施例中,经渲染的游戏玩法可以被生成为第二数据流并且被发送至其他计算设备(例如,一个或更多个合成服务器106)以与其他内容合成和/或被发送至一个或更多个客户端设备102。
在框B506处,方法500包括:使用第一计算设备生成包括第一数据流和第二数据流的经渲染的合成的一个或更多个第三数据流。例如,诸如合成服务器106之类的第一计算设备可以合成诸如游戏玩法、音频数据、视频数据和图形设计资产之类的数据并将其渲染成第三数据流,该第三数据流可以被广播给更大的观众。
在框B508,方法500包括:将一个或更多个第三数据流发送到相对于客户端设备、第一计算设备或第二计算设备中的至少一个远程定位的一个或更多个其他客户端设备。在一些实施例中,可将第三数据流发送到广播服务器108以将合成的内容广播到大量广大观众。所广播的内容可以包括游戏玩法、用户的音频数据、用户的视频数据和/或其他图形设计资产(例如,徽标、聊天消息)。类似地,第三数据流可被流传输到第一计算设备(例如,一个或更多个合成服务器106)和/或第二计算设备(例如,一个或更多个内容流媒体服务器104)。在一些实施例中,第三数据流可作为第一应用的实况实例被广播。
示例内容流媒体系统
现在参见图6,图6是根据本公开的一些实施例的内容流媒体系统600的示例系统图。图6包括一个或更多个应用服务器602(其可以包括与图7的示例计算设备700类似的组件、特征和/或功能),一个或更多个客户端设备604(其可以包括与图7的示例计算设备700类似的组件、特征和/或功能),以及一个或更多个网络606(其可以类似于本文描述的一个或更多个网络)。在本公开的一些实施例中,系统600可被实现。应用会话可以对应于游戏流媒体应用(例如,NVIDIA GeFORCE NOW)、合成应用、广播应用、远程桌面应用、模拟应用(例如,自主或半自主车辆模拟)、计算机辅助设计(CAD)应用、虚拟现实(VR)和/或增强现实(AR)流媒体应用、深度学习应用和/或其他应用类型。
在系统600中,对于应用会话,一个或更多个客户端设备604可以仅响应于对一个或更多个输入设备的输入而接收输入数据,将输入数据发送到一个或更多个应用服务器602,从一个或更多个应用服务器602接收经编码的显示数据,以及在显示器624上显示该显示数据。如此,将计算上更密集的计算和处理卸载到一个或更多个应用服务器602(例如,渲染——尤其是光线或路径跟踪——以供一个或更多个游戏服务器602的一个或更多个GPU执行应用会话的图形输出,由一个或更多个应用服务器602执行合成内容的渲染)。换言之,应用会话从一个或更多个应用服务器602被流传输至一个或更多个客户端设备604,由此降低一个或更多个客户端设备604对图形处理、合成和渲染的要求。
例如,关于应用会话的实例化,客户端设备604可以基于从一个或更多个应用服务器602接收显示数据在显示器624上显示应用会话的帧。客户端设备604可接收到一个或更多个输入设备之一的输入,并作为响应生成输入数据(例如,来自游戏控制器的关于游戏的数据、来自键盘和鼠标的关于合成应用的数据)。客户端设备604可经由通信接口620通过网络606(例如,互联网)将输入数据发送到应用服务器602,且应用服务器602可经由通信接口618接收输入数据。CPU可接收输入数据,处理该输入数据,且将数据发送到GPU,所述数据使得GPU生成应用会话的渲染。例如,输入数据可以表示在游戏应用的游戏会话中用户的角色的移动、击发武器、重新装弹、传球、使车辆转弯等。渲染组件612可以渲染应用会话(例如,表示输入数据的结果),并且渲染捕获组件614可以捕获应用会话的渲染作为显示数据(例如,作为捕获应用会话的所渲染的帧的图像数据)。应用会话的渲染可以包括使用一个或更多个应用服务器602的一个或更多个并行处理单元(例如GPU,它可以进一步采用一个或更多个专用硬件加速器或处理核用于执行光线或路径跟踪技术)计算的光线或路径跟踪的光照和/或阴影效果。在一些实施例中,一个或更多个应用服务器602可以使用一个或更多个虚拟机(VM)(例如,包括一个或更多个虚拟组件,诸如vGPU、vCPU等)来支持应用会话。如本文所描述的,游戏应用和合成应用的执行可发生在相同或不同的服务器上的单独的计算设备(例如,GPU、虚拟机、虚拟桌面、个人计算机)上。然后编码器616可编码显示数据以生成经编码的显示数据,且经编码的显示数据可经由通信接口618通过网络606发送到客户端设备604。客户端设备604可经由通信接口620接收经编码的显示数据,且解码器622可对经编码的显示数据进行解码以生成显示数据。然后客户端设备604可经由显示器624显示该显示数据。
示例计算设备
图7是适合用于实现本公开的一些实施例的示例计算设备700的框图。计算设备700可包括直接或间接耦合以下设备的互连系统702:存储器704、一个或更多个中央处理单元(CPU)706、一个或更多个图形处理单元(GPU)708、通信接口710、输入/输出(I/O)端口712、输入/输出组件714、电源716、一个或更多个渲染组件718(例如,一个或更多个显示器)和一个或更多个逻辑单元720。在至少一个实施例中,一个或更多个计算设备700可以包括一个或更多个虚拟机(VM),和/或其任何组件可以包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,GPU 708中的一个或更多个GPU可以包括一个或更多个vGPU,CPU 706中的一个或更多个CPU可以包括一个或更多个vCPU,和/或逻辑单元720中的一个或更多个逻辑单元可以包括一个或更多个虚拟逻辑单元。照此,一个或更多个计算设备700可以包括分立组件(例如,专用于计算设备700的全GPU)、虚拟组件(例如,专用于计算设备700的GPU的一部分)、或其组合。
尽管图7的各个框被示为经由具有线路的互连系统702连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的渲染组件718可以被认为是I/O组件714(例如如果显示器为触摸屏)。作为另一个示例,CPU 706和/或GPU708可以包括存储器(例如,存储器704可以表示除了GPU 708、CPU 706和/或其他组件的存储器以外的存储设备)。换言之,图7的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型之类的类别之间不进行区分,因为所有这些都被考虑在图7的计算设备的范围内。
互连系统702可以表示一条或更多条链路或总线,例如地址总线、数据总线、控制总线或者其组合。互连系统702可以包括一种或更多种总线或链路类型,例如行业标准架构(ISA)总线、扩展行业标准架构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、外围组件互连快速(PCIe)总线,和/或另一种类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU 706可直接连接到存储器704。进一步,CPU 706可直接连接到GPU 708。在组件之间存在直接或点对点连接的情况下,互连系统702可以包括PCIe链路以执行连接。在这些示例中,PCI总线不需要被包括在计算设备700中。
存储器704可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备700访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,存储器704可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作系统)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备700访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
计算机存储介质可以在诸如载波之类的调制数据信号或其他传输机制中包括计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,计算机存储介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包括在计算机可读介质的范围内。
CPU 706可以被配置为执行至少一些计算机可读指令以便控制计算设备700的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。CPU 706中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU 706可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备700的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备700的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机器(ARM)处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备700还可以包括一个或更多个CPU 706。
除了CPU 706之外或替代CPU 706,GPU 708可以被配置成用于执行至少一些计算机可读指令以控制计算设备700的一个或更多个组件执行在此描述的方法和/或过程中的一个或更多个。GPU 708中的一个或更多个可为集成GPU(例如,与CPU 706中的一个或更多个和/或GPU 708中的一个或更多个可为离散GPU)。在实施例中,GPU 708中的一个或更多个可以是CPU 706中的一个或更多个的协处理器。GPU 708可以由计算设备700用来渲染图形(例如3D图形)或者执行通用计算。例如,GPU 708可用于GPU上的通用计算(GPGPU)。GPU 708可以包括能够同时处理数百或数千个软件线程的数百或数千个核。GPU 708可以响应于渲染命令(例如经由主机接口接收的来自CPU 706的渲染命令)而生成用于输出图像的像素数据。GPU 708可以包括诸如显示存储器之类的用于存储像素数据或任何其他合适的数据(诸如GPGPU数据)的图形存储器。显示存储器可以作为存储器704的部分而被包括。GPU 708可以包括(例如经由链路)并行操作的两个或更多GPU。链路可以直接连接GPU(例如,使用NVLINK)或可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每个GPU 708可以生成用于输出的不同部分或者用于不同输出的像素数据或GPGPU数据(例如,第一GPU用于第一图像,第二GPU用于第二图像)。每个GPU可以包括它自己的存储器,或者可以与其他GPU共享存储器。在一些实施例中,一个或更多个GPU专用于执行特定任务,诸如渲染游戏或合成内容。GPU可驻留在云中的相同或不同的服务器上。
除了CPU 706和/或GPU 708之外或替代CPU 706和/或GPU 708,一个或更多个逻辑单元720可以被配置成用于执行计算机可读指令中的至少一些计算机可读指令以控制计算设备700的一个或更多个部件执行在此描述的方法和/或过程中的一个或更多个。在实施例中,一个或更多个CPU 706、一个或更多个GPU 708和/或一个或更多个逻辑单元720可以离散地或联合地执行方法、过程和/或其部分的任何组合。逻辑单元720中的一个或更多个可为CPU 706和/或GPU 708中的一个或更多个和/或集成在CPU 706和/或GPU 708中的一个或更多个,和/或逻辑单元720中的一个或更多个可为离散组件或以其他方式在CPU 706和/或GPU 708外部。在实施例中,逻辑单元720中的一个或更多个可以是CPU 706中的一个或更多个CPU和/或GPU 708中的一个或更多个GPU的协处理器。
逻辑单元720的示例包括一个或更多个处理核和/或其部件,诸如数据处理单元(DPU)、张量核(TC)、张量处理单元(TPU)、像素视觉核(PVC)、视觉处理单元(VPU),图形处理群集(GPC)、纹理处理群集(TPC)、流多处理器(SM)、树横向单元(TTU),人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC),浮点单元(FPU)、输入/输出(I/O)元件、外围组件互连(PCI)或快速外围组件互连(PCIe)元件,和/或类似物。
通信接口710可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备700能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口710可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等等)、有线网络(例如通过以太网或无限带宽通信)、低功率广域网(例如LoRaWAN、SigFox等等)和/或因特网。在一个或更多个实施例中,一个或更多个逻辑单元720和/或通信接口710可以包括一个或更多个数据处理单元(DPU),所述一个或更多个数据处理单元用于将通过网络和/或通过互连系统702接收的数据直接发送至一个或更多个GPU 708(例如,GPU 708的存储器)。
I/O端口712可以使得计算设备700能够逻辑地耦合到包括I/O组件714、渲染组件718和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备700中。说明性I/O组件714包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、扫描仪、打印机、无线设备等等。I/O组件714可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些示例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备700的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备700可以包括诸如立体相机系统之类的深度相机、红外相机系统、RGB相机系统、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备700可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备700用来渲染沉浸式增强现实或者虚拟现实。在一些实施例中,计算设备700可以安装并执行对应于I/O组件714的虚拟驱动器,用于在没有应用的附加配置的情况下接收和发送输入数据和输出数据。
电源716可以包括硬接线电源、电池电源或者其组合。电源716可以向计算设备700供电以使得计算设备700的组件能够操作。
渲染组件718可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或者其组合)、扬声器和/或其他渲染组件。渲染组件718可以接收来自其他组件(例如GPU 708、CPU 706、DPU等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
示例数据中心
图8示出了可以在本公开的至少一个实施例中使用的示例数据中心800。数据中心800可包括数据中心基础设施层810、框架层820、软件层830和/或应用层840。
在至少一个实施例中,如图8所示,数据中心基础设施层810可以包括资源协调器812、分组的计算资源814和节点计算资源(“节点C.R.”)816(1)-816(N),其中“N”代表任何完整的正整数。在至少一个实施例中,节点C.R.816(1)-816(N)可以包括但不限于任何数量的中央处理单元(CPU)或其他处理器(包括DPU、加速器、现场可编程门阵列(FPGA)、图形处理器或图形处理单元(GPU)等),内存设备(例如动态只读内存),存储设备(例如固态硬盘或磁盘驱动器),网络输入/输出(NW I/O)设备,网络交换机,虚拟机(VM),电源模块和/或冷却模块等。在一些实施例中,节点C.R.816(1)-816(N)中的一个或更多个节点C.R.可以对应于具有一个或更多个上述计算资源的服务器。此外,在一些实施例中,节点C.R.816(1)-8161(N)可包括一个或更多个虚拟组件,诸如vGPU、vCPU等,和/或节点C.R.816(1)-816(N)中的一个或更多个可对应于虚拟机(VM)。
在至少一个实施例中,分组的计算资源814可以包括容纳在一个或更多个机架内的节点C.R.的单独分组(未示出),或者容纳在各个地理位置的数据中心内的许多机架(也未示出)。分组的计算资源814内的节点C.R.的单独分组可以包括可以被配置或分配为支持一个或更多个工作负载的分组的计算、网络、内存或存储资源。在至少一个实施例中,可以将包括CPU、GPU、DPU和/或其他处理器的几个节点C.R.816分组在一个或更多个机架内,以提供计算资源来支持一个或更多个工作负载。一个或更多个机架还可以包括任何数量的电源模块、冷却模块和网络交换机,以任意组合。
资源协调器812可以配置或以其他方式控制一个或更多个节点C.R.816(1)-816(N)和/或分组的计算资源814。在至少一个实施例中,资源协调器812可以包括用于数据中心800的软件设计基础结构(“SDI”)管理实体。资源协调器812可以包括硬件、软件或其某种组合。
在至少一个实施例中,如图8所示,框架层820可以包括作业调度器832、配置管理器834、资源管理器836和分布式文件系统838。框架层820可以包括支持软件层830的软件832和/或应用层840的一个或更多个应用842的框架。软件832或应用842可以分别包括基于网络的服务软件或应用,例如由Amazon Web Services,Google Cloud和Microsoft Azure提供的服务或应用。框架层820可以是但不限于一种免费和开放源软件网络应用框架,例如可以利用分布式文件系统838来进行大范围数据处理(例如“大数据”)的Apache SparkTM(以下称为“Spark”)。在至少一个实施例中,作业调度器832可以包括Spark驱动器,以促进对数据中心800的各个层所支持的工作负载进行调度。配置管理器834可以能够配置不同的层,例如软件层830和包括Spark和用于支持大规模数据处理的分布式文件系统838的框架层820。资源管理器836能够管理映射到或分配用于支持分布式文件系统838和作业调度器832的集群或分组计算资源。在至少一个实施例中,集群或分组计算资源可以包括数据中心基础设施层810上的分组的计算资源814。资源管理器836可以与资源协调器812协调以管理这些映射的或分配的计算资源。例如,资源管理器836和资源协调器812可以将云中的计算资源(例如,服务器、GPU、虚拟机等)分配给诸如渲染游戏和执行合成应用之类的任务。
在至少一个实施例中,包括在软件层830中的软件832可以包括由节点C.R.816(1)-816(N)的至少一部分,分组计算资源814和/或框架层820的分布式文件系统838使用的软件。一种或更多种类型的软件可以包括但不限于Internet网页搜索软件、电子邮件病毒扫描软件、数据库软件和流视频内容软件。
在至少一个实施例中,应用层840中包括的一个或更多个应用842可以包括由节点C.R.816(1)-816(N)的至少一部分、分组的计算资源814和/或框架层820的分布式文件系统838使用的一种或更多种类型的应用。一种或更多种类型的应用可以包括但不限于任何数量的基因组学应用,认知计算和机器学习应用,包括训练或推理软件,机器学习框架软件(例如PyTorch、TensorFlow、Caffe等)和或其他与一个或更多个实施例结合使用的机器学习应用。
在至少一个实施例中,配置管理器834、资源管理器836和资源协调器812中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实现任何数量和类型的自我修改动作。自我修改动作可以减轻数据中心800的数据中心操作员做出可能不好的配置决定并且可以避免数据中心的未充分利用和/或执行差的部分。
数据中心800可以包括工具、服务、软件或其他资源,以根据本文所述的一个或更多个实施例来训练一个或更多个机器学习模型或者使用一个或更多个机器学习模型来预测或推理信息。例如,可以通过使用上文关于数据中心800描述的软件和计算资源,根据神经网络架构通过计算权重参数来训练机器学习模型。在至少一个实施例中,通过使用通过那些本文所述而非限制性的一种或更多种训练技术计算出的权重参数,可以使用上面与关于数据中心800所描述的资源,使用对应于一个或更多个神经网络的经训练或部署的机器学习模型来推理或预测信息。
在至少一个实施例中,数据中心可以使用CPU、专用集成电路(ASIC)、GPU、FPGA和或其他硬件(或与其对应的虚拟计算资源)来使用上述资源来执行训练和/或推理。此外,上述的一个或更多个软件和/或硬件资源可以配置成一种服务,以允许用户训练或执行信息推理,例如图像识别、语音识别或其他人工智能服务。
示例网络环境
适合于在实现本公开的实施例中使用的网络环境可以包括一个或更多个客户端设备、服务器、网络附接存储(NAS)、其他后端装置、和/或其他装置类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图7的一个或更多个计算设备700的一个或更多个实例上实现——例如,每个设备可以包括一个或更多个计算设备700的类似部件、特征和/或功能。此外,在实现后端设备(例如,服务器、NAS等)的情况下,后端设备可被包括作为数据中心800的一部分,其示例在本文中关于图8更详细地描述。
网络环境的组件可以经由一个或更多个网络彼此通信,所述网络可以是有线的、无线的或两者。网络可以包括多个网络或多个网络中的一个网络。例如,网络可包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络诸如互联网和/或公共交换电话网(PSTN)和/或一个或更多个私有网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或者甚至接入点(以及其他组件)的组件可以提供无线连接。
兼容的网络环境可以包括一个或更多个对等网络环境(在这种情况下,服务器可以不包括在网络环境中)和一个或更多个客户端-服务器网络环境(在这种情况下,一个或更多个服务器可以包括在网络环境中)。在对等网络环境中,本文相对于服务器所描述的功能可在任何数量的客户端设备上实现。
在至少一个实施例中,网络环境可以包括一个或更多个基于云的网络环境、分布式计算环境、其组合等。基于云的网络环境可包括框架层、工作调度器、资源管理器和在一个或更多个服务器上实现的分布式文件系统,所述服务器可包括一个或更多个核心网服务器和/或边缘服务器。框架层可包括支持软件层的软件和/或应用层的一个或更多个应用的框架。所述软件或应用可分别包括基于网络的服务软件或应用。在实施例中,一个或更多个客户端设备可以使用基于网络的服务软件或应用(例如,通过经由一个或更多个应用编程接口(API)访问服务软件和/或应用)。框架层可以是但不限于自由和开源软件网络应用框架的类型,诸如可以使用分布式文件系统进行大规模数据处理(例如,“大数据”)。
基于云的网络环境可以提供执行在此描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些不同功能中的任何功能可以分布在来自(例如,可以分布在州、地区、国家、地球等上的一个或更多个数据中心的)中央或核心服务器的多个位置上。如果与用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云环境)。
客户端设备可以包括在此关于图7描述的一个或更多个示例计算设备700的部件、特征和功能中的至少一些部件、特征和功能。作为示例而非限制,客户端设备可被实现为个人计算机(PC),膝上型计算机、移动设备、智能电话、平板计算机、智能手表、可穿戴计算机,个人数字助理(PDA)、MP3播放器、虚拟现实耳机、全球定位系统(GPS)或装置,视频播放器、相机、监视设备或系统、车辆、船,飞船、虚拟机、无人机、机器人、手持式通信设备、医院设备,游戏设备或系统、娱乐系统、车辆计算机系统、嵌入式系统控制器,遥控器、电器、消费电子设备、工作站、边缘设备、这些描绘的设备的任何组合,或任何其他合适的装置。
可以在计算机代码或机器可用指令的一般上下文中描述本公开,包括由计算机或其他机器(如个人数据助理或其他手持式装置)执行的计算机可执行指令(如程序模块)。通常,包括例程、程序、对象、组件、数据结构等的程序模块是指执行特定任务或实现特定抽象数据类型的代码。本公开可以在各种系统配置中实践,包括手持式设备、消费电子产品、通用计算机、更专用计算设备等。本公开还可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备来执行。
如在此使用的,关于两个或更多个元件的“和/或”的叙述应被解释为仅意指一个元件或元件的组合。例如,“元件A、元件B和/或元件C”可以包括仅元件A、仅元件B、仅元件C、元件A和元件B、元件A和元件C、元件B和元件C、或元件A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A中的至少一个、元素B中的至少一个、或者元素A和元素B中的至少一个中的至少一个。进一步地,“元件A和元件B中的至少一个”可以包括元件A中的至少一个、元件B中的至少一个、或者元件A和元件B中的至少一个中的至少一个。
在此具体描述本公开的主题以满足法定要求。然而,该描述本身并不旨在限制本公开的范围。而是,发明人已预期,结合其他当前或未来技术,所主张的标的物还可用其他方式来体现,以包括类似于本文档中所描述的步骤的不同步骤或步骤的组合。此外,尽管术语“步骤”和/或“框”在此可以用于暗示所采用的方法的不同元素,但是这些术语不应被解释为暗示在此公开的各个步骤之中或之间的任何特定顺序,除非并且除了当明确描述单独步骤的顺序时。

Claims (27)

1.一种包括处理电路的处理器,用于:
使用客户端设备生成对应于第一应用的用户输入数据,所述第一应用是使用相对于所述客户端设备远程定位的第一计算设备来执行的;
使用所述客户端设备发送所述用户输入数据,以使得渲染对应于所述第一应用并且响应于所述用户输入数据的第一数据流;
使用相对于所述客户端设备接近定位的一个或更多个传感器设备来生成用户交互数据;
使用所述客户端设备发送所述用户交互数据,以使得生成包括所述第一数据流与所述用户交互数据的渲染的合成的一个或更多个第二数据流,使用在相对于所述客户端设备或所述第一计算设备中的至少一个远程定位的第二计算设备上执行的第二应用来执行所述生成。
2.根据权利要求1所述的处理器,其中所述一个或更多个第二数据流由所述第一计算设备、所述第二计算设备或相对于所述客户端设备远程定位的第三计算设备中的至少一个流传输至一个或更多个其他客户端设备。
3.根据权利要求1所述的处理器,其中所述第一计算设备对应于第一虚拟机VM,所述第二计算设备对应于第二VM。
4.根据权利要求3所述的处理器,其中,
所述第一VM和所述第二VM使用同一服务器执行;或
所述第一VM和所述第二VM使用云计算环境的不同服务器来执行。
5.根据权利要求1所述的处理器,其中所述第一计算设备包括第一图形处理单元GPU,所述第二计算设备包括第二GPU。
6.根据权利要求1所述的处理器,其中使用虚拟麦克风驱动器或虚拟相机驱动器中的至少一个来渲染所述用户交互数据。
7.根据权利要求1所述的处理器,其中所述第一数据流对应于所述第一应用的实况实例,所述一个或更多个第二数据流作为所述第一应用的所述实况实例的广播而被发送。
8.根据权利要求1所述的处理器,其中所述一个或更多个传感器设备包括以下各项中的至少一项:
麦克风设备;或
相机设备。
9.根据权利要求8所述的处理器,其中所述用户交互数据包括使用所述麦克风设备生成的音频数据或使用所述相机设备生成的图像数据中的至少一个。
10.根据权利要求1所述的处理器,其中所述第一应用包括游戏应用,所述第二应用包括视频合成应用。
11.根据权利要求1所述的处理器,其中所述处理器进一步用于:
使用所述客户端设备接收对应于所述第一数据流或所述一个或更多个第二数据流中的用户交互数据中的至少一个的显示的配置的第二用户输入数据;
使用所述客户端设备发送所述第二用户输入数据,以使得所述第二应用重新配置所述第一数据流或所述一个或更多个第二数据流中的所述用户交互数据中的至少一个的渲染。
12.一种方法,包括:
使用执行第一应用的第一计算设备接收包括用户交互数据的第一数据流,所述用户交互数据是使用对应于相对于所述第一计算设备远程定位的客户端设备的一个或更多个传感器设备生成的;
使用执行第二应用的第二计算设备来渲染包括所述第二应用的输出的第二数据流,所述第二应用的所述输出至少部分地基于使用对应于所述客户端设备的一个或更多个用户输入设备所生成的用户输入数据;
使用所述第一计算设备生成一个或更多个第三数据流,所述一个或更多个第三数据流包括所述第一数据流和所述第二数据流的渲染的合成;以及
将所述一个或更多个第三数据流发送到相对于所述客户端设备、所述第一计算设备或所述第二计算设备中的至少一个远程定位的一个或更多个其他客户端设备。
13.根据权利要求12所述的方法,其中所述一个或更多个第三数据流由所述第一计算设备、所述第二计算设备或相对于所述客户端设备远程定位的第三计算设备中的至少一个发送至所述一个或更多个其他客户端设备。
14.根据权利要求12所述的方法,其中所述第一计算设备对应于第一虚拟机VM,所述第二计算设备对应于第二VM。
15.根据权利要求14所述的方法,其中,
所述第一VM和所述第二VM使用同一服务器执行;或
所述第一VM和所述第二VM使用云计算环境的不同服务器来执行。
16.根据权利要求12所述的方法,其中所述第一计算设备包括第一图形处理单元GPU,所述第二计算设备包括第二GPU。
17.根据权利要求12所述的方法,其中生成所述一个或更多个第三数据流包括:使用所述第一计算设备的虚拟麦克风驱动器或对应于所述第一计算设备的虚拟相机驱动器中的至少一个来渲染所述用户交互数据。
18.根据权利要求12所述的方法,其中发送所述一个或更多个第三数据流包括:将所述一个或更多个第三数据流作为所述第一应用的实况实例进行广播。
19.根据权利要求12所述的方法,其中所述一个或更多个传感器设备包括以下各项中的至少一项:
麦克风设备;或
相机设备。
20.根据权利要求19所述的方法,其中所述用户交互数据包括使用所述麦克风设备生成的音频数据或使用所述相机设备生成的图像数据中的至少一个。
21.根据权利要求12所述的方法,其中所述第一应用包括视频合成应用,所述第二应用包括游戏应用。
22.根据权利要求12所述的方法,其中所述方法还包括:
接收对应于所述合成中的第一数据流或第二数据流中的至少一个的显示的配置的第二用户输入数据;
使用所述第一计算设备生成包括所述第一数据流和所述第二数据流的重新渲染的合成的一个或更多个第四数据流,所述重新渲染的合成对应于所述第二用户输入数据;以及
将所述一个或更多个第四数据流而不是所述一个或更多个第三数据流发送到相对于所述客户端设备、所述第一计算设备或所述第二计算设备中的至少一个远程定位的所述一个或更多个其他客户端设备。
23.一种系统,包括:
一个或更多个处理单元;以及
一个或更多个存储器单元,其上存储有指令,所述指令在使用所述一个或更多个处理单元执行时,使所述一个或更多个处理单元执行以下操作,所述操作包括:
在客户端设备处接收对应于游戏应用的实例内的游戏实例的第一数据流的第一实例,所述第一数据流由相对于所述客户端设备远程定位的第一计算设备渲染;
在所述客户端设备处生成包括使用所述客户端设备的麦克风生成的音频数据或使用所述客户端设备的相机生成的图像数据中的至少一个的数据;
由所述客户端设备将所述数据发送到相对于所述客户端设备远程定位的第二计算设备;
在所述客户端设备处接收至少对应于合成应用的实例的用户界面的第二数据流,所述第二数据流由所述第二计算设备并且至少部分地基于所述数据进行渲染;
在所述客户端设备处接收表示到所述客户端设备的一个或更多个输入设备的一个或更多个输入的输入数据,所述一个或更多个输入对应于所述合成应用;以及
由所述客户端设备向所述第二计算设备发送所述输入数据,以至少部分地使得所述第二计算设备至少部分地基于所述数据、所述输入数据以及所述第一数据流的第二实例来生成一个或更多个第三数据流。
24.根据权利要求23所述的系统,其中所述一个或更多个第三数据流由所述第二计算设备或第三计算设备流传输至一个或更多个其他客户端设备,并且所述一个或更多个第三数据流至少部分地表示所述数据和所述第一数据流的第二实例的合成。
25.根据权利要求23所述的系统,其中所述第一计算设备对应于第一虚拟机VM,所述第二计算设备对应于第二VM。
26.根据权利要求25所述的系统,其中以下各项之一:
所述第一VM和所述第二VM使用同一服务器执行;或
所述第一VM和所述第二VM使用不同的服务器执行。
27.根据权利要求23所述的系统,其中所述系统被包括在以下各项中的至少一项中:
用于执行深度学习运算的系统;
使用边缘设备实现的系统;
包含一个或更多个虚拟机VM的系统;
至少部分地在数据中心中实现的系统;或
至少部分地使用云计算资源实现的系统。
CN202210261804.1A 2021-04-15 2022-03-16 音频/视频合成应用的云执行 Pending CN115220906A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/231,423 2021-04-15
US17/231,423 US20220331702A1 (en) 2021-04-15 2021-04-15 Cloud execution of audio/video compositing applications

Publications (1)

Publication Number Publication Date
CN115220906A true CN115220906A (zh) 2022-10-21

Family

ID=83447092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210261804.1A Pending CN115220906A (zh) 2021-04-15 2022-03-16 音频/视频合成应用的云执行

Country Status (3)

Country Link
US (1) US20220331702A1 (zh)
CN (1) CN115220906A (zh)
DE (1) DE102022107672A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115576516A (zh) * 2022-12-12 2023-01-06 深圳开鸿数字产业发展有限公司 图像合成方法、图像合成系统、电子设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016049235A1 (en) * 2014-09-23 2016-03-31 UV Networks, Inc. Application host with distributed remote input and output interfaces
US11071919B2 (en) * 2015-06-30 2021-07-27 Amazon Technologies, Inc. Joining games from a spectating system
CN114402622A (zh) * 2019-07-23 2022-04-26 拉扎尔娱乐公司 交互式直播媒体系统和方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115576516A (zh) * 2022-12-12 2023-01-06 深圳开鸿数字产业发展有限公司 图像合成方法、图像合成系统、电子设备及存储介质

Also Published As

Publication number Publication date
DE102022107672A1 (de) 2022-10-20
US20220331702A1 (en) 2022-10-20

Similar Documents

Publication Publication Date Title
US10016679B2 (en) Multiple frame distributed rendering of interactive content
US9455931B2 (en) Load balancing between processors
JP6310073B2 (ja) 描画システム、制御方法、及び記憶媒体
US20120127183A1 (en) Distribution Processing Pipeline and Distributed Layered Application Processing
JP7355841B2 (ja) 仮想キャラクタの現実間のクロスオーバを示すための方法及び非一時的なコンピュータ可読媒体
JP2017056193A (ja) ブロードキャスタを有するリモートレンダリングサーバ
ES2823034T3 (es) Transmisión de aplicación de baja latencia usando transformación de trama temporal
US20220274027A1 (en) Joining or replaying a game instance from a game broadcast
US11219831B2 (en) Live camera video character representations
US20240070800A1 (en) Accessing local memory of a gpu executing a first kernel when executing a second kernel of another gpu
US11900551B2 (en) Creating cloud-hosted, streamed augmented reality experiences with low perceived latency
US20230102054A1 (en) Method, an apparatus and a computer program product for video encoding and video decoding
KR20220125813A (ko) 하이브리드 스트리밍
US11331587B2 (en) Video game player, spectator and audience interaction
CN114570020A (zh) 数据处理方法以及系统
CN115220906A (zh) 音频/视频合成应用的云执行
US11344816B2 (en) Video game waiting queue and audience interaction
US11818192B2 (en) Encoding output for streaming applications based on client upscaling capabilities
US20240098303A1 (en) Encoding output for streaming applications based on client upscaling capabilities
US20230267063A1 (en) Real-time latency measurements in streaming systems and applications
US20230336799A1 (en) Video streaming scaling using virtual resolution adjustment
JP2009533893A (ja) ビデオ装置及びその映像処理方法

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