KR102135808B1 - 픽셀 속도들을 사용하는 전자 디스플레이 안정화 - Google Patents
픽셀 속도들을 사용하는 전자 디스플레이 안정화 Download PDFInfo
- Publication number
- KR102135808B1 KR102135808B1 KR1020187010123A KR20187010123A KR102135808B1 KR 102135808 B1 KR102135808 B1 KR 102135808B1 KR 1020187010123 A KR1020187010123 A KR 1020187010123A KR 20187010123 A KR20187010123 A KR 20187010123A KR 102135808 B1 KR102135808 B1 KR 102135808B1
- Authority
- KR
- South Korea
- Prior art keywords
- texture
- hmd device
- pixel
- velocity
- velocity field
- 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/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
- 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
- G02B27/0172—Head mounted characterised by optical features
-
- 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/0179—Display position adjusting means not related to the information to be displayed
-
- 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
-
- 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/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/285—Analysis of motion using a sequence of stereo image pairs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- H04N13/044—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
- H04N13/344—Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/366—Image reproducers using viewer tracking
- H04N13/373—Image reproducers using viewer tracking for tracking forward-backward translational head movements, i.e. longitudinal movements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/366—Image reproducers using viewer tracking
- H04N13/376—Image reproducers using viewer tracking for tracking left-right translational head movements, i.e. lateral movements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/366—Image reproducers using viewer tracking
- H04N13/378—Image reproducers using viewer tracking for tracking rotational head movements around an axis perpendicular to the screen
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/366—Image reproducers using viewer tracking
- H04N13/38—Image reproducers using viewer tracking for tracking vertical translational head movements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/398—Synchronisation thereof; Control thereof
-
- 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/0132—Head-up displays characterised by optical features comprising binocular systems
-
- 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
-
- 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/0179—Display position adjusting means not related to the information to be displayed
- G02B2027/0187—Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Optics & Photonics (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
- Controls And Circuits For Display Device (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
시스템(100)은, 적어도 하나의 디스플레이(112, 114)를 포함하는 HMD(head mounted display) 디바이스(102), 및 HMD 디바이스에 대한 포즈 정보를 제공하기 위한 적어도 하나의 센서(210)를 포함한다. 시스템은, 적어도 하나의 센서에 커플링된 센서 통합기 모듈(304) ― 센서 통합기 모듈은 포즈 정보에 기반하여 HMD 디바이스에 대한 모션 벡터를 결정하기 위한 것임 ― , 및 포즈 정보로부터 결정된 HMD 디바이스의 포즈에 기반하여 제1 텍스처(122, 322)를 렌더링하기 위한 애플리케이션 프로세서(204)를 더 포함한다. 시스템은, 제1 텍스처의 픽셀들의 적어도 서브세트에 대한 픽셀 속도를 가지는 제1 속도 필드(128, 328)를 결정하기 위한 모션 분석 모듈(302), 및 제1 텍스처, 제1 속도 필드 및 HMD에 대한 모션 벡터에 기반하여 제2 텍스처(140, 334)를 렌더링하고, 그리고 제2 텍스처를 HMD 디바이스의 디스플레이에 제공하기 위한 컴포지터(224)를 더 포함한다.
Description
본 개시내용은 일반적으로, 머리 장착형 디스플레이 시스템들에 관한 것으로, 더 상세하게는, 머리 장착형 디스플레이 시스템들에서 감소된-레이턴시 모션 보상 및 안정화에 관한 것이다.
VR(virtual reality) 시스템은 이 세계에서 "장면들"의 전적으로-컴퓨터로-생성된 3D(three-dimensional) 이미저리(imagery)를 사용하여 현실 세계 또는 상상 세계 곳곳에서의 물리적 존재를 시뮬레이트하는 환경을 복제한다. 유사하게, AR(augmented reality) 시스템은 현실 세계의 동시에 캡처된 이미저리 위에 놓이는 컴퓨터로-생성된 3D 이미저리를 통해 현실 세계에서 물리적 존재를 "증강"시킨다. 따라서, VR 및 AR 시스템들 둘 모두는 현실 세계, 증강 세계 또는 상상 세계에서 "존재"의 정확한 감지를 제공하려고 추구한다. 통상적으로, 이러한 존재의 감지는 별개의 좌안용(left-eye) 및 우안용(right-eye) 디스플레이들을 제공하는 HMD(head mounted display) 디바이스의 사용을 통해 가능해진다. 디스플레이들은 표현되는 세계에서 장면의 스테레오스코픽(stereoscopic) 또는 3D 표현을 함께 제시하며, 여기서, 제시된 장면은 사용자의 현재 포즈(pose)(즉, 묘사되는 장면에 대한 기준 좌표 프레임에 관한 사용자의 머리의 위치 및 방향)에 기반하여 장면의 사용자의 상대적 관점을 반영한다.
HMD-기반의 VR 및 AR 시스템들은 3D 이미저리를 디스플레이 텍스처들(또는 "프레임들")의 시퀀스로서 디스플레이하며, 각각의 디스플레이 텍스처는 대응하는 검출된 머리 포즈에 기반하여 렌더링되고, 특정 시간 기간 동안 지속된다. 그러나, HMD 디바이스가 일반적으로 사용자가 자유롭게 움직일 수 있도록 허용하므로, 사용자의 머리는 텍스처의 렌더링의 개시와 결과적인 렌더링된 텍스처의 디스플레이 사이의 시간에 인지가능하게 움직일 수 있다. 이로써, 특정 시점에 HMD 디바이스에 디스플레이된 이미저리는 사용자의 머리 움직임들보다 뒤처질 수 있다. 추가로, 장면에서의 가상 오브젝트들은 "모션 중"일 수 있고, 따라서, 가상 오브젝트들의 렌더링된 포지션들은 프레임이 정확한 시간에 렌더링되었을 경우 오브젝트들이 나타나야 하는 위치와 상이할 수 있다. 장면 내에서의 사용자의 인지된 방향뿐만 아니라 그 장면 내에서의 오브젝트들의 인지된 방향과, 장면 및 그 안에 포함된 오브젝트들의 실제 방향 사이의 이러한 불일치는 사용자 방향 상실(disorientation) 또는 불편, 또는 "가상 현실 병"으로 종종 지칭되는 것으로 이어질 수 있다. 따라서, 사용자의 불편을 감소시키거나 또는 제거하고, 그에 의해 개선된 존재를 제공하기 위해, HMD-기반의 VR 및 AR 시스템들은 모션-투-광자 레이턴시(motion-to-photon latency), 즉, 사용자의 머리/눈 움직임과, 결과적인 새로운 포즈로부터의 장면을 표현하는 광자들이 사용자의 눈을 히트(hit)할 때 사이의 레이턴시를 최소화하려고 추구한다.
첨부한 도면들을 참조함으로써 당업자들에 의해 본 개시내용이 더 잘 이해될 수 있으며, 당업자들에게 본 개시내용의 많은 특징들 및 이점들이 명백해진다. 상이한 도면들에서의 동일한 참조 부호들의 사용은 유사한 또는 동일한 항목들을 표시한다.
도 1은 본 개시내용의 적어도 하나의 실시예에 따른, 픽셀-속도-기반 EDS(electronic display stabilization)를 구현하는 HMD(head mounted display)-기반 디스플레이 시스템을 예시하는 다이어그램이다.
도 2는 본 개시내용의 적어도 하나의 실시예에 따른, 도 1의 HMD-기반 디스플레이 시스템의 하드웨어 구성을 예시하는 블록 다이어그램이다.
도 3은 본 개시내용의 적어도 하나의 실시예에 따른, 도 2의 HMD-기반 디스플레이 시스템의 컴포지터를 더 상세하게 예시하는 블록 다이어그램이다.
도 4는 본 개시내용의 적어도 하나의 실시예에 따른, 예시적 픽셀-속도-기반 EDS 프로세스를 예시하는 흐름 다이어그램이다.
도 1은 본 개시내용의 적어도 하나의 실시예에 따른, 픽셀-속도-기반 EDS(electronic display stabilization)를 구현하는 HMD(head mounted display)-기반 디스플레이 시스템을 예시하는 다이어그램이다.
도 2는 본 개시내용의 적어도 하나의 실시예에 따른, 도 1의 HMD-기반 디스플레이 시스템의 하드웨어 구성을 예시하는 블록 다이어그램이다.
도 3은 본 개시내용의 적어도 하나의 실시예에 따른, 도 2의 HMD-기반 디스플레이 시스템의 컴포지터를 더 상세하게 예시하는 블록 다이어그램이다.
도 4는 본 개시내용의 적어도 하나의 실시예에 따른, 예시적 픽셀-속도-기반 EDS 프로세스를 예시하는 흐름 다이어그램이다.
다음의 설명은 HMD-기반 AR 및 VR 디스플레이 시스템들을 수반하는 다수의 특정 실시예들 및 세부사항들을 제공함으로써 본 개시내용의 철저한 이해를 전달하도록 의도된다. 그러나, 본 개시내용은 단지 예들일뿐인 이러한 특정 실시예들 및 세부사항들로 제한되는 것은 아니고, 따라서, 본 개시내용의 범위는 다음의 청구항들 및 이들의 등가물들에 의해서만 제한되도록 의도된다는 것이 이해된다. 알려진 시스템들 및 방법들에 비추어, 당업자는 특정 설계 및 다른 필요성들에 따라 임의의 수의 대안적 실시예들에서 의도된 목적들 및 이익들을 위해 본 개시내용의 사용을 인식할 것이라는 것이 추가로 이해된다.
도 1은 본 개시내용의 적어도 하나의 실시예에 따른, 현실 세계 또는 상상 세계에서 VR 또는 AR 존재를 제공하기 위한 HMD-기반 디스플레이 시스템(100)을 예시한다. 디스플레이 시스템(100)은 사용자의 머리(104)의 움직임들에 커플링된 HMD 디바이스(102)를 포함한다. 통상적으로, "머리 장착형 디스플레이"에 "장착형"이라는 용어로 내포된 바와 같이, HMD 디바이스(102)는, HMD 디바이스(102)가 사용자의 얼굴에 근접하게 고정되게 포지셔닝되어서 사용자의 움직임들과 함께 움직이도록 사용자의 머리(104)에 묶이거나 또는 그렇지 않으면 사용자의 머리(104) 상에 장착된 장치를 포함한다. 그러나, 일부 상황들에서, 사용자는 사용자의 얼굴까지 태블릿 컴퓨터 또는 다른 핸드-헬드 디바이스를 들고, 사용자의 머리(104)가 움직일 때에도 사용자의 머리로의 핸드-헬드 디바이스의 방향이 비교적 고정되도록 핸드-헬드 디바이스의 움직임을 제약할 수 있다. 그러한 사례들에서, 이러한 방식으로 동작되는 핸드-헬드 디바이스는, 사용자의 머리(104)에 물리적 부착을 통해 "장착"되지 않음에도 불구하고, HMD 디바이스(102)의 구현으로 또한 고려될 수 있다.
HMD 디바이스(102)는 다른 표면(110)에 대향하는 표면(108)을 가지는 하우징(106)뿐만 아니라, 얼굴 가스킷(109), 및 사용자가 하우징(106)의 표면(108)을 향하도록 사용자의 머리(104) 상에 하우징(106)을 장착하기 위한 스트랩들의 세트 또는 하니스(harness)(명료함을 위해 도 1에서 생략됨)를 포함한다. 도시되는 실시예에서, HMD 디바이스(102)는 쌍안(binocular) HMD이며, 따라서, 표면(108)에 배치된 좌안용 디스플레이(112) 및 우안용 디스플레이(114)를 가진다. 디스플레이들(112, 114)은 별개의 디스플레이 디바이스들(즉, 별개의 디스플레이 드라이버 하드웨어 컴포넌트들에 의해 구동되는 독립적 디스플레이 어레이들)로서 구현될 수 있거나, 또는 디스플레이들(112, 114)은 단일 디스플레이 디바이스(예컨대, 논리적으로 좌측 및 우측 "절반들"로 분할되는 단일 디스플레이 어레이)의 논리적으로-분리되는 영역들로서 구현될 수 있다. 다른 실시예들에서, 단일 디스플레이가 구현될 수 있거나, 또는 2개 초과의 디스플레이들이 구현될 수 있다. 하우징(106)은 좌안용 디스플레이(112)와 정렬된 접안 렌즈(116) 및 우안용 디스플레이(114)와 정렬된 접안 렌즈(118)를 더 포함한다. 대안적으로, 일부 실시예들에서, HMD 디바이스(102)는 단일 이미지가 좌측 및 우측 접안 렌즈들(116, 118)을 통해 또는 중간 렌즈(intervening lens) 없이 직접적으로 사용자의 양 눈에 제시되는 단안(monocular) HMD로서 구현될 수 있다.
아래에서 더 상세하게 설명되는 바와 같이, 디스플레이 시스템(100)은 HMD 디바이스(102)에서의 디스플레이를 위한 이미저리를 생성하기 위한 이미저리 렌더링 시스템을 더 포함한다. 일부 실시예들에서, 이미저리 렌더링 시스템의 컴포넌트들은 주로 HMD 디바이스(102) 자체 내에서 구현된다. 예컨대, HMD 디바이스(102)는 결과적 이미저리를 렌더링하는 VR/AR 애플리케이션을 실행하는 컴퓨팅 시스템을 포함할 수 있고, HMD 디바이스(102)는 VR/AR 애플리케이션과 연관된 다양한 데이터를 제공하는 로컬 또는 원격 컴퓨팅 디바이스에 무선 또는 유선 연결을 통해 연결될 수 있으며, 그러한 데이터는 장면에 렌더링될 오브젝트들, 동일한 세계 공간(world space)에서 동작하는 다른 사용자들의 파라미터들(예컨대, 위치) 등을 설명한다. 다른 실시예들에서, 이미지 렌더링 시스템의 컴포넌트들 전부 또는 그 일부는 HMD 디바이스(102) 외부에서 구현되고, 디스플레이를 위한 이미저리를 표현하는 데이터는 유선 또는 무선 연결을 통해 HMD 디바이스(102)에 공급될 수 있다.
동작 중에, 디스플레이 시스템(100)은, 기준 좌표 프레임(즉, "세계 공간")에 관한 HMD 디바이스(102)(및 따라서 사용자의 머리(104))의 현재 포즈(즉, 포지션 및 회전 방향 중 하나 또는 둘 모두)를 결정하고, 이어서, 그 포즈와 연관된 관점(즉, "스크린 공간(screen space)")에서의 장면의 이미저리를 생성하는 VR 또는 AR 애플리케이션을 실행한다. 즉, 디스플레이 시스템(100)은 HMD 디바이스(102)의 결정된 포즈에 기반하여 HMD 디바이스(102)의 스크린 공간에 세계 공간을 맵핑하는 이미저리를 생성하여 디스플레이한다. 디스플레이된 이미저리는 전적으로 컴퓨터로-생성될 수 있거나(즉, VR 이미저리), 또는 이미저리는, 로컬 환경의 캡처된 이미저리(예컨대, HMD 디바이스(102) 상에 장착된 하나 또는 그 초과의 이미지 센서들을 통해 캡처된 이미저리)와 현재 사용자 포즈를 반영하기 위해 렌더링된 AR 오버레이(overlay)의 결합일 수 있거나, 또는 이미저리는 로컬 환경을 볼 수 있게 하는 투명한 "디스플레이" 상의 AR 오버레이일 수 있다. 도 1에 도시되는 바와 같이, 좌측 디스플레이 및 우측 디스플레이 둘 모두를 이용하는 구현들에서, 좌안용-특정 이미저리는 우안용 디스플레이(114)에서의 우안용-특정 이미저리의 렌더링 및 디스플레이와 동시에 좌안용 디스플레이(112)에서 렌더링 및 디스플레이될 수 있고, 그에 의해, 디스플레이된 이미저리로 표현되는 장면의 스테레오스코픽 3D 디스플레이를 가능하게 한다.
HMD 디바이스(102)는 사용자의 머리(104) 상에 장착되거나, 또는 그렇지 않으면 사용자의 머리와 일치하여 움직이도록 제약되므로, HMD 디바이스(102)는 동작 동안 상당한 모션을 거치며, 여기서, 이러한 모션은 하나 또는 그 초과의 축들(예컨대, 도시되는 x, y 및 z 축들)에 따른 병진(translation) 및/또는 하나 또는 그 초과의 축들(예컨대, 도시되는 롤(roll), 피치(pitch) 및 요(yaw))에 따른 회전의 형태이다. 추가로, 위에서 설명된 바와 같이, 디스플레이된 이미저리는 "모션 중"인(즉, 가상 세계 공간에 관한 포지션을 변화시키는) 오브젝트들을 포함할 수 있다. 디스플레이 시스템(100)의 렌더링 및 디스플레이 레이턴시와 결합될 때, HMD 디바이스(102)의 모션, 디스플레이된 이미저리에서의 오브젝트들의 모션은, 달리 완화되지 않는 한, 상당한 사용자 방향 상실을 초래할 수 있다. 이것을 목적으로, 디스플레이 시스템(100)은 HMD 디바이스(102)의 중간 모션뿐만 아니라 디스플레이된 오브젝트들의 중간 모션 둘 모두를 보상하기 위해 EDS(electronic display stabilization) 프로세스(120)를 활용한다.
도 1은 적어도 하나의 실시예에 따른, 디스플레이 시스템(100)에 의해 사용되는 EDS 프로세스(120)를 추가로 요약한다. 예시되는 바와 같이, 디스플레이 시스템(100)은, 특정 레이트 X 초당 프레임들(fps)로, 이를테면, 30 fps, 60 fps, 120 fps 등의 레이트로, 디스플레이들(112, 114) 각각에 대한 입력 텍스처들(122)(일반적으로 "프레임" 또는 "이미지"로 또한 지칭됨)을 렌더링한다. 적어도 하나의 실시예에서, 디스플레이 시스템(100)은 대응하는 텍스처(122)와의 소정의 시점에 대한 HMD 디바이스(102)의 포즈에 기반하여 텍스처들(122) 각각을 렌더링한다. 2개 또는 그 초과의 텍스처들(122)의 각각의 세트는 대응하는 시점에서의 3D 장면의 뷰를 함께 표현한다. 예시를 위해, 디스플레이 시스템(100)은, 예컨대, 초당 30회 업데이트 또는 매 33.33 밀리초(ms)마다 1회 업데이트의 레이트로 HMD 디바이스(102)의 포즈를 업데이트할 수 있는 반면, 텍스처들(122)은, 예컨대, 120 fps의 레이트로 렌더링되고, 따라서, 매 33.33 ms마다 생성된 업데이트된 HMD 포즈는 그 동일한 기간에 각각의 눈에 대해 생성된 4개의 텍스처들(122)을 렌더링하기 위해 사용된다.
각각의 입력 텍스처(122)가 렌더링될 때, 디스플레이 시스템(100)은 입력 텍스처(122)에서의 각각의 픽셀에 대한 속도 Vp를 결정하기 위해 모션 분석 프로세스(124)를 수행한다. 아래에서 설명되는 바와 같이, 일부 실시예들에서, 이 속도 정보는 입력 텍스처(122)를 렌더링하는 애플리케이션에 의해 공급될 수 있다. 즉, 이미저리에 표시되는 오브젝트들의 속도들은 사전-식별되거나 또는 그렇지 않으면 렌더링할 때 알려질 수 있고, 이 정보는 입력 텍스처들(122)의 렌더링을 담당하는 애플리케이션에 의해 공급될 수 있다. 다른 실시예들에서, 입력 텍스처(122)에 대한 픽셀 속도들은 픽셀 모션 추정 기법을 통해, 이를테면, 프로세싱되는 현재 텍스처(122) 및 하나 또는 그 초과의 사전 렌더링된 텍스처들(122)을 포함하는 2개 또는 그 초과의 텍스처들(122)의 시퀀스(126)에의 광학 흐름 분석의 애플리케이션을 통해 결정될 수 있다.
텍스처(122)의 픽셀들에 대한 픽셀 속도들 Vp는 엔트리들의 어레이로서 구현될 수 있는 픽셀 속도 필드(128)로서 조직화되거나 또는 표현될 수 있고, 각각의 엔트리는 텍스처(122)에서의 대응하는 위치에, 대응하는 픽셀에 대한 픽셀 속도를 저장한다. 추가로, 일부 실시예들에서, 디스플레이 시스템(100)은 깊이 버퍼, 딥 프레임 버퍼, 또는 상이한 프래그먼트들의 깊이를 추적하기 위한 다른 메커니즘을 구현할 수 있고, 따라서, 텍스처(122)의 각각의 픽셀은 하나 또는 그 초과의 프래그먼트들을 표현할 수 있으며, 심지어 폐기된 프래그먼트들을 표현할 수 있다(이들이 픽셀들/가상 오브젝트들의 모션으로 인해 향후에 폐색해제(disoccluded)될 수 있기 때문에). 따라서, 모션 분석 프로세스(124)는 그 픽셀로 표현될 수 있는 프래그먼트들 각각에 대한 픽셀에 대한 픽셀 속도를 결정하는 단계를 포함할 수 있고, 따라서, 속도 필드(128)는 픽셀당 다수의 프래그먼트들의 각각의 프래그먼트에 대한 픽셀 속도를 저장할 수 있다. 이로써, 픽셀 속도 필드(128)를 표현하는 어레이의 각각의 엔트리는 그 엔트리와 연관된 픽셀로 표현되는 각각의 프래그먼트에 대해 하나씩 다수의 픽셀 속도들을 저장할 수 있다.
모션 분석 프로세스(124)와 병렬로, 디스플레이 시스템(100)은, 디스플레이 시스템(100)이 세계 공간에 관한 HMD 디바이스(102)의 현재 모션 벡터, 즉, 표시된 "MVHMD"를 결정하기 위해 하나 또는 그 초과의 모션-기반 센서들(예컨대, 자이로스코프, 가속도계, 자력계 등)을 샘플링하는 HMD 모션 컨버전 프로세스(130)를 수행한다. 일부 실시예들에서, 이러한 현재 모션 벡터 MVHMD는, x, y 및 z 축들 중 하나 또는 그 초과를 따라 HMD 디바이스(102)의 병진의 속도 또는 미분을 표현하는 3DoF(three-degree-of-motion) 벡터, 또는 x, y 및 z 축들(즉, 롤, 피치 및 요) 중 하나 또는 그 초과의 둘레의 HMD 디바이스(102)의 회전의 속도를 표현하는 3DoF 벡터를 포함할 수 있다. 다른 실시예들에서, 현재 모션 벡터 MVHMD는 HMD 디바이스(102)의 병진 및 회전 둘 모두의 미분들을 표현하는 6DoF(six-degree-of-freedom) 모션 벡터를 포함한다. 일부 실시 예들에서, 현재 모션 벡터 MVHMD는 순간 모션 벡터로서 계산될 수 있고, 다른 실시예들에서 현재 모션 벡터 MVHMD는 예측된 모션 벡터, 즉, 향후 시간에(예컨대, 현재 텍스처(122)가 디스플레이될 것으로 예상될 향후 시점에) HMD 디바이스(102)의 모션의 예측으로서 계산될 수 있다.
현재 모션 벡터 MVHMD를 결정한 이후에, HMD 모션 컨버전 프로세스(130)는 현재 모션 벡터 MVHMD를 스크린 공간에서 HMD 디바이스(102)의 모션의 픽셀-당 속도 표현으로 컨버팅하여, 픽셀 속도 필드(128)와 같이, 엔트리들의 어레이 또는 행렬로서 구현되거나 또는 표현될 수 있는 HMD 속도 필드(132)를 초래하고, 각각의 엔트리는 대응하는 픽셀 포지션과 연관되며, 대응하는 픽셀에 대한 속도 ― "Vh"로 표시됨 ― 를 표현하는 값을 저장한다.
이어서, 디스플레이 시스템(100)은 속도 결합 프로세스(134)를 수행하며, 이로써 픽셀 속도 필드(128) 및 HMD 속도 필드(132)가 순 속도 필드(136)를 생성하도록 결합된다. 순 속도 필드(136)는 렌더링된 이미저리에서의 픽셀의 속도 및 HMD 디바이스(102)의 속도 둘 모두를 고려할 때 각각의 픽셀의 순 상대 속도를 표현한다. 따라서, 속도 필드들(128, 132)에서와 같이, 순 속도 필드(136)는 엔트리들의 어레이 또는 행렬로서 구현되거나 또는 표현될 수 있고, 각각의 엔트리는 대응하는 픽셀 포지션과 연관되고, 그 픽셀 포지션에 대한 픽셀 속도 Vp와 그 픽셀 포지션에 대한 HMD 속도 Vh 사이의 순 속도를 표현하는 순 픽셀 속도 Vnet를 저장한다(즉, Vnet = Vp + Vh). 다수의 프래그먼트들이 픽셀로 표현되는 경우, 엔트리는 그 프래그먼트에 대한 픽셀 속도 Vp를 사용하여 계산된 각각의 프래그먼트에 대한 순 픽셀 속도 Vnet를 저장할 수 있다.
그렇게 계산된 순 픽셀-당 속도들로, 디스플레이 시스템(100)은, 모션 벡터 MVHMD로 표현되는 바와 같은 사용자의 머리의 중간 모션 및 디스플레이된 이미저리에서의 가상 오브젝트들의 중간 모션 둘 모두를 보상하는 대응하는 디스플레이 텍스처(140)를 생성하기 위해 현재 입력 텍스처(122)의 픽셀들에 대한 컬러 정보가 이류(advect)되거나 또는 그렇지 않으면 순 속도 필드(136)에 기반하여 수정되는 텍스처 이류 프로세스(138)를 수행한다. 픽셀-당 깊이 정보가 또한 입력 텍스처(122)에 포함되거나 또는 입력 텍스처(122)와 연관되는 경우, 깊이 정보는 동일한 방식으로 이류된다. 예시하기 위해, 예컨대, 현재 입력 텍스처(122)가 스크린 공간에서 표시된 포지션에 픽셀들의 그룹으로 구성되는 가상 오브젝트(142)를 포함하지만 우측으로 약간의 속도를 가진다고 가정한다. 추가로, 사용자의 머리의 현재 모션, 및 따라서 HMD 디바이스(102)가 약간 좌측 및 하측으로 약간 드리프트된다고 가정한다. 가상 오브젝트(142)의 결과적 순 속도, 즉, 세계 공간에서 사용자의 관점에 관한 가상 오브젝트(142)의 순 모션은 우측 및 약간 상측으로의 드리프트이다. 따라서, 순 속도 필드(136)를 사용하는 현재 입력 텍스처(122)의 이류의 결과로서, 가상 오브젝트(142)를 표현하는 픽셀들은 결과적 디스플레이 텍스처(140)에서 우측 및 상측으로 시프트되고, 따라서, 현재 입력 텍스처(122)에서 발견되는 바와 같이 가상 오브젝트(142)의 원래의 포지션(146)에 관한 스크린 공간에서의 모션-보상 포지션(144)에서 가상 오브젝트(142)를 제시한다. 이어서, 디스플레이 텍스처(140)는 HMD 디바이스(102)에서 디스플레이될 최종 이미지를 구성하기 위해 (스크린 공간에 대해) 리-프로젝션(re-projection) 프로세스를 거칠 수 있다.
별개의 우안용 및 좌안용 이미징을 이용하는 구현들에서, EDS 프로세스(120)는 각각의 눈에 준비된 하나 또는 그 초과의 텍스처들에 대해 병렬로 수행되어, HMD 디바이스(102)의 그들 개개의 디스플레이들(112, 114)로 동시에 스캔 아웃되는(scanned out) 디스플레이 텍스처들(140)의 쌍 또는 다른 세트를 초래한다. 단안용 디스플레이를 이용하는 구현들에서, EDS 프로세스(120)는, 이어서 HMD 디바이스(102)의 단일 디스플레이로 스캔 아웃되는 단일 디스플레이 텍스처(140)를 생성한다.
적어도 일부 픽셀들에 대한 일부 순 속도가 존재한다고 가정하면, 텍스처 이류 프로세스(138)는, 입력 텍스처(122)의 렌더링의 개시 및 대응하는 디스플레이로의 대응하는 디스플레이 텍스처(140)의 스캔 아웃을 표현하는 시간 스팬에 대한 HMD 속도와 픽셀 속도의 결합으로 인해 속도의 순 변화를 반영하기 위해 다양한 픽셀들의 포지션을 시프트하는 결과를 가진다. 위에서 서술된 바와 같이, 입력 텍스처(122)는 상이한 깊이들에서 다수의 프래그먼트들을 표현할 수 있고, 따라서, 텍스처 이류 프로세스(138)는 각각의 프래그먼트 또는 깊이 레벨에 대해 수행될 수 있다. 이로써, 픽셀들의 포지션의 시프팅은 원래의 입력 텍스처(122)에서 "더 가까운" 프래그먼트들에 의해 사전에 가려진 프래그먼트들의 폐색해제(disocclusion)를 초래할 수 있다. 그러한 사례들에서, 디스플레이 시스템(100)에 의해 구현되는 렌더링 프로세스는 텍스처 이류 프로세스(138)로부터 발생할 수 있는 임의의 폐색해제 에러들을 제거하기 위한 폐색해제 프로세스의 구현을 더 포함할 수 있다.
위에서 설명된 바와 같이, 입력 텍스처(122)는 렌더링할 때 샘플링된 HMD 디바이스(102)의 포즈에 기반하여 렌더링된다. 그러나, HMD 디바이스(102)의 추가적 모션은 입력 텍스처(122)의 렌더링의 개시와 텍스처(122)로 표현되는 이미지의 스캔-아웃 또는 디스플레이 사이에서 발생할 수 있다. 따라서, 입력 텍스처(122)가 디스플레이될 때까지, 그것은 그 때 HMD 디바이스(102)의 실제 방향을 정확하게 반영하지 않을 수 있으며, 따라서, 장면의 사용자의 현재 관점을 정확하게 반영하지 않을 수 있다. 추가로, 입력 텍스처(122)는 모션 중인 가상 오브젝트들을 표현할 수 있고, 따라서, 사용자는, 입력 텍스처(122)가 입력 텍스처(122)에서 표현되는 가상 오브젝트들의 실제 포지션들과 비교하여 디스플레이될 때까지 가상 오브젝트들이 세계 공간에 관해 상이한 포지션들에 있을 것으로 예상할 수 있다. 그러나, 픽셀-당 순 속도들을 계산하고, 이어서, 입력 텍스처(122)의 픽셀들에 대한 컬러 정보를 이류시킴으로써, 결과적 디스플레이 텍스처(140)는 디스플레이 텍스처(140)를 디스플레이할 때 사용자의 예상 관점을 더 정확하게 반영할뿐만 아니라, 디스플레이 텍스처(140)를 디스플레이할 때 모션 중인 가상 오브젝트들의 예상 포지션을 더 정확하게 반영한다.
디스플레이 시스템(100)은 렌더링 시간과 디스플레이 시간 사이의 중간 모션을 보상하려고 시도하는 하나 또는 그 초과의 디스플레이 안정화 프로세스들과 결합하여 EDS 프로세스(120)를 사용할 수 있다. 예컨대, 디스플레이 시스템(100)은 2015년 6월 12일자로 출원되고 "Electronic Display Stabilization for Head Mounted Display"라는 명칭을 가진 공동-계류 중인 미국 특허 출원 일련 번호 제 62\174,602 호 (대리인 관리 번호 1500-G15012-PR)의 EDS 프로세스를 추가로 사용할 수 있으며, 이 출원의 전체 내용은 본원에 인용에 의해 포함된다.
도 2는 본 개시내용의 적어도 하나의 실시예에 따른, 도 1의 디스플레이 시스템(100)의 예시적 하드웨어 구성(200)을 예시한다. 하드웨어 구성(200)은, 사용자의 머리(104) 또는 HMD 디바이스(102)의 현재 포즈들로부터의 장면들을 표현하는 VR 또는 AR 컨텐츠 ― VR 또는 AR 컨텐츠는 각각의 눈에 대한 텍스처들의 시퀀스를 포함함 ― 를 렌더링하기 위한, VR 또는 AR 애플리케이션(본원에서 "VR/AR 애플리케이션(202)"으로 지칭됨)의 실행과 관련된 하드웨어를 포함한다. 하드웨어 구성(200)은 텍스처들의 시퀀스로 표현되는 VR 또는 AR 컨텐츠의 디스플레이와 관련된 EDS 하드웨어를 더 포함하고, 이는 렌더링된 텍스처들 사이의 중간 머리 회전뿐만 아니라 렌더링된 텍스처들로 표현되는 비디오에 존재하는 모션-중인 가상 오브젝트들의 중간 움직임을 보상하기 위해 EDS 프로세스(120)를 구현한다.
도시되는 예에서, 하드웨어 구성(200)은, 애플리케이션 프로세서(204), 시스템 메모리(206), 센서 허브(208)(이는 애플리케이션 프로세서(204)에 의해 구현되는 기능성으로서 또는 별개의 컴포넌트일 수 있음) 및 IMU(inertial management unit)(210)를 포함한다. 일부 실시예들에서, HMD 디바이스(102)는 시각적 로컬화 또는 시각적 텔레메트리(telemetry)를 위해 또는 AR 기능성의 지원하는 로컬 환경의 캡처된 이미저리의 실-시간 디스플레이를 위해 이미지 캡처를 통합할 수 있다. 그러한 실시예들에서, 하드웨어 구성(200)은, 예컨대, 하나 또는 그 초과의 이미지 센서들(212, 214) 및 구조화된-광 또는 ToF(time-of-flight) 깊이 센서(216)를 더 포함할 수 있다.
IMU(210)는, 예컨대, 자이로스코프(218), 자력계(220) 및 가속도계(222)를 포함하여, HMD 디바이스(102)에 대한 포즈 정보를 제공하거나 또는 그렇지 않으면, HMD 디바이스(102)의 포즈의 추적을 가능하게 하는 하나 또는 그 초과의 관성 센서들을 포함한다. Bosch Gmbh로부터의 Sensortec(TM) BMI160은 IMU(210)의 상업적으로-입수가능한 구현의 예이다. 센서 허브(208)는 IMU(210), 이미징 센서들(212, 214) 및 깊이 센서(216)에 커플링되며, 애플리케이션 프로세서(204) 및 IMU(210), 이미징 센서들(212, 214), 깊이 센서(216) 및 디스플레이 시스템(100)의 다른 센서들 사이의 제어 시그널링 및 데이터의 전달을 관리하도록 동작한다. Movidius Ltd.로부터의 Myriad(TM) 2 VPU(vision processing unit)는 센서 허브(208)의 상업적으로-입수가능한 구현의 예이다. 애플리케이션 프로세서(204)는 하나 또는 그 초과의 CPU(central processing unit)들, GPU(graphics processing unit)들, 또는 하나 또는 그 초과의 CPU들과 하나 또는 그 초과의 GPU들의 결합을 포함한다. Qualcomm Incorporated로부터의 Snapdragon(TM) 810 MSM8994 SoC(system-on-a-chip)는 애플리케이션 프로세서(204)의 상업적으로-입수가능한 구현의 예이다.
하드웨어 구성(200)은 컴포지터(224), 좌안용 디스플레이(112) 및 우안용 디스플레이(114)를 더 포함한다. 컴포지터(224)는, 예컨대, ASIC, 프로그래밍가능한 로직으로서, 설명되는 기능성을 제공하기 위해 하나 또는 그 초과의 GPU들을 조작하는 소프트웨어를 실행하는 하나 또는 그 초과의 GPU들로서, 또는 이들의 조합으로 구현될 수 있는 디바이스이다. 하드웨어 구성(200)은 좌안용 디스플레이(112)를 구동시키기 위한 좌측 디스플레이 제어기(228), 및 우안용 디스플레이(114)를 구동시키기 위한 우측 디스플레이 제어기(230)를 더 포함하고, 이들은 컴포지터(224)의 일부로서 예시된다. 컴포지터(224)는, 본원에서 설명되는 바와 같이, 좌안용 디스플레이 파이프라인 및 우안용 디스플레이 파이프라인 각각에 대한 하나 또는 그 초과의 텍스처들뿐만 아니라, 이들과 연관된 깊이 필드들 및 속도 필드들을 저장하기 위한 딥 프레임 버퍼(232)를 더 포함할 수 있다.
동작 중에, 애플리케이션 프로세서(204)는 VR/AR 기능성을 사용자에게 제공하기 위해 (예컨대, 시스템 메모리(206) 내에 저장된) VR/AR 애플리케이션(202)을 실행한다. 이 프로세스의 일부로서, VR/AR 애플리케이션(202)은 특정 렌더링 레이트로 각각의 눈에 대한 텍스처들의 시퀀스(예컨대, 입력 텍스처들(122), 도 1)를 렌더링하기 위해 애플리케이션 프로세서(204) 또는 연관된 프로세서를 조작한다. 각각의 텍스처는, 전적으로 컴퓨터로 생성될 수 있는 시각적 컨텐츠, (이미징 센서들(212, 214)을 통한) 캡처된 이미저리와 컴퓨터로-생성된 오버레이의 결합인 시각적 컨텐츠, 또는 로컬 환경으로 투명한 디스플레이 패널 또는 윈도우 상에 디스플레이되는 컴퓨터로-생성된 오버레이를 포함한다. 각각의 텍스처의 시각적 컨텐츠는 텍스처가 결정될 때 사용자의 머리의 대응하는 포즈(또는 HMD 디바이스(102)의 포즈)로부터의 장면을 표현한다. 따라서, 각각의 텍스처를 렌더링하기 위한 준비에서, 애플리케이션 프로세서(204)는 IMU(210)의 자이로스코프(218), 자력계(220) 및 가속도계(222)로부터 현재 샘플들을 획득하며, 이 관성 센서 판독들로부터 사용자의 머리의 현재 포즈를 결정한다. 현재 포즈 및 회전을 결정하기 위해 IMU(210)를 사용하는 것 대신에 또는 그 이외에, 애플리케이션 프로세서(204)는 하나 또는 그 초과의 시각적 텔레메트리 또는 SLAM(simultaneous localization and mapping) 기법들을 사용하여 현재 포즈 및 회전을 결정, 검증 또는 변경하기 위해 하나 또는 그 초과의 이미징 센서들 또는 깊이 센서들로부터의 정보를 사용할 수 있다. 결정된 머리 포즈로부터, 애플리케이션 프로세서(204)는 결정된 머리 방향 및 회전으로부터의 장면의 스테레오스코픽 뷰를 함께 표현하는 입력 텍스처들의 쌍을 렌더링한다. 이어서, 렌더링된 입력 텍스처들의 쌍은 시스템 메모리(206) 또는 별개의 그래픽 메모리의 일부일 수 있는 딥 프레임 버퍼(232)에 저장된다.
병렬로, 컴포지터(224)는, 렌더링된 텍스처들에 기반하여 디스플레이 텍스처들(예컨대, 디스플레이 텍스처(140), 도 1)을 생성하고, 생성된 디스플레이 텍스처들에 기반하여 디스플레이들(112, 114)을 구동시키도록 동작한다. 이 프로세스의 일부로서, 컴포지터(224)는, HMD 디바이스(102)의 현재 모션 및 입력 텍스처들에 존재하는 픽셀-당 속도들로부터 픽셀-당 순 속도들을 결정하고, 이러한 픽셀-당 순 속도들을 반영하여 디스플레이 텍스처들이 디스플레이들(112, 114)에 디스플레이될 때 이미저리에 표현되는 가상 오브젝트들의 움직임과 사용자의 머리(104)의 모션 사이의 순 모션에 더 가깝게 정렬되는 디스플레이 텍스처들의 쌍을 생성하도록 입력 텍스처들의 쌍을 수정하기 위해 본 명세서에서 설명되는 EDS 프로세스(120)를 구현한다.
도 3은 본 개시내용의 적어도 하나의 실시예에 따른, 컴포지터(224)의 예시적 구현을 예시한다. 도시되는 예에서, 컴포지터(224)는 딥 프레임 버퍼(232), 모션 분석 모듈(302), 센서 통합기 모듈(304), 변환 모듈(306), 속도 필드 결합 모듈(308), 이류 모듈(310) 및 폐색해제 모듈(312)을 포함한다. 모듈들(302, 304, 306, 308, 310 및 312)은 각각 ASIC 또는 프로그래밍가능한 로직의 일부로서, 대응하는 소프트웨어를 실행하는 하나 또는 그 초과의 프로세서들로서, 또는 이들의 조합으로 구현될 수 있다. 이 컴포넌트들의 동작들은 도 4를 참조하여 더 상세하게 설명된다.
도 4는 도 1의 HMD 디바이스(102) 및 도 2 및 도 3의 하드웨어 구성(200)의 맥락에서, 도 1의 EDS 프로세스(120)를 구현하는 예시적 방법(400)을 예시한다. AR 또는 VR 컨텐츠의 렌더링 및 디스플레이를 위한 준비에서 디스플레이 시스템(100)의 개시 이후에, 방법(400)은, VR/AR 애플리케이션(202)이 HMD 디바이스(102)의 현재 또는 예상 포즈에 기반하여 입력 텍스처(322)(도 3)의 렌더링을 트리거하는 블록(402)에서 개시된다. 입력 텍스처(322)는, 픽처 또는 프레임의 각각의 픽셀에 대한 컬러 정보(컬러 필드(323)), 및 다수의 프래그먼트들이 추적되는 경우에는, 픽셀과 연관된 각각의 프래그먼트에 대한 컬러 정보를 포함한다. 입력 텍스처(322)는 픽셀로 표현되는 프래그먼트들 전부 또는 그 일부 각각에 대한 깊이 값 또는 깊이 순서를 저장하는 깊이 필드(324)("깊이 버퍼"로 또한 알려짐)를 더 포함할 수 있다.
블록(404)에서, 모션 분석 모듈(302)은, 하나 또는 그 초과의 선행 입력 텍스처들 및 현재 입력 텍스처(322)로부터의 진행에서 표현되는 하나 또는 그 초과의 오브젝트들의 모션에 기반하여 각각의 픽셀에 대한 픽셀-당 속도 Vp를 결정하기 위해 입력 텍스처(322) 및 하나 또는 그 초과의 선행 입력 텍스처들(디스플레이 순서로)을 분석한다. 다양한 모션 분석 프로세스들 중 임의의 것이 활용될 수 있다. 예컨대, 모션 분석 모듈(302)은 Lucas-Kanade 방법, Buxton-Buxton 방법, Black-Jepson 방법 등 중 하나 또는 그 초과에 기반하여 픽셀-당 속도, 이를테면, 광학 흐름 알고리즘을 결정하기 위해 다양한 광학 흐름 알고리즘들 중 임의의 것을 사용할 수 있다. 사용되는 모션 분석 및 이용가능한 정보에 따라, 픽셀 속도 Vp는, 3개의 포지션 축들 중 하나 또는 그 초과를 중심으로 하는 회전 속도 이외에, 2D 속도(예컨대, 스크린 공간을 구성하는 x-y 평면에서의 속도 및 방향), 3D 속도(예컨대, x-y-z 세계 공간에서의 속도 및 방향), 또는 3D 속도를 포함할 수 있다.
블록(406)에서, 모션 분석 모듈(302)은 입력 텍스처(322)에 대한 컬러 필드(323)와 연관하여 딥 프레임 버퍼(232)에 픽셀 속도 필드(328)(픽셀 속도 필드(128)의 일 실시예, 도 1)로서 입력 텍스처(322)를 구성하는 픽셀들에 대한 픽셀-당 속도들 Vp를 버퍼링한다. 위에서 서술된 바와 같이, 픽셀들 전부 또는 그 일부는 다수의 프래그먼트들과 연관될 수 있고, 이 경우, 블록들(404 및 406)의 프로세스는 각각의 프래그먼트에 대해 반복되어서, 픽셀 속도 VP가 대응하는 픽셀로 표현되는 각각의 프래그먼트에 대한 픽셀 속도 필드(328)에 저장되게 하고, 주어진 픽셀에 대한 각각의 픽셀 속도 VP는 픽셀 속도 필드(328)의 대응하는 엔트리에 깊이 순서로 저장된다.
블록들(404 및 406)의 하나 또는 그 초과의 반복들로 표현되는 모션 분석 프로세스와 병렬로, 블록(408)에서, 컴포지터(224)는 HMD 디바이스(102)의 순간 모션 또는 예측된 모션 중 하나 또는 둘 모두를 표현하는 HMD 모션 벡터 MVHMD를 결정한다. 이것을 목적으로, 일 실시예에서, 센서 통합기 모듈(304)은 지속적으로, IMU(210)의 센서들 중 하나 또는 그 초과로부터 센서 샘플들(331)을 수신하며, 슬라이딩 윈도우 버퍼(도시되지 않음)에 센서 샘플들(331)을 버퍼링한다. 센서 통합기 모듈(304)은, 이를테면, 슬라이딩 윈도우 버퍼 내의 센서 샘플들(331) 전부 또는 그 일부의 전방 통합을 통해, 변환 행렬, 또는 퀀터니언 플러스 모션 벡터 쌍(quaternion plus motion vector pair), 또는 현재 모션 벡터 MVHMD의 다른 표현을 결정하도록 동작한다. 이용가능한 센서 정보 및 특정 구성에 따라, 이 모션 벡터 MVHMD는 하나 또는 그 초과의 축들을 따르는 HMD 디바이스(102)의 선형 속도, 하나 또는 그 초과의 축들을 따르는 HMD 디바이스(102)의 회전 속도, 또는 선형 속도 및 회전 속도의 결합(예컨대, 6DoF 모션 벡터)을 표현하는 모션 벡터를 표현할 수 있다.
블록(410)에서, 변환 모듈(306)은 HMD 모션 벡터 MVHMD를 픽셀-당 속도 표현 Vh로 변환하며, HMD 속도 필드(330)(HMD 속도 필드(132)의 일 실시예, 도 1)에 결과적 픽셀-당 HMD 속도들 Vh를 저장한다. 적어도 하나의 실시예에서, 변환 모듈(306)은 가상 세계 공간 좌표 시스템으로부터 스크린 공간 좌표 시스템으로 HMD 모션 벡터 MVHMD를 컨버팅하는 가상-세계-공간-투-스크린-공간 변환의 애플리케이션을 통해 이러한 컨버전을 구현할 수 있다. 일부 실시예들에서, 이 변환은 호모그래피 변환으로서 구현될 수 있지만, 이 접근법은 단지, 장면이 균일한 깊이에 있다고 가정하는 근사법(approximation)일 것이다. 더 정확한 (그리고 컴퓨팅 비용이 많이 드는) 변환은, (본질적으로 각각의 프래그먼트를 3D 포인트로서 처리하는) 모든 프래그먼트의 깊이를 고려하는 것(accounting for), 및 이어서 스크린 공간 속도 벡터로 변환될 수 있는 HMD-관련 프래그먼트 속도 벡터를 획득하기 위해 프래그먼트당 속도 벡터로부터 HMD 포즈 속도 벡터(둘 모두가 가상 세계 공간에 있다고 가정함)를 차감하는 것을 포함한다. 따라서, 이 접근법은 가상 세계 공간에서 속도를 추가하고, 이어서, 스크린 공간으로 변환하며; 상이한 접근법에서는, 속도들이 먼저 스크린 공간으로 변환되고, 이어서, 스크린 공간에서 속도들을 추가할 수 있다.
현재 반복을 위해 결정된 픽셀 속도 필드(328) 및 HMD 속도 필드(330)의 경우, 블록(412)에서, 속도 필드 결합 모듈(308)은, 딥 프레임 버퍼(232) 또는 다른 저장 컴포넌트에 저장될 수 있는 순 속도 필드(332)(순 속도 필드(136)의 일 실시예, 도 1)를 생성하기 위해 2개의 속도 필드들(328, 330)을 결합한다. 적어도 하나의 실시예에서, 이 결합은 해당 픽셀 포지션에 대한 대응하는 순 픽셀 속도 Vnet를 생성하기 위해 각각의 픽셀에 대해, 픽셀 속도 필드(328)로부터의 픽셀 속도 Vp를 HMD 속도 필드(330)로부터의 해당 동일한 픽셀 포지션에 대한 HMD 속도 Vh와 합산하는 것을 수반한다. 픽셀이 다수의 프래그먼트들을 표현하는 경우, 각각의 프래그먼트에 대해 상이한 순 픽셀 속도 Vnet가 계산된다(즉, 픽셀 포지션 P에서 프래그먼트 F에 대해 Vnet[P, F] = Vp[P, F] + Vh[P]).
블록(414)에서, 이류 모듈(310)은 대응하는 시간 스팬에 대한 순 속도 필드(332)의 픽셀-당 순 속도들 Vnet를 반영하도록 입력 텍스처(322)를 수정하기 위해 텍스처 이류 프로세스(138)의 구현을 수행한다. 일부 실시예들에서, 이류 프로세스(138)는 2가지 방식들: 단일-단계 이류 프로세스(415) 또는 다-단계 이류 프로세스(417) 중 하나로 구현될 수 있다. 단일-단계 이류 프로세스(415)는 순 모션을 표현하는 덜 정확하지만 컴퓨팅적으로 덜 복잡한 방식을 표현한다. 대조적으로, 다-단계 이류 프로세스는 더 정확하지만 컴퓨팅적으로 더 복잡한 프로세스를 표현한다.
단일-단계 이류 프로세스(415)는 블록(416)으로 표현되고, 블록(416)에서, 이류 모듈(310)은 다양한 잘-알려진 입자/속도 이류 프로세스들 중 임의의 것, 이를테면, Lagrangian-Eulerian 텍스처 이류 방법에 기반하는 또는 Semi-Lagrangian 방법에 기반하는 이류 프로세스를 사용하여 순 속도 필드(332)의 순 픽셀 속도들 Vnet를 사용하여 입력 텍스처(322)의 컬러 정보(컬러 필드(323))를 이류시킨다. 다수의 프래그먼트들이 픽셀 포지션들 전부 또는 그 일부로 표현되는 경우, 이 이류 프로세스는 각각의 깊이/프래그먼트에 대해 반복된다. 추가로, 입력 텍스처(322)가 하나 또는 그 초과의 프래그먼트들에 대한 깊이 정보를 포함하는 경우, 깊이 정보는 마찬가지로, 픽셀들과 깊이 정보 사이의 상관을 유지하기 위해 순 속도 필드(332)에 기반하여 이류될 수 있다. 이 프로세스의 경우, 이류 프로세스에서 표현되는 시간스팬(timespan) 또는 시간단계(timestep)는, 본원에서 설명되는 EDS 프로세스의 결과로서 입력 텍스처(322)의 렌더링과 입력 텍스처(322)로부터 생성되는 대응하는 디스플레이 텍스처(334)(디스플레이 텍스처(140)의 일 실시예, 도 1)의 스캔 아웃 또는 디스플레이 사이의 예상되는 듀레이션일 수 있거나 또는 이에 기반할 수 있다. 이어서, 디스플레이 이미지는 대응하는 디스플레이 제어기를 통해 디스플레이될 최종 이미지를 생성하기 위해 텍스처를 스크린 공간으로 리프로젝팅(reproject)하도록 프로세싱될 수 있다.
다-단계 이류 프로세스(417)는 다-단계 이류 프로세스의 현재 인스턴스에서 구현될 시간단계들의 수의 결정 또는 반복들로 블록(418)에서 개시된다. 적어도 하나의 실시예에서, 시간단계들의 수는, 입력 텍스처들의 렌더링 레이트 X 대 순 속도 필드(332)의 계산 레이트 Y의 비에 기반하여 결정된다. 예시하기 위해, 렌더링 레이트가 60 fps이고, 새로운 순 속도 필드(332)가 초당 120 회 결정되면, 다-단계 이류 프로세스는 효과적으로 초당 120개의 시간단계들을 가질 것이다. 렌더링 레이트가 60 fps이고, 새로운 순 속도 필드(332)가 초당 240 회 결정되면, 다-단계 이류 프로세스는 초당 240개의 시간단계들을 가질 것이다.
결정된 시간스텝들의 수에 있어서, 프로세스의 제1 반복은 블록(420)에서 개시되고, 블록(420)에서, 이류 모듈(310)은 현재 반복(이는, 이어서, 아래에서 설명되는 바와 같이 디스플레이됨)에 대한 디스플레이 텍스처(334)를 생성하기 위해 순 속도 필드(332)를 이용하여 현재 입력 텍스처(322)의 컬러 필드(323)를 이류시킨다. 하나 초과의 반복이 존재한다고 가정하면, 다음으로 블록(422)의 제2 반복에서, 이류 모듈(310)은 수정된 순 속도 필드를 생성하기 위해 그 자체로 순 속도 필드(332)를 이류시킨다(즉, 순 속도 필드(332)를 자기-이류시킴). 다음 시간스탬프의 경우, 다음 입력 텍스처(322)는 블록(404)에서 렌더링되고, 블록(420)의 제2 반복에서, 이류 모듈(310)은 이어서, 제2 디스플레이 텍스처(334)를 생성하기 위해 수정된 순 속도 필드를 이용하여 이러한 다음 입력 텍스처(322)를 이류시킨다. 제3 시간스탬프가 존재하면, 수정된 순 속도 필드는 2회-수정된 순 속도 필드를 생성하기 위해 블록(422)의 제2 반복에서 자기-이류된다. 이어서, 제3 반복의 경우, 블록(402)의 제3 반복에서 렌더링된 다음 입력 텍스처(322)는 제3 디스플레이 텍스처(334)를 생성하기 위해 블록(420)의 제3 반복에서 2회-수정된 순 속도 필드를 이용하여 이류되는 식이다.
입력 텍스처 전부 또는 그 일부가 다수의 프래그먼트들을 표현할 수 있으므로, 이류 프로세스의 결과로서의 픽셀들의 리포지셔닝은 더 낮은 깊이들에서 사전-폐색된(occluded) 프래그먼트들의 폐색해제를 초래할 수 있다. 감소된 컴퓨팅 복잡도가 요구되면, 이러한 폐색해제 에러들은 무시될 수 있다. 그러나, 일부 실시예들에서, 블록(424)에서, 폐색해제 모듈(312)은 이류 프로세스의 결과로서 발생할 수 있는 폐색해제 에러들을 제거하기 위해 깊이 필드(324)에서 표현되는 깊이 정보, 다수의 프래그먼트들에 대한 정보 및 다양한 잘-알려진 폐색해제 프로세스들 중 임의의 것을 활용할 수 있다. 추가로, 일부 실시예들에서, 폐색해제 모듈(312) 또는 다른 모듈은 디스플레이 텍스처(334)를 입력 텍스처(322) ― 이로부터 디스플레이 텍스처(334)가 생성됨 ― 와 블렌딩함으로써 인식 이슈들을 감소시키기 위해 모션 블러를 생성하고, 디스플레이 텍스처로서 결과적인 블렌딩된 텍스처를 사용할 수 있다. 이어서, 블록(414)의 이류 프로세스의 반복에 의해 생성된(그리고 블록(424)의 반복을 통해 폐색해제 및/또는 모션 블러될 수 있는) 각각의 디스플레이 텍스처(334)는, 블록(426)에서, 디스플레이들(112, 114) 중 대응하는 디스플레이로 스캔 아웃하기 위하여 컴포지터(224)에 의해 대응하는 디스플레이 제어기(228, 230)에 제공되는 최종 또는 디스플레이 이미지를 생성하기 위해 스크린 공간에서 리-프로젝팅된다.
위에서 설명된 본 발명의 기능성 중 대부분 및 본 발명의 원리들 중 다수는 ASIC(application specific IC)들과 같은 IC(integrated circuit)들로 또는 이들을 이용하여 구현하기에 매우 적합하다. 당업자는, 예컨대, 이용가능한 시간, 현재 기술 및 경제적 고려사항들에 의해 동기유발된 아마도 상당한 노력 및 다수의 설계 선택들에도 불구하고, 본원에서 개시되는 개념들 및 원리들에 의해 안내될 때, 최소의 실험으로 그러한 IC들을 용이하게 생성할 수 있을 것으로 기대된다. 그에 따라서, 본 개시내용에 따른 원리들 및 개념들을 모호하게 하는 임의의 위험의 간결함 및 최소화를 위해, 만약 있다면, 그러한 소프트웨어 및 IC들의 추가적 논의는, 바람직한 실시예들 내의 원리들 및 개념들에 대한 본질들로 제한될 것이다.
일부 실시예들에서, 위에서 설명된 기법들의 특정 양상들은 소프트웨어를 실행하는 프로세싱 시스템의 하나 또는 그 초과의 프로세서들에 의해 구현될 수 있다. 소프트웨어는 비-일시적 컴퓨터 판독가능한 저장 매체 상에 저장되거나, 또는 그렇지 않으면 유형적으로(tangibly) 구현된 실행가능한 명령들의 하나 또는 그 초과의 세트들을 포함한다. 소프트웨어는, 하나 또는 그 초과의 프로세서들에 의해 실행될 때, 위에서 설명된 기법들의 하나 또는 그 초과의 양상들을 수행하기 위해 하나 또는 그 초과의 프로세서들을 조작하는 명령들 및 특정 데이터를 포함할 수 있다. 비-일시적 컴퓨터 판독가능한 저장 매체는, 예컨대, 자기 또는 광학 디스크 저장 디바이스, 플래시 메모리(Flash memory)와 같은 솔리드 스테이트(solid state) 저장 디바이스들, 캐시(cache), RAM(random access memory) 또는 다른 비-휘발성 메모리 디바이스 또는 디바이스들 등을 포함할 수 있다. 비-일시적 컴퓨터 판독가능한 저장 매체 상에 저장된 실행가능한 명령들은 소스 코드(source code), 어셈블리 언어 코드(assembly language code), 오브젝트 코드(object code), 또는 하나 또는 그 초과의 프로세서들에 의해 해석되거나 또는 그렇지 않으면 실행가능한 다른 명령 포맷으로 되어 있을 수 있다.
이 문서에서, 제1 및 제2 등과 같은 관계 용어들은 그러한 엔티티들 또는 액션들 사이의 임의의 실제적인 그러한 관계 또는 순서를 반드시 요구하거나 또는 암시하지 않으면서, 하나의 엔티티 또는 액션을 다른 엔티티 또는 액션으로부터 구별하기 위해 전적으로 사용될 수 있다. "포함한다", "포함하는"이라는 용어들 또는 이들의 임의의 다른 변형은 비-배타적 포함을 커버하도록 의도된 것이어서, 엘리먼트들의 리스트를 포함하는 프로세스, 방법, 물품, 또는 장치는 그러한 엘리먼트들만을 포함하는 것이 아니라, 명백하게 열거되지 않거나 또는 그러한 프로세스, 방법, 물품, 또는 장치에 고유한 다른 엘리먼트들을 포함할 수 있다. "~ 을 포함하다"에 선행하는 엘리먼트들은, 추가 제약들 없이, 엘리먼트를 포함하는 프로세스, 방법, 물품 또는 장치에서의 추가적인 동일한 엘리먼트들의 존재를 배제하지 않는다. 본원에서 사용되는 "다른"이라는 용어는 적어도 제2 또는 그 이후의 것으로서 정의된다. 본원에서 사용되는 "포함하는" 및/또는 "가지는"이라는 용어들은 포함하는으로서 정의된다. 전자-광학 기술을 참조하여 본원에서 사용되는 "커플링된"이라는 용어는 연결된으로서 정의되지만, 반드시 직접적으로가 아니고, 반드시 기계적으로도 아니다. 본원에서 사용되는 "프로그램"이라는 용어는 컴퓨터 시스템 상에서의 실행을 위해 설계된 명령들의 시퀀스로서 정의된다. "프로그램", "컴퓨터 프로그램", "애플리케이션" 또는 "소프트웨어"는 서브루틴, 함수, 프로시저, 오브젝트 방법, 오브젝트 구현, 실행가능한 애플리케이션, 애플릿, 서블릿, 소스 코드, 오브젝트 코드, 공유 라이브러리/동적 로드 라이브러리 및/또는 컴퓨터 시스템 상에서의 실행을 위해 설계된 명령들의 다른 시퀀스를 포함할 수 있다.
명세서 및 도면들은 단지 예들로서 고려되어야 하고, 따라서 본 개시내용의 범위는 다음의 청구항들 및 이의 등가물들에 의해서만 제한되도록 의도된다. 일반적 설명에서 위에서 설명된 모든 활동들 또는 엘리먼트들이 요구되는 것은 아니고, 특정 활동 또는 디바이스의 일부분이 요구되지 않을 수 있으며, 설명된 것들 이외에 하나 또는 그 초과의 추가적 활동들이 수행될 수 있거나 또는 엘리먼트들이 포함될 수 있다는 점이 주목된다. 여전히 추가로, 활동들이 열거되는 순서가 반드시 활동들이 수행되는 순서는 아니다. 위에서 도시된 흐름도들의 단계들은, 달리 명시되지 않는 한, 임의의 순서일 수 있으며, 단계들은 구현에 따라 제거, 반복 및/또는 추가될 수 있다. 또한, 개념들은 특정 실시예들을 참조하여 설명되었다. 그러나, 당업자는 아래의 청구항들에서 기재되는 바와 같은 본 개시내용의 범위로부터 벗어나지 않으면서 다양한 수정들 및 변화들이 이루어질 수 있다는 것을 인식한다. 따라서, 명세서 및 도면들은 제한적 의미가 아니라, 예시적 의미로 간주되어야 하고, 모든 그러한 수정들은 본 개시내용의 범위 내에 포함되도록 의도된다.
이익들, 다른 이점들 및 문제들에 대한 솔루션들은 특정 실시예들에 대해 위에서 설명되었다. 그러나, 이익들, 이점들, 문제들에 대한 솔루션들, 및 임의의 이익, 이점 또는 솔루션이 발생하게 하거나 또는 더 확연해지게(pronounced) 할 수 있는 임의의 특징(들)은 임의의 또는 모든 청구항들의 중요하거나, 요구되거나, 또는 필수적인 특징들로서 해석되지 않아야 한다.
Claims (27)
- HMD(head mounted display) 디바이스를 가지는 시스템에서의 방법으로서,
제1 텍스처를 렌더링하는 단계;
상기 제1 텍스처의 픽셀들의 적어도 서브세트에 대한 픽셀 속도를 가지는 제1 속도 필드를 결정하는 단계;
상기 HMD 디바이스에 대한 모션 벡터를 결정하는 단계;
상기 HMD 디바이스에 대한 모션 벡터의 픽셀-당 속도 표현을 포함하는 제2 속도 필드를 결정하는 단계;
제3 속도 필드를 생성하기 위해 상기 제1 속도 필드와 상기 제2 속도 필드를 결합시키는 단계;
상기 제1 텍스처 및 상기 제3 속도 필드에 기반하여 제2 텍스처를 렌더링하는 단계; 및
상기 HMD 디바이스에서의 디스플레이를 위해 상기 제2 텍스처를 제공하는 단계
를 포함하는,
HMD 디바이스를 가지는 시스템에서의 방법. - 제1항에 있어서,
상기 제2 텍스처를 렌더링하는 단계는, 상기 제2 텍스처를 생성하기 위해 상기 제3 속도 필드를 사용하여 상기 제1 텍스처의 픽셀들에 대한 컬러 정보를 이류(advect)시키는 단계를 포함하는,
HMD 디바이스를 가지는 시스템에서의 방법. - 제2항에 있어서,
상기 제2 텍스처를 렌더링하는 단계는, 상기 제2 텍스처를 생성하기 위해 상기 제3 속도 필드를 사용하여 상기 제1 텍스처의 픽셀들에 대한 깊이 정보를 이류시키는 단계를 더 포함하는,
HMD 디바이스를 가지는 시스템에서의 방법. - 제2항 또는 제3항에 있어서,
제3 텍스처를 렌더링하는 단계;
제4 텍스처를 렌더링하는 단계; 및
상기 HMD 디바이스에서의 디스플레이를 위해 상기 제4 텍스처를 제공하는 단계
를 더 포함하고,
상기 제4 텍스처를 렌더링하는 단계는,
제4 속도 필드를 생성하기 위해 상기 제3 속도 필드를 자기-이류(self-advect)시키고; 그리고
제4 텍스처를 생성하기 위해 상기 제4 속도 필드를 사용하여 상기 제3 텍스처의 픽셀들에 대한 컬러 정보를 이류시킴으로써
수행되는,
HMD 디바이스를 가지는 시스템에서의 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서,
상기 제2 속도 필드를 결정하는 단계는, 상기 제2 속도 필드를 생성하기 위해 가상-세계-공간-투-스크린-공간 변환을 상기 HMD 디바이스에 대한 모션 벡터에 적용시키는 단계를 포함하는,
HMD 디바이스를 가지는 시스템에서의 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서,
상기 제1 텍스처의 픽셀들의 적어도 서브세트의 각각의 픽셀은 적어도 2개의 프래그먼트들의 대응하는 세트와 연관되고; 그리고
상기 제1 속도 필드를 결정하는 단계는, 상기 적어도 서브세트의 각각의 픽셀에 대해, 상기 적어도 2개의 프래그먼트들의 대응하는 세트의 각각의 프래그먼트에 대한 픽셀의 별개의 픽셀 속도를 결정하는 단계를 포함하는,
HMD 디바이스를 가지는 시스템에서의 방법. - 제6항에 있어서,
딥 프레임 버퍼에 상기 제1 텍스처를 저장하는 단계를 더 포함하고,
상기 딥 프레임 버퍼는, 상기 제1 텍스처의 픽셀들에 대한 깊이 정보 및 상기 제1 속도 필드를 더 포함하는,
HMD 디바이스를 가지는 시스템에서의 방법. - 제7항에 있어서,
상기 제2 텍스처를 렌더링하는 단계는, 상기 깊이 정보에 기반하여 상기 제2 텍스처에서 폐색해제(disocclusion) 에러들을 제거하는 단계를 더 포함하는,
HMD 디바이스를 가지는 시스템에서의 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서,
상기 제1 속도 필드를 결정하는 단계는, 상기 제1 텍스처를 포함하는 텍스처들의 시퀀스의 광학 흐름 분석에 기반하여 상기 제1 속도 필드를 결정하는 단계를 포함하는,
HMD 디바이스를 가지는 시스템에서의 방법. - 시스템으로서,
적어도 하나의 디스플레이를 포함하는 HMD(head mounted display) 디바이스;
상기 HMD 디바이스에 대한 포즈 정보를 제공하는 적어도 하나의 센서;
상기 적어도 하나의 센서에 커플링된 센서 통합기 모듈 ― 상기 센서 통합기 모듈은 상기 포즈 정보에 기반하여 상기 HMD 디바이스에 대한 모션 벡터를 결정함 ―;
상기 포즈 정보로부터 결정된 상기 HMD 디바이스의 포즈에 기반하여 제1 텍스처를 렌더링하는 애플리케이션 프로세서;
상기 제1 텍스처의 픽셀들의 적어도 서브세트에 대한 픽셀 속도를 가지는 제1 속도 필드를 결정하는 모션 분석 모듈;
상기 HMD 디바이스에 대한 모션 벡터의 픽셀-당 속도 표현을 포함하는 제2 속도 필드를 결정하는 변환 모듈;
제3 속도 필드를 생성하기 위해 상기 제1 속도 필드와 상기 제2 속도 필드를 결합시키는 속도 필드 결합 모듈; 및
상기 제1 텍스처 및 상기 제3 속도 필드에 기반하여 제2 텍스처를 렌더링하고, 상기 제2 텍스처를 상기 HMD 디바이스의 디스플레이에 제공하는 컴포지터
를 포함하는,
시스템. - 제10항에 있어서,
상기 컴포지터는, 상기 제2 텍스처를 생성하기 위해 상기 제3 속도 필드를 사용하여 상기 제1 텍스처의 픽셀들에 대한 컬러 정보를 이류시키는 이류 모듈을 포함하는,
시스템. - 제11항에 있어서,
상기 이류 모듈은 추가로, 상기 제2 텍스처를 생성하기 위해 상기 제3 속도 필드를 사용하여 상기 제1 텍스처의 픽셀들에 대한 깊이 정보를 이류시키는,
시스템. - 제11항 또는 제12항에 있어서,
상기 애플리케이션 프로세서는 추가로 제3 텍스처를 렌더링하고; 그리고
상기 컴포지터는 추가로 제4 텍스처를 렌더링하고; 그리고
상기 컴포지터는 상기 HMD 디바이스에서의 디스플레이를 위해 상기 제4 텍스처를 제공하며,
상기 제4 텍스처를 렌더링하는 것은,
제4 속도 필드를 생성하기 위해 상기 제3 속도 필드를 자기-이류시키고; 그리고
상기 제4 텍스처를 생성하기 위해 상기 제4 속도 필드를 사용하여 상기 제3 텍스처의 픽셀들에 대한 컬러 정보를 이류시킴으로써
수행되는,
시스템. - 제10항 내지 제12항 중 어느 한 항에 있어서,
상기 변환 모듈은 상기 제2 속도 필드를 생성하기 위해 호모그래피 변환(homography transform)을 상기 HMD 디바이스에 대한 모션 벡터에 적용시킴으로써 제2 픽셀 속도 필드를 결정하는,
시스템. - 제10항 내지 제12항 중 어느 한 항에 있어서,
상기 제1 텍스처의 픽셀들의 적어도 서브세트의 각각의 픽셀은 적어도 2개의 프래그먼트들의 대응하는 세트와 연관되고; 그리고
상기 모션 분석 모듈은 상기 적어도 서브세트의 각각의 픽셀에 대해, 상기 적어도 2개의 프래그먼트들의 대응하는 세트의 각각의 프래그먼트에 대한 픽셀의 별개의 픽셀 속도를 결정함으로써 상기 제1 속도 필드를 결정하는,
시스템. - 제15항에 있어서,
상기 제1 텍스처, 상기 제1 속도 필드 및 상기 제1 텍스처의 픽셀들에 대한 깊이 정보를 저장하기 위한 딥 프레임 버퍼를 더 포함하는,
시스템. - 제16항에 있어서,
상기 깊이 정보에 기반하여 상기 제2 텍스처에서 폐색해제 에러들을 제거하기 위한 폐색해제 모듈을 더 포함하는,
시스템. - 제10항 내지 제12항 중 어느 한 항에 있어서,
상기 모션 분석 모듈은 상기 제1 텍스처를 포함하는 텍스처들의 시퀀스의 광학 흐름 분석에 기반하여 상기 제1 속도 필드를 결정하는,
시스템. - 적어도 하나의 프로세서에 의해 실행될 때, 프로세스를 수행하도록 상기 적어도 하나의 프로세서를 조작하는 명령들어의 세트가 저장된 비-일시적 컴퓨터 판독가능한 매체로서, 상기 프로세스는,
제1 텍스처를 렌더링하는 단계;
상기 제1 텍스처의 픽셀들의 적어도 서브세트에 대한 픽셀 속도를 가지는 제1 속도 필드를 결정하는 단계;
HMD(head mounted display) 디바이스에 대한 모션 벡터를 결정하는 단계;
상기 HMD 디바이스에 대한 모션 벡터의 픽셀-당 속도 표현을 포함하는 제2 속도 필드를 결정하는 단계;
제3 속도 필드를 생성하기 위해 상기 제1 속도 필드와 상기 제2 속도 필드를 결합시키는 단계;
상기 제1 텍스처 및 상기 제3 속도 필드에 기반하여 제2 텍스처를 렌더링하는 단계; 및
상기 HMD 디바이스에서의 디스플레이를 위해 상기 제2 텍스처를 제공하는 단계
를 포함하는,
비-일시적 컴퓨터 판독가능한 매체. - 제19항에 있어서,
상기 제2 텍스처를 렌더링하는 단계는, 상기 제2 텍스처를 생성하기 위해 상기 제3 속도 필드를 사용하여 상기 제1 텍스처의 픽셀들에 대한 컬러 정보를 이류시키는 단계를 포함하는,
비-일시적 컴퓨터 판독가능한 매체. - 제20항에 있어서,
상기 프로세스는,
제3 텍스처를 렌더링하는 단계;
제4 텍스처를 렌더링하는 단계; 및
상기 HMD 디바이스에서의 디스플레이를 위해 상기 제4 텍스처를 제공하는 단계
를 더 포함하고,
상기 제4 텍스처를 렌더링하는 단계는,
제4 속도 필드를 생성하기 위해 상기 제3 속도 필드를 자기-이류시키고; 그리고
제4 텍스처를 생성하기 위해 상기 제4 속도 필드를 사용하여 상기 제3 텍스처의 픽셀들에 대한 컬러 정보를 이류시킴으로써
수행되는,
비-일시적 컴퓨터 판독가능한 매체. - 제19항 내지 제21항 중 어느 한 항에 있어서,
상기 제2 속도 필드를 결정하는 단계는, 상기 제2 속도 필드를 생성하기 위해 가상-세계-공간-투-스크린-공간 변환을 상기 HMD 디바이스에 대한 모션 벡터에 적용시키는 단계를 포함하는,
비-일시적 컴퓨터 판독가능한 매체. - 제19항 내지 제21항 중 어느 한 항에 있어서,
상기 제1 텍스처의 픽셀들의 적어도 서브세트의 각각의 픽셀은 적어도 2개의 프래그먼트들의 대응하는 세트와 연관되고; 그리고
상기 제1 속도 필드를 결정하는 단계는, 상기 적어도 서브세트의 각각의 픽셀에 대해, 상기 적어도 2개의 프래그먼트들의 대응하는 세트의 각각의 프래그먼트에 대한 픽셀의 별개의 픽셀 속도를 결정하는 단계를 포함하는,
비-일시적 컴퓨터 판독가능한 매체. - 제23항에 있어서,
상기 프로세스는, 딥 프레임 버퍼에 상기 제1 텍스처를 저장하는 단계를 더 포함하고,
상기 딥 프레임 버퍼는, 상기 제1 텍스처의 픽셀들에 대한 깊이 정보 및 상기 제1 속도 필드를 더 포함하는,
비-일시적 컴퓨터 판독가능한 매체. - 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/946,983 | 2015-11-20 | ||
US14/946,983 US10026212B2 (en) | 2015-11-20 | 2015-11-20 | Electronic display stabilization using pixel velocities |
PCT/US2016/055528 WO2017087083A1 (en) | 2015-11-20 | 2016-10-05 | Electronic display stabilization using pixel velocities |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180051607A KR20180051607A (ko) | 2018-05-16 |
KR102135808B1 true KR102135808B1 (ko) | 2020-07-20 |
Family
ID=57208364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187010123A KR102135808B1 (ko) | 2015-11-20 | 2016-10-05 | 픽셀 속도들을 사용하는 전자 디스플레이 안정화 |
Country Status (10)
Country | Link |
---|---|
US (1) | US10026212B2 (ko) |
EP (1) | EP3377960B1 (ko) |
JP (1) | JP6514826B2 (ko) |
KR (1) | KR102135808B1 (ko) |
CN (1) | CN108139807B (ko) |
AU (1) | AU2016357105B2 (ko) |
CA (1) | CA2999182C (ko) |
DE (1) | DE112016005343T5 (ko) |
GB (1) | GB2557525B (ko) |
WO (1) | WO2017087083A1 (ko) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10838207B2 (en) | 2015-03-05 | 2020-11-17 | Magic Leap, Inc. | Systems and methods for augmented reality |
WO2016141373A1 (en) | 2015-03-05 | 2016-09-09 | Magic Leap, Inc. | Systems and methods for augmented reality |
US10962780B2 (en) * | 2015-10-26 | 2021-03-30 | Microsoft Technology Licensing, Llc | Remote rendering for virtual images |
CN108604383A (zh) | 2015-12-04 | 2018-09-28 | 奇跃公司 | 重新定位系统和方法 |
CN105807915A (zh) * | 2016-02-24 | 2016-07-27 | 北京小鸟看看科技有限公司 | 虚拟鼠标的控制方法、控制装置以及头戴显示设备 |
US10649211B2 (en) | 2016-08-02 | 2020-05-12 | Magic Leap, Inc. | Fixed-distance virtual and augmented reality systems and methods |
US20180203504A1 (en) * | 2017-01-16 | 2018-07-19 | Htc Corporation | Movement tracking method and movement tracking system |
US10812936B2 (en) | 2017-01-23 | 2020-10-20 | Magic Leap, Inc. | Localization determination for mixed reality systems |
EP3596705A4 (en) | 2017-03-17 | 2020-01-22 | Magic Leap, Inc. | COLOR VIRTUAL CONTENT DEFORMATION MIXED REALITY SYSTEM AND VIRTUAL CONTENT GENERATION METHOD USING THE SAME |
CA3054619C (en) | 2017-03-17 | 2024-01-30 | Magic Leap, Inc. | Mixed reality system with virtual content warping and method of generating virtual content using same |
AU2018233733B2 (en) | 2017-03-17 | 2021-11-11 | Magic Leap, Inc. | Mixed reality system with multi-source virtual content compositing and method of generating virtual content using same |
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 |
US10914957B1 (en) | 2017-05-30 | 2021-02-09 | Apple Inc. | Video compression methods and apparatus |
WO2019012522A1 (en) | 2017-07-11 | 2019-01-17 | Elbit Systems Ltd. | SYSTEM AND METHOD FOR CORRECTING A RUNNING DISPLAY EFFECT |
IL253432A0 (en) * | 2017-07-11 | 2017-09-28 | Elbit Systems Ltd | System and method for correcting a rolling display effect |
US10762691B2 (en) | 2017-09-08 | 2020-09-01 | Microsoft Technology Licensing, Llc | Techniques for compensating variable display device latency in image display |
EP3454300A1 (en) * | 2017-09-12 | 2019-03-13 | HTC Corporation | Three dimensional reconstruction method, apparatus and non-transitory computer readable storage medium thereof |
LU100596B1 (fr) * | 2017-12-27 | 2019-06-28 | Starbreeze Ip Lux Ii S A R L | Procede et dispositif d'affichage a faible latence et haut taux de rafraichissement pour afficheurs de realite mixte a haute definition |
CN108988974B (zh) * | 2018-06-19 | 2020-04-07 | 远形时空科技(北京)有限公司 | 时间延时的测量方法、装置和对电子设备时间同步的系统 |
CN112513712B (zh) * | 2018-07-23 | 2023-05-09 | 奇跃公司 | 具有虚拟内容翘曲的混合现实系统和使用该系统生成虚拟内容的方法 |
JP7210180B2 (ja) * | 2018-07-25 | 2023-01-23 | キヤノン株式会社 | 画像処理装置、画像表示装置、画像処理方法、及びプログラム |
US10733783B2 (en) * | 2018-10-09 | 2020-08-04 | Valve Corporation | Motion smoothing for re-projected frames |
US11170577B2 (en) * | 2018-10-30 | 2021-11-09 | Facebook Technologies, Llc | Generating and modifying representations of objects in an augmented-reality or virtual-reality scene |
US11403810B2 (en) * | 2018-11-02 | 2022-08-02 | Facebook Technologies, Llc. | Display engine for post-rendering processing |
CN109859258B (zh) * | 2019-02-02 | 2021-02-12 | 网易(杭州)网络有限公司 | 界面处理方法及装置、电子设备 |
US20210192681A1 (en) * | 2019-12-18 | 2021-06-24 | Ati Technologies Ulc | Frame reprojection for virtual reality and augmented reality |
EP4170598A4 (en) * | 2020-07-13 | 2023-11-15 | Samsung Electronics Co., Ltd. | METHOD AND APPARATUS FOR DISPLAY WITH LATENCY COMPENSATOR POSE PREDICTION IN A MIXED REALITY COMMUNICATION SYSTEM |
US12067907B2 (en) | 2020-09-23 | 2024-08-20 | Sony Interactive Entertainment Inc. | Position information acquisition device, head-mounted display, and position information acquisition method |
CN112156467B (zh) * | 2020-10-15 | 2024-07-16 | 网易(杭州)网络有限公司 | 虚拟相机的控制方法、系统、存储介质与终端设备 |
CN115733938A (zh) * | 2021-08-31 | 2023-03-03 | 北京字跳网络技术有限公司 | 视频处理方法、装置、设备及存储介质 |
US20240212535A1 (en) * | 2022-12-22 | 2024-06-27 | Microsoft Technology Licensing, Llc | Systems and methods for facilitating display misalignment correction based on vergence angle |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140176591A1 (en) | 2012-12-26 | 2014-06-26 | Georg Klein | Low-latency fusing of color image data |
US20150262336A1 (en) | 2014-03-11 | 2015-09-17 | Adobe Systems Incorporated | Video Denoising Using Optical Flow |
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 |
US7643034B2 (en) | 2006-06-30 | 2010-01-05 | Microsoft Corporation | Synthesis of advecting texture using adaptive regeneration |
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 |
US9348141B2 (en) * | 2010-10-27 | 2016-05-24 | Microsoft Technology Licensing, Llc | Low-latency fusing of virtual and real content |
US8860570B2 (en) | 2011-02-03 | 2014-10-14 | SenseTech, LLC | Portable wireless personal head impact reporting system |
CN102958009B (zh) * | 2011-08-26 | 2017-09-08 | 中兴通讯股份有限公司 | 增强现实信息的传输方法和移动增强现实服务器 |
CN103810356A (zh) * | 2012-11-05 | 2014-05-21 | 大连力天科技有限公司 | 基于增强现实技术及lbs功能的移动终端系统 |
US9076258B2 (en) | 2013-03-14 | 2015-07-07 | Pixar | Stylizing animation by example |
GB201310367D0 (en) * | 2013-06-11 | 2013-07-24 | Sony Comp Entertainment Europe | Head-mountable apparatus and systems |
JP6353214B2 (ja) * | 2013-11-11 | 2018-07-04 | 株式会社ソニー・インタラクティブエンタテインメント | 画像生成装置および画像生成方法 |
US9652893B2 (en) * | 2014-04-29 | 2017-05-16 | Microsoft Technology Licensing, Llc | Stabilization plane determination based on gaze location |
CN104156998A (zh) * | 2014-08-08 | 2014-11-19 | 深圳中科呼图信息技术有限公司 | 一种基于图片虚拟内容融合真实场景的实现方法及系统 |
CN104463191A (zh) * | 2014-10-30 | 2015-03-25 | 华南理工大学 | 一种基于注意机制的机器人视觉处理方法 |
US9824498B2 (en) | 2014-12-30 | 2017-11-21 | Sony Interactive Entertainment Inc. | Scanning display system in head-mounted display for virtual reality |
CN104571532B (zh) * | 2015-02-04 | 2018-01-30 | 网易有道信息技术(北京)有限公司 | 一种实现增强现实或虚拟现实的方法及装置 |
-
2015
- 2015-11-20 US US14/946,983 patent/US10026212B2/en active Active
-
2016
- 2016-10-05 DE DE112016005343.6T patent/DE112016005343T5/de not_active Withdrawn
- 2016-10-05 CN CN201680059892.XA patent/CN108139807B/zh active Active
- 2016-10-05 AU AU2016357105A patent/AU2016357105B2/en active Active
- 2016-10-05 EP EP16787960.0A patent/EP3377960B1/en active Active
- 2016-10-05 JP JP2018513848A patent/JP6514826B2/ja active Active
- 2016-10-05 GB GB1804600.3A patent/GB2557525B/en not_active Expired - Fee Related
- 2016-10-05 WO PCT/US2016/055528 patent/WO2017087083A1/en active Application Filing
- 2016-10-05 KR KR1020187010123A patent/KR102135808B1/ko active IP Right Grant
- 2016-10-05 CA CA2999182A patent/CA2999182C/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140176591A1 (en) | 2012-12-26 | 2014-06-26 | Georg Klein | Low-latency fusing of color image data |
US20150262336A1 (en) | 2014-03-11 | 2015-09-17 | Adobe Systems Incorporated | Video Denoising Using Optical Flow |
Also Published As
Publication number | Publication date |
---|---|
EP3377960B1 (en) | 2019-10-02 |
CN108139807B (zh) | 2021-03-23 |
GB2557525A (en) | 2018-06-20 |
US20170148206A1 (en) | 2017-05-25 |
GB2557525B (en) | 2021-06-09 |
EP3377960A1 (en) | 2018-09-26 |
GB201804600D0 (en) | 2018-05-09 |
JP2019506015A (ja) | 2019-02-28 |
AU2016357105A1 (en) | 2018-04-19 |
CA2999182C (en) | 2020-09-22 |
CA2999182A1 (en) | 2017-05-26 |
KR20180051607A (ko) | 2018-05-16 |
AU2016357105B2 (en) | 2019-02-21 |
WO2017087083A1 (en) | 2017-05-26 |
CN108139807A (zh) | 2018-06-08 |
JP6514826B2 (ja) | 2019-05-15 |
DE112016005343T5 (de) | 2018-08-02 |
US10026212B2 (en) | 2018-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102135808B1 (ko) | 픽셀 속도들을 사용하는 전자 디스플레이 안정화 | |
US10089790B2 (en) | Predictive virtual reality display system with post rendering correction | |
US11024082B2 (en) | Pass-through display of captured imagery | |
US10419747B2 (en) | System and methods for performing electronic display stabilization via retained lightfield rendering | |
KR102210993B1 (ko) | 가상 및 증강 현실 디스플레이 시스템들 및 방법들을 위한 연속 시간 와핑 및 양안 시간 와핑 | |
US10083538B2 (en) | Variable resolution virtual reality display system | |
JP6866297B2 (ja) | ヘッドマウントディスプレイの電子ディスプレイ安定化 | |
US9240069B1 (en) | Low-latency virtual reality display system | |
US10026233B2 (en) | Efficient orientation estimation system using magnetic, angular rate, and gravity sensors | |
US10628994B2 (en) | Reducing visually induced motion sickness in head mounted display systems | |
WO2016073557A1 (en) | Minimal-latency tracking and display for matching real and virtual worlds | |
WO2018064287A1 (en) | Predictive virtual reality display system with post rendering correction | |
Bond | Projecting physical objects into a virtual space using the Kinect and Oculus Rift | |
Cortes et al. | Depth Assisted Composition of Synthetic and Real 3D Scenes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |