用于选择性显示帧检取的设备和方法与流程

文档序号:18899659发布日期:2019-10-18 21:45阅读:151来源:国知局
用于选择性显示帧检取的设备和方法与流程

诸如文字处理、电子表格和演示应用之类的网络浏览和生产力应用是诸如台式个人计算机(pc)、膝上型计算机、平板计算机、智能电话等之类的计算设备上的一些最常见的用例。存在对降低浏览、生产力应用、电影流和其他相关的高使用率任务的操作以便通过增加此类便携式计算设备的电池寿命(hobl)来改善用户体验的持续推动。因此,存在对减少存储器使用、减少通信带宽使用以及缩短运行时间以在多个不同类型的计算设备中实现更低的功耗的持续需求。

附图说明

从下面结合附图的详细描述中,本公开的特征和优点将变得显而易见,附图通过示例的方式一起示出了本公开的特征;并且,其中:

图1是示出根据示例的处理单元的框图。

图2是示出根据示例的缓冲显示帧的方法的流程图;

图3是示出根据示例的缓冲显示帧的方法的流程图;

图4是示出根据示例的计算设备的框图;以及

图5是示出根据示例的计算设备的框图。

具体实施方式

在描述技术实施例之前,应理解,本公开不限于本文公开的特定结构、过程步骤或材料,而是扩展到如相关领域的普通技术人员将认识到的其等同物。还应该理解,本文采用的术语仅用于描述特定的示例或实施例,而非旨在构成限定。不同附图中的相同附图标记表示相同要素。流程图和过程中提供的数字用于清楚地说明步骤和操作,并不一定表示特定的顺序或次序。

此外,在一个或多个实施例中,可以以任何合适的方式来组合所描述的特征、结构或特性。在以下描述中,提供了大量具体细节(诸如布局、距离、网络示例等的示例),以传达对各种技术实施例的透彻理解。然而,相关领域的技术人员将认识到,这些详细的实施例不限制本文所阐述的总体发明概念,而仅仅是其代表。

如在本书面描述中所使用的,单数形式“一”、“一个”和“所述”包括对复数引用的明确支持,除非上下文另外明确地指出。因此,例如,对“一个”引擎的引用包括多个这样的引擎。

贯穿本说明书对“示例”的引用意味着结合该示例描述的特定特征、结构或特性包括在至少一个发明实施例中。因此,贯穿本说明书在各个地方出现的短语“在示例中”或“在实施例中”不一定都指代相同的实施例。

如本文所使用的,为了方便起见,可以在共同列表中呈现多个物品、结构要素、组成元素和/或材料。然而,这些列表应被解释为列表中的每个成员被单独地标识为分开且唯一的成员。因此,此列表的任何个体成员都不应仅基于其呈现在共同组中而没有相反的指示被解释为与相同列表中任何其他成员的实际上的等同物。另外,本文可以参考各种发明实施例和示例以及其各种组件的替代方案。应当理解,这些实施例、示例和替代方案不应被解释为彼此的实际上的等同物,而应被解释为在本公开内容下的单独和自主的表示。

此外,在一个或多个实施例中,可以以任何合适的方式来组合所描述的特征、结构或特性。在以下描述中,提供了大量具体细节(诸如布局、距离、网络示例等的示例),以提供对本发明的实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有一个或多个具体细节的情况下、或者用其他方法、组件、布局等来实践本发明。在其他情况下,众所周知的结构、材料或操作可能未详细示出或描述,以避免模糊本公开的各方面。

在本公开中,“包括(comprises)”、“包括(comprising)”、“含有(containing)”、“具有(having)”等可以具有美国专利法赋予他们的意思且可以意味着“包括(includes)”、“包括(including)”等,通常被解释为开放式条款。术语“由...组成(consistingof)”或“由...组成(consistsof)”是封闭术语,并且仅包括结合这些术语具体列出的组件、结构、步骤等、以及根据美国专利法的组件、结构、步骤等。“基本上由......组成(consistingessentiallyof)”或“基本上由......组成(consistsessentiallyof)”具有美国专利法通常赋予它们的含义。特别是,此类术语通常是封闭的术语,但允许包含附加物品、材料、组件,步骤或要素,这些物品、材料、组件、步骤或要素并不会对与其相关的物品的基本和新颖特征或功能产生实质性影响。例如,如果在“基本上由......组成(consistingessentiallyof)”语言下存在,则组合物中存在但不影响组合物性质或特征的痕量元素是允许的,即使在这些术语之后的项目列表中没有明确记载。当在本书面描述中使用开放式术语时,如“包含(comprising)”或“包括(including)”,应理解,也应直接支持“基本上由......组成(consistingessentiallyof)”语言以及“由......组成(consistingof)”语言,如同明确说明的那样,反之亦然。

说明书和权利要求书中的术语“第一”、“第二”、“第三”、“第四”等等(如果有的话)用于区分相似的元件,而不一定用于描述特定的顺序或时间顺序。应当理解,如此使用的任何术语在适当的情况下是可互换的,使得本文描述的实施例例如能够以不同于本文所示或以其他方式描述的顺序操作。类似地,如果本文将方法描述为包括一系列步骤,则本文所呈现的这些步骤的顺序不一定是可以执行这些步骤的唯一顺序,并且可以省略某些所述步骤和/或可能将本文未描述的某些其他步骤添加到该方法中。

如本文所使用的,诸如“增加”、“减少”、“更好”、“更差”、“更高”、“更低”、“增强”、“最小化”、“最大化”、“增加”、“减少”等之类的比较术语是指设备、组件、功能或活动的属性,所述设备、组件、功能或活动与周围或相邻区域中、单个设备或多个相当的设备中、组或类中、多个组或多个类中的其他设备、组件或活动可测量地不同,或与相关的或类似的过程或功能可测量地不同,或与已知的现有技术相比较可测量地不同。例如,具有“增加的”损坏风险的数据区域可以指存储器设备的区域,该区域比同一存储器设备中的其他区域更可能具有写入错误。许多因素都可能导致此类增加的风险,包括位置、制造过程、应用于该区域的程序脉冲数等。

如本文所使用的,“翻转”通常是指新组合物发生的时间的指示。例如,“翻转”可以是对于显示控制器的应该切换到新渲染的缓冲器的指示。更一般地说,“翻转”可以是显示的缓冲器正在更新的任何指示。术语“翻转”通常在视频渲染中是已知的,并且本领域普通技术人员将理解其含义。

如本文中所使用的,术语“基本上”指的是动作、特征、性质、状态、结构、物品或结果的完全或近乎完全的范围或程度。例如,“基本上”封闭的物体将意味着该物体是完全封闭的或近乎完全封闭的。从绝对的完全性偏离的准确可允许程度可在某些情况下取决于特定上下文。然而,一般而言,实现的接近度将是使得具有犹如绝对与全部实现被获得那样相同的总体结果。当在负面含义中使用以指代行动、特征、属性、状态、结构、物品或结果的完全或近乎完全缺乏时,使用“基本上”是同样适用的。例如,“基本上不含”颗粒的组合物要么完全没有颗粒,要么几乎完全没有颗粒,其效果与完全没有颗粒的效果相同。换句话说,“基本上不含”成分或元素的组合物实际上可以实际上含有这样的物品,只要其没有可测量的效果即可。

如本文所使用的,术语“约”用于通过提供给定值可以是“略高于”或“略低于”端点来为数值范围端点提供灵活性。然而,应该理解,即使在本说明书中结合特定数值使用术语“约”时,除“约”术语外,还提供了对准确数值的支持。

如本文所使用的术语“耦合”被定义为以电或非电方式直接或间接连接。“直接耦合”的物品或物体物理接触并彼此附接。本文描述为彼此“相邻”的物体或要素可以彼此物理接触,彼此非常接近,或者在相同的通用区域或区中,适合于使用该短语的上下文。

数值量和数据可以以范围格式在本文中表达或呈现。应当理解,这样的范围格式仅仅是为了方便和简洁而使用,因此应该灵活地解释为不仅包括明确列举为范围限制的数值,而且还包括该范围内包含的所有单个数值或子范围,如同每个数值和子范围被明确引述。作为说明,“约1至约5”的数值范围应该被解释为不仅包括明确列举的约1至约5的值,而且还包括在指定范围内的单个值和子范围。因此,包括在该数值范围内的是单个值(诸如2、3和4)以及子范围(诸如从1到3、从2到4和从3到5等,以及单独的1、1.5、2、2.3、3、3.8、4、4.6、5和5.1。

同样的原理适用于仅将一个数值作为最小值或最大值的范围。此外,无论范围的广度或所描述的特征如何,都应该应用这种解释。

如本文中所使用的,术语“电路”可指代专用集成电路(asic)、电子电路、执行一个或多个软件或固件程序的处理器(共享的、专用的、或组)和/或存储器(共享的、专用的、或组)、组合逻辑电路和/或提供所描述的功能的其他合适的组件的一部分或包括以上全部。在一些方面,电路可以在一个或多个软件或固件模块中实现,或者与电路相关联的功能可以由一个或多个软件或固件模块来实现。在一些方面,电路可以包括至少部分地可在硬件中操作的逻辑。

各种技术或其某些方面或部分可以采用体现在有形介质(诸如软盘、压缩盘只读存储器(cd-rom)、硬盘驱动器、磁卡或光卡、固态存储器件、瞬态或非瞬态存储计算机可读存储介质,或任何其他机器可读存储介质)中的程序代码(即,指令)的形式,其中当程序代码被加载到机器(诸如计算机)中并被其执行时,所述机器变成用于实践各种技术的设备。电路可以包括硬件、固件、程序代码、可执行代码、计算机指令和/或软件。非瞬态计算机可读存储介质可以是不包括信号的计算机可读存储介质。在可编程计算机上执行程序代码的情况下,计算设备可以包括处理器、可由处理器(包括易失性和非易失性存储器和/或存储元件)读取的存储介质、至少一个输入设备、以及至少一个输出设备。易失性和非易失性存储器和/或存储元件可以是随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、闪存驱动器、光驱、磁性硬盘驱动器、固态驱动器或用于存储电子数据的其他介质。节点和无线设备还可以包括收发机模块(即收发机)、计数器模块(即计数器)、处理模块(即处理器)和/或时钟模块(即时钟)或计时器模块(即,计时器)。可实现或利用本文所述的各种技术的一个或多个程序可以使用应用编程接口(api)、可重用控制等。此类程序可以以高级程序或面向对象的编程语言来实现,以与计算机系统进行通信。然而,如果期望的话,所述(多个)程序可以以汇编或机器语言实现。在任何情况下,所述语言可以是编译或解释语言,并且与硬件实现相结合。

如本文所使用的,术语“处理器”可以包括通用处理器、专用处理器(诸如中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、微控制器(mcu)、嵌入式控制器(ec)、现场可编程门阵列(fpga)或其他类型的专用处理器,以及收发机中使用的基带处理器,用于发送、接收和处理无线通信。

应当理解,本说明书中描述的许多功能单元可能已被标记为模块,以便更具体地强调它们的实现独立性。例如,模块可以实现为包括定制的超大规模集成(vlsi)电路或门阵列、或现成半导体(诸如逻辑芯片、晶体管或其他分立组件)的硬件电路。模块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等的可编程硬件设备中实现。

模块还可以在由各种类型的处理器执行的软件中实现。例如,可执行代码的经标识的模块可以包括例如可被组织为对象、过程或功能的计算机指令的一个或多个物理或逻辑块。然而,经标识的模块的可执行文件可能不是物理上定位在一起,而是可以包括存储在不同位置的不同指令,当这些可执行文件被逻辑地连接在一起时包括所述模块并且实现所述模块的规定的目的。

实际上,可执行代码的模块可以是单个指令、或许多指令,并且甚至可在若干不同的代码段上、在不同程序之间、以及跨若干存储设备分布。类似地,本文中操作数据可以在模块内进行标识和说明,并且可以以任何合适的形式具体化并且被组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或者可以分布在不同位置上(包括分布在不同的存储设备上),并且可以至少部分地仅作为电子信号存在于系统或网络上。模块可以是被动的或主动的,包括可操作以执行期望功能的代理。

示例实施例

以下提供技术实施例的初始概述,之后将进一步详细描述具体的技术实施例。该初步概述旨在帮助读者更快地理解该技术,但不旨在标识该技术的关键特征或必要特征,也不旨在限制所要求保护的主题的范围。

本技术的各方面涉及选择性检取面板自刷新技术。计算设备的一个或多个显示引擎可以被配置为接收或检取经渲染的显示帧。显示引擎还可以接收新帧的脏区域的指示或者确定新帧中的脏区域。脏区域是新的图像数据帧的相对于一个或多个先前帧已经改变的一个或多个部分。显示引擎可以仅使用新帧的脏区域来填充显示缓冲器。然后,显示引擎可以从显示缓冲器扫描出帧的脏区域到一个或多个显示器。显示引擎还可以被配置为有时用一个或多个完整帧填充显示缓冲器,并将完整帧从显示缓冲器扫描出以在一个或多个显示器上呈现。由显示引擎选择性地填充和扫描出帧的脏部分减少了显示缓冲器的使用、减少了读写带宽利用、并缩短了显示引擎的运行时间。用于选择性填充和扫描出帧的脏部分的技术可以与帧数据的压缩、自适应对比度和背光增强以及用于减少显示缓冲器使用、减少读取和写入带宽利用以及缩短显示引擎运行时间的其他技术相结合。

图1示出了根据示例实施例的处理单元。处理单元可以是中央处理单元(cpu)、图形处理单元(gpu)或其他类似的处理单元。在一些方面,处理单元100可包括一个或多个渲染引擎110、一个或多个显示引擎120、一个或多个显示缓冲器130和多个其他功能模块。处理单元100的其他功能模块对于理解本技术的各方面不是必需的,因此这里将不再进一步描述,因为相关领域的普通技术人员将容易认识到它们。处理单元100可以被配置成执行存储在一个或多个计算设备可读介质中的计算设备可执行指令,以实现操作系统(os)140和一个或多个其他应用150。一个或多个其他应用150对于理解本技术的各方面不是必需的,因此这里将不再进一步描述。os140可以被配置成控制一个或多个其他应用150的执行,并控制由一个或多个渲染引擎110、一个或多个显示引擎120和一个或多个显示缓冲器130执行的功能。

在一些方面,显示引擎120可以被配置成从渲染引擎110、或os140接收新帧的指示。显示引擎120可以进一步被配置成确定新帧的一个或多个脏区域。在一个实现中,确定一个或多个脏区域可以包括从渲染引擎110或os140接收一个或多个脏区域的指示。在另一实现中,显示引擎120可以产生新帧的多个平面的翻转。然后,显示引擎120可以基于哪个平面已经翻转或未翻转来确定多个平面中的哪个平面包括一个或多个脏区域。在又一实现中,显示引擎120可以确定新帧的指示是否包括翻转事件的指示。然后,显示引擎120可以基于翻转事件来确定新帧的一个或多个脏区域。

在各方面中,显示引擎120可以进一步被配置为用新帧的一个或多个脏区域来填充显示缓冲器130。显示引擎120还可以进一步被配置为从显示缓冲器130扫描出新帧的一个或多个脏区域到显示端口。相反,典型的显示引擎接收新帧,用整个新帧填充显示缓冲器,并从显示缓冲器扫描出整个新帧到显示器。根据面板自刷新(psr)实现,显示引擎可以配置为在新帧包含更新时填充显示缓冲器并将新帧扫描到显示器,而不是循环所有帧的填充和扫描-输出(scan-out)过程。psr只在新的帧包含更新时有利于通过填充和扫描来减少带宽利用。在psr2实现中,显示引擎可以配置为检测帧更新,并用于扫描出新帧的脏区域,而不是整个帧。因此,psr2通过仅扫描出包括更新的新帧的部分来实现带宽利用的进一步降低。本技术的一些方面通过填充显示缓冲器并从显示缓冲器中仅扫描出新帧的包括更新的部分来实现带宽利用的减少,并因此降低功耗。另外,本技术的各方面通过减少存储器使用来减少功耗,因为仅新帧的包括更新的部分存储在显示缓冲器中。另外,由于显示引擎处理的新帧较少,因此减少了运行时间。

在一些方面,新帧、显示缓冲器130中的新帧的一个或多个脏区域、和/或从显示缓冲器130中扫描出的新帧的一个或多个脏区域可以被压缩。在一个实现中,帧数据的端到端压缩还可以减少通信接口上的带宽利用,并因此也可以降低功耗。在另一实现中,可以在从帧缓冲器扫描出时压缩新帧和/或新帧的一个或多个脏区域。结合选择性填充和扫描输出的数据压缩有利地实现了进一步增强的功率节省。即使小百分比的屏幕发生变化,在本技术的实施例的选择性填充和扫描输出特征之上,压缩也提供了附加的功率节省。

在各个方面,显示引擎120可以被配置为当新帧不包括一个或多个脏区域时用全帧填充显示缓冲器130。另外,显示引擎120可以被配置成当在预定的超时时段到期之后接收到新帧时,即使其包括一个或多个脏区域,也用全帧填充显示缓冲器130。在另一实例中,显示引擎120可被配置为当在预定数量的其他新帧之后接收到新帧时,即使其包括一个或多个脏区域,也用全部新帧填充显示缓冲器130。

在某些方面,显示引擎120可以被配置为当在超时时段到期之后接收到新帧的指示时确定是否可以启用自适应对比度和背光增强。或者,当在预定数量的帧之后接收到新帧的指示时,显示引擎可以确定是否可以启用自适应对比度和背光增强。自适应对比度和背光增强可以实现对显示器的背光的控制,以降低屏幕的亮度,从而降低功耗。自适应对比度和背光增强可以在大于一个或多个脏区域的部分更新的帧区域上操作。在这种情况下,如果与存储和扫描出一个或多个脏区域而不是新帧一起使用或者在预定数量的帧之后接收到新帧的指示时被激活,则自适应对比度和背光增强可能无法计算调整。在这种情况下,当确定可以启用/激活自适应对比度和背光增强时,自适应对比度和背光增强可以被设置。显示引擎120可以分析帧并使用一组算法或逻辑来改变像素的亮度值,同时降低背光的亮度,使得用户感知的照明基本相同。当显示器上的当前帧输出和新帧基本上不同时,可以计算像素的新亮度值和背光的亮度。显示引擎120可以进一步被配置为如果翻转完成事件(例如,呈现完成事件)指示被确定时伽马曲线处于线性模式,则禁用自适应对比度和背光增强。如果伽马曲线在超时时段到期之前处于线性模式,则也可以禁用自适应对比度和背光增强。如果当新帧的计数小于指定的帧计数时,伽马曲线处于线性模式,则也可以禁用自适应对比度和背光增强。因此,本技术的各方面可以有利地保持自适应对比度和背光增强,以保持自适应对比度和背光增强的功率节省。

图2是示出根据示例的缓冲显示帧的方法。在一些方面,可以从渲染引擎或操作系统210中接收或检取新帧的指示。新帧的一个或多个脏区域可以被确定220。在一个实现中,确定新帧的一个或多个脏区域可以包括从渲染引擎或操作系统中接收一个或多个脏区域的指示。例如,操作系统可以保持跟踪相对于前一帧已经改变或已经更新的新帧中的脏图元(例如,矩形或三角形)。当操作系统提供新帧的指示时,操作系统可以提供脏图元的数量以及脏图元的坐标的指示。在另一实现中,新帧指示可以包括翻转事件的指示。在这种情况下,可以基于翻转事件来确定脏区域。在另一实现中,确定脏区域可以包括产生新帧的多个平面的翻转。然后可以基于哪个平面已经翻转或未翻转来确定多个平面中的哪个平面包括一个或多个脏区域。

在各个方面中,可以用新帧230的一个或多个脏区域填充显示缓冲器。可以从显示缓冲器扫描出新帧的一个或多个脏区域到显示端口240。只用或仅用脏区域来填充显示缓冲器并从显示缓冲器扫描出脏区域到显示端口的过程可能是时间敏感的。因此,可以在指定的时间限制内执行填充和扫描输出操作,以避免在显示器上出现视觉伪像。

在一些方面,新帧的数据和新帧的一个或多个脏区域可以以压缩格式编码,以用于填充显示缓冲器和从显示缓冲器扫描出。

在各个方面,如果翻转完成事件指示被确定时伽马曲线处于线性模式,则可以禁用自适应对比度和背光增强。在一个实现中,当伽马曲线处于线性模式时,不应用校正,并且因此可以禁用自适应对比度和背光增强以用于部分帧更新。如果伽马曲线在超时时段到期之前处于线性模式,则也可以禁用自适应对比度和背光增强。在超时时段到期之后,可以检查下一个新帧以确定内容是否已经改变以可能更新自适应对比度和背光增强。如果伽马曲线在预定数量的帧内接收到新帧时处于线性模式,则也可以禁用自适应对比度和背光增强。在已经接收到预定数量的帧之后,可以检查下一个新帧以确定内容是否已经改变以可能更新自适应对比度和背光增强。在超时或预定数量的帧之后定期检查帧可用于创建直方图。另外,可以基于场景亮度和/或屏幕的已更新的量来动态调整超时时段或帧数。因此,本技术的各方面可以有利地保持自适应对比度和背光增强,以能够保持自适应对比度和背光增强的功率节省。另外,可以基于直方图的亮度数据自适应地启用选择性检取。对于第一选择性更新,可以分析直方图以确定场景的亮度。当场景远未被触发以应用自适应对比度和背光增强时,可以进行大量的选择性更新。操作系统或显示引擎可以跟踪屏幕已经改变多少,以确定屏幕何时接近不那么明亮。一旦对场景的亮度有一些不确定性,就可以触发全帧更新。例如,当用户键入时,只有小百分比的(例如,1%)的屏幕正在改变。如果用户键入达到10分钟,则一系列1%的屏幕改变可能没有足够的意义来改变亮度。在这种情况下,自适应对比度和背光增强可能在很长一段时间内不会被检查。在一些实现中,直方图可以是针对帧的基于区域的直方图,并且然后被组合以创建基于帧的直方图。在这种情况下,部分更新可以在与基于区域的直方图边界对准的区域基础上完成。在这种情况下,即使在应用自适应对比度和背光增强时,自适应对比度和背光增强以及选择性更新也可以共存。

图3示出根据示例的缓冲显示帧的方法。在一些方面,可以接收新帧的指示305。在一个实现中,可以从渲染引擎接收新帧的指示。在另一实现中,可以从操作系统接收新帧的指示。可以作出新帧是否包括翻转完成事件的指示的确定310。

在某些方面,如果翻转完成事件被指示,则可以禁用可选的自适应对比度和背光增强315。例如,如果翻转完成事件被指示并且超时时段还未到期,则如果伽马曲线处于线性模式则自适应对比度和背光增强可以被禁用。类似地,如果翻转完成事件被指示并且在预定数量的帧内接收到新帧,则如果伽马曲线处于线性模式则可以禁用自适应对比度和背光增强。

在其他方面,如果翻转完成事件被指示,则可以基于翻转完成事件来确定新帧的一个或多个脏区域320。可以仅用新帧的一个或多个脏区域填充显示缓冲器325。然后可以从显示缓冲器扫描出新帧的一个或多个脏区域到显示端口330。

在各个方面,如果翻转完成事件未被指示,则可以用新帧335填充显示缓冲器。可选地,如果在接收到新帧的指示之前超时时段已经到期,则也可以用新帧填充显示缓冲器。可选地,如果在预定数量的其他帧之后接收到新帧,则也可以用新帧填充显示缓冲器。

在某些方面,如果翻转完成事件未被指示,则可以启用可选的自适应对比度和背光增强340。例如,如果超时时段已经到期或者如果在预定数量的其他帧之后接收到新帧,则可以执行检查以确定是否可以启用自适应对比度和背光增强并且可以相应地设置自适应对比度和背光增强。如果翻转完成事件未被指示,则可以从显示缓冲器扫描出新帧到显示端口345。

在一个方面,可以基于全帧或部分帧变化的直方图自适应地应用可选的自适应对比度和背光增强350。对于第一选择性更新,可以分析直方图以确定场景的亮度。当场景远未被触发以应用自适应对比度和背光增强时,可以进行许多选择性更新。操作系统或显示引擎可以跟踪屏幕已经改变多少,以确定屏幕何时接近不那么明亮。一旦对场景的亮度有一些不确定性,就可以触发全帧更新。例如,当用户键入时,只有小百分比的(例如,1%)的屏幕正在改变。如果用户键入达到10或15分钟,则一系列1%的屏幕改变可能没有足够的意义来改变亮度。在这种情况下,自适应对比度和背光增强可能在很长一段时间内不会被检查。在一些实现中,直方图可以是针对帧的基于区域的直方图,并且然后被组合以创建基于帧的直方图。在这种情况下,部分更新可以在与基于区域的直方图边界对准的区域基础上完成。在这种情况下,即使在应用自适应对比度和背光增强时,自适应对比度和背光增强以及选择性更新也可以共存。

图4示出了根据示例的计算设备。计算设备可以是,例如蜂窝电话、智能电话、电子阅读器、平板个人计算机(pc)、膝上型计算机、台式计算机、游戏控制台、智能电视、工作站、服务器或其他类似的计算设备。计算设备400可以包括一个或多个中央处理单元405、一个或多个计算设备可读介质(例如,计算机存储器)410、一个或多个图形处理单元(gpu)415、以及一个或多个显示器420。计算设备400还可以包括许多其他组件(诸如一个或多个附加输入/输出(i/o)接口425、一个或多个网络接口430等)。附加组件对于理解本技术的各方面不是必需的,因此这里将不再进一步描述。

在一些方面,图形处理单元415可包括一个或多个渲染引擎435、一个或多个显示引擎440、一个或多个显示缓冲器445、以及一个或多个显示端口450。图形处理单元415还可包括许多其他组件。然而,这些其他组件对于理解本技术的各方面不是必需的,因此这里不再进一步描述。

在一个实现中,存储在存储器410中的操作系统(os)在由中央处理单元405执行时可以被配置为将显示场景数据的渲染卸载到一个或多个渲染引擎435。os可以管理由一个或多个渲染引擎435对显示帧的渲染以及由一个或多个显示引擎440对一个或多个显示器420的帧的呈现以用于输出给用户。例如,当新帧可从一个或多个渲染引擎435获得时,os可以向一个或多个显示引擎440提供指示。

如上面关于图1至图3更详细地描述,一个或多个显示引擎440可以被配置为从一个或多个渲染引擎435检取渲染的显示帧。一个或多个显示引擎440还可以被配置为接收新帧的脏区域的指示或者确定新帧中的脏区域。显示缓冲器445可以被配置为由显示引擎440仅用新帧的脏区域填充。显示引擎440还可以被配置为从显示缓冲器445扫描出帧的脏区域到显示端口450,以用于输出到一个或多个显示器420。显示引擎440还可以被配置成用一个或多个完整帧填充显示缓冲器445,并从显示缓冲器445扫描出完整帧到显示端口450。例如,在预定数量的帧之后,显示引擎440可以用完整帧填充显示缓冲器445并将完整帧扫描到显示端口450。

在一个实现中,显示端口450可以是嵌入式显示端口(edp)或可以是无线显示接口端口。在无线显示接口端口的情况下,在编码器和显示器之间可以存在单个显示缓冲器。显示器可以没有更新,但编码器有时可能需要提高质量。虽然显示捕获可能只需要更新一小部分,但编码器仍然可以使用整个帧。使用单帧缓冲器时,显示器将仅写入经更改的像素。然后,编码器将仍然可以根据需要访问全帧来编码脏区域。

图5示出了根据示例的计算设备。计算设备可以是,例如蜂窝电话、智能电话、电子阅读器、平板个人计算机(pc)、膝上型计算机、台式计算机、游戏控制台、智能电视、工作站、服务器或其他类似的计算设备。计算设备500可以包括一个或多个中央处理单元505、一个或多个计算设备可读介质(通常称为计算机存储器)510、以及一个或多个显示器520。计算设备500还可以包括许多其他组件(诸如一个或多个附加输入/输出(i/o)接口425、一个或多个网络接口525等)。附加组件对于理解本技术的各方面不是必需的,因此这里将不再进一步描述。

处理单元505可包括一个或多个渲染引擎530、一个或多个显示引擎535、一个或多个显示缓冲器540、以及一个或多个显示端口545。处理单元505还可以包括许多其他组件。然而,这些其他组件对于理解本技术的各方面不是必需的,因此这里不再进一步描述。

如上面关于图1至图3更详细地描述,一个或多个显示引擎535可以被配置为从一个或多个渲染引擎530检取显示帧。一个或多个显示引擎535还可以被配置为接收新帧的脏区域的指示或者确定新帧中的脏区域。显示缓冲器540可以被配置为由显示引擎535仅用新帧的脏区域填充。显示引擎535还可以被配置为将帧的脏区域从显示缓冲器540帧扫描到显示端口545,以用于输出到一个或多个显示器520。在预定数量的新帧或预定的超时时段之后,显示引擎535可以被配置为用一个或多个完整帧填充显示缓冲器540并且从显示缓冲器545扫描出完整帧到显示端口545。

图4和图5中示出的计算设备是示例性实施例的说明,并不旨在限制本技术的各方面。计算设备的各种组件可以以各种其他组合来布置。例如,显示器可以是计算设备的内部(例如,智能电话或平板设备)或外部(例如,台式计算机或智能电视)。在另一示例中,渲染引擎和显示引擎可以是单独的组件或集成在一起。在又一示例中,显示缓冲器可以是显示引擎的组成部分、与显示引擎分开的组件、在耦合到处理单元的存储器中实现的,等等。

本技术的各方面有利地减少了读取和写入带宽,因为显示引擎仅读取和写入新帧的脏区域。另外,可以有利地减少存储器使用,因为仅将脏区域存储在帧缓冲器中。通过使用数据压缩可以进一步扩展带宽减少和内存使用减少。此外,只读取和写入脏区域有利于减少显示引擎的运行时间。

示例

以下示例涉及特定技术实施例,并指出可在实现这些实施例中使用或以其他方式组合的特定特征、元件或步骤。

示例1包括处理单元,包括:显示缓冲器;和显示引擎,该显示引擎被配置为用于;从渲染引擎或操作系统接收新帧的指示;确定新帧的一个或多个脏区域;用新帧的一个或多个脏区域填充显示缓冲器;并从显示缓冲器扫描出新帧的一个或多个脏区域到显示端口。

示例2包括示例1的处理单元,其中,显示引擎被配置为接收一个或多个脏区域的指示。

示例3包括示例1的处理单元,其中,显示引擎被配置为用于:产生多个平面的翻转;并且基于哪个平面已经翻转或未翻转来确定多个平面中的哪个平面包括一个或多个脏区域。

示例4包括示例1的处理单元,其中,新帧、显示缓冲器中的新帧的一个或多个脏区域以及扫描出的新帧的一个或多个脏区域被压缩。

示例5包括处理单元,包括:显示缓冲器;和显示引擎,该显示引擎被配置为用于;从渲染引擎或操作系统接收新帧的指示;确定新帧的指示是否包括翻转事件的指示;基于翻转事件确定新帧的一个或多个脏区域;用新帧的一个或多个脏区域填充显示缓冲器;并从显示缓冲器扫描出新帧的一个或多个脏区域到显示端口。

示例6包括示例5的处理单元,其中显示引擎进一步被配置为:如果伽马曲线在翻转完成事件指示被确定时处于线性模式,则禁用自适应对比度和背光增强。

示例7包括示例6的处理单元,其中,如果伽马曲线在超时时段到期之前处于线性模式,则进一步禁用自适应对比度和背光增强。

示例8包括示例6的处理单元,其中,如果伽马曲线不是在预定数量的帧之后时处于线性模式,则进一步禁用自适应对比度和背光增强。

示例9包括示例的处理单元,其中,显示引擎进一步被配置为用于;当翻转完成事件指示没有被确定时,用新帧填充显示缓冲器;并从显示缓冲器扫描出新帧到显示端口。

示例10包括示例9的处理单元,其中,显示引擎进一步被配置为用于;当接收到新帧的指示时,超时时段已经到期,进一步用新帧填充显示缓冲器。

示例11包括示例9的处理单元,其中,显示引擎进一步被配置为用于;当在预定数量的帧之后接收到新帧的指示时,进一步用新帧填充显示缓冲器。

示例12包括示例9的处理单元,其中,显示引擎进一步被配置为用于;在超时时段到期后接收到新帧的指示时确定是否可以启用自适应对比度和背光增强;并且当确定可以启用自适应对比度和背光增强时,设置自适应对比度和背光增强。

示例13包括示例9的处理单元,其中,显示引擎进一步被配置为用于;当在预定数量的帧之后接收到新帧的指示时确定是否可以启用自适应对比度和背光增强;并且当确定可以启用自适应对比度和背光增强时,设置自适应对比度和背光增强。

示例14包括示例5的处理单元,其中,处理单元包括图形处理单元。

示例15包括示例5的处理单元,其中,处理单元包括中央处理单元。

示例16包括一种用于在显示器上呈现的缓冲经渲染的显示帧的方法,包括:从渲染引擎或操作系统接收新帧的指示;确定新帧的一个或多个脏区域;用新帧的一个或多个脏区域填充显示缓冲器;并且从显示缓冲器扫描出新帧的一个或多个脏区域到显示端口。

示例17包括示例16的方法,其中,确定新帧的一个或多个脏区域包括接收一个或多个脏区域的指示。

示例18包括示例16的方法,其中,确定新压缩的帧的一个或多个脏区域包括:产生多个平面的翻转;并且基于哪个平面已经翻转或未翻转来确定多个平面中的哪个平面包括一个或多个脏区域。

示例19包括示例16的方法,其中,新帧、显示缓冲器中的新帧的一个或多个脏区域以及扫描出的新帧的一个或多个脏区域被压缩。

示例20包括一种用于在显示器上呈现的缓冲经渲染的显示帧的方法,包括:从渲染引擎或操作系统接收新帧的指示;确定新帧的指示是否包括翻转事件的指示;基于翻转事件来确定新帧的一个或多个脏区域;用新帧的一个或多个脏区域填充显示缓冲器;并且从显示缓冲器扫描出新帧的一个或多个脏区域到显示端口。

示例21包括示例20的方法,进一步包括:如果在翻转完成事件指示被确定时伽马曲线处于线性模式,则禁用自适应对比度和背光增强。

示例22包括示例21的方法,其中,如果伽马曲线在超时时段到期之前处于线性模式,则进一步禁用自适应对比度和背光增强。

示例23包括示例21的方法,其中,如果伽马曲线在预定数量的帧内接收到时处于线性模式,则进一步禁用自适应对比度和背光增强。

示例24包括示例20的方法,进一步包括:当翻转完成事件指示没有被确定时,用新帧填充显示缓冲器;并从显示缓冲器扫描出新帧到显示端口。

示例25包括示例24的方法,进一步包括:当在超时时段到期之后接收到新帧的指示时,进一步用新帧填充显示缓冲器。

示例26包括示例24的方法,进一步包括:当在预定数量的帧之后接收到新帧的指示时,进一步用新帧填充显示缓冲器。

示例27包括示例24的方法,进一步包括:当在超时时段到期之后接收到新帧的指示时确定是否可以启用自适应对比度和背光增强;当确定可以启用自适应对比度和背光增强时,设置自适应对比度和背光增强。

示例28包括示例24的方法,进一步包括:当在预定数量的帧之后接收到新帧的指示时确定是否可以启用自适应对比度和背光增强;并且当确定可以启用自适应对比度和背光增强时,设置自适应对比度和背光增强。

示例29包括示例20的方法,进一步包括:基于全帧变化的直方图应用自适应对比度和背光增强。

示例30包括示例20的方法,进一步包括:基于部分帧变化的直方图应用自适应对比度和背光增强。

示例31包括计算设备,包括:显示器;以及处理单元,包括显示缓冲器和显示引擎,显示引擎被配置为用于;从渲染引擎或操作系统接收新帧的指示;确定新帧的一个或多个脏区域;用新帧的一个或多个脏区域填充显示缓冲器;并从显示缓冲器扫描出新帧的一个或多个脏区域到显示端口。

示例32包括示例31的计算设备,其中,显示引擎被配置为接收一个或多个脏区域的指示。

示例33包括示例31的计算设备,其中,显示引擎被配置为用于:产生多个平面的翻转;并且基于哪个平面已经翻转或未翻转来确定多个平面中的哪个平面包括一个或多个脏区域。

示例34包括示例31的计算设备,其中,新帧、显示缓冲器中的新帧的一个或多个脏区域以及扫描出的新帧的一个或多个脏区域被压缩。

示例35包括示例31的计算设备,其中,处理单元包括中央处理单元。

示例36包括示例31的计算设备,其中,处理单元包括图形处理单元。

示例37包括示例31的计算设备,其中,显示引擎通过显示端口耦合到显示器。

示例38包括计算设备,包括:显示器;和处理单元,该处理单元包括显示缓冲器和显示引擎,显示引擎被配置为用于;从渲染引擎或操作系统接收新帧的指示;确定新帧的指示是否包括翻转事件的指示;基于翻转事件确定新帧的一个或多个脏区域;用新帧的一个或多个脏区域填充显示缓冲器;并从显示缓冲器扫描出新帧的一个或多个脏区域到显示端口。

示例39包括示例38的计算设备,其中,显示引擎进一步被配置为:如果伽马曲线在翻转完成事件指示被确定时处于线性模式,则禁用自适应对比度和背光增强。

示例40包括示例39的计算设备,其中,如果伽马曲线在超时时段还未过期时处于线性模式,则进一步禁用自适应对比度和背光增强。

示例41包括示例39的计算设备,其中,如果伽马曲线不是在预定数量的帧之后时处于线性模式,则进一步禁用自适应对比度和背光增强。

示例42包括示例38的计算设备,其中,显示引擎进一步被配置为用于;当翻转完成事件指示没有被确定时,用新帧填充显示缓冲器;并从显示缓冲器扫描出新帧到显示端口。

示例43包括示例42的计算设备,其中,显示引擎进一步被配置为用于;当接收到新帧的指示时,超时时段已经到期,进一步用新帧填充显示缓冲器。

示例44包括示例42的计算设备,其中,显示引擎进一步被配置为用于;当在预定数量的帧之后接收到新帧的指示时,进一步用新帧填充显示缓冲器。

示例45包括示例42的计算设备,其中,显示引擎进一步被配置为用于;在超时时段到期后接收到新帧的指示时确定是否可以启用自适应对比度和背光增强;并且当确定可以启用自适应对比度和背光增强时,设置自适应对比度和背光增强。

示例46包括示例42的计算设备,其中,显示引擎进一步被配置为用于;当在预定数量的帧之后接收到新帧的指示时确定是否可以启用自适应对比度和背光增强;并且当确定可以启用自适应对比度和背光增强时,设置自适应对比度和背光增强。

示例47包括示例38的计算设备,其中,显示引擎进一步被配置为基于全帧变化的直方图来应用自适应对比度和背光增强。

示例49包括示例38的计算设备,其中,显示引擎进一步被配置为基于部分帧变化的直方图来应用自适应对比度和背光增强。

虽然前述示例在一个或多个特定应用中说明了本技术的原理,但是对于本领域普通技术人员显而易见的是,在不脱离本发明的技术原理和概念的情况下,可以在不运用创造性能力的情况下对形式、用途和实施细节进行多种修改。

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