造中,输入帧来自单个源,即作为单个表面来生成,该单个表面然后被提供到过驱动引擎50。如本领域中所知,输入帧还能够作为从多个不同的源表面(帧)(并且其确实可以是相对常见的)合成的合成帧。再次地,该实施方式扩展至输入帧51实际上是从多个源表面(帧)形成的合成帧的构造。
[0168]如图5中所示,该实施方式与常规的过驱动操作的不同之处在于,首先,输入帧和输出帧作为这些帧的一系列较小区域(部分)57、58来进行处理。因此,输出帧逐个区域地生成,输出帧的各个各自区域从输入帧的相应区域生成。(为了简便起见,假设在该实施方式中,在输入帧51的区域57与输出帧52的区域58之间存在一对一的映射。然而,如果需要的话,例如在输入帧区域与输出帧区域之间不存在一对一的映射的其它结构将是可能的。)
[0169]同样,并且如下文中将更加详细地讨论的,在该实施方式中,当过驱动引擎50正在处理输入帧来生成用于提供到显示器53的输出帧52时,过驱动引擎首先确定相关输入帧区域自先前输入帧起是否已经发生变化或者至少显著地发生变化。如果确定相关输入帧区域自输入帧的先前版本起已经发生变化,则过驱动引擎在过驱动处理中利用针对当前输入帧的区域和针对先前输入帧的相应区域生成输入帧区域的过驱动版本,从而在输出帧52中提供过驱动区域。
[0170]然而,如果确定输入帧区域未发生变化,则过驱动引擎50不执行针对该区域的任何形式的过驱动计算,而相反地仅提供来自当前输入帧(来自待显示的新输入帧)的区域作为输出帧中的相应区域。然后在确定了输入帧区域未发生变化的情况下,这种操作避免了读取先前输入帧并执行任何过驱动计算的需要。
[0171]然后这种操作的效果在于,输出帧52可以既包含经过驱动区域(其是相应输入帧区域的过驱动版本)又包含未经过驱动区域(其仅对应于其当前所处的当前输入帧区域)。
[0172]当要显示新输入帧时,过驱动引擎50针对每个输入帧区域依次执行这种操作,以相应地生成新输出帧52,然后该新输出帧能够由显示控制器54读取并被用来驱动显示器53ο
[0173]在该实施方式中,所考虑的输入帧51和输出帧52的区域57、58对应于正在渲染相应输入帧的图形处理器所生成的相应渲染图块。如果需要的话,可以使用帧区域的其它结构和构造。
[0174]本发明的实施方式能够在提供用于显示的帧的任何形式的数据处理系统中实现。因此,它们例如能够被用于如上述的图3中所示的系统中。在这种情况下,过驱动引擎31将被构造成以该实施方式的方式来运行。
[0175]图6、图7和图8进一步示出可以实现该实施方式的示例性系统。
[0176]图6示出显示控制器60包含并执行过驱动引擎本身的结构。这种结构能够避免向存储器写入过驱动帧的需要,从而节省带宽。
[0177]图7示出存在包括CPU 32、GPU 33、视频引擎34、显示控制器35、存储器控制器38和互联器36的片上系统(SoC)70以及包括过驱动引擎72和合适的存储器73的单独“显示增强”ASIC 71的结构。然后,从显示增强ASIC 71向显示器53提供输出帧。
[0178]图8示出再次存在包括CPU 32、GPU 33、视频引擎34、显示控制器35、互联器36和存储器控制器38,接入片外存储器37的片上系统70的进一步的结构,该进一步的结构生成输入帧并将该输入帧提供到“智能”显示器80。然后,“智能”显示器80包括过驱动引擎81、合适的存储器82以及显示器83。假设在这种情况下“智能”显示器80具有其自身的处理能力和内存,这样其能够执行过驱动引擎并对其自身进行处理。
[0179]如上述所关注的,该实施方式运行,逐个区域从输入帧生成用于提供到显示器的输出帧。对于正在进行处理的每个输入帧区域,确定输入帧区域自输入帧的先前版本起是否已经(显著地)发生变化,并且如果确定输入区域已经发生变化,则生成输入帧区域的过驱动版本作为输出帧中的相应的区域。在另一方面,如果确定输入帧区域自输入帧的先前版本起未发生变化,则对于输出帧中的相应的区域使用新输入帧区域(即,无需对其进行任何形式的过驱动处理)。
[0180]在该实施方式中,输入帧区域是否已经发生变化的确定通过考虑表示输入帧区域的内容并表示输入帧区域的先前版本的签名来完成。该处理将在下文更加详细地进行讨论。
[0181]为了便于该操作,针对每个输入帧区域生成指示内容的签名,然后存储并使用这些指示内容的签名,以及表示帧区域本身的数据。该数据可以全部被存储在例如片外存储器37中。如果需要的话,其它结构当然将是可能的。
[0182]图9例示了根据本发明的实施方式的数据以及其如何被存储在存储器中。
[0183]如图9中所示,并且如上述所关注的,每个输入帧51已经与表示各自帧区域57的内容的一组签名90、91相关联。表示输入帧51的各个各自区域57的数据92a、92b连同表示各自输入帧的区域的内容的一组签名94a和94b —起被存储在存储器37中。
[0184]然后图10示意性地示出在示例中在过驱动引擎被包含在过驱动显示控制器60中(即,显示控制器本身能够并运行为执行过驱动处理)的情况下,该签名数据90、91被过驱动引擎使用。
[0185]图11和图12更加详细地示出当在该实施方式生成用于显示的输出帧时用于过驱动显示处理器的过驱动处理的操作的实施方式。这里假设待显示的新输出帧需要例如刷新显示,所以将从输入帧生成新输出帧用于提供到显示器。
[0186]如图11中所示,该处理始于过驱动引擎获取待考虑的输入帧的下一图块(区域)(步骤110)。然后,获取并比较针对当前输入帧(即,待显示的新输入帧)和针对输入帧的先前版本(其曾用来生成当前正在进行显示的输出帧)的所关注的图块(区域)的图块签名(步骤111和112) O
[0187]如果确定图块签名不相同(即,因此确定输入帧图块(区域)自先前帧起已经(显著地)发生变化),则如图11中所示,执行过驱动处理。因此,过驱动引擎从先前输入帧中获取相应的图块(步骤113)并利用来自当前输入帧的图块和来自先前帧的图块导出过驱动的图块(步骤114),然后提供这样生成的过驱动的图块作为针对稍后被发送到显示器的输出帧中的图块位置的图块(步骤115)。
[0188]在另一方面,如果在步骤112确定针对当前输入帧和先前输入帧的图块(区域)的图块签名是相同的(即,这样确定图块在当前输入帧中未发生变化),则不执行过驱动处理,而是提供来自当前输入帧(即,来自待显示的新输入帧)的图块作为稍后被发送到显示器的输出帧中的相应图块(步骤116)。
[0189]针输入帧中的全部图块(针对需要的每个输出帧区域)重复该处理,直至输出帧完整为止(步骤117、118和119)。如果需要的话(并且例如,根据正在执行过驱动引擎的装置的处理能力),则可以依次地或并行地处理输入帧图块(区域)。
[0190]图12是示出能够以本发明的方式运行的显示控制器中的数据及控制流程等的框图。
[0191]如图12中所示,显示控制器将包括数据获取控制器120,该数据获取控制器120可以操作用于从存储器获取来自当前输入帧和先前输入帧的图块及其相应的指示内容的签名,并将该数据分别存储在帧图块缓冲器121、先前帧文件缓冲器122、当前帧签名缓冲器123以及先前帧签名缓冲器124中。
[0192]过驱动状态机器125然后运行,以比较来自当前帧签名缓冲器123和先前帧签名缓冲器124的当前帧和先前帧中的图块的签名,并且如果需要的话,触发过驱动计算器126和将过驱动帧图块存储在过驱动帧图块缓冲器127中。根据情况,过驱动状态机器125还控制写入控制器128向现实输出逻辑器129提供来自输入帧图块缓冲器121的当前输入帧图块或者来自过驱动图块缓冲器127的生成的过驱动的帧图块。
[0193]虽然已经特别参照给定输出帧的处理描述了上述实施方式,如将要理解的,当生成输出帧的新版本时每当要显示输入帧的新版本时,将相应地重复该实施方式的操作。
[0194]如上述所关注的,该实施方式使用表示各自输入帧区域(图块)的内容的签名来确定这些图块(区域)是否已经发生变化。图13和图14示意性地示出用于生成指示输入帧图块内容的签名的示例性结构。其它结构当然将是可能的。
[0195]在该实施方式中,该处理使用签名生成硬件单元130。签名生成单元130运行为针对每个输入帧图块生成表示该图块的内容的签名。
[0196]如图14中所示,经由签名生成单元130例如从正在生成输入帧的图形或其它处理中接收到图块数据,并且该图块数据被传递到缓冲器141和签名生成器140,该缓冲器141在签名生成处理发生时临时地存储该图块数据。
[0197]签名生成器140运行为生成图块所必需的签名。在该实施方式中,签名是图块的32比特CRC的形式。如果需要的话,还可以使用或替代地使用其它签名生成功能和其它形式的签名,例如散列函数等。
[0198]在新图块的签名已经生成时,签名生成硬件单元130的写入控制器142运行以将该签名存储在每个图块签名缓冲器中,在该写入控制器142的控制下,该每个图块签名缓冲器与存储器37中的所关注的输入帧的版本相关联。相应的图块数据还被存储在存储器37中的合适的缓冲器中。
[0199]在该实施方式中,仅利用每个图块中的颜色的所选择的一组最高有效位(例如,对于每像素RGB 8比特-R[7:2]、G[7:2]、B[7:2])来生成指示图块的签名的内容。然后,如上述所关注的,这些MSB签名被用来确定图块之间是否发生更加显著的变化(并因此是否触发过驱动操作)。以指示用来确定图块数据(颜色)值的MSB上的输入帧图块(区域)之间是否已经发生变化的签名的内容为根据的效果仅在于,图块之间的微小变化(例如,仅最低有效位(LSB)中的变化)将不触发针对输出帧的过驱动的图块的生成,这样如果输入帧图块之间存在更加显著的变化,将仅针对输出帧生成图块的过驱动版本。这具有避免“过驱动”图块之间的微小变化的优点,从而降低或避免可能简单地作用于强调噪声的过驱动处理。
[0200]当然,诸如利用其它颜色空间和/或动态范围的其它结构将是可能的。
[0201]如果需要的话,可以使用用于有效禁用针对图块之间的较小变化的过驱动处理(不执行过驱动处理)的其它结构。例如,比较处理能够允许即使在图块内部已经发生某些变化,仍然考虑等于或小于预定阀值的匹配,以指示输入帧未发生变化。仅比较整个区域(图块)也将是可能的。
[0202]还可以是这样的情况,对于其它目的来说,可以期望的是还具有指示针对输入帧图块的签名的“全部”内容。在这种情况下,例如可以生成针对过驱动处理的两组签名,一个“完整”签名,另一个“简化的”签名。另选地,颜色的部分能够进行分割,以生成相应单独签名,例如针对MSB颜色的第一签名(例如,R[7:4]、G [7:4]、B [7:4])、第二“中间颜色”签名(例如,R[3:2]、G[3:2]、B[3:2])和第三 LSB 颜色签名(R[l:0]、G[1:0]、B[1:0]),具有例如相应“部分”签名,例如被用于过驱动处理的MSB颜色签名,但是然后在需要的情况下,相应“部分”签名被串接起来提供指示针对图块的签名的“全部”内容。其它结构当然将是可能的。
[0203]如果需要的话,对本发明的上述实施方式的各种替代选择、修改和添加将是可能的。
[0204]例如,能够分析进行处理的内容的类型,以确定过驱动处理和/或过驱动值来使用。例如,可以分析帧或者能够使用被利用的颜色空间来确定进行处理的内容的类型(例如,其是否是视频源),并且因此,然后该信息能够被标记并用来控制例如签名比较处理和/或正在用于比较处理的签名的形式(例如用于正在进行比较的签名中的MSB比特的数目)。
[0205]类似地,能够确定输入帧和/或输出帧区域是否正在快速发生变化(例如,包含图像边缘),并因此控制超速传送处理,例如签名比较。在这种情况下,这优选地通过检测输入帧区域是否包含图像边缘(该图像边缘检测可以例如由生成数据(例如,GPU或视频引擎)的装置来执行)来实现,然后针对每个输入帧区域生成边缘检测系数元数据。另选地,边缘检测能够由显示控制器进行。
[0206]然后,边缘检测数据(例如,边缘检测系数)能够被用来例如确定应当进行比较以确定是否应当执行过驱动的MSB的数目。
[0207]同样,虽然在上述的实施方式中已经假设在输入帧区域和输出帧区域之间存在一对一的映射,但是这不是必需的情况。例如,可以存在至少部分地促成给定的输出帧区域的多个输入帧区域。还可以是例如显示控制器以扫面线的顺序获取数据的情况,但是输入帧区域签名数据是针对相应2D图块的。在这种情况下,许多签名比较可能需要根据扫面线或扫面线的一部分来执行。同样,在对输入帧进行压缩的结构中,即使显示器本身