CN105683994A - 针对降低延迟的数字着墨的湿墨纹理引擎 - Google Patents
针对降低延迟的数字着墨的湿墨纹理引擎 Download PDFInfo
- Publication number
- CN105683994A CN105683994A CN201480059259.1A CN201480059259A CN105683994A CN 105683994 A CN105683994 A CN 105683994A CN 201480059259 A CN201480059259 A CN 201480059259A CN 105683994 A CN105683994 A CN 105683994A
- Authority
- CN
- China
- Prior art keywords
- ink
- input
- wet
- application
- played
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/395—Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
- G09G5/397—Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
- G06F3/03545—Pens or stylus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0412—Digitisers structurally integrated in a display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/171—Editing, e.g. inserting or deleting by use of digital ink
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/142—Image acquisition using hand-held instruments; Constructional details of the instruments
- G06V30/1423—Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/395—Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/18—Use of a frame buffer in a display terminal, inclusive of the display panel
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
公开了一种湿墨纹理引擎和相关联的方法。湿墨纹理引擎可以在能够接收墨水输入的任何设备、服务或通用端点上的任何应用的上下文中运行。例如,湿墨纹理引擎可以在以写或画的形式接收输入的笔记应用的上下文中使用。湿墨纹理引擎可以减少、最小化或消除在接收输入与显示该输入之间的延迟,从而改善用户的着墨体验。
Description
背景技术
计算机、平板计算机、智能电话以及其它计算设备采用自然用户界面(NUI),以允许用户通过在屏幕或数字化器上直接书写而将信息输入为手写或绘画是越来越常见的。接收并渲染来自触控笔的所写或所画的信息的过程被称为着墨(inking)。触控笔可以是数字笔、鼠标、手指或可以用于在屏幕或数字化器上写或画的其它合适的设备。在着墨期间,触控笔的每个移动序列都被记录为存储输入的坐标和与输入相关联的属性的笔划(stroke)。例如,笔划可以包括从当笔尖被移动至足够接近以由数字化器检测到、鼠标按钮被按下、或者手指触摸到屏幕时的移动,直到笔尖移动远离数字化器并且不再能被检测到、鼠标按钮被释放、或手指不再触摸屏幕时为止。一个或多个笔划组成结合在计算设备上运行的应用而使用的墨水(即,数字墨水)。
在屏幕上,墨水可以表现为看起来自然的手写或手绘图。在手写的情况下,可以通过手写识别将墨水转换为标准文本。经转换的文本可以与对应的看起来自然的手写相关联作为在与着墨信息一起工作(例如,搜索)时有用的替代数据格式,或者可以替换屏幕上以及应用中的看起来自然的笔迹(例如,创建键入文档)。
有时,在屏幕上绘制的墨水严重滞后于触控笔。这种延迟是应用试图同时进行以下三个动作的结果:处理墨水输入、向屏幕渲染墨水、以及将墨水保存至应用画布(即,应用向用户显示的内容)。因为用户界面管线会迅速变得阻塞,所以试图同时完成所有这些任务会使得每个任务变慢。
延迟对于单线程应用是尤其有问题的,但是即使对于多线程应用,延迟也仍然是个问题。在多线程应用中,可以通过创建额外的线程并且在单独的线程中处理每个动作来解决延迟;然而,该解决方案对于单线程应用是不可用的,并且可能不是对所有的多线程应用都是可行的或合适的。
当将墨水保存至应用画布时,作为硬件定时限制的结果可能发生延迟。例如,对应用画布的更新可以与屏幕刷新频率相关,而输入设备(例如,触控笔)以***总线速度运行。在典型的示例中,屏幕以60Hz的周期刷新,而***总线以133Hz运行。受限于每屏幕刷新(即,帧)对应用画布进行一次更新,触控笔生成墨水比应用所能显示的快超过两倍。当用户继续写或画时,墨水延迟越来越远地落后于触控笔,并且以突然爆发的方式向用户显示而不是随着触控笔的移动平滑地出现。
已经发现了硬件和软件的不同组合在六或七帧中没有墨水出现的情况下会产生显著的延迟,这转化成墨水落后于触控笔一到两英寸。在最低限度上,延迟降低了着墨被设计以提供的笔和纸的体验。更加需要注意的是,当用户不得不停止并等待墨水赶上触控笔从而用户可以看到写或画了的内容或者对已经写或画了的内容作出改变时,延迟造成了效率和可用性问题。本发明已经做出关于这些和其它考虑。虽然已经讨论了相对具体的问题,但应当理解的是在本文中所公开的实施例不应限于解决在背景技术中所标识出的具体的问题。
发明内容
提供了该发明内容以用简化的形式介绍了在下文的具体实施方式中所进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用于帮助确定所要求保护的主题的范围。
在本公开中所描述的实施例提供了一种湿墨纹理引擎,该湿墨纹理引擎可以在能够接收墨水输入的任何设备、服务或通用端点上的任何应用的上下文中运行。当用户用墨水开始写或画时,墨水输入开始。当用户主动地产生墨水笔划时,连续并且频繁地进行原始墨水渲染。原始墨水是可见的,但是尚未被转移至墨水输入的目的应用中。渲染原始墨水的过程被称为湿着墨。湿着墨降低了用户移动触控笔的时间与墨水出现在屏幕上的时间之间的用户可感知的延迟。当墨水笔划的主动产生存在中断时,墨水输入停止。当这种情况发生时,将原始墨水笔划传递至墨水分析组件以产生最终墨水。用最终墨水替代原始墨水的过程被称为干着墨。
在湿着墨期间,原始墨水被缓存在湿墨纹理中。湿墨纹理由湿墨和半干墨组成。应用画布存储虚拟纹理,该纹理保存应用所捕获的并且在应用中、去往应用以及来自应用的可用的墨水(即,干墨)。湿墨被存储在输入层中,半干墨被存储在转移层中。每层都是用于保存在湿着墨过程中的不同阶段的原始墨水的虚拟帧缓冲器。在输入层中渲染原始墨水输入。在输入层中所存储的图像是对所接收到的最新墨水数据(包括部分笔划)的未经处理的表示。频繁地呈现输入层以进行显示使得在用户移动触控笔的时间与墨水出现在屏幕上的时间之间的用户可感知的延迟最小化。
在被渲染之后,湿墨被移动至转移层。转移层充当准备好被提交至应用或由应用消耗的湿墨(即,半干墨)的中间帧缓冲器。转移涉及从输入层中移除所渲染的湿墨中的至少一些,并且在转移层中将其重新渲染为半干墨。在转移层中所存储的图像是对已经被渲染并准备好被移动(即,被提交)至应用画布的湿墨的未经处理的表示。
在干着墨期间,将湿墨纹理中的墨水的至少一部分移动至应用画布的虚拟纹理。当应用准备好接受任何可用的半干墨时,应用请求转移层的内容。在应用画布的虚拟纹理中重新渲染半干墨,并且清理转移层。该流程继续直到将所有的墨水从湿墨纹理转移到虚拟纹理为止。
在各种实施例中,湿墨纹理引擎提供至少一个专用工作线程来接收和渲染墨水输入。无论数量,这些工作线程独立于随着活动增加而变得迟钝的用户界面(UI)线程。墨水输入发生在专用墨水输入线程上,并被编组至专用墨水渲染线程。输入层中的原始(即,湿)墨水的渲染发生在墨水渲染线程上,而此时不对湿墨进行任何进一步的处理。接收输入和渲染湿墨以高优先级发生。一旦被渲染,湿墨就被呈现至***合成器并且在下一屏幕更新向用户显示。换句话说,湿墨以在接收到输入的时间与显示输入的时间之间的最小的用户可感知的延迟而出现在屏幕上。
将所渲染的湿墨笔划转移到转移层发生在墨水渲染线程上。转移可以以比接收输入和渲染湿墨低的优先级发生,以允许尽可能快速地显示湿墨。在转移之后,同时或基本上同时将湿墨和半干墨呈现至***合成器,并且在下一屏幕更新向用户显示。将半干墨作为干墨转移至应用涉及锁定转移层、在应用画布上重新渲染半干墨、以及清理转移层。转移层一经锁定,就将半干墨编组至应用线程上,其中,将半干墨在应用画布上渲染为干墨。在已经渲染了干墨之后,由墨水渲染线程清理并解锁转移层。
附图说明
通过参考以下附图,本公开的其它特征、方案和优点可以变得更好理解,其中为了更清楚地示出细节而未按比例绘制元件,并且其中在多个视图中类似的附图标记表示类似的元件。
图1示出了针对利用湿墨纹理引擎的应用从输入到屏幕的墨水的一般流程。
图2示出了在湿着墨期间产生的湿墨纹理与在干着墨期间产生的虚拟纹理之间的墨水流程的一个实施例。
图3示出了在基本计算***环境中的湿墨纹理引擎的一个实施例。
图4示出了与利用湿墨纹理引擎的一个实施例的单线程应用相关联的线程之间的关系。
图5示出了由湿墨纹理引擎所执行的湿着墨方法的一个实施例。
图6A示出了在利用湿墨纹理引擎的一个实施例的应用中使用手指在触摸屏上输入墨水而没有用户可感知的延迟。
图6B示出了在利用湿墨纹理引擎的一个实施例的应用中使用数字笔在触摸屏上输入墨水而没有用户可感知的延迟。
图7是示出了可以利用其来实践本发明的实施例的计算设备的物理组件的一个实施例的框图。
图8A和8B是利用其可以实践本发明的实施例的移动计算设备的简化的框图。
具体实施方式
在本文中描述并且在附图中示出了湿墨纹理引擎的各种实施例。湿墨纹理引擎可以在能够接收墨水输入的任何设备、服务或通用端点上的任何应用的上下文中运行。例如,湿墨纹理引擎可以在接收写或画形式的输入的笔记应用的上下文中被使用。湿墨纹理引擎降低、最小化或消除接收输入与显示该输入之间的延迟以改善用户的着墨体验。
图1示出了针对利用湿墨纹理引擎的应用的从输入到屏幕的墨水的一般流程。当用户开始利用墨水写或画时,墨水输入开始。象征墨水输入开始的事件的示例包括但不限于:数字笔移动进入数字化器的范围内、按压鼠标按钮、使手指与触摸屏接触、以及激活在其中由目标追踪电子传感器检测到的手部移动将被解释为写或画的墨水输入模式。当用户主动地产生墨水笔划时,连续并且尽可能频繁地进行原始墨水渲染。原始墨水是可见的,但是尚未被转移至墨水输入的目的应用中。渲染原始墨水的过程被称为湿着墨。湿着墨降低了用户移动触控笔的时间与墨水出现在屏幕上的时间之间的用户可感知的延迟。
当墨水笔划的主动产生存在中断时,墨水输入停止。象征墨水输入结束的事件的示例包括但不限于:数字笔移动出数字化器的范围、释放鼠标按钮、停止手指与触摸屏接触、以及停用墨水输入模式。当这种情况发生时,将原始墨水笔划传递至墨水分析组件以产生最终墨水。用最终墨水替代原始墨水的过程被称为干着墨。在最低限度上,墨水分析组件将墨水提交至应用;然而,墨水分析组件可以执行对墨水的额外可选的处理。干着墨触发原始墨水的重新渲染,这是因为干着墨涉及当被渲染为最终墨水时删除原始墨水笔划。
图2示出了在湿着墨期间所产生的湿墨纹理与在干着墨期间所产生的虚拟纹理之间的墨水流程的一个实施例。在湿着墨期间,原始墨水被缓存在湿墨纹理200中。湿墨纹理200由湿墨和半干墨组成。湿墨是频繁更新并且向用户显示的纹理200;然而,湿墨纹理200中的湿墨直到干着墨发生才能由应用所使用。应用画布202存储虚拟纹理204,该虚拟纹理204保存由应用所捕获并且在应用中、去往应用以及来自应用的可用的墨水(即,干墨)。
在单独的层中存储湿墨和半干墨。湿墨被存储在输入(即,湿墨)层206中,半干墨被存储在转移(即,半干墨)层208。每层都是用于保存在湿着墨过程中的不同阶段的原始墨水虚拟帧缓冲器。层和应用画布202都可以被实现为能够通过应用程序接口(API)(例如,)访问的处理与显示图形相关的任务的对象(例如,位图、栅格化图像、或交换链)、可视呈现标记语言(例如,可扩展应用标记语言(XAML))中的控制(例如,交换链层)、或者使用可视呈现标记语言来管理图形显示API和图像源之间的交互的经管理的渲染表面。在各种实施例中,应用画布202是经管理的渲染表面,例如,虚拟表面图像源(VSIS)或表面图像源(SIS),并且输入层206和转移(即,半干墨)层是交换链层。
在输入(即,湿墨)层中渲染原始墨水输入。输入层206中所存储的图像是对接所收到的最新的墨水数据(包括局部笔划)的未经处理的(即,原始的)表示。频繁地呈现输入层206以进行显示使得用户移动触控笔的时间与墨水出现在屏幕上的时间之间的用户可感知的延迟最小化。
在被渲染之后,湿墨被移动至转移(即,半干墨)层。转移层208充当准备好被提交至应用或由应用消耗的湿墨(即,半干墨)的中间帧缓冲器。转移涉及从输入层206中移除所渲染的湿墨中的至少一些,并且在转移层208中将其重新渲染为半干墨。在转移层208中所存储的图像是对已经被渲染并准备好被移动(即,被提交)至应用画布的湿墨的未经处理的表示。
在干着墨期间,将湿墨纹理中的墨水的至少一部分移动至应用画布的虚拟纹理204。当应用准备好接受任何可用的半干墨时,应用请求转移层的内容。在应用画布202的虚拟纹理204中重新渲染半干墨,并且清理转移层208。该流程继续直到将所有的墨水从湿墨纹理200转移到虚拟纹理为止。
图3示出了基本计算***环境中的湿墨纹理引擎的一个实施例。湿墨纹理引擎300在计算设备302上运行。计算设备通常包括硬件组件,所述硬件组件包括处理器304、存储器306、输入设备308、以及输出设备310。处理器304执行软件组件,所述软件组件包括但不限于:湿墨纹理引擎300、应用312、以及***合成器314,并且处理器304执行其它逻辑功能和控制功能。存储器306存储软件组件和相关联的数据,该数据包括但不限于湿墨纹理200、虚拟纹理204、输入层206、以及转移层208。可以与湿墨纹理引擎300一起使用的合适的计算设备的示例包括但不限于:台式计算机、膝上型计算机、平板计算机、平面计算机以及智能电话。
输入设备308是基于坐标的输入设备。在输入设备的各种实施例中,触控笔是用于对表面进行着墨(即,在表面上写或画)的。在一些实施例中,触控笔是随其移动而产生基于坐标的输入的主动组件(例如,数字笔或鼠标)。主动触控笔可以与被动表面(例如,纸张、鼠标垫、或桌面)一起被使用。在其它实施例中,表面是基于用户的手指、数字笔或其它触控笔(主动的或被动的)的位置和移动而产生基于坐标的输入的主动组件(例如,数字化器或触摸屏)。在一些实施例中,输入设备308是基于用户的身体(例如,手指、手部或手臂)或者关于在大型表面(例如,墙壁、桌子或数字白板)上所显示或投影的屏幕图像的其它对象的移动而产生基于坐标的输入的电子传感器。在各种实施例中,电子传感器基于适用于追踪对象的红外、超声、热、激光或其它基于可视或基于声音的传感技术而进行操作。合适的电子传感器的一个示例是传感器。应当理解的是,输入设备308还可以用于除了着墨之外的输入。
输出设备310是用于向用户显现包括应用用户界面和墨水的信息的可视显示设备。合适的输出设备的示例包括但不限于:显示屏、监视器、投影仪、以及数字白板。如前所述,将层与应用画布202进行组合以产生可以在输出设备310上显示的最终图像。例如,湿墨纹理引擎300可以向在计算设备上运行的***合成器314呈现层中的每层,而应用可以向***合成器314呈现应用画布202。***合成器314从在计算设备上运行的应用中接收图像源,并合成在屏幕上显示的最终图像。
湿墨纹理引擎300结合能够通过基于坐标的输入设备接收墨水的应用而操作。例如,湿墨纹理引擎300可以结合在计算设备上运行的应用312(例如,笔记应用、绘画应用、或操作***)而操作。在各种实施例中,湿墨纹理引擎300是应用所集成的组件。在其它实施例中,湿墨纹理引擎300和应用是分离但交互的组件。例如,湿墨纹理引擎300可以是能够由应用调用或者以其它方式与应用一起工作以处理墨水输入的服务、插件、接口、小程序或其它软件组件。
图4示出了与利用湿墨纹理引擎的一个实施例的单线程应用相关联的线程之间的关系。湿墨纹理引擎300可以与单线程和多线程程序两者一起使用。然而,利用单线程应用和具有用于接收、渲染和处理输入的单个线程的多线程应用可以体验更大的益处。在各种实施例中,湿墨纹理引擎300提供两个专用工作线程以接收和渲染墨水输入。在其它实施例中,湿墨纹理引擎300提供单个专用工作线程以接收和渲染墨水输入。无论数量,这些工作线程独立于随着活动增加而变得迟钝的单个应用或用户界面(UI)线程。
墨水输入发生在专用墨水输入线程400上,并被编组至专用墨水渲染线程402。输入层206中的原始(即,湿)墨水的渲染发生在墨水渲染线程402上,而此时不对湿墨进行任何进一步的处理。接收输入和渲染湿墨以高优先级发生。一旦被渲染,湿墨就被呈现至***合成器并且在下一屏幕更新向用户显示。换句话说,湿墨以在接收到输入的时间与显示输入的时间之间的最小的用户可感知的延迟而出现在屏幕上。
将所渲染的湿墨笔划转移到转移层208发生在墨水渲染线程402上。转移可以以比接收输入和渲染湿墨低的优先级发生,以允许尽可能快速地显示湿墨。在一些实施例中,半干墨转换基本上与对湿墨进行渲染同时发生。在其它实施例中,半干墨转换在墨水输入中断时发生。在这样的情况下,转移层208将仅包含完整的笔划,这将有助于当将半干墨笔划提交至应用时促进可选处理。
在转移之后,同时或基本上同时将湿墨和半干墨呈现至***合成器314,并且在下一屏幕更新向用户显示。一旦半干墨被渲染,进行等待以呈现输入层206与转移层208,而不是在已经移除湿墨之后立即呈现输入层206,致力于维持墨水显示的可视保真。例如,将输入层和转移层的呈现同步使可以由于在湿墨已经被移除了之后并且在其被重新渲染为半干墨之前显示输入层和转移层而产生的用户所感受到的闪烁最小化。
将半干墨作为干(即,所提交的)墨转移至应用涉及锁定转移层208、在应用画布202上重新渲染半干墨、以及清理转移层208。转移层208一旦被锁定,就将半干墨编组至应用线程404上的应用,应用线程404将所述半干墨作为干墨而在应用画布上渲染。在各种实施例中,应用线程404是UI线程。在其它实施例中,应用线程404是用于将墨水渲染至应用画布202的专用工作线程。在干墨已经被渲染了之后,由墨水渲染线程402清理并解锁转移层208。在各种实施例中,应用线程404发送针对墨水渲染线程402的请求,以在渲染了干墨之后删除转移层208的内容。
如在上文中所讨论的,应用可以周期性地轮询湿墨纹理引擎300以确定半干墨是否可用。在一些实施例中,湿墨纹理引擎300可以在墨水输入中断时和/或半干墨转换结束时向应用提供通知。向应用提交半干墨可以以比接收和渲染湿墨和/或将湿墨转换为半干墨更低的优先级发生。在一些实施例中,提交半干墨可以仅发生在有足够的可用资源来使引起用户可感知到的墨水延迟的可能性最小化时。例如,提交半干墨可以仅发生在处理器利用低于阈值水平时。
在各种实施例中,应用线程404在渲染干墨之前或之后执行可选处理。在一些实施例中,在将半干墨笔划渲染至应用画布之前对其进行平滑。在一些实施例中,半干墨笔划受到字符识别处理以识别对应于书写的墨水。可以将字符识别的结果用于增强手写文本的外观(例如,改善易读性或美学质量),或者用于创建包含对应于手写文本的标准字符(例如,ASCII、Unicode或其它计算机可读文本)的对象以便通过应用或访问应用数据的其它软件来使用(例如,索引或全文搜索)由墨水所呈现的信息。这样的额外处理通常但非必须是被单独并且独立于湿墨纹理引擎而提供的。
图5示出了由湿墨纹理引擎促成的湿着墨方法的一个实施例。湿着墨方法500开始于用户写或画墨水输入。当用户写或画时,湿墨输入操作510捕获墨水。湿墨渲染操作520在输入层206中渲染墨水,并且随着***继续接收墨水输入而呈现输入层206以进行显示。在渲染了湿墨之后,半干墨转移操作530将每个笔划移动至转移层。将笔划从输入层206移动至转移层208涉及多个操作。首先,锁定检查操作532确定转移层208是否被锁定。如果被锁定,则笔划不能被移动至转移层208。如果转移层208未被锁定,则湿笔划移除操作534删除正从输入层移动的笔划。最终,半干渲染操作536对在转移层208中正在被移动的笔划进行渲染。笔划一经移动,经同步的呈现操作538就呈现输入层和转移层两者以进行显示。通过同时呈现输入层206和转移层208两者以进行显示,笔划的转移对用户而言事实上是注意不到的。
在半干墨提交操作540中,在转移层208中所渲染的半干墨可用于被提交至应用画布202。在各种实施例中,半干墨提交操作540开始于半干墨可用性操作542,该半干墨可用性操作542响应来自应用线程的请求而确认半干墨的可用性。如果半干墨可用,则转移层锁定操作544锁定转移层208。锁定转移层208防止新渲染的湿墨被转换为半干墨。当转移层208被锁定时,湿墨在输入层206中继续累积,并向用户显示。转移层208一经锁定,干墨渲染操作546就在应用画布上的转移层中重新渲染半干墨。干墨一经渲染,转移层清理操作548就删除转移层208中的半干墨。在清理了转移层208之后,转移层解锁操作550解锁转移层208。
锁定转移层208将被提交至应用的半干墨保持与在提交操作期间所接收到的湿墨分离。通过锁定转移层208,仅仅清理了实际上被提交至应用的半干墨。在不锁定的情况下,在应用线程404收集了可用的半干墨之后并且在转移层208之前被转换为半干墨的湿墨将被清理和丢失。
本申请的主题在多个实施例中可以被实践为***、设备和其它制品或方法。实施例可以被实现为硬件、软件、计算机可读介质或者其组合。在本文中所描述的实施例和功能可以经由众多计算***而操作,所述计算***包括但不限于:台式计算机***、有线和无线计算***、移动计算***(例如,移动电话、上网本、平板或板型计算机、笔记本计算机、以及膝上型计算机)、手持设备、多处理器***、基于微处理器的或可编程消费者电子产品、迷你计算机、以及大型计算机。图6A和6B分别示出了在利用湿墨纹理引擎300的一个实施例的应用中使用手指与基于触摸屏的计算设备以及使用数字笔与具有数字化器的计算设备输入墨水,而没有用户可感知的延迟。
可以经由机载计算设备显示器或者经由与一个或多个计算设备相关联的远程显示器单元来显示各种类型的用户界面和信息。例如,可以在其上投影了各种类型的用户界面和信息的墙表面上显示各种类型的用户界面和信息并且与各种类型的用户界面和信息进行交互。与可以实践本发明的众多计算***的交互包括:键击输入、触摸屏输入、语音或其它音频输入、手势输入(其中,相关联的计算设备装备有用于捕获和解释用于控制计算设备的功能的用户手势的检测(例如,相机)功能)等。
图7和图8以及相关联的描述提供了对可以实践本发明实施例的多种操作环境的讨论。但是,所示出和所讨论的设备和***是出于示例和说明的目的,而不限于可以用于实践在上文中所描述的本发明的实施例的大量的计算设备配置。
图7是示出可以实践本发明的实施例的计算设备700的物理组件(即,硬件)的框图。在下文中所描述的计算设备组件可以适用于实施以下的计算设备,包括但不限于:个人计算机、平板计算机、平面计算机以及智能电话、或者在本文中所讨论的任何其它计算设备。在基本配置中,计算设备700可以包括至少一个处理单元702和***存储器704。取决于计算设备的配置和类型,***存储器704可以包括但不限于:易失性存储设备(例如,随机存取存储器)、非易失性存储设备(例如,只读存储器)、闪速存储器或者这样的存储器的任何组合。***存储器704可以包括操作***705以及适用于运行软件应用720(例如,湿墨纹理引擎300)的一个或多个程序模块706。例如,操作***705可以适用于控制计算设备700的操作。此外,本发明的实施例可以结合图形库、其它操作***、或者任何其它应用程序而被实践,并且不限于任何特定的应用或***。该基本配置由虚线708内的那些组件示出。计算设备700可以具有额外的特征或功能。例如,计算设备700还可以包括额外的数据存储设备(可移动的和/或不可移动的),例如,磁盘、光盘、或磁带。这样额外的存储设备由可移动存储设备709和不可移动存储设备710示出。
如上所述,多个程序模块和数据文件可以被存储在***存储器704中。当在处理单元702上执行时,软件应用720可以执行包括但不限于湿着墨方法500的一个或多个阶段的过程。可以根据本发明的实施例使用的其它程序模块可以包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘画或计算机辅助应用程序等。
此外,可以在以下元件中实践本发明的实施例:包括离散电子元件的电子电路、包含逻辑门的封装或集成的电子芯片、利用微处理器的电路、或者在包含电子元件或微处理器的单个芯片上。例如,可以经由片上***(SOC)实践本发明的实施例,在该片上***中可以将所示出的组件中的每个或多个集成到单个集成电路上。这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、***虚拟化单元以及其全部都被集成(烧制)到芯片基板上作为单个集成电路的各种应用功能。当经由SOC操作时,在本文中关于软件应用720所描述的功能可以经由与在单个集成电路(芯片)上的计算设备700的其它组件集成的专用逻辑来操作。还可以使用能够执行例如AND、OR和NOT的逻辑操作的其它技术来实践本发明的实施例,所述技术包括但不限于机械、光、流体和量子技术。此外,本发明的实施例可以在通用计算机内或者任何其它电路或***中被实践。
计算设备700还可以具有一个或多个输入设备712,例如,键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可以包括诸如显示器、扬声器、打印机等之类的输出设备714。上述设备是示例,并且可以使用其它设备。计算设备700可以包括允许与其它计算设备718进行通信的一个或多个通信连接716。合适的通信连接716的示例包括但不限于:RF发射机、接收机、和/或收发机电路;通用串行总线(USB)、并行、和/或串行端口。
在本文中所使用的术语“计算机可读介质”可以包括计算机存储介质。计算机存储介质可以包括以用于存储例如计算机可读指令、数据结构或程序模块的信息的任何方法或技术实现的易失性和非易失性介质、可移动和不可移动介质。***存储器704、可移动存储设备709、以及不可移动存储设备710都是计算机存储介质(即,存储器存储设备)的示例。计算机存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除只读存储器(EEPROM)、闪速存储器或其它存储器技术、光盘只读存储器(CD-ROM)、数字通用盘(DVD)或其它光存储、盒式磁带、磁带、磁盘存储或其它磁存储设备,或者可用于存储信息并可由计算设备700访问的任何其它制品。任何这样的计算机存储介质都可以是计算设备700的一部分。
图8A和8B示出了可以实践本发明的实施例的移动计算设备800。合适的移动计算设备的示例包括但不限于:移动电话、智能电话、平板计算机、平面计算机以及膝上型计算机。在基本配置中,移动计算设备800是具有输入元件和输出元件两者的手持计算机。移动计算设备800通常包括显示器805以及允许用户将信息输入到移动计算设备800中的一个或多个输入按钮810。移动计算设备800的显示器805还充当输入设备308(例如,触摸屏显示器)。如果被包括,则可选的侧输入元件815允许进一步的用户输入。侧输入元件815可以是旋转开关、按钮、或者任何其它类型的手动输入元件。在替代实施例中,移动计算设备800可以并入更多或更少的输入元件。例如在一些实施例中,显示器805可以不是触摸屏。在另一可替代的实施例中,移动计算设备800是便携式电话***,例如蜂窝电话。移动计算设备800还可以包括可选的小键盘835。可选小键盘835可以是物理小键盘或在触摸屏显示器上生成的“软”小键盘。在各种实施例中,输出元件包括用于示出图形用户界面的显示器805、可视指示器820(例如,发光二极管)、和/或音频变换器825(例如,扬声器)。在一些实施例中,移动计算设备800包含振动变换器,以用于向用户提供触觉反馈。在另一个实施例中,移动计算设备800包含输入和/或输出端口,例如,音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)、以及视频输出(例如,HDMI端口),以用于向外部设备发送信号或者从外部设备中接收信号。
图8B是示出了移动计算设备的一个实施例的架构的框图。即,移动计算设备800可以包含用于实现一些实施例的***(即,架构)802。在一个实施例中,***802被实现为能够运行一个或多个应用(例如,浏览器、电子邮件客户端、笔记、联系人管理器、消息传送客户端、游戏、以及媒体客户端/播放器)的智能电话。在一些实施例中,***802作为诸如集成个人数字助理(PDA)和无线电话之类的计算设备而被集成。
一个或多个应用程序866可以被加载到存储器862中,并在操作***864上运行或与其相关联。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格应用、互联网浏览器程序、消息传送程序等。***802还包括存储器862内的非易失性存储区域868。非易失性存储区域868可以用于存储如果***802断电而不应当丢失的持续的信息。应用程序866可以使用和存储非易失性存储区域868中的信息,例如由电子邮件应用所使用的电子邮件或其它消息等。同步应用(未示出)也驻留在***802上,并且被编程以与驻留在主机计算机上的对应的同步应用进行交互,从而保持在非易失性存储区域868中所存储的信息与在主机计算机处所存储的对应的信息同步。应当理解的是,其它应用可以被加载到存储器862中并且在包括在本文中所描述的软件应用720的移动计算设备800上运行。
***802具有电源870,其可以被实现为一个或多个电池。电源870还可以包括外部电源,例如,AC适配器或者补充电池或对电池充电的加电对接底座。
***802还可以包括执行传送和接收无线电频率通信的功能的无线电设备872。无线电设备872促成了经由通信载波或服务提供商的***802与外部世界之间的无线连通性。到无线电设备872的传输和来自无线电设备872的传输是在操作***864的控制下进行的。换句话说,可以将由无线电设备872接收到的通信经由操作***864传播至应用程序866,反之亦然。
可视指示器820可以用于提供可视通知,和/或音频接口874可以用于经由音频转换器825产生可听通知。在所示出的实施例中,可视指示器820是发光二极管(LED),而音频转换器825是扬声器。这些设备可以直接耦合至电源供应870,从而当被激活时,即使处理器840和其它组件为了节约电池电源而关闭,其也保持开启以持续由通知机制所决定的持续时间。LED可以被编程以无限期保持开启,直到用户采取行动以指示设备的通电状态为止。音频接口874用于向用户提供可听信号并从用户处接收可听信号。例如,除了耦合至音频转换器825外,音频接口874还可以耦合至麦克风来接收可听输入例如以促成电话会话。如将在下文中所描述的,根据本发明的实施例,麦克风还可以充当音频传感器以便于控制通知。***802还可以包括支持机载相机830的操作以记录静止图像、视频流等的视频接口876。
实现***802的移动计算设备800可以具有额外的特征或功能。例如,移动计算设备800还可以包括额外的数据存储设备(可移动的和/或不可移动的),例如,磁盘、光盘或磁带。这样额外的存储设备由非易失性存储区域868示出。
如上所述,由移动计算设备800所生成或捕获并经由***802所存储的数据/信息可以被本地地存储在移动计算设备800上,或者所述数据可以被存储在能够由设备经由无线电设备872或经由移动计算设备800与和移动计算设备800相关联的分离的计算设备(例如,分布式计算网络(例如,互联网)中的服务器计算机)之间的有线连接访问的任何数量的存储介质中。应当理解的是,可以通过移动计算设备800经由无线电设备872或经由分布式计算网络来访问这样的数据/信息。类似地,可以在计算设备之间容易地转移这样的数据/信息以根据公知的数据/信息转移和存储方式来存储和使用,所述单元包括电子邮件和协作性数据/信息共享***。
在该申请中所提供的一个或多个实施例的描述和说明旨在向本领域技术人员提供完全彻底和完全公开主题的全部范围,并且不旨在以任何方式限制或约束所要求保护的发明的范围。在该申请中所提供的实施例、示例和细节被认为足以传达所有物,并且使得本领域技术人员能够实践所要求保护的发明的最佳模式。对于本领域技术人员而言被认为是公知的结构、资源、操作和动作的描述可以是简洁的或被省略,以免使该申请主题的较少知道的或唯一的方面难以理解。所要求保护的发明不应该被解释为限于在该申请中所提供的任何实施例、示例或细节,除非在本文中明确声明。无论是共同地还是单独地示出或描述,(结构上和方法论两者的)各种特征旨在选被择性地包括或省略,以产生具有特定组的特征的实施例。此外,可以以任何顺序或者同时地执行所示出或描述的功能或动作中的任何一个或所有。在已经提供有本申请的描述和说明之后,本领域技术人员可以预想落入在该申请中所实施的一般的发明概念的更宽泛的方面的精神内的变型、修改和替代实施例,而不脱离所要求保护的发明的更宽泛的范围。
Claims (10)
1.一种用于降低在接收输入和显示输入之间的延迟的方法,所述方法包括:
当从输入设备接收墨水时渲染所述墨水,而在移动所述输入设备和显示所述墨水之间基本上没有延迟;
缓冲所渲染的墨水;
将所缓冲的墨水提交至应用;以及
利用所提交的墨水来同步地显示额外的所渲染的墨水和所缓冲的墨水。
2.根据权利要求1所述的方法,其中,所述当从输入设备接收墨水时渲染所述墨水的动作还包括将所述墨水作为湿墨笔划渲染至输入层的动作。
3.根据权利要求1所述的方法,其中,缓冲所述所渲染的墨水的动作还包括将所述湿墨笔划作为半干墨笔划转移至转移层的动作。
4.一种用于减少在着墨期间的延迟的***,所述***包括:
输入设备;
输出设备;以及
用于执行湿墨纹理引擎的处理器,所述湿墨纹理引擎能够操作以执行以下操作:
从所述输入设备接收墨水的输入;
显示所述墨水,而在接收所述输入和显示所述墨水之间基本上没有用户可感知的延迟;以及
向旨在接收所述墨水的输入的应用提交所述墨水。
5.根据权利要求4所述的***,还包括由所述处理器所执行的用于接收所述墨水的输入的第一线程。
6.根据权利要求5所述的***,还包括:
多个帧缓冲器,其用于在所述墨水作为干墨被渲染之前保存所述墨水的可显示的图像;以及
第二线程,其由所述处理器执行以用于将所述墨水的输入渲染至所述多个帧缓冲器。
7.根据权利要求6所述的***,其中,所述多个帧缓冲器还包括第一帧缓冲器和第二帧缓冲器,并且其中所述第二线程在所述第一帧缓冲器中将所述墨水的输入作为湿墨进行渲染以进行显示,而在接收所述输入和显示所述墨水之间基本上没有用户可感知的延迟。
8.根据权利要求7所述的***,其中,所述第二线程将在所述第一帧缓冲器中所渲染的所述湿墨作为半干墨移动至所述第二帧缓冲器。
9.根据权利要求8所述的***,还包括第三线程,其将在所述第二帧缓冲器中所渲染的所述半干墨作为干墨移动至所述第三帧缓冲器。
10.一种包含计算机可执行指令的计算机可读介质,其中,当由计算机执行时,所述计算机可执行指令执行用于向应用显示墨水输入而在接收所述墨水和显示所述墨水之间没有显著的用户可感知的延迟的方法,所述方法包括:
从输入设备接收湿墨作为输入;
在将所述湿墨提交至应用之前,基本上连续地渲染所述湿墨以进行显示;
在将所述湿墨提交至所述应用之前,缓冲所渲染的湿墨;以及
将所缓冲的湿墨提交至所述应用。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/065,139 | 2013-10-28 | ||
US14/065,139 US9360956B2 (en) | 2013-10-28 | 2013-10-28 | Wet ink texture engine for reduced lag digital inking |
PCT/US2014/061659 WO2015065777A1 (en) | 2013-10-28 | 2014-10-22 | Wet ink texture engine for reduced lag digital inking |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105683994A true CN105683994A (zh) | 2016-06-15 |
CN105683994B CN105683994B (zh) | 2019-09-10 |
Family
ID=51871297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480059259.1A Active CN105683994B (zh) | 2013-10-28 | 2014-10-22 | 针对降低延迟的数字着墨的湿墨纹理引擎 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9360956B2 (zh) |
EP (1) | EP3063702A1 (zh) |
CN (1) | CN105683994B (zh) |
TW (1) | TW201520852A (zh) |
WO (1) | WO2015065777A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110235097A (zh) * | 2017-02-03 | 2019-09-13 | 微软技术许可有限责任公司 | 用于着墨应用用户界面的可反转数字墨水 |
CN110494837A (zh) * | 2017-04-07 | 2019-11-22 | 微软技术许可有限责任公司 | 使用高优先级队列进行墨水渲染 |
CN110537164A (zh) * | 2017-04-18 | 2019-12-03 | 微软技术许可有限责任公司 | 用于内容创建应用的增强的上墨能力 |
CN115220853A (zh) * | 2022-09-21 | 2022-10-21 | 广州市保伦电子有限公司 | 基于多线程的墨迹作图方法、装置、设备及存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9360956B2 (en) | 2013-10-28 | 2016-06-07 | Microsoft Technology Licensing, Llc | Wet ink texture engine for reduced lag digital inking |
US9785187B2 (en) * | 2014-08-07 | 2017-10-10 | Microsoft Technology Licensing, Llc | Modular computing device |
KR102314110B1 (ko) * | 2014-09-16 | 2021-10-18 | 삼성디스플레이 주식회사 | 시각화 가속부를 포함하는 터치 표시 장치 |
US9733826B2 (en) * | 2014-12-15 | 2017-08-15 | Lenovo (Singapore) Pte. Ltd. | Interacting with application beneath transparent layer |
US9430001B2 (en) | 2015-01-05 | 2016-08-30 | Microsoft Technology Licensing, Llc | Modular computing device |
US9898841B2 (en) | 2015-06-29 | 2018-02-20 | Microsoft Technology Licensing, Llc | Synchronizing digital ink stroke rendering |
US20170236318A1 (en) * | 2016-02-15 | 2017-08-17 | Microsoft Technology Licensing, Llc | Animated Digital Ink |
US10810273B2 (en) | 2017-06-13 | 2020-10-20 | Bank Of America Corporation | Auto identification and mapping of functional attributes from visual representation |
CN111090469A (zh) * | 2019-04-22 | 2020-05-01 | 广东小天才科技有限公司 | 一种基于图像采集设备的显示屏关闭方法及终端设备 |
US20240094896A1 (en) * | 2022-09-19 | 2024-03-21 | Microsoft Technology Licensing, Llc | Locally generating preliminary inking imagery |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802205A (en) * | 1994-09-09 | 1998-09-01 | Motorola, Inc. | Method and system for lexical processing |
CN1795453A (zh) * | 2003-10-24 | 2006-06-28 | 微软公司 | 实时墨迹作图 |
CN102243570A (zh) * | 2010-05-13 | 2011-11-16 | 微差通信公司 | 用于重叠式书写的方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7499058B2 (en) | 2005-04-22 | 2009-03-03 | Microsoft Corporation | Programmatical access to handwritten electronic ink in a tree-based rendering environment |
US9189147B2 (en) | 2010-06-22 | 2015-11-17 | Microsoft Technology Licensing, Llc | Ink lag compensation techniques |
US9360956B2 (en) | 2013-10-28 | 2016-06-07 | Microsoft Technology Licensing, Llc | Wet ink texture engine for reduced lag digital inking |
-
2013
- 2013-10-28 US US14/065,139 patent/US9360956B2/en active Active
-
2014
- 2014-09-30 TW TW103134022A patent/TW201520852A/zh unknown
- 2014-10-22 CN CN201480059259.1A patent/CN105683994B/zh active Active
- 2014-10-22 EP EP14796344.1A patent/EP3063702A1/en not_active Withdrawn
- 2014-10-22 WO PCT/US2014/061659 patent/WO2015065777A1/en active Application Filing
-
2016
- 2016-05-04 US US15/145,913 patent/US9454254B2/en active Active
- 2016-09-26 US US15/276,596 patent/US9672795B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802205A (en) * | 1994-09-09 | 1998-09-01 | Motorola, Inc. | Method and system for lexical processing |
CN1795453A (zh) * | 2003-10-24 | 2006-06-28 | 微软公司 | 实时墨迹作图 |
CN102243570A (zh) * | 2010-05-13 | 2011-11-16 | 微差通信公司 | 用于重叠式书写的方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110235097A (zh) * | 2017-02-03 | 2019-09-13 | 微软技术许可有限责任公司 | 用于着墨应用用户界面的可反转数字墨水 |
CN110235097B (zh) * | 2017-02-03 | 2022-08-30 | 微软技术许可有限责任公司 | 用于着墨应用用户界面的可反转数字墨水 |
CN110494837A (zh) * | 2017-04-07 | 2019-11-22 | 微软技术许可有限责任公司 | 使用高优先级队列进行墨水渲染 |
CN110494837B (zh) * | 2017-04-07 | 2023-05-02 | 微软技术许可有限责任公司 | 使用高优先级队列进行墨水渲染 |
CN110537164A (zh) * | 2017-04-18 | 2019-12-03 | 微软技术许可有限责任公司 | 用于内容创建应用的增强的上墨能力 |
CN115220853A (zh) * | 2022-09-21 | 2022-10-21 | 广州市保伦电子有限公司 | 基于多线程的墨迹作图方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3063702A1 (en) | 2016-09-07 |
US9672795B2 (en) | 2017-06-06 |
CN105683994B (zh) | 2019-09-10 |
TW201520852A (zh) | 2015-06-01 |
US20160253301A1 (en) | 2016-09-01 |
US20170053626A1 (en) | 2017-02-23 |
US9360956B2 (en) | 2016-06-07 |
US20150116226A1 (en) | 2015-04-30 |
WO2015065777A1 (en) | 2015-05-07 |
US9454254B2 (en) | 2016-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105683994A (zh) | 针对降低延迟的数字着墨的湿墨纹理引擎 | |
TWI374368B (en) | Real-time inking | |
US8786620B2 (en) | Discarding idle graphical display components from memory and processing | |
CN104067204A (zh) | 指示笔计算环境 | |
WO2017194024A1 (zh) | 一种生成条形码图像的方法和装置 | |
US9946458B2 (en) | Method and apparatus for inputting text in electronic device having touchscreen | |
US10129335B2 (en) | Method and system for dynamic group creation in a collaboration framework | |
CN107079065A (zh) | 电话平板装置 | |
US20200233523A1 (en) | Sequential two-handed touch typing on a mobile device | |
CN104603752A (zh) | 跨平台共享应用代码 | |
CN106598928A (zh) | 一种在显示屏上进行批注的方法及其*** | |
CN108780443B (zh) | 对数字笔划群组的直观选择 | |
US10162518B2 (en) | Reversible digital ink for inking application user interfaces | |
CN108885556B (zh) | 控制数字输入 | |
US10133514B2 (en) | Flushless transactional layer | |
CN108139859B (zh) | 对触摸显示器快速着墨 | |
US11620030B2 (en) | Coherent gestures on touchpads and touchscreens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |