CN108525299B - 一种用于增强远程服务的计算机应用的系统和方法 - Google Patents
一种用于增强远程服务的计算机应用的系统和方法 Download PDFInfo
- Publication number
- CN108525299B CN108525299B CN201810311357.XA CN201810311357A CN108525299B CN 108525299 B CN108525299 B CN 108525299B CN 201810311357 A CN201810311357 A CN 201810311357A CN 108525299 B CN108525299 B CN 108525299B
- Authority
- CN
- China
- Prior art keywords
- pixel data
- frame image
- video
- display frame
- game
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
- A63F13/798—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for assessing skills or for ranking players, e.g. for generating a hall of fame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/6692—Methods for processing data by generating or executing the game program for rendering three dimensional images using special effects, generally involving post-processing, e.g. blooming
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Image Generation (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
- Pinball Game Machines (AREA)
Abstract
第一应用在一个或多个计算系统上执行以便生成用于渲染与所述第一应用执行相关联的图形图像的一系列原始帧像素数据集。第二应用在一个或多个计算系统上执行以检测存在于所述系列原始帧像素数据集中的一个或多个关键图形图像。在检测到一个或多个关键图形图像时,所述第二应用引导替代像素数据对所述系列原始帧像素数据集中的像素数据的一部分的替换,从而生成用于代替所述系列原始帧像素数据集进行编码的一系列修改的帧像素数据集。
Description
本申请是申请日为2013年11月13日、申请号为201380064775.9、发明名称为“用于云处理和叠加远程处理应用的流式视频帧上的内容的系统和方法”的发明专利申请的分案申请。
技术领域
本发明涉及一种用于增强远程服务的计算机应用的系统和方法。
背景技术
存在用于执行和渲染视频游戏的若干模型。在最简单的模型中,在游戏玩家的本地计算设备上执行和渲染游戏。在另一种模型中,在中央服务器处维持游戏状态,并且通过计算网络将游戏状态传达至发生视频渲染的客户端。这种模型通常由多玩家游戏使用,在多玩家游戏中,游戏状态取决于通过计算网络接收的来自多个游戏玩家的输入。在第三模型中,在中央服务器处维持游戏状态,所述中央服务器还对视频进行渲染以便作为视频流通过计算网络递送至客户端。
发明内容
本文所公开的实施方案涉及用于应用的云处理以及云处理的视频帧到远程客户端的流式传输的系统和方法。云处理可以包括应用,所述应用处理并且输出第一应用(例如,视频游戏)的视频帧以便检查图像内容,并且基于所述检查,可以将叠加内容整合到正被转移至远程客户端的视频帧中。在一个实施方案中,叠加内容可以与由第一应用输出的现有图像内容合并。所述合并可以以各种方式进行处理,并且非限制性地,合并可以包括替换特定帧或帧集中的像素、追踪所检测的图像对象以及针对所检测的图像对象在它们从一个帧移动到另一个帧或随时间推移移动时替换像素。
在一些实例中,优化叠加过程以使得由客户端设备的用户接收到的视频帧将不会检测到正在执行叠加处理(例如,在客户端的显示器上),并且输出看起来像是原始应用(例如,第一应用)产生的帧。在各种实施方案中,第一应用可以是视频游戏应用。在允许在线网络游戏的系统中,可以为具有账户的用户提供用于选择的大型视频游戏库,所述视频游戏可以被认为是第一应用。在这种上下文中,可以为许多用户提供账户并且许多用户可以同时选择游戏并且进行游戏、单独地或在多玩家模式中与社交网络的朋友进行游戏。在第一应用的远程执行过程中,一个或多个远程执行应用检查并且处理作为第一应用的输出的视频帧。这些远程执行应用执行叠加过程并且可以与游戏进行同步以便提供最初不是原始应用的一部分的新体检。
如以下将讨论的,远程地处理应用的服务器可以被称为云处理系统。云处理系统可以利用许多服务器,这些服务器可以使用虚拟化硬件和软件,并且云处理系统可以分布在多于一个数据中心中。适当放置的数据中心允许通过它们的地理分布来减少流式传输的延迟。在一些实施方案中,可以使用负载均衡来减少延迟并且改进远程游戏进行的性能。
在一个实施方案中,公开了一种用于增强远程服务应用的系统。所述系统包括第一应用,所述第一应用在一个或多个计算系统上执行以便生成用于渲染与第一应用执行相关联的图形图像的一系列原始帧像素数据集。所述系统还包括第二应用,所述第二应用在一个或多个计算系统上执行以便检测存在于所述系列原始帧像素数据集中的一个或多个关键图形图像。在检测到一个或多个关键图形图像时,第二应用引导替代像素数据对所述系列原始帧像素数据集中的像素数据的一部分的替换,从而生成用于代替所述系列原始帧像素数据集进行编码的一系列修改的帧像素数据集。
在一个实施方案中,公开了一种用于增强远程服务应用的方法。所述方法包括搜索由应用生成的视频帧以检测关键图形图像。所述方法包括检测视频帧中的关键图形图像。所述方法包括获得表示用户的通用成就状态的叠加图像。所述方法包括使用户的所确定通用成就状态与存储在数据存储设备上的许多预定义叠加图像中的一个或多个相关联。所述方法包括从数据存储设备捕获针对与用户的所确定通用成就状态相关联的许多预定义叠加图像中的至少一个的叠加物(overlay)构造数据。所述方法还包括将所捕获的叠加物构造数据供应至叠加逻辑以便将预定义叠加图像中的至少一个插入视频帧中。
在一个实施方案中,公开了一种存储有用于增强远程服务应用的程序指令的数据存储设备。所述数据存储设备包括用于搜索由应用生成的视频帧以检测关键图形图像的程序指令。所述数据存储设备包括用于检测视频帧中的关键图形图像的程序指令。所述数据存储设备包括用于获得表示用户的通用成就状态的叠加图像的程序指令。所述数据存储设备包括用于使用户的所确定通用成就状态与存储在数据存储设备上的许多预定义叠加图像中的一个或多个相关联的程序指令。所述数据存储设备包括用于从所述数据存储设备捕获针对与用户的所确定通用成就状态相关联的许多预定义叠加图像中的至少一个的叠加物构造数据的程序指令。所述数据存储设备还包括用于将所捕获的叠加物构造数据供应至叠加逻辑以便将预定义叠加图像中的至少一个插入视频帧中的程序指令。
在一个实施方案中,公开了一种用于增强远程服务的计算机应用的系统,包括:帧增强模块,被配置为拦截由在第一计算系统上执行的远程服务的计算机应用生成的显示帧图像的像素数据集,以通过网络传输来由第二计算系统显示;所述帧增强模块被配置为识别由所述帧增强模块拦截的所述显示帧图像的所述像素数据集的目标部分,所述像素数据集的所述目标部分对应于所述显示帧图像中待修改的视觉内容;所述帧增强模块被配置为生成针对所述显示帧图像的已修正像素数据集,其中所述像素数据集的所述目标部分被修改;所述帧增强模块被配置为提供代替由所述帧增强模块拦截的所述显示帧图像的像素数据集的针对所述显示帧图像的所述已修正像素数据集,以通过所述网络传输来由所述第二计算系统显示;其中所述帧增强模块被配置为与在所述第一计算系统上执行的所述远程服务的计算机应用是分开的,使得在所述第一计算系统上执行的所述远程服务的计算机应用不涉及所述帧增强模块的操作,所述操作包括拦截所述显示帧图像的像素数据集、识别所述像素数据集的所述目标部分、生成已修正像素数据集,以及提供代替拦截的像素数据的针对所述显示帧图像的已修正像素数据集,以通过所述网络传输。
在一个实施方案中,公开了一种用于增强远程服务的计算机应用的方法,包括:操作处理器以拦截由在第一计算系统上执行的远程服务的计算机应用生成的显示帧图像的像素数据集,以通过网络传输来由第二计算系统显示;操作所述处理器以识别由所述处理器拦截的所述显示帧图像的所述像素数据集的目标部分,所述像素数据集的所述目标部分对应于所述显示帧图像中待修改的视觉内容;操作所述处理器以生成针对所述显示帧图像的已修正像素数据集,其中所述像素数据集的所述目标部分被修改;操作所述处理器以提供代替由所述处理器拦截的所述显示帧图像的像素数据集的针对所述显示帧图像的所述已修正像素数据集,以通过所述网络传输来由所述第二计算系统显示;其中在所述第一计算系统上执行的所述远程服务的计算机应用不涉及拦截所述显示帧图像的像素数据集、识别所述像素数据集的所述目标部分、生成已修正像素数据集,以及提供代替拦截的像素数据的针对所述显示帧图像的已修正像素数据集,以通过所述网络传输。
根据以示例方式示出本发明的结合附图进行的以下详细描述,本发明的其它方面将变得更加明白。
附图说明
图1是根据本发明的各种实施方案的游戏系统的框图。
图2是被配置成服务于多个视频游戏的视频源的实施方案的框图。
图3示出根据本发明的各种实施方案的游戏视频(视频帧)上的叠加物。
图4示出根据本发明的各种实施方案的被配置用于将用户输入映射到游戏命令的输入映射表的一部分。
图5示出根据本发明的各种实施方案的使用叠加物的方法。
图6示出根据本发明的示例性实施方案的视频源的用于包括视频增强逻辑的扩展。
图7示出对应于将要由增强逻辑进行处理的视频帧数据的视频帧图像的实例。
图8示出与图7的示例性视频帧图像相关联的示例性目标像素模式。
图9示出将要以叠加物构造数据的形式从叠加物生成逻辑传达至叠加逻辑的叠加图像。
图10示出在响应于关键检测逻辑检测到对应于如图8中所示的关键图形图像的目标像素模式的存在而插入叠加图像之后的图7的视频帧。
图11示出根据本发明的一个实施方案的用于增强远程服务应用的系统。
图12示出根据本发明的一个实施方案的用于增强远程服务应用的方法。
图13示出根据本发明的一个实施方案的用于生成和执行远程服务计算机应用的云计算系统的图解。
具体实施方式
在以下描述中,阐明了众多具体细节以便提供对本发明的彻底理解。然而,对于本领域的技术人员而言将明显的是,可以在不具有这些具体细节中的一些或全部的情况下实践本发明。在其它情况下,未详细描述众所周知的过程操作以免不必要地模糊本发明。
由在第一计算系统(即,服务器系统/云系统)上执行的计算机应用生成的、用于通过网络传输的、将由第二计算系统显示的显示帧图像的像素数据集在从计算机应用到网络的路由中被拦截。识别是由所拦截的像素数据集的目标部分组成的,所述目标部分对应于显示帧图像中待修改的视觉内容。生成针对显示帧图像的已修正像素数据集,其中所拦截像素数据的目标部分被修改以改变显示帧图像中的对应视觉内容。提供代替所拦截像素数据集的已修正像素数据集,用于通过网络传输来由第二计算系统进行显示。计算机应用未察觉到像素数据集的拦截和修正。
根据本发明的一个实施方案,本文公开了一种用于增强远程服务应用的系统。所述系统包括帧增强模块,所述帧增强模块被定义成拦截由在第一计算系统上执行的计算机应用生成的显示帧图像的像素数据集,用于通过网络传输来由第二计算系统(即,由用户的计算系统)进行显示。帧增强模块被定义成识别所拦截像素数据集的对应于显示帧图像中待修改的视觉内容(即,对应于关键图形图像)的目标部分。帧增强模块被定义成生成针对显示帧图像的已修正像素数据集,其中所拦截像素数据的目标部分被修改以改变显示帧图像中的对应视觉内容。帧增强模块被定义成提供代替所拦截像素数据集的已修正像素数据集,用于通过网络传输来由第二计算系统进行显示。帧增强模块被定义成与计算机应用是分开的并且独立于计算机应用进行操作。
在各种实施方案中,以上提及的第一计算系统(计算机应用在其上执行)是提供计算机应用在其上执行的虚拟机的云计算平台,并且网络是互联网。此外,在各种实施方案中,计算机应用是计算机游戏应用。
在一个示例性实施方案中,所拦截像素数据集的目标部分对应于显示帧图像内的表示计算机应用的用户的视觉内容。可以生成已修正像素数据集,以便修改将通过渲染所拦截像素数据集的目标部分进行描绘的对象的外观。此外,可以生成已修正像素数据集,以便利用对不同对象的描绘来代替将通过渲染所拦截像素数据集的目标部分进行描绘的对象。此外,可以生成已修正像素数据集,以便描绘叠加在图像上的对象,所述对象将通过渲染所拦截像素数据集的目标部分进行描绘。
在各种实施方案中,根据第一帧速率通过网络来传输显示帧图像的像素数据集,并且将帧增强模块定义成根据大于第一帧速率的第二帧速率来生成针对显示帧图像的已修正像素数据集。例如,在一个实施方案中,第二帧速率是第一帧速率的两倍。
用于增强远程服务应用的系统还可以包括应用扩展模块,所述应用扩展模块被定义成提供用于处理与如由第二计算系统显示的所拦截像素数据的已修改目标部分相关的用户输入信号的计算机可执行指令。计算机应用在未察觉到由应用扩展模块提供的计算机可执行指令的情况下执行。在一些情况下,帧增强模块可以被定义成基于从应用扩展模块接收到的指示而生成已修正像素数据集,所述已修正像素数据集是处理与已由第二计算系统显示的所拦截像素数据的先前已修改目标部分相关的用户输入信号的结果。
一种用于增强远程服务应用的方法包括:在第一计算系统(即,服务器系统/云系统)上执行计算机应用以生成显示帧图像的像素数据集,用于通过网络传输来由第二计算系统(即,用户的计算系统)进行显示。所述方法包括用于拦截由计算机应用生成的显示帧图像的像素数据集的操作。应当理解,计算机应用在未察觉到像素数据集拦截的情况下执行。所述方法还包括用于识别所拦截像素数据集的对应于显示帧图像中待修改的视觉内容的目标部分的操作。所述方法还包括用于生成针对显示帧图像的已修正像素数据集的操作,其中所拦截像素数据的目标部分被修改以改变显示帧图像中的对应视觉内容。所述方法还包括用于代替所拦截像素数据集、通过网络传输已修正像素数据集以便由第二计算系统显示的操作。
在上述方法的各种实施方案中,第一计算系统是提供计算机应用在其上执行的虚拟机的云计算平台,并且网络是互联网。此外,计算机应用可以是计算机游戏应用。在一些情况下,所拦截像素数据集的目标部分对应于显示帧图像内的表示计算机应用的用户的视觉内容。
在一些实施方案中,计算机应用根据第一帧速率生成显示帧图像的像素数据集,并且根据大于第一帧速率的第二帧速率来生成针对显示帧图像的已修正像素数据集。随后,代替所拦截像素数据集,根据第一帧速率通过网络来传输已修正像素数据集。在一些实施方案中,第二帧速率是第一帧速率的两倍。
所述方法还可以包括:处理与如由第二计算系统显示的所拦截像素数据的已修改目标部分相关的用户输入信号。应当理解,计算机应用在未察觉到对与所拦截像素数据的已修改目标部分相关的用户输入信号的处理的情况下执行。在一些实施方案中,已修正像素数据集是基于处理与已由第二计算系统显示的所拦截像素数据的先前已修改目标部分相关的用户输入信号的结果生成的。
图1是根据本发明的各种实施方案的游戏系统100的框图。游戏系统100被配置成例如通过网络115来向一个或多个客户端110(分别编号为110A、110B等)提供视频流。游戏系统100通常包括视频服务器系统120和任选的游戏服务器125。视频服务器系统120可以被配置成以广泛多种替代的视频格式、包括有待定义的格式来提供视频流。此外,视频流可以包括被配置用于以广泛多种帧速率呈现给用户的视频帧。典型的帧速率是30帧/秒、60帧/秒和120帧/秒,但本发明的替代实施方案中包括更高或更低的帧速率。
客户端110(即,110A、110B等)可以包括终端、个人计算机、游戏控制台、平板计算机、电话、机顶盒、自助服务机、无线设备、数字板、独立设备、手持游戏设备等。通常,客户端110被配置成接收编码的视频流、将所述视频流解码并且将所得的视频呈现给用户,例如游戏玩家。接收编码的视频流和/或将所述视频流解码的过程通常包括将单独的视频帧存储在客户端110的接收缓冲器中。可以在与客户端110一体的显示器上或在单独设备诸如监视器或电视机上将视频流呈现给用户。
客户端110被配置成通过网络115接收视频流。网络115可以是任何类型的通信网络,包括电话网络、互联网、无线网络、电力线网络、局域网、广域网、私人网络等。在一些实施方案中,通过标准协议诸如TCP/IP或UDP/IP来传达视频流。作为替代方案,可以通过专有标准来传达视频流。
客户端110的典型实例是包括处理器、非易失性存储器、显示器、解码逻辑、网络通信能力和输入设备的个人计算机。解码逻辑可以包括硬件、固件和/或存储在计算机可读介质(即,非临时数据存储设备)上的软件。用于解码(和编码)视频流的系统在本领域中是众所周知的并且根据所使用的特定编码方案而变化。
由客户端110所接收的视频流(和任选地音频流)通过视频服务器系统120生成和提供。视频流包括视频帧(并且音频流包括音频帧)。视频帧被配置(例如,它们包括在适当数据结构中的像素信息)成对显示给用户的图像做出有意义的贡献。如本文所使用,术语“视频帧”用于指代:主要包括被配置成有助于(例如实现)通过渲染帧信息在视觉显示器中展示给用户的图像的信息的帧。本文提供的关于“视频帧”的大部分公开内容也可以应用于“音频帧”。
客户端110通常被配置成接收来自用户的输入。这些输入可以包括被配置成改变视频游戏的状态或以其它方式影响游戏进行的游戏命令。可以使用输入设备来接收游戏命令和/或可以通过在客户端110上执行的计算指令自动生成游戏命令。客户端110的输入设备可以包括:例如,键盘、操纵杆、指向设备、力反馈设备、运动和/或位置感测设备、鼠标、触摸屏、神经接口、照相机、有待开发的输入设备等。通过网络115将所接收的游戏命令从客户端110传达至视频服务器系统120和/或游戏服务器125。
游戏服务器125任选地可以由不同于视频服务器系统120的实体来操作。例如,游戏服务器125可以由多玩家游戏的发行商来操作。在这个实例中,视频服务器系统120任选地被游戏服务器125视作客户端,并且任选地被配置成从游戏服务器125的视角来看似乎是执行游戏引擎的客户端。视频服务器系统120与游戏服务器125之间的通信任选地通过网络115发生。因此,游戏服务器125可以是将游戏状态信息发送至多个客户端的多玩家游戏服务器,所述客户端中的一个是视频服务器系统120。
视频服务器系统120包括视频源130、I/O(输入/输出)设备145、处理器150和非临时数据存储装置155。视频服务器系统120可以包括一个计算设备或可以分布在多个计算设备之中。这些计算设备任选地通过通信系统诸如局域网连接。
视频源130被配置成提供视频流,例如流式视频或形成移动画面的一系列视频帧。在一些实施方案中,视频源130包括视频游戏引擎和渲染逻辑。视频游戏引擎被配置成接收来自玩家的游戏命令并且基于所接收的命令维持视频游戏状态的副本。这种游戏状态包括游戏环境中的对象的位置,并且还可以包括用户的视角。游戏状态还可以包括对象的特性、图像、颜色和/或纹理。通常基于游戏规则以及游戏命令诸如移动、转向、攻击、聚焦、交互、使用等来维持游戏状态。游戏引擎的一部分任选地被设置在游戏服务器125内。游戏服务器125可以基于接收自使用地理上分散的客户端的多个玩家的游戏命令来维持游戏状态的副本。在这些情况下,游戏服务器125将游戏状态提供至视频源130,在所述视频源130处存储游戏状态的副本并且执行渲染。游戏服务器125可以通过网络115直接接收来自客户端110的游戏命令,和/或可以通过视频服务器系统120接收游戏命令。
视频源130可以包括渲染逻辑,例如硬件、固件和/或存储在计算机可读介质诸如非临时数据存储装置155上的软件。这种渲染逻辑被配置成基于游戏状态创建视频流的视频帧。渲染逻辑的全部或一部分任选地被设置在图形处理单元(GPU)内。渲染逻辑通常包括被配置用于基于游戏状态和视角来确定对象之间的三维空间关系和/或应用适当纹理等的处理阶段。渲染逻辑产生原始视频,所述原始视频随后在传达至客户端110之前通常被编码。可以使用远程设备对其具有兼容的解码能力的任何可用编码方法来对原始视频进行编码。编码过程产生视频流,所述视频流任选地被封装用于递送至远程设备上的解码器。
视频流的特征在于帧大小和帧速率。典型的帧大小包括800x 600、1280x 720(例如,720p)、1024x 768,但可以使用任何其它帧大小。帧速率是每秒的视频帧的数量。视频流可以包括不同类型的视频帧。例如但不限于,H.264标准包括“P”帧和“I”帧。I帧包括用于刷新显示设备上的所有宏块/像素的信息,而P帧包括用于刷新其子集的信息。P帧在数据大小上通常小于I帧。如本文所使用,术语“帧大小”意指帧内的像素数量。术语“帧数据大小”用于指代存储帧所需的字节数。
视频源130任选地被配置成提供被配置成放置在其它视频上的叠加物。例如,这些叠加物可以包括命令界面、登录指令、给游戏玩家的消息、其他游戏玩家的图像、其他游戏玩家的视频馈送(例如,网络摄像头视频)。在客户端110中的至少一个包括触摸屏界面的示例性实施方案中,叠加物可以包括虚拟键盘、操作杆、触控板等。此外,在一个示例性实施方案中,玩家语音的叠加物叠加在音频流上。视频源130还可以包括一个或多个音频源。
在各种实施方案中,I/O设备145可以被配置成使视频服务器系统120发送和/或接收信息,诸如视频、命令、对信息的请求、游戏状态、客户端身份、玩家身份、游戏命令、安全信息、音频等。I/O设备145可以包括通信硬件,诸如网卡或调制解调器。I/O设备145被配置成与游戏服务器125、网络115和/或客户端110进行通信。
处理器150被配置成执行包括在本文所讨论的视频服务器系统120的各种组件内的逻辑,例如软件。例如,可以用软件指令对处理器150进行编程,以便执行视频源130、游戏服务器125和/或客户端限定器(qualifier)160的功能。视频服务器系统120任选地包括处理器150的多于一个实例。还可以用软件指令对处理器150进行编程,以便执行由视频服务器系统120接收的命令、或协调本文所讨论的游戏系统100的各种元件的操作。处理器150可以包括一个或多个硬件设备。应当理解,处理器150是电子处理器,即,计算机处理器。
视频服务器系统120任选地包括被配置成远程地确定客户端110的能力的客户端限定器160。这些能力可以包括给定客户端110本身的能力以及给定客户端110与视频服务器系统120之间一个或多个通信信道的能力。例如,客户端限定器160可以被配置成测试通过网络115的通信信道。
图2是被配置成服务于多个视频游戏的视频源130的实施方案的框图。多个视频游戏可以包括相同视频游戏的多个实例和/或不同视频游戏的实例。视频游戏任选地是多玩家游戏。例如,可以由游戏服务器125的一个或多个实例来维持一个或多个视频游戏的游戏状态,每一个游戏状态是基于从多个客户端110接收的输入。
使用游戏逻辑210的不同实例(分别标记为210A、210B、210C等)来执行视频游戏。游戏逻辑210被配置成使用游戏状态来确定可以被渲染成配置用于呈现给游戏玩家的视频流的游戏环境。在一些实施方案中,游戏环境是三维虚拟环境,包括游戏对象、化身、对象的位置、它们的形状、纹理以及它们之间的空间关系等。游戏环境可以包括顶点数据、变换数据和纹理数据等。
渲染通常是基于与特定游戏玩家相关联的一个或多个视角。视频源130可以包括游戏逻辑210的多个实例。游戏逻辑210任选地可以是游戏服务器125的客户端并且可以被配置成通过网络115与游戏服务器125进行通信。
游戏逻辑210被配置成从一个或多个客户端110接收游戏命令并且根据一组游戏规则来处理所接收的命令。这些规则涵盖:例如,化身如何与其它化身或游戏对象进行交互、化身移动、游戏实例管理等。游戏逻辑210包括硬件、固件和/或存储在计算机可读介质上的软件。
游戏逻辑210的每个实例可以设置在单独的计算设备上,或者游戏逻辑210的几个实例可以设置在同一个计算设备上,或者游戏逻辑210的单个实例可以设置在多个计算设备上。游戏实例可以根据用户当前正在经历的游戏环境的要求而动态地改变所使用的计算设备的数量和/或身份。设置在同一个计算设备上的游戏逻辑210的实例任选地在单独的虚拟机或虚拟I/O壳内执行。在一些实施方案中,游戏逻辑210的不同实例被配置成例如在不必通过游戏服务器125进行通信的情况下将游戏命令和/或游戏状态信息直接传达给彼此。
游戏逻辑210可以在操作系统(OS)215之上执行。操作系统215可以包括WindowsTM、Linux、Unix、Mac OSTM、SolarisTM等。在一些实施方案中,操作系统215和游戏逻辑210可以在一个或多个虚拟机平台诸如ESX、Hyper-V等上操作。在这些实施方案中,游戏逻辑210的一个或多个实例可以在虚拟机内执行。此外,游戏逻辑210的多个实例可以在操作系统210的同一个实例上执行。例如,图2示出在同一个操作系统215上执行的游戏逻辑210A和游戏逻辑210B两者。在同一个操作系统215上执行的游戏逻辑210的多个实例可以或可以不被配置用于进行同一个视频游戏。
在一些实施方案中,由游戏逻辑210确定的游戏环境被传递至任选的虚拟3D视频驱动器220。虚拟3D视频驱动器220被配置成从游戏逻辑210的视角来看似乎是控制图形处理单元的非虚拟3D视频驱动器。游戏逻辑210的每个实例可以与它自己的虚拟3D视频驱动器220的实例相关联,或者虚拟3D视频驱动器220可以由游戏逻辑210的两个或更多个实例共享。
虚拟3D视频驱动器220进一步被配置成将所接收的游戏环境传递至(非虚拟)3D驱动器230。任选地,游戏环境至3D驱动器230的递送由虚拟3D视频驱动器220的各种实例进行协调。例如,递送可以被协调成使得3D驱动器230一次从一个(或最小数量的)虚拟3D视频驱动器220接收游戏环境。在一些实施方案中,虚拟3D视频驱动器220中的每一个被配置成使得它们似乎是到3D驱动器230的单独过程和单独视频数据源。因此,3D驱动器230被配置成记录在渲染之后哪个视频数据导致哪个视频帧。
3D驱动器230所接收的视频数据被传递至图形处理单元(GPU)235,以便渲染成原始视频帧。图形处理单元235任选地用于并行地渲染多于一个视频流。视频流的并行产生包括这些流的同时生成。然而,视频流的并行产生可以(但不必须)包括单独帧在图形处理单元235内的同时处理。例如,在一些实施方案中,作为替代方案,3D驱动器230将由各种成员游戏逻辑210生成的视频数据传递至图形处理单元235。由游戏逻辑210A生成的数据用于制作视频帧,并且随后由游戏逻辑210B生成的数据用于制作视频帧等。在这种情况下,视频流并行产生而单独的帧串行产生。
虚拟3D视频驱动器220可以被配置成管理原始渲染的视频帧从3D驱动器230的转移。例如,虚拟3D驱动器220可以用于协调视频帧从3D驱动器230的控件到共享存储器240的转移。在渲染之后,视频帧是在图形处理单元235的存储器中或是在由3D驱动器230管理的存储器中。在任何一种情况下,它们都是在3D驱动器230的控制下。在一些实施方案中,在虚拟3D视频驱动器220管理视频数据和帧往返3D驱动器230的传达时,它们能够将视频帧放置在共享存储器240的与特定视频动态编码流水线(DEP)245相关联的部分内。视频DEP 245单独地被标识为视频DEP 245A、DEP 245B、DEP 245C等。在一些实施方案中,为每个视频DEP245指定共享存储器240内的特定存储位置并且将其配置成从这些存储器位置检索视频数据。
共享存储器240包括随机存取存储器(RAM)或被配置用于有效读取和写入视频数据的类似存储器。共享存储器240被配置成存储用于多个不同视频DEP 245的视频数据。用于不同视频DEP 245的视频数据任选地同时存储在共享存储器240中。共享存储器240可以由单个硬件设备组成或可以包括多个设备。
为视频DEP 245动态地分配编码流水线,所述编码流水线各自被配置成对使用图形处理单元235渲染的视频数据进行编码。视频DEP 245的每个成员被配置成编码为在供应视频DEP 245时规定的视频格式。这种格式规范通常是基于客户端110和/或视频服务器120与客户端110之间的通信路径的能力中的一个的需要。视频DEP 245任选地响应于来自客户端110中的一个的请求而动态地供应。视频DEP 245的成员可以任选地被配置成使用多于一个编码方案。
每个视频DEP 245包括抓取器(grabber)247,所述抓取器247被配置成从共享存储器240抓取视频数据并且将这种视频数据转移至视频DEP 245的存储器。每个视频DEP 245任选地包括预处理器(PRE)250,所述预处理器250被配置成执行颜色空间转换诸如RGB至YUV和/或缩放操作以增加或减少视频帧的分辨率。在图形处理单元235的输出是在YUV颜色空间或某个其它所期望颜色空间中的实施方案中,预处理器250是任选的。多个预处理器250可以包括在被配置成产生具有不同大小的视频帧的多个视频流的视频DEP 245中。
每个视频DEP 245包括至少一个编码器(ENC)255。例如在图2中,编码器255单独地被标识为编码器255A、编码器255B等。每个编码器255被配置成根据特定编解码器、以及任选地特定颜色深度和/或帧大小来对视频数据进行编码。
在一些实施方案中,视频DEP 245被配置成使用两个或更多个不同的编码器来同时生成两个或更多个不同的视频流。这些视频流是基于由图形处理单元255渲染的同一个游戏环境,且因此包括基本上相同的材料(除了叠加物可能例外)并且可以被发送至不同地方。例如,视频流中的一个可以被发送至客户端110A而另一个被发送至客户端110B。作为替代方案,视频流中的一个可以被发送至客户端110A并且另一个被发送至第三方可以观看视频的网站。这种网站任选地是社交联网站点或游戏玩家的站点的部分。两个不同的视频流在帧速率、编码类型、帧大小、颜色深度等方面可以是不同的。例如,与被递送至正在使用客户端110A进行游戏的游戏玩家的视频流相比,被递送至社交联网网站的视频流可以具有低得多的质量。第二视频流可以被引导至正在进行游戏的游戏玩家或仅仅在观察游戏进行的人。视频流任选地被引导至多于一个地方。
视频DEP 245A任选地可以包括一个或多个后处理器(Post)260。后处理器260的单独实例被标记为260A和260B。后处理器260被配置成将编码的视频帧以根据公共或专有网路协议适合于通过网络通信的格式封装在容器中。例如,一些协议诸如Adobe RTMP需要后处理,而其它视频标准诸如H.264Annex B不需要后处理。后处理器260中的每一个均可以与编码器255中的特定成员相关联,或者几个后处理器260可以被配置成从编码器255中的一个成员接收已编码的视频帧。
后处理器260的输出被引导至I/O设备145以便递送至客户端110中的一个或多个。本文所讨论的视频DEP 245的元件包括硬件、固件和/或存储在计算机可读介质上的软件。例如,视频DEP 245中的每一个可以表示加载到存储器中并且使用电子处理器执行的软件集。
视频源130的操作通常是由控制器265进行管理的。控制器265包括硬件、固件和/或存储在计算机可读介质上的软件。例如,控制器265可以包括存储在存储器中并且使用微处理器执行的软件。
图3示出根据本发明的各种实施方案的游戏视频(视频帧)上的叠加物。三个叠加物810A、810B和810C(共同标识为叠加物810)已应用于由视频游戏生成的视频。这些叠加物810可用作单个叠加物或几个单独的叠加物。
在一个示例性实施方案中,叠加物810中的每一个表示不同的游戏控制输入,如由其中的文本所指示的。叠加物810A表示回车,叠加物810B表示退出键,并且叠加物810C表示tab键。应当理解,在其它实施方案中,叠加物810可以识别控制器命令。例如,叠加物810A、810B和810C可以利用对应的描述性动作术语示出用于不同游戏控制器动作(例如,按钮按下、杆移动、倾斜方向、摇动等)的图标。在一些实施方案中,这些叠加物810是与视频帧的特定区域相关联并且这些特定区域被映射到所表示的游戏控制输入。例如,由叠加物810C占用的图像区域被映射到tab键,从而使得点击或以其它方式在这个区域中做出选择被解释为tab键击。可以通过使用指向设备诸如操纵杆或鼠标、或通过触摸触敏屏幕上的这个区域来完成选择。
图3还包括表示诸如可以用于管理游戏房间或游戏执行的其它方面的游戏菜单的叠加物820。叠加物820包括被映射到不同游戏命令(输入)的多个活动区域。例如,由叠加物820内的单词“搜索”占用的区被映射到搜索命令,而由单词“加入”所占用的区被映射到加入游戏房间的命令。
图3还包括:包括游戏玩家的图像的叠加物830。叠加物830可以是另一个游戏玩家的静态图像或实时图像。例如,如果图3中所示的视频帧将要被发送至客户端110A,那么叠加物830可以包括客户端110B的玩家的实时视频帧。作为替代方案,叠加物830可以包括从另一个玩家的视角的视频游戏的视图、从同一个玩家的第二视角的视图或某个现实事件的视图。在一个实例中,叠加物830包括基于同一个玩家的第二视角的视频帧,所述玩家的第一视角被用于生成底层图像。这个第二视角可以使用第二视频DEP 245生成。可以放置在视频数据上的叠加物的数量、形状、大小和特性可以广泛地变化。叠加物可以或可以不映射到游戏命令。叠加物可以应用于服务器和/或客户端侧。一些实施方案包括应用于服务器和客户端侧两者的叠加物。
用户输入到游戏命令的映射并不限于客户端110包括触摸屏或指向设备的应用。用户输入到特定游戏命令的映射可以在客户端110或视频服务器系统120处发生。例如,来自苹果计算机公司的被配置成将对其屏幕的触摸、移动和触摸组合转换为特定命令。和还被配置成将设备本身的移动转换为特定命令。然而,其它类型的客户端110可以不具有这些能力,在这种情况下映射可以在视频服务器系统120发生。
用户输入到游戏命令的映射任选地使用查找表或其它类型的输入映射来执行。图4示出根据本发明的各种实施方案的被配置用于将用户输入映射到游戏命令的输入映射表1010的一部分。应当理解,用于命令映射的输入映射表1010可以包括比图4中所示的更多或更少的条目。
输入映射表1010中所示的第一映射是“D”至“K”的直接字符到字符映射。例如,这种类型的映射可用于被配置成若干玩家共享一个键盘的游戏中,每个玩家使用他们自己的键子集。当这种游戏由地理上分散的游戏玩家进行时,每个玩家可以使用同一个键但玩家的输入中的一个被映射到键盘的不同部分。
输入映射表1010中所示的第二映射包括屏幕区到键的映射。确切地说,拐角在(100,200)和(400,500)处的长方形被映射到F1功能键。坐标系可以在图像、窗口或屏幕像素中。这种类型的映射在触摸屏或指向设备被用作输入装置是可用。这种类型的映射可以用于将叠加物内的图像映射到特定游戏命令。这种类型的映射还可以依赖于屏幕上的手指或光标的移动或接触触摸屏的点的数量。
输入映射表1010中所示的第三类型的映射包括控制器按钮到键的映射。确切地说,“红色按钮”被映射到“空格键”。这种类型的映射可以用于将游戏控制器输入映射到特定游戏命令。应当理解,在本发明的一些实施方案中,游戏控制器和其任何功能(例如,按钮、杆、倾斜、摇动等)都可以被映射到对应的游戏命令。
输入映射表1010中所示的第五类型的映射包括由外部设备诸如照相机检测到的对象的移动到键“A”的映射。这种类型的映射任选地用于包括无线电或视频运动检测系统的客户端110中。使用这种类型的映射允许游戏被设计用于使用由使用新类型的输入设备(诸如来自微软公司的)来进行的键盘进行。
第六类型的映射可以是动态的。例如,在触摸屏上的手指的运动被映射到操纵杆移动的实施方案中,其中手指首次接触屏幕可以动态地被映射到操纵杆“中心”位置。屏幕位置恰好在第一接触位置的上方、下方、左侧、右侧等分别被映射到向上、向下、向左、向右等的操纵杆位置。因此,可以通过首次将手指放置在屏幕上并且随后在某个方向上滑动手指来输入操纵杆移动。动态映射还可以包括对屏幕的多手指接触。例如,在屏幕的第一点上的接触可以确定用于将第二接触转换成游戏命令的映射的位置和取向。
图5示出根据本发明的各种实施方案的使用叠加物的方法。叠加物可以是音频或视频。在图5的方法中,使用图形处理单元235来生成视频帧并且在进行编码之前将叠加物添加至这个视频帧。图5中所示的方法操作任选地可以使用几个游戏逻辑210、几个视频DEP245和/或几个音频DEP 270并行地执行。
确切地说,在生成步骤1110中,基于游戏规则和通过网络115和客户端110自一个或多个游戏玩家接收的游戏命令来生成游戏环境。例如,在客户端110A的游戏玩家和在客户端110B处的游戏玩家可以各自提供用于更新游戏状态的游戏命令,游戏环境从所述游戏状态生成。生成步骤1110可以包括接收状态步骤515和确定3D数据步骤520,如关于图4所讨论的。在一些实施方案中,生成步骤1110包括基于游戏内的事件、游戏规则和/或所接收的游戏命令来生成视频数据。
在任选的渲染步骤1120中,使用图形处理单元235来渲染在生成步骤1110中生成的游戏环境。渲染步骤1120是关于图4所讨论的渲染步骤525的实施方案。渲染步骤1120的结果是视频帧。在生成步骤1110的结果仅包括音频数据和/或不包括3D游戏环境的实施方案中,渲染步骤1120是任选的。
在提供步骤1130中,将在渲染步骤1120中生成的视频帧和/或在生成步骤1110中生成的音频数据提供至一个或多个编码流水线,诸如视频DEP 245A和/或音频DEP 270A。例如,可以将视频帧提供至视频DEP 245A而将音频帧提供至音频DEP 270A。提供步骤1130是如关于图4所讨论的转移步骤527的实施方案。
在添加叠加物步骤1140中,将视频叠加物添加至在提供步骤1130中所提供的视频帧,和/或将音频叠加物添加至在提供步骤1130中所提供的音频数据。通常使用如关于图2所讨论的叠加逻辑290和/或叠加逻辑295来执行添加叠加物步骤1140。在添加叠加物步骤1140中,任选地添加多于一个视频叠加物和多于一个音频叠加物。音频叠加物任选地包括通过网络115从客户端110中的一个或多个作为数据包接收到的音频数据。例如,音频叠加物可以包括从多个客户端110接收到的游戏玩家的语音数据。
在一些实施方案中,视频源130从许多客户端110接收音频数据,并且添加叠加物步骤1140包括确定哪些音频数据应当被用在特定音频叠加物中。例如,虽然10个游戏玩家可能正在使用视频源130,但仅这些玩家中的两个或三个的语音数据可以包括在音频叠加物中。确定哪些音频数据应包括在叠加物中任选地是基于游戏玩家之间的社会关系。例如,一个游戏玩家可以选择他希望接收哪些(即,谁的)语音数据。社会关系可以包括:除其它之外,行会、团体中的会员资格;在同一个战场或游戏实例中;和/或具有在同一个游戏环境中彼此靠近的化身的会员资格。在一些实施方案中,响应于两个化身之间的游戏内距离来调整音频数据的音量。
在编码步骤1150中,对视频帧和/或音频数据、以及任何叠加物进行编码。这可以使用编码器255和/或音频编码器280来完成。编码步骤1150是编码步骤535的实施方案。编码步骤1150可以在添加叠加物步骤1150之前或之后执行。
在递送步骤1160中,通过网络115将在编码步骤1150中编码的视频帧和/或音频数据提供至客户端110中的一个。任选地,将视频帧和/或音频数据提供至多于一个位置。例如,可以将同一种数据提供至多于一个游戏玩家。递送步骤1160是关于图4所讨论的提供步骤545的实施方案。
在任选的映射步骤1170中,将应用于添加叠加物步骤1140中的视频叠加物中的一部分映射到游戏命令。例如,在映射到特定游戏命令时,可以将视频叠加物所添加到的视频帧的区域设定在输入映射表1010中。叠加物可以应用于显示器或视频帧的多于一个区域。每个区域任选地被映射到不同的游戏命令。输入映射表1010可以位于视频服务器系统120上或客户端110中一个上。
在任选的接收步骤1180中,在视频源130处或其内接收映射的游戏命令。映射的游戏命令任选地是已从叠加物所应用的视频帧的区域映射的命令。所接收的游戏命令可能已映射在客户端110中的任一个处或视频服务器系统120处。所接收的游戏命令任选地被用于更新视频游戏的状态。
图6示出根据本发明的示例性实施方案的视频源130的用于包括视频增强逻辑2000的扩展。增强逻辑2000被定义成分析由任一3D驱动器230提供的视频帧数据,以便检测其中的关键图形图像的存在并且响应于检测到关键图形图像的存在而将图像叠加数据提供至叠加逻辑290。在各种实施方案中,增强逻辑2000可以被定义成借助于抓取器247从虚拟3D视频驱动器220、3D驱动器230、共享存储器240和/或视频DEP 245中的一个或多个访问和获得视频帧数据。应当理解,在视频帧数据被编码以便从视频DEP 245传输至客户端110中的一个或多个之前,视频帧数据由增强逻辑2000进行接收和处理。
增强逻辑2000包括关键检测逻辑2001,所述关键检测逻辑2001被定义成针对对应于关键图形图像的目标像素模式的存在来搜索所接收的视频帧数据。取决于实现方式,针对目标像素模式的存在,关键检测逻辑2001可以被引导来搜索整个视频帧的一部分或整个视频帧。由关键检测逻辑2001在给定时间采用的特定搜索技术被称为目标搜索模式。可以就将要搜索什么目标像素模式以及将要使用哪种目标搜索模式对增强逻辑2000作出指示。
图7示出对应于将要由增强逻辑2000进行处理的视频帧数据的视频帧图像的实例。应当理解,图7的视频帧图像是以示例方式提供的并且不以任何方式限制本文所讨论的发明的任何特征或方面。在图7的示例性视频帧图像中,示出对应于目标像素模式的关键图形图像2101。关键检测逻辑2001作用来根据指定的目标搜索模式来搜索视频帧数据,以便检测对应于关键图形图像2101的目标像素模式的存在。在一个实施方案中,目标搜索模式是从一侧到另一侧和从上到下穿过视频帧图像的光栅化搜索模式。在另一个实施方案中,目标搜索模式包括以同步方式穿过视频帧的不同区域的多个光栅化搜索模式。在这个实施方案的一个实例中,视频帧的不同区域被定义成使得所述不同区域不会叠加并且使得所述不同区域一起覆盖全部视频帧。
此外,在一个实施方案中,关键检测逻辑2001可以被定义成以多步骤子目标方式实现对关键图形图像的搜索。确切地说,关键检测逻辑2001可以被引导来首先搜索视频帧以获得对应于关键图形图像的一部分的目标像素模式的指示符部分。在一个实施方案中,目标像素模式的所述部分可以对应于包括强烈对比度和/或区别性颜色的像素集。随后,在检测到目标像素模式的指示符部分存在时,关键检测逻辑2001可以被引导来在目标像素模式的检测到的指示符部分的附近区域内执行对目标像素模式的集中搜索。应当理解,可以以比搜索和检测整个目标像素模式的方式更快的方式来执行对目标像素模式的指示符部分的搜索和检测,从而提高搜索和检测目标像素模式的总体效率。
在一个实施方案中,增强逻辑2000被定义成监测游戏逻辑210的游戏状态并且响应于所监测游戏状态。更确切地说,增强逻辑2000可以被引导来利用根据所监测游戏状态的特定目标像素模式和/或利用根据所监测游戏状态的特定目标搜索模式。增强逻辑2000可以被定义成接收游戏特定的增强程序指令并且根据所述指令进行操作,所述指令提供关于根据所监测游戏状态将要采用哪种目标像素模式和目标搜索模式的指示。
例如,参照图7,增强逻辑2000可收到其中箭图像2103可能要遭遇目标图像2105的游戏状态的通知。基于这个游戏状态的通知,可以指示增强逻辑2000使用如图8中所示的特定目标像素模式,并且使用包括视频帧的仅目标图像2105定位在其中的区域的目标搜索模式,从而使关键检测逻辑2001的努力得到集中。
此外,游戏特定的增强程序指令可以包括关于在检测到视频帧中的目标像素模式之后将如何在视频帧内生成和定位叠加图像的指令。增强逻辑2000包括:被定义成根据由增强逻辑2000接收的指令生成叠加图像的叠加物生成逻辑2003。叠加物生成逻辑2003被定义成将叠加物构造数据传达至叠加逻辑290。叠加物构造数据包括相关的叠加物像素数据和用于引导叠加图像在视频帧中的定位的数据。如本文所描述,叠加逻辑290作用来通过修改视频帧的适当像素数据来将叠加图像插入视频帧中以便渲染叠加图像。在增强逻辑2000有效的情况下,叠加逻辑290被定义成根据从增强逻辑2000接收到的叠加物构造数据来插入叠加图像。
例如,图9示出将要以叠加物构造数据的形式从叠加物生成逻辑2003传达至叠加逻辑290的叠加图像2107。在一个实施方案中,用于每个游戏状态的叠加物生成逻辑2003被存储在共享存储器240中,并且针对其对应的游戏状态和目标像素数据进行编索引,从而使得叠加物生成逻辑2003可以根据被传达至增强逻辑2000的游戏状态信息来从共享存储器240检索所需的叠加物构造数据,并且将所需的叠加物构造数据传达至共享存储器240。在一个实施方案中,用于各种叠加图像的叠加物构造数据可以从增强逻辑2000有权访问的数据库中获得。而且,在一个实施方案中,将要使用的叠加物构造数据可以取决于游戏状态外部的参数,诸如进行游戏的用户的身份或与进行游戏的用户相关的其它数据(诸如进行游戏的用户的专业知识水平)。
一旦叠加物构造逻辑从叠加物生成逻辑2003被提供至叠加逻辑290,叠加逻辑290就作用来将对应的叠加图像应用于/插入视频帧中。例如,图10示出在响应于关键检测逻辑2001检测到对应于如图8中所示的关键图形图像2101的目标像素模式的存在而插入叠加图像2107之后的图7的视频帧。应当理解,叠加图像2107的插入可以通过利用叠加图像2107的像素数据来叠加(或代替)视频帧内的像素数据而完成。应当理解,对视频帧内的与特定游戏状态相关联的关键图形图像的检测以及叠加图像的对应生成和插入(如增强逻辑2000所提供的)提供了用于在实际上不修改游戏的底层程序指令的情况下修改游戏的外观和感觉的实质性能力。另外,应当理解,在一些实施方案中,叠加图像的插入可以用于将广告图像传送/展示给游戏的用户/玩家。
此外,应当理解,叠加图像或其部分可以借助于如关于图4所述的输入映射表来响应用户提供的命令。以这种方式,对视频帧内的与特定游戏状态相关联的关键图形图像的检测以及叠加图像的对应生成和插入(如增强逻辑2000所提供的)可以用于在实际上不修改游戏的底层程序指令的情况下实际上修改游戏的功能。
应当理解,关键检测逻辑2001可被引导来根据一个或多个目标搜索模式在给定视频帧中搜索和检测一个或多个目标像素模式。此外,应当理解,叠加物生成逻辑2003可以被引导来针对给定的视频帧生成用于一个或多个叠加图像的叠加构造数据。因此,在一些实例中,叠加逻辑290将接收用于多个叠加图像的叠加构造数据以便应用于单个视频帧。在这种情况下,多个叠加图像可以是相关或不相关的,并且可以分别被定位在视频帧中的不同位置处。
图11示出根据本发明的一个实施方案的用于增强远程服务应用的系统。系统包括在一个或多个计算系统上执行的第一应用2121。在一个实施方案中,第一应用2121在其上执行的一个或多个计算系统包括在云计算系统上操作的一个或多个虚拟计算机器。在一个实施方案中,第一应用2121是游戏应用。第一应用2121执行来生成用于渲染与第一应用执行相关联的图形图像的一系列原始帧像素数据集2123。所述系列原始帧像素数据集2123对应于视频流,并且每个原始帧像素数据集对应于相应的视频帧。
图11的系统还包括在一个或多个计算系统上执行以检测存在于所述系列原始帧像素数据集中的一个或多个关键图形图像的第二应用2125。在一个实施方案中,第二应用2125在其上执行的一个或多个计算系统包括在云计算系统上操作的一个或多个虚拟计算机器。在一个实施方案中,第二应用2125对应于关于图6所讨论的增强逻辑2000。此外,关键图形图像可以表示第一应用2121的执行状态。
在第二应用2125检测到一个或多个关键图形图像时,第二应用操作来引导替代像素数据对所述系列原始帧像素数据集2123中的像素数据的一部分的替换,从而生成一系列修改的帧像素数据集2127。所述系列修改的帧像素数据集2127被提供用于代替所述系列原始帧像素数据集2123进行编码并且传输至客户端计算机系统2129,以便在客户端计算机系统2129的视觉显示器中展示。在一个实施方案中,第二应用2125操作来将指令提供至叠加模块诸如叠加逻辑290,以便引导替代像素数据对所述系列原始帧像素数据集2123中的像素数据的一部分的替换。
图12示出根据本发明的一个实施方案的用于增强远程服务应用的方法。应当理解,图12的方法可以使用关于图6所讨论的增强逻辑2000来实现。所述方法包括用于搜索由应用生成的视频帧以检测关键图形图像的操作1601,其中关键图形图像表示用户在执行应用方面的成就等级。所述方法还包括用于检测由应用生成的视频帧中的关键图形图像的操作1602。在一个实施方案中,应用是在云计算平台的虚拟机上执行的远程服务游戏应用。用户的成就等级可以以基本上无限数量的不同方式展示。然而,取决于正在执行的应用,表示用户的成就等级的关键图形图像在视频帧中的预期位置及其预期像素模式在搜索视频帧之前可以是已知的,从而能够实现操作1601中的集中搜索。
一旦在由应用生成的视频帧中检测到对应于用户的成就等级的关键图形图像,所述方法进行操作1603以获得表示用户的通用成就状态的叠加图像。用户的通用成就状态可以表示用户在一段时间内执行一种或多种类型的一个或多个应用(例如游戏)方面的成就等级。在一个实施方案中,操作1603可以包括查询用户信息的数据库以确定用户的通用成就状态。
所述方法还包括用于使用户的所确定通用成就状态与存储在数据存储设备上的许多预定义叠加图像中的一个或多个相关联的操作1605。随后,执行操作1607来从数据存储设备捕获针对与用户的所确定通用成就状态相关联的许多预定义叠加图像中的至少一个的叠加构造数据。然后,执行操作1609来将所捕获的叠加构造数据供应至叠加逻辑,例如叠加逻辑290,以便将预定义叠加图像中的至少一个插入待编码并且传输至用户的计算系统的视频帧中。在游戏领域(universe)的上下文中,应当理解,图12的方法允许用户在许多类似和/或不同游戏方面的通用成就状态能够以独特的方式在用户正在进行的任何游戏的视频帧中视觉地展示。此外,借助于关键图形图像检测和叠加过程,可以代替通常由游戏生成的图像而视觉地展示用户的通用成就状态以指示用户在游戏中的成就等级。
图13示出根据本发明的一个实施方案的用于生成和执行远程服务计算机应用(例如计算机游戏)的云计算系统1300的图解。云计算系统1300包括各种被定义成执行计算活动所必需的操作的物理组件1301,即,计算硬件组件。物理组件1301可以包括许多计算机处理器1301A、适量的计算机存储器1301B、适量的永久性数据存储装置1301C以及许多网路接口卡/芯片(NIC)1301D。以上提及的各种物理组件1301可以对应于本领域中已知的任何一个这种物理组件1301。此外,应当理解,以上提及的各种物理组件1301是以示例方式提供的。云计算系统1300的各种实施方案可以包括比以上提及的实例更多或更少的物理组件1301,并且可以包括以上未提及的物理组件1301,例如电源、冷却系统等,条件是物理组件1301的集成计算能力足以确保云计算系统1300的适当性能。
云计算系统1300还包括被定义成使用各种物理组件1301来生成和执行许多虚拟机的管理程序1303或类似的控制层。由管理程序1303生成和执行的每个虚拟机实质上是特定计算体系结构的软件仿真。管理程序1303可以使用各种物理组件1301同时生成并且执行多个不同的虚拟机。给定虚拟机可以被引导来根据对应于由所述给定虚拟机进行仿真的特定计算体系结构的许多操作系统1305中的一个或多个进行操作。各种类型的操作系统的实例包括:除其它之外,Windows、Mac OS X、Linux、Play Station 1(PS1)、Play Station 2(PS2)、Play Station 3(PS3)。例如,关于图13,如果操作系统OS1是PS3操作系统,那么OS1可以在由管理程序1303生成的虚拟机上执行以便对PS3计算体系结构进行仿真。类似地,如果操作系统OS5是Mac OS X操作系统,那么OS5可以在由管理程序1303生成的虚拟机上执行以便对Mac计算体系结构进行仿真。
以以上所述的方式,管理程序1303可以利用物理组件1301来生成和执行基本上任何数量的不同类型的虚拟机,以便对各种对应操作系统可以在其上执行的基本上任何数量的不同类型的计算体系结构进行仿真。因此,云计算系统1300可以提供基本上任何计算系统的实例,如由在其所需的计算体系结构上执行的特定操作系统所定义的。虽然图13的实例以示例方式示出六个操作系统OS1-OS6,但应当理解,云计算系统1300并不以任何方式限于固定数量的操作系统。管理程序1303可以被定义成生成针对基本上任何可想象出的计算体系结构的虚拟机,以便执行基本上任何可想象出的对应操作系统。因此,应当理解,云计算系统1300相对于物理组件1301、管理程序1303能力(即,虚拟机仿真的数量和类型),以及操作系统供应的数量和类型是可缩放的。
云计算系统1300还包括被定义成通过许多操作系统1305中的一个或多个来执行的许多不同计算应用1307。各种计算机应用1307可以被存储在云计算系统1300的存储装置1301C中,并且可以被加载到存储器1301B中以便根据需要与由管理程序1303供应的特定虚拟机的给定实例和对应操作系统结合来执行。应当理解,针对任何操作系统1305存在的任何计算机应用1307均可以由云计算系统1300来执行。
图13还示出许多主机1309(主机1-主机N)。主机1309表示用户已访问云计算系统1300以获得对特定虚拟机的实例和对应操作系统的访问权以便执行所选择的应用1307的实例。应当理解,云计算系统1300可以被定义并且管理以便以许多不同的方式供应虚拟机和操作系统。例如,在一些情况下,可以为访问云计算系统1300的每个用户提供专用的虚拟机和对应的操作系统,用户可以在其上执行所期望的应用1307。此外,在一些情况下,可以使访问云计算系统1300的多个用户共享虚拟机和对应的操作系统,每个用户都可以在其上执行他们所期望的应用1307。可以优化云计算系统1300的操作和管理,以便在给定可用物理组件1301的情况下为访问云计算系统1300的每个用户提供可能的最佳服务质量。
在各种实施方案中,云计算系统1300是云游戏系统。在一个实施方案中,云游戏系统被配置成检测与用户相关联的客户端设备的类型,以及另外用户可用来将输入提供至基于云的视频游戏的控制器的类型。例如,在一个实施方案中,当用户登录到云游戏系统中时,他们可以被呈现指定他们访问云游戏系统将要使用的客户端设备的类型的选项。在一个实施方案中,呈现了一系列客户端设备选项,用户可以从其中选择对应于他们的客户端设备的一个选项。用户还可以被呈现指定他们将要用来进行视频游戏的控制器设备的类型的选项。在一个实施方案中,可以向用户呈现一系列控制器选项,用户可以从其中进行选择以指定对应于他们的控制器硬件的控制器类型。在其它实施方案中,云游戏系统可以被配置成自动检测客户端设备类型和/或控制器设备类型。
例如,在登录时,客户端设备可以将识别它本身以及所连接的控制器设备的信息发送至云游戏服务器(例如,响应于来自云游戏服务器的请求)。基于这种信息,云游戏服务器可以确定用于提供针对用户的客户端设备和控制器设备优化的游戏体验的适当视频游戏输出配置和输入参数配置。在一个实施方案中,采用查找表以基于检测到的客户端设备和检测到的控制器设备来确定视频游戏配置和输入参数配置。
应当理解,可以针对特定的平台和特定的相关联控制器设备来开发给定的视频游戏。然而,当这种游戏通过如本文所呈现的云游戏系统而变得可用时,用户可以利用不同的控制器设备来访问所述视频游戏。例如,可能已针对游戏控制台及其相关联的控制器开发了一款游戏,而用户可能利用键盘和鼠标从个人计算机来访问基于云的游戏版本。在这种情境下,输入参数配置可以定义从可由用户的可用控制器设备(在这种情况下,键盘和鼠标)生成的输入到执行视频游戏可接受的输入的映射。
在另一个实例中,用户可以通过平板计算设备、触摸屏智能电话或其它触摸屏驱动的设备来访问云游戏系统。在这种情况下,客户端设备和控制器设备一起被集成在同一个设备中,并且输入是借助于检测到的触摸屏输入/手势提供的。针对这种设备,输入参数配置可以定义对应于用于视频游戏的游戏输入的特定触摸屏输入。例如,按钮、方向键或其它类型的输入元件可以在视频游戏运行期间显示或叠加,以便指示在用户可以触摸以生成游戏输入的触摸屏上的位置。手势诸如在特定方向上触划或特定触摸运动也可以被检测为游戏输入。在一个实施方案中,可以例如在开始视频游戏的游戏过程之前,向用户提供指示如何通过用于游戏过程的触摸屏提供输入的教程,以使用户适应触摸屏上的控件的操作。
在一个实施方案中,客户端设备充当用于控制器设备的连接点。也就是说,控制器设备通过无线或有线连接与客户端设备进行通信以便将输入从控制器设备传输至客户端设备。客户端设备继而可以处理这些输入并且随后通过网络(例如,通过本地联网设备诸如路由器访问)将输入数据传输至云游戏服务器。然而,在其它实施方案中,控制器本身可以是联网的设备,具有通过网络将输入直接传达至云游戏服务器的能力,而不需要首先通过客户端设备来传达此类输入。例如,控制器可以连接至本地联网设备(诸如前述的路由器)以便将数据发送至云游戏服务器并且从云游戏服务器接收数据。因此,虽然可能仍然需要客户端设备来从基于云的视频游戏接收视频输出并且使其在本地显示器上展示,但可以通过允许控制器经由网络将输入直接发送至云游戏服务器从而绕过客户端设备来减少输入等待时间。
在一个实施方案中,联网的控制器和客户端设备可以被配置成将某些类型的输入从控制器直接发送至云游戏服务器,并且通过客户端设备发送其它类型的输入。例如,可以通过网络将其检测不依赖于除控制器本身之外的任何额外硬件或处理的输入从控制器直接发送至云游戏服务器,从而绕过客户端设备。此类输入可以包括按钮输入、操纵杆输入、嵌入式运动检测输入(例如,加速度计、磁强计、陀螺仪)等。然而,利用额外硬件或需要由客户端设备完成的处理的输入可以由客户端设备发送至云游戏服务器。这些可包括从可以由客户端设备在向云游戏服务器发送之前进行处理的游戏环境捕获的视频或音频。另外,客户端设备可以处理来自控制器的运动检测硬件的输入连同所捕获的视频以检测控制器的位置和运动,所述控制器的位置和运动随后将由客户端设备传达至云游戏服务器。应当理解,根据各种实施方案的控制器设备还可以从客户端设备或直接从云游戏服务器接收数据(例如,反馈数据)。
应当理解,云计算系统1300(作为示例)或类似计算系统可以允许用户访问远程服务计算机应用以便通过用户的计算终端执行,只要用户的计算终端能够通过网络(即,通过有线网络、无线网络或其组合)访问计算系统1300。换句话说,云计算系统1300允许用户通过用户的终端,利用底层硬件、操作系统以及由云计算系统1300供应的计算机应用来执行他们在云计算系统1300上所选择的计算机应用。
本文具体示出和/描述了几个实施方案。然而,应当理解,在不脱离本发明的精神和预定范围的情况下,本发明的修改和变化被上述教导所涵盖并且落在所附权利要求书的范围内。例如,虽然本文提供的实例是针对视频游戏,但所讨论的系统和方法可以应用于其它交互式视频系统。虽然本文提供的实例主要是针对视频的递送,但本文所述的系统和方法可以应用于音频帧的生成和音频流的递送。在一些实施方案中,生成和一起递送音频和视频流是作为音频-视频流的一部分。
本文所讨论的实施方案是对本发明的说明。因为本发明的这些实施方案是参照这些说明进行描述的,所以本文所描述的方法和或特定结构的各种修改或调整对于本领域内的技术人员可以变得明显。依赖于本发明的教导且这些教导借以推进此项技术的所有此类修改、调整或变化均应视为在本发明的精神和范围内。因此,因为应当理解本发明绝不以任何方式限于仅本文示出的实施方案,故本文提供的描述和附图不应被视为具有限制性意义。
本文参考的计算系统可以包括集成电路、微处理器、个人计算机、服务器、分布式计算系统、通信设备、网络设备等以及它们的各种组合。计算系统还可以包括易失性和/或非易失性存储器,诸如随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、磁性介质、光学介质、纳米介质、硬盘驱动器、光盘、数字通用盘(DVD)和/或被配置用于将模拟或数字信息存储在诸如数据库中的其它设备。以上所述的逻辑的各种实例可以包括硬件、固件或存储在计算机可读介质上的软件、或其组合。如本文所使用,计算机可读介质明确排除了纸张。本文所述的方法的计算机实现步骤可以包括存储在计算机可读介质上的指令集,所述指令集在被执行时引起计算系统执行所述步骤。
根据来自程序软件的指令被编程用于执行特定功能的计算系统是用于执行这些特定功能的专用计算系统。由专用计算系统操纵同时执行这些特定功能的数据至少电子地保存在计算系统的缓冲器中,从而将专用计算系统从一种状态物理地改变为下一种状态,其中每次改变都是针对所存储的数据。本文所讨论的逻辑可以包括硬件、固件和/或存储在计算机可读介质上的软件。这种逻辑可以在电子设备上实现以产生专用计算系统。
本发明的实施方案可以利用各种计算机系统配置来实践,包括手持设备、微处理器系统、基于微处理器的或可编程的消费电子产品、微型计算机、大型计算机等。本发明还可以在分布式计算环境中实践,在分布式计算环境中,任务是由通过网络链接的远程处理设备执行的。
考虑到上述实施方案,应当理解,本发明可以采用涉及存储在计算机系统中的数据的各种计算机实现的操作。这些操作是需要对物理量进行物理操纵的操作。本文所述的形成本发明的一部分的操作中的任何一项都是有用的机器操作。本发明还涉及用于执行这些操作的设备或装置。所述装置可以专门被构造用于所需目的,诸如专用计算机。当被定义为专用计算机时,所述计算机还可以执行不是专用目的的一部分的其它处理、程序执行或例程,同时仍然能够针对专用目的进行操作。作为替代方案,这些操作可以由通过存储在计算机存储器、高速缓存中的或通过网络获得的一个或多个计算机程序选择性地激活或配置的通用计算机进行处理。当数据是通过网络获得时,所述数据可以由网络上的其它计算机例如云计算资源进行处理。
本发明的实施方案还可以被定义为将数据从一种状态变换成另一种状态的机器。可以将变换的数据保存以进行存储并且随后由处理器来操纵。处理器从而将数据从一种情况变换成另一种情况。此外,所述方法可以由可通过网络连接的一个或多个机器或处理器进行处理。每个机器都可以将数据从一种状态或情况变换成另一种状态或情况,并且还可以处理数据、保存数据以进行存储、通过网络传输数据、显示结果或将结果传达至另一台机器。
本发明还可以具体化为非临时计算机可读介质上的计算机可读代码。非临时计算机可读介质是可以存储数据的任何数据存储设备,所述数据此后可以由计算机系统读取。非临时计算机可读介质的实例包括硬盘驱动器、网络附加存储装置(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CD-RW、磁带以及其它光学和非光学数据存储设备。非临时计算机可读介质可以包括:分布在网络耦合的计算机系统上以使得计算机可读代码以分布式方式存储和执行的计算机可读有形介质。
虽然所述方法操作是以特定次序进行描述的,但应当理解,只要所述方法操作的处理是以所期望的方式执行的,可以在操作之间执行其它辅助操作,或者可以对操作进行调整以使得它们在稍微不同的时间发生,或者操作可以分布在允许处理操作以与处理相关联的各种时间间隔发生的系统中。
虽然为了清楚理解的目的已对前述发明进行了详细描述,但将明显的是,可以在所附权利要求书的范围内实践某些改变和修改。因此,本发明的实施方案应被视为说明性的而非限制性的,并且本发明并不限于本文所给出的细节,而是可以在所附权利要求书的范围及其等效物内进行修改。
Claims (22)
1.一种用于增强远程服务的计算机应用的系统,包括:
帧增强模块,被配置为拦截由在第一计算系统上执行的远程服务的计算机应用生成的显示帧图像的像素数据集,以通过网络传输来由第二计算系统显示;
所述帧增强模块被配置为识别由所述帧增强模块拦截的所述显示帧图像的所述像素数据集的目标部分,所述像素数据集的所述目标部分对应于所述显示帧图像中待修改的视觉内容;
所述帧增强模块被配置为生成针对所述显示帧图像的已修正像素数据集,其中所述像素数据集的所述目标部分被修改;
所述帧增强模块被配置为提供代替由所述帧增强模块拦截的所述显示帧图像的像素数据集的针对所述显示帧图像的所述已修正像素数据集,以通过所述网络传输来由所述第二计算系统显示;
其中所述帧增强模块被配置为与在所述第一计算系统上执行的所述远程服务的计算机应用是分开的,使得在所述第一计算系统上执行的所述远程服务的计算机应用不涉及所述帧增强模块的操作,所述操作包括拦截所述显示帧图像的像素数据集、识别所述像素数据集的所述目标部分、生成已修正像素数据集,以及提供代替拦截的像素数据的针对所述显示帧图像的已修正像素数据集,以通过所述网络传输。
2.如权利要求1所述的用于增强远程服务的计算机应用的系统,其中所述帧增强模块被配置为根据指定的目标搜索模式来针对所述目标部分搜索所述像素数据集。
3.如权利要求2所述的用于增强远程服务的计算机应用的系统,其中所述指定的目标搜索模式是穿过所述显示帧图像的光栅化搜索模式。
4.如权利要求2所述的用于增强远程服务的计算机应用的系统,其中所述指定的目标搜索模式包括穿过所述显示帧图像的不同区域的多个光栅化搜索模式,所述帧增强模块被配置为根据所述多个光栅化搜索模式穿过所述显示帧图像的所述不同区域同步搜索。
5.如权利要求4所述的用于增强远程服务的计算机应用的系统,其中所述显示帧图像的所述不同区域不叠加,并且其中所述显示帧图像的所述不同区域一起覆盖所述显示帧图像的全部。
6.如权利要求1所述的用于增强远程服务的计算机应用的系统,其中所述帧增强模块配置为通过执行所述像素数据集的第一搜索来针对所述目标部分搜索所述像素数据集以检测像素数据的指示符部分,并且在检测到像素数据的所述指示符部分时,在所检测到的像素数据的指示符部分的附近区域内执行针对所述像素数据集的所述目标部分的第二搜索。
7.如权利要求6所述的用于增强远程服务的计算机应用的系统,其中像素数据的所述指示符部分包括强烈对比度、区别性颜色,或强烈对比度和区别性颜色的组合。
8.如权利要求1所述的用于增强远程服务的计算机应用的系统,其中所述显示帧图像的所述像素数据集定义由在所述第一计算系统上执行的所述远程服务的计算机应用生成的视频流的视频帧。
9.如权利要求1所述的用于增强远程服务的计算机应用的系统,其中所述第一计算系统包括在云计算系统上操作的一个或多个虚拟计算机器。
10.如权利要求9所述的用于增强远程服务的计算机应用的系统,其中所述帧增强模块在云计算系统上操作的一个或多个虚拟计算机器内实现。
11.如权利要求1所述的用于增强远程服务的计算机应用的系统,其中所述帧增强模块被配置为使用所述显示帧图像中的所述目标部分的预期位置来识别所述显示帧图像的所述像素数据集的所述目标部分。
12.一种用于增强远程服务的计算机应用的方法,包括:
操作处理器以拦截由在第一计算系统上执行的远程服务的计算机应用生成的显示帧图像的像素数据集,以通过网络传输来由第二计算系统显示;
操作所述处理器以识别由所述处理器拦截的所述显示帧图像的所述像素数据集的目标部分,所述像素数据集的所述目标部分对应于所述显示帧图像中待修改的视觉内容;
操作所述处理器以生成针对所述显示帧图像的已修正像素数据集,其中所述像素数据集的所述目标部分被修改;
操作所述处理器以提供代替由所述处理器拦截的所述显示帧图像的像素数据集的针对所述显示帧图像的所述已修正像素数据集,以通过所述网络传输来由所述第二计算系统显示;
其中在所述第一计算系统上执行的所述远程服务的计算机应用不涉及拦截所述显示帧图像的像素数据集、识别所述像素数据集的所述目标部分、生成已修正像素数据集,以及提供代替拦截的像素数据的针对所述显示帧图像的已修正像素数据集,以通过所述网络传输。
13.如权利要求12所述的用于增强远程服务的计算机应用的方法,其中所述处理器被操作以通过根据指定的目标搜索模式针对所述目标部分搜索所述像素数据集来识别所述像素数据集的所述目标部分。
14.如权利要求13所述的用于增强远程服务的计算机应用的方法,其中所述指定的目标搜索模式是穿过所述显示帧图像的光栅化搜索模式。
15.如权利要求13所述的用于增强远程服务的计算机应用的方法,其中所述指定的目标搜索模式包括穿过所述显示帧图像的不同区域的多个光栅化搜索模式,其中根据所述多个光栅化搜索模式同步搜索所述显示帧图像的所述不同区域。
16.如权利要求15所述的用于增强远程服务的计算机应用的方法,其中所述显示帧图像的所述不同区域不叠加,并且其中所述显示帧图像的所述不同区域一起覆盖所述显示帧图像的全部。
17.如权利要求12所述的用于增强远程服务的计算机应用的方法,其中所述处理器被操作以通过执行所述像素数据集的第一搜索针对所述目标部分搜索所述像素数据集来识别所述像素数据集的所述目标部分以检测像素数据的指示符部分,在检测到像素数据的所述指示符部分时,在所检测到的像素数据的指示符部分的附近区域内执行针对所述像素数据集的所述目标部分的第二搜索。
18.如权利要求17所述的用于增强远程服务的计算机应用的方法,其中像素数据的所述指示符部分包括强烈对比度、区别性颜色,或强烈对比度和区别性颜色的组合。
19.如权利要求12所述的用于增强远程服务的计算机应用的方法,其中所述显示帧图像的所述像素数据集定义由在所述第一计算系统上执行的所述远程服务的计算机应用生成的视频流的视频帧。
20.如权利要求12所述的用于增强远程服务的计算机应用的方法,其中所述第一计算系统包括在云计算系统上操作的一个或多个虚拟计算机器。
21.如权利要求12所述的用于增强远程服务的计算机应用的方法,其中所述处理器被包括于在云计算系统上操作的一个或多个虚拟计算机器内实现的帧增加模块中。
22.如权利要求12所述的用于增强远程服务的计算机应用的方法,其中所述处理器被操作以使用所述显示帧图像中的所述目标部分的预期位置来识别所述显示帧图像的所述像素数据集的所述目标部分。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261727370P | 2012-11-16 | 2012-11-16 | |
US61/727,370 | 2012-11-16 | ||
US13/767,806 | 2013-02-14 | ||
US13/767,806 US9092910B2 (en) | 2009-06-01 | 2013-02-14 | Systems and methods for cloud processing and overlaying of content on streaming video frames of remotely processed applications |
CN201380064775.9A CN104870063B (zh) | 2012-11-16 | 2013-11-13 | 用于云处理和叠加远程处理应用的流式视频帧上的内容的系统和方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380064775.9A Division CN104870063B (zh) | 2012-11-16 | 2013-11-13 | 用于云处理和叠加远程处理应用的流式视频帧上的内容的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108525299A CN108525299A (zh) | 2018-09-14 |
CN108525299B true CN108525299B (zh) | 2021-09-21 |
Family
ID=49724659
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810311357.XA Active CN108525299B (zh) | 2012-11-16 | 2013-11-13 | 一种用于增强远程服务的计算机应用的系统和方法 |
CN201380064775.9A Active CN104870063B (zh) | 2012-11-16 | 2013-11-13 | 用于云处理和叠加远程处理应用的流式视频帧上的内容的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380064775.9A Active CN104870063B (zh) | 2012-11-16 | 2013-11-13 | 用于云处理和叠加远程处理应用的流式视频帧上的内容的系统和方法 |
Country Status (10)
Country | Link |
---|---|
EP (1) | EP2919874B1 (zh) |
JP (2) | JP6178426B2 (zh) |
KR (1) | KR101703061B1 (zh) |
CN (2) | CN108525299B (zh) |
BR (1) | BR112015011245B1 (zh) |
CA (2) | CA3014348C (zh) |
IN (1) | IN2015DN03768A (zh) |
MX (1) | MX346529B (zh) |
RU (1) | RU2617914C2 (zh) |
WO (1) | WO2014078452A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6098691B1 (ja) * | 2015-10-16 | 2017-03-22 | 株式会社セガゲームス | 映像生成システム、制御装置および加工装置 |
CN105430007A (zh) * | 2015-12-24 | 2016-03-23 | 北京奇虎科技有限公司 | 在应用中进行语音通信的方法和装置 |
US10558342B2 (en) * | 2016-07-28 | 2020-02-11 | Troy Plota | Automated pixel shifting within a digital image |
JP7173249B2 (ja) * | 2017-05-09 | 2022-11-16 | ソニーグループ株式会社 | クライアント装置、表示システム、クライアント装置の処理方法およびプログラム |
JP6946724B2 (ja) | 2017-05-09 | 2021-10-06 | ソニーグループ株式会社 | クライアント装置、クライアント装置の処理方法、サーバおよびサーバの処理方法 |
CA3068401A1 (en) * | 2017-06-27 | 2019-01-03 | Pixellot Ltd. | Method and system for fusing user specific content into a video production |
US10594901B2 (en) * | 2017-11-17 | 2020-03-17 | Ati Technologies Ulc | Game engine application direct to video encoder rendering |
US11290515B2 (en) | 2017-12-07 | 2022-03-29 | Advanced Micro Devices, Inc. | Real-time and low latency packetization protocol for live compressed video data |
US11077364B2 (en) * | 2018-04-02 | 2021-08-03 | Google Llc | Resolution-based scaling of real-time interactive graphics |
WO2019239396A1 (en) * | 2018-06-12 | 2019-12-19 | Kliots Shapira Ela | Method and system for automatic real-time frame segmentation of high resolution video streams into constituent features and modifications of features in each frame to simultaneously create multiple different linear views from same video source |
US10569164B1 (en) | 2018-09-26 | 2020-02-25 | Valve Corporation | Augmented reality (AR) system for providing AR in video games |
WO2020092128A1 (en) * | 2018-10-30 | 2020-05-07 | Maycas Technology Limited | Systems and methods for enhancing live audience experience on electronic device |
CN111724311A (zh) * | 2019-03-22 | 2020-09-29 | 上海晶赞融宣科技有限公司 | 显示设备的图像显示方法及装置、存储介质、终端 |
CN110174954B (zh) * | 2019-05-27 | 2020-06-23 | 贵阳动视云科技有限公司 | 一种处理操控信号的方法及设备 |
RU2733488C1 (ru) * | 2020-03-24 | 2020-10-01 | Общество с ограниченной ответственностью "Игровые решения" (ООО "Игровые решения") | Способ и система отображения курсора при трансляции видеопотока |
WO2021221612A1 (en) * | 2020-04-28 | 2021-11-04 | Google Llc | Adjusting rendered content for display at a client |
US20230173382A1 (en) * | 2020-05-13 | 2023-06-08 | Google Llc | Level changing in a game streaming system |
CN112702625B (zh) * | 2020-12-23 | 2024-01-02 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及存储介质 |
EP4347071A1 (en) * | 2021-05-28 | 2024-04-10 | Microsoft Technology Licensing, LLC | Providing personalized content for unintrusive online gaming experience |
CN115953543B (zh) * | 2023-03-14 | 2023-05-12 | 北京天图万境科技有限公司 | 一种逐像素含时序拟物一致性处理的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4261211B2 (ja) * | 2003-02-10 | 2009-04-30 | 株式会社バンダイナムコゲームス | ゲーム装置及び情報記憶媒体 |
CN101777192A (zh) * | 2008-12-22 | 2010-07-14 | 通用电气公司 | 图像重构系统和方法 |
CN101966393A (zh) * | 2009-07-16 | 2011-02-09 | 索尼计算机娱乐美国有限责任公司 | 显示器观看系统和基于活动跟踪优化显示器画面的方法 |
CN102145228A (zh) * | 2010-02-05 | 2011-08-10 | Pc概念有限公司 | 使用视频录像构建交互式视频游戏的方法和装置 |
CN102428697A (zh) * | 2009-03-23 | 2012-04-25 | 生命力有限公司 | 用于将前向纠错与视频压缩一起使用的系统和方法 |
CN102737405A (zh) * | 2011-03-31 | 2012-10-17 | 索尼公司 | 图像处理设备、图像处理方法和程序 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5422674A (en) * | 1993-12-22 | 1995-06-06 | Digital Equipment Corporation | Remote display of an image by transmitting compressed video frames representing background and overlay portions thereof |
JP4040117B2 (ja) * | 1995-06-30 | 2008-01-30 | ソニー株式会社 | ゲーム機及びゲーム機制御方法 |
JP2001137551A (ja) * | 1999-11-11 | 2001-05-22 | Namco Ltd | ゲームシステム及び情報記憶媒体 |
US7360234B2 (en) * | 2002-07-02 | 2008-04-15 | Caption Tv, Inc. | System, method, and computer program product for selective filtering of objectionable content from a program |
JP2004193809A (ja) * | 2002-12-10 | 2004-07-08 | Matsushita Electric Ind Co Ltd | 通信装置 |
KR20060121207A (ko) * | 2003-12-19 | 2006-11-28 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 인터랙티브 비디오 |
US20050212968A1 (en) * | 2004-03-24 | 2005-09-29 | Ryal Kim A | Apparatus and method for synchronously displaying multiple video streams |
JP4683615B2 (ja) * | 2005-01-14 | 2011-05-18 | 株式会社バンダイナムコゲームス | ネットワークランキングシステム及びプログラム |
JP4312732B2 (ja) * | 2005-03-31 | 2009-08-12 | 株式会社スクウェア・エニックス | 情報表示制御装置及び方法、プログラム、並びに記録媒体 |
GB2447095B (en) * | 2007-03-01 | 2010-07-28 | Sony Comp Entertainment Europe | Entertainment device and method |
KR20090002789A (ko) * | 2007-07-04 | 2009-01-09 | 김연호 | 인터넷 대전 게임을 이용한 언어 학습 장치 및 그 방법 |
US8385658B2 (en) * | 2007-07-27 | 2013-02-26 | Sportvision, Inc. | Detecting an object in an image using multiple templates |
US20090102616A1 (en) * | 2007-10-22 | 2009-04-23 | Microsoft Corporation | Time-based access control for an entertainment console |
EP2263190A2 (en) * | 2008-02-13 | 2010-12-22 | Ubisoft Entertainment S.A. | Live-action image capture |
JP5308727B2 (ja) * | 2008-06-17 | 2013-10-09 | 株式会社ソニー・コンピュータエンタテインメント | ゲーム装置 |
US8926435B2 (en) * | 2008-12-15 | 2015-01-06 | Sony Computer Entertainment America Llc | Dual-mode program execution |
US8676949B2 (en) * | 2009-11-25 | 2014-03-18 | Citrix Systems, Inc. | Methods for interfacing with a virtualized computing service over a network using a lightweight client |
JP5520190B2 (ja) * | 2010-10-20 | 2014-06-11 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理システム、画像処理方法、動画像送信装置、動画像受信装置、プログラム及び情報記憶媒体 |
US9264515B2 (en) * | 2010-12-22 | 2016-02-16 | Intel Corporation | Techniques for mobile augmented reality applications |
US20120269494A1 (en) * | 2011-04-22 | 2012-10-25 | Qualcomm Incorporated | Augmented reality for live events |
-
2013
- 2013-11-13 BR BR112015011245-5A patent/BR112015011245B1/pt active IP Right Grant
- 2013-11-13 CN CN201810311357.XA patent/CN108525299B/zh active Active
- 2013-11-13 RU RU2015122884A patent/RU2617914C2/ru active
- 2013-11-13 JP JP2015542754A patent/JP6178426B2/ja active Active
- 2013-11-13 KR KR1020157015930A patent/KR101703061B1/ko active IP Right Grant
- 2013-11-13 EP EP13801921.1A patent/EP2919874B1/en active Active
- 2013-11-13 CA CA3014348A patent/CA3014348C/en active Active
- 2013-11-13 WO PCT/US2013/069947 patent/WO2014078452A1/en active Application Filing
- 2013-11-13 CA CA2890814A patent/CA2890814C/en active Active
- 2013-11-13 IN IN3768DEN2015 patent/IN2015DN03768A/en unknown
- 2013-11-13 MX MX2015006200A patent/MX346529B/es active IP Right Grant
- 2013-11-13 CN CN201380064775.9A patent/CN104870063B/zh active Active
-
2017
- 2017-07-13 JP JP2017136744A patent/JP6560716B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4261211B2 (ja) * | 2003-02-10 | 2009-04-30 | 株式会社バンダイナムコゲームス | ゲーム装置及び情報記憶媒体 |
CN101777192A (zh) * | 2008-12-22 | 2010-07-14 | 通用电气公司 | 图像重构系统和方法 |
CN102428697A (zh) * | 2009-03-23 | 2012-04-25 | 生命力有限公司 | 用于将前向纠错与视频压缩一起使用的系统和方法 |
CN101966393A (zh) * | 2009-07-16 | 2011-02-09 | 索尼计算机娱乐美国有限责任公司 | 显示器观看系统和基于活动跟踪优化显示器画面的方法 |
CN102145228A (zh) * | 2010-02-05 | 2011-08-10 | Pc概念有限公司 | 使用视频录像构建交互式视频游戏的方法和装置 |
CN102737405A (zh) * | 2011-03-31 | 2012-10-17 | 索尼公司 | 图像处理设备、图像处理方法和程序 |
Also Published As
Publication number | Publication date |
---|---|
KR20150086499A (ko) | 2015-07-28 |
MX2015006200A (es) | 2015-12-09 |
KR101703061B1 (ko) | 2017-02-06 |
RU2015122884A (ru) | 2017-01-10 |
CN104870063A (zh) | 2015-08-26 |
BR112015011245A8 (pt) | 2022-08-16 |
CA2890814A1 (en) | 2014-05-22 |
RU2617914C2 (ru) | 2017-04-28 |
MX346529B (es) | 2017-03-22 |
EP2919874A1 (en) | 2015-09-23 |
JP6178426B2 (ja) | 2017-08-09 |
JP2016505291A (ja) | 2016-02-25 |
IN2015DN03768A (zh) | 2015-10-02 |
CA2890814C (en) | 2019-07-02 |
BR112015011245A2 (pt) | 2019-12-17 |
EP2919874B1 (en) | 2022-04-13 |
JP2018023767A (ja) | 2018-02-15 |
CN104870063B (zh) | 2018-05-04 |
BR112015011245B1 (pt) | 2023-03-28 |
WO2014078452A1 (en) | 2014-05-22 |
CA3014348A1 (en) | 2014-05-22 |
JP6560716B2 (ja) | 2019-08-14 |
CN108525299A (zh) | 2018-09-14 |
CA3014348C (en) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108525299B (zh) | 一种用于增强远程服务的计算机应用的系统和方法 | |
US9707485B2 (en) | Systems and methods for cloud processing and overlaying of content on streaming video frames of remotely processed applications | |
US11210807B2 (en) | Optimized shadows in a foveated rendering system | |
US10740951B2 (en) | Foveal adaptation of particles and simulation models in a foveated rendering system | |
US9965253B2 (en) | Methods and systems for generation and execution of miniapp of computer application served by cloud computing system | |
EP2750032B1 (en) | Methods and systems for generation and execution of miniapp of computer application served by cloud computing system | |
US11222444B2 (en) | Optimized deferred lighting in a foveated rendering system | |
US9349201B1 (en) | Command sentinel | |
JP7050883B2 (ja) | 中心窩レンダリングシステムにおける、遅延ライティングの最適化、パーティクルの中心窩適応、及びシミュレーションモデル | |
US11107183B2 (en) | Adaptive mesh skinning in a foveated rendering system | |
US20240115957A1 (en) | Systems and methods for applying a modification microservice to a game instance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |