用于作为显示持续估计的函数修改像素值的系统和方法

文档序号:2539332阅读:506来源:国知局
用于作为显示持续估计的函数修改像素值的系统和方法
【专利摘要】本发明提供用于作为显示持续估计的函数修改像素值的系统、方法和计算机程序产品。在使用中,标识要被显示在显示设备的显示屏上的图像帧的像素的值,其中显示设备能够处理在不可预测的时间的更新。此外,作为直到包括像素的下一个更新将被显示在显示屏上的所估计的持续时间的函数来修改像素的值。进一步地,将像素的经修改的值传送到显示屏用于其显示。
【专利说明】用于作为显示持续估计的函数修改像素值的系统和方法
[0001]相关申请
[0002]本申请要求享有于2012年10月2日提交的、题目为“GPU And DisplayArchitecture To Minimize Gaming Latency”的、申请号为 61/709,085 的美国临时专利申请的优先权,其通过援弓I整体并入本文。
【技术领域】
[0003]本发明涉及像素,并且更具体地涉及像素的显示。
【背景技术】
[0004]传统地,对图像帧进行渲染以允许由显示设备对其进行显示。例如,可以将游戏的3维(3D)虚拟世界渲染到2维(2D)视角正确图像帧。在任何情况下,渲染每个图像帧的时间(即每个帧的渲染速率)是可变的,由于这类渲染时间取决于由图像帧所表示的场景中的对象的数目、光源的数目、摄像机视点/方向等。不幸的是,显示设备的刷新一般独立于渲染速率,其已经导致尝试补偿在不同渲染和显示刷新速率之间的任何差异的有限的方案被引入。
[0005]仅通过示例的方式,垂直同步打开(vsync-on)模式和垂直同步关闭(vsync-off)模式是已经被引入以补偿在不同渲染和显示刷新速率之间的任何差异的技术。实际上,这些模式已经被专门用于特定的应用,以及组合使用,其中所选择的特定模式可以动态地基于GPU渲染速率在显示刷新速率以上或以下。然而在任何情况下,垂直同步打开和垂直同步关闭已经展现出各种限制。
[0006]图1A示出了当使能垂直同步打开模式时操作的示例。如所示的,应用(例如游戏)使用双重缓冲方法,其中存储器中存在两个缓冲区以接收帧,即缓冲区“A”和“B”。在本示例中,显示器以60Hz (16.6mS)运行。在显示器“垂直同步”(vsync)之后,GPU跨连接线将帧发送到显示器。在时间“t2”,帧“i”渲染还未完成,所以显示器还不能示出帧“i”。反而,GPU再次将帧“1-Ι”发送到显示器。“t2”之后不久,GPU完成对帧“i”的渲染。GPU进入等待状态,因为不存在将图像渲染进去的空闲缓冲区,即缓冲区B正在由显示器使用以对像素进行扫描输出,而缓冲区A是填满的并且正在等待被显示。就在“t3”之前,显示器完成对所有像素的扫描输出,并且缓冲区B是空闲的,GPU可以开始将帧“i+Ι”渲染进缓冲区B。在“t3”,GPU可以开始将帧“i”发送到显示器。
[0007]注意当帧的渲染刚好在垂直同步之后完成时,这可以造成在第一次显示帧之前添加额外的15mS。这添加到应用的“延时”,特别是在诸如“鼠标点击”的用户动作和诸如来自枪的“枪口闪光”的屏幕上的可见响应之间的时间。“垂直同步开启”的进一步的劣势是如果GPU渲染恰好稍慢于60Hz,则因为每个图像被示出两次,所以有效的刷新速率将下降到30Hz。一些应用允许“三重缓冲”和“垂直同步开启”一起使用以防止该30Hz问题发生。因为在该特定的情况下,GTO从不需要等待缓冲区变得可用,所以30Hz刷新问题得以避免。然而,“新”、“重复”、“新”、“新”、“重复”的显示方式可能使运动显得不规则。此外,当GPU渲染远快于显示器时,三重缓冲实际上引起增大的GPU延时。
[0008]图1B示出了当使能垂直同步关闭模式时操作的示例。如所示的,在本示例中,显示器再次以60Hz运行。在垂直同步关闭情况下,帧的渲染一完成,GPU就开始将帧的像素发送到显示器,并且放弃发送来自较早帧的像素。这立即释放正在由显示器使用的缓冲区并且GPU不需要等待就开始渲染下一个帧。垂直同步关闭的优势是较低的延时和较快的渲染(没有GPU等待)。“垂直同步关闭”的一个劣势是所谓的“撕裂(tearing)”,其中向用户所示出的屏幕包含级的“撕裂线”,在此处新得到的经渲染的帧开始被写到显示器,这归因于将较早帧的对象放置在新帧中的不同位置中的对象运动。在该上下文中,“撕裂”类似于单词“撕开(ripping)”而非单词“下垂(weeping)”。
[0009]因此存在对于解决与现有技术相关联的这些和/或其他问题的需要。

【发明内容】

[0010]提供用于作为显示持续估计的函数修改像素值的系统、方法和计算机程序产品。在使用中,标识要被显示在显示设备的显示屏上的图像帧的像素的值,其中显示设备能够处理在不可预测的时间的更新。此外,作为直到包括像素的下一个更新将被显示在显示屏上的所估计的持续时间的函数来修改像素的值。进一步地,将像素的经修改的值传送到显示屏用于其显示。
【专利附图】

【附图说明】
[0011]图1A示出了根据现有技术的、当使能垂直同步开启模式时与系统的操作相关的时序图。
[0012]图1B示出了根据现有技术的、当使能垂直同步关闭模式时与系统的操作相关的时序图。
[0013]图2示出了根据一个实施例的、提供动态显示刷新的方法。
[0014]图3A示出了根据另一个实施例的、与具有动态显示刷新的系统的操作相关的时序图。
[0015]图3B示出了根据另一个实施例的、与在其中渲染时间短于显示设备的刷新周期的系统的操作相关的时序图。
[0016]图4示出了根据又一个实施例的、提供动态显示刷新系统内的图像重复的方法。
[0017]图5A示出了根据另一个实施例的、与具有动态显示刷新的系统的操作相关的时序图,其中图像重复由图形处理单元(GPU)所控制。
[0018]图5B示出了根据另一个实施例的、与具有动态显示刷新的系统的操作相关的时序图,其中图像重复由显示设备所控制。
[0019]图6A示出了根据又一个实施例的、与具有动态显示刷新的系统的操作相关的时序图,其中图像重复由GPU所控制用于在重复图像帧的整体已经被显示之后显示下一个图像帧。
[0020]图6B示出了根据又一个实施例的、与具有动态显示刷新的系统的操作相关的时序图,其中图像重复由显示设备所控制用于在重复图像帧的整体已经被显示之后显示下一个图像帧。[0021]图7A示出了根据再一个实施例的、与具有动态显示刷新的系统的操作相关的时序图,其中图像重复由GPU所控制用于中断重复图像帧的显示并且在显示设备的显示屏上于中断点处显示下一个图像帧。
[0022]图7B示出了根据又一个实施例的、根据图7A的时序图的时序图,其附加地包括通过在显示设备的显示屏的第一扫描行处绘制所重复的下一个图像帧来自动地重复下一个图像帧的显示。
[0023]图7C示出了根据又一个实施例的、与具有动态显示刷新的系统的操作相关的时序图,其中图像重复由显示设备所控制用于中断重复图像帧的显示并且在显示设备的显示屏上于中断点处显示下一个图像帧。
[0024]图8A示出了根据另一个实施例的、与具有动态显示刷新的系统的操作相关的时序图,其中图像重复由GPU所控制用于中断重复图像帧的显示并且在显示设备的显示屏的第一扫描行处显不下一个图像中贞。
[0025]图SB示出了根据另一个实施例的、与具有动态显示刷新的系统的操作相关的时序图,其中图像重复由显示设备所控制用于中断重复图像帧的显示并且在显示设备的显示屏的第一扫描行处显示下一个图像帧。
[0026]图9示出了根据另一个实施例的、用于作为显示持续估计的函数来修改像素值的方法。
[0027]图10示出了根据又一个实施例的、当像素值作为显示持续估计的函数而被修改并且在该显示持续估计期间被显示时的结果照度的曲线图。
[0028]图11示出了根据再一个实施例的、当像素值作为显示持续估计的函数而被修改并且长于该显示持续估计被显示时的结果照度的曲线图。
[0029]图12示出了根据另一个实施例的、与具有动态显示刷新的系统的操作相关的时序图,其中图像重复由显示设备自动进行,该显示设备能够中断重复图像帧的显示以在显示设备的显示屏的第一扫描行处开始显示下一个图像帧。
[0030]图13示出了根据另一个实施例的、与具有动态显示刷新的系统的操作相关的时序图,其中图像重复由GPU自动进行,该GPU能够造成显示设备对重复图像帧的显示的中断以在显示设备的显示屏的第一扫描行处开始显示下一个图像帧。
[0031]图14示出了在其中可以实现各先前实施例的各架构和/或功能性的示范性系统。【具体实施方式】
[0032]图2示出了根据一个实施例的、提供动态显示刷新的方法200。在操作202中,标识显示设备的状态,其中图像帧的整体当前由显示设备所显示。在本描述的上下文中,显示设备可以是能够显示和保持图像帧的显示的任何设备。例如,显示设备可以是液晶显示器(IXD)设备,发光晶体管(LET)显示设备、发光二极管(LED)显示设备、有机LED (OLED)显示设备、有源矩阵OLED (AMOLED)显示设备等。作为另一个选项,显示设备可以是立体显示设备,其显示具有用于由观察者的左眼观看的左边内容和用于由观察者的右眼观看的右边内容这二者的图像帧(例如,其中在每个图像帧内,左边和右边的内容是行交错的、列交错的、像素交错的等)。
[0033]在各实现方案中,显示设备可以是计算系统的集成部件。例如,显示设备可以是移动设备(例如膝上型电脑、平板电脑、移动电话、手持游戏设备等)的显示器、电视机显示器、投影仪显示器等。在其他实现方案中,显示设备可以远离但能够耦连到计算系统。例如,显示设备可以是能够连接到桌面计算机的监视器或电视机。
[0034]此外,图像帧可以每一个均是表示期望经由显示设备进行显示的图像的任何经渲染的或要被渲染的内容。例如,图像帧可以由具有用户界面的应用(例如游戏、视频播放器等)生成,使得图像帧可以表示要显示为用户界面的图像。应该注意在本描述中图像帧将至少部分地以有序的方式显示以适当地向用户呈现应用的用户界面。特别地,图像帧可以由应用顺序生成、由一个或多个图形处理单元(GPU)顺序渲染,并且进一步可选地由显示设备至少部分地(例如当未终止时)顺序显示。
[0035]如以上所提到的,标识显示设备的状态,其中图像帧的整体(即所有部分)当前由显示设备所显示。例如,对于具有逐行绘制图像帧(例如从顶部至底部)的显示屏(例如面板)的显示设备,可以响应于显示设备正在绘制的最后扫描行的完成,标识在其中图像帧的整体当前由显示设备所显示的显示设备的状态。在任何情况下,可以以任何方式标识指示显示设备准备好接受新图像的状态。
[0036]响应于对显示设备的状态的标识,确定要被显示的下一个图像帧的整体是否已经被渲染到存储器。注意决策204。如以上所描述的,图像帧将至少部分地以有序的方式显示。因此,下一个图像帧可以是由应用所生成用于紧接在如于操作202中所标识的当前所显示的图像帧之后对其进行渲染的任何图像帧。
[0037]这类渲染可以包括从由应用所输出的第一格式到用于传送到显示设备的第二格式的对图像帧的任何处理。例如,可以对由应用所生成的图像帧实施渲染(例如以2D或以3D)以具有各种特性,诸如对象、一个或多个光源、特定的摄像机视点等。渲染可以生成2D格式的图像帧,其中每个像素根据由应用为图像帧所定义的特性而被上色。
[0038]因此,确定要被显示的下一个图像帧的整体是否已经被渲染到存储器可以包括确定是否已经渲染图像帧的每个像素、是否已经完成从由应用所输出的第一格式到用于传送到显示设备的第二格式的对图像帧的处理等。
[0039]在一个实施例中,可以由GPU或其他处理器将每个图像帧渲染到存储器。存储器可以远离显示设备或显示设备的部件。作为选项,存储器可以包括由应用所生成的图像帧能够被渲染到其的一个或多个缓冲区。在两个缓冲区的情况下,可以将由应用所生成的图像帧交替地渲染到两个缓冲区。在两个以上缓冲区的情况下,可以以轮循的方式将由应用所生成的图像帧渲染到缓冲区。为此,确定要被显示的下一个图像帧的整体是否已经被渲染到存储器可以包括确定由应用所生成的下一个图像帧的整体是否已经被渲染到缓冲区之一。
[0040]如在操作206中所示的,当在决策204中确定要被显示的下一个图像帧的整体已经被渲染到存储器时,将下一个图像帧传送到显示设备用于其显示。在一个实施例中,一旦确定要被显示的下一个图像帧的整体已经被渲染到存储器,则将下一个图像帧传送到显示设备。以此方式,当I)显示设备当前正在显示图像帧的整体(操作202)时以及2)当确定(决策204)要被显示设备所显示的下一个图像帧的整体已经被渲染到存储器时,可以将下一个图像帧尽可能快地传送到显示设备。
[0041]本方法200的一个实施例在图3A中示出,其中具体地,假设先前经渲染的图像帧的整体已经由显示设备所显示(操作202),则渲染一完成,就将下一个图像帧传送到显示设备,使得延时被降低。特别地,图3A中的实施例的结果延时仅仅由两个因素设定,包括:1)在顶部(或底部等)开始“绘制”显示设备的显示屏花费的时间,以及2)用于显示屏的给定像素实际改变状态并且发射新的强度光子的时间。仅通过示例的方式,如以上所描述被降低的延时可以是在接收到输入事件和显示该输入时间的结果之间的时间。关于触摸屏设备或具有类似功能性的指点设备(pointing device),在手指触摸或指点与在屏幕上所显示的结果之间的延时和/或当用户以其手指或通过指点来四处拖动所显示的对象时的延时可以被降低,从而改进响应能力的质量。此外,因为仅当确定下一个图像帧的整体已经被渲染到存储器时才将这样的下一个图像帧传送到显示设备,所以确保从存储器发送到显示器的每个图像帧是整个图像。
[0042]进一步地,如在图2中的操作208中所示的,当确定要被显示的下一个图像帧的整体尚未被渲染到存储器时,延迟显示设备的刷新。因此,当I)显示设备当前正在以其整体显示图像帧(操作202)和2)确定(决策204)要被显示的下一个图像帧尚未以其整体被渲染到存储器时,可以自动延迟显示设备的刷新。在本描述中,刷新指以图像帧绘制显示设备的显示屏的任何操作。
[0043]应该注意可以如以上所描述的以任何期望的方式延迟显示设备的刷新。在一个实施例中,可以通过在显示设备上保持来自操作202的图像帧的显示来延迟显示设备的刷新。例如,可以通过延迟显示设备的刷新操作来延迟显示设备的刷新。在另一个实施例中,可以通过扩展显示设备的垂直消隐间隔,其转而将图像帧保持在显示设备上,来延迟显示设备的刷新。
[0044]在一些情况下,显示设备的刷新能够被延迟的程度可能是有限的。例如,显示设备上可能存在物理的限制,诸如显示设备的显示屏不能无限地保持它的状态。关于这类示例,在某一时间量之后,该时间量可依赖于显示设备的模型,像素可以“漂移(drift)”离开最后存储的值,并且改变(即降低或增大)它们的亮度或颜色。进一步地,一旦每个像素的亮度开始改变,像素亮度就可以继续改变直到像素变黑或白为止。
[0045]因此,在一些显示器上,显示设备的刷新可以仅延迟到阈值时间量。出于以上所提到的原因,阈值时间量可以特定于显示设备的模型。特别地,阈值时间量可以包括在其之前显示设备的像素开始改变或者至少在其之前显示设备的像素改变预定量的时间。
[0046]进一步地,显示设备的刷新可以被延迟某时间段,在该时间段期间下一个图像帧处于正在被渲染到存储器的过程中。这样,显示设备的刷新可以被延迟直到I)显示设备的刷新被延迟了阈值时间量或2)确定要被显示的下一个图像帧的整体已经被渲染到存储器,而无论哪个首先发生。
[0047]当显示设备的刷新被延迟了阈值时间量时(即没有确定要被显示的下一个图像帧的整体已经被渲染到存储器),可以重复对当前由显示设备所显示的图像帧的显示以确保显示不漂移并且允许附加的时间来完成下一个图像帧到存储器的渲染,如以下所更详细描述的。如以下所更详细描述的,重复图像帧的显示的各种示例在图5A-B中示出。通过在要被显示的下一个图像帧的全部尚未被渲染到存储器时延迟显示设备的刷新(例如达到阈值时间量),允许附加的时间来完成下一个图像帧的渲染。这确保从存储器发送到显示器的每个图像帧是整个图像帧。[0048]以以上所描述的方式延迟显示设备的刷新的能力进一步改进作为图像帧的顺序显示的产物的运动的平滑度,与当激活传统的垂直同步打开模式时发生的平滑度级别相反。特别地,通过允许附加的时间以渲染要被显示的下一个图像帧来提供平滑度,而不是必然重复对已被显示的图像帧的显示,其可能如传统的垂直同步打开模式所要求的那样花费更多时间。仅通过示例的方式,对于移动对象改进运动的主要原因可能是在图像的渲染的完成和将图像绘制到显示器之间的恒定延迟的结果。另外,例如,游戏可以具有图像的渲染何时完成的知识。如果游戏使用该知识来计算所有移动对象的“经过的时间”和更新位置,则恒定延迟将使正在平滑移动的事物看来正在平滑移动。这在具有恒定(例如16mS)刷新的垂直同步打开之上提供潜在的改进,这是由于该垂直同步打开例如可以仅在每次常规刷新(例如每16mS)时决定是否重复显示下一个帧,这造成不自然的运动,因为游戏不具有对象何时被显示的知识,其添加一些“抖动”到移动对象。如以下所更详细描述的,其中以上所描述的被延迟的刷新允许附加的时间以渲染要被显示的下一个帧的一个示例在图3A中示出。
[0049]另外,当刷新被延迟时,可以降低所使用的系统功率量。例如,可以通过更少次地(即如以上所描述的动态地)刷新显示设备来降低发送到显示设备以刷新显示的功率。作为第二个示例,可以通过更少次地将图像传送到显示设备来降低由GPU将图像传送到显示设备所使用的功率。作为第三示例。可以通过更少次地将图像传送到显示设备来降低将由GPU的存储器所使用的功率。
[0050]为此,可以实现图2的方法200以提供显示设备的动态刷新。这类动态刷新可以基于两个因素,包括显示设备在以下状态,其中图像帧的整体当前由显示设备所显示(操作202)和确定是否要由显示设备所显示的下一个图像帧的全部已经被渲染到存储器并且是否因此已经准备好由显示设备所显示。当图像帧的整体当前由显示设备所显示并且要被显示的下一个图像帧(即紧跟在当前所显示的图像帧之后)已经以其整体被渲染到存储器时,可以将这样的下一个图像帧传送到显示设备用于其显示。传送可以发生而无需在显示系统“绘制”显示设备的显示屏(例如在顶部开始)所需的、以及用于显示屏的给定像素实际改变状态并且发射新的强度光子的固有时间之外引入任何延迟。这样,假设当前正在显示先前图像帧的整体,则下一个图像帧一经以其整体被渲染,就可以尽可能快地将其显示。
[0051]当标识了图像帧的整体当前由显示设备所显示但是要被显示的下一个图像帧(SP紧跟在当前所显示的图像帧之后)尚未以其整体被渲染到存储器,则可以延迟显示设备的刷新。延迟刷新可以允许附加的时间用于下一个图像帧的整体被渲染到存储器,使得当渲染在延迟期间完成时,可以用以上所描述的方式尽可能快地显示经渲染的下一个图像帧的整体。
[0052]现在将关于各可选架构和特征来阐述更多示例性的信息,根据用户的期望可以采用所述架构和特征来实现或不实现前述的框架。应该强烈注意下面的信息出于示例性的目的而阐述并且其不应该被认为是以任何方式进行限制。下面特征中的任何一个可以可选地合并,排除或无需排除所述的其他特征。
[0053]图3A示出了根据另一个实施例的、与具有动态显示刷新的系统的操作相关的时序图300。作为选项,时序图300可以在图2的方法的上下文中实现。然而,当然时序图300可以在任何期望的环境中实现。还应该注意前述定义可以在本描述期间应用。[0054]如本时序图300中所示的,由GPU将每个图像帧渲染到存储器(时序图300示出为GTO渲染)所要求的时间长于经渲染的图像帧以其整体被扫描输出到显示设备的显示屏(时序图300示出为GPU显示)以及显示设备的显示屏改变状态和发射新的强度光子(时序图300示出为监视器并且下文称为刷新周期)所要求的总时间。换言之,在本实施例中,GPU渲染帧速率比最大的监视器刷新速率慢。在该情况下,显示刷新应该跟随在GPU渲染帧速率之后,使得一旦图像帧以其整体被渲染到存储器,就尽可能快地将每个图像帧传送到显示设备用于其显示。
[0055]在所示出的具体示例中,存储器包括两个缓冲区:缓冲区“A”和缓冲区“B”。当标识显示设备的状态,其中图像帧的整体当前由显示设备所显示(例如图像帧时,那么一旦下一个图像帧“i”以其整体被渲染到缓冲区“A”,就将这样的下一个图像帧“i”传送到显示设备用于其显示。在该下一个图像帧“i”正在被传送到显示设备并且被绘制在显示设备的显示屏上时,下一个图像帧“i+1”以其整体被渲染到缓冲区“B”,并且随后一旦该下一个图像帧“i+1”以其整体被渲染到缓冲区“B”,就将这样的下一个图像帧“i+1”传送到显示设备用于其显示,以此类推。
[0056]因为GPU渲染帧速率比最大监视器刷新速率慢,所以延迟显示设备的刷新速率以允许附加的时间用于要被显示的每个图像帧的渲染。以此方式,可以在其中刷新已经被延迟的时间段期间完成每个图像帧的渲染,使得一旦图像帧以其整体被渲染到存储器,该图像帧就可以尽可能快地被传送到显示设备用于其显示。
[0057]图3B示出了根据另一个实施例的、与在其中渲染时间短于显示设备的刷新周期的系统的操作的时序图350。作为选项,时序图350可以在图2的方法的上下文中实现。然而,当然时序图350可以在任何期望的环境中实现。还应该注意前述定义可以在本描述期间应用。
[0058]如在本时序图350中所示的,GPU将每个图像帧渲染到存储器所要求的时间短于经渲染的图像帧以其整体被扫描输出到显示设备的显示屏(示出为监视器)以及显示设备的显示屏改变状态和发射新的强度光子(后文称为刷新周期)所要求的总时间。换言之,在本实施例中,GPU渲染帧速率比最大的监视器刷新速率快。在该情况下,监视器刷新周期应该等于最高的刷新速率或最小的监视器刷新周期,使得在等待缓冲区空闲以将下一个图像帧渲染到其中时对GPU造成最低的延时。
[0059]在所示出的具体示例中,存储器包括两个缓冲区:缓冲区“A”和缓冲区“B”。当标识状态,其中图像帧的整体由显示设备所显示(例如图像帧时,那么将下一个图像帧“i”传送到显示设备用于其显示,因为它已经以其整体被渲染到缓冲区“A”。在下一个图像帧“i”正在被传送到显示设备并且绘制在显示设备的显示屏上时,下一个图像帧“i+1”以其整体被渲染到缓冲区“B”,并且随后一旦图像帧“i”的整体被绘制在显示设备的显示屏上,就将下一个图像帧“i+1”传送到显示设备用于其显示,因为它已经以其整体被渲染到缓冲区“B”,以此类推。
[0060]因为GPU渲染帧速率比最大监视器刷新速率快,所以显示设备的刷新速率达到最高频率并且其继续利用新的图像帧以显示设备所能够的快速来刷新自己。以此方式,可以以显示设备可以显示这类图像的最快速率将图像帧从缓冲区传送到显示设备,使得缓冲区可以尽可能快地被释放用于到其的进一步渲染。[0061]图4示出了根据又一个实施例的、提供动态显示刷新系统内的图像重复的方法400。作为选项,方法400可以在图2-3B的上下文中实行。然而,当然方法400可以在任何期望的上下文中实行。还应该注意前述定义可以在本描述期间应用。
[0062]如所示的,在决策402中确定是否图像帧的整体当前由显示设备所显示。例如可以确定图像帧是否已经被绘制到显示设备的显示屏的最后扫描行。如果确定图像帧的整体并未由显示设备所显示(例如图像帧仍然正在被写到显示设备),则方法400继续等待确定图像帧的整体当前由显示设备所显示。
[0063]一旦确定图像帧的整体当前由显示设备所显示,就在决策404中进一步确定是否要被显示的下一个图像帧的整体已经被渲染到存储器。如果确定要被显示的下一个图像帧的整体已经被渲染到存储器(例如GPU渲染速率比显示刷新速率快),则将下一个图像帧传送到显示设备用于其显示。注意操作406。这样,一旦不仅图像帧的整体当前由显示设备所显示而且要被显示的下一个图像帧的整体已经被渲染到存储器,就可以将下一个图像帧传送到显示设备用于其显示。
[0064]然而,如果在决策404中确定要被显示的下一个图像帧的整体尚未被渲染到存储器(例如下一个图像帧仍然在正被渲染到存储器的过程中,特别是在GPU渲染速率比显示刷新速率慢的情况下),则延迟显示设备的刷新。注意操作408。应该注意可以通过以下方式延迟显示设备的刷新:1) GPU在将任何进一步的图像帧传送到显示设备之前等待达到预定时间段,或2)当GPU的硬件在将任何进一步的图像帧传送到显示设备之前不会等待(例如不能等待等)达到预定时间段时,指示显示设备忽略被传送到显示设备的不想要的图像帧。
[0065]特别地,关于以上所提及的操作408的情况2),应该注意一些GPU不能实现在操作408的情况I)中所描述的延迟。特别地,一些GPU可能仅实现有限的垂直消隐间隔,使得对增大该垂直消隐间隔的任何尝试可能导致硬件计数器溢出,其中不管存储器的内容(即不管是否图像帧的整体已经被渲染到存储器),GPU开始从存储器扫描输出。这样,因为正经由扫描输出所传送的存储器内容可能不是单个图像帧的整体并且因此可能是不想要的,所以扫描输出可以被认为是坏的扫描输出。
[0066]GPU软件可能意识到坏的扫描输出即将来临。然而,由于GPU的性质,硬件扫描输出可能不能由软件停止,使得坏的扫描输出将发生。为了防止显示设备显示不想要的内容,GTO软件可以发送消息到显示设备以忽略下一个扫描输出。该消息可以在数字视频接口(DVI)连接线的情况下通过i2c发送,或者在显示端口(DP)连接线的情况下可以作为辅助信道传输i2c (i2C-0Ver-AuX)或辅助(Aux)命令发送。消息可以格式化为监视器命令控制集(MCCS)命令或其他类似命令。可替换地,GPU可以使用任何其他技术将其用信号传递到显示设备,诸如DP信息巾贞、解置位(de-asserting)数据使能(DE)或其他带内或带外信令技术。
[0067]作为另一个选项,可以仅仅在显示设备里处理GPU计数器溢出。GPU可以在相关联的计算设备启动时向显示设备告知显示设备应该使用的超时值是多少。显示设备随后应用该超时并且将忽略在超时发生之后所接收的第一图像帧。如果GPU超时和显示设备超时同时发生,则显示设备可以自刷新显示屏并且丢弃下一个传入的图像帧。
[0068]作为又一个选项,GPU软件可能认识到扫描输出即将来临,但是“在最后时刻”将正在被扫描输出的图像帧改变为先前帧。在该情况下,在显示设备中可能不必然存在任何规定来对付坏的扫描输出。在使用该技术的情况下,其中GPU计数器溢出总是早于显示设备超时而发生,没有显示设备超时可能是必然的,因为由于计数器溢出的刷新可能总是及时发生。
[0069]此外,在当对缓冲区“A”的重新编程发生时GPU显示逻辑可能已经从缓冲区“B”预取几个扫描行的数据的情况下,这些(不正确的)行可能被发送到显示设备。可以通过显示设备总是丢弃例如所发送的前三行并且使由GPU所渲染/扫描的图像提高三行来处理该情况。
[0070]在显示设备的刷新正在被延迟时,可以连续地、周期性地等确定是否要被显示的下一个图像帧的整体已经被渲染到存储器,如在决策410中所示,直到显示设备的刷新被延迟阈值时间量(即决策412)或确定要被显示的下一个图像帧的整体已经被渲染到存储器(即决策410)为止,无论哪个首先发生。
[0071]如果在决策410中,在确定显示设备的刷新已经被延迟阈值时间量之前,确定要被显示的下一个图像帧的整体已经被渲染到存储器(决策410是“YES”),那么将下一个图像帧传送到显示设备用于其显示。注意操作406。在另一方面,如果在决定412中,在确定要被显示的下一个图像帧的整体已经被渲染到存储器之前,确定显示设备的刷新已经被延迟阈值时间量(决定412是“YES”),那么重复对先前所显示的图像帧的显示。注意操作414。这类先前所显示的图像帧可能是当前由显示设备所显示的图像帧。
[0072]在一个实施例中,可以通过GPU将图像帧重新传送到显示设备(例如从存储器)来实施图像帧的显示的重复。例如,当显示设备不具有图像帧的拷贝在被显示的同时存储于其中的内部存储器时,图像帧到显示设备的重新传送可以发生。在另一个实施例中,其中显示设备确实包括内部存储器,可以通过显示设备显示来自内部存储器(例如在显示设备内部的DRAM缓冲区)的图像帧来实施图像帧的显示的重复。
[0073]这样,如以上所描述的,GPU或显示设备可以控制先前所显示的图像帧的显示的重复。在显示设备控制图像帧的重复显示的情况下,显示设备可以具有可特定于显示设备的显示屏的内置超时值。显示设备的定标器或时序控制器(TCON)可以检测何时它在超时期内尚未接收到来自GPU的下一个图像帧以及可以自动地利用先前所显示的图像帧(例如来自其内部存储器)重新绘制显示屏。作为另一个选项,显示设备可以具有能够一旦超时期完成就发起图像帧的重复显示的时序控制器。
[0074]在GPU控制图像帧的重复显示的情况下,GPU扫描输出逻辑可以直接驱动显示设备,而无需定标器在中间。因此,GPU可以类似于以上关于显示设备的定标器所描述的那样实施超时。GPU可以随后检测(例如特定于显示屏的)超时,并且发起对先前所显示的图像帧的重新扫描输出。
[0075]图5A-5B示出了根据各实施例的、其中重复先前所显示的图像帧以允许附加的时间来将下一个图像帧渲染到存储器的操作的示例。特别地,图5A示出了与具有动态显示刷新的系统的操作相关的示范性时序图,在该系统中图像重复由GPU如以上所描述地控制。图5B示出了与具有动态显示刷新的系统的操作相关的示范性时序图,在该系统中图像重复由显示设备如以上所描述地加以控制。
[0076]一旦先前所显示的图像帧的显示被重复,就可以实现多个不同的技术。在一个实施例中,方法400可以可选地回复到决策402,使得仅一次所重复的图像帧的整体被显示(决策402是“YES”)并且要被显示的下一个图像帧的整体被渲染到存储器(决策404是“YES”),就可以将下一个图像帧传送到显示设备用于其显示。例如,当在所重复的图像帧的整体由显示设备所显示之前要被显示的下一个图像帧的整体已经被渲染到存储器时,方法400可以等待所重复的图像帧的整体由显示设备所显示。在该情况下,响应于对显示设备的状态的标识,其中所重复的图像帧的整体当前由显示设备所显示,则可以将下一个图像帧传送到显示设备用于其显示。
[0077]图6A-6B示出了以下情况下的操作的示例,其中响应于对显示设备的状态的标识,其中所重复的图像帧的整体当前由显示设备所显示,将以其整体被渲染的下一个图像帧传送到显示设备用于其显示。特别地,图6A示出了与具有动态显示刷新的系统的操作相关的示范性时序图,其中由GPU控制图像重复用于在重复图像帧的整体已经被显示之后显示以其整体被渲染的下一个图像帧。图6B示出了于具有动态显示刷新的系统的操作的示范性时序图,其中图像重复由显示设备控制用于在重复图像帧的整体已经被显示之后显示以其整体被渲染的下一个图像帧。在图6B的上下文中,GPU可以可选地将已经以其整体被渲染的下一个图像帧传送到显示设备,并且显示设备可以随后缓存所接收的下一个图像帧,以一旦标识在其中所重复的图像帧的整体当前被显示的显示设备状态,就显示该下一个图像帧。
[0078]作为以上所描述的实施例(例如图6A-6B)的进一步的选项,其中第二图像帧的渲染在先前经渲染的第一图像帧在显示屏上的重复绘制期间完成,可以自动地调节由GPU或显示设备所实现的、关于第二图像帧的显示的超时期。例如,用于图像帧的渲染时间可以与用于先前经渲染的图像帧(即可能具有类似内容并且因此具有类似渲染时间的序列中的图像帧)的渲染时间相关联。这样,在以上的实施例中可以估计跟随在第二图像帧之后的第三图像帧可能要求与用来渲染第二图像帧的时间相同或类似的渲染时间。由于第二图像帧在于显示屏上对重复的第一图像帧的绘制期间完成,所以可以降低超时期以允许完成在显示屏上的第二图像帧的绘制的估计时间与完成第三图像帧的渲染的估计时间一致。这样,利用经调节的超时,完成在显示屏上的第二图像帧的绘制的实际时间可以与第三图像帧的渲染的实际完成密切一致。通过调节超时期,可见的扫描残迹(stutter)可以通过避免在图像帧之间的非近似延迟的交替使用/停用而被减少。
[0079]进一步地,当所重复的图像帧的整体被显示但是要被显示的下一个图像帧的整体仍然尚未被渲染到存储器时,方法400可以回复到操作408,凭此显示设备的刷新再次被延迟。因此,当所重复的图像帧被延迟时,方法400可以可选地重复操作408-414,使得相同图像帧的显示被重复无数次(例如当允许足够时间用于下一个图像帧被渲染到存储器是必须的时)。
[0080]在另一个可选实施例中,其中先前所显示的图像帧的显示被重复,单独响应于确定要被显示的下一个图像帧的整体已经被渲染到存储器,可以将下一个图像帧传送到显示设备用于其显示,并且因此无需必然标识在其中所重复的图像帧的整体当前由显示设备所显示的显示设备状态。换言之,当在所重复的图像帧由显示设备所显示之前要被显示的下一个图像帧的整体已经被渲染到存储器时,可以将下一个图像帧传送到显示设备用于其显示而不必然需要对显示设备的状态的任何考虑。[0081]在以上所描述的实施例的一个实现方案中,一旦由显示设备接收到下一个图像帧,显示设备就可以中断在显示设备的显示屏上的所重复图像帧的绘制并且可以在中断点处开始在显示设备的显示屏上绘制下一个图像帧。这可能导致撕裂,即由显示设备同时显示所重复图像帧的一部分和下一个图像帧的一部分。然而,该撕裂在本方法400的上下文中将是最低的,因为它将仅在以下的具体情况中被容忍,其中在所重复的图像帧的整体由显示设备所显示之前,要被显示的下一个图像帧的整体已经被渲染到存储器。
[0082]图7A-7C示出了操作的示例,其中如以上所描述的,显示设备中断在显示设备的显示屏上对所重复的图像帧的绘制并且在中断点处开始在显示设备的显示屏上绘制下一个图像帧。特别地,图7A示出了与具有动态显示刷新的系统的操作相关的示范性时序图,其中图像重复由GPU控制用于中断重复图像帧的显示并且在显示设备的显示屏上于中断点处显示下一个图像帧。图7B示出了根据图7A的时序图的时序图,但是其附加地包括通过在显示设备的显示屏的第一扫描行处绘制被重复的下一个图像帧来自动重复下一个图像帧的显示。例如,由于图7A和7B中所示的中断造成撕裂(即在该点处图像帧于显示屏上结束并且下一个图像帧在显示屏上开始),所以所显示的下一个图像帧可以快速地由下一个图像帧的另一个实例所覆写以尽可能快地从显示屏移除可见撕裂。
[0083]图7C示出了与具有动态显示刷新的系统的操作相关的示范性时序图,其中图像重复由显示设备控制用于中断对重复图像帧的显示并且在显示设备的显示屏上于中断点处显示下一个图像帧。应该注意在图7C的上下文中,显示设备可以是可操作的以在显示屏上保持重复图像帧的已经绘制的部分同时在中断点处继续进行对下一个图像的绘制。
[0084]在以上所描述的实施例的另一个实现方案中,一旦由显示设备接收到下一个图像帧,显示设备就可以中断在显示设备的显示屏上对所重复的图像帧的绘制并且可以于显示设备的显示屏的第一扫描行处在显示设备的显示屏上开始下一个图像帧的绘制。这可以允许下一个图像帧的整体由显示设备所显示,使得以上所描述的撕裂可以被避免。
[0085]图8A-8B示出了操作的示例,其中显示设备中断在显示设备的显示屏上对所重复的图像帧的绘制并且于显示设备的显示屏的第一扫描行处在显示设备的显示屏上开始下一个图像帧的绘制。特别地,图8A示出了与具有动态显示刷新的系统的操作相关的示范性时序图,其中图像重复由GPU控制用于中断对重复图像帧的显示并且在显示设备的显示屏的第一扫描行处显示下一个图像帧。应该注意在图8A的上下文中,GPU可以控制显示设备以重新开始显示屏的刷新,使得下一个图像帧在显示屏的第一扫描行处开始被绘制。图8B示出了与具有动态显示刷新的系统的操作相关的示范性时序图,其中图像重复由显示设备控制用于中断对重复图像帧的显示并且在显示设备的显示屏的第一扫描行处显示下一个图像帧。
[0086]作为图4的方法400的可选扩展,其可能不必然限制于方法400的操作中的每一个,可以采用技术通过作为显示持续估计的函数来修改像素值(例如,如以下关于图9-11所更详细描述的)来改进显示设备响应时间。
[0087]图9示出了根据另一个实施例的、用于作为显示持续估计的函数来修改像素值的方法900。作为选项,方法900可以在图2-8B的上下文中实行。然而,当然方法900可以在任何期望的上下文中实行。还应该注意前述定义可以在本描述期间应用。
[0088]如在操作902中所示的,标识要被显示在显示设备的显示屏上的图像帧的像素的值,其中显示设备能够在处理在任何不可预测的时间的更新。如以上关于先前图片所描述的,显示设备可能能够以以上关于显示设备的动态刷新所描述的方式处理在不可预测的时间的更新。在一个实施例中,显示屏可以是2D显示设备的部件。
[0089]在一个实施例中,可以从GPU标识要被显示的图像帧的像素的值。例如,值可以产生自由GPU对图像帧的渲染和/或其他处理。因此,像素的值可以是像素的颜色值。
[0090]此外,如在操作904中所示的,作为直到包括像素的下一个更新将被显示在显示屏上的所估计的持续时间的函数来修改像素的值。在一个实施例中,这类所估计的持续时间可以是从像素的显示的时间到像素被更新(例如,作为包括像素的新图像帧的显示的结果)的时间。应该注意修改像素的值可以包括以作为直到包括像素的下一个更新将被显示在显示屏上的所估计的持续时间的函数的任何方式来改变像素的值。
[0091]在一个实施例中,所估计的持续时间可以基于先前图像帧在显示屏上显示的持续时间来确定或者确定为先前图像帧在显示屏上显示的持续时间,其中例如先前图像帧紧邻在要被显示的图像帧之前。当然,作为另一个选项,所估计的持续时间可以基于多个先前图像中贞中的每一个在显示屏上显示的持续时间来确定。
[0092]仅通过示例的方式,可以通过利用考虑直到包括像素的下一个更新将被显示在显示屏上的所估计的持续时间的算法来实施运算以修改像素的值。表I示出了可以用来作为直到包括像素的下一个更新将被显示在显示屏上的所估计的持续时间的函数来修改像素的值的算法的一个示例。当然,表I所示的算法仅用于示例性的目的并且不应视为以任何方式进行限制。
[0093]表I
[0094]Pixel_sent (i, j, t) =f (pixel_in (i, j, t), pixel_in (i, j, t_l),
[0095]estimated_frame_duration(t))
[0096]其中pixel_in (i, j, t)是在屏幕位置i,j处的像素的经标识值,
[0097]pixel_in(i, j, t_l)是在屏幕位置i,j处的、包括在由显示屏所显示的先前图像帧中的像素的先前值,以及
[0098]estimated_frame_duration(t)是直到包括像素的下一个更新将被显示的所估计的持续时间。
[0099]如表I所示,可以作为以下参数的函数来修改被发送到显示屏的像素的值:在特定屏幕位置处的像素的经标识值(例如从GPU所接收的)、包括在该相同屏幕位置处由显示屏所显示的先前图像帧中的像素的先前值以及直到包括像素的下一个更新将被显示的所估计的持续时间。在一个实施例中,经修改的像素值可以是像素的屏幕位置(i,j)的函数,其在由Gerrit A.Slavenburg于2010年10月8日提交的、申请号为12/901,447并且题目为 “System, Method, And Computer Program Product For Utilizing Screen PositionOf Display Content To Compensate For Crosstalk During The Display Of StereoContent”的美国专利申请中进行了描述,其在此通过援引整体并入本文。
[0100]进一步关于表I所示的算法,应该注意可以利用各种技术确定estimated_frame_duration (t)。在一个实施例中,estimated_frame_duration (t) =frame_duration (t_l),其中frame_duration(t-l)是先前图像巾贞由显示屏所显示的持续时间。在另一个实施例中,estimated_frame_duration(t)是预定数目的先前图像巾贞由显示屏所显示的平均持续时间,诸如 estimated_frame_duration (t) =frame_duration (t-1)、frame_duration (t-2)…frame_duration(t-N)的平均值,其中N是预定数目。在又一个实施例中,estimated_frame_duration (t)是预定数目的先前图像帧由显示屏所显示的持续时间之中的最小持续时间,诸如 estimated_frame_duration⑴=(frame_duration(t~l) > frame_duration (t-2)…frame_duration (t-N))的最小值,其中N是预定数目。
[0101]作为另一个选项,estimated_frame_duration⑴可以作为预定数目的先前图像帧由显示屏所显示的持续时间的函数而被确定,诸如estimated_frame_duration (t) = [frame_duration (t-1)、frame_duration (t-2)…frame_duration (t-N)]的函数,其中N是预定数目。仅通过示例的方式,estimated_frame_duration(t)可以从识别预定数目的先前图像帧每一个由显示屏所显示的持续时间之中的模式(例如节奏)而被确定。可以经由节奏检测来实施这类识别,其中节奏可以是任何模式直至观察窗的特定有限长度。在一个示范性实施例中,如果观察到存在帧持续的模式,包括:帧I持续1、帧2持续1、帧3持续2、帧4持续1、帧5持续1、帧6持续2,则可以基于该所观察的节奏预测estimated_frame_duration(t)。
[0102]进一步地,如在操作906中所示的,将像素的经修改的值传送到显示屏用于其显示。对像素的值的修改可以导致能够在特定的时间点达到期望的照度值的像素值。例如,显示屏可以要求从扫描像素的值到以使观察者观察到正确的像素强度的方式实际达到该正确的像素强度的特定的时间量。换言之,显示屏可以要求特定的时间量以达到像素的期望照度。在某些情况下,可能无法给予显示屏足够的时间来达到像素的期望照度,诸如当在显示屏已经到达初始的期望照度之前像素的下一个值被传送到显示屏用于其显示时。
[0103]这样,可以用以上关于操作904所描述的方式来修改要由显示屏所显示的像素的初始值以允许显示屏在所给定的时间内到达像素的初始值。在一个示范性实施例中,包括在一个图像帧中的像素的第一值(第一照度)可以与包括在其后的图像帧中的像素的第二值(第二照度)不同。要被用于显示图像帧的显示屏可以要求特定的时间量以从显示第一像素值转变到显示第二像素值·。如果没有给予显示屏该特定的时间量,则可以修改第二像素值以导致第一像素值和第二像素值之间的更大差异,从而驱动显示屏在更短的时间中到达期望的第二像素值。
[0104]图10示出了根据又一个实施例的、当像素值作为显示持续估计的函数而被修改并且在该显示持续估计期间被显示时的结果照度的曲线图1000。作为选项,曲线图1000可以表示当像素值作为显示持续估计的函数而被修改并且在该显示持续估计期间被显示时图9的方法900的实现方案。
[0105]如所示的,包括在多个图像帧中的像素初始地被给予分别对应这些图像帧的灰度值序列,包括gl、gl、gl、g2、g2、g2。除了 g2值的第一实例之外,显示屏可能能够在所估计的给定时间持续内达到初始像素值。特别地,被给予显示屏以显示g2值的第一实例的所估计的持续时间可以短于显示屏从gl值转变为期望的g2值所要求的时间。
[0106]因此,可以将被给予像素的g2值的第一实例修改为值g3 (与gl具有比gl和g2之间更大的差异)。这样,传送到显示屏的实际的像素值是gl、gl、gl、g3、g2、g2。如在曲线图1000上所示的,当扫描值g3时,像素的照度在显示屏上增大,使得到显示屏接收对像素值的更新(即所传送的像素值的第一 g2)的时候,显示屏已经到达值g2,其是在修改之前的初始期望值。
[0107]图11示出了根据再一个实施例的、当像素值作为显示持续估计的函数而被修改并且长于该显示持续估计被显示时的结果照度的曲线图1100。作为选项,曲线图1100可以表示当像素值作为显示持续估计的函数而被修改并且长于该显示持续估计被显示时图9的方法900的实现方案。
[0108]类似于图10,图11包括像素的值的初始期望序列,包括8141、8142、§242,其中传送到显示屏的像素的实际值包括gl、gl、gl、g3、g2、g2。当值g3被扫描时,像素的照度在显示屏上增大。在图11中,由显示设备晚于所估计的来接收对像素的更新,使得像素的照度增大超过值g2 (其是在修改之前的初始期望值),使得当显示设备的背光开启时,所示曲线之下的区域太高,所以感知照度太高。以此方式,像素的感知照度是不被期望的。
[0109]对于2D显示设备,该潜在地产生自前述修改的错误并不致命。如果结果像素值是不正确的,例如造成照度超调,则可能沿着移动对象的前端和/或尾端边缘存在模糊的视觉伪影。此外,一般地,当从先前图像帧的显示持续来确定所估计的显示持续时,错误将最低,因为典型地生成图像帧的应用具有相当规则的刷新速率。
[0110]对于立体3D显示设备(时间连续的),对像素的值的更准确的修改量的使用可能是必要的。错误可以造成眼睛之间的重影/串扰。所以图9的方法900可能不是被期望的。出于该原因,3D监视器可能无法结合图9的方法900使用具有任意持续垂直消隐间隔的动态刷新概念。相反,3D显示设备可以使用固定刷新速率方法或以下所描述的“自适应可变刷新速率”方法。
[0111]自话应可夺刷新谏率
[0112]显示设备可能能够处理许多刷新速率,每个具有输入时序正常样式,例如:30Hz、40Hz、50Hz、60Hz、72Hz、85Hz、100Hz、120Hz 等。
[0113]GPU可以初始地以例如85Hz刷新速率来渲染。随后发现它实际上不能维持以85Hz渲染,并且它给予监视器特殊的警告消息,例如通过i2c的MCCS命令,其将改变为例如72Hz。它正好在改变为新的时序之前发送该消息。GPU可以进行例如以85Hz的100帧;警告72,以72Hz的200帧;警告40,以40Hz的500帧;警告60,以60Hz的300帧等。因为关于转变被提早警告定标器,所以定标器能够更好地进行平滑的转变而无需经历正常的模式改变(例如避免黑屏、损坏的帧等)。
[0114]对于120Hz刷新速率能力监视器,可以以低刷新速率时序提供一些额外的水平消隐或垂直消隐以确保DVI总是以双链路模式运行并且避免链路切换,其也类似于DP。
[0115]该“自适应可变刷新速率”监视器可能能够在GPU正以刚刚低于60Hz进行渲染的情况下达到运行良好的目标而没有下降到30Hz的影响,诸如利用常规监视器和“垂直同步打开”。然而,该监视器可能不必然很好地响应具有高度可变帧渲染时间的游戏。
[0116]图12-13示出了操作的示例,其中图像重复被自动进行并且显示设备能够中断在显示设备的显示屏上对所重复的图像帧的绘制以开始在显示设备的显示屏的第一行上绘制下一个图像帧。特别地,在显示设备可以处理中断在显示屏上对一个图像帧的绘制以开始在显示屏的第一行上绘制下一个图像帧(即中止和重新扫描)的情况下,可以由图形处理单元实施显示设备的刷新的延迟并且可以进一步由显示设备以预配置的频率(例如40Hz)自动重复图像帧直到下一个图像帧以其整体被渲染并且因此被传送到显示设备用于其显示为止。图像帧的该自动重复可以完全避免在20-30HZ下发生的低频闪烁问题。
[0117]图12示出了与具有动态显示刷新的系统的操作有关的时序图,其中图像重复由显示设备自动进行,该显示设备能够中断对重复图像帧的显示以在显示设备的显示屏的第一扫描行处开始显示下一个图像帧。图12的实施例可以应用到具有发起重复的定标器的监视器,或应用到其中不存在定标器但是存在能够自刷新的TCON的用于平板、电话或笔记本的LCD面板。为了避免闪烁,显示屏以某个速率(以120Hz示出,但是它还可以更低,如40或50Hz)自动重复最后接收的图像帧。进一步地,为了避免由这类频繁重复所造成的任何延迟,下一个图像帧一以其整体被渲染并且因此准备好显示,则显示设备就进行中止/重新扫描。如所示的,当一贯以120Hz刷新时,例如,显示设备可以总是结束中止/重新扫描以显示下一个图像帧。如果在例如40或50Hz下发生自动重复,则中止/重新扫描可以或可以不发生以显示下一个图像帧。在任何一种情况下,在渲染图像帧的完成和扫描图像帧到显示器的开始之间将从不存在延迟。
[0118]图13显示了与具有动态显示刷新的系统的操作有关的时序图,其中图像重复由GPU自动进行,该GPU能够造成显示设备对重复图像帧的显示的中断以在显示设备的显示屏的第一扫描行处开始显示下一个图像帧。GPU发起重复,其以接近40Hz示出,但是可以以特定于显示屏的任何更高或更低的速率进行以避免闪烁。如所示的,GPU发起重复,之间具有一些延迟(g卩,每次超时),并且在任何情况下,当下一个图像以其整体被渲染时,GPU中止正在进行的扫描输出,并且同样指示开始下一个图像的新的扫描输出的显示设备。
[0119]图14示出了在其中可以实现各先前实施例的各种架构和/或功能性的示范性系统1400。如所示的,提供系统1400,包括至少一个主机处理器1401,其连接到通信总线1402。系统1400还包括主存储器1404。控制逻辑(软件)和数据存储在主存储器1404中,主存储器1404可以采取随机存取存储器(RAM)的形式。
[0120]系统1400还包括图形处理器1406和显示器1408,即计算机监视器。在一个实施例中,图形处理器1406可以包括多个着色器模块、栅格化模块等。前述模块中的每一个甚至可以布置于单个半导体平台上以形成图形处理单元(GPU)。
[0121]在本描述中,单个半导体平台可以指单独一个的基于半导体的集成电路或芯片。应该注意术语单个半导体平台还可以指具有增强连通性的多芯片模块,其仿真片上操作,并且通过利用常规的中央处理单元(CPU)和总线实现方案来做出实质的改进。当然,各模块还可以根据用户的期望分开地或以半导体平台的各种组合来布置。
[0122]系统1400还可以包括二级存储1410。二级存储1410包括例如硬盘驱动器和/或表示软盘驱动器、磁带驱动器、光盘驱动器等的可移动存储驱动器。可移动存储驱动器以众所周知的方式读取自和/或写入到可移动存储单元。
[0123]计算机程序或计算机控制逻辑算法可以存储在主存储器1404和/或二级存储1410中。这类计算机程序当被执行时使得系统1400能够实施各种功能。存储器1404、存储1410和/或任何其他存储是计算机可读媒介的可能示例。
[0124]在一个实施例中,各先前图片的架构和/或功能性可以在主机处理器1401、图形处理器1406、能够是主机处理器1401和图形处理器1406这二者的至少部分能力的集成电路(未示出)、芯片集(即设计为作为用于实施相关功能的单元来工作和出售的集成电路组等)、和/或用于该问题的任何其他集成电路的上下文中实现。[0125]还有就是,各先前图片的架构和/或功能性可以在通用计算机系统、电路板系统、专用于娱乐目的的游戏控制器系统、特定于应用的系统、和/或任何其他期望系统的上下文中实现。例如,系统1400可以采取桌面计算机、膝上型计算机和/或任何其他类型的逻辑的形式。还有就是,系统1400可以采取各种其他设备的形式,包括但不限于个人数字助理(PDA)设备、移动电话设备、电视机等。
[0126]进一步地,虽然未示出,但是系统1400可以耦连到网络(例如电信网络、局域网(LAN)、无线网络、诸如因特网的广域网(WAN)、点对点网络、电缆网络等)用于通信的目的。
[0127]虽然以上已经描述了各实施例,但是应该理解它们通过仅示例而非限制的方式加以呈现。因此,优选实施例的宽度和范围不应该被上述示范性实施例中的任何一个所限制,而应该仅根据下面的权利要求及其等同物所定义。
【权利要求】
1.一种方法,包括: 标识要被显示在显示设备的显示屏上的图像帧的像素的值,所述显示设备能够处理在不可预测的时间的更新; 作为直到包括所述像素的下一个更新将被显示在所述显示屏上的所估计的持续时间的函数来修改所述像素的所述值;以及 将所述像素的经修改的值传送到所述显示屏用于其显示。
2.如权利要求1所述的方法,其中从图形处理单元标识所述像素的所述值。
3.如权利要求1所述的方法,其中所述所估计的持续时间基于先前图像帧被显示的持续时间来确定。
4.如权利要求3所述的方法,其中所述所估计的持续时间被确定为所述先前图像帧被显示的所述持续时间被确定。
5.如权利要求3所述的方法,其中所述先前图像帧紧邻在所述要被显示的图像帧之N /.刖。
6.如权利要求1所述的方法,其中利用算法修改所述像素的所述值,所述算法包括: Pixel_sent (i, j, t) =f (pixel_in (i, j, t), pixel_in (i, j, t_l), estimated_frame_duration(t)), 其中piXel_in(i,j, t)是在屏幕位置i,j处的像素的经标识值,pixel_in(i, j, t-1)·是在屏幕位置i,j处的、包括在由所述显示屏所显示的先前图像帧中的像素的先前值,以及 estimated_frame_duration(t)是直到包括所述像素的所述下一个更新将被显示的所述所估计的持续时间。
7.如权利要求6所述的方法,其中所述estimated_frame_duration(t) =frame_duration (t-1),并且frame_duration (t_l)是所述先前图像帧由所述显示屏显示的持续时间。
8.如权利要求6所述的方法,其中所述estimated_frame_duration(t)是预定数目的先前图像帧由所述显示屏显示的平均持续时间。
9.如权利要求6所述的方法,其中所述estimated_frame_duration(t)是预定数目的先前图像帧由所述显示屏显示的持续时间之中的最小持续时间。
10.如权利要求6所述的方法,其中所述estimated_frame_duration(t)被确定为预定数目的先前图像帧由所述显示屏显示的持续时间的函数。
11.如权利要求10所述的方法,其中所述estimated_frame_duration(t)从识别所述预定数目的先前图像帧由所述显示屏显示的所述持续时间之中的模式而被确定。
12.如权利要求1所述的方法,其中修改所述像素的所述值,使得所述像素当被显示时在特定的时间点达到特定的照度值。
13.如权利要求1所述的方法,其中所述显示屏是二维(2D)显示设备的部件。
14.一种具体化在非暂时性计算机可读介质上的计算机程序产品,包括: 用于标识要被显示在显示设备的显示屏上的图像帧的像素的值的计算机代码,所述显示设备能够处理在不可预测的时间的更新; 用于作为直到包括所述像素的下一个更新将被显示在所述显示屏上的所估计的持续时间的函数来修改所述像素的所述值的计算机代码;以及 用于将所述像素的经修改的值传送到所述显示屏用于其显示的计算机代码。
15.—种系统,包括: 处理器,用于: 标识要被显示在显示设备的显示屏上的图像帧的像素的值,所述显示设备能够处理在不可预测的时间的更新; 作为直到包括所述像素的下一个更新将被显示在所述显示屏上的所估计的持续时间的函数来修改所述像素的所述值;以及 将所述像素的经修改的值传送到所述显示屏用于其显示。
16.如权利要 求15所述的系统,其中所述处理器经由总线耦连到存储器和所述显示设备。
【文档编号】G09G3/20GK103714772SQ201310452678
【公开日】2014年4月9日 申请日期:2013年9月27日 优先权日:2012年10月2日
【发明者】格里特·A·斯拉文博格, 汤姆·韦伯, 罗伯特·简·许滕 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1