首页> 中国专利> 多轮的提前推测性呈现和高速缓存

多轮的提前推测性呈现和高速缓存

摘要

各种实施方案针对智能地呈现或者预呈现这样的内容,即:该内容在用户与内容交互期间很可能被带入到相关联的视区中。在至少某些实施方案中,高速缓存预呈现的内容的过程被与对视区外的哪些区域要随着使用和时间的推移而被保持为最新的确定相分离。进一步地,至少某些实施方案多轮执行呈现活动,以努力减小在用户可视的内容达到完成时的潜在延迟,而不干扰在呈现期间相关联的应用或者系统执行的其它工作。

著录项

  • 公开/公告号CN104106032A

    专利类型发明专利

  • 公开/公告日2014-10-15

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN201380009644.0

  • 发明设计人 C.埃尔根;黄立新;

    申请日2013-01-28

  • 分类号G06F3/0481;G06F3/14;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人李舒

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 02:29:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-25

    授权

    授权

  • 2015-07-29

    专利申请权的转移 IPC(主分类):G06F3/0481 变更前: 变更后: 登记生效日:20150713 申请日:20130128

    专利申请权、专利权的转移

  • 2014-11-12

    实质审查的生效 IPC(主分类):G06F3/0481 申请日:20130128

    实质审查的生效

  • 2014-10-15

    公开

    公开

说明书

背景技术

在当今的计算世界中,用户经常发现他们自己正查看大量且丰富的内容(例如不完全配合屏幕的复杂web页面)且在其中导航。较新的用户界面,诸如触摸和自然用户界面(NUIs),允许用户快速滚动、扫视(pan)和缩放(zoom)。在这些操控期间呈现(render)进入视区(viewport)的内容在处理开销方面会是昂贵的,并且如果例如呈现活动落后于用户操控,则其可导致降级的用户体验。在呈现活动赶上用户的操控以前,呈现方面的落后可导致缺失的内容的间隙和视觉刺激(visual jarring)。另一方面,积极的(aggressive)提前呈现以及与应用竞争资源可造成内容(诸如web页面)的加载或对用户交互的响应变慢。

发明内容

本概要被提供来以简化的形式介绍概念的选择,这些概念还将在下面的详细说明中进行描述。本概要不打算标识所要求保护的主题的关键特征或者必要特征。

各种实施方案针对智能地呈现或者预呈现(pre-render)这样的内容,即:该内容在用户与内容交互期间很可能被带入到相关联的视区中。在至少某些实施方案中,高速缓存预呈现的内容的过程被与对视区外的哪些区域要随着使用和时间的推移而被保持为最新的确定相分离。各种实施方案针对在一致的用户感知的视图方面维持视觉连贯性。在至少某些实施方案中,采取措施来减少或者消除接缝、视觉撕裂或者讹误(corruption),以使得用户界面的各个部分不落后于它们应被附连到的其它部分。同样地,通过裁减(trim)或丢弃失效的数据,使得它不被呈现且相反地是被占位符(placeholder)内容来替代,不一致性得以减小或者消除。进一步地,至少某些实施方案多轮(multiple passes)执行呈现活动,以努力减小在用户可视的内容达到完成时的潜在延迟,而不干扰相关联的应用或系统响应于用户交互、过滤/旋转(pivot)数据、或者取装新数据并在适当的位置处理/更新内容而执行的其它工作。

附图说明

详细说明是参考附图进行描述的。在图中,参考标号的最左边的(一个或多个)数字标识该参考标号第一次出现的图。在说明书和图的不同实例中使用相同的参考标号可以表明相似或者相同的项。

图1是在按照一个或者多个实施方案的示例性实现中的环境的举例说明。

图2是更详细显示图1的示例性实现中的系统的举例说明。

图3是按照一个或者多个实施方案的示例性视区和相关联的、位于视区外的虚拟表面的举例说明。

图4是描述按照一个或者多个实施方案的方法中的步骤的流程图。

图5是描述按照一个或者多个实施方案的方法中的步骤的流程图。

图5a是描述按照一个或者多个实施方案的方法中的步骤的流程图。

图6图示可以被用来实现本文描述的各种实施方案的示例性计算设备。

具体实施方式

综述

各种实施方案针对智能地呈现或者预呈现这样的内容,即:该内容在用户与内容交互期间很可能被带入到相关联的视区中。在至少某些实施方案中,高速缓存预呈现的内容的过程被与对视区外的哪些区域要随着使用和时间的推移而被保持为最新的确定相分离。各种实施方案针对在一致的用户感知的视图方面保持视觉连贯性。在至少某些实施方案中,采取措施来减少或者消除接缝、视觉撕裂或者讹误,以使得用户界面的各个部分不落后于它们应被附连到的其它部分。同样地,通过裁减或丢弃失效的数据,使得它不被呈现且相反地是被占位符内容来替代,不一致性得以减小或者消除。进一步地,至少某些实施方案多轮执行呈现活动,以努力减小在用户可视的内容达到完成时的潜在延迟,而不干扰相关联的应用或系统响应于用户交互、过滤/旋转数据、或者取装新数据并在适当的位置处理/更新内容而执行的其它工作。

在下面的讨论中,首先描述可操作来采用本文所描述的技术的示例性环境。然后描述各种实施方案的示例性举例说明,其可以在示例性环境中,以及在其它环境中被采用。因此,示例性环境并不局限于执行所描述的实施方案,并且所描述的实施方案也不局限于在示例性环境中实现。

示例性操作环境

图1是可操作来采用本文档所描述的技术的示例性实现中的环境100的举例说明。图示的环境100包括可以以各种各样方式配置的计算设备102的示例。例如,计算设备102可以被配置为传统计算机(例如,台式个人计算机、膝上型计算机等)、移动站、娱乐器具、通信地耦合到电视的机顶盒、无线电话、上网本、游戏控制台、手持式设备等,如相对于图2进一步描述的。因此,计算设备102的范围可以从具有大量存储器和处理器资源的完全资源设备(例如,个人计算机、游戏控制台)到具有有限存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持式游戏控制台)。计算设备102也包括软件,其使得计算设备102执行如下文描述的一个或者多个操作。

除其它组件之外,计算设备102还包括呈现模块104和手势模块105。

在一个或者多个实施方案中,呈现模块104和其它布局流水线组件被配置来智能地呈现或者预呈现这样的内容,即:该内容在用户与内容交互期间很可能被带入到相关联的视区中。在至少某些实施方案中,高速缓存预呈现的内容的过程被与对视区外的哪些区域要随着使用和时间的推移而被保持为最新的确定相分离。进一步地,至少某些实施方案多轮执行呈现活动,以努力减小在用户可视的内容达到完成时的潜在延迟,而不干扰在呈现期间相关联的应用或系统执行的其它工作。

手势模块105识别所输入的可以由一个或者多个手指执行的指示者手势,并且使得执行对应于手势的操作或者动作。手势可以由模块105以各种各样不同的方式识别。例如,手势模块105可以被配置来使用触摸屏功能性、或者传感可能不一定物理地触摸显示设备108的用户手指的接近(例如通过使用近场技术)的功能性而识别触摸输入,诸如在接近计算设备102的显示设备108时的用户手106a的手指。模块105可以被用来识别单手指手势和边框(bezel)手势、多手指/同手手势和边框手势、和/或多手指/不同手手势和边框手势。

计算设备102也可以被配置来检测和区分触摸输入(例如,由用户手106a的一个或者多个手指提供的)和输入笔输入(例如,由输入笔116提供的)以及其它输入,诸如鼠标和键盘输入。这种区分可以以各种各样方式被执行,诸如通过检测由用户手106a的手指接触显示设备108的量对比于由输入笔116接触显示设备108的量。

因此,通过识别和借力于(leverage)在输入笔和触摸输入之间的区分、以及在不同类型的触摸输入和非触摸输入之间的区分,手势模块105可以支持各种各样不同的手势技术。

图2图示了示例性系统200,其将呈现模块104和手势模块105示为在多个设备通过中央计算设备互连的环境中实现。中央计算设备对于该多个设备可以是本地的,或者可以被定位为远离该多个设备。在一个实施方案中,中央计算设备是“云”服务器群,其包括通过网络或者互联网或者其它手段连接到多个设备的一个或者多个服务器计算机。

在一个实施方案中,这种互连架构使功能性能够跨多个设备递送,以便向多个设备的用户提供共同和无缝的体验。多个设备的每一设备可以具有不同的物理需求和能力,并且中央计算设备使用平台来使能把体验递送到设备,该体验既是对该设备定制的,然而也是为所有设备共有的。在一个实施方案中,创建目标设备的“类别”,并且体验是针对设备的一般类别定制的。设备的类别可以通过设备的物理特征或者用途或者其它共同特性而被定义。例如,如之前描述的,计算设备102可以以各种各样不同的方式被配置,诸如用于移动设备202、计算机204和电视206的用途。这些配置的每个配置具有大致对应的屏幕尺寸,并且因此在本示例性系统200中计算设备102可以被配置为这些设备类别之一。例如,计算设备102可表现为移动设备202类别的设备,其包括移动电话、音乐播放器、游戏设备等。计算设备102也可表现为计算机204类别的设备,其包括个人计算机、膝上型计算机、上网本等。电视206配置包括牵涉到在轻松环境中显示的设备的配置,例如,电视、机顶盒、游戏控制台等。因此,本文描述的技术可以被计算设备102的这各种配置支持,并且不局限于在以下章节中描述的特定示例。

云208被图示为包括用于web服务212的平台210。平台210抽象化云208的硬件(例如,服务器)和软件资源的底层功能性,并且因此可以充当“云操作系统”。例如,平台210可以抽象化用来连接计算设备102与其它计算设备的资源。平台210也可以用来抽象化资源的缩放,以向所遇到的对于经由平台210实现的web服务212的需求提供对应水平的缩放。各种各样其它的例子也是预期的,诸如服务器群中服务器的负载平衡、防范恶意方(例如,垃圾邮件、病毒和其它恶意软件)等。

因此,云208被包括来作为关于软件和硬件资源的策略的一部分,软件和硬件资源经由互联网或者其它网络而变得对计算设备102可用。

由手势模块105支持的手势技术可以通过使用移动配置202中的触摸屏功能性、计算机204配置的跟踪板功能性而被检测,可以通过作为不牵涉与特定输入设备接触的自然用户界面(NUI)的支持部件的相机而被检测,等等。进一步地,检测和识别输入以辨认特定手势的操作的执行可以被分布到系统200各处,诸如通过计算设备102和/或由云208的平台210支持的web服务212来进行。

一般地,本文描述的任何功能可以通过使用软件、固件、硬件(例如,固定逻辑电路)、手工处理或者这些实现的组合而被实现。当在本文中使用时,术语“模块”、“功能性”和“逻辑”一般地代表软件、固件、硬件或者它们的组合。在软件实现的情形中,模块、功能性或者逻辑代表当在处理器(例如,一个或多个CPU)上执行或者通过处理器执行时履行特定任务的程序代码。程序代码可以被存储在一个或者多个计算机可读存储设备中。下文描述的手势技术的特征是与平台无关的,这意味着这些技术可以在具有各种各样处理器的各种各样商业的计算平台上被实现。

在下面的讨论中,各个章节描述各种示例性实施方案。题为“高速缓存和区域确定的分离”的章节描述按照一个或者多个实施方案、内容高速缓存和区域确定如何为了处理目的进行分离。随后,题为“多轮呈现”的章节描述按照一个或者多个实施方案、可以如何利用多轮来有效地执行呈现。最后,题为“示例性设备”的章节描述可被用来实现一个或者多个实施方案的示例性设备的诸方面。

已经描述了在其中可以采用本发明原理的示例性操作环境,现在考虑对示例性实施方案的讨论。

高速缓存和区域确定的分离

在讨论下文的各种实施方案之前,考虑下面针对改进用户感知的视觉体验的动机。在操作中,应用所期望的是,对用户而言感觉像是真实的表面。应用应该立即响应于操控,并且跟踪操控而不滞后,然而这样的情况并不总是可能的。因此,下文讨论的实施方案针对减轻滞后并且增强用户体验。对于视觉连贯性,当应用被用户操控时,在显示器或者设备上的内容不应该显示伪像(artifact),伪像会使用户的沉浸度或者置信度降级。即,令人期望的是在可能的程度上减少接缝的存在、可见的撕裂或讹误、和/或在用户界面组件的不同部分之间的用户界面滞后。对于视觉完整性,用户所期望的是很少见到覆盖屏幕的一些部分的例如棋盘格的填充图案。如果要提供这样的填充图案,则期望的是在短的持续时间内提供这样的填充图案。然而,对于跨所有缩放级别在小功率设备上展现的可扩充式丰富内容而言,不能保证表面内容更新。而且,对于活着的(live)表面,动画、视频和JavaScript应该在用户操控期间连续播放和执行,而不是断断续续地进行。然而,明显的是,对于这些动机有某些折衷方案,尤其是当在小功率设备上显示丰富的内容时。

如下文描述的、用于分离高速缓存和确定哪些区域要被保持为最新的动机之一有关考虑到接收到的失效而对用户维持视觉连贯性。特别地,在下文描述的实施方案中,为了维持视觉连贯性,考虑到接收到的失效而裁减或丢弃内容。这确保了当呈现操作被执行时,不呈现被裁减掉的内容。相反,占位符内容被插入到它的位置中。

就在下文的讨论中,下面的术语结合图3一起使用。“视区”包括被呈现在显示屏或者显示设备上的内容的可视部分。在图中,这对应于图3中被显示在显示设备108上的内容区域。在300处显示的“保持为最新的区域”或者“RKUD”定义了虚拟表面(其可以拥有在视区外的量可变的内容)的这样的部分(例如,子部分),即:这些部分被推测性地呈现或者预呈现以避免在用户操控内容期间显示“棋盘格”或者其它占位符。如果RKUD的某个部分是无效的,则它尽早地被呈现,但是是在视区被呈现之后。“高速缓存区域”302限制了虚拟表面被高速缓存和维持的部分,如果其具有有效的栅格化内容的话,并且“高速缓存区域”302是RKUD的超集。任何超出高速缓存区域的区域304被裁减掉,这在下文中将变得明显。如果高速缓存区域的一部分失效,并且它不在RKUD中,则它将被简单地丢弃。示出了被裁减的无效区域306,它具有位于高速缓存区域302和RKUD300中的部分,这在下文中将变得明显。在各种实施方案中,对高速缓存区域中允许的总的域(area)制定上限以便对所使用的视频存储器制定上限。要注意的是,当用户操控开始并且RKUD被更新为仅仅在用户操控的方向上扩展时,RKUD之前的内容停留在高速缓存区域中,除非它们失效(例如,通过脚本/布局的改变)或者视区移出太远。

当把高速缓存预呈现的区域的过程和确定哪些区域要被保持为最新相分离时,几个因素开始起作用。首先,采用各种政策来基于使用和随时间的推移而确定扩展速率和预呈现的方向。进一步地,利用技术来约束有关诸如缩小(zoom out)的操控的扩展。进一步地,各种办法提供某种能力来裁减在高速缓存区域中的、已经变得失效、将不被立刻呈现的内容。进一步地,为了剪切RKUD内的区域,跟踪机制被用来跟踪随着时间推移的失效。

关于上文描述的分离,考虑如下。

假设如图3所示,web页面被显示在视区内。web页面具有可查看的部分,其不仅出现在所示的视区内,而且有在视区上方、下方以及旁边的、位于虚拟表面内的部分。在视区上方的页面部分中,假设整个页面部分已经被预呈现和高速缓存。在预呈现部分的中央,假设该部分中央的长方形变得失效了。例如,当诸如新文章或者广告那样的新内容被接收来替代之前在长方形中出现的内容时,失效可能发生。这时候,假设呈现模块已经确定在高速缓存的页面部分中出现的预呈现的内容要保持被高速缓存。然而,因为该预呈现的内容的失效部分在视野之外,所以它不再被预呈现。在这个实例中,失效的部分可以从高速缓存的区域中剪切掉或者丢弃。通过节约呈现资源和开销,这可以用来使得在视区内的呈现过程更有效。如果用户操控该显示以向上滚动,则失效的部分现在可以被呈现,因为它已经或者很可能进入视野。即,基于在虚拟表面内的呈现政策的呈现或者预呈现判定可以基于用户操控的方向而做出。

继续这个例子,假设现在用户通过用手势轻拂触摸显示来向下滚动。这时候,由呈现政策支配的呈现模块可以呈现或者预呈现在用户操控的方向上的、在视区下方虚拟表面内的内容。由于假设有当前的操控方向,则在位于视区左边和右边的虚拟表面中的内容不太可能被查看,所以这样的内容不被预呈现。相反,在操控方向上的内容被预呈现了。在至少某些实施方案中,在虚拟表面中位于视区上方的之前预呈现的内容中的至少某些可以保持被高速缓存,如果用户在那个方向上返回的话。

以这种方式,呈现政策不仅被用来驱动在给定的操控方向上的预呈现判定,而且也用来辨认要保持被高速缓存和更新的、在虚拟表面内的之前预呈现的内容。然而,在至少某些实施方案中,如果在虚拟表面内的被预呈现的内容变得失效,则它可以被剪切或者丢弃。

在一个或者多个实施方案中,判定或政策可以确定在虚拟表面内的多少内容将被预呈现和高速缓存。例如,考虑到特定系统的存储器资源,可以做出智能判定来使用特定量的存储器资源。考虑例如政策设定的阈值是:要保持被高速缓存和更新的、在当前视区周围的数量为x的满屏内容。只要虚拟表面内的内容仍然在相对于视区的数量为x的满屏内,该内容将保持被高速缓存。一旦内容落到设定的阈值之外,它就会被裁减和丢弃。

图4是描述按照一个或者多个实施方案的方法中的步骤的流程图。该方法可以结合任何适当的硬件、软件、固件或者它们的组合而被实现。在至少某些实施方案中,该方法可以通过适当配置的呈现模块——诸如上文描述的呈现模块——而被实现。

步骤400呈现当前视区内的内容。这个步骤可以以任何适当的方式执行。例如,这个步骤可以通过应用而被执行,作为例子而不是限制,所述应用诸如是web浏览器或者其它适当配置的应用。此外,在虚拟表面内的内容也可以在这个阶段被预呈现。这可以在预料到用户以某种方式操控内容时完成,所述方式诸如是通过向上或者向下滚动或者扫视到特定侧。步骤402接收对视区的定向操控。该步骤可以以任何适当的方式执行。例如,定向操控可以经由诸如鼠标那样的输入设备、通过触摸输入、或者通过自然用户界面而被接收。响应于接收到对视区的定向操控,步骤404预呈现(或者继续预呈现内容)和高速缓存在操控方向上的内容。这个步骤可以以任何适当的方式、通过使用任何适当类型的政策来驱动预呈现判定而被执行。上文提供了这样的政策的非限制性例子。步骤406使至少某些之前呈现或者预呈现的内容维持被高速缓存。这个步骤可以以任何适当的方式执行。例如,可以利用各种政策来确定多少内容将有效地维持在高速缓存中。特别地,在至少某些实施方案中,维持在高速缓存中的、但随后变得失效的内容可以被剪切或者丢弃。步骤408呈现在新的当前视区内的内容。这可以通过以下方式而被执行,即提交预呈现的虚拟表面内的内容以使得它可以被在视觉上呈现。在至少某些实施方案中,已经被裁减或丢弃的部分将不被立刻呈现。

关于被用来约束有关诸如缩小(zoom out)的操控的扩展的技术,在下文中考虑。

当用户执行对于内容的操控,诸如缩小操控时,由于必须使内容失效并把它呈现到更小的形态中,所以增大的负载被加到系统上。在一个或者多个实施方案中,代替使用这种办法,当检测到缩小操控时,已经被呈现的相关联的表面被提供到合成器(compositor)中,合成器进而又把它们合成到用于屏幕的更小表面中。采用这种办法,内容不会被重新栅格化。相反,合成器施加变换来收缩表面以达到给定屏幕所期望的尺寸。

如技术人员将意识到的,使用合成器来实现缩小操控的处理成本通常显著小于把内容栅格化到那些表面中的处理成本。因为缩放因素,大量的表面可能需要被呈现/高速缓存,然后缩小以覆盖扩大的视区。当用户快速地缩小时,这很快在高速缓冲存储器成本和呈现成本上都变得非常昂贵。为了应对这种情景,当检测到快速的缩小超出阈值时,不再跟踪视区。相反,到目前为止已经被呈现的内容被锁定且被收缩或者四处移动,直到操控结束或者用户缩放回到阈值内。这导致更好的用户体验,并且就计算和高速缓存而言,利用了明显更少的资源。

关于随着时间的推移跟踪失效以便剪切或者丢弃内容的区域,考虑下文。

假设驻留于视区上方虚拟表面中的长方形具有在其中运行的活动的动画或者某些其它视频。这种类型的内容将导致从未被用户看见的、重复的失效和重新呈现的操作。然而,在虚拟表面中的其它内容可能很少变得失效。在一个或者多个实施方案中,发生在视区外的失效可以在失效发生的频繁度方面被跟踪。可以设置一个或者多个阈值,并且将其用于那些随着时间的推移超过一定数目的失效的区域,这样的区域可以被剪切或者丢弃或者节流(throttle)或者不太频繁地描绘(paint)。例如,考虑下文的示例性方法。数量为X的存储桶(bucket)维持覆盖最近Z秒上的Y毫秒时段。每个存储桶具有在该时段内失效的区域(例如,一列长方形)。在接收到一些新的失效时,它们在当前的存储桶中被跟踪。随着时间过去,存储桶被轮换(shift),丢掉最旧的那些。当确定某个区域是否应该被呈现时,查阅存储桶,并且辨认该失效的在多个桶中被重复看到失效的那些部分,然后将其移出要被呈现的区域。

多轮呈现

在多轮呈现中,可以利用呈现循环,然而多轮呈现可以在无呈现循环的情况下执行。也即,术语“多轮”是指留下某些失效区域不被呈现的能力。所以,例如在某些不利用呈现循环的多轮呈现的实施方案中,当接收到某个描绘(paint)事件时,仅呈现无效区域的某个子集。然后,调度将来的描绘事件以便考虑下一个子集。这给予非描绘的工作更高的优先级。在实施方案中,呈现循环可以与单轮呈现一起使用。例如,当接收到描绘事件时,所有无效区域被描绘,而不把控制让与(yield)应用。视区的状态被查询,并且如果视区在描绘期间被足够地移动的话,则要被保持为最新的区域(RKUD)被更新。如果RKUD被改变(这暗示着存在新的无效区域),则该过程循环。因此,通过该循环执行的随后的描绘是同步的。这给予描绘最高的优先级。这两者的实施方案可以牵涉到在两个截然不同的模式之间切换(例如,当用户手指向下时,描绘是最高的优先级)或合并两者(例如,循环中的每次迭代可以仅描绘某个子集)。

在用户操控期间,为了确保呈现接收到合适的、高于其它应用工作的优先级,利用了查询当前视区状态的方法来确保在循环中呈现恰当的内容,该循环可以周期性地让步于其它应用工作。进一步地,为了处理效率,并且为了允许被呈现的内容和用户可视部分更快地得到显示,视区和RKUD的子部分被同时呈现和提交,而不是单轮呈现整个视区或者RKUD。进一步地,面对到来的失效和视区改变,采用各种政策来确定在每轮中要被呈现的、视区周围的合适子部分。另外,采用了各种政策,其基于诸如到来的失效和视区改变这样的事情,来控制RKUD的延迟的呈现。

关于使用呈现循环来确保呈现接收到恰当的、高于其它应用工作的优先级,考虑下文。

在某些实例中,视区内的内容可以快速改变,这样使得令人期望的是在改变的视区内积极地呈现内容。例如,用户可能用手势触摸轻拂显示设备,以快速地向下滚动。手势的惯性促使视区向下移动。在这些和其它实例中,令人期望的是积极地呈现内容来维持所期望的用户体验。但是,应用可能有它想要执行的工作,诸如运行脚本、发送消息、利用定时器和滚动操纵器等,这些不是严格必需的或者可以被批处理,例如代替以小的偏移改变多次通知滚动偏移改变,这样的事情通过更大的改变被一次执行。如果在这些实例中呈现过程要让步于应用,则呈现将会落后,那么用户体验将降级。

因此,在一个或者多个实施方案中,利用呈现循环,以便在视区快速改变时呈现视区内的内容。在由于(因操控导致)改变内容而发生的失效中,视区改变可以是明显的。呈现循环在时间上被约束成:在所定义的例如200-300毫秒的时间段内呈现内容,而不让步于应用。在呈现循环期间,呈现模块查明视区的哪些区域已经变得失效,并且呈现到那些区域中。在呈现循环期间,呈现模块也可以在内容已经在视区中被呈现之后,预呈现虚拟表面中的内容。为了如下文描述的有效地利用呈现资源,预呈现虚拟表面中的内容可以通过预呈现在操控方向上的、该虚拟表面的子区域或者子部分而被执行。在该时间段过去后,呈现可以让步于应用,以允许应用执行它想要执行的工作,诸如把通知和消息发送到各个组件。这针对的问题是:正试图描绘该视区,而到已经发生这样的描绘时,用户可能已经进一步移动了视区。另一个问题是:如果试图单轮呈现和提交太多内容,则让所有内容到达屏幕所花费的时间被延迟。因此,一种令人期望的办法是呈现在操控的方向上的一些小部分,并且提交那些部分。当这与上文提及的多轮方法相结合时,当处于积极的呈现循环中时,视区被视为在操控方向上以较小的量(例如,20%)扩展。此外,采取措施来确保在做出尝试来在来自RKUD的更大部分中提前描绘之前,这个部分保持被描绘和提交。

关于每次呈现视区和RKUD的子部分,而不是单轮地呈现整个视区或者RKUD,考虑下文。每次预呈现RKUD的子部分可以使呈现模块能够在呈现循环期间查询视区并且查明是否有视区内的任何区域已经变得无效。如果是,则呈现模块可以返回去呈现视区内已经变得无效的内容,因此维持用户的体验。可以利用任何适当的技术来查明预呈现RKUD的哪些子部分。在至少某些实施方案中,采用政策来对虚拟表面内的子部分划定优先级以便预呈现。可以在虚拟表面内基于子部分到视区的相关联的距离而对它们划定优先级。也即,离视区更远的子部分被划定的优先级低于离视区更近的子部分。例如,可以利用诸如四分之一视区那样的子部分尺寸来定义虚拟表面的子部分。子部分可以被划定优先级并且被分类以用于预呈现活动。那些更靠近视区的子部分在更远的子部分之前被预呈现。假设例如视区被移到新位置,使得在之前视区内的所有内容和在视区周围的虚拟表面内的内容无效。在这个实例中,在视区内的内容首先被呈现,且随后利用基于优先级的预呈现过程来在特定的呈现循环期间预呈现虚拟表面内的内容。所以,例如当预呈现虚拟表面内的内容时,可以首先呈现在视区下方的列入优先的子部分,随后呈现在视区上方的列入优先的子部分,随后呈现分别在视区左边和右边的列入优先的子部分。在预呈现每个子部分之后,可以查询视区以查明是否已经有任何生效。如果是,呈现活动可以返回到该视区。

图5是描述按照一个或者多个实施方案的方法中的步骤的流程图。该方法可以结合任何适当的硬件、软件、固件或者它们的组合而被执行。在至少某些实施方案中,该方法可以通过适当配置的呈现模块——诸如上文描述的呈现模块——而被实现。

步骤500接收对于已经在视区中呈现的内容的用户操控。可以接收任何适当类型的用户操控,其例子在上文中提供。响应于接收到对于内容的用户操控,步骤502启动受时间约束的呈现循环。可以利用任何适当配置的受时间约束的呈现循环,其例子在上文中提供。步骤504在呈现循环期间呈现视区内已经变得失效的内容。步骤506查明在呈现循环中是否剩余时间。如果呈现循环中不剩余时间,则步骤508让步于相关联的应用,以使得该应用可以执行工作,其例子在上文中提供。

在另一方面,如果在呈现循环中剩余时间,则步骤510查明失效的内容是否余留在视区中。如果失效的内容余留在视区中,则步骤512继续呈现视区中已经变得失效的内容。在另一方面,如果失效的内容未余留在视区中,或者替换地,仅有小部分失效的内容余留在视区中,则步骤514预呈现位于视区外的虚拟表面内的内容。内容可以如何在虚拟表面内被预呈现的例子在上文中提供。

这个过程可以在接收的用户输入未定(pendency)期间持续进行。例如,如果连续不断地接收到用户输入,则这个过程可以重复以确保在视区内的内容呈现被划定的优先级高于在虚拟表面中的预呈现活动,并且同时周期性地让步于例如web浏览器那样的相关联的应用,以使得web浏览器可以执行与用户操控相关联的工作。

当未处于积极的呈现循环中时,可以利用RKUD的延迟的呈现,以便不干扰其它应用工作,诸如加载文档、与用户交互等。在这些实例中,人们可以在视区更新后等待X毫秒(例如,100-200毫秒)。如果视区再次得以显著更新,那么RKUD更新可以被进一步地推出(push out),直到从首次打算描绘的时间起的最大值(例如,1000毫秒)。然后,那些看起来没有变得失效的RKUD的部分可以得以描绘(例如,可以利用上文描述的基于时间存储桶的失效过滤)。

已经考虑了实现例子,现在考虑可以用来实现上文描述的一个或者多个实施方案的示例性设备。

图5a是描述按照一个或者多个实施方案的、更新要被保持为最新的区域(RKUD)的方法中的步骤的流程图。该方法可以结合任何适当的硬件、软件、固件或者它们的组合而被实现。在至少某些实施方案中,该方法可以通过适当配置的呈现模块——诸如上文描述的呈现模块——而被实现。

步骤516接收对于已经在视区中被呈现的内容的用户操控。可以接收任何适当类型的用户操控,其例子在上文中提供。响应于接收到对于内容的用户操控,步骤518启动受时间约束的呈现循环。可以利用任何适当配置的受时间约束的呈现循环,其例子在上文中提供。步骤520在呈现循环期间呈现RKUD内已经变得失效的内容。步骤522查明在呈现循环中是否剩余时间。如果在呈现循环中不剩余时间,则步骤524让步于相关联的应用,以使得应用可以执行工作 ,其例子在上文中提供。

另一方面,如果在呈现循环中剩余时间,则步骤526基于最新近的操控数据来更新RKUD。步骤528查明失效的内容是否余留在RKUD中。如果失效的内容余留在RKUD中,则步骤530继续呈现RKUD内已经变得失效的内容。另一方面,如果失效的内容未余留在RKUD中,则步骤532预呈现位于视区外的虚拟表面内的内容。内容可以如何在虚拟表面内被预呈现的例子在上文中提供。

这个过程可以在接收的用户输入未定期间持续进行。

示例性设备

图6图示出示例性设备600的各种组件,示例性设备600可以被实现为参考图1和2描述的、用来实现本文描述的动画库的实施方案的任何类型的便携式和/或计算机设备。设备600包括通信设备602,其使能设备数据604(例如,接收的数据、正在被接收的数据、被调度用于广播的数据、数据的数据分组等)的有线和/或无线通信。设备数据604或者其它设备内容可以包括设备的配置设定值、存储在设备上的媒体内容、和/或与设备的用户相关联的信息。存储在设备600上的媒体内容可以包括任何类型的音频、视频和/或图像数据。设备600包括一个或者多个数据输入606,经由数据输入606可以接收任何类型的数据、媒体内容和/或输入,诸如用户可选择的输入、消息、音乐、电视媒体内容、录制的视频内容、以及从任何内容和/或数据源接收的任何其它类型的音频、视频和/或图像数据。

设备600还包括通信接口608,其可以被实现为以下的任何一个或者多个:串行和/或并行接口、无线接口、任何类型的网络接口、调制解调器、和任何其它类型的通信接口。通信接口608提供在设备600和通信网络之间的连接和/或通信链路,通过该连接和/或通信链路,其它电子、计算和通信设备与设备600进行数据通信。

设备600包括一个或者多个处理器610(例如,任何微处理器、控制器等),其处理各种计算机可执行或可读的指令,以便控制设备600的操作并实现上文所描述的实施方案。替换地或者附加地,设备600可以利用结合总的以612标识的处理和控制电路被实现的硬件、固件或者固定逻辑电路中的任何一个或者其组合来实现。虽然未显示出,但是设备600可以包括与设备中各种组件耦合的系统总线或者数据传送系统。系统总线可以包括不同总线结构的任何一种或者组合,诸如存储器总线或者存储器控制器、外围总线、通用串行总线、和/或利用各种各样总线架构的任何架构的处理器或者局部总线。

设备600还包括计算机可读介质614,诸如一个或者多个存储器组件,其例子包括随机存取存储器(RAM)、非易失性存储器(诸如,只读存储器(ROM)、快闪存储器、EPROM、EEPROM等中的任何一个或者多个)、和盘存储设备。盘存储设备可以被实现为任何类型的磁或者光存储设备,诸如硬盘驱动、可记录和/或可重写的压缩盘(CD)、任何类型的数字多功能碟(DVD)等。设备600也可以包括大容量存储介质设备616。

计算机可读介质614提供数据存储机制,用来存储设备数据604、以及各种设备应用618和与设备600的操作方面有关的任何其它类型的信息和/或数据。例如,操作系统620可以通过计算机可读介质614而作为计算机应用来维护并在处理器610上被执行。设备应用618可以包括设备管理器(例如,控制应用、软件应用、信号处理和控制模块、特定设备本机的代码、用于特定设备的硬件抽象层等)以及其它应用,该其他应用可以包括web浏览器、图像处理应用、诸如即时消息传送应用的通信应用、文字处理应用和各种各样其它不同的应用。设备应用618还包括用来实现本文描述的技术的实施方案的任何系统组件或者模块。在本例中,设备应用618包括被显示为软件模块和/或计算机应用的接口应用622和手势捕获驱动器624。手势驱动器624代表如下的软件,即它被用来向被配置用于捕获手势的设备——诸如触摸屏、跟踪板、相机等——提供接口。替换地或者附加地,接口应用622和手势捕获驱动器624可以被实现为硬件、软件、固件或者它们的任何组合。此外,计算机可读介质614可以包括呈现模块625a和手势模块625b,其如上文描述的那样运行。

设备600还包括音频和/或视频输入-输出系统626,其提供音频数据到音频系统628和/或提供视频数据到显示系统630。音频系统628和/或显示系统630可以包括用来处理、显示和/或以别的方式呈现音频、视频和图像数据的任何设备。视频信号和音频信号可以经由RF(射频)链路、S-video链路、复合视频链路、分量视频链路、DVI(数字视频接口)、模拟音频连接、或者其它相似的通信链路而从设备600传达到音频设备和/或显示设备。在实施方案中,音频系统628和/或显示系统630被实现为设备600外部的组件。替换地,音频系统628和/或显示系统630被实现为示例性设备600的集成组件。

总结

各种实施方案针对智能地呈现或者预呈现这样的内容,即该内容在用户与内容交互期间很可能被带入到相关联的视区中。在至少某些实施方案中,高速缓存预呈现的内容的过程被与对视区外的哪些区域要随着使用和时间的推移而被保持为最新的确定相分离。进一步地,至少某些实施方案多轮执行呈现活动,以努力减小用户可视的内容达到完成和得到显示的潜在的延迟,而不干扰在呈现期间相关联的应用或者系统执行的其它工作。

虽然实施方案是以特定于结构特征和/或方法动作的语言被描述的,但是应当理解的是,在所附权利要求中定义的实施方案不是必然地局限于所描述的特定特征或者动作。而是,所述特定特征和动作是作为实现所要求保护的实施方案的示例性形式被公开的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号