TW201520852A - 用於減少延遲數位上墨之濕墨紋理引擎 - Google Patents

用於減少延遲數位上墨之濕墨紋理引擎 Download PDF

Info

Publication number
TW201520852A
TW201520852A TW103134022A TW103134022A TW201520852A TW 201520852 A TW201520852 A TW 201520852A TW 103134022 A TW103134022 A TW 103134022A TW 103134022 A TW103134022 A TW 103134022A TW 201520852 A TW201520852 A TW 201520852A
Authority
TW
Taiwan
Prior art keywords
ink
wet
input
application
dry
Prior art date
Application number
TW103134022A
Other languages
English (en)
Inventor
Robert Goins
Sergey Ten
Jr Edward Augustus Layne
Mario Baumann
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW201520852A publication Critical patent/TW201520852A/zh

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • G09G5/397Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing 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/03545Pens or stylus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0412Digitisers structurally integrated in a display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction 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/0488Interaction 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/04883Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/171Editing, e.g. inserting or deleting by use of digital ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/18Use 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)之電腦、平板電腦、智慧型手機以及其他計算裝置正日益普遍。接收並呈現從觸筆書寫或繪圖之資訊之處理係稱為上墨。觸筆可為可用於在螢幕或數位轉化器上書寫或繪圖之數位筆、滑鼠、手指或其他合適裝置。在上墨期間,觸筆之每一移動序列係記錄為儲存與輸入相關聯之座標與特性之筆劃。舉例而言,筆劃可包括移動,該等移動從筆尖移動至夠靠近能讓數位轉化器偵測,按下滑鼠按鍵,或手指觸摸螢幕時,直到筆尖移開數位轉化器並不再可偵測,放開滑鼠按鍵,或手指不再觸摸螢幕時。一或更多個筆劃組成運行於計算裝置之應用程式所使用之墨水(即數位墨水)。
在螢幕上,墨水可能出現自然的手寫或手繪圖片。 在手寫之情況下,墨水可透過手寫辨識而轉換為標準文字。經轉換之文字可與相應自然的手寫相關聯,而可在利用經上墨之資訊(如搜尋)之情況下作為替代資料格式,或可代替螢幕與應用程式上之自然的手寫(例如,建立類型文件)。
有時,在螢幕上繪製之墨水嚴重延遲於觸筆之後。此延遲係由於應用程式試圖同時做三個動作:處理墨水輸入,呈現墨水至螢幕上,並將墨水保存至應用畫布(即應用程式所顯示給使用者之物)。因為使用者介面管線快速地備份,所以試圖同時完成所有這些任務將使每一任務慢下來。
在單線程應用程式中尤其具有延遲問題,但即使為多線程應用程式仍令人擔憂。在多線程應用程式中,延遲可藉由建立額外線程及處理獨立線程中之每一動作而加以解決;然而,此解決方案不能用於單線程應用程式,且可能並不可行或適用於所有多線程應用程式。
當將墨水保存至應用畫布,延遲可能由於硬體之時序限制而發生。舉例而言,當輸入裝置(如觸筆)以系統匯流排速度操作,對應用畫布之更新可相關於螢幕刷新頻率。在典型實例中,當系統匯流排操作於133Hz,螢幕係以60Hz之週期刷新。限制每一螢幕刷新(即時框)為應用畫布之一個更新,觸筆產生墨水之速度比可藉由應用程式顯示之速度快兩倍。隨著使用者繼續書寫或繪圖,墨水越來越落後於觸筆,並對使用者顯示觸筆之移動之斷裂的缺口(choppy burst),而非平滑出現。
已發現硬體與軟體之不同組合,以產生六或七個時 框沒出現墨水之明顯延遲,相當於墨水離觸筆一到二個英吋。至少,延遲有損於上墨係設計以提供筆與紙之體驗。更重要的是,當使用者必須停止以等待墨水趕上觸筆,而讓使用者可看見或更改所書寫或繪畫者時,延遲將產生效率與可用性之問題。本發明係相對於這些與其他考慮。儘管已討論相關特定問題,應理解本文所揭示之實施例不應限於解決在先前技術中所識別之特定問題。
本發明內容係提供以下面實施方式部分中描述之簡化形式介紹概念之選擇。本發明內容並不意欲識別所要求保護主題之關鍵特徵或必要特徵,亦非意欲用於協助確定所要求保護主題之範圍。
在本說明書中描述之實施例係提供可在能夠接收墨水輸入之任何裝置、服務或一般端點上之任何應用程式之上下文中運行之濕墨紋理引擎。在使用者開始利用墨水書寫或繪圖時,開始墨水輸入。當使用者主動產生墨水筆劃時,持續且頻繁地發生原始墨水呈現。原始墨水係為可見,但尚未轉移至墨水輸入所預期之應用程式。呈現原始墨水之處理係稱為濕上墨。濕上墨減少使用者移動觸筆與墨水出現於螢幕上之時間之間的使用者可感知延遲。在中斷主動產生墨水筆劃時,停止墨水輸入。當此情況發生時,原始墨水筆劃係傳遞至墨水分析部件,以產生最終墨水。利用最終墨水替換原始墨水之處理稱為乾上墨。
在濕上墨期間,原始墨水係快取於濕墨紋理。濕墨 紋理係由濕墨水與半乾墨水組成。應用畫布儲存虛擬紋理,虛擬紋理保持由應用程式所獲取之墨水並可從應用程式取得或給予應用程式(即乾墨水)。濕墨水儲存於輸入層,而半乾墨水儲存於轉移層。每一層係用於保持濕上墨處理之不同階段中之原始墨水的虛擬時框緩衝器。原始墨水輸入係呈現於輸入層中。儲存於輸入層中之圖像係為所接收最新之墨水資料之未處理呈現,包括部分筆劃。經常展出用於顯示之輸入層係最小化使用者移動觸筆與墨水出現於螢幕上之時間之間的使用者可感知延遲。
在呈現之後,濕墨水移動至轉移層。轉移層作為中間時框緩衝器以用於服務準備好由應用程式提交或消耗之濕墨水(即半乾墨水)。轉移係涉及從輸入層中移除至少一些所呈現之濕墨水,並重新呈現在轉移層中作為半乾墨水者。儲存於轉移層中之圖像係為已呈現並準備好移動(即提交)至應用畫布之濕墨水的未處理呈現。
在乾上墨處理期間,在濕墨紋理之墨水之至少一部分移動至應用畫布之虛擬紋理。當應用程式已準備好接受任何可用半乾墨水,應用程式請求轉移層之內容。半乾墨水重新呈現於應用畫布之虛擬紋理中,並清除轉移層。流程將繼續直到所有墨水從濕墨紋理轉移至虛擬紋理。
在各種實施例中,濕墨紋理引擎提供至少一個專用工作線程,以接收及呈現墨水輸入。無論數量多少,這些工作線程都獨立於隨著動作增加而變得緩慢的使用者介面(UI)線程。墨水輸入係發生於專用墨水輸入線程中,並引導至專 用墨水呈現線程。在輸入層中之原料(即濕)墨水之呈現係發生於墨水呈現線程,而此時沒有濕墨水之任何進一步處理。接收輸入與呈現濕墨水係具有高優先級。一旦呈現,濕墨水係提供至系統合成器,並在下次更新螢幕時顯示給使用者。換言之,濕墨水係出現於螢幕上而具有接收輸入之時間與顯示輸入時間之間的最小使用者可感知延遲。
所呈現之濕筆劃轉移至轉移層係發生於墨水呈現線程上。轉移可能以較低於輸入並呈現濕墨水之優先級而發生,以允許濕墨水盡可能地迅速顯示。在轉移之後,濕墨水與半乾墨水係在相同或基本相同的時間提供至系統合成器,並在下次更新螢幕時顯示給使用者。轉移半乾墨水至應用程式以作為乾墨水係涉及鎖定轉移層,重新呈現應用畫布上之半乾墨水,並清除轉移層。一旦鎖定轉移層,半乾墨水引導至應用線程,而呈現於應用畫布上以作為乾墨水。在呈現乾墨水之後,由墨水呈現線程清除及解鎖轉移層。
200‧‧‧濕墨紋理
202‧‧‧應用畫布
204‧‧‧虛擬紋理
206‧‧‧輸入層
208‧‧‧轉移層
300‧‧‧濕墨紋理引擎
302‧‧‧計算裝置
304‧‧‧處理器
306‧‧‧記憶體
308‧‧‧輸入裝置
310‧‧‧輸出裝置
312‧‧‧應用程式
314‧‧‧系統合成器
400‧‧‧墨水輸入線程
402‧‧‧墨水呈現線程
404‧‧‧應用線程
500‧‧‧濕上墨方法
510‧‧‧濕墨水輸入操作
520‧‧‧濕墨水呈現操作
530‧‧‧半乾轉移操作
532‧‧‧鎖定檢查操
534‧‧‧濕墨筆劃移除操作
536‧‧‧半乾呈現操作
538‧‧‧同步展示操作
540‧‧‧半乾墨水提交操作
542‧‧‧半乾墨水可用性操作
544‧‧‧轉移層鎖定操作
546‧‧‧乾墨水呈現操作
548‧‧‧轉移層清除操作
550‧‧‧轉移層解鎖操作
700‧‧‧計算裝置
702‧‧‧處理單元
704‧‧‧系統記憶體
705‧‧‧作業系統
706‧‧‧程式模組
708‧‧‧虛線
709‧‧‧可移動儲存裝置
710‧‧‧不可移動儲存裝置
712‧‧‧輸入裝置
714‧‧‧輸出裝置
716‧‧‧通訊連接
718‧‧‧計算裝置
800‧‧‧行動計算裝置
805‧‧‧顯示器
810‧‧‧輸入按鈕
815‧‧‧側輸入元件
820‧‧‧視覺指示器
825‧‧‧音訊轉換器
830‧‧‧板載相機
835‧‧‧可選式鍵板
860‧‧‧處理器
862‧‧‧記憶體
864‧‧‧作業系統
866‧‧‧應用程式
868‧‧‧非揮發性儲存區
870‧‧‧電源
872‧‧‧無線電
874‧‧‧音訊介面
876‧‧‧視訊介面
本發明之進一步特徵、態樣及優點將藉由參照以下隨附圖式而更好地理解,其中元件並未按比例繪製,以便更清楚地顯示細節,且其中類似元件符號係指示數個視圖中之類似元件。
第1圖圖示應用程式利用濕墨紋理引擎從輸入至螢幕的墨水之一般流程。
第2圖圖示濕上墨期間處理之濕墨紋理與乾上墨期間處理之虛擬紋理之間的墨水之流程之一個實施例。
第3圖圖示基本計算系統環境中之濕墨紋理引擎之一個實施例。
第4圖圖示與利用濕墨紋理引擎之一個實施例的單線程應用程式相關聯之線程之間的關係。
第5圖圖示由濕墨紋理引擎執行之濕上墨方法之一個實施例。
第6A圖圖示在使用濕墨紋理引擎之一個實施例之應用程式中,用手指在觸控螢幕上輸入墨水,而沒有使用者可感知延遲。
第6B圖圖示在使用濕墨紋理引擎之一個實施例之應用程式中,用數位筆在數位轉化器上輸入墨水,而沒有使用者可感知延遲。
第7圖係為圖示可實施本發明之實施例之計算裝置之物理部件之一個實施例之方塊圖。
第8A與8B圖係為圖示可實施本發明之實施例之行動計算裝置之簡化方塊圖。
濕墨紋理引擎的各種實施例係在本文中描述並在隨附圖式中示出。濕墨紋理引擎可在能夠接收墨水輸入之任何裝置、服務或一般端點上之任何應用程式之上下文中運行。舉例而言,濕墨紋理引擎可用於以書寫或繪圖形式接收輸入之筆記應用程式之上下文中。濕墨紋理引擎減少、最小化或消除接收輸入與顯示輸入間之延遲,以改善使用者之上墨體驗。
第1圖圖示應用程式利用濕墨紋理引擎從輸入至螢幕的墨水之一般流程。當使用者開始利用墨水書寫或繪圖時,墨水輸入開始。標示墨水輸入開始之事件之實例包括,但不限於,數位筆移動至數位轉化器之範圍中,按下滑鼠按鍵,使手指與觸控螢幕接觸,以及啟動墨水輸入模式,其中由物件追踪電子感測器偵測到之手部移動將視為書寫或繪圖。當使用者主動產生墨水筆劃時,持續且頻繁地發生原始墨水呈現。原始墨水係為可見,但尚未轉移至墨水輸入所預期之應用程式。呈現原始墨水之處理係稱為濕上墨。濕上墨減少使用者移動觸筆與墨水出現於螢幕上之時間之間的使用者可感知延遲。
在中斷主動產生墨水筆劃時,停止墨水輸入。事標示墨水輸入結束之事件之實例包括,但不限於,數位筆移出數位化設計之範圍,放開滑鼠按鍵,停止手指與觸控螢幕接觸,以及停用墨水輸入模式。當此情況發生時,原始墨水筆劃係傳遞至墨水分析部件,以產生最終墨水。利用最終墨水替換原始墨水之處理稱為乾上墨。至少,墨水分析部件將墨水提交至應用程式;然而,墨水分析部件可執行墨水的附加可選擇處理。乾上墨觸發原始墨水之重新呈現,因為乾上墨涉及在展示為最終墨水時刪除原始筆劃。
第2圖圖示濕上墨期間處理之濕墨紋理與乾上墨期間處理之虛擬紋理之間的墨水之流程之一個實施例。在濕上墨期間,原始墨水係快取於濕墨紋理200中。濕墨紋理200係由濕墨水與半乾墨水組成。濕墨水係為頻繁地更新並顯示 給使用者之紋理200;然而,濕墨紋理200中之濕墨水無法由應用程式所使用,直到發生乾上墨。應用畫布202儲存虛擬紋理204,虛擬紋理204保持由應用程式所獲取之墨水並可從應用程式取得或給予應用程式(即乾墨水)。
將濕墨水與半乾墨水儲存於獨立層中。濕墨水儲存於輸入(即濕墨水)層206,而半乾墨水儲存轉移(即半乾墨水)層208。每一層係用於保持濕上墨處理之不同階段中之原始墨水的虛擬時框緩衝器。層與應用畫布202可實現為可透過應用程式介面(API)存取之物件(例如,位元圖、光柵化圖像、或交換鏈),應用程式介面(API)處理相關於顯示圖形(例如,DirectX®)、在視覺呈現標記語言(如可擴展應用程式標記語言(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,並執行其他邏輯與控制功能。記憶體306儲存軟件部件與相關聯之資料,包括但不限於,濕墨紋理200、虛擬紋理204、輸入層206以及轉移層208。合適的可使用濕墨紋理引擎300之計算裝置之實例包括但不限於,桌上型電腦、筆記型電腦、平板電腦、表面電腦(surface computer)以及智慧型手機。
輸入裝置308係為座標式輸入裝置。在輸入裝置之各種實施例中,觸筆係用於在表面上墨(即,輸寫或繪圖)。在一些實施例中,觸筆係為隨著觸筆移動產生座標式輸入之 主動式部件(例如,數位筆或滑鼠)。主動式觸筆可用於被動式表面(例如,一張紙、滑鼠墊或桌面)。在其他實施例中,表面係為主動式部件(例如,數位轉化器或觸控螢幕),依據使用者手指、數位筆、或其他觸筆(主動式或被動式)之位置與移動產生座標式輸入。在一些實施例中,輸入裝置308係為電子感測器,依據使用者身體(例如,手指、手或臂)之移動產生座標式輸入或關於顯示或投影於大表面之螢幕圖像的其他物件(如牆壁、桌子或數位白板)。在各種實施例中,電子感測器係依據紅外線、超音、熱、雷射或其它適於追踪物件之聲光式感測技術。合適電子感測器的一個例子係為Microsoft® Kinect®感測器。應理解,輸入裝置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,並在下次更新螢幕時顯示給使用者。一旦半乾墨水已呈現,則等待利用轉移層208展出輸入層206,而非在移除濕墨水之後立即展出輸入層206,以保持墨水顯示之視覺保真度。舉例而言,在同步輸入與轉移層之展出最小化使用者感知閃爍,使用者感知閃爍可能是因為在已移除濕墨水之後且在重新呈現為半乾墨水之前顯示輸入與轉移層而造成。
轉移半乾墨水至應用程式以作為乾(如,經提交)墨水係涉及鎖定轉移層208,重新呈現應用畫布202上之半乾墨水,並清除轉移層208。一旦鎖定轉移層208,半乾墨水引導至應用程式或應用線程,而呈現於應用畫布上以作為乾墨水。在各種實施例中,應用線程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,以確認半乾墨水之可用性,以回應來自應用線程的請求。若半乾墨水為可用的,轉移層鎖定操作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與一或更多個程式模組706,適於運行軟體應用程式720,如濕墨紋理引擎300。舉例而言,作業系統705可適用於控制計算裝置700之操作。另外,本發明之實施例可與圖形庫、其他作業系統、或任何其他應用程式一起實施,且不限於任何特定應用程式或系統。此基本配置係藉由這些部件在虛線708中圖示。計算裝置700可具有附加特徵或功能中。舉例而言,計算裝置700亦可包括附加資料儲存裝置(可移動及/或不可移動),例如磁碟、光碟、或磁帶。這樣的附加儲存係由可移動儲存裝置709與不可移動儲存裝置710所圖示。
如上所述,多個程式模組與資料檔案可儲存於系統記憶體704中。當在處理單元702上執行時,軟體應用程式720可執行之處理包括但不限於,濕上墨方法500之一或更多個階段。可根據本發明之實施例中使用之其他程式模組可包括電子郵件與聯絡人應用程式、文字處理應用程式、電子表格應用程式、資料庫應用程式、幻燈片展出應用程式、繪圖 或電腦輔助應用程式等。
此外,可實施本發明之實施例之電子電路包含分散式電子元件、含有邏輯閘之已封裝或整合電子晶片、利用微處理器之電路、或含有電子元件或微處理器之單晶片。舉例而言,本發明之實施例可經由系統晶片(SOC)來實施,其中每一或許多所圖示之部件可整合至單一整合電路。這樣的SOC裝置可包括一或更多個處理單元、圖形單元、通訊單元、系統虛擬單元、以及所有整合(或「燒入」)至晶片基板上作為單一整合電路之各種應用程式功能。當經由SOC操作時,相對於軟體應用程式720,本文所述功能可經由所整合之特定應用程式邏輯與計算裝置700之其他部件在單一整合電路(晶片)上操作。本發明之實施例亦可使用能執行邏輯操作(如AND、OR及NOT)之其他技術而實施,其他技術包括但不限於,機械、光學、流體及量子技術。此外,本發明之實施例可在一般電腦或任何其他電路或系統中實施。
計算裝置700亦可具有一或更多個輸入裝置712,如鍵盤、滑鼠、筆、聲音輸入裝置、觸控輸入裝置等。亦可包括輸出裝置714(如顯示器、喇叭、列表機等)。上述裝置係為示例,亦可使用其他不同者。計算裝置700可包括一或更多個通訊連接716,以允許與其他計算裝置718通訊。合適通訊連接716之實例包括但不限於,RF發射器、接收器及/或收發器電路;通用序列匯流排(USB)、並列及/或串列埠。
本文所使用之術語電腦可讀取媒體可包括電腦儲存媒體。電腦儲存媒體可包括以任何方式或技術實施而用於儲 存資訊(如電腦可讀取指令、資料結構或程式模組)之揮發性與非揮發性、可移動與不可移動媒體。系統記憶體704、可移動儲存裝置709及不可移動儲存裝置710皆為電腦儲存介質(如記憶體儲存)之實例。電腦儲存媒體可包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子可抹除唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀記憶體光碟(CD-ROM)、數位多功能碟(DVD)或其他光學儲存、磁匣、磁帶、磁碟儲存或其他磁儲存裝置,或可用於儲存資訊且可藉由計算裝置700存取之任何其他製品。任何這樣的電腦儲存媒體可為計算裝置700之一部分。
第8A與8B圖係為圖示可實施本發明之實施例之行動計算裝置800。合適的行動計算裝置之實例包括但不限於,行動電話、智慧型電話、平板電腦、表面電腦、膝上型電腦。在基本配置中,行動計算裝置800係為具有輸入元件與輸出元件二者之手持式電腦。行動計算裝置800通常包括顯示器805與一或更多個輸入按鈕810,以允許使用者將資訊輸入至行動計算裝置800。行動計算裝置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,並運行於移動計算裝置800上,包括本文所述之軟體應用程式720
系統802具有電源870,可實施為一或更多個電池。電源870可進一步包括外部電源,如AC轉接器或對電池補充或充電之接電架(powered docking cradle)。
系統802亦可包括無線電872,以執行發送及接收之射頻通訊之功能。無線電872促使系統802與外部世界間經由通訊載體或服務供應商之無線連接。來自或去往無線電872之傳輸係實施於作業系統864之控制下。換言之,由無線電872所接收之通訊可經由作業系統864分派至應用程式866,反之亦然。
視覺指示器820可用於提供視覺通知,及/或音訊介面874可用於經由音訊轉換器825製造聽覺通知。在經圖示之實施例中,視覺指示器820係為發光二極體(LED),而音訊轉換器825係為喇叭。這些裝置可直接耦接至電源870,而在啟動時保留由通知機制所決定之持續時間,即使處理器860以及其他組件可能關閉以節省電池電量。LED可經程式化以無限期保留,直到使用者採取行動以指示裝置之供電狀態。音訊介面874係用於提供聽覺訊號給使用者,並接收來自使 用者之聽覺信號。舉例而言,除了耦接至音訊轉換器825,音訊介面874亦可耦接至麥克風,以接收聽覺輸入,如促使電話交談。根據本發明之實施例,麥克風亦可作為音訊感測器,以促使通知之控制,這將描述於下。系統802亦可包括視訊介面876,以使板載相機830之操作能記錄靜止圖像、視訊流及類似物。
實施系統802之行動計算裝置800可具有附加特徵或功能。舉例而言,行動計算裝置800亦可包括附加資料儲存裝置(可移動及/或不可移動),如磁碟、光碟或磁帶。這樣的附加儲存係由非揮發性儲存區868所圖示。
如上所述,由行動計算裝置800產生或獲得並經由系統802儲存之資料/資訊可本地儲存於行動計算裝置800上,或資料可儲存於任何數量之儲存媒體,儲存媒體可經由無線電872或經由有線連接在行動計算裝置800與相關聯於行動計算裝置800之獨立計算裝置(如分散式計算網路(如網路)中之伺服電腦)間存取。應理解,這樣的資料/資訊可由行動計算裝置800經由無線電872或經由分散式計算網路存取。類似地,根據已知資料/資訊之傳輸與儲存構件(包括電子郵件、協作資料/資訊共享系統),這樣的資料/資訊可容易地在計算裝置間傳輸以儲存及使用。
本案中所提供之一或更多個實施例之描述與說明意欲對該領域具有通常知識者提供標的之全部範圍之徹底完整之公開,且非意欲以任何方式如專利請求範圍般限制或局限本發明之範圍。本案所提供之實施例、實例及詳細敘述係認 為足以傳達所有者之權利,並使該領域具有通常知識者能實施所保護發明之最佳模式。對該領域具有通常知識者係屬已知之結構、資源、操作及動作之敘述可以簡短或省略,以避免模糊較少見或獨特之本案標的的各種態樣。除非明確說明,所保護之發明不應解釋為限制於本案所提供之任何實施例、實例及詳細敘述。無論共同或單獨圖示或描述,各種特徵(結構與方法二者)意欲選擇性地包括或省略,以產生具有特定特徵之實施例。此外,所圖示或描述之任何或所有功能或動作可以任何順序或同時執行。對於本案已提供之描述及圖示,該領域具有通常知識者可在不悖離所保護發明之更廣泛範圍下,並在本案中之一般發明概念之更廣泛態樣之精神中設想變化、修改及替代實施例。

Claims (20)

  1. 一種用於減少接收與顯示輸入間之延遲之方法,該方法包含以下步驟:當從一輸入裝置接收墨水時,呈現該墨水,而在移動該輸入裝置與呈現該墨水之間沒有實質延遲;緩衝經呈現之該墨水;將經緩衝之該墨水提交至該應用程式;以及利用經提交之該墨水,同步顯示經呈現之附加墨水與經緩衝之墨水。
  2. 如請求項1所述之方法,其中從一輸入裝置接收墨水時呈現該墨水之該步驟進一步包含呈現該墨水至一輸入層以作為濕墨水筆劃之步驟。
  3. 如請求項1所述之方法,其中緩衝經呈現之該墨水之該步驟進一步包含轉移該等濕墨水筆劃至一轉移層以作為半乾墨水筆劃之步驟。
  4. 如請求項3所述之方法,其中轉移該等濕墨水筆劃至一轉移層以作為半乾墨水筆劃之該步驟進一步包含以下步驟:從該輸入層移除一第一濕墨水筆劃;以及呈現該輸入層中之該第一濕墨水筆劃。
  5. 如請求項3所述之方法,其中轉移該等濕墨水筆劃至一 轉移層以作為半乾墨水筆劃之該步驟進一步包含決定是否在從該輸入層移除該第一濕墨水筆劃之前鎖定該轉移層之步驟。
  6. 如請求項1所述之方法,其中將經緩衝之該墨水提交至該應用程式之該步驟進一步包含將該等半乾墨水筆劃轉移至一應用畫布之步驟。
  7. 如請求項6所述之方法,其中將該等半乾墨水筆劃轉移至一應用畫布之該步驟進一步包含實質同步執行從該轉移層刪除該等半乾墨水筆劃之步驟與在該應用畫布上呈現該等半乾墨水筆劃之步驟。
  8. 如請求項6所述之方法,進一步包含決定在將該等半乾墨水筆劃轉移至一應用畫布之該步驟之前鎖定該轉移層之步驟。
  9. 一種用於減少上墨期間之延遲之系統,該系統包含:一輸入裝置;一輸出裝置;以及一處理器,用於執行一濕墨紋理引擎,並可操作以:從該輸入裝置接收墨水之一輸入;顯示該墨水,而沒有接收該輸入與顯示該墨水間之實質使用者可感知延遲;以及 提交該墨水至欲接收墨水之該輸入之一應用程式。
  10. 如請求項9所述之系統,進一步包含由該處理器執行之一第一線程,以接收墨水之該輸入。
  11. 如請求項10所述之系統,進一步包含:複數個時框緩衝器,用於在該墨水已呈現為乾墨水之前,保持該墨水之一可顯示圖像;以及由該處理器執行之一第二線程,以呈現墨水之該輸入至該等複數個時框緩衝器。
  12. 如請求項11所述之系統,其中該等複數個時框緩衝器包含一第一時框緩衝器與一第二時框緩衝器,且其中該第二線程在該第一時框緩衝器中呈現墨水之該輸入,以作為用於顯示之濕墨水,而沒有接收該輸入與顯示該墨水間之實質使用者可感知延遲。
  13. 如請求項12所述之系統,其中該第二線程將呈現於該第一時框緩衝器中之該濕墨水移動至該第二時框緩衝器,以作為半乾墨水。
  14. 如請求項13所述之系統,進一步包含一第三線程,該第三線程將呈現於該第二時框緩衝器中之該半乾墨水移動至該第三時框緩衝器,以作為乾墨水。
  15. 如請求項14所述之系統,進一步包含一系統合成器,用於顯示該第一時框緩衝器、該第二時框緩衝器及該第三時框緩衝器之一合成圖像。
  16. 如請求項12所述之系統,其中該第一時框緩衝器與該第二時框緩衝器係為交換鏈層。
  17. 如請求項9所述之系統,其中該輸入裝置係為一數位筆、一觸控螢幕、一數位轉化器、一滑鼠、或一物件追蹤電子感測器。
  18. 一種含有電腦可執行指令之電腦可讀取媒體,當藉由一電腦執行該等指令時,實行用於對一應用程式顯示墨水輸入之一方法,而沒有接收該墨水與顯示該墨水間之明顯使用者可感知延遲,該方法包含以下步驟:從一輸入裝置接收濕墨水,以作為一輸入;在提交該濕墨水至該應用程式之前,實質連續呈現用於顯示之該濕墨水;在提交該濕墨水至該應用程式之前,緩衝經呈現之該濕墨水;以及提交經緩衝之該濕墨水至該應用程式。
  19. 如請求項18所述之電腦可讀取媒體,其中 在提交該濕墨水至該應用程式之前,緩衝經呈現之該濕墨水之該步驟進一步包含以下步驟:從一濕墨水層刪除濕墨水之一選擇;以及在一半乾墨水層中呈現濕墨水之該選擇;以及提交經緩衝之該濕墨水至該應用程式之該步驟進一步包含以下步驟:鎖定該半乾墨水層;在一應用畫布上呈現該半乾墨水層之該內容;刪除該半乾墨水層之該內容;以及解鎖該半乾墨水層。
  20. 如請求項19所述之電腦可讀取媒體,其中該方法進一步包含以下步驟:執行一第一線程,以執行從一輸入裝置接收濕墨水以作為一輸入之該步驟;執行一第二線程,以執行在提交該濕墨水至該應用程式之前,實質連續呈現用於顯示之該濕墨水之步驟,並執行在提交該濕墨水至該應用程式之前,緩衝經呈現之該濕墨水;以及
TW103134022A 2013-10-28 2014-09-30 用於減少延遲數位上墨之濕墨紋理引擎 TW201520852A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/065,139 US9360956B2 (en) 2013-10-28 2013-10-28 Wet ink texture engine for reduced lag digital inking

Publications (1)

Publication Number Publication Date
TW201520852A true TW201520852A (zh) 2015-06-01

Family

ID=51871297

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103134022A TW201520852A (zh) 2013-10-28 2014-09-30 用於減少延遲數位上墨之濕墨紋理引擎

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)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
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
US10162518B2 (en) * 2017-02-03 2018-12-25 Microsoft Technology Licensing, Llc Reversible digital ink for inking application user interfaces
US10147159B2 (en) * 2017-04-07 2018-12-04 Microsoft Technology Licensing, Llc Ink render using high priority queues
US20180300301A1 (en) * 2017-04-18 2018-10-18 Microsoft Technology Licensing, Llc Enhanced inking capabilities for content creation applications
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
CN115220853A (zh) * 2022-09-21 2022-10-21 广州市保伦电子有限公司 基于多线程的墨迹作图方法、装置、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802205A (en) * 1994-09-09 1998-09-01 Motorola, Inc. Method and system for lexical processing
US7436535B2 (en) 2003-10-24 2008-10-14 Microsoft Corporation Real-time inking
US7499058B2 (en) 2005-04-22 2009-03-03 Microsoft Corporation Programmatical access to handwritten electronic ink in a tree-based rendering environment
US8310461B2 (en) 2010-05-13 2012-11-13 Nuance Communications Inc. Method and apparatus for on-top writing
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

Also Published As

Publication number Publication date
US20150116226A1 (en) 2015-04-30
CN105683994A (zh) 2016-06-15
EP3063702A1 (en) 2016-09-07
CN105683994B (zh) 2019-09-10
US9454254B2 (en) 2016-09-27
US9360956B2 (en) 2016-06-07
US20170053626A1 (en) 2017-02-23
WO2015065777A1 (en) 2015-05-07
US20160253301A1 (en) 2016-09-01
US9672795B2 (en) 2017-06-06

Similar Documents

Publication Publication Date Title
US9672795B2 (en) Wet ink texture engine for reduced lag digital inking
US10705783B2 (en) Showing interactions as they occur on a whiteboard
US11074117B2 (en) Copying and pasting method, data processing apparatus, and user equipment
US10684769B2 (en) Inset dynamic content preview pane
CN107402906B (zh) 基于网格的应用中的动态内容布局
US20150341400A1 (en) Ink for a Shared Interactive Space
EP2932362B1 (en) Reducing latency in ink rendering
US10535043B2 (en) Navigating a calendar
US20150012881A1 (en) Method for controlling chat window and electronic device implementing the same
US20140365918A1 (en) Incorporating external dynamic content into a whiteboard
US20130339831A1 (en) Dynamic reports connected to project data
US9696810B2 (en) Managing ink content in structured formats
US20140368447A1 (en) Methods and systems for electronic ink projection
US20140068547A1 (en) Sharing application code across platforms
US10761714B2 (en) Recognizing gestures and updating display by coordinator
US11620030B2 (en) Coherent gestures on touchpads and touchscreens
WO2023196166A1 (en) Sharing of captured content
KR20160037841A (ko) 디스플레이 전력 소모를 관리하는 시스템 및 방법