KR20170061703A - 습식 잉크 예측기 - Google Patents

습식 잉크 예측기 Download PDF

Info

Publication number
KR20170061703A
KR20170061703A KR1020177011642A KR20177011642A KR20170061703A KR 20170061703 A KR20170061703 A KR 20170061703A KR 1020177011642 A KR1020177011642 A KR 1020177011642A KR 20177011642 A KR20177011642 A KR 20177011642A KR 20170061703 A KR20170061703 A KR 20170061703A
Authority
KR
South Korea
Prior art keywords
ink
point
contact
touch screen
points
Prior art date
Application number
KR1020177011642A
Other languages
English (en)
Other versions
KR102412021B1 (ko
Inventor
시아오 투
페이 시옹
지안펭 린
패트릭 지-안 푼
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20170061703A publication Critical patent/KR20170061703A/ko
Application granted granted Critical
Publication of KR102412021B1 publication Critical patent/KR102412021B1/ko

Links

Images

Classifications

    • 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
    • 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/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/04162Control or interface arrangements specially adapted for digitisers for exchanging data with external devices, e.g. smart pens, via the digitiser sensing hardware
    • G06F17/242
    • 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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • 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/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/0414Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means using force sensing means to determine a position
    • 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/0416Control or interface arrangements specially adapted for digitisers
    • 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
    • G06K9/00416
    • G06K9/222
    • G06K9/30
    • 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
    • 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/144Image acquisition using a slot moved over the image; using discrete sensing elements at predetermined points; using automatic curve following means
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04104Multi-touch detection in digitiser, i.e. details about the simultaneous detection of a plurality of touching locations, e.g. multiple fingers or pen and finger
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04106Multi-sensing digitiser, i.e. digitiser using at least two different sensing technologies simultaneously or alternatively, e.g. for detecting pen and finger, for saving power or for improving position detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Character Discrimination (AREA)
  • Processing Or Creating Images (AREA)

Abstract

스타일러스, 마우스, 손가락(또는 다른 터치 입력) 또는 다른 드로잉 장치와 같은 물체로 잉크 컨텐츠를 사용자가 생성하는 동안 잉크 디스플레이에 대한 레이턴시를 개선하기 위한 시스템 및 방법이 제공된다. 사용자에 의해 작성된 잉크 컨텐츠의 디스플레이 시간을 감소시키거나 최소화하기 위해, 본 명세서에서 설명된 기술의 양태는 실제 습식 잉크로 디스플레이될 수 있는 예측 습식 잉크를 생성한다. 예측 습식 잉크는 액티브 잉크 세그먼트를 예측 거리만큼 연장시킴으로써 계산된다. 예측 거리는 액티브 습식 잉크 세그먼트에 대한 종료 잉크 지점과 필기도구의 팁 사이의 거리가 되도록 의도된다. 일 양태에서, 예측 거리는 터치 장치상의 현재 레이턴시 기간 및 필기도구의 속도를 결정함으로써 계산된다.

Description

습식 잉크 예측기{WET INK PREDICTOR}
태블릿 컴퓨팅 장치(또는 이와 유사한 유형의 내장 장치)에는 종종 사용자가 장치에 데이터를 입력할 수 있게 하는 터치 스크린이 포함되어 있다. 사용자에 의한 데이터 입력은 손가락 또는 스타일러스(또는 펜)와 같은 필기도구(writing object)를 사용하여 수행될 수 있다. 필기도구에서 장치로의 입력은 "잉크"로 디스플레이된다.
잉크는 컴퓨팅 장치에 의해 처리 및 조작되고 디스플레이되도록 디지털화된다. 이는 디지털화된 잉크를 장치의 운영 체제로 보내고 프로세서가 잉크를 처리하게 한 다음 처리된 잉크를 그래픽 카드로 보내는 방식으로 수행할 수 있다. 그런 다음 그래픽 카드는 모니터 또는 디스플레이에 (사용자 작업의 효과인) 잉크를 렌더링한다.
현재의 잉크 렌더링 기술의 한 가지 부족한 점은 레이턴시(latency)가 도입되는 것이다. 잉크의 렌더링이 지연되는 경향이 있는 반면, 펜과 손가락은 빠르고 사실상 순간적인 경향이 있다. 사실, 전체 잉크 렌더링 프로세스는 50 내지 100 밀리 초 사이의 어느 값 또는 그보다 큰 크기의 레이턴시를 도입할 수 있다. 잉크 렌더링에서 이러한 레이턴시는 느리고 어색한 사용자 경험으로 될 수 있다.
특히, 이 레이턴시는 물체를 직접 조작하는 지각 장벽을 깨뜨리는 점에서 바람직하지 않은 결과이다. 물론 이러한 것들은 공동 배치된 경험이 있는 상황에서 주로 감지된다. 즉, 입력 및 출력이 서로 배치되면(예를 들어, 태블릿 컴퓨팅 장치 또는 터치 스크린에 스타일러스로 쓰기) 레이턴시 효과가 가장 크다.
마우스 또는 손가락, 스타일러스, 액티브 펜(active pen) 또는 다른 드로잉 장치와 같은 필기도구로 잉크 컨텐츠를 사용자가 작성하는 동안 잉크 디스플레이의 레이턴시를 향상시켜, 디스플레이 영역에 잉크 컨텐츠를 위한 원하는 위치를 추적하기 위한 시스템 및 방법이 제공된다. 스타일러스/마우스/터치 입력/다른 장치를 사용하여 사용자에 의해 작성된 잉크 컨텐츠의 디스플레이를 위한 시간을 감소시키거나 최소화하기 위해, 본 명세서에서 설명된 기술의 양태는 실제 습식 잉크로 디스플레이될 수 있는 예측 습식 잉크(predictive wet ink)를 생성한다. 예측 습식 잉크는 액티브 잉크 세그먼트를 예측 거리만큼 연장시킴으로써 계산된다. 예측 거리는 액티브 습식 잉크 세그먼트에 대한 종료 잉크 지점(termination ink point)와 필기도구의 팁(tip) 사이의 거리가 되도록 의도된다. 일 양태에서, 예측 거리는 터치 장치상의 현재 레이턴시 기간 및 필기도구의 속도를 결정함으로써 계산된다. 예측 거리는 현재 레이턴시 기간 동안 상기 속도로 필기도구가 이동할 거리이다. 부가적으로 또는 대안적으로, 예측 거리는 속도 및 가속도 모두를 사용하여 계산될 수 있다.
또한, 본 명세서에 설명된 기술의 양태는 미가공(raw) 압력 데이터가 존재하지 않는 잉크 렌더링 엔진에 대한 압력 데이터를 생성할 수 있다. 미가공 압력 데이터는 압력 감지 터치 표면, 액티브 펜 및 기타 등등에 의해 생성될 수 있다. 그러나 사용자가 필기하는 많은 장치는 압력에 민감하지 않다. 본 명세서에서 설명된 기술의 양태는 잉크 렌더링 엔진에 공급될 수 있는 압력 데이터를 생성하기 위한 압력에 대한 프록시로서 필기도구 속도를 사용한다. 압력 데이터는 잉크 렌더링 엔진에 의해 잉크 폭 및/또는 다른 잉크 파라미터를 설정하는데 사용될 수 있다.
이 요약은 아래의 상세한 설명에서 더 자세히 설명되는 단순화된 형태의 개념을 소개하기 위해 제공된다. 이 요약은 청구범위 대상의 주요 특징이나 필수 특징을 식별하기 위한 것이 아니며, 청구범위 대상의 범위를 결정할 때 별도로 도움을 주기 위한 것이 아니다.
여기에 설명된 기술은 첨부된 도면을 참조하여 이하에서 상세하게 설명된다.
도 1은 예측 잉크를 생성하기 위한 흐름도를 개략적으로 도시한다.
도 2는 레이턴시 영향을 나타내는 다이어그램이다.
도 3은 잘못된 길이를 갖는 예측 잉크를 도시한 다이어그램이다.
도 4는 정확한 길이를 갖는 예측 잉크를 도시하는 다이어그램이다.
도 5는 잉크 지점을 통해 그려지는 접촉 지점들, 잉크 지점들 및 습식 잉크 및 예측 잉크를 도시하는 다이어그램이다.
도 6은 본 명세서에 기술된 일 양태에 따른, 예측 잉크를 생성하는 방법의 흐름도의 다이어그램이다.
도 7은 본 명세서에 기술된 일 양태에 따른, 예측 잉크를 생성하는 방법의 흐름도의 다이어그램이다.
도 8은 잉크 두께를 도시하는 다이어그램이다.
도 9는 본 명세서에 기재된 기술의 한 양태에 따라, 디지털 잉크를 생성하는데 사용하기 위한 압력 데이터를 생성하는 방법의 흐름도의 다이어그램이다.
도 10은 본 명세서에 기술된 일 양태에 따른 디지털 잉크 환경의 다이어그램이다.
도 11은 본 명세서에 기술된 일 양태에 따른 예시적인 컴퓨팅 환경의 다이어그램이다.
다양한 양태들에서, 스타일러스, 마우스, 손가락(또는 다른 터치 입력), 또는 다른 드로잉 장치로 잉크 컨텐츠를 사용자가 작성하는 동안 잉크의 디스플레이 레이턴시를 줄이기 위한 시스템 및 방법이 제공된다. 특히, 한 지점에서 터치 스크린과 접촉하는 필기도구와 터치 스크린상에 나타나는 그 지점을 나타내는 습식 잉크 사이의 레이턴시는 필기도구의 경로를 예측하고 예측 습식 잉크를 렌더링함으로써 감소될 수 있다.
"디지털 잉크"는 마우스, 디지타이저 태블릿(digitizer tablet) 상의 스타일러스/펜, 정전식(capacitive) 터치 디지타이저 상의 정전식 스타일러스 또는 정전식 객체(예를 들어, 손가락), 또는 터치 감지 디스플레이 스크린을 이용하거나 이용하지 않는 디지타이저 태블릿과 통합된 디스플레이 스크린상의 스타일러스/펜과 같은, 필기도구로부터 기록된 하나 이상의 스트로크(stroke)를 지칭한다. 본 명세서에 사용된 바와 같이, "잉크"라는 용어는 "디지털 잉크"와 교환 가능하게 사용되고 "디지털 잉크"를 지칭한다. 또한, "필기도구(writing object)"라는 용어는 펜, 스타일러스, 손가락 또는 터치 입력을 제공할 수 있는 다른 도구들일 수 있다. 각각의 스트로크는 하나 이상의 잉크 지점으로서 저장될 수 있고 각각의 잉크 지점은 예를 들어, 압력, 기울기, 방위각 및 입력 도구의 위치에 대응하는 좌표(x, y)를 포함하는 다양한 특성을 포함할 수 있는데, 이러한 특성들은 예에 불과하다. 잉크 지점은 필기도구가 터치 표면과 접촉한 실제 접촉 지점과 구별될 수 있다. 예를 들어, 사용자는 직선 또는 곡선을 그리기 위해 컴퓨터 시스템의 터치 감지 디스플레이 스크린을 따라 펜을 움직일 수 있고, 컴퓨터 시스템은 사용자가 입력 도구를 움직임에 따라, 시간의 경과에 따른(또는 당업자에게 알려진 임의의 다른 간격에서) 입력 도구 팁의 위치의 궤적을 따라 좌표(x, y)들을 샘플링할 수 있다. 이러한 좌표들은 곡선 또는 직선을 따라 사용자에 의해 입력되는 접촉 지점들을 나타내며 본 명세서에서는 "접촉 지점(contact points)"이라고 부른다. 접촉 지점들은 터치 인터페이스와 연관된 하드웨어 컴포넌트들에 의해 생성될 수 있다. 일반적으로 하드웨어 컴포넌트들은 상기 각 접촉 지점을 형성하기 위하여 타임 스탬프와 위치 정보를 할당(assign)할 수 있다.
작성된 텍스트(written text)는 선분들(line segments)에 의해 연결된 일련의 좌표들보다 많은 정보를 전달할 수 있다. 예를 들어 작성된 잉크는 펜 압력(잉크 두께에 의해), 펜 각도(선 또는 곡선 세그먼트의 모양 및 신중한 지점들 주변의 잉크 동작에 의해) 및 펜촉의 속도(곧음, 선 폭에 의해, 선 폭는 직선 또는 곡선을 따라 변경됨)를 반영하여 변경된다. 이러한 잉크의 추가 속성을 처리하는 것은, 분석되는 작성된 텍스트에 감정, 개성, 강조 등을 드러낼 수 있다.
디지털 잉크는 스트로크들의 시퀀스 또는 임의의 컬렉션을 지칭할 수 있으며, 각 스트로크는 지점들의 시퀀스로 구성된다. 스트로크들은 동시에 드로잉되었거나 수집되었을 수 있으며, 독립된 시간과 장소에서 그리고 독립적인 이유로 드로잉 또는 수집되었을 수 있다. 지점들은 직교 좌표(Cartesian coordinates)(X, Y), 극좌표(r, Θ) 및 당업계에 공지된 다른 기술을 포함하는 다양한 공지된 기술을 사용하여 나타낼 수 있다. 디지털 잉크는 압력, 각도, 속도, 색상, 스타일러스 크기 및 잉크 불투명도를 비롯한 속성의 표현을 포함할 수 있다. 디지털 잉크는 다른 정보 중에 페이지에 잉크가 어떻게 침전(deposit)되었는지의 순서(대부분의 서양 언어의 경우 왼쪽에서 오른쪽으로 그리고 밑으로의 래스터 패턴), (잉크가 언제 침전되었는지를 나타내는) 타임 스탬프, 잉크의 저자의 표시, 및 발신 장치(잉크가 드로잉된 기계의 식별 또는 잉크를 침전하는데 사용된 펜의 식별 중 적어도 하나)를 포함하는 다른 특성을 추가로 포함할 수 있다.
잉크 렌더링 엔진은 접촉 지점들을 입력으로서 받아들일 수 있고, 잉크 세그먼트들을 생성하는 "잉크 지점들(ink points)"을 생성할 수 있다. 잉크 렌더링 엔진은 운영 체제의 일부이거나, 잉크를 수신하는 애플리케이션의 일부이거나 독립 실행형 애플리케이션일 수 있다. 잉크 지점들은 사용자가 보는 것과 같은 디지털 잉크를 렌더링하는 데 사용된다. 잉크 렌더링 엔진은 종이 상의 사용자 드로잉의 외형을 더 가깝게 닮은 복수의 잉크 지점들을 포함하는 스트로크를 형성하기 위해 접촉 지점들을 이용하는 다양한 스무딩(smoothing) 알고리즘 및/또는 필터를 채택할 수 있다. 개별 잉크 지점들의 위치는 개별 접촉 지점들의 위치와 다를 수 있지만 때로는 접촉 지점들이 잉크 지점들과 일치할 수 있다.
잉크 지점들을 생성하기 전에 접촉 지점들이 필터링될 수 있거나 아니면 잉크를 생성하는데 사용되는 후속 프로세스의 성능을 향상시키도록 처리된다. 일 양태에서, 접촉 지점들은 복수의 필터링된 접촉 지점들을 생성하도록 처리된다. 본 명세서에서 사용된 "접촉 지점들"이라는 용어는 필터링된 접촉 지점들을 포함할 수 있다. 따라서 접촉 지점들이 잉크 생성 프로세스 또는 다른 계산에 대한 입력으로서 묘사될 때, 필터링된 접촉 지점들 또는 미가공 접촉 지점들을 의미할 수 있다. 반대로 필터링된 접촉 지점들에는 미가공 접촉 지점들이 포함되지 않는다.
일 양태에서, 세그먼트 생성기는 복수의 접촉 지점들 또는 가능한 복수의 필터링된 접촉 지점들을 사용하여 계산된 일련의 잉크 지점들을 포함하는 잉크 세그먼트를 형성하는데 사용된다. 잉크 세그먼트는 잉크 색상 및 폭와 같은 디스플레이 특성과 함께 세그먼트의 잉크 지점들을 사용하여 습식 잉크로서 디스플레이 상에 렌더링될 수 있다. 잉크 세그먼트는 시작 잉크 지점과 종료 잉크 지점 사이에서 이어진다.
사용자에 의해 작성된 잉크 컨텐츠를 렌더링하는 데 따른 어려움 중 하나는 사용자의 작업의 결과가 잉크 컨텐츠의 디스플레이로 보이도록 충분히 빠르게 잉크 컨텐츠를 디스플레이하는 것이다. 사용자들은 약 50 밀리초 또는 그 미만의 작은 잉크 컨텐츠 작성을 위한 사용자 작업에 응답할 때 지연을 인식할 수 있다고 결정되었다. 사용자에 의해 작성된 잉크 컨텐츠의 디스플레이 지연이 종료 잉크 지점과 필기도구의 팁 사이의 갭으로서 보일 때, 쓰기 표면상에 물리적 펜을 사용하여 잉크를 생성하는 느낌을 더 이상 갖지 않을 수 있으므로 지연은 사용자 경험을 혼란스럽게 할 수 있다.
본 명세서에 기재된 기술의 양태는 예측 습식 잉크를 생성함으로써 이러한 어려움을 극복한다. 예측 습식 잉크는 액티브 잉크 세그먼트를 예측 거리만큼 연장시킴으로써 계산된다. 예측 거리는 종료 잉크 지점과 필기도구의 팁 사이의 거리인 것으로 의도된다. 일 양태에서, 예측 거리는 터치 장치상의 현재 레이턴시 기간 및 필기도구의 속도를 결정함으로써 계산된다. 그 후, 예측 거리는 현재 레이턴시 기간 동안 필기도구가 상기 속도로 움직일 거리이다.
필기도구 속도는 마지막 두 접촉 지점의 타임 스탬프를 사용하여 계산되거나 현재 잉크 스트로크의 모든 지점을 포함하여 여러 접촉 지점을 사용하여 계산할 수 있다. 본 명세서에서 사용되는 잉크 스트로크는 펜 다운(pen down) 이벤트와 펜 업(pen up) 이벤트 사이에서 생성된 디지털 잉크이다. 제1 접촉 지점이 필기도구에 의해 생성될 때 펜 다운 이벤트가 발생한다. 펜 업 이벤트는 터치 스크린과 필기도구 간의 접촉을 감지하지 못하는 것에 해당한다. 일 양태에서, 최근 접촉 지점들에게는 속도 계산에 있어서 이전 접촉 지점들보다 더 많은 가중치가 주어진다.
여기에 사용된 "접촉(contact)"은 문자 그대로의 접촉이 발생하지 않는 근접성을 의미할 수 있다. 일부 터치 표면은 필기도구가 실제로 터치 스크린에 접촉하지 않을 때 스크린으로의 필기도구의 근접성을 감지할 수 있다. 이러한 근접성 검출은 "접촉"으로 간주되어 펜 다운 이벤트 및 "접촉 지점들"을 생성하는 데 사용된다.
일 양태에서, 필기도구 가속도가 또한 예측 거리를 결정하는데 사용된다. 가속도는 일련의 접촉 지점들을 통해 계산될 수 있다.
몇몇 양태들에서, 본 명세서에 설명된 시스템들 및 방법들의 이점은 잉크 컨텐츠의 디스플레이를 위한 명백한 레이턴시를 감소시키기 위해 컴퓨터의 성능을 향상시키는 것이다. 이러한 개선은 잉크 컨텐츠 작성 중에 사용자 경험을 향상시킬 수도 있다.
다양한 양태들에서, 본 명세서에 설명된 시스템 및 방법은 사용자가 스타일러스, 터치 입력을 수신하기 위한 터치 인터페이스, 마우스, 또는 디스플레이 영역 내에서 커서의 이동을 제어할 수 있는 다른 장치와 같은 입력 장치를 사용하여 잉크 입력을 작성하게 할 수 있다.
정의(Definitions)
이하의 논의에서, 여기에 설명된 기술에 따른 시스템 및 방법의 예들은 MicrosoftTM 운영 환경에 기초한 운영 환경을 사용하여 예시될 수 있지만, 이러한 환경에 국한되지는 않는다. 또한, 다양한 양태를 설명할 때 참조의 편의를 위해 특정 용어가 사용된다. 다음과 같은 명시적 정의가 다양한 양태들의 이해를 돕기 위해 제공된다.
본 명세서에서 사용되는 바와 같이, "디지털 잉크(digital ink)"는 특성을 갖는 스트로크들의 시퀀스 또는 세트이다. 스트로크들의 시퀀스에는 정렬된 형태의 스트로크들이 포함될 수 있다. 시퀀스는 캡처된 시간에 의해, 페이지에 스트로크들이 나타나는 곳에 의해 또는 잉크 작성자의 협업 상황에 따라 정렬될 수 있다. 다른 순서들도 가능하다. 스트로크들의 세트는 스트로크들의 시퀀스 또는 정렬되지 않은 스트로크들 또는 이들의 임의의 조합을 포함할 수 있다. 또한, 일부 속성(예를 들어, 압력, 속도, 각도 등)은 각 스트로크 또는 스트로크 내의 지점에 고유할 수도 있다. 이러한 속성은 잉크 레벨이 아닌, 스트로크 또는 지점 레벨에서 저장될 수 있다.
본 명세서에서 사용되는 바와 같이, "지점(point)"은 공간 내의 위치를 정의하는 정보이다. 예를 들어, 지점들은 캡처 공간(예를 들어, 디지타이저 상의 지점들), 가상 잉크 공간(캡처된 잉크가 놓이는 공간의 좌표들) 및/또는 디스플레이 공간(디스플레이 장치의 지점들 또는 픽셀들)과 관련하여 정의될 수 있다.
본 명세서에서 사용되는 바와 같이, "스트로크(stroke)"는 캡처된 지점들의 시퀀스 또는 세트이다. 예를 들어, 렌더링될 때 지점들의 시퀀스는 선들로 연결될 수 있다. 대안으로, 스트로크는 지점 및 다음 지점의 방향으로의 벡터로 표현될 수 있다. 요컨대, 스트로크는 지점들의 기본 표현 및/또는 지점들을 연결하는 것과 관계없이 잉크와 관련된 지점들 또는 세그먼트들의 모든 표현을 포함하도록 의도된다.
본 명세서에서 사용되는 바와 같이, "필기도구(writing instrument)"는 디지털 잉크에 대응하는 스트로크들을 제공하는 장치이다. 예를 들어, 필기구는 펜, 손가락, 스타일러스 및 디지털 잉크 가능(ink-enabled) 표면에 의해 감지될 수 있는 뾰족한 물체를 포함할 수 있다.
습식 잉크(Wet Ink): 잉크 스트로크가 진행되는 동안, 즉 접촉(예를 들어, 펜)이 표면에서 들어 올려지지 않은 상태에서 렌더링되는 잉크이다. 다양한 양태들에서, 습식된 잉크상의 일부분은 예측 잉크를 포함할 수 있다.
건식 잉크(Dry Ink): 잉크 스트로크가 완료된 후에 렌더링되거나 다시 렌더링되는 잉크 또는 입력 이외의 소스(지속된(persisted) 잉크 컨텐츠)에서 로드된 잉크 데이터로부터 렌더링되는 잉크이다.
예측 잉크(Predictive Ink): 사용자가 잉크 스트로크를 계속할 곳을 예측하여 렌더링되는 잉크이다. 예측 잉크 스트로크는 습식 잉크 스트로크의 마지막 렌더링 픽셀에 해당하는 시작 지점과 종료 지점 사이에서 이어질 수 있다. 습식 잉크 스트로크의 최종 렌더링된 픽셀은 터치 스크린상의 사용자 입력에 기초하여 결정된다. 마지막 지점은 스트로크가 완료될 때까지 새 습식 잉크가 스트로크에 추가될 때 계속 변경된다.
세미-건식 잉크(Semi-dry Ink): 건식 잉크 층에 동기화 동안의 중간층의 잉크이다.
예측 잉크 프로세스 흐름(Predictive Ink Process Flow)
이제 도 1을 참조하면, 본 명세서에 설명된 기술의 일 양태에 따라, 예측 잉크를 생성하기 위한 프로세스 흐름(100)이 도시되어 있다. 프로세스 흐름(100)은 스마트 폰, 태블릿, 랩탑 또는 지각적 픽셀 디스플레이와 같은 터치 감지 장치에서 작동하는 잉크 엔진에 의해 수행될 수 있다. 잉크 엔진은 장치의 운영 체제와 통합되거나, 독립 실행형 애플리케이션이 될 수도 있고, 드로잉이나 노트 작성 애플리케이션과 같이 필기 입력을 수신하는 애플리케이션과 통합될 수도 있다. 단계(102)에서, 지점 정보가 수신된다. 지점 정보는 스타일러스, 액티브 펜 또는 손가락과 같은 필기도구(writing implement)에 의해 접촉된 터치 스크린 표면 상의 특정 접촉 지점을 지정할 수 있다. 접촉 지점은 필터링된 접촉 지점을 지칭할 수도 있다.
결정 지점(104)에서 지점 정보가 평가되어 그 지점이 새로운 잉크 스트로크의 시작을 나타내는지 여부를 결정한다. 새로운 잉크 스트로크의 시작은 펜 다운 이벤트와 일치할 수 있다. 펜 다운 이벤트는 필기구가 터치 스크린에 접촉할 때 발생할 수 있다. 펜 다운 이벤트 직후에 수신된 지점이 스트로크 내의 제1 지점일 수 있다. 펜 다운 이벤트 이후, 그러나 펜 업 이벤트가 발생하기 전에 수신된 지점들은 동일한 스트로크의 일부로 간주될 수 있다. 펜 업 이벤트는 필기구의 터치 스크린과의 접촉이 중단되거나 임계 기간보다 길게 중단된 경우에 발생한다. 달리 말하면 펜 업 이벤트는 터치 표면이 터치 표면에 접촉하는 펜의 검출을 중단하거나 임계 시간보다 큰 시간 동안 펜의 검출을 중단할 때 발생한다.
단계(102)에서 수신된 지점이 새로운 스트로크의 시작이라면, 단계(106)에서 피터(fitter)가 초기화된다. 피터를 초기화하는 것은 새로운 피터 프로세스를 시작하는 것 또는 새 스트로크를 처리하기 위해 준비중인 실행 프로세스로부터 데이터를 소거하는 것을 포함할 수 있다. 피터에 대해서는 이후에 더 자세히 설명하겠지만 간단히 말해서 피터는 스트로크 내의 지점을 따르는 습식 잉크를 생성한다. 다른 종류의 피터가 사용될 수 있다. 한가지 유형의 피터는 도트(dot)를 연결하는 경우처럼 지점들을 연결할 수 있다. 제2 유형의 피터는 접촉 지점들을 추적하는 더 부드러운 선을 그리려고 시도할 수는 있지만 스트로크와 연관된 임의의 주어진 접촉 지점을 교차하거나 교차하지 않을 수 있다. 제2 유형의 피터는 함께 잉크 스트로크를 형성하는 일련의 곡선 세그먼트들을 생성할 수 있다.
피터 상태가 시작된 이후, 지점이 반환(return)된다. 지점을 반환함으로써, 지점은 스트로크와 연관될 수 있으며 추가 지점들이 수신될 때 후속 처리를 위해 저장될 수 있다. 예를 들어, 다른 지점들과 함께 이 지점은 습식 잉크 세그먼트를 생성하도록 처리될 수 있다.
결정 지점(104)에서 결정된 바와 같이 만일 지점이 스트로크의 시작이 아니라면, 상기 피터는 단계(110)에서 실행된다. 언급한 바와 같이, 상기 피터는 스트로크의 일부로서 수신된 지점들을 입력으로서 받아들이고, 지점들을 따르는 습식 잉크의 세그먼트를 렌더링하는데 사용될 수 있는 데이터를 출력한다.
결정 지점(112)에서, 새로운 지점이 피터 내의 액티브 세그먼트 내의 양호한 피트(good fit)인지 여부에 대한 결정이 이루어진다. 일 양태에서, 피터는 세그먼트들의 시퀀스를 생성한다. 세그먼트들은 선이나 곡선의 형태를 취할 수 있다. 어떤 시점에서 새로운 지점은 기존 세그먼트와 밀접하게 피팅되지 않을 수 있다. 예를 들어, 사용자가 글쓰기에서 예리한 조정을 하거나 방향을 조정할 때 조정 후 수신된 제1 지점이 이전 지점들과 피팅되지 않을 수 있다. 불량 피트(bad fit)가 검출될 때, 단계(114)에서 피터 상태가 업데이트되어 새로운 세그먼트 생성을 준비하고 단계(116)에서 기존 세그먼트가 마무리된다. 상이한 세그먼트들은 동일한 스트로크의 일부일 수 있다. 언급한 바와 같이, 스트로크는 펜 다운과 그 후 펜 업 이벤트에 의해 정의될 수 있다.
결정 지점(112)에서 새로운 지점이 양호한 피트이면, 결정 지점(118)에서 스트로크 내에서 생성된 다수의 세그먼트들이 존재하는지의 여부가 결정된다. 추가 세그먼트들이 존재하면, 단계(120)에서 세그먼트들 간의 관계는 새로운 지점을 사용하여 업데이트될 수 있다. 단계(120)에서 C1 연속성 알고리즘(continuity algorithm)을 실행함으로써 업데이트가 달성될 수 있다. 만일 결정 지점(118)에서 단 하나의 세그먼트만이 존재하거나 단계(120)에서 이전 세그먼트들의 연속성이 업데이트된 후이면, 예측 잉크가 단계(122)에서 계산된다. 언급된 바와 같이, 예측 잉크는 실제 습식 잉크가 종료되는 곳의 단부에 디스플레이된다. 실제 습식 잉크가 생성될 때, 펜 업 이벤트에서 스트로크 종료까지 새로운 예측 잉크가 연속적으로 생성될 수 있지만, 예측 잉크가 대체된다.
예측 잉크는 디스플레이 상에 렌더링되는 실제 습식 잉크가 종료될 때와 터치 스크린상의 필기도구의 팁 사이의 갭을 메우려고 시도한다. 일 양태에서, 습식 잉크의 단부와 필기도구의 지점 사이의 거리는 시스템 내의 레이턴시를 결정함으로써 초기에 결정된다. 레이턴시는 습식 잉크를 생성하기 위하여 미가공 지점 데이터를 처리하는 렌더링 파이프라인뿐만 아니라 미가공 지점 데이터를 생성하는 터치 스크린과 관련된 하드웨어 처리 파이프라인의 지연으로 인해 발생할 수 있다. 다시 말해서, 필기도구는 습식 잉크가 생성될 수 있는 것보다 더 빠르게 터치 스크린을 가로 질러 움직일 수 있다.
예측 잉크 예들(Predictive Ink Examples)
이제 도 2를 보면, 레이턴시에 의해 초래되는 습식 잉크의 갭이 도시되어 있다. 도 2는 진행중인 잉크 스트로크(205)를 갖는 터치 스크린 디스플레이(200)를 도시한다. 잉크 스트로크(205)는 사용자의 손(210)이 터치 스크린 디스플레이를 가로 질러 필기도구(212)를 이동시킴으로써 생성된다. 알 수 있는 바와 같이, 잉크 스트로크(205) 내의 습식 잉크는 종료 잉크 지점(206)에서 종료된다. 장치 및 잉크 처리 엔진 내의 레이턴시는 잉크의 진행을 필기도구의 팁(213)에 뒤쳐지게(lag) 한다. 뒤처짐(lag)은 습식 잉크 종료 지점(206)과 필기도구(212)의 팁(213) 사이에 갭(214)을 야기한다. 본 명세서에 설명된 기술의 한 양태에서, 예측 잉크(도 2에 도시되지 않음)가 생성되어, 습식 잉크 종료 지점(206)과 필기도구의 팁(213) 사이의 갭(214)에 걸쳐진다.
이제 도 3을 보면, 예측 잉크의 부정확한 생성이 도시되어 있다. 터치 스크린(300)은 터치 스크린(300)을 가로질러 필기도구(312)의 팁(313)을 움직이는 사용자(310)에 의해 생성된 액티브 스트로크(305)를 도시한다. 습식 잉크는 잉크 종료 지점(306)에서 끝난다. 이 경우 예측 습식 잉크(315)(파선)가 실제 습식 잉크(실선)의 단부에 추가되었다. 예측 습식 잉크(315)의 길이(314)는 습식 잉크의 잉크 종료 지점(306)과 필기도구(312)의 팁(313) 사이의 거리를 현저한 양(307)만큼 초과하게 한다. 본 명세서에서 설명된 기술의 양태는 습식 잉크의 잉크 종료 지점(306)과 필기도구(312)의 팁(313) 사이의 거리를 정확하게 예측함으로써 과량의 습식 잉크를 생성하는 것을 피하려고 시도한다.
이제 도 4를 참조하면, 본 명세서에 설명된 기술의 일 양태에 따라, 정확한 크기의 예측 잉크가 도시되어 있다. 터치 스크린(400)은 터치 스크린(400)을 가로질러 필기도구(412)의 팁(413)을 움직이는 사용자(410)에 의해 생성된 액티브 잉크 스트로크(405)를 도시한다. 습식 잉크를 포함하는 액티브 스트로크는 잉크 종료 지점(406)에서 종료된다. 예측 잉크는 잉크 종료 지점(406)에서 시작하여, 터치스크린 상의 팁(413)에 대응하는 지점(407)까지 이어진다. 습식 잉크의 잉크 종료 지점(406)와 필기도구의 팁 사이의 차이에 대응하는 길이(414)를 갖는 예측 잉크는 여기에 설명된 기술의 양태에 따라 생성될 수 있다. 보다 상세히 설명되는 바와 같이, 본 명세서에 설명된 기술의 양태는 필기도구가 지나가지 않은 앞에 이어지는 예측 잉크를 생성하는 것, 또는 렌더링되는 잉크와 필기도구의 팁(413) 사이의 갭을 노출시키며 필기도구에 뒤쳐지는 예측 잉크를 생성하는 것을 피하려고 시도한다.
도 5는 예시적인 접촉 지점들, 습식 잉크 지점들, 습식 잉크 및 예측 잉크를 도시한다. 접촉 지점들은 제1 접촉 지점(502), 제2 접촉 지점(504), 제3 접촉 지점(506), 끝에서 두 번째 접촉 지점(508) 및 종단 접촉 지점(510)을 포함한다. 습식 잉크(530)는 제1 접촉 지점(502), 제1 습식 잉크 지점(520), 제2 습식 잉크 지점(522), 제3 습식 잉크 지점(524) 및 종단 접촉 지점(510)을 통과하여 드로잉된다. 여러 양태에서, 습식 잉크 지점들은 베지어 근사(Bezier approximation)를 사용하여 계산될 수 있다. 제2 접촉 지점(504), 제3 접촉 지점(506) 및 끝에서 두 번째 접촉 지점(508)은 베지어 근사에서의 제약(constraints)으로서 작용할 수 있다. 습식 잉크(540)는 표면을 가로지르는 필기도구의 속도 및 선택적으로 가속도를 사용하여 베지어 근사를 다시 파라미터화함으로써 계산될 수 있다. 습식 잉크(530)는 잉크 세그먼트의 일부를 형성할 수 있다.
예비 필터링 (Preliminary Filtering)
전술한 바와 같이, 본 명세서에 설명된 기술의 양태들은 필터링된 접촉 지점들의 세트를 생성하기 위해 접촉 지점들을 필터링할 수 있다. 접촉 지점들에 잡음이 많거나 품질이 좋지 않은 시나리오에서는 세그먼트당 피팅되는 지점이 거의 없기 때문에 피팅 알고리즘의 출력이 "부드럽게(smooth)" 보이지 않을 수 있다. 한 양태에서, 입력 지점들은 피팅 곡선(fitted curve)으로부터 10 하이메트릭 단위 이하로(no more than 10 himetric units) 떨어져 있기 때문에 지터 데이터(jittery data)는 이 한계를 더 자주 초과할 수 있다. 결과로 나타나는 베지어 곡선은 여전히 입력 지점들에 피팅될 것이지만 하드웨어에 의해 오류가 발생하기 때문에 사용자가 의도한 것처럼 보이지 않을 가능성이 높다. 피팅 허용 오차(fit error tolerance)가 지터의 영향을 줄이기 위해 증가될 수 있지만, 이는 잉크하는 동안 눈에 띄게 잉크 형상이 변화하는 바람직하지 않은 효과를 발생시킨다. 피팅 허용 오차를 높이는 대신에, 이 문제를 완화하는 한 가지 방법은 피팅 알고리즘을 실행하기 전에 지점들을 필터에 통과시켜 입력 지점들을 사전 처리하는 것이다. 입력 필터링의 단점은 레이턴시가 증가한다는 것이다. 필터링으로 인한 레이턴시는 예측 잉크의 길이를 결정하는 데 사용되는 레이턴시에 포함될 수 있다.
몇 가지 다른 필터링 방법이 가능하다. 노이즈를 필터링하는 제1 방법은 입력 지점들의 이동 평균(moving average)을 취하는 것이다. 하나의 예는 3-지점 평균이며, 여기서 각 입력 지점은 이전 지점과 연속 지점과 평균된다. 특히, 입력 지점들
Figure pct00001
이 주어졌을 때, 결과 지점들
Figure pct00002
은 다음과 같다.
Figure pct00003
Figure pct00004
Figure pct00005
다음 지점이 알려질 때까지는 지점을 계산할 수 없으므로 이는 다음 입력 지점을 수신하는 데 걸리는 시간만큼 레이턴시를 증가시킨다는 것을 유의해야 한다. 이것은 평균에 더 많은 지점을 포함하도록 확장될 수 있다. 예를 들어, 5-지점 평균은 5개의 연속적인 지점의 평균을 취할 것이다.
EAn 무한 임펄스 응답(infinite impulse response, IIR) 필터는 여기에 설명된 기술 양태에서 사용할 수 있는 제2 필터이다. IIR은 결과 값이 이전의 모든 값에 의존하는 이동 평균과 같다. 지수 IIR 필터를 사용하면 이전 지점의 가중치가 기하급수적으로 감소한다. 현재 매끄러운 지점(smoothed point)(
Figure pct00006
)은 현재 입력 지점(
Figure pct00007
)과 이전의 매끄러운 지점(
Figure pct00008
)의 가중 평균을 취함으로써 계산된다.
Figure pct00009
Figure pct00010
는 현재 입력 지점 및 이전 매끄러운 지점의 가중치를 결정하는 파라미터이다.
지수 필터를 적용하면 필터링된 지점들이 곡선 내부로 향하는 이동 평균과 비슷한 효과가 나타난다는 것을 유의해야 한다. 또한, 이전 지점에 더 많은 가중치가 주어질 때(즉,
Figure pct00011
가 더 작을 때) 결과 지점이 실제 입력 지점보다 더 많이 뒤처진다. 스트로크의 결과적인 종점은 또한 마지막 실제 입력 지점보다 눈에 띄게 뒤처진다. 이것은 이동 평균과는 다른데, 이동 평균에서는 마지막 입력 지점이 결과 스트로크의 마지막 지점으로 정의된다.
현재 속도 또는 다른 팩터들을 기초로
Figure pct00012
를 변화시키는 것이 가능하다는 점에 유의해야 한다. 예를 들어, 매끄러운 지점이 너무 멀리 뒤처지지 않고 레이턴시가 더 적게 인식되도록 더 높은 속도에 대해서는
Figure pct00013
가 더 커질 수 있다. 속도 계산에는 입력 지점들의 타임 스탬프를 아는 것을 요구한다는 점을 유의해야 한다. 따라서, 미가공 접촉 지점들이 속도를 결정하는 데 사용될 수 있다. 다른 양태에서, 필터링된 접촉 지점들은 대응하는 미가공 접촉 지점과 동일한 타임 스탬프 정보를 포함한다.
잉크 피터(Ink Fitter)
언급된 바와 같이, 도 1과 관련하여 언급된 피터와 같은 피터는, 접촉 지점들을 입력으로서 수신하고 습식 및 건식 잉크를 모두 형성하는데 사용되는 잉크 지점들을 생성한다. 한 양태에서, 큐빅 베지어 피터(cubic Bezier fitter)는 큐빅 베지어 세그먼트들을 생성한다. 피팅 알고리즘은 큐빅 베지어 세그먼트들의 세트로 잉크 지점들의 스트로크의 근사치를 구한다. 베지어 세그먼트는 베지어 알고리즘을 사용하여 생성된 곡선이다. 베지어 세그먼트의 어느 한 종점은 접촉 지점 위에 있다. 종점들 사이의 접촉 지점은 베지어 알고리즘의 제어 지점들이 될 수 있다. 접촉 지점들은 베지어 알고리즘에 의해 생성된 곡선 상에 있지 않을 수 있다. 알고리즘에는 한 번에 하나의 접촉 지점이 공급되기 때문에 새로운 각 지점에 대해 알고리듬은 액티브 베지어 세그먼트를 업데이트하거나 지점이 액티브 세그먼트에 충분히 잘 피팅될 수 없다면 새로운 것을 시작한다. 피팅은 세그먼트화 로직을 사용하여 평가할 수 있다.
큐빅 베지어 피터는 액티브 지점들의 세트를 유지한다. 새로운 지점이 수신될 때마다 이는 세트에 추가되고, 피터는 새로운 큐빅 베지어 근사를 계산한다. 큐빅 베지어 근사는 다른 세그먼트들과 피팅되지 지점이 수신되어 액티브 세그먼트들이 완료되도록 하고 새 세그먼트가 시작되도록 할 때까지 계속 업데이트된다. 단일 스트로크는 여러 세그먼트들을 포함할 수 있다. 세그먼트들은 연결되고 제1 세그먼트의 끝이 다음 세그먼트의 시작이다. 즉, 인접 세그먼트들은 접촉 지점을 공유한다. 따라서, 액티브 세트는 세그먼트화 로직에 의해 리셋될 수 있기 때문에 반드시 스트로크의 시작부터 모든 지점을 포함할 필요는 없다. 큐빅 베지어 세그먼트 B(t)는 네 개의 제어 지점, C0, C1, C2, C3에 의해 정의된다.
Figure pct00014
임의의 주어진 시점에서, 알고리즘은 하나의 단일 베지어 세그먼트 B(t)를 갖는 액티브 지점들의 세트 S_k={p_0,p_1,..,p_(k-1)}에 피팅된다. 피팅 작업은 최소화 문제로서 공식화된다.
Figure pct00015
,
여기서 E는 아래에서 좀 더 자세히 설명하는 오류 함수이다.
Figure pct00016
,
Figure pct00017
을 세트
Figure pct00018
로 기술된 암시적 폴리 직선(polyline)이라 하자. 그러면,
Figure pct00019
Figure pct00020
폴리 직선의 한 지점과 베지어 사이의 거리를 계산하는 데는 비용이 많이 들기 때문에 다양한 양태들에서 폴리 직선과 베지어를 동일한 파라미터 값 t로 샘플링함으로써, 두 지점간의 거리의 근사치가 구해진다:
Figure pct00021
최소화가 요구되는 오차 함수는 다음과 같이 정의될 수 있다.
Figure pct00022
P(ti) = pi, i=0, 1, ..k-1이 되도록 N = k 및 ti 가 선택될 수 있으며, 오차 함수는 Sk에 있는 모든 점들을 설명한다. 그러나 큐빅 근사가 사용되고 있기 때문에, 샘플은 적어도 네 개의 지점을 포함한다.
최소화 문제의 변수는 B의 제어 지점들이다. C = [C0, C1, C2, C3]를 제어 지점들의 벡터라고 하자. 경사 하강(gradient descent) 방식을 사용하여 최적 값들을 구한다:
Figure pct00023
업데이트 규칙의 파라미터
Figure pct00024
는 수렴 속도를 제어한다. 일반적으로 더 큰 값에서는 반복 작업이 덜 필요하지만, 동시에
Figure pct00025
가 클 경우에는 계산이 불안정해질 수 있다. 사용될 수 있는 하나의 예시적인 파라미터
Figure pct00026
는 다음과 같다:
Figure pct00027
또한, 발산(divergence)의 위험은
Figure pct00028
를 피팅 오차에 개선을 전혀 가져오지 않은 반복의 횟수로 나눔으로써 완화될 수 있다.
Figure pct00029
은 B의 제어 지점들에 대한 근사 오차의 기울기이며 다음과 같이 계산할 수 있다:
Figure pct00030
큐빅 베지어 근사의 네 개의 제어 지점에 대응하는 업데이트 규칙에는 4 자유도가 있음을 유의해야 한다. 그러나, 다음 섹션에서 설명되는 세그먼트화(segmentation) 컴포넌트(230)는 바람직한 분석 특성(예를 들어, 연속성)을 스플라인에 부과하기 위하여, 이러한 자유도 중 일부를 사용할 것이다.
세그먼트화 (Segmentation)
세그먼트화 로직은 두 가지 기본 작업을 수행한다. 먼저, 새로운 베지어 근사를 시작할지 또는 현재 베지어 근사를 업데이트할 지를 결정한다. 둘째, 새로운 근사 또는 곡선이 시작될 때마다 큐빅 베지어 피터를 다시 구성함으로써, 스플라인(가장 두드러지게 C0 또는 C1 연속성)에 분석 속성을 실행한다. 본 명세서에서 이용된 바와 같이, 당업자가 이해할 수 있는 바와 같이, "연속성"은 인접한 베지어 곡선이 연결되는 조인트에서의 상대적 매끄러움(relative smoothness)를 지칭한다. "CO 연속성"은 인접한 베지어 곡선들이 동일한 종점들을 공유하는 상황을 가리킨다. "C1 연속성"은 인접한 베지어 곡선들이 동일한 종점들 및 동일한 미분들(derivatives)를 공유하는 상황을 가리킨다.
새로운 베지어 근사를 시작할지 아니면 현 베지어 근사를 업데이트할지 결정하는 것은 피팅의 품질을 기반으로 한다. 보다 구체적으로, 새로운 베지어 근사를 시작할지 또는 현재 베지어 근사를 업데이트할지 결정하는 것은 수신된 디지털화된 잉크 지점들과 큐빅 베지어 피터에 의해 계산된 최상의 근사값 사이의 최대 거리를 기반으로 한다. 여러 양태들에서, 컷오프 임계값은 10 하이메트릭 단위(0.1mm)일 수 있는데, 이보다 한 지점 높은 곳에서 유용성 연구에서 사용자들이 (새로운 지점까지 연장되는 것이 아니라) 새로운 지점들이 도착할 때 잉크 변화가 눈에 띄었다는 것을 나타냈다. 그러나 임계값은 렌더링되고 있을 때의 잉크의 물리적 크기와 관련이 있다는 것을 주목해야 한다. 예를 들어 습식 잉크(즉, 입력 도구가 수신 표면으로부터 분리(release)되기 전에 스트로크 활동 동안에 렌더링되는 잉크)가 10 배 배율로 렌더링되고 있다면, 임계값은 10배 작을 필요가 있을 것이고, 그렇지 않으면 사용자들은 잉크 변화를 눈치챌 것이다. 물론 건식 잉크(즉, 입력 도구가 수신 표면으로부터 분리된 후 수신 표면상의 잉크)이 변하지 않기 때문에(즉, 세그먼트화가 벌써 행해졌음), 이 지점은 습식 잉크에만 의미가 있다. 임계값은 임의의 양의 이전 잉크 지점들의 함수, 그러한 잉크 지점들의 임의의 특징(예를 들어, 좌표, 압력, 기울기, 비틀림 등) 및/또는 장치 의존적일 수 있다(예를 들어, DPI, 가용 메모리, CPU, GPU 등). 임의의 및 모든 이러한 변형 및 이들의 임의의 조합은 본 명세서에 설명된 기술의 범위 내에 있는 것으로 고려된다.
세그먼트화 로직에 의해 달성되는 다른 중요한 작업은 바람직한 분석 속성을 스플라인에 부과하는 것이다. 적어도 스플라인은 연결되어 있어야 하는데(CO 연속성), 이는 각 베지어 곡선 또는 세그먼트의 제1 제어 지점이 이전 곡선 또는 세그먼트의 마지막 제어 지점과 일치해야 하므로, 이에 의해 1 자유도가 손실되는 것을 의미한다.
CO 연속성:
Figure pct00031
CO 연속성은 스플라인이 연결되어 있음을 보장하지만 매끄러운 잉크를 생성하기에는 충분하지 않는다. 본 명세서에 설명된 기술의 양태에 따르면, 불량 인공물(bad artifacts)은 CI 연속성을 부과함으로써 제거될 수 있다. 파라메트릭 CI 연속성은 t = 0에서 세그먼트의 미분이 t = 1에서 이전 세그먼트의 미분과 일치해야 한다:
Figure pct00032
그러나 파라메트릭 CI 연속성이 부과될 때 다른 자유도가 없어지므로 좋은 피팅을 생성하기 위한 자유가 거의 없다. 다행스럽게도 스플라인이 매끄럽게 보이기 위해 필요한 것은 덜 제한적이고 제2 제어 지점의 방향만을 제한하도록 요구하는 지오메트릭(파라메트릭과 반대됨) C1 연속성이다:
지오메트릭 CI 연속성:
Figure pct00033
,
Figure pct00034
본 명세서의 실시 예들에 따르면, 지오메트릭 CI 연속성은 업데이트 규칙이 적용된 후에 제2 제어 지점을 요구된 방향으로 투영함으로써 부과될 수 있다.
예측 잉크 계산(Predictive Ink Calculation)
이제 도 6을 참조하면, 디스플레이 장치상에 예측 습식 잉크 컨텐츠를 렌더링하는 방법(600)을 도시하는 흐름도가 본 명세서에서 기술된 일 양태에 따라 제공된다. 단계(610)에서, 터치 스크린의 표면을 가로지르는 필기도구에 의해 만들어진 경로상의 복수의 접촉 지점들이 수신된다.
단계(620)에서, 액티브 큐빅 베지어 근사가 복수의 접촉 지점들을 입력으로 사용하여 계산된다. 액티브 베지어 근사는 시작 접촉 지점과 종료 접촉 지점을 포함한다. 베지어(Bezier) 근사의 생성은 위에 설명되었다.
단계(630)에서, 필기도구가 어떤 위치에서 터치 스크린을 접촉하는 것과, 이 위치에 상응하는 지점을 고려하는 터치 스크린 디스플레이상의 습식 잉크의 디스플레이 사이의 레이턴시 기간이 결정된다. 일 양태에서, 레이턴시 기간은 20ms 이상, 예를 들어 30ms 이상, 또는 40ms 이상, 또는 50ms 이상, 또는 60ms 이상, 또는 예를 들어 80ms ms 이상 또는 100ms 이상인 것으로 결정된다. 일 양태에서 레이턴시는 레이턴시를 계산하는 함수를 호출함으로써 결정된다. 함수는 운영 체제 API 또는 다른 메커니즘을 통해 호출될 수 있다. 레이턴시는 드로잉 시간(즉, 드로잉 지점이 스크린상에 나타나는 데 걸리는 시간)으로서 대안적으로 묘사될 수 있다.
단계(640)에서, 터치 스크린을 가로지르는 필기도구의 속도가 결정된다. 속도는 습식 잉크의 일부인 접촉 지점들 사이의 거리와 그 지점들 사이의 거리를 사용하여 결정할 수 있다. 선택적으로 가속도가 또한 결정될 수도 있다. 일 양태에서, 속도는 습식 잉크에 대해 가장 최근에 수신된 2 개의 접촉 지점에 대해 계산된다. 다른 양태에서, 액티브 스트로크의 모든 접촉 지점이 고려되고, 더 최근의 지점들에는 더 많은 가중치가 부여된다. 가속도는 가장 최근의 3개 이상의 지점에 걸쳐서 또는 더 많은 가중치가 주어진 더 최근의 지점을 갖는 추가적인 지점들을 사용하여 계산될 수 있다.
단계(650)에서, 필기도구가 상기 속도로 레이턴시 기간 동안 이동해야 하는 예측 거리가 결정된다. 이 계산에 대해서는 아래에서 자세히 설명한다.
단계(660)에서, 종료 지점으로부터의 예측 거리를 연장하는 새로운 큐빅 베지어 근사가 계산된다.
단계(670)에서, 액티브 베지어 근사에 기초한 실제 습식 잉크가 새로운 큐빅 베지어 근사에 기초한 예측 습식 잉크와 함께 렌더링된다.
이제 도 7을 참조하면, 여기에 설명된 기술의 일 양태에 따라 접촉 지점들에 압력 데이터를 할당하는 방법(700)이 제공된다. 단계(710)에서, 복수의 접촉 지점들이 터치 스크린 장치에서 수신된다. 접촉 지점들은 터치 스크린 장치와 통합된 터치 스크린의 표면을 가로지르는 필기도구에 의해 만들어진 경로 상에 있다.
단계(720)에서, 복수의 필터링된 접촉 지점들이 생성된다. 일 양태에서, 필터링된 지점들은 복수의 접촉 지점들에 대해 EAn 무한 임펄스 응답 필터를 작동시킴으로써 생성된다. 다른 필터링 방법들도 가능하다.
단계(730)에서, 액티브 큐빅 베지어 근사는 복수의 필터링된 접촉 지점들을 입력으로 사용하여 계산된다. 액티브 큐빅 베지어 근사는 시작 접촉 지점 및 종료 접촉 지점을 갖는다.
단계(740)에서, 터치 스크린 장치에 대한 습식 잉크 레이턴시 기간이 결정된다. 단계(750)에서, 터치 스크린을 가로지르는 필기도구의 속도가 결정된다.
단계(760)에서, 필기도구가 습식 잉크 레이턴시 기간 동안 상기 속도로 이동해야하는 예측 거리가 결정된다. 예측 거리를 계산할 때 가속도를 또한 고려할 수 있다.
단계(770)에서, 종료 지점으로부터 예측 거리를 연장하는 새로운 큐빅 베지어 근사가 계산된다. 새로운 큐빅 베지어 근사는 이전에 설명한 대로 계산될 수 있다.
단계(780)에서, 액티브 베지어 근사에 기초한 습식 잉크는 새로운 큐빅 베지어 근사에 기초한 예측 습식 잉크와 함께 렌더링된다. 예측 습식 잉크는 습식 잉크의 종료로부터 연장될 수 있다. 추가 습식 잉크가 렌더링됨에 따라 추가 습식 잉크가 예측 습식 잉크를 대체할 수 있다.
방법(600 및 700)의 다양한 양태가 이하 더 상세히 설명된다.
예측 잉크를 생성하기 위해 현재 베지어 세그먼트를 연장하는 양이 계산된다.
Figure pct00035
를 현재 스트로크의 접촉 지점들의 (필터링된) 위치라고 하고,
Figure pct00036
를 지점들의 대응 (필터링된) 타임 스탬프라고 하고, T는 예측할 지정된 앞으로의 시간(specified time ahead to predict)이라고 하자. 일 양태에서, 앞으로의 시간(time ahead) T = 습식 잉크 레이턴시이다. 습식 잉크 레이턴시는 필기도구가 터치 스크린상의 한 지점에 닿는 것과 그 접촉 지점을 사용하여 생성된 습식 잉크가 디스플레이되는 것 사이의 시간 양이다.
습식 잉크 레이턴시가 결정되면 필기도구의 속도를 계산하여 예측 잉크가 실제 습식 잉크의 단부에서부터 연장되어야 하는 거리를 결정할 수 있다. 일 양태에서, 예측 잉크 거리를 계산하기 위하여, 필기도구의 가속도는 필기도구의 속도와 관련하여 고려된다. 예측 잉크는 그 후, 재-파라미터화(re-parameterization)를 통하여 세그먼트를 확장함으로써 생성된다.
이전에 설명한대로 노이즈 및 지터를 제거하기 위해 필터를 사용하여 접촉 지점 데이터를 사전 처리할 수 있다는 것을 유의해야 한다. 타임 스탬프를 필터링하면 다음 계산에서 0으로 나누는 것을 초래할 이중 타임 스탬프의 문제를 피할 수 있다. 현재 베지어 세그먼트에 의해 적어도 3개의 입력 지점들이 피팅되는 경우에, 연장된 베지어 세그먼트의 길이는 다음과 같이 지점 n-1과 n-2 사이의 속도 v0 및 지점 n-2와 n-3 사이의 속도 v1를 계산함으로써, 계산될 수 있다:
Figure pct00037
Figure pct00038
Figure pct00039
Figure pct00040
는 필기도구의 가속도이다. 만일
Figure pct00041
라면, 예측 속도가 음수이므로,
Figure pct00042
로 설정한다.
현재 세그먼트의 호 길이를 계산한 이후에, 세그먼트는 호 길이 플러스 T에 대응하는 연장된 양인
Figure pct00043
에 대응하는 파라미터 t를 사용하여 재파라미터화될 수 있다. 기본 아이디어는 마지막 베지어 세그먼트 B(t)를 t에서 B(t)를 샘플링하는 것을 의미하는 미래로 연장함으로써 예측을 수행하는 것이다.
압력 시뮬레이션(Pressure Simulation)
또한, 본 명세서에 설명된 기술의 양태는 미가공 압력 데이터가 존재하지 않는 잉크 렌더링 엔진에 대한 압력 데이터를 생성할 수 있다. 미가공 압력 데이터는 압력 감지 터치 표면, 액티브 펜 또는 기타 등등에 의해 생성될 수 있다. 그러나 사용자가 작성하는 많은 장치는 압력에 민감하지 않다. 본원에 설명된 기술의 양태들은 잉크 렌더링 엔진에 공급될 수 있는 압력 데이터를 생성하기 위하여 압력의 프록시로서 필기도구 속도를 사용할 수 있다. 압력 데이터는 잉크 렌더링 엔진에 의해 잉크 폭 및/또는 다른 잉크 파라미터들을 설정하는데 사용될 수 있다.
본 명세서에 설명된 기술의 일 양태에서, 펜 속도는 결과적으로 잉크의 두께를 설정하는 데 사용되는 펜 압력의 프록시로서 사용된다. 본원에 사용된 바와 같이, 잉크의 두께는 단면이 잉크 스트로크에 대략 수직으로 취해지는 잉크의 단면 폭을 지칭한다. 도 8은 상이한 섹션에서 상이한 두께를 갖는 잉크(800)를 도시한다. 잉크는 잉크 지점(820), 잉크 지점(822), 잉크 지점(824) 및 잉크 지점(828)을 통과하여 이어진다. 일 양태에서, 상이한 잉크 지점들은 상이한 압력 값들과 관련된다. 더 높은 압력은 제1 단면(802)과 같이 더 두꺼운 잉크를 생성할 수 있다. 더 낮은 압력은 제2 단면(804)에서와 같이 더 얇은 선을 생성할 수 있다.
일반적으로 더 높은 속도는 가벼운 압력의 프록시로서 작용하여 잉크가 더 두꺼워진다. 그리고 더 낮은 속도는 높은 압력의 프록시로서 작용하여 잉크가 더 얇아진다.
이제 도 9를 참조하면, 압력 데이터를 접촉 지점에 할당하는 방법(900)이 본 명세서에서 설명된 기술의 일 양태에 따라 제공된다.
단계(910)에서, 압력 정보와 관련되지 않은 터치 스크린으로부터의 제1 접촉 지점이 수신된다. 제1 접촉 지점은 터치 스크린의 표면을 가로지르는 필기도구에 의해 만들어진 경로상의 복수의 접촉 지점들 중 하나이다.
단계(920)에서, 복수의 접촉 지점들 내의 제2 접촉 지점 사이의 필기도구의 속도가 결정된다.
단계(920)에서, 속도에 대응하는 압력이 결정된다.
단계(930)에서, 압력은 업데이트된 제1 접촉 지점을 생성하기 위해 제1 접촉 지점과 관련된다.
단계(940)에서, 업데이트된 제1 접촉 지점은 디지털 잉크를 렌더링하는데 사용된다. 제1 접촉 지점은 디지털 잉크를 렌더링하는 잉크 렌더링 엔진으로 전달될 수 있다.
방법(900)의 세부 사항이 이제 제공된다. 여기에 설명된 기술의 양태들은 잉크를 생성하는 데 사용된 장치 또는 장치들이 입력된 압력을 효과적으로 처리할 수 없을 때 압력에 대한 프록시로서 속도를 사용할 수 있다. 임계 단계로서, 여기에 기술된 양태들은 장치가 접촉 지점들과 관련하여 또는 상이한 채널을 통하여 압력 데이터를 제공하고 있지 않다고 결정할 수 있다. 일부 장치들은 압력 데이터를 접촉 지점들과 연관시킬 수 없다. 이 경우 압력을 감지할 수 없게 되는 원인은 하드웨어, 하드웨어상의 소프트웨어 또는 그 조합에 의해 발생할 수 있다.
포인터 정보에서 캡처된 펜 팁 압력의 사용을 통하여 자연스럽고 아름다운 잉크를 얻기 위해 액티브 펜 기술을 활용하려는 노력이 있었다. 그것은 잉크 스트로크의 폭과 관련될 수 있으므로, 압력이 높을 때 더 두껍게 되고 압력이 낮을 때 더 가늘어진다. 그것은 또한 작가가 종이 상의 물리적 잉킹(inking)으로부터 생성하는 것을 자연적으로 유추한 것이다. 그러나 이 모델은 하드웨어에서 제공되는 압력 정보가 없기 때문에 터치 잉킹 또는 패시브 펜(스타일러스) 잉킹에 직접 적용되지 않는다. 압력 데이터가 없으면 잉크 스트로크들은 사용자의 글쓰기 스타일에 관계없이 항상 동일한 폭을 가지며 상당히 둔하게 보인다.
액티브 펜에 의해 생성될 수 있는 것과 동등한 터치 잉크 품질을 개선하기 위해, 본 명세서에서 기술된 양태들은 잉킹 동안 필기도구의 이동 속도로 펜 팁 압력을 시뮬레이션하는 알고리즘을 사용한다. 기본적인 가정은, 느리고 지속적인 쓰기가 더 두꺼운 스트로크를 생성하고 신속하고 즉각적인 잉킹은 더 얇은 스트로크를 만들 것이라는 것이다. 여기에 설명된 기술의 양태들은 속도 변화를 통해 사용자의 의도를 포착하고 이를 스트로크 모습에 반영한다.
속도는 2개의 연속적인 잉크 지점 사이의 거리(DIP)를 60hz 디지타이저 상의 샘플링 시간, 예를 들어 16ms으로 나눔으로써 계산될 수 있다. 그 후, 스트로크 폭이 액티브 펜에 대해 유도되는 것과 유사한 계산에서 사용될 수 있도록 속도를 압력에 매핑하는 시뮬레이션 함수가 필요하다. 하나의 방법은 XY 좌표에서 속도 벡터를 얻는 것이다. 그런 다음 벡터의 절대 값의 로그가 계산되고 압력에 매핑된다.
P =
Figure pct00044
그 후, 이 압력 P는 속도 벡터와 연관된 접촉 지점(들)과 연관될 수 있다. 동일한 속도가 주어지면, 로그는 log5 또는 log10과 같은 더 큰 베이스로 대체되어 상이한 잉킹 경험에 대하여 더 두꺼운 스트로크를 얻을 수 있다는 것을 유의해야 한다.
디지털 잉크 환경(Digital Ink Environment)
도 10은 본 명세서에 설명된 기술의 양태를 실행하기에 적합한 예시적인 디지털 잉크 환경(1000)을 도시한다. 디지털 잉크 환경(1000)은 태블릿, PC, 랩탑, 스마트폰, 또는 후술된 컴퓨팅 장치(1100)와 같은 다른 컴퓨팅 장치상에 존재할 수 있다. 디지털 잉크 환경(1000)은 Microsoft ™ 운영 환경의 용어를 기반으로 하여그 용어를 사용한다. 여기에 설명된 기술의 양태들은 이 환경에 국한되지 않는다.
도 10은 환경의 상이한 양태들에서 생성될 수 있는 레이턴시를 보여준다. 예를 들어, 하드웨어 생태계(1006)는 입력을 처리하기 위해 15ms를 생성하고(예를 들어, 접촉 지점 데이터를 생성하고), 잉크를 렌더링하기 위해 24ms를 생성할 수 있다. 낮은 레벨 입력 및 그래픽 층(low level input and graphics layer)(1005)은 또 다른 1ms를 더할 수 있다. 입력 및 합성기 층(input and compositor layer)(1004)은 24ms를 생성할 수 있다. 이 숫자들은 장치마다 다를 수 있으며 여기서는 단지 예제로 제공된다. 도시되지 않은 잉크 렌더링 프로세스의 다른 양태들은 레이턴시를 생성할 수 있다. 이 숫자들이 주어지면 총 레이턴시는 64ms가 될 것이다. 본 명세서에 기술된 양태들에서, 예측기 컴포넌트(predictor component)(1020)는 주어진 속도 및 베지어 근사를 사용하여 미래로 예측 습식 잉크 64ms를 드로잉할 수 있다.
디지털 잉크 환경(1000) 내의 다른 층들은 애플리케이션 및 쉘 층(application and shell layer)(1001), UI 프레임워크 층(UI framework layer)(1012), 및 다이렉트 잉크 층(DirectInk layer)(1003)을 포함한다. 애플리케이션 및 쉘 층(1001)은 쉘 서브컴포넌트(1010) 및 다이렉트 잉크 애플리케이션(1012)을 포함한다. 임의의 주어진 장치에 설치되는 다이렉트 잉크 애플리케이션은 다를 수 있다. UI 프레임 층(1002)은 UI 프레임워크 서브컴포넌트(1014), 잉크 애플리케이션 프로그램 인터페이스(API)(1016) 및 DirectX API(1018)를 포함한다. 다이렉트 잉크 층(1003)은 다이렉트 조작 서브컴포넌트(1022) 및 다이렉트잉크 서브컴포넌트(1019)를 포함한다. 입력 및 합성기 층은 입력 서브컴포넌트(1024) 및 합성기 서브컴포넌트(1026)를 포함한다. 낮은 레벨 입력 및 그래픽 층은 낮은 레벨 입력 서브컴포넌트(1028) 및 그래픽 서브컴포넌트(1030)를 포함한다. 하드웨어 생태계(1006)는 터치 기능과 관련된 다양한 하드웨어 드라이버를 포함하는 하드웨어 서브컴포넌트(1032)를 포함할 수 있다.
컴퓨팅 환경(Computing Environment)
도 11은 본 명세서에 설명된 기술의 실시 예를 구현하기에 적합한 예시적인 컴퓨팅 환경을 나타내는 블록도이다. 일반적으로 도면들 및 특히 도 11을 처음에 참조하면, 컴퓨팅 장치(1100)에 의해 렌더링된 디지털 잉크를 선택하도록 구성되는 컴퓨팅 장치(1100)를 도시한다. 컴퓨팅 장치(1100)는 적절한 컴퓨팅 환경의 한 예일 뿐이며, 본원에 설명된 기술의 실시 예들의 사용 또는 기능의 범위에 대한 어떠한 제한도 제안하려는 의도가 아니다. 컴퓨팅 장치(1100)도 설명된 임의의 하나의 컴포넌트 또는 컴포넌트들의 조합에 관하여 어떠한 의존성 또는 요구 사항을 갖는 것으로 해석되어서는 안 된다.
여기에 설명된 기술의 실시 예들은 컴퓨터 실행 가능 명령어들을 포함하는 컴퓨터 코드 또는 머신 사용 가능(machine-useable) 명령어들의 일반적인 문맥으로 설명될 수 있다. 이들 명령어들은 컴퓨터 또는 다른 머신(예를 들어, PDA(persoanl data assistant) 또는 다른 핸드헬드(handheld) 장치)에 의해 실행되는 프로그램 컴포넌트들을 포함할 수 있다. 일반적으로 루틴, 프로그램, 애플리케이션, 객체, 컴포넌트, 데이터 구조 등을 포함하는 프로그램 컴포넌트들은 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 코드를 가리킨다. 여기에 설명된 기술의 실시 예들은 핸드헬드 장치, 태블릿 컴퓨터, 게임 장치, 가전 제품, 범용 컴퓨터, 특수 컴퓨팅 장치 등을 포함하는 다양한 시스템 구성으로 실시될 수 있다. 본 명세서에 설명된 기술의 실시 예들은 또한 통신 네트워크를 통해 연결된 원격 처리 장치들에 의해 작업이 수행되는 분산 컴퓨팅 환경 또는 클라우드 환경에서 실행될 수 있다.
당업자가 이해하는 바와 같이, 컴퓨팅 장치(1100)는 하드웨어, 펌웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합을 포함할 수 있다. 하드웨어는 메모리에 저장된 명령어들을 실행하도록 구성된 프로세서 및 메모리를 포함한다. 명령어들과 관련된 로직은 하드웨어 로직에서 전체적으로 또는 부분적으로 직접 구현될 수 있다. 예를 들어, 제한 없이, 예시적인 유형의 하드웨어 로직은 FPGA(field programmable gate array), ASIC(application-specific integrated circuit), SOC(system-on-a-chip) 또는 CPLD(complex programmable logic devices)를 포함한다. 하드웨어 로직은 컴퓨팅 장치로 하여금 사용자로부터 디지털 잉크 스트로크를 수신하는 그래픽 사용자 인터페이스를 생성하게 한다. 장치는 그래픽 사용자 인터페이스에서 디지털 잉크 스트로크를 입력으로서 수신하도록 구성된다. 특정 실시 예들에서, 컴퓨팅 장치는 디지털 잉크 기록 모드와 디지털 잉크 선택 모드 사이를 전환한다. 사용자로부터 수신된 동작에 기초하여, 컴퓨팅 장치는 잉크 가능(ink-enabled) 표면 상에 렌더링되는 디지털 잉크 스트로크를 선택할 수 있다. 일 실시 예에서, 장치는 디지털 잉크 스트로크를 수정하기 위한 명령 박스(command box)를 디스플레이할 수 있다.
계속해서 도 11을 참조하면, 컴퓨팅 장치(1100)는 다음 장치들, 즉, 메모리(1112), 하나 이상의 프로세서(1114), 하나 이상의 프리젠테이션 컴포넌트(1116), 입/출력(I/O) 포트(1118), I/O 컴포넌트(1120), 예시적인 전원 공급 장치(l122)를 직접 또는 간접으로 연결하는 버스(1110)를 포함한다. 버스(1110)는 (어드레스 버스, 데이터 버스, 또는 이들의 조합과 같은) 하나 이상의 버스일 수 있는 것을 나타낸다. 명료함을 위해 도 11의 다양한 블록들이 선으로 디스플레이되어 있지만, 실제로는 다양한 컴포넌트를 기술하는 것이 그다지 명확하지 않고 은유적으로 더 정확하게는 선이 회색으로 흐릿하게 된다. 예를 들어, 디스플레이 장치와 같은 프리젠테이션 컴포넌트가 I/O 컴포넌트라고 생각할 수 있다. 또한, 프로세서는 메모리를 구비한다. 본 발명의 발명자들은 그러한 것이 본 기술의 본질임을 인식하고, 도 11의 도면이 여기에 설명된 기술의 하나 이상의 실시 예와 관련하여 사용될 수 있는 예시적인 컴퓨팅 장치의 단지 예시일 뿐이라는 것을 반복한다. "워크스테이션", "서버", "랩탑", "핸드헬드 장치" 등과 같은 카테고리들 사이의 구별은 이루어지지 않고, 모두 도 1의 범위 내에서 고려되고, "컴퓨터" 또는 "컴퓨팅 장치"라고 일컫는다.
컴퓨팅 장치(1100)는 일반적으로 다양한 컴퓨터 판독 가능 매체를 포함한다. 컴퓨터 판독 가능 매체는 컴퓨팅 장치(1100)에 의해 액세스 가능하고 휘발성 및 비휘발성 매체, 분리형(removable) 및 비분리형(non-removable) 매체 모두를 포함하는 임의의 이용 가능한 매체 일 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다.
컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어들, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체는 RAM(Random Access Memory), ROM(Read Only Memory), EEPROM(Electronically Erasable Programmable Read Only Memory), 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 다른 홀로그램 메모리, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 원하는 데이터를 인코딩하는데 사용될 수 있고 컴퓨팅 장치(1100)에 의해 액세스 될 수 있는 임의의 다른 매체를 포함하나, 이에 한정되는 것은 아니다. 실시 예에서 컴퓨터 저장 매체는 플래시 메모리와 같은 유형의(tangible) 컴퓨터 저장 매체로부터 선택 될 수 있다. 이러한 메모리 기술은 잠깐 동안(momemtarily), 일시적으로 또는 영구적으로 데이터를 저장할 수 있다. 컴퓨터 저장 장치는 통신 매체를 포함하지 않으며 통신 매체를 제외한다. 컴퓨터 저장 매체는 일시적이지 않으며, 전파되는 데이터 신호를 제외한다.
다른 한편으로, 통신 매체는 전형적으로 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호로 컴퓨터 판독 가능 명령어들, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 구현하고, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호의 정보를 인코딩하는 방식으로 하나 이상의 특성을 설정하거나 변경한 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함하지만, 이에 한정되는 것은 아니다.
메모리(1112)는 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 메모리는 분리형, 비분리형 또는 이들의 조합일 수 있다. 예시적인 하드웨어 장치는 솔리드 스테이트 메모리, 하드 드라이브, 광학 디스크 드라이브 등을 포함한다. 컴퓨팅 장치(1100)는 메모리(1112) 또는 I/O 컴포넌트(1120)와 같은 다양한 엔티티로부터 데이터를 판독하는 하나 이상의 프로세서를 포함한다. 프리젠 테이션 컴포넌트(들)(1116)는 사용자 또는 다른 장치에 데이터 표시를 제공한다. 예시적인 프리젠테이션 컴포넌트(1116)는 디스플레이 장치, 디지털 잉크 가능 표면, 스피커, 프린팅 컴포넌트, 진동 컴포넌트 등을 포함한다. I/O 포트(1118)는 컴퓨팅 장치(1100)가 I/O 컴포넌트(1120)를 포함하는 다른 장치에 논리적으로 연결되도록 하는데, 이들 중 일부는 내장될 수 있다. 예시적인 I/O 컴포넌트는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너, 프린터, 무선 장치, 필기도구, 스타일러스, 키보드 및 마우스와 같은) 제어기 또는 NUI(natural user interface) 등을 포함한다. I/O 컴포넌트(1120)는 표면 센서(1120a) 및 잉크 디지타이저(1120b)를 포함할 수 있다. 표면 센서(1120a)는 필기도구로부터 상호 작용을 수신한다. 결과적으로 감지된 상호 작용 정보는 잉크 디지타이저(1120b)에 의해 일련의 접촉 지점들로서 디지털화될 수 있다. 접촉 지점들은 전술한 바와 같이 잉크 렌더링 엔진에 대한 입력으로서 사용될 수 있다.
NUI는 제스처(예를 들어, 손, 얼굴, 몸 등), 음성, 또는 사용자에 의해 생성되는 다른 생리적인 입력을 처리한다. 이들 입력 중 일부는 디지털 잉크 가능 표면에 렌더링되어야 하는 디지털 잉크로서 해석될 수 있다. NUI의 입력은 추가 처리를 위하여 적합한 네트워크 요소들로 전송될 수 있다. NUI는 음성 인식, 터치 및 스타일러스 인식, 얼굴 인식, 생체 인식, 스크린 위 및 스크린에 인접한 제스처 인식, 에어 제스처, 및 컴퓨팅 장치(1100) 상의 디스플레이와 관련된 머리 및 눈 추적의 임의의 조합을 구현한다. 컴퓨팅 장치(1100)는 제스처 검출 및 인식을 위해 입체 카메라 시스템, 적외선 카메라 시스템, RGB 카메라 시스템, 표면 센서 및 이들의 조합을 구비할 수 있다. 또한, 컴퓨팅 장치(1100)는 모션 또는 압력의 검출을 가능하게 하는 가속도계 또는 자이로스코프를 구비할 수 있다. 가속도계 또는 자이로스코프의 출력은 저장 및 처리를 위해 메모리에 제공된다. 또한, 가속도계 또는 자이로스코프의 출력은 몰입형 증강 현실 또는 가상 현실을 렌더링하기 위해 컴퓨팅 장치(1100)의 디스플레이에 제공된다.
무선 장치(1124)는 무선 통신을 송신 및 수신한다. 컴퓨팅 장치(1100)는 다양한 무선 네트워크를 통해 수신되는 통신 및 매체에 적응된 무선 단말기일 수 있다. 컴퓨팅 장치(1100)는 다른 장치들(도 11에 도시되지 않음)과 통신하기 위하여, 다른 것들뿐 아니라, CDMA(code division multiple access), GSM(global system for mobiles) 또는 TDMA(time division multiple access)와 같은 무선 프로토콜을 통해 통신할 수 있다. 무선 통신은 단거리(short-range) 연결, 장거리(long-range) 연결 또는 단거리 및 장거리 무선 통신 연결의 조합일 수 있다. 우리가 "단거리" 및 "장거리" 유형의 연결을 언급할 때 우리는 두 장치 간의 공간적 관계를 언급하는 것이 아니다. 대신 일반적으로 우리는 단거리와 장거리를 상이한 카테고리 또는 유형의 연결(즉 기본 연결 및 보조 연결)을 언급하고 있는 것이다. 단거리 연결은 802.11 프로토콜을 사용하는 WLAN 연결과 같이 무선 통신 네트워크에 대한 액세스를 제공하는 장치(예를 들어, 모바일 핫스팟)에 대한 Wi-Fi® 연결을 포함할 수 있다. 다른 컴퓨팅 장치에 대한 블루투스(Bluetooth) 연결은 단거리 연결의 두 번째 예이다. 장거리 연결은 CDMA, GPRS, GSM, TDMA 및 802.16 프로토콜 중 하나 이상을 사용하는 연결을 포함할 수 있다.
본 명세서에 설명된 기술의 실시 예들은 특정 실시 예들과 관련하여 설명되었지만, 모든 면에서 제한적이기보다는 예시적인 것으로 의도된다. 대안적인 실시 예들은 그 범위를 벗어나지 않고 본 명세서에서 설명된 기술이 속한 당업자에게 명백해질 것이다.
특정 특징 및 서브조합은 유용하며 다른 특징 및 서브조합을 참조하지 않고 사용될 수 있다는 것을 이해할 것이다. 이것은 청구 범위에 의해 고려되며 그 범위 내에 있다.

Claims (15)

  1. 터치스크린 디스플레이 장치에 있어서,
    프로세서;
    터치 스크린; 및
    상기 프로세서에 의해 실행될 때 상기 터치 스크린에 예측 습식 잉크(predictive wet ink)를 렌더링하는 방법을 수행하는 컴퓨터 실행 가능 명령어들을 포함하는 컴퓨터 저장 장치를 포함하고,
    상기 방법은,
    상기 터치 스크린의 표면을 가로질러 물체에 의해 만들어지는 경로 상의 복수의 접촉 지점들을 수신하는 단계;
    상기 복수의 접촉 지점들을 입력으로서 사용하여, 시작 접촉 지점과 종료 접촉 지점을 가지는 액티브 큐빅 베지어 근사(active cubic Bezier approximation)를 계산하는 단계;
    상기 터치 스크린에 대한 습식 잉크 레이턴시 기간을 결정하는 단계;
    상기 습식 잉크 레이턴시 기간 동안 상기 물체가 이동해야 하는 예측 거리를 결정하는 단계;
    상기 종료 접촉 지점으로부터 상기 예측 거리만큼 연장되는 새로운 큐빅 베지어 근사를 계산하는 단계; 및
    상기 새로운 큐빅 베지어 근사에 기초한 예측 습식 잉크와 함께 상기 액티브 큐빅 베지어 근사에 기초한 습식 잉크를 렌더링하는 단계
    를 포함하는 것인, 터치스크린 디스플레이 장치.
  2. 제1항에 있어서,
    상기 방법은 상기 터치 스크린을 가로지르는 상기 물체의 속도를 결정하는 단계를 더 포함하고, 상기 예측 거리는 상기 속도를 사용하여 결정되는 것인, 터치 스크린 디스플레이 장치.
  3. 제2항에 있어서,
    상기 방법은 상기 터치 스크린을 가로지르는 상기 물체의 가속도를 결정하는 단계를 더 포함하고, 상기 예측 거리는 상기 속도 및 상기 가속도를 사용하여 결정되는 것인, 터치 스크린 디스플레이 장치.
  4. 제2항에 있어서,
    상기 방법은 상기 속도를 입력으로서 사용하여 상기 습식 잉크에 대한 두께를 계산하는 단계를 더 포함하는 것인, 터치 스크린 디스플레이 장치.
  5. 제1항에 있어서,
    상기 종료 접촉 지점은 상기 복수의 접촉 지점들 중 다른 모든 접촉 지점들과 연관된 타임 스탬프에 후속하는 타임 스탬프를 가지는 것인, 터치 스크린 디스플레이 장치.
  6. 제1항에 있어서,
    상기 습식 잉크 레이턴시 기간은, 상기 물체가 상기 터치 스크린에 접촉 지점에서 접촉할 때의 제1 시점과 습식 잉크 계산으로의 입력으로서 상기 접촉 지점을 사용하여 습식 잉크가 렌더링되는 제2 시점 사이의 시간 양인 것인, 터치 스크린 디스플레이 장치.
  7. 제1항에 있어서,
    상기 물체는 손가락인 것인, 터치 스크린 디스플레이 장치.
  8. 터치 스크린 장치 상에 예측 습식 잉크를 렌더링하는 방법에 있어서,
    상기 터치 스크린 장치와 통합된 터치 스크린의 표면을 가로질러 물체에 의해 만들어지는 경로 상의 복수의 접촉 지점들을, 상기 터치 스크린 장치 상에서 수신하는 단계;
    복수의 필터링된 접촉 지점들을 생성하는 단계;
    상기 복수의 필터링된 접촉 지점들을 입력으로서 사용하여, 시작 접촉 지점과 종료 접촉 지점을 가지는 액티브 큐빅 베지어 근사(active cubic Bezier approximation)를 계산하는 단계;
    상기 터치 스크린 장치에 대한 습식 잉크 레이턴시 기간을 결정하는 단계;
    상기 습식 잉크 레이턴시 기간 동안 상기 물체가 이동해야 하는 예측 거리를 결정하는 단계;
    상기 종료 접촉 지점으로부터 상기 예측 거리만큼 연장되는 새로운 큐빅 베지어 근사를 계산하는 단계; 및
    상기 새로운 큐빅 베지어 근사에 기초한 예측 습식 잉크와 함께 상기 액티브 큐빅 베지어 근사에 기초한 습식 잉크를 렌더링하는 단계
    를 포함하는, 예측 습식 잉크 렌더링 방법.
  9. 제8항에 있어서,
    상기 습식 잉크 레이턴시 기간은 어떤 위치에서의 상기 물체의 상기 터치 스크린과의 접촉과 상기 위치에 대응하는 지점을 고려하는 상기 터치 스크린상의 습식 잉크의 디스플레이 사이의 시간 양인 것인, 예측 습식 잉크 렌더링 방법.
  10. 제8항에 있어서,
    상기 복수의 필터링된 접촉 지점들은 상기 복수의 접촉 지점들에 EAn 무한 임펄스 응답 필터를 실행함으로써 생성되는 것인, 예측 습식 잉크 렌더링 방법.
  11. 제8항에 있어서,
    상기 터치 스크린을 가로지르는 상기 물체의 속도를 결정하는 단계를 더 포함하고, 상기 예측 거리는 상기 속도를 사용하여 결정되는 것인, 예측 습식 잉크 렌더링 방법.
  12. 제11항에 있어서,
    상기 속도를 입력으로서 사용하여 상기 습식 잉크에 대한 두께를 계산하는 단계를 더 포함하는 것인, 예측 습식 잉크 렌더링 방법.
  13. 제11항에 있어서,
    상기 속도는 두 개의 연속적인 잉크 지점들 사이의 거리를 상기 터치 스크린에 대한 샘플링 시간으로 나눔으로써 계산되는 것인, 예측 습식 잉크 렌더링 방법.
  14. 터치스크린 디스플레이 장치에 있어서,
    프로세서;
    터치 스크린; 및
    상기 프로세서에 의해 수행될 때 압력 데이터를 접촉 지점들에 할당(assign)하는 방법을 수행하는 컴퓨터 실행 가능 명령어들을 포함하는 컴퓨터 저장 장치를 포함하고,
    상기 방법은,
    상기 터치 스크린으로부터 압력 정보와 연관되지 않은 제1 접촉 지점 - 상기 제1 접촉 지점은 상기 터치 스크린의 표면을 가로질러 물체에 의해 만들어지는 경로 상의 복수의 접촉 지점들 중 하나임 - 을 수신하는 단계;
    상기 제1 접촉 지점에서 상기 물체의 속도를 결정하는 단계;
    상기 속도에 대응하는 압력을 결정하는 단계;
    업데이트된 제1 접촉 지점을 생성하기 위하여 상기 압력을 상기 제1 접촉 지점과 연관시키는 단계; 및
    디지털 잉크를 렌더링하기 위해 상기 업데이트된 제1 접촉 지점을 사용하는 단계
    를 포함하는 것인, 터치스크린 디스플레이 장치.
  15. 제14항에 있어서,
    상기 방법은, 상기 디지털 잉크의 두께를 결정하기 위해 상기 업데이트된 제1 접촉 지점과 연관된 압력을 사용하는 단계를 더 포함하는 것인, 터치스크린 디스플레이 장치.
KR1020177011642A 2014-09-29 2015-09-24 습식 잉크 예측기 KR102412021B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462057025P 2014-09-29 2014-09-29
US62/057,025 2014-09-29
US14/856,167 2015-09-16
US14/856,167 US10338725B2 (en) 2014-09-29 2015-09-16 Wet ink predictor
PCT/US2015/051828 WO2016053727A1 (en) 2014-09-29 2015-09-24 Wet ink predictor

Publications (2)

Publication Number Publication Date
KR20170061703A true KR20170061703A (ko) 2017-06-05
KR102412021B1 KR102412021B1 (ko) 2022-06-21

Family

ID=55584365

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177011642A KR102412021B1 (ko) 2014-09-29 2015-09-24 습식 잉크 예측기

Country Status (11)

Country Link
US (2) US10338725B2 (ko)
EP (2) EP3201740B1 (ko)
JP (1) JP2017529623A (ko)
KR (1) KR102412021B1 (ko)
CN (1) CN107003993B (ko)
AU (1) AU2015324295A1 (ko)
BR (1) BR112017004012A2 (ko)
CA (1) CA2961254A1 (ko)
MX (1) MX2017004057A (ko)
RU (1) RU2017108531A (ko)
WO (1) WO2016053727A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170061134A (ko) * 2014-09-29 2017-06-02 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 저 레이턴시 잉크 렌더링 파이프라인 기법
WO2022164043A1 (ko) * 2021-01-28 2022-08-04 삼성전자 주식회사 터치 입력의 가속도 및/또는 각 가속도를 이용하여 예측 알고리즘의 적용 여부를 판단하는 전자 장치 및 그 제어 방법
WO2023008677A1 (ko) * 2021-07-29 2023-02-02 삼성전자 주식회사 전자 장치 및 입력 좌표 예측 방법

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015141260A1 (ja) * 2014-03-17 2015-09-24 株式会社河合楽器製作所 手書き音楽記号認識装置およびプログラム
KR102314110B1 (ko) * 2014-09-16 2021-10-18 삼성디스플레이 주식회사 시각화 가속부를 포함하는 터치 표시 장치
SG11201703438YA (en) * 2014-11-18 2017-06-29 Tactual Labs Co System and method for timing input sensing, rendering, and display to minimize latency
US9756375B2 (en) * 2015-01-22 2017-09-05 Microsoft Technology Licensing, Llc Predictive server-side rendering of scenes
WO2016122385A1 (en) 2015-01-28 2016-08-04 Flatfrog Laboratories Ab Dynamic touch quarantine frames
EP3537269A1 (en) 2015-02-09 2019-09-11 FlatFrog Laboratories AB Optical touch system
US10554713B2 (en) 2015-06-19 2020-02-04 Microsoft Technology Licensing, Llc Low latency application streaming using temporal frame transformation
EP3387516B1 (en) 2015-12-09 2022-04-20 FlatFrog Laboratories AB Improved stylus identification
US20170236318A1 (en) * 2016-02-15 2017-08-17 Microsoft Technology Licensing, Llc Animated Digital Ink
US10802711B2 (en) 2016-05-10 2020-10-13 Google Llc Volumetric virtual reality keyboard methods, user interface, and interactions
US9847079B2 (en) * 2016-05-10 2017-12-19 Google Llc Methods and apparatus to use predicted actions in virtual reality environments
US10126873B2 (en) * 2016-06-24 2018-11-13 Wacom Co., Ltd. Stroke continuation for dropped touches on electronic handwriting devices
GB201618288D0 (en) 2016-10-28 2016-12-14 Remarkable As Interactive displays
PL3667475T3 (pl) 2016-12-07 2022-11-21 Flatfrog Laboratories Ab Zakrzywione urządzenie dotykowe
EP3458946B1 (en) 2017-02-06 2020-10-21 FlatFrog Laboratories AB Optical coupling in touch-sensing systems
US10627910B2 (en) * 2017-02-21 2020-04-21 Adobe Inc. Stroke operation prediction for three-dimensional digital content
EP3602258B1 (en) 2017-03-22 2024-05-08 FlatFrog Laboratories AB Pen differentiation for touch displays
CN110663015A (zh) 2017-03-28 2020-01-07 平蛙实验室股份公司 触摸感应装置和用于组装的方法
US10657682B2 (en) 2017-04-12 2020-05-19 Adobe Inc. Drawing curves in space guided by 3-D objects
US11256371B2 (en) 2017-09-01 2022-02-22 Flatfrog Laboratories Ab Optical component
CN107608619A (zh) * 2017-09-20 2018-01-19 广州视源电子科技股份有限公司 用于触控屏的笔迹曲线生成方法、装置、设备和存储介质
US11567610B2 (en) 2018-03-05 2023-01-31 Flatfrog Laboratories Ab Detection line broadening
WO2019172829A1 (en) * 2018-03-08 2019-09-12 Flatfrog Laboratories Ab Touch apparatus
US10924525B2 (en) 2018-10-01 2021-02-16 Microsoft Technology Licensing, Llc Inducing higher input latency in multiplayer programs
CN109558059B (zh) * 2018-11-12 2021-10-22 大陆汽车车身电子系统(芜湖)有限公司 手写轨迹绘制方法及装置
WO2020153890A1 (en) 2019-01-25 2020-07-30 Flatfrog Laboratories Ab A videoconferencing terminal and method of operating the same
CN111974616B (zh) * 2019-10-23 2023-01-03 广东安达智能装备股份有限公司 一种点胶方法、装置、计算机设备及存储介质
GB2591766B (en) 2020-02-04 2023-02-08 Peratech Holdco Ltd Maintaining pressure input paths
JP2023512682A (ja) 2020-02-10 2023-03-28 フラットフロッグ ラボラトリーズ アーベー 改良型タッチ検知装置
US10976867B1 (en) * 2020-03-06 2021-04-13 Wacom Co., Ltd. System and method providing pen up positioning assist for a sensor surface
JP7163545B2 (ja) * 2020-03-30 2022-11-01 東芝情報システム株式会社 タッチパネル装置及びタッチパネル用プログラム
KR20220049407A (ko) * 2020-10-14 2022-04-21 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
CN112306301A (zh) * 2020-11-02 2021-02-02 北京小米移动软件有限公司 触控数据的处理方法、装置、设备及存储介质
CN112506413B (zh) * 2020-12-16 2022-06-07 Oppo广东移动通信有限公司 触控点预测方法、装置、终端设备及计算机可读存储介质
JP2022133602A (ja) * 2021-03-02 2022-09-14 シャープ株式会社 タッチ入力装置、タッチ入力方法、及びタッチ入力プログラム
WO2023157556A1 (ja) * 2022-02-21 2023-08-24 株式会社ワコム ペン及びペン位置検出装置を含むシステム、ペン位置検出装置、並びに、ペンに内蔵されるハプティクス素子を動作させる方法
US20230419033A1 (en) * 2022-06-28 2023-12-28 Microsoft Technology Licensing, Llc Generating predicted ink stroke information using text-based semantics

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080074470A (ko) * 2007-02-09 2008-08-13 (주)펜앤프리 필기 입력 방법 및 장치와 이를 이용하는 입력 시스템
KR20110008719A (ko) * 2009-07-21 2011-01-27 (주)펜앤프리 필기 패턴에 따른 필기 정보 입력 장치 및 필기 정보 입력 방법

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100595925B1 (ko) 1998-01-26 2006-07-05 웨인 웨스터만 수동 입력 통합 방법 및 장치
US6771266B2 (en) 2001-01-16 2004-08-03 Microsoft Corporation Method and apparatus for improving the appearance of digitally represented handwriting
US7057615B2 (en) 2001-06-28 2006-06-06 Microsoft Corporation Method and system for representing and displaying digital ink
US20040140962A1 (en) 2003-01-21 2004-07-22 Microsoft Corporation Inertial sensors integration
GB2406028A (en) * 2003-09-11 2005-03-16 Autodesk Canada Inc Tangent handle adjustment for Bezier curves
US7437003B1 (en) 2003-12-16 2008-10-14 Evernote Corp. System and method for handling electronic ink
US7697002B2 (en) * 2007-01-25 2010-04-13 Ricoh Co. Ltd. Varying hand-drawn line width for display
US8014630B1 (en) 2007-05-02 2011-09-06 Evernote Corporation Method and apparatus for representing image data using digital filtering and adaptive parameterization
US9529842B2 (en) * 2009-12-28 2016-12-27 International Business Machines Corporation Dynamically creating queries to find related records in a database
JPWO2011099439A1 (ja) * 2010-02-09 2013-06-13 マークデバイシス株式会社 反共振周波数可変型複合共振回路
US8847961B2 (en) 2010-06-14 2014-09-30 Microsoft Corporation Geometry, speed, pressure, and anti-aliasing for ink rendering
US9189147B2 (en) * 2010-06-22 2015-11-17 Microsoft Technology Licensing, Llc Ink lag compensation techniques
CN201811064U (zh) * 2010-07-27 2011-04-27 张冰 一种圣诞灯
CN102622120B (zh) 2011-01-31 2015-07-08 宸鸿光电科技股份有限公司 多点触控面板的触碰轨迹追踪方法
US10452790B2 (en) * 2011-03-17 2019-10-22 Aditazz, Inc. System and method for evaluating the energy use of multiple different building massing configurations
US10061997B2 (en) * 2011-04-11 2018-08-28 Apple Inc. Handwriting capture techniques
TW201322070A (zh) * 2011-11-21 2013-06-01 Novatek Microelectronics Corp 雜訊過濾方法
KR20130060145A (ko) * 2011-11-29 2013-06-07 삼성전자주식회사 수기 입력의 처리 방법 및 장치
US20130271487A1 (en) * 2012-04-11 2013-10-17 Research In Motion Limited Position lag reduction for computer drawing
JP6034138B2 (ja) * 2012-11-01 2016-11-30 株式会社東芝 電子機器、筆跡表示方法およびプログラム
TW201435666A (zh) * 2013-03-06 2014-09-16 Waltop Int Corp 電磁筆控制方法
US9529525B2 (en) * 2013-08-30 2016-12-27 Nvidia Corporation Methods and apparatus for reducing perceived pen-to-ink latency on touchpad devices
EP3103005B1 (en) * 2014-02-04 2019-06-19 Sony Corporation Predictive input system for touch and touchless displays
US20150242115A1 (en) * 2014-02-21 2015-08-27 Qualcomm Incorporated Systems and methods for improved signal to noise ratio in touch systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080074470A (ko) * 2007-02-09 2008-08-13 (주)펜앤프리 필기 입력 방법 및 장치와 이를 이용하는 입력 시스템
KR20110008719A (ko) * 2009-07-21 2011-01-27 (주)펜앤프리 필기 패턴에 따른 필기 정보 입력 장치 및 필기 정보 입력 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170061134A (ko) * 2014-09-29 2017-06-02 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 저 레이턴시 잉크 렌더링 파이프라인 기법
WO2022164043A1 (ko) * 2021-01-28 2022-08-04 삼성전자 주식회사 터치 입력의 가속도 및/또는 각 가속도를 이용하여 예측 알고리즘의 적용 여부를 판단하는 전자 장치 및 그 제어 방법
WO2023008677A1 (ko) * 2021-07-29 2023-02-02 삼성전자 주식회사 전자 장치 및 입력 좌표 예측 방법
US11669201B2 (en) 2021-07-29 2023-06-06 Samsung Electronics Co., Ltd. Electronic device and method for input coordinate prediction

Also Published As

Publication number Publication date
US20190220137A1 (en) 2019-07-18
BR112017004012A2 (pt) 2017-12-05
MX2017004057A (es) 2017-06-12
CN107003993A (zh) 2017-08-01
WO2016053727A1 (en) 2016-04-07
JP2017529623A (ja) 2017-10-05
CA2961254A1 (en) 2016-04-07
EP3680757B1 (en) 2023-11-29
EP3680757A1 (en) 2020-07-15
RU2017108531A (ru) 2018-09-17
EP3201740B1 (en) 2020-03-18
CN107003993B (zh) 2020-07-31
KR102412021B1 (ko) 2022-06-21
US20160092021A1 (en) 2016-03-31
US10338725B2 (en) 2019-07-02
EP3201740A1 (en) 2017-08-09
AU2015324295A1 (en) 2017-03-16
US10719168B2 (en) 2020-07-21

Similar Documents

Publication Publication Date Title
US10719168B2 (en) Wet ink predictor
US9207858B2 (en) Method and apparatus for drawing and erasing calligraphic ink objects on a display surface
JP6869249B2 (ja) 2つのタイプのインクベクトルデータを生成して選択的に出力する方法及びシステム
KR102450683B1 (ko) 디지털 잉크의 스무딩 및 gpu-구동 렌더링
US9020266B2 (en) Methods and devices for processing handwriting input
KR20170046131A (ko) 디지털 잉크의 선택을 검출하는 기법
US20200066232A1 (en) Input display device, input display method, and computer-readable medium
US9898841B2 (en) Synchronizing digital ink stroke rendering
US20190096100A1 (en) Ink space coordinate system for a digital ink stroke
KR20160003683A (ko) 시각화된 데이터를 상호작용에 기초하여 자동으로 조작하는 기법
KR102352536B1 (ko) 저 레이턴시 잉크 렌더링 파이프라인 기법
US9035953B1 (en) Systems and methods for computer-assisted drawings
US9396390B2 (en) Systems and methods for sketch processing
CN110162251A (zh) 图像缩放方法及装置、存储介质、电子设备
TW201911235A (zh) 線段平滑化方法、系統以及電腦可讀取媒體

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant