控制显示性能的制作方法

文档序号:16596196发布日期:2019-01-14 19:40阅读:191来源:国知局
控制显示性能的制作方法

本申请是要求于2016年6月3日提交的未决美国临时申请no.62/345,539和均于2016年6月10日提交的美国临时申请no.62/348,622、no.62/348,626、no.62/348,631的权益的非临时申请,这些临时申请据此以引用方式并入本文。



背景技术:

传统显示系统以恒定刷新速率操作,其中显示图像以每秒固定数量的周期更新。此固定显示刷新速率可能会在显示某些内容时产生回放问题。例如,具有60hz刷新速率的显示面板在观看24hz电影时表现出帧抖动,因为面板每16.6ms刷新一次,而帧是使用41.6ms采样时间生成的,这是帧持续时间的不均匀的(例如,2.5)倍数。因此,一些帧由显示器扫描两次,而其他帧被扫描三次。

虽然一些传统显示器允许面板刷新速率降低到固定刷新速率,但视觉质量可能受损。例如,当显示刷新速率对于所显示的内容而言太低时,可能将模糊引入到动画或移动内容中。在面板上移动高空间频率图像(诸如,在滚动网页或文本文档时显示的文本)在以低速率刷新时显得模糊。通常,显示设备的刷新速率越高,显示的动画越清晰。因此,在具有120hz刷新速率的显示器上显示的运动图像可产生明显更清晰的图像,并且可允许滚动图像上的文本在此类文本在较低刷新速率下模糊不清晰的情况下是清晰的。

另外,更高的刷新显示提供除时间视觉质量之外的益处。例如,对于触摸输入显示器,触摸输入和显示触摸输入的结果之间的延迟最终可通过在显示器上呈现新的更新帧的速度来进行门控。例如,如果显示器以60hz刷新,则基于触摸输入生成的新帧可能必须等到下一个16ms周期的开始。假如新帧准备好显示,120hz显示器将响应时间缩短了60hz显示器的一半。

然而,在大多数设备中,尤其是移动设备和手持设备中,显示硬件消耗了设备的大量总能量预算。增加刷新速率可进一步增加操作显示器的已经很大的能量需求。例如,在一些显示器中,以120hz而不是显示器通常支持的标准60hz操作显示器可能导致显示器功率要求增加高达150%。因此,对于移动设备而言,高显示刷新会对基于电池的操作时间产生显著的负面影响。



技术实现要素:

描述了各种实施方案以使得能够通过更高的刷新速率来提供改进的视觉质量,同时平衡增加的刷新速率的额外能量需求。

一个实施方案提供了一种显示系统,用于在显示设备上生成并显示数据,该显示系统包括一个或多个图形处理器,该一个或多个图形处理器用于生成一个或多个数据帧以用于在显示设备上显示;显示逻辑,该显示逻辑用于接收显示一个或多个数据帧的请求,该请求包括要显示一个或多个数据帧的所请求的呈现时间;和显示引擎,该显示引擎用于将一个或多个数据帧呈现给显示设备以用于在目标呈现时间显示,目标呈现时间从所请求的呈现时间得出,其中显示引擎用于基于一个或多个数据帧的目标呈现时间来调整显示设备的刷新速率。

一个实施方案提供了存储指令的非暂态机器可读介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行操作以在显示设备上生成并显示数据,所述操作包括接收在显示设备上显示一个或多个数据帧的请求,所述一个或多个数据帧经由一个或多个处理器生成,其中所述请求包括要显示一个或多个数据帧的所请求的呈现时间;基于所请求的呈现时间来得出目标呈现时间,基于显示引擎的编程时间来得出所述目标呈现时间;对显示引擎进行编程以将一个或多个数据帧呈现给显示设备以用于显示;以及,基于所述一个或多个数据帧的目标呈现时间来调整所述显示设备的刷新速率。

一个实施方案提供了一种电子设备,其包括可变刷新速率显示设备;一个或多个图形处理器,用于生成一个或多个数据帧以用于在可变刷新速率显示设备上显示;显示逻辑,用于接收显示一个或多个数据帧的请求,该请求包括要显示一个或多个数据帧的所请求的呈现时间;以及显示引擎,用于将一个或多个数据帧呈现给可变刷新速率显示设备以用于在目标呈现时间显示,目标呈现时间从所请求的呈现时间得出,其中显示引擎将基于一个或多个数据帧的目标呈现时间来调整可变刷新速率显示设备的刷新速率。

一个实施方案提供了一种显示系统,用于在显示设备上生成并显示数据,该显示系统包括一个或多个图形处理器,用于生成一个或多个数据帧以用于在显示设备上显示;显示引擎,用于将一个或多个数据帧呈现给显示设备以用于显示;显示逻辑,用于接收显示一个或多个数据帧的请求并基于该请求为显示引擎生成一个或多个显示事件,其中该请求包括指示所述一个或多个数据帧的复杂性的第一提示并且一个或多个显示事件包括从第一提示得出的第二提示;以及性能控制器,用于基于第二提示来调整显示系统的一个或多个性能相关的参数。

一个实施方案提供了存储指令的非暂态机器可读介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行包括以下项的操作:接收在显示系统的显示设备上显示一个或多个数据帧的请求,该请求包括指示一个或多个数据帧的复杂性的第一提示;基于所述请求来生成一个或多个显示事件,所述一个或多个显示事件包括从所述第一提示得出的第二提示;并且发信号通知与一个或多个处理器相关联的性能控制器,以基于第二提示调整一个或多个处理器的一个或多个性能相关的参数。

一个实施方案提供了一种电子设备,其包括具有可变刷新速率的显示设备;一个或多个图形处理器,用于生成一个或多个数据帧,以用于在显示设备上显示;显示引擎,用于将一个或多个数据帧呈现给显示设备以用于显示;显示逻辑,用于接收显示一个或多个数据帧的请求并基于该请求为显示引擎生成一个或多个显示事件,其中该请求包括指示一个或多个数据帧的复杂性的第一提示并且一个或多个显示事件包括从第一提示得出的第二提示;以及性能控制器,用于基于第二提示调整显示系统的一个或多个性能相关的参数。

一个实施方案提供了一种显示系统,用于在显示设备上生成并显示数据,该显示系统包括一个或多个图形处理器,用于生成一个或多个数据帧以用于在显示设备上显示;窗口管理器,用于提交显示一个或多个数据帧的请求;显示引擎,用于将一个或多个数据帧呈现给显示设备以用于显示;以及显示逻辑,用于接收显示一个或多个数据帧的请求并且基于显示一个或多个数据帧的请求为显示引擎生成一个或多个显示事件,其中显示逻辑用于管理与该请求相关联的一组统计信息并且周期性地将该组统计信息提交给窗口管理器,该组统计信息包括帧的所请求的呈现时间和在显示设备上显示该帧的实际显示时间。

一个实施方案例提供了存储指令的非暂态机器可读介质,所述指令在由电子设备的一个或多个处理器执行时使得所述一个或多个处理器执行包括以下项的操作:以第一帧速率生成一个或多个数据帧;向显示逻辑提交请求以显示所述一个或多个数据帧;在显示逻辑处接收该请求并基于该请求为显示引擎生成一个或多个显示事件;在显示引擎处处理显示事件以显示一个或多个数据帧;生成与处理显示事件相关联的一组统计信息,该组统计信息包括帧的所请求的呈现时间和在显示设备上显示该帧的实际显示时间;以及基于该组统计信息将第一帧速率调整为第二帧速率。

一个实施方案提供了一种电子设备,其包括具有可变刷新速率的显示设备;一个或多个图形处理器,用于生成一个或多个数据帧,以用于在显示设备上显示;窗口管理器,用于提交显示一个或多个数据帧的请求;显示引擎,用于将一个或多个数据帧呈现给显示设备以用于显示;以及显示逻辑,用于接收显示一个或多个数据帧的请求并且基于显示一个或多个数据帧的请求为显示引擎生成一个或多个显示事件,其中显示逻辑用于管理与该请求相关联的一组统计信息并且周期性地将该组统计信息提交给窗口管理器,该组统计信息包括帧的所请求的呈现时间和在显示设备上显示该帧的实际显示时间。

一个实施方案提供了一种在显示设备上生成并显示数据的方法,该方法包括接收输入以与经由显示器呈现的图像交互;响应于该输入生成帧序列,帧序列具有与显示设备的当前刷新速率无关的动画帧速率,该动画帧速率基于与该输入相关联的参数来确定;配置与帧序列相关联的显示事件,显示事件包括配置数据以配置显示引擎以显示帧序列中的一个或多个帧,帧序列中的每个帧具有基于动画帧速率的所请求的呈现时间;处理与帧序列中的第一帧相关联的第一显示事件,其中处理第一显示事件包括读取配置数据以配置显示引擎以显示第一帧;基于所请求的呈现时间在显示时间处将配置数据呈现给显示引擎;并基于显示时间动态地刷新显示设备以显示帧序列。

一个实施方案提供了存储指令的非暂态机器可读介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行包括以下项的操作:接收输入以与经由显示设备呈现的图像交互;响应于该输入生成帧序列,帧序列具有与显示设备的当前刷新速率无关的动画帧速率,该动画帧速率基于与输入相关联的参数确定;配置与帧序列相关联的显示事件,显示事件包括配置数据以配置显示引擎以显示帧序列中的一个或多个帧,帧序列中的每个帧具有基于动画帧速率的所请求的呈现时间;处理与帧序列中的第一帧相关联的第一显示事件,该处理包括读取配置数据以配置显示引擎以显示第一帧;基于所请求的呈现时间在显示时间处将配置数据呈现给显示引擎;以及基于显示时间动态地刷新显示设备,以显示帧序列。

一个实施方案提供了一种显示系统,其包括显示设备,用于显示包括第一图像的第一帧;输入设备,用于接收输入序列以与在第一帧内显示的第一图像交互;一个或多个图形处理器,用于生成在第二帧内显示的第二图像和在第三帧内显示的第三图像,所述第一帧具有第一请求的呈现时间并且所述第三帧具有第二请求的呈现时间;以及显示引擎,用于在第一请求的呈现时间处呈现第二帧以用于显示,在第二请求的呈现时间处呈现第三帧以用于显示,并使得显示设备动态刷新以显示第二帧和第三帧,其中显示器的刷新速率在第一帧、第二帧和第三帧的显示之间变化。

以上概述不包括本发明的所有方面的详尽列表。预期本发明包括可根据以上概述的各方面以及以下具体实施方式中所公开的那些的所有合适组合来实践的所有系统和方法。

附图说明

本发明以举例的方式进行说明,并且不限于各个附图的图形,在附图中类似的附图标号指示类似的元件,并且其中:

图1是根据实施方案的图形和显示系统的框图;

图2是根据实施方案的示出图形和显示子系统的框图;

图3是根据实施方案的图形和显示性能控制和反馈系统300的图示;

图4是根据实施方案的用于每帧呈现时间控制的系统的图示;

图5是根据实施方案的每帧统计信息的系统的图示;

图6是根据实施方案的可变帧速率动画的图示;

图7示出了用于电子设备上的启动和暂停操作的可变帧速率动画;

图8示出了用于电子设备上的解锁动画的可变帧速率动画;

图9是根据实施方案的可变帧速率合并的图示;

图10是根据实施方案的显示性能控制系统的框图;

图11是示出根据实施方案的显示性能控制逻辑的流程图;

图12是示出根据实施方案的显示性能控制提示逻辑的流程图;

图13是示出根据实施方案的基于显示性能控制反馈的动画帧速率调节过程的流程图;

图14是示出根据实施方案的显示性能控制可变动画速率逻辑的流程图;

图15是示出根据实施方案的由数据处理系统使用的多层软件架构的框图;

图16是计算系统的一个实施方案的框图。

图17是根据实施方案的用于移动设备的示例性网络操作环境的框图;以及

图18是根据实施方案的移动设备架构的框图。

具体实施方式

本文描述了一种系统和方法,用于实现由更高显示刷新速率提供的改进的视觉质量,同时平衡增加的刷新速率的额外能量需求。一个实施方案提供了一种基于要显示的内容来动态地控制显示性能的系统和方法。一个实施方案提供了硬件加速显示管理框架,其维持与缺乏显示性能管理硬件加速的传统系统的向后兼容性。实施方案实现了平滑的可显示帧生成和向显示设备的呈现。在这种情况下,平滑意味着在潜在的任意帧到达间隔处极低的抖动。

在本说明书中对“一个实施方案”或“实施方案”的引用是指结合该实施方案描述的特定特征、结构或特性可以被包括在本发明的至少一个实施方案中。在本说明书中的各个位置出现短语“在一个实施方案中”不一定都是指同一个实施方案。此外,在某些附图中详细示出了实施方案的具体细节,但在其他附图中以不同的细节示出。本领域普通技术人员将理解,针对一个实施方案示出和/或例示的细节可以与针对其他类似实施方案示出和/或例示的细节组合。在某些情况下,没有描述众所周知的或传统的细节以便提供对本发明的各种实施方案的简明讨论。

随后的附图中描绘的过程由处理逻辑执行,该处理逻辑包括硬件(例如,电路、专用逻辑)、软件(作为非暂态机器可读存储介质上的指令),或硬件和软件的组合。虽然下文按照某些顺序操作来描述该过程,但应当理解,所描述的某些操作可以不同的顺序执行。此外,某些操作也可并行执行而非按顺序执行。

在本文所描述的实施方案中,可经由包括跨软件和硬件的多个层的多个部件和子部件的显示架构来启用帧生成和显示。在一个实施方案中,这些部件包括显示内核驱动程序、三维(3d)图形应用程序编程接口(api)、用户输入框架、动画框架、窗口管理器、图形处理器和显示引擎。一些实施方案另外提供一个或多个实时处理器(rtp),该实施处理器被配置为执行显示性能管理逻辑。另外的实施方案提供了系统性能控制器,其管理并配置用于电子设备的处理和输入/输出(i/o)子系统的性能参数。

一个实施方案使系统能够在不引入抖动的情况下生成不同帧持续时间的帧。每个帧与显示系统满足的指定呈现时间相关联。显示引擎可被配置为在适当的时间刷新显示设备以匹配输入帧的动画速率。例如,3d游戏可以被配置为在逻辑时间0处生成帧,该逻辑时间0表示当前时间或者用于立即显示的帧。然后,3d游戏可将场景推进8ms,并立即生成时间戳为8ms的新帧。然后,3d游戏可将场景推进12ms并生成时间戳为20ms的帧。然后,系统上的显示驱动程序将在显示队列中看到三个帧,每个帧被指定用于不同的显示时间,其中帧之间具有不同的时间量。可在指定的呈现时间依次处理显示队列中的帧以发送到显示设备。然后,显示设备可动态刷新以匹配每个帧的刷新速率。

实施方案提供了多个软件元件的软件栈,其被配置为与硬件部件对接以实现显示系统。在一个实施方案中,软件元件包括:显示驱动器,用于对显示引擎进行编程以在显示设备上显示图像数据;窗口服务器,用于管理向显示驱动器提交应用数据;以及窗口客户端,用于生成用于显示的图像数据。

显示驱动器可响应于显示图像数据帧的请求,对显示引擎进行编程以在显示设备上显示图像数据。在一个实施方案中,显示驱动器管理包括用于在显示设备上呈现的帧的配置数据的队列。每个帧具有与帧的所请求的呈现时间相关联的相关联呈现时间戳。当当前时间与帧的目标呈现时间匹配时,即所请求的呈现时间减去考虑显示硬件的编程的时间量,显示驱动器可对硬件进行编程以显示帧。在一个实施方案中,帧的图像数据可包括用于显示的单个表面或者被合成以创建帧的多个单独的表面。在一个实施方案中,当呈现帧时,由显示引擎执行合成。在一个实施方案中,图形引擎在显示帧之前执行合成。

除了请求的呈现时间之外,帧的配置(控制平面)数据还可包括来自应用程序、框架或窗口服务器的一个或多个提示。提示可提供关于帧的附加细节,诸如当前帧的相对复杂性或帧序列中的即将到来的帧。例如,当前帧可由若干表面组成,这些表面将被混合以创建最终帧。即将到来的帧可基于大量几何对象,或者可包括大量着色器程序。这些提示可是可能需要额外显示或图形处理资源的主要指标。因此,在一个实施方案中,实时处理器可在时间戳队列中向前看,以确定是否应该使性能控制器知道对附加资源的当前或未决要求。然后,实时处理器可向性能控制器发出信号,以调整系统的性能相关的参数。例如,对于即将到来的复杂事件,实时处理器可将即将到来的帧的提示数据传递给性能控制器,如果热量和/或功率预算可用,性能控制器可提高与应用处理器、图形处理器和/或显示引擎相关联的时钟速率。在一个实施方案中,还可基于提示信息来调整链接各种硬件组件(例如,应用处理器、图形处理器、存储器等)的通信结构,以临时增加用于系统内的图形部件和显示部件之间的数据传输的结构带宽分配限制。

窗口服务器被配置为掌握来自窗口客户端应用程序的图像数据的显示。示例窗口服务器是iostm及os核心动画图形渲染和动画框架,它们由加州库比蒂诺的苹果公司提供。然而,实施方案不限于任何特定的操作系统、窗口服务器或窗口服务器具体实施。窗口服务器的客户端应用程序提供描述要在显示设备上显示的内容的数据。在一个实施方案中,客户端经由层的树来描述内容,这些层被合成并渲染为完成的帧以用于显示。窗口服务器可生成隐式动画,其中客户端应用程序向窗口服务器提供图像,窗口服务器可基于提供的图像生成一系列动画帧。客户端也可将完成的帧排队到窗口服务器的图像队列中。在一个实施方案中,窗口服务器收集为帧生成和提供的统计信息(例如,通过一个实施方案中的显示驱动器),并且可适当地将统计信息提供给客户端应用程序。例如,对于由客户端应用程序生成的显式动画,窗口服务器可提供这些帧的统计信息。对于隐式动画,窗口服务器可监视窗口服务器生成的帧的统计信息。

在一个实施方案中,电子设备包括系统性能控制器,该控制器可使得知道所请求的和实际的呈现统计信息。如果应用程序、框架或其他显示客户端似乎难以实现或维持目标动画速率目标,则性能控制器可选择增加系统性能状态,前提是有可用的能量和热量余量。如果系统在最近一段时间内经历了高水平的能量消耗,则系统性能控制器可选择降低系统的性能状态并从显示驱动器请求较慢的帧队列排放率。降低系统性能状态可能迫使显示客户端变得延迟呈现用于显示的帧,客户端可通过降低动画速率来响应,以进一步降低系统内的能量消耗。

本公开的一部分包含受版权保护的材料。由于本专利文档或本专利公开内容出现在专利与商标局专利文件或记录中,因此版权所有人不反对任何人对本专利文档或本专利公开内容的拓制,但会以其他方式保留任何形式的所有版权权利。版权所有2016苹果公司

显示架构

图1是根据实施方案的图形和显示系统100的框图。由这里描述的实施方案提供的显示系统包括各种软件和硬件层。在一个实施方案中,软件层包括一个或多个应用程序,诸如用户界面(ui)逻辑102、ui客户端应用程序(ui客户端应用程序104)、3d应用程序(3d应用程序108)和视频应用程序(视频应用程序110)。软件层还可包括应用程序框架,诸如web框架106和ui框架112。web框架106可向web浏览器应用程序提供功能,并且可与ui框架112对接。ui客户端应用程序104和用户界面逻辑102可从ui框架112得出用户界面功能。

一个实施方案提供了窗口服务器114和驱动器逻辑,诸如图形子系统116和显示子系统117的显示驱动器和/或图形驱动器部件。窗口服务器114可中继来自用户界面逻辑102、web框架106、3d应用108和/或视频应用程序110的显示请求。窗口服务器114还可中继经由ui框架112接收的ui客户端应用104的显示请求。

一个实施方案提供了包括图形子系统116的硬件层,所述图形子系统包括图形处理器。图形处理器可包括一个或多个图形引擎。实施方案还提供了包括显示引擎的显示子系统117。图形子系统116和显示子系统117的硬件可集成在单个图形处理器或一个或多个图形处理器内。在一个实施方案中,图形子系统116和/或显示子系统117的单个图形处理器或一个或多个图形处理器可集成到芯片集成电路上的系统中,以用于移动设备和/或嵌入式设备中。在一个实施方案中,用于图形子系统116和显示子系统117的硬件可在单独的设备中,例如,其中图形和显示系统100被配置为用于桌面或工作站平台。

在一个实施方案中,性能控制器118控制图形子系统116和显示子系统117的功率和性能参数。性能控制器可调整性能参数,诸如与图形子系统116和显示子系统117相关联的时钟频率或电压。可针对图形子系统116或显示子系统117中的每者一致地调整图形子系统116和/或显示子系统117的电压、频率和/或其他功率和性能参数,或者功率和性能参数可独立地变化。例如,显示子系统117的一个或多个部件可暂时断电,而图形子系统116可继续操作。同样地,图形子系统116的一个或多个部件可断电,而显示子系统117继续操作。

在一个实施方案中,性能控制器118基于利用率和工作负载调整图形子系统116和显示子系统117的功率和性能参数,使得可在热管理逻辑施加的热限制内提高性能以处理更大的工作负载。在一个实施方案中,性能控制器118是闭环性能控制器(clpc),并且可基于来自图形子系统116内的调度逻辑的输入,主动调整图形子系统116和显示子系统117的功率和性能参数。

在一个实施方案中,还包括实时处理器120(rtp)以管理到图形子系统116和显示子系统117或者来自它们的帧的处理和呈现。实时处理器120可在所请求的显示时间处理来自时间戳队列121的帧请求,并将显示请求呈现给显示子系统117内的显示引擎。可根据窗口服务器114的请求,经由图形子系统116和/或显示子系统117的驱动器逻辑将条目插入到时间戳队列121中。

在一个实施方案中,与图形子系统116相关联的驱动器逻辑(例如,图形驱动器逻辑)可用于将帧插入到时间戳队列121中以供显示。在一个实施方案中,显示子系统117包括单独的软件逻辑,以管理时间戳队列121中的帧的插入。在一个实施方案中,实时处理器120还可基于时间戳队列的内容向性能控制器118提供提示或反馈。

显示子系统117可与显示设备122耦接。实施方案提供的显示设备122具有足以在逐帧的基础上支持可变刷新速率的电特性。例如,在一个实施方案中,显示设备122包括显示面板,该显示面板具有足以在不闪烁的情况下保持显示电荷超过16ms的材料,以实现低于60hz的刷新速率。在一个实施方案中,显示设备包括刷新逻辑,其可以高达120hz刷新显示面板。

在一个实施方案中,实时处理器120被配置为结合监视帧的内容来监视显示设备的电气状态,并确定在可在显示器上观察到闪烁之前可在没有刷新的情况下显示帧的精确持续时间。例如,在一些平板面板显示设备中,与其他亮度值相比,通过面板显示取决于中灰度值的范围内的亮度值可能更难以显示,并且将比其他亮度值更快地引起闪烁。为了防止闪烁,实时处理器120可发出命令以在没有软件输入的情况下刷新面板。这种自动刷新不会干扰新帧的软件请求的呈现时间。在一个实施方案中,自动刷新的不干涉由显示子系统117和/或显示设备122内的刷新逻辑强制执行。

在一个实施方案中,应用程序诸如3d应用程序(例如,3d应用程序108)可向窗口服务器114提供完整的框架以用于显示。例如,客户端应用程序可使用metaltmapi、api或任何其他图像api生成完成的帧。3d应用程序可调度要由图形子系统116渲染的帧。图形子系统116可以渲染帧,并且窗口服务器114可有助于将完成的帧插入到时间戳队列121中。在一个实施方案中,一些应用程序可向窗口服务器114提供动画关键帧。然后,窗口服务器114可生成附加的内插帧,以实现关键帧之间的过渡的平滑动画。可在时间戳队列121内调度关键帧和转换帧以进行处理。

在一个实施方案中,诸如视频应用程序(例如,视频应用程序110)之类的应用程序或由ui框架112支持的应用程序可提供完成的帧或者可向窗口服务器114提供多个表面以合成到最终帧中。例如,视频应用程序110可提供将与用户界面控件或字幕合成的视频帧,或者ui客户端应用104可经由ui框架112请求窗口服务器114显示多个表面合成的用户界面。

图2是示出根据实施方案的图形和显示子系统200的框图。所示的图形和显示子系统200提供了图1的图形和显示系统100的部件和子部件的附加视图。在一个实施方案中,图形和显示子系统200包括驱动器逻辑220(例如,驱动器逻辑220a、驱动器逻辑220b)以管理图形子系统116和/或显示子系统117。在一个实施方案中,驱动器逻辑220包括驱动器逻辑220a以管理图形子系统116和驱动器逻辑220b以管理显示子系统117。

在一个实施方案中,图形子系统116包括专用物理引擎(物理208),用于计算未来帧的参数。在一个实施方案中,可以使用物理引擎基于当前帧数据生成未来帧的预测。未来帧的预测可用于预渲染一组帧以供显示子系统117定时呈现。

一个实施方案提供了时间戳队列221,其可为图1的时间戳队列121的变体。所示出的时间戳队列221包括将由显示子系统117处理的每个帧的条目201,203。在一个实施方案中,时间戳队列221中的每个条目201,203包括帧被插入到时间戳队列221中的提交时间212,包括显示子系统117将用于显示帧的数据的帧信息214。在一个实施方案中,条目201,203的帧信息214包括用于显示子系统117用于显示帧的上下文和状态信息。帧信息214还可包括用于作为帧的一部分显示的表面的一个或多个存储器地址。在一个实施方案中,帧信息214包括帧的请求的呈现时间。

条目201,203还可包括到显示子系统的一个或多个提示216,其可被提供给性能控制器118以配置显示子系统117和/或图形子系统116的性能参数。在一个实施方案中,(一个或多个)提示216可包括关于要显示的帧的复杂性的指示,诸如要合成的多个表面的数量和/或关于要执行的混合操作的复杂性的指示。在一个实施方案中,(一个或多个)提示216可包括即将到来的场景的图形复杂性的指示,诸如场景包括要由图形子系统116执行的更大数量的和/或复杂的一组着色器操作的指示。这样的(一个或多个)提示216可由性能控制器118提供,以基于即将到来的工作负载实现图形子系统116和/或显示子系统117的性能相关的参数的主动调整。在一个实施方案中,实时处理器(rtp120)可循环扫描时间戳队列221中的一组条目以从条目201,203读取(一个或多个)提示216,并向性能控制器118提供提示相关的信息。

图3是根据一个实施方案的图形和显示性能控制和反馈系统300的图示。在一个实施方案中,显示系统性能可由处理器利用率302控制,或者性能可由呈现定时304控制。在一个实施方案中,应用程序可生成第一帧(帧i),其中性能由处理器利用率(302)控制。可经由cadisplaylink对象接收内核io移动帧缓冲中断,该对象使应用程序能够将绘图操作与显示器的刷新速率同步。应用程序可是与ui框架(例如,uikit)对接以执行用户界面操作的应用程序。应用程序的一个或多个线程可执行操作以生成用于显示的帧内容,并且可将帧i的内容呈现给显示设备以立即显示。

在一个实施方案中,可基于预定的呈现定时来生成和显示后续帧(例如,帧i+1)。在处理器(例如,cpu)上操作的线程可开始操作以准备用于渲染的帧。在帧准备期间可跟踪cpu开始和结束时间。在帧的cpu操作期间,cpu可将渲染操作踢到图形处理单元(gpu306)并将帧的交换操作提交给显示引擎。当gpu完成渲染操作时,显示引擎可将完成的帧与先前显示的帧交换。

可通过图形和显示性能控制和反馈系统300来维护与每个帧的渲染相关联的统计信息。在一个实施方案中,可维护呈现时间事务数据结构308,其用于报告呈现时间信息。示例性呈现时间交易信息包括与帧相关联的人机接口设备输入时间(hid_input_time),与帧相关联的cpu开始时间(cpu_start_time)和cpu完成时间(cpu_finish_time),以及gpu开始时间(gpu_start_time)和gpu完成时间(gpu_finish_time)。在一个实施方案中,帧的请求的呈现时间(requested_presentation_time)。在一个实施方案中,呈现时间事务数据结构308还可包括性能反馈数据(performance_feedback),其可由性能控制器118修改。在一个实施方案中,还跟踪每帧的“玻璃上到达时间”310,这是给定帧实际显示在与显示子系统相关联的显示设备上的时间。在一个实施方案中,该组呈现时间统计信息可提供给显示子系统的客户端,诸如窗口服务器114、ui框架112、3d应用程序108和/或视频应用程序110,如图1所示。在一个实施方案中,客户端可使用呈现时间统计信息来调整由客户端执行的渲染操作。在一个实施方案中,性能控制器118还可使用呈现时间统计信息来确定是否应该调整系统的性能参数。

呈现时间的每帧控制

图4是根据实施方案的用于呈现时间的每帧控制的系统400的图示。在一个实施方案中,用于帧呈现时间402的每帧控制的系统400可为一组帧启用可变的每帧呈现持续时间404,其中每帧的显示持续时间可以至少部分地基于连续帧的所请求的呈现时间来确定。每个帧可具有不同的呈现持续时间。例如,帧411可呈现在0ms并且可呈现8.3ms。在8.3ms,帧412可呈现12.5ms。在20.8ms,帧413可呈现16.7ms。在37.5ms,帧414可呈现20.8s直到呈现帧415。帧415可呈现25ms。

可基于一个或多个显示量子(例如,显示量子406)来定义每个帧的持续时间。可基于显示子系统(例如,图1和图2的显示子系统117)的显示事件查看周期来定义显示量子406的持续时间。在每个显示量子406期间,显示子系统可查看由时间戳队列中的条目(例如,图2的时间戳队列221的条目201,203)定义的一组待决显示事件。

例如,在一个实施方案中,显示子系统经由实时处理器(例如,图1和图2的rtp120)可以240hz的显示事件查看速率操作,定义显示量子4.166ms。在每个查看周期期间,显示子系统可基于帧的所请求的显示时间来确定是否要显示新帧。在一个实施方案中,当没有安排新帧被显示时,显示子系统可查阅显示设备的电子模型以确定是否应该自动刷新当前显示的帧。可在不需要显示子系统软件的软件逻辑的干预的情况下执行自动刷新,并且被配置为不干扰显示子系统帧调度。

在一个实施方案中,显示子系统可指定要显示帧数据的持续时间,并且显示子系统将在显示帧的显示量子406期间在显示器上显示帧数据,假设帧已准备好显示。然后,显示子系统可基于显示器的电特性而不是预定义的刷新速率刷新或不刷新每个显示量子406处的显示设备。因此,在一个实施方案中,显示器的刷新速率至少部分地独立于显示器上显示的内容的帧速率,使得显示子系统可对以受控的帧速率用新内容更新的显示器进行编程,同时显示设备是独立且自动地刷新。在一个实施方案中,仅在必要时才发生帧的自动刷新,例如,当显示长持续时间帧时,电子模型指示如果不刷新显示设备则将发生闪烁。

每帧统计信息

图5为根据一个实施方案的每帧统计信息的系统500的图示。每帧统计信息的系统500可维持每帧的一组统计信息,例如,使用类似于图2的呈现时间事务数据结构308的数据结构。诸如要显示帧的请求呈现时间502、实际显示帧数据的玻璃上(on-glass)时间504以及帧506中的每一个的标识符数据之类的数据。另外,示出了60hz显示时间508用于比较。使用这样的数据,可为每个帧维持帧统计信息(例如,帧统计信息510),包括到达时间512、请求的呈现514和玻璃上516,以及帧的差量518统计信息。在一个实施方案中,到达时间512是帧被插入时间戳队列(例如,图2的时间戳队列221)的时间。所请求的呈现514是请求在显示设备上呈现帧的时间。帧的玻璃上516时间是帧在显示设备上实际显示的时间。

针对帧报告的差量518统计信息根据帧的到达时间512是否在所请求的呈现514时间之前或之后而不同。如果到达时间512在所请求的呈现514时间之前,则在一个实施方案中,显示子系统可满足所请求的呈现时间,使得所请求的呈现时间和实际呈现(例如,玻璃上)时间将是基本相似的。因此,帧的差量518统计信息可记录为帧早期的毫秒数。如果帧到达时间戳队列的时间较晚,则差量518统计信息可是所请求的呈现514时间与玻璃上516时间之间的差异,其指示帧被显示的时间与帧被请求显示的时间之间的差异。

本文所描述的实施方案中,窗口服务器(例如,图1的窗口服务器114)的客户端应用程序可生成要合成或动画化的图像。此外,客户端应用程序可向窗口服务器提供完成的帧以显示在显示设备上。客户端应用程序可经由视频解码api或本领域已知的3d渲染api生成完成的帧。由客户端应用程序提交的显示请求可包括显示系统将尝试满足的请求的呈现时间。视频解码器可基于内容的呈现时间(例如,编码的帧速率)来设置帧的呈现时间。3d图形api或其他图形渲染api可基于确定的内容动画速率为每个帧设置所请求的呈现时间。应用程序可基于默认刷新速率请求传统呈现时间,或者可指定将在其中显示帧的特定未来时间戳。

在生成用于显示的当前帧之后,客户端应用程序然后可基于所确定的动画速率生成若干附加帧以在指定的未来时间显示。例如,在基于诸如3d几何数据之类的场景数据生成最终帧之后,客户端可分析位置、速度、加速度和其他对象参数以使场景向未来前进若干毫秒以例如使用物理引擎(例如,图2的物理引擎208)生成未来帧的新的对象数据。然后,在将该未来帧提供给显示子系统时间戳队列(例如,时间戳队列221)之前,可将该未来帧插入具有所请求的将来的显示时间的窗口服务器队列中。用于在预定时间显示的未来帧的生成不同于以固定速率执行帧动画的传统实现。

如果图形和显示系统以足够的性能水平操作,则将满足所请求的呈现时间。在一个实施方案中,可在图形处理器完成渲染帧之前提交帧的显示请求。如果帧的内容太复杂而不能在所请求的呈现时间之前由gpu完成,则可能延迟帧的呈现。对于复合帧,合成表面可由图形处理器在足够的时间内完成,但是显示引擎合成处理的持续时间可能导致帧的呈现被延迟。在这种情况下,可将为每个帧维护的统计信息作为反馈提供给图形和显示系统的软件部件,这可降低连续帧的复杂性或动画速率。

例如,如果应用程序或框架一直延迟,则可更改动画参数以渲染图像以便以更大的间隔显示或减少每帧中的场景复杂性。如果应用程序或框架一直是早期的,则可缩短动画间隔以实现更高的时间视觉质量。在一个实施方案中,应用程序可被配置为使得当显示系统或电子设备受到胁迫时,应用程序自然地对显示反馈做出反应并降低显示更新的频率,诸如在高处理负载、高热负载或低电池能量条件期间。

对于图5的示例性框架,可如下收集统计信息。帧0可在-2ms到达时间戳队列,例如,表示帧在时间戳队列查看周期之前2ms到达。帧0可请求0ms的呈现时间,在一个实施方案中其指示对下一个60hz边界上的传统呈现时间的请求。帧0可显示在下一个60hz边界(0ms)上。因此,帧0的帧统计信息510可被记录为-2ms到达512,0ms请求呈现514和玻璃上516时间,以及+2ms差量518。

帧1的帧统计信息510可记录为20ms到达512、12ms请求呈现514时间、24ms玻璃上516时间,以及-12ms差量518。因为帧1到达时间戳队列的时间较晚,记录-12ms差量,导致请求的显示时间和实际显示时间之间的差异为12ms。如果帧的图形复杂性使得gpu和/或cpu不能及时完成帧以满足帧的所请求的显示时间,则帧到达时间戳队列的时间可较晚。这可指示性能控制器应该将cpu和/或gpu升级到更高的性能水平。如果不能增加cpu和/或gpu的性能水平,例如,由于对系统施加的热或能量限制,则较晚的帧可指示应该减少帧的动画帧速率或图形复杂性。

帧2的帧统计信息510可被记录为38ms到达512、42ms请求呈现514和玻璃上516时间,具有+4ms差量518。由于相对于帧1的降低的复杂性或者降低的动画速率,帧2在其请求的呈现时间之前4ms到达,允许图形显示和显示系统满足所请求的呈现时间。帧2显示大约91ms,在此期间,显示设备可以基于帧2的内容和显示器的电气属性根据需要自动和自适应地刷新。

帧3的帧统计信息510可被记录为130ms到达512、82ms请求呈现514时间,133ms玻璃上516时间,以及-51ms差量518。因为帧1到达时间戳队列的时间较晚,记录-51ms差量,导致请求的显示时间和实际显示时间之间的差异为51ms。在一个实施方案中,帧的请求呈现时间与帧在时间戳队列中的到达时间之间的较大差异可指示帧的内容比在图形和显示系统的当前性能水平下可平滑显示的帧复杂得多。此外,这种较大的差异可能是系统性能控制器降低系统性能水平的结果,因为最近的高能耗水平会导致渲染帧延迟并触发软件级别的帧复杂性降低,进一步降低系统能耗。

可变帧速率动画

由本文描述的实施方案提供的图形和显示系统可以被配置为在应用程序内启用可变帧速率动画。应用程序可呈现具有基于所显示的内容而变化的动画帧速率的帧序列。基于内容的可变动画帧速率,显示设备可具有基于应用提供的动画帧速率的可变刷新速率。

图6是根据实施方案的可变帧速率动画600的图示。在一个实施方案中,应用程序诸如电子邮件应用程序可提供用于显示器的内容601。应用程序可基于从图形界面接收的输入(例如,触摸板、触摸屏、滚轮等)对显示的内容601执行滚动602操作。响应于滚动所显示数据的初始输入,应用程序可基于初始滚动输入的速度606或强度以可变动画帧速率604生成一系列连续帧。在一个实施方案中,显示逻辑可基于动画逻辑计算用于滚动602操作的动画速率曲线607。然后可将动画速率曲线607量化为特定帧速率608a-f,可以该特定帧速率608a-f生成用于滚动操作的动画帧。

对于快速初始输入,诸如快速触摸或滚动手势,应用程序可生成具有高初始动画帧速率604的帧序列(例如,帧速率608a、帧速率608b、帧速率608c)。动画帧速率604可随时间减慢(例如,帧速率608d、帧速率608e、帧速率608f),例如响应于初始输入的淡入淡出,这可减少由于生成和显示帧的速率降低而导致的显示系统消耗的功率量。

可以以与应用动画帧速率匹配的刷新速率刷新显示设备,以增加帧序列的清晰度。换句话说,基于内容的动画速率刷新显示器,而不是基于显示器的帧速率动画化帧。因此,初始高动画速率可导致初始高显示刷新速率(例如,120hz),这导致相对于60hz刷新速率的显示器功耗增加,但相对于60hz产生增强的视觉质量输出。最初的高动画速率可随时间减小,导致相对于120hz(例如,帧速率608b-608c)的功率节省,然后相对于60hz的功率节省(例如,帧速率608d-608f)。

虽然图6提供滚动作为可变帧速率动画的示例,可为其他显示动画确定动画速率曲线,诸如与应用程序启动和暂停、设备解锁、主屏幕滚动以及推送和弹出显示视图相关联的动画。可对这些动画中的每一者执行自适应刷新,使得显示器的刷新速率符合为动画生成的帧的动画速率。图7-图10示出了用于示例性操作的附加动画/刷新速率曲线。

图7示出了用于在电子设备上启动和暂停操作的可变帧速率动画700。用于启动和暂停的动画包括:启动部分,其中显示用于应用程序启动的动画;以及暂停部分,其中显示用于应用程序暂停的动画。在启动动画期间,可以第一动画速率702a(诸如120hz)生成第一组帧。由于所显示的动画的性质,动画可相对于连续帧以初始高的帧速率开始,使得在启动动画的初始阶段期间的较高帧速率相对于以较低的帧速率的动画提供改善的视觉效果和/或视觉质量。

在第一动画速率702a的一段时间之后,动画速率可降低到显著低于第一动画速率(例如,60hz)的第二动画速率702b。在一个实施方案中,启动动画的动画速率可更快地降低到第三动画速率702c(例如,40hz)和第四动画速率(例如,24hz)。对于每个动画速率702a-702d,显示系统可将显示器的所请求的刷新速率基于内容的动画速率。

在一个实施方案中,可类似地定义暂停动画的动画速率,具有高初始动画/帧速率704a,随后将帧速率逐渐减小到第二动画速率704c和第三动画速率704d。

图8示出了用于在电子设备上解锁动画的可变帧速率动画800。解锁动画可在输入期间或响应于输入(例如,触摸屏输入)显示,以将电子设备从锁定状态转换到解锁状态。动画可以第一动画速率802a开始,这是相对于连续帧速率的低动画帧速率。帧速率斜坡可出现,其中持续更高的动画速率(动画速率802b、动画速率802c、动画速率802d)逐步通过,直到达到最大动画速率802e(例如,120hz)。最大动画速率802e可在动画速率锥度出现之前保持一段时间,其中动画速率连续减小(动画速率802f、动画速率802g、动画速率802h)。

一般来讲,由实施方案提供的可变帧速率动画可分为多个阶段。首先,初始帧速率斜坡发生,其可如图7的启动和暂停动画中那样立即生成,或者与图8的解锁动画一样更加渐进。其次,保持高动画速率一段时间。第三,高动画率逐渐降低到较低的动画率。通过遵循这样的刷新速率模式,实施方案可接近高持续动画率的视觉质量,同时实现显示系统功率节省,例如,如图6所示。除了本文示出的动画之外,多级帧速率控制还可应用于各种动画,诸如主屏幕滚动及推送和弹出用户界面视图。在每个实例中,显示器的刷新速率可与动画速率同步,使得在快速动画阶段期间快速刷新显示器并在慢动画阶段期间缓慢刷新。

在一个实施方案中,可变动画速率和基于动画速率的显示刷新可用于合并多个应用程序的动画和帧速率。例如,一个实施方案提供了一种平板计算设备,其中可同时显示多个前景应用程序,并且多个前景应用程序中的每者可在屏幕上显示动画内容。每个应用程序可具有不同的动画帧速率和相关联的呈现时间,使得单独的应用程序不依赖于相同的动画速率。然而,至少部分地同步应用程序的动画速率可能是有利的。

在一个实施方案中,显示系统被配置为尝试将应用程序同步到公共阶段以使得能够以较低刷新速率显示两个应用程序的内容。例如,生成30hz动画的两个应用程序可被配置为同时生成帧以使显示设备能够以30hz刷新。此外,可合并应用程序的呈现时间,使得如果应用程序允许并且所讨论的帧可用于显示,则可调整一个或多个应用程序的显示时间以使得能够在相同的刷新周期中呈现多个应用程序的帧。然而,如果显示系统不能保持应用程序的动画帧速率同相,则可以更高的刷新速率(例如,60hz)刷新显示设备,以满足应用程序的所请求的呈现时间。作为另一示例,如果两个应用程序具有以60hz动画化的内容并且内容不能相位对齐,则可以120hz刷新显示设备以满足应用程序的所请求的呈现时间。

图9为根据实施方案的可变帧速率合并900的图示。在一个实施方案中,第一应用程序910和第二应用程序920可显示在显示设备上,其中每个应用程序以独立的目标动画速率渲染帧。在第一应用程序910的帧(例如,帧912)与第二应用程序920的帧(例如,帧922)异相的示例性条件下,可调整902(例如,延迟)交换时间以使帧对齐,使得例如帧912和帧922各自被调度为在相同的显示量子期间交换,其中帧912被帧913替换并且帧922被帧923替换。除了调整帧的所请求的呈现时间以延迟帧呈现之外,一个实施方案提供可提前904用于帧的预定呈现时间的逻辑,使得第一应用程序910的帧914可在与第二应用程序920的帧924相同的显示量子期间呈现。

图10为根据实施方案的显示性能控制系统1000的框图。所示模块是显示性能控制系统1000的软件或硬件逻辑的示例性表示。在一个实施方案中,显示性能控制系统1000包括显示性能控制模块1010。显示性能控制模块1010可包括显示请求接口模块1001、显示事件模块1002、显示编程模块1003、显示提示模块1004、性能控制器接口模块1005、刷新速率调整模块1006、显示统计模块1007和窗口管理器接口模块1008,和/或动画速率调整模块1009。所示模块是显示性能控制系统1000的软件或硬件逻辑的示例性表示。

在一个实施方案中,显示请求接口模块1001被配置为用于接收显示一个或多个数据帧的请求。该请求可包括要显示的一个或多个数据帧的所请求的呈现时间。一个或多个帧可由本文描述的图形处理器生成。显示事件模块1002可被配置为生成与一个或多个数据帧相关联的一个或多个显示事件。显示编程模块1003可被配置为基于一个或多个显示事件对显示引擎进行编程。

在一个实施方案中,一个或多个提示可由显示提示模块1004包括在所生成的显示事件中。显示提示模块1004可基于当前帧或即将到来的帧的复杂性向显示系统提供提示。在一个实施方案中,显示提示模块1004可处理包括在显示请求中的第一提示,并且基于第一提示,在显示事件中包括第二提示。第一提示和第二提示的格式可以相同或可以不同,使得第一提示被插入到显示事件中,或者第二提示可以基于第一提示来得出。在一个实施方案中,显示事件内的第二提示可经由性能控制器接口模块1005提供给性能控制器。性能控制器可被配置为基于第二提示调整显示系统的一个或多个性能相关的参数。

在一个实施方案中,显示性能控制系统1000响应于显示事件,可使刷新速率调整模块1006能够基于处理后的显示事件调整显示器的刷新速率。刷新速率调整模块1006可基于显示或将要显示在显示设备上的内容来动态调整显示设备的刷新速率。

在一个实施方案中,显示器性能控制系统1000可配置显示统计模块1007以保持显示在显示设备上的帧的每帧统计信息。显示统计模块1007可管理与经由显示请求接口模块1001接收的显示请求相关联的一组统计信息。显示统计模块1007可被进一步配置为经由窗口管理器接口模块1008将该组统计信息周期性地提交给显示系统的窗口管理器。在接收到统计数据之后,窗口管理器可使动画速率调整模块1009调整由窗口管理器生成的动画的动画速率,或者从窗口管理器的客户端应用程序请求动画速率调整。

显示性能控制逻辑

图11-图14示出了执行本文描述的显示性能控制过程的逻辑操作。所示逻辑操作可由图1的图形和显示系统100的各种部件和/或图2中的图形和显示子系统200使用本文在整个发明说明书中所描述的技术和数据结构来执行。

图11是示出根据实施方案的显示性能控制逻辑1100的流程图。在一个实施方案中,显示性能控制逻辑1100可接收在显示设备上显示一个或多个数据帧的请求,如1102所示。可经由本文描述的一个或多个处理器生成一个或多个数据帧。在一个实施方案中,该请求包括要显示一个或多个数据帧的所请求的呈现时间。

显示性能控制逻辑1100还可基于所请求的呈现时间得出目标呈现时间,如1104所示。可基于显示引擎的编程时间得出目标呈现时间。换言之,目标呈现时间是对所请求的呈现时间的调整,以考虑使用用于显示帧的信息对显示引擎进行编程所需的时间量。

显示性能控制逻辑1100还可对显示引擎进行编程以将一个或多个数据帧呈现给显示设备以用于显示,如1106所示。然后,显示性能控制逻辑1100可使得显示引擎基于一个或多个数据帧的目标呈现时间来调整显示设备的刷新速率,如1108所示。

图12是示出根据实施方案的显示性能控制提示逻辑1200的流程图。在一个实施方案中,性能控制提示逻辑1200可接收显示一个或多个数据帧的请求,如1202所示。该请求可包括指示一个或多个数据帧的复杂性的第一提示。性能控制提示逻辑1200然后可基于该请求生成一个或多个显示事件,如1204所示。一个或多个显示事件可包括可从第一提示得出的第二提示。然后,性能控制提示逻辑1200可用信号通知与一个或多个处理器相关联的性能控制器,以基于第二提示调整一个或多个处理器的一个或多个性能相关的参数,如1206所示。

图13是示出根据实施方案的基于显示器性能控制反馈的动画帧速率调节过程1300的流程图。可基于以第一帧速率生成一个或多个数据帧来执行动画帧速率调整的所示过程1300,如1302所示。例如,图形应用程序可生成用于显示的帧,并请求窗口管理器向显示逻辑提交请求以显示一个或多个数据帧,如1304所示。在1306处,显示逻辑可接收请求并基于该请求为显示引擎生成一个或多个显示事件。

显示引擎可处理显示事件以显示一个或多个数据帧,如1308所示。在一个实施方案中,实时处理器可被配置为向显示引擎提供显示事件。显示事件可例如以时间戳队列条目的形式提供(例如,图2的时间戳队列221的条目201,203)。

在一个实施方案中,显示引擎可生成与处理显示事件相关联的一组统计信息,如1310所示。该组统计信息可用于基于该组统计信息将第一帧速率调整为第二帧速率,如1312所示。

图14是示出根据实施方案的显示性能控制可变动画速率逻辑1400的流程图。显示性能控制可变动画速率逻辑1400可接收输入以与经由显示器呈现的图像交互,如1402所示。然后,显示性能控制可变动画速率逻辑1400可响应于输入生成帧序列,帧序列具有与显示设备的当前刷新速率无关的动画帧速率,如1404所示。动画帧速率可基于与输入相关联的参数来确定。

在一个实施方案中,显示性能控制可变动画速率逻辑1400可配置与帧序列相关联的显示事件,其中显示事件包括配置数据以配置显示引擎以显示帧序列中的一个或多个帧,如1406所示。帧序列中的每个帧可具有基于动画帧速率的所请求的呈现时间。

在一个实施方案中,显示性能控制可变动画速率逻辑1400可处理与帧序列中的第一帧相关联的第一显示事件,如1408所示。在一个实施方案中,处理第一显示事件包括读取配置数据以配置显示引擎以显示第一帧。

在一个实施方案中,然后,显示性能控制可变动画速率逻辑1400可基于所请求的呈现时间在显示时间将配置数据呈现给显示引擎,如1410所示。

在一个实施方案中,然后,显示性能控制可变动画速率逻辑1400可以基于显示时间动态刷新显示设备以显示帧序列,如1412所示。

图15是示出根据实施方案的数据处理系统所使用的多层软件架构1500的框图。软件部件通过用户空间和内核空间之间的划分来示出。尽管其他布置是可能的,但是用户应用程序(例如,用户应用程序1502)和一些操作系统部件(例如,操作系统用户界面层1506和核心操作系统层1510)在用户空间中执行。在内核空间中,操作系统内核和一组设备驱动程序在内核和设备驱动程序层1512中操作。内核和设备驱动程序层1512管理整个操作系统的基础功能,并为用户空间软件提供形式化和安全机制以访问数据处理系统硬件。

用户界面(ui)应用程序框架1504为用户应用程序1502提供机制以访问由操作系统(os)ui层1506提供的ui服务。可在核心操作系统层1510中执行与用户界面无关的基础操作系统功能。可使一个或多个数据管理框架(诸如核心应用程序框架1508)可用于用户应用程序以便于访问操作系统功能。

用户应用程序1502是示例性的,并且可是多个用户应用程序中的任何一个。每个用户应用程序1502可包括可以产生多个线程的一个或多个进程或任务。用户应用程序1502可访问示例性ui应用程序框架1504中的指令,用于创建和绘制图形用户界面对象,诸如图标、按钮、窗口、对话框、控件、菜单和其他用户界面元素。ui应用程序框架1504还提供附加功能,包括菜单管理、窗口管理和文档管理,以及文件打开和保存对话框,拖放及复制和粘贴处理。

核心操作系统层1510包含实现包括应用程序安全性、系统配置、图形和媒体硬件加速以及目录服务和与其相关的特征的操作系统部件。多个应用程序框架(包括核心应用程序框架1508)提供一组api以使用户应用程序1502能够访问对应用程序必不可少的核心服务,但不直接与应用程序的用户界面相关。核心应用程序框架1508可便于应用程序对数据库服务、凭证和安全服务、备份服务、数据同步服务以及可能对应用程序有用的其他基础功能的访问。

核心应用程序框架1508或等效的应用程序框架可提供对基于远程服务器的存储的访问,以用于包括同步文档存储、键值存储和数据库服务的功能。键值存储允许用户应用程序1502跨多个客户端设备在用户应用程序1502的多个实例之间共享诸如用户偏好或书签的少量数据。用户应用程序1502还可经由核心应用程序框架1508访问基于服务器的多设备数据库解决方案。

本文所述的系统和方法可在各种不同的数据处理系统和设备中实现,所述数据处理系统和设备包括通用计算机系统、专用计算机系统,或者通用计算机系统和专用计算机系统的混合。可使用本文所述的方法中的任一种方法的示例性数据处理系统包括台式计算机、膝上型计算机、平板电脑、智能电话、蜂窝电话、个人数字助理(pda)、嵌入式电子设备或消费电子设备。

图16是计算系统1600的一个实施方案的框图。图16示出的计算系统旨在表示一系列计算系统(有线或无线的),包括例如台式计算机系统、膝上型计算机系统、平板电脑系统、蜂窝电话、包括支持蜂窝的pda的个人数字助理(pda)、机顶盒、娱乐系统或其他消费电子设备。另选的计算系统可以包括更多、更少和/或不同的部件。图16的计算系统可被用于提供计算设备和/或服务器设备。

计算系统1600包括总线1635或用于传递信息的其他通信设备,和与总线1635耦接的可处理信息的一个或多个处理器1610。虽然计算系统1600被示出具有单个处理器,但是计算系统1600可以包括多个处理器1610,包括一个或多个协处理器。计算系统1600还可包括存储器1620,其可是随机存取存储器(ram)或另一个随机可访问的存储设备,耦接到总线1635并且可以存储可以由一个或多个处理器1610执行的信息和指令。存储器1620还可用于在一个或多个处理器1610执行指令期间存储临时变量或其他中间信息。

计算系统1600还可包括只读存储器(rom)1630和/或耦接到总线1635的另一数据存储设备1640,其可存储用于一个或多个处理器1610的信息和指令。数据存储设备1640可以耦接到总线1635以存储信息和指令。数据存储设备1640(诸如闪存存储器或磁盘或光盘)以及对应的驱动器可以被耦接到计算系统1600。

计算系统1600还可以经由总线1635耦接到显示设备1650,诸如阴极射线管(crt)、液晶显示器(lcd)或发光二极管(led)显示器,以向用户显示信息。计算系统1600还可包括数字字母混合输入设备1660,该设备包括数字字母键和其他键,其可耦接到总线1635以将信息和命令选项发送到一个或多个处理器1610。另一种类型的用户输入设备是光标控件1670,诸如触摸板、鼠标、轨迹球或光标方向键,以将方向信息和命令选择传送到一个或多个处理器1610并控制显示设备1650上的光标移动。计算系统1600还可以经由一个或多个网络接口1680从通信地耦接到计算系统1600的远程设备接收用户输入。

计算系统1600还可以包括一个或多个网络接口1680,以提供对诸如局域网之类的网络的访问。网络接口1680可以包括,例如具有天线1685的无线网络接口,所述天线可以表示一个或多个天线。计算系统1600可包括多个无线网络接口,诸如wifi、近场通信(nfc)和/或蜂窝电话接口的组合。一个或多个网络接口1680也可包括例如有线网络接口,以经由网络电缆1687与远程设备通信,该电缆可是例如以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。

在一个实施方案中,一个或多个网络接口1680可以例如通过符合ieee802.11b和/或ieee802.11g标准来提供对局域网的接入,并且/或者无线网络接口可以例如通过符合蓝牙标准来提供对个人区域网络的接入。其他无线网络接口和/或协议也可得到支持。除了经由无线lan标准进行通信之外或代替经由无线lan标准进行通信,一个或多个网络接口1680可以使用例如时分多址(tdma)协议、全球移动通信系统(gsm)协议、码分多址(cdma)协议、长期演进(lte)协议和/或任何其他类型的无线通信协议来提供无线通信。

计算系统1600还可包括一个或多个能量源1605和一个或多个能量测量系统1645。能量源1605可包括耦接到外部电源的ac/dc适配器、一个或多个电池、一个或多个电荷存储设备、usb充电器或其他能量源。能量测量系统包括至少一个电压或电流测量设备,其可以测量计算系统1600在预定时间段期间消耗的能量。此外,可包括一个或多个能量测量系统,其测量例如由显示设备、冷却子系统、wifi子系统或其他常用或高消耗子系统所消耗的能量。

图17是根据实施方案的用于移动设备的示例性网络操作环境1700的框图。移动设备1702a和移动设备1702b可例如通过一个或多个有线和/或无线网络1710进行通信1720以执行数据通信。例如,无线网络1712(例如蜂窝网络)可通过使用网关1716与广域网1714(诸如互联网)通信。同样地,诸如移动热点无线接入设备的接入设备1718可提供对广域网1714的通信接入。

在一些具体实施中,可通过无线网络1712和/或接入设备1718建立语音和数据通信。例如,移动设备1702a可通过无线网络1712、网关1716和广域网1714(例如,使用tcp/ip或udp协议)拨打和接收电话呼叫(例如,使用voip协议)、发送和接收电子邮件消息(例如,使用pop3协议),以及检索电子文档和/或流,诸如网页、照片和视频。在一些具体实施中,移动设备1702a可通过接入设备1718及广域网1714来拨打和接收电话呼叫、发送和接收电子邮件消息以及检索电子文档。在一些具体实施中,移动设备1702a或移动设备1702b可使用一条或多条电缆物理地连接到接入设备1718,并且接入设备1718可为个人计算机。在该配置中,移动设备1702a或移动设备1702b可以被称为“系留”设备。

移动设备1702a或移动设备1702b可通过一个或多个有线和/或无线网络1710与一个或多个服务通信,诸如导航服务1730、即时消息服务1740、媒体服务1750、存储服务1760和电话服务1770。例如,导航服务1730可提供导航信息,例如地图信息、位置信息、路线信息和其他信息。即时消息服务1740可例如提供电子邮件和/或其他即时消息服务。媒体服务1750可例如提供对媒体文件的访问,诸如歌曲文件、有声读物、电影文件、视频剪辑和其他媒体数据。存储服务1760可向移动设备1702a和移动设备1702b提供网络存储能力以存储文档和媒体文件。电话服务1770可实现移动设备1702a和移动设备1702b之间或者移动设备和有线电话设备之间的电话通信。电话服务1770可通过广域网1714路由ip语音(voip)呼叫,或者可访问蜂窝语音网络(例如,无线网络1712)。还可提供其他服务,包括用于更新移动设备上的操作系统软件或客户端软件的软件更新服务。

移动设备1702a或1702b还可通过一个或多个有线和/或无线网络1710访问其他数据和内容。例如,可经由如本文所述的web浏览器访问内容发布者,诸如新闻站点、rss订阅源、网站、博客、社交网站、开发者网络等。例如,移动设备1702a和/或移动设备1702b可执行浏览器软件以访问由可经由广域网1714访问的服务器提供的网站。

图18是根据实施方案的移动设备架构1800的框图。移动设备架构1800包括:存储器接口1802、包括一个或多个数据处理器的处理系统1804、图像处理器和/或图形处理单元,以及外围设备接口1806。各种部件可通过一个或多个通信总线或信号线耦接。各种部件可是单独的逻辑部件或设备,或者可集成在一个或多个集成电路中,诸如在片上系统集成电路中。

存储器接口1802可耦接到存储器1850,存储器1850可以包括高速随机存取存储器,诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)和/或非易失性存储器,诸如但不限于闪存存储器(例如,nand闪存、nor闪存等)。

传感器、设备和子系统可耦接到外围设备接口1806以促进多个功能。例如,运动传感器1810、光传感器1812和接近传感器1814可耦接到外围设备接口1806以促进移动设备功能。其他传感器1816也可连接至外围设备接口1806,诸如定位系统(例如,gps接收器)、温度传感器、生物传感器或其他感测设备以促进相关的功能。相机子系统1820和光学传感器1822(例如,电荷耦合设备(ccd)或互补金属氧化物半导体(cmos)光学传感器)可用于促进相机功能,诸如记录照片和视频剪辑。

可通过一个或多个无线通信子系统1824来促进通信功能,所述无线通信子系统可包括射频接收器和发射器和/或光学(例如,红外)接收器和发射器。无线通信子系统1824的具体设计与实现可取决于移动设备旨在通过其操作的一个或多个通信网络。例如,包括所示移动设备架构1800的移动设备可包括被设计为通过gsm网络、cdma网络、lte网络、wi-fi网络、蓝牙网络或任何其他无线网络操作的无线通信子系统1824。具体地,无线通信子系统1824可提供通信机制,客户端浏览器应用程序可通过该机制从远程web服务器检索资源。

可将音频子系统1826耦接到扬声器1828和麦克风1830以促进支持语音的功能,诸如语音识别、语音复制、数字记录和电话功能。

i/o子系统1840可包括触摸屏控制器1842和/或一个或多个其他输入控制器1845。触摸屏控制器1842可耦接到触敏显示器系统1846。触敏显示器系统1846和触摸屏控制器1842可例如使用多种触摸和压力感测技术中的任何一种来检测接触和移动和/或压力,包括但不限于电容、电阻、红外和表面声波技术,以及其他接近传感器阵列或用于确定与触敏显示器系统1846接触的一个或多个点的其他元件。触敏显示器系统1846的显示输出可由显示控制器1843生成。在一个实施方案中,显示控制器1643可以可变的帧速率向触敏显示器系统1846提供帧数据。

在一个实施方案中,包括传感器控制器1844以监视、控制和/或处理从运动传感器1810、光传感器1812、接近传感器1814或其他传感器1816中的一者或多者接收的数据。传感器控制器1844可包括用于通过分析来自传感器的传感器数据来解释传感器数据以确定多个运动事件或活动中一者的发生的逻辑。

在一个实施方案中,i/o子系统1840包括可耦接到其他输入/控制设备1848的一个或多个其他输入控制器1845,诸如一个或多个按钮、摇臂开关、拇指滚轮、红外端口、usb端口,和/或诸如触笔的指针设备,或诸如用于扬声器1828和/或麦克风1830的音量控制的上/下按钮的控制设备。

在一个实施方案中,耦接到存储器接口1802的存储器1850可存储用于操作系统1852的指令,包括便携式操作系统接口(posix)兼容和不兼容的操作系统或嵌入式操作系统。操作系统1852可包括用于处理基本系统服务和用于执行硬件相关任务的指令。在一些具体实施中,操作系统1852可是内核。

存储器1850还可存储通信指令1854以促进与一个或多个附加设备、一个或多个计算机和/或一个或多个服务器的通信,例如,以从远程web服务器检索web资源。存储器1850还可包括用户界面指令1856,包括便于图形用户界面处理的图形用户界面指令。

另外,存储器1850可存储传感器处理指令1858,以促进与传感器相关的处理和功能;电话指令1860,以促进电话相关的过程和功能;即时消息指令1862,以促进电子即时消息相关的过程和功能;web浏览器指令1864,以促进与网络浏览相关的过程和功能;媒体处理指令1866,以促进与媒体处理相关的处理和功能;包括gps和/或导航指令1868和基于wi-fi的位置指令的位置服务指令,以促进基于位置的功能;相机指令1870,以促进与相机相关的过程和功能;和/或其他软件指令1872,以促进其他过程和功能,例如安全过程和功能,以及与系统相关的过程和功能。存储器1850还可存储其他软件指令,诸如web视频指令,以促进与网络视频相关的过程和功能;和/或web购物指令,以促进与web购物相关的过程和功能。在一些具体实施中,媒体处理指令1866分为音频处理指令和视频处理指令,以分别促进与音频处理相关的过程及功能以及与视频处理相关的过程及功能。诸如国际移动设备身份(imei)1874之类的移动设备标识符或类似的硬件标识符也可存储在存储器1850中。

上面所识别的指令和应用程序中的每一者可与用于执行上述一个或多个功能的指令集相对应。这些指令不需要作为独立的软件程序、进程或模块来实现。存储器1850可包括附加指令或更少的指令。此外,各种功能可以在硬件和/或软件中实现,包括在一个或多个信号处理和/或专用集成电路中。

在以上说明书中,结合本发明的具体实施方案已描述了本发明。但显而易见的是,在不脱离本发明的更广泛的实质和范围的情况下,可对这些实施方案进行各种修改和变更。相应地,说明书和附图应被视为有例示性的而非限制性的意义。

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