针对降低延迟的数字着墨的湿墨纹理引擎的制作方法

文档序号:9916615阅读:526来源:国知局
针对降低延迟的数字着墨的湿墨纹理引擎的制作方法
【专利说明】针对降低延迟的数字着墨的湿墨纹理引擎
【背景技术】
[0001] 计算机、平板计算机、智能电话W及其它计算设备采用自然用户界面(NUI),W允 许用户通过在屏幕或数字化器上直接书写而将信息输入为手写或绘画是越来越常见的。接 收并擅染来自触控笔的所写或所画的信息的过程被称为着墨(inking)。触控笔可W是数字 笔、鼠标、手指或可W用于在屏幕或数字化器上写或画的其它合适的设备。在着墨期间,触 控笔的每个移动序列都被记录为存储输入的坐标和与输入相关联的属性的笔划(stroke)。 例如,笔划可W包括从当笔尖被移动至足够接近W由数字化器检测到、鼠标按钮被按下、或 者手指触摸到屏幕时的移动,直到笔尖移动远离数字化器并且不再能被检测到、鼠标按钮 被释放、或手指不再触摸屏幕时为止。一个或多个笔划组成结合在计算设备上运行的应用 而使用的墨水(即,数字墨水)。
[0002] 在屏幕上,墨水可W表现为看起来自然的手写或手绘图。在手写的情况下,可W通 过手写识别将墨水转换为标准文本。经转换的文本可W与对应的看起来自然的手写相关联 作为在与着墨信息一起工作(例如,捜索)时有用的替代数据格式,或者可W替换屏幕上W 及应用中的看起来自然的笔迹(例如,创建键入文档)。
[0003] 有时,在屏幕上绘制的墨水严重滞后于触控笔。运种延迟是应用试图同时进行W 下=个动作的结果:处理墨水输入、向屏幕擅染墨水、W及将墨水保存至应用画布(即,应用 向用户显示的内容)。因为用户界面管线会迅速变得阻塞,所W试图同时完成所有运些任务 会使得每个任务变慢。
[0004] 延迟对于单线程应用是尤其有问题的,但是即使对于多线程应用,延迟也仍然是 个问题。在多线程应用中,可W通过创建额外的线程并且在单独的线程中处理每个动作来 解决延迟;然而,该解决方案对于单线程应用是不可用的,并且可能不是对所有的多线程应 用都是可行的或合适的。
[0005] 当将墨水保存至应用画布时,作为硬件定时限制的结果可能发生延迟。例如,对应 用画布的更新可W与屏幕刷新频率相关,而输入设备(例如,触控笔)W系统总线速度运行。 在典型的示例中,屏幕W60化的周期刷新,而系统总线W133HZ运行。受限于每屏幕刷新 (即,帖)对应用画布进行一次更新,触控笔生成墨水比应用所能显示的快超过两倍。当用户 继续写或画时,墨水延迟越来越远地落后于触控笔,并且W突然爆发的方式向用户显示而 不是随着触控笔的移动平滑地出现。
[0006] 已经发现了硬件和软件的不同组合在六或屯帖中没有墨水出现的情况下会产生 显著的延迟,运转化成墨水落后于触控笔一到两英寸。在最低限度上,延迟降低了着墨被设 计W提供的笔和纸的体验。更加需要注意的是,当用户不得不停止并等待墨水赶上触控笔 从而用户可W看到写或画了的内容或者对已经写或画了的内容作出改变时,延迟造成了效 率和可用性问题。本发明已经做出关于运些和其它考虑。虽然已经讨论了相对具体的问题, 但应当理解的是在本文中所公开的实施例不应限于解决在【背景技术】中所标识出的具体的 问题。

【发明内容】

[0007] 提供了该
【发明内容】
W用简化的形式介绍了在下文的【具体实施方式】中所进一步描 述的概念的选择。该
【发明内容】
不旨在标识所要求保护的主题的关键特征或本质特征,也不 旨在用于帮助确定所要求保护的主题的范围。
[0008] 在本公开中所描述的实施例提供了一种湿墨纹理引擎,该湿墨纹理引擎可W在能 够接收墨水输入的任何设备、服务或通用端点上的任何应用的上下文中运行。当用户用墨 水开始写或画时,墨水输入开始。当用户主动地产生墨水笔划时,连续并且频繁地进行原始 墨水擅染。原始墨水是可见的,但是尚未被转移至墨水输入的目的应用中。擅染原始墨水的 过程被称为湿着墨。湿着墨降低了用户移动触控笔的时间与墨水出现在屏幕上的时间之间 的用户可感知的延迟。当墨水笔划的主动产生存在中断时,墨水输入停止。当运种情况发生 时,将原始墨水笔划传递至墨水分析组件W产生最终墨水。用最终墨水替代原始墨水的过 程被称为干着墨。
[0009] 在湿着墨期间,原始墨水被缓存在湿墨纹理中。湿墨纹理由湿墨和半干墨组成。应 用画布存储虚拟纹理,该纹理保存应用所捕获的并且在应用中、去往应用W及来自应用的 可用的墨水(即,干墨)。湿墨被存储在输入层中,半干墨被存储在转移层中。每层都是用于 保存在湿着墨过程中的不同阶段的原始墨水的虚拟帖缓冲器。在输入层中擅染原始墨水输 入。在输入层中所存储的图像是对所接收到的最新墨水数据(包括部分笔划)的未经处理的 表示。频繁地呈现输入层W进行显示使得在用户移动触控笔的时间与墨水出现在屏幕上的 时间之间的用户可感知的延迟最小化。
[0010] 在被擅染之后,湿墨被移动至转移层。转移层充当准备好被提交至应用或由应用 消耗的湿墨(即,半干墨)的中间帖缓冲器。转移设及从输入层中移除所擅染的湿墨中的至 少一些,并且在转移层中将其重新擅染为半干墨。在转移层中所存储的图像是对已经被擅 染并准备好被移动(即,被提交)至应用画布的湿墨的未经处理的表示。
[0011] 在干着墨期间,将湿墨纹理中的墨水的至少一部分移动至应用画布的虚拟纹理。 当应用准备好接受任何可用的半干墨时,应用请求转移层的内容。在应用画布的虚拟纹理 中重新擅染半干墨,并且清理转移层。该流程继续直到将所有的墨水从湿墨纹理转移到虚 拟纹理为止。
[0012] 在各种实施例中,湿墨纹理引擎提供至少一个专用工作线程来接收和擅染墨水输 入。无论数量,运些工作线程独立于随着活动增加而变得迟纯的用户界面化I)线程。墨水输 入发生在专用墨水输入线程上,并被编组至专用墨水擅染线程。输入层中的原始(即,湿)墨 水的擅染发生在墨水擅染线程上,而此时不对湿墨进行任何进一步的处理。接收输入和擅 染湿墨W高优先级发生。一旦被擅染,湿墨就被呈现至系统合成器并且在下一屏幕更新向 用户显示。换句话说,湿墨W在接收到输入的时间与显示输入的时间之间的最小的用户可 感知的延迟而出现在屏幕上。
[0013] 将所擅染的湿墨笔划转移到转移层发生在墨水擅染线程上。转移可W W比接收输 入和擅染湿墨低的优先级发生,W允许尽可能快速地显示湿墨。在转移之后,同时或基本上 同时将湿墨和半干墨呈现至系统合成器,并且在下一屏幕更新向用户显示。将半干墨作为 干墨转移至应用设及锁定转移层、在应用画布上重新擅染半干墨、W及清理转移层。转移层 一经锁定,就将半干墨编组至应用线程上,其中,将半干墨在应用画布上擅染为干墨。在已 经擅染了干墨之后,由墨水擅染线程清理并解锁转移层。
【附图说明】
[0014] 通过参考W下附图,本公开的其它特征、方案和优点可W变得更好理解,其中为了 更清楚地示出细节而未按比例绘制元件,并且其中在多个视图中类似的附图标记表示类似 的元件。
[0015] 图1示出了针对利用湿墨纹理引擎的应用从输入到屏幕的墨水的一般流程。
[0016] 图2示出了在湿着墨期间产生的湿墨纹理与在干着墨期间产生的虚拟纹理之间的 墨水流程的一个实施例。
[0017] 图3示出了在基本计算系统环境中的湿墨纹理引擎的一个实施例。
[0018] 图4示出了与利用湿墨纹理引擎的一个实施例的单线程应用相关联的线程之间的 关系。
[0019] 图5示出了由湿墨纹理引擎所执行的湿着墨方法的一个实施例。
[0020] 图6A示出了在利用湿墨纹理引擎的一个实施例的应用中使用手指在触摸屏上输 入墨水而没有用户可感知的延迟。
[0021] 图6B示出了在利用湿墨纹理引擎的一个实施例的应用中使用数字笔在触摸屏上 输入墨水而没有用户可感知的延迟。
[0022] 图7是示出了可W利用其来实践本发明的实施例的计算设备的物理组件的一个实 施例的框图。
[0023] 图8A和8B是利用其可W实践本发明的实施例的移动计算设备的简化的框图。
【具体实施方式】
[0024] 在本文中描述并且在附图中示出了湿墨纹理引擎的各种实施例。湿墨纹理引擎可 W在能够接收墨水输入的任何设备、服务或通用端点上的任何应用的上下文中运行。例如, 湿墨纹理引擎可W在接收写或画形式的输入的笔记应用的上下文中被使用。湿墨纹理引擎 降低、最小化或消除接收输入与显示该输入之间的延迟W改善用户的着墨体验。
[0025] 图1示出了针对利用湿墨纹理引擎的应用的从输入到屏幕的墨水的一般流程。当 用户开始利用墨水写或画时,墨水输入开始。象征墨水输入开始的事件的示例包括但不限 于:数字笔移动进入数字化器的范围内、按压鼠标按钮、使手指与触摸屏接触、W及激活在 其中由目标追踪电子传感器检测到的手部移动将被解释为写或画的墨水输入模式。当用户 主动地产生墨水笔划时,连续并且尽可能频繁地进行原始墨水擅染。原始墨水是可见的,但 是尚未被转移至墨水输入的目的应用中。擅染原始墨水的过程被称为湿着墨。湿着墨降低 了用户移动触控笔的时间与墨水出现在屏幕上的时
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1