KR102323892B1 - 멀티 터치 가상 마우스 - Google Patents
멀티 터치 가상 마우스 Download PDFInfo
- Publication number
- KR102323892B1 KR102323892B1 KR1020177013861A KR20177013861A KR102323892B1 KR 102323892 B1 KR102323892 B1 KR 102323892B1 KR 1020177013861 A KR1020177013861 A KR 1020177013861A KR 20177013861 A KR20177013861 A KR 20177013861A KR 102323892 B1 KR102323892 B1 KR 102323892B1
- Authority
- KR
- South Korea
- Prior art keywords
- screen
- contact
- touch
- cursor
- kernel
- Prior art date
Links
Images
Classifications
-
- 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/0416—Control or interface arrangements specially adapted for digitisers
-
- 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/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- 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/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04812—Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
-
- 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/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- 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
-
- 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
- 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/04886—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 by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04808—Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
-
- 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/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Position Input By Displaying (AREA)
Abstract
일부 실시예에 따라, 터치 스크린 또는 트랙 패드 또는 터치 패드와 같은 터치 입력 디바이스는 하나 초과의 핑거를 동시에 터치 스크린에 터치함으로써 마우스 모드로 작동될 수 있다. 일 실시예에서, 세 개의 핑거가 이용될 수 있다. 일 실시예에서 세 개의 핑거는 인덱스 핑거 및 중앙 핑거와 더불어 엄지 핑거일 수 있다. 인덱스 핑거 및 중앙 핑거는 가상 마우스 모드로 진입하기 위해 좌측 클릭 또는 우측 클릭하는데 사용될 수 있다.
Description
본 발명은 일반적으로 터치 스크린 커서를 제어하는 마우스 커맨드의 사용에 관한 것이다.
종래의 프로세서 기반 시스템들, 가령, 랩탑 컴퓨터, 데스크탑 컴퓨터, 셀룰러 텔레폰, 매체 재생 디바이스(가령, 게임 디바이스) 및 다른 그러한 디바이스에서, 터치 스크린 입력형 마우스 커맨드는 키보드 또는 마우스 입력형 커서 커맨드의 사용에 대한 대체물을 제공한다. 가령, 마우스 커맨드는 디스플레이 스크린 상에서의 선택을 행하기 위해 커서를 이동시키는 데 사용될 수 있다. 기존에 마우스는 사용자의 손에 파지되고 그 마우스의 이동에 의해 커서가 이동된다. 그 마우스 상의 버튼을 클릭하게 되면 커서에 의해 중첩된 디스플레이된 객체가 선택될 수 있다.
일부의 경우에, 모바일 사용자는 마우스의 사용이 불편하다는 것을 알 수 있는데, 그 이유는 셀룰러 텔레폰과 같은 실제의 프로세서 기반 디바이스보다 더 대형일 수 있는 추가적인 디바이스가 수반될 필요가 있기 때문이다. 또한, 셀룰러 텔레폰에서 발견되는 것과 같은 소형의 스크린 디바이스의 경우, 그 스크린상에서 디스플레이되는 일부의 보다 소형의 특징들을 선택하기에는 스크린 공간이 충분하지 않을 수 있다. 또다른 문제는 모바일 사용자가 마우스 커서를 디스플레이 스크린 상의 소형의 아이콘 버튼 또는 링크의 경우의 특정 위치에 정확히 배치하는 것이 곤란할 수 있다는 것이다.
일부 실시예들은 아래의 도면과 관련하여 기술된다.
도 1은 일 실시예에 따른 디스플레이 스크린 상의 사용자의 우측 손의 상면도이다.
도 2는 일 실시예에 따른 디스플레이 스크린 상의 사용자의 좌측 손의 상면도이다.
도 3은 일 실시예에 따른 디스플레이 스크린의 중심에서의 사용자의 포인터 핑거의 상면도이다.
도 4는 일 실시예에 따른 디스플레이 스크린의 좌측 상에서 사용자의 손의 우측 클릭의 상면도이다.
도 5는 일 실시예에 따른 디스플레이 스크린의 우측 상에서 사용자의 손의 상면도이다.
도 6은 일 실시예에 따른 디스플레이 스크린의 바닥 중심 상에서 사용자의 손의 상면도이다.
도 7은 일 실시예에 따른 디스플레이 스크린의 바닥 좌측 에지 상에서의 상면도이다.
도 8은 일 실시예에 따른 디스플레이의 바닥 우측 에지 상에서의 사용자의 손의 상면도이다.
도 9는 일 실시예에 따른 좌측 마우스 클릭 동작의 상면도이다.
도 10은 일 실시예에 따른 우측 마우스 클릭 동작의 상면도이다.
도 11은 일 실시예에 따른 필터의 개략적인 도면이다.
도 12는 일 실시예에 따른 필터 드라이버 아키텍처의 개략적인 도면이다.
도 13은 일 실시예에 따른 도 12의 필터 드라이버의 개략적인 도면이다.
도 14는 일 실시예에 따른 필터 드라이버 상태 머신에 대한 플로우챠트이다.
도 15는 일 실시예에 따른 가상 마우스 모드를 활성화시키는 사용자의 상면도이다.
도 16은 일 실시예에 따른 커서 이동 커맨드를 시작하는 사용자의 상면도이다.
도 17은 일 실시예에 따른 커서 이동 커맨드의 과정에서의 사용자의 상면도이다.
도 18(a)는 일 실시예에 따른 좌측 마우스 클릭 동작의 상면도이다.
도 18(b)는 일 실시예에 따른 우측 마우스 클릭 동작의 상면도이다.
도 19는 일 실시예를 위한 플로우챠트이다.
도 1은 일 실시예에 따른 디스플레이 스크린 상의 사용자의 우측 손의 상면도이다.
도 2는 일 실시예에 따른 디스플레이 스크린 상의 사용자의 좌측 손의 상면도이다.
도 3은 일 실시예에 따른 디스플레이 스크린의 중심에서의 사용자의 포인터 핑거의 상면도이다.
도 4는 일 실시예에 따른 디스플레이 스크린의 좌측 상에서 사용자의 손의 우측 클릭의 상면도이다.
도 5는 일 실시예에 따른 디스플레이 스크린의 우측 상에서 사용자의 손의 상면도이다.
도 6은 일 실시예에 따른 디스플레이 스크린의 바닥 중심 상에서 사용자의 손의 상면도이다.
도 7은 일 실시예에 따른 디스플레이 스크린의 바닥 좌측 에지 상에서의 상면도이다.
도 8은 일 실시예에 따른 디스플레이의 바닥 우측 에지 상에서의 사용자의 손의 상면도이다.
도 9는 일 실시예에 따른 좌측 마우스 클릭 동작의 상면도이다.
도 10은 일 실시예에 따른 우측 마우스 클릭 동작의 상면도이다.
도 11은 일 실시예에 따른 필터의 개략적인 도면이다.
도 12는 일 실시예에 따른 필터 드라이버 아키텍처의 개략적인 도면이다.
도 13은 일 실시예에 따른 도 12의 필터 드라이버의 개략적인 도면이다.
도 14는 일 실시예에 따른 필터 드라이버 상태 머신에 대한 플로우챠트이다.
도 15는 일 실시예에 따른 가상 마우스 모드를 활성화시키는 사용자의 상면도이다.
도 16은 일 실시예에 따른 커서 이동 커맨드를 시작하는 사용자의 상면도이다.
도 17은 일 실시예에 따른 커서 이동 커맨드의 과정에서의 사용자의 상면도이다.
도 18(a)는 일 실시예에 따른 좌측 마우스 클릭 동작의 상면도이다.
도 18(b)는 일 실시예에 따른 우측 마우스 클릭 동작의 상면도이다.
도 19는 일 실시예를 위한 플로우챠트이다.
필터는 터치 제스처 인식을 위해 터치 입력 스트림 내에 삽입될 수 있다. 그 후, 이 스트림은 일부 실시예에서 마우스 에뮬레이터로 전환될 수 있다. 그러나, 이러한 개념은 또한 다른 입력/출력 디바이스로 확장될 수 있다. 가령, 오디오 입력 스트림 내의 필터는 음성 인식용으로 사용될 수 있지만 그 후 이 필터는 이 스트림을 음성 검출 번역을 수행하는 키보드 에뮬레이터로 전환할 수 있다. 따라서, 터치 입력 스트림의 맥락을 따르는 예들은 본 개시물의 영역을 제한하는 것으로 간주되지 않아야 한다.
터치 스크린은 일 실시예에서 상이한 모드로 동작할 수 있다. 정상 모드에서, 이 터치 스크린은 운영 체제에 의해 정의되는 바와 같은 단일 핑거, 멀티 핑거 및 펜/스타일러스 및 모든 관련 제스처에 응답한다. 특정의 제스처(아래에 정의됨)를 검출하게 되면, 터치 스크린은 가상 마우스 모드로 진입하게 된다. 이러한 가상 마우스 모드에서, 정상 터치 응답들은 디스에이블되고 이 터치 스크린은 가상 마우스/터치패드와 같이 기능한다. 일 실시예에서 모든 핑거들이 리프팅될 때, 터치 스크린은 즉시 정상 모드로 복귀한다.
본 명세서에 사용되는 바와 같이, 터치 입력 디바이스는 이 입력 디바이스에 터치되는 복수의 핑거를 검출하는 멀티 터치 입력 디바이스이다.
일 실시예에서 이 가상 마우스 모드를 시작하기 위해, 사용자는 도 1에 도시된 바와 같이 임의의 세 개의 핑거를 사용하여 터치 스크린에 터치되는 세 개의 핑거의 제스처를 사용한다. 사용자는 일 실시예에서 수 밀리초 동안 이러한 제스처를 유지한다. 포인터 핑거(pointer finger)로 지칭되는 핑거들 중의 하나는 마우스 커서를 제어한다. 개시되는 세 개의 핑거 제스처에서, 이 포인터 핑거는 터치 스크린에 터치되는 세 개의 핑거 중 중앙에 위치하는 핑거 P이다(세 개의 핑거들의 포지션들의 x 값들을 비교함으로써 획득된다). 이 포인터 핑거는 다른 핑거들 중의 적어도 하나 위에 있으며, 따라서 커서 C는 사용자에 의해 쉽게 보일 수 있다. 사용자는 가상 마우스 모드를 유지하도록 포인터 핑거를 터치 스크린 상에서 유지한다.
사용자는 이 포인터 핑거를 터치 스크린 주위로 단순히 이동시킴으로써 커서를 이동시킬 수 있다. 커서는 사용자에게 보일 수 있도록 확실히 하기 위해 포인터 핑거 근처에서 약간의 거리에 위치하며, 따라서 그 커서는 또한 포인터 핑거에 접속된 것처럼 보이기도 한다. 그 정확한 포지션은 터치 스크린 내의 포인터 핑거의 포지션에 따라 달라진다.
핑거 컨택들을 마우스 입력들로서 사용하는 경우의 한 가지 문제점은 커서가 전체 터치 스크린을 커버하도록 인에이블시키는 데 있다. 이 터치 스크린은 에지(edges) 및 코너(corners)를 포함한다. 따라서, 이 커서는 이 커서가 터치 스크린의 어떤 부분에 위치하는지에 따라 포인터 핑거에 대해 상이한 포지션으로 동적으로 이동된다. 만약 포인터 핑거가 도 2에 도시된 바와 같이 터치 스크린의 중심 위에 존재하면, 커서 C는 포인터 핑거 P를 중심에 갖는 가상의 하프 타원 E 위의 중앙에 위치하게 된다.
터치 스크린에 걸쳐 연장되는 x 축을 따른 포인터 핑거의 포지션에 따라, 상기 커서는 상기 타원의 근처에서의 상이한 포인트에 위치하게 된다. 포인터 핑거의 터치 포인트는 도 2 내지 8에서 원 D로 표현된다. 이 포인터 핑거가 터치 스크린의 중심에 있을 때, 커서 C는 도 3에 도시된 바와 같은 D에서의 포인터 핑거 위에 위치하게 된다. 이 포인터 핑거가 터치 스크린의 좌측 에지에 근접하게 되면, 상기 커서는 도 4에 도시된 바와 같이 포인터 핑거의 좌측 상의 타원을 따라 위치하게 된다. 이 포인터 핑거가 우측 에지에 근접하게 되면, 상기 커서는 도 5에 도시된 바와 같이 포인터 핑거의 우측 상의 타원을 따라 위치하게 된다. 만약 이 포인터 핑거가 터치 스크린의 중심 아래에 있다면, 상기 커서는, y-오프셋(Yo)이 커서 포지션의 y 값에 부가된다는 점을 제외하면, 전술한 바와 같이 위치하게 된다. 이는 커서 C가 도 6에 도시된 바와 같이 터치 스크린의 바닥에 도달할 수 있게 한다.
y-오프셋의 값은 상기 포인터 핑거로부터 y 축을 따라 상기 터치 스크린의 중심까지의 거리에 의존한다. 포인터 핑거가 위에서 언급한 케이스들 사이에서 이동할 경우, 상기 커서는 상기 하프 타원 주위에서 하프 타원을 가로 질러 부드럽게 이동한다. 이러한 방법은 도 7 및 8에 도시된 바와 같이, 점프를 행하지 않고, 코너를 포함하여 터치 스크린 내의 임의의 장소에 커서가 도달할 수 있게 한다. 도 7에서, 포인터 핑거는 터치 스크린의 바닥 좌측 부분에 있다. 도 8에서, 포인터 핑거는 터치 스크린의 바닥 우측 부분에 위치한다.
가상 마우스 모드에서 있을 때, 사용자는 포인터 핑거 외의 임의의 핑거를 사용하여 좌측 및 우측 클릭을 수행할 수 있다. 사용자의 엄지 손가락 밑의 동심원들 E에 의해 표시되는, 포인터 핑거의 좌측 부분 상의 임의의 터치는 도 9에 도시된 바와 같은 좌측 클릭으로 간주된다. 사용자의 중앙 손가락 밑의 동심원들 F에 의해 표시되는, 포인터 핑거의 우측 부분 상의 임의의 터치는 도 10에 도시된 바와 같은 우측 클릭으로 간주된다. 터치 및 유지는 마우스 버튼 다운(mouse button downs)인 것으로 간주되며 해제는 마우스 버튼 업(mouse button up)인 것으로 간주된다. 사용자는 터치 스크린으로부터 포인터 핑거를 해제시키거나 임의의 핑거를 사용하여 4 개 이상의 터치를 수행함으로써 터치 모드(기존의 가상 마우스 모드)로 되돌아갈 수 있다.
도 11에 도시된 아키텍처(10)는 그래픽 엔진 또는 그래픽 프로세싱 유닛 코어(12) 상에서 터치 디지털 프로세싱을 수행한다. 이는 일부 실시예에서 보다 나은 성능 및 스케일능력(scalability)을 갖는 터치 프로세싱 알고리즘들의 실행을 가능하게 한다. 터치 프로세싱 알고리즘들은 초기화 동안 로딩되는 그래픽 커널들 내에 구현된다. 이러한 커널들은 일 실시예에서 OpenCL 코드(14) 내에 기입된다.
스트리밍 터치 데이터에 대한 커널들의 시퀀스가 실행된다. 터치 집적 회로(IC)(18) 벤더들은 그래픽 프로세싱 유닛(GPU)(12)에서 최종 터치 X-Y 좌표들을 생성하기 위해 터치 센서(16)로부터의 원시 터치 데이터를 프로세싱하는 커널(알고리즘)(20)을 제공한다. 이러한 데이터는 표준 터치 휴먼 인터페이스 디바이스(HID) 패킷(24)으로서 운영 체제(22)로 전달된다.
이러한 아키텍처는 추가적인 사후 프로세싱(post-processing) 커널들의 체이닝(chaining)을 가능하게 하며, 이 커널들은 또한 OS에 이르기 전에 터치 데이터를 프로세싱할 수 있다.
가상 마우스는 도 11에 도시된 바와 같이 사후 프로세싱 커널(26) 내에 구현된다. 사후 프로세싱 솔루션은 벤더 커널과는 독립적으로 범용 알고리즘들이 실행될 수 있게 한다. 사후 프로세싱 커널들이 터치 IC 벤더와는 독립적으로 실행되기 때문에, 독립적인 하드웨어 벤더(IHV)와는 무관하다. 데이터 포맷에서 벤더 차이점을 통합하기 위해, 구성 데이터(configuration data)는 모든 터치 IC 벤더들에 걸쳐 데이터를 정렬한다. 이러한 펌웨어는 초기화 동안에 로딩되고, GPU 상에서 실행되며 운영 제체로부터 어떠한 의존성도 가지지 않기 때문에, 운영 제체 벤더(OSV)와는 독립적이다.
사후 프로세싱 커널들은, 데이터를 한 커널에서 그 다음 커널로 흐르게 하여 그 커널들이 이전에 프로세싱된 데이터에 대한 실행을 가능하게 하는 체이닝된 실행 모델(chained execution model)을 따르게 된다. 각각의 커널은 특정의 운영 체제 또는 터치 제어기로 적응되는 데 사용될 수 있다. 이러한 커널들의 포지션은 구성의 부분(part of configuration)으로서 사용자에 의해 특정된다. 하드웨어 상에서의 실행 능력은 소프트웨어 스택을 불러오지 않고도 이러한 알고리즘들이 실행될 수 있게 한다. 사후 프로세싱 커널들은, 데이터를 카피하거나 사후 프로세싱 커널들을 실행하기 위한 임의의 외부 개입(external intervention)에 대한 필요성을 경감하는 벤더 커널과 동시에 실행된다. 제스처 및 터치 데이터 필터링은 가상 마우스 기능에 추가하여 사후 프로세싱에서 구현될 수 있다.
터치 제어기(18)는 원시 센서 데이터를 취하고, 이를, 커널들, OS, 또는 애플리케이션들에 의해 사용될 수 있는 순수한(clean) 디지털 터치 포인트 정보로 변환한다. 이 데이터는 터치 HID 패킷(24)으로서 전송된다. 이러한 HID 패킷들은 OS에 진행하기 전에 전술한 바와 같이 GPU 상에서 실행되는 커널(20)의 시퀀스를 통과하게 된다.
가상 마우스 커널 또는 터치/마우스 스위치(30)는 상태 머신 처럼 동작한다. 이 스위치는 가상 마우스의 스테이터스(온 또는 오프)와 커서의 포지션과 관련한 다른 정보를 저장하는 내부 상태(internal state)를 유지한다.
가상 마우스 커널(26)은, 입력으로서, HID 패킷의 스트림을 취하고, 그리고 가상 마우스 모드를 시작하는 데 사용되는 제스처를 검출하기 위해 제스처 인식(25)을 수행한다. 가상 마우스 모드에 있지 않을 때, 상기 커널의 출력은 터치 HID 패킷(24)이 된다. 가상 마우스 모드에 있을 때, 터치 HID 패킷은 상기 스위치(30)에 의해 차단되고, 상기 커널의 출력은 마우스 HID 패킷(32)이 된다. 터치 HID 패킷 또는 마우스 HID 패킷은 OS(22)로 전달되며, OS(22)는 상기 스위치(30)에서 상기 패킷의 필터링에 대해서는 알지 못한다. OS는 그 후 애플리케이션들(APPS)(34)에 기반하여 마우스 및 터치 모드를 핸들링한다.
터치 스크린 상의 포인터 핑거의 포지션을 고려하여 가상 마우스에 대한 정확한 좌표들을 계산하는 알고리즘이 커널(26) 내로 구축된다.
가상 마우스를 구현하는 다른 방식은 드라이버를 통해 터치 데이터 프로세싱 및 터치 필터링을 행하는 것이다. 제스처 인식 알고리즘 및 터치 HID 패킷들의 필터링은 전술한 것들과 매우 유사할 것이다. 그러나, 드라이버를 통한 이러한 것의 수행은 상기 알고리즘이 OS에 의존적으로 만들 것이다. OS에 의존적이라는 것은 가상 마우스 특징을 구현하기 위해 OS 벤더와의 조정(coordination)을 포함한다.
가상 마우스 사용이 사용자에게 보다 더 직관적이게 만들기 위해서, 마우스의 광 투과성 중첩 이미지는 시스템이 가상 마우스 모드에 있을 때 디스플레이될 수 있다. 만약 사용자가 핑거를 터치 스크린에 인접한 좌측 부분으로 가져오면, 그것은 터치 호버 능력을 사용하여 검출되며, 광 투과성 이미지는 터치 스크린에 인접하게 나타나서 사용자에게 이 터치가 좌측 클릭을 발생시킬 것이라는 것을 암시한다. 마찬가지로, 한 핑거가 더 인접하게 되면 상이한 이미지가 우측 부분 상에 나타날 것이다.
전술한 대안의 구현예에서, 상기 중첩 이미지는 (가령, 호버 능력에 의존함이 없이)상기 시스템이 가상 마우스 모드에 도달하자 마자 좌측 클릭 영역 및 우측 클릭 영역을 나타낸다.
가상 마우스용으로 전체 터치 스크린을 사용하는 대안으로서, 보다 소형의 투과성 사각형이 나타나 가상 터치 패드 처럼 작용한다. 이러한 터치 패드는 OS 또는 애플리케이션들이 디스플레이하고 있는 컨텐츠 상에 중첩될 것이다. 사용자는 이러한 터치 패드를 마치 물리적 터치 패드이었던 것처럼 사용하여 상기 가상 마우스를 제어한다. 가상 좌측 및 우측 버튼들이 또한 제공될 수 있다.
가상 마우스가 좌측 클릭 및 우측 클릭용으로 사용중인 핑거를 구별하지 않기 때문에, 두 개의 손을 또한 사용할 수 있다. 이 시스템이 가상 마우스 모드로 진입할 때, 우측 손의 포인터 핑거는 상기 커서를 이용시키는 데 사용될 수 있으며, 그 사람은 좌측 손을 사용하여 좌측 클릭을 행할 수 있다. 이는 클릭 및 드래그용으로 사용될 수도 있다. 사용자는 포인터 핑거 커서를 갖는 아이템을 선택할 수 있고, 클릭을 위해 좌측 손을 사용할 수 있고, 그리고 드래그 동작을 수행하기 위해 우측 손의 포인터 핑거를 터치 스크린 주위로 이동시키면서 터치 스크린 상에 그 좌측 손을 유지할 수 있다.
이러한 알고리즘은 또한 우측 손 사람과 좌측 손 사람을 고려하기도 한다. 이러한 알고리즘은 가상 마우스 모드로 진입하기 위해 세 개의 핑거 제스처에 기반하여 우측 손 사람과 좌측 손 사람을 검출한다. 좌측 손 사람을 위한 핑거들의 포지션은 우측 손 사람을 위한 핑거들의 포지션과는 상이하다. 이는 오늘 날 물리적 마우스가 핸들링되는 방법에 대해 개선점이 된다. 사용자는 우측 손 또는 좌측 손 사용을 위한 마우스를 설정하기 위해 선택(윈도우즈 제어 패널)을 행해야 한다. 가상 마우스의 경우, 이는 온더플라이(on the fly)로 핸들링될 수 있다.
디바이스 드라이버를 사용한 일 실시예에 의하면, 커널 모드 드라이버는 운영 체제(OS)와 인터페이스하는 가상 마우스 드라이버를 생성하여, 터치 패널로부터의 이벤트들을 캡처하고, 이 이벤트들을 마우스 이벤트들로 번역하고, 그리고 이 마우스 이벤트들을 상기 가상 마우스 디바이스를 통해 상기 OS에 노출시킨다. 또한, 특정의 터치 스크린 핑거 제스처들의 세트는 마우스 동작들을 인에이블/디스에이블 및 제어하도록 정의된다.
일부 실시예에서, 사용자는 터치 스크린 상에서 보다 정확히 포인팅할 수 있으며, Mouse Move Over 이벤트를 트리거링할 수 있으며, 우측 클릭 이벤트를 쉽게 트리거링할 수 있다. 사용자는 외부 마우스를 수반할 필요가 없다. 일부 실시예의 이점은 (1) 임의의 마우스 시뮬레이션 애플리케이션을 수동으로 실행/중단시키지 않고도, 마우스 모드와 정상 터치 패널 작업 모드 간의 심리스 전환과, (2) 소프트웨어 로직이 OS 사용자 모드 모듈에 투명하며 임의의 사용자 모드 프레임워크에 의존하지 않으며, (3) 동일한 사용 경험을 갖는 윈도우즈 클래식 데스크탑 모드와 현대의 (Metro) UI를 심리스하게 지원한다고 하는 것이다.
따라서, 도 19를 참조하며, 시퀀스(80)는 소프트웨어, 펌웨어 및/또는 하드웨어로 구현될 수 있다. 소프트웨어 및 펌웨어 실시예에서, 가령, 자기, 광학 또는 반도체 스토리지와 같은 하나 이상의 비일시적인 컴퓨터 판독가능 매체에 저장된 컴퓨터 실행 인스트럭션에 의해 구현될 수 있다.
도 19를 참조하면, 가상 마우스 시퀀스(80)는 소프트웨어, 펌웨어 및/또는 하드웨어로 구현될 수 있다. 소프트웨어 및 펌웨어 실시예에서, 가령, 자기, 광학 또는 반도체 스토리지와 같은 하나 이상의 비일시적인 컴퓨터 판독가능 매체에 저장된 컴퓨터 실행 인스트럭션에 의해 구현될 수 있다.
상기 시퀀스(80)는 다이아몬드(82)에서 결정된 바와 같이, 특징적인 터치가 검출되는지의 여부를 결정함으로써 시작된다. 가령, 특징적인 터치는 가상 마우스 모드로 진입하기 위한 바램(desire)을 나타내는 도 15에 도시된 세 개의 핑거 터치일 수 있다. 만약 그 터치가 검출되지 않으면, 흐름도는 지속되지 않으며 디바이스는 종래의 터치 모드로 유지된다.
터치 모드 특성이 검출된다면, 컨택의 위치는 블럭(84)에서 표시되는 바와 같이 결정된다. 특히, 일 실시예에서 중앙 핑거가 터치 스크린에 컨택되는 터치 스크린 상의 위치가 검출된다. 이러한 위치는, 일 실시예에서, 상부 에지에 인접하는 영역, 하부 에지에 인접하는 영역, 우측 에지에 인접한 영역, 좌측 에지에 인접한 영역 및 최종적으로 중앙 영역을 포함한 터치 스크린의 사전결정된 영역일 수 있다.
블럭(86)에 표시된 바와 같이, 포인터 핑거에 대한 커서 포지션은 컨택 위치에 기반하여 조정된다. 가령, 일 실시예에서 중심 컨택이 검출되며 커서 포지션은 도 3에 표시된 바와 같이 배향될 수 있다. 좌측 에지 영역에서의 컨택이 검출되면, 커서 포지션은 도 4에 표시된 바와 같이 조정될 수 있다. 마찬가지로 우측 에지 컨택이 검출된다면, 커서 포지션은 도 5에 표시된 바와 같이 조정될 수 있다. 바닥 좌측 컨택이 검출되면, 커서 포지션은 도 6에 표시된 바와 같이 존재할 수 있다. 바닥 좌측 에지가 검출된다면, 도 7의 구성이 사용될 수 있고, 바닥 우측 에지가 검출되면 도 8에 도시된 구성이 사용될 수 있다. 상부 좌측 에지 및 상부 우측 에지에 대해 동일한 기술이 사용될 수 있다. 물론, 디스플레이 스크린 상의 개별 영역들을 정의하는 것에 추가하여 또는 이에 대한 대안으로서 다른 종래 기술이 사용될 수 있다.
또한, 일부 실시예에서, 핑거가 디스플레이 스크린의 중심의 아래 또는 위에 있을 때 Y 오프셋이 추가된다. Y 오프셋의 값은 일부 실시예에서 포인터 핑거로부터 Y 축을 따라 스크린의 중심까지의 거리에 의존할 수 있다.
또다른 실시예에 의하면, 도 12에 도시된, 커널 모드 디바이스 필터(KMDF) 드라이버(40)는 터치 디바이스 객체(물리적 디바이스 객체(PDO))(44)와 사용자 계층 서비스(46) 사이에 위치한다. 필터 드라이버는 터치 벤더와는 무관하지만 일부 실시예에서 윈도우즈에 특정되고 있다.
이 아키텍처는 또한 표준 HID OVER I2C 프로토콜 사용 드라이버(74)를 또한 지원할 수 있다. 이는 마우스 드라이버(70)를 사용하여 물리적 마우스를 또한 지원할 수 있다.
이러한 필터 드라이버는 상기 터치 디바이스와 사용자 계층 서비스 간의 모든 데이터 트랜잭션, 특히 외부 터치 제어기(48)로부터의 터치 이벤트 데이터를 캡처한다. 이는 이러한 데이터를 프로세싱하며, 터치 스크린 상의 사전정의된 핑거 제스처를 인식하며, 그 후 그것을 마우스 이벤트로 번역한다. 이러한 이벤트는 가상 HID 마우스 물리적 디바이스 객체(PDO)(50) 및 HID 클래스 드라이버(72)를 통해 OS로 전송된다.
이 필터 드라이버(40)의 내부 아키텍처가 도 13에 도시된다. 도 13 및 도 11에 도시된 아키텍처는 두 개의 상이한 터치 위의 마우스 솔루션(mouse over touch solutions)을 참조한다. 도 13은 중앙 프로세서 필터 드라이버 기반 솔루션의 아키텍처 디자인을 도시하고 있다. 아키텍처 디자인은 CPU 상에서 실행되는 윈도우즈 소프트웨어 드라이버 내부에 구현된다. 이는 도 11에 도시된 커널을 사용하지 않는다. 이는 세 개의 주요 부분을 포함하고 있다. 터치 이벤트 데이터 캡처 콜백(60)은 터치 디바이스(44) 객체에 대한 모든 요청 내로 등록된 콜백 함수 뿐만 아니라 데이터 추출 함수들의 세트이다. 이러한 함수들은, X/Y 좌표들, 터치 스크린 상의 핑거들의 개수 및 개개의 핑거 식별자들을 포함하여, 관심 데이터를 추출하고 이 데이터를 다음 인박스 모듈(68)로 전송한다. 또한, 데이터 변환 및 번역 모듈(62)로부터의 가상 마우스 활성의 결과(예/아니오)에 따라, 상기 콜백은 본래의 터치 이벤트 데이터를 OS로 전송하는지의 여부를 결정한다(다이아몬드 66).
터치 데이터 변환 및 번역 모듈(62)은 필터의 주요 로직 부분이며, 이는 사전정의된 핑거 제스처를 인식하며, 이 제스처를 마우스 데이터로 번역하며 가상 마우스 모드로 진입하는지의 여부를 결정한다(다이아몬드 66). 이러한 부분은 도 14에 도시된 바와 같이 구현되는 상태 머신이 된다.
가상 마우스 디바이스 객체 핸들러(64)는 변환된 마우스 이벤트 데이터를 수신하며, 이를 HID 입력 리포트로 패키징하며, 그 후 이 리포트를 가상 마우스 디바이스 객체(50)를 통해 OS로 전송한다.
핑거 제스처들은 일 실시예에서 도 15, 16, 17 및 18에 도시된 바와 같은 가상 마우스와 함께 작업하도록 정의된다. 소정의 시구간(가령, 3초) 동안 이동하지 않고 터치 스크린 상에서 유지되는 세 개의 핑거는 도 15에 도시된 바와 같은 터치-이벤트 번역을 활성화한다. 이는 필터 드라이버가 본래의 터치 이벤트 데이터를 OS에 전달하지 못하게 한다. 터치-투-번역(touch-to-translation)이 활성일 경우, 터치 스크린 상에 세 개의 핑거를 다시 배치하게 되면, 이 번역은 비활성화되며 본래의 터치 이벤트 데이터가 도 13에서의 인박스 모듈(68)을 통해 OS에 전달되게 한다.
하나의 핑거만이 터치하여 화살표 A로 표시된 바와 같이 이동하면, 그 마우스 커서는 도 16에서 화살표 B로 도시된 바와 같이 스크린 상에서 이동하게 된다. 두 개의 핑거가 함께 터치하여 화살표 C로 표시된 바와 같이 이동하면, 그 마우스 커서는 마치 도 17의 화살표 D로 도시된 바와 같은 좌측 버튼 다운(아이콘 I를 드래깅하여 드롭핑하는 것)이 작동된 것처럼, 화살표 B로 표시된 바와 같이 이동하게 된다.
하나의 핑거가 도 18(a) 및 도 18(b)에서 원 T로 도시된 바와 같이 터치하게 되며, 그 후 또다른 핑거가 터치하여 시구간(가령, 200 밀리초) 내에 제거(탭)된다면, 마우스 버튼 클릭 이벤트가 트리거링된다. 우측 버튼 또는 좌측 버튼 상에서의 클릭이 의도되는지에 관한 인식은 탭핑 핑거 F가 좌측(도 18(a))상에 있는지 우측(도 18(b))상에 있는지에 따라 달라진다.
터치-마우스 이벤트 번역 및 제스처를 전술한 바와 같이 지원하기 위해, 도 14에 도시된 상태가 일 실시예에서 도 13의 터치 데이터 변환 및 번역 모듈(62)내에 구현된다.
도 14에 예시된 일 실시예에서는 4 개의 상태가 존재한다. 아이들 상태(90)에서는 터치 스크린 상에 핑거가 존재하지 않으며 마우스 이벤트가 생성되지 않는다. 하나의 핑거 상태(92)에서는 터치 스크린 상의 하나의 핑거가 검출되며 마우스 이동 이벤트는 이 핑거가 터치 스크린 상에서 이동하는 거리 및 방향에 따라 OS로 전송된다. 하나의 핑거가 두 개의 핑거로 진입하는 상태(94)에서, 두 개의 핑거가 터치 스크린 상에서 하나의 핑거 상태로부터 검출된다. 그러나, 이것이 사용자 핑거 탭핑 이벤트인지 아닌지의 여부는 불확실하다. 따라서, 흐름은 클릭 타임아웃(가령 200 밀리초) 동안 대기한다. 다시 이러한 시간의 실행이 종료하기 전에 하나의 핑거만이 터치 스크린상에서 검출된다면, 그 흐름은 다시 하나의 핑거 상태(92)로 다시 이동하여 좌측/우측 버튼 클릭 이벤트를 트리거링한다. 이러한 타임아웃이 발생한다면, 그 상태는 두 개의 핑거 상태(96)로 변경될 것이다. 두 개의 핑거 상태에서, 두 개의 핑거는 터치 스크린 상에서 검출되며 커서는 두 개의 핑거가 터치 스크린 상에서 이동되는 거리 및 방향에 따라, OS로 전송된 좌측 버튼 다운 이벤트에 의해 이동하게 된다.
또한, 일 실시예에서 스캔 타임아웃(가령, 20 밀리초)은 터치 스캔 간격의 두 배와 동일하게 된다. 이러한 스캔 타임아웃 후에 터치 이벤트가 수신되지 않으면, 사용자는 터치 스크린으로부터 모든 핑거를 제거하며 흐름은 다시 아이들 상태로 가게 된다.
일부 실시예에 따라, 터치 스크린과 같은 터치 입력 디바이스는 하나 초과의 핑거를 동시에 터치 스크린에 터치함으로써 마우스 모드로 작동될 수 있다. 일 실시예에서, 세 개의 핑거가 이용될 수 있다. 일 실시예에서 세 개의 핑거는 인덱스 핑거 및 중앙 핑거와 더불어 엄지 핑거일 수 있다. 인덱스 핑거 및 중앙 핑거는 가상 마우스 모드로 진입하기 위해 좌측 클릭 또는 우측 클릭하는데 사용될 수 있다.
일부 실시예에서, 시스템은 터치 스크린 상에서 복수의 핑거에 의한 동시적인 터칭을 검출할 수 있다. 세 개의 핑거 스크린 터치 커맨드의 경우, 이 시스템은 디바이스 상에 좌측 손이 존재하는지 우측 손이 존재하는지와 세 개의 핑거의 상대적인 포지션을 결정할 수 있다. 이러한 것이 행해질 수 있는 한 가지 방식은 세 개의 컨택 포인트에 의해 정의된 삼각형의 특성 및 특히 그 형상을 해결하고, 이로부터 그 디바이스 상에 사용자의 좌측 손 또는 우측 손이 존재하는지를 결정하는 것이다. 이러한 손의 식별은 좌측 클릭 또는 우측 클릭이 시그널링되는지를 결정하는 데 중요한 것일 수 있다. 일 실시예에서 좌측 손 또는 우측 손 중의 어떤 손이 사용되는지에 따라 터치 스크린 상에 인덱스 핑거 또는 중앙 핑거를 탭핑함으로써 좌측 클릭 또는 우측 클릭이 시그널링될 수 있다. 일 실시예에서, 좌측 손의 인덱스 핑거는 우측 포지션에 있으며 우측 손의 인덱스 핑거는 좌측 포지션에 위치한다. 이들 모두는 좌측 클릭이 된다. 따라서 손의 식별은 일부 실시예에서 중요한 것일 수 있다.
아래의 문구 및/또는 예는 추가의 실시예들을 포함한다.
일 실시예는 방법일 수 있으며, 이 방법은 터치 입력 디바이스 상의 컨택을 검출하는 단계와, 상기 컨택의 위치를 결정하는 단계와, 상기 컨택의 위치에 기반하여 변화되는 상기 컨택과 관련한 포지션에 커서를 디스플레이하는 단계를 포함한다. 방법은 또한 상기 컨택이 스크린 에지를 향해 이동하는 것에 응답하여 상기 커서를 상기 컨택에 대해 보다 중앙에 위치한 제1 포지션으로부터 상기 컨택에 대해 덜 중앙인 제2 포지션으로 이동시키는 단계를 포함할 수 있다. 방법은 또한 스크린 에지에 대한 근접성에 기반하여 상기 컨택 주위로 상기 커서를 이동시키는 단계를 포함할 수 있다. 방법은 또한 벤더 독립 커널을 사용하여 터치 벤더 커널과는 독립적으로 동작하도록 하는 메카니즘을 인에이블하는 단계를 포함할 수 있다. 방법은 또한 초기화 동안 상기 벤더 독립 커널을 로딩하는 단계와, 상기 벤더 독립 커널을 임의의 플랫폼 운영 체제에 관계없이 그래픽 프로세싱 유닛 상에서 실행시키는 단계를 포함할 수 있다. 방법은 또한 가상 마우스 디바이스 객체를 통해 마우스 입력 이벤트를 운영 체제에 노출시키는 단계를 포함할 수 있다. 방법은 또한 커널 모드 드라이버를 사용하여 상기 가상 마우스 디바이스 객체를 생성하는 단계를 포함할 수 있다. 방법은 또한 상기 터치 입력 디바이스가 터치 모드에 있는지 가상 마우스 모드에 있는지를 검출하는 단계를 포함하며, 각각의 모드는 상이한 휴먼 인터페이스 디바이스 패킷과 관련된다. 방법은 또한 검출되지 않은 모드의 패킷을 필터링하여 제외시키는 단계를 포함할 수 있다. 방법은 또한 드라이버를 사용하여 가상 마우스 모드를 구현하는 단계를 포함할 수 있다.
또다른 실시예는 시퀀스를 수행하도록 실행되는 인스트럭션을 저장한 하나 이상의 비일시적인 컴퓨터 판독가능 매체를 포함할 수 있으며, 이 시퀀스는 터치 입력 디바이스 상의 컨택을 검출하는 것과, 상기 컨택의 위치를 결정하는 것과, 상기 컨택의 위치에 기반하여 변화되는 상기 컨택과 관련한 포지션에 커서를 디스플레이하는 것을 포함한다. 이 매체는 또한 상기 컨택이 스크린 에지를 향해 이동하는 것에 응답하여 상기 커서를 상기 컨택에 대해 보다 중앙에 위치한 제1 포지션으로부터 상기 컨택에 대해 덜 중앙인 제2 포지션으로 이동시키는 것을 포함한 상기 시퀀스를 포함할 수 있다. 이 매체는 또한 스크린 에지에 대한 근접성에 기반하여 상기 컨택 주위로 상기 커서를 이동시키는 것을 포함한 상기 시퀀스를 포함할 수 있다. 이 매체는 또한 벤더 독립 커널을 사용하여 터치 벤더 커널과는 독립적으로 동작하도록 하는 메카니즘을 인에이블하는 것을 포함한 상기 시퀀스를 포함할 수 있다. 이 매체는 또한 초기화 동안 상기 벤더 독립 커널을 로딩하는 것과, 상기 벤더 독립 커널을 임의의 플랫폼 운영 체제에 관계없이 그래픽 프로세싱 유닛 상에서 실행시키는 것을 포함할 수 있다. 이 매체는 또한 가상 마우스 디바이스 객체를 통해 마우스 입력 이벤트를 운영 체제에 노출시키는 것을 포함한 상기 시퀀스를 포함할 수 있다. 이 매체는 또한 커널 모드 드라이버를 사용하여 상기 가상 마우스 디바이스 객체를 생성하는 것을 포함한 상기 시퀀스를 포함할 수 있다. 이 매체는 또한 상기 터치 입력 디바이스가 터치 모드에 있는지 가상 마우스 모드에 있는지를 검출하는 것을 포함한 상기 시퀀스를 포함하며, 각각의 모드는 상이한 휴먼 인터페이스 디바이스 패킷과 관련된다. 이 매체는 또한 검출되지 않은 모드의 패킷을 필터링하여 제외시키는 것을 포함한 상기 시퀀스를 포함할 수 있다. 이 매체는 또한 드라이버를 사용하여 가상 마우스 모드를 구현하는 것을 포함한 상기 시퀀스를 포함할 수 있다.
또다른 예에서, 실시예는, 터치 입력 디바이스 상의 컨택을 검출하고, 상기 컨택의 위치를 결정하고, 상기 컨택의 위치에 기반하여 변화되는 상기 컨택과 관련한 포지션에 커서를 디스플레이하는 프로세서와, 상기 프로세서에 연결된 스토리지를 포함한다. 이 장치는 또한 상기 컨택이 스크린 에지를 향해 이동하는 것에 응답하여 상기 커서를 상기 컨택에 대해 보다 중앙에 위치한 제1 포지션으로부터 상기 컨택에 대해 덜 중앙인 제2 포지션으로 이동시키는 상기 프로세서를 포함할 수 있다. 이 장치는 또한 스크린 에지에 대한 근접성에 기반하여 상기 컨택 주위로 상기 커서를 이동시키는 상기 프로세서를 포함할 수 있다. 이 장치는 또한 벤더 독립 커널을 사용하여 터치 벤더 커널과는 독립적으로 동작하도록 하는 메카니즘을 인에이블하는 상기 프로세서를 포함할 수 있다. 이 장치는, 또한 초기화 동안 상기 벤더 독립 커널을 로딩하고, 상기 벤더 독립 커널을 임의의 플랫폼 운영 체제에 관계없이 그래픽 프로세싱 유닛 상에서 실행시키는 상기 프로세서를 포함할 수 있다.
상세한 설명에서 "일 실시예" 또는 "실시예"에 대한 기준은 그 실시예들과 관련하여 기술되는 특정의 특징, 구조, 또는 특성이 본 개시물에 포함되는 적어도 하나의 구현예에 포함된다는 것을 의미한다. 따라서, "일 실시예" 또는 "실시예"의 다양한 모습은 전적으로 동일한 실시예들을 지칭하는 것은 아니다. 또한, 특정의 특징, 구조 또는 특성은 예시된 특정의 실시예와는 다른 적당한 형태로 도입될 수 있으며, 이러한 모든 형태는 본 출원의 청구범위 내에 포함될 수 있다.
제한된 개수의 실시예가 기술되었지만, 당업자는 이로부터의 다양한 수정 및 변형을 이해할 것이다. 첨부된 청구범위는 본 개시물의 사상 및 범주 내의 모든 이러한 수정 및 변형을 커버한다.
Claims (25)
- 컴퓨터로 구현되는 방법으로서,
터치 입력 디바이스 상의 컨택을 검출하는 단계 - 상기 터치 입력 디바이스의 스크린은, 상기 스크린의 상부 에지에 인접하는 영역, 상기 스크린의 하부 에지에 인접하는 영역, 상기 스크린의 우측 에지에 인접한 영역, 상기 스크린의 좌측 에지에 인접한 영역, 및 상기 스크린의 중앙 영역을 포함하는 사전결정된 영역을 포함함 - 와,
상기 컨택의 위치를 결정하는 단계와,
상기 컨택을 중심으로 하는 가상의 하프 타원에 대한 소정 위치에 커서를 디스플레이하여, 상기 커서가 상기 스크린 전체에서 이동하도록 하는 단계 - 상기 컨택이 상기 스크린의 상기 사전결정된 영역 중 어느 영역에 위치한다고 결정되는지에 따라 상기 커서의 상기 컨택에 대한 상대적인 위치가 달라짐 -
를 포함하는
방법.
- 제1항에 있어서,
상기 방법은 상기 컨택이 스크린 에지를 향해 이동하는 것에 응답하여 상기 커서를 상기 컨택에 대해 보다 중앙에 위치한 제1 포지션으로부터 상기 컨택에 대해 덜 중앙인 제2 포지션으로 이동시키는 단계를 포함하는
방법.
- 삭제
- 제1항에 있어서,
상기 방법은 벤더 독립 커널을 사용하여 터치 벤더 커널과는 독립적으로 동작하도록 하는 메카니즘을 인에이블하는 단계를 포함하는
방법.
- 제1항에 있어서,
상기 방법은 초기화 동안 벤더 독립 커널을 로딩하는 단계와, 상기 벤더 독립 커널을 임의의 플랫폼 운영 체제에 관계없이 그래픽 프로세싱 유닛 상에서 실행시키는 단계를 포함하는
방법.
- 제1항에 있어서,
상기 방법은 가상 마우스 디바이스 객체를 통해 마우스 입력 이벤트를 운영 체제에 노출시키는 단계를 포함하는
방법.
- 제6항에 있어서,
상기 방법은 커널 모드 드라이버를 사용하여 상기 가상 마우스 디바이스 객체를 생성하는 단계를 포함하는
방법.
- 제1항에 있어서,
상기 방법은 상기 터치 입력 디바이스가 터치 모드에 있는지 가상 마우스 모드에 있는지를 검출하는 단계를 포함하며, 각각의 모드는 상이한 휴먼 인터페이스 디바이스 패킷과 관련되는
방법.
- 제8항에 있어서,
상기 방법은 검출되지 않은 모드의 패킷을 필터링하여 제외시키는 단계를 포함하는
방법.
- 제1항에 있어서,
상기 방법은 드라이버를 사용하여 가상 마우스 모드를 구현하는 단계를 포함하는
방법.
- 시퀀스를 수행하도록 실행되는 인스트럭션을 저장한 하나 이상의 비일시적 컴퓨터 판독가능 매체로서,
상기 시퀀스는
터치 입력 디바이스 상의 컨택을 검출하는 것 - 상기 터치 입력 디바이스의 스크린은, 상기 스크린의 상부 에지에 인접하는 영역, 상기 스크린의 하부 에지에 인접하는 영역, 상기 스크린의 우측 에지에 인접한 영역, 상기 스크린의 좌측 에지에 인접한 영역, 및 상기 스크린의 중앙 영역을 포함하는 사전결정된 영역을 포함함 - 과,
상기 컨택의 위치를 결정하는 것과,
상기 컨택을 중심으로 하는 가상의 하프 타원에 대한 소정 위치에 커서를 디스플레이하여, 상기 커서가 상기 스크린 전체에서 이동하도록 하는 것 - 상기 컨택이 상기 스크린의 상기 사전결정된 영역 중 어느 영역에 위치한다고 결정되는지에 따라 상기 커서의 상기 컨택에 대한 상대적인 위치가 달라짐 -
을 포함하는
비일시적 컴퓨터 판독가능 매체.
- 제11항에 있어서,
상기 시퀀스는 상기 컨택이 스크린 에지를 향해 이동하는 것에 응답하여 상기 커서를 상기 컨택에 대해 보다 중앙에 위치한 제1 포지션으로부터 상기 컨택에 대해 덜 중앙인 제2 포지션으로 이동시키는 것을 포함하는
비일시적 컴퓨터 판독가능 매체.
- 삭제
- 제11항에 있어서,
상기 시퀀스는 벤더 독립 커널을 사용하여 터치 벤더 커널과는 독립적으로 동작하도록 하는 메카니즘을 인에이블하는 것을 포함하는
비일시적 컴퓨터 판독가능 매체.
- 제11항에 있어서,
상기 시퀀스는 초기화 동안 벤더 독립 커널을 로딩하는 것과, 상기 벤더 독립 커널을 임의의 플랫폼 운영 체제에 관계없이 그래픽 프로세싱 유닛 상에서 실행시키는 것을 포함하는
비일시적 컴퓨터 판독가능 매체.
- 제11항에 있어서,
상기 시퀀스는 가상 마우스 디바이스 객체를 통해 마우스 입력 이벤트를 운영 체제에 노출시키는 것을 포함하는
비일시적 컴퓨터 판독가능 매체.
- 제16항에 있어서,
상기 시퀀스는 커널 모드 드라이버를 사용하여 상기 가상 마우스 디바이스 객체를 생성하는 것을 포함하는
비일시적 컴퓨터 판독가능 매체.
- 제11항에 있어서,
상기 시퀀스는 상기 터치 입력 디바이스가 터치 모드에 있는지 가상 마우스 모드에 있는지를 검출하는 것을 포함하며, 각각의 모드는 상이한 휴먼 인터페이스 디바이스 패킷과 관련되는
비일시적 컴퓨터 판독가능 매체.
- 제18항에 있어서,
상기 시퀀스는 검출되지 않은 모드의 패킷을 필터링하여 제외시키는 것을 포함하는
비일시적 컴퓨터 판독가능 매체.
- 제11항에 있어서,
상기 시퀀스는 드라이버를 사용하여 가상 마우스 모드를 구현하는 것을 포함하는
비일시적 컴퓨터 판독가능 매체.
- 장치로서,
프로세서와,
상기 프로세서에 연결된 스토리지를 포함하되,
상기 프로세서는, 터치 입력 디바이스 상의 컨택을 검출하고 - 상기 터치 입력 디바이스의 스크린은, 상기 스크린의 상부 에지에 인접하는 영역, 상기 스크린의 하부 에지에 인접하는 영역, 상기 스크린의 우측 에지에 인접한 영역, 상기 스크린의 좌측 에지에 인접한 영역, 및 상기 스크린의 중앙 영역을 포함하는 사전결정된 영역을 포함함 -,
상기 컨택의 위치를 결정하고,
상기 컨택을 중심으로 하는 가상의 하프 타원에 대한 소정 위치에 커서를 디스플레이하여, 상기 커서가 스크린 전체에서 이동 - 상기 컨택이 상기 스크린의 상기 사전결정된 영역 중 어느 영역에 위치한다고 결정되는지에 따라 상기 커서의 상기 컨택에 대한 상대적인 위치가 달라짐 - 하도록 하는
장치.
- 제21항에 있어서,
상기 프로세서는 상기 컨택이 스크린 에지를 향해 이동하는 것에 응답하여 상기 커서를 상기 컨택에 대해 보다 중앙에 위치한 제1 포지션으로부터 상기 컨택에 대해 덜 중앙인 제2 포지션으로 이동시키는
장치.
- 삭제
- 제21항에 있어서,
상기 프로세서는 벤더 독립 커널을 사용하여 터치 벤더 커널과는 독립적으로 동작하도록 하는 메카니즘을 인에이블하는
장치.
- 제21항에 있어서,
상기 프로세서는 초기화 동안 벤더 독립 커널을 로딩하고, 상기 벤더 독립 커널을 임의의 플랫폼 운영 체제에 관계없이 그래픽 프로세싱 유닛 상에서 실행시키는
장치.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/071797 WO2016105329A1 (en) | 2014-12-22 | 2014-12-22 | Multi-touch virtual mouse |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170095832A KR20170095832A (ko) | 2017-08-23 |
KR102323892B1 true KR102323892B1 (ko) | 2021-11-08 |
Family
ID=56151142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177013861A KR102323892B1 (ko) | 2014-12-22 | 2014-12-22 | 멀티 터치 가상 마우스 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20160364137A1 (ko) |
EP (1) | EP3238008A4 (ko) |
JP (1) | JP6641570B2 (ko) |
KR (1) | KR102323892B1 (ko) |
CN (1) | CN107430430A (ko) |
TW (1) | TWI617949B (ko) |
WO (1) | WO2016105329A1 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014081104A1 (en) * | 2012-11-21 | 2014-05-30 | Lg Electronics Inc. | Multimedia device for having touch sensor and method for controlling the same |
US10088943B2 (en) * | 2015-06-30 | 2018-10-02 | Asustek Computer Inc. | Touch control device and operating method thereof |
CN105630393B (zh) * | 2015-12-31 | 2018-11-27 | 歌尔科技有限公司 | 一种触摸屏工作模式的控制方法和控制装置 |
CN107728910B (zh) * | 2016-08-10 | 2021-02-05 | 深圳富泰宏精密工业有限公司 | 电子装置、显示屏控制系统及方法 |
JP7022899B2 (ja) * | 2016-12-27 | 2022-02-21 | パナソニックIpマネジメント株式会社 | 電子機器、入力制御方法、及びプログラム |
TWI649678B (zh) * | 2017-11-08 | 2019-02-01 | 波利達電子股份有限公司 | Touch device, touch device operation method and storage medium |
JP6857154B2 (ja) * | 2018-04-10 | 2021-04-14 | 任天堂株式会社 | 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法 |
JP2021076959A (ja) * | 2019-11-06 | 2021-05-20 | レノボ・シンガポール・プライベート・リミテッド | 情報処理装置及び情報処理方法 |
CN113282186B (zh) * | 2020-02-19 | 2022-03-11 | 上海闻泰电子科技有限公司 | 将hid触摸屏自适应成键盘鼠标的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090207144A1 (en) * | 2008-01-07 | 2009-08-20 | Next Holdings Limited | Position Sensing System With Edge Positioning Enhancement |
US20120137288A1 (en) * | 2010-11-29 | 2012-05-31 | International Business Machines Corporation | Virtualization of vendor specific configuration and management of self-virtualizing input/output device |
US20120212421A1 (en) * | 2011-02-18 | 2012-08-23 | Microsoft Corporation | Modal touch input |
JP2014048976A (ja) * | 2012-08-31 | 2014-03-17 | Nec System Technologies Ltd | 入力表示制御装置、シンクライアントシステム、入力表示制御方法およびプログラム |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7489306B2 (en) * | 2004-12-22 | 2009-02-10 | Microsoft Corporation | Touch screen accuracy |
US7843427B2 (en) * | 2006-09-06 | 2010-11-30 | Apple Inc. | Methods for determining a cursor position from a finger contact with a touch screen display |
US8754855B2 (en) * | 2008-06-27 | 2014-06-17 | Microsoft Corporation | Virtual touchpad |
KR20130010910A (ko) * | 2008-12-05 | 2013-01-29 | 소우셜 커뮤니케이션즈 컴퍼니 | 실시간 커널 |
US20100214218A1 (en) * | 2009-02-20 | 2010-08-26 | Nokia Corporation | Virtual mouse |
JP2011028524A (ja) * | 2009-07-24 | 2011-02-10 | Toshiba Corp | 情報処理装置、プログラムおよびポインティング方法 |
US20110231796A1 (en) * | 2010-02-16 | 2011-09-22 | Jose Manuel Vigil | Methods for navigating a touch screen device in conjunction with gestures |
EP2625614B1 (en) * | 2010-10-04 | 2019-04-17 | Avocent Huntsville, LLC | System and method for monitoring and managing data center resources in real time incorporating manageability subsystem |
TWM408737U (en) * | 2011-01-12 | 2011-08-01 | Dexin Corp | Mouse device with touch panel |
US8643616B1 (en) * | 2011-07-29 | 2014-02-04 | Adobe Systems Incorporated | Cursor positioning on a touch-sensitive display screen |
US20130088434A1 (en) * | 2011-10-06 | 2013-04-11 | Sony Ericsson Mobile Communications Ab | Accessory to improve user experience with an electronic display |
JP5520918B2 (ja) * | 2011-11-16 | 2014-06-11 | 富士ソフト株式会社 | タッチパネル操作方法及びプログラム |
US9671880B2 (en) * | 2011-12-22 | 2017-06-06 | Sony Corporation | Display control device, display control method, and computer program |
WO2014139119A1 (en) * | 2013-03-14 | 2014-09-18 | Intel Corporation | Providing hybrid touchpad in computing device |
US9558133B2 (en) * | 2013-04-17 | 2017-01-31 | Advanced Micro Devices, Inc. | Minimizing latency from peripheral devices to compute engines |
CN103324306A (zh) * | 2013-05-11 | 2013-09-25 | 李隆烽 | 一种触屏计算机鼠标模拟系统及方法 |
EP3044660A4 (en) * | 2013-09-13 | 2017-05-10 | Intel Corporation | Multi-touch virtual mouse |
US20150091837A1 (en) * | 2013-09-27 | 2015-04-02 | Raman M. Srinivasan | Providing Touch Engine Processing Remotely from a Touch Screen |
CN103823630A (zh) * | 2014-01-26 | 2014-05-28 | 邓湘 | 一种虚拟鼠标 |
US9678639B2 (en) * | 2014-01-27 | 2017-06-13 | Bentley Systems, Incorporated | Virtual mouse for a touch screen device |
US20160132139A1 (en) * | 2014-11-11 | 2016-05-12 | Qualcomm Incorporated | System and Methods for Controlling a Cursor Based on Finger Pressure and Direction |
-
2014
- 2014-12-22 JP JP2017527549A patent/JP6641570B2/ja active Active
- 2014-12-22 US US14/773,939 patent/US20160364137A1/en not_active Abandoned
- 2014-12-22 CN CN201480084321.2A patent/CN107430430A/zh active Pending
- 2014-12-22 EP EP14909188.6A patent/EP3238008A4/en not_active Withdrawn
- 2014-12-22 KR KR1020177013861A patent/KR102323892B1/ko active IP Right Grant
- 2014-12-22 WO PCT/US2014/071797 patent/WO2016105329A1/en active Application Filing
-
2015
- 2015-11-19 TW TW104138315A patent/TWI617949B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090207144A1 (en) * | 2008-01-07 | 2009-08-20 | Next Holdings Limited | Position Sensing System With Edge Positioning Enhancement |
US20120137288A1 (en) * | 2010-11-29 | 2012-05-31 | International Business Machines Corporation | Virtualization of vendor specific configuration and management of self-virtualizing input/output device |
US20120212421A1 (en) * | 2011-02-18 | 2012-08-23 | Microsoft Corporation | Modal touch input |
JP2014048976A (ja) * | 2012-08-31 | 2014-03-17 | Nec System Technologies Ltd | 入力表示制御装置、シンクライアントシステム、入力表示制御方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20160364137A1 (en) | 2016-12-15 |
TWI617949B (zh) | 2018-03-11 |
TW201643608A (zh) | 2016-12-16 |
JP2018503166A (ja) | 2018-02-01 |
JP6641570B2 (ja) | 2020-02-05 |
EP3238008A1 (en) | 2017-11-01 |
WO2016105329A1 (en) | 2016-06-30 |
KR20170095832A (ko) | 2017-08-23 |
CN107430430A (zh) | 2017-12-01 |
EP3238008A4 (en) | 2018-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102323892B1 (ko) | 멀티 터치 가상 마우스 | |
JP5730667B2 (ja) | デュアルスクリーン上のユーザジェスチャのための方法及びデュアルスクリーンデバイス | |
US8355007B2 (en) | Methods for use with multi-touch displays for determining when a touch is processed as a mouse event | |
EP2715491B1 (en) | Edge gesture | |
US8255836B1 (en) | Hover-over gesturing on mobile devices | |
US8390577B2 (en) | Continuous recognition of multi-touch gestures | |
US8581869B2 (en) | Information processing apparatus, information processing method, and computer program | |
US8452057B2 (en) | Projector and projection control method | |
US20110221666A1 (en) | Methods and Apparatus For Gesture Recognition Mode Control | |
WO2013094371A1 (ja) | 表示制御装置、表示制御方法およびコンピュータプログラム | |
TWI451309B (zh) | Touch device and its control method | |
JP2016529640A (ja) | マルチタッチ仮想マウス | |
TWI463355B (zh) | 多點觸控介面之訊號處理裝置、訊號處理方法及使用者介面圖像選取方法 | |
US20140210742A1 (en) | Emulating pressure sensitivity on multi-touch devices | |
TW201520881A (zh) | 觸控裝置及其控制方法 | |
US20130044061A1 (en) | Method and apparatus for providing a no-tap zone for touch screen displays | |
WO2016183912A1 (zh) | 菜单布局方法及装置 | |
US20140298275A1 (en) | Method for recognizing input gestures | |
TWI615747B (zh) | 虛擬鍵盤顯示系統及方法 | |
TWI497357B (zh) | 多點觸控板控制方法 | |
US20150153925A1 (en) | Method for operating gestures and method for calling cursor | |
WO2016208099A1 (ja) | 情報処理装置、情報処理装置に対する入力を制御する入力制御方法及び入力制御方法を情報処理装置に実行させるためのプログラム | |
US9950542B2 (en) | Processing digital ink input subject to monitoring and intervention by an application program | |
TW201528114A (zh) | 電子裝置及其觸控系統、觸控方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |