多级光标控制的制作方法

文档序号:17954903发布日期:2019-06-19 00:22阅读:210来源:国知局
多级光标控制的制作方法

用户与不同种类的计算设备的交互不断增加。这方面的一个例子涉及到可以以各种各样不同方式被配置成支持不同功能性(例如从文字处理和电子表格到web浏览器、游戏等等)的应用的激增。用户可能期望他们所使用的应用是跨用户可能具有的不同设备而可用的,并且可能附加地期望跨那些设备而有类似的体验。例如,开发者可以选择使一个web浏览器或该浏览器的版本可用于台式计算机、平板计算机和游戏控制台,以便适应用户对于共同的浏览体验的期望。

然而,因为由可得到的各种各样不同的设备支持的功能性和能力不同,所以可能很难跨设备地保持共同的体验。与特定的web浏览器的交互情景例如可能在不同的设备上变化,这部分地是因为对于不同的设备可得到的输入模态不同。利用台式计算机的传统的浏览体验牵涉到使用鼠标来进行浏览器导航,它使得能对于选择链接、定位光标等等进行相当多的控制。然而,在使用不同的输入模态的其它设置下,可能很难达到同等的光标控制。例如,虽然用于游戏控制台的控制器很适合于玩游戏,但使用控制器来操控光标可能是相当有挑战性的,因为把模拟控制器输入信号翻译成粒状的“像鼠标的”移动命令并不是微不足道的。同样地,在平板和移动设备上的应用用户界面的基于触摸的导航,可以与类似的挑战相关联。因此,在用户对利用浏览器和其它应用的交叉设备体验的期望与传统上已成可得到的实际体验之间可能存在差距。



技术实现要素:

这里描述了多级(multi-stage)光标控制技术,其中具有多个级的控制算法被施加来便利对于光标运动和定位的细粒度控制。在一个或多个实现中,执行监视以检测经由控制器提供用于让计算设备针对应用操控在用户界面内的光标的输入。当检测到输入时,多级阻尼(damping)算法被施加到所检测到的输入。多级阻尼算法可包括空间和时间阻尼因子。光标的移动按照经由算法的施加而确定的被阻尼的输入来呈现。然后,当用来操控光标的输入结束时,发起吸引序列来把光标移动到被包含在用户界面中的目标单元。

提供本概要来以简化的形式介绍概念的选择,这些概念将在以下的详细说明中进一步描述。本概要既不打算标识所要求保护的主题的关键特征或必要特征,也不打算用来帮助确定所要求保护的主题的范围。

附图说明

详细说明是参照附图进行描述的。在图上,参考数字的最左面(一个或多个)数字标识该参考数字首次在其中出现的图。在说明书和附图上,相同的参考数字在不同的实例中的使用可以指示类似的或相同的项目。

图1是在可操作来利用这里描述的技术的示例性实现中的环境的举例说明。

图2描绘在示例性实现中的系统,在其中按照多级光标控制算法来移动光标。

图3描绘按照一个或多个实现的、用于多级光标控制的情景中的示例性操作。

图4描绘按照一个或多个实现的、用于施加多级光标控制算法的示例性过程。

图5a描绘按照一个或多个实现的、用于空间阻尼的示例性多项式曲线。

图5b描绘按照一个或多个实现的、用于时间阻尼的可变系数的示例性曲线图。

图6描绘按照一个或多个实现的、用于施加光标吸引序列的示例性过程。

图7描绘按照一个或多个实现的、用来举例说明轻拂(flick)和吸引手势的一些方面的示例性情景。

图8描绘按照一个或多个实现的、用来举例说明轻拂和吸引手势的一些方面的另一个示例性情景。

图9举例说明示例性设备的各种部件,其可被实施为如参照图1-8描述的、用来实施这里描述的技术的一些方面的任何类型的便携式和/或计算机设备。

具体实施方式

综述

因为由不同的可得到的设备支持的功能性和能力不同,所以即使是对于相同的或类似的应用,也可能很难在不同的设备上向用户提供共同的体验。与特定的web浏览器的交互情景例如可能部分地因为对于不同设备的不同输入模态而变化。例如,虽然用于游戏控制台的控制器很适合于玩游戏,但使用游戏控制器来操控光标可能是相当有挑战性的,因为把模拟控制器输入信号翻译成粒状的“像鼠标的”移动命令并不是微不足道的。因此,传统上在游戏控制台上可得到的浏览体验可能由于所使用的游戏控制器对于这些体验的限制,而受到损害。

这里描述了多级光标控制技术,其中施加具有多个级的算法来便利对光标移动和定位的细粒度控制。在一个或多个实现中,执行监视以检测经由控制器提供用于让计算设备针对应用操控在用户界面内的光标的输入。当检测到输入时,多级阻尼算法被施加到所检测到的输入。光标的移动按照经由算法的施加而确定的被阻尼的输入来呈现。然后,当用来操控光标的输入结束时,发起吸引序列来把光标移动到被包含在用户界面中的目标单元。

在一个或多个实现中,控制算法提供非线性输入阻尼。附加或替换地,控制算法可以组合用于输入阻尼的空间和时间阻尼因子。控制算法可以对在光标附近的用户界面单元实施自动光标吸引(例如,当输入结束时),这给用户解除负担,使其不必精确地定位光标去选择诸如链接、图像、控制等等。多级算法也使能轻拂和吸引手势,以便利通过短持续时间轻拂而在密集地排列的单元(例如,在网页上的链接)之间导航,结果是给予用户对于光标的细粒度控制的体验,使得在应用用户界面的单元之间导航更容易和更有效。

在以下的讨论中,首先描述可操作来利用这里描述的内容的示例性环境。然后描述可以在示例性环境以及在其它环境中被利用的技术和过程的示例性说明。因此,示例性环境不限于执行所述示例性技术和过程。同样地,示例性技术和过程不限于在所述示例性环境中实施。

示例性操作环境

图1是在可操作来利用这里描述的多级光标控制技术的示例性实现中的环境100的图示。所图示的环境100包括可通信地耦合到显示设备104的计算设备102的示例。显示设备104被描绘为显示与应用相关联的示例性用户界面105,其在所图示的例子中被配置为经由计算设备102的浏览器呈现的网页。在所图示的例子中,计算设备102被表示为通信地耦合到显示设备104(例如,电视机)的游戏控制台,然而,计算设备102可以以各种各样的其它方式来配置。例如,计算设备102可被配置成传统的计算机(例如,台式个人计算机、膝上型计算机等等)、移动台、娱乐电器、无线电话、平板计算机、上网本等等,正如下面相关于图8进一步描述的。因此,计算设备102的范围可以从带有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)到带有有限的存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持式游戏控制台)。计算设备102还可能涉及到使得计算设备102执行一个或多个操作的软件。

计算设备102还被图示为包括处理系统106和计算机可读存储介质的例子,计算机可读存储介质在本实例中是存储器108。处理系统106不受形成其的材料或其中所利用的处理机制限制。例如,处理系统106可以由(一个或多个)半导体和/或晶体管(例如,电子集成电路(IC))(诸如片上系统、处理器、中央处理单元、处理核心、功能块等等)组成。在这样的上下文中,可执行指令可以是电子地可执行的指令。替换地,处理系统106的或用于处理系统106的机制,以及从而是计算设备的或用于计算设备的机制可以包括,但不限于量子计算、光学计算、机械计算(例如,使用纳米技术)等等。另外,虽然示出了单个存储器108,但可以利用各种各样类型的存储器和存储器的组合,诸如随机存取存储器(RAM)、硬盘存储器、可拆卸介质存储器和其它类型的计算机可读介质。

计算设备102还被图示为包括操作系统110。操作系统110被配置成对计算设备上可执行的应用112抽象化计算设备102的底层功能性。例如,操作系统110可以抽象化计算设备102的处理系统106、存储器108、网络、输入/输出和/或显示功能性,这样使得可以编写应用112,而不用知道这个底层功能性是如何被实施的。应用112例如可以把数据提供到操作系统110,用来由显示设备104呈现和显示,而不用理解这种呈现将如何被执行。操作系统108还可以代表各种各样的其它功能性,诸如管理文件系统和由计算设备102的用户可导航的用户界面。

操作系统108还被图示为包括输入/输出模块114,它是操作系统110所支持的输入/输出功能性的代表。因此,输入/输出模块114是涉及到由计算设备102进行的输入识别和/或输出供应的功能性的代表。例如,输入/输出模块114可被配置成标识手势和使得执行对应于那些手势的操作等等。输入可以由输入/输出模块114以各种各样不同的方式来检测以便进行处理。

例如,操作系统110可被配置成经由与诸如所图示的控制器116那样的硬件设备的触摸交互而接收一个或多个输入。触摸交互可以包括按压按钮、移动游戏棒(joystick)或控制棒(thumbstick)、在跟踪板各处移动、使用显示设备104的触摸屏(例如,检测用户手118的手指或指示笔)、使用触摸屏和/或控制器116的控制等等。触摸输入的识别可以被操作系统110借用(leverage)来与由计算设备102输出的用户界面交互,诸如与游戏、应用交互、浏览互联网、改变计算设备102的一个或多个设置等等。也设想有牵涉到与设备的触摸交互的各种各样其它的硬件设备。这样的硬件设备的例子包括光标控制设备(例如,鼠标)、遥控器(例如,电视遥控器)、移动通信设备(例如,被配置成控制计算设备102的一个或多个操作的无线电话)和牵涉到在用户或对象方上的触摸的其它设备。因此,虽然控制器116被图示为游戏控制器,但控制器116可以以各种各样其它的方式被配置,诸如用软件和/或硬件配置成使得能够用作控制器116的遥控器、智能电话或平板设备等等。

输入/输出模块114也可以被操作系统110借用来支持自然用户界面(NUI),它可以识别可能不牵涉触摸的交互。例如,计算设备102可包括NUI输入设备120。NUI输入设备120可以以各种各样的方式被配置成检测输入,而不用让用户去触摸特定的设备,诸如通过使用麦克风来识别音频输入。例如,NUI输入设备120可被配置成支持话音识别,以识别特定的话语(例如,口头命令)以及识别提供所述话语的特定的用户。

在另一个例子中,NUI输入设备120可被配置成通过使用照相机来支持识别手势、所展现的对象、图像、头部/面部跟踪、(一个或多个)身体移动等等。照相机例如可被配置成包括多个透镜,这样可以捕获不同的透视图,且因此确定深度。不同的透视图例如可被使用来确定离NUI输入设备120的相对距离,且因此确定相对距离中的改变。

在另一个例子中,飞行时间法照相机可被利用来确定对象(例如,用户的手臂、手、手指、腿、躯干和头部)的相对距离。例如,NUI输入设备120可以捕获图像,这些图像由输入/输出模块114分析,以识别由用户作出的一种或多种运动,包括哪个身体部分被使用来作出该运动以及哪个用户作出该运动。通过识别用户的手118的一个或多个手指的定位与移动和/或用户的手118作为整体的移动,来举例说明一个例子。运动可以由NUI输入设备120识别为手势,以发起对应的功能。因此,NUI输入设备120可以被借用来以各种各样不同的方式支持深度感知。由NUI输入设备120捕获的图像可被借用来提供各种各样的其它功能性,诸如用来标识特定的用户(例如,通过面部识别)、对象等等的技术。

可以识别各种各样不同类型的手势,诸如从单种类型的输入识别的手势(例如,运动手势),以及牵涉到多种类型的输入的手势,例如,通过使用诸如指示笔那样的对象而作出的运动手势和对象手势。因此,NUI输入设备120可以通过识别并借用输入之间的区分,而支持各种各样不同的手势技术。应当指出,通过在自然用户界面(NUI)中的输入之间的区分,可能由这些输入的每个输入单独作出的手势的数目也增加。例如,虽然移动可以是相同的,但不同的手势(或对于模拟命令的不同的参数)可以通过使用不同类型的输入来指示。因此,NUI输入设备120可以支持自然用户界面,其支持不牵涉触摸的各种各样的用户交互。

因此,虽然以下的讨论可能描述输入的具体例子,但是在实例中,也可以使用不同类型的输入,而不背离本发明的精神和范围。而且,虽然在实例中在以下的讨论中,手势被图示为使用NUI的输入,但是手势可以是由各种各样不同设备使用各种各样不同技术进行的输入,诸如利用平板计算机的触摸屏功能性。也设想有其它的非手势技术,去诸如选择控制器116的一个或多个按钮。

操作系统110也被图示为包括光标控制模块122。光标控制模块122是可操作来使得能响应于从控制器或其它输入设备捕获的各种输入,而控制光标移动、动作和行为的功能的代表。在一个或多个实现中,光标控制模块122可被配置成提供如以上和以下结合与用于应用的用户界面的交互而描述的多级光标控制技术。在只是一个例子的情景中,光标控制模块122可以结合游戏控制台的web浏览器应用运行,以便利对于使用方向性输入设备的浏览活动进行光标控制,方向性输入设备是诸如用于游戏控制台的游戏控制器设备或其它控制器/输入设备。然而,通常这里描述的多级光标控制技术可以在各种输入情景中被采用,包括牵涉到不同类型的计算设备、浏览器和/或其它应用的情景、跨操作系统用户界面的交互等等。虽然被图示为操作系统110的一部分,但光标控制模块122可以以各种各样的方式被实施,诸如,作为独立模块、应用112中的一个或多个的部件等等。

多级光标控制可牵涉到具有多个级的控制算法的施加,它便利在输入动作和强度的范围上对光标移动和定位进行细粒度控制。在一种途径中,采用提供非线性输入阻尼的控制算法。附加或替换地,控制算法可以组合用于输入阻尼的空间和时间阻尼因子。而且,控制算法还可以被配置成对光标邻近区域中的用户界面单元促成自动光标吸引(例如,当输入结束时),这给用户解除负担,使其不必把光标精确地定位成选择诸如链接、图像、控制等等那样的单元。各种各样的不同控制算法和对应的动作可以由光标控制模块122支持,其把非线性阻尼和光标吸引集成到多个级中。结果是给予用户以细粒度控制光标的体验,使得更容易在应用用户界面的单元之间导航,因此使得与应用用户界面的总的交互体验更愉快和有效。关于多级光标控制技术的这些和其它方面的细节和例子将相对于下面的图进行描述。

图2总的以200描绘了在示例性情景中的示例性系统200,在其中光标控制模块122操作以控制经由显示设备104呈现的用户界面105内的光标202。光标控制模块122的操作通过第一和第二级204,206被图示。在第一级204,光标202被图示为处在位置207。响应于操控光标202的输入,可以调用光标控制模块122来实施多级控制方案,以按照输入去重新放置光标202。正如所提到的,光标202的多级控制可牵涉到输入阻尼和光标吸引的组合。图2的光标控制模块122被描绘为包括阻尼模块208和吸引模块210,它们是可操作来分别实施输入阻尼和光标吸引技术的功能性的代表,正如在本文档中讨论的。阻尼模块208和吸引模块210可以与光标控制模块122合并、由其调用,或以别的方式由光标控制模块122使用来实施这里描述的各种操作。

阻尼模块208可以在一个或多个级中把输入阻尼施加到检测到的输入。如下面详细地解释的,输入阻尼可包括空间阻尼和时间阻尼。在一种途径中,空间阻尼按照多项式关系式被实施。时间阻尼可以按照可配置的时间阻尼系数被实施。时间阻尼系数被选择成导致在一段时间上光标速度中的斜坡上升(ramp-up)。通过这样做,短持续时间游戏棒/控制棒轻拂和/或其它相当快速的、与大的空间幅度相关联的方向性输入可被阻尼,以促成在斜坡上升时间窗口内光标位置的相对较小的相应改变。这便利对于光标移动的精细控制以及可以减小因为快速非阻尼光标响应而促成的超越(overshoot)目标单元的情况。

吸引模块210可以当输入序列结束时开始生效以进一步精细化光标的位置。具体地,吸引模块210可以使得光标重新定位到靠近光标的单元。在一种途径中,吸引是至少部分基于对用户界面上光标位置离单元的位置的距离的评估。光标然后根据该评估而“被吸引”到选择的单元。

例如,图2上的第二级206描绘了使光标202被重新定位到位置212的用户界面105。在本例中,重新定位可以响应于用户与控制器116的交互而出现,以便把光标从位置207移开,通常移向位置212。响应于经由控制器116的输入所呈现的光标202的移动可以反映如所指出的输入阻尼的施加。而且,光标202在位置212处的定位可以反映光标吸引到目标单元,目标单元在所描绘的例子中是所图示的网页的“health”链接。因此,输入可以促成光标202向位置212移动一段路,到达中间位置,在这个点时输入被结束。然后,当输入结束时,可以施加光标吸引,以使得光标202自动移动到在位置212的“health”链接。这是在不用导致该吸引的另外的用户输入的情况下发生的。在一个实现中,光标的移动可以被呈现,这样使得光标看起来是响应于输入而移动,当输入结束时短暂地停止,然后根据吸引序列而稳定到目标单元。关于多级光标控制技术的这些和其它方面的细节在下面的章节中描述。

在考虑了示例性环境、系统、设备和部件后,现在考虑举例说明关于多级光标控制技术的细节的某些示例性情景和过程的讨论。

多级光标控制实施细节

本节将相对于各种示例性情景和过程描述多级光标控制技术的细节。情景和过程可以经由相对于图1和2描述的示例性操作环境的示例性系统、设备和部件来实施。每个代表性情景和过程的各方面可以以硬件、固件、或软件或它们的组合来实施。下面描述的过程被显示为一组方块,它们规定由一个或多个设备执行的操作,但不一定限于对于由各个方块执行这些操作所显示的次序。

贯穿本文档描述的功能性、特征和概念可以在这里描述的代表性情景和过程的上下文中被利用。而且,相对于不同的例子描述的功能性、特征和概念可以在不同的例子之间被互换,以及不限于在个体过程的上下文中的实现。再者,本文中与不同的代表性过程和对应的图相关联的方块可以一起施加,和/或以不同的方式组合。因此,本文中相对于不同的示例性环境、设备、部件和过程描述的个体的功能性、特征和概念可以在任何适当的组合中被互换地使用,以及不限于由枚举的例子代表的特定组合。

光标控制细节

图3总的以300描绘了示例性情景,其中光标的控制按照这里描述的技术被图示。所述情景被图示为以字母“A”到“E”标记的操作序列。在“A”处,用来操控光标的输入经由控制器116提供。输入可被光标控制模块122检测和处理。响应于所述输入,光标控制模块122可以操作以促成光标202的对应的移动。在所描绘的例子中,输入被表示为与游戏控制器集成的控制棒的移动302。正如提到的,也设想有其它控制器和输入的类型,诸如,基于鼠标的输入、方向键盘(directional pad)或箭头按键/按钮输入、智能电话/平板电脑用作为控制器116来提供输入等等。

在“B”处,移动302促成光标202在用户界面105(它的一部分在图3上被显示出)内的对应移动304。如图3所示,对应的移动304通常是沿与移动302相同的方向。光标移动的量和光标移动呈现的速度可以取决于输入的幅度和/或持续时间。例如,对应的移动304取决于示例性控制棒的位移的幅度以及位移的持续时间。输入阻尼也可以通过光标控制模块122而被施加到输入,正如以上和下面描述的(例如,通过调用阻尼模块208或以别的方式)。

在“C”处,输入结束以及光标控制模块122可以识别输入的结束。例如,当用户释放示例性控制棒以及控制棒返回到它的开始位置时,光标控制模块122可以检测并将此解释为特定的输入序列的结束。光标控制模块122可以响应于输入的结束而采取(一个或多个)指定的动作,指定的动作的一个例子是在适当的环境下发起吸引序列。具体地,光标控制模块122可以实施如这里讨论的光标吸引,以促成光标重新定位到目标单元(例如,通过调用吸引模块210或以别的方式)。目标单元的选择可以取决于当输入结束时光标202与单元的接近度。

因此,图3上的操作“D”代表施加光标吸引来选择目标单元。目标单元可以从被包含在用户界面105中的多个单元306之间进行选择。通常,目标单元的选择牵涉到确定在多个单元306与光标202的位置之间的距离,如由图3上在光标202与示例的“health”链接之间的距离308代表的。选择也可以牵涉到对行进和移动向量的方向的分析,以当输入结束时(例如,控制棒被释放时)推断预期的目标。在一个或多个实现中,确定用于页单元的边界框,如在图3上表示的,以及计算边界框与光标位置之间的距离。于是目标单元可以被选择为按照所计算的距离具有离光标最近的边界框的单元。

操作“E”代表按照光标吸引,重新定位光标202到目标单元。在图示的例子中,显示了光标202从输入结束处的位置重新定位到目标单元(例如,示例的“health”链接)。一旦输入结束,光标202到选择的单元的重新定位就自动发生,而不用来自用户的另外的输入来促成该重新定位。这样,可以利用由用户经由控制器提供的相对粗糙和/或不精确的输入,以及通过施加这里描述的多级光标控制技术,光标仍旧可以根据这样的输入被精细地控制并被定位。

通常为了进一步举例说明光标控制细节,考虑图4,其描绘了其中多级光标控制被施加来引导光标移动的示例性过程400。经由控制器的用以操控用于应用的光标的输入被监视(方块402)。例如,光标控制模块122可以操作来监视经由与计算设备120相关联的控制器或多个不同的控制器而提供的输入。光标控制模块122可以结合特定的应用来操作,该特定的应用的一个例子是可以被安装在游戏控制器或其它计算设备上的浏览器应用。附加或替换地,光标控制模块122可被实施来跨计算设备的多个应用而执行输入监视。

根据输入监视,作出关于输入是否被检测到的确定(方块404)。这里,光标控制模块122可以识别和区分不同种类的输入,以便与计算设备102进行交互。可以由输入/输出模块114支持对各种种类的输入的处理,正如以前描述的。在一种途径中,光标控制模块122可被调用来处理涉及到光标202的操控的特定类型的输入,诸如使用控制棒、游戏棒、方向键盘、触摸手势、按键击打和/或鼠标移动的输入,来定位光标和选择项目。

因此,在示例性过程400的上下文中检测到的输入对应于被利用来操控光标的输入的类型输入。只要没有经方块404检测到这样的输入,过程就返回方块402,并且可以继续监视。当检测到输入时,多级光标控制技术可被施加来处理所检测到的输入,并且随之控制光标的移动。具体地,多级阻尼可被施加到所述输入(方块406)。多级阻尼可既包括空间阻尼级(方块408)又包括时间阻尼级(方块410),它们的细节在标题为“输入阻尼细节”的以后章节中提供。用于阻尼的特定算法可能取决于各种因素,包括,但不限于,所使用的输入设备、设备的类型、输入的类型(例如,手势、按键击打、游戏控制器输入、触摸轻扫(swipe)等)等等。因此,不同的多级阻尼算法可以在不同的情景中被施加。根据多级阻尼,分派命令以更新光标位置(方块412)。这里,光标控制模块122可以操作来把命令提供到应用,以引导光标的呈现。由应用进行的光标呈现因此反映被施加到所检测到的输入的输入阻尼。可以以任何适当的格式配置这些命令来指示用于光标的绘制路径、速度和/或行为。

然后作出关于输入是否结束的确定(方块414)。所述确定可以基于定时器和/或在输入信号不存在时开始流逝的指定的超时时段。所述超时时段可以是可配置的,且通常是几百毫秒的量级。个体的输入序列可以从经方块404的对输入的检测持续,直到经方块414作出确定:输入已结束(例如,该个体的输入序列已停止)。这可以例如当用户释放控制器的控制棒、停止移动鼠标、把手指从触摸输入设备上移除等等时发生。

只要用于个体的输入序列的输入继续进行和/或在小于指定的超时时段内被中断,那么经方块414的确定就是否定的,意味着输入尚未结束。在这种情形下,过程返回到方块404,其中处理另外的检测到的输入(例如,继续进行的输入)以施加阻尼和随之更新光标位置。当在方块414作出输入结束的确定时,发起吸引序列以把光标移动到目标单元(方块416)。吸引序列可包括用来查明目标单元(方块418)并分派命令以重新定位光标到目标单元(方块420)的操作。例如,光标可被吸引到所选择的目标单元,如前面相对于图3的例子显示和描述的。关于用于光标吸引的技术的另外例子和细节在下面标题为“光标吸引细节”的章节中讨论。

输入阻尼细节

本节描述关于输入阻尼的细节,输入阻尼可被利用于贯穿本文档讨论的多级光标控制技术。输入阻尼可被施加到经由各种控制器116提供的输入,控制器116包括,但不限于,游戏控制器、平板设备、移动电话、游戏棒设备。至少某些控制器可包括控制棒、方向键盘、触摸板、触摸屏、或可以通过其生成输入的其它输入设备。一般而言,按照被配置成规定阻尼因子的算法来将输入阻尼施加到输入信号,这些阻尼因子被设计来修正输入信号以便控制光标响应。例如,阻尼因子可以操作来修正原始输入信号的幅度,以控制在输入幅度的范围上的光标移动的速度或速率。阻尼因子可被施加到经由控制器生成的、用来操控光标的输入向量的每个分量,诸如与用户界面和/或显示设备的二维坐标空间相关联的x和y分量或极坐标系统的向量。当然,设想了可比较的输入阻尼技术也可以在其它输入情景中被利用,诸如结合实施用于用户界面的三维坐标空间的虚拟环境的x,y和z分量来利用。

因此,假设有对于输入向量的输入的范围(例如,从-1到1的归一化输入范围),输入阻尼算法可以产生对应的分量值,它们规定对于检测到的输入的光标响应的速度分量。正如名称所暗示的,输入阻尼可以通过施加因子来使得输入信号的幅度以按照所述算法计算的百分比减小,而促成输入的“阻尼”。然而,设想了在某些情形下可以施加被设计来增加输入信号或其分量的幅度的因子。对于各个分量可以计算不同的因子,或替换地,可以生成单个的总的因子,并且把它施加到多个分量中的每个分量。

输入阻尼算法可以描述在原始输入与被利用于光标控制的“被阻尼的”输入之间的函数关系。在一个实现中,输入阻尼算法也可能依赖于关于页单元相对于光标的位置的知识。这样的信息可被使用来推断潜在的目标单元,以及可被使用来根据在光标与单元之间的相对位置/距离而随之修正阻尼系数。关于页单元的位置的知识可以通过分析页的代表(例如,页DOM)而得出,正如前面讨论的。各种不同的控制方案和光标响应图案可以通过以下方式来实施,即:以不同的方式配置这个函数关系来规定在各种条件下的因子的不同组合。正如前面指出的,在一个或多个实现中这里描述的技术可能牵涉到非线性函数关系。另外,输入阻尼算法可被配置成单独地或组合地利用空间和时间阻尼。换句话说,输入阻尼算法可以反映并入了空间考虑或时间考虑的任一项或二者的非线性函数关系。

在一个或多个实现中,空间阻尼通过输入信号的多项式阻尼来实施,输入信号可以对应于控制棒或游戏棒的位移、基于触摸的轻扫的速度和/或长度、与经由方向键盘或方向性按钮的交互相关联的幅度、或其它输入机制。多项式阻尼可以以下面的一般化形式进行表达:

(阻尼因子)=(输入值)指数

其中“输入值”是经由控制器生成的归一化的原始输入值,“指数”可被选择为大于1的整数,以及“阻尼因子”是通过计算生成的非线性因子。由以上的表达式反映的函数关系可以是由开发者和/或由用户通过改变用于指数的值而可调谐的,这促成在光标响应中的对应改变。

为了进一步举例说明,考虑其中光标正被游戏控制器的控制棒控制的情景。在这种情景中,在-1到1的归一化范围中的输入信号可以根据控制棒从开始位置的位移来生成。在某些实例中,可以定义围绕开始位置的死区(deadzone),在这种情形下,位移可以是在死区外的位移的量。控制棒模型代表一个示例性设备,用户通过它可以提供模拟的二维输入,其可以被翻译成用来操控光标的方向和速度值。

在一个或多个实现中,光标控制模块122被配置成利用多项式曲线来得出用于控制棒输入(或来自另一种类型控制器的输入)的空间位移因子。作为例子,图5a总的以500描绘曲线图,其显示对于速度的x分量d(x)与对于控制棒的位移值x的关系的多个多项式曲线。按照上述的一般表达式,曲线具有形式d(x)=x指数。虽然指数可被设置为大于1的任何整数,但是实际上,指数的值可以由上限约束。例如,光标控制模块122可被配置成支持在2到7的范围中的指数值,正如由图5a上的示例性曲线代表的。对于指数值也设想有其它范围。

考虑图5a的示例性曲线,在x和y方向上离死区有50%或0.5的位移,沿三次曲线(例如,指数=3)的输出光标速度可被计算为最大速度的12.5%,如在点502处显示的。相比之下,按照线性模式输出光标速度被计算为最大光标速度的50%,如在点504处显示的。通过调谐指数值,阻尼的量可被控制成提供渐变的光标响应(与线性方法相比较)以及当输入结束时使光标快速停止。

输入阻尼算法可以单独地或与空间阻尼组合地并入时间阻尼。时间阻尼可以响应于带有大幅度的相对短持续时间的输入而被施加去控制光标移动,诸如控制棒的短暂的轻拂或快速的基于触摸的轻扫/滚动。例如,短暂的持续时间输入动作,诸如刚才提到的例子,可被配置成促成相当小的光标响应。这可以通过使用时间阻尼系数来在一段时间上使光标速度斜坡上升而完成。通过这样做,光标的移动可以在诸如具有密集链接组的用户界面的区域内被精细地控制,密集链接组可能很难通过使用非阻尼方法进行导航。

时间阻尼系数可以以各种方式被导出。例如,时间阻尼系数可以按照在位移的时间与系数的值之间建立的函数关系进行计算。在至少某些实现中,采用线性关系,但是也设想有诸如对于空间阻尼所讨论的那些表达式的多项式表示式和/或其它函数。在任何情形下,时间阻尼系数被配置成在斜坡上升时间段从可配置的初始值变化,一直到斜坡上升结束后的值1。

在斜坡上升时段期间,按照函数关系计算的时间阻尼系数通过把输入值乘以对应的百分比(例如映射到0%到100%的百分比的系数0到1)而被施加到阻尼光标速度。在斜坡上升时段后,时间阻尼系数被设置成1,意味着输入值被乘以1以及时间阻尼实际上停止。

图5b总的以506描绘在位移的时间与对于时间阻尼系数的值之间建立的示例性函数关系。系数c(t)的初始值被显示在点508处,它对应于y-截距。正如所指出的,系数c(t)的初始值可以是由开发者和/或用户可调谐的。在本例中,在510处描绘线性斜坡上升,但是也设想有非线性实现。斜坡上升时段从时间=0延续到时间=t0(斜坡上升阈值时间)。斜坡上升阈值时间t0也可以是可配置的,但典型地被设置为一秒的某个分数,诸如五百毫秒。作为例子而不是限制,可以为t0设置在约二百毫秒到一秒之间的值。当斜坡上升时段完成时,c(t)的值被设置为1,如在点512处显示的。c(t)的值然后保持为1,直至输入序列结束(例如,c(t)沿直线y=1而行)。因此,对于时间阻尼的线性途径由图5b所显示的曲线图和对应的表达式514定义。不是具有如对于表达式514显示的线性关系,而是可以指定更高阶多项式表达式。最终的结果是,控制棒的短持续时间“轻拂”(例如,控制棒的整体运动后面跟随突然的释放),或经由控制器提供的其它短持续时间输入(例如,在低于斜坡上升阈值时间的时间),可被控制成促成在屏幕上的被阻尼的光标响应,这导致与未阻尼的响应相比的、减小的精细光标移动。

如所指出的,输入阻尼算法可被配置成利用空间和时间阻尼,正如刚刚在个体的基础上描述的。附加或替换地,输入阻尼算法可以组合空间和时间阻尼,以将光标速度定义为空间位移与时间两者的函数。例如,按照空间和时间阻尼的以上的讨论,对于检测到的输入的速度值可以通过把空间阻尼的位移d(x)乘以时间阻尼系数c(t)来确定。对于时间阻尼系数c(t)和/或空间阻尼的位移d(x)的值可以对于用户界面的每个帧/呈现更新进行计算(例如,按照对于帧呈现的刷新速率),以及光标速度分量可以按照这些计算的值被确定。这里,在二维输入情景中对于x和y方向的分量速度可以被分别表达为v(x)=d(x)*c(t)和v(y)=d(y)*c(t)。如果可适用的话,在三维情景中对于z方向的分量速度可以类似地被表达为v(z)=d(z)*c(t)。另外应当指出,可以采用极坐标系统,而不使用笛卡尔坐标。在这个途径中,阻尼系数可被施加到在具有特定方向和幅度的极坐标空间中的向量。也设想有各种各样其它的例子。

光标吸引细节

这一节描述关于可被利用于贯穿本文档讨论的多级光标控制技术的光标吸引的细节。光标吸引可以在个体的基础上以及结合这里讨论的输入阻尼技术来利用。在输入阻尼算法运行的同时,在光标输入活动的同时,光标吸引部分被配置成在输入结束后,诸如当用户释放控制棒时,立刻开始生效。通常光标吸引牵涉到将光标重新定位到接近光标的单元。在一种途径中,吸引是至少部分基于在用户界面上从光标位置到单元的位置的距离的评估。然后光标根据该评估而被“吸引”到所选择的单元。

图6描绘示例性过程600,其中光标吸引序列被调用,以促成光标吸引到目标单元。在图6上表示的吸引序列可以以各种方式被发起。在一个例子中,过程600可以结合总的多级光标控制方案被发起,诸如图4的示例性过程400。更一般地,这里描述的(一个或多个)光标吸引序列可以在特定的输入序列结束后被触发。附加或替换地,过程的各方面也可能在特定的输入序列期间出现(例如,在输入的活动的时候),以便提前准备当输入结束时吸引光标到目标单元。

具体地,接近用于用户界面的光标的页单元被识别(方块602)。为已识别的页单元确定边界框(方块604)。然后,计算在边界框与光标之间的距离(方块606)。例如,光标控制模块122可被配置成识别在围绕光标位置的感兴趣的指定区域内的页单元。识别页单元的处理可以当光标输入活动时“提前”发生,诸如响应于每个光标移动事件而发生。替换地,单元的识别和对于吸引序列的附加操作可以当检测到输入结束时“按需求”来触发(例如,如相对于图4的方块414讨论的)。这里描述的方法可以被施加到经由浏览器以及与不同的应用112相关联的其它用户界面被呈现的网页。

指定的感兴趣区域可以是包含在离光标位置相对近的接近度内的单元的、具有选择的尺寸和/或像素数目的区域。感兴趣的区域可以具有缺省的尺度和/或可以是可配置来设置/调谐尺度的。作为例子但不是限制,感兴趣的区域可以被配置成围绕光标的圆形区或加框区。感兴趣的区域也可以是其它形状,诸如部分基于在输入结束的时间的光标速度的泪滴形状。换句话说,感兴趣的区域可以设置(一个或多个)阈值距离,超出其的单元可以从作为吸引的目标的考虑中消除,而在其内的单元可被识别为潜在的目标。附加或替换地,感兴趣的区域可以对应于文档的特定章节或片段,诸如使用“div”标签或其它单元编组技术被编组在一起的单元块或单元集合。因此,当在感兴趣的区域内发现一个或多个单元时,进行根据计算的距离找出目标单元的评估。另一方面,如果感兴趣的区域不包含任何适当的单元,则没有潜在的目标,且可以跳过剩余的吸引操作。

当识别被触发时,光标控制模块122可以操作来遍历在主体用户界面内的单元的代表,以便找出被包含在指定的感兴趣区域内的单元。在网页的情形下,这可能牵涉到分析文档对象模型(DOM)来标识在光标周围的感兴趣区域内的单元。也设想有单元的其它代表,诸如标记语言、基于对象的、或脚本文档,其定义至少包括关于单元彼此的相对位置的指示的用户界面的结构。

根据对于单元的适当代表的分析,光标控制模块122能够识别被包括在感兴趣区域中的单元,然后,用于被识别的任何单元的边界框被确定。边界框可经由页DOM(或单元的其它结构代表)被定义,以及可以根据对页/用户界面的分析而被查明。边界框然后可被使用来计算光标与处在感兴趣区域内的各种单元之间的距离。

在确定光标与一个或多个候选的单元之间的距离后,最靠近光标的边界框被选择为目标单元(方块608)。然后,当光标吸引被触发时,光标被吸引到目标单元(方块610)。例如,光标控制模块122可以执行分析,来计算从光标到不同的候选单元的距离,并且把所述距离进行互相比较。与到光标的最短距离相关联的候选单元然后被选择为用于光标吸引的目标单元。关系(tie)可以以各种方式被解析,诸如通过除了距离以外还考虑输入的方向。光标控制模块122可以寄送(post)用于目标单元的边界框的坐标给存储装置,以便当光标吸引被触发时使用。

当“按需求”执行对于吸引序列的处理时,所确定的坐标或边界框可立刻被利用,以把光标吸引到目标单元。替换地,如果计算被“事先”执行,则只要特定的输入序列继续,就可对于每个光标移动事件、在正在进行的基础上计算和重新计算目标单元。寄送的坐标可以被更新,以便根据光标正在进行的移动来反映目标单元的任何改变。为了使得性能最佳化和/或避免不必要的寄送,可以对于每个事件确定坐标,但除非目标单元已改变,否则不寄送这些坐标。然而,为了虑及其中用户已游离(disengage)一会,之后又重新加入(reengage)的情况,可以规定超时来控制即使在目标单元保持相同的情况下坐标何时得到寄送或重新寄送。例如,如果由超时设置的时间段消逝而没有寄送,则可以强制:即使目标单元保持相同,也寄送对于最靠近的单元的坐标。作为例子而不是限制,超时可以被设置为在约500毫秒到2000毫秒的范围内。

附加地,在一个或多个实现中,光标控制模块122还可以被配置成计算在某些情景中用于目标单元的“偏移框”。“偏移框”代表在用于目标单元的边界框内的框,其包含可选择来调用对应的功能性的该单元的一些部分。代替边界框本身,偏移框可以被使用于吸引,因为边界框可能包括某个不活动的空白空间。因此,如果光标被重新定位到空白空间,则光标将不处在活动的位置上。例如,在网页上的许多文本单元当光标被定位在实际的文本上时是活动的,但如果光标被定位在边界框内的周围空白处,则它们是不活动的。

为了补偿这种效果,可以通过把边界框的一个或多个尺度修正一个可配置的偏移值来计算偏移框。作为例子但不限于,偏移值可被表达为像素数量、缩放因子、百分比的尺寸减小等等。在一个特定的例子中,目标单元的边界框通过使得该边界框的至少一边按照可被设置在约0到10个像素的范围内的像素值向里偏移而被减小。例如,如果采用5个像素的偏移,则吸引将把光标放置在目标单元的边界框内5个像素,以保证光标被聚焦在单元的活动的部分上(例如,可选择的链接、文本、控制等等)。

光标控制模块122可包括或利用定时器,它被同步于对于图形处理系统的呈现更新。对于每个定时器帧(它以诸如60帧/秒的刷新速率发生),光标控制模块122计算在最近10帧内对于光标速度的移动平均。移动平均可被使用来有效地发送命令,以促成按照检测到的输入呈现光标的移动。如前所述,输入信号可以按照这里描述的输入阻尼技术被阻尼,以及光标移动可以反映在某些情形下的阻尼(空间和/或时间的)。

在确定特定的输入序列已经结束后,光标吸引开始生效以促成重新定位光标到计算的目标单元,正如这里讨论的。这例如可能当控制棒被释放时、当用户停止提供触摸输入时、以及诸如此类的情况下发生。检测输入序列的结束可以以任何适当的方式进行。在一个或多个实现中,与用于呈现更新的定时器相关联的滴答计数(tick count)被保持,以及可被利用来识别输入何时结束。滴答计数在每次输入事件发生时可被更新,输入事件导致光标移动(例如,光标移动事件)。光标控制模块122可以监视滴答计数,以及按照滴答计数作出关于何时使能或禁止光标吸引的确定。例如,当对滴答计数的更新停止达指定的时间量(例如,滴答计数超时)时,可以触发生成用于光标吸引的命令的操作。

因此,光标控制模块122在确定输入已经结束后,可以开始运行光标吸引。通常这牵涉到生成促成适当的光标移动的命令和/或使得命令被注入到用于光标的呈现队列。在一个或多个实现中,用于光标吸引的命令可以作为模拟输入模态运行,模拟输入模态与在系统(诸如用于游戏控制器、平板电脑或移动电话、或其它控制器116)内运行的其它控制器输入模态平行地运行。在作出关于光标输入刚才已停止的确定后,被事先存储的目标单元的坐标可以被检索或目标单元可以按需求被查明。然后,从光标到对于目标单元的、在边界框(或如果偏移特征被利用,则是偏移框)上的吸引点的距离被计算。吸引点可以对应于在边界框上与光标最接近的点,但是在不同的实现中可以使用该框上或甚至在该框内的其它的点。而且,对于光标从它的当前位置移动到吸引点的每帧的浮点光标差值被确定。每帧的浮点光标差值代表为了让光标达到吸引点的每帧注入的光标移动量。浮点差值的小数部分可以在帧之间扩散,以确保光标移动是平滑的。在操作中,把光标移动到更接近吸引点的移动事件可以根据浮点光标差值来计算,并对于每个定时器帧注入,直至光标已达到吸引点为止。

在一个或多个实现中,光标控制模块122可以在某些情景中被附加地配置成禁止或以别的方式阻止光标吸引。例如,光标控制模块122可以实施一方案,以选择地控制何时使能或禁止沿光标的移动路径吸引返回到单元。具体地,使得能进行吸引返回,以控制超越目标(overshoot)情形,在超越目标情形中用户已使用(engage)光标一会儿,试图到达某个单元,但无心地以超越该单元结束。另一方面,在其中用户故意地把光标移离单元吸引的情形下,用户多半不想让光标吸引返回到该单元,所以该吸引返回可以被禁止。

为了在这些不同的情形之间进行区分以及针对这些不同的情形处理吸引返回,光标控制模块122通常可被配置成禁止吸引返回到单元(例如,沿光标从其达到它的当前位置的路径吸引返回),但是也查明超越目标条件何时出现,并且在这种情形下使能吸引返回。为了做到这一点,光标控制模块122可以使用是否有超越目标条件的指示,结合吸引相对于光标移动的方向的指示,来确定是否施加光标吸引。

例如,控制模块122可以以任何适当的方式得到吸引相对于光标移动的方向的指示。如果方向是相反的,则可以禁止光标吸引到当前选择的目标单元,除非指示了超越目标条件。在一种途径中,相对方向可以通过计算对于光标吸引的瞬时速度向量与光标速度的移动平均向量(例如,当用户输入是活动的时光标的平均速度)的点积而被确定。如果点积是负的,则这意味着速度是在相反的方向,因此对于所标识的目标单元可以跳过光标吸引。如果点积是正的,则这意味着速度是在相同的方向,且光标吸引被执行来把光标重新定位到所标识的目标单元。

如果检测到超越目标条件,则即使点积是负的,也可以发生光标吸引。为了检测超越目标条件,光标控制模块122可以追踪光标以前是否被吸引到当前的目标单元。这可能出现的一个方式是通过设置指示吸引是否发生的(例如,在给定的时间帧内)、与目标单元相关联的布尔标记(或其它适当的指示符)。如果对于输入情景的光标移动在该单元(例如,在单元的位置处的零速度,其指示所述单元具有光标聚焦点)处开始,则布尔标记被设置为真。如果布尔标记对于一个单元为真,则按点积计算或相对方向的其它指示禁止吸引返回该单元。另一方面,如果布尔标记对于该单元为假,则使能吸引返回到该单元,这允许系统处理超越目标情形。作为例子,如果用户用光标操控超越了网页上的某个链接,则被计算的点积将是负的,但对于该单元的布尔标记为假,因为光标并没有在该单元上开始运动。因此,发生光标吸引返回该链接,这给用户提供所预期的结果。当光标超时时、当目标单元改变时或一旦光标已移动到单元的邻近区域之外(例如,单元不再处在感兴趣区域中),布尔标记就可被复位。

这里描述的输入阻尼和光标吸引技术可以一起利用,以提供多级光标控制。多级光标控制技术提供使得能对屏幕上的光标进行细粒度控制的体验,使得更容易在页上的链接之间导航,从而使得总的交互体验更愉快和更有用。多级光标控制技术也可以使能新的交互情景和手势,它的一个例子是正要在下面讨论的轻拂和吸引手势。

轻拂和吸引手势

在一个或多个实施例中,光标控制模块122被配置成支持轻拂和吸引手势,以便利在用户界面内单元之间的导航。轻拂和吸引手势牵涉到与相对较大的幅度相关联的、经由控制器116的短暂的方向性输入。这样的输入的例子包括,但不限于,控制棒的轻拂、游戏棒的短暂位移、触摸屏上的快速轻扫等等。这样的短暂的方向性输入在这里合在一起被称为“轻拂”。轻拂可以由系统识别,并被处理,以促成在光标的位置处的对应响应。为了让输入被识别为轻拂,可能必须达到位移和/或输入幅度的阈值量。例如,与最大位移或输入幅度的百分之五十或更大值相关联的输入可被表征为轻拂,而具有小于百分之五十的值的输入可能不被认为是轻拂。同样地,持续时间阈值也可以是与轻拂相关联的,这样,超过持续时间阈值的输入不被表征为轻拂。

因此,响应于对轻拂的识别,光标控制模块122可以促成如在本文档中描述的吸引,以将光标重新定位到附近的单元。轻拂和吸引行为部分是由于被施加到与轻拂相关联的短暂方向性输入的阻尼而工作的。在缺乏阻尼时,光标速度响应于轻拂而快速地跳升,这可能不允许有足够的时间用于吸引,且可能促成急动的(jerky)光标行为。轻拂和吸引特征很适合在其上有密集安排的单元的用户界面的一些部分上导航,诸如链接列表、一组平铺块或图标、菜单和图像缩略图马赛克等等。在这样的用户界面的部分上,轻拂和吸引特征可被利用来在单元之间最经济地和有效地导航,诸如在页上的链接列表中上下导航和/或在一组单元之间前后导航。现在相对于在图7和图8上描绘的示例性轻拂和吸引情景讨论另外的细节和例子。

具体地,图7总的以700描绘示例性情景,它代表使用轻拂和吸引手势来在单元之间导航。这里,显示了包含各种单元的代表性用户界面702。用户界面在本例中被配置成体育运动网页,其包括与体育运动有关的故事的链接。网页可以经由与游戏控制台或其它计算设备关联的浏览器被呈现。一开始,光标202被显示为被引导到网页的链接704。为了在各种链接之间进行导航。用户可以仅仅使用控制器116,并且在用户想要光标行进的方向上输入轻拂。这使得光标在选择的方向上移动,并且把光标吸引到在那个方向上可能被查明的目标单元,正如以前讨论的。这个动作在图7上用向上轻拂706代表,它可以通过在游戏控制器上的控制棒的向上的短暂位移和释放(如显示的)或经由不同种类的控制器的其它同等的操控来产生。响应于向上轻拂706,光标可以在向上方向上移离链接704,然后吸引开始生效,以将光标自动重新定位到链接708上。显然,轻拂足以促成在轻拂的方向上到下一个单元的这个吸引,且用户不必继续输入,直到光标达到该单元或精确地将光标定位到该单元为止。自然地,轻拂可以在任何方向上发生来促成对应的光标移动,包括向上/向下、向左/向右、以不同的角度按对角线移动等等。

例如,图8总的以800描绘另一个示例性情景,它代表使用轻拂和吸引手势来在单元之间导航。这里,描绘了可以在如图7所示、光标202吸引到链接708后被施加的向右轻拂802。向右轻拂802可以通过在游戏控制器上的控制棒的向右的短暂位移和释放(如显示的)或经由不同种类的控制器的其它同等的操控而产生。响应于向右轻拂802,光标可以移离链接708到右面,然后吸引开始生效,以将光标自动重新定位到链接804上,它在本例中是处在不同的链接列中。

在各种方向上接连的轻拂可被使用来上下、前后、左右、对角线交叉和以别的方式在用户界面的单元之间的导航。如上面提到的,所呈现的光标的行为可以给出这样的外观:光标移离当前的单元,短暂停止(或许达几乎不可觉察的时间量),然后由于吸引而被拉到下一个单元。这为用户提供在被包含在页或文档中的单元之间进行导航的直截了当和有效的机制。

在考虑了多级光标控制技术的示例性细节后,现在考虑可被利用来实施所描述的技术的示例性系统和设备的讨论。

示例性系统和设备

图9总的以900图示示例性系统,其包括作为可实施这里描述的各种技术的一个或多个计算系统和/或设备的代表的示例性计算设备902。这是通过在计算设备902上包括光标控制模块122而图示的。计算设备902例如可以是服务供应商的服务器、与客户(例如,客户设备)相关联的设备、片上系统和/或任何其它适当的计算设备或计算系统。

如所图示的示例性计算设备902包括处理系统904、一个或多个计算机可读介质906、或一个或多个I/O接口908,它们互相通信地耦合。虽然未示出,但计算设备902还包括系统总线或其它数据和命令输送系统,其使得各种部件互相耦合。系统总线可包括不同的总线结构的任何一个总线结构或它们的组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用各种各样总线结构中任何总线结构的处理器或本地总线。也设想有各种各样其它的例子,诸如控制和数据线。

处理系统904是通过使用硬件执行一个或多个操作的功能性的代表。因此,处理系统904被图示为包括可被配置成处理器、功能块等等的硬件单元910。这可以包括以硬件实施为专用集成电路或使用一个或多个半导体形成的其它逻辑器件。硬件单元910不受形成它们的材料或其中所采用的处理机制的限制。例如,处理器可以包括(一个或多个)半导体和/或晶体管(例如,电子集成电路(IC))。在这样的上下文中,处理器可执行的指令可以是可电子地执行的指令。

计算机可读存储介质906被图示为包括存储器/存储装置912。存储器/存储装置912代表与一个或多个计算机可读介质相关联的存储器/存储装置容量。存储器/存储装置部件912可包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、快闪存储器、光盘、磁盘等等)。存储器/存储装置部件912可包括固定介质(例如,RAM、ROM、固定硬盘驱动机等等)以及可拆卸介质(例如,快闪存储器、可拆卸硬盘驱动机、光碟等等)。计算机可读介质906可以以各种各样的其它方式被配置,正如下面进一步描述的。

(一个或多个)输入/输出接口908是允许用户把命令和信息输入到计算设备902,并且也允许通过使用各种输入/输出设备把信息展现给用户和/或其它部件的功能性的代表。输入设备的例子包括键盘、光标控制设备(例如,鼠标)、麦克风、扫描仪、触摸功能性(例如,被配置成检测物理接触的电容性或其它传感器)、照相机(例如,它可以利用可见的或非可见的波长,诸如红外频率,来将移动识别为不牵涉到触摸的手势)等等。输出设备的例子包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应的设备等等。因此,计算设备902可以以如下面描述的各种各样的方式被配置,以支持用户交互。

各种技术在这里可以在软件、硬件单元、或程序模块的一般上下文中被描述。通常,这样的模块包括例行程序、程序、对象、单元、部件、数据结构等等,它们执行特定的任务或实施特定的抽象数据类型。如这里使用的术语“模块”、“功能性”和“部件”通常代表软件、固件、硬件、或它们的组合。这里描述的技术的特征是与平台无关的,意思是指这些技术可以在具有各种各样处理器的各种各样商用计算平台上被实施。

所描述的模块和技术的实现可被存储在计算机可读介质上或可以跨某种形式的计算机可读介质来被传送。计算机可读介质可包括可以由计算设备902访问的各种各样的介质。作为例子,但不是限制,计算机可读介质可包括“计算机可读存储介质”和“计算机可读信号介质”。

“计算机可读存储介质”是指与仅仅信号传输、载波、或信号本身形成对比的、使得能存储信息的介质和/或设备。因此,计算机可读存储介质不包括信号本身或信号承载介质。计算机可读存储介质包括以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑单元/电路、或其它数据)的方法或技术被实施的硬件,诸如易失性和非易失性、可拆卸和非可拆卸介质和/或存储装置。计算机可读存储介质的例子可包括,但不限于,RAM、ROM、EEPROM、快闪存储器、或其它存储器技术、CD-ROM、数字多功能盘(DVD)、或其它光学存储装置、硬盘、盒式磁带、磁带、磁盘存储或其它磁存储设备、或其它存储设备、有形的介质、或适合于存储想要的信息和可由计算机访问的制造品。

“计算机可读信号介质”可以指信号承载介质,它被配置成诸如经由网络,把指令传送到计算设备902的硬件。信号介质典型地可以将计算机可读指令、数据结构、程序模块、或其它数据具体化为调制的数据信号,诸如载波,数据信号或其它输送机制。信号介质还包括任何信息传递介质。术语“调制的数据信号”是指使它的特性中的一个或多个以将信息编码到信号中这样的方式来设置或改变的信号。作为例子,但不是限制,通信介质包括有线介质,诸如连线的网络或直接连线的连接;和无线介质,诸如声学、RF、红外线和其它无线介质。

如前所述,硬件单元910和计算机可读介质906是以硬件形式实施的模块、可编程器件逻辑和/或固定器件逻辑的代表,它们可以在某些实施例中被利用来实施这里描述的技术的至少某些方面,诸如执行一个或多个指令。硬件可包括集成电路或片上系统的部件、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、或者以硅或其它硬件方式的其它实现。在本上下文中,硬件可以作为处理设备操作,其执行由该硬件包含的指令和/或逻辑定义的程序任务,以及可以作为被利用来存储指令以供执行的硬件(例如,前面描述的计算机可读存储介质)操作。

上述内容的组合也可以被利用来实施这里描述的各种技术。因此,软件、硬件、或可执行模块可被实施为在某种形式的计算机可读存储介质上体现的和/或由一个或多个硬件单元910体现的一个或多个指令和/或逻辑。计算设备902可被配置成实施对应于软件和/或硬件模块的特定的指令和/或功能。因此,将可由计算设备902执行的模块实现为软件,可以至少部分地以硬件达到,例如,通过使用计算机可读存储介质和/或处理系统904的硬件单元910达到。指令和/或功能可以是由一个或多个制造品(例如,一个或多个计算设备902和/或处理系统904)可执行/可操作的,以便实施这里描述的技术、模块和例子。

如在图9上进一步图示的,示例性系统900使能普适的环境以用于当在个人计算机(PC)、电视机设备和/或移动设备上运行应用时的无缝用户体验。服务和应用在所有三个环境中基本上类似地运行,以便当在利用应用、玩视频游戏、观看视频等等时从一个设备转移到下一个设备时有共同的用户体验。

在示例性系统900中,多个设备通过中央计算设备进行互连。中央计算设备对于该多个设备可以是本地的,或可以位于多个设备的远程。在一个实施例中,中央计算设备可以是一个或多个服务器计算机的云,它们通过网络、互联网、或其它数据通信链路被连接到该多个设备。

在一个实施例中,这种互连结构使得功能性能够跨多个设备传递,以便给多个设备的用户提供共同的和无缝的体验。多个设备中的每个设备可以具有不同的物理要求和能力,且中央计算设备使用平台来使得能够把既是对设备定制的、然而又是为所有设备共有的体验传递到设备。在一个实施例中,创建目标设备的类,并且对设备的泛型类定制体验。设备的类可以由物理特征、使用的类型、或设备的其它共同的特性定义。

在各种实现中,计算设备902可以假设各种各样不同的配置,诸如用于计算机914、移动装置916和电视机918用途。这些配置中的每个配置包括可以具有通常不同的结构和能力的设备,因此计算设备902可以按照不同的设备类中的一个或多个被配置。例如,计算设备902可以被实施为设备的计算机914类,它包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等等。

计算设备902也可以被实施为设备的移动装置916类,它包括移动设备,诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等等。计算设备902也可以被实施为设备的电视机918类,它包括具有或被连接到在休闲的观看环境下通常更大的屏幕的设备。这些设备包括电视机、机顶盒、游戏控制台等等。

这里描述的技术可以由计算设备902的这各种配置支持,且不限于这里描述的技术的具体例子。这个功能性也可以全部或部分地通过使用分布式系统而被实施,诸如经由如下面描述的平台922通过“云”920来实施。

云920包括和/或作为用于资源924的平台922的代表。平台922抽象化硬件(例如,服务器)的底层功能性和云920的软件资源。资源924可包括应用和/或数据,它们可以当计算机处理在远离计算设备902的服务器上执行时被利用。资源924还可以包括在互联网上和/或通过订户网络,诸如蜂窝网或Wi-Fi网络,而提供的服务。

平台922可以抽象化用来连接计算设备902与其它计算设备的资源和功能。平台922还可以用来抽象化对资源的缩放,以便向所遇到的、对于经由平台922实施的资源924的需求提供对应的规模水平。因此,在互连的设备实施例中,这里描述的功能性的实施可以分布在系统900各处。例如,该功能性可以部分地在计算设备902上以及经由抽象云920的功能性的平台922实施。

结论

虽然本发明已经以特定于结构特征和/或方法动作的语言描述,但应当理解,在所附权利要求中限定的发明不一定限于所描述的具体特征或动作。而是,所述具体特征和动作作为实施要求保护的本发明的示例性形式而被公开。

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