KR20180016973A - 헤드 장착 디스플레이를 위한 전자 디스플레이 안정화 - Google Patents
헤드 장착 디스플레이를 위한 전자 디스플레이 안정화 Download PDFInfo
- Publication number
- KR20180016973A KR20180016973A KR1020177027232A KR20177027232A KR20180016973A KR 20180016973 A KR20180016973 A KR 20180016973A KR 1020177027232 A KR1020177027232 A KR 1020177027232A KR 20177027232 A KR20177027232 A KR 20177027232A KR 20180016973 A KR20180016973 A KR 20180016973A
- Authority
- KR
- South Korea
- Prior art keywords
- rotation
- texture
- time
- display
- synthesizer
- Prior art date
Links
- 230000006641 stabilisation Effects 0.000 title description 4
- 238000011105 stabilization Methods 0.000 title description 4
- 238000000034 method Methods 0.000 claims abstract description 127
- 238000009877 rendering Methods 0.000 claims abstract description 41
- 238000005070 sampling Methods 0.000 claims abstract description 15
- 230000009466 transformation Effects 0.000 claims description 25
- 230000008859 change Effects 0.000 claims description 15
- 239000000872 buffer Substances 0.000 claims description 9
- 230000003139 buffering effect Effects 0.000 claims 3
- 238000000844 transformation Methods 0.000 claims 1
- 210000003128 head Anatomy 0.000 description 109
- 230000008569 process Effects 0.000 description 76
- 230000000875 corresponding effect Effects 0.000 description 29
- 239000000523 sample Substances 0.000 description 16
- 238000012937 correction Methods 0.000 description 14
- 239000011159 matrix material Substances 0.000 description 14
- 230000003287 optical effect Effects 0.000 description 14
- 230000004075 alteration Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 240000001436 Antirrhinum majus Species 0.000 description 1
- 206010040030 Sensory loss Diseases 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 206010025482 malaise Diseases 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013074 reference sample Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000004936 stimulating effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
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/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/0093—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G06T3/0093—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/18—Image warping, e.g. rearranging pixels individually
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/014—Head-up displays characterised by optical features comprising information/image processing systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Optics & Photonics (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
방법은 제1 시간에, 제1 관성 센서 샘플 스트림을 이용하여 헤드 장착 디스플레이(HMD)(102)의 제1 머리 회전의 표시를 결정하는 단계와 그리고 어플리케이션 프로세서(204)에서, 제1 머리 회전에 기초하여 텍스처(132)를 렌더링하는 단계를 포함한다. 상기 방법은 제1 시간에 후속하는 제2 시간에, 제1 관성 센서 샘플 스트림보다 높은 샘플링 레이트를 갖는 제2 관성 센서 샘플 스트림을 사용하여 상기 HMD의 제2 머리 회전의 표시를 결정하는 단계와 그리고 합성기(224)에서, 상기 제1 머리 회전과 상기 제2 머리 회전 사이의 차이에 기초하여 상기 텍스처(134)의 회전된 표시를 생성하는 단계를 더 포함한다.
Description
본 발명은 일반적으로, 헤드 장착 디스플레이 시스템들에 관한 것이며, 특히 헤드 장착 디스플레이 시스템들에서의 감소된 레이턴시 모션 보상 및 안정화에 관한 것이다.
가상 현실(VR) 시스템은 이 세계에서의 "장면들"의 완전히 컴퓨터로 생성된 3차원 이미지(entirely-computer-generated 3D imagery)를 이용하여 실세계 또는 상상 세계의 장소들의 물리적인 존재(physical presence)를 스티뮬레이션하는 환경을 복제한다. 마찬가지로, 증강 현실(AR) 시스템은 동시대에 캡쳐된 실세계의 이미지에 오버레이되는 컴퓨터로 생성된 3D 이미지를 통해 실세계의 물리적 존재를 "증강"시킨다. 따라서, VR 및 AR 시스템은 모두 실제, 증강 또는 상상의 세계에서 "존재"의 정확한 감각을 제공하고자 한다. 전형적으로, 이러한 존재감은 별개의 좌안 및 우안 디스플레이들을 제공하는 HMD(head mounted display)의 사용을 통해 지원된다(facilitate). 디스플레이들은 함께, 표현된 세계에서 장면의 입체적 또는 3D 표현을 제시하며, 제시된 장면은 사용자의 현재 포즈(즉, 묘사된 장면에 대한 기준 좌표 프레임에 대한 사용자의 머리의 위치 및 배향(orientation))에 기초하여 장면의 사용자의 상대적인 퍼스펙티브(perspective)를 반영한다.
HMD 기반의 VR 및 AR 시스템들은 3D 이미지를 디스플레이 프레임들의 시퀀스로 디스플레이하는 바, 각 디스플레이 프레임은 대응하는 검출된 헤드 포즈를 기반으로 렌더링되고 특정 시간 기간 동안 지속된다. 그러나, HMD가 일반적으로 사용자로 하여금 자유롭게 움직일 수 있도록 하기 때문에, 사용자의 머리는 프레임의 렌더링의 개시와 결과적으로 렌더링된 프레임의 디스플레이 사이의 시간에서 상당히 회전할 수 있다. 따라서, 특정 시점에서 HMD에 디스플레이되는 이미지는 사용자의 머리 움직임보다 뒤처질 수 있다. 장면 내에서의 사용자의 인지된 배향과 HMD 상에 제시되는 장면의 퍼스펙티브의 배향 사이의 이러한 불일치는 사용자의 방향 감각 상실(disorientation) 또는 종종 "가상 현실 멀미(virtual reality sickness)"로 언급되는 것을 유발할 수 있다. 따라서, 사용자 방향 감각 상실을 줄이거나 없애고, 그럼으로써 향상된 존재감을 제공하기 위해, HMD 기반의 VR 및 AR 시스템들은 모션-투-포톤 레이턴시(motion-to-photon latency)를 최소화하려고 하는 바, 즉, 사용자 머리/눈 움직임과 결과적으로 새로운 포즈에서 장면을 표시하는 포톤들이 사용자의 눈을 강타할 때와의 사이의 레이턴시를 최소화하려고 한다.
본 발명은 첨부 도면들을 참조함으로써 이 기술분야의 당업자들에게 더욱 잘 이해될 것이며, 본 발명의 다수의 특징들 및 장점들이 당업자들에게 분명해질 것이다. 서로 다른 도면들에서 동일한 도면부호들의 사용은 유사하거나 동일한 아이템들을 나타낸다.
도 1은 본 발명의 적어도 하나의 실시예에 따른 전자 디스플레이 안정화(EDS: electronic display stabilization)를 구현하는 HMD(head mounted display) 시스템을 예시하는 도면이다.
도 2는 본 발명의 적어도 하나의 실시예에 따른 도 1의 HMD 시스템의 하드웨어 구성을 예시하는 블록도이다.
도 3은 본 발명의 적어도 하나의 실시예에 따른 도 2의 HMD 시스템의 합성기(compositor)를 더욱 상세히 예시하는 블록도이다.
도 4는 본 발명의 적어도 하나의 실시예에 따른 예시적인 EDS 프로세스를 예시하는 순서도이다.
도 5는 본 발명의 적어도 하나의 실시예에 따른 다른 예시적인 EDS 프로세스를 예시하는 순서도이다.
도 2는 본 발명의 적어도 하나의 실시예에 따른 도 1의 HMD 시스템의 하드웨어 구성을 예시하는 블록도이다.
도 3은 본 발명의 적어도 하나의 실시예에 따른 도 2의 HMD 시스템의 합성기(compositor)를 더욱 상세히 예시하는 블록도이다.
도 4는 본 발명의 적어도 하나의 실시예에 따른 예시적인 EDS 프로세스를 예시하는 순서도이다.
도 5는 본 발명의 적어도 하나의 실시예에 따른 다른 예시적인 EDS 프로세스를 예시하는 순서도이다.
다음의 설명은 HMD 기반의 AR 및 VR 디스플레이 시스템들을 수반하는 다수의 특정 실시예들 및 세부 사항을 제공함으로써 본 발명의 완전한 이해를 전달하기 위한 것이다. 그러나, 본 발명은 이 특정한 실시예들 및 세부 사항에 제한되지 않으며, 이들은 단지 예시일 뿐이고, 따라서 본 발명의 범위는 하기 특허청구범위 및 이의 균등물에 의해서만 제한되도록 의도됨이 이해된다. 알려진 시스템들 및 방법들에 비추어 이 기술 분야의 당업자는 특정 설계 및 다른 필요들에 따라 어떤 수의 대안적인 실시예들에서 의도된 목적들 및 이익들을 위한 본 발명의 사용을 이해할 것이다.
도 1은 본 발명의 적어도 하나의 실시예에 따라 현실 세계 또는 상상의 세계에서 VR 또는 AR 존재를 제공하기 위한 HMD 기반의 디스플레이 시스템(100)을 도시한다. 디스플레이 시스템(100)은 사용자의 머리(104)의 움직임에 결합된 HMD(102)를 포함한다. 전형적으로, HMD(102)는 "헤드 장착 디스플레이"에 "장착된"이라는 용어에 의해 암시된 바와 같이, 사용자의 머리(104)에 스트랩으로 묶이거나(strapped) 또는 그렇지 않으면 장착된 장치를 포함하여서, HMD(102)가 사용자의 얼굴에 근접하여 고정되게 위치되고 따라서 사용자의 움직임과 함께 움직이도록 한다. 그러나, 일부 상황들에서, 사용자는 태블릿 컴퓨터 또는 다른 핸드 헬드 디바이스를 사용자의 얼굴까지 들어 올리고, 사용자의 머리에 대한 핸드 헬드 디바이스의 배향이 심지어 사용자의 머리(104)가 움직일 때에도 상대적으로 고정되도록 핸드 헬드 장치의 움직임을 제한할 수 있다. 이러한 인스턴스들에서, 이 방식으로 동작되는 핸드 헬드 디바이스는 비록 사용자의 머리(104)에게로의 물리적인 부착을 통해 "장착"되지 않더라도 HMD(102)의 구현으로 간주될 수 있다.
HMD(102)는 표면(108)과 대향하는 다른 표면(110)을 갖는 하우징(106)뿐만 아니라 사용자가 하우징(106)의 표면(108)과 마주하도록 사용자의 머리(104)에 하우징(106)을 장착하기 위한 페이스 가스킷(109) 및 스트랩들 또는 하니스(harness)의 세트(명확성을 위해 도 1에서 생략됨)를 포함한다. 도시된 실시예에서, HMD(102)는 양안 HMD(binocular HMD)이고 따라서 표면(108)에 배치된 좌안 디스플레이(112) 및 우안 디스플레이(114)를 갖는다. 디스플레이(112, 114)는 (개별적인 디스플레이 드라이버 하드웨어 컴포넌트들에 의해 구동되는 독립 디스플레이 어레이인) 개별적인 디스플레이 디바이스들로서 구현될 수 있거나 또는 디스플레이(112, 114)는 단일 디스플레이 디바이스(예컨대, 좌 및 우 "반쪽들"로 논리적으로 분할된 단일 디스플레이 어레이)로서 구현될 수 있다. 하우징(106)은 좌안 디스플레이(112)와 정렬된 접안 렌즈(eyepiece lens)(116) 및 우안 디스플레이(14)와 정렬된 접안 렌즈(118)를 더 포함한다. 대안적으로, 일부 실시예들에서, HMD(102)는 좌 및 우 접안 렌즈들(116, 118)을 통해서든 또는 중간 렌즈가 없이 직접적으로든 단일 이미지가 사용자의 양안들에 제시됨을 고려해 볼 때 단안 HMD(monocular HMD)로서 구현될 수 있다.
하기에 더욱 상세히 기술되는 바와 같이, 디스플레이 시스템(100)은 HMD(102)에서 디스플레이하기 위한 이미지를 생성하는 이미지 렌더링 시스템을 더 포함한다. 일부 실시예에서, 이미지 렌더링 시스템의 컴포넌트들은 주로 HMD(102) 자체 내에 구현된다. 예를 들어, HMD(102)는 VR/AR 어플리케이션을 실행하고 결과적인 이미지를 렌더링하는 컴퓨팅 시스템을 포함할 수 있고, HMD(102)는 무선 또는 유선 연결을 통해 로컬 또는 원격 컴퓨팅 디바이스에 연결될 수 있으며, 상기 로컬 또는 원격 컴퓨팅 디바이스는 VR/AR 어플리케이션과 관련된 다양한 데이터를 제공하는 바, 이러한 데이터는 장면에 렌더링될 객체, 동일한 세상 공간에서 동작하는 다른 사용자들의 파라미터들(예컨대, 위치), 등등을 기술한다. 다른 실시예들에서, 이미지 렌더링 시스템의 컴포넌트들의 일부 또는 전부는 HMD(102) 외부에서 구현되고, 디스플레이를 위한 이미지를 표시하는 데이터는 유선 또는 무선 연결을 통해 HMD(102)에 공급될 수 있다.
동작 시에, 디스플레이 시스템(100)은 기준 좌표 프레임에 대한 HMD(102) (및 따라서 사용자의 머리(104))의 현재 포즈(즉, 위치 및 회전 배향)를 결정하는 VR 또는 AR 어플리케이션을 실행하고, 그 다음 그 포즈와 관련된 퍼스펙티브로부터 장면의 이미지를 생성한다. 디스플레이된 이미지는 완전히 컴퓨터로 생성될 수 있거나(즉, VR 이미지) 또는 상기 이미지는 로컬 환경의 캡쳐된 이미지(예컨대, HMD(102)에 고정된 하나 이상의 이미지 센서들을 통해 캡쳐된 이미지) 및 현재의 사용자 포즈를 반영하도록 렌더링된 AR 오버레이의 조합 일 수 있다. 도 1에 도시된 바와 같이, 좌측 디스플레이 및 우측 디스플레이 모두를 갖는 구현들에서, 좌안에 특정적인 이미지(left-eye-specific imagery)는 우안 디스플레이(114)의 우안 특정적인 이미지의 렌더링 및 디스플레이와 동시적으로 좌안 디스플레이(112)에 렌더링되고 디스플레이될 수 있으며, 그럼으로써 디스플레이된 이미지에 의해 표현되는 장면의 입체적인 3D 디스플레이를 가능하게 한다.
HMD(102)가 사용자의 머리(104)에 장착되거나 또는 그렇지 않으면 사용자의 머리와 함께(in concert with) 움직이도록 제약됨에 따라, HMD(102)는 동작 동안 하나 이상의 축(예를 들어, 도시된 x, y 및 z 축)을 중심으로 상당한 회전을 경험한다. 전술한 바와 같이, 이러한 회전은 디스플레이 시스템(100)의 렌더링 및 디스플레이 레이턴시와 결합될 때, 달리 완화되지 않는 한 상당한 사용자 방향 감각 상실을 야기할 수 있다. 이를 위해, 디스플레이 시스템(100)은 전자 디스플레이 안정화(EDS) 프로세스를 사용하여, 이미지가 원래 렌더링된 이래로 발생된 사용자 머리 회전을 보상하기 위해 상기 이미지의 디스플레이 전에 상기 이미지를 워핑(warp)시키고, 따라서 HMD(102)의 렌즈를 통해 보았을 때 상기 이미지를 안정화시킨다. 적어도 하나의 실시예에서, EDS 프로세스는 어플리케이션 프로세서 및 본래의 텍스쳐를 렌더링하는데 사용되는 다른 하드웨어(본 명세서에서 "어플리케이션 하드웨어(122)"로서 지칭됨) 및 상기 텍스쳐를 워핑하고 결과적인 워핑된 디스플레이 프레임을 디스플레이하기 위해 사용되는 하드웨어(본 명세서에서 "EDS 디스플레이 하드웨어(124)"로 지칭됨)의 디커플링(decoupling)에 기초한다. 추가적으로, 이러한 디커플링은 또한, 어플리케이션 하드웨어(122)에 의해 사용되는 자이로스코프 또는 다른 관성 센서와 별개인 EDS 디스플레이 하드웨어(124)에 의한 자이로스코프 또는 다른 관성 센서의 사용을 통해, 또는 EDS 디스플레이 하드웨어(124) 및 어플리케이션 하드웨어(122) 각각에 대해 서로 다른 레이트에서의 동일한 자이로스코프의 샘플링을 통해 제공될 수 있다.
도 1의 도면(130)은 적어도 하나의 실시예에 따라 EDS 디스플레이 하드웨어(124)에 의해 사용된 EDS 프로세스를 요약한다. 블록(131)에 의해 도시된 바와 같이, 어플리케이션 하드웨어(122)는 관성 센서를 샘플링하여 초기 머리 포즈 및 초기 머리 회전을 결정하기 위해 자신의 관성 센서를 샘플링하고, 결정된 초기 머리 포즈 및 회전에 기초하여 디스플레이(112, 114) 각각에 대한 각각의 텍스쳐(132)(일반적으로 "프레임" 또는 "이미지"로서도 지칭됨)를 렌더링한다. 결과적인 텍스쳐들(132)의 쌍은 함께 대응하는 시점에서의 3D 장면의 뷰를 표시한다. 어플리케이션 하드웨어(122)는 렌더링된 텍스쳐들(132)의 쌍, 결정된 초기 머리 회전의 표시, 및 머리 회전이 결정된 시점(예를 들어, 초기 머리 회전을 결정하는데 사용되는 최종 센서 샘플이 수신된 때)을 나타내는 타임스탬프를 ESD 디스플레이 하드웨어(124)에 제공한다. 이 렌더링 프로세스는 본 명세서에서 "렌더링 레이트 X"로 표시된 텍스쳐 렌더링 레이트에서 수행된다.
독립적으로, EDS 디스플레이 하드웨어(124)는 본 명세서에서 "디스플레이 프레임 레이트 Y"로 표시된 디스플레이 레이트에서 대응하는 렌더링된 텍스쳐(132)에 기초하여 디스플레이(112, 114) 각각에서 디스플레이하기 위해 하나 이상의 디스플레이 프레임을 생성 및 스캔(scan out)하도록 동작한다. 그러나, 텍스쳐(132)를 렌더링하는데 있어서의 레이턴시 및 이를 디스플레이하기 위해 준비함에 있어서의 텍스쳐(132)의 다른 프로세싱 때문에, 사용자의 머리(104)는 텍스쳐(132)를 렌더링하기 위해 어플리케이션 하드웨어(122)에 의해 사용되는 포즈로부터 감지가능하게(perceptibly) 회전되었을 가능성이 있다. 즉, 텍스쳐(132)가 렌더링되어 준비가 완료(ready)된 무렵에는, 상기 텍스쳐는 자신이 나타내는 머리 배향이 더이상 사용자의 머리(104)의 현재 배향이 아니라는 점을 고려해 볼 때 "오래된(stale)" 것일 수 있다. 따라서, 블록(133)에 의해 예시된 바와 같이, 다음 디스플레이 프레임의 스캔을 위한 준비(예를 들어, vsync 신호의 어설션) 시, EDS 디스플레이 하드웨어(124)는, 가장 최근의 머리 회전을 나타내는 업데이트된 머리 회전을 결정하고 그리고 이 업데이트된 머리 회전(122)으로부터 중간(interim) 머리 회전 즉, 어플리케이션 하드웨어(122)가 텍스쳐(132)의 렌더링을 개시한 이래로 발생된 머리 회전을 결정하기 위해, EDS 관성 센서에 액세스한다. 그 다음, EDS 디스플레이 하드웨어(124)는 중간-회전-보상 워핑된 텍스쳐(interim-rotation-compensated warped texture)(134)를 생성하기 위해 이러한 중간 머리 회전에 기초하여 각각의 텍스쳐(132)를 워핑하는 바, 이는 디스플레이된 이미지 또는 프레임으로서 대응하는 디스플레이(112, 114)로 스캐닝될 수 있다.
적어도 하나의 실시예에서, EDS 디스플레이 하드웨어(124)에 의해 이용되는 워핑 프로세스는 중간 머리 회전에 기초하여, 어플리케이션 하드웨어(122)에 의해 결정된 본래의 머리 회전 및 어플리케이션 하드웨어(122)에 의해 결정된 업데이트된 머리 회전으로부터의 호모그래피(homography) 회전의 결정, 및 워핑 또는 수정된 텍스쳐(134)를 생성하기 위한 텍스쳐(132)에 대한 (선형 변형(transform)의 형태로) 이러한 호모그래피 회전의 적용을 포함한다. 또한, 접안 렌즈들(116, 118)은 접안 렌즈들을 통해 굴절될 때 분리되는 상이한 파장의 광으로 인해 광학 왜곡(distortion)뿐만 아니라 색수차(chromatic aberrations) 또는 색분리(color separation)를 도입할 수 있고, 따라서 EDS 디스플레이 하드웨어(124)에 의해 이용되는 워핑 프로세스는 광학 왜곡, 색수차, 렌즈들의 에지를 향한 다크닝, 다른 소스들로부터의 합성 텍스쳐, 등등을 보상할 수 있다. 하기에 더욱 상세히 기술되는 바와 같이, 호모그래피 회전에 의해 제공되는 중간 워핑은, 보상 왜곡(또는 "전치 왜곡(predistortion)")을 도입하기 위해 왜곡/색수차 보정 프로세스에 의해 이용되는 룩업 테이블(LUT) 값들에 호모그래피 회전을 적용하고, 그 다음 호모그래피 회전 및 다른 보정/보상 프로세스들을 동시에 구현하도록 결과적인 수정된 LUT 값을 텍스쳐(132)에 적용함으로써 구현될 수 있다.
어플리케이션 하드웨어(122) 및 EDS 디스플레이 하드웨어(124)에 의한 별개의 자이로스코프들 또는 다른 관성 센서들의 사용, 또는 어플리케이션 하드웨어(122) 및 EDS 디스플레이 하드웨어(124)에 대한 동일한 관성 센서의 상이한 샘플링 레이트의 사용은 어플리케이션 하드웨어(122) 및 EDS 디스플레이 하드웨어(124)가 실질적으로 독립적으로 동작하게 하면서도, 상당한 머리 회전에 비춘 모션-투-포턴 레이턴시를 감소시킨다. 이러한 독립성은 또한, 어플리케이션 하드웨어(122)가 EDS 디스플레이 하드웨어(124)의 디스플레이 프레임 레이트 Y보다 작은 렌더링 레이트 X(즉, X <Y)로 텍스쳐들(132)을 렌더링하게 한다. 이와 같이, 어플리케이션 하드웨어(122)는 더 낮은 성능 상태(lower performance state)를 동작시킬 수 있고, 따라서 디스플레이 시스템(100)에 의한 전력 소비 및 열 발생을 감소시킬 수 있거나 또는 EDS 디스플레이 하드웨어(124)는 어플리케이션 하드웨어(122)가 텍스쳐들을 렌더링할 수 있는 레이트보다 빠른 레이트로 프레임들을 디스플레이할 수 있다. 예시를 위하여, 어플리케이션 하드웨어(122)가 텍스쳐들이 60 프레임/초 (또는 60 헤르츠) (즉, 렌더링 레이트 X = 60Hz)의 레이트로 렌더링되는 성능 상태에서 동작한다고 가정한다. 이 레이트에서, 텍스쳐는 16.67 밀리 초(ms)마다 렌더링된다. 그러나, 예를 들어, 100도/초(100 degrees/second)의 머리 회전 레이트에서, 사용자의 머리는 16ms 중간에 1.6도 회전했을 수 있으며, 따라서 렌더링된 텍스쳐에 의해 표현되는 장면에서 팔의 길이에 있는 객체는 사용자가 그렇지 않을 경우 사용자의 현재의 머리 포즈에 기초하여 이 객체를 인지했을 수 있는 곳으로부터 약 2.8 센치미터 또는 약 엄지의 폭만큼 현저하게 "오프셋"될 수 있다. 그러나, EDS 디스플레이 시스템(124)이 120 프레임/초의 레이트로(즉, 디스플레이 프레임 레이트 Y = 120Hz) 프레임들을 디스플레이하도록 동작한다고 가정하면, 두 개의 디스플레이 프레임들이 동일한 텍스쳐로부터 생성될 수 있는 바, 하나의 디스플레이 프레임은 텍스쳐가 렌더링된 시간으로부터 8ms에서 검출된 중간 머리 회전에 기초하여 워핑된 것이고, 제2 디스플레이 프레임은 그후 8ms 후에 검출된 후속적인 중간 머리 회전에 기초하여 워핑된 것이다. 다시 한번, 100도/초의 머리 회전 속도를 가정하면, "고려되지 않은(unaccounted for)" 머리 회전은 단지 최대 0.8 도일 것이며 따라서, 디스플레이 프레임에서 표시되는 팔 길이에 있는 객체의 포지션과 사용자가 그렇지 않으면 사용자의 머리(104)의 현재 포즈에 기초하여 상기 객체를 인지했을 수 있는 포지션과의 사이에 단지 최대 1.4 cm의 잠재적인 오프셋을 초래할 수 있다.
어플리케이션 하드웨어(122) 및 EDS 디스플레이 하드웨어(124)가 서로 다른 레이트들로 동작하도록 하는 것에 추가적으로, 어플리케이션 하드웨어 및 EDS 디스플레이 하드웨어의 디커플링은 또한, 디스플레이 시스템(100)이 어플리케이션 하드웨어(122)에 의해 드롭된 프레임들로부터 더욱 쉽게 복구(recover)할 수 있게 한다. 이는 EDS 디스플레이 하드웨어(124)가 EDS 관성 센서로부터 결정된 머리 회전 업데이트들에 기초하여 새로운 디스플레이 프레임들에 대해 이전의 텍스쳐(132)를 계속 워핑함으로써 드롭된 텍스쳐(132)를 보상할 수 있기 때문이다.
많은 구현들에서, 디스플레이(112, 114)는 래스터-스캔 방식으로(on a raster-scan basis) 동작하는 디스플레이 디바이스를 포함한다. 즉, 픽셀 데이터의 라인들은 전형적으로 "래스터 스캔 순서"로서 지칭되는 순서로 스캔되어 순차적으로 디스플레이된다. 대부분의 래스터 스캔 디스플레이들에서 스캔(scan out)은 전형적으로, 픽셀들의 상단 행으로 개시되고 픽셀들의 하단 행으로 스캔 다운된다. 텍스쳐 렌더링 및 디스플레이를 위한 텍스쳐의 후속 프로세싱과 마찬가지로, 이 래스터 스캔 프로세스는 모션-투-포톤 레이턴시에 악영향을 주는 레이턴시를 도입한다. 예시를 위해, 예를 들어, 60Hz의 디스플레이 레이트에서, 최악의 경우의 시나리오에서, 디스플레이 시스템은 디스플레이 프레임의 스캔을 완료하기 위해 16ms를 취할 수 있으며, 최종 행은 상단 행으로부터 약 16ms 후에 스캔된다. 따라서, 이 스캔 레이턴시는 특히 프레임의 하단을 향한 행들에 표시된 객체들에 대해 사용자에게 포지션적 불협화음(positional dissonance)을 도입할 수 있다. 이 효과(effect)는, 세로 배향으로 일반적으로 작동하고 디바이스를 가로 배향으로 재배 향함으로써(예컨대, Google Cardboard VR 헤드셋에서 발견되는 바와 같이, 측면 상으로 터닝된 컴퓨팅 인에이블 셀룰러 폰을 용도 변경함(repurposing)으로써) HMD(102)에 통합되는 디바이스를 포함하는 HMD(102)의 구현에서 특히 두드러진다. 이러한 인스턴스들에서, 래스터 스캔 오더는 그 다음, 수평 방향으로 이어지는 바(run), 이 방향은 또한 대부분의 머리 회전이 발생할 가능성이 있는 방향이며, 따라서, 모션-투-포톤 레이턴시 효과를 악화시킨다.
따라서, 래스터 스캔 디스플레이들을 이용하는 HMD(102)의 구현들에서의 스캔 지연을 보상하기 위해, 전술한 EDS 프로세스는 슬라이스 단위로(on a per-slice basis) 수행될 수 있으며, 각 슬라이스는 디스플레이 프레임의 스캔 라인들 중 하나 이상의 서브세트를 나타낸다. 즉, 각각의 슬라이스가 디스플레이를 위해 순차적으로 프로세스됨에 따라, EDS 디스플레이 하드웨어(124)는 그 슬라이스에 대한 업데이트된 머리 회전을 결정하고, 그 슬라이스에 대한 업데이트된 머리 회전에 기초하여 새로운 호모그래피 회전을 결정하고, 그 슬라이스로 표시되는 디스플레이 프레임의 부분을 워핑하기 위해 그 슬라이스에 상기 새로운 호모그래피 회전을 적용시킬 수 있다. 이러한 방식으로, 머리 회전으로 인한 효과(impact) 및 래스터 스캔 순서로 인한 레이턴시는 슬라이스가 사용자에게 디스플레이되는 실제 시점과 더욱 근접하게 정렬되는 중간 머리 회전에 의해 각 슬라이스를 워핑함으로써 완화될 수 있다.
EDS 디스플레이 하드웨어(124)가 어플리케이션 하드웨어(122)가 머리 회전을 결정하는 것보다 높은 주파수에서 업데이트된 머리 회전을 결정하기 때문에, 적어도 하나의 실시예에서 EDS 디스플레이 하드웨어(124)는 어플리케이션 하드웨어(122)에 의해 사용되는 자이로스코프(또는 다른 관성 센서)의 샘플링 주파수 (예를 들어, 100-400Hz)보다 상당히 큰 샘플링 주파수(예를 들어, 1kHz 이상)를 가지는 자이로스코프를 구현하며, 따라서 디스플레이를 위해 렌더링된 텍스쳐를 회전 워핑하도록 동작할 때, HMD(102)의 가장 최근의 머리 회전을 더욱 세밀하게 결정하는 데 필요한 향상된 회전 해상도(resolution)를 EDS 디스플레이 하드웨어(124)에 제공한다. 대안적으로, 단일 자이로스코프가 구현될 수 있으며, 그럼으로써 이 자이로스코프의 센서 상태는 어플리케이션 하드웨어(122)에 대한 제1 샘플 스트림을 생성하기 위해 레이트 X로 샘플링되고, 또한, ESD 디스플레이 하드웨어(124)에 대한 제2 샘플 스트림을 생성하기 위해 레이트 Y (Y > X)로 샘플링된다. 따라서, 2 개의 별개의 자이로스코프들 또는 다른 관성 센서들에 대한 참조는 또한, 동일한 자이로스코프 또는 다른 샘플 레이트를 갖는 다른 관성 센서로부터의 2 개의 참조 샘플 스트림일 수 있다.
도 2는 본 발명의 적어도 하나의 실시예에 따른, 전도 1의 디스플레이 시스템(100)의 이미지 렌더링 및 디스플레이 시스템의 예시적인 하드웨어 구성(200)을 도시한다. 상기에 언급된 바와 같이, 하드웨어 구성(200)은, 사용자의 머리(104) 또는 HMD(102)의 현재 포즈들로부터의 장면들을 표시하는 VR 또는 AR 컨텐츠를 렌더링하도록 하는 VR 또는 AR 어플리케이션(본 명세서에서 "VR/AR 어플리케이션(202)"이라 지칭됨)의 실행에 지향된 어플리케이션 하드웨어(122)를 포함하고, VR 또는 AR 컨텐츠는 각각의 눈에 대한 텍스쳐들의 시퀀스를 포함한다. 하드웨어 구성(200)은 텍스쳐들의 시퀀스에 의해 표현되는 VR 또는 AR 컨텐츠의 디스플레이로 지향된 EDS 디스플레이 하드웨어(124)를 더 포함하며, EDS 디스플레이 하드웨어(124)는 렌더링된 텍스쳐들 간의 중간 머리 회전을 보상하기 위한 EDS 프로세스를 구현한다.
도시된 예에서, 하드웨어 구성(200)은 어플리케이션 프로세서(204), 시스템 메모리(206), 센서 허브(208) 및 관성 관리 유닛(210)을 포함한다. 일부 실시예들에서, HMD(102)는 시각적 로컬라이제이션(visual localization) 또는 시각적 원격측정(visual telemetry)의 목적으로, 또는 AR 기능을 지원하는 로컬 환경에서 캡쳐된 이미지의 실시간 디스플레이를 위해 이미지 캡쳐를 통합할 수 있다. 그러한 실시예들에서, 하드웨어 구성(200)은 예를 들어, 하나 이상의 이미지 센서들 (212, 214) 및 구조화된-광(structured-light) 또는 타임-오브-라이트(ToF) 깊이 센서(216)를 더 포함할 수 있다.
어플리케이션 IMU(210)은 예를 들어 자이로스코프(218), 자력계(220) 및 가속도계(222)를 포함하여 HMD(102)의 포즈의 트랙킹을 지원하는 하나 이상의 관성 센서들을 포함한다. Bosch Gmbh의 Sensortec(TM) BMI160은 IMU(210)의 상업적으로 이용가능한 구현의 일례이다. 센서 허브(208)는 IMU(210), 이미징 센서들(212, 214), 및 깊이 센서(216)에 결합되고, 어플리케이션 프로세서(204)및 IMU(210), 이미징 센서들(212, 214), 깊이 센서(216) 및 디스플레이 시스템(100)의 다른 센서들 사이의 제어 시그널링 및 데이터의 전달을 관리하도록 동작한다. Mobidius Ltd.의 Myriad(TM) 2 비전 프로세싱 유닛(VPU)(204)는 센서 허브(208)의 상업적으로 이용가능한 구현의 일례이다. 어플리케이션 프로세서(204)는 하나 이상의 프로세싱 유닛들(CPUs), 그래픽 프로세싱 유닛들(GPUs), 또는 하나 이상의 CPU들 및 하나 이상의 GPU들의 조합을 포함한다. Qualcomm Incorporated의 Snapdragon(TM) 810 MSM8994 SoC(system-on-a-chip)는 어플리케이션 프로세서(204)의 상업적으로 사용가능한 구현의 일례이다.
도시된 예에서, EDS 디스플레이 하드웨어(124)는 합성기(224), 좌안 디스플레이(112), 우안 디스플레이(114) 및 EDS IMU(226)를 포함한다. 합성기(224)는 예를 들어, ASIC, 프로그램가능한 로직 또는 이들의 조합으로서 구현될 수 있는 하드웨어 디바이스이며, 좌안 디스플레이(112)를 구동하기 위한 좌측 디스플레이 제어기(228) 및 우안 디스플레이(114)를 구동하기 위한 우측 디스플레이 제어기(230)를 포함한다. EDS IMU(226)는 자이로스코프(232)와 같은 EDS 디스플레이 하드웨어(124)에 대한 HMD(102)의 머리 회전을 트랙킹하기 위한 하나 이상의 관성 센서들을 포함한다. 상기 논의된 바와 같이, 2 개의 별개의 자이로스코프들(218, 232)을 구현하기 보다는, 단일 자이로스코프가 두 개의 서로 다른 샘플 스트림들을 생성하기 위해 서로 다른 샘플링 레이트들로 샘플링될 수 있는 바, 하나는 자이로스코프(218)로서 역할을 하고, 다른 하나는 자이로스코프(232)로서 역할을 하며, 여기서 자이로스코프(218)에 대한 참조는 이 단일 자이로스코프로부터 생성된 제1 샘플 스트림에 대한 참조이고, 자이로스코프(232)에 대한 참조는 비록 더 높은 샘플 레이트에서이지만, 이 단일 자이로스코프로부터 역시 생성된 제2 샘플 스트림에 대한 참조이다.
동작 시, 어플리케이션 프로세서(204)는 사용자에 대한 VR/AR 기능을 제공하기 위해 (예를 들어, 시스템 메모리(206)에 저장된) VR/AR 어플리케이션(202)을 실행한다. 이 프로세스의 일부로서, VR/AR 어플리케이션(202)은 렌더링 레이트 X에서 각각의 눈에 대한 텍스쳐들의 시퀀스(예를 들어, 도 1의 텍스쳐들(132))를 렌더링하기 위해 어플리케이션 프로세서(204)를 조작한다. 각각의 텍스쳐는 전체적으로 컴퓨터로 생성된 시각적 컨텐츠 또는 (이미징 센서들(212, 214)을 통해) 캡쳐된 이미지와 컴퓨터로 생성된 오버레이의 조합인 시각적 컨텐츠를 포함할 수 있다. 각 텍스쳐의 시각적 컨텐츠는 텍스쳐가 결정되는 시간에 사용자의 머리의 대응하는 포즈(또는 HMD(102)의 포즈)로부터의 장면을 나타낸다. 따라서, 각각의 텍스쳐를 렌더링하기 위한 준비에서, 어플리케이션 프로세서(204)는 IMU(210)의 자이로스코프(218), 자력계(220) 및 가속도계(222)로부터 현재 샘플들을 획득하고, 이들 관성 센서 판독들로부터 사용자의 머리의 현재 포즈 및 회전을 결정한다. 현재의 포즈 및 회전을 결정하기 위해 IMU(210)를 사용하는 대신에, 또는 그에 부가하여, 어플리케이션 프로세서(204)는 하나 이상의 시각적 원격측정 또는 SLAM(simultaneous localization and mapping) 기법들을 이용하여 현재 포즈 및 회전을 결정, 검증 또는 수정하기 위해 하나 이상의 이미지 센서들 또는 깊이 센서들로부터의 정보를 사용한다. 결정된 머리 포즈로부터, 어플리케이션 프로세서(204)는 결정된 머리 배향 및 회전으로부터의 장면의 입체 뷰를 함께 나타내는 한 쌍의 텍스쳐들을 렌더링한다. 렌더링된 텍스쳐들의 쌍은 그 다음, 시스템 메모리(206) 또는 별개의 그래픽 메모리의 일부일 수 있는 디스플레이 메모리(234)에 구현된 프레임 버퍼에 저장된다.
병렬로, 합성기(224)는 렌더링된 텍스쳐들에 기초하여 디스플레이 프레임들을 생성하고 생성된 디스플레이 프레임에 기초하여 디스플레이(112, 114)를 구동하도록 동작한다. 이 프로세스의 일부로서, 합성기(224)는 디스플레이 프레임이 디스플레이(112, 114)에 디스플레이되는 시간에 실제 머리 포즈와 보다 밀접하게 정렬된 디스플레이 프레임들의 쌍을 생성하도록 중간 머리 회전을 결정하고 상기 중간 머리 회전에 기초하여 텍스쳐들의 쌍을 워핑시키기 위해 EDS 프로세스를 구현한다.
도 3 내지 도 5를 참조하여 아래에서 더욱 상세하게 기술되는 바와 같이, 일부 실시예들에서, 합성기(224)는 자이로스코프(218)로부터의 샘플들로부터 어플리케이션 프로세서(204)에 의해 결정된 초기 머리 회전과, 자이로스코프(232)로부터의 샘플들로부터 합성기(224)에 의해 결정된 업데이트된 머리 회전 간의 차이에 기초하여 중간 머리 회전을 결정한다. 이와 같이, 일부 실시예들에서, 자이로스코프(218) 및 자이로스코프(232)는 이들이 HMD(102)에 의한 소정 회전 운동에 대해 유사한 회전을 등록하도록 정밀하게 캘리브레이션된다. 더욱이, 자이로스코프 (218, 232)가 정확하게 동기화되고, 따라서 이들 각각의 센서 샘플들이 시간적으로 상관될 수 있도록 보장하는 것을 돕기 위해,. 적어도 하나의 실시예에서, 하드웨어 구성(200)은 예를 들어, 어플리케이션 하드웨어(122) 및 EDS 디스플레이 하드웨어(124)의 컴포넌트들 간에 공통 클럭 신호("CLK"로 표시됨)를 분배하는 클럭 참조(236)의 형태로 동기화 메커니즘을 포함한다.
도 3은 본 발명의 적어도 하나의 실시예에 따른 EDS 디스플레이 하드웨어(124)의 예시적인 구현을 나타낸다. 도시된 예에서, EDS 디스플레이 하드웨어(124)의 합성기(224)는 구성 저장소(302), 통합기 컴포넌트(integrator component)(304) 및 (도 2의 디스플레이 제어기들(228, 230) 중 어느 하나를 나타내는) 디스플레이 제어기(306)를 포함한다. 디스플레이 제어기(306)는 중간 회전 변환 컴포넌트(308) 및 텍스쳐 워핑 컴포넌트(310)를 포함한다. 중간 회전 변환 컴포넌트(308)는 중간 회전 계산 컴포넌트(312) 및 호모그래피 회전 컴포넌트(314)를 포함할 수 있다. 이 컴포넌트들의 동작들은 하기에 더욱 상세히 기술된다.
FIG. 도 4 및 도 5는 도 2 및 도 3의 하드웨어 구성(200)의 컨텍스트에서 EDS 프로세스의 예시적인 구현을 도시한다. 특히, 도 4의 EDS 프로세스(400)는 결정된 중간 머리 회전에 기초하여 텍스쳐가 회전되고 그 다음, 광학 및 크로매틱 왜곡들이 결과적으로 회전된 텍스쳐에 적용되는 예시적인 EDS 프로세스를 도시하는 반면, 도 5의 EDS 프로세스(500)에서는, 렌더링 프로세스 동안 텍스쳐가 광학적으로 왜곡되고, 결과적으로 왜곡된 텍스쳐는 "비왜곡(undistorted)"되고, 회전 변환되고, 그 다음 "재왜곡"된다. 아래에서 더 설명되는 바와 같이, EDS 프로세스(500)는 어플리케이션 프로세서(204)가 텍스쳐를 사전 왜곡하게 함으로써 ESD 프로세스(400)에 비해 어플리케이션 프로세서(204)와 합성기(224) 사이의 대역폭 요건들을 감소시키고 따라서, 텍스쳐에서 디스플레이 해상도를 초과하는 어떤 마진의 필요를 제거하되, 추가적인 컴퓨테이션들, 더욱 많은 메모리 액세스들 및 추가적인 샘플링 단계들로 인한 품질의 손실을 갖는다.
이제 도 4를 참조하여, EDS 프로세스(400)는 AR 또는 VR 컨텐츠의 렌더링 및 디스플레이를 준비함에 있어 디스플레이 시스템(100)의 개시로 시작한다. 상기 주목한 바와 같이, 어플리케이션 하드웨어(122) 및 EDS 디스플레이 하드웨어(124)가 별개의 자이로스코프들을 사용할 수 있기 때문에, 초기화 프로세스는 블록(402)에서 센서 허브(208) 또는 디스플레이 시스템의 다른 컴포넌트가 자이로스코프들(218, 232)를 개별적으로 그리고 서로에 관하여 캘리브레이션하는 것을 포함한다. 동일한 자이로스코프가 자이로스코프들(218, 232)로서 구현하기 위해 서로 다른 샘플 레이트들의 2 개의 서로 다른 샘플 스트림을 생성하는 데 사용되는 경우, 초기화 프로세스는 예를 들어, 이들 각각의 샘플 스트림들 각각에 대한 샘플링 레이트들을 구성하는 것을 포함할 수 있다. 또한, 블록(404)에서, 디스플레이 시스템(100)은 디스플레이 프레임 생성 프로세스 동안 합성기(224)에 의해 이용되는 다양한 파라미터들을 초기화하고 이들 파라미터들을 합성기(224)의 구성 저장소(302)에 저장한다.
예시를 위해, 상기 기술된 바와 같이, HMD(102)의 접안 렌즈들(116, 118)은 디스플레이된 이미지들에 광학 및 크로매틱 왜곡들을 도입하는 바, 상기 디스플레이된 이미지들은 디스플레이되기 전에 정정 왜곡(corrective distortion)을 통해 역행(counteract)될 수 있다. 전형적으로, 이러한 정정 프로세스는 비선형 왜곡 프로세스이고 따라서, 변환 매트릭스의 적용을 통해 쉽게 구현될 수 없다. 대신에, 텍스쳐 공간(textured space)으로부터 왜곡된 스크린 공간으로의 변환은 예컨대, 왜곡 변환의 이산(discretization)을 표시하는 2D 룩업 테이블(LUT)을 통해 구현될 수 있는 바, 각각의 눈은 좌안 및 우안 각각에 대한 2D LUT들(316, 318)(도 3)과 같은 개별적인 2D LUT를 할당받는다. 각 LUT 엔트리는 (색수차 보정을 가능하게 하기 위해 각 컬러에 대해 하나씩) 세 쌍의 텍스쳐 좌표들을 포함한다. 저장 요건들을 줄이기 위해, 각 2D LUT는 디스플레이 해상도에 비해 상대적으로 낮은 해상도로 구현될 수 있다. 예를 들어, 각각의 2D LUT는 디스플레이(112, 114)의 해상도의 1/10을 가질 수 있고 따라서, 1440x1440의 디스플레이 해상도에 대해, 2D LUT들(316, 318) 각각은 144x144 LUT 엔트리들을 가질 수 있다. 그러한 경우에, 주어진 픽셀 위치 주변의 LUT 엔트리들 사이의 선형 보간이 왜곡 변환에 사용될 수 있다.
블럭(404)에서 초기화되어 구성 저장소(302)에 저장된 파라미터들은 또한, 좌안과 우안 각각에 대해 하나씩 그리고 대응하는 눈에 대한 눈으로부터의 텍스쳐 변환(texture-from-eye transform)을 나타내는, 한 쌍의 프로젝션 매트릭스들(320, 322)(도 3)을 포함한다. 여기에 설명된 예들에서, 프로젝션 행렬들(320, 322) 각각은 대응하는 4x4 행렬로서 구현된다. 초기화되어 구성 저장소(302)에 저장된 파라미터들은 또한, 디옵터 설정들 또는 동공 간 거리(IPD) 설정들과 같은 다른 구성 설정들(323)을 포함할 수 있다. 적어도 하나의 실시예에서, 블록(404)의 초기화 프로세스는 2D LUT들(316, 318) 또는 프로젝션 파라미터 행렬들(320, 322)의 구성에 영향을 줄 수 있는 대체적인 HMD(102) 또는 디스플레이 시스템(100)의 어떤 광학 파라미터 변화들에 응답하여 반복될 수 있다.
초기화가 완료되면, 그 다음, EDS 프로세스(400)는 병행하여 동작하는 2 개의 서브-프로세스들(406, 408)로 스플릿되며, 서브-프로세스(406)는 어플리케이션 하드웨어(122)에 의해 수행되고 서브-프로세스(408)는 EDS 디스플레이 하드웨어(124)에 의해 수행된다. 서브-프로세스(406)는 사용자의 헤드(104)/HMD(102)의 현재 포즈의 퍼스펙티브로부터 3D 장면을 나타내는 텍스쳐들의 쌍을 렌더링하는 프로세스를 나타낸다. 따라서, 서브-프로세스(406)의 반복(iteration)은 단계(410)에서 어플리케이션 프로세서(204)가 현재의 머리 포즈 및 회전을 결정하기 위해 어플리케이션 IMU(210)의 관성 센서들에 액세스하는 것으로 개시된다. 이는 전형적으로, 현재의 머리 회전을 결정하기 위해 자이로스코프(218)로부터 하나 이상의 센서 샘플들을 얻는 것을 포함한다. 블록(412)에서, 어플리케이션 프로세서(204)는 블록(410)에서 결정된 머리 포즈 및 회전에 기초하여 각각의 눈에 대해 하나씩 한 쌍의 텍스쳐들(324, 325)(도 3)에 (VR/AR 어플리케이션(202)에 의해 특정된 바와 같이) 3D 장면을 렌더링한다. 적어도 하나의 실시예에서, 어플리케이션 프로세서(204)는 단계(410)에서 결정된 머리 회전을 사용하고, 머리 회전과 관련된 시간으로부터 미래의 어떤 특정된 시점까지의 머리 회전의 변화를 예측한다. 상기 주목된 바와 같이, 어플리케이션 프로세서9204)는 디스플레이 메모리(234) 내의 저장을 위한 텍스쳐들을 렌더링한다. EDS 프로세스(400)에서, 렌더링된 텍스쳐들(324, 325)은 비왜곡되고(즉, 광학적 및 색수차 정정을 위해 수정적으로(correctively) 사전 왜곡되지 않고), 따라서 렌더링된 텍스쳐들(324, 325)의 사이즈는 디스플레이들(112, 114)의 해상도 및 (사용자가 디옵터 조정을 수행하거나 IPD를 조정하는 경우와 같이 실행시에 변할 수 있는) 다양한 광학 파라미터들의 함수이며, 디스플레이들(112, 114)의 해상도보다 다소 크다. 예를 들어, 1440x1440 픽셀들의 디스플레이 해상도에 대해, 각각의 디멘션에서 예를 들어 540 픽셀들의 마진을 포함하고 따라서 2000x2000의 픽셀 해상도를 갖는 비왜곡된 텍스쳐들(324, 325)을 렌더링하는 것이 적절하다.
블록(414)에서, 어플리케이션 프로세서(204)는 블록(410)에서 결정된 머리 회전의 표시 및 이 머리 회전을 결정하기 위해 사용된 최종 자이로스코프 센서 샘플과 관련된 타임 스탬프의 표시를 합성기(224)에 전송한다. 적어도 하나의 실시예에서, 머리 회전의 표시는 퀀터니언(quaternion)("q1"로 표시됨)을 포함한다. 특히, 퀀터니언(q1)은 최종 자이로스코프 센서 샘플로부터 검출된 회전으로부터 어떤 미래 시점에서의 예측되는 머리 회전까지의 회전 델타를 나타낼 수 있다. 다른 실시예들에서, 머리 회전(또는 예측된 회전 델타)은 예를 들어, 직교 행렬로서 표현될 수 있다. 퀀터니언(q1) 및 타임 스탬프의 제공은 텍스쳐들의 쌍(324, 325)을 렌더링하기 위해 어플리케이션 프로세서(204)에 의해 사용된 머리 회전뿐만 아니라 머리 회전이 결정되거나 또는 그렇지 않으면 획득되는 시점을 EDS 디스플레이 하드웨어(124)에 신호하는 역할을 한다. 텍스쳐들의 쌍(324, 325)이 렌더링되고 머리 회전이 시그널링된 타임스탬프에 대응하면, 흐름은 블록(410) 및 서브-프로세스(406)의 다음 반복으로 리턴된다. 상기 주목한 바와 같이, 텍스쳐 렌더링 프로세스는 X 텍스쳐 렌더링/초의 레이트로 수행되고, 따라서 서브-프로세스(406)의 반복들은 X 반복들/속도의 레이트로 수행된다.
서브-프로세스(406)의 텍스쳐 렌더링 동작들과 동시에, EDS 디스플레이 하드웨어(124)는 가장 최근에 렌더링된 텍스쳐들의 쌍(324, 325)으로부터 이미지 프레임들을 생성 및 디스플레이하기 위해 서브-프로세스(408)의 반복을 수행한다. 따라서, 서브-프로세스(408)의 반복에 의한 새로운 텍스쳐들의 쌍(324, 325)의 렌더링이 대응하는 서브-프로세스(408)의 반복을 트리거한다. 초기에, 블록(416)에서, EDS 디스플레이 하드웨어(124)는 가장 최근의 텍스쳐들의 쌍(324, 325)의 생성을 노트(note)하고, 중간 회전 계산 컴포넌트(312)는 어플리케이션 프로세서(204)로부터 대응하는 머리 회전을 나타내는 퀀터니언(q1)을 수신한다.
상기 주목한 바와 같이, 디스플레이 시스템(100)은 슬라이스 단위로 EDS 프로세스를 사용할 수 있으며, 그럼으로써 각 슬라이스는 디스플레이 프레임의 하나 이상의 스캔 라인들/ 픽셀 행들을 나타낸다. 따라서, 슬라이스는 디스플레이 프레임의 스캔 라인들의 서브 세트일 수 있거나 또는 일부 예들에서, 디스플레이 프레임은 큰 단일 슬라이스를 구성하는 것으로 고려될 수 있다. 따라서, 이하의 프로세스의 설명을 용이하게 하기 위해, "슬라이스"라는 용어는, 구현들에서 디스플레이 프레임의 스캔 라인들의 서브 세트를 지칭할 수 있거나 - 상기 구현들은 슬라이스가 이러한 방식으로 구현되는 구현들임 - 또는 "슬라이스"는 EDS 프로세스가 프레임 단위로 수행되는 구현들에서 전체 디스플레이 프레임을 지칭할 수 있다.
가장 최근의 텍스쳐에 기초한 디스플레이 프레임의 슬라이스의 디스플레이를 준비함에 있어서, 블록(418)에서 중간 회전 계산 모듈(312)은 업데이트된 머리 회전(즉, 사용자 또는 HMD(102)의 머리 회전의 현재 측정)을 획득한다. 적어도 하나의 실시예에서, 업데이트된 머리 회전은 EDS IMU(226)의 자이로스코프(232)에 결합된 통합기 컴포넌트(304)에 의해 제공된다. 통합기 컴포넌트(304)는 자이로스코프(232)로부터 k개의 가장 최근 자이로스코프 센서 샘플들(328)(도 3)을 저장하기 위한 슬라이딩 윈도우 버퍼(328)(도 3)뿐만 아니라 대응하는 자이로스코프 샘플(328)의 수신 또는 생성의 시간과 관련된 타임스탬프를 포함하며, 상기 타임스탬프는 클럭 참조 CLK에 동기화된다. 따라서, 업데이트된 머리 회전을 획득하기 위해, 중간 회전 계산 컴포넌트(312)는 블록(414)에서 어플리케이션 프로세서(204)에 의해 공급된 퀀터니언(q1)과 관련된 타임 스탬프를 통합기 컴포넌트(304)에 제공하고, 통합기 컴포넌트(304)는 퀀터니언(도 3 및 도 4에서 "q2"로 표시됨) 또는 자이로스코프(232)에 의해 측정된 특정 시점으로부터의 머리 회전의 다른 표시를 획득하도록 어플리케이션 프로세서(204)에 의해 공급된 타임스탬프와 동일하거나 또는 이에 후속적인 타임스탬프를 갖는 것으로 식별된 슬라이딩 윈도우 버퍼(326) 내의 자이로스코프 샘플들(325)을 전방 통합(forward integrate)하도록 동작한다. 통합기 컴포넌트(304)에 의해 공급되는 퀀터니언 q2은 타임스탬프에 의해 표시되는 시점으로부터 현재 시점까지의 회전 델타의 표시를 포함할 수 있다. 이러한 경우에서, 어플리케이션 프로세서(204)에 의해 공급된 퀀터니언 q1은 시간 A와 시간 I 사이에 발생될 예측된 회전 변화를 나타내며, 퀀터니언 q2는 시간 A와 시간 J 사이에 발생된 추정 또는 측정된 회전 변화를 나타내는 바, I와 J는 서로 다른 시점일 수 있다.
블록(420)에서, 호모그래피 회전 컴포넌트(314)는 어플리케이션 프로세서(204)에 의해 결정된 초기 머리 회전과 블록(418)에서 결정된 업데이트된 머리 회전 간의 호모그래피 회전을 결정한다. 즉, 호모그래피 회전 컴포넌트(314)는 대응하는 텍스처를 렌더링하기 위해 애플리케이션 프로세서(204)에 의해 이용되는 머리 회전과 통합기 컴포넌트(304)에 의해 측정된 최근의 머리 회전 사이의 중간 머리 회전을 나타내는 호모그래피 회전 변환을 결정한다. 보다 상세하게는, 상기 주목한 바와 같이, 어플리케이션 프로세서(204)에 의해 공급된 퀀터니언 q1은 공급된 타임스탬프에 의해 표시된 시간 A로부터 미래의 시간 I까지의 회전 델타의 예측을 포함하는 반면, 통합기 컴포넌트(304)에 의해 공급된 퀀터니언 q2은 시간 A로부터 현재 시간 J까지의 회전 델타의 표시를 포함할 수 있다. I 및 J가 서로 다른 시점일 수 있음에 따라, 텍스쳐들의 쌍(324, 325)을 렌더링하기 위한 토대로서 역할을 하는 예측된 머리 회전은 현 시점까지 실제로 발생된 머리 회전과 일치하지 않을 수 있고, 따라서 호모그래피 회전 컴포넌트(314)에 의해 결정된 호모그래피 회전은 이 중간 머리 회전(즉, 텍스쳐를 렌더링하기 위해 이용되는 머리 회전과 현재 시점까지 발생한 실제 머리 회전 간의 차이)을 정정하거나 또는 보상하기 위해 이용된다.
따라서, 적어도 하나의 실시예에서, 중간 회전 계산 컴포넌트(312)는 텍스쳐들의 쌍의 렌더링이 어플리케이션 프로세서(204)에 의해 개시된 이래로 중간에 발생한 머리 회전을 나타내는 퀀터니언("Aq"로 표시됨)을 결정하는 바, 즉 퀀터니언 Aq은 퀀터니언 q1과 q2 사이의 차이(Aq = q1 - q2), 또는 어플리케이션 프로세서(204)에 의해 결정된 회전량과 합성기(224)에 의해 결정된 회전량 사이의 차이로서 결정된다. 그 다음, 호모그래피 회전 컴포넌트(314)는 프로젝션 파라미터 행렬들(318, 320)에 액세스하고, 대응하는 눈에 대한 퀀터니언 Aq 및 프로젝션 파라미터 행렬(예를 들어, 4x4 행렬들(318, 320)에 기초한 4x4 행렬들)을 사용하여 각 눈에 대해 하나씩 호모그래피 회전 변환의 쌍을 컴퓨팅한다. 예시를 위해, 이 컴퓨테이션은 다음 의사 코드로 표현될 수 있다:
여기서, "texture_old_from_texture_new_matrix"는 새로운 텍스쳐 공간으로부터 오래된 텍스쳐 공간으로 변환하는 호모그래피 회전 매트릭스이고, "texture_from_eye_matrix"는 프로젝션 매트릭스이고, "eye_old_from_eye_new_matrix"는 퀀터니언 Aq를 4x4 매트릭스로 변환함으로써 획득되는 회전 매트릭스이고, "eye_from_texture_matrix"는 프로젝션 매트릭스의 역(inverse)이다.
블록(422)에서, 합성기(224)는 중간 머리 회전에 비추어 슬라이스를 회전시키도록 대응하는 텍스쳐의 선택된 슬라이스에 블록(420)에서 결정된 한 쌍의 호모그래피 회전 변환들의 쌍의 각각을 적용하고, 대응하는 텍스쳐의 선택된 슬라이스에 적용하고, 블록(424)에서 합성기(224)는 회전된 슬라이스에 광학 왜곡 정정 및 색수차 정정 중 하나 또는 둘 모두를 적용한다. 호모그래피 회전이 선형 변환이기 때문에, 호모그래피 회전은 광학/색수차 정정 프로세스에 대해 사용되는 2D LUT들에 적용될 수 있고, 그 다음, 결과적으로 수정된 2D LUT들이 대응하는 슬라이스에 적용될 수 있다. 즉, 렌즈에 의해 유도된 광학 왜곡 및 크로매틱 왜곡들을 보상하기 위해 추가된 보상 왜곡 자체가 회전될 수 있으며, 그 다음, 이 회전된 보상 왜곡은 텍스쳐를 회전시키고 동시에 적절한 정정 왜곡을 적용하도록 텍스쳐에 적용될 수 있다.
따라서, 도 4에 도시된 실시예에서, 블록들(422 및 424)의 프로세스들은 호모그래피 회전 컴포넌트(314)에 의해 구현될 수 있고, 블록(423)에서 구성 저장소(302)로부터 2D LUT들(316, 318)에 액세스하고, 워핑된 2D LUT 부분(330)(도 3)을 생성하기 위해 현재의 슬라이스에 대응하는 2D LUT(316)의 부분에 좌안에 대한 호모그래피 회전 변환을 적용하고, 워핑된 2D LUT 부분(332)(도 3)을 생성하기 위해 현재의 슬라이스에 대응하는 2D LUT(318)의 부분에 우안에 대한 호모그래피 회전 변환을 적용한다. 그 후, 텍스쳐 워핑 컴포넌트(310)는 블록(425)에서, 좌안 및 우안 디스플레이 프레임들 각각에 대한 각각의 회전-워핑 및 왜곡된 슬라이스들을 생성하도록 현재의 슬라이스와 관련된 텍스쳐들(324, 325)의 부분들 각각에 워핑된 2D LUT 부분들(330, 332)을 적용한다. 상기 주목한 바와 같이, 광학/크로매틱 정정 프로세스에 사용되는 2D LUT들은 대응하는 디스플레이 프레임보다 낮은 해상도를 가질 수 있고, 따라서 텍스쳐 워핑 컴포넌트(310)는 대응하는 워핑된 2D LUT의 텍스쳐 좌표들(LUT 엔트리들) 사이에서 이중선형(bi-linear)적으로 보간하고, 최종 픽셀 컬러를 컴퓨팅하기 위해 이중선형 필터링을 사용하여 대응하는 텍스쳐를 세 번(각 컬러마다 한 번씩) 샘플링 하는 바, 이는 그 다음 디스플레이의 대응하는 픽셀 위치를 밝히는(lighting) 데 사용하기 위해 대응하는 디스플레이에 스캔된다.
전술한 바와 같이, 일부 실시예들에서, 합성기(224)는 슬라이스 단위로 각각의 텍스쳐를 프로세싱하는 바, 각 슬라이스는 슬라이스에 대한 업데이트된 머리 회전 퀀터니언에 기초하여 워핑된 회전이다. 그러나, 일부 구현들에서, 이 프로세스는 슬라이스 내에 전단 아티팩트(shearing artifacts)를 도입할 수 있다. 따라서, 일부 실시예들에서, 합성기(224)는 선단 정정 프로세스를 이용할 수 있는 바, 그럼으로써 합성기(224)는 슬라이더의 선단 에지(즉, 슬라이스의 제 1 라인)가 디스플레이되는 시간에 대한 머리 회전 쿼터니언 및 슬라이스의 종단 에지(즉, 슬라이스의 마지막 라인)가 디스플레이되는 시간에 대한 머리 회전 쿼터니언을 예측하고, 슬라이스의 리인들에 걸쳐 이 두개의 예측된 회전들 사이의 머리 회전들을 선형적으로 보간한다. 즉, 각각의 연속적인 라인은 2 개의 추정된 머리 회전들 사이의 이러한 선형 보간에 기초하여 이전 라인의 머리 회전에 대한 증분 조정으로 회전 워핑된다. 이는 각 슬라이스 내에서의 머리 회전 워핑을 매끄럽게하는 효과를 가진다. 순차적으로 텍스쳐의 각 슬라이스를 프로세싱하는 것은 또한, 연속적인 슬라이스들 사이에 티어링 아티팩트(tearing artifacts)들을 도입할 수 있다. 따라서, 일부 실시예들에서, 합성기(224)는 또한, 티어링 정정 프로세스를 사용할 수 있으며, 그럼으로써 합성기(224)는 (전술한 바와 같이) 이전 슬라이스의 종단 에지에 대해 추정된 머리 회전 퀀터니언을 다음 슬라이스의 선단 에지에 대한 머리 회전 퀀터니언으로서 (이 머리 회전 퀀터니언과 다음 슬라이스의 종단 에지에 대해 추정된 머리 회전 쿼터니언 사이의 선형 보간법을 계속 사용하면서) 이용하며, 그럼으로써 슬라이스들 간의 회전 변환을 매끄럽게 한다.
다른 실시예들에서, 호모그래피 회전 컴포넌트(314)는 텍스쳐 워핑 컴포넌트(310)에 호모그래피 회전 변환들의 쌍을 제공하며, 상기 텍스쳐 워핑 컴포넌트는 먼저, 회전-워핑된 텍스쳐들을 생성하기 위해 호모그래피 회전 변환들을 본래의 텍스쳐들에 적용하고, 그 다음, 좌안 디스플레이 프레임 및 우안 디스플레이 프레임 각각에 대응하는 왜곡된 회전-워핑된 슬라이스를 생성하기 위해 본래의 2D LUT들(316, 318)을 사용하여 별개의 광학/크로매틱 정정 프로세스를 수행한다. 각 접근법에서, 블록(426)에서, 결과적으로 회전-워핑된 왜곡된 슬라이스들 각각은 디스플레이들(112, 114) 중 대응하는 하나에 스캔되고 사용자의 대응하는 눈에 디스플레이된다. 비록, 도 4는 블록(426)의 스캔 프로세스를 슬라이스에 대한 회전/왜곡 프로세스들이 완료된 후에 발생하는 것으로서 도시하지만, 일부 구현들에서는 슬라이스에 대한 회전 워핑 및 왜곡 프로세스 및 스캔 프로세스는 동시에 발생할 수 있다. 이러한 접근법에서, 슬라이스의 스캔 라인의 회전-워핑/왜곡 프로세싱이 완료된 후, 스캔 라인은 회전-워핑/왜곡 프로세스가 다음 라인에 대해 시작되는 동안 대응하는 디스플레이에 스캔될 수 있다.
회전-워핑 및 광학/크로매틱 정정 프로세스들이 슬라이스에 대해 완료되면, 서브-프로세스(408)는 블록(418)으로 리턴하여 디스플레이 프레임(또는 이전 슬라이스가 디스플레이 프레임의 마지막 슬라이스이면 다음 디스플레이 프레임)의 다음 슬라이스에 대한 다른 반복을 개시한다. 상기 주목한 바와 같이, EDS 디스플레이 하드웨어(124)는 프레임 레이트 Y에서 디스플레이 프레임을 스캔하도록 동작하며, Y는 어플리케이션 하드웨어(122)의 텍스쳐 렌더링 레이트 X보다 상당히 높을 수 있다. 따라서, 서브-프로세스(408)의 반복들을 통해, EDS 디스플레이 하드웨어(124)는 어플리케이션 하드웨어(122)에 의해 렌더링되는 각각의 텍스쳐 쌍에 대해 다수의 디스플레이 프레임들을 생성 및 디스플레이할 수 있다. 그러나, 이와 같이 생성된 각각의 디스플레이 프레임이 대응하는 업데이트된 머리 회전에 기초하여 텍스쳐 쌍에 의해 표시되는 본래의 퍼스펙티브로부터 회전됨에 따라, 각각의 디스플레이된 프레임은 사용자의 인식된 퍼스펙티브에 더욱 밀접하게 부합(adhere)하는 장면의 퍼스펙티브를 제시하며, 따라서 사용자의 방향 감각 상실을 완화시키는 역할을 한다. 더욱이, 디스플레이 프레임들을 생성하는 프로세스는 텍스쳐 렌더링 프로세스로부터 다소 분리(decouple)되기 때문에, 디스플레이 시스템(100)은 어플리케이션 하드웨어(122)에 의해 드롭된 프레임들에 더욱 복원력있다(resilient).
이제 도 5의 EDS 프로세스(500)를 참조하면, 이 프로세스는 AR 또는 VR 컨텐츠의 렌더링 및 디스플레이에 대한 준비에 있어 디스플레이 시스템(100)의 개시로 시작되는 바, 이는 EDS 프로세서(400)의 블록들(402 및 404)을 참조하여 상기 논의된 바와 유사한, 블록(502)에서의 자이로스코프들(218, 232)의 캘리브레이션 및 동기화 및 블록(505)에서의 합성기(224)에 의해 이용되는 파라미터들의 초기화를 포함한다. 그러나, LUT들(316, 318) 및 프로젝션 파라미터 행렬들의 쌍(320, 322)을 초기화하는 것에 추가적으로, 블록(505)의 초기화 프로세스는 하기에 더욱 상세히 기술되는 바와 같이, 왜곡된 텍스쳐를 "비왜곡시키기" 위해 사용되는 2D LUT(도시되지 않음)의 초기화를 더 포함할 수 있다. 그러나, 이러한 비왜곡 LUT는 광학적으로 왜곡된 텍스쳐를 비왜곡시키기 위해서만 사용되며 따라서, 비왜곡된 LUT의 각 LUT 엔트리는 LUT들(316, 318)에 대한 LUT 엔트리 당 3 개의 텍스쳐 좌표들에 비하여 단 하나의 텍스쳐 좌표를 갖는다.
초기화 후, EDS 프로세스(500)는 동시에 동작하는 2 개의 서브-프로세스(506, 508)로 분할되는 바, 서브-프로세스(506)는 어플리케이션 하드웨어(122)에 의해 수행되고 서브-프로세스(508)는 EDS 디스플레이 하드웨어(124)에 의해 수행된다. 서브-프로세스(506)는 EDS 프로세스(400)의 서브-프로세스(406)에 대응하고, 따라서 사용자의 머리(104)/HMD(102)의 현재 포즈 및 회전의 퍼스펙티브로부터 3D 장면을 나타내는 한 쌍의 텍스쳐들을 렌더링하는 프로세스를 나타낸다. 따라서, 서브-프로세스(506)의 반복은 블록(510)에서 시작하여 어플리케이션 프로세서(204)가 현재의 머리 포즈 및 회전을 결정하고, 블록(512)에서, 블록들(410, 412)에 관하여 상기 설명한 바와 유사하게 현재 머리 포즈 및 회전에 기초하여 한 쌍의 텍스쳐를 렌더링한다, 그러나, EDS 프로세스(500)에서, 서브-프로세스(506)는 텍스쳐들의 쌍(324, 325)을 생성하기 위해 블록(512)에서 렌더링된 텍스쳐 쌍에 광학 왜곡 정정 프로세스를 적용하는 추가적인 프로세스를 포함한다. 따라서, 도 5의 실시예에서, 텍스쳐들(324, 325)은 접안 렌즈들(116, 118)에 의해 후속적으로 도입된 광학 수차들을 보상하기 위해 사전 왜곡된다. 텍스쳐들(324, 325)이 어플리케이션 프로세서에 의해 사전 왜곡되기 때문에, 왜곡된 텍스쳐들은 디스플레이(112, 114)의 해상도에 렌더링될 수 있고 마진이 요구되지 않는다. 예시를 위해, 상기 예에서 설명한 바와 같이, 1440x1440 픽셀들의 디스플레이 해상도의 경우, 왜곡없이 렌더링된 텍스쳐들(324, 325)은 2000x2000 또는 4,000,000 픽셀들의 픽셀 해상도를 요할 수 있다. 그러나, 텍스쳐가 사전 왜곡된 경우, 마진이 요구되지 않기 때문에, 동일한 디스플레이 해상도에 대해 왜곡을 갖는 렌더링된 텍스쳐들(324, 325)은 1440x1440 또는 2,073,600 픽셀들의 픽셀 해상도만을 요할 수 있다. 이와 같이, 블록(513)에서 텍스쳐들(324, 325)을 사전 왜곡하는 프로세스는 결과적으로, EDS 프로세스(400)의 비왜곡된 텍스쳐 접근법보다 40 % 이상 적은 저장 공간을 요하는 텍스쳐들의 쌍을 생성한다. 서브-프로세스(506)는 또한, 블록(414)을 참조하여 위에서 설명한 바와 유사하게, 블록(514)에서 머리 회전을 나타내는 퀀터니언 q1(또는 머리 회전 델타) 및 대응하는 타임스탬프를 합성기(224)에 송신하는 프로세스를 포함한다. 그 다음, 서브-프로세스(506)의 다음 반복이 텍스쳐 렌더링 레이트 X에서 다음 텍스쳐들의 쌍에 대해 수행된다.
서브-프로세스(506)의 텍스쳐 렌더링 동작들과 동시에, EDS 디스플레이 하드웨어(124)는 가장 최근에 렌더링된 텍스쳐들의 쌍(324, 325)으로부터 이미지 프레임들을 생성 및 디스플레이하기 위해 서브-프로세스(508)의 반복들을 수행한다. 따라서, 서브-프로세스(506)의 반복에 의한 새로운 텍스쳐들의 쌍(324, 325)의 렌더링은 서브-프로세스(508)의 대응하는 반복을 트리거링한다. 초기에, 블록(516)에서, EDS 디스플레이 하드웨어(124)는 가장 최근의 텍스쳐들의 쌍(324, 325)의 생성을 노트하고 중간 회전 계산 컴포넌트(312)는 어플리케이션 프로페서(204)로부터 대응하는 머리 회전을 나타내는 퀀터니언 q1을 수신한다.
블록(513)에서 텍스쳐들(324, 325)이 사전 왜곡되었기 때문에, 텍스쳐들(324, 325)은 회전 워핑 전에 "비왜곡"되어야 한다. 따라서, 서브-프로세스(508)는 블록(512)에서 왜곡된 텍스쳐들(324, 325)을 비왜곡시키는 추가적인 프로세스를 포함한다. 따라서, 텍스쳐 워핑 컴포넌트(310)는 블록(504)에서 초기화된 비왜곡 LUT들의 쌍에 액세스할 수 있고, 비왜곡된 텍스쳐를 생성하기 위해 각각의 비왜곡 LUT를 왜곡된 텍스쳐에 적용할 수 있다. 따라서, 어플리케이션 프로세서(204)에 의한 텍스쳐들(324, 325)의 사전 왜곡이 EDS 프로세스(400)의 비왜곡된 텍스쳐들(324, 325)에 비해 왜곡된 텍스쳐들을 저장하는데 사용되는 프레임버퍼의 사이즈를 감소시킬 수 있지만, 사전 왜곡 및 그 다음 비왜곡화(undistorting)의 프로세스는 어플리케이션 프로세서(204) 및 합성기(224) 모두에 의한 추가적인 메모리 액세스 및 컴퓨테이션들을 요한다.
텍스쳐들(324, 325)이 비왜곡된 형태로 리턴되면, EDS 프로세스(500)는 EDS 프로세스(400)에 대해 상기 기술된 블록들(418, 420, 422, 424, 및 426)에 관하여 상기 기술된 바와 같이, 각 슬라이스를 회전 워핑하는 프로세스로 시작되어, 광학 및 색수차 정정 프로세스를 수행하고, 결과적으로 왜곡된 워핑된 슬라이스를 스캔한다.
전술한 많은 독창적 기능성 및 많은 독창적 원리는 ASIC들(application specific ICs)과 같은 집적 회로(IC)들과 함께 또는 이들에 구현하기에 매우 적합하다. 본 명세서에 개시된 컨셉들 및 원리들에 의해 안내될 때, 예를 들어 이용 가능한 시간, 현재의 기술 및 경제적인 고려 사항들에 의해 동기가 부여되는 가능하게는 상당한 노력 및 많은 설계 선택들에도 불구하고, 당업자는 최소한의 실험으로 그러한 IC들을 용이하게 생성할 수 있을 것으로 예상된다. 그러므로, 간략성, 및 본 발명에 따른 원리들 및 컨셉들을 모호하게 하는 어떤 위험을 최소화하기 위해, 그러한 소프트웨어 및 IC들(만일 존재한다면)에 대한 추가의 논의는 선호되는 실시예들 내의 원리들 및 컨셉들에 관한 본질적인 사항으로 제한될 것이다.
본 명세서에서, 제1 및 제2 등과 같은 관계형 용어들은 엔티티들 또는 액션들 간의 실제적인 관계 또는 순서를 반드시 요구하거나 암시함이 없이 단지 하나의 엔티티 또는 액션을 다른 엔티티 또는 액션과 구별하기 위해서 사용될 수 있다. 용어 "포함한다", "포함하는" 또는 이의 어떤 다른 변형은 비배타적인 포함을 커버하도록 의도된 것이어서, 요소들의 리스트를 포함하는 프로세스, 방법, 물품 또는 장치는 이들 요소들만을 포함하는 것이 아니라 명시적으로 열거되지 않았거나 그러한 프로세스, 방법, 물품 또는 장치에 고유한 다른 요소들을 포함할 수 있다. "~을 포함한다"가 앞에 오는 요소는 더 많은 제약들이 없이 그 요소를 포함하는 프로세스, 방법, 물품 또는 장치에서 추가적인 동일한 요소들의 존재를 배제하지 않는다. 본명세서에 사용된 용어 "다른"은 적어도 제2 또는 그 이상으로 정의된다. 본 명세서에서 사용된 용어들 "포함하는" 및/또는 "갖는"은 다른 것을 배제하지 않는 포함으로서 정의된다. 전기 광학 기술과 관련하여 본 명세서에서 사용되는 용어 "결합된 (coupled)"은 반드시 직접적일 필요는 없으며 반드시 기계적일 필요는 없지만 연결되는 것으로 정의된다. 본 명세서에서 사용된 용어 "프로그램"은 컴퓨터 시스템 상에서 실행되도록 설계된 일련의 명령어들로서 정의된다. "프로그램" 또는 "컴퓨터 프로그램"은 서브루틴, 함수, 절차, 객체 메소드, 객체 구현, 실행가능한 어플리케이션, 애플릿, 서블릿, 소스 코드, 객체 코드, 공유 라이브러리/동적 로드 라이브러리 및/또는 컴퓨터 시스템상에서 실행하도록 설계된 다른 명령어들의 시퀀스를 포함할 수 있다.
본 명세서 및 도면들은 단지 예시적인 것으로 고려되어야 하며, 따라서 본 발명의 범위는 이하의 특허 청구 범위 및 그 등가물에 의해서만 제한되도록 의도된다. 주목할 점으로서, 일반적인 설명에서 상기에 설명된 모든 활동들 또는 요소들의 전부가 요구되지 않으며, 특정 활동 또는 디바이스의 일부가 요구되지 않을 수 있으며, 기술된 것들에 추가적으로, 하나 이상의 추가의 활동들이 수행되거나 하나 이상의 추가의 요소들이 포함될 수 있다. 또한, 활동들이 나열되는 순서는 반드시 이들이 수행되는 순서일 필요가 없다. 상기 설명된 순서도의 단계들은 달리 명시하지 않는 한 어떤 순서로도 이루어질 수 있으며, 구현에 따라 단계들은 제거, 반복 및/또는 추가될 수 있다. 또한, 컨셉들은 특정 실시예들을 참조하여 설명되었다. 그러나, 당업자는 이하의 특허 청구 범위에 설명된 바와 같이 본 발명의 범위로부터 벗어남이 없이 다양한 수정들 및 변경들이 이루어질 수 있음을 이해할 것이다.
따라서, 명세서 및 도면들은 제한적인 의미가 아니라 예시적인 것으로 고려되어야 하며, 이러한 모든 수정들은 본 발명의 범위 내에 포함되는 것으로 의도된다.
이점들, 다른 장점들 및 문제들에 대한 해결책이 특정 실시예들과 관하여 상술되었다. 그러나 이점들, 장점들, 문제에 대한 해결책 및 어떤 이점, 장점 또는 해결책이 발생되게 하거나 또는 더욱 확연하게 할 수 있는 모든 특징(들)이 어떤 청구항 또는 모든 특허 청구 범위의 중대한, 요구되는, 필수적인 요소로 해석되지 않아야 한다.
Claims (20)
- 방법으로서, 헤드 장착 디스플레이(HMD)(102)를 갖는 시스템(100)에서,
제1 시간에, 제1 관성 센서 샘플 스트림을 이용하여 상기 HMD의 제1 머리 회전의 표시를 결정하는 단계와;
상기 시스템의 어플리케이션 프로세서(204)에서, 상기 제1 머리 회전에 기초하여 텍스쳐(texture)(132)를 렌더링하는 단계와;
상기 제1 시간에 후속적인 제2 시간에, 상기 제1 관성 센서 샘플 스트림과 다른 제2 관성 센서 샘플 스트림을 이용하여 상기 HMD의 제2 머리 회전의 표시를 결정하는 단계와; 그리고
상기 시스템의 합성기(compositor)(224)에서, 상기 제1 머리 회전과 상기 제2 머리 회전 사이의 차이에 기초하여 상기 텍스쳐의 회전된 표시(134)를 생성하는 단계를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 제1 머리 회전의 표시를 결정하는 단계는 상기 제1 관성 센서 샘플 스트림에 기초하여 상기 제1 시간과 후속적인 시간 사이의 예측되는 회전의 변화를 표시하는 제1 퀀터니언(quaternion)을 결정하는 것을 포함하고,
상기 제2 머리 회전의 표시를 결정하는 단계는 상기 제2 관성 센서 샘플 스트림에 기초하여 상기 제1 시간과 상기 제2 시간 사이의 측정된 회전의 변화를 표시하는 제2 퀀터니언을 결정하는 것을 포함하고, 그리고
상기 텍스쳐의 회전된 표시를 생성하는 단계는 상기 예측되는 회전의 변화와 상기 측정된 회전의 변화 사이의 차이에 기초하여 상기 회전된 표시를 생성하는 것을 포함하는 것을 특징으로 하는 방법. - 제2항에 있어서,
상기 텍스쳐의 회전된 표시를 생성하는 단계는:
상기 예측되는 회전의 변화와 상기 측정된 회전의 변화 사이의 차이에 기초하여 호모그래피 회전 변환(homography rotation transform)(316, 318)을 결정하는 것과; 그리고
상기 텍스쳐에 상기 호모그래피 회전 변환을 적용하여 워핑된 텍스쳐(warped texture)(134)를 생성하는 것을 포함하는 것을 특징으로 하는 방법. - 제2항에 있어서,
상기 텍스쳐의 회전된 표시를 생성하는 단계는:
상기 예측되는 회전의 변화와 상기 측정된 회전의 변화 사이의 차이에 기초하여 호모그래피 회전 변환(316, 318)을 결정하는 것과; 그리고
비선형 왜곡 변환(non-linear distortion transform)을 나타내는 룩업 테이블(LUT)(330, 332)에 상기 호모그래피 회전 변환을 적용하여 워핑된 LUT를 생성하는 것과;
상기 텍스쳐에 상기 워핑된 LUT를 적용하여 워핑된 텍스쳐를 생성하는 것을 포함하는 것을 특징으로 하는 방법. - 제2항에 있어서,
상기 제2 관성 센서에 의해 측정된 것으로서 상기 제1 시간과 상기 제2 시간 사이의 측정된 회전의 변화를 표시하는 제2 퀀터니언을 결정하는 것은:
상기 합성기에서, 슬라이딩 윈도우 버퍼(326)에 상기 제2 관성 센서 샘플 스트림으로부터의 센서 샘플들(328)을 버퍼링하는 것 - 각각의 버퍼링된 센서 샘플은 관련된 타임스탬프를 가짐 - 과;
상기 합성기에서, 상기 제 시간과 관련된 타임스탬프를 수신하는 것과;
상기 수신된 타임스탬프와 동일하거나 또는 상기 수신된 타임스탬프에 후속적인 타임스탬프를 갖는 하나 이상의 버퍼링된 센서 샘플들을 식별하는 것과; 그리고
상기 제1 시간과 상기 제2 시간 사이의 측정된 회전의 변화를 결정하기 위해 상기 식별된 하나 이상의 버퍼링된 센서 샘플들을 전방 통합(forward integrating)하는 것을 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 제1 관성 센서 샘플 스트림은 제1 샘플링 주파수에서 자이로스코프(218)를 샘플링함으로써 생성되는 샘플 스트림을 포함하고,
상기 제2 관성 센서 샘플 스트림은 상기 제1 샘플링 주파수보다 높은 제2 샘플링 주파수에서 상기 자이로스코프를 샘플링함으로써 생성되는 샘플 스트림을 포함하는 것을 특징으로 하는 방법. - 시스템으로서,
헤드 장착 디스플레이(HMD)(102)와;
적어도 하나의 관성 센서(218, 220, 222, 232)와;
상기 적어도 하나의 관성 센서에 결합된 어플리케이션 프로세서(204) - 상기 어플리케이션 프로세서는 제1 레이트로 텍스쳐들(132, 324, 326)을 렌더링하고, 각각의 텍스쳐에 대해, 상기 어플리케이션 프로세서는 상기 적어도 하나의 관성 센서로부터의 제1 샘플 스트림으로부터 상기 HMD의 대응하는 머리 회전을 결정하고, 상기 대응하는 머리 회전에 기초하여 상기 텍스쳐를 렌더링함 - 와; 그리고
상기 적어도 하나의 관성 센서 및 상기 어플리케이션 프로세서에 결합된 합성기(224)를 포함하며, 상기 합성기는 상기 제1 레이트와 적어도 동일한 제2 레이트로 디스플레이 프레임들(134)을 생성하고, 각각의 디스플레이 프레임에 대해, 상기 합성기는 상기 적어도 하나의 관성 센서로부터의 제2 샘플 스트림으로부터 갱신된 머리 회전을 결정하고, 상기 텍스쳐의 상기 대응하는 머리 회전과 상기 갱신된 머리 회전 사이의 차이에 기초하여 대응하는 텍스쳐의 회전된 표시로서 디스플레이 프레임을 생성하는 것을 특징으로 하는 시스템. - 제7항에 있어서,
상기 어플리케이션 프로세서는 상기 대응하는 머리 회전을 상기 제1 샘플 스트림에 기초하여 상기 제1 시간과 후속적인 시간 사이의 예측되는 회전의 변화를 표시하는 제1 퀀터니언으로서 결정하고,
상기 합성기는 상기 갱신된 머리 회전을 상기 제2 샘플 스트림에 기초하여 상기 제1 시간과 상기 디스플레이 프레임과 관련된 후속적인 시간 사이의 측정된 회전의 변화를 표시하는 제2 퀀터니언으로서 결정하고, 그리고
상기 합성기는 상기 예측되는 회전의 변화와 상기 측정된 회전의 변화 사이의 차이에 기초하여 상기 텍스쳐의 회전된 표시를 생성하는 것을 특징으로 하는 시스템. - 제8항에 있어서,
상기 합성기는:
상기 예측되는 회전의 변화와 상기 측정된 회전의 변화 사이의 차이에 기초하여 호모그래피 회전 변환(316, 318)을 결정하는 호모그래피 회전 컴포넌트(314)와; 그리고
상기 텍스쳐에 상기 호모그래피 회전 변환을 적용하여 워핑된 텍스쳐를 생성하는 텍스쳐 워핑 컴포넌트(310)를 포함하는 것을 특징으로 하는 시스템. - 제8항에 있어서,
상기 합성기는:
비선형 왜곡 변환을 나타내는 룩업 테이블(LUT)(330, 332)을 저장하는 구성 저장소(302)와;
상기 예측되는 회전의 변화와 상기 측정된 회전의 변화 사이의 차이에 기초하여 호모그래피 회전 변환(316, 318)을 결정하고 그리고 상기 LUT에 상기 호모그래피 회전 변환을 적용하여 워핑된 LUT를 생성하는 호모그래피 회전 컴포넌트(314)와; 그리고
상기 텍스쳐에 상기 워핑된 LUT를 적용하여 워핑된 텍스쳐를 생성하는 텍스쳐 워핑 컴포넌트(310)를 포함하는 것을 특징으로 하는 시스템. - 제8항에 있어서,
상기 합성기는:
통합기 컴포넌트(304)를 포함하고, 상기 통합기 컴포넌트는 상기 제2 샘플 트림을 수신하고, 관련된 타임스탬프와 함께 상기 제2 샘플 스트림으로부터의 센서 샘플들(328)을 버퍼링하는 슬라이딩 윈도우 버퍼(326)를 가지며, 상기 통합기 컴포넌트는 상기 제1 시간과 관련된 제1 샘플 스트림의 센서 샘플과 관련된 타임스탬프와 동일하거나 또는 상기 타임스탬프에 후속적인 타임스탬프를 갖는 하나 이상의 버퍼링된 센서 샘플들(328)을 식별하고, 상기 제1 시간과 상기 디스플레이 프레임과 관련된 후속적인 시간 사이의 측정된 회전의 변화를 결정하기 위해 상기 식별된 하나 이상의 버퍼링된 센서 샘플들을 전방 통합하는 것을 특징으로 하는 시스템. - 제7항에 있어서,
상기 제1 샘플 스트림은 제1 샘플링 주파수를 갖는 제1 자이로스코프(218)로부터 생성되는 샘플 스트림을 포함하고,
상기 제2 샘플 스트림은 상기 제1 샘플링 주파수보다 높은 제2 샘플링 주파수를 갖는 제2 자이로스코프(232)로부터 생성되는 샘플 스트림을 포함하는 것을 특징으로 하는 시스템. - 방법으로서, 헤드 장착 디스플레이(HMD)(102)를 갖는 시스템에서,
어플리케이션 프로세서(204)에 의해, 관성 센서(218)로부터 결정된 상기 HMD의 초기 머리 회전에 기초하여 텍스쳐(132, 324, 326)를 렌더링하는 단계와;
디스플레이 프레임을 나타내는 슬라이스들의 시퀀스의 각각의 슬라이스에 대해:
합성기(224)에서, 관성 센서(218, 232)로부터 대응하는 갱신된 머리 회전을 결정하는 단계와;
상기 합성기에서, 상기 초기 머리 회전과 상기 대응하는 갱신된 머리 회전 사이의 차이에 기초하여 상기 슬라이드에 대한 호모그래피 회전 변환(316, 318)을 결정하는 단계와;
상기 합성기에서, 상기 슬라이드에 대응하는 상기 텍스쳐의 부분에 상기 호모그래피 회전 변환을 적용하여 워핑된 슬라이스를 생성하는 단계와; 그리고
상기 워핑된 슬라이스를 디스플레이하기 위해 상기 HMD에 스캔(scanning out)하는 단계를 포함하는 것을 특징으로 하는 방법. - 제13항에 있어서,
상기 초기 머리 회전을 결정하는 것은 제1 시간과 후속적인 시간 사이의 예측되는 회전의 변화를 표시하는 제1 퀀터니언을 결정하는 것을 포함하고;
상기 갱신된 머리 회전을 결정하는 것은 상기 제1 시간과 상기 슬라이스와 관련된 제2 시간 사이의 측정된 회전의 변화를 표시하는 제2 퀀터니언을 결정하는 것을 포함하고; 그리고
상기 호모그래피 회전 변환을 생성하는 것은 상기 제1 퀀터니언과 상기 제2 퀀터니언 사이의 차이에 기초하여 상기 호모그래피 회전 변환을 생성하는 것을 포함하는 것을 특징으로 하는 방법. - 제14항에 있어서,
상기 제2 퀀터니언을 결정하는 것은:
상기 합성기에서, 슬라이딩 윈도우 버퍼(326)에 관성 센서(232)로부터의 센서 샘플들(328)을 버퍼링하는 것 - 각각의 버퍼링된 센서 샘플은 관련된 타임스탬프를 가짐 - 과;
상기 합성기에서, 상기 초기 머리 회전과 관련된 타임스탬프를 수신하는 것과;
상기 수신된 타임스탬프와 동일하거나 또는 상기 수신된 타임스탬프에 후속적인 타임스탬프를 갖는 하나 이상의 버퍼링된 센서 샘플들을 식별하는 것과; 그리고
상기 제2 퀀터니언을 결정하기 위해 상기 식별된 하나 이상의 버퍼링된 센서 샘플들을 전방 통합하는 것을 포함하는 것을 특징으로 하는 방법. - 제13항에 있어서,
상기 슬라이드에 대응하는 상기 텍스쳐의 부분에 상기 호모그래피 회전 변환을 적용하여 워핑된 슬라이스를 생성하는 단계는:
비선형 왜곡 변환을 나타내는 룩업 테이블(LUT)(316, 318)에 액세스하는 것과;
상기 슬라이스에 대응하는 상기 LUT의 부분에 상기 호모그래피 회전 변환을 적용하여 워핑된 LUT 부분(330, 332)을 생성하는 것과; 그리고
상기 텍스쳐의 부분에 상기 워핑된 LUT 부분을 적용하여 워핑된 슬라이스를 생성하는 것을 포함하는 것을 특징으로 하는 방법. - 시스템(100)으로서,
헤드 장착 디스플레이(HMD)(102)와;
적어도 하나의 관성 센서(218, 232)와;
상기 적어도 하나의 관성 센서에 결합된 어플리케이션 프로세서(204) - 상기 어플리케이션 프로세서는 상기 적어도 하나의 관성 센서로부터 결정된 상기 HMD의 초기 머리 회전에 기초하여 텍스쳐(132, 324, 326)를 렌더링함 - 와; 그리고
상기 적어도 하나의 관성 센서, 상기 어플리케이션 프로세서 및 상기 HMD의 디스플레이(112, 114)에 결합된 합성기(224)를 포함하며, 상기 합성기는 디스플레이 프레임을 표시하는 슬라이스들의 시퀀스의 각각의 슬라이스에 대해, 상기 적어도 하나의 관성 센서로부터 대응하는 갱신된 머리 회전을 결정하고, 상기 초기 머리 회전과 상기 대응하는 갱신된 머리 회전 사이의 차이에 기초하여 상기 슬라이스에 대한 호모그래피 회전 변환(316, 318)을 결정하고, 상기 슬라이스에 대응하는 텍스쳐의 부분에 상기 호모그래피 회전 변환을 적용하여 워핑된 슬라이스를 생성하고, 상기 HMD에 디스플레이하기 위해 상기 워핑된 슬라이스를 스캔하는 것을 특징으로 하는 시스템. - 제17항에 있어서,
상기 어플리케이션 프로세서는 상기 초기 머리 회전을 제1 시간과 후속적인 시간 사이의 예측되는 회전의 변화를 표시하는 제1 퀀터니언으로서 결정하고;
상기 합성기는 상기 갱신된 머리 회전을 상기 제1 시간과 상기 슬라이스와 관련된 제2 시간 사이의 측정된 회전의 변화를 표시하는 제2 퀀터니언으로서 결정하고; 그리고
상기 합성기는 상기 제1 퀀터니언과 상기 제2 퀀터니언 사이의 차이에 기초하여 상기 호모그래피 회전 변환을 생성하는 것을 특징으로 하는 시스템. - 제18항에 있어서,
상기 합성기는 통합기 컴포넌트(304)를 포함하고, 상기 통합기 컴포넌트는 상기 적어도 하나의 관성 센서에 결합되고, 관련된 타임스탬프와 함께 상기 적어도 하나의 관성 센서로부터 센서 샘플들을 버퍼링하는 슬라이딩 윈도우 버퍼(326)를 가지며, 상기 통합기 컴포넌트는 상기 초기 머리 회전을 결정하기 위해 상기 어플리케이션 프로세서에 의해 사용되는 마지막 센서 샘플과 관련된 타임스탬프와 동일하거나 또는 상기 타임스탬프에 후속적인 타임스탬프를 갖는 하나 이상의 버퍼링된 센서 샘플들을 식별하고, 상기 제2 퀀터니언을 결정하기 위해 상기 식별된 하나 이상의 버퍼링된 센서 샘플들을 전방 통합하는 것을 특징으로 하는 시스템. - 제17항에 있어서,
상기 합성기는:
비선형 왜곡 변환을 나타내는 룩업 테이블(LUT)(316, 318)을 저장하는 구성 저장소(302)와;
상기 구성 저장소에 결합된 호모그래피 회전 컴포넌트(314) - 상기 호모그래피 회전 컴포넌트는 상기 슬라이스에 대응하는 LUT의 부분에 상기 호모그래피 회전 변환을 적용하여 워핑된 LUT 부분을 생성함 - 와; 그리고
상기 텍스쳐의 부분에 상기 워핑된 LUT 부분을 적용하여 워핑된 슬라이스를 생성하는 텍스쳐 워핑 컴포넌트를 포함하는 것을 특징으로 하는 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562174602P | 2015-06-12 | 2015-06-12 | |
US62/174,602 | 2015-06-12 | ||
PCT/US2016/037203 WO2016201423A1 (en) | 2015-06-12 | 2016-06-13 | Electronic display stabilization for head mounted display |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180016973A true KR20180016973A (ko) | 2018-02-20 |
KR102292031B1 KR102292031B1 (ko) | 2021-08-20 |
Family
ID=56297103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177027232A KR102292031B1 (ko) | 2015-06-12 | 2016-06-13 | 헤드 장착 디스플레이를 위한 전자 디스플레이 안정화 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10102666B2 (ko) |
EP (1) | EP3308247A1 (ko) |
JP (1) | JP6866297B2 (ko) |
KR (1) | KR102292031B1 (ko) |
CN (1) | CN107430786A (ko) |
WO (1) | WO2016201423A1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022015020A1 (ko) * | 2020-07-13 | 2022-01-20 | 삼성전자 주식회사 | 혼합현실/증강현실을 지원하는 통신 시스템에서 3차원 미디어 데이터에 대해 지연 시간 보상 포즈 예측을 사용하는 렌더링을 수행하는 방법 및 장치 |
WO2024076087A1 (ko) * | 2022-10-06 | 2024-04-11 | 한국전자기술연구원 | 사용자의 상황 정보 예측 기반 확장현실 디바이스의 영상 스트리밍 방법 및 장치 |
WO2024117452A1 (ko) * | 2022-11-28 | 2024-06-06 | 삼성전자주식회사 | 사용자의 움직임에 대한 트래킹 정보에 기반하여 렌더링을 하기 위한 전자 장치 및 방법 |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI566229B (zh) * | 2015-06-03 | 2017-01-11 | 友達光電股份有限公司 | 顯示裝置之時序控制器及其操作方法 |
CN106293045B (zh) * | 2015-06-30 | 2019-09-10 | 北京智谷睿拓技术服务有限公司 | 显示控制方法、显示控制装置及用户设备 |
CN106331464B (zh) | 2015-06-30 | 2019-10-15 | 北京智谷睿拓技术服务有限公司 | 拍摄控制方法、拍摄控制装置及用户设备 |
CN106293046B (zh) * | 2015-06-30 | 2020-03-17 | 北京智谷睿拓技术服务有限公司 | 信息处理方法、信息处理装置及用户设备 |
US10089725B2 (en) | 2016-02-09 | 2018-10-02 | Google Llc | Electronic display stabilization at a graphics processing unit |
CN107180441B (zh) * | 2016-03-10 | 2019-04-09 | 腾讯科技(深圳)有限公司 | 生成眼睛图像的方法和装置 |
US20180061103A1 (en) * | 2016-08-29 | 2018-03-01 | Analogix Semiconductor, Inc. | Systems and Methods for Generating Display Views Tracking User Head Movement for Head-Mounted Display Devices |
KR102528318B1 (ko) * | 2016-12-26 | 2023-05-03 | 엘지디스플레이 주식회사 | 헤드 마운티드 디스플레이의 지연 측정 장치 및 방법 |
US20180191868A1 (en) * | 2017-01-03 | 2018-07-05 | Black Sails Technology Inc. | Method and System for Downloading Multiple Resolutions Bitrate for Virtual Reality (VR) Video Streaming Optimization |
DE102017200325A1 (de) * | 2017-01-11 | 2018-07-12 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren zum Betreiben eines Anzeigesystems mit einer Datenbrille in einem Kraftfahrzeug |
US10417739B2 (en) | 2017-03-23 | 2019-09-17 | Google Llc | Phase aligned foveated rendering |
US20180329465A1 (en) * | 2017-05-11 | 2018-11-15 | Qualcomm Incorporated | System and method for intelligent adjustment of an immersive multimedia workload in a portable computing device |
US10488920B2 (en) * | 2017-06-02 | 2019-11-26 | Htc Corporation | Immersive headset system and control method thereof |
GB201713051D0 (en) * | 2017-08-15 | 2017-09-27 | Imagination Tech Ltd | Low latency distortion unit for head mounted displays |
US10521881B1 (en) * | 2017-09-28 | 2019-12-31 | Apple Inc. | Error concealment for a head-mountable device |
JP6711803B2 (ja) * | 2017-10-13 | 2020-06-17 | 株式会社ソニー・インタラクティブエンタテインメント | 画像生成装置および画像生成方法 |
JP6732716B2 (ja) * | 2017-10-25 | 2020-07-29 | 株式会社ソニー・インタラクティブエンタテインメント | 画像生成装置、画像生成システム、画像生成方法、およびプログラム |
CN107801014B (zh) * | 2017-10-25 | 2019-11-08 | 深圳岚锋创视网络科技有限公司 | 一种全景视频防抖的方法、装置及便携式终端 |
US10553016B2 (en) | 2017-11-15 | 2020-02-04 | Google Llc | Phase aligned foveated rendering |
JP6978289B2 (ja) * | 2017-11-20 | 2021-12-08 | 株式会社ソニー・インタラクティブエンタテインメント | 画像生成装置、ヘッドマウントディスプレイ、画像生成システム、画像生成方法、およびプログラム |
US10741143B2 (en) * | 2017-11-28 | 2020-08-11 | Nvidia Corporation | Dynamic jitter and latency-tolerant rendering |
JP6944863B2 (ja) * | 2017-12-12 | 2021-10-06 | 株式会社ソニー・インタラクティブエンタテインメント | 画像補正装置、画像補正方法およびプログラム |
US10706813B1 (en) | 2018-02-03 | 2020-07-07 | Facebook Technologies, Llc | Apparatus, system, and method for mitigating motion-to-photon latency in head-mounted displays |
EP3521899A1 (en) * | 2018-02-03 | 2019-08-07 | Facebook Technologies, LLC | Apparatus, system, and method for achieving intraframe image processing in head-mounted displays |
EP3522150A3 (en) * | 2018-02-03 | 2020-01-01 | Facebook Technologies, LLC | Apparatus, system, and method for mitigating motion-to-photon latency in head-mounted displays |
US10559276B2 (en) * | 2018-02-03 | 2020-02-11 | Facebook Technologies, Llc | Apparatus, system, and method for mitigating motion-to-photon latency in head-mounted displays |
JP2021105749A (ja) * | 2018-03-20 | 2021-07-26 | ソニーグループ株式会社 | 情報処理装置、情報処理方法およびプログラム |
CN112313712A (zh) | 2018-04-19 | 2021-02-02 | Pcms控股公司 | 采用用于虚拟现实的预测过满填充的系统和方法 |
US10678325B2 (en) | 2018-05-22 | 2020-06-09 | Facebook Technologies, Llc | Apparatus, system, and method for accelerating positional tracking of head-mounted displays |
CN108632598A (zh) * | 2018-05-25 | 2018-10-09 | 小派科技(上海)有限责任公司 | 降低vr设备mtp延时的方法及装置 |
JP2020003898A (ja) * | 2018-06-26 | 2020-01-09 | ソニー株式会社 | 情報処理装置、情報処理方法、及びプログラム |
US11100713B2 (en) | 2018-08-17 | 2021-08-24 | Disney Enterprises, Inc. | System and method for aligning virtual objects on peripheral devices in low-cost augmented reality/virtual reality slip-in systems |
US11615767B2 (en) | 2018-10-16 | 2023-03-28 | Sony Group Corporation | Information processing apparatus, information processing method, and recording medium |
WO2020090316A1 (ja) * | 2018-11-02 | 2020-05-07 | ソニー株式会社 | 情報処理装置、情報処理方法、及びプログラム |
CN109613980B (zh) * | 2018-12-04 | 2021-01-15 | 深圳市极点信息科技有限公司 | 一种vr游戏信息处理系统 |
US11221814B2 (en) * | 2018-12-27 | 2022-01-11 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality |
CN109727305B (zh) * | 2019-01-02 | 2024-01-12 | 京东方科技集团股份有限公司 | 虚拟现实系统画面处理方法、装置及存储介质 |
EP3929900A4 (en) * | 2019-02-22 | 2022-09-07 | Sony Interactive Entertainment Inc. | IMAGING DEVICE, HEAD MOUNT DISPLAY AND IMAGING METHOD |
EP3930318A4 (en) * | 2019-02-22 | 2022-10-12 | Sony Interactive Entertainment Inc. | DISPLAY DEVICE AND IMAGE DISPLAY METHOD |
CN110351480B (zh) * | 2019-06-13 | 2021-01-15 | 歌尔光学科技有限公司 | 用于电子设备的图像处理方法、装置及电子设备 |
US20220319105A1 (en) * | 2019-07-10 | 2022-10-06 | Sony Interactive Entertainment Inc. | Image display apparatus, image display system, and image display method |
US11178379B2 (en) * | 2019-08-07 | 2021-11-16 | Magic Leap, Inc. | Determining a predicted head pose time |
US11328475B2 (en) | 2019-10-18 | 2022-05-10 | Magic Leap, Inc. | Gravity estimation and bundle adjustment for visual-inertial odometry |
JP2021067877A (ja) * | 2019-10-25 | 2021-04-30 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置、ヘッドマウントディスプレイ、および画像表示方法 |
US11061469B2 (en) | 2019-11-20 | 2021-07-13 | XRSpace CO., LTD. | Head mounted display system and rotation center correcting method thereof |
JP2021089678A (ja) * | 2019-12-05 | 2021-06-10 | 未來市股▲ふん▼有限公司 | 頭部装着型ディスプレイ・システム及び頭部装着型ディスプレイ・システムの回転中心補正方法 |
US20210192681A1 (en) * | 2019-12-18 | 2021-06-24 | Ati Technologies Ulc | Frame reprojection for virtual reality and augmented reality |
CN113129224B (zh) * | 2019-12-31 | 2023-11-28 | 精工爱普生株式会社 | 显示系统、电子设备、移动体和显示方法 |
US11561613B2 (en) * | 2020-05-29 | 2023-01-24 | Magic Leap, Inc. | Determining angular acceleration |
KR20230058712A (ko) * | 2020-09-03 | 2023-05-03 | 삼성전자주식회사 | 통신 시스템에서 컨텐츠와 디바이스들의 성능 차이 완화를 위한 방법 및 장치 |
EP4258686A4 (en) | 2021-01-13 | 2024-06-05 | Samsung Electronics Co., Ltd. | ELECTRONIC DEVICE FOR MEASURING THE POSTURE OF A USER AND METHOD THEREFOR |
US11822713B2 (en) * | 2021-06-11 | 2023-11-21 | Rockwell Collins, Inc. | Pose augmentation of head worn display video for latency reduction |
CN117812236A (zh) * | 2022-09-27 | 2024-04-02 | 万有引力(宁波)电子科技有限公司 | 图像处理器、处理方法、存储介质及扩展现实显示装置 |
CN117834829A (zh) * | 2022-09-27 | 2024-04-05 | 万有引力(宁波)电子科技有限公司 | 图像处理器、处理方法、存储介质及扩展现实显示装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015095045A (ja) * | 2013-11-11 | 2015-05-18 | 株式会社ソニー・コンピュータエンタテインメント | 画像生成装置および画像生成方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5627905A (en) | 1994-12-12 | 1997-05-06 | Lockheed Martin Tactical Defense Systems | Optical flow detection system |
US6480615B1 (en) | 1999-06-15 | 2002-11-12 | University Of Washington | Motion estimation within a sequence of data frames using optical flow with adaptive gradients |
US7724258B2 (en) | 2004-06-30 | 2010-05-25 | Purdue Research Foundation | Computer modeling and animation of natural phenomena |
US20060244757A1 (en) | 2004-07-26 | 2006-11-02 | The Board Of Trustees Of The University Of Illinois | Methods and systems for image modification |
JP4734640B2 (ja) * | 2006-02-10 | 2011-07-27 | 国立大学法人岐阜大学 | 仮想現実画像表示装置 |
US7643034B2 (en) | 2006-06-30 | 2010-01-05 | Microsoft Corporation | Synthesis of advecting texture using adaptive regeneration |
KR20110035609A (ko) * | 2009-09-30 | 2011-04-06 | 삼성전자주식회사 | 움직임 감지 장치 및 방법 |
US8773448B2 (en) | 2010-04-09 | 2014-07-08 | Intel Corporation | List texture |
US8823746B2 (en) | 2010-10-19 | 2014-09-02 | Apple Inc. | System and method for motion blur using velocity vectors |
US8860570B2 (en) * | 2011-02-03 | 2014-10-14 | SenseTech, LLC | Portable wireless personal head impact reporting system |
JP2013254300A (ja) * | 2012-06-06 | 2013-12-19 | Konica Minolta Inc | 画像処理方法 |
US20140176591A1 (en) * | 2012-12-26 | 2014-06-26 | Georg Klein | Low-latency fusing of color image data |
US9076258B2 (en) | 2013-03-14 | 2015-07-07 | Pixar | Stylizing animation by example |
US9063330B2 (en) * | 2013-05-30 | 2015-06-23 | Oculus Vr, Llc | Perception based predictive tracking for head mounted displays |
GB201310367D0 (en) | 2013-06-11 | 2013-07-24 | Sony Comp Entertainment Europe | Head-mountable apparatus and systems |
CA2963497A1 (en) * | 2013-10-03 | 2015-04-09 | Sulon Technologies Inc. | System and method for incorporating a physical image stream in a head mounted display |
US9311690B2 (en) | 2014-03-11 | 2016-04-12 | Adobe Systems Incorporated | Video denoising using optical flow |
US9652893B2 (en) | 2014-04-29 | 2017-05-16 | Microsoft Technology Licensing, Llc | Stabilization plane determination based on gaze location |
US9824498B2 (en) * | 2014-12-30 | 2017-11-21 | Sony Interactive Entertainment Inc. | Scanning display system in head-mounted display for virtual reality |
-
2016
- 2016-06-13 JP JP2017550907A patent/JP6866297B2/ja active Active
- 2016-06-13 EP EP16734090.0A patent/EP3308247A1/en not_active Withdrawn
- 2016-06-13 US US15/180,819 patent/US10102666B2/en active Active
- 2016-06-13 KR KR1020177027232A patent/KR102292031B1/ko active IP Right Grant
- 2016-06-13 CN CN201680019764.2A patent/CN107430786A/zh active Pending
- 2016-06-13 WO PCT/US2016/037203 patent/WO2016201423A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015095045A (ja) * | 2013-11-11 | 2015-05-18 | 株式会社ソニー・コンピュータエンタテインメント | 画像生成装置および画像生成方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022015020A1 (ko) * | 2020-07-13 | 2022-01-20 | 삼성전자 주식회사 | 혼합현실/증강현실을 지원하는 통신 시스템에서 3차원 미디어 데이터에 대해 지연 시간 보상 포즈 예측을 사용하는 렌더링을 수행하는 방법 및 장치 |
US12062215B2 (en) | 2020-07-13 | 2024-08-13 | Samsung Electronics Co., Ltd | Method and device for performing rendering using latency compensatory pose prediction with respect to three-dimensional media data in communication system supporting mixed reality/augmented reality |
WO2024076087A1 (ko) * | 2022-10-06 | 2024-04-11 | 한국전자기술연구원 | 사용자의 상황 정보 예측 기반 확장현실 디바이스의 영상 스트리밍 방법 및 장치 |
WO2024117452A1 (ko) * | 2022-11-28 | 2024-06-06 | 삼성전자주식회사 | 사용자의 움직임에 대한 트래킹 정보에 기반하여 렌더링을 하기 위한 전자 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN107430786A (zh) | 2017-12-01 |
US10102666B2 (en) | 2018-10-16 |
WO2016201423A1 (en) | 2016-12-15 |
US20160364904A1 (en) | 2016-12-15 |
JP6866297B2 (ja) | 2021-04-28 |
JP2018525693A (ja) | 2018-09-06 |
KR102292031B1 (ko) | 2021-08-20 |
EP3308247A1 (en) | 2018-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102292031B1 (ko) | 헤드 장착 디스플레이를 위한 전자 디스플레이 안정화 | |
KR102424864B1 (ko) | 가상 및 증강 현실 디스플레이 시스템들 및 방법들을 위한 연속 시간 와핑 및 양안 시간 와핑 | |
JP6514826B2 (ja) | ピクセル速度を用いた電子ディスプレイ安定化 | |
US11024082B2 (en) | Pass-through display of captured imagery | |
KR102093619B1 (ko) | 그래픽 프로세싱 유닛에서의 전자 디스플레이 안정화 | |
US20100026714A1 (en) | Mixed reality presentation system | |
US11582441B2 (en) | Head mounted display apparatus | |
WO2019226184A1 (en) | Apparatus, system, and method for accelerating positional tracking of head-mounted displays | |
US11218691B1 (en) | Upsampling content for head-mounted displays | |
JP3803442B2 (ja) | 立体画像表示装置 | |
JP2013207672A (ja) | 立体視用印刷物の製造方法、立体視用印刷物、画像生成方法、プログラム、情報記憶媒体及び画像生成システム | |
NZ751028B2 (en) | Continuous time warp and binocular time warp for virtual and augmented reality display systems and methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |