尤其用于视频游戏的使用提示的基于感兴趣区域的视频编码的制作方法

文档序号:11848368阅读:414来源:国知局
尤其用于视频游戏的使用提示的基于感兴趣区域的视频编码的制作方法与工艺

视频数据被例行地通过诸如互联网等网络传送到遍布世界的消费者。视频数据由某种类型的软件应用生成。视频数据随后在由编码器编码后被传送到接收系统(即,客户端)。接收系统随后对经编码的帧进行解码并将其显示给用户。视频编码器通常如同从这些从软件应用接收这些帧那样顺序地对这些帧进行编码。编码器对这些帧进行编码,而无需关于帧的实际内容的任何知识,也无需关于该帧中实际上正发生什么的任何概念。编码过程通常使这些帧的视觉质量降级。

简要概述

本文中描述的各实施例涉及响应于补充编码指令对各帧进行编码、提供帧的编码信息以及编译包括编码提示的软件代码。在一个实施例中,响应于访问与帧相关联的帧信息,计算机系统将帧信息解释为用于对该帧的指定部分进行编码的补充编码指令。计算机系统随后对该帧进行编码,使得该帧的指定部分根据补充编码指令来编码。

在另一实施例中,计算机系统访问对应于帧的帧信息。计算机系统从所访问的帧信息中确定该帧的至少一部分将按指定方式来编码。计算机系统随后生成标识该帧中将按指定方式来编码的各部分的补充编码指令,并使得该补充编码指令被提供给编码器。

在再一实施例中,计算机系统接收应用内容的指定部分将按指定方式来编码的指示。计算机系统将指示应用内容的指定部分将如何被渲染和编码的应用代码添加到应用。计算机系统随后对该应用进行编译,使得经编译的应用在被执行时将指示应用内容的指定部分将如何被编码的信息提供给处理器或提供给被配置成对该应用内容进行编码的第二应用。

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。

本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本描述对本领域的技术人员将是显而易见的,或可通过对此处的原理的实践来获知。此处所描述的各实施例的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。通过下列描述以及所附的权利要求,此处所描述的各实施例的特征将变得更加显而易见。

附图简述

为进一步阐明此处所描述的各实施例的上述及其它特征,将参考附图,呈现更具体的描述。应该理解,这些附图只描述了此处所描述的各实施例的示例,因此,不应该被视为限制其范围。将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:

图1解说其中可操作本文中描述的各实施例(包括响应于补充编码指令对帧进行编码)的计算机体系结构。

图2解说用于响应于补充编码指令对帧进行编码的示例方法的流程图。

图3解说用于提供帧的编码信息的示例方法的流程图。

图4解说用于编译包括编码提示的软件代码的示例方法的流程图。

图5解说其中根据帧信息来编码帧的计算体系结构。

图6A和6B解说其中示出了不同帧的感兴趣区域的实施例。

图7解说其中指示了平视显示器的感兴趣区域的实施例。

详细描述

本文中描述的实施例涉及响应于补充编码指令对帧进行编码、提供帧的编码信息以及对包括编码提示的软件代码进行编译。在一个实施例中,响应于访问与帧相关联的帧信息,计算机系统将帧信息解释为用于对该帧的指定部分进行编码的补充编码指令。计算机系统随后对该帧进行编码,使得根据补充编码指令来对该帧的指定部分进行编码。

在另一实施例中,计算机系统访问对应于帧的帧信息。计算机系统从所访问的帧信息确定该帧的至少一部分将以指定方式被编码。计算机系统随后生成标识该帧中将以该指定方式来编码的各部分的补充编码指令,并使得补充编码指令被提供给编码器。

在又一实施例中,计算机系统接收应用内容的指定部分将以指定方式被编码的指示。计算机系统将指示应用内容的指定部分将如何被编码的应用代码添加到应用。计算机系统随后编译该应用,使得经编译的应用在被执行时将指示应用内容的指定部分将如何被编码的信息提供给处理器或提供给被配置成对应用内容进行编码的第二应用。

下面的讨论现在涉及可被执行的多个方法和方法动作。值得注意的是,虽然可以以某一顺序讨论或在流程图中按特定顺序发生而示出了方法动作,但是,没有特定顺序是一定需要的,除非特别声明,或者是必需的,因为在一个动作被执行之前该动作取决于另一动作被完成。

本文中描述的实施例可实现各种类型的计算系统。这些计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理且有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理且有形的存储器。计算系统可以分布在网络环境中,并可包括多个组分计算系统。

如图1中例示的,计算系统101通常包括至少一个处理单元102A和存储器103A。存储器103A可以是物理系统存储器,该物理系统存储器可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”也可在此用来指示诸如物理存储介质这样的非易失性大容量存储器。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。

如本文中所使用的,术语“可执行模块”或“可执行组件”可以指可以在计算系统上执行的软件对象、例程或方法。此处所描述的不同组件、模块、引擎以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。

在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可被存储在计算系统101的存储器103A中。计算系统101还可包含允许计算系统101通过有线或无线网络与其它消息处理器通信的通信信道。

在此描述的各实施例可包括或利用专用或通用计算机系统,该专用或通用计算机系统包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。系统存储器可被包括在整体存储器103A内。系统存储器还可被称为“主存储器”,并且包括可被至少一个处理单元102A在存储器总线上被寻址的存储器位置,在这种情况下地址位置被声明在存储器总线自身上。系统存储器传统上是易失性的,但本文中描述的原理还应用于其中系统存储器部分或者甚至全部是非易失性的情况。

本发明范围内的各实施例也包括用于实现或存储计算机可执行指令和/或数据结构的实体及其它计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令和/或数据结构的计算机可读介质是计算机存储介质。承载计算机可执行指令和/或数据结构的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。

存储计算机可执行指令和/或数据结构的计算机存储介质是物理硬件存储介质。物理硬件存储介质包括计算机硬件,诸如RAM、ROM、EEPROM、固态驱动器(“SSD”)、闪存、相变存储器(“PCM”)、光盘存储、磁盘存储或其它磁存储设备、或可用于存储计算机可执行指令或数据结构形式的程序代码的任何其它硬件存储介质,其可由通用或专用计算机系统访问来实现本发明公开的功能。

传输介质可包括可用于携带计算机可执行指令或数据结构形式的程序代码并可由通用或专用计算机系统访问的网络和/或数据链路。“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机系统时,该计算机系统将该连接视为传输介质。上述的组合应当也被包括在计算机可读介质的范围内。

此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以在网络接口模块(例如,“NIC”)内的RAM中被缓冲,然后最终被传输至计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。

计算机可执行指令例如包括,当在一个或多个处理器处执行时使通用计算机系统、专用计算机系统、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。

本领域的技术人员将理解,本文中描述的原理可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、平板、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。如此,在分布式系统环境中,计算机系统可包括多个组成部分计算机系统。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。

本领域技术人员还将理解本发明可在云计算环境中实践。云计算环境可以是分布式的,但这不是必须的。在分布时,云计算环境可以国际性地分布在一个组织内,和/或具有跨多个组织拥有的组件。在该说明书和下面的权利要求书中,“云计算”被定义为用于允许对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可从这样的模型(在被合适地部署时)中获得的任何其它多个优点。

更进一步,此处所描述的系统架构可包括多个独立组件,每一组件都对作为整体的系统的功能有贡献。当开始考虑平台可伸缩性的问题时,此模块性允许提高灵活性,为此,提供各种优点。可以通过使用带有有限的功能范围的较小规模部件,比较轻松地管理系统复杂性和增长。通过使用这些松散耦合的模块,增强平台容错。随着业务需要规定,单个组件可以增量地增长。对于新的功能,模块化开发还转换为缩短的上市时间。可以添加或减去新功能,而不会影响核心系统。

图1示出了其中可以采用至少一个实施例的计算机架构100。计算机架构100包括计算机系统101。计算机系统101和113可以是任何类型的本地或分布式计算机系统,包括云计算系统。每一个包括至少一个处理器102A/102B、存储器103A/103B以及通信模块104A/104B。通信模块可包括有线或无线通信装置,有线或无线通信装置包括有线或无线网卡、蓝牙无线电、WiFi无线电或被配置成传送和/或接收数字数据的其他硬件。通信模块104A例如可从计算机系统113的通信模块104B接收经编码的帧112。

在一些实施例中,计算机系统113可以是服务器。服务器可以是单个计算机系统或者可以是分布式的。服务器可被配置成向诸如计算机系统101之类的客户端提供数据。服务器可响应于输入或对数据的其他请求(例如,响应于来自用户105的输入)而向客户端提供应用数据。在一些情况下,计算机系统113可以是视频游戏服务器。在这样的情况下,视频游戏服务器可被配置成提供具有视频游戏内容的帧(例如,经编码的帧112)。这些帧通常以某种方式被编码,并在数据分组中被传输。帧可以按连续流传送方式被发送,以便形成连续帧序列,以形成运动图片。在游戏场景中,该帧流将形成视频游戏输出。应当理解,尽管本文中频繁地提及视频游戏实施例,但视频游戏实施例仅仅是其中视频内容从一个计算机系统被传输(即,流传送)到另一计算机系统的多个可能实施例中的一个示例。

在许多视频游戏中,视频游戏的内容不断地改变。例如,在冒险游戏中,用户可行进通过许多不同的世界,这些世界中的每一者可具有不同的外观和感觉,每一等级具有不同的敌人、景色等。这对于第一人称射击游戏、赛车游戏、角色扮演游戏和其他游戏同样适用。每一等级可具有不同的细节等级,并可具有变化的细节等级。一些等级可例如具有较低的交互性等级,并可由此提供较高的视觉质量等级。另一方面,等级或等级的一部分可具有非常高的交互性等级,并可由此将低等待时间的优先级排在高质量图形之上。在一些情况下,可存在屏幕或帧中游戏玩家或其他查看者可能尤其感兴趣的某些区域。例如,如果第一人称射击游戏中的用户从很远瞄准所选目标并向该目标射击,则该用户可能希望将附加细节给予子弹命中周围的区域。用户可能较不关注屏幕的其余部分,并且可能较关注那个区域。在本文中,这样的区域将被称为“关注区域”或“感兴趣区域”。

视频游戏(或其他应用)编程器可能能够在给定时间为给定游戏提供关于这些感兴趣区域将在何处的提示。例如,可将附加编码比特分配给感兴趣区域以将较高等级的视觉保真度提供给那个区域(以及或许提供给感兴趣区域周围的指定区域)。编程器可由此在游戏本身中提供这些提示。这些提示可随后被提供给最后对游戏的视频帧进行编码的编码器。通过这种方式,视频游戏本身可提供向编码器提示经编码视频的附加比特应当被分配在何处的因游戏而异的感兴趣区域。编程器/视频游戏可例如指示该屏幕中平视显示器(HUD)信息在所有时间都应当可读的部分。视频游戏提示可由此指示玩家可能正看着屏幕上的何处。

这些提示可进一步提供关于屏幕上(即视频内容内)当前正在发生什么的指示。例如,显示器可当前正褪色为黑色/白色,或从黑色/白色褪色。附加地或替换地,屏幕当前可被拆分成多个区域,以支持本地多玩家,并且这些区域可被分开地或用不同的编码参数或设置来编码。此外,提示可指示3D相机正以给定速率在某个方向中移动。这些仅仅是提示信息可如何提供关于用户的屏幕上当前正在发生什么的指示的许多不同的示例中的几个示例。

游戏提示可进一步提供关于游戏的当前交互性状态的指示。例如,游戏可能当前正在显示非交互性或低交互性内容(例如,预先呈现的视频)。在这样的场景中,视频质量可能比等待时间更重要。在高度交互性模式中,低等待时间可能比高视频质量更重要。在其他场景中,诸如在显示菜单屏幕时,游戏可处于中等交互性模式。在这样的情况下,编程器可提供关于视频质量、等待时间或某个其他因素应当接收编码优先级还是它们应当接收相等的编码优先级的提示。

通过这种方式,游戏提供的感兴趣区域可被传递给编码器,使得编码器可以以与经编码的帧的其余部分相比更高的质量(具有更多比特)对这些区域进行编码。优先级可按使得较多比特被给予最重要的区域,一些比特被给予不那么重要的区域,且剩下的比特被给予其余区域的方式来应用。

褪色提示也可被用来向编码器指示应当使用加权预测来补偿褪色视频并对其进行更好的编码。拆分屏幕信息可被用来告知编码器不要尝试跨拆分边界的运动搜索,并用与典型块相比不同的设置来对跨越那些边界的块进行编码。相机运动信息可被用来向编码器提示它最可能在哪个方向寻找到运动搜索匹配,从而允许编码器更快速地寻找到更好的匹配。

交互性状态提示也可被用来偏袒视频编码质量,并指定正使用的缓冲量。低交互性状态允许较高的质量编码(例如,允许双向预测帧)和较多的缓冲,从而在用户只是观看游戏而没有与游戏进行交互时提供较平滑的、较高质量的视频。当(在玩游戏期间)游戏处于高交互性状态时,可使编码偏袒低最可能等待时间,即可能处于较低的质量并具有较少的缓冲。下面将分别进一步参考图2、3和4的方法200、300以及400来说明这些概念。

鉴于上文所描述的系统和架构,参考图2、3以及4的流程图,将更好地理解可以根据所公开的主题实现的方法。为了简洁起见,作为一系列框示出和描述了方法。然而,应了解和明白,所要求保护的主题不受方框的顺序的限制,因为某些方框可以按不同的顺序进行,和/或与此处所描绘和描述的其它方框同时进行。此外,并非所有的所示出的方框都是实现下面所描述的方法所必需的。

图2例示出用于响应于补充编码指令对帧进行编码的方法200的流程图。现在将频繁地参考环境100的组件以及数据来描述方法200。

方法200包括访问与至少一个帧相关联的帧信息的一个或多个部分的动作(动作210)。该动作可由处理器执行,或者可由计算系统结合存储用于执行该访问的计算机可执行指令的计算机可读介质来执行。帧信息可包括关于将如何对帧或帧序列的某些部分进行编码的提示。例如,如上所述,开发者可将帧的某些区域指示为感兴趣区域。在这样的情况下,这些感兴趣区域可接收附加的编码比特,使得感兴趣区域具有更高的视觉质量、更低的等待时间或两者。感兴趣区域还可接收如开发者所指定的其他类型的处理。如果帧信息114被存储在另一位置(例如,或许在数据库或其他数据存储上),计算机系统113的数据访问模块115可接收帧信息114或者可访问帧信息114。

方法200接着包括将帧信息的一个或多个部分解释为用于对帧的至少一部分进行编码的补充编码指令的动作(动作220)。帧信息114被数据解释模块116解释为补充编码指令117,并且被发送给编码模块118进行编码。如本文中所使用的,“补充编码指令”指代通过帧信息114添加的编码指令。编码模块118将通常已经被配置成响应于从诸如视频游戏之类的软件应用接收信息对帧进行编码。在这样的情况下,视频游戏引擎将提供视频游戏内容,该视频游戏内容将由编码模块118进行编码,并随后被解码成在显示器106上对用户105可见的经解码的帧119。在本文中的实施例中,编码模块118也可考虑通过帧信息(即,提示)114提供的补充编码指令117。通过这种方式,开发者或其他用户可提供作为通常由应用提供的图形信息的补充的编码提示。编码模块118随后对帧112进行编码,使得该部分(即,感兴趣区域)是根据补充编码指令来编码的(动作230)。

在一些情况下,帧信息114可影响整个帧或整个帧序列。在其他情况下,帧信息114可仅影响帧或帧序列的部分。。帧的该部分(即,感兴趣区域)可根据开发者所提供的帧信息114随每一帧动态地改变。例如,如图6A和6B所示,帧601A可具有在该帧的左上角处的感兴趣区域602A,而帧601B可具有接近其中心的感兴趣区域。在电影的情况下,该感兴趣区域可在特定对象新出现在屏幕上的地方,或对情节发展重要的某物正在发生的地方,或提供增加的戏剧效果的某物正在发生的地方,或导演可能希望查看者集中其注意力的地方。实际上,导演、应用开发者或其他用户可为每一帧规定感兴趣区域将在哪里、该区域是什么尺寸和形状、单个帧中是否存在多个感兴趣区域、该帧中的每一感兴趣区域中应当发生什么类型的处理、感兴趣区域应当应用于单个帧还是一系列帧等等。如本领域技术人员将理解的,使得各感兴趣区域被应用于帧的人具有自定义和定制每一帧或各帧系列的帧信息的能力。

在一些实施例中,如图5所示,图1的帧信息114可对应于视频游戏的帧。视频游戏可以是从服务器506(其可以是远程服务器)流传送的流传送视频游戏。服务器506可具有游戏引擎507,该游戏引擎507处理视频游戏代码并生成视频游戏内容508。视频游戏内容508被发送给编码器509(或多个编码器),其中视频游戏内容被编码成帧流505内的单个帧504。这一帧流505可通过有线或无线网络(例如,通过WiFi或因特网)被传送到客户端计算机系统501。客户端计算机系统501可包括显示模块502(其可与图1中的显示模块111相同或不同),该显示模块502接收经编码的帧、潜在地对这些帧执行某种类型的处理(例如,解码)、并将经解码的帧511发送给显示器503以供向查看者/玩家显示。视频游戏开发者可经由游戏应用代码内提供的附加代码将帧信息114提供给游戏引擎507,这将在以下结合图4中的方法400来进一步解释。

由此,在视频游戏上下文中,视频游戏开发者可提供关于帧的哪些部分应当接收额外(或不同类型的)编码比特的提示(即,帧信息114)。通过这种方式,游戏创作者可标识出感兴趣区域以提供更准确的渲染,同时在编码期间由于不需要图像分析来寻找感兴趣区域而节省了时间。帧信息还可提供对给定帧的视频游戏上下文的更一般的指示。例如,视频游戏创作者可指示在某些帧序列或游戏中的某些等级内在下雪。视频游戏创作者可添加帧信息114,该帧信息114被编码模块118解释为指示帧的多个部分将以随机模式改变以示出雪花正落下的补充编码指令。替换地,视频游戏创作者可指示帧序列正从帧的常规色彩褪色为全白或全黑屏幕。在这样的情况下,许多视频游戏对象保持静止,而仅色彩从彩色改变为白色或黑色。这可允许编码器在褪色序列期间将较高质量的优先级排在较低等待时间之上。

许多其他类型的视频游戏上下文可被提供,以通常帮助编码器对帧序列中的某些帧进行编码。例如,帧信息114可指示游戏(或其他应用)内的相机视图正以某个方向或模式(例如,从右到左、从左到右、从上到下或从下到上、对角线地等等)移动。相机视图信息可允许编码器知道帧的哪些部分仅改变了一个方向或其他,而不是完全是新的。在一些情况下,相机可以是3D相机,并且由此帧信息114可包括深度信息(z轴)以及x轴和y轴信息。该视频上下文帧信息可以是指定感兴趣区域的帧信息的附加或替换。

感兴趣区域对给定等级、给定场景、给定游戏中视频、特定玩游戏序列、特定元素组合(例如,某些武器以及某些背景或敌人等)可以相同,或者可专用于如由帧信息114的提供者指定的其他元素。帧信息可指示初始感兴趣区域将是为帧112/504的一部分定义的,并且该感兴趣区域将随时间改变。例如,感兴趣区域可与视频游戏内容方面的改变相对应地随时间动态地改变。如以上所指示的,游戏开发者可指示哪些视频游戏内容改变触发感兴趣区域的改变。例如,赛车游戏可指定附加编码比特将被分配给屏幕上其中车祸已发生、或者轮胎正发出急刹车声、或者外墙被撞击的各区域,或者将在开发者所定义的其他情况下被分配。角色扮演游戏可指定附加编码比特将被用于玩家(例如,英雄)周围和敌人(例如终极老板)周围或其他游戏中对象周围的区域。感兴趣区域可由此针对每一经编码帧改变,如果游戏开发者这样指定的话。

一些游戏提供分屏模式,在分屏模式中,在水平拆分时,一个玩家在顶部屏幕中玩且一个玩家在底部屏幕上玩(或者在垂直拆分的情况下,在左和右屏幕中)。在这样的情况下,帧信息114可针对拆分屏幕的每一级别来提供。即,每一拆分级别可具有其自己的兴趣点以及其自己的描述编码比特在帧的各部分中将如何分布的帧信息(即提示)。例如,在分屏模式的赛车比赛中,顶部屏幕上的玩家可能用完了汽油,并且由此该游戏可在燃料区域周围闪光或闪烁。开发者可指示这可能是那个用户的感兴趣区域,并且使得顶部屏幕上的用户将具有在汽油表周围(可能在屏幕上的其他场所之中)的感兴趣区域。底部屏幕上的玩家可能具有很多汽油,但可能已发生车祸,并且由此可需要用于对用于描述该车祸的屏幕改变进行编码的更多编码比特。附加编码比特可均匀地分布在顶部和底部拆分屏幕之中,或者可被动态地分配。由此,如果一个拆分屏幕具有非常少的事情发生,且另一拆分屏幕上具有较多事情发生,则更多的比特可被分配给后一个拆分屏幕。如果游戏或应用内容改变为使得其他拆分屏幕具有更多活动,则编码比特的分配可相应地改变,以向每一拆分屏幕提供最优帧编码质量。

如图7中所示出的,来自图1的帧信息114可被用于指定平视显示器(HUD)信息中将被增强的各部分。例如,在帧701中,平视显示器702可包括寿命测定计703、武器指示器704和存储项指示器705。游戏玩家可能正在玩一游戏,在该游戏中,该玩家获取存储在存储项指示器705中的对象。那个对象可能正在闪烁,或者可在尺寸上临时变大,或者可以按某种其他方式突显出来。游戏的开发者可指示感兴趣区域706存在于该存储项周围,并且该存储区域将接收附加编码比特。如上所述,游戏开发者能够将HUD中的任何一个或多个区域指定为感兴趣区域,并且HUD上的感兴趣区域可随时间改变和/或可针对每一帧而改变。由此,通过这种方式,无论感兴趣区域在HUD的某区域上还是在帧的另一部分中,游戏开发者都可提供帧信息114以指示在给定时刻查看者最有可能看帧上的何处,并使得附加处理对那些区域被执行。

现在转向图3,示出了用于提供帧的编码信息的方法300的流程图。现在将频繁地参考环境100的组件以及数据来描述方法300。

方法300包括访问对应于至少一个帧的帧信息的一个或多个部分的动作(动作310)。例如,图1的数据访问模块115可访问对应于包括应用内容的一个或多个经编码的帧112的帧信息114。数据解释模块116可从所访问的帧信息中确定将按指定方式对该帧的至少一个部分进行编码(动作320)。例如,如上所述,开发者或其他用户可能能够指定将如何对帧(或其部分)进行编码。开发者可指定感兴趣区域,并可为那些感兴趣区域指定某些编码方法或编码优先级。通过这种方式,帧按开发者所指定的方式被编码。计算机系统113内的数据解释模块116(或另一模块)可生成标识将按指定方式来编码的帧的一个或多个部分的补充编码指令(动作330),并随后使得补充编码指令被提供给编码器(动作340)。由此,补充编码指令117可被发送给编码模块118(其自身可以是编码器或可包括编码器作为该模块的一部分),在编码模块118中,帧被编码并被传递给计算机系统101。计算机系统101的显示模块111可随后对(诸)经编码的帧进行解码以供在显示器106上显示。

在一些情况下,计算机系统1113可确定该帧对应于的应用的交互性状态。例如,计算机系统113可确定当前是否存在大量交互性(例如,用户105当前正在按压按钮和/或控制操作杆等),或者当前是否存在小量交互性(诸如在电影期间)。一旦与给定帧有关的交互性状态已被确定,补充编码指令就可被更改。例如,补充编码指令可指示帧上的感兴趣区域(例如,图6A的帧601中的602A)。交互性状态可被确定为高度活跃,并且由此,感兴趣区域可在尺寸方面被减小,或者附加编码比特的数目可被增加以适应所确定的高度交互性状态。类似地,如果交互性状态被确定为低,则感兴趣区域可在尺寸方面被增加,或者附加编码比特的数目可被减小以与确定的较低交互性状态一致。由此,补充编码指令可根据确定的当前交互性状态被更改。

此外,补充编码指令本身可取决于确定的交互性状态。在这样的情况下,开发者可指示感兴趣区域的数目可随交互性改变,或者尺寸可随交互性改变等等。在一些情况下,如果应用(诸如视频游戏)被确定为当前处于高度交互性状态,则低等待时间编码的优先级可被设为高于较高质量编码。此外,如果应用被确定为处于低交互性状态,则较高质量编码的优先级可被设为高于低等待时间编码。不同的编码技术或编码比特的不同应用也可用于高交互性或低交互性场景。通过这种方式,开发者可能够指定补充编码指令117可被改变,或者可取决于确定的与应用的交互等级。开发者可将帧信息114(即提示)添加到应用,如以下结合图4示出的。

图4示出用于编译包括编码提示的软件代码的方法400的流程图。现在将频繁地参考环境100的组件以及数据来描述方法400。

方法400包括接收将按指定方式对应用内容的一个或多个部分进行编码的指示的动作(动作410)。例如,开发者或其他用户105可指示将按用户所指定的方式对帧上的各感兴趣区域进行编码。用户可经由来自那个用户的输入将该指示提供给计算机系统101。计算机系统随后将应用代码108添加到应用107,其中所添加的应用代码包括指示将如何对应用内容的指定部分进行编码的信息109(动作420)。这一信息109可与最终被提供给数据访问模块115的帧信息114相似或相同。计算机系统101的编译模块110可随后对该应用进行编译,使得经编译的应用在被执行时提供信息109,该信息109向处理器或被配置成对应用内容进行编码的第二应用指示应用内容的指定部分将如何被编码(动作430)。

由用户105提供的信息109可以是指示将如何对帧内容的特定部分进行编码的提示。该提示信息可被集成到应用的代码(例如,视频游戏的代码)中,使得当另一应用(例如,游戏引擎507)或另一处理器(例如,计算机系统113的103B)访问该游戏代码时,提示信息109已成为该游戏代码的一部分。随后,游戏引擎可访问帧信息并按开发者所指定的方式对视频游戏(或其他应用内容)帧进行编码。开发者可指定应用内容的各部分将基于视频游戏内容、基于帧内发生的某些事务(例如,某些相机移动、或某些角色或某些移动等)、或基于其他因素被动态地改变。开发者可指定屏幕的哪些区域最可能在游戏、电影或应用的那个点处被查看到,以及哪些区域应当接收附加的和/或不同类型的处理。

相应地,提供了响应于补充编码指令对帧进行编码的方法、系统和计算机程序产品。此外,提供了提供帧的编码信息并对包括编码提示的软件代码进行编译的方法、系统和计算机程序产品。

此处所描述的概念和特征可以以其它特定形式实现,而不背离其精神或描述性的特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1