用于执行视频压缩的计算机实施的方法及系统
2019-11-22

用于执行视频压缩的计算机实施的方法及系统

提供用于执行视频压缩的计算机实施的方法和系统。方法包括:响应于在用户正在玩视频游戏时正由用户致动的客户端设备的输入设备,在客户端设备处从用户输入设备接收输入;将来自用户设备的控制信号通过互联网或通过绕过互联网的最佳高速网络服务从客户端设备传送至主机服务;响应于在用户玩视频游戏时从客户端设备接收的控制信号,在主机服务处的服务器上执行视频游戏;由服务器生成所执行视频游戏的视频,该视频包含多个视频帧;使用第一编码器根据第一编码格式对多个视频帧进行编码;通过网络将多个经编码的多个视频帧传送给客户端设备;在客户端设备上解码并播放视频;以上操作在感知上无有意义的延迟地被执行,就好像视频游戏在本地执行。

在另一实施例中,I帧以一致的周期数(例如总是每8个帧)被编码入HQ流中,用户可用于快进和倒回的倍速就是I-帧周期数的精确倍数,所述快进和倒回比I-帧速率更快。例如,如果I-帧周期数是8帧,则使得用户可用的快进或倒回速度可能是IX,2X,3X,4X,8X,16X,64X和128X以及256X。对于比I-帧周期数更快的速度,解码器将首先以该速度向前跳转到一定数量的帧之前的最接近的I-帧(例如,如果当前所显示的帧比I-帧领先3帧,则以128X,解码器将跳到靠前128+3帧的帧),之后对于每个后续的帧来说,解码器将随着所选速度(例如以128X的所选速度,解码器将跳转128帧)跳转精确数量的帧,每次它将精确地落在I-帧上。因此假定比I-帧周期数快的所有速度是I-帧周期数的精确倍数,解码器将永不需要解码任何先前或后继帧来寻找想要的帧,且仅需要针对每一显示的帧,解码一个I-帧。对于比I-帧周期数更慢的速度(例如:IX,2X,3X,4X),或者对于作为I-帧周期数的非倍数的更快速度,对于所显示的每个帧,解码器寻求一帧,该帧使得显示想要的帧所需要的额外新解码的帧的数量最少,该帧可为未解码的I-帧或且仍为解码形式的已解码的帧(在RAM或其他快速存储器中),之后,如果必要,可解码中间帧,直到想要的帧被解码和显示。例如以4X的速度快进,在具有8XI-帧周期数的I、P编码序列中,如果当前帧是靠后I-帧1帧的P-帧,而将被显示的想要的帧为4帧之后帧,其为之前的I-帧之后的第5fP-帧。如果当前显示的帧(其刚被解码)被用作起始点,该解码器将需要再解码4个P-帧来显示想要的帧。如果使用之前的I-帧,为了显示想要的帧,解码器将需要解码6帧(I-帧和随后的5个P-帧)。(明显地,在这种情况下,使用当前显示的帧来最小化需额外解码的帧是有利的)。之后,下一个将被解码的靠前4帧,为I-帧之后的第一个P-帧。这种情况下,如果当前解码的帧被用作起始点,解码器还需解码4个帧(2个P-帧、一个I-帧和一个P-帧)。但是,如果使用下一个I-帧来替代,解码器将仅需要解码I-帧和后续的P-帧。(明显地,在这种情况下,使用下一个I-帧作为起始点来最小化需额外解码的帧是有利的。)因此,在此实例中,解码器可在使用当前解码的帧作为起始点与使用随后的I-帧作为起始点之间交替。作为一主要原则,不管HQ视频流回放模式(快进、倒回或步进)和速度如何,对于该回放模式和速度下所显示的每个后续帧,解码器将从一使得显示想要的帧所需要的新解码的帧的数量最少的帧开始,即I-帧或之前解码的帧。

尽管由于在线或MMOG的性质而使得常常可减轻盗版,但在线游戏运营商仍面临其余挑战。许多游戏需要大量的本地(也即,家庭内)处理资源以供在线或MMOG适当地工作。若用户具有低性能的本地计算机(例如,不具有GHJ的计算机,诸如低端笔记本计算机),则其可能不能够玩该游戏。另外,随着游戏控制台老化,其远落后于目前技术状态且可能不能够处理更高级的游戏。即使假定用户的本地PC能够处理游戏的计算要求,常常也存在安装复杂度。可能存在驱动器不相容性(例如,若下载新游戏,则可能安装新版本的图形驱动器,其致使依赖于旧版本图形驱动器的先前已安装的游戏不可操作)。随着下载更多游戏,控制台可能用完本地磁盘空间。当发现缺陷并修复时或若对游戏进行了修改(例如,若游戏开发商发现游戏的级别太难玩或太容易玩),复杂游戏通常随着时间推移而从游戏开发商接收下载的补丁(patch)。该补丁需要新的下载。但有时并非所有用户完成所有补丁的下载。在其他时候,下载的补丁引入其他相容性或磁盘空间消耗问题。

消费者VCR的出现导致更多的消费者便利,因为现在VCR被设置为记录TV节目,其可在稍后时间观看,且VCR也导致视频租赁业的建立,其中电影以及TV节目设计可在“点播”基础上进行存取。自20世纪80年代中期以来的大众市场家庭媒体设备的快速开发已导致消费者的空前的选择及便利程度,且也导致媒体出版市场的快速扩张。

图17示出了在选择特定视频窗之后的图16的用户接口。

对于音频,客户端475具有左/右模拟立体RCA插孔,且对于数字音频输出,其具有TOSLINK(光纤)输出端。

图4c示出了根据一个实施例的客户端设备。

此类型压缩的一个问题在于:其减小了每个帧的数据速率,但其不利用连续帧之间的类似性来减小总视频流的数据速率。举例而言,如图5中所说明,假定640X480X24比特/像素=640*480*24/8/1024=900千字节/帧(KB/帧)的帧速率,则对于给定质量的图像,运动JPEG可能仅将该流压缩1/10,从而产生90KB/帧的数据流。在60帧/秒下,此将需要90KB*8比特*60帧/秒=42.2Mbps的信道带宽,其对于美国现今几乎所有的家庭互联网连接而言将为极高的带宽,且对于许多办公室互联网连接而言为过高的带宽。实际上,假定其在此种高带宽的情况下要求恒定数据流,且其将仅服务一个用户,则即使在办公室LAN环境中,其也将消耗IOOMbps以太网LAN的带宽的大百分比及支持LAN的负担沉重的以太网交换器。因此,当与其他压缩技术(诸如下文所描述的那些技术)相比较时,用于运动视频的压缩无效率。此外,使用有损压缩算法的单个帧压缩算法(如JPEG及JPEG-2000)产生在静止图像中可能不引人注意的压缩假影(例如,场景中的密集树叶内的假影可能不呈现为假影,因为眼并不确切地知道密集树叶应如何呈现)。但是,一旦场景在运动中,假影就可能突出,因为眼侦测到自帧至帧而改变的假影,尽管假影在场景的区域(在该区域中,假影在静止图像中可能不引人注意)中。此导致帧序列中的“背景噪音”的感知,该“背景噪音”的外观与边缘模拟TV接收期间可见的“雪花”杂音类似。当然,该类型的压缩仍可用于本文中所描述的特定实施例中,但一般而言,为了避免场景中的背景噪音,对于给定感知质量,需要高数据速率(也即,低压缩比率)。

PC上的应用程序软件及用户环境正变得更为计算上密集、动态及互动,不仅使其在视觉上更吸引用户,而且使其更有用及直观。举例而言,新WindowsVista(视窗远景)™操作系统与Macintosh8操作系统的后续版本两者并入了视觉动画效应。高级图形工具(诸如,来自Autodesk(欧特克)公司的Maya™(玛雅™))提供非常尖端的3D再现及动画制作能力(其推动了目前技术状态的CPU及GPU的限制)。然而,这些新工具的计算要求对于所述产品的用户及软件开发商而言产生了许多实际问题。

如上所述,在一个实施例中,主机服务210订阅图14的互联网旁路服务440以试图将得到保证的延时提供给其客户端。如本文中所使用的互联网旁路服务是提供自互联网上的一点至另一点的具有得到保证的特性(例如,延时、数据速率等)的私用网络路线的服务。举例而言,若主机服务210正使用在圣弗朗西斯科提供的AT&T的DSL服务接收来自用户的大量通信(而非路由至以AT&T的圣弗朗西斯科为基地的中央办公室),则主机服务210将在以圣弗朗西斯科为基地的中央办公室与用于主机服务210的服务器中心中的一或多者之间租用来自服务提供者(可能为AT&T本身或另一提供者)的高容量私用数据连接。接着,若自所有主机服务服务器中心HS1-HS6经由通用互联网至圣弗朗西斯科中使用AT&TDSL的用户的路线导致过高延时,则可改为使用私用数据连接。尽管私用数据连接通常比经由通用互联网的路线更昂贵,但只要其保持主机服务210的一小百分比连接至用户,总成本影响就低,且用户将体验到更一贯的服务体验。

用于执行视频压缩的计算机实施的方法及系统

提供用于执行视频压缩的计算机实施的方法和系统。方法包括:响应于在用户正在玩视频游戏时正由用户致动的客户端设备的输入设备,在客户端设备处从用户输入设备接收输入;将来自用户设备的控制信号通过互联网或通过绕过互联网的最佳高速网络服务从客户端设备传送至主机服务;响应于在用户玩视频游戏时从客户端设备接收的控制信号,在主机服务处的服务器上执行视频游戏;由服务器生成所执行视频游戏的视频,该视频包含多个视频帧;使用第一编码器根据第一编码格式对多个视频帧进行编码;通过网络将多个经编码的多个视频帧传送给客户端设备;在客户端设备上解码并播放视频;以上操作在感知上无有意义的延迟地被执行,就好像视频游戏在本地执行。

网页载入的加速

在线游戏系统中的状态管理

相比之下,图IOb说明用于将图像块智能地封装于分组内以减少分组丢失的效应的图像块封装逻辑1010。首先,图像块封装逻辑1010将图像块与分组边界对准。因此,图像块1133、了437及了2分别与分组1001-1005的边界对准。图像块封装逻辑也试图以可能的更有效的方式将图像块组合于分组内,而不越过分组边界。基于图像块中的每一者的大小,将图像块Tl与T6组合于一个分组1001中;将T3与T5组合于一个分组1002中;将图像块T4与T8组合于一个分组1003中;将图像块T8添加至分组1004;且将图像块T2添加至分组1005。因此,在此方案下,单个分组丢失将导致不多于2个图像块(而非如图IOa中所说明的3个图像块)的丢失。

例如,图25a_b示出了本发明的一个实施例,其中在客户端设备205和主机服务210之间建立反馈信道2501。客户端设备205使用该反馈信道2501发送成功接收的图像块/帧的分组化确认和/或不成功接收的图像块/帧的指示。

背景技术

主机服务210极其适合于锦标赛。因为无游戏在本地客户端中执行,所以不存在用户作弊的机会(例如,在现有技术的锦标赛中,他们可能通过修改运行于他们本地PC上的游戏副本来给予他们不公平的好处)。而且,由于输出路由1540多播UDP流的能力,使得主机服务210能够同时向观众中的数千人或更多广播较大锦标赛。

若用户单击其输入设备上的启动按钮,则在继续播放现场直播视频的同时,其将看见黄色帧中的缩略图视频放大为全屏幕大小。该效果显示在图17中的过程中。注意,视频窗1700的大小增大。为了实施该效果,应用程序/游戏服务器1521-1525从运行选定的游戏的应用程序/游戏服务器1521-1525请求具有路由到其的游戏的全屏幕大小(以用户的显示设备422的分辨率)的视频流的复本。执行游戏的应用程序/游戏服务器1521-1525通知共用硬件压缩器1530不再需要游戏的缩略图大小的复本(除非另一应用程序/游戏服务器1521-1525需要这种缩略图),且接着其指引共用硬件压缩器1530将视频的全屏幕大小的复本发送至放大视频的应用程序/游戏服务器1521-1525。玩该游戏的用户可或可不具有分辨率与将游戏放大的用户的所述显示设备的分辨率相同的显示设备422。另外,游戏的其他观看者可或可不具有分辨率与将游戏放大的用户相同的显示设备422(且可具有不同的音频回放装置,例如,立体声或环绕音效)。因此,共用硬件压缩器1530确定是否已经产生满足请求视频/音频流的用户的要求的合适的经压缩视频/音频流,且若合适的经压缩视频/音频流确实存在,则共用硬件压缩器1530通知出埠路由1540将该流的复本路由至放大该视频的应用程序/游戏服务器1521-1525,且若合适的经压缩视频/音频流不存在,则压缩视频的适合于所述用户的另一复本并指导出埠路由将该流发送回至入埠路由1502及放大该视频的应用程序/游戏服务器1521-1525。现在接收选定视频的全屏幕版本的该服务器将解压缩该全屏幕版本并将其逐渐地按比例放大至全大小。

音频解压缩子系统488或者使用可用的标准音频解压缩器来实施,或者其可实施为IP,或者可在可(例如)实施Vorbis音频解压缩器(可在Vorbis.com上找到)的控制处理器483内实施音频解压缩。

实施例可包括如上文所阐述的各种步骤。所述步骤可体现于引起通用或专用处理器执行特定步骤的机器可执行指令中。已将与这些基本原理无关的各种元件(诸如,计算机存储器、硬碟机、输入设备)从图中省去以避免混淆相关方面。

注意,用于每个服务器的压缩过程的状态的一部分包括关于压缩本身的信息,诸如先前帧的经解压缩的帧缓冲数据(其可用作用于P图像块的参考)、视频输出的分辨率;压缩的质量;图像块结构;每图像块的比特的分配;压缩质量、音频格式(例如,立体声、环绕音效、DolbfAC-3(^:&e)AC-3)。但是压缩过程状态也包括关于以下的通信信道状态信息:峰值数据速率941,及先前帧(如图9b中所说明)当前是否正被输出(且因此应忽略当前帧),及潜在地是否存在应在压缩中考虑的(诸如,过多分组丢失)影响压缩决策(例如,在I图像块的频率方面,等)的信道特性。因为峰值数据速率941或其他信道特性随着时间而改变,如由支持每个用户监视从客户端415发送的数据的应用程序/游戏服务器1521-1525所确定的,所以应用程序/游戏服务器1521-1525将相关信息发送至共用硬件压缩1530。