KR101616591B1 - 데이터의 공간의 주요 치수를 항해하기 위한 제어 시스템 - Google Patents
데이터의 공간의 주요 치수를 항해하기 위한 제어 시스템 Download PDFInfo
- Publication number
- KR101616591B1 KR101616591B1 KR1020117007835A KR20117007835A KR101616591B1 KR 101616591 B1 KR101616591 B1 KR 101616591B1 KR 1020117007835 A KR1020117007835 A KR 1020117007835A KR 20117007835 A KR20117007835 A KR 20117007835A KR 101616591 B1 KR101616591 B1 KR 101616591B1
- Authority
- KR
- South Korea
- Prior art keywords
- delete delete
- data
- gesture
- space
- data frame
- 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/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
- Image Processing (AREA)
Abstract
데이터 공간을 통하여 네비게이션하기 위한 시스템 및 방법이 제공된다. 네비게이션은 탐지기를 통하여 제공된 제스처로부터 신체의 제스처를 탐지하는 것을 포함한다. 제스처 데이터는 그 시간 및 물리적 공간에서 신체의 즉각적인 상태의 3차원 공간 위치다. 탐지는 제스처 데이터를 이용하여 제스처를 확인하는 것을 포함한다. 네비게이션은 제스처를 제스처 신호로 해석하고, 제스처 신호에 반응하여 데이터 공간을 통하여 네비게이션하는 것을 포함한다. 데이터 공간은 물리적 공간에 제시되는 데이터세트를 포함하는 데이터 제시 공간이다.
Description
본 특허 출원은 2006년 2월 8일 제출된 United State (US) 특허 출원 Number 11/350,697의 일부 계속 출원이다.
본 출원은 2008년 4월 24일 제출된 US 특허 출원 Number 12/109,263의 일부 계속 출원이다. 본 출원은 2009년 4월 2일 제출된 US 특허 출원 Number 12/417,252의 일부 계속 출원이다.
본 출원은 2009년 6월 18일 제출된 US 특허 출원 Number 12/487,623의 일부 계속 출원이다.
본 출원은 2008년 9월 3일 제출된 US 특허 출원 Number 61/093,852에 우선권을 주장한다.
본 발명의 기술 분야
본 발명은 전반적으로, 컴퓨터 시스템 분야, 특히, 인간 작업자의 손의 선형 공간적 동작, 또는 유사한 치수적 활동의 수행이 그래픽적 또는 기타 데이터-표시 공간을 통하여 선형 인접 또는 거래 동작을 제어할 수 있도록 하는 시스템과 방법에 관계한다.
배경기술
사용자는 윈도우에서 디스플레이 상에서 데이터 또는 이미지를 조작함으로써, 또는 입력 장치, 예를 들면, 마우스, 키보드, 조이스틱, 크로스-키 등을 이용하여 윈도우 또는 연관된 프로그램과 관련된 메뉴로부터 작업을 선택함으로써 컴퓨터 시스템에 명령어를 입력하고 상기 시스템과 상호작용할 수 있다. 이런 입력 장치는 또한, 장소 해석 장치로서 기능하고, 이는 그래픽적, 온-스크린 포인터, 예를 들면 커서를 위치시키는데 이용될 수 있다. 커서는 예로써, 교정되는 문자를 지시하거나, 또는 데이터가 입력되거나 작업이 수행되는 위치를 지시하는 기능을 한다. 커서는 일부 형태에서 또는 외형에서, 전형적으로 컴퓨터 디스플레이 위에 존재한다. 사용자에 의한 입력 장치의 조작은 커서의 상응하는 움직임을 유발할 것이다. 따라서 예로써, 마우스 또는 기타 입력 장치의 움직임은 동일한 방향으로 커서의 움직임을 발생시킨다. 이들 전통적인 입력 장치는 하지만, 종종 단순히 그와 같은 장치이다. 사용자는 유선 또는 무선 마우스 또는 기타 입력 장치를 보유하고, 그리고 선택, 장소 해석, 활성화, 그리고 기타 입력 기능을 관리하는 장치를 이용해야 한다. 종종, 이들 물리적 장치의 이용은 자연적 또는 직관적이지 않다. 다른 단점은 상이한 기능이 수행될 수 있도록 입력 장치의 배경을 변화시키는 일정한 단계가 요구된다는 점이다.
참고로서 편입
본 명세서에 언급된 각 특허, 특허 출원, 및/또는 간행물은 본 발명에 순전히 참조로서 편입된다.
상세한 설명
공간적 작업 환경 (SOE)을 위한 시스템과 방법이 기술된다. 제스처-기초된 제어 시스템을 포함하는 SOE는 또한, 공간적 사용자 인터페이스 (SUI) 또는 공간적 인터페이스 (SI)로 지칭될 수 있다. 시스템과 방법은 SOE의 데이터 공간을 통한 항해에 대하여 기술된다. 항해는 검출기를 통해 수용된 제스처 데이터로부터 몸체의 제스처를 검출하는 단계를 포함한다. 제스처 데이터는 시간과 물리적 공간에서 한 지점에서 몸체의 즉시 상태의 절대 3-공간 위치 데이터이다. 검출은 제스처 데이터를 이용하여 제스처를 확인하는 것을 포함한다. 항해는 제스처를 제스처 신호로 해석하고, 그리고 제스처 신호에 응하여 데이터 공간을 통해 항해하는 단계를 포함한다. 데이터 공간은 물리적 공간에 표시된 데이터세트를 포함하는 데이터-표시 공간이다. 아래의 상세한 설명에서, SOE의 더욱 철저한 이해를 제공하기 위하여 다수의 특징이 상세하게 설명된다. SOE가 이들 특정한 상세 없이도 실시될 수 있음은 명백하다. 다른 경우에, 널리 공지된 특징은 상세하게 기술되지 않았다.
공간적 작업 환경 (SOE)
도 1은 구체예 하에, SOE의 블록 다이어그램이다. 사용자는 카메라의 어레이 104A-104D의 가시 영역 내에 손 101과 102의 위치를 찾아낸다. 이들 카메라는 손가락과 손 101과 102의 위치, 배향, 그리고 움직임을 검출하고, 그리고 프리-프로세서 105에 출력 신호를 발생시킨다. 프리-프로세서 105는 카메라 출력을 제스처 신호로 해석하고, 상기 신호는 상기 시스템의 컴퓨터 처리 회로 107에 제공된다. 컴퓨터 107은 상기 입력 정보를 이용하여 스크린 커서 상에서 하나 이상을 제어하는 명령어를 발생시키고 디스플레이 103에 비디오 출력을 제공한다.
비록 상기 시스템이 입력으로서 단일 사용자의 손으로 도시되긴 하지만, SOE 100은 복수 사용자를 이용하여 수행될 수 있다. 이에 더하여, 손 대신에 또는 손에 더하여, 상기 시스템은 머리, 발, 다리, 팔, 팔꿈치, 무릎 등을 비롯한 사용자의 몸체의 임의의 일부분을 추적할 수 있다.
도시된 구체예에서, 4개의 카메라 또는 센서가 사용자의 손 101과 102의 위치, 배향, 그리고 움직임을 검출하는데 이용된다. SOE 100은 SOE의 범위 또는 기술적 사상을 벗어나지 않으면서 더욱 많은 (가령, 6개의 카메라, 8개의 카메라 등) 또는 더욱 적은 (가령, 2개의 카메라) 카메라 또는 센서를 포함할 수 있는 것으로 이해되어야 한다. 이에 더하여, 비록 카메라 또는 센서가 전형적인 구체예에서, 대칭적으로 배치되긴 하지만, SOE 100에서 이런 대칭이 요구되지 않는다. 사용자의 손의 위치, 배향, 그리고 움직임을 가능하게 하는 임의의 숫자의 또는 배치의 카메라 또는 센서가 SOE 100에 이용될 수 있다.
한 구체예에서, 이용되는 카메라는 회색-등급 이미지를 포착할 수 있는 동작 포착 카메라이다. 한 구체예에서, 이용되는 카메라는 Vicon에 의해 제조된 카메라, 예를 들면 Vicon MX40 카메라이다. 상기 카메라는 온-카메라 처리를 포함하고, 그리고 초당 1000 프레임으로 이미지 포착이 가능하다. 동작 포착 카메라는 마커를 검출하고 위치를 찾아낼 수 있다.
한 구체예의 SOE의 카메라 또는 센서는 다양한 형태를 취할 수 있다. 한 구체예에서는 스테레오 비전 시스템을 형성하기 위하여 서로 결합된 2개 이상의 소형 카메라를 이용한다. 이러한 스테레오 시스템은 최소한, 시야 내에 물체에 대한 3-차원적 데이터 지점 클라우드를 산출한다. 데이터세트 내에 이들 지점의 분석된 깊이 정확도는 카메라 기준선으로부터 거리를 비롯한 다수의 인자에 따라 변하지만, 대략 1mm이다.
스테레오 센서 세트에 의해 산출된 지점 클라우드를 고려하면, SOE의 성분은 손 및/또는 손가락 자세를 도출하고, 이로부터 차례로, 양자화된 손 포즈 및 연속적인 손과 손가락 배향 벡터가 회수되다. 이러한 회수에 이용되는 접근법은 최초 입력이 집합체-태그표식된 데이터보다는 체계화되지 않은 지점 클라우드인 점을 제외하고, 하기에 기술된 방법과 실질적으로 유사하다.
손과 손가락 표시는 시스템의 상호작용 모드를 실행하는 메커니즘에 이용될 수 있다.
구체예는 스테레오-결합된 카메라의 복수 세트를 이용하거나, 또는 하나 이상의 카메라를 조정하기 위하여 픽셀 데이터를 처리하는 변형된 상관 알고리즘 (correlation algorithm)을 이용한다. 증가하는 숫자의 카메라는 예로써, 시야를 확대하고, 손의 일부분의 차단에 의한 어려움을 감소시키고, 및/또는 지점 클라우드 데이터의 정확도를 증가시킬 수 있다.
기술된 구체예에서, 카메라는 광학 검출에 이용되는 센서이다. 다른 구체예에서, 카메라 또는 기타 검출기가 전자기, 정자기, RFID, 또는 임의의 다른 적합한 유형의 검출에 이용될 수 있다.
프리-프로세서 105는 3-차원 공간 지점 재건과 골격 지점 라벨링을 산출한다. 제스처 해석기 106은 3D 공간적 정보와 마커 동작 정보를 명령어로 전환하고, 상기 명령어는 디스플레이 상에서 커서의 위치, 형상, 그리고 행위를 업데이트하기 위하여 컴퓨터 프로세서에 의해 해석될 수 있다. SOE 100의 대안적 구체예에서, 프리-프로세서 105와 제스처 해석기 106은 단일 장치 내로 통합되거나 합병된다.
컴퓨터 107은 임의의 일반적인 목적 컴퓨터, 예를 들면, Apple, Dell, 또는 임의의 다른 적합한 제조업체에 의해 제조된 컴퓨터일 수 있다. 컴퓨터 107은 애플리케이션을 작동시키고 디스플레이 출력을 제공한다. 만약 그렇지 않으면, 마우스 또는 기타 선행 기술 입력 장치로부터 발생하는 커서 정보가 제스처 시스템으로부터 발생한다.
항해 데이터 공간
한 구체예의 SOE는 '푸시백', 인간 작업자의 손의 선형 공간적 동작, 또는 유사한 치수적 활동의 수행이 그래픽적 또는 기타 데이터-표시 공간을 통해 선형 인접 또는 거래 동작을 제어할 수 있도록 한다. SOE, 그리고 이에 의해 확립된 연산적과 인식적 합동은 등급의 수준을 항해하거나, 주요한 선형 '깊이 치수'를 고찰하거나, 또는 가장 일반적으로 양자화된 또는 '멈춤쇠된' 파라미터 공간에 접근하는 근본적인, 구조화된 방식을 제공한다. SOE는 또한, 작업자가 자발적으로 추가의 배경을 획득하는 효과적인 수단: 공간적, 개념적, 또는 연산적인 지에 상관없이 근접과 이웃을 이해하기 위한 신속한 기술을 제공한다.
일정한 구체예에서, 푸시백 기술은 전통적인 입력 장치 (가령, 마우스, 태공, 통합된 실린더 또는 마디)를 이용하거나, 또는 작업자의 자신에게 외부인 태그표식된 또는 추적된 물체 (가령, 정교한 운동학적 연쇄 (정교한 kinematic 연쇄), 정자기적으로 추적된 '입력 브릭')에 의존할 수 있다. 다른 대안적 구체예에서, 푸시백 수행은 제어 시스템의 전체로서 충분할 수 있다.
한 구체예의 SOE는 컴퓨터의 제어를 위한 관례적 마우스-기초된 그래픽적 사용자 인터페이스 (‘WIMP’ UI) 방법을 대신하는 더욱 큰 공간적 상호작용 시스템의 일부이고 이러한 시스템 내로 통합되고, 상기 시스템은 그 대신에, (a) 하나 이상의 유형의 물체 (가령, 인간 손, 인간 손에서 물체, 무생물 물체 등)을 추적할 수 있는 물리적 센서; (b) 감지된 손의 발달 자세, 배향, 그리고 포즈를 일련의 제스처 이벤트로 분석하기 위한 수단; (c) 이런 공간적과 제스처 이벤트를 표시하기 위한 설명적 도표; (d) 제어 프로그램 내외로 이런 이벤트를 분배하기 위한 프레임워크; (e) 제스처 이벤트의 흐름에 의해 인코딩된 인간 의도 (명령어)를 이벤트 흐름 자체와 이벤트 해석의 애플리케이션-특이적 결과의 둘 모두의 그래픽적, 청각, 그리고 기타 디스플레이-모드 묘사와 동조시키는 방법을 포함하는데, 이들 모두 하기에 상세하게 설명된다. 이런 구체예에서, 푸시백 시스템은 추가의 공간적과 제스처 입력 -과-인터페이스 기술로 통합된다.
도 2는 구체예 하에, 데이터 공간을 항해하기 위한 플로우 다이어그램이다. 항해는 검출기 202를 통해 수용된 제스처 데이터로부터 몸체의 제스처의 검출 단계를 포함한다. 제스처 데이터는 시간과 물리적 공간에서 한 지점에서 몸체의 즉시 상태의 절대 3-공간 위치 데이터이다. 검출은 제스처 데이터 204를 이용하여 제스처를 확인하는 것을 포함한다. 항해는 제스처를 제스처 신호 206으로 해석하고, 그리고 제스처 신호 208에 응하여 데이터 공간을 통해 항해하는 단계를 포함한다. 데이터 공간은 물리적 공간에 표시된 데이터세트를 포함하는 데이터-표시 공간이다.
구체예의 전반적인 둥근-트립 잠복 (작업자의 시각 시스템에 역으로 디스플레이 장치에 제공되는 컴퓨터 그래픽에 해석 시스템을 푸시백하기 위한 분석을 수행하는 센서에 손 동작)은 낮게 유지되고 (가령, 한 구체예는 대략 15 밀리초 (millisecond)의 잠복을 보인다), 그리고 시스템의 다른 파라미터가 적절하게 조율될 때, 푸시백 상호작용의 인식 결과는 물리적 인과율의 별개의 감지이다: SOE는 스프링-적하된 구조를 밀어내는 물리적으로 공명하는 은유를 글자 뜻대로 해석한다. 인지된 인과율은 고도로 효과적인 피드백이다; 푸시백 시스템에 의해 제공되는 다른 더욱 추상적인 그래픽적 피드백 양상, 그리고 작업자 움직임의 해석에서 일정한 자유도 (degree of freedom)의 계획적인 억제와 함께, 이런 피드백은 차례로, 제어 메커니즘으로서 인간 운동 활동을 통합하고 조율하는 안정적이고, 신뢰성 있고, 그리고 반복적인 이용을 가능하게 한다.
SOE의 배경을 평가할 때, 많은 데이터세트는 본질적으로, 공간적이다: 이들은 문언적 물리적 공간 내에서 현상, 이벤트, 측량, 관찰, 또는 구조를 나타낸다. 더욱 추상적이거나, 또는 문언적이지만 비-공간적 정보를 인코딩하는 다른 데이터세트의 경우에, 이는 종종, 표시 (시각, 청각, 또는 다른 디스플레이 양상에 관련)를 준비하는데 바람직하고, 이들 중에서 일부 근본적인 측면은 단일, 스칼라-평가된 파라미터에 의해 제어된다; 상기 파라미터를 공간적 치수와 연관시키는 것 역시 빈번하게 유익하다. 푸시백 메커니즘에 의한 조작으로부터 이익을 얻는 것은 하기에 상술된 바와 같은, 이러한 단일 스칼라 파라미터의 조작이다.
표시는 데이터세트가 최적으로 간주되는 이들의 파라미터의 작은 복수의 분리된 값 실제로, 단지 하나에 더욱 특권을 준다. 이런 경우에, '멈춤쇠된 파라미터' 또는, 파라미터가 표시 공간의 한 치수 상에 명시적으로 맵핑 (mapping)되는 경우에, '멈춤쇠된 공간'에 관하여 말하는 것이 유용하다. 본 명세서에서, 용어 '멈춤쇠된'의 이용은 파라미터의 선호적 양자화뿐만 아니라 톱니바퀴, 자석 정렬 메커니즘, 조그-셔틀 휠 (jog-shuttle wheels)의 시각-촉각 (visuo-haptic sensation), 그리고 정고한 기계적 멈춤쇠로 구성되는 다른 세속적 장치의 풍부함을 환기시키도록 의도된다.
이런 파라미터의 자기-입증적이지만 매우 중요한 실례에는 (1) 컴퓨터 그래픽 환경 내에서 데이터세트의 표현가능 표시로부터 합성 카메라의 거리; (2) 데이터가 최초 데이터세트로부터 샘플링되고 표현가능 형태로 전환되는 밀도, (3) 샘플이 시간-변화 데이터세트로부터 회수되고 표현가능 표시로 전환되는 시간 지수가 포함되지만 이들에 국한되지 않는다. 이들은 보편적 접근법이다; 무수한 도메인-특이적 파라미터화 역시 존재한다.
SOE의 푸시백은 일반적으로, 데이터세트의 파라미터-제어 축을 물리적 공간 내에서 국지적으로 관련된 '깊이 치수'로 정렬시키고, 그리고 깊이 치수를 따라서 구조화된 실세계 동작이 제어 축을 따라서 데이터-공간 해석을 달성할 수 있도록 한다. 획득된 결과는 파라미터 공간을 항해하기 위한 고도로 효율적인 수단이다. 하기는 SOE에서 수행된 바와 같은 푸시백의 대표적인 구체예의 상세한 설명이다.
푸시백 실례에서, 작업자는 텍스트와 형상을 포함하는 단일 '데이터 프레임'이 나타나는 대형 벽 디스플레이 앞에 편안한 거리에 서 있고, 상기 프레임의 그래픽적 데이터 요소는 안정적 또는 동적일 수 있다. 도 3은 구체예 하에, 디스플레이 300 상에 표현된 데이터 프레임 310의 실례이다. 이러한 실례의 데이터 프레임 310은 이미지를 포함하지만, 여기에 한정되지 않는다. 데이터 프레임 310은 그 자체로 2-차원 구조체이지만, 그럼에도 불구하고 기초 좌표 시스템이 디스플레이 300과 작업자를 비롯한 공간과 이의 내용물을 설명하는데 편의한 실세계 좌표와 일치하도록 정렬되는 환경을 표현하는 3-차원적 컴퓨터 그래픽에 내재한다. 작업자의 손은 손가락, 그리고 아마도 전체 손 주요부의 장소와 배향을 높은 정밀도로, 그리고 높은 시간 비율에서 분석하는 센서에 의해 추적된다; 상기 시스템은 각 손의 ‘포즈’ 즉, 서로에 대하여, 그리고 손 주요부에 대하여 상대적인 손가락의 기하학적 전위를 특성화하기 위하여 결과의 공간적 데이터를 분석한다. 이러한 전형적인 실례가 인간 손인 물체를 추적하긴 하지만, 다수의 다른 물체가 대안적 구체예에서 입력 장치로서 추적될 수 있다. 도 4에서는 구체예 하에, 몸체 400이 손바닥이 전방 방향을 향하는 (z-축을 따라서) (가령, 작업자의 정면에서 디스플레이 스크린을 향하여) 열린 자세에서 작업자의 손인 일-측면 푸시백 시나리오를 도시한다. 이러한 설명을 위하여, 벽 디스플레이 (도시되지 않음)는 x와 y 치수를 갖도록 채택된다; z는 작업자와 디스플레이 사이에 치수를 기술한다. 이러한 푸시백 구체예와 연관된 제스처 상호작용 공간 410은 상수 z의 평면에서 접촉된 2개의 공간을 포함한다; 디스플레로부터 더욱 멀리 (즉, 작업자에 더욱 가깝게) 멈춤쇠된 간격 공간은 '비활동 존' 412로 명명되고, 반면 더욱 가까운 반-공간은 '활동 존' 414이다. 비활동 존 412는 후방으로 (작업자를 향하여, 그리고 디스플레이로부터 멀리) 무한히 확장하지만, 전방으로 유한한 거리로 확장하고 비활동 존 입구 413에서 끝난다. 활동 존 414는 비활동 존 입구 413로부터 전방으로 디스플레이까지 확장한다. 디스플레이 상에 표현된 데이터 프레임(들)은 활동 존 414 내에서 몸체의 움직임에 의해 상호 제어되거나, 또는 "푸시백" 402된다.
데이터 프레임은 디스플레이의 것들에 정확하게 매치되는 크기와 화상의 가로 세로 비에서 건축되고, 그리고 중심과 정상 벡터가 디스플레이의 물리적 속성과 일치하도록 위치되고 배향되지만 상기 구체예에 한정되지 않는다. 장면을 표현하기 위하여 이용되는 가상 카메라는 디스플레이로부터 전방으로, 그리고 대충 작업자의 거리에서 직접적으로 위치된다. 이러한 배경에서, 표현된 프레임은 따라서, 디스플레이를 정확하게 채운다.
균일하게 이격되고, 그리고 즉시 이웃으로부터 각각 적당한 갭 (gap)에 의해 분리되는 다수의 추가적인 공면 데이터 프레임이 가시 프레임의 오른쪽과 왼쪽에 논리적으로 정렬된다 (하기에 기술된 도 6, 7, 그리고 8 참조). 이들이 기하학을 표현하는 컴퓨터 그래픽의 물리적/가상 표현 경계 외부에 존재하기 때문에, 이들 측면 배치된 인접 데이터 프레임은 초기에 가시적이지 않다. 확인되는 바와 같이, 데이터 공간 기하학적 구조가 제공됨 은 z-방향에서 단일 자연 멈춤쇠, 그리고 복수의 χ-멈춤쇠로 구성된다.
작업자는 느슨하게 주먹을 쥔 포즈로, 왼손을 어깨까지 들어올린다. 이후, 손가락이 위쪽으로 향하도록 이들을 확장하고, 그리고 엄지손가락이 오른쪽으로 향하도록 이를 확장한다; 손바닥은 스크린을 향한다 (하기에 상세하게 기술된 제스처 설명 용어에서, 이러한 포즈 변화는 [^^^^>:χ^에서 ||||-:x^로]). 이러한 새로운 포즈를 검출하는 시스템은 푸시백 상호작용을 유발하고 상기 포즈가 첫 번째로 입력된 절대 3-공간 손 장소를 즉시 기록한다: 상기 장소는 차후 손 동작이 상대적 오프셋으로서 기록되는 기원 (origin)으로서 이용된다.
직후, 2개의 동심, 부분적으로 투명한 그림 문자는 프레임의 중심 (따라서, 디스플레이의 중심)에서 중첩된다. 도 5는 구체예 하에, 비활동 존 내에서 비활동 존 입구의 지점까지 몸체 푸시백 제스처를 지시하는 그림 문자 501/502의 실례이다. 두 번째 그림 문자 502가 첫 번째 그림 문자 501 (도 5a 참조)보다 작다는 것은 비록 푸시백 작업이 ‘아직’ 관련되지 않았지만 작업자의 손이 비활동 존 내에 존재한다는 지시이다. 작업자가 손을 전방으로 (비활동 존 입구와 디스플레이를 향하여) 움직임에 따라서, 두 번째 그림 문자 502는 점진적으로 증가한다 (순서대로, 도 5b, 5c, 그리고 5d 참조). 두 번째 그림 문자 502는 작업자의 손이 비활동 존 입구에 있는 지점에서, 첫 번째 그림 문자 501과 크기에서 동등하다 (도 5d 참조). 본 실시예의 그림 문자 501/502는 작업자의 손이 비활동 존과 활동 존을 분리하는 비활동 존 입구를 향하여 출발 장소로부터 전방으로 이동함에 따라서, 그림 문자의 동심 요소의 발달을 보여준다. 그림 문자 502의 내부 "이가 있는" 부분은 손이 입구에 가까워짐에 따라서 증가하고, 그리고 내부 그림 문자 502와 (안정적) 외부 그림 문자 501의 반경이 손이 입구 위치에 도달함에 따라서 정확하게 매치되도록 정렬된다.
두 번째 그림 문자 502는 작업자가 손을 비활동 존 입구로부터 멀리, 그리고 디스플레이로부터 멀리 이동시킴에 따라서 첫 번째 그림 문자 501 내부에서 크기가 위축되지만, 첫 번째 그림 문자 501과 여전히 동심으로 존재하고 디스플레이 상에 집중된다 (순서대로, 도 5d, 5c, 5b, 그리고 5a 참조). 중요하게는, 작업자의 손 동작의 단지 z-성분만 그림 문자의 스케일링 (scaling) 내로 맵핑되고, 손 동작의 부차적인 x-와 y-성분은 기여하지 않는다.
작업자의 손이 비활동 존의 전방 입구를 횡단하고, 활동 존 내로 교차할 때, 푸시백 메커니즘이 관련된다. 손의 상대적 z-자세 (입구로부터 측정됨)는 스케일링 기능에 종속되고, 그리고 결과의 값은 프레임의 표현된 이미지가 디스플레이로부터 물러나는 것으로 보이도록 데이터 프레임과 이의 측면 이웃의 z-축 변위를 달성하는데 이용된다; 이웃하는 데이터 프레임 역시 디스플레이 공간의 모서리로부터 가시화, ‘채움'된다 합성 카메라의 일정한 각 서브텐트 (각 subtent)가 평면이 카메라로부터 멀리 이동하도록 프레임이 위치하는 더욱 많은 평면을 기하학적으로 '포착한다'. z-변위는 작업자가 디스플레이를 향하여 손을 밀고 이를 뒤로 잡아당길 때, 그의 움직임에 직접 응하여 물러나고 인접하는 프레임의 측면 집합을 인식하도록 연속적으로 업데이트된다.
도 7은 구체예 하에, 상응하는 푸시백에 기인하는 데이터 프레임 703의 첫 번째 상대적 z-축 변위의 실례이다. 앞서 기술된 바와 같이, 데이터 프레임 703의 표현된 이미지는 디스플레이 700로부터 물러나는 것으로 관찰되고, 그리고 이웃하는 데이터 프레임 702/704는 디스플레이 공간의 모서리로부터 가시화, '채움' 된다. 다수의 추가적인 공면 데이터 프레임을 포함하는 이웃하는 데이터 프레임 702/704는 가시 프레임의 오른쪽과 왼쪽에 논리적으로 정렬되고, 균일하게 이격되고, 그리고 즉시 이웃으로부터 각각 적당한 갭 (gap)에 의해 분리된다. 도 8은 구체예 하에, 상응하는 푸시백에 기인하는 데이터 프레임 703의 두 번째 상대적 z-축 변위의 실례이다. 첫 번째 상대적 z-축 변위를 고려하고, 그리고 첫 번째 상대적 z-축 변위를 발생시키는 푸싱으로부터 작업자의 손의 진전된 푸싱 (디스플레이를 향하여, 그리고 작업자로부터 멀리 z-축을 따라서 진전된 푸싱)을 가정하면, 프레임 703의 표현된 이미지는 추가의 이웃하는 데이터 프레임 701/705가 디스플레이 공간의 모서리로부터 가시화되고, 더욱 '채움' 되도록 하기 위하여 디스플레이 700으로부터 더욱 물러나는 것으로 관찰된다. 쌍을 이룬 동심 그림 문자는, 한편, 변형된 피드백을 나타내는데, 작업자의 손이 활동 존 내에 존재하고, 두 번째 그림 문자 502가 스케일링-기초된 반응에서 회전 반응으로 이동하고, 여기서 입구로부터 손의 물리적 z-축 오프셋이 양성 (인-평면) 각 오프셋 내로 맵핑된다. 도 6은 구체예 하에, 비활동 존 내에서 비활동 존 입구 (z-축을 따라서 디스플레이를 향하여, 그리고 작업자로부터 멀리)의 지점을 초과하여 몸체 푸시백 제스처를 지시하는 그림 문자 501/502의 실례이다. 본 실례의 그림 문자 501/502는 작업자의 손이 비활동 존 입구를 교차할 때 즉, 푸시백 메커니즘이 활발하게 관련될 때, 그림 문자의 발달을 묘사한다. 디스플레이 내외로 작업자의 손의 움직임은 따라서, 두 번째 그림 문자 502의 시계방향과 반시계방향 회전에 의해 가시적으로 지시되고 (앞에서와 같이, 첫 번째 그림 문자는 안정적 참고 상태를 제시한다), 따라서 그림 문자의 "이가 있는" 요소 520은 입구로부터 손의 오프셋의 선형 기능으로서 회전하고, 선형 동작을 회전 표시로 전환시킨다.
이런 이유로, 본 실례에서, 디스플레이를 향하여 z-축을 따라서 손 움직임의 추가적인 첫 번째 증가는 두 번째 그림 문자 502의 증가성 시계방향 회전 510에 의해 시각적으로 지시되고 (앞에서와 같이, 첫 번째 그림 문자는 안정적 참고 상태를 제시한다), 따라서 그림 문자의 "이가 있는" 요소 520은 입구로부터 손의 오프셋의 선형 기능에 상응하는 첫 번째 양으로 회전한다. 디스플레이를 향하여 z-축을 따라서 손 움직임의 추가적인 두 번째 증가는 두 번째 그림 문자 502의 증가성 시계방향 회전 512에 의해 시각적으로 지시되고 (앞에서와 같이, 첫 번째 그림 문자는 안정적 참고 상태를 제시한다), 따라서 그림 문자의 "이가 있는" 요소 520은 입구로부터 손의 오프셋의 선형 기능에 상응하는 두 번째 양으로 회전한다. 게다가, 디스플레이를 향하여 z-축을 따라서 손 움직임의 추가적인 세 번째 증가는 두 번째 그림 문자 502의 증가성 시계방향 회전 514에 의해 시각적으로 지시되고 (앞에서와 같이, 첫 번째 그림 문자는 안정적 참고 상태를 제시한다), 따라서 그림 문자의 "이가 있는" 요소 520은 입구로부터 손의 오프셋의 선형 기능에 상응하는 세 번째 양으로 회전한다.
이러한 샘플 애플리케이션에서, 두 번째 치수적 민감도는 작업자의 손이 활동 존 내에 있을 때 관련된다: 손의 측면 (x-축) 동작이 다시 한 번 가능한 스케일링 기능을 통하여, 수평 프레임 순서의 x-변위에 맵핑된다. 스케일링 기능이 양성이면, 효과는 작업자의 손의 자세적 '추종 (following)' 중의 하나이고, 그리고 작업자는 자신이 프레임을 왼쪽과 오른쪽으로 슬라이딩하고 있음을 인지한다. 도 9는 구체예 하에, 몸체의 측면 동작에 기인하는 데이터 프레임의 측면 x-축 변위의 실례이다. 측면 몸체 움직임에 기인하는 측면 데이터 프레임 동작의 이러한 실례에서, 데이터 프레임은 특정 데이터 프레임 701/702가 디스플레이 공간 700의 왼쪽 모서리를 통해 시야로부터 사라지거나 부분적으로 사라지고, 추가의 데이터 프레임 705가 디스플레이 공간 700의 오른쪽 모서리로부터 채우도록 왼쪽에서 오른쪽으로 슬라이딩된다.
최종적으로, 작업자가 손을 손바닥-전방 포즈 (가령, 손을 주먹으로 쥠으로써)로부터 벗어나도록 할 때, 푸시백 상호작용이 종결되고, 그리고 프레임의 집합이 이의 기원적 z-멈춤쇠로 신속하게 환원된다 (즉, 디스플레이와 공면). 유사하게, 프레임 집합은 디스플레이와 단일 프레임의 x-일치를 달성하기 위하여 측면에서 조정된다; 푸시백 종결의 시점에서 동심 그림 문자의' 중심에 가장 가까운 프레임은 '디스플레이-집중'으로 끝난다: 가장 가까운 x-멈춤쇠. 그림 문자 구조는 선택 망선으로서 두 번째 기능을 수행하는 것으로 관찰되지만, 상기 구체예는 여기에 한정되지 않는다. 프레임 집합의 z-와 x-자세는 전형적으로, '스프링-적하된 환원'의 시각적 감각을 제공하기 위하여 짧은 시간 간격에 걸쳐 그들의 최종 디스플레이-일치 값으로 진행된다.
본 실례에서 이용되는 푸시백 시스템은 (1) 직접적인 가시적 시선 깊이 치수 을 따라서 집합체 데이터세트를 가변적으로 배치함으로써 인식적으로 귀중한 '이웃 배경'을 획득하고, 따라서 더욱 많은 데이터세트를 가시화시키고 (데이터세트의 임의의 소정의 일부분의 각 서브텐트 (subtent)를 감소시킨 대가로), (2) 자연 수평 치수를 따라서 측면-정렬된 데이터세트를 가변적으로 배치함으로써 이웃 배경을 획득하고, 데이터의 임의의 소정의 섹션의 각 서브텐트를 유지하지만 ‘스크롤링’의 익숙함 감각에서 오래된 데이터의 가시도를 새로운 데이터의 가시도로 교체하고; (3) 신속하고 치수적으로-한정된 항해를 통하여 데이터세트의 별개의 요소를 선택하기 위한 효과적인 제어 양식을 제공한다.
한 구체예의 푸시백의 다른 실례에서, 작업자는 활성 표면이 지면에 평행한 수평 평면 내에 존재하는 허리-수준 디스플레이 장치 바로 옆에 서 있다. 좌표 시스템은 이전의 실례에서와 일치하는 방식으로 확립되고, 디스플레이 표면은 x-z 평면 내에 존재하고, 따라서 표면에 대한 정상을 나타내는 y-축은 물리적 중력 벡터에 마주보게 정렬된다.
도 10에서는 구체예 하에, 테이블-유사 디스플레이 표면 (도시되지 않음) 위에 몸체 1000이 수평적으로 유지되는 물리적 시나리오의 실례를 도시한다. 본 실례에서, 몸체 1000은 작업자의 손이지만, 상기 구체예는 여기에 한정되지 않는다. 푸시백 상호작용은 이중-측면이고, 따라서 상부 비활동 존 입구 1013U 및 하부 비활동 존 입구 1013L이 존재한다. 부가적으로, 푸시백 작전에 의해 평가된 선형 공간은 상부 활동 존 1014U 내에서 분리된 공간적 멈춤쇠 1015U (가령, "1st 멈춤쇠", "2nd 멈춤쇠", "3rd 멈춤쇠", "4th 멈춤쇠") 그리고 하부 활동 존 1014L 내에서 분리된 공간적 멈춤쇠 1015L (가령, "1st 멈춤쇠", "2nd 멈춤쇠", "3ld 멈춤쇠", "4th 멈춤쇠")이 존재한다. 한 구체예의 상호작용 공간은 상부 비활동 존 1012U와 하부 비활동 존 1012L을 포함하는 상대적으로 작은 비활동 존이 푸시백이 관련되고 비활동 존 위에 활동 존 1014U 및 비활동 존 아래 활동 존 1014L이 위치하는 수직 (y-축) 장소에 집중되도록 배열된다. 작업자는 데이터 프레임인 분리된 평형 평면 (하기에 기술된 도 10 참조)의 스택 내로 분석된 데이터세트의 실례로 작업한다. 데이터세트는 그가 나타내는 물리적 현실의 자연적인 결과 (가령, 토모그래픽 스캔으로부터 분리된 조각, 3-차원적 통합된 회로의 복수 층 등)로써, 또는 그가 데이터 (가령, 다수의 스펙트럼 띠에서 획득된 위성 형상, 별도의 층에서 각 10년의 데이터로 지리학적으로 정리된 센서스 데이터 등)를 분리하고 독립시키는데 논리적이거나 또는 유익하기 때문에 이러한 방식으로 정렬될 수 있다. 상기 데이터의 가시적 표시는 더욱 안정적이거나, 또는 동적 요소를 포함할 수 있다.
푸시백 기능성이 관련되지 않는 간격 동안, 단일 층은 ‘현재’인 것으로 간주되고 디스플레이의 가시적 돌출로 표시되고, 그리고 디스플레이와 물리적으로 일치하는 것으로 인지된다. 현재 층 위와 아래의 층은 본 실례에서, 가시적으로 명백하지 않다 (비록 소형 도상이 이들의 존재를 지시하기 위하여 이용되긴 하지만).
작업자는 자신의 닫혀진 오른쪽 손을 디스플레이 위에 확장한다; 작업자가 손을 개방할 때, -- 손가락이 전방으로 확장되고, 엄지손가락이 왼쪽으로 확장되고, 그리고 손바닥이 아래를 향한다 (변화: [^^^^>:vx에서 ||||_ vx로] --, 푸시백 시스템이 짧은 간격 (가령, 200 밀리초) 동안 관련되고, 현재 층에 인접하는 몇 개의 층은 차별적 가시도로 쇠퇴하고, 각각은 '심각도'가 현재 층으로부터 층의 서수 거리 (ordinal distance)에 좌우되는 흐림 필터과 투명도로 아래에 또는 위에 복합된다.
도 11은 구체예 하에, 푸시백 시스템이 관련됨에 따라 차별적 가시도로 쇠퇴하는 현재 층 1101 (가령, 현재 데이터 프레임 1101)에 인접하는 층 1102 (가령, 데이터 프레임 1102)의 실례이다. 본 실례에서, 스택은 다수의 데이터 프레임 1101-11OX을 포함한다 (여기서 X는 데이터 프레임의 데이터세트에 적합한 임의의 숫자이다; 본 실례에서, X는 5이고, 따라서 스택은 푸시백 시스템을 이용하여 횡단될 수 있는 데이터 프레임 1101, 1102, 1103, 1104, 그리고 1105를 포함한다).
동시에, 이전 실례로부터 익숙한 동심 피드백 그림 문자가 나탄나다; 이러한 경우에, 상호작용은 작은 비활동 존이 푸시백이 관련되고 비활동 존 위와 아래에 활동 존이 위치하는 수직 (y-축) 장소에 집중되도록 배열된다. 이러한 정렬은 기원적 층을 ‘재획득’하는데 도움을 제공한다. 이들 그림 문자는 이 경우에, 연속 층에 지향된 근접을 지시하는 추가의 단순한 그래픽을 동반한다.
작업자의 손이 비활동 존 내에 머물러 있는 동안, 층 스택의 변위는 발생하지 않는다. 이들 그림 문자는 선행 실례에서와 동일한 ‘예비’ 행동을 나타내고, 손이 존의 경계에 가까워짐에 따라 내부 그림 문자가 증가한다 (물론, 이러한 행동은 이중-측면이고 대칭적이다: 내부 그림 문자는 손의 출발 y-자세에서 최소 등급에 있고, 그리고 손이 위쪽으로 또는 아래쪽으로 움직이는 지에 상관없이, 외부 그림 문자와 일치하도록 증가한다).
작업자의 손이 비활동 존의 상부 평면을 지나 상향 이동할 때, 내부 그림 문자는 외부 그림 문자를 관련시키고, 그리고 앞에서와 같이, 상기 방향으로 손의 진전된 움직임은 내부 그림 문자의 반시계방향 회전 동작을 유발한다. 동시에, 층 스택은 '상향 해석되기' 시작한다: 기원적으로- 현재 층 위에 층들은 더욱 큰 투명도와 흐림을 갖는다, 기원적으로- 현재 층은 자체로써, 더욱 투명하고 더욱 흐리다; 그리고 그 아래 층은 더욱 가시화되고 덜 흐린 방향으로 움직인다.
도 12는 구체예 하에, 이전-현재 층 1101 (가령, 데이터 프레임 1101) (도시되지 않음, 도 11 참조)이 더욱 큰 투명도를 갖고 (본 실례에서 눈에 보이지 않게 된다), 반면 이전-현재 층 1101 에 인접하는 층 1102 (가령, 데이터 프레임 1102)는 이전- 현재 층에서처럼 가시화되는 스택의 상향 해석의 실례이다. 부가적으로, 이전-현재 층 1102에 인접한 층 1103 (가령, 데이터 프레임 1103)은 스택이 상향 해석함에 따라서 차별적 가시도로 쇠퇴한다. 앞서 기술된 바와 같이, 스택은 다수의 데이터 프레임 1101-11OX을 포함한다 (여기서 X는 데이터 프레임의 데이터세트에 적합한 임의의 숫자이다; 본 실례에서, X는 5이고, 따라서 스택은 푸시백 시스템을 이용하여 횡단될 수 있는 데이터 프레임 1101, 1102, 1103, 1104, 그리고 1105를 포함한다).
층 스택은 실세계 거리 (즉, 공간 좌표에서 측정된 바와 같이, 최초 자세로부터 작업자의 손의 변위) 및 연속 층 사이에 '논리적' 거리 간에 맵핑과 일치한다. 층 스택의 해석은 당연히, 이러한 근접 그래픽의 즉시 출현에서처럼, 상기 맵핑의 결과이고, 이는 한편, 디스플레이 평면과 현재 층 간에 (최초에) 증가하는 거리를 지시하고, 이는 또한, 디스플레이 평면이 현재 층 아래에 존재한다는 것을 지시한다.
손의 동작은 지속하고, 그리고 층 스택은 궁극적으로, 현재 층과 바로 아래 층이 디스플레이 평면에 걸쳐 있는 (즉, 이로부터 등거리) 장소를 통과한다; 이 지점을 통과한 직후에, 근접 그래픽 변화는 디스플레이 평면이 현재 층보다 높게 있음을 지시한다: 지금 '현재 층 상태'는 다음 하부 층으로 지정되었다. 일반적으로, 현재 층은 항상, 물리적 디스플레이 평면에 가장 가까운 층이고, 그리고 작업자가 푸시백 시스템을 해방할 때, ‘선택되는’는 것이다.
작업자가 자신의 손을 계속 들어 올림에 따라서, 각각의 연속 층은 디스플레이 평면으로 지향되고, 점진적으로 더욱 분석되고, 디스플레이 평면와 순간적인 일치를 획득하고, 그리고 이후 다음 하부 층에 유리하게 투명도과 흐림으로 환원된다. 작업자가 자신의 손의 동작의 방향을 바꾸고 이를 낮출 때, 공정은 반전되고, 그리고 내부 그림 문자는 시계방향으로 회전한다. 손이 궁극적으로 비활동 존을 통과함에 따라서, 스택은 디스플레이 평면과 정확한 y-정렬로 기원적으로-현재 층으로 중단되고, 그리고 이후 상기 스택의 y-이동이 재개되고, 기원적으로-현재 층 위에 이들 평면을 연속적으로 집중시킨다. 작업자의 전반적인 인식이 강하고 단순하고, 자신을 손을 이용하여 층의 스택을 밀어내거나 끌어당긴다.
마지막으로, 작업자가 자신의 손을 닫음으로써 (또는 달리, 포즈를 변화시킴으로써) 푸시백을 해방할 때, 시스템은 디스플레이 평면과 멈춤쇠된 y-축 정렬 내로 스택을 ‘스프링’하고, 푸시백이 퇴장됨에 따라서 디스플레이 평면에 가장 가까운 현재 층으로서 남겨졌다. 이러한 자세적 재정렬의 짧은 간격 동안, 모든 다른 층은 투명도를 완결하기 위하여 되돌려 희미해지고, 그리고 피드백 그림 문자는 부드럽게 사라진다.
본 실례의 데이터세트 (즉, 층)의 독립화된 요소는 주요 푸시백 (깊이) 축을 따라서 분배된다; 이전에, 이들 요소 (데이터 프레임)는 공면이고 깊이 축에 직각인 치수를 따라서 측면으로 정렬된다. 이러한 정렬은 투명도 기술의 이용과 함께, 데이터가 종종 중복된다는 것을 의미한다 일부 층은 다른 층을 통하여 보여진다. 본 실례에서 작업자는 그럼에도 불구하고, (1) 이웃 배경 (현재 층과 위와 아래에 층의 내용물?)을 신속하게 획득하는 평이함; 그리고 (2) 데이터세트 내에서 평형한 스택된 요소 사이에 효율적인 선택과 스위칭에 대한 평이함을 향유한다. 작업자가 (1)만을 의도할 때, 비활동 존의 제공은 작업자가 기원적으로 선택된 층에 자신있게 돌아갈 수 있도록 한다. 조작을 통하여, 2가지 해석적 치수의 억제는 속도와 정확도를 가능하게 한다 (대부분의 사람이 측면 드리프트 없이 손을 수직으로 직동시키는 것이 비교적 어렵긴 하지만, 앞서 기술된 양상은 임의의 이와 같은 측면 변위을 단순하게 무시한다).
일정한 목적을 위하여, 비활동 존이 극미하도록 푸시백 입력 공간을 배열하는 것이 편의할 수 있다; 이후, 푸시백이 관련되자마자, 이의 활성 메커니즘 역시 관련된다. 본 명세서에 제공된 두 번째 실례에서, 이는 기원적으로- 현재 층이 임의의 다른 것으로부터 차이가 없게 처리된다는 것을 의미할 것이다 일단 푸시백 작전이 시작되면 . 경험적으로, 비활동 존의 선형 정도는 작업자 선호의 문제이다.
상기 두 번째 실례에서 기술된 양상은 2-차원 (사출성 또는 발사성) 및 3-차원 (오토스테레오스코픽이거나 아님, 항공-이미지-생산성이거나 아님 등) 장치를 비롯한 다양한 디스플레이에서 적합하다. 후자의 고-품질 수행 즉 3D -- 경우에, 매체의 일정한 특징은 푸시백의 기초가 되는 인식 메커니즘에 많은 도움이 될 수 있다. 가령, 패럴랙스, 필드의 광학 깊이, 그리고 눈 수용 현상의 조합은 복수 층이 동시에 이해될 수 있도록 하고, 따라서 디스플레이 평면으로부터 멀리 떨어진 층을 심각하게 쇠퇴하게 만들고 희미하게 하는 (또는 실제로, 서로를 배제하는) 필요성을 없앤다. 이들 양상은 게다가, 디스플레이의 배향에 상관없이 적용된다: 이는 실례에서처럼 주로 수평이거나, 또는 벽에서 눈 높이에서 유용하게 적재될 수 있다.
이러한 두 번째 실례의 시나리오의 확장은 2-손 조작의 유용성을 묘사한다. 일정한 애플리케이션에서, 전체 층 스택 또는 개별 층을 측면으로 (즉, x와 z 방향으로) 해석하는 것이 필요하다. 한 구체예에서, 작업자의 다른 즉, 비-푸시백 손은 예로써, 오프셋 x-z 장소가 손의 장소에 뒤이어 오도록 하기 위하여, 손을 디스플레이 표면에 가깝게 근접시키는 것이 데이터세트의 층 중에서 하나가 '주변으로 슬라이딩'될 수 있도록 하는 양상을 통하여 이러한 변화를 달성할 수 있다. 작업자는 일반적으로, 측면 해석과 푸시백 조작을 동시에 수행하는 것이 편의하고 다루기 용이하다는 것을 발견할 수 있다. 연속-도메인 조작을 하나의 손에 할당하고, 그리고 분리된-스타일 작업을 다른 손에 할당하는 것이 인식 부하 (cognitive load)를 최적화하는 역할을 한다고 제안하는 것은 아마도 완전하게 헛소리는 아닐 것이다.
데이터세트에 대한 자연적인 가시적 측면이 존재하지 않는 SOE 하에 푸시백의 또 다른 실례를 고려하는 것은 유익하다. 복수의 자동 채널을 모니터하고 집합에서 하나를 간헐적으로 선택하는 문제점이 대표적이다. 푸시백 시스템의 애플리케이션은 청각에 대하여 적합하지만 가시적 출력에는 그렇지 못한 환경에서 이런 과제를 가능하게 한다; 이러한 양상은 서행 실례의 양상과 매우 유사하다.
작업자는 서 있거나 또는 앉아 있는 지에 상관없이, 오디오의 단일 채널에 귀를 기울인다. 개념적으로, 상기 오디오는 귀를 기하학적으로 포함하는 수직 평면 '청각 평면'으로 불림 내에 존재한다; 오디오의 추가적인 채널은 청각 평면에 평행한 추가의 평면 내에 존재하지만 z-축을 따라서, 전방과 후방으로 옮겨진다.
작업자는 자신으로부터 9 인치 전방에 유지된 손을 손바닥이 전방을 향하도록 개방할 때, 푸시백 시스템을 관련시킨다. 여러 근접 평면 내에서 오디오는 차별적으로 쇠퇴한다; 각각의 부피는 현재 채널의 평면으로부터 서수 거리에 역으로 좌우된다. 실제로, 2개 이상 또는 4개의 추가적인 채널이 가청이 될 수 있도록 하는 것은 인식적으로 비현실적이다. 동시에, '오디오 그림 문자'는 근접 피드백를 제공하기 위하여 쇠퇴한다. 초기에, 작업자의 손이 비활동 존 내에 유지되는 동안, 그림 문자는 가까스로 가청인 2-노트 현 (chord) (초기에, 동음)이다.
작업자가 비활동 존을 통하여 손을 전방 또는 후방으로 이동시킬 때, 오디오 채널의 부피는 고정된 상태로 유지되는 반면, 그림 문자의 부피는 증가한다. 손이 비활동 존의 전방 또는 후방 입구를 교차할 때, 그림 문자는 ‘활성’ 부피에 도달한다 (이는 여전히, 현재 채널의 부피에 종속된다). 일단 작업자의 손이 활동 존을 통하여 이동하기 시작할 때 전방 방향으로 , 오디오 채널에 대한 예측된 효과가 획득된다: 현재 채널 평면은 청각 평면으로부터 멀리 푸싱되고, 그리고 이의 부피 (그리고 이들 채널의 부피는 여전히, 전방으로 더욱 멀다)는 점진적으로 감소된다. 다른 한편으로, 각 '등쪽' 채널 평면의 부피는 청각 평면에 가까워짐에 따라 증가한다. 한편, 오디오 그림 문자는 모드를 변경한다. 손의 전방 진행은 청각 평면이 하나의 오디오 채널 평면과 그 다음 오디오 채널 평면을 이등분하고, 이들 가청음이 정확한 5도 음정을 형성할 때 (수학적으로, 이는 트리톤 (tritone) 간격이어야 하지만, 이를 피해야만 하는 충분한 이유가 존재한다), '중간 지점'에서 이들 가청음 중에서 하나의 주파수에서 상승을 동반한다. 가변 가청음의 주파수는 손 전방으로 지속됨에 따라서, 궁극적으로 작업자가 가청음이 정확하게 8도 음정에 걸쳐있는 지점인 다음 오디오 평면에 ‘도달’할 때까지 계속 상승한다.
다양한 채널의 오디션이 진행되고, 작업자는 각각 교대로, 접근하기 위하여 손을 전방과 후방으로 직동시킨다. 최종적으로, 작업자는 하나를 선택하기 위하여 자신의 손을 단순히 닫고, 푸시백 세션을 종결하고 오디오 평면의 집합이 정렬 내로 ‘스프링’되도록 한다. 다른 (비-선택된) 채널은 그림 문자가 그러한 것처럼 알아들을 수 없게 사라진다.
본 실례는 동일한 시설이 다시 수용되는 푸시백 애플리케이션에서 변이체를 예시하였다: 이웃 배경에 대한 접근 및 독립화된 데이터 요소 (여기서, 개별 오디오 흐름)의 신속한 선택. 이러한 시나리오는 작업자가 선택을 하기 위한 표적 채널에 ‘충분히 가까이 있는 지’에 관한 정보를 작업자에게 제공하기 위하여, 청각 피드백 메커니즘, 특히 일정한 주파수 간격에 대한 신뢰성 있는 인간 능력을 이용하는 메커니즘을 대용한다. 이는 음성 채널의 경우에 특히 중요한데, 여기서 '가청' 신호는 단지 간헐적으로 존재하고, 오디오 피드백 그림 문자의 연속적인 성격은 채널 자체가 침묵하게 될 때에도 여전히 존재하고 명료하다.
본 실례에서 SOE가 공간적된 오디오에 대한 능력을 보유한다면, 전방 거리로 수축하고 후방으로부터 접근하는 (또는 그 반대로) 연속 오디오 층의 인식은 매우 강화될 수 있다. 게다가, 작업자의 앞에 연속 층 및 뒤에 선행 층이 존재할 때, 작업자의 장소에서 선택된 오디오 평면을 더욱 문언적으로 ‘위치시키는’ 기회가 유용하게 이용될 수 있다.
오디오 그림 문자의 다른 인스턴트화가 가능하고, 그리고 실제로, 그들의 스펙트럼 분포를 비롯한 다양한 채널'의 내용물의 성격은 어떤 종류의 그림 문자가 가장 명확하게 식별될 수 있는 지를 지시하는 경향이 있다. 실례로써, 다른 오디오 그림 문자 포맷은 일정한 부피를 유지하지만 청각 평면과 가장 가까운 오디오 채널 평면 사이에 근접에 비례하는 클릭 사이에 간격으로, 주기적인 클릭킹 (periodic clicking)을 이용한다. 최종적으로, 일정한 상황 하에, 그리고 작업자의 예민함에 따라, 피드백 그림 문자 없이 오디오 푸시백를 이용하는 것이 가능하다.
푸시백 메커니즘과 관련하여, 데이터세트의 표시에서 공간적 멈춤쇠의 숫자와 밀도가 매우 대형으로 증가함에 따라서, 공간과 이의 파라미터화는 효과적으로 연속화된다 다시 말하면, 비-멈춤쇠된다. 푸시백은 부분적으로, 푸시백의 각 발동에 앞서 데이터세트의 '최초 상태'가 일시적인 멈춤쇠로서 처리되고, 비활동 존으로서 간단하게 현실화되기 때문에, 이러한 극한에서도 여전히 효과적이다.
이런 비-멈춤쇠된 푸시백의 애플리케이션은 무한적으로 (또는 최소한 실질적으로) 확대가능 (zoomable) 다이어그램의 아이디어와 연관하여 관찰될 수 있다. 줌 (zoom) 기능성의 푸시백 제어는 오프셋 손 장소를 아핀 (affine) 등급 값과 연관시키고, 따라서 작업자는 자신의 손을 전방 또는 후방으로 밀고 줌의 정도가 감소하거나 증가한다 (각각). 하지만, 이러한 기원적, 프리-푸시백 줌 상태는 항상 용이하게 접근가능한데, 그 이유는 줌 파라미터에 장소의 직접적인 맵핑이 제어 손의 비활동 존으로의 환원 역시 줌 값의 최초 상태로의 환원을 실행하도록 담보하기 때문이다.
상기 실례에 기술된 각 시나리오는 푸시백 시스템 및 SOE 하에 이의 용도의 현저한 측면의 설명을 제공한다. 본 명세서에 기술된 각 작전은 인간 움직임을 보도하는 특정한 종류의 인식 피드백을 가능하게 함으로써 달성되는 효율과 정확성으로 인하여, 1초 이내에 정확하고 포괄적으로 실행될 수 있는 것으로 더욱 이해되어야 한다. 다른 시점에서, 작업자는 또한, 수십초 동안 단일 연속 푸시백 '세션' 내에 유지하는 것이 유용하다는 것을 확인한다: 탐색과 배경-획득 목표는 더욱 긴 간격에서 푸시백에 의해 충분히 달성된다. 앞서 기술된 실례는 표시 공간에 물리적 입력 (제스처) 공간의 선형 맵핑을 이용한다: 실제 공간에서 A 회로로 제어 손을 해석하는 것은 항상, A-해석이 수행되는 실제-공간 장소에 상관없이, 표시 공간 내에 B 단위 [프라임]에 의한 해석을 결과한다. 하지만, 다른 맵핑이 가능하다. 특히, 대부분의 인간 작업자에 의해 향유되는 미세 운동 제어의 정도는 비-선형 맵핑의 이용을 가능하게 하고, 여기서 예로써, 활동 입구로부터 멀리 떨어진 차별적 제스처 해석은 입구 근처에 제스처 해석보다 파라미터화딘 치수를 따라서 더욱 변위로 해석될 수 있다.
마커 태그
한 구체예의 SOE는 시스템이 사용자의 손의 위치를 확인하고, 왼손 또는 오른손을 보고 있는 지, 그리고 어떤 손가락이 가시적인 지를 확인하기 위하여, 사용자의 하나 이상의 손가락 상에서 마커 태그의 이용을 고려한다. 이는 상기 시스템이 사용자의 손의 위치, 배향, 그리고 움직임을 검출할 수 있도록 한다. 이러한 정보는 다수의 제스처가 시스템에 의해 인식되고 사용자에 의해 명령어로서 이용될 수 있도록 한다. 한 구체예에서, 마커 태그는 기질을 포함하는 물리적 태그 (적절하게는, 본 구체예에서 인간 손에서 다양한 위치에 고정을 위하여) 및 독특한 확인 패턴에서 기질의 표면 상에 정렬된 분리된 마커이다.
이들 마커와 연관된 외부 감각 시스템은 그들의 3-공간 장소의 정확한, 정밀한, 그리고 신속하고 연속적인 획득을 가능하게 하는 임의의 도메인 (광학, 전자기, 정자기 등)에서 작동할 수 있다. 마커 자체는 능동적으로 (가령, 구조화된 전자기 펄스를 방출함으로써) 또는 수동적으로 (가령, 본 구체예에서처럼 광학적으로 역반사됨으로써) 작동할 수 있다.
획득의 각 프레임에서, 검출 시스템은 정교한 작업공간 부피 내에 (카메라 또는 다른 검출기의 가시 범위 내에서) 현재 태그로부터 모든 마커를 포함하는 회수된 3-공간 위치의 집합체 '클라우드‘를 수용한다. 각 태그 상에서 마커는 충분한 다중성을 갖고 독특한 패턴으로 정렬되고, 따라서 검출 시스템은 아래의 과제를 수행할 수 있다: (1) 분할, 여기서 각 회수된 마커 장소는 단일 태그를 형성하는 지점의 단지 하나의 부분집합에만 지정된다, (2) 라벨링, 여기서 지점의 각 분할된 부분집합은 특정 태그로서 확인된다, (3) 위치, 여기서 확인된 태그의 3-공간 장소가 회수된다; 그리고 (4) 배향, 여기서 확인된 태그의 3-공간 배향이 회수된다. 과제 (1)과 (2)는 도 2와 관련하여 하기에 기술된 바와 같이, 마커-패턴의 특정한 성격을 통하여 가능해진다. 한 구체예에서, 태그 상에서 마커는 규칙적인 격자 위치의 부분집합에서 고정된다. 이러한 기초 격자는 본 구체예에서처럼, 전통적인 데카르트 분류 (Cartesian sort)이거나; 또는 그 대신에, 다른 규칙적인 평면 쪽매붙임 (가령, 삼각/육각형 기와지붕 정렬)일 수 있다. 격자의 등급과 간격은 마커-감각 시스템의 공지된 공간적 분할에 대하여 확립되고, 따라서 인접한 격자 위치는 혼란의 가능성이 거의 없다. 모든 태그에 대한 마커 패턴의 선택은 아래의 제약을 충족시켜야 한다: 어떤 태그의 패턴도 회전, 해석, 또는 거울보기 (mirroring)의 임의의 조합을 통하여 임의의 다른 태그의 패턴과 일치하지 않아야 한다. 마커의 다중성과 정렬은 일부 명시된 숫자의 성분 마커의 상실 (또는 차단)이 관용되도록 더욱 선택될 수 있다. 임의의 변형 이후에, 타협된 모듈이 임의의 다른 것과 혼동될 가능성이 여전히 없어야 한다.
도 13은 구체예 하에, 태그를 마킹하는 다이어그램이다. 다수의 태그 1301 A-1301E (왼손)와 1302A-1302E (오른손)이 도시되지만, 상기 구체예는 여기에 한정되지 않는다. 각 태그는 직사각형이고 본 구체예에서, 5x7 격자 어레이로 구성된다. 직사각형 형상은 태그의 배향을 결정하는데 보조로서, 그리고 거울 중복의 가능성을 감소시키기 위하여 선택된다. 도시된 구체예에서, 각 손에서 각 손가락에 대한 태그가 존재한다. 일부 구체예에서, 손마다 1개, 2개, 3개, 또는 4개의 태그를 이용하는 것이 적합하다. 각 태그는 상이한 회색-등급 또는 색조 (color shade)의 경계를 갖는다. 이러한 경계 내에, 3x5 격자 어레이가 존재한다. 마커 (도 13에서 검은 점으로 표시됨)는 정보를 제공하기 위하여 격자 어레이 내에 일정한 지점에 배치된다.
적격 정보는 각 패턴의 "공통"과 "독특한" 하위패턴의 분할을 통해 태그의 마커 패턴으로 인코딩된다. 가령, 본 구체예는 2가지 가능한 “경개 패턴”, 직사각형 경계 주변에 마커의 분포를 명시한다. 따라서 태그의 “집단”이 확립된다 - 왼손에 의도된 태그 모두 따라서, 태그 1301A-1301E에 도시된 바와 동일한 경계 패턴을 이용할 수 있는 반면, 오른손의 손가락에 부착된 태그는 태그 13O2A-13O2E에 도시된 바와 같이 상이한 패턴으로 지정될 수 있다. 이러한 하위패턴은 태그의 모든 배향에서, 왼쪽 패턴이 오른쪽 패턴으로부터 구별될 수 있도록 선택될 수 있다. 예시된 실례에서, 왼손 패턴은 각 코너에서 마커를 포함하고, 그리고 마커는 코너 격자 위치로부터 1초 이내에 존재한다. 오른손 패턴은 단지 2개의 코너에서 마커 및 비-코너 격자 위치에서 2개의 마커를 포함한다. 상기 패턴의 검사에서, 4개의 마커 중에서 임의의 3개가 가시적이면, 왼손 패턴은 왼손 패턴으로부터 양성적으로 구별될 수 있는 것으로 확인된다. 한 구체예에서, 경계의 색깔 또는 색조 역시 손잡이의 지시자로서 이용될 수 있다. 각 태그는 당연히, 독특한 내부 패턴을 이용해야 하고, 마커는 그 집단의 공통 경계 내에 분포되어야 한다. 도시된 구체예에서, 내부 격자 어레이 내에 2개의 마커가 손가락의 회전 또는 배향으로 인한 중복 없이 10개 손가락 각각을 독특하게 확인할 만큼 충분한 것으로 밝혀졌다. 이들 마커 중에서 한 개가 차단된 경우에도, 태그의 패턴과 손잡이의 조합은 독특한 식별자를 산출한다.
본 구체예에서, 격자 위치는 의도된 위치에서 각 역반사성 마커을 고정시키는 (매뉴얼) 과제에 보조로서 격자 물질 상에 가시적으로 존재한다. 이들 격자와 의도된 마커 위치는 칼라 잉크젯 프린터를 통해 기질 상에 문언적으로 프린팅되고, 이는 (초기에) 유연성 "수축-필름“의 시트이다. 각 모듈은 시트로부터 절단되고, 이후 오번-베이킹되고, 이러한 열 처리 동안 각 모듈은 정확하고 반복가능한 수축이 발생한다. 이러한 절차 이후에 짧은 간격 동안, 냉각 태그가 예로써, 손가락의 세로 곡선 (longitudinal curve)을 추종하도록 약하게 성형된다; 이후, 기질은 적절하게 단단하고, 그리고 마커는 지정된 격자 지점에서 고정된다. 한 구체예에서, 이들 마커는 자체로써, 3-차원, 예를 들면, 점착성 또는 일부 다른 적절한 수단을 통해 기질에 고정된 작은 반사성 구체이다. 이들 마커의 3-차원성은 2가지 치수적 마커에서 검출과 위치확인을 보조할 수 있다. 하지만, 어떤 것도 본 명세서에 기술된 SOE의 기술적 사상과 범위를 벗어나지 않으면서 이용될 수 있다.
현재, 태그는 작업자가 낀 장갑에 Velcro 또는 기타 적절한 수단을 통해 고정되거나, 또는 약한 이중-스틱 테이프를 이용하여 작업자의 손가락에 직접적으로 대안적으로 고정된다. 세 번째 구체예에서, 작업자의 손가락과 손 위에 직접적으로 단단한 기질과 첨부 또는 "페인트“개별 마커를 함께 분배하는 것이 가능하다.
제스처 기호
한 구체예의 SOE는 손 포즈, 배향, 손 조합, 그리고 배향 블렌드로 구성되는 제스처 기호를 고려한다. 표기 언어는 또한, SOE의 제스처 기호에서 포즈와 제스처를 설계하고 소통하기 위하여 수행된다. 제스처 기호는 소형 텍스처 형태에서 운동학적 연쇄의 즉시 '포즈 상태'를 나타내기 위한 시스템이다. 문제의 연쇄는 생물학적이거나 (가령, 인간 손; 또는 전체 인간 몸체; 또는 메뚜기 다리, 또는 여우원숭이의 관절 등뼈), 또는 그 대신에 비-생물학적 (가령, 로봇팔)일 수 있다. 어떤 경우든, 이러한 연쇄는 단순하거나 (등뼈), 또는 가지화 (손)될 수 있다. SOE의 제스처 기호 시스템은 임의의 특정 연쇄에 대하여, 일정한 길이 일련 (string)을 확립한다; 일련의 '문자 위치'를 점유하는 특정한 ASCII 문자의 집합체는 이후, 연쇄의 즉시 상태의 독특한 설명, 또는 '포즈'이다.
손 포즈
도 14에서는 구체예 하에, SOE의 제스처 기호에서 손 포즈를 도시한다. SOE는 손에서 5개의 손가락 각각이 이용된다고 제안한다. 이들 손가락은 p-새끼손가락, r-고리 손가락, m-중간 손가락, i-인덱스 손가락, 그리고 t-엄지손가락으로서 코딩된다. 손가락과 엄지손가락에 대한 다수의 포즈가 정의되고, 구체예의 제스처 기호에서 예시된다. 제스처 기호 일련은 연쇄 (이 경우에, 손가락)의 각 표현가능한 자유도에 대한 단일 문자 장소를 확립한다. 더 나아가, 각각의 이와 같은 자유도는 독립화 (또는 '양자화')되는 것으로 이해되고, 따라서 이의 완전 동작 범위는 상기 일련 자세에서 한정된 숫자의 표준 ASCII 문자 중에서 하나의 정렬을 통하여 표현될 수 있다. 이들 자유도는 몸체-특이적 기원과 좌표 시스템 (손등, 메뚜기의 몸체의 중심; 로봇팔의 기부 등)에 대하여 표시된다. 이런 이유로, 적은 숫자의 추가적인 제스처 기호 문자 자세가 더욱 전체적인 좌표 시스템에서 전체로서 연쇄의 장소와 배향을 표시하는데 이용된다.
다수의 포즈는 ASCII 문자를 이용하여 정의되고 확인된다. 이들 포즈 중에서 일부는 엄지손가락과 비-엄지손가락 간에 분할된다. 이러한 구체예에서 SOE는 포즈를 암시하는 ASCII 문자 자체와 같은 코딩을 이용한다. 하지만, 암시 여부에 상관없이, 포즈를 나타내기 위하여 임의의 문자가 이용될 수 있다. 이에 더하여, 본 발명에서는 표기 일련에 대한 ASCII 문자를 이용할 필요성이 없다.
본 발명의 범위와 기술적 사상을 벗어나지 않으면서 임의의 적절한 기호, 수치, 또는 기타 표시가 이용될 수 있다. 가령, 표기는 원하는 경우에, 손가락마다 2개의 비트 (bit), 또는 일부 다른 숫자의 비트를 이용한다.
말려진 손가락은 문자 "^"로 표시되는 반면, 말려진 엄지손가락은 ">"로 표시된다. 위로 곧게 펴진 손가락 또는 엄지손가락은 "I"로 표시되고, 그리고 임의의 각도에서 손가락 또는 엄지손가락은 "\" 또는 "/"로 표시된다. "-"는 옆쪽으로 곧게 펴진 엄지손가락을 나타내고, 그리고 "x"는 평면을 가리키는 엄지손가락을 나타낸다.
이들 개별 손가락과 엄지손가락 설명을 이용하여, 많은 숫자의 손 포즈가 본 발명의 도표를 이용하여 정의되고 기재될 수 있다. 각 포즈는 앞서 기술된 바와 같이, p-r-m-i-t의 순서로 5개 문자로 표시된다. 지면에 평행하게 납작하게 유지된 손은 "11111“로 표시된다". 주먹은 "^^^^>"로 표시된다. "OK" 기호는 " 111^ >"로 표시된다.
이들 문자 일련은 주관적인 문자를 이용할 때, 간단한 "인간 가독성"에 대한 기회를 제공한다. 각 자유도를 기술하는 가능한 문자의 세트는 일반적으로, 눈에 의해 신속한 인식과 명백한 유사성으로 선택될 수 있다. 가령, 수직 막대 ('|')는 연쇄 요소가 '일직선'임을 의미할 것이고, 엘 (‘L')은 90도 휘어짐을 의미하고, 그리고 곡절 ('^’)은 심한 굴곡을 지시할 수 있다. 앞서 언급된 바와 같이, 원하는 경우에 임의의 문자 또는 코딩이 이용될 수 있다.
예로써, 본 명세서에 기술된 제스처 기호 일련을 이용하는 임의의 시스템은 일련 비교 (string comparison)의 높은 연산 효율의 이점을 향유한다 -- 임의의 특정된 포즈에 대한 확인 또는 검색은 문언적으로, 원하는 포즈 일련과 즉시 실제 일련 사이에 ‘일련 비교’(가령, UNIX's ‘strcmpQ’ 기능)가 될 것이다. 더 나아가, ‘와일드카드 문자’의 이용은 프로그래머 또는 시스템 설계자에게 추가의 익숙한 효율과 효능을 제공한다: 즉시 상태가 매체에 대하여 무관한 자유도는 의문 지점 (‘?’)으로 명시된다; 추가의 와일드카드 의미가 지정될 수 있다.
배향
손가락과 엄지손가락의 포즈에 더하여, 손의 배향은 정보를 나타낼 수 있다. 전체적인-공간 배향을 기술하는 문자 역시 명백하게 선택될 수 있다: 문자 '<' , '>', '^', 그리고 ‘v'가 배향 문자 자세 내에서 조우될 때, 왼쪽, 오른쪽, 위쪽, 그리고 아래쪽의 아이디어를 지시하는데 이용될 수 있다. 도 15는 구체예 하에, 제스처 기호에서 배향의 다이어그램이다. 제스처 기호의 이러한 배향은 손 배향 서술자, 그리고 포즈와 배향을 통합하는 코딩의 실례를 포함한다. 본 발명의 한 구체예에서, 2개의 문자 자세는 먼저, 손바닥의 방향을 지시하고, 이후 손가락의 방향을 지시한다 (손가락의 실제 굽어짐에 상관없이, 이들이 일직선이면). 이들 2가지 자세에 대한 가능한 문자는 배향의 "몸체-중심" 개념을 표시한다: "-", "+", "x", "*", "^", 그리고 "v"는 중간, 측면, 전방 (전방, 몸체로부터 멀리), 후방 (후방, 몸체로부터 멀리), 두개 (상향), 그리고 꼬리 (하향)를 표시한다.
본 발명의 표기 도표와 구체예에서, 5개의 손가락 포즈 지시 문자는 콜론이 뒤를 따르고, 이후 완전한 명령어 포즈를 정의하는 2개의 배향 문자가 위치한다. 한 구체예에서, 출발 장소는 "xyz" 포즈로서 지칭되는데, 여기서 이러한 포즈가 오른손으로 이루어질 때,
엄지손가락은 위쪽으로 향하고, 인덱스 손가락은 전방으로 향하고, 그리고 중간 손가락은 인덱스 손가락에 직각이고, 왼쪽을 가리킨다. 이는 일련 "^^xl-:-x"로 표시된다
"XYZ-손"은 가시적으로 제공된 3-차원적 구조의 완전 6-자유도 항해를 가능하게 하는 인간 손의 기하학을 이용하는 기술이다. 비록 이러한 기술이 작업자의 손의 벌크 해석과 회전에만 의존하지만 따라서, 손가락이 원하는 임의의 포즈로 유지되어야 한다 , 본 발명의 구체예는 인덱스 손가락이 몸체로부터 먼 방향을 가리키; 엄지손가락 지점이 천장을 가리키고; 그리고 중간 손가락이 왼쪽을 가리키는 안정적 배열을 택한다. 이들 3개의 손가락은 따라서, 3-공간 좌표 시스템의 3개의 상호 직각 축을 기술한다 (개략적이지만 명백한 의도로): 따라서 ‘XYZ-손’
XYZ-손 항해는 이후, 미리 결정된 "중립 위치"에서 작업자의 몸체 앞에 유지된, 앞서 기술된 바와 같은 포즈로 손, 손가락으로 진행된다. 3-공간 물체 (또는 카메라)의 3가지 해석적, 그리고 3가지 회전 자유도에 대한 접근은 아래의 자연적인 방식으로 달성된다: 손 (몸체의 자연적인 좌표 시스템)에 대하여 왼쪽-오른쪽 움직임은 연산 배경의 x-축을 따라서 움직임을 결과한다; 손의 위아래 움직임은 제어된 배경의 y-축을 따라서 움직임을 결과한다; 그리고 전방-후방 손 움직임 (작업자의 몸체를 향하여 또는 몸체로부터)은 배경 내에서 z-축 동작을 결과한다. 유사하게, 인덱스 손가락 주변에 작업자의 손의 회전은 연산 배경의 배향의 ‘롤 (roll)' 변화를 유발한다; '피치''와 '편요각' 변화는 각각, 중간 손가락과 엄지손가락 주변에 작업자의 손의 회전을 통하여, 유사하게 달성된다.
“계산(computational) 배경”은 XYZ-손-방법에 의해 제어되는 엔터티를 지칭할 때 사용되지만, 합성 3-공간 대상 또는 카메라를 암시하는 것으로 보이는데, 예를 들면, 기술은 회전 작동기가 장착된 비디오 또는 동작 카메라의 실세계 대상 : 팬/틸트/롤 콘트롤의 다양한 정도의 자유도를 제어하는데 동등하게 유용하다. 더욱이, XYZ-손 위치에 의해 제공되는 물리적 자유도는 가상 도메인에서도 다소 말그대로 메핑될 수 있다. 본 구체예에서, XYZ-선은 또한 큰 파노라마 디스플레이 이미지에 네비게이션 접근을 제공하는데 이용될 수 있어, 작업자의 손의 좌우, 위아래 동작으로 이미지에 대해 예상된 좌우 또는 위아래 “패닝(panning)”으로 연결되지만, 작업자의 손의 전후 동작은 “줌밍(zooming)”제어로 매핑된다.
모든 경우에, 손의 동작과 유도된 계산적 해석/회전은 직접적(가령, 작업자의 손의 위치적 또는 회전적 오프셋은 일부 선형 또는 비선형 기능을 통하여 컴퓨터 배경에서 대상 또는 카메라의 위치 또는 회전 오프셋으로 일대일로 매핑되고) 또는 간접적(가령, 작업자의 손의 위치적 또는 회전적 오프셋은 일부 선형 또는 비선형 기능을 통하여 컴퓨터 배경에서 위치/배향의 1차원 또는 더 고차원적 파생으로 일대일 매핑되어; 진행하는 통합(ongoing integration)은 컴퓨터 배경의 실질적인 제로-오더 위치/배향에 비-안정적인 변화를 초래한다)이 될 수 있다. 제어의 후자의 의미는 자동차의 “가속 패달”을 이용하는 것과 유사한데, 페달의 불변 오프셋은 다소 일정한 자동차 속도를 유지시킨다.
실세계에서 6도의 자유도 좌표 원점으로 작용하는 “중립” 위치는 (1) 공간에서 절대적 위치 및 배향(말하자면 닫힌 방에 대해 상대적)으로써; 그리고 (2) 작업자의 “향하는”방향이나 전체적인 장소와는 무관하게 작업자에 대해 고정된 장소 및 배향으로써(가령, 신체 앞 8인지, 턱아래 10인치, 그리고 어깨 평면과 측면으로 나란히) ; 또는 (3) 작업자의 계획적인 두 번째 행위(예를 들면, 작업자의 ‘다른’ 손에 의해 연기되는 제스처 명령을 이용하고, 이때 명령은 XYZ-손의 현재 위치 및 배향이 해석 및 회전 원점으로 이용되어야 한다는 것을 나타냄)를 통하여 쌍방향으로 정해질 수 있다.
XYZ-손의 중립 위치에 대해 ‘멈춤쇠’ 영역(또는 ‘비활동 존’)을 제공하여, 이 볼륨내에 움직임은 제어된 배경에서 움직임으로 만들지 않는 것이 더 편리하다.
다른 포즈들이 포함될 수 있다:
[||||:vx] 는 손바닥을 아래로 향하게 하고 손가락들을 앞으로 뻗은 펼친 손 (손가락과 엄지가 나란한)이다.
[||||:x∧]은 손바닥을 앞쪽을 향하게 하고, 손가락들을 천정을 향하게 펼친 손이다.
[||||:-x]는 몸의 중심으로 손바닥을 향하게 하고(왼손이면 오른쪽, 오른손이면 왼쪽), 그리고 손가락은 전방으로 뻗은 펼친 손이다.
[∧∧∧∧-:-x]은 엄지를 세운 한 손(엄지가 천정 방향)이다.
[∧∧∧|-:-x]는 전방을 가리키는 마임 건(mime gun)이다.
두 손의 조합
구체예의 SOE는 한 손 명령어 및 포즈 뿐만 아니라 두 손 명령어 및 포즈도 고려한다. 도 16은 이 구체예에서 SOE의 제스처 기호의 두 손 조합 및 상응하는 표기의 다이어그램이다. 첫 번째 실례의 표기를 다시 보면, 완전 멈춤("full stop")은 두 개의 닫힌 주먹을 포함한다는 것을 알 수 있다. “스냅사진(snapshot)”실례은 양손에서 엄지 및 검지를 펼치고, 엄지는 서로를 향하며, 골 포스트(goal post) 형태의 프레임이 된다. "rudder and throttle 시작 자세"는 손바닥을 위로 하여 손가락들과 엄지가 스크린을 향하는 것이다.
배향 블렌드(Orientation blends)
도 17은 구체예에서, 제스처 기호에서 배향 블렌드의 다이어그램이다. 나타낸 실시예에서, 손가락 포즈 일렬 다음에 ( )안에 배향 표기 쌍을 포함시켜 나타낸다. 예를 들면, 첫 번째 명령어는 손가락 위치가 모두 곧게 서 있다. 배향 명령어의 제 1 쌍은 스크린을 향하여 45도 피치로 손을 회전시킨 것이다. 비록 블렌드의 쌍이 실시예로 나타나있지만, SOE에서 임의의 블렌드가 고려된다.
실례 명령어
도 19는 SOE로 사용할 수 있는 명령어의 예다. 여기에서 논의의 일부는 디스플레이상에 커스를 조절하는 것에 대한 것이었지만, SOE를 이와 같은 활동에 제한하지는 않는다. 사실, SOE는 스크린 상의 임의의 그리고 모든 데이터 및 데이터 일부분 뿐만 아니라 디스플레이 상태를 조작하는데 탁월한 애플리케이션을 가진다. 예를 들면, 명령어는 비디오 매체를 재생시키는 동안 비디오 제어를 하는데 이용될 수 있다. 명령어를 이용하여, 중지, 고속감기, 되감기 및 이와 유사한 것을 할 수 있다. 또한, 명령어로 이미지의 줌인 또는 줌 아웃, 이미지의 배향 변화, 임의의 방향으로 진행시키기(pan in any direction) 및 이와 유사한 것을 실행할 수 있다. SOE를 예를 들면, 열기, 닫기, 저장 및 이와 유사한 명령어를 대신하여 사용할 수 있다. 환언하면, 생각하는 임의의 명령어 또는 활동을 손 제스처로 실시할 수 있다.
작업(Operation)
도 18은 SOE의 시스템 작음의 순서도(flow diagram)이다. 탐지 시스템(1801)에서 탐지 시스템은 마커 및 태그를 탐지한다. At 1802에서 태그 및 마커가 탐지되었는 지를 결정한다. 탐지되지 않았다면, 작업은 1801로 되돌아 간다. 태그와 마커가 1802에서 검출되었다면, 작업은 1803으로 진행된다. 1803에서 시스템은 탐지된 태그 및 마커로부터 손, 손가락 및 포즈를 확인한다. 1804에서 시스템은 포즈의 배향을 확인한다. 1805에서 시스템은 탐지된 한 손 또는 양손의 3차원적 공간적 위치를 확인한다(1803, 1804, 및 1805 중 임의의 것 또는 이들 모두는 단일 작업으로 복합될 수 있다)
1806에서 정보는 상기에서 설명된 제스처 표기로 해석된다. 1807에서 포즈가 유효한지를 결정한다. 이것은 생성된 표기 스트링을 이용하여 단순히 스트링 비교를 통하여 실행될 수 있다. 포즈가 유효하지 않는다면, 작업은 다시 1801로 되돌아간다. 시스템이 표기 및 장소 정보를 1808에서 컴퓨터로 전송한다. 1809에서 컴퓨터는 제스처에 반응하여 적절한 행위를 했는지를 결정하고, 1810에서 따라서 디스플레이를 업데이트한다.
SOE의 한 구체예에서, 작업 1801-1805은 온-카메라 프로세스에 의해 실행된다. 다른 구체예에서, 프로세싱은 원한다면 시스템 컴퓨터에 의해 실행될 수 있다.
분석 및 해석(Parsing and Translation)
시스템은 기본 시스템에 의해 회수된 낮은 수준의 제스처 연속을 “분석(parse)” 및 “해석(translate)”하고, 다시 분석된 그리고 해석된 제스처를 명령어 또는 이벤트 데이터의 연속으로 향하게 하여, 광범위한 컴퓨터 애플리케이션 및 시스템을 제어하는데 이용할 수 있다. 이와 같은 기술 및 알고리즘은
이와 같은 기술을 실행하는 엔진과, 엔지의 성능을 이용하는 컴퓨터 애플리케이션을 구축하기 위한 플랫포옴을 제공하는 컴퓨터 코드로 구성된 시스템으로 구체화될 수 있다.
한 구체예는 컴퓨터 인터페이스에서 인간의 손의 풍부한 제스처 사용을 가능하게 하고 뿐만 아니라 신체의 다른 부분들(팔, 몸통, 다리 및 머리를 포함하나 이에 한정되지 않은) 뿐만 아니라 안정적이고, 명확한 가령, 캘리퍼스, 콤파스, 구부러지는 곡면 접근계(approximator) 및 다양한 모양의 포인팅 장치를 포함하나 이에 한정되지 않는 다양한 종료의 손이 아닌 물리적 도구에 의해 만들어진 제스처를 인지할 수 있는데 초점을 둔다. 마커 및 태그를 필요에 따라 작업자가 운반하고 이용할 수 있는 목록 및 도구들에게도 적용할 수 있다.
여기에서 설명된 시스템은 다수의 혁신이 결합되는데, 이와 같은 혁신은 애플리케이션에 용이하게 통합되면서 인지하고 작용시에 제스처 범위에서 풍부한 제스처 시스템을 구축할 수 있게 한다.
한 구체예에서 제스처 분석 및 해석 시스템은 다음으로 구성된다;
1) 상이한 집결(aggregation) 수준에서 제스처를 지정하는데 압축적이고, 효과적인 방법:
a. 한 손의 "포즈" (3차원 공간에서 다른 한 손에 대해 한 손의 부분의 모양 및 배향).
b. 포즈, 위치 또는 포즈와 위치를 설명하기 위한 양손의 조합
c. 여러 사람들의 조합; 시스템은 두 개 이상의 손을 추적할 수 있고, 한 사람 이상이 협력하여(또는 게임 에플리케이션의 경우 경쟁적으로) 표적 시스템을 제어할 수 있다.
d. 연속적 제스처, 이때 포즈는 연속적으로 복합되며; 우리는 이것을 “animating”제스처라고 부른다.
e. "grapheme" 제스처, 이는 작업자가 공간에서 형태를 추적한다.
2) 주어진 애플리케이션 배경에 관련된 상기 각 카테고리로부터 특정 제스처를 등록하기 위한 프로그램적 기술.
3) 제스처 흐름을 분석하는 알고리즘, 따라서, 등록된 제스처가 확인되고, 이러한 제스처를 포함하는 이벤트는 관련 애플리케이션 배경으로 운반될 수 있다.
구성적 요소(1a) 내지 (1f)를 가진 상세 시스템 (1)은 여기에서 설명하는 시스템의 제스처 분석 및 해석 능력을 이용하는 기본을 제공한다.
한 손 "포즈"는
i) 손가락과 손 등사이에 상대적 배향의 스트링으로;
ii) 소수의 분리된 상태로 양자화된(quantized) 스트링으로 나타낸다.
상대적인 결합 배향을 이용하면 여기에서 설명된 시스템이 다른 손 크리 및 형상과 관련된 문제점을 회피할 수 있게 한다. 이 시스템에서 "작업자 측정(calibration)"이 요구되지 않는다. 또한, 상대적 배향의 스트링 또는 집합으로 포즈를 지정하면 좀더 복합한 제스처 내용은 추가적인 필터 및 설명을 가진 포즈 표시를 복합시켜 쉽게 만들 수 있다.
포즈 설명을 위한 소수의 분리된 상태를 이용하면 포즈를 간결하게 지정하고 뿐만 아니라 다양한 기초적인 추적 기술(가령, 카메라를 이용한 수동적인 광학 트래킹, 밝은 도트를 이용하여 활동적인 광학 트래킹, 전자기 필드 트래킹 등)을 이용하여 정확하게 포즈를 인지할 수 있는 것이 가능하게 된다.
카테고리 (1a) 내지 (1f)에서 제스처는 부분적으로(또는 최소한적으로) 지정되어, 중요하지 않은 데이터는 무시된다. 예를 들면, 두 개 손가락의 위치가 한정되고, 다른 손가락 위치는 중요하지 않는 제스처는 두 개의 관련 손가락의 작업 자세가 제공되면 단일 설명으로 나타낼 수 있고, 그리고 동일한 스트링내에, 다른 손가락에 대해서는 “와일드 카드” 또는 포괄적으로 “이를 무시하라”는 표시가 실릴 것이다.
제스처 인식을 위한 여기에서 설명된 다층 설명 기술, 상대적 배향의 사용, 데이터의 양자화, 그리고 모든 수준에서 부분적 또는 최소 설명을 포함하나 이에 국한되지 않는 모든 혁신은 손 제스처 설명을 다른 신체 부분 및 “제작된” 도구 및 대상들을 이용하여 제스처의 설명에 일반화시킨다.
“제스처 등록”을 위한 프로그램적 기술은 정의된 애플리케이션 프로그래밍 인터페이스(API) 콜을 포함하는데 이것은 프로그래머가 어떠한 제스처를 엔진이 러닝 시스템의 다른 부분들에 이용가능하도록 해야 하는지를 정의내리게 한다.
이와 같은 API 루틴을 애플리케이션 세트-업 시간에 이용하여, 러닝 애플리케이션 수명동안 이용되는 안정적 인터페이스 정의를 만드는데 이용될 수 있다. 또한 이를 런 과정에 이용하여, 인터페이스 특징이 플라이(fly)에서 변화되는 것을 허용한다. 인터페이스의 실시간 변화는
i) 복합적 배경 및 조건 제어 상태를 구축할 수 있게 하고;
ii) 제어 환경에 동적으로 이력현상(hysterisis)을 추가하고, 그리고
iii) 애플리케이션을 만들고, 이때 사용자는 러닝 시스템 자체의 인터페이스 기호를 변경 또는 확장이 가능하도록 한다.
제스처 흐름 (3)을 분석하기 위한 알고리즘은 (1)에서 지정된 제스처와 (2) 유입되는 낮은-수준의 제스처 데이터에 대항하여 등록된 제스처를 비교한다. 등록된 제스처에 대해 일치가 확인되면, 일치된 제스처를 나타내는 이벤트 데이터는 스택에서 러닝 애플리케이션으로 운반된다.
효과적인 실시간 일치(matching)이 이와 같은 시스템의 고안에서 바람직하고, 그리고 지정된 제스처는 가능한 한 신속하게 처리되는 가능성 트리(tree)로 처리된다.
도면의 간단한 설명
도 1은 구체예 하에, 제스처 제어 시스템의 블록 다이어그램이다. 도 2는 구체예 하에, 제스처 제어 시스템을 이용하여 데이터 공간을 항해하기 위한 플로우 다이어그램이다.
도 3은 구체예 하에, 디스플레이 상에 표현된 데이터 프레임의 실례이다.
도 4에서는 구체예 하에, 몸체가 손바닥이 전방 방향을 향하는 (z-축을 따라서) (가령, 작업자의 정면에서 디스플레이 스크린을 향하여) 열린 자세에서 작업자의 손인 일-측면 푸시백 시나리오이다.
도 5 (집합적으로, 도 5a, 5b, 5c, 그리고 5d)는 구체예 하에, 비활동 존 내에서 비활동 존 입구의 지점까지 몸체 푸시백 제스처를 지시하는 그림 문자의 실례이다.
도 6 (집합적으로 도 6a, 6b, 6c, 그리고 6d)은 구체예 하에, 비활동 존 내에서 비활동 존 입구 (z-축을 따라서 디스플레이를 향하여, 그리고 작업자로부터 멀리)의 지점을 초과하여 몸체 푸시백 제스처를 지시하는 그림 문자의 실례이다.
도 7은 구체예 하에, 상응하는 푸시백에 기인하는 데이터 프레임의 첫 번째 상대적 z-축 변위의 실례이다.
도 8은 구체예 하에, 상응하는 푸시백에 기인하는 데이터 프레임의 두 번째 상대적 z-축 변위의 실례이다.
도 9는 구체예 하에, 몸체의 측면 동작에 기인하는 데이터 프레임의 측면 x-축 변위의 실례이다.
도 10에서는 구체예 하에, 테이블-유사 디스플레이 표면 (도시되지 않음) 위에 몸체가 수평적으로 유지되는 물리적 시나리오의 실례를 도시한다.
도 11은 구체예 하에, 푸시백 시스템이 관련됨에 따라 차별적 가시도로 쇠퇴하는 현재 층 (가령, 현재 데이터 프레임)에 인접하는 층 (가령, 데이터 프레임)의 실례이다.
도 12는 구체예 하에, 이전-현재 층 (가령, 이전-현재 데이터 프레임)은 더욱 큰 투명도를 갖고 (이러한 실례에서 눈에 보이지 않게 되고), 이전-현재 층에 인접하는 층 (가령, 인접한 데이터 프레임)은 이전-현재 층에서처럼 가시화된다) 스택의 상향 해석의 실례이다.
도 13은 구체예 하에, 태그를 마킹하는 실례이다.
도 14는 구체예 하에, 제스처 기호에서 포즈의 다이어그램이다.
도 15는 구체예 하에, 제스처 기호에서 배향의 다이어그램이다.
도 16은 구체예 하에, 제스처 기호에서 2개의 손 조합의 다이어그램이다.
도 17은 구체예 하에, 제스처 기호에서 배향 블렌드의 다이어그램이다.
도 18은 구체예 하에, 시스템 작업의 플로우 다이어그램이다.
도 19 (집합적으로 도 19/1과 19/2)는 구체예 하에, 명령어의 실례이다.
도 20은 구체예 하에, 확장된 필드의 깊이에서 3-차원적 정보를 도출하기 위한 블록 다이어그램 of 제스처-기초된 제어 시스템이다.
도 21은 구체예 하에, 제스처-기초된 제어 시스템에 이용되는 등위상면 코딩 이미징 시스템의 블록 다이어그램이다.
도 22는 구체예 하에, 2개의 등위상면 코딩 카메라를 포함하는 등위상면 코딩 이미징 시스템을 이용하여, 확장된 필드의 깊이에서 3-차원적 정보를 도출하기 위한 제스처-기초된 제어 시스템의 블록 다이어그램이다.
도 23은 구체예 하에, 확장된 필드의 깊이에서 도출된 3-차원적 정보를 이용하여 제스처-기초된 제어를 위한 플로우 다이어그램이다.
도 24는 구체예 하에, 제스처-기초된 제어 시스템에 이용되는 등위상면 코딩 설계 공정의 블록 다이어그램이다.
도 25는 구체예 하에, 슬라우 (slaw), 단백질 (protein), 그리고 풀 (pool)을 이용한 데이터 표시를 비롯한 처리 환경의 블록 다이어그램이다.
도 26은 구체예 하에, 단백질의 블록 다이어그램이다.
도 27은 구체예 하에, 디스크립 (descrip)의 블록 다이어그램이다.
도 28은 구체예 하에, 인제스트 (ingest)의 블록 다이어그램이다.
도 29는 구체예 하에, 슬라우의 블록 다이어그램이다.
도 3OA는 구체예 하에, 풀 내에서 단백질의 블록 다이어그램이다.
도 3OB (집합적으로 도 30B/1과 30B/2)는 구체예 하에, 슬라우 헤더 포맷을 도시한다.
도 3OC는 구체예 하에, 단백질을 이용하기 위한 플로우 다이어그램이다.
도 3OD는 구체예 하에, 단백질을 구성하거나 산출하기 위한 플로우 다이어그램이다.
도 31은 구체예 하에, 슬라우, 단백질, 그리고 풀을 이용한 데이터 교환을 비롯한 처리 환경의 블록 다이어그램이다.
도 32는 구체예 하에, 복수 장치 및 하나 이상의 장치를 작동시키는 다수의 프로그램을 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 다수의 작동 프로그램이 이들 장치에 의해 산출된 이벤트를 공유하고 이들 이벤트에 집합적으로 응답할 수 있도록 하는데 이용된다.
도 33은 대안적 구체예 하에, 복수 장치 및 하나 이상의 장치를 작동시키는 다수의 프로그램을 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 다수의 작동 프로그램이 이들 장치에 의해 산출된 이벤트를 공유하고 이들 이벤트에 집합적으로 응답할 수 있도록 하는데 이용된다.
도 34는 다른 대안적 구체예 하에, 하나 이상의 장치를 작동시키는 다수의 프로그램 간에 결합된 복수 입력 장치를 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 다수의 작동 프로그램이 이들 장치에 의해 산출된 이벤트를 공유하고 이들 이벤트에 집합적으로 응답할 수 있도록 하는데 이용된다.
도 35는 또 다른 대안적 구체예 하에, 하나 이상의 장치를 작동시키는 다수의 프로그램 간에 결합된 복수 장치를 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 다수의 작동 프로그램이 이들 장치에 의해 산출된 이벤트를 공유하고 이들 이벤트에 집합적으로 응답할 수 있도록 하는데 이용된다.
도 36은 또 다른 대안적 구체예 하에, 하나 이상의 장치를 작동시키는 다수의 프로그램 간에 결합된 복수 장치를 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 작동 프로그램의 상태 검사, 가시화, 그리고 벌레잡기를 가능하게 하는데 이용된다.
도 37은 추가의 대안적 구체예 하에, 하나 이상의 장치를 작동시키는 다수의 프로그램 간에 결합된 복수 장치를 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 상기 공정 풀에서 산출되고 배치된 상태 정보의 특징에 영향을 주거나 이러한 정보를 제어할 수 있도록 하는데 이용된다.
도 1은 구체예 하에, 제스처 제어 시스템의 블록 다이어그램이다. 도 2는 구체예 하에, 제스처 제어 시스템을 이용하여 데이터 공간을 항해하기 위한 플로우 다이어그램이다.
도 3은 구체예 하에, 디스플레이 상에 표현된 데이터 프레임의 실례이다.
도 4에서는 구체예 하에, 몸체가 손바닥이 전방 방향을 향하는 (z-축을 따라서) (가령, 작업자의 정면에서 디스플레이 스크린을 향하여) 열린 자세에서 작업자의 손인 일-측면 푸시백 시나리오이다.
도 5 (집합적으로, 도 5a, 5b, 5c, 그리고 5d)는 구체예 하에, 비활동 존 내에서 비활동 존 입구의 지점까지 몸체 푸시백 제스처를 지시하는 그림 문자의 실례이다.
도 6 (집합적으로 도 6a, 6b, 6c, 그리고 6d)은 구체예 하에, 비활동 존 내에서 비활동 존 입구 (z-축을 따라서 디스플레이를 향하여, 그리고 작업자로부터 멀리)의 지점을 초과하여 몸체 푸시백 제스처를 지시하는 그림 문자의 실례이다.
도 7은 구체예 하에, 상응하는 푸시백에 기인하는 데이터 프레임의 첫 번째 상대적 z-축 변위의 실례이다.
도 8은 구체예 하에, 상응하는 푸시백에 기인하는 데이터 프레임의 두 번째 상대적 z-축 변위의 실례이다.
도 9는 구체예 하에, 몸체의 측면 동작에 기인하는 데이터 프레임의 측면 x-축 변위의 실례이다.
도 10에서는 구체예 하에, 테이블-유사 디스플레이 표면 (도시되지 않음) 위에 몸체가 수평적으로 유지되는 물리적 시나리오의 실례를 도시한다.
도 11은 구체예 하에, 푸시백 시스템이 관련됨에 따라 차별적 가시도로 쇠퇴하는 현재 층 (가령, 현재 데이터 프레임)에 인접하는 층 (가령, 데이터 프레임)의 실례이다.
도 12는 구체예 하에, 이전-현재 층 (가령, 이전-현재 데이터 프레임)은 더욱 큰 투명도를 갖고 (이러한 실례에서 눈에 보이지 않게 되고), 이전-현재 층에 인접하는 층 (가령, 인접한 데이터 프레임)은 이전-현재 층에서처럼 가시화된다) 스택의 상향 해석의 실례이다.
도 13은 구체예 하에, 태그를 마킹하는 실례이다.
도 14는 구체예 하에, 제스처 기호에서 포즈의 다이어그램이다.
도 15는 구체예 하에, 제스처 기호에서 배향의 다이어그램이다.
도 16은 구체예 하에, 제스처 기호에서 2개의 손 조합의 다이어그램이다.
도 17은 구체예 하에, 제스처 기호에서 배향 블렌드의 다이어그램이다.
도 18은 구체예 하에, 시스템 작업의 플로우 다이어그램이다.
도 19 (집합적으로 도 19/1과 19/2)는 구체예 하에, 명령어의 실례이다.
도 20은 구체예 하에, 확장된 필드의 깊이에서 3-차원적 정보를 도출하기 위한 블록 다이어그램 of 제스처-기초된 제어 시스템이다.
도 21은 구체예 하에, 제스처-기초된 제어 시스템에 이용되는 등위상면 코딩 이미징 시스템의 블록 다이어그램이다.
도 22는 구체예 하에, 2개의 등위상면 코딩 카메라를 포함하는 등위상면 코딩 이미징 시스템을 이용하여, 확장된 필드의 깊이에서 3-차원적 정보를 도출하기 위한 제스처-기초된 제어 시스템의 블록 다이어그램이다.
도 23은 구체예 하에, 확장된 필드의 깊이에서 도출된 3-차원적 정보를 이용하여 제스처-기초된 제어를 위한 플로우 다이어그램이다.
도 24는 구체예 하에, 제스처-기초된 제어 시스템에 이용되는 등위상면 코딩 설계 공정의 블록 다이어그램이다.
도 25는 구체예 하에, 슬라우 (slaw), 단백질 (protein), 그리고 풀 (pool)을 이용한 데이터 표시를 비롯한 처리 환경의 블록 다이어그램이다.
도 26은 구체예 하에, 단백질의 블록 다이어그램이다.
도 27은 구체예 하에, 디스크립 (descrip)의 블록 다이어그램이다.
도 28은 구체예 하에, 인제스트 (ingest)의 블록 다이어그램이다.
도 29는 구체예 하에, 슬라우의 블록 다이어그램이다.
도 3OA는 구체예 하에, 풀 내에서 단백질의 블록 다이어그램이다.
도 3OB (집합적으로 도 30B/1과 30B/2)는 구체예 하에, 슬라우 헤더 포맷을 도시한다.
도 3OC는 구체예 하에, 단백질을 이용하기 위한 플로우 다이어그램이다.
도 3OD는 구체예 하에, 단백질을 구성하거나 산출하기 위한 플로우 다이어그램이다.
도 31은 구체예 하에, 슬라우, 단백질, 그리고 풀을 이용한 데이터 교환을 비롯한 처리 환경의 블록 다이어그램이다.
도 32는 구체예 하에, 복수 장치 및 하나 이상의 장치를 작동시키는 다수의 프로그램을 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 다수의 작동 프로그램이 이들 장치에 의해 산출된 이벤트를 공유하고 이들 이벤트에 집합적으로 응답할 수 있도록 하는데 이용된다.
도 33은 대안적 구체예 하에, 복수 장치 및 하나 이상의 장치를 작동시키는 다수의 프로그램을 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 다수의 작동 프로그램이 이들 장치에 의해 산출된 이벤트를 공유하고 이들 이벤트에 집합적으로 응답할 수 있도록 하는데 이용된다.
도 34는 다른 대안적 구체예 하에, 하나 이상의 장치를 작동시키는 다수의 프로그램 간에 결합된 복수 입력 장치를 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 다수의 작동 프로그램이 이들 장치에 의해 산출된 이벤트를 공유하고 이들 이벤트에 집합적으로 응답할 수 있도록 하는데 이용된다.
도 35는 또 다른 대안적 구체예 하에, 하나 이상의 장치를 작동시키는 다수의 프로그램 간에 결합된 복수 장치를 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 다수의 작동 프로그램이 이들 장치에 의해 산출된 이벤트를 공유하고 이들 이벤트에 집합적으로 응답할 수 있도록 하는데 이용된다.
도 36은 또 다른 대안적 구체예 하에, 하나 이상의 장치를 작동시키는 다수의 프로그램 간에 결합된 복수 장치를 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 작동 프로그램의 상태 검사, 가시화, 그리고 벌레잡기를 가능하게 하는데 이용된다.
도 37은 추가의 대안적 구체예 하에, 하나 이상의 장치를 작동시키는 다수의 프로그램 간에 결합된 복수 장치를 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 상기 공정 풀에서 산출되고 배치된 상태 정보의 특징에 영향을 주거나 이러한 정보를 제어할 수 있도록 하는데 이용된다.
또한, 특정한 제스처를 인식하는 내부적으로 사용되는 프리미티브 비교 오퍼레이터가 애플리케이션 프로그래머가 사용하도록 노출되어, 추가적인 비교(예를 들면, 복잡한 플렉서블 스테이트 검사 또는 복합 제스처)가 애플리케이션 컨텍스트 내에서도 발생할 수 있다.
인식 “잠금” 의미론(semantics)는 내용 중에 설명된 시스템의 이노베이션(innovation)이다. 이러한 의미론은 등록 API(2)에 의해 암시된다(그리고, 특정한 어휘(1) 내에서 보다 작은 범위로, 확장됨). 등록 API 호출은 다음을 포함한다,
I) “엔트리” 스테이트 표시자(notifier) 및 “연속”스테이트 표시자, 그리고
ii) 제스처 우선순위 특화자(specifier).
제스처가 인식되었다면, 이의 “연속” 조건들이 동일한 또는 낮은 우선순위의 제츠처에 대한 모든 “엔트리” 조건에 대해 앞선다. 엔트리 및 연속 상태 사이의 이러한 구별은 이해된 시스템 유용성에 눈에띄게 부가된다.
내용 중에 설명된 시스템은 실사 데이터 에러 및 불확실성의 측면에서 견고한 동작에 대한 알고리즘을 포함한다. 저-레벨 추적 시스템으로부터의 데이터가 비완성일 수 있다(다양한 이유로, 광학적 추적 시 마커의 차단, 네트워크 드롭-아웃 또는 프로세싱 레그 등을 포함).
미싱 데이터는 파싱 시스템에 의해 마크되고, 미싱 데티어의 양 및 내용(context)에 따라,“마지막으로 알려진” 또는 “가장 유사한” 상태로 보간된다.
특정한 제스처 컴포넌트에 대한 데이터(예를 들어, 특정한 결합의 배향)이 사라지고, 그러나 그 특정한 컴포넌트의“마지막으로 알려진” 상태가 물리적으로 가능한 한 분석될 수 있다면, 시스템은, 이의 실시간 매칭에서 이러한 마지막으로 알려진 상태를 사용한다.
반대로, 마지막으로 알려진 상태가 물리적으로 불가능한 것으로 분석되면, 시스템은 그 컴포넌트에 대한 “최적의 유추 범위”로 돌아가고, 이러한 실시간 매칭에서 이러한 인위적인 데이터를 사용한다.
전술한 특정(구체화) 및 파싱 시스템은 “편리한 불가지론(agnosticism)”을 지원하도록 조심스럽게 디자인되었으며, 이에 따라 멀티-핸드 제스처에 대해 어느 손이나 포즈 필요조건을 만족시키도록 허용된다.
확장된 심도(Depth of Field)에 대해 삼차원 정보에서 추출한 제스처-기반 제어
도 20은 실시예에 따라 확장된 심도에 대해 삼차원 정보를 추출한 영상화 시스템을 포함하는 제스처-기반 제어 시스템(2000)에 대한 블록도이다. 사용자는 카메라(2004A-2004D)로 구성된 어레이의 시야 영역 내에 자신의 손(101, 102)을 위치시킨다. 이하에 상세히 설명한 것과 같이, 어레이(2004A-2004D) 내의 둘 이상의 카메라가 등위상면 코딩 영상화 시스템(등위상면 코딩 마스크를 포함함, 이들은 이하에서“광학적 구 요소” 또는 “광학 요소”라 함)의 요소들을 포함한다. 사용자의 손 및/또는 손가락은 전술한 마커 테그를 포함하거나 포함하지 않을 수 있다.
카메라(2004A-2004D)는 손가락 및 손(101, 102)의 이미지(손가락의 위치, 방향 및 움직임 포함)를 검출 또는 캡처한다. 그리고 손(101, 102)은 프리-프로세서(2005)로 출력 신호를 발생한다. 프리-프로세서(2005)는 이하에 설명한 것과 같이 등위상면 코딩 디지털 신호 프로세싱(2008)을 포함하거나 이에 연결될 수 있다. 택일적으로, 등위상면 코딩 디지털 신호 프로세싱은 시스템(2000)의 하나 이상의 다른 컴포넌트 사이에 포함, 연결 또는 배치될 수 있다. 등위상면 코딩 디지털 신호 프로세싱(2008)은 영상화 시스템의 심도를 광범위하게 확장하도록 구성된다.
프리-프로세서(2005)는 카메라 출력을 시스템의 컴퓨터 프로세싱 유닛(2007)에 제공된 제스처 신호로 변환한다. 변환시, 프리-프로세서(2005)는 삼차원 공간 포인트 재구성 및 골격 포인트 라벨링을 생성한다. 제스처 변환기(2006)는 3D 공간 정보 및 마커 모션 정보를, 디스플레이 상의 커서의 위치, 모양 및 동작을 업데이트하기 위해 컴퓨터 프로세서에 의해 해석될 수 있는 명령어로 변환한다. 컴퓨터(2007)는 입력 정보를 사용하여 스크린 커서 상의 하나 이상을 제어하기 위한 명령을 발생하고 비디오 출력을 디스플레이(2003)로 제공한다.
선택적인 실시예의 프리-프로세서(2005), 제스터 변환기(2006) 및 컴퓨터(2007) 중 하나 이상이 단일 디바이스로 결합될 수 있다. 시스템 구성에도 불구하고, 프리-프로세서(2005), 제스처 변환기(2006) 및 컴퓨터(2007)들 각각의 기능 및/또는 기능성이 이하에 임의의 내용에서 설명된다.
나아가, 이 예는 사용자의 손(101, 102)의 위치, 방향 및 움직임을 검출하는데 사용된 네 개의 카메라에 대해 도시하나, 이 실시예가 이에 한정되는 것은 아니다. 시스템 구성은, 시스템 또는 워크스테이션 구성에 적합한 것과 같은 둘 이상의 카메라를 포함할 수 있다. 또한, 카메라가 예시적인 실시예에서 대칭적으로 배치되었으나, 이러한 대칭성은 필수조건이 아니다. 따라서, 사용자의 손의 위치, 방향 및 움직임을 허용하는 임의의 위치를 가지는 적어 두 개의 카메라가 이하에서 사용될 수 있다.
입력으로서 단일한 사용자의 손을 이용하는 것으로 시스템이 도시되었으나, 시스템은 여러 사용자의 임의의 수의 손을 추적할 수 있다. 또한, 손을 대신하여 또는 추가로, 시스템은 사용자의 신체(머리, 발, 다리, 팔, 팔꿈치, 무릎 등 포함)의 임의 부분 또는 여러 부분을 추적할 수 있다. 나아가, 시스템은 객체의 임의의 수의 동영상 또는 정지영상을 추적할 수 있으며, 신체의 일부를 추적하는 것에 제한되지 않는다.
구체적으로, 제스처 분석 시스템(오퍼레이터의 손에 신중하게 또는 잠재적으로 근접할 수 있는 광학 센서(또는 등가적인 추적 구현예)를 배치함)에 관하여, 요소들은 따라서, 수 개의 또는 많은 관련 거리 등급에 대해, 오퍼레이터의 동작의 자연적인 순서 전체에 걸친 범위를 거질 것이다. 이러한 거리 범위를 이동하는 이벤트의 동시 초점-분해 레코드를 제공하는 것은 일반적인 광학 영상화 시스템의 용량을 넘는다. 그러나, 이러한 매체-거리 기하학에 대한 인접-접근은, 현미경 디바이스 및 제품 디자인의 목적을 위한 종종 객체- 또는 오퍼레이터 추적의 면에서 바람직하다. 따라서, 오퍼레이터 활동의 예상 범위에 대해 로컬 컨트라스트 또는 돌출 특징부 안정성을 보장하는 기술(이러한 목적을 위한 일반적인 광학이 부적절함)을 제공하기 위한 가치이다.
이러한 시스템에서 사용되는 것과 같은 확장된 심도에 대한 삼차원 정보의 추출에 대한 설명 시에, 장면 내 포인트에 대한 거리는 동시에 캡쳐된 둘 이상의 이미지 내의 이의 위치로부터 예측될 수 있다. 포인트의 삼차원(3D) 위치는 이미지들 간의 3D 관계가 알려지면, 기본적인 기하학적 관계로부터 연산될 수 있다. 종종 스테레오 상관 또는 스테레오 심도 연산이라 하는 다중 이미지로부터의 공간적 위치를 연산하는 데 도전과제는, 하나의 이미지 내의 포인트의 매핑과 다른 이미지 내의 이 포인트의 매핑을 자동으로 그리고 정확하게 연관시키는 것이다. 종종 이는 하나의 이미지로부터 하나 이상의 다른 이미지로 이미지 특징부를 상관시킴으로써 이루어진다. 모든 스테레오 매칭 방법에서의 이하의 가정은, 그러나 포인트를 다른 이미지에서 그 포인트의 위치와 매칭시기 위해 이미지 내의 일부 식별가능힌 위치 컨트래스트 또는 특징부가 존재하여야 한다는 것이다. 따라서, 탈 초점 때문에, 이미지 내의 로컬 컨트래스트 또는 특징부가 존재할 때 문제가 발생할 수 있다-- 스테레오 매칭은 초점을 벗어난 이미지의 영역에서 정확한 결과를 생성하지 않는다.
이미지의 심도를 확장하는 통상적인 방법은 카메라의 렌즈 동공의 지름을 줄이는 것이다(“스토핑 다운”). 그러나, 두 가지 부작용이 이 기술의 사용 가능성을 제한한다. 첫 째는, 영상화 시스템의 감도가 동공 지름 비의 제곱고 동일한 팩터 만큼 감소한다. 둘째로, 최대 공간 주파수 응답이 동공 지름 비와 동일한 팩터로 감소하고, 이는 이미지 내의 해상도 및 컨트라스트를 제한한다. 따라서, 통상적인 이미지 시스템에서는 심도, 노출 시간 및 전체 컨트라스트 사이의 교환 조건이 존재한다. 다중 카메라 레인징 시스템의 경우에, 네트 효과는 입체적 심도 정확성 및 동작 범위 사이의 타협점이 될 것이다.
렌즈를 스토핑하지 않고, 심도를 증가시키기 위한 선택적인 접근법은 카메라 렌즈의 동공에 대한 특정한 위상 마스크를 삽입하는 것이다. 적절히 선택된 위상 기능은으로, 확장된 심도가 센서에서 캡쳐된 이미지의 후속 전자 프로세싱에서 복구될 수 있다. 등위상면 코딩으로 알려진, 이러한 기술은, 일반적으로, 심도, 카메라 동적 범위 신호-대-잡음 비 사이의 타협점을 제공한다. 등위상면 코딩은 특정한 애플리케이션에 대한 카메라 파라미터를 최적화하는 것을 가능하게 한다. 매우 높은 동적 범위를 필요로하며, 조명이 이하에 설명된 제스처 인식과 같은 사용자 제어 하의 있는, 애플리케이션은 규정된 공간 볼퓸에 대해 높은 정확성을 획득하기위한 등위상면 코딩으로부터 높은 이득을 얻을 수 있다.
전술한 것과 같이, 실시예에 따른 시스템은 복수의 등위상면 코딩 카메라의 처리된 출력이 장면 내의 선택된 객체의 범위 및 위치를 결정하는데 사용되는 기술을 포함한다. 등위상면 코딩으로부터 얻어진 확장된 심도는 제스처 인식 및 다른 태스크-기반 영상화 작업의 광력 어레이를 포함하는 복수의 애플리케이션에 사용되어, 이들의 성능을 현저히 향상시킬 수 있다. 최소 두 개의 카메라가 필요하나, 실시예에서 사용될 수 있는 카메라의 수에는 상한이 존재하지 않는다. 장면 추출은 둘 이상의 카메라를 이용한 범위 추출에 사용되는 복수의 프로세싱 기술(가령, 상관) 중 임의의 것을 포함할 수 있다. 내용 중에 설명된 실시예는 모든 등위상면 코딩 위상 함수를 포함하며, 이들의 대응하는 디코딩 커널(프로세싱 후에 확대된 심도를 생성)을 포함한다.
등위상면 코딩 영상화 시스템에서 사용되는 것과 같은 등위상면 코딩은 일반화된 비구면 광학 장치 및 디지털 신호 프로세싱을 사용하여 영상화 시스템의 성능을 현저히 증가시키고 및/또는 비용을 감소시키는 일반적인 기술이다. 사용된 비구면 광학장치의 유형은 관련 수차(aberration)를 미스포커스시키기 위해 매운 민감하지 않은 광학 영상화 특성으로 이어진다. 샤프하고 깨끗한 이미지가 광학장치로부터 직접 생성되지는 않으나, 샘플링된 이미지에 적용된 디지털 신호 프로세싱은, 관련 수차를 탈촛점화 시키기 위해 민감하지 않은 샤프하고 깨끗한 최종 이미지를 생성한다.
등위상면 코딩은 영상화 성능을 현저히 향상시키는 데 사용되며, 또한 영상화 시스템의 사이즈, 중량 및 비용을 줄인다. 등위상면 코딩은, 영상화 시스템의 심도를 광범위하게 확장하기 위한 기본적인 방식으로 비-회전형 대칭 비구면 광학 소자 및 디지털 신호 프로세싱을 결합한다. 영상화 시스템의 심도 또는 초점 깊이를 등위상면 코딩하는 것이 일반적인 영상화 시스템과 비교하여, 예를 들면, 지정 조리개 사이즈 또는 F/#에 대하여 10 이상의 팩터 만큼 증가할 수 있다. 실시예에 따른 등위상면 코딩 광학 소자는 위상 표면이며, 광을 흡수하거나 노출 또는 조명 필요조건을 증가시키지 않는다. 스톱 다운 조리개를 이용하는데 필요한 것과 같은,광 전력의 드라마틱한 손실 없이, 일반적인 영상화 기술을 이용하여서는 이러한 확장된 심도 성능이 불가능하다. 향상된 심도/초점 깊이는 또한, 렌즈 소자를 부가하거나 렌즈 복잡성을 부가함으로써, 일반적으로 제어되는 미스포커스 관련 수차를 제어함으로써, 영상화 시스템이 물리적으로 덜 확장되며, 작거나 가벼워지도록 한다. 등위상면 코딩을 이용하여 제어될 수 있는 관련 수차의 미스포커스는 색수차, 페츠발(Petzval) 곡률, 비점 수차, 구면 수차, 및 온도 관련 미스포커스를 포함한다.
하이브리드 영상화 방법으로서, 등위상면 고딩은 광학장치와 전자장치를 결합하여 심도를 증가시키고, 광학 소자의 수, 제조 내성, 및 전체 시스템 비용을 줄인다. 도 21은 실시예에 따라, 제스처-기반 제어 시스템에서 사용된 등위상면 코딩 영상화 시스템(2100)에 대한 블록도이다. 등위상면 코딩 영상화 시스템(2100)의 광학 섹션(2101)은, 조리개 스탑 가까이에 배치된 등위상면 코딩 광학 소자(2102)를 이용하여 변경된 통상적인 광학 시스템 또는 카메라이다. 코딩 광학 소자의 부가는 미스포커스에 민감하지 않은 특화된 잘-규정된 블러 또는 포인트 스프레드 기능을 가지는 이미지를 나타낸다. 샘플링된 이미지에 적요된 디지털 프로세싱(2103)는 미스포커스 효과에 매우 둔감한 샤프하고 명확한 이미지(2104)를 생성한다.
도 22는, 실시예에서 두 개의 등위상면 코딩 카메라를 포함하는 등위상면 코딩 영상화 시스템을 사용하여 확장된 심도에 대해 삼차원 정보를 추출하기 위한 제스처-기반 제어 시스템(2200)이다. 시스템(2200)은 도 21을 참조하여 전술한 것과 같이, 둘 이상의 등위상면 코딩 카메라(2201, 2202)를 포함한다. 프로세서는 등위상면 코딩 카메라(2201, 2202)의 출력을 수신하기 위해, 그리고 카메라 출력에 대핸 데이터 프로세싱을 수행하도록 연결된다. 데이터 프로세싱은, 몇몇 네임에 대한 디컴볼루션(2220) 및 범위 추출(2230)을 포함하고, 확장된 초점 범위 맵(2240)을 발생한다.
파형 코딩 시스템(2220)에서, 시스템(예, 등위상면 코딩 카메라(2201, 2202))의 광학 부분은 즉각적인 이미지(2210)를 생성하기 위해 결과 이미지를 “코딩”한다. 등위상면 코딩 요소(예, 도 21, 소자(2102))가 목적적으로 임의의 이미지 내의 모든 포인트를 블러하기 때문에, 중간 이미지(2210)는 미스포커스로 나타난다. 이러한 중간 이미지(2210)에서, 시야 내의 거의 모든 객체가 블러되나 이들은 동일하게 블러된다. 반대로, 일반적인 광학장치는 장면 내 각각의 객체에 대한 거리에 의존하는 가변 블러 함수를 가지는 이미지를 형성하는 것이 일반적이다.
중간 등위상면-코딩 이미지(2210)로부터 샤프하고 깨끗한 이미지를 생성하기 위해, 전자장치(예, 등위상면 코딩 디지털 신호 프로세싱)이 사용되어 시스템-의존 이미지 블러를 제거함으로써 블러된 중간 이미지를 처리 또는 “디코딩(2220, 2230)” 하는 데 사용된다. 디지털 필터링은 특정된 하드웨어 솔루션을 이용하거나 소프트웨어를 사용하여 실시간으로 수행될 수 있다.
도 21을 참조하여 전술한 것과 같이, 실시예의 시스템 광학장치는 통상적인 컴포넌트(등위상면 코딩 기능을 수행하는 하나 이상의 추가적인 광학 소자)를 포함한다. 이러한 소자는 구체적으로 비네팅을 최소화하기 위한 시스템의 조리개 스탑에 인접한 광학 경로에 배치된다. 검출 이미지에서 수행된 신호 프로세싱은 광학장치, 등위상면 코딩 소자, 및 디지털 검출기의 제1-차수 속성에 의존한다.
회절 표면이 사용될 수 있는 경우에도, 일반적인 등위상면 코딩 소자는 비 회전적 대칭이며 스무드하다. 소자는 별개의 컴포넌트일 수 있고, 일반화된 비구면 표면을 부가함으로써 전통적인 렌즈 소자에 통합될 수 있다. 모든 코딩 소자가 빛의 방향을 조정함으로써, 축상 광선이외의 어떠한 광선도 일반적인 기하학적 초점을 향해 진행하지 않는다. 실제로, 두 개의 광선이 광학 축을 따라 동일한 포인트를 향해 진행하지 않는다. 시스템은 임의의 이미지 평면에서 깨끗한 이미지를 형성하지 않는다.
등위상면-코딩 영상화 시스템의 광학 부분의 주요 효과는 초저 흐름, 구면 수차, 비점 수차 또는 시야 곡률과 같은 초점-관련 수차에 둔감한 최종 이미지를 만드는 것이다. 중간 블러 이미지는 미스포커스 수차를 구성하는 객체 또는 이미지 시스템의 변화에 둔감하거나 불변이다. 시스템 분석으로 면에서, 등위상면-코딩 시스템의 MTF(modulation transfer functions) 및 PSF(point spread function)은 초점에 관하여 불변이다.
등위상면-코딩 시스템으로부터의 중간 이미지의 MTF가 디포커스에 관하여 거의 변하지 않는 것을 도시하나, 이러한 MTF는 인-초점의 통상적인 시스템과 비교하여 감소된 광전력을 가진다. 아포다제이션이 사용되지 않기 때문에, 총 광 전력이 보존된다. 디지털 필터링 또는 이미지 재구성 프로세스가 깨끗한 이미지를 형성하는데 사용된다. 이러한 최종 MTF는 디포커스에 매우 둔감하다--따라서, 등위상면-코딩 영상화 시스템은 매우 큼 심도를 가진다. 유사하게, 등위상면-코딩 시스템으로부터 중간 PSF는 통상적인 시스템 PSF와 다르나, 이들은 미스포커스에서 변경에 따라 거의 변하지 않는다.
도 21을 참조하면, 특화된 광학 비구면 소자가 통상적인 영상화 시스템의 조리개 스탑에 또는 이에 인접하게 배치되어 등위상면-코딩 영상화 시스템을 형성한다. 이러한 광학 소자는, 최종 PSF 및 OTF(optical transfer function)이 미스포커스 또는 미스포커스 관련 수차의 범위에 둔감한 방식으로 영상화 시스템을 변경한다. PSF 및 OTF는 그러나 양질의 인-포커스 영상화 시스템을 이용하여 획득되는 것과 동일하지 않다. 미스포커스 수차에 둔감한 영상화 시스템을 만드는 프로세스는, 특화된, 잘-규정된 블러를 가지는 이미지를 생성하며, 이러한 블러는 등위상면 코딩 디지털 신호 프로세싱으로 제거된다. 예를 들면, 통상적인 영상화 시스템으로부터의 PSF는 미스포커스를 이용하여 현저히 변경되나, 등위상면 코딩 영상화 시스템으로부터의 PSF는 미스포커스에 인지할만한 변화를 나타내지 않는다. 미스포커스된 통상적인 영상화 시스템에 적요된 미스포커스 블러를 제거하기 위한 디지털 프로세싱은 이미지의 여러 다른 영역에 나타나는 미스포커스의 양에 의존하는 프로세싱을 사용한다. 많은 경우에, 미스포커스의 양이 알려지지 않으며 연산하기 어렵다. 또한, 미스포커스된 전통적인 영상화 시스템의 MTF는 종종 제로 또는 널(null)을 포함하며, 이는 디지털 프로세싱의 어려움 더 증가시킨다. 반대로, 등위상면 코딩 시스템으로부터의 미스포커스를 가지는 PSF의 일정한 속성은 미스포커스에서의 디지털 프로세싱의 의존성을 소거하는데 필요한 것이다. CCD 또는 CMOS-검출 이미지에 에 적용된 디지털 프로세싱은 미스포커스 및 영상화된 실제 장면에 독립적이다. 또한, 등위상면 코딩 영상화 시스템의 MTF는, 인 및 아웃 포커스 모두, 양질은 최종 이미지를 생성하도록 제로 또는 널을 포함하지 않는다.
심도를 확장하기 위한 등위상면 코딩은 통상적인 방법론(즉, 조리개의 스토핑 다운)이 일반적으로 받아들여지기 어려운 영상화 애플리케이션에 값을 부가할 수 있다. 조명 레벨, 노출 시간 또는 공간 해상도에 대한 제약은 종종 이전의 광학 방법의 적용을 제한한다. 등위상면 코딩을 이용하여, 애플리케이션은 소수의 미스포커스-관련 문제를, 노출 시간을 희생하지 않고 또는 광대한 량의 조명을 필요로 하지 않고, 해결할 수 있다.
등위상면 코딩 영상화 시스템은 전술한 것과 같이, 최종 이미지의 비-통상적인 광학 디자인 및 디지털 신호 프로세싱을 포함한다. 사용된 신호 프로세싱이 특정한 광학 시스템에 의존한다. 등위상면 코딩 광학은 사용될 신호 프로세싱의 유형 및 양에 의존한다. 광학 및 신호 프로세싱 밀접하게 연결되기 때문에, 시스템의 광학 및 디지털 컴포넌트가 디자인 중에 함께 최적화되는 시스템으로부터 최적의 성능을 기대하는 것이 자연스럽다. 광학 컴포넌트는 미스포커스 효과에 대한 광학장치의 변화 또는 감도를 최소화하고 효과적인 신호 프로세싱을 가능하게 하도록 구성된다. 디지털 컴포넌트는 알고리즘 복잡성, 프로세싱 시간, 이미지 노이즈에 대한 디지털 프로세싱의 효과를 최소화하도록 디자인된다.
도 23은 실시예에 따라, 확장된 심도에 대해 추출된 삼차원 정보를 사용하는 제스처-기반 제어를 이한 흐름도이다. 실시예의 제스처-기반 제어는 영상화 시스템을 이용하여 바디를 영상화하는 단계(2302)를 포함한다. 영상화 단계(2302)는 바디의 등위상면 코딩 이미지를 발생하는 단계를 포함한다. 실시예의 제스처-기반 제어는 자동적으로 바디의 제스처를 검출하는 단계(2304)를 포함하고, 제스처는 바디의 동시적인 상태를 포함한다. 검출하는 단계(2304)는 시간 적으로 동시에 제스처의 제스처 데이터를 수집하는 단계를 포함한다. 제스처 데이터는 영상화 시스템의 심도 내에 바디의 초점-분해 데이터를 포함한다. 실시예의 제스처-기반 제어는 제스처 신호로 제스처를 변환하는 단계(2306)를 포함한다. 실시예의 제스처-기반 제어는 제스처 신호에 응답하여 컴퓨터에 연결된 컴포넌트를 제어하는 단계(2308)를 포함한다.
실시예의 등위상면 코딩을 위한 베이스 루틴은 광선-추적 프로그램을 포함할 수 있고, 이 프로그램은 일반적인 등위상면 코딩 표면 형태와 함께, 전형적인 구 및 비구면을 통과하는 광선을 추적한다. 광선-추적 프로그램은 탈출 동공을 계산하고 광학 및 디지털 메리트 함수 또는 피연산자의 지정 세트를 최적화하는 데 사용된다. 도 24는, 실시예에 따른 제스처-기반 제어 시스템에 사용된 등위상면 코딩 디자인 프로세스(2400)의 블록도이다. 이러한 디자인의 출력은 다음을 포함하나, 이에 제한되는 것은 아니다: 통상적인 광학 표면, 물질, 두께, 및 스페이싱; 등위상면 코딩 표면의 파라미터; 그리고 디지털 필터 계수.
일반적인 광학/디지털 디자인 루프가 이제 설명된다. 광선-추적 프로그램(2402)는 탈출 동공 OPD(optical path diference)를 계산하기 위해 그리고 광학 및 디지털 메리트 함수 또는 피연산자의 지정 세트를 최적화하기 위해 광학 표면을 통과하는 광선을 추적한다. 광선-추적 프로그램(2402)으로의 입력은 광학 표면, 두께, 그리고 동작 조건(파장, 시야, 온도 범위, 샘플 객체 이미지 등)을 포함하여, 몇몇의 네임을 만든다. OTF가 연산 또는 생성되고(2406), 그리고 검출기 기하학 관련 픽셀 OTF가 부가된(2408), 샘플화된 OTF 및 PSF가 연산된다(2410). 디지털 필터 계수가 선택된 프로세싱 알고리즘에 대해, 샘플링된 PSF에 근거하여 생성된다. 프로세싱은 최소화에 근거하는 필터에 대한 메리트(예, 등위상면 코딩 피연산자)의 특징부를 형성함으로써 계속된다: 에일리어싱 등에 기인한, 필드 앵글, 색을 이용하여, 초점으로 통과하는 샘플링된 PSF 및 MTF의 변경;프로세싱 양, 프로세싱 폼, 이미지 노이즈 관련 프로세싱, 디지털 필터 노이즈 게인 등과 같은 디지털 프로세싱 파라미터. 등위상면 코딩 피연산자는 광학 표면을 변경하기 위해 최적화된 루틴을 통해 통상적인 광학 피연산자와 결합된다(Seidel 등위상면 수차, RMS 등위상면 에러 등). 오퍼레이션은 통상적인 광선 추적을 통해 탈출 동공 광학 경로 차(OPD)를 발생하도록(2402)로 복귀한다.
이론적으로 연산된 등위상면 코딩 표면 형태(폼)는 광학 최적화를 위한 시작 포인트로 사용된다. 사각 분리된 표면 형태의 하나의 일반적인 패밀리가 다음과 같은 표준화 좌표로 주어진다:
이다.
지수적 파라미터 α는 미스포커스 범위에 대해 MTF의 높이를 제어하고, 파라미터 β는 미스포커스에 대한 감도를 제어한다. 일반적으로, 파라미터 β는 미스포커스에 대한 감도를 감소시키면서, MTF의 높이를 감소시키고, 최종 PSF의 길이를 증가시킨다.
중간 이미지를 재구성하고 최종 이미지를 생성하는 데 사용된 필터링 프로세스는 연산 부담을 암시할 수 있다. 이미지 재구성에 필요한 필터 커널의 사이즈가 70 x 70 만큼의 계수일 수 있으며, 코딩 프로세스에 의해 삽입된 심도에 대한 강화 및 광학 시스템에 의존한다. 일반적으로, 심도 확장이 커질수록 필터 커널을 더 커지고, 노이즈 패널티 또는 노이즈 게인이 커진다. 나아가, 이미지 내의 모든 픽셀이 등위상면 코딩에 의해 블러되기 때문에, 모든 픽셀에 필터링에 필요하고, 따라서, 보다 큰 이미지가 보다 작은 이미지보다 더 많은 연산을 필요로 할 수 있다. 수천만 개의 픽셀에 근접하는 이미지 사이즈에서, 유효한 연산 솔루션은 실제 및 경제적인 시스템을 위해 필요하다. 연산 구현예(가령, 사각 분리된 필터 근사)는 커널 치수를 줄이는 것을 도울 수 있다. 예를 들면 사용된 등위상면 코딩 소자는, 다름과 같은 사각 분리된 큐빅 위상 형태일 수 있다.
블러된 이미지를 필터링하는 것은 주로 공간 주파수의 함수로서 증폭 및 위상 이동을 의미한다. 이러한 증폭은 최종 이미지에서 노이즈와 함께 신호르 증가시틴다. 매우 큰 심소 강화에서, 예를 들면, 10 배 이상에서, 등위상면-코딩 시스템의 노이즈 게인은 4 또는 5의 팩터일 수 있다. 2-4의 더 적합한 심도 강화에 대해, 노이즈 게인은 2 이하의 팩터인 것이 일반적이다.
비상관된 가우신안 노이즈(대부분의 이미지에 대한 좋은 가정임) 관하여, 노이즈 게인은 필터 계서의 RMS 값이다. 적절하게 작은 노이즈-게인 값을 생성하기 위해 매우 큰 심도 확장을 이용하는 시스템에 관하여, 디지털 필터의 해상도 또는 공간 대역폭이 노이즈 게인을 감소시킬 수 있다. 또한 최종 이미지에 대조적인 감소는 증가된 노이즈의 전체 효과를 감소시킬 수 있다. 특성화된 비선형 필터링은 등위상면-코딩 이미지에서 노이즈를 제거하기 위한 최적의 솔루션이다.
실시예에서 MTF 및 PSF를 형성하는데 시용돤 등위상면 코딩 광학 소자가 사각 분리형이기 때문에, 사용된 신호 프로세싱은 필요한 수의 연산을 등급순으로 또는 그 이상 감소시킬 수 있다. 디지털 필터링이 공간 컨벌루션을 이용하여 수행된다는 사실 때문에, 실시예의 연산 방법은 필터 계수에 의해 데이터를 계측하기 위한 일련의 멀티플리케이션 및 전체 커널에 대해 모든 계측된 데이터 값을 함께 더하는 합산을 포함한다. 이러한 연산의 기본 유닛은 멀티플라이-누적 연산이다. 큰 심도 증가에 대한 전형적인 2-D 등위상면 코딩 필터 커널은 30x30 계수일 수 있다. 이러한 필터의 사각 분리 버전은 30 계수 길의 로 필터와 30 계수 높이 또는 60의 총 계수의 컬럼 필터를 포함한다. 등위상면 코딩 소자는 디자인 면에서 사각 분할형이며, 이들은 이에 제한되지 않고, 고 축약 시스템은 비 분리형 필터링을 사용할 수 있다.
광학 영상화 기술과 전자 필터링의 조합에 의해, 등위상면 코딩 기술은 폭넓은 영상화 시스템에 대한 성능을 개선시킬 수 있다. 고-성능 영상화 시스템의 성능 게인은 조명 게더링 또는 공간 해상도를 희생시키기 않고 매우 높은 심도를 가질 수 있다. 저-비용 영상화 시스템에서의 성능 이득은 통상적으로 필요한 것보다 더 적은 물리적 컴포넌트를 가지는 양질의 이미지를 포함할 수 있다.
가상/디스플레이 및 물리적 공간 일치
전술한, 실시예의 SOE는 3-스페이스 입력을 검출, 표현 및 해석하기 위한 시스템 및 방법을 포함한다. 시스템의 실시예는, SOE의 내용에서, 공간 추적 데이터의 복수의 소스로부터의 저-레벨 데이터를 처리하고, 이러한 의미론적으로 비상관인 시공간 데이터를 분석하며, 고-레벨 제스처 이벤트를 동적으로 구성된 암시적 및 명시적 제스처 디스크립션의 세트에 따라 발생한다. 생성된 이벤트는 상호작용 시스템에 의한 가정에 적합하며, 이러한 실시예는 고객에게로의 이벤트 배포를 제어하고 영향을 주기 위한, 하나 이상의 메커니즘을 제공한다. 나아가, 실시예는 이러한 이벤트의 고객에게, 레퍼런스의 임의의 공간적 및 의미론적 프레임들 사이의 제스처 이벤트를 변환하는 용이성을 제공한다.
이 시스템은 하나 이상의 디스플레이 디바이스(“스크린”)에 표시된 가상 공간이 시스템의 오퍼레이터 또는 복수의 오퍼레이터에 의해 나타내는 물리적 공간과 일치하는 것으로 취급되는 환경을 제공할 수 있다. 이러한 환경의 실시예가 이하에서 설명된다. 이러한 현제 실시예는 고정 위치의 3 프로젝터-구동 스크린을 포함하고, 단일 데스크탑 컴퓨터에 의해 구동되며, 이하에 설명된 제스처 어휘 및 인터페이스 시스템을 사용하여 제어된다. 그러나, 임의의 수의 스크린이 설명될 기술에 의해 지원된다는 것에 주의한다. 즉, 이러한 스크린은 모바일(고정형이기 보다는)일 수 있으며, 이 스크린은 많은 독립적인 컴퓨터에 의해 동시에 구동될 수 있고, 전체 시스템이 임의의 입력 디바이스 또는 기술에 의해 제어될 수 있다.
내용 중에 설명된 인터페이스 시스템은 물리적 공간 상의 스크린의 크기, 방향 및 위치의 의미를 가진다. 이러한 정보가 주어지면, 시스템은 스크린이 배치된(그리고 시스템의 오퍼레이터가 나타내는) 물리적 공간을, 시스템에서 동작하는 컴퓨터 애플리케이션의 가상 공간에 대한 투영으로서 동적으로 매핑할 수 있다. 이러한 자동화 매핑의 일부로서, 또한 시스템은 시스템에 의해 주관되는 애플리케이션의 필요에 따라, 다양한 방식으로 두 개의 공간에 대한 스케일, 각도, 심도, 치수 및 기타 공간적 특성을 변환한다.
물리적 및 가상 공간 상의 이러한 연속적인 변환은 현존하는 애플리케이션 플랫폼에 대해 획득하기 어려운 그리고 현재 플랫폼에서 동작하는 각각의 애플리케이션에 대한 피스-밀(piece-meal)을 구현해야 하는 복수의 인터페이스 기술의 동시적 및 보급화 사용을 가능하게 한다. 이러한 기술은 다음을 포함한다(이에 한정되는 것은 아님):
1) “문자 포인팅”의 사용 -- 보급형 또는 네추럴 인터페이스 기술로서--제스처 인터페이스 환경에서의 손을 사용하거나, 또는 물리적 포인팅 도구 또는 다비아스를 사용
2) 스크린의 이동 또는 재배치에 대한 자동 보상
3) 예를 들면, 심도 인식에 대한 시차 이동을 시뮬레이팅하는 오퍼레이터 위치에 따라 변하는 그래픽 렌더링
4) 실제 위치, 방향, 상태 등을 고려하는--스크린 디스플레이 상의 물질적 객체의 포함. 예를 들면, 커다란 불투명 스크린의 전방에 서있는 오퍼레이터가 스크린의 뒤에 존재하는 (그리고 아마도 이동하고 방향을 변경하는) 스케일 모델의 실제 위치에 대한 애플리케이션 그래픽 및 표면 모두를 볼 수 있다.
문자 포인팅은 마우스-기반 윈도우 인터페이스 및 대부분의 기타 현대 시스템에서 사용되는 추상 포인팅과 다르다. 이러한 시스템에서, 오퍼레이터는 가상 포인터 및 물리적 포인팅 디바이스 사이의 변환을 관리하기 학습을 해야하고, 의식적으로 둘 사이를 맵핑해야한다.
대조적으로, 이러한 내용에 설명된 시스템에서, 애플리케이션 또는 사용자 관점으로부터, 가상 및 물리적 공간 사이에 차이가 존재한다(가상 공간이 수학적 조작으로 수정가능하다는 것을 제외하고, 따라서 오퍼레이터의 필요한 인식적 변환이 존재하지 않는다.
내용 중에 설명된 실시예에 의해 제공된 문자 포인팅에 대한 가장 근접한 애널로지(analogy)는 터치-감지 스크린이다(예를 들어, 많은 ATM 기계에서 볼 수 있음). 터치-감지 스크린은 감지 스크린 상의 2-차원 디스플레이 및 스크린 표면의 2-차원 입력 공간 사이의 일대일 매핑을 제공한다. 아날로그적 방식으로, 여기에 설명된 시스템은, 하나 이상의 스크린 상에 디스플레이된 가상 공간과 오퍼레이터에 의해 나타낸 물리적 공간 사이에, 플렉서블 매핑을 제공한다(가능하면 필수적인 것은 아니면, 일대일로). 애널로지의 유용성에도, 이러한 “매핑 접근법”의 삼차원으로의 확장, 임의의 커다란 아키텍처 환경 및 다중 스크린이 하찮지 않다는 것을 이해하는 것이 중요하다.
내용 중에 설명된 컴포넌트에 부가하여, 시스템은 또한, 환경의 물리적 공간 및 각각의 스크린 상의 디스플레이 스페이스 사이의 연속, 시스템-레벨 매핑을 구현하는 알고리즘을 구현할 수 있다.
렌더링은 연산 스택은 객체 및 매핑을 취하고, 가상 공간의 그래픽 표면을 출력한다.
입력 이벤트 프로세싱 스택은 (현 실시예에서, 시스템 및 마우스 입력으로부터 제스처 및 포인팅 데이터 모두)제어 시스템으로부터 이벤트 데이터를 취하고, 가상 공간의 좌표로 입력 이벤트로부터의 공간 데이터를 매핑한다. 번역된 이벤트는 이후에 동작 애플리케이션으로 전달된다.
“글루 층”은 로컬 영역 네트워크상의 수 개의 컴퓨터에 동작하는 호스트 애플리케이션으로 시스템을 연결한다.
공간-연속 입력 시스템의 실시예는 이하에, 네트워크-베이스 데이터 표현, 트랜지트(transit) 및 인터체인지를 포함하는 것으로 설명되며, 이하에 상세히 설명된 것과 같이, 서브시스템 “slawx(슬록스)", "proteins(단백질)" 및 “pools(풀)"를 포함하는 "plasma"라 불리는 시스템을 포함한다. 또한, 이러한 메커니즘은 단백질 및 풀에 더하여 슬록스("slaw"의 복수)를 포함한다. 일반적으로, 슬록스는 인터-프로세스 교환에 대한 최하 레벨 데이터 정의를 제공하며, 단백질은 중간 레벨 구조를 제공하고 쿼리 및 필터링에 대한 후크를 제공하며, 풀은 고-제벨 조직화 및 접속 의미론을 제공한다. 슬록스는 효과적인, 플랫폼-의존 데이터 표면 및 접속을 위한 메커니즘을 포함한다. 단백질은 데이터 인켑슐화 및 페이로드로서 슬록스를 이용하는 운송 스킴을 제공한다. 풀은 구조화 및 유연한 수집, 순위지정, 필터링, 및 프로세스 내의, 로컬 프로세스 사이의, 원격 또는 분포된 프로세스 사이의 네트워크를 통한, 그리고 보다 긴 텀(예, 온-디스크 등) 저장장치를 통한, 단백질의 배분을 제공한다.
내용 중에 설명된 실시예에 대한 구성 및 구현은 수많은 기능을 가능하게 하는 수 개의 구성을 포함한다. 예를 들어, 내용 중에 설명된 실시예는, 전술한 많은 수의 프로세스들 사이의 데이터의 효과적인 교환을 제공한다. 설명된 실시예는 또한, 플렉서블 데이터 “유형화” 및 구조를 제공하여, 데이터의 폭넓은 종류 및 사용을 지원한다. 나아가, 내용 중에 설명된 실시예는 데이터 교환을 위한 플렉서블 메커니즘(예, 로컬 메모리, 디스크, 네트워크 등)을 포함하고, 모두는 실질적으로 유사한 애플리케이션 프로그램 인터페이스(API)에 의해 구동된다. 나아가, 설명된 실시예는 서로 다른 프로그램 언어로 씌여진 프로세스 사이의 데이터 교환을 가능하게 한다. 추가로, 설명된 실시예는 데이터 캐싱 및 수집 상태의 자동 관리를 가능하게 한다.
도 25는, 슬록스, 단백질, 풀을 사용하여, 실시예에 따른 데이터 표현을 포함하는 프로세싱 환경에 대한 블록도이다. 여기에 표현된 실시예의 주요 구성은 슬록스(“slaw"의 복수형), 단백질, 및 풀을 포함한다. 설명된 슬록스는 효과적인, 플랫폼-독립 데이터 표현 미접속에 대한 메커니즘을 포함한다. 설명된 단백질은, 데이터 인캡슐화 및 운송 스킴을 제공하고, 실시예의 단백질의 페이로드는 슬록스를 포함한다. 설명된 풀은 구조화되나 플렉서블한 수집, 순위지정, 필터링, 및 단백질의 분배를 포함한다. 풀은 단백질을 이용한, 프로세스 내, 로컬 프로세스들 사이에서, 원격 또는 분포된 프로세스들 사이의 네트워크 전체에 걸쳐, 그리고 보다 긴 텀(예, 온-디스크) 저장장치를 통한 데이터 접속을 제공한다.
도 26은 실시예에 따른 단백질에 대한 블록도이다. 단백질은 길이 헤더, 디스크립, 및 수집을 포함한다. 디스크립(descrip) 및 수집은, 이하에 상세히 설명할 것과 같이 각각 슬로 및 슬록스를 포함한다.
도 27은 실시예에 따른 디스크립에 대한 블록도이다. 이하에 상세히 설명할 것과 같이 디스크립은 길이 오프셋, 길이 및 슬록스를 포함한다.
도 28은 실시예에 따른 인제스트에 대한 블록도이다. 이하에 상세히 설명할 것과 같이 인제스트는 오프셋, 길이 및 슬록스를 포함한다.
도 29는 실시예에 따른 슬로(slaw)에 대한 블록도이다. 이하에 상세히 설명할 것과 같이 슬로는 타입 헤더, 및 타입-특정 데이터를 포함한다.
도 30A는 풀(pool) 내의 단백질에 대한 블록도이다. 단백질은 길이 헤더(“단백질 길이”), 디스크립 오프셋, 인제스트 오프셋, 디스크립 및 인제스트를 포함한다. 디스크립은 오프셋, 길이 및 슬로를 포함한다. 인제스트는 오프셋, 길이 및 슬로를 포함한다.
이하에 설명된 단백질은 프로세스들 사이에 공유될 필요가 있는 또는 버스나 네트워크나 기타 프로세싱 구조를 통해 이동하될 필요가 있는 인캡슐화된 데이터에 관한 메커니즘이다. 예로서, 단백질은 사용자 인터페이스 이벤트와 관련되거나 이에 대응하는 데이터를 포함하는 운송 및 조작을 위한 개선 메커니증을 제공하며, 구체적으로, 실시예의 사용자 인터페이스는 전술한 제스처 인터페이스의 인벤트를 포함한다. 추가적인 실시예로서, 단백질은 그래픽 데이터 또는 이벤트, 몇몇 네임된 상태 정보를 포함하는(제한되는 것은 아님) 데이터의 운송 및 조작을 위한 개선된 메커니즘을 제공한다. 단백질은 구조적 레코드 포맷 및 레코드를 조작하기 위한 관련된 방법 세트이다. 여기에 사용된 레코드의 조작은 데이터를 구조에 넣는 것, 구조로부터 데이터를 빼내는 것 및 데이터의 포맷 및 존재를 질의하는 것(쿼리)을 포함한다. 단백질은 다양한 컴퓨터 언어로 쓰인 코드를 통해 사용되도록 구성된다. 또한, 단백질은 이하에 설명된 것과 같이, 풀에 대한 베이직 빌딩 블록이 되도록 구성된다. 나아가, 단백질은 프로세서들 사이에 그리고 네트워크를 통한 이동을 자연스럽게 가능하게 하도록 구성되면, 동시에 이들이 포함하는 데이터를 변경하지 않고 유지한다.
통상적인 데이터 운송 메커니즘에 대조적으로, 단백질은 유형이 정해지지 않는다. 비-유형화되나, 단백질은 “타입-유사” 기능성이 구현되는 상부에, 파워풀 및 플렉서블 패턴-매칭 기능을 제공한다. 설명한 것과 같이 구성된 단백질은 또한 본래 멀티-포인트(포인트-대-포인트 형태가 멀티-포인트 전송의 서브세트로 쉽게 구현되나)이다. 추가로, 단백질은 “유니버설” 레코드 포맷(이는, 예를 들면, 인-메모리, 온-디스크, 및 온-더-와이어(네트워크) 포맷 사이에서 다르지 않음, 다만, 수행되는 선택적인 최적화의 유형면에서만 다름)을 정의한다.
도 26 및 30A를 참조하면, 실시예의 단백질은 바이트의 선형 시퀀스이다. 이러한 바이트 내에서, 디스크립 리스트 및 한 세트의 키-값 쌍(인제스트라 함)이 가 인캡슐화된다. 인제스트는 한 세트의 키-값 쌍을 포함하며, 이는 단백질의 실제 내용을 포함한다. 키-값 쌍 및 네트워크-친화 및 멀티-포인트 데이터 교환에 관한 일부 핵심 아이디어에 관한 단백질은 “튜플(tuples)"(예, 린다, 지니)의 개념에 우선하는 이전 시스템과 공유된다. 단백질은 수 개의 메이저 방식으로 튜플-지향 시스템과 구분되며, 표준화, 최적화 패턴 매칭 기질을 제공하기 위한 디스크립트 리스트의 사용을 포함한다. 또한, 단백질은 레코드 포맷에 대한 수개의 특정한 ”인터페이스“ 구현과 함께, 다양한 저장장치 및 언어 구조에 적합한 레코드 포맷의 엄격한 기준에서 튜플-지향 시스템과 구별된다.
단백질의 설명으로 돌아가면, 첫 번째 4 또는 8 바이트의 단백질은 단백질의 길이을 규정하고, 이는 실시예에서, 16 바이트의 배수이어야 한다. 이러한 16-바이트 입상(granularity)은 바이트-정렬 및 버스-정렬 효율이 동시성 하드웨어에서 성취도리 수 있다는 것을 보증한다. “쿼드-워드 정렬”되지 않은 단백질은 임의의 바이트와 채워져, 이의 길이가 16 바이트의 배수가 된다.
단백질의 길이 부분은 다음의 포맷을 가진다: 빅-에디안 포맷의, 마이크로-레벨 단백질 구조 특성을 나타내는 플래그로 기능할 하는, 4 최하위 비트를 가지는, 길이를 특정하는 32 비트; 단백질의 길이가 2^32 바이트보다 큰 경우에 32의 추가 비트가 이어진다.
실시예의 16-바이트-정렬의 조건은 첫 번째 4 바이트의 최하위 비트가 플래그로서 이용될 수 있다는 것을 의미한다. 또한, 첫 번째 3개의 하위 비트 플래그는 단백질의 길이가 첫 번째 4 바이트로 표현될 수 있는 또는 8을 요하는지를 나타내고, 단백질이 빅-엔디안 또는 리틀-엔디안 바이트 순서를 이용하는지 여부를 나타내며, 그리고 단백질이 표준 또는 비-표준 구조를 이용하는지 여부를 각각 나타낸다. 그러나, 단백질이 이에 제하되는 것은 아니다. 4번째 플래그 비트는 미래의 사용에 대비하여 보전된다.
8-바이트 길이의 플래그 비트가 설정되면, 단백질의 길이가 다음의 4 바이트를 판독하고 이들을 빅-엔디안, 8-바이트 정수의 높은-순위의 바이트로 사용함으로써 연산된다(여기서 4 바이트는 이미 낮은-순위의 부분 공급하는 것으로 판독됨). 리틀-엔디안 플래그가 설정되면, 단백질 내 모든 이진 숫자 데이터가 리틀-엔디안으로 해석된다(그렇지 않으면, 빅-엔디안). 비-표준 플래그 비트가 설정되면, 단백질의 잔여부분은 이하에 설명될 표준 구조로 변화되지 않는다.
비-표준 단백질 구조는 이하에서 추가로 설명되지 않을 것이다. 다만, 단백질 및 풀을 사용하는 시스템 프로그래머에게 유용한 비-표준 단백질 포맷을 설명 및 동기화하기 위한 다양한 방법이 존재하며, 이러한 방법은 공간 또는 컴퓨터 사이클이 제약될 때, 유용할 수 있다. 예를 들어, 실시예의 최단 단백질은 16 바이트이다. 표준-포맷 단백질은 임의의 실제 페이로드 데이터를 이러한 16 바이트로 맞출 수 없다(이들의 라이언(lion)의 공유는 이미 단백질의 컴포넌트 부분의 위치를 설명하기 위해 강등됨). 그러나, 비-표준 포맷 단백질은, 데이터에 대해 이들의 16 바이트 중 12 바이트를 사용할 수 있다. 단백질을 교환하는 두 개의 애플리케이션은, 이들은 항상 방출되는 임의의 16-바이트-길이 단백질이 예를 들면, 실시간 아날로그-투-디지털 컨버터로부터의 12개의 8-바이트 센서 값을 나타내는, 12 바이트를 포함한다는 것을 상호적으로 정할 수 있다.
단백질의 표준 구조에서, 길이 헤더에 바로 다음에, 둘 이상의 가변-길이 정수 숫자가 나타난다. 이러한 숫자는 디스크립 리스트 내의 제 1 요소 및 제 1 키-값 쌍(인제스트)에 각각에 대한 오프셋을 특정한다. 이러한 오프셋은 또한, 각각 디스크립트 오프셋과 인제스트 오프셋이라 한다. 이러한 수의 각각의 쿼드의 바이트 순서는 단백질 엔디아니스 플래그 비트에 의해 특정된다. 각각에 대해, 제 1 4 바이트의 최상위 비트는 숫자가 4 또는 8 바이트 폭인지 여부를 결정한다. 최상위 비트(msb)가 설정되면, 첫 번째 4 바이트는 더블-워드(8 바이트) 숫자의 최상위 바이트이다. 이는 이하에서 “오프셋 폼”이라 한다. 디스크립 및 쌍을 포인팅하는 분리된 오프셋의 사용은 서로 다른 코드 경로에 의해 디스크립 및 쌍이 처리되게 하며, 이를 예를 들면, 디스크립 패턴-매칭 및 단백질 어셈블리에 관해 구체적인 최적화를 가능하게 한다. 단백질의 시작부에 이러한 두 개의 오프셋의 존재는 수 개의 유용한 최적화를 가능하게 한다.
대부분의 단백질은 8-바이트 길이 또는 포인터 만큼 길지 않을 것이며, 따라서, 일반적으로 길이(플래그 포함) 및 2 오프셋 번호는 첫 번째 3 바이트의 단백질만을 점유할 것이다. 많은 하드웨어 또는 시스템 아키텍쳐에서, 첫번째(first)를 넘는 특정한 수의 바이트의 페치 또는 판독은 “프리”(예, 16 바이트가 단일 바이트로서 셀 프로세서의 메인 버스를 거쳐 풀링하도록, 정확히 동일한 수의 클록 사이클을 취함)이다.
많은 경우에, 구현-특정 또는 내용-특정 캐싱 또는 단백질 내의 메타데이터를 가능하게 하는데 효과적이다. 오프셋의 사용은 단백질의 시작점에 인접하게 생성될 임의의 사이즈의 “홀(hole)"에 대해 허용되고, 이러한 메타데이터가 홀에 삽입될 수 있다. 메타데이터의 8 바이트의 사용을 가능하게 할 수 있는 구현예는 단백질에 대한 길이 헤더의 모든 페치를 이용하여 많은 시스템 아키텍처에서 프리로 이러한 바이트를 얻을 수 있다.
디스크립 오프셋은 단백질 및 제 1 디스크립 엔트리의 시작점 사이의 바이트의 수를 특정한다. 각각의 디스크립 엔트리는 다음의 디스크립 엔트에 대한 오프셋(물론 오프셋 형태로)을 포함하고, 가변-폭 길이 필드(다시 오프셋 포맷으로)가 이어지고, 슬로가 이어진다. 추가 디스크립이 존재하지 않는 경우에, 오프셋은 규칙대로 4 바이트의 제로이다. 그렇지 않으면, 오프셋은 이러한 디스크립 엔트리의 시작점 및 후속 디스크립 엔트리 사이의 바이트의 수를 특정한다. 길이 필트는 바이트 면에서, 슬로의 길이를 특정한다.
대부분의 단백질에서, 각각의 디스크립은 슬로 스트링 방식으로 포맷된다: 최상위 비트 세트를 가지는 4-바이트 길이/타입 헤더 그리고 길이를 특정하는 데 사용되는 단 30개의 하위 비트, 이어서 헤더 지정 수의 데이터 바이트가 이어진다. 일반적으로, 길이 헤더는 단백질으로부터 엔디아니스(endianess)를 취한다. 바이트는 UTF-8 캐릭터를 인코딩하는 것으로 가정한다(그리고 이에 따라-- 주의 -- 캐릭터의 수는 바이트의 수와 반드시 동일하지는 않음).
인제스트 오프셋은 단백질의 시작점과 제 1 인제스트 엔트리 사이의 바이트의 수를 특정한다. 각각의 인제스트는 다음의 인제스트 엔트리에 대한 오프셋(오프셋 포맷으로)을 포함하며, 다시 길이 필드 및 슬로가 이어진다. 인제스트 오프셋은, 다음의 디스크립 엔트리와 다른 다음의 인제스트 엔트리를 포인팅한다는 것을 제외하고, 디스크립 오프셋과 기능적으로 동일하다.
대부분의 단백질에서, 모든 인제스트는, 키/값 상으로 사용되는 2-값 리스트를 포함하는 슬로 콘 타입(slaw cons type)이다. 슬로 콘 레코드는, 제 2 최상위 비트 세트와 길이를 특정하는데 사용된 하위 30 비트만을 가지는, 4-바이트 길이/타입 헤더; 4-바이트 길이의 키 요소; 키 요소에 대한 슬로 레코드; 값 요소의 4-바이트 길이; 및 마지막으로 값 요소에 대한 슬로 레코드를 포함한다.
일반적으로, 콘 키는 슬로 스트링이다. 수 개의 단백질, 슬로 콘 길이 및 오프셋 필드에 대한 데이터의 중첩은 개량 및 최적화에 대한 더 많은 기회를 제공한다.
전술한 바와 같이, 단백질 내부의 확장형 데이터로 사용되는 실시예의 구조가, “슬로(이의 복수형은 ”슬록스(slawx))”라 불리는 태크된 바이트-시퀀스 세부사항 및 요약이다. 슬로는 유형화된 데이터(가능한 수집)의 일부를 나타내는 바이트의 선형 시퀀스이며, 메모리 스페이스, 저장 매체 및 기계 사이에서 슬록스가 생성, 변경 및 이동되도록 하는 프로래밍-언어-특정 API와 관련된다. 슬로 형 스킴은 확장될 수 있도록, 그리고 가능한 가볍게, 그리고 임의의 프로그램 언어로부터 사용될 수 있는 공통 기질이 되도록 계획된다.
효과적인, 라지-스케일 인터-프로세스 통신 메커니즘을 세울 필요성은 슬로 구성을 구동한다. 이상적인 프로래밍 언어는 프로세스-특정 메모리 레이아웃에서 잘 동작하는 세련된 데이터 구조 및 타입 기능을 제공한다. 그러나 이러한 데이터 표현은 데이터가 프로세스 사이에서 제거될 필요가 있거나 디스크에 저장될 때 변함없이 파괴된다. 슬로 아키텍처는, 먼저, 인터-프로세스 통신을 위한 실질적으로 효과적인, 멀티-플랫폼 친화적인, 저-레벨 데이터 모델이다.
그러나 보다 중요하게는, 슬록스가 단백질과 함께, 장래의 컴퓨터 하드웨어(마이크로프로세서, 메모리 컨틀로러, 디스크 컨트롤러)의 개밸에 영향을 미치고 이를 가능하게 하도록 구성된다. 수 개의 특정한 부가 사항, 즉, 공통적으로 사용할 수 있는 마이크로프로세서의 명령 세트는, 단일-프로세스, 인-메모리 데이터 레이아웃에 대해서도, 대부분의 프로그램 언어에서 사용되는 스킴과 마찬가지로, 슬록스가 효과적으로 이용되게 한다.
각각의 슬로는 유형-특정 데이터 레이아웃이 뒤따르는 가변-길이 형 헤더를 포함한다. 예시적인 실시예에서(이는 예를 들면 C, C++ 및 루비에서 풀 슬로 기능을 지원함), 각각 언어로부터 접속가능하는 시스템 헤더 파일에 정의된 유니버설 정수에 의해 표현된다. 더 섬세하고, 플렉서블한 유형의 해상도 기능도 가능하다. 예를 들면, 유니버설 객체 ID 및 네트워크 룩업을 통한 비 직접적 유형화가 가능하다.
실시예의 슬로 구성은 슬로 레코드가 루비 및 C++과 언어-친화적인 방식의 객체로 사용되도록 한다. C++ 컴파일러 새너티(sanity)-체크 슬로 바이트 레이아웃에 외적인 적합한 유틸리티는, 개별적인 슬로 타입 및 루비에 대한 자동-발생 바인딩에 특정된 헤더 파일 및 매크로를 생성한다. 결과적으로, 잘-구성된 슬로 타입은 단일 프로세스 내에서 사용되는 경우에도 매우 효과적이다. 임의의 슬로(프로세스이 접속형 메모리 내의 임의의 위치에 존재)는 카피 또는 “디시리얼라이제이션(deserialization)" 단계 없이 처리될 수 있다.
실시예의 임의의 기능성은, 다음 중 하나 이상을 수행하는, API 기능을 포함한다: 디스크 상에 또는 메모리의 바이트로부터 슬로에 대한 언어-특정 레퍼런스를 생성 또는 건설; 유형-특정 방식으로 슬로 내에 데이터 삽입; 슬로 내로부터 데이터 검색; 슬로 복제; 그리고 엔디안니스 및 슬로 내의 모든 데이터의 기타 포맷 속성. 모든 종류의 슬로는 전술한 동작을 구현한다.
도 30B는 실시예에 따른 슬로 헤더 포맷을 도시한다. 슬로에 대한 상세한 설명이 이어진다.
각각의 슬로에 대한 내부 구조는 타입 해상도, 인캡슐화된 데이터에 대한 접속, 및 슬로 예에 대한 사이즈 정보 각각을 최적화한다. 일 실시예에서, 슬로 타입의 전체 세트는 가장 조금 복잡한 디자인이며, 이는 다음을 포함한다: 슬로 콘(즉, dyad); 슬로 리스트; 및 슬로 수치 객체, 이들은 자신은 6 개의 순열로 이해되는 개별적인 숫자 유형으로 구성된 넓은 세트를 나타내거나, 가장 기본적인 속성을 나타낸다. 임의의 슬로의 기타 기본적인 속성은 이들의 사이즈이다. 일 실시예에서, 슬록스는 4의 배수로 정량화된 바이트-길이를 가지며, 이러한 4-바이트 워드는 이하에서 “쿼드”라 한다. 일반적으로, 이러한 쿼드-기반 사이징은 현대의 컴퓨터 하드웨어 아키텍처의 구성에 슬록스을 잘 맞춘다.
실시예의 모든 슬로마다 첫 번째 4 바이트는 유형-표현 및 기타 메타정보를 인코딩하고, 구체적인 비트 패턴에 대한 구체적인 타입 의미를 배정하는 헤더 구조를 포함한다. 예를 들어, 슬로 헤더의 첫 번째(최상위) 비트는 그 슬롯의 사이즈(쿼드-워드의 길이)가 초기 4-바이트 타입 헤더를 따르는지 여부를 특정하는데 사용된다. 이러한 비트가 설정될 때, 슬로의 사이즈가 슬로의 다음 4 바이트9예, 5-8 바이트) 내에 명시적으로 기록되는 것으로 이해된다; 슬로의 사이즈가 4 바이트에 표현될 수 없는 경우에(즉, 30-세컨드 파워에 대해 사이즈가 2 바이트보다 크거나 같음), 슬로의 초기 4 바이트의 다음의-최상위 비트도 설정되고, 이는 8-바이트(4 바이트 보다는) 길이를 가지는 것을 의미한다. 이러한 경우에, 검사 프로세스가 5 내지 12의 서수 바이트로 저장된 슬로의 길이를 검색할 것이다. 다른 한편, 작은 수의 슬로 타입은 많은 경우에, 전체 특정된 유형의 비트-패턴은 4 바이트 슬로 헤더 내의 많은 비트를 “사용되지 않고 남도록 한다”; 그리고 이러한 경우에, 이러한 비트는 슬로의 길이를 인코딩하는 데 사용될 수 있고, 다른 경우에 필요할 수 있는 바이트(5 내지 8)를 절약한다.
예를 들어, 실시예는 슬로 헤더(“길이 후속” 플래그)의 최상위 비트가 비설정 상태로 남게 하고, 다음 비트는 슬로가 “위 콘(wee con)"임을 나타내도록 설정되도록 하며, 이러한 경우에, 슬로의 길이(쿼드)는 잔여 30 비트에서 인코딩된다. 유사하게 “위 스트링(wee string)"이 헤더 내의 패턴 001에 의해 표시되고, 이는 헤더 내의 리딩 0001이 “위 리스트”를 설명하며, 28의 가용 길이-표현 비트를 이용하는 크기 면에서 2-28 쿼드까지의 슬로 리스트일 수 있다. “풀 스트링”(또는 콘 또는 리스트)는 헤더 내의 서로 다른 비트 시그니처를 가지며, 여기서 최상위 헤더 비트가 필수적으로 설정된다. 왜냐하면 슬로 길이는 5-8의 바이트(또는 극단적인 경우에 12)에서 별개로 인코딩되기 때문이다. 플라스마 구현은, 슬로 구성의 경우에, 이러한 슬로 구성의“위(wee)" 또는 ”풀(full)" 버전을 이용하는지 여부를 결정한다(이러한 결정은 최종 사이즈가 가용 위 비트에 맞는지 아닌지 여부에 근거한다). 그러나 풀-대-위 세부사항은 플라스마 rgus의 사용자로부터 히든되며, 사용자는 슬로 스트링 또는 슬로 콘 또는 슬로 리스트를 사용하는지에 대해서만 인식하고 주의한다.
숫자적 슬로는, 일 실시예에서, 리딩 헤더 패턴(00001)에 의해 표시된다. 후속 헤더 비트는 임의의 순열로 조합될 수 있는 직교 속성의 세트를 표현하는데 사용된다. 실시예는 다음의 5개의 언사인드(unsigned)를 사용하나 이에 제한되는 것은 아니다:(4) “와이드”; (5) “스텀피(stumpy)((4) "와이드” 및 (5) “스텀피)가 8, 16, 32, 및 64 비트 수 표현을 나타내도록 순연화됨). 두 개의 추가 비트(예, (7) 및 (8))은 인캡슐화된 수 데이터가 2, 3, 또는 4- 성분 벡터임을 나타낸다(양쪽 비트는 수가 ”1-성분 벡터“(즉, 스칼라)임을 암시하는 제로임). 이러한 경우에, 네 번째 헤더 바이트의 8 비트가 인캡슐화된, 수 데이터의 크기(바이트 면에서, 쿼드가 아님)를 인코딩하는데 사용된다. 이러한 사이즈 인코딩은 하나씩 오프셋되어, 1백 내지 2백 5십 6 바이트를 포함하는 이들 사이의 임의의 사이즈를 나타낼 수 있다. 마지막으로, 2 캐릭터 비트(예, (9) 및 (10))는 개별적인 수 엔터티의 어레이를 수 데이터가 인코딩하는 것을 나타내는데 사용되며, 이들 각각은 캐릭터 비트(1) 내지 (8)에 의해 표현된 타입(유형)이다. 어레이의 경우에, 개별적인 수 엔터티는 추가 헤더가 각각 태그되지 않으나, 연속 데이터로 패키지화되고, 이어서 단일 헤더가 뒤따르며, 가능한 명시적인 슬로 사이즈 정보가 이어진다.
이러한 실시예는 단일 및 유효 슬로 복사(이는 바이트-포-비이트 카피로 구션될 수 있음) 및 극단적인 전방 및 유효 슬로 비교(시퀀스로 간주된 이들 컴포넌트 바이트의 각각에 대한 일대일 매치가 존재하는 경우에 2개의 슬록스가 이러한 실시예에서 동일함)를 제공한다. 이러한 후자의 속성은 예를 들면, 단백질 아키텍처의 효과적인 구현에서 중요하며, 이들의 임계적 및 보급적인 속성 중 하나는 단백질의 디스클립 리스트를 검색 또는 이와 매칭하는 능력이다.
나아가, 이 실시예는, 슬로 형태(예를 들면, 슬로 콘 및 슬로 리스트)가 간단히 그리고 효율적으로 구성되도록 한다. 예를 들어, 일 실시예는 두 개의 컴포넌트 슬록스로부터, 슬로 콘을 구성한다. 슬록스는 임의의 유형일 수 있으며, 다음에 의해 수집된 것을 포함한다: (a) 각각의 컴포넌트 슬로의 사이즈 질의; (b) 두 개의 컴포넌트 슬록스 및, 헤더-플러스-사이즈 구조에 필요한 1, 2, 또는 3 쿼드의 사이즈의 합과 동일한 사이즈의 메모리 할당; (c) 첫 번째, 4, 8 또는 12 바이트의 슬로 헤더(플러스 사이즈 정보) 레코딩; (d) 바로 후속하는 메모리에 차례로 컴포넌트 슬록스의 바이트 카피. 특히, 이러한 구성 루틴은 두 개의 컴포넌트 슬록스의 유형에 대해 아무것도 알 필요가 없으면, 다만 이들의 사이즈(그리고 바이트의 시뭔스로서의 수용가능성)만이 문제가 된다. 동일한 프로세스는 슬로 리스트의 구성에 관계되며, 이는 (가능한) 이종의 유형의 임의의 많은 서브-슬록스의 순차적인 인캡슐화물이다.
메모리에서 연속 바이트로서의 슬로 시스템의 기본적인 포맷의 추가 시퀀스가 “횡단(traversal)" 활동과 연결하여 획득된다-- 예를 들면, 재발 사용 패턴은 슬로 리스트에 저장된 개별적인 스록스에 대한 연속 접속을 이용한다. 단백질 구조 내의 디스크립 및 인제스트를 나타내는 개별적인 슬록스는 유사하게 횡단되어야 한다. 이러한 전략은 탁월하게 바르고 효과적인 방식으로 획득될 수 있다: 슬로 리스트 내의 다음을 슬로로 ‘이동하기’ 위해, 하나는 현재 슬로의 길이를 메모리 내의 이의 위치에 부가하고, 최종 메모리 위치는 다음 슬로의 헤더와 동일하다. 이러한 간단성은 슬로 및 단백질 디자인이 “간접성”을 피하기 때문에 가능하며, 포인터가 존재하지 않는다; 오히려 데이터는 단순히 전체적으로 원위치에 존재한다.
슬로 포인트의 비교를 위해, 플라스마 시스템의 완전한 구현은 서로 다른 동작 시스템, CPU, 및 하드웨어 아키텍처 사이의 및 이에 대한 차별화된 비호환적 데이터 표현 스킴의 존재를 인식해야 한다. 이러한 차이점의 대부분은 바이트-순위지정 정책(예, 리트- 대 빅-엔디안)을 포함하고, 플로팅-포인트 표현을 포함하며, 기타 다른 것이 존재할 수 있다. 플라스마 세부사항은 슬록스에 의해 캡슐화된 데이터가 해석가능하게 할 것을 요한다(즉, 슬로가 검사될 아키텍처 또는 플랫폼의 자연적인 포맷으로 표시되어야 함). 이러한 필요조건은 차례로, 플라스마 시스템이 데이터 포맷 변환을 스스로 책임진다는 것을 의미한다. 그러나, 세부사항은 단지, 슬로가 이를 검사할 수 있는 실행 프로세스로 “가시적이 되기” 전에, 변환이 발생할 수 있다는 것을 규정한다. 따라서, 이러한 포맷 c 변환을 수행하기 위해 선택할 수 있는 포인트에서의 개별적인 구현에 달려 있다. 두 개의 적합한 접근법은 슬로 데이터 페이로드가 , 개별적인 슬로가 패킷화된 단백질 “풀 아웃”에 따라, 로컬 아키텍처의 데이터 포맷(1)으로 컨폼되고, 또는 (2)단백질 내에서 동시에 모든 슬로에 대해, 단백질이 남아있는 풀로부터 추출된다. 변환 규정은 하드웨어-보조 구현의 가능성을 고려한다는 것에 주의한다. 예를 들어, 명백한 플라스마 가능성을 가지는 네트워킹 칩셋이 지능적으로 “동시 송신 시, ” 수신 시스템의 아려진 속성에 근거하여 포맷 변환을 수행한다. 선택적으로, 송신의 프로세스는 수학 표준형으로 데이터 페이로드를 변환할 수 있으며, 여기서 수신 프로세스는 대칭적으로 수학적 형식으로부터 “로컬” 형식으로 대칭적으로 변환한다. 다른 실시예는 “메탈에서”포맷 변솬을 수행하며, 이는 수학적 표준형식으로 로컬 메모리에서도 , 데이터가 항상 저장된다는 것을 의미하고, 메모리 컨트롤러 하드웨어는 자체적으로 데이터가 메모리로부터 인출됨에 따라 그리고 프록시멀 CPU의 레지스터에 배치됨에 따라 변환을 수행한다.
실시예의 최소(및 리드-온리) 단백질 구현은, 단백질을 사용하는 하나 이상의 애플리케이션 또는 프로그램 언어 내의 오퍼레이션 또는 동작을 포함한다. 도 30C는 실시예에서 단백질을 사용하기 위한 흐름도(3050)이다. 오퍼레이션은 단백질의 바이트의 길이를 질의(3052) 함으로써 시작된다. 디크립 엔트리의 수가 질의 된다(3054). 인제스트의 수가 질의 된다(3056). 디스크립 엔트리가 인덱스 번호에 의해 검색된다(3058), 인제스트가 인제스트 번호에 의해 검색된다(3060)
이하에 설명된 실시예는 또한 단백질이 구성되도록 하며, 데이터, 헬퍼-방법(프로그래머에게 공동 작업을 쉽게 함), 및 최적화 생성을 위한 후크로 채워지도록 한다. 도 30D는 실시예에서, 단백질을 구성 또는 발생하기 위한 흐름도(3070)이다. 동작은 새로운 단백질의 생성(3072)으로 시작된다. 일련의 디스크립 엔트리가 부가된다(3074). 인제스트도 부가된다(3076). 매칭 디스크립의 존재가 질의된다(3078), 그리고 매칭 인제스트 키의 존재가 질의된다(3080). 인제스트 키가 주어지면, 인제스트 값이 검색된다(3082). 패턴 매칭이 디스크립트에 대해 수행된다(3084). 비-구조화된 메타데이터가 단백질의 시작점 가까이에 삽입된다.(3086).
전술한 것과 같이, 슬록스는 인터-프로세스 교환에 대한 최저-레벨 데이터를 제공하고, 단백질은 중간-레벨 구조를 제공하며, 질의 및 필터링에 대한 후크를 제공하고, 그리고 풀은 이-레벨 조직화 및 접속 의미론을 제공한다. 또한 풀은 다중 프로그램 또는 다수의 서로 다른 유형의 애플리케이션에 대한 멀티-프로세스 접속을 제공한다. 나아가, 풀은 공통의, 최적화된 필터링 및 패턴-매칭 동작의 세틀르 제공한다. 실시예의 풀(수 만개의 단백질을 수용할 수 있음)은 상태를 유지하는 기능을 하며, 따라서 개별적인 프로세스는 멀티-프로세스 프로그램 코드에 공통된 지루한 북키핑의 대부분을 벗어버릴 수 있다. 풀은 유용한 과거의 단백질에 대한 큰 버퍼를 유지 또는 보유할 수 있으며--- 플라토닉 풀이 명시적으로 무한함-- 따라서 참여 프로세스는 풀에서 의지에 따라 전방 및 후방 모두로 스캔할 수 있다. 버퍼의 크기는 물론, 구현 의존적이나, 공통 사용 시에, 종종 수 시간 또는 수일동안 풀 내에 단백질을 유지하는 것이 가능하다.
전술한 것과 같은 풀 사용에 대한 대부분의 공통 스타일은, 존재하는 인터-프로세스 통신 프로세스에 의해 취해지는 포인트-투-포인트 접근인, 기계공학과 대조적으로, 생물학적 메타퍼로 분리된다. 네임 단백질은 생물학적 사상을 포함한다: 풀 내의 데이터 단백질은 다수의 연산 프로세스에 의한 플렉서블 질의 및 패턴 매칭에 유용하다. 왜냐하면 살아있는 개체 내의 화학적 단백질이 패턴 매칭 및 다수의 세포 에이전트에 의한 필터링에 유용하기 때문이다.
두 개의 추가적인 요약은 생물학적 메타포에 의존하며, 이는 “핸들러”의 사용 및 골지(Golgi) 프레임워크의 사용을 포함한다. 풀에 참여하는 프로세스는 일반적으로 다수의 핸들러를 생성한다. 핸들러는 조건을 핸들 동작과 관련시키는 상대적으로 작은 번들의 코드이다. 하나 이상의 핸들러를 풀에 유형화함으로써, 프로세스는, 새로운 단백질에 대한 상태 및 반응을 캡슐화하는 플렉서블 콜-백(call-back) 트리거를 설정한다.
수 개의 풀에 참여하는 프로세스는 일반적으로 요약 Golgi 클래스로부터 유래된다. 골지 프레임워크는, 다수의 풀과 핸들러를 관리하기 위한 복수의 유용한 루틴을 제공한다. 골지 클래스는 또한 모자-관계를 인캡슐화하며, 이는 풀을 사용하지 않는 로컬 단백질 교환을 위한 메커니즘을 제공한다.
실시예에 따른 풀 API는 다양한 방식으로, 시스템-특화 모적 및 지정 하드웨어 및 네트워크 아키텍처의 이용 가능성 모두을 고려하도록 풀이 구현되도록 구성된다. 풀이 의존하는 두 개의 기본적인 시스템 설비는 저장 시설 및 인터-프로세스 통신의 수단이다. 여기에 설명된 잔여 시스템은 공유 메모리, 가상 메모리, 및 저장 시설에 대한 디스크의 플렉서블 조합, 및 IPC 큐 및 인터-프로세스 통신을 위한 TCP/IP 소켓을 사용한다.
실시예의 풀 기능성은, 다음을 포함하나 이에 제한되는 것은 아니다: 풀 내의 참여; 풀 내에 단백질 배치; 풀로부터 다음의 보이지 않는 단백질 검색; 풀 내의 내용(예, 단백질) 전체로 다시 감기 또는 고속 진행. 추가로, 풀 기능성은 다음을 포함하나 이에 제한되는 것은 아니다: 프로세스에 대한 스트리밍 풀 콜-백; 디스크립 또는 인제스트 키의 특정 패턴과 일치하는 단백질의 선택적 검색; 디스크립 또는 인제스트 키의 특정한 패턴과 일치하는 단백질에 대한 후방 및 전방 스캔.
전술한 단백질은 다른 애플리케이션과 단백질 데이터 내용을 공유하는 방식으로 풀에 제공된다. 도 31은 슬록스, 단백질 및 풀을 실시예에 따라 사용하여 데이터를 교환하는 프로세싱 환경에 대한 블록도이다. 이러한 예시적인 환경은, 전술한 것과 같이, 슬록스, 단백질, 풀의 사용을 통해 데이터를 공유하는, 3개의 디바이스(에, 디바이스 X, 디바이스 Y 및 디바이스 Z, 집합적으로 이하에서 “디바이스”라 함)를 포함한다. 디바이스 각각은 세 개의 풀(예, 풀1, 풀 2, 풀 3)에 연결된다. 풀 1은, 개별적인 디바이스로부터 풀에 기여하거나 전달되는 수많은 단백질(예, 단백질 X1, 단백질 Z2, 단백질 Y2, 단백질 X4, 단백질 Y4)를 포함한다(예를 들면, 단백질 Z2가 디바이스 Z 등에 의해 풀 1로 전달되거나 이에 기여함). 풀 2는 개별적인 디바이스로부터 풀에 기여하거나 전달되는 수많은 단백질(예, 단백질 Z4, 단백질 Y3, 단백질 Z1, 단백질 X3)를 포함한다(예를 들면, 단백질 Y3가 디바이스 Y 등에 의해 풀 2로 전달되거나 이에 기여함). 풀 3는 개별적인 디바이스로부터 풀에 기여하거나 전달되는 수많은 단백질(예, 단백질 Y1, 단백질 Z3, 단백질 X2)를 포함한다(예를 들면, 단백질 X2가 디바이스 X 등에 의해 풀 3로 전달되거나 이에 기여함). 전술한 실시예는 세 개의 풀 사이에 연결 또는 결합된 세 개의 디바이스를 포함하나, 임의의 수의 디바이스가 임의의 방식 및 임의의 수의 풀 사이 조합으로 연결 또는 결합되고, 임의의 풀은 임의의 수 또는 디바이스의 조합으로부터 유래된 임의의 수의 단백질을 포함할 수 있다. 이 예의 단백질 및 풀은 도 25-30을 참조하여 전술한 것과 같다.
도 32는, 실시예에 따라, 플라스마 구성(예, 풀, 단백질, 및 슬로)이 사용되어 다양한 동작 프로그램이 디바이스에 의해 발생된 이벤트에 집합적으로 응답하고 이를 공유하도록 하기 위해 사용된 하나 이상의 디바이스에서 동작하는 다수의 디바이스 및 수많은 프로그램을 포함하는 프로세싱 환경에 대한 블록도이다. 이러한 시스템은 멀티-유저, 멀티-디바이스, 멀티-컴퓨터 인터렉티브 제어 시나리오 또는 구성에 대한 하나의 예이다. 더 구체적으로, 이러한 예에서, 인터렉티브 시스템은 다중 다바이스(예, 디바이스 A, B 등) 및 디바이스에 동작하는 다수의 프로그램(예, 약어 AA-AX, BA-BX 등)을 포함하고, 이는 플라스마 구성을 사용하여 동작 프로그램이 공유되고 이러한 입력 디바이스에 의해 발생된 이벤트에 집합적으로 응답하도록 한다.
이 예에서, 각각의 디바이스(예, 디바이스 A, B 등)는 프로그램(약어 AA-AX, BA-BX 등)으로부터 출력 또는 발생된 별개의 로 데이터를 플라스마 단백질으로 번역하고, 이러한 단백질을 플라스마 풀로 배치한다. 예를 들어, 프로그램 AX는 데이터 또는 출력을 발생하고 출력을 디바이스 A에 제공하며, 이어서 로 데이터를 단백질으로(예, 단백질 1A, 단백질 2A 등) 번역하고, 이러한 단백질을 풀에 배치한다. 또 다른 예에서, 프로그램 BC는 데이터를 발생하고, 데이터를 디바이스 B에 제공하며, 이어서 데이터를 단백질(예, 단백질 1B, 단백질 2B 등)으로 번역하며, 이러한 단백질을 풀에 배치한다.
각각의 단백질은 디스크립 리스트(이는 애플리케이션에 의해 등록되며, 프로그램 자체에 대한 정보를 식별하는 데이터 또는 출력을 특정함)를 포함한다. 가능한 경우에, 단백질 디스크립은 또한, 출력 이벤트 또는 동작에 대한 일반적인 의미론적 의미를 설명할 수 있다. 단백질의 데이터 페이로드(예, 인제스트)는 프로그램 이벤트에 대한 가용 스테이트 정보의 풀 세트를 포함한다.
전술한 단백질은 임의의 프로그램 또는 디바이스(프로그램 또는 디바이스의 유형에 상관없이 풀에 연결 또는 결합됨)에 의해 사용하기 위한 풀에서 이용될 수 있다. 결과적으로, 임의의 수의 컴퓨터에서 동작하는 임의의 수의 프로그램이 입력 풀로부터 이벤트 단백질을 추출할 수 있다. 이러한 디바이스들은 로컬 메모리 버스 또는 네트워크(풀로부터 단백질을 추출하기 위해 연결됨)에 참여할 있다. 이의 즉각적인 결과는 이벤트의 소스 및 고객의 곱이며, 따라서 디바이스는 하나의 개인에 의해 제어될 수 있고, 수 명의 개인에 의해 동시에 제어될 수도 있다(예, 플라스마-기반 입력 프레임워크는 다수의 동시 사용자를 지원함). 동시에 최종 이벤트 스트림은 차례로 다중 이벤트 고객에게 보인다.
예로서, 디바이스 C는 하나 이상의 단백질(예, 단백질 1A, 단백질 2A, 등)을 풀로부터 추출할 수 있다. 단백질 추출에 이어서, 단백질 데이터가 대응하는 사건의 프로세싱 시에, 디바이스 C는 단백질의 데이터를 사용할 수 있고, 단백질의 디스크립 및 인제스트의 슬로로부터 검색 또는 판독할 수 있다. 다른 예에서, 디바이스 B는 하나 이상의 단백질(예, 단백질 1C, 단백질 2A 등)을 풀로부터 추출할 수 있다. 단백질 추출에 이어서, 디바이스 B는 단백질 데이터가 대응하는 프로세싱 이벤트의 처리 시 단백질 데이터를 사용할 수 있다.
풀에 연결 및 결합된 디바이스 및/또는 프로그램은 단백질의 특정한 시퀀스를 검색하기 위한 풀에서 전방 및 후방으로 스킴(skim) 할 수 있다. 종종, 예를 들면, 프로그램을 특정한 패턴과 일치하는 단백질의 출현을 대기하도록 설정하고, 이어서 이러한 단백질이 특정한 다른 단백질과 결합하여 나타나는지 여부를 결정하기 위해 후방 스킴하는데 유용할 수 있다. 입력 풀 내의 저장된 이벤트 히스토리의 사용을 위한 설비는 종종 쓰기 상태 관리 코드를 불필요하게 만들거나, 현저하게 이러한 불필요한 코딩 패턴에 대한 의존성을 줄인다.
도 33은, 실시예에 따라, 플라스마 구성(예, 풀, 단백질 및 슬로)이 사용되어 다양한 동작 프로그램이 공유되고 디바이스에 의해 발생된 이벤트에 집합적으로 응답하도록 하는 하나 이상의 디바이스에서 동작하는 수많은 프로그램 및 다중 디바이스를 포함하는 프로세스 환경에 대한 블록도이다. 이러한 시스템은 멀티-유저, 멀티-디바이스, 멀티-컴퓨터 인터렉티브 제어 시나리오 또는 구성의 일 예이다. 더 구체적으로, 이 예에서, 인터렉티브 시스템은 다중 디바이스(디바이스 A 및 B에 각각 연결된 디바이스 X 및 Y)를 포함하고, 하나 이상의 컴퓨터에서 동작하는 복수의 프로그램(예, 약자 AA-AX, 약자 BA-BX 등)은 플라스마 구성(예, 풀, 단백질, 및 슬로)를 사용하여 동작 프로그램이 이러한 입력 장치에 의해 발생된 이벤트를 공유하고 집합적으로 응답하도록 한다.
이러한 예에서, 각각의 디바이스(예, 디바이스 A 및 B에 각각 연결된, 디바이스 X 및 Y)가 관리되고 및/또는 개별적인 디바이스(디바이스 A 및 B 등)에서 주관되는 하나이상의 프로그램과 관련하거나 그 에 따라 동작하도록 연결된다. 개별적인 디바이스는 디바이스(디바이스 X, A, Y, B 등) 하드웨어에 의해 발생된 별개의로 데이터를 플라스마 단백질으로 번역하고, 이러한 단백질을 플라스마 풀로 배치한다. 예를 들어, 디바이스 A에 주관하는 애플리케이션 AB와 관련하여 동작하는 디바이스 X는 로 데이터를 발생하고, 별개의 로 데이터를 단백질(예, 단백질 1A, 2A 등)으로 번역하며, 이러한 단백질을 풀로 배치한다. 다른 예에서, 디바이스 A에서 주관된 애플리케이션 AT에 관하여 동작하는 디바이스 X는 로 데이터를 발생하고, 구분된 로 데이터를 단백질(예, 단백질 1A, 2A 등)로 번역하고, 이러한 단백질을 풀로 배치한다. 또 다른 예에서, 디바이스 C에서 주관하는 애플리케이션 CD와 관련하여 동작하는 디바이스 Z는 로 데이터를 발생하고, 구분된 로 데이터를 단백질으로 번역하며(예, 단백질 1C, 2C 등), 그리고 이러한 단백질을 풀로 배치한다.
각각의 단백질은 디스크립트 리스트를 포함하며, 이 리스트는 입력에 의해 등록된 동작을 특정하고, 마찬가지로 디바이스 자체에 대한 정보를 식별한다. 가능한 경우에, 단백질은 디바이스 동작에 대한 일반적인 의미론적 의미에 속할 수 있다. 단백질의 데이터 페이로드(예, 인제스트)는 디바이스 이벤트에 대한 유용한 상태 정보의 풀 세트를 포함한다. 전술한 단백질은, 임의의 프로그램 또는 디바이스(풀에 연결 또는 결합됨)에 의해 사용하기 위한 풀에서, 프로그램 또는 디바이스의 타입에 상관없이 이용가능하다. 결과적으로, 임의의 수의 컴퓨터에서 동작하는 임의의 수의 프로그램이 입력 풀로부터 이벤트 단백질을 추출할 수 있다. 이러한 디바이스는 로컬 메모리 버스 또는 네트워크 연결을 통해, 풀로부터 단백질을 추출하기 위해, 풀에 참여할 수 있다. 이의 즉각적인 결과는 이벤트를 사용 또는 차단하는 것들로부터 프로세싱 이벤트를 생성할 책임이 있는 프로세스를 분리하는 유익한 가능성이다. 다른 결과는 이벤트의 소스 및 고객의 곱이며, 이에 따라 입력 디바이스가 한 사람에 의해 제어될 수 있고 또는 수 명의 사람에 의해 동시에 제어될 수 있다(예, 플라스마-베이스 입력 프레임워크는 많은 동시 사용자를 지원함), 동시에 최종 이벤트 스트림은 다중 이벤트 고객에게 차례로 보인다.
풀에 연결 또는 결합된 디바이스 및/또는 프로그램은 단백질의 특정한 시퀀스를 검색하는 풀에서 후방 및 전방 스킴될 수 있다. 종종, 예를 들면, 프로그램을 특정한 패턴과 일치하는 단백질의 출현을 대기하도록 설정하고, 이어서 이러한 단백질이 특정한 다른 단백질과 결합하여 나타나는지 여부를 결정하기 위해 후방 스킴하는데 유용할 수 있다. 입력 풀 내의 저장된 이벤트 히스토리의 사용을 위한 설비는 종종 쓰기 상태 관리 코드를 불필요하게 만들거나, 이러한 불필요한 코딩 패턴에 대한 의존성을 현저하게 줄인다.
도 34는 실시예에 따라, 플라스마 구성(예, 풀, 단백질 및 슬로)이 사용되어 다양한 동작 프로그램이 공유되고 디바이스에 의해 발생된 이벤트에 집합적으로 응답하도록 하는 하나 이상의 디바이스에서 동작하는 수많은 프로그램 및 다중 디바이스를 포함하는 프로세스 환경에 대한 블록도이다. 이러한 시스템은 멀티-유저, 멀티-디바이스, 멀티-컴퓨터 인터렉티브 제어 시나리오 또는 구성의 일 예이다. 더 구체적으로, 이 예에서, 인터렉티브 시스템은 다중 입력 디바이스(디바이스 A, B, BA, 및 BB 등)를 포함하고, 하나 이상의 컴퓨터(예, 디바이스 A, B 등)에서 동작하는 복수의 프로그램(도시되지 않음)은 플라스마 구성(예, 풀, 단백질, 및 슬로)을 사용하여 동작 프로그램이 이러한 입력 장치에 의해 발생된 이벤트를 공유하고 집합적으로 응답하도록 한다.
이러한 예에서, 각각의 입력 디바이스(예, 디바이스 A, B, BA, 및 BB 등)가 개별적인 디바이스(디바이스 A 및 B 등)에서 주관되는 소프트웨어 드라이버 프로그램과 관리되고, 이러한 디바이스는 입력 디바이스 하드웨어에 의해 발생된 별개의로 데이터를 플라스마 단백질으로 번역하고, 이러한 단백질을 플라스마 풀로 배치한다. 예를 들어, 입력 디바이스 A는 로 데이터를 발생하고, 로 데이터를 디바이스 A로 제공하며, 다음으로 구분된 로 데이터를 단백질(단백질 1A , 2A 등)으로 번역하고, 이러한 단백질을 풀에 배치한다. 다른 예에서, 입력 디바이스 BB는 로 데이터를 발생하고, 로 데이터를 디바이스 B로 제공하며, 차례로, 로 데이터를 단백질(예, 단백질 1B, 3B 등)로 번역하고, 이러한 단백질을 풀로 배치한다.
각각의 단백질은 입력 디바이스에 의해 등록된 동작을 특정하는 디스크립 리스트를 포함하고, 마찬가지로, 디바이스 자체에 대한 정보를 식별한다. 가능한 경우에, 단백질 디스크립은 또한 디바이스 동작에 대한 일반적인 의미에 속할 수 있다. 단백질의 데이터 페이로드(예, 인제스트)는 디바이스 이벤트에 대한 유용한 상태 정보의 풀 세트를 운반한다.
설명을 위해, 두 개의 전형적인 이벤트에 대한 예시적인 단백질이 이러한 시스템에 존재한다. 단백질은 텍스트로 표현되나, 실제 구현에서, 이러한 단백질의 구성 일부는 유형화된 데이터 번들(예, 슬로)이다. g-스피크 “하나의 손가락 클릭) 포즈를 설명하는 단백질(관련 애플리케이션으로 표현됨)이 다음과 같다:
추가 실시예로서, 마우스 클릭을 표현하는 단백질은 다음과 같다.
전술한 샘플 단백질의 중 하나 또는 모두는 호스트 디바이스의 참여 프로그램이 이의 코드의 특정부분을 동작시키도록 한다. 이러한 프로그램은 일반적인 의미론적 라벨에 관심을 둘 수 있다: 모든 “포인트”의 가장 일반적인 형 또는 더 구체적인 쌍 “인게이지, 원”. 또는 이들은 정확한 디바이스에 의해서만 발생될 수 있는 이벤트를 찾을 수 있다:“원-핑거-인게이지” 또는 단일 수집 객체“핸드-id-23".
전술한 단백질은, 풀에 연결 또는 결합된 임의의 프로그램에 또는 디바이스에 의해 사용하기 위한 풀에서, 프로그램 또는 디바이스의 유형에 상관없이 이용가능하다. 결과적으로, 임의의 수의 컴퓨터에서 동작하는 임의의 수의 프로그램은, 입력 풀로부터 이벤트 단백질을 추출할 수 있다. 이러한 디바이스 필요성은, 풀로부터 단백질을 추출하기 위해, 로컬 메모리 버스 또는 네트워크 연결을 통해 풀에 참여할 수 있다. 이의 즉각적인 결과는 이벤트를 사용 또는 차단하는 것들로부터 입력 이벤트를 생성할 책임이 있는 프로세스를 분리하는 유익한 가능성이다. 다른 결과는 이벤트의 소스 및 고객의 곱이며, 이에 따라 입력 디바이스가 한 사람에 의해 제어될 수 있고 또는 수 명의 사람에 의해 동시에 제어될 수 있다(예, 플라스마-베이스 입력 프레임워크는 많은 동시 사용자를 지원함), 동시에 최종 이벤트 스트림은 다중 이벤트 고객에게 차례로 보인다.
예 또는 단백질 사용으로서, 디바이스 C는 풀로부터 하나 이상의 단백질(예, 단백질 1B 등)을 추출할 수 있다. 단백질 추출에 이어서, 디바이스 C는 단백질의 데이터를 사용하고, 단백질 데이터가 대응하는 입력 디바이스 CA 및 CC의 입렵 이벤트의 처리 시 단백질의 디스크립 및 인제스트의 슬로부터 검색 또는 판독한다. 다른 예로서, 디바이스 A는 풀로부터 하나 이상의 단백질(예, 단백질 1B 등)을 추출할 수 있다. 단백질 추출에 이어서, 디바이스 A는 단백질 데이터가 대응하는 입력 디바이스 A의 입력 이벤트 처리 시, 단백질의 데이터를 사용할 수 있다.
풀에 연결 또는 결합된 디바이스 및/또는 프로그램은 단백질의 특정한 시퀀스를 검색하는 풀에서 후방 및 전방 스킴될 수 있다. 종종, 예를 들면, 프로그램을 특정한 패턴과 일치하는 단백질의 출현을 대기하도록 설정하고, 이어서 이러한 단백질이 특정한 다른 단백질과 결합하여 나타나는지 여부를 결정하기 위해 후방 스킴하는데 유용할 수 있다. 입력 풀 내의 저장된 이벤트 히스토리의 사용을 위한 설비는 종종 쓰기 상태 관리 코드를 불필요하게 만들거나, 이러한 불필요한 코딩 패턴에 대한 의존성을 현저하게 줄인다.
내용 중에 설명된 시스템의 실시예에 사용되는 입력 디바이스의 예는, 몇몇으로 네임되는 제스처 입력 센서, 키보드, 마이스, 적외선 원격 제어(가령 고객의 전자장치에서 사용되는 것) 및 태스크-지향 촉감 매체 객체를 포함한다.
도 35는, 실시예에 따라, 플라스마 구성(예, 풀, 단백질 및 슬로)이 사용되어 다양한 동작 프로그램이 공유되고 디바이스에 의해 발생된 이벤트에 집합적으로 응답하도록 하는 하나 이상의 디바이스에서 동작하는 수많은 프로그램 및 다중 디바이스를 포함하는 프로세스 환경에 대한 블록도이다. 이러한 시스템은 다중 동작 프로그램(예, 그래픽 A-E) 및 하나 이상의 디스플레이 디바이스(도시되지 않음)을 포함하며, 여기서 프로그램 일부 또는 전부의 그래픽 출력은, 플라스마 구성(예, 풀, 단백질, 및 슬로)을 사용하여 조정된 방식으로 다른 프로그램에서 사용되도록 만들어져, 동작 프로그램이 디바이스에 의해 발생된 그래픽 이벤트를 공유하고 집합적으로 응답하도록 한다.
컴퓨터 프로그램이 다른 프로그램에 의해 발생된 그래픽을 디스플레이 하도록 종종 사용된다. 수 개의 공통 예는 비디오 회의 애플리케이션, 네트워크-기반 슬라드쇼 및 데모 프로그램, 및 윈도우 관리자를 포함한다. 이러한 구성하에서, 풀은 플라스마 라이브러리로서 일반화된 프레임워크를 구현하도록 사용된다. 프레임워크는 비디오, 네트워크 애플리케이션 고유, 및 윈도우 관리를 인캡슐화하고, 프로그래머가 이러한 프로그램의 현 버전에서 공통적으로 이용되지 않는 복수의 특징부를 부가할 수 있게 한다.
플라스마 합성 환경에서 동작하는 프로그램(예, 그래픽 A-E)은 풀에 대한 결합 및/또는 연결을 통해 좌표 풀에 참여한다. 각각의 프로그램은 다양한 종류의 그래픽 소스의 이용가능성을 표시하기 위해 그 풀 내에 단백질을 배치할 수 있다. 그래픽을 디스플레이 하기 위해 사용할 수 있는 프로그램은 또한 이들의 디스플레이 기능, 보안성, 사용자 프로파일 및 물리적 및 네트워크 위치를 표시하도록 단백질을 배치한다.
또한, 그래픽 데이터는 풀을 통해 전송될 수 있고, 디스플레이 프로그램이 다른 종류(예, RTSP 스트림)의 네트워크 자원으로 포인팅될 수 있다. 여기에 사용된 것과 같은 파스 “그래픽 데이터”는 연속적으로 놓인 다양한 다른 표현을 나타낸다: 그래픽 데이터의 예는 문자 예(가령, ‘이미지’ 또는 픽셀 블록), 절차 예(예, 전형적인 오픈GL 파이프라인의 아래로 흐르는 것과 같은 ‘드로잉’ 디렉티브의 시퀀스), 및 기술적인 예(가령, 기하학적 변환, 크리핑 및 결합 동작을 이용하여 다른 그래픽 구성을 조합하는 명령)를 포함하나, 이에 한정되지는 않는다.
국지 기계에서 그래픽 데이터는 플랫폼-특이적 디스플레이 드라이버 최적화를 통하여 전달될 수 있다. 그래픽이 풀을 통해 전달되지 않을 때에도, 종종 주기적인 스크린-포착은 동위 풀에서 보관될 것이고, 따라서 더욱 내밀한 공급원에 대한 직접적인 접근이 없는 고객은 여전히 디스플레이 폴-백 (fall-back) 그래픽을 전시할 수 있다.
본 명세서에 기술된 시스템의 한 가지 이점은 대부분의 메시지 전달 프레임워크와 네트워크 프로토콜과 달리, 풀이 데이터의 상당한 버퍼를 유지한다는 것이다. 따라서 프로그램은 풀 내로 되감겨지고 접근과 이용 패턴 (동위 풀의 경우에)을 찾거나, 또는 이전의 그래픽 프레임 (그래픽 풀의 경우에)을 뽑아낼 수 있다.
도 36은 또 다른 대안적 구체예 하에, 하나 이상의 장치를 작동시키는 다수의 프로그램 간에 결합된 복수 장치를 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 작동 프로그램의 상태 검사, 가시화, 그리고 벌레잡기를 가능하게 하는데 이용된다. 이러한 시스템은 복수 장치 (가령, 장치 A, 장치 B 등) 상에서 복수 작동 프로그램 (가령, 프로그램 P-A, 프로그램 P-B 등)을 포함하는 시스템의 한 가지 실례일 뿐이고, 여기서 일부 프로그램은 풀을 이용하여 또는 풀을 통하여 다른 프로그램의 내부 상태에 접근한다.
대부분의 상호작용 컴퓨터 시스템은 단일 기계 또는 복수 기계 상에서 서로를 따라 작동하고, 그리고 네트워크를 교차하여 상호작용하는 다수의 프로그램을 포함한다. 다중-프로그램 시스템은 배열하고, 분석하고, 그리고 벌레잡기가 어려울 수 있는데, 그 이유는 실시간 데이터가 각 공정 내에 숨겨져 있고 접근이 어렵기 때문이다. 본 명세서에서 기술된 구체예의 일반화된 프레임워크와 Plasma 구조체는 프로그램 동작을 가능하게 하여 그들의 많은 데이터가 풀을 통해 가용하도록 하고, 따라서 다른 프로그램이 그들의 상태를 검사할 수 있다. 이러한 프레임워크는 전통적인 벌레잡기 프로그램보다 더욱 유연한 벌레잡기 도구, 정교한 시스템 유지 툴, 그리고 인간 작업자가 프로그램 또는 프로그램들이 통과하는 일련의 상태를 상세하게 분석할 수 있도록 배열된 가시화 장치를 가능하게 한다.
도 36을 참조하면, 이러한 프레임워크를 작동시키는 프로그램 (가령, 프로그램 P-A, 프로그램 P-B 등)은 프로그램 출발 시에 공정 풀을 산출한다. 이러한 풀은 시스템 연감에 등록되고, 그리고 보안과 접근 제어가 적용된다. 더욱 구체적으로, 각 장치 (가령, 장치 A, B 등)는 개별 장치 상에서 작동하는 프로그램 (가령, 프로그램 P-A, 프로그램 P-B 등)에 의해 산출된 분리된 원 데이터, 또는 이들 프로그램으로부터 출력을 Plasma 단백질으로 해석하고 이들 단백질을 Plasma 풀로 넘겨준다. 가령, 프로그램 P-A는 데이터 또는 출력을 산출하고 장치 A에 상기 출력을 제공하고, 이는 차례로, 원 데이터를 단백질 (가령, 단백질 1A, 단백질 2A, 단백질 3A 등)으로 해석하고 이들 단백질을 풀 A로 넘겨준다. 다른 실례로서, 프로그램 P-B는 데이터를 산출하고 장치 B에 데이터를 제공하고, 이는 차례로, 데이터를 단백질 (가령, 단백질 1B-4B 등)으로 해석하고 이들 단백질을 풀로 넘겨준다.
프로그램의 수명의 지속 동안, 충분한 접근 허용을 갖는 다른 프로그램이 풀에 부착되고 상기 프로그램이 넘겨주는 단백질을 판독할 수 있다; 이는 기본적인 검사 양식을 대표하고, 그리고 개념적으로 "일원" 또는 "판독-유일" 제안이다: 프로그램 P-A에서 이해 관계가 있는 존재는 이의 공정 풀에서 P-A에 의해 넘겨진 상태 정보의 흐름을 검사한다. 가령, 장치 C 하에 작동하는 검사 프로그램 또는 애플리케이션은 풀로부터 하나 이상의 단백질 (가령, 단백질 1A, 단백질 2A 등)을 끌어낼 수 있다. 단백질 추출 이후에, 장치 C는 프로그램 P-A의 내부 상태에 접근하고, 해석하고, 그리고 검사하기 위하여 단백질의 디스크립와 인제스트의 슬라우로부터 회수되거나 판독된 단백질의 데이터를 이용할 수 있다.
하지만, Plasma 시스템이 효과적인 상태 전달 도표일 뿐만 아니라 전방향성 메시지 환경임을 회상하면, 여러 추가적인 모드가 프로그램-대-프로그램 상태 검사를 뒷받침한다. 승인된 검사 프로그램은 자체로써, 단백질을 프로그램 P의 공정 풀로 넘겨주고 상기 공정 풀에서 산출되고 배치된 상태 정보의 특징에 영향을 주거나 제어할 수 있다 (이로부터, 프로그램 P는 쓰고 읽는다).
도 37은 추가의 대안적 구체예 하에, 하나 이상의 장치를 작동시키는 다수의 프로그램 간에 결합된 복수 장치를 비롯한 처리 환경의 블록 다이어그램이고, 여기서 Plasma 구조체 (즉, 풀, 단백질, 그리고 슬라우)는 상기 공정 풀에서 산출되고 배치된 상태 정보의 특징에 영향을 주거나 이러한 정보를 제어할 수 있도록 하는데 이용된다. 이러한 시스템 실례에서, 장치 C의 검사 프로그램은 예로써, 프로그램 (가령, 프로그램 P-A, 프로그램 P-B 등)이 1회 동안, 또는 특정 지속 기간 동안 풀 내로 정상 이상의 상태를 버리도록 요구할 수 있다. 또는, 다음 ‘수준’의 디버그 소통을 미리 파악함으로써, 이해 관계가 있는 프로그램은 프로그램 (가령, 프로그램 P-A, 프로그램 P-B 등)이 디버그 풀을 통해 개별적으로 상호작용할 수 있고 가용한 실행시간 환경에서 현존하는 물체를 기재하는 단백질을 방출하도록 요구할 수 있다. 이렇게 정보가 제공되면, 이해 관계가 있는 프로그램은 프로그램 실행시간 동안 물체 사이에서 개체에 ‘접근하고’, 특정 물체 단독이 차지하고 반응하게 되는 공정 풀에 단백질을 배치하다. 이해 관계가 있는 프로그램은 예로써, 모든 성분 변수의 즉시 값을 기술하는 보고 단백질을 방출하도록 물체에 요구할 수도 있다. 더욱 중요하게는, 이해 관계가 있는 프로그램은 다른 단백질을 통해, 물체가 그의 행동 또는 그의 변수의 값을 변화시키도록 지시할 수 있다.
좀더 특별하게는, 본 실시예에서, 장치 C의 검사 애플리케이션은 풀(pool)에 결합된 각 장치(가령, 장치 A, 장치 B, 등)에 의해 추출되는 대상 목록(가령, “리퀘스트-대상 목록 "Request-Object List")”에 대한 리퀴스트를 풀에 배열한다. 리퀘스트에 반응하여, 각 장치 (가령, 장치 A, 장치 B, 등 )는 디버그 풀(debug pool)을 통하여 개별적으로 상호작용을 할 수 있고, 이에 이용가능한 런타임 환경에 남아 있는 대상들을 열거한 단백질(가령, 단백질 1A, 1B 등)을 풀에 배열한다.
따라서, 장치로부터 목록을 통하여 알려진, 그리고 대상 목록에 반응하여, 장치 C의 검사 애플리케이션은 프로그램 런타임에서 대상들중에서 개별적으로 어드레스하여, 특정 대상만을 가져오고, 이에 반응하는 단백질을 프로세스 풀에 배열한다. 예를 들면, 장치 C의 검사 애플리케이션은 리퀘스트 단백질 (가령, 단백질 "리퀘스트 리포트 P-A-O", "리퀘스트 리포트 P-B-O")을 풀에 배열하여, 대상 (가령, 대상 P-A-O, 대상 P-B-O, 각각)이 모든 변동가능한 성분들의 순간적 값(instantaneous values)을 설명하는 리포트 단백질 (가령, 단백질 2A, 단백질 2B, 등.)을 방출한다. 각 대상 (가령, 대상 P-A-O, 대상 P-B-O)은 이의 리퀘스트 (가령, 단백질 "리퀘스트 리포트 P-A-O", "리퀘스트 리포트 P-B-O", 각각)을 추출하고, 그리고 응답으로, 단백질을 리퀘스트된 리포트 (가령, 단백질 2A, 단백질 2B, 각각)를 포함하는 풀에 배열한다. 그 다음, 장치 C는 다양한 리포트 단백질(가령, 단백질 2A, 단백질 2B, 등)을 추출하고, 리포트의 내용에 적절하게 후속적인 프로세싱 행위를 취한다.
이와 같은 방식으로, 교환 매체(interchange medium)로써 플라즈마(Plasma)의 이용은 궁극적으로 디버깅, 프로세스 제어, 및 프로그램-대-프로그램 소통 및 공동작용(coordination) 사이에 구별을 손상시키는 경향이 있다.
궁극적으로, 일반화된 플라스마 프레임워크는 부정확하게 결합되는 방식(loosely-coupled fashion)으로 고안된 시각화 및 분석 프로그램(visualization and analysis programs)을 허용한다. 예를 들면, 메모리 엑세스 패턴을 다스플레이하는 시각화 도구는 이것의 기초적인 메모리 판독 및 기록을 풀에 출력시키는 임의의 프로그램과 함께 사용되어야 한다. 분석을 실행하는 프로그램은 시각화 도구의 존재 또는 디자인을 알 필요가 없으며, 이의 역도 마찬가지다.
상기에서 설명된 방식으로 풀의 이용은 시스템 수행에 과도하게 영향을 주지 않는다. 예를 들면, 구체예는 풀에서 초당 수십만개 단백질의 예치를 허용하여, 합당한 심지어 상대적으로 다변적인 데이터 출력도 대부분 프로그램의 반응 또는 쌍방향 특성을 눈에 띄게 방해하지 않는다.
여기에서 설명된 구체예는 데이터 공간을 통하여 네비게이팅(navigating) 방법을 포함하는데, 이 방법은 탐지기(detector)를 통하여 제공받은 몸짓(gesture) 데이터로부터 신체의 제스처을 탐지하고, 이때 제스처 데이터는 그때, 그 공간에서 몸의 즉각적인 상태의 절대적인 3차원 공간 위치 데이터가 되며, 탐지는 제스처 데이터 만을 이용하여 제스처를 확인하고; 제스처를 제스처 신호로 해석하고; 그리고 제스처 신호에 반응하여 데이터 공간을 통하여 네비게이팅하는 것으로 구성되며, 이때, 데이터 공간은 물리적 공간에 제기된 데이터세트를 포함하는 데이터-표시 공간이 된다.
구체예의 방법은 데이터 세트의 파라미터-제어 축과 물리적 공간 치수(dimension)을 배열하는 것을 포함한다.
구체예의 치수는 깊이 치수다.
구체예의 치수는 수평 치수다
구체예의 치수는 수직 치수다.
구체예의 치수는 측면 치수다.
구체예의 네비게이션은 파라미터-제어 축을 따라 데이터-공간 해석을 얻기 위하여 치수를 따라 움직임을 포함한다.
구체예의 항해는 데이터 공간의 양자화된(quantized) 파라미터 공간을 네비게이션하는 것을 포함한다.
구체예의 탐지는 신체의 발달(evolving) 자세를 탐지하는 것을 포함한다.
구체예의 탐지는 신체의 발달 방향(evolving orientation)을 탐지하는 것을 포함한다.
구체예의 탐지는 신체의 발달 포즈의 탐지를 포함하는데, 이때 포즈는 신체의 최소한 한 가지 다른 부위에 대해 신체의 한 부분의 기하학적 전위(disposition)가 된다.
구체예의 탐지는 신체의 발달 움직임을 탐지하는 것을 포함한다.
구체예의 탐지는 신체의 발달 자체, 신체의 방향, 신체의 포즈 및 신체의 움직임중 최소한 하나를 탐지하는 것을 포함한다.
구체예의 방법은 제스처를 일련의 제스처 이벤트로 분석하는 것을 포함한다.
구체예의 방법은 제스처를 확인하는 것을 포함한다.
구체예의 제스처의 확인은 신체의 발달 자세, 신체의 배향, 신체 포즈 및 신체 움직임중 최소한 하나를 확인하는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 순서를 표시를 만드는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 표시를 데이터 공간에 결합된 최소한 하나의 제어 성분에 배포하는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 표시를 데이터 공간의 그래픽적 묘사와 함께 동시화(synchronizing)시키는 것을 포함한다.
구체예의 방법은 데이터 공간을 통하여 제스처 이벤트의 표시와 네비게이션의 그래픽적 묘사를 동시화시키는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 표시를 데이터 공간의 청각적 표현과 동시화시키는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 표시를 데이터 공간을 통하여 네비게이션의 청각적 묘사와 함께 동시화시키는 것을 포함한다.
구체예의 데이터세트는 공간적 정보를 나타낸다.
구체예의 데이터세트는 현상, 이벤트, 측량, 관찰, 및 구조의 공간적 정보중 최소한 하나의 공간적 정보를 나타낸다.
구체예의 데이터세트는 비-공간적 정보를 나타낸다.
구체예의 제스처는 선형 공간적 동작을 나타낸다.
구체예의 네비게이션은 데이터 공간에 접하는 선형을 포함한다.
구체예의 방법은 데이터세트를 데이터 공간의 복수 영역의 그래픽적 묘사인 복수의 데이터 프레임으로 제공하는 것을 포함한다. 구체예의 방법은 디스플레이상에 각 데이터 프레임을 시각 프레임으로 디스플레이하는 것을 포함한다.
구체예의 데이터 프레임의 크기 및 화상의 가로 세로 비는 디스플레이의 크기 및 화상의 가로 세로 비와 일치한다.
구체예의 데이터 프레임의 중앙 및 표준 벡터는 디스플레이의 중앙 및 표준 벡터와 일치한다.
구체예의 데이터 프레임의 위치 및 배향은 디스플레이의 위치 및 배양과 일치한다.
각 구체예의 데이터 프레임은 데이터세트의 요소를 나타내는 그래픽적 데이터 요소를 포함한다.
구체예의 그래픽적 데이터 요소들은 고정적(static) 요소들이다.
구체예의 그래픽적 데이터 요소들은 동적 요소들이다.
구체예의 데이터 프레임은 2-차원 구성이다.
구체예의 데이터 프레임은 3차원 그래픽에 상주하여 신체를 포함하는 국소 환경을 설명하는 좌표와 일치하는 좌표 시스템을 가지는 환경을 제공한다.
구체예의의 데이터 공간을 통한 네비게이션은 복수의 데이터 프레임을 통한 네비게이션을 포함한다.
구체예의의 방법은 신체의 제1 포즈를 탐지하는 것을 포함한다.
구체예의 방법은 제1 포즈의 탐지에 반응하여 푸쉬백 상호작용을 활성화시키는 것을 포함한다.
구체예의 방법은 첫 번째 포즈가 기록된 첫 번째 위치를 기록하는 것을 포함하며, 이때 첫 번째 위치는 3차원 손의 위치가 된다. 구체예의 방법은 첫 번째 위치를 원점(origin)으로 설정하고, 이때 연속적으로 탐지되는 신체의 위치는 원점에 대해 상대적 오프셋(offset)으로 보고된다.
구체예의 방법은 신체의 움직임을 탐지함으로써 제스처를 탐지하는 것을 포함한다.
구체예의 탐지는 신체의 제1 움직임을 탐지하는 것을 포함하고, 이때 제1 움직임은 디스플레이 쪽으로 축을 따라서 움직임이 되며, 이때 축은 디스플레이의 시계(view) 표면에 대해 표준 축으로 정의된다.
신체의 제 1 움직임에 반응하여, 구체예의 네비게이션은 축을 따라 복수의 데이터 프레임을 옮겨놓는 것을 포함하고, 이때 데이터 프레임이 놓이는 평면보다 많이 시각적으로 가시화되며, 디스플레이 상에 제시되는 제 1 가시 프레임은 디스플레이로부터 희미해지고, 제1 데이터 프레임의 이웃 데이터 프레임이 시각적으로 나타나게 된다.
신체의 제 1 움직임에 반응하여, 구체예의 네비게이션은 현재 데이터 프레임으로부터 축을 따라 다수의 데이터 프레임을 옮겨놓는 것을 포함하고, 이때 데이터 프레임은 아래로 해석되고, 현재 데이터 프레임은 디스플레이상에 현재 제공되는 데이터 프레임이다.
구체예의 각 데이터 프레임의 출현은 바꾸어 옮겨지는 것에 반응하여 다양하며, 이때 현재 데이터 프레임 아래 위치한 데이터 프레임은 상대적으로 높은 정도의 투명도 및 흐림을 갖고, 현재 데이터 프레임위에 위치한 데이터 프레임은 상대적으로 낮은 투명도와 흐림을 갖고, 가시화된다.
구체예의 탐지는 신체의 제 2 움직임의 탐지를 포함하며, 제2 움직임은 디스플레이로부터 떨어진 축을 따른 움직임이다.
신체의 제 2 움직임에 반응하여, 구체예의 네비게이션은 축을 따라 복수의 데이터 프레임을 옮겨 놓는 것을 포함하는데, 데이터 프레임이 놓이는 평면보다 작게 가시화되고, 디스플레이 상에 제공되는 제 1 가시 프레임은 디스플레이로부터 아래로 향하고, 그리고 제 1 데이터 프레임의 이웃하는 데이터 프레임은 덜 가시화된다.
신체의 제 2 움직임에 반응하여, 구체예의 네비게이션은 현재 데이터 프레임으로부터 축을 따라 다수의 데이터 프레임을 옮겨놓는 것을 포함하고, 이때 데이터 프레임은 상향으로 해석되고, 현재 데이터 프레임은 디스플레이상에 현재 제공되는 데이터 프레임이다.
구체예의 각 데이터 프레임의 출현은 바꾸어 옮겨지는 것에 반응하여 다양하며, 이때 현재 데이터 프레임 위에 위치한 데이터 프레임은 상대적으로 높은 정도의 투명도 및 흐림을 갖고, 현재 데이터 프레임은 가시적으로부터 변천하고, 투명도 및 흐림 정도를 갖기 시작하고, 이때 현재 데이터 프레임 아래에 위치한 데이터 프레임은 상대적으로 더 낮은 투명도와 흐림을 갖고, 가시화되기 시작된다.
구체예의 탐지는 신체의 제 3 움직임의 탐지를 포함하며, 제3 움직임은 디스플레이의 시계 표면에 대해 평행한 평면에서의 움직임이다.
신체의 제3 움직임에 반응하여, 구체예의 네비게이션은 제3 움직임에 상응하는 방향으로 복수의 데이터 프레임을 옮겨놓는 것을 포함한다.
디스플레이상에 제공되는 구체예의 현재 데이터 프레임은 한 방향으로 슬라이드하고, 현재 데이터 프레임에 인접한 데이터 프레임은 이 방향에 반대되는 방향으로 디스플레이의 측면으로부터 시계로 슬라이드하고, 이때 현재 데이터 프레임은 디스플레이상에 제시되는 현재 데이터 프레임이다.
구체예의 네비게이션은 신체의 움직임에 직접적으로 반응하여 복수의 데이터 프레임의 이동을 지속적으로 업데이트하는 것을 포함한다.
구체예의 방법은 신체의 제2 포즈를 탐지하는 것을 포함한다.
구체예의 방법은 제 2 포즈의 탐지에 반응하여 푸시백 상호작용을 종료하는 것을 포함하는데, 이때 종료는 디스플레이와 공동평면상에 복수의 데이터 프레임의 데이터 프레임을 전시하는 것을 포함한다.
구체예의 방법은 제스처 동안 신체의 이동의 물리적 거리의 메핑(mapping)과, 네비게이션 동안 데이터 공간에서 연속 지점 사이에 로직(logical) 거리를 메핑하는 것을 포함하는데, 메핑은 데이터 공간에서 복수의 데이터 프레임의 상대적인 이동과 각 분리된 데이터 프레임의 출현중 적어도 하나를 조절한다.
구체예의 방법은 활동 존과 비활동 존을 포함하는 제스처 상호작용 공간을 형성하는 것을 포함하며, 이때 활동 존은 디스플레이에 인접하며, 그리고 비활동 존은 활동 존에 인접해있다.
제스처 신호에 반응하여 데이터 공간을 통하여 구체예의 네비게이션은 활동 영역에서 제스처가 탐지될 때 제스처에 반응하여 활성화된다.
구체예의 방법은 디스플레이상에 제시되는 피드백 표시기(indicator)를 포함한다.
구체예의 피드백 표시기는 신체가 활동 존 및 비활동 존 중 하나에 있다는 것을 나타내는 피드백을 표시한다.
구체예의의 피드백 표시기는 원점으로부터 신체의 물리적 오프셋을 나타내는 피드백을 표시한다.
구체예의 탐지는 신체의 위치를 탐지하고, 신체의 방향을 탐지하고, 그리고 신체의 움직임을 탐지하는 것중 적어도 하나를 포함한다.
구체예의 방법은 제스처를 확인하는 것을 포함하는데, 이때 확인은 신체의 일부분의 포즈, 및 배향을 확인하는 것을 포함한다.
구체예의 탐지는 신체의 제1 부속물 세트와 제2 부속물 세트중 최소한 하나를 탐지하는 것을 포함한다.
구체예의 탐지는 신체에 결합된 최소한 하나의 테그의 위치를 동적으로 탐지하는 것을 포함한다.
구체예의 탐지는 신체에 결합된 테그 세트의 위치를 탐지하는 것을 포함한다.
구체예의 테그 세트에서 각 테그는 패턴을 포함하는데, 테그 세트의 각 테그에서 각 패턴은 복수의 테그에 있는 임의의 나머지 테그의 임의의 패턴과는 다르다.
구체예의 탐지는 신체상의 마커 및 마커의 위치를 동적으로 탐지하는 것을 포함한다.
구체예의 탐지는 신체에 결합된 마커 세트의 위치를 탐지하는 것을 포함한다.
구체예의 마커 세트는 신체 상에 복수의 패턴을 형성한다.
구체예의의 탐지는 각 부속물에 결합된 마크 세트를 이용하여 신체의 복수의 부속물의 위치를 탐지하는 것을 포함한다.
구체예의 해석은 제스처의 정보를 제스처 표시로 해석하는 것을 포함한다.
구체예의 제스처 표기는 제스처 기호를 나타내고, 그리고 제스처 신호는 제스처 기호의 전달을 포함한다.
구체예의 제스처 기호는 신체의 운동학적 연결의 즉각적인 포스 상태를 문자 형태로 나타낸다.
구체예의 제스처 기호는 신체의 운동학적 연결의 배향을 문자 형태로 나타낸다.
구체예의 제스처 기호는 신체의 운동학적 연결의 배향 조합을 문자 형태로 나타낸다.
구체예의 제스처 기호는 신체의 운동학적 연결 상태를 나타내는 일련의 문자를 포함한다.
구체예의의 운동학적 연결은 신체의 최소한 하나의 제1 부속물이다.
구체예의 방법은 문자열에서 제2 부속물에 각 위치를 할당하는 것을 포함하고, 두 번째 부속물은 제 1 부속물에 연결되어 있다.
구체예의 방법은 복수의 위치는 좌표 원점에 대해 정해진다.
구체예의 방법은 절대적인 위치, 공간에서 배량, 전체적인 위치 및 신체의 방향에 무관하게 신체에 대해 고정된 위치 및 방향, 그리고 신체의 움직임에 반응하여 쌍방향으로 구성된 군에서 선택된 위치를 이용하여 좌표 원점을 정하는 것을 포함한다.
구체예의 방법은 제1 부속물의 다수의 각 배향에 대해 다수의 문자를 할당하는 것을 포함한다.
구체예의 탐지는 신체의 외삽된 위치가 가상 공간을 교차할 때 탐지되는 것을 포함하고, 이때 가상 공간은 컴퓨터에 결합된 디스플레이 장치에 묘사된 공간을 포함한다.
구체예의 방법은 외삽된 자세가 가상 대상을 교차할 때 가상 공간에서 가상 대상을 조절하는 것을 포함한다.
구체예의 제어는 가상 공간에서 외삽된 위치에 반응하여 가상 공간에서 가상 대상의 위치를 조절하는 것을 포함한다.
구체예의 제어는 제스처에 반응하여 가상 공간에서 가상 대상의 자세를 조절하는 것을 포함한다.
구체예의 방법은 가상 공간과 물리적 공간 사이에서 일치가 되도록 탐지 및 제어의 크기 조정을 조절하는 것을 포함하는데, 이때 가상 공간은 디스플레이상에 묘사된 공간을 포함하며, 이때 물리적 공간은 신체에 의해 방해되는 공간을 포함한다.
구체예의 방법은 물리적 공간에서 최소한 하나의 물리적 대상의 움직임에 반응하여 가상 공간에서 최소한 하나의 가상 대상을 조절하는 것을 포함한다.
구체예의 방법은 신체를 이미징 시스템으로 이미지화하는 것을 포함한다.
구체예의 이미징은 신체의 등위상면(wavefront) 암호화된 이미지를 생성시키는 것을 포함한다.
구체예의 제스처 데이터는 이미징 시스템의 필드 깊이 내에 신체의 포커스-분할된 데이터(focus-resolved data)를 포함한다.
구체예의 방법은 이미징 시스템에 의해 모아진 이미지를 암호화하여 생성된 중간 이미지를 포함한다.
구체예의 중간 이미지들은 흐리다.
구체예의 중간 이미지들은 신체 및 초점이 흐린 이탈을 포함하는 이미징 시스템의 복수의 광학 탐지기중 최소한 하나에서 변화에 둔감하다.
구체예의 제스처 데이터는 필드의 깊이내에 신체의 포커스-분할된 범위를 포함한다.
필드의 깊이내에 신체의 포커스-분할된 범위 데이터는 이미징 시스템의 출력으로부터 유도된다.
구체예의 제스처 데이터는 필드의 깊이내에 신체의 포커스-분할된 위치 데이터를 포함한다.
필드의 깊이내에 신체의 포커스-분할된 위치 데이터는 이미징 시스템의 출력으로부터 유래된다.
구체예의 이미징 시스템은 복수의 탐지기를 포함한다.
구체예의 최소한 두 개의 탐지기는 광학적 요소를 암호화하는 등위상면을 포함하는 등위상면 코딩된 카메라다.
구체예의 최소한 두 개의 광학적 탐지기는 이미징의 포커스의 깊이를 증가시키는 페이즈 마스크를 포함한다.
구체예의 방법은 신체와 이미징 시스템 사이에 거리에 대해 불변하는 조절 전달 기능(modulation transfer function) 및 지점 스프레드 기능(point spread functions)을 생성하는 것을 포함한다.
구체예의 방법은 흐린 영상에 대해 불변하는 조절 전달 기능 및 지점 스프레드 기능을 생성시키는 것을 포함한다.
여기에서 설명된 구체예들은 시스템을 포함하는데, 이 시스템은 신체에 의해 만들어지는 제스처를 나타내는 제스처 데이터를 받는 탐지기; 그리고 탐지기에 결합된 프로세서를 포함하고, 이때 프로세서는 제스처 데이터로부터 제스처를 자동적으로 탐지하고, 이때, 제스처 데이터는 그때 그리고 그 물리적 공간에서 신체의 즉각적인 상태의 절대적인 3차원 공간 위치 데이터이며, 프로세서는 제스처 데이터만을 이용하여 제스처를 확인하고, 프로세서는 제스처를 제스처 신호로 해석하고, 프로세서는 제스처 신호에 반응하여 데이터 공간을 통하여 네비게이션을 제어하고, 이때 데이터 공간은 물리적 공간에 제시된 데이터세트를 포함하는 데이터-표시 공간이다.
여기에서 설명된 구체예는 데이터 공간을 통하여 네비게이션 방법을 포함하는데, 이 방법은 탐지기를 통하여 제공받은 제스처 데이터로부터 신체의 제스처를 탐지하고, 이때 제스처 데이터는 그때 그리고 그 물리적 공간에서 신체의 즉각적인 상태의 절대적인 3차원 공간 위치 데이터이며,
탐지는 제스처 데이터만을 이용하여 제스처를 확인하고, 제스처를 제스처 신호로 해석하고, 제스처 신호에 반응하여 데이터 공간을 통하여 네비게이션하고, 이때 데이터 공간은 물리적 공간에 제시된 데이터세트를 포함하는 데이터-표시 공간이며; 그리고 데이터세트를 복수의 동일평면상의 데이터 프레임에 제공하고, 이는 데이터 공간의 복수 영역의 그래픽적 묘사이며, 디스플레이상에 가시 프레임으로 각 데이터 프레임을 디스플레이된다.
구체예의 방법은 신체의 제 1 포즈를 탐지하는 것을 포함한다. 구체예의 방법은 제1 포즈를 탐지하는 것에 반응하여 푸시백 상호작용을 활성화시키는 것을 포함한다.
구체예의 방법은 제1포즈가 시작되는 제1 위치를 기록하는 것을 포함하고, 이때 제1위치는 3차 공간 손의 위치다. 구체예의 방법은 제1 위치를 원점으로 설정하는 것을 포함하며, 이때 연속 탐지된 신체 위치는 원점에 대해 상대적인 오프셋으로 보고된다.
구체예의 탐지는 신체의 전방 움직임을 탐지하는 것을 포함하고, 이때 전방 움직임은 디스플레이를 향하여 z-축을 따라 움직임이 되며, 이때 z-축은 디스플레이의 시계 표면에 대해 표준 축으로 정의된다.
신체의 전방 움직임에 반응하여, 구체예의 네비게이션은 z-축을 따라 복수의 데이터 프레임의 이동을 포함하는데, 이때 데이터 프레임이 놓이는 평면의 많은 부분이 가시화되고, 디스플레이에 제공되는 제1 가시 프레임은 디스플레이로부터 희미해지며, 제1 데이터 프레임의 이웃하는 데이터 프레임이 가시화된다.
구체예의 탐지는 신체의 후방 움직임을 탐지하는 것을 포함하는데, 이때 후방 움직임은 디스플레이에서 떨어진 z-축을 따른 움직임이다.
신체의 후방 움직임에 반응하여, 구체예의 네비게이션은 z-축을 따라 복수의 데이터 프레임의 이동을 포함하는데, 데이터 프레임이 놓이는 평면보다 적은 부분이 가시화되고, 이때 디스플레이상에 제공되는 첫 번째 가시 프레임은 디스플레이로부터 가까워지는 것으로 보이며, 제1 데이터 프레임의 이웃하는 데이터 프레임은 덜 가시화된다.
구체예의 방법은 z-축을 따라 신체의 움직임에 직접적으로 반응하여 복수의 데이터 프레임의 z-축을 따라 이동을 지속적으로 업데이트하는 것을 포함한다.
구체예의 방법은 신체의 제 2 포즈를 탐지하는 것을 포함한다. 구체예의 방법은 제 2 포즈의 탐지에 반응하여 푸시백 상호작용을 종료하는 것을 포함하는데, 이때 종료는 복수의 데이터 프레임의 데이터 프레임을 디스플레이와 동일 평면상에 나타내는 것을 포함한다.
구체예의 탐지는 신체의 우측면 움직임을 탐지하는 것을 포함하는데, 이때 우측면 움직임을 x-축을 따른 움직임이며, x-축은 디스플레이의 시계 표면에 대해 평행한 평면에 있다.
신체의 우측면 움직임에 반응하여, 구체예의 네비게이션은 x-축을 따라 우측으로 복수의 데이터 프레임의 이동을 포함하는데, 이때 디스플레이 상에 제공되는 제 1 가시 프레임은 디스플레이로부터 디스플레이의 우측면으로 슬라이드하는 것으로 보이며, 그리고 제1 데이터 프레임에 대해 인접 데이터 프레임은 디스플레이의 좌측면으로부터 시계로 슬라이드한다.
구체예의 탐지는 신체의 좌측면 움직임을 탐지하는 것을 포함하는데, 이때 좌측면 움직임은 x-축을 따른 움직임이다.
신체의 좌측면 움직임에 반응하여, 구체예의 네비게이션은 x-축을 따라 복수의 데이터 프레임을 좌측으로 이동시키는 것을 포함하는데, 이때 디스플레이 상에 제공되는 제 1 가시 프레임은 디스플레이로부터 디스플레이의 우측면으로 슬라이드하는 것으로 보이며, 그리고 제1 데이터 프레임에 대해 인접 데이터 프레임은 디스플레이의 우측면으로부터 시계로 슬라이드한다.
구체예의 방법은 x-축을 따라 신체의 움직임에 직접 반응하여 복수의 데이터 프레임의 x-축을 따라 이동을 지속적으로 업데이트하는 것을 포함한다.
구체예의 방법은 신체의 제 2 포즈를 탐지하는 것을 포함한다. 구체예의 방법은 제 2 포즈의 탐지에 반응하여 푸시백 상호작용을 종료하는 것을 포함하는데, 이때 종료는 복수의 데이터 프레임의 데이터 프레임을 디스플레이와 동일 평면상에 나타내는 것을 포함한다.
구체예의 데이터 공간은 평면에 배열된 복수의 가상 멈춤쇠(detent)를 포함한다.
구체예의 각 가상 멈춤쇠는 각 데이터 프레임에 대응한다.
구체예의 방법은 활동 존과 비활동 존을 포함하는 제스처 상호작용 공간을 형성하는 것을 포함하는데 이때, 비활동 존은 활동 존에 인접한다.
제스처 신호에 반응하여 데이터 공간을 통하여 구체예의 네비게이션은 제스처가 활동 역역에서 탐지되었을 때 제스처에 반응하여 활성화된다.
구체예의 방법은 디스플레이상에 제공되는 피드백 표시기를 포함한다.
구체예의 피드백 표시기는 신체가 활동 존과 비활동 존 중에서 하나에 있다는 것을 나타내는 피드백을 디스플레이한다.
구체예의 피드백 표시기는 원점으로부터 신체의 물리적 오프셋을 나타내는 피드백을 디스플레이한다.
구체예의 방법은 데이터 세트의 파라미터-제어 축과 물리적 공간 치수(dimension)을 배열하는 것을 포함한다.
구체예의 치수는 깊이 치수다.
구체예의 치수는 수평 치수다
구체예의 치수는 수직 치수다.
구체예의 치수는 측면 치수다.
구체예의 네비게이션은 파라미터-제어 축을 따라 데이터-공간 해석을 얻기 위하여 치수를 따라 움직임을 포함한다.
구체예의 항해는 데이터 공간의 양자화된(quantized) 파라미터 공간으로 네비게이션하는 것을 포함한다.
구체예의 탐지는 신체의 발달(evolving) 자세를 탐지하는 것을 포함한다.
구체예의 탐지는 신체의 발달 방향(evolving orientation)을 탐지하는 것을 포함한다.
구체예의 탐지는 신체의 발달 포즈의 탐지를 포함하는데, 이때 포즈는 신체의 최소한 한 가지 다른 부위에 대해 신체의 한 부분의 기하학적 전위(disposition)가 된다.
구체예의 탐지는 신체의 발달 움직임을 탐지하는 것을 포함한다.
구체예의 탐지는 신체의 발달 자체, 신체의 방향, 신체의 포즈 및 신체의 움직임중 최소한 하나를 탐지하는 것을 포함한다.
구체예의 방법은 제스처를 일련의 제스처 이벤트로 분석하는 것을 포함한다.
구체예의 방법은 제스처를 확인하는 것을 포함한다.
구체예의 제스처의 확인은 신체의 발달 자세, 신체의 배향, 신체 포즈 및 신체 움직임중 최소한 하나를 확인하는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 순서를 표시를 만드는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 표시를 데이터 공간에 결합된 최소한 하나의 제어 성분에 배포하는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 표시를 데이터 공간의 그래픽적 묘사와 함께 동시화(synchronizing)시키는 것을 포함한다.
구체예의 방법은 데이터 공간을 통하여 제스처 이벤트의 표시와 네비게이션의 그래픽적 묘사를 동시화시키는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 표시를 데이터 공간의 청각적 표현과 동시화시키는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 표시를 데이터 공간을 통하여 네비게이션의 청각적 묘사와 함께 동시화시키는 것을 포함한다.
구체예의 데이터세트는 공간적 정보를 나타낸다.
구체예의 데이터세트는 현상, 이벤트, 측량, 관찰, 및 구조의 공간적 정보중 최소한 하나의 공간적 정보를 나타낸다.
구체예의 데이터세트는 비-공간적 정보를 나타낸다.
구체예의 제스처는 선형 공간적 동작을 나타낸다.
구체예의 네비게이션은 데이터 공간에 접하는 선형을 포함한다.
구체예의 방법은 데이터세트를 데이터 공간의 복수 영역의 그래픽적 묘사인 복수의 데이터 프레임으로 제공하는 것을 포함한다. 구체예의 방법은 디스플레이상에 각 데이터 프레임을 시각 프레임으로 디스플레이하는 것을 포함한다.
구체예의 데이터 프레임의 크기 및 화상의 가로 세로 비는 디스플레이의 크기 및 화상의 가로 세로 비와 일치한다.
구체예의 데이터 프레임의 중앙 및 표준 벡터는 디스플레이의 중앙 및 표준 벡터와 일치한다.
구체예의 데이터 프레임의 위치 및 배향은 디스플레이의 위치 및 배양과 일치한다.
각 구체예의 데이터 프레임은 데이터세트의 요소를 나타내는 그래픽적 데이터 요소를 포함한다.
구체예의 그래픽적 데이터 요소들은 고정적 요소들이다.
구체예의 그래픽적 데이터 요소들은 동적 요소들이다.
구체예의 데이터 프레임은 2-차원 구성이다.
구체예의 데이터 프레임은 3차원 그래픽에 상주하여 신체를 포함하는 국소 환경을 설명하는 좌표와 일치하는 좌표 시스템을 가지는 환경을 제공한다.
구체예의의 데이터 공간을 통한 네비게이션은 복수의 데이터 프레임을 통한 네비게이션을 포함한다.
구체예의 방법은 제스처를 확인하는 것을 포함하는데, 이때 확인은 신체의 일부분의 포즈, 및 배향을 확인하는 것을 포함한다.
구체예의 탐지는 신체의 제1 부속물 세트와 제2 부속물 세트중 최소한 하나를 탐지하는 것을 포함한다.
구체예의 탐지는 신체에 결합된 최소한 하나의 테그의 위치를 동적으로 탐지하는 것을 포함한다.
구체예의 해석은 제스처의 정보를 제스처 표시로 해석하는 것을 포함한다.
구체예의 제스처 표기(notation)는 제스처 기호를 나타내고, 그리고 제스처 신호는 제스처 기호의 전달을 포함한다.
구체예의 제스처 기호(vocabulary)는 신체의 즉각적인 포스 상태를 문자 형태로 나타낸다.
구체예의 제스처 기호는 신체의 운동학적 연결의 배향을 문자 형태로 나타낸다.
구체예의 제스처 기호는 신체의 운동학적 연결의 배향 조합을 문자 형태로 나타낸다.
구체예의 제스처 기호는 신체의 운동학적 연결 상태를 나타내는 일련의 문자을 포함한다.
구체예의 탐지는 신체의 외삽된 위치가 가상 공간을 교차할 때 탐지되는 것을 포함하고, 이때 가상 공간은 디스플레이 장치에 묘사된 공간을 포함한다.
구체예의 방법은 외삽된 위치가 가상 대상을 교차할 때 가상 공간에서 가상 대상을 조절하는 것을 포함한다.
구체예의 제어는 가상 공간에서 외삽된 위치에 반응하여 가상 공간에서 가상 대상의 위치를 조절하는 것을 포함한다.
구체예의 제어는 제스처에 반응하여 가상 공간에서 가상 대상의 자세를 조절하는 것을 포함한다.
구체예의 방법은 가상 공간과 물리적 공간 사이에서 일치가 되도록 탐지 및 제어의 크기 조정을 조절하는 것을 포함하는데, 이때 가상 공간은 디스플레이상에 묘사된 공간을 포함하며, 이때 물리적 공간은 신체에 의해 방해되는 공간을 포함한다.
구체예의 방법은 신체를 이미징 시스템으로 이미지화하는 것을 포함한다.
구체예의 이미징은 신체의 등위상면(wavefront) 암호화된 이미지를 생성시키는 것을 포함한다.
구체예의 제스처 데이터는 이미징 시스템의 필드 깊이 내에 신체의 포커스-분할된 데이터(focus-resolved data)를 포함한다.
구체예의 방법은 이미징 시스템에 의해 모아진 이미지를 암호화하여 생성된 중간 이미지를 포함한다.
구체예의 중간 이미지들은 흐리다.
구체예의 중간 이미지들은 신체 및 초점이 흐린 이탈을 포함하는 이미징 시스템의 복수의 광학 탐지기중 최소한 하나에서 변화에 둔감하다.
구체예의 제스처 데이터는 필드의 깊이내에 신체의 포커스-분할된 범위를 포함한다.
필드의 깊이내에 신체의 포커스-분할된 범위 데이터는 이미징 시스템의 출력으로부터 유도된다.
구체예의 제스처 데이터는 필드의 깊이내에 신체의 포커스-분할된 위치 데이터를 포함한다.
필드의 깊이내에 신체의 포커스-분할된 위치 데이터는 이미징 시스템의 출력으로부터 유래된다.
구체예의 이미징 시스템은 복수의 탐지기를 포함한다.
구체예의 최소한 두 개의 탐지기는 광학적 요소를 암호화하는 등위상면을 포함하는 등위상면 코딩된 카메라다.
구체예의 최소한 두 개의 광학적 탐지기는 이미징의 포커스의 깊이를 증가시키는 페이즈 마스크를 포함한다.
구체예의 방법은 신체와 이미징 시스템 사이에 거리에 대해 불변하는 조절 전달 기능(modulation transfer function) 및 지점 스프레드 기능(point spread functions)을 생성하는 것을 포함한다.
구체예의 방법은 신체와 이미징 시스템 사이에 거리에 대해 불변하는 조절 전달 기능(modulation transfer function) 및 지점 스프레드 기능(point spread functions)을 생성하는 것을 포함한다.
구체예의 방법은 흐린 영상에 대해 불변하는 조절 전달 기능 및 지점 스프레드 기능을 생성시키는 것을 포함한다.
여기에서 설명된 구체예들은 시스템을 포함하는데, 이 시스템은 신체에 의해 만들어지는 제스처를 나타내는 제스처 데이터를 받는 탐지기; 그리고 탐지기에 결합된 프로세서를 포함하고, 이때 프로세서는 제스처 데이터로부터 제스처를 자동적으로 탐지하고, 이때, 제스처 데이터는 그때 그리고 그 물리적 공간에서 신체의 즉각적인 상태의 절대적인 3차원 공간 위치 데이터이며, 프로세서는 제스처 데이터만을 이용하여 제스처를 확인하고, 프로세서는 제스처를 제스처 신호로 해석하고, 프로세서는 제스처 신호에 반응하여 데이터 공간을 통하여 네비게이션을 제어하고, 이때 데이터 공간은 물리적 공간에 제시된 데이터세트를 포함하는 데이터-표시 공간이며, 프로세서는 데이터세트를 다수의 동일 평면 데이터 프레임상에 제공하고, 이 데이터 프레임은 다수의 데이터 공간 부위를 묘사하고, 각 데이터 프레임은 디스플레이상에 가시 프레임을 디스플레이된다.
여기에서 설명된 구체예는 데이터 공간을 통하여 네비게이션 방법을 포함하는데, 이 방법은 탐지기를 통하여 제공받은 제스처 데이터로부터 신체의 제스처를 탐지하고, 이때 제스처 데이터는 그때 그리고 그 물리적 공간에서 신체의 즉각적인 상태의 절대적인 3차원 공간 위치 데이터이며, 탐지는 제스처 데이터만을 이용하여 제스처를 확인하고, 제스처를 제스처 신호로 해석하고, 제스처 신호에 반응하여 데이터 공간을 통하여 네비게이션하고, 이때 데이터 공간은 물리적 공간에 제시된 데이터세트를 포함하는 데이터-표시 공간이며; 그리고 데이터세트를 복수의 동일평면상의 데이터 프레임에 제공하고, 이는 데이터 공간의 복수 영역의 그래픽적 묘사이며, 디스플레이상에 가시 프레임으로 각 데이터 프레임을 디스플레이되며, 이때, 다수의 데이터 프레임은 데이터 공간의 다수 면에 배열된 별도의 데이터 프레임 더미를 포함하고, 이때 각 데이터 프레임은 다수 면의 별도 면에 있게 된다.
구체예의 방법은 신체의 제 1 포즈를 탐지하는 것을 포함한다. 구체예의 방법은 제1 포즈를 탐지하는 것에 반응하여 푸시백 상호작용을 활성화시키는 것을 포함한다.
구체예의 방법은 제1포즈가 시작되는 제1 위치를 기록하는 것을 포함하고, 이때 제1위치는 3차 공간 손의 위치다. 구체예의 방법은 제1 위치를 원점으로 설정하는 것을 포함하며, 이때 연속 탐지된 신체 위치는 원점에 대해 상대적인 오프셋으로 보고된다.
구체예의 탐지는 신체의 상형 움직임을 탐지하는 것을 포함하고, 이때 상향 움직임은 디스플레이를 향하여 y-축을 따라 움직임이 되며, 이때 y-축은 디스플레이의 시계 표면에 대해 표준 축으로 정의된다.
신체의 상향 움직임에 반응하여, 구체예의 네비게이션은 현재 데이터 프레임으로부터 y-축을 따라 복수의 데이터 프레임의 이동을 포함하고, 이때 일군의 분리된 데이터 프레임은 상향으로 해석하고, 이때 현재 데이터 프레임은 디스플레이 상에 현재 제공되는 분리된 데이터 프레임이다.
구체예의 각 분리된 데이터 프레임의 출현은 이동(displacing)에 반응하여 변화되는데, 이때 현재 데이터 프레임 위에 위치한 일군의 분리된 데이터 프레임은 상대적으로 높은 수준의 투명도 및 흐림을 가지며, 이때 현재 데이터 프레임은 가시화로부터 변천되어, 어느 수준의 투명도 및 흐림을 취하기 시작하고, 이때 현재 데이터 프레임 아래에 위차한 일군의 분리된 데이터 프레임은 상대적으로 더 낮은 수준의 투명도 및 흐림을 취하고, 가시화되기 시작한다.
구체예의 방법은 제스처 동안 신체의 이동의 물리적 거리의 메핑(mapping)과, 일군의 연속적인 분리된 데이터 프레임 사이에 로직(logical) 거리를 메핑하는 것을 포함하는데, 메핑은 y-축을 따라 다수의 데이터 프레임의 이동 및 각 분리된 데이터 프레임 출현을 조절한다.
구체예의 탐지는 신체의 하향 움직임을 탐지하는 것을 포함하는데, 이때 하향 움직임은 디스플레이 쪽으로 y-축을 따라 움직임이다.
신체의 하향 움직임에 반응하여, 구체예의 네비게이션은 현재 데이터 프레임으로부터 y-축을 따라 복수의 데이터 프레임의 이동을 포함하는데, 이때 일군의 분리된 데이터 프레임은 하향 해석된다.
구체예의 각 분리된 데이터 프레임의 출현은 이동(displacing)에 반응하여 변화되는데, 이때 현재 데이터 프레임 아래에 위치한 일군의 분리된 데이터 프레임은 상대적으로 높은 수준의 투명도 및 흐림을 가지며, 이때 현재 데이터 프레임은 가시화로부터 변천되어, 어느 수준의 투명도 및 흐림을 취하기 시작하고, 이때 현재 데이터 프레임 위에 위차한 일군의 분리된 데이터 프레임은 상대적으로 더 낮은 수준의 투명도 및 흐림을 취하고, 가시화되기 시작한다.
구체예의 방법은 제스처 동안 신체의 이동의 물리적 거리의 메핑(mapping)과, 일군의 연속적인 분리된 데이터 프레임 사이에 로직(logical) 거리를 메핑하는 것을 포함하는데, 메핑은 y-축을 따라 다수의 데이터 프레임의 이동 및 각 분리된 데이터 프레임 출현을 조절한다.
구체예의 방법은 y-축을 따라 신체의 움직임에 직접적으로 반응하여 복수의 데이터 프레임의 y-축을 따라 이동을 지속적으로 업데이트하는 것을 포함한다.
구체예의 방법은 신체의 제 2 포즈를 탐지하는 것을 포함한다. 구체예의 방법은 제 2 포즈의 탐지에 반응하여 푸시백 상호작용을 종료하는 것을 포함하는데, 이때 종료는 복수의 데이터 프레임의 데이터 프레임을 디스플레이와 동일 평면상에 나타내는 것을 포함한다.
구체예의 데이터 공간은 평면에 배열된 복수의 가상 멈춤쇠(detent)를 포함한다.
구체예의 각 가상 멈춤쇠는 각 데이터 프레임에 대응한다.
구체예의 방법은 제스처 상호작용 공간을 형성하는데, 이 공간은 제 1 활동 존, 제2 활동 존, 그리고 비활동 존을 포함하는데, 이때 제 1 활동 존은 디스플레이에 인접하며, 비활동 존은 제1 활동 존에 인접하고, 그리고 제 2 활동 존은 비활동 존에 인접한다.
제스처 신호에 반응하여 데이터 공간을 통하여 구체예의 네비게이션은 제스처가 제 1 활동 존 및 제 2 활동 존중 하나에 있는 것으로 탐지될 때 제스처에 반응하여 활성화된다.
구체예의 방법은 디스플레이 상에 제공되는 피드백 표시기를 포함한다.
구체예의 피드백 표시기는 신체가 제 1 활동 존, 제 2 활동 존, 그리고 비활동 존중 하나에 있다는 것을 나타내는 피드백을 디스플레이한다.
구체예의 피드백 표시기는 원점으로부터 신체의 물리적 오프셋을 나타내는 피브백을 디스플레이한다.
구체예의 방법은 데이터 세트의 파라미터-제어 축과 물리적 공간 치수(dimension)을 배열하는 것을 포함한다.
구체예의 치수는 깊이 치수다.
구체예의 치수는 수평 치수다
구체예의 치수는 수직 치수다.
구체예의 치수는 측면 치수다.
구체예의 네비게이션은 파라미터-제어 축을 따라 데이터-공간 해석을 얻기 위하여 치수를 따라 움직임을 포함한다.
구체예의 네비게이션은 데이터 공간의 양자화된(quantized) 파라미터 공간으로 네비게이션하는 것을 포함한다.
구체예의 탐지는 신체의 발달(evolving) 자세를 탐지하는 것을 포함한다.
구체예의 탐지는 신체의 발달 방향(evolving orientation)을 탐지하는 것을 포함한다.
구체예의 탐지는 신체의 발달 포즈의 탐지를 포함하는데, 이때 포즈는 신체의 최소한 한 가지 다른 부위에 대해 신체의 한 부분의 기하학적 전위(disposition)가 된다.
구체예의 탐지는 신체의 발달 움직임을 탐지하는 것을 포함한다.
구체예의 탐지는 신체의 발달 자체, 신체의 방향, 신체의 포즈 및 신체의 움직임중 최소한 하나를 탐지하는 것을 포함한다.
구체예의 방법은 제스처를 일련의 제스처 이벤트로 분석하는 것을 포함한다.
구체예의 방법은 제스처를 확인하는 것을 포함한다.
구체예의 제스처의 확인은 신체의 발달 자세, 신체의 배향, 신체 포즈 및 신체 움직임중 최소한 하나를 확인하는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 순서를 표시를 만드는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 표시를 데이터 공간에 결합된 최소한 하나의 제어 성분에 배포하는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 표시를 데이터 공간의 그래픽적 묘사와 함께 동시화(synchronizing)시키는 것을 포함한다.
구체예의 방법은 데이터 공간을 통하여 제스처 이벤트의 표시와 네비게이션의 그래픽적 묘사를 동시화시키는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 표시를 데이터 공간의 청각적 표현과 동시화시키는 것을 포함한다.
구체예의 방법은 제스처 이벤트의 표시를 데이터 공간을 통하여 네비게이션의 청각적 묘사와 함께 동시화시키는 것을 포함한다.
구체예의 데이터세트는 공간적 정보를 나타낸다.
구체예의 데이터세트는 현상, 이벤트, 측량, 관찰, 및 구조의 공간적 정보중 최소한 하나의 공간적 정보를 나타낸다.
구체예의 데이터세트는 비-공간적 정보를 나타낸다.
구체예의 제스처는 선형 공간적 동작을 나타낸다.
구체예의 네비게이션은 데이터 공간에 접하는 선형을 포함한다.
구체예의 방법은 데이터세트를 데이터 공간의 복수 영역의 그래픽적 묘사인 복수의 데이터 프레임으로 제공하는 것을 포함한다. 구체예의 방법은 디스플레이상에 각 데이터 프레임을 시각 프레임으로 디스플레이하는 것을 포함한다.
구체예의 데이터 프레임의 크기 및 화상의 가로 세로 비는 디스플레이의 크기 및 화상의 가로 세로 비와 일치한다.
구체예의 데이터 프레임의 중앙 및 표준 벡터는 디스플레이의 중앙 및 표준 벡터와 일치한다.
구체예의 데이터 프레임의 위치 및 배향은 디스플레이의 위치 및 배향과 일치한다.
각 구체예의 데이터 프레임은 데이터세트의 요소를 나타내는 그래픽적 데이터 요소를 포함한다.
구체예의 그래픽적 데이터 요소들은 고정적 요소들이다.
구체예의 그래픽적 데이터 요소들은 동적 요소들이다.
구체예의 데이터 프레임은 2-차원 구성이다.
구체예의 데이터 프레임은 3차원 그래픽에 상주하여 신체를 포함하는 국소 환경을 설명하는 좌표와 일치하는 좌표 시스템을 가지는 환경을 제공한다.
구체예의의 데이터 공간을 통한 네비게이션은 복수의 데이터 프레임을 통한 네비게이션을 포함한다.
구체예의 방법은 제스처를 확인하는 것을 포함하는데, 이때 확인은 신체의 일부분의 포즈, 및 배향을 확인하는 것을 포함한다.
구체예의 탐지는 신체의 제1 부속물 세트와 제2 부속물 세트중 최소한 하나를 탐지하는 것을 포함한다.
구체예의 탐지는 신체에 결합된 최소한 하나의 테그의 위치를 동적으로 탐지하는 것을 포함한다.
구체예의 탐지는 신체상에 마커 및 마커의 위치를 동적으로 탐지하는 것을 포함한다.
구체예의 해석은 제스처의 정보를 제스처 표시로 해석하는 것을 포함한다.
구체예의 제스처 표기(notation)는 제스처 기호를 나타내고, 그리고 제스처 신호는 제스처 기호의 전달을 포함한다.
구체예의 제스처 기호(vocabulary)는 신체의 즉각적인 포스 상태를 문자 형태로 나타낸다.
구체예의 제스처 기호는 신체의 배향을 문자 형태로 나타낸다.
구체예의 제스처 기호는 신체의 배향 조합을 문자 형태로 나타낸다.
구체예의 제스처 기호는 신체의 상태를 나타내는 일련의 문자을 포함한다.
구체예의 탐지는 신체의 외삽된 위치가 가상 공간을 교차할 때 탐지되는 것을 포함하고, 이때 가상 공간은 디스플레이 장치에 묘사된 공간을 포함한다.
구체예의 방법은 외삽된 위치가 가상 대상을 교차할 때 가상 공간에서 가상 대상을 조절하는 것을 포함한다.
구체예의 제어는 가상 공간에서 외삽된 위치에 반응하여 가상 공간에서 가상 대상의 위치를 조절하는 것을 포함한다.
구체예의 방법은 가상 공간과 물리적 공간 사이에서 일치가 되도록 탐지 및 제어의 크기 조정을 조절하는 것을 포함하는데, 이때 가상 공간은 디스플레이상에 묘사된 공간을 포함하며, 이때 물리적 공간은 신체에 의해 방해되는 공간을 포함한다.
구체예의 방법은 신체를 이미징 시스템으로 이미지화하는 것을 포함한다.
구체예의 이미징은 신체의 등위상면(wavefront) 암호화된 이미지를 생성시키는 것을 포함한다.
구체예의 제스처 데이터는 이미징 시스템의 필드 깊이 내에 신체의 포커스-분할된 데이터(focus-resolved data)를 포함한다.
구체예의 방법은 이미징 시스템에 의해 모아진 이미지를 암호화하여 생성된 중간 이미지를 포함한다.
구체예의 중간 이미지들은 흐리다.
구체예의 중간 이미지들은 신체 및 초점이 흐린 이탈을 포함하는 이미징 시스템의 복수의 광학 탐지기중 최소한 하나에서 변화에 둔감하다.
구체예의 제스처 데이터는 필드의 깊이내에 신체의 포커스-분할된 범위를 포함한다.
필드의 깊이내에 신체의 포커스-분할된 범위 데이터는 이미징 시스템의 출력으로부터 유도된다.
구체예의 제스처 데이터는 필드의 깊이내에 신체의 포커스-분할된 위치 데이터를 포함한다.
필드의 깊이내에 신체의 포커스-분할된 위치 데이터는 이미징 시스템의 출력으로부터 유래된다.
구체예의 이미징 시스템은 복수의 탐지기를 포함한다.
구체예의 최소한 두 개의 탐지기는 광학적 요소를 암호화하는 등위상면을 포함하는 등위상면 코딩된 카메라다.
구체예의 최소한 두 개의 광학적 탐지기는 이미징의 포커스의 깊이를 증가시키는 페이즈 마스크를 포함한다.
구체예의 방법은 신체와 이미징 시스템 사이에 거리에 대해 불변하는 조절 전달 기능(modulation transfer function) 및 지점 스프레드 기능(point spread functions)을 생성하는 것을 포함한다.
구체예의 방법은 신체와 이미징 시스템 사이에 거리에 대해 불변하는 조절 전달 기능(modulation transfer function) 및 지점 스프레드 기능(point spread functions)을 생성하는 것을 포함한다.
구체예의 방법은 흐린 영상에 대해 불변하는 조절 전달 기능 및 지점 스프레드 기능을 생성시키는 것을 포함한다.
여기에서 설명된 구체예들은 시스템을 포함하는데, 이 시스템은 신체에 의해 만들어지는 제스처를 나타내는 제스처 데이터를 받는 탐지기; 그리고 탐지기에 결합된 프로세서를 포함하고, 이때 프로세서는 제스처 데이터로부터 제스처를 자동적으로 탐지하고, 이때, 제스처 데이터는 그때 그리고 그 물리적 공간에서 신체의 즉각적인 상태의 절대적인 3차원 공간 위치 데이터이며, 프로세서는 제스처 데이터만을 이용하여 제스처를 확인하고, 프로세서는 제스처를 제스처 신호로 해석하고, 프로세서는 제스처 신호에 반응하여 데이터 공간을 통하여 네비게이션을 제어하고, 이때 데이터 공간은 물리적 공간에 제시된 데이터세트를 포함하는 데이터-표시 공간이며, 프로세서는 데이터세트를 다수의 동일 평면 데이터 프레임상에 제공하고, 이 데이터 프레임은 다수의 데이터 공간 부위를 묘사하고, 각 데이터 프레임은 디스플레이상에 가시 프레임을 디스플레이되고, 다수의 데이터 프레임은 데이터 공간의 다수 면에 배열된 분리된 데이터 프레임 더미를 포함하고, 각 데이터 프레임은 다수 면의 별도 면에 있다.
여기에서 설명된 SOE는 프로세싱 시스템하에 또는 이와 연합된 런(run)을 포함한다. 프로세싱 시스템은 당분야에 공지된 것과 같이, 프로세서-기반 장치 또는 함께 작동되는 전산(computing) 장치 또는 프로세싱 시스템 또는 장치의 성분의 임의 조합을 포함한다. 예를 들면, 프로세싱 시스템은 하나 이상의 이동 컴퓨터, 통신 네트워크에서 조작되는 이동 통신 장치 및/또는 네트워크 서버를 포함할 수 있다. 이동 컴퓨터는 개인 컴퓨터, 휴대전화기, 개인 디지털 보조수단, 이동 컴퓨터 장치, 및 이동 통신 장치를 포함하나 이에 한정되지 않은 것으로부터 선택된 다수의 장치 및/또는 장치의 조합이 될 수 있다. 프로세싱 시스템은 더 큰 컴퓨터 시스템내에 있는 성분들을 포함할 수 있다.
구체예의 프로세싱 시스템은 최소한 하나의 프로세서 및 최소한 하나의 메모리 장치 또는 서브시스템을 포함한다. 프로세싱 시스템은 또한 최소한 하나의 데이터베이스를 포함하거나 이에 연결될 수 있다. 여기에서 일반적으로 사용된 용어 "프로세서"는 하나이상의 중상 프로세싱 단위(CPUs), 디지털 신호 프로세서 (DSPs), 애플리케이션-특이적 집적 회로(ASIC)와 같은 임의의 로직 프로세싱 단위를 지칭한다. 프로세서 및 메모리는 여러 칩가운데 분포된 또는 호스트 시스템의 성분으로 분포된 및/또는 일부 알고리즘 조합에 의해 제공되는 하나의 칩에 단일체(monolithically)로 통합된다. 여기에서 설명된 방법들은 임의의 조합으로 하나 이상의 소프트웨어 알고리즘, 프로그램, 펌웨어(firmwate), 하드웨어(hardware), 구성요소들(components), 회로(circuitry)로 실행될 수 있다.
여기에서 설명하는 시스템 및 방법을 구체화시키는 시스템 성분들은 함께 또는 별도의 위치에 위치될 수있다. 결과적으로 여기에서 설명하는 시스템 및 방법을 구체화시키는 시스템 성분들은 단일 시스템, 다중 시스템, 및/또는 지리적으로 별도의 시스템의 하위성분 또는 하위 시스템이 될 수 있다. 이들 성분들은 호스트 시스템 또는 호스트 시스템에 결합된 시스템의 하나이상의 다른 성분들에 결합될 수 있다.
통신 경로는 시스템 성분들을 결합시키고, 그리고 성분들간에 파일을 교환하고 전달하는 것을 포함한다. 통신 경로는 무선 연결, 유선 연결 및 무선/유선의 하이브리드 연결을 포함한다. 통신 경로는 또한 로컬 영역 네트워트(LANs), 수도권 영역 네트워크(MANs), 광역 네트워크(WANs), 독자적 네트워크, 사내 네트워크 또는 백엔드(backend) 네트워크 및 인터넷을 포함하는 네트워크에 결합 또는 연결을 포함한다. 더욱이, 통신 경로는 플로피 디스크, 하드 디스크 드라이브, 및 CD-ROM 디스크와 같이 제거가능한 고정된 매체 뿐만 아니라 플래쉬 RAM, 범용 직렬버스(USB) 접속, RS-232 접속, 전화선, 버스, 및 전자 메일 메시지를 포함한다.
명시적인 다른 언급이 없는 한, 단어 포함하는("comprise," "comprising,"_ 등은 배타적 또는 소모적인 의미에 반대되는 포괄적 의미로 해석되어야 하며; 즉, 포함하나 이에 한정되지 않는다는 의미가 된다. 단수 또는 복수를 이용한 단어는각각 복수 또는 단수를 포함한다. 추가로, 용어“여기에서”, “아래에서”, “위”, “아래” 및 이와 유사한 단어들은, 전체적으로 적용되며, 특정한 일부분을 지칭하는 것은 아니다. 단어“또는”은 두 개 이상의 항목 리스트를 언급할 때 이용되는 경우, 이 단어는 단어의 해석 모두를 포함하거나, 목록에 있는 항목중 임의의 것을 포함하거나, 목록에 있는 항목 모두 그리고 임의의 조합을 모두 포함한다.
SOE의 구체예의 상기 설명은 여기에서 설명된 정확한 형태의 시스템 및 방법에 제한하는 의도는 없다. 특정 구체예 또는 실시예는 설명을 위한 것이며, 당업자가 인지하는 다양한 균등한 변형이 기타 시스템 및 방법의 범주에서 가능하다. 여기에서 제공된 SOE의 지침은 상기에서 설명된 시스템 및 방법에만 적용되는 것이 아니라 다른 프로세싱 시스템 및 방법에도 적용된다.
여기에서 설명된 다양한 구체예의 요소 및 행위는 추가 구체예를 제공하기 위하여 복합될 수 있다. 이와 같은 변화들 및 기타 변화들도 상기 설명에 근거하여 SOE로 만들어질 수 있다.
일반적으로, 다음의 청구범위에서, 이용된 용어들은 본 명세서 및 청구범위에서 개시된 특정 구체예로 제한되는 것으로 간주되어서는 안되며, 청구범위하에 작용될 수 있는 모든 시스템을 포함하는 것으로 간주되어야 한다. 따라서, 구체예들은 여기에 설명에 의해 제한되지 않으며, 구체예의 범위는 청구범위에 의해 전적으로 결정된다.
구체예의 특정 측면은 특정 청구범위 형태로 제공되는데, 발명자들은 임의의 청구범위 수로 구체예의 다양한 측면을 고려한다. 따라서, 발명자들은 구체예의 다른 측면을 위하여 이와 같은 추가 청구범위를 추구하기 위하여 출원 후 추가 청구범위를 추가할 수 있는 권리를 가진다.
Claims (277)
- 데이터 공간을 통하여 네비게이팅(navigating)하는 방법으로서, 상기 방법은
탐지기(detector)를 통해 수신된 제스처 데이터(gesture data)로부터 신체의 제스처를 탐지하는 단계 - 상기 제스처 데이터는 시간 및 물리 공간의 한 점에서의 신체의 순간적인 상태의 절대 3차원 공간 위치 데이터이며, 상기 탐지하는 단계는 제스처 데이터만 이용해 제스처를 식별하는 단계를 포함함 - ,
제스처를 제스처 신호로 해석하는 단계, 및
상기 제스처 신호에 응답하여 데이터 공간을 통해 네비게이팅하는 단계 - 상기 데이터 공간은 물리 공간에서 나타나는 데이터세트를 포함하는 데이터 표현 공간임 - 를 포함하는, 네비게이팅하는 방법. - 청구항 1 항에 있어서, 상기 방법은 데이터세트의 파라미터-제어 축을 물리 공간의 차원에 정렬하는 단계를 포함하며, 상기 차원은 깊이 차원, 수평 차원, 수직 차원, 및 측방 차원 중 적어도 하나이며, 상기 네비게이팅은 파라미터-제어 축을 따르는 데이터-공간 이동을 야기하기 위한 차원을 따르는 모션을 포함하고, 상기 네비게이팅은 데이터 공간의 양자화된(quantized) 파라미터 공간으로의 네비게이팅을 포함하는, 네비게이팅하는 방법.
- 청구항 1 항에 있어서, 탐지하는 단계는 신체의 발달 위치(evolving position), 신체의 발달 배향(evolving orientation), 신체의 발달 포즈(evolving pose) - 상기 포즈는 신체의 한 부분의 적어도 하나의 그 밖의 다른 부분에 대한 기하학적 배치임 - , 및 신체의 발달 모션 중 적어도 하나를 탐지하는 단계를 포함하는, 네비게이팅하는 방법.
- 청구항 1 항에 있어서,
제스처를 일련의 제스처 이벤트로 분석하는 단계,
상기 제스처를 식별하는 단계 - 상기 제스처를 식별하는 단계는 신체의 발당 위치, 신체의 배향, 신체의 포즈, 및 신체의 모션 중 적어도 하나를 식별하는 단계를 포함함 - ,
제스처 이벤트의 시퀀스의 제스처 이벤트의 표현을 생성하는 단계,
상기 제스처 이벤트의 표현을 상기 데이터 공간에 연결된 적어도 하나의 제어 구성요소로 배포하는 단계,
제스처 이벤트의 표현을 데이터 공간의 그래픽 표시와 동기화, 상기 제스처 이벤트의 표현을 데이터 공간을 통한 네비게이팅의 그래픽 표시와 동기화, 상기 제스처 이벤트의 표현을 데이터 공간의 청각적 표시와 동기화, 및 상기 제스처 이벤트의 표현을 데이터 공간을 통한 네비게이팅의 청각적 표시와 동기화 중 적어도 하나 이상의 단계
를 더 포함하는, 네비게이팅하는 방법. - 청구항 1 항에 있어서, 상기 데이터세트는 공간적 정보 - 상기 공간적 정보는 현상, 이벤트, 측정치, 관측치, 및 구조 중 적어도 하나의 공간적 정보, 및 비-공간적 정보, 중 적어도 하나를 나타내는, 네비게이팅하는 방법.
- 청구항 1 항에 있어서,
상기 데이터세트를 데이터 공간의 복수 영역의 그래픽 표시인 복수의 데이터 프레임으로 렌더링하는 단계,
각각의 데이터 프레임을 디스플레이 상의 시각 프레임으로서 디스플레이하는 단계
를 포함하는, 네비게이팅하는 방법. - 청구항 6 항에 있어서, 데이터 프레임의 크기 및 가로 세로 비 중 적어도 하나가 상기 디스플레이의 크기 및 가로 세로 비와 일치하고, 상기 데이터 프레임의 중앙 및 정규 벡터가 상기 디스플레이의 중앙 및 정규 벡터와 일치하며, 상기 데이터 프레임의 위치 및 배향이 상기 디스플레이의 위치 및 배향과 일치하는, 네비게이팅하는 방법.
- 청구항 6 항에 있어서, 각각의 데이터 프레임은 데이터세트의 요소를 나타내는 그래픽 데이터 요소를 포함하고, 상기 그래픽 데이터 요소는 정적 요소(static element) 및 동적 요소(dynamic element) 중 적어도 하나인, 네비게이팅하는 방법.
- 청구항 6 항에 있어서, 상기 데이터 프레임은 2-차원 구성이며, 상기 데이터 프레임은 신체를 포함하는 로컬 환경을 기술하는 좌표와 일치하는 좌표계를 갖는 3차원 그래픽 렌더링 환경 내에 위치하는, 네비게이팅하는 방법.
- 청구항 6 항에 있어서, 데이터 공간을 통한 네비게이팅은 복수의 데이터 프레임을 통한 네비게이팅을 포함하는, 네비게이팅하는 방법.
- 청구항 6 항에 있어서,
신체의 제 1 포즈를 탐지하는 단계,
제 1 포즈의 탐지에 응답하여 푸쉬백 상호대화를 활성화시키는 단계
상기 제 1 포즈가 시작되는 제 1 위치를 기록하는 단계 - 상기 제 1 위치는 3차원 공간 손 위치임 - ,
상기 제 1 위치를 원점으로서 설정하는 단계 - 다음에 탐지되는 신체 위치가 상기 원점에 대한 상대적 오프셋으로서 보고됨 -
를 더 포함하는, 네비게이팅하는 방법. - 청구항 11 항에 있어서, 신체의 움직임을 탐지함으로써 제스처를 탐지하는 단계를 포함하고, 상기 탐지하는 단계는 신체의 제 1 움직임을 탐지하는 단계를 포함하고, 상기 제 1 움직임은 디스플레이를 향한 축을 따르는 움직임이며, 상기 축은 상기 디스플레이의 시계 표면(view surface)에 수직인 축으로서 정의되는, 네비게이팅하는 방법.
- 청구항 12 항에 있어서, 신체의 제 1 움직임에 응답하여, 네비게이팅하는 단계는 상기 축을 따라 복수의 데이터 프레임을 변위시키는 단계를 포함하고, 상기 데이터 프레임이 놓이는 평면의 더 큰 부분이 가시화되며, 디스플레이 상에 렌더링되는 제 1 가시 프레임이 디스플레이에서 희미해지고, 상기 제 1 데이터 프레임의 이웃하는 데이터 프레임이 가시적이 되는, 네비게이팅하는 방법.
- 청구항 12 항에 있어서, 신체의 제 1 움직임에 반응하여, 상기 네비게이팅하는 단계는 현재 데이터 프레임으로부터 상기 축을 따라 복수의 데이터 프레임을 변위시키는 단계를 포함하고, 상기 데이터 프레임은 하향으로 이동하며, 상기 현재 데이터 프레임은 상기 디스플레이 상에서 현재 렌더링되는 데이터 프레임이며, 각각의 데이터 프레임의 외관은 변위에 응답하여 달라지며, 상기 현재 데이터 프레임 아래에 위치하는 데이터 프레임은 비교적 높은 투명도 및 흐림을 갖고, 상기 현재 데이터 프레임 위에 위치하는 데이터 프레임은 비교적 낮은 투명도 및 흐름을 가지며 가시화되는, 네비게이팅하는 방법.
- 청구항 12 항에 있어서, 탐지하는 단계는 신체의 제 2 움직임을 탐지하는 단계를 포함하며, 상기 제 2 움직임은 디스플레이로부터 떨어진 축을 따른 움직임인, 네비게이팅하는 방법.
- 청구항 15 항에 있어서, 신체의 제 2 움직임에 반응하여, 상기 네비게이팅하는 단계는 복수의 데이터 프레임을 축을 따라 배치시키는 단계를 포함하고, 데이터 프레임이 위치하는 평면의 더 작은 부분이 가시화되고, 디스플레이 상에 렌더링되는 제 1 가시 프레임은 디스플레이로부터 기울어져 보이고 상기 제 1 데이터 프레임의 이웃하는 데이터 프레임이 덜 가시화되는, 네비게이팅하는 방법.
- 청구항 15 항에 있어서, 신체의 제 2 움직임에 반응하여, 상기 네비게이팅하는 단계는 현재 데이터 프레임으로부터 축을 따라 복수의 데이터 프레임을 변위시키는 단계를 포함하며, 상기 데이터 프레임은 상향으로 이동하고, 상기 현재 데이터 프레임은 디스플레이 상에 현재 렌더링되는 데이터 프레임이며, 각각의 데이터 프레임의 외관은 변위에 응답하여 달라지고, 현재 데이터 프레임 위에 위치하는 데이터 프레임은 비교적 높은 투명도 및 흐림을 갖고, 현재 데이터 프레임은 가시화에서부터 변천하여 투명도 및 흐림을 갖기 시작하고, 현재 데이터 프레임 아래에 위치하는 데이터 프레임은 비교적 낮은 투명도 및 흐림을 갖고 가시화되기 시작하는, 네비게이팅하는 방법.
- 청구항 12 항에 있어서, 상기 탐지하는 단계는 신체의 제 3 움직임을 탐지하는 단계를 포함하고, 상기 제 3 움직임은 디스플레이의 시계 표면에 평행한 평면에서의 움직임이며, 신체의 제 3 움직임에 응답하여, 상기 네비게이팅하는 단계는 상기 제 3 움직에 대응하는 방향으로 복수의 데이터 프레임을 변위시키는 단계를 포함하고, 디스플레이 상에 렌더링된 현재 데이터 프레임이 상기 방향으로 슬라이딩되고 현재 데이터 프레임의 인접 데이터 프레임이 상기 디스플레이의 측부에서 봤을 때 상기 방향의 반대로 슬라이딩되는, 네비게이팅하는 방법.
- 청구항 12 항에 있어서, 상기 네비게이팅하는 단계는 신체의 움직임에 직접적으로 반응하여 복수의 데이터 프레임의 변위를 지속적으로 업데이트하는 단계를 포함하는, 네비게이팅하는 방법.
- 청구항 19 항에 있어서,
신체의 제 2 포즈를 탐지하는 단계,
상기 제 2 포즈의 탐지에 응답하여 푸시백 상호대화를 종료하는 단계 - 상기 종료하는 단계는 복수의 데이터 프레임 중 하나의 데이터 프레임을 디스플레이와 공동평면상에 디스플레이하는 단계를 포함함 -
를 포함하는, 네비게이팅하는 방법. - 청구항 12 항에 있어서,
네비게이팅 동안 데이터 공간 내 연속하는 점들 사이에서 제스처 동안 신체의 변위의 물리적 거리와 논리적 거리 간에 매핑하는 단계 - 상기 맵핑하는 단계는 데이터 공간 내 복수의 데이터 프레임의 상대 변위 및 각각의 이산 데이터 프레임의 외관 중 적어도 하나를 제어하는, 네비게이팅하는 방법. - 청구항 12 항에 있어서, 활동 존과 비활동 존을 포함하는 제스처 상호작용 공간을 형성하는 것을 포함하며, 활동 존은 디스플레이에 인접하며, 비활동 존은 활동 존에 인접해 있고, 상기 제스처 신호에 응답하여 데이터 공간을 통해 네비게이팅하는 단계는 상기 제스처가 활동 영역에서 검출될 때 활성화되는, 네비게이팅하는 방법.
- 청구항 22 항에 있어서, 디스플레이 상에 렌더링되는 피드백 표시기를 포함하고, 상기 피드백 표시기는 신체가 활동 존과 비활동 존 중 하나 내에 있음을 나타내는 피드백을 디스플레이하며, 상기 피드백 표시기는 원점으로부터 신체의 물리적 오프셋을 나타내는 피드백을 디스프레이하는, 네비게이팅하는 방법.
- 청구항 1 항에 있어서, 해석하는 단계는 제스처의 정보를 제스처 표기(gesture notation)로 해석하는 단계을 포함하고, 상기 제스처 표기는 제스처 어휘(gesture vocabulary)를 나타내고, 제스처 신호는 제스처 어휘의 통신을 포함하며, 상기 제스처 어휘는 신체의 운동 관절의 상태를 나타내는 문자들의 문자열을 포함하는, 네비게이팅하는 방법.
- 시스템으로서, 상기 시스템은
신체에 의해 만들어지는 제스처를 나타내는 제스처 데이터를 수신하는 탐지기; 및
탐지기에 결합된 프로세서
를 포함하고,
상기 프로세서는 제스처 데이터로부터 제스처를 자동적으로 탐지하고, 제스처 데이터는 시간 및 물리 공간에서의 한 점에서의 신체의 순간적인 상태의 절대적 3차원 공간 위치 데이터이며, 상기 프로세서는 제스처 데이터만 이용하여 제스처를 식별하고, 상기 프로세서는 상기 제스처를 제스처 신호로 해석하고, 상기 프로세서는 제스처 신호에 응답하여 데이터 공간을 통해 네비게이팅하는 것을 제어하며, 상기 데이터 공간은 물리 공간에서 나타나는 데이터세트를 포함하는 데이터 표현 공간인, 시스템. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US9385208P | 2008-09-03 | 2008-09-03 | |
US61/093,852 | 2008-09-03 | ||
US12/417,252 US9075441B2 (en) | 2006-02-08 | 2009-04-02 | Gesture based control using three-dimensional information extracted over an extended depth of field |
US12/417,252 | 2009-04-02 | ||
US12/487,623 US20090278915A1 (en) | 2006-02-08 | 2009-06-18 | Gesture-Based Control System For Vehicle Interfaces |
US12/487,623 | 2009-06-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110058871A KR20110058871A (ko) | 2011-06-01 |
KR101616591B1 true KR101616591B1 (ko) | 2016-04-28 |
Family
ID=41797486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117007835A KR101616591B1 (ko) | 2008-09-03 | 2009-09-03 | 데이터의 공간의 주요 치수를 항해하기 위한 제어 시스템 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP2338114B1 (ko) |
JP (1) | JP5806615B2 (ko) |
KR (1) | KR101616591B1 (ko) |
CN (1) | CN102177513B (ko) |
ES (1) | ES2623816T3 (ko) |
WO (1) | WO2010028176A1 (ko) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5627314B2 (ja) * | 2010-06-24 | 2014-11-19 | キヤノン株式会社 | 情報処理装置 |
JP5645530B2 (ja) * | 2010-07-29 | 2014-12-24 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
US9952671B2 (en) | 2010-10-12 | 2018-04-24 | Nokia Technologies Oy | Method and apparatus for determining motion |
US8610831B2 (en) | 2010-10-12 | 2013-12-17 | Nokia Corporation | Method and apparatus for determining motion |
CN102238390B (zh) * | 2011-08-05 | 2013-03-20 | 中国科学院深圳先进技术研究院 | 基于图像库的视频和图像的编码解码方法与系统 |
WO2013103410A1 (en) | 2012-01-05 | 2013-07-11 | California Institute Of Technology | Imaging surround systems for touch-free display control |
WO2014107434A1 (en) | 2013-01-02 | 2014-07-10 | California Institute Of Technology | Single-sensor system for extracting depth information from image blur |
US9616350B2 (en) * | 2014-05-21 | 2017-04-11 | Universal City Studios Llc | Enhanced interactivity in an amusement park environment using passive tracking elements |
CN105589550A (zh) * | 2014-10-21 | 2016-05-18 | 中兴通讯股份有限公司 | 信息发布方法、信息接收方法、装置及信息共享系统 |
CN105865327A (zh) * | 2015-01-22 | 2016-08-17 | 成都飞机工业(集团)有限责任公司 | 基于变焦照片的相对位置的测量方法 |
DE102016216577A1 (de) * | 2016-09-01 | 2018-03-01 | Volkswagen Aktiengesellschaft | Verfahren zur Interaktion mit Bildinhalten, die auf einer Anzeigevorrichtung in einem Fahrzeug dargestellt werden |
CN108241164B (zh) * | 2016-12-26 | 2021-09-14 | 千寻位置网络有限公司 | 卫星定位系统定位空窗期内轨迹记录方法及其装置 |
CA3064764A1 (en) | 2017-05-24 | 2018-11-29 | The Trustees Of Columbia University In The City Of New York | Broadband achromatic flat optical components by dispersion-engineered dielectric metasurfaces |
CN111656707A (zh) | 2017-08-31 | 2020-09-11 | 梅特兰兹股份有限公司 | 透射型超表面透镜集成 |
CN107754225A (zh) * | 2017-11-01 | 2018-03-06 | 河海大学常州校区 | 一种智能健身教练系统 |
JP6730552B2 (ja) * | 2018-05-14 | 2020-07-29 | 株式会社ユピテル | 電子情報システム及びそのプログラム |
EP4004608A4 (en) | 2019-07-26 | 2023-08-30 | Metalenz, Inc. | APERTURE META-SURFACE AND HYBRID REFRACTIVE META-SURFACE IMAGING SYSTEMS |
EP3985484A1 (en) * | 2020-10-19 | 2022-04-20 | ameria AG | Calibration method, calibration device and control method for touchless gesture control |
WO2024205646A2 (en) | 2022-03-31 | 2024-10-03 | Metalenz, Inc. | Polarization sorting metasurface microlens array device |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0605945B1 (en) * | 1992-12-15 | 1997-12-29 | Sun Microsystems, Inc. | Method and apparatus for presenting information in a display system using transparent windows |
JP2517531B2 (ja) * | 1994-02-28 | 1996-07-24 | 株式会社エイ・ティ・アール通信システム研究所 | ステレオ画像を用いた姿勢検出装置 |
JPH0863326A (ja) * | 1994-08-22 | 1996-03-08 | Hitachi Ltd | 画像処理装置及び方法 |
US20020195548A1 (en) * | 2001-06-06 | 2002-12-26 | Dowski Edward Raymond | Wavefront coding interference contrast imaging systems |
JPH103544A (ja) * | 1996-06-14 | 1998-01-06 | Imeeji Joho Kagaku Kenkyusho | ジェスチャ認識装置 |
AU2854500A (en) * | 1999-01-20 | 2000-08-07 | Karl B. Schmidt | Methods and apparatus for providing feedback to a subject in connection with performing a task |
SE0000850D0 (sv) * | 2000-03-13 | 2000-03-13 | Pink Solution Ab | Recognition arrangement |
JP4304337B2 (ja) * | 2001-09-17 | 2009-07-29 | 独立行政法人産業技術総合研究所 | インタフェース装置 |
CN101118317B (zh) * | 2002-02-27 | 2010-11-03 | Cdm光学有限公司 | 波前编码成像系统的优化图像处理 |
JP2004213521A (ja) * | 2003-01-08 | 2004-07-29 | Canon Inc | ペン入力情報処理方法 |
US7576725B2 (en) * | 2004-10-19 | 2009-08-18 | Microsoft Corporation | Using clear-coded, see-through objects to manipulate virtual objects |
US7446766B2 (en) * | 2005-02-08 | 2008-11-04 | Seegrid Corporation | Multidimensional evidence grids and system and methods for applying same |
JP5631535B2 (ja) * | 2005-02-08 | 2014-11-26 | オブロング・インダストリーズ・インコーポレーテッド | ジェスチャベースの制御システムのためのシステムおよび方法 |
EP1926047A1 (en) * | 2006-11-21 | 2008-05-28 | STMicroelectronics (Research & Development) Limited | Artefact Removal from Phase Encoded Images |
-
2009
- 2009-09-03 EP EP09812234.4A patent/EP2338114B1/en not_active Not-in-force
- 2009-09-03 CN CN200980140293.0A patent/CN102177513B/zh not_active Expired - Fee Related
- 2009-09-03 JP JP2011526203A patent/JP5806615B2/ja not_active Expired - Fee Related
- 2009-09-03 WO PCT/US2009/055930 patent/WO2010028176A1/en active Application Filing
- 2009-09-03 KR KR1020117007835A patent/KR101616591B1/ko active IP Right Grant
- 2009-09-03 ES ES09812234.4T patent/ES2623816T3/es active Active
Also Published As
Publication number | Publication date |
---|---|
CN102177513A (zh) | 2011-09-07 |
EP2338114A1 (en) | 2011-06-29 |
EP2338114B1 (en) | 2017-03-15 |
EP2338114A4 (en) | 2011-10-05 |
CN102177513B (zh) | 2015-12-02 |
KR20110058871A (ko) | 2011-06-01 |
WO2010028176A1 (en) | 2010-03-11 |
JP2012502364A (ja) | 2012-01-26 |
ES2623816T3 (es) | 2017-07-12 |
JP5806615B2 (ja) | 2015-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101616591B1 (ko) | 데이터의 공간의 주요 치수를 항해하기 위한 제어 시스템 | |
US10061392B2 (en) | Control system for navigating a principal dimension of a data space | |
US9471149B2 (en) | Control system for navigating a principal dimension of a data space | |
US8537112B2 (en) | Control system for navigating a principal dimension of a data space | |
US8896531B2 (en) | Fast fingertip detection for initializing a vision-based hand tracker | |
US20180136734A1 (en) | Spatial, multi-modal control device for use with spatial operating system | |
US8669939B2 (en) | Spatial, multi-modal control device for use with spatial operating system | |
US9910497B2 (en) | Gestural control of autonomous and semi-autonomous systems | |
US8665213B2 (en) | Spatial, multi-modal control device for use with spatial operating system | |
KR101705924B1 (ko) | 공간 운영 시스템을 위한 공간, 다중-모드 제어 장치 | |
EP2427857A1 (en) | Gesture-based control systems including the representation, manipulation, and exchange of data | |
JP2015525381A (ja) | 相互ユーザ手追跡および形状認識ユーザ・インターフェース |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190328 Year of fee payment: 4 |