背景技术:
平板计算设备(或类似类型的嵌入式设备)通常包含允许用户向设备录入数据的触摸屏。用户进行数据录入可以使用诸如手指或触笔(或笔)之类的书写对象来完成。来自书写对象的对设备的输入被显示为“墨”。
墨被数字化以允许其被计算设备处理和操纵并且被显示。这可以通过以下来执行:向设备上的操作系统发送出数字化墨,使处理器处理墨,并且然后向图形卡发送经处理的墨。图形卡然后将墨(其是用户动作的效果)渲染在监视器或显示器上。
当前的墨渲染技术的一个缺点是所引入的延时。笔和手指往往是快速且实际上瞬时的,而墨的渲染往往延后。事实上,整个墨渲染过程可能引入可以在50至100毫秒之间的任何值或甚至更大的量级的延时。墨渲染中的该延时可以导致缓慢且尴尬的用户体验。
特别地,该延时是不合期望的效应,因为其打破了直接操纵对象的感知屏障。当然,这些多半是在其中存在同地协作的体验的情形中被感知的。换言之,当输入和输出彼此同地时(诸如利用触笔在平板计算设备或触摸屏上进行书写),延时效应最大。
技术实现要素:
提供了用于改进针对墨在利用鼠标或书写对象进行墨内容的用户创建期间的显示的延时的系统和方法,所述书写对象诸如手指、触笔、主动笔或用于追踪针对显示区域中的墨内容的期望位置的其它绘图设备。为了减少或最小化用于显示由用户使用触笔/鼠标/触摸输入/其它设备而创建的墨内容的时间,本文所描述的技术的方面生成可以利用实际的湿墨显示的预测性湿墨。预测性湿墨通过使有效墨部段延伸预测性距离而被计算出。预测性距离意图作为用于有效湿墨部段的终止墨点与书写对象尖端之间的距离。在一个方面中,通过确定触摸设备上的当前延时时段和书写对象的速率来计算预测性距离。预测性距离然后是书写对象在当前延迟时段期间将以该速率行进的距离。此外或可替换地,可以使用速率和加速度二者来计算预测性距离。
此外,本文所描述的技术的方面可以生成针对墨渲染引擎的压力数据,墨渲染引擎中没有原始压力数据离开。原始压力数据可以由压敏触摸表面、主动笔等等生成。然而,用户在其上进行书写的许多设备不是压敏的。本文所描述的技术的方面使用书写对象速率作为用于压力的代表物以生成可以馈送至墨渲染引擎的压力数据。压力数据可以由墨渲染引擎用于设置墨宽度和/或其它墨参数。
提供本发明内容来以简化的形式引入以下在具体实施方式中进一步描述的概念的选择。本发明内容不意图标识所要求保护的主题的关键特征或必要特征,也不意图孤立地用于帮助确定所要求保护的主题的范围。
附图说明
以下参照附图各图来详细描述本文所描述的技术,其中:
图1示意性地示出用于生成预测性墨的流程图。
图2是图示了延时效应的图。
图3是图示了具有不正确的长度的预测性墨的图。
图4是图示了具有正确的长度的预测性墨的图。
图5是图示了通过墨点绘制的接触点、墨点和湿墨以及预测性墨的图。
图6是根据本文所描述的技术的一方面的用于生成预测性墨的方法的流程图的图。
图7是根据本文所描述的技术的一方面的用于生成预测性墨的方法的流程图的图。
图8是图示了墨粗细度的图。
图9是根据本文所描述的技术的一方面的用于生成压力数据以供用于生成数字墨的方法的流程图的图。
图10是根据本文所描述的技术的一方面的数字墨环境的图。
图11是根据本文所描述的技术的一方面的示例性计算环境的图。
具体实施方式
在各种方面中,提供了用于减少在用户利用触笔、鼠标、手指(或其它触摸输入)或其它绘图设备创建墨内容期间墨的显示延时的系统和方法。特别地,可以通过预计书写对象的路线并且渲染预测性湿墨来减少书写对象在点处接触触摸屏与表示该点的湿墨出现在触摸屏上之间的延时。
“数字墨”是指从书写对象记录的一个或多个笔划,所述书写对象例如是数字化器平板电脑上的鼠标、触笔/笔、电容式触摸数字化器上的电容式触笔或电容式对象(例如手指),或者与数字化器平板电脑集成的显示屏上的触笔/笔,所述数字化器平板电脑可以或可以不利用触敏显示屏。如本文所使用的,术语“墨”与“数字墨”可互换地使用,并且是指“数字墨”。此外,术语“书写对象”可以是笔、触笔、手指或者可以提供触摸输入的任何其它仪器。每一个笔划可以存储为一个或多个墨点,并且每一个墨点可以包含各种性质,仅作为示例,包括压力、倾斜、方位角和对应于输入仪器的位置的坐标(x,y)。墨点从其中书写对象接触触摸表面的实际接触点可区分。例如,用户可以沿计算机系统的触敏显示屏移动笔,以便绘制线条或曲线,并且计算机系统可以在用户移动输入仪器时随时间(或以任何其它间隔,如对本领域普通技术人员已知的那样)而对沿输入仪器尖端位置的轨迹的坐标(x,y)进行采样。这些坐标表示沿由用户输入的曲线或线条的接触点,并且在本文中被称为“接触点”。接触点可以由与触摸接口相关联的硬件组件生成。一般而言,硬件组件可以分配时间戳和位置信息以形成每一个接触点。
书面文本可以传达比通过线段连接的一系列坐标更多的信息。例如,书面墨改变以反映笔压力(通过墨的粗细度)、笔角度(通过线条或曲线段的形状和离散点周围的墨的行为)和笔尖速度(通过笔直度、线条宽度和线条或曲线的路线之上的线条宽度变化)。墨的这些附加性质的处理可以揭示所分析的书面文本中的情绪、个性、强调等。
数字墨可以是指笔划的序列或笔划的任何任意集合,其中每一个笔划包括点序列。笔划可能已经被同时绘制或收集,或者可能已经在独立的时间和位置处并且出于独立的原因而被绘制或收集。点可以使用各种已知技术而被表示,包括笛卡尔坐标(x,y)、极坐标(r,θ)和如本领域中已知的其它技术。数字墨可以包括性质的表示,所述性质包括压力、角度、速度、颜色、触笔大小和墨透明度。数字墨还可以包括其它性质,除其它信息之外,包括墨如何被沉积在页面上的次序(对于大多数西方语言而言,从左向右然后向下的栅格图案)、时间戳(指示何时沉积墨)、墨的作者的指示和起源设备(在其上绘制墨的机器的标识或用于沉积墨的笔的标识中的至少一个)。
墨渲染引擎可以将接触点视为输入,并且生成形成墨部段的“墨点”。墨渲染引擎可以是操作系统的部分、接收墨的应用的部分或独立的应用。墨点用于渲染数字墨,其是用户看到显示的内容。墨渲染引擎可以采用各种平滑算法和/或滤波器,其使用接触点来形成包括多个墨点的笔划,所述笔划更紧密地类似纸张上的用户绘图的外观。各个墨点的位置可以不同于各个接触点的位置,尽管接触点有时可以与墨点重合。
在生成墨点之前,接触点可以被滤波或以其它方式被处理以改进用于生成墨的随后过程的性能。在一个方面中,处理接触点以生成多个经滤波的接触点。如本文所使用的,术语“接触点”可以包括经滤波的接触点。因此,在将接触点描述为对墨生成过程或其它计算的输入时,可以意指经滤波的或原始的接触点。相反,经滤波的接触点不包括原始的接触点。
在一个方面中,部段生成器用于形成墨部段,其包括使用多个接触点(或者可能地,多个经滤波的接触点)计算的一系列墨点。墨部段可以通过使用部段中的墨点连同显示特性(比如墨颜色和宽度)作为湿墨而被渲染在显示器上。墨部段可以在起始墨点与终止墨点之间行进。
关于渲染由用户创建的墨内容的困难之一是足够快地显示墨内容,使得用户的动作看起来导致墨内容的显示。已经确定用户可以感知到响应于用于创建墨内容的用户动作中的、小至大约50毫秒或更小的延迟。当由用户创建的墨内容的显示中的延迟作为终止墨点与书写对象的尖端之间的间隙而可见时,延迟可以破坏用户体验,因为内容创建可能不再具有使用物理笔在书写表面上创建墨的感觉。
本文所描述的技术的方面通过生成预测性湿墨而克服该困难。预测性湿墨通过使有效墨部段延伸预测性距离来计算。预测性距离意图作为终止墨点与书写对象的尖端之间的距离。在一个方面中,预测性距离通过确定触摸设备上的当前延时时段和书写对象的速率来计算。预测性距离然后是书写对象在当前延时时段期间以该速率将行进的距离。
书写对象速率可以使用最后两个接触点上的时间戳来计算,或者可以使用若干接触点来计算,包括当前墨笔划中的所有点。墨笔划,如本文所使用的,是在下笔事件与提笔事件之间生成的数字墨。下笔事件发生在第一接触点由书写对象生成时。提笔事件与未检测到触摸屏与书写对象之间的接触对应。在一个方面中,在速率计算中,最近的接触点被给出比较早的接触点更多的权重。
“接触”,如本文所使用的,可以意指其中不发生实实在在的接触的接近。一些触摸表面在书写对象没有实际接触触摸屏时可以感测书写对象向屏幕的接近。这样的接近检测可以被视为“接触”并且用于生成下笔事件和“接触点”。
在一个方面中,书写对象加速度也用于确定预测性距离。加速度可以在一系列接触点之上被计算。
在一些方面中,本文所描述的系统和方法的益处是改进计算机的性能,以便减少针对墨内容的显示的表观延时。这样的改进还可以造成在墨内容的创建期间的改进的用户体验。
在各种方面中,本文所描述的系统和方法可以允许用户使用输入设备来创建墨输入,所述输入设备诸如触笔、用于接收触摸输入的触摸接口、鼠标、或可以控制显示区域内的光标的移动的另一设备。
定义
在以下讨论中,根据本文所描述的技术的系统和方法的示例可以使用基于microsofttm操作环境的操作环境来例示,但是各方面不受限于该环境。此外,某些术语在描述各种方面时为了引用的简易性而被使用。提供以下明确定义来帮助各种方面的理解。
如本文所利用的,“数字墨”是具有性质的笔划的序列或集合。笔划序列可以包括以有序形式的笔划。序列可以按照捕获的时间或者按照笔划出现在页面哪里或者在协作情形中按照墨的作者来排除。其它次序是可能的。笔划集合可以包括笔划序列或无序笔划或其任何组合。另外,一些性质可以对每一个笔划或笔划中的点是独特的(例如,压力、速度、角度等)。这些性质可以以笔划或点水平而不以墨水平被存储。
如本文所利用的,“点”是定义空间中的位置的信息。例如,点可以相对于捕获空间(例如,数字化器上的点)、虚拟墨空间(将所捕获到的墨放置到其中的空间中的坐标)和/或显示空间(显示设备的点或像素)来定义。
如本文所利用的,“笔划”是所捕获到的点的序列或集合。例如,当被渲染时,点的序列可以利用线条来连接。可替换地,可以将笔划表示为点和下一个点的方向上的矢量。简而言之,笔划意图涵盖涉及墨的点或部段的任何表示,而与点的底层表示和/或什么将点进行连接点无关。
如本文所利用的,“书写仪器”是指用于提供对应于数字墨的笔划的设备。例如,书写仪器可以包括笔、手指、触笔和能够由支持数字墨的表面感测的指向对象。
湿墨:在墨笔划处于进行中的同时被渲染的墨,也就是说,在接触件(例如,笔)尚未提离表面的同时。在各种方面中,湿墨上的部分可以包括预测性墨。
干墨:在墨笔划完成之后被渲染或重新渲染的墨,或者从加载自除了输入之外的源(持续性墨内容)的墨数据被渲染的墨。
预测性墨:基于用户意图在哪里继续墨笔划的预测而被渲染的墨。预测性墨笔划可以在对应于湿墨笔划的最后被渲染的像素的起始点与终止点之间行进。湿墨笔划的最后被渲染的像素基于触摸屏上的用户输入而被确定。在向笔划添加新的湿墨时最后的点持续改变,直到笔划完成。
半干墨:待同步化到干墨层的中间层中的墨。
预测性墨过程流
现在转向图1,示出依照本文所描述的技术的一方面的用于生成预测性墨的过程流100。过程流100可以由在触敏设备上运行的墨引擎执行,所述触敏设备诸如智能电话、平板电脑、膝上型电脑或感知像素显示器。墨引擎可以与设备的操作系统集成,可以是独立应用,或者可以与接收手写输入的应用集成,诸如绘图或记笔记应用。在步骤102处,接收点信息。点信息可以指明已经由书写工具接触的触摸屏表面上的特定接触点,所述书写工具诸如触笔、主动笔或手指。接触点还可以是指经滤波的接触点。
在决定点104处,点信息被评估以确定点是否表示新墨笔划的开始。新墨笔划的开始可以与下笔事件对应。下笔事件可以发生在书写工具接触触摸屏时。在下笔事件之后立即接收到的点可以是笔划中的第一点。在下笔事件之后但是在发生提笔事件之前接收到的点可以被视为相同笔划的部分。提笔事件发生在书写工具与触摸屏的接触不连续或者在大于阈值的时间段内不连续时。换言之,提笔事件发生在触摸表面停止检测到接触触摸表面的笔或者在大于阈值时间内停止检测到笔时。
如果在步骤102处接收到的点是新笔划的开始,则在步骤106处,初始化拟合器。初始化拟合器可以牵涉在用于处置新笔划的准备中启动新的拟合器过程或者清空来自运行过程的数据。随后将更加详细地描述拟合器,但是简要来说,拟合器生成遵循笔划内的点的湿墨。可以使用不同类型的拟合器。一种类型的拟合器可以连接点,如在连接网点中。第二类型的拟合器可以试图绘制追踪接触点的更平滑的线条,但是可以或可以不交叉与笔划相关联的任何给定接触点。第二类型的拟合器可以生成一起形成墨笔划的一系列弯曲部段。
在已经启动拟合器状态之后,点被返回。通过将点返回,点可以与笔划相关联,并且被保存以供当接收到附加点时的随后处理。例如,点连同其它点可以被处理以生成湿墨的部段。
如果点不是笔划的开始,如在决定点104处所确定的,则拟合器在步骤110处运行。如所提到的,拟合器取已经作为笔划的部分被接收的点作为输入和输出数据,其可以用于渲染遵循点的湿墨的部段。
在决定点112处,做出新点是否是拟合器内的有效部段内的良好拟合的确定。在一个方面中,拟合器生成部段的序列。部段可以采取线条或曲线的形式。在某个点处,新点可能不紧密地符合现有部段。例如,当用户在她的书写中做出方向的急剧调节或改变时,则在调节之后接收的第一点可能不符合之前点。当检测到差的拟合时,拟合器状态在步骤114处更新以准备生成新的部段,并且在步骤116处最终化现有部段。不同的部段可以是相同笔划的部分。如所提到的,笔划可以由下笔和然后的提笔事件定义。
如果在决定点112处,新点是良好拟合,则在决定点118处做出是否存在在笔画内生成的多个部段的确定。如果存在附加部段,则在步骤120处,可以使用新点更新部段之间的关系。更新可以通过在步骤120处运行c1连续性算法来完成。如果在决定点118处或者在步骤120处更新之前部段的连续性之后仅存在所存在的一个部段,则在步骤122处计算预测性墨。如所提到的,预测性墨被显示在实际的湿墨终止的地方的结尾处。当生成实际湿墨时,替换预测性墨,尽管新的预测性墨可以连续地被生成,直到笔划在提笔事件处的终止。
预测性墨试图桥接当被渲染于显示器上的实际湿墨终止和书写对象的尖端在触摸屏上之间的间隙。在一个方面中,湿墨结尾与书写对象的点之间的距离最初通过确定系统内的延时来确定。延时可以由与生成原始点数据的触摸屏相关联的硬件处理管线以及处理原始点数据以生成湿墨的渲染管线中的延迟所导致。换言之,书写工具可以比可以生成湿墨更快地跨触摸屏移动。
预测性墨示例
现在转向图2,图示了由延时导致的湿墨中的间隙。图2示出了触摸屏显示器200,其中墨笔划205在进行中。墨笔划205通过用户的手部210跨触摸屏显示器移动书写工具212来生成。如可以看到的,墨笔划205中的湿墨在终止墨点206处终止。设备和墨处理引擎内的延时使得墨的进行延后于书写对象的尖端213。延后导致湿墨终止点206与书写工具212的尖端213之间的间隙214。在本文所描述的技术的一方面中,生成预测性墨(在图2中未示出)以跨越湿墨终止点206和书写对象的尖端213之间的间隙214。
现在转向图3,图示了预测性墨的非准确生成。触摸屏300示出了通过用户310使书写工具312的尖端313跨触摸屏300行进而生成的主动笔划305。湿墨在墨终止点306处终止。在该情况下,已经向实际的湿墨(实线)的结尾添加预测性湿墨315(虚线)。长度314使得预测性湿墨315以显著的量307超出湿墨的墨终止点306与书写工具312的尖端313之间的距离。本文所描述的技术的方面通过精确地预测湿墨的墨终止点306与书写工具312的尖端313之间的距离来试图避免生成过量的湿墨。
现在转向图4,示出依照本文所描述的技术的一方面的精确设计大小的预测性墨。触摸屏400示出通过用户410使书写工具412的尖端413跨触摸屏400行进而生成的有效墨笔划405。包括湿墨的有效笔划在墨终止点406处终止。预测性墨在墨终止点406处开始并且行进到点407,其在触摸屏上与尖端413对应。具有对应于湿墨的墨终止点406与书写仪器尖端之间的差异的长度414的预测性墨可以依照本文所描述的技术的一方面而生成。如更加详细解释的,本文所描述的技术的各方面力图避免生成在书写工具前方行进的预测性墨或者在书写工具之后延后从而暴露所渲染的墨与书写对象的尖端413之间的间隙的预测性墨。
图5示出示例性接触点、湿墨点、湿墨和预测性墨。接触点包括第一接触点502、第二接触点504、第三接触点506、倒数第二接触点508和终止接触点510。将湿墨530绘制成通过第一接触点502、第一湿墨点520、第二湿墨点522、第三湿墨点524和终止接触点510。在各方面中,湿墨点可以使用贝塞尔近似来计算。第二接触点504、第三接触点506和倒数第二接触点508可以充当贝塞尔近似中的约束。湿墨540可以通过重新参数化贝塞尔近似、使用书写对象跨表面的速率和可选地加速度来计算。湿墨530可以形成墨部段的部分。
初步滤波
如所提到的,本文所描述的技术的各方面可以对接触点进行滤波以生成经滤波的接触点的集合。在其中接触点具有许多噪声或者不具有非常良好的质量的场景中,滤波算法的输出由于每个部段拟合的几个点而可能看起来不“平滑”。在一个方面中,由于输入点离开经拟合的曲线不多于10个himetric单位,因此抖动数据可能更经常超出该限制。结果得到的贝塞尔曲线将仍旧拟合输入点,但是将最可能看起来不是用户所意图的,因为由硬件引入误差。虽然拟合误差容限可以增加以降低抖动的效果,但是这产生了在上墨的同时显著的墨形状改变的不合期望的效果。取代于增加拟合误差容限,缓解该问题的一种方式是通过在运行拟合算法之前使点经过滤波器来预处理输入点。对输入进行滤波的缺点是延时中的增加。由滤波导致的延时可以包括在用于确定预测性墨的长度的延时中。
若干不同的滤波方法是可能的。对噪声进行滤波的第一方法是取输入点的移动平均。一个示例是3点平均,其中每一个输入点利用之前和之后点进行平均。具体地,给定输入点
要指出的是,点不能被计算,直到下一点是已知的,这使延时增加接收下一输入点所花费的时间。这可以被延伸到包括平均中的更多点。例如,5点平均将取5个接连点的平均。
ean无限冲击响应(iir)滤波器是可以与本文所描述的技术的各方面一起使用的第二滤波器。iir如同移动平均,其中结果得到的值取决于所有之前值。利用指数iir滤波器,之前点的权重指数递减。当前经平滑的点
是确定当前输入点和之前经平滑的点的权重的参数。
要注意,应用指数滤波器具有与其中经滤波的点倾向于曲线的内部的移动平均类似的效果。而且,当在之前点上放置更多权重时(也就是说,当a较小时),结果得到的点在实际的输入点之后延后得更多。结果得到的笔划的端点同样可见地在最后的实际输入点之后。这不同于移动平均,其中最后输入点被定义为结果得到的笔划的最后点。
要指出的是,基于当前速率或其它因素而使a变化是可能的。例如,a对于较高的速率而言可以较大,使得经平滑的点不落后太多并且存在较少的所感知到的延时。要指出的是,速率计算要求知晓输入点的时间戳。相应地,原始接触点可以用于确定速率。在另一方面中,经滤波的接触点包括与对应的原始接触点相同的时间戳信息。
墨滤波器
如所提到的拟合器,诸如参照图1提到的拟合器,接收作为输入的接触点并且生成用于形成湿墨和干墨二者的墨点。在一个方面中,三次方贝塞尔滤波器生成三次方贝塞尔部段。拟合算法利用三次方贝塞尔部段的集合来近似墨点的笔划。贝塞尔部段是使用贝塞尔算法生成的曲线。贝塞尔部段的任一端在接触点上。端点之间的接触点可以是用于贝塞尔算法的控制点。接触点可以不在由贝塞尔算法生成的曲线上。由于算法一次被馈送一个接触点,因此对于每一个新点,其更新有效贝塞尔部段,或者其开始新的贝塞尔部段,如果点不足够良好地符合有效部段的话。拟合可以使用分段逻辑而被评估。
三次方贝塞尔拟合维护有效点的集合。每一次接收到新点,将其添加到集合并且拟合器计算新的三次方贝塞尔近似。三次方贝塞尔近似继续更新,直到接收到不符合其它点从而使有效部段结束并且开始新部段的点。单个笔划可以包括多个部段。部段被连接并且第一部段的端部是下一部段的开端。换言之,相邻部段共享接触点。因此,有效集合不一定包含所有点,因为笔划的开端可能被分段逻辑重置。三次方贝塞尔部段
在任何给定时间点处,算法利用一个单个贝塞尔部段b(t)对有效点的集合
其中e是以下更加全面地描述的某个误差函数。
令
由于计算折线和贝塞尔上的点之间的距离是昂贵的,因此在各种方面中,通过以参数t的相同值对折线和贝塞尔进行采样而获取的两个点之间的距离被近似为:
针对其期望最小化的误差函数然后可以定义为:
最小化问题的变量是b的控制点。令
更新规则的参数
另外,发散风险可以通过用
应当指出的是,在更新规则中存在四个自由度,对应于三次方贝塞尔近似的四个控制点。然而,在下一章节中描述的分段组件230将使用这些自由度中的一些以在样条上施加合期望的解析性质(例如连续性)。
分段
分段逻辑完成两个基本任务。第一,其决定开始新的贝塞尔近似还是更新当前的贝塞尔近似。第二,其通过在开始新的近似或曲线的任何时间重新配置三次方贝塞尔拟合器来在样条上强加解析性质(最明显地,c0或c1连续性)。如本文所利用的,并且如本领域普通技术人员将理解到的,“连续性”是指相邻贝塞尔曲线相连接的结合点处的相对平滑性。“c0连续性”是指其中相邻贝塞尔曲线共享相同端点的情形。“c1连续性”是指其中相邻的贝塞尔曲线共享相同的端点和相同的导数二者的情形。
开始新的贝塞尔近似还是更新当前的贝塞尔近似的决定是基于拟合的质量。更具体地,开始新的贝塞尔近似还是更新当前贝塞尔近似的决定是基于所接收的数字化的墨点与由三次方贝塞尔拟合器计算出的最佳近似之间的最大距离。在各方面中,截止阈值可以是10个himetric单位(0.1mm),在该点以上,用户在可用性研究中指示当新点到来时(而不是延伸到新点)墨改变是明显的。然而,应当指出的是,阈值在墨被渲染时与墨的物理大小相关。例如,如果湿墨(也就是说,在从接收表面释放输入仪器之前,在笔划活动期间被渲染的墨)利用10x放大进行渲染,则阈值很可能将需要成为1/10倍,否则用户将注意到墨改变。当然,由于干墨(即一旦从接收表面释放输入仪器时,接收表面上的墨)不改变(也就是说,分段已经完成),该点仅对于湿墨是有意义的。还应当指出的是,阈值可以是任何数量的之前墨点、这样的墨点的任何特征(例如坐标、压力、倾斜、扭曲等)的函数,和/或可以是设备相关的(例如dpi、可用存储器、cpu、gpu等)。任何和全部这样的变型,以及其任何组合,被设想到在本文所描述的技术的范围内。
由分段逻辑完成的其它重要任务是在样条上施加合期望的解析性质。至少样条必须被连接(c0连接性),这意味着每一个贝塞尔曲线或部段的第一控制点必须与之前的曲线或部段的最后控制点匹配,从而损失一个自由度:
c0连续性:
虽然c0连续性保证样条被连接,但是其不足以产生平滑的墨。依照本文所描述的技术的各方面,差的伪像可以通过施加c1连续性来去除。参数c1连续性要求部段在t=0处的导数匹配之前部段在t=1处的导数:
然而,当施加参数c1连续性时损失另一自由度,这留下用于产生良好拟合的极少自由度。幸运的是,使样条看起来是平滑的所全部需要的是几何(如与参数相对的)c1连续性,其是不太限制的并且要求仅约束第二控制点的方向:
几何c1连续性:
依照其实施例,几何c1连续性可以通过在已经应用更新规则之后在所要求的方向上投射第二控制点而被施加。
预测性墨计算
现在转向图6,提供了用于示出依照本文所描述的技术的一方面的用于在显示设备上渲染预测性湿墨内容的方法600的流程图。在步骤610处,接收由书写对象跨触摸屏的表面做出的路径上的多个接触点。
在步骤620处,使用多个接触点作为输入来计算有效三次方贝塞尔近似。有效贝塞尔近似具有起始接触点和终止接触点。以上已经描述了贝塞尔近似的生成。
在步骤630处,确定书写对象在位置处接触触摸屏与将与该位置对应的点考虑在内的触摸屏显示器上的湿墨的显示之间的延时时段。在一个方面中,将延时时段确定为20ms或更大,诸如30ms或更大,或者诸如40ms或更大,或者诸如50ms或更大,或者诸如60ms或更大,或诸如80ms或更大,或者诸如100ms或更大。在一个方面中,通过调用计算延时的函数来确定延时。函数可以通过操作系统api或其它机构来调用。延时可以可替换地描述为绘制时间(即,使绘制点出现在屏幕上所花费的时间)。
在步骤640处,确定书写对象跨触摸屏的速率。速率可以使用作为湿墨的一部分的接触点之间的距离和那些点之间的距离来确定。可选地,还可以确定加速度。在一个方面中,在针对湿墨的两个最新接收的接触点之上计算速率。在另一方面中,考虑有效笔划中的所有接触点并且更新的点被给予更多的权重。加速度还可以在最新的三个或更多点之上被计算,或者使用附加点来计算,其中更新的点被给予更多的权重。
在步骤650处,确定书写对象在延时时段期间应当以该速率行进的预测性距离。以下更加详细地描述该计算。
在步骤660处,计算从终止点延伸预测性距离的新的三次方贝塞尔近似。
在步骤670处,基于有效贝塞尔近似的实际的湿墨连同基于新的三次方贝塞尔近似的预测性湿墨被渲染。
现在转向图7,提供了依照本文所描述的技术的一方面的一种用于向接触点分配压力数据的方法700。在步骤710处,在触摸屏设备处接收多个接触点。接触点在由书写对象跨与触摸屏设备集成的触摸屏的表面做出的路径上。
在步骤720处,生成多个经滤波的接触点。在一个方面中,经滤波的点通过在所述多个接触点上运行ean无限冲击响应滤波器而被生成。其它滤波方法是可能的。
在步骤730处,使用多个经滤波的接触点作为输入来计算有效三次方贝塞尔近似。有效三次方贝塞尔近似具有起始接触点和终止接触点。
在步骤740处,确定针对触摸屏设备的湿墨延时时段。在步骤750处,确定书写对象跨触摸屏的速率。
在步骤760处,确定书写对象在湿墨延时时段期间应当以该速率行进的预测性距离。在计算预测性距离时还可以考虑加速度。
在步骤770处,计算从终止点延伸预测性距离的新的三次方贝塞尔近似。可以如之前所描述的那样计算新的三次方贝塞尔近似。
在步骤780处,基于有效贝塞尔近似的湿墨连同基于新的三次方贝塞尔近似的预测性湿墨被渲染。预测性湿墨可以从湿墨的终止延伸。当渲染附加湿墨时,附加湿墨可以取代预测性湿墨。
现在,在下文中更加详细地描述方法600和700的各种方面。
为了生成预测性墨,计算当前贝塞尔部段要延伸的量。令
一旦确定了湿墨延时,可以计算书写工具的速率以确定预测性墨应当从实际的湿墨的端部延伸的距离。在一个方面中,结合书写工具的速率来考虑书写工具的加速度以计算预测性墨距离。然后通过重新参数化,通过对部段进行延伸来生成预测性墨。
要指出的是,可以利用滤波器预处理接触点数据以去除之前所描述的噪声和抖动。对时间戳进行滤波还避免重复时间戳的问题,其将导致以下计算中的除以零的除法。在至少有3个输入点正由当前贝塞尔部段拟合情况下,经延伸的贝塞尔部段的长度通过计算点n-1和n-2之间的速率
是书写对象的加速度。如果
在计算当前部段的弧长度之后,使用对应于弧长度加上
压力模拟
此外,本文所描述的技术的各方面可以生成针对墨渲染引擎的压力数据,其中没有原始压力数据离开。原始压力数据可以由压敏触摸表面、主动笔等生成。然而,用户在其上进行书写的许多设备不是压敏的。本文所描述的技术的各方面可以使用书写对象速率作为用于压力的代表物,以生成可以馈送至墨渲染引擎的压力数据。压力数据可以由墨渲染引擎用于设置墨宽度和/或其它墨参数。
在本文所描述的技术的一方面中,笔速率用作针对笔压力的代表物,其进而用于设置结果得到的墨的粗细度。如本文所使用的,墨的粗细度是指墨的截面宽度,其中近似垂直于墨笔划来取得截面。图8图示了在不同区段处具有不同粗细度的墨800。墨行进通过墨点820、墨点822、墨点824和链接点828。在一个方面中,不同墨点与不同压力值相关联。较高压力可以创建较粗的墨,诸如在第一截面802处。较低压力可以创建较细的线,诸如在第二截面804处。
一般而言,较高速率充当针对轻压力的代表物,其导致较粗的墨。并且较低速率充当针对高压力的代表物,其导致较细的墨。
现在转向图9,提供了依照本文所描述的技术的一方面的用于向接触点分配压力数据的方法900。
在步骤910处,从触摸屏接收不与压力信息相关联的第一接触点。第一接触点是由书写对象跨触摸屏的表面做出的路径上的多个接触点中的一个。
在步骤920处,确定所述多个接触点内的第二接触点之间的书写对象的速率。
在步骤920处,确定对应于该速率的压力。
在步骤930处,将压力与第一接触点相关联以生成被更新的第一接触点。
在步骤940处,经更新的第一接触点用于渲染数字墨。第一接触点可以被传送至墨渲染引擎,其渲染数字墨。
现在提供方法900的细节。本文所描述的技术的各方面可以在用于创建墨的一个或多个设备不能够有效地处理输入压力时使用速率作为针对压力的代表物。作为阈值步骤,本文所描述的技术的各方面可以确定设备没有提供与接触点相关联的压力数据或者没有通过不同的信道提供。一些设备不能够将压力数据与接触点相关联。在该情况下,缺少检测压力的能力可能是由硬件、硬件上的软件或组合导致。
已经存在通过使用在指示器信息中捕获到的笔尖压力来利用主动笔技术得到自然且漂亮的墨的努力。其可以与墨笔划的宽度相关联,因此当压力为高时其变得更粗,并且当压力为低时更细。书写器从纸张上的物理上墨产生什么内容也是自然的类比。然而,该模型不直接应用于触摸上墨或被动笔(触笔)上墨,因为不存在从硬件提供的压力信息。当不存在压力数据时,则墨笔划将总是具有相同的宽度,而不管用户的书写触笔如何,并且看起来相当枯燥。
为了将触摸墨质量改进到与可以通过主动笔产生的情况同等的水平,本文所描述的技术的各方面使用利用书写对象在上墨期间的移动速率来模拟笔尖压力的算法。基本假设是缓慢且持续的书写将创建较粗的笔划,并且快速且迅速的上墨很可能创建较细的笔划。本文所描述的技术的各方面捕获通过速率改变的用户意图并且在笔划外观中将其反映出来。
速率可以通过用两个接连的墨点之间的距离(以dip计)除以采样时间(例如在60hz数字化器上16ms)来计算。然后需要模拟函数以将速率映射到压力,因此其可以使用在与导出针对主动笔的笔划宽度的类似的计算中。一个方法是得到xy坐标中的速率矢量。然后,计算矢量的绝对值的对数并且将其映射到压力。
该压力p然后可以与(多个)接触点相关联,所述接触点与速率矢量相关联。要指出的是,给定相同速率,对数可以被较大的底数取代,诸如log5或log10,以得到用于不同的上墨体验的较粗笔划。
数字墨环境
图10示出了适于实践本文所描述的技术的方面的示例性数字墨环境1000。数字墨环境1000可以存在于平板电脑、pc、膝上型电脑、智能电话或其它计算设备(诸如随后描述的计算设备1100)上。数字墨环境1000是基于microsofttm操作环境并且使用来自于该操作环境的术语。本文所描述的技术的各方面不限于该环境。
图10示出可以在环境的不同方面处生成的延时。例如,硬件生态系统1006可以生成15ms以处理输入(例如,生成接触点数据)和24ms以渲染墨。低层级输入和图形层1005可以添加另外的1ms。输入和合成器层1004可以生成24ms。这些数字可以随设备的不同而变化,并且在此仅作为示例而提供。墨渲染过程的其它方面(未示出)可能生成延时。给定这些数字,总延时将为64ms。在本文所描述的技术的各方面中,预测器组件1020可以使用给定速率和贝塞尔近似来将预测性湿墨64ms绘制到未来。
数字墨环境1000中的其它层包括应用和壳层1001、ui框架层1002和直接墨(directink)层1003。应用和壳层1001包括壳子组件1010和直接墨应用1012。安装在任何给定设备上的直接墨应用可以变化。ui框架层1002包括ui框架子组件1014、墨应用程序接口(api)1016和directxapi1018。直接墨层1003包括直接操纵子组件1022和直接墨子组件1019。输入和合成器层包括输入子组件1024和合成器子组件1026。低层级输入和图形层包括低层级输入子组件1028和图形子组件1030。硬件生态系统1006可以包括硬件子组件1032,其包括涉及触摸功能的各种硬件驱动器。
计算环境
图11是图示了适于实现本文所描述的技术的实施例的示例性计算环境的框图。一般地参照附图并且最初特别地参照图11和配置成选择由计算设备1100渲染的数字墨的计算设备1100。计算设备1100只是合适的计算环境的一个示例,并且不意图暗示关于本文所描述的技术的实施例的使用或功能的范围的任何限制。也不应当将计算设备1100解释为具有涉及所图示的任何一个组件或组件的组合的任何依赖性或要求。
本文所描述的技术的实施例可以在计算机代码或机器可用指令(包括计算机可执行指令)的一般上下文中描述。这些指令可以包括由计算机或其它机器(例如个人数据助理或其它手持设备)运行的程序组件。一般地,程序组件,包括例程、程序、应用、对象、组件、数据结构等,是指执行特定任务或实施特定抽象数据类型的代码。本文所描述的技术的实施例可以在各种系统配置中实践,包括手持设备、平板计算机、游戏设备、消费电子产品、通用计算机、专用计算设备等。本文所描述的技术的实施例还可以在分布式计算环境或云环境中实践,其中任务由通过通信网络链接的远程处理设备执行。
如本领域技术人员将领会到的,计算设备1100可以包括硬件、固件、软件或硬件和软件的组合。硬件包括处理器和存储器,处理器被配置成执行存储在存储器中的指令。与指令相关联的逻辑可以整体或部分地直接以硬件逻辑实现。例如并且没有限制,说明性类型的硬件逻辑包括现场可编程门阵列(fpga)、专用集成电路(asic)、片上系统(soc)或复杂可编程逻辑器件(cpld)。硬件逻辑允许计算设备生成图形用户接口,图形用户接口从用户接收数字墨笔划。设备被配置成在图形用户接口处接收作为输入的数字墨笔划。在某些实施例中,计算设备在数字墨书写模式与数字墨选择模式之间切换。基于从用户接收到的动作,计算设备可以选择在支持墨的表面上被渲染的数字墨笔划。在实施例中,设备可以显示命令框以修改数字墨笔划。
继续参照图11,计算设备1100包括总线1110,总线1110直接或间接地耦合以下设备:存储器1112、一个或多个处理器1114、一个或多个呈现组件1116、输入/输出(i/o)端口1118、i/o组件1120和说明性电源1122。总线1110表示一个或多个总线可以是什么总线(诸如地址总线、数据总线或其组合)。尽管为了清楚起见图11的各种块以线条示出,但是实际上,对各种组件进行勾勒并非是如此清晰的,并且打个比喻,线条将更准确地为灰色且模糊的。例如,人们可以将呈现组件(诸如显示设备)视为i/o组件。而且,处理器具有存储器。本文的发明人认识到,这是技术的本质,并且重申,图11的图仅仅说明可以结合本文所描述的技术的一个或多个实施例使用的示例性计算设备。对诸如“工作站”、“服务器”、“膝上型电脑”、“手持设备”等之类的类别之间不做区分,因为全部被设想在图1的范围内并且是指“计算机”或“计算设备”。
计算设备1100典型地包括各种计算机可读介质。计算机可读介质可以是可由计算设备1100访问并且包括易失性和非易失性介质、可移除和不可移除介质二者的任何可用介质。计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以用于信息的存储的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,所述信息诸如计算机可读指令、数据结构、程序模块或其它数据。计算机存储介质包括但不限于随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪速存储器或其它存储器技术、cd-rom、数字多功能盘(dvd)或其它全息存储器、磁盒、磁带、磁盘存储装置或其它磁性存储设备,或可以用于对期望的数据进行编码并且可以由计算设备1100访问的任何其它介质。在实施例中,计算机存储介质可以从有形计算机存储介质选择,比如闪速存储器。这些存储器技术可以暂时、临时或永久地存储数据。计算机储存装置不包括并且排除通信介质。计算机存储介质是非暂时性的,并且排除传播的数据信号。
另一方面,通信介质典型地体现计算机可读指令、数据结构、程序模块或调制的数据信号(诸如载波或其它输运机制)中的其它数据,并且包括任何信息递送介质。术语“调制的数据信号”意指使其特性中的一个或多个特性以对信号中信息进行编码的这种方式被设置或改变的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接接线的连接,以及无线介质,诸如声学、rf、红外和其它无线介质。
存储器1112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移除的、不可移除的或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备1100包括一个或多个处理器,其从诸如存储器1112或i/o组件1120之类的各种实体读取数据。(多个)呈现组件1116向用户或其它设备呈现数据指示。示例性呈现组件1116包括显示设备、支持数字墨的表面、扬声器、打印组件、振动组件等。i/o端口1118允许计算设备1100逻辑耦合到包括i/o组件1120的其它设备,一些i/o组件可以内置。说明性i/o组件包括麦克风、操纵杆、游戏垫、卫星天线、扫描仪、打印机、无线设备、控制器(诸如书写仪器、触笔、键盘和鼠标)或自然用户接口(nui)等。i/o组件1120可以包括表面传感器1120a和墨数字化器1120b。表面传感器1120a从书写仪器接收交互。进而,所感测的交互信息可以被墨数字化器1120b数字化为一系列接触点。接触点可以用作用于以上描述的墨渲染引擎的输入。
nui处理由用户生成的姿势(例如手部、面部、身体等)、话音或其它生理输入。这些输入中的一些可以被解释为应当在支持数字墨的表面上被渲染的数字墨。nui的输入可以传输至适当的网络元件以供进一步处理。nui实施语音识别、触摸和触笔识别、面部识别、生物识别、屏幕上和屏幕附近二者的姿势识别、空中姿势以及与计算设备1100上的显示相关联的头部和眼镜追踪中的任何组合。计算设备1100可以配备有深度相机,诸如立体相机系统、红外相机系统、rgb相机系统、表面传感器和这些的组合,以用于姿势检测和识别。此外,计算设备1100可以配备有加速度计或陀螺仪,其使得能够检测运动或压力。将加速度计或陀螺仪的输出提供到存储器以供存储和处理。此外,将加速度计或陀螺仪的输出提供到计算设备1100的显示器以渲染沉浸式增强现实或虚拟现实。
无线电1124传输和接收无线电通信。计算设备1100可以是适配成通过各种无线网络接收通信和媒介的无线终端。计算设备1100可以经由无线协议进行通信以与其它设备(在图11中未示出)通信,所述无线协议诸如是码分多址(“cdma”)、全球移动通信系统(“gsm”)或时分多址(“tdma”),以及其它通信协议。无线电通信可以是短程连接、长程连接、或者短程和长程无线电信连接二者的组合。当我们提到“短”和“长”类型的连接时,我们不意指两个设备之间的空间关系。而是,我们一般将短程和长程称为不同类别或类型的连接(即初级连接和次级连接)。短程连接可以包括到提供对无线通信网络(诸如使用802.11协议的wlan连接)的访问的设备(例如移动热点)的wi-fi®连接。到另一计算设备的蓝牙连接是短程连接的第二示例。长程连接可以包括使用cdma、gprs、gsm、tdma和802.16协议中的一个或多个的连接。
已经关于特定实施例描述了本文所描述的技术的实施例,它们在所有方面中都意图是说明性而非限制性的。对于本文所描述的技术所述的普通技术人员而言,未脱离本文描述的技术的范围的替代性实施例将变得明显。
将理解到,某些特征和子组合是实用性的,并且可以在不参照其它特征和子组合的情况下被采用。这由权利要求的范围所设想到并且处于权利要求的范围内。