KR20210113602A - 시선 추적에 기초한 동적 렌더링 시간 타겟팅 - Google Patents

시선 추적에 기초한 동적 렌더링 시간 타겟팅 Download PDF

Info

Publication number
KR20210113602A
KR20210113602A KR1020217020032A KR20217020032A KR20210113602A KR 20210113602 A KR20210113602 A KR 20210113602A KR 1020217020032 A KR1020217020032 A KR 1020217020032A KR 20217020032 A KR20217020032 A KR 20217020032A KR 20210113602 A KR20210113602 A KR 20210113602A
Authority
KR
South Korea
Prior art keywords
pixels
hmd
display panel
frame
pixel data
Prior art date
Application number
KR1020217020032A
Other languages
English (en)
Inventor
제레미 아담 셀란
Original Assignee
밸브 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 밸브 코포레이션 filed Critical 밸브 코포레이션
Publication of KR20210113602A publication Critical patent/KR20210113602A/ko

Links

Images

Classifications

    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/22Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters using controlled light sources
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/34Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source
    • G09G3/3406Control of illumination source
    • G09G3/342Control of illumination source using several illumination sources separately controlled corresponding to different display panel areas, e.g. along one dimension such as lines
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/34Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source
    • G09G3/36Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source using liquid crystals
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/12Synchronisation between the display unit and other units, e.g. other display units, video-disc players
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0147Head-up displays characterised by optical features comprising a device modifying the resolution of the displayed image
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/02Addressing, scanning or driving the display screen or processing steps related thereto
    • G09G2310/024Scrolling of light from the illumination source over the display in combination with the scanning of the display screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0261Improving the quality of display appearance in the context of movement of objects on the screen or movement of the observer relative to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • G09G2320/0613The adjustment depending on the type of the information to be displayed
    • G09G2320/062Adjustment of illumination source parameters
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0435Change or adaptation of the frame rate of the video stream
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2380/00Specific applications

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)
  • Computer Hardware Design (AREA)
  • Optics & Photonics (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Chemical & Material Sciences (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

롤링 조명 디스플레이 패널을 갖는 머리-장착형 디스플레이(HMD)는 시선 추적에 기초하여 주어진 프레임에 대한 렌더링 시간을 동적으로 타겟팅할 수 있다. 이러한 접근법을 사용하여, 사용자가 보고 있는 디스플레이(들)의 위치에서 재투영 조정들이 최소화되며, 이는 그 "관심 구역"에서 원치 않는 재투영-기반 시각적 아티팩트들을 완화시킨다. 예를 들어, HMD의 로직은, 사용자가 주어진 프레임에 대한 조명 시간 기간 동안 보고 있을 디스플레이 패널 상의 위치를 예측하고, 그 조명 시간 기간 내에서, 예측된 위치에 대응하는 픽셀들의 개별 서브세트가 조명될 시간을 결정하고, HMD가 결정된 시간에 있을 포즈를 예측하며, 프레임을 렌더링하기 위해 이러한 예측된 포즈를 표시하는 포즈 데이터를 애플리케이션에 전송할 수 있다.

Description

시선 추적에 기초한 동적 렌더링 시간 타겟팅
관련 출원에 대한 상호 참조
본 출원은, 발명의 명칭이 "DYNAMIC RENDER TIME TARGETING BASED ON EYE TRACKING"으로 2019년 3월 27일자로 출원된 미국 특허 출원 제16/367,008호에 대한 우선권을 주장하는 PCT 출원이며, 그 출원은, 2019년 1월 14일자로 출원된, 공동으로 할당되고 공동-계류중인 미국 가특허 출원 제62/792,305호에 대한 우선권을 주장한다. 출원들 제16/367,008호 및 제62/792,305호는 본 명세서에 참고로 완전히 통합된다.
가상 현실(VR) 시스템들은 비디오 게임 산업 내외에서 모두 사용된다. VR 시스템들에 대한 디스플레이들, 예컨대 VR 헤드셋에 임베딩된 디스플레이들은 다양한 디스플레이 구동 기법들을 사용하여 동작할 수 있다. 일부 VR 시스템들은 디스플레이(들)를 구동시키기 위해 "전역 플래싱(global flashing)" 기법을 사용한다. 전역 플래싱 기법에서, 디스플레이(들)의 픽셀들 모두는 주어진 프레임에 대해 디스플레이(들) 상에 이미지를 제시하기 위해 동기화되어 조명된다. 다른 VR 시스템들은 디스플레이(들)를 구동시키기 위해 "롤링 밴드(rolling band)" 기법을 사용한다. 롤링 밴드 기법에서, 주어진 프레임에 대해 디스플레이(들) 상에 이미지를 제시하기 위해 픽셀들의 행들이 시퀀스로(전형적으로는 상단으로부터 하단으로) 조명된다. 다시 말하면, 롤링 밴드 디스플레이 구동 기법을 이용하면, 조명은 주어진 프레임에 대한 이미지의 제시 동안 디스플레이에 걸쳐 전파(또는 "롤링")된다.
롤링 밴드 디스플레이 구동 기법을 구현하는 VR 헤드셋의 사용자는, 디스플레이(들)의 상단 또는 하단을 볼 때, 이들 구역들 내의 움직이거나 애니메이션화된 물체들에 대해 "저더(judder)"와 같은 원치 않는 시각적 아티팩트들을 인지할 수 있다. 저더는, 움직이는 물체(예컨대, 디스플레이의 하단에서 움직이는 사용자의 손의 가상 표현)는 프레임마다 2개의 위치들 사이에서 바운싱(bounce)되는 것처럼(또는 그 자체로부터 분리되어 있는 것처럼) 보이는 "이중 고스팅 효과(double ghosting effect)"를 사용자가 지각하게 한다. 디스플레이(들)의 상단 및 하단 부근의 이러한 원치 않는 시각적 아티팩트의 원인은, 부분적으로는 주어진 프레임을 렌더링하기 위해 애플리케이션에 제공되는 타겟 렌더링 시간 때문이고, 부분적으로는 사용자의 머리 포즈의 가장 최신의 추정치와 정렬되는 이미지를 제시하기 위해 애플리케이션-렌더링된 프레임에 회전 보정들을 적용하는 재투영 단계 때문이다.
VR 헤드셋의 디스플레이 패널(들) 상에 이미지들을 제시하는 데 사용되는 렌더링된 프레임들을 출력하는 비디오 게임과 같은 그래픽-기반 애플리케이션을 고려한다. 사용자의 머리 포즈에 기초하여 정확한 장면을 렌더링하기 위해, 애플리케이션은 사용자의 머리의 예측된 포즈를 입력으로서 수신한다. 그러나, 래스터화-기반 렌더링 접근법을 이용하면, 애플리케이션은 해당 프레임을 렌더링하기 위한 입력으로서 (단일 타겟 렌더링 시간에 기초한) 단일 포즈만을 수용할 수 있다. 이는, 사용자의 머리의 원래 포즈 예측을 위해 단일 타겟 렌더링 시간이 선택되어야 한다는 것을 의미한다. 롤링 밴드 디스플레이 구동 기법을 사용하는 VR 시스템에서 하나의 옵션은, 모든 프레임에 대한 타겟 렌더링 시간으로서, 픽셀들의 중간 행이 조명될 시간을 선택하는 것이다. 이러한 접근법이 전체 프레임에 대한 재투영 조정들의 총량을 최소화할 것으로 예상되지만, 그럼에도 불구하고, 사용자가 디스플레이 패널(들)의 중간을 항상 바라보는 것은 아니기 때문에, 그 접근법은 디스플레이 패널(들)의 상단 및 하단 부근에서 사용자에 의해 인지되는 원치 않는 저더 아티팩트들을 완화시키는 데 실패한다. 실제로, 사용자의 눈들은 디스플레이 패널(들) 주위를 돌아다니는 경향이 있으며, VR 헤드셋이 사용될 때 종종 디스플레이(들)의 상단 또는 하단을 응시한다. 사용자의 눈들이 디스플레이의 중간으로부터 디스플레이의 상단 또는 하단으로 이탈할 때, 예를 들어, 디스플레이(들)의 상단 또는 하단 부근의 픽셀 값들에 적용되는 재투영 조정들은 디스플레이의 이들 구역들 내의 움직이거나 애니메이션화된 물체들에 대해 눈에 띄는 저더 아티팩트들을 야기할 수 있다.
이들 및 다른 시스템들을 개선 및 향상시키기 위한 기술적 솔루션들이 본 명세서에서 제공된다.
상세한 설명은 첨부 도면들을 참조하여 설명된다. 도면들에서, 참조 번호의 가장 왼쪽 숫자(들)는 참조 번호가 처음 나타나는 도면을 식별한다. 상이한 도면들에서 동일한 참조 번호들의 사용은 유사하거나 동일한 컴포넌트들 또는 특징부들을 표시한다.
도 1은 본 명세서에 개시된 실시예들에 따른, 시선 추적에 기초하여 주어진 프레임에 대한 렌더링 시간을 동적으로 타겟팅하기 위한 예시적인 기법을 예시하는 도면이다.
도 2는 본 명세서에 개시된 실시예들에 따른, 시선 추적에 기초하여 주어진 프레임에 대한 렌더링 시간을 동적으로 타겟팅하기 위한 접근법을 사용할 때, 재투영 조정들의 정도가 픽셀들의 상이한 서브세트들에 대해 디스플레이에 걸쳐 어떻게 변하는지를 예시하는 도면이다.
도 3은 본 명세서에 개시된 실시예들에 따른, 시선 추적에 기초하여 주어진 프레임에 대한 렌더링 시간을 동적으로 타겟팅하기 위한 예시적인 프로세스의 흐름도를 예시한다.
도 4는 본 명세서에 개시된 실시예들에 따른, 재투영 조정들을 적용하기 위한 예시적인 서브-프로세스의 흐름도를 예시한다.
도 5는 본 명세서에 개시된 기법들이 구현될 수 있는 웨어러블 디바이스의 예시적인 컴포넌트들, 예컨대 VR 헤드셋을 예시한다.
다른 것들 중에서도, 시선 추적 및 픽셀들의 개별 서브세트들에 대한 묵시적 스캔 아웃 레이턴시에 기초하여 주어진 프레임에 대한 렌더링 시간을 동적으로 타겟팅하기 위한 기법들 및 시스템들(머리-장착형 디스플레이(HMD) 시스템을 포함함)이 본 명세서에 설명된다. 이러한 접근법을 사용하여, 사용자가 이미지 제시 동안 보고 있는 디스플레이(들)의 위치에서 픽셀 값들에 재투영 조정들이 거의 내지 전혀 적용되지 않으며, 이는 사용자가 보고 있는 "관심 구역"에서 원치 않는 재투영-기반 시각적 아티팩트들을 완화시킨다. 일반적으로, 대규모 재투영 조정들이 애플리케이션-렌더링된 프레임에 적용될 때, 결과적인 재투영된 프레임은 저더와 같은 원치 않는 시각적 아티팩트들을 나타낼 것이며, 이는 프레임마다 2개 이상의 물체들로 분할되는 움직이거나 애니메이션화된 물체로서 나타난다. 반대로, 소규모 재투영 조정들이 애플리케이션-렌더링된 프레임에 적용될 때, 결과적인 재투영된 프레임은 재투영에 의해 야기되는 이러한 원치 않는 시각적 아티팩트들을 완화시킬 것이다. 따라서, 프레임을 정확하게 렌더링하기 위해 가능한 한 가능한 한 예측을 정확하게 하고 재투영 동안 가능한 한 적은 재투영 조정들을 행하려는 목적으로, 본 명세서에 설명된 기법들 및 시스템들은, 관심 구역 내의 픽셀 값들에 대한 재투영 조정들을 최소화함으로써 사용자가 보고 있는 경우 관심 구역에서 이미지 품질을 개선시킨다. 이는 롤링 밴드 디스플레이 구동 기법을 구현하는 HMD의 디스플레이 품질을 개선시킨다.
예시적인 예에서, HMD는 사용자를 가상 현실(VR) 환경 또는 증강 현실(AR) 환경에 몰입시키려는 목적들을 위해 사용자에 의해 착용될 수 있다. HMD의 하나 이상의 디스플레이 패널들은 애플리케이션(예를 들어, 비디오 게임)에 의해 출력되는 프레임들에 기초하여 이미지들을 제시하며, 이들 이미지들은 HMD에 포함된 광학기기를 통해 사용자에 의해 보여져서, 사용자가 VR 또는 AR 환경에 몰입된 것처럼 사용자가 이미지들을 지각하게 한다. HMD는 조명 시간 기간에 걸쳐 시퀀스로 픽셀들의 개별 서브세트들을 조명함으로써 HMD의 디스플레이 패널(들)을 구동시키기 위해 롤링 밴드 기법을 이용할 수 있다. 따라서, 조명은 주어진 프레임에 대한 이미지의 제시 동안 디스플레이 패널(들)에 걸쳐 전파(또는 "롤링")된다.
HMD를 포함하는 HMD 시스템은 또한, HMD의 원래 포즈 예측에서의 약간의 부정확성들을 보상하기 위해 그리고/또는 프레임 레이트를 생성하는 데 실패한 애플리케이션을 보상하기 위해 "재투영"으로 지칭되는 기법을 이용할 수 있으며, 이는 약간 부정확한 원래 포즈 예측과 동일한 효과를 갖는다. 예를 들어, 재투영된 프레임은, HMD의 포즈의 업데이트된 예측을 설명하는 방식으로 애플리케이션-렌더링된 프레임을 (예를 들어, 회전 및 재투영 계산들을 통해) 변환함으로써 애플리케이션-렌더링된 프레임으로부터의 픽셀 데이터를 사용하여 생성될 수 있다.
사용자가 보고 있는 디스플레이(들) 상의 관심 구역에서의 재투영에 의해 야기되는 원치 않는 시각적 아티팩트들을 완화시키기 위한 기법들 및 시스템들이 본 명세서에 설명되며, 그에 의해, 존재한다면, 이들 원치 않는 시각적 아티팩트들이 관심 구역에서 나타나지 않을 것이기 때문에, 이들 원치 않는 시각적 아티팩트들을, 보는 사용자에게 눈에 띄지 않게 함으로써 디스플레이 성능을 개선시킨다. 예시적인 프로세스에서, 다음 프레임을 렌더링하기 위해 애플리케이션에 대한 입력으로서 포즈 데이터를 제공하기 전에, HMD 시스템의 로직(예를 들어, 합성기)은 (HMD를 착용하고 있는) 사용자가 프레임에 대한 조명 시간 기간 동안 보고 있을 디스플레이 패널 상의 위치를 예측할 수 있다. 이러한 예측은 HMD 시스템의 시선 추적 시스템에 의해 생성된 시선 추적 데이터에 적어도 부분적으로 기초할 수 있다. 일부 실시예들에서, HMD 시스템의 로직은, 시선 추적 데이터에 기초하여 조명 시간 기간 동안 사용자가 보고 있을 시선 지점을 예측하고, 예측된 시선 지점에 대응하는 디스플레이 패널 상의 위치를 결정하도록 구성된다. HMD 시스템의 로직은 또한, 조명 시간 기간 내에서, 디스플레이 패널 상의 예측된 위치에 대응하는 픽셀들의 개별 서브세트가 조명될 시간을 결정하도록 구성된다. 이어서, HMD 시스템의 머리 추적 시스템에 의해 생성된 머리 추적 데이터를 사용하여, 로직은 결정된 시간에 HMD가 있을 포즈(사용자가 조명 시간 기간 동안 어디를 보고 있을지를 표시하는 시선 추적 데이터에 기초하여 동적으로 타겟팅되었음)를 예측할 수 있다. 이어서, HMD의 예측된 포즈를 표시하는 포즈 데이터는 프레임을 렌더링하기 위해 애플리케이션에 전송될 수 있으며, HMD 시스템의 로직은, 애플리케이션으로부터 프레임을 수신할 시에, 재투영된 프레임과 연관된 수정된 픽셀 데이터를 획득하기 위해 애플리케이션-렌더링된 프레임에 대한 픽셀 데이터에 재투영 조정들을 적용할 수 있다. 이러한 수정된 픽셀 데이터는 디스플레이 패널(들) 상에 이미지를 제시하기 위해 프레임 버퍼에 출력될 수 있으며, 그에 의해, 픽셀들의 개별 서브세트들은 이미지를 제시하기 위해 조명 시간 기간에 걸쳐 시퀀스로 조명된다.
시선 추적 및 픽셀들의 개별 서브세트들에 대한 묵시적 스캔 아웃 레이턴시에 기초하여 애플리케이션-렌더링된 프레임에 대한 렌더링 시간을 동적으로 타겟팅함으로써, 장면(또는 화상)은, 디스플레이 패널(들) 상의 관심 구역으로부터의 광(광자들)이 사용자의 눈에 실제로 도달할 시간 동안 렌더링될 수 있다. 이는, 장면이 관심 구역에서 정확하게 렌더링될 수 있고, 따라서, 존재한다면, 단지 소규모의 재투영 조정들이 사용자가 이미지 제시 동안 보고 있는 관심 구역 내의 픽셀 데이터(값들)에 적용된다는 것을 의미한다. 다시 말하면, 사용자의 눈들을 추적함으로써, 사용자가 롤링 조명 시간 기간 동안 디스플레이 패널(들)의 상단 부분 내의 픽셀들의 서브세트를 볼 가능성이 있다고 결정될 수 있다면, HMD 시스템의 로직(예를 들어, 합성기)은, 그 픽셀들의 서브세트가 롤링 조명 시간 기간 동안 조명될 시간에 대해 예측되는 사용자의 머리 포즈에 따라 장면을 렌더링하도록 애플리케이션에 알릴 수 있다. 후속 프레임에 대해, 사용자가 롤링 조명 시간 기간 동안 디스플레이 패널(들)의 하단 부분 내의 픽셀들의 서브세트를 볼 것으로 예측되면, 로직은, 그 픽셀들의 서브세트가 롤링 조명 시간 기간 동안 조명될 시간에 대해 예측되는 사용자의 머리 포즈에 따라 장면을 렌더링하도록 애플리케이션에 알릴 수 있다. 따라서, 픽셀들의 중간 행이 조명될 시간 동안 주어진 프레임을 항상 렌더링하는 대신에, 본 명세서에 설명되는 기법들은, 사용자가 이미지 제시 동안 디스플레이 패널(들) 상의 어디를 볼 것으로 예측되는지에 기초하여 다음 프레임에 대한 렌더링 시간을 동적으로 선택하는 것에 관한 것이다. 달리 말하면, 각각의 프레임에 대해, HMD 시스템의 로직은 디스플레이 패널(들) 상에 제시될 "세계의 화상"에 대해 어느 시점을 선택할지를 애플리케이션에 알리도록 구성되며, 이러한 시점은 세계의 화상이 제시될 때 사용자가 어디를 보고 있을지의 예측에 기초하여 선택된다.
또한, 본 명세서에 개시된 기법들 및 프로세스들을 구현하도록 구성된 시스템들, 예를 들어, 디스플레이 시스템(예를 들어, HMD 시스템)을 포함하는 시스템들뿐만 아니라 본 명세서에 개시된 기법들 및 프로세스들을 구현하기 위한 컴퓨터 실행가능 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체들이 본 명세서에 개시된다. 본 명세서에 개시된 기법들 및 시스템들이 예로서 비디오 게임 애플리케이션들 및 구체적으로는 VR 게이밍 애플리케이션들의 맥락에서 논의되지만, 본 명세서에 설명되는 기법들 및 시스템들이 비-VR 애플리케이션들(예를 들어, AR 애플리케이션들), 및/또는 비-게이밍 애플리케이션들, 예컨대 산업 기계 애플리케이션들, 방위 애플리케이션들, 로봇 애플리케이션들 등을 포함하지만 이에 제한되지 않는 다른 애플리케이션들에 이점들을 제공할 수 있다는 것이 인식되어야 한다.
도 1은 시선 추적에 기초하여 주어진 프레임에 대한 렌더링 시간을 동적으로 타겟팅하기 위한 예시적인 기법을 예시하는 도면이다. 도 1은 사용자(102)에 의해 착용된 머리-장착형 디스플레이(HMD)(100)를 도시한다. 도 1의 예의 HMD(100)는 단일 디스플레이 패널(104) 또는 다수의 디스플레이 패널들(104), 예컨대 디스플레이 패널들의 스테레오 쌍의 좌측 디스플레이 패널 및 우측 디스플레이 패널을 포함할 수 있다. HMD(100)의 하나 이상의 디스플레이 패널들(104)은 HMD(100)를 착용한 사용자(102)에 의해 보여질 수 있는 일련의 이미지 프레임들(본 명세서에서 "프레임들"로 지칭됨)을 제시하는 데 사용될 수 있다. HMD(100)가 임의의 수의 디스플레이 패널들(104)(예를 들어, 2개 초과의 디스플레이 패널들, 한 쌍의 디스플레이 패널들, 또는 단일 디스플레이 패널)을 포함할 수 있다는 것이 인식되어야 한다. 따라서, 본 명세서에서 단수로 사용되는 바와 같은 용어들 "디스플레이 패널"은 2-패널 HMD(100)의 한 쌍의 디스플레이 패널들의 어느 하나의 디스플레이 패널(104)을 지칭할 수 있거나, 또는 디스플레이 패널은 임의의 수의 디스플레이 패널들을 갖는 HMD(100)(예를 들어, 단일-패널 HMD(100) 또는 다중-패널 HMD(100))의 단일 디스플레이 패널(104)을 지칭할 수 있다. 2-패널 HMD(100)에서, 스테레오 프레임 버퍼는, 예를 들어 HMD(100)의 디스플레이 패널들 둘 모두 상에서 2160x1200 픽셀들(예를 들어, 디스플레이 패널 당 1080x1200 픽셀들)을 렌더링할 수 있다.
HMD(100)의 디스플레이 패널(들)(104)은 임의의 적합한 유형의 디스플레이 기술, 예컨대 디스플레이 패널(들)(104) 상에서의 프레임들의 제시 동안 광을 방출하기 위해 발광 요소들을 이용하는 발광 디스플레이(예를 들어, 발광 다이오드(LED)들)를 이용할 수 있다. 일 예로서, HMD(100)의 디스플레이 패널들(104)은 액정 디스플레이(LCD)들, 유기 발광 다이오드(OLED) 디스플레이들, 무기 발광 다이오드(ILED) 디스플레이들, 또는 HMD 애플리케이션들에 대한 임의의 다른 적합한 유형의 디스플레이 기술을 포함할 수 있다.
HMD(100)의 디스플레이 패널(들)(104)은 임의의 적절한 리프레시 레이트, 예컨대 90헤르츠(Hz) 리프레시 레이트로 동작할 수 있다. 디스플레이의 "리프레시 레이트"는 디스플레이가 스크린을 리드로잉(redraw)할 수 있는 초당 횟수이다. 초당 디스플레이되는 프레임들의 수는 디스플레이의 리프레시 레이트에 의해 제한될 수 있다. 따라서, 일련의 프레임들은, 모든 스크린 리프레시에 따라 일련의 프레임들 중 단일 프레임이 디스플레이되도록 디스플레이 상에 이미지들로서 프로세싱(예를 들어, 렌더링) 및 디스플레이될 수 있다. 즉, 디스플레이 패널(들)(104) 상에 일련의 이미지들을 제시하기 위해, 디스플레이 패널(들)(104)은 일련의 프레임들에서 디스플레이의 리프레시 레이트로 프레임마다 전환될 수 있으며, 모든 스크린 리프레시에서 픽셀들을 조명한다. 일부 실시예들에서, 프레임 레이트는 스로틀링(throttle)될 수 있으며, (재투영에 기초한) 팬텀 프레임들(phantom frame)이 애플리케이션-렌더링된 프레임들 사이에 삽입될 수 있다.
HMD(100)의 디스플레이 시스템은 또한 롤링 밴드 유형의 디스플레이 구동 방식을 구현할 수 있다. 즉, 디스플레이 패널(들)(104)의 발광 요소들은, 발광 요소들의 개별 서브세트들 및 그에 따라 픽셀들의 개별 서브세트들이 조명 시간 기간 동안 조명의 롤링 밴드에서 독립적으로 그리고 순차적으로 조명될 수 있도록 개별적으로 어드레싱가능할 수 있다. 일부 실시예들에서, 디스플레이 패널(들)(104) 상의 픽셀들의 어레이 및 발광 요소들 둘 모두는 행들 및 열들로 배열되지만, 반드시 1-발광 요소 당 1-픽셀 대응을 갖는 것은 아니다. 이러한 구성에서, 발광 요소들의 개별적인 행들 및/또는 개별적인 열들이 시퀀스로 어드레싱될 수 있고, 그리고/또는 발광 요소들의 인접한 행들의 개별 그룹들 및/또는 인접한 열들의 개별 그룹들이 시퀀스로 어드레싱될 수 있다. 이러한 "롤링" 방식으로 발광 요소들을 어드레싱한 결과로서, 발광 요소들의 이들 개별적으로 어드레싱가능한 서브세트들에 대응하는 픽셀들의 서브세트들은 독립적으로 "조명"될 수 있다.
본 명세서에서 사용되는 바와 같이, "픽셀을 조명하는 것"은 그 픽셀에 대응하는 발광 요소를 조명하는 것을 의미한다. 예를 들어, LCD는 디스플레이의 대응하는 픽셀(들)을 조명하기 위해 백라이트의 발광 요소를 조명한다. 더욱이, 본 명세서에서 사용되는 바와 같이, "픽셀들의 서브세트"는 개별적인 픽셀 또는 다수의 픽셀들(예를 들어, 픽셀들의 그룹)을 포함할 수 있다. 일부 실시예들에서, 픽셀들의 서브세트는 픽셀들의 행, 픽셀들의 열, 픽셀들의 인접한 행들의 그룹, 또는 픽셀들의 인접한 열들의 그룹을 포함한다. 따라서, 본 명세서에 설명된 기법들 및 시스템들의 양태에서, 픽셀들의 서브세트들은, 예컨대 픽셀들의 제1 행(예를 들어, 픽셀들의 상단 행)으로 시작해서 픽셀들의 마지막 행(예를 들어, 픽셀들의 하단 행)으로 종료하여 시퀀스로 픽셀들의 각각의 행을 스캔 아웃 및 조명함으로써 시퀀스로(순차적으로) 스캔 아웃 및 조명될 수 있다. 그러나, 본 명세서에 설명된 기법들 및 시스템들을 사용하여 임의의 적합한 패턴의 조명(예를 들어, 스네이크형(snake-like) 조명 패턴, 열-단위 조명, 시퀀스로 한 번에 다수의 행들/열들의 픽셀들 등)이 이용될 수 있다.
이러한 "롤링"방식으로 디스플레이 패널(들)(104)을 구동시키기 위해, HMD(100)는 무엇보다도, 디스플레이 제어기(들), 디스플레이 구동기 회로부, 및 디스플레이 패널(들)(104)을 구동시키기 위한 유사한 전자기기를 포함할 수 있다. 디스플레이 구동기 회로부는 가요성 인쇄 회로 상의 전도성 경로들, 예컨대 금속 트레이스들을 통해 디스플레이 패널(들)(104)의 발광 요소들의 어레이에 커플링될 수 있다. 일 예에서, 디스플레이 제어기(들)는 디스플레이 구동기 회로부에 통신가능하게 커플링되며, 신호들, 정보, 및/또는 데이터를 디스플레이 구동기 회로부에 제공하도록 구성될 수 있다. 디스플레이 구동기 회로부에 의해 수신된 신호들, 정보, 및/또는 데이터는 디스플레이 구동기 회로부로 하여금 특정한 방식으로 발광 요소들을 조명하게 할 수 있다. 즉, 디스플레이 제어기(들)는, 어느 발광 요소(들)가 조명될 것인지, 요소(들)가 조명될 때, 및 발광 요소(들)에 의해 방출될 광 출력의 레벨을 결정할 수 있으며, 그 목적을 달성하기 위해 적절한 신호들, 정보, 및/또는 데이터를 디스플레이 구동기 회로부에 통신할 수 있다.
주어진 프레임에 대한 픽셀 데이터는 프레임을 디스플레이 패널(104) 상에 이미지로서 제시하기 위해 프레임 버퍼에 출력될 수 있다. 일부 실시예들에서, 각각의 프레임에 대한 픽셀 데이터는 픽셀-당 값들(예를 들어, 컬러 값들)의 2차원 어레이를 포함할 수 있다. 일부 실시예들에서, 픽셀 데이터는 깊이 값들과 같은 부가적인 데이터 또는 메타데이터를 더 포함한다. 일부 실시예들에서, 픽셀 데이터는 컬러 및 알파 값들(예를 들어, 적색 채널에 대한 하나의 컬러 값, 녹색 채널에 대한 하나의 컬러 값, 청색 채널에 대한 하나의 컬러 값, 및 하나 이상의 알파 채널들에 대한 하나 이상의 값들)의 단일 세트에 의해 표현되는 각각의 픽셀에 대한 데이터를 포함할 수 있다. 이러한 픽셀 데이터는 원하는 시각적 효과로 HMD(100)의 디스플레이 패널(들)(104) 상의 이미지(들) 상에 제시하기 위해 프레임 버퍼(예를 들어, 스테레오 프레임 버퍼)에 출력될 수 있다.
HMD(100)는 VR 시스템들에서 사용하기 위한, 예컨대 VR 게이밍 시스템과 함께 사용하기 위한 VR 헤드셋을 표현할 수 있다. 그러나, 부가적으로 또는 대안적으로, HMD(100)는 AR 애플리케이션들에서 사용하기 위한 AR 헤드셋으로서 구현될 수 있다. AR에서, 사용자(102)는 실세계 환경 상에 오버레이된 가상 객체들을 보는 반면, VR에서, 사용자(102)는 실세계 환경을 보지 않지만, HMD(100)의 디스플레이 패널(들)(104) 및 광학기기들(예를 들어, 렌즈들)을 통해 지각되는 바와 같은 가상 환경에 완전히 몰입된다. 본 명세서에 설명되는 예들은 주로 VR-기반 HMD(100)에 관한 것이지만, HMD(100)가 VR 애플리케이션들에서의 구현으로 제한되지 않는다는 것이 인식되어야 한다.
일반적으로, HMD(100) 자체, 또는 HMD 시스템의 일부로서 HMD(100)와 연관된 그리고 그에 커플링된 컴퓨팅 디바이스(예를 들어, 퍼스널 컴퓨터(PC), 게임 콘솔 등)와 같은 컴퓨팅 디바이스 상에서 실행되는 그래픽-기반 애플리케이션(106)(예를 들어, 비디오 게임)은 일련의 프레임들(108(1), 108(2), 108(3) 등)(총괄하여, 108)을 출력하도록 구성될 수 있다. 일련의 프레임들(108)은 궁극적으로 HMD(100)의 디스플레이 패널(들)(104) 상에 이미지들로서 제시된다. 도 1의 예는, 프레임들(108)이 직렬로 어떻게 렌더링될 수 있는지를 예시하기 위해 렌더링 타임라인(110)에 대한 3개의 예시적인 프레임들(108(1)(또는 프레임 "F"), 108(2)(또는 프레임 "F+1"), 및 108(3)(또는 프레임 "F+2"))을 도시한다. 여기서, 애플리케이션(106)은 렌더링 타임라인(110) 상에서 좌측으로부터 우측으로 시퀀스로, 먼저 프레임 F를, 이어서 프레임 F+1을, 이어서 프레임 F+2를 렌더링한다. 렌더링 타임라인(110)은 또한, 각각의 프레임(108)에 대한 각각의 렌더링 간격의 끝을 향한 HMD(100)(또는 HMD 시스템)의 합성기(114)의 렌더링 작업부하들(112)을 도시한다. 주어진 프레임(108)에 대한 합성기(114)의 개별적인 렌더링 작업부하(112)는 HMD(100) 상에 최종 이미지를 렌더링하기 전에 애플리케이션(106)에 의해 출력된 픽셀 데이터에 적용되는 조정들을 표현할 수 있다. 그러한 조정들은, HMD(100) 상에 최종 이미지를 렌더링하기 전에 애플리케이션(106)에 의해 출력된 프레임(108)에 적용되는 색채 왜곡, 패널 마스킹, 재투영 등에 대한 조정들을 제한 없이 포함할 수 있다. 따라서, 도 1에 도시된 프레임들(108)은, 그들이 비디오 게임 애플리케이션 또는 임의의 다른 유형의 그래픽-기반 애플리케이션을 표현할 수 있는 애플리케이션(106)으로부터 출력된다는 의미에서 "실제" 프레임들을 표현하도록 의도된다. 애플리케이션(106)은 픽셀 데이터를 출력하는 그래픽 파이프라인에서 실행될 수 있고, 합성기(114)는 그 픽셀 데이터를 수정하고, 수정된 픽셀 데이터를 프레임 버퍼(예를 들어, 스테레오 프레임 버퍼)에 출력하도록 구성된다.
런타임 동안, HMD(100)(또는 HMD 시스템)의 시선 추적 시스템은 사용자(102)가 임의의 주어진 시간 순간에 보고 있는 시선 지점에 관한 시선 추적 데이터를 생성할 수 있다. 시선 추적 시스템은 사용자의 눈들(116)의 이미지 데이터를 캡처하기 위해 HMD(100) 내부에 카메라 또는 다른 광학 센서를 포함할 수 있으며, 캡처된 이미지 데이터는 HMD(100)에 대한 각각의 눈(116)의 모션 벡터들, 동공간 거리, 안구간 거리, 3차원(3D) 포지션(position)(비틀림 및 회전(즉, 롤(roll), 피치(pitch), 및 요(yaw))의 크기 및 각각의 눈(116)에 대한 시선 방향들을 포함함)을 결정하기 위해 사용될 수 있다. 일 예에서, 적외선 광은 HMD(100) 내에서 방출되고 각각의 눈(116)으로부터 반사된다. 반사된 광은 HMD(100)의 카메라에 의해 수신 또는 검출되고, 각각의 눈(116)에 의해 반사된 적외선 광의 변화들로부터 눈 회전을 추출하기 위해 분석된다. 일부 실시예들에서, 시선 추적 시스템은 과거 측정들로부터의 정보, 사용자(102)의 머리의 포지션을 식별하는 측정들, 및 디스플레이 패널(들)(104) 상에 제시된 장면을 설명하는 3D 정보를 통합할 수 있다. 따라서, 사용자(102)가 보고 있는 HMD(100)에 의해 제시된 가상 장면에서 시선 지점을 결정하기 위해, 사용자(102)의 눈들(116)의 포지션 및 배향에 대한 정보가 사용될 수 있다. 사용자(102)의 눈들(116)을 추적하기 위한 많은 방법들이 HMD(100)(또는 HMD 시스템)의 시선 추적 시스템에 의해 이용될 수 있으며, 이들은 단지 이용될 수 있는 시선 추적 기법들의 예들일 뿐이다.
임의의 경우, HMD(100)(또는 HMD 시스템)의 시선 추적 시스템에 의해 생성된 시선 추적 데이터는 다가올 프레임(108)에 대한 조명 시간 기간 동안 사용자(102)가 보고 있을 시선 지점을 예측하기 위해 합성기(114)에 의해 사용될 수 있으며, 이러한 시선 지점은 임의의 적합한 레벨의 입도(예를 들어, 픽셀들의 개별 서브세트(예를 들어, 행), 픽셀들의 인접한 서브세트들(예를 들어, 행들)의 개별 그룹, 디스플레이 패널(들)(104)의 다른 구역들 등)로 정의될 수 있는 디스플레이 패널(들)(104) 상의 위치에 상관될 수 있다. 일부 실시예들에서, 가장 최근의 시선 추적 데이터(예를 들어, 시선 지점)는 다가올 프레임(108)에 대한 조명 시간 기간 동안 사용자(102)가 어디를 보고 있을지를 예측하기 위한 프록시로서 사용될 수 있다. 오늘날의 시선 추적 기술을 이용하면, 신속한 눈 움직임 동안 눈들에 의해 나타날 수 있는 탄도 모션(ballistic motion)들 때문에, 사용자의 눈들이 미래의 시간에 어디에 있을 지를 정확하게 예측하는 것은 어렵다. 이는, 미래의 시선 지점을 예측하기 위한 프록시로서 가장 최근의 시선 지점 추정을 사용하기 위한 하나의 이유이다. 그러나, 시선 추적이 시간에 걸쳐 개선됨에 따라, 사용자(102)가 미래의 시간에 어디를 볼 것인지의 예측은 더 정확해질 수 있으며, 따라서 미래의 시선 지점의 예측은 과거의 시선 추적 데이터의 함수로서 결정될 수 있다. 예를 들어, 미래의 시선 지점은 사용자의 눈들(116)의 모션 벡터 추정들에 기초하여 그리고/또는 부가적인 데이터에 기초하여 예측될 수 있다.
도 1은 또한, 렌더링 타임라인(110)에서 렌더링되는 각각의 프레임(108)에 대응하는 조명 시간 기간들을 예시하기 위해 "스캔 아웃 + 조명" 타임라인(118)을 도시한다. 예를 들어, 프레임 F가 애플리케이션(106)에 의해 렌더링된 이후, 그리고 합성기(114)가 프레임 F에 대한 픽셀 데이터를 수정하기 위해 자신의 렌더링 작업부하(112(1))를 수행한 이후, 프레임 F에 대응하는 이미지가 프레임 F에 대한 조명 시간 기간(120(1)) 동안 디스플레이 패널(들)(104) 상에 제시된다. 이러한 조명 시간 기간(120(1)) 동안, 프레임 F에 대한 픽셀 값들(픽셀 데이터)의 서브세트들은 디스플레이 포트(예를 들어, 고화질 멀티미디어 인터페이스(HDMI))를 통해 디스플레이 패널(들)(104)로 시퀀스로 스캔 아웃되고, 디스플레이 패널(들)(104)의 발광 요소들은 픽셀들의 개별 서브세트들이 시퀀스로 조명되게 하기 위해 시퀀스로 조명된다. 도 1은 픽셀들의 개별 서브세트들이 픽셀들의 개별적인 행들에 대응하는 일 예를 예시한다. 예를 들어, 디스플레이 패널(들)(104)은, 상단 행일 수 있는 제1 행("행 1")으로 시작하여 하단 행일 수 있는 마지막 행("행 N")으로 끝나는 픽셀들의 다수의 행들을 가질 수 있다. 조명 시간 기간(120)은 또한, 도 1에 도시된 시간들 t1 내지 tN의 관점들에서 설명될 수 있다. 예를 들어, 픽셀들의 제1 서브세트(예를 들어, "행 1")는 시간(t1)에 조명될 수 있고, 픽셀들의 마지막 서브세트(예를 들어, "행 N")는 시간(tN)에 조명될 수 있는 반면, 픽셀들의 중간 서브세트들은 조명 시간 기간(120)의 이들 외측 경계들 사이의 개개의 시간들에 조명될 수 있다. 언급된 바와 같이, 90 Hz의 리프레시 레이트의 경우, 조명 시간 기간(120)은 지속기간이 대략 11 ms일 수 있다.
도 1의 예에서, 프레임 F를 렌더링하기 위해, 합성기(114)는, 사용자(102)가 프레임 F에 대해 조명 시간 기간(120(1)) 동안 보고 있을 시선 지점을 예측할 수 있다. 도 1의 예에서, 프레임 F에 대한 예측된 시선 지점은 디스플레이 패널(들)(104)의 상단 부분 내의 픽셀들의 개별 서브세트(또는 인접한 서브세트들의 그룹)에 대응하는 시선 지점이다. 이는, 사용자(102)가 조명 시간 기간(120(1)) 동안 보고 있을 디스플레이 패널(들)(104)의 위치를 합성기(114)가 예측하는 것으로 설명될 수 있으며, 이러한 경우, 프레임 F에 대한 예측된 위치는 디스플레이 패널(들)(104)의 상단 부분 내의 픽셀들의 개별 서브세트(또는 인접한 서브세트들의 그룹)에 대응하는 위치이다. 디스플레이 패널(들)(104)의 "위치"는 사용자(102)가 디스플레이 패널(들)(104) 상의 어디를 보고 있을 수 있는지를 설명하기에 적합한 임의의 적합한 방식으로 그리고/또는 임의의 적합한 레벨의 입도로 정의될 수 있다는 것이 인식되어야 한다. 도 1의 예는 디스플레이 패널(들)(104)의 위치가 디스플레이 패널(들)의 픽셀들의 행들에 기초하여 결정될 수 있는 일 예를 예시한다. HMD(100)(또는 HMD 시스템)의 시선 추적 시스템의 정확도 및 픽셀들의 개별 서브세트들이 어드레싱될 수 있는 해상도에 의존하여, 사용자(102)가 어디를 보고 있을지의 예측은 임의의 적합한 레벨의 입도로, 예컨대 사용자(102)가 픽셀들의 주어진 서브세트(들)(예를 들어, 픽셀들의 개별적인 행(들), 픽셀들의 개별적인 열(들) 등) 또는 픽셀들의 인접한 서브세트들의 개별 그룹들(예를 들어, 인접한 행들의 그룹들, 인접한 열들의 그룹들 등)을 보고 있다고 추정함으로써 행해질 수 있다.
일단 프레임 F에 대응하는 이미지가 제시될 때 사용자(102)가 어디를 보고 있을지를 합성기(114)가 결정하면, 합성기(114)는 프레임 F에 대한 조명 시간 기간(120(1)) 내에서, 디스플레이 패널(들)(104) 상의 위치(사용자(102)가 보고 있는 것으로 예측됨)에 대응하는 픽셀들의 개별 서브세트가 조명될 시간을 결정하도록 추가로 구성될 수 있다. 예를 들어, 사용자(102)가 프레임 F에 대한 조명 시간 기간(120(1)) 동안 디스플레이 패널(들)(104)의 상단 부분 내의 픽셀들의 개별 서브세트(또는 인접한 서브세트들의 그룹)를 보고 있는 것으로 예측되면, 합성기(114)는 (디스플레이 패널(들)(104)의 상단 부분 내의) 픽셀들의 그 서브세트가 조명될 시간을 결정할 수 있다. 일 예에서, 합성기(114)는, 디스플레이 패널(들)(104)의 상단 부분 내에 있는 픽셀들의 제1 행(예를 들어, "행 1")이 시간(t1)에 조명될 것이라고 결정할 수 있다. 이러한 예에서, 합성기(114)는 (프레임 F에 대한 조명 시간 기간(120(1)) 내의) 타겟 렌더링 시간을 타겟 렌더링 시간 = t1로서 결정할 수 있는데, 그 이유는 시선 추적 데이터에 기초하여, 사용자(102)가 프레임 F에 대한 조명 시간 기간(120(1)) 동안 디스플레이 패널(들)(104)의 상단 부분 내의 픽셀들의 제1 행에 대응하는 위치를 보고 있는 것으로 예측되기 때문이다. 다른 예로서, 사용자(102)가 픽셀들의 제200 행을 보는 것으로 예측되면, 예를 들어, 합성기(114)는 픽셀들의 제200 행의 조명 시간을 타겟 렌더링 시간으로서 결정할 수 있다.
시선 추적 시스템에 부가하여, HMD(100)(또는 HMD 시스템)의 머리 추적 시스템은 HMD(100)의 포즈에 관한 머리 추적 데이터를 생성할 수 있고, 합성기(114)는 HMD(100)가 결정된 시간(타겟팅된 렌더링 시간)에 있을 포즈를 예측하도록 구성된다. 따라서, 프레임 F의 경우, 합성기(114)는, 디스플레이 패널(들)(104)의 상단 부분 내의 픽셀들의 서브세트(예를 들어, "행 1")가 조명 시간 기간(120(1)) 동안 조명될 시간인 것으로 결정되었던 시간(t1)에 HMD(100)가 있을 포즈를 예측할 수 있다. 합성기(114)는 프레임 F를 렌더링하기 위해, 예측된 포즈를 표시하는 포즈 데이터를 애플리케이션(106)에 전송할 수 있다. 포즈 데이터를 애플리케이션(106)에 미리 제공하는 것은, 미래의 타겟팅된 렌더링 시간(t1)에 사용자(102)의 예측된 머리 포즈에 대해 정확한 방식으로 HMD(100) 상에서 이미지 (imagery)를 렌더링하기 위한 픽셀 데이터를 애플리케이션(106)이 출력하게 허용한다. 이는, 사용자(102)가 보고 있는 것으로 예측되는 디스플레이 패널(들)(104)의 부분으로부터의 광이 사용자의 눈(들)(116)에 도달할 때, 애플리케이션(106)이 시간(t1)에서 사용자의 예측된 머리 포즈에 적절한 장면을 렌더링한다는 것을 의미한다.
HMD(100)(또는 HMD 시스템)의 그래픽 로직은 비동기식 또는 동기식일 수 있다. 비동기식 시스템에서, 합성기(114)는 HMD(100)(또는 HMD 시스템)의 그래픽 프로세싱 유닛(GPU) 상에서 애플리케이션(106)과는 별개로 (별개의 비동기식 스레드 상에서) 실행된다. 예를 들어, 애플리케이션(106)은 합성기(114)로부터 포즈 데이터를 수신하기 위한 함수를 호출할 수 있으며, 합성기(114)는, 애플리케이션(106)이 장면을 렌더링하는 데 사용되는 가상 카메라 포즈에 대응하는 포즈 데이터에 따라 프레임(108)(예를 들어, 프레임 F)을 렌더링할 수 있도록 (프레임 F에 대해 타겟 렌더링 시간(t1)에 예측된) 요청된 포즈 데이터를 애플리케이션(106)에 제공할 수 있다. 애플리케이션(106)이 합성기의 작업부하(112)가 시작되기 전에 프레임(108)을 렌더링하는 것을 완료한다고 가정하면, 합성기(114)는 애플리케이션(106)으로부터 프레임(108)(예를 들어, 좌측 및 우측 이미지 프레임들)을 취하고 프레임(들)(108)을 HMD(100)의 디스플레이 패널(들)(104) 상의 후방 버퍼(들)로 왜곡시키도록 구성된다. 예를 들어, 합성기(114)는 애플리케이션(106)에 의해 출력된 프레임(108)에 기초하여, HMD(100) 상에 최종 이미지를 렌더링하기 전에 색채 왜곡, 패널 마스킹, 재투영 등을 제한 없이 수행할 수 있다.
합성기(114)는 높은 우선순위 콘텍스트 모드에서 실행될 수 있으며, 이는, 합성기(114)가 자신의 작업부하(112)를 시작할 시간일 때, GPU 구동기는 합성기(114)가 (예를 들어, 애플리케이션(106)이 프레임(108)을 여전히 렌더링하고 있으면 애플리케이션이 렌더링하는 것을 중단시키고, 그리고/또는 애플리케이션(106)이 다음 프레임(108)을 렌더링하는 것을 시작하는 것을 방지함으로써) 애플리케이션(106)을 선점하게 허용한다는 것을 의미한다. 합성기(114)는, 애플리케이션(106)에 대해 무엇이 일어나고 있는지에 관계 없이, 자신의 작업(112)을 행하기 위해 각각의 렌더링 간격의 끝에 시간 슬롯(평균적으로 최대 1 ms)을 할당할 수 있다. 따라서, 모든 렌더링 간격에서, 합성기(114)는, 합성기(114)가 애플리케이션(106)으로부터 획득할 수 있는 최상의 프레임(108)(예를 들어, 새로 생긴/새로운 프레임(108) 또는 이전에 렌더링된 프레임(108))을 합성기가 획득한다는 의미에서 "무언가"를 렌더링하며, 합성기(114)는 HMD(100)의 디스플레이 패널(들)(104) 상에서의 출력을 위해 프레임 버퍼에 픽셀 데이터를 넣기 위해 그 프레임(108)과 연관된 픽셀 데이터를 사용한다. 각각의 스크린 리프레시를 위해 상이한 픽셀 데이터를 출력하기 위한 합성기(114)의 능력은, 무엇이든지 간에, 모든 것을 "라이브(live)"로 유지하고, 애플리케이션(106)이 프레임 레이트를 생성하지 않을 때 HMD(100) 상에서 렌더링된 이미지들이 심하게 히칭(hitch)되는 것을 방지하는 메커니즘이다.
사용자가 보고 있을 곳에 가장 근접한 픽셀들의 서브세트가 조명될 시간(예를 들어, 프레임 F에 대해서는 t1)으로서 렌더링 시간을 동적으로 타겟팅함으로써, 프레임 F에 대응하는 이미지는, 존재한다면, 조명 시간 기간(120) 동안 사용자(102)가 보고 있는 디스플레이 패널(104) 상의 위치에서의 단지 소규모의 재투영 조정들로 조명 시간 기간(120) 동안 제시될 수 있다. 이는, 사용자(102)가 이미지의 제시 동안 사용자가 보고 있는 관심 구역 내의 움직이거나 애니메이션화된 물체들에 대한 재투영에 의해 야기된 원치 않는 시각적 아티팩트들을 보지 않을 것이라는 것을 의미한다.
프레임 F가 렌더링된 이후, 동적 렌더링 시간 타겟팅은, 일련의 프레임들(108)이 렌더링될 때 그 일련의 프레임들 내의 각각의 프레임에 대해 반복될 수 있다. 예를 들어, 프레임 F+1의 경우, 시선 추적 데이터는 사용자(102)가 프레임 F+1에 대한 조명 시간 기간(120(2)) 동안 디스플레이 패널(들)(104)의 중간 부분 내의 픽셀들의 개별 서브세트(또는 인접한 서브세트들의 그룹)를 보고 있을 것이라는 것을 표시할 수 있으며, 이는, 디스플레이 패널(들)(104)의 중간 부분 내의 픽셀들의 서브세트(또는 서브세트들의 그룹)가 조명될 시간을 프레임 F+1에 대한 렌더링 시간으로서 합성기(114)가 동적으로 타겟팅하게 한다. 예를 들어, 합성기(114)는 픽셀들의 중간 행이 시간(
Figure pct00001
)에 조명될 것이라고 결정할 수 있고, 따라서 HMD(100)가 시간(
Figure pct00002
)에 있을 포즈를 예측할 수 있다. 합성기(114)는 프레임 F+1을 렌더링하기 위해 이러한 예측된 포즈를 표시하는 포즈 데이터를 애플리케이션(106)에 전송할 수 있고, 응답으로, 합성기(114)는 프레임 F+1에 대한 픽셀 데이터를 수신할 수 있다. 프레임 F+1에 대한 합성기(114)의 렌더링 작업부하(112(2)) 동안, 합성기(114)는 프레임(F+1)에 대한 재투영된 프레임과 연관된 수정된 픽셀 데이터를 획득하기 위해 렌더링 작업부하(112(2)) 동안 적용되는 다른 조정들 중에서도 프레임 F+1에 대한 픽셀 데이터에 재투영 조정들을 적용할 수 있으며, 합성기(114)는 수정된 픽셀 데이터를 프레임 버퍼에 출력할 수 있어서, 대응하는 이미지가 프레임 F+1에 대한 조명 시간 기간(120(2)) 동안 디스플레이 패널(들)(104) 상에 제시될 수 있다.
마찬가지로, 프레임 F+2의 경우, 시선 추적 데이터는 사용자(102)가 프레임 F+2에 대한 조명 시간 기간(120(3)) 동안 디스플레이 패널(들)(104)의 하단 부분 내의 픽셀들의 개별 서브세트(또는 인접한 서브세트들의 그룹)를 보고 있을 것이라는 것을 표시할 수 있으며, 이는, 디스플레이 패널(들)(104)의 하단 부분 내의 픽셀들의 서브세트(또는 서브세트들의 그룹)가 조명될 시간을 프레임 F+2에 대한 렌더링 시간으로서 합성기(114)가 동적으로 타겟팅하게 한다. 예를 들어, 합성기(114)는 픽셀들의 제N 행이 시간(tN)에 조명될 것이라고 결정할 수 있고, 따라서 HMD(100)가 시간(tN)에 있을 포즈를 예측할 수 있다. 합성기(114)는 프레임 F+2을 렌더링하기 위해 이러한 예측된 포즈를 표시하는 포즈 데이터를 애플리케이션(106)에 전송할 수 있고, 응답으로, 합성기(114)는 애플리케이션(106)으로부터 프레임 F+2에 대한 픽셀 데이터를 수신할 수 있다. 프레임 F+2에 대한 합성기(114)의 렌더링 작업부하(112(3)) 동안, 합성기(114)는 프레임(F+2)에 대한 재투영된 프레임과 연관된 수정된 픽셀 데이터를 획득하기 위해 다른 조정들 중에서도 프레임 F+2에 대한 픽셀 데이터에 재투영 조정들을 적용할 수 있으며, 합성기(114)는 수정된 픽셀 데이터를 프레임 버퍼에 출력할 수 있어서, 대응하는 이미지가 프레임 F+2에 대한 조명 시간 기간(120(3)) 동안 디스플레이 패널(들)(104) 상에 제시될 수 있다.
일부 실시예들에서, HMD(100)(또는 HMD 시스템)의 로직은 상이한 해상도들로 디스플레이 패널(들)(104)의 상이한 위치들을 어드레싱하도록 구성될 수 있다. 이러한 방식으로, 이미지 제시 동안 사용자(102)가 보고 있을 디스플레이 패널(들)(104) 상의 관심 구역을 예측하는 데 시선 추적 데이터가 사용될 수 있으므로, HMD(100)(또는 HMD 시스템)는, 사용자(102)가 제1(높은) 해상도로 보고 있는 디스플레이 패널(들)(104)의 위치를 동적으로 어드레싱하고, 제1 해상도보다 낮은 제2(더 낮은) 해상도로 디스플레이 패널(들)(104)의 나머지를 동적으로 어드레싱하기 위해 이러한 동적 어드레싱 메커니즘을 레버리지(leverage)할 수 있다. 이는, 관심 구역 외부의 영역이 스캔 아웃될 픽셀 데이터를 더 적게 가질 수 있기 때문에 픽셀 데이터를 스캔 아웃하기 위한 레이턴시를 감소시키는 관점들에서, 관심 구역에서의 개선된 디스플레이 품질 뿐만 아니라 개선된 디스플레이 성능을 제공할 수 있다.
도 2는 본 명세서에 개시된 실시예들에 따른, 시선 추적에 기초하여 주어진 프레임(108)에 대한 렌더링 시간을 동적으로 타겟팅하기 위한 접근법을 사용할 때, 재투영 조정들의 정도가 픽셀들의 상이한 서브세트들에 대해 디스플레이에 걸쳐 어떻게 변하는지를 예시하는 도면이다. 도 2는 HMD(100)의 디스플레이 패널(104)을 도시하며, 이들 둘 모두는 도 1에서 소개되었다. 일부 실시예들에서, 이러한 디스플레이 패널(104)은 HMD(100)의 디스플레이 패널들의 스테레오 쌍의 좌측 디스플레이 패널 또는 우측 디스플레이 패널을 표현할 수 있다. 디스플레이 패널(104)은 픽셀들의 MxN 어레이를 포함하는 것으로 도시된다. 이러한 경우, 픽셀들은 M개의 열들 및 N개의 행들로 배열되며, 여기서 M은 임의의 적합한 수이고, N은 임의의 적합한 수이며, M 및 N은 동일할 수 있거나 동일하지 않을 수 있다. 본 명세서에 설명된 바와 같이, 디스플레이 패널(104)이 롤링 밴드 디스플레이 구동 기법을 사용하여 구동되기 때문에, 주어진 프레임(108)에 대한 이미지의 제시 동안의 롤링 조명은 조명 시간 기간(120)에 걸쳐 시퀀스로 픽셀들의 개별 서브세트들을 조명함으로써 발생하며, 이는 도 1에서 소개되었다. 도 2의 예에서, 픽셀들의 개별 서브세트들은 픽셀들의 개별적인 행들(예를 들어, 행들 1-N)에 대응하며, 행들은 주어진 프레임(108)에 대한 조명 시간 기간(120)에 걸쳐 제1 행("행 1")으로부터 마지막 행("행 N")까지 시퀀스로 조명된다. 예시된 예에서, 이는 롤링 조명이 상단으로부터 하단으로 발생한다는 것을 의미하지만, 이는 단지 픽셀들의 서브세트들이 조명될 수 있는 예시적인 시퀀스일 뿐이라는 것이 인식되어야 한다.
타겟팅된 렌더링 시간(200)이 시간(t1)으부터 시간(tN)까지의 시간 기간으로서 설명될 수 있는 조명 시간 기간(120) 내의 시간(t3)인 것으로 예측되는 일 예를 고려한다. 이러한 예시적인 타겟팅된 렌더링 시간(200)은, 예를 들어 사용자(102)가 주어진 프레임에 대한 조명 시간 기간(120) 동안 디스플레이 패널(104)의 상단 부분 내의 픽셀들의 개별 서브세트(또는 인접한 서브세트들의 그룹), 예를 들어 픽셀들의 제3 행("행 3")을 보고 있을 것이라는 것을 시선 추적 데이터가 표시하면 결정될 수 있다. 따라서, 합성기(114)는 HMD(100)가 타겟팅된 렌더링 시간(200)(예를 들어, 시간(t3))에 있을 포즈를 예측하도록 구성되며, 합성기(114)는 주어진 프레임(108)을 렌더링하기 위해 이러한 예측된 포즈를 표시하는 포즈 데이터를 애플리케이션(106)에 전송할 수 있다. 애플리케이션-렌더링된 프레임(108)에 대한 픽셀 데이터를 수신한 이후, 합성기(114)는 주어진 프레임(108)에 대한 자신의 렌더링 작업부하(112) 동안, 픽셀 데이터에 재투영 조정들을 적용할 수 있다.
수신된 픽셀 데이터에 적용될 재투영 조정들을 결정하기 위해, 합성기(114)는, 픽셀 데이터를 수신한 이후, HMD(100)(또는 HMD 시스템)의 머리 추적 시스템에 의해 생성된 업데이트된 머리 추적 데이터에 적어도 부분적으로 기초하여, 조명 시간 기간(120) 내에서, 픽셀들의 개별 서브세트들이 조명될 복수의 시간들 동안 HMD(100)의 복수의 업데이트된 포즈들을 예측할 수 있다. 예를 들어, 주어진 프레임(108)과 연관된 픽셀 데이터를 애플리케이션(106)으로부터 수신할 시에, 합성기(114)는, HMD(100)가 픽셀들의 제1 행("행 1")에 대해 시간(t1)에 있을 제1 업데이트된 포즈, HMD(100)가 픽셀들의 제2 행("행 2")에 대해 시간(t2)에 있을 제2 업데이트된 포즈, HMD(100)가 픽셀들의 제3 행("행 3")에 대해 시간(t3)에 있을 제3 업데이트된 포즈, ..., 및 HMD(100)가 픽셀들의 제N 행("행 N")에 대해 시간(tN)에 있을 제N 업데이트된 포즈를 예측할 수 있다. 복수의 업데이트된 포즈 예측들이 수중에(in hand) 있다면, 합성기(114)는 원래 포즈 예측과 업데이트된 포즈들의 개별 포즈들 사이의 비교들에 적어도 부분적으로 기초하여 복수의 조정들(202(1) 내지 202(N))을 계산(또는 그렇지 않으면 결정)할 수 있다. 예를 들어, 복수의 조정들(202(1) 내지 202(N))은 픽셀들의 제1 개별 서브세트(예를 들어, 픽셀들의 제1 행, 즉 "행 1")에 대한 제1 조정(202(1)), 픽셀들의 제2 개별 서브세트(예를 들어, 픽셀들의 제2 행, 즉 "행 2")에 대한 제2 조정(202(2)), 픽셀들의 제3 개별 서브세트(예를 들어, 픽셀들의 제3 행, 즉 "행 3")에 대한 제3 조정(202(3)), ..., 및 픽셀들의 제N 개별 서브세트(예를 들어, 픽셀들의 제N 행, 즉 "행 N")에 대한 제N 조정(202(N))을 포함할 수 있다. 도 2의 예에서, 개별 조정(예를 들어, 제1 조정(202(1)))은, 애플리케이션(106)에 대한 입력으로서 제공되었던 원래 포즈 예측 및 대응하는 픽셀 서브세트에 대한 업데이트된 포즈 예측(예를 들어, 픽셀들의 제1 행("행 1")이 조명될 시간(t1)에 대한 업데이트된 포즈 예측)에 기초하여 차이 계산으로서 계산(또는 그렇지 않으면 결정)될 수 있다.
도 2에 도시된 그래프(204)는, 어떻게 재투영 조정들이 사용자(102)가 보고 있는 디스플레이 패널(104)의 위치 부근의 픽셀들의 서브세트들에 대한 소규모 조정들인지를 예시한다. 도 2의 예에서, 이들 픽셀들은 픽셀들의 제3 행("행 3") 부근의 픽셀들에 대응한다. 예를 들어, 픽셀들의 제3 행("행 3")에 대한 픽셀 값들에 대해 행해지는 재투영 조정들이 거의 내지 전혀 없을 수 있으며, 단지 픽셀들의 인접한 행들의 픽셀 값들에 대한 소규모 재투영 조정들만이 있을 수 있다. 이는, 도 2의 예에서, 픽셀들의 제3 행("행 3")이 조명 시간 기간(120) 동안(즉, 이미지 제시 동안) 조명될 시간인 타겟 렌더링 시간(t3)에 대해 원래 포즈 예측이 행해졌고, 픽셀들의 제3 행("행 3")과 연관된 동일한 시간(t3)에 대한 업데이트된 포즈 예측이 원래 포즈 예측과 동일할 가능성이 있거나, 또는 상이하다면, 차이가 원래 포즈 예측과 업데이트된 포즈 예측들의 다른 업데이트된 포즈 예측들 사이의 차이들보다 더 작을 것으로 예상되기 때문이다. 따라서, 픽셀들의 제3 행("행 3")에 대한 픽셀 값들에 적용된 재투영 조정들은, 임의의 조정이 조금이라도 적용된다면 소규모 재투영 조정들이다. 재투영 조정들은 픽셀들의 제3 행("행 3")으로부터 더 멀리있는 행들에 대한 양이 점진적으로 증가한다. 따라서, 픽셀들의 제3 행("행 3")에 인접한 픽셀들의 개별 서브세트들(행들)에 대한 임의의 재투영 조정들은 픽셀들의 제3 행("행 3")으로부터 멀리있는(즉, 인접하지 않는) 픽셀들의 그러한 서브세트들(행들)에 대한 재투영 조정들보다 작을 것이다. 이는, 픽셀들의 제N 행("행 N")에 대한 픽셀 값들에 적용된 재투영 조정이, 예를 들어 픽셀들의 제2 행("행 2")에 대한 픽셀 값들에 적용된 재투영 조정보다 훨씬 큰 이유이다. 그러나, 사용자(102)가 이미지 제시 동안 디스플레이 패널(104)의 상단 부분 내의 픽셀들의 개별 서브세트(또는 인접한 서브세트들의 그룹)(예를 들어, 픽셀들의 제3 행("행 3"))를 보고 있기 때문에, 디스플레이 패널(104)의 하단에서의 재투영 조정들에 의해 야기된 임의의 원치 않는 시각적 아티팩트들은 눈에 띄지 않게 된다. 한편, 사용자(102)가 보고 있는 관심 구역에는 재투영에 의해 야기되는 이러한 유형들의 원치 않는 시각적 아티팩트들이 없을 것이다.
본 명세서에 설명되는 프로세스들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합(즉, 로직)으로 구현될 수 있는 동작들의 시퀀스를 표현하는 논리적 흐름 그래프의 블록들의 모음으로서 예시된다. 소프트웨어의 맥락에서, 블록들은, 하나 이상의 프로세서에 의해 실행될 때, 언급된 동작들을 수행하는 컴퓨터 실행가능 명령어들을 표현한다. 일반적으로, 컴퓨터 실행가능 명령어들은, 특정 기능들을 수행하거나 특정한 추상적 데이터 유형들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들 등을 포함한다. 동작들이 설명되는 순서는 제한으로서 해석되게 하려는 의도는 아니며, 임의의 수의 설명된 블록들은 프로세스들을 구현하도록 병렬로 그리고/또는 임의의 순서로 조합될 수 있다.
도 3은 본 명세서에 개시된 실시예들에 따른, 시선 추적에 기초하여 주어진 프레임에 대한 렌더링 시간을 동적으로 타겟팅하기 위한 예시적인 프로세스(300)의 흐름도를 예시한다. 논의 목적들을 위해, 프로세스(300)는 이전의 도면들을 참조하여 설명된다.
302에서, 일련의 프레임들 중 프레임(108)은 HMD(100)의 디스플레이 패널(104) 상에 대응하는 이미지를 제시하기 위해 렌더링될 수 있다. 언급된 바와 같이, HMD(100)가 한 쌍의 디스플레이 패널들을 포함하면, 이러한 프레임(108)은 좌측 디스플레이 패널(104) 상에 제1 이미지를 그리고 우측 디스플레이 패널(104) 상에 제2 이미지를 제시하기 위해 렌더링될 수 있거나, 또는 그 반대의 경우도 마찬가지이다. 302 내의 다양한 서브-블록들에 의해 도시된 바와 같이, 블록(302)에서 프레임(108)을 렌더링하려는 목적들을 위해 HMD(100)(또는 HMD 시스템)의 로직에 의해 수행되는 다양한 서브-동작들이 존재할 수 있다.
서브-블록(304)에서, HMD(100)(또는 HMD 시스템)의 로직(예를 들어, 합성기(114)를 포함하는 로직)은, HMD(100)를 착용한 사용자(102)가 프레임(108)에 대한 조명 시간 기간(120) 동안 보고 있을 디스플레이 패널(104) 상의 위치를 예측할 수 있다. 여기서, 조명 시간 기간(120)은 디스플레이 패널(104) 상에 이미지를 제시하기 위해 디스플레이 패널(104) 상의 픽셀들의 개별 서브세트들이 시퀀스로 조명되는 지속기간이다. 서브-블록(306)에 의해 도시된 바와 같이, 사용자(102)가 보고 있을 디스플레이 패널(104) 상의 위치의 예측은 HMD(100)(또는 HMD 시스템)의 시선 추적 시스템에 의해 생성된 시선 추적 데이터에 적어도 부분적으로 기초할 수 있다. 예를 들어, 서브-블록(306)에서, 로직(예를 들어, 합성기(114))는 시선 추적 시스템에 의해 생성된 시선 추적 데이터에 적어도 부분적으로 기초하여, 사용자(102)가 프레임(108)에 대한 조명 시간 기간(120) 동안 보고 있을 시선 지점을 예측할 수 있으며, 이러한 시선 지점은 디스플레이 패널(104) 상의 특정한 위치에 대응할 수 있다. 그러므로, 로직(예를 들어, 합성기(114))은 (예를 들어, 디스플레이 패널(104) 상의 다양한 위치들과 가능한 시선 지점들 사이의 연관 데이터에 액세스하고 그리고/또는, 시선 추적 데이터 및 다른 파라미터들에 기초하여 위치를 계산함으로써) 예측된 시선 지점에 대응하는 디스플레이 패널(104) 상의 위치를 결정하도록 구성될 수 있다. 예시적인 예에서, 시선 추적 데이터(예를 들어, 눈 배향 데이터)는, 예컨대 HMD(100)의 시야(FOV) 파라미터의 중간선으로부터의 각도들의 수의 형태로 HMD(100)를 착용한 사용자의 눈 배향을 표시할 수 있다. 예를 들어, HMD(100)의 FOV 파라미터(예를 들어, 110도)에 기초하여, 그리고 가능하게는 HMD 광학기기의 왜곡 파라미터들에 기초하여, 눈 배향 데이터는 사용자가 다가올 프레임의 조명 시간 기간 동안 보고 있을 곳에 가장 가깝거나 가장 근접한 픽셀들의 서브세트(예를 들어, 행) 또는 인접한 서브세트들의 그룹(예를 들어, 인접한 행들의 그룹)을 추정하는 데 사용될 수 있다. 예를 들어, 사용자가 110도의 FOV의 중간선으로부터 +20도를 보고 있을 것이라는 것을 눈 배향 데이터가 표시하면, 이는 계산될 수 있으며, 각도 오프셋은 수학적 계산을 통해 디스플레이 패널(104)의 행(또는 인접한 행들의 그룹)(예를 들어, 1200 행 디스플레이 패널 상의 제400 행)에 상관될 수 있다. 따라서, 사용자가 보고 있을 디스플레이 패널(104)의 위치의 예측은 시선 추적 데이터와 결합하여 HMD(100)의 FOV 파라미터에 기초할 수 있다.
서브-블록(308)에서, 로직(예를 들어, 합성기(114))은 디스플레이 패널(104) 상에서 사용자(102)가 어디를 보고 있을지의 예측에 기초하여 프레임(108)에 대한 렌더링 시간(200)을 동적으로 타겟팅할 수 있다. 즉, 로직은 프레임(108)에 대한 조명 시간 기간(120) 내에서, 디스플레이 패널(104) 상의 위치에 대응하는(예를 들어, 그 내에 있는) 픽셀들의 개별 서브세트가 조명될 시간을 결정할 수 있다. 도 3의 우측 상의 그림 도면들에서, 서브-블록(304)에서 로직이 사용자(102)가 디스플레이 패널(104)의 하단 부분을 보고 있을 것이라고 예측하고, 서브-블록(308)에서 로직이 디스플레이 패널(104)의 하단 부분 내의 픽셀들의 서브세트(예를 들어, 행)가 조명될 시간에 대응하는 조명 시간 기간(120) 내에서(예를 들어, 시간(t1)으로부터 시간(tN)까지) 타겟팅된 렌더링 시간(200)을 결정하는 일 예가 도시된다.
서브-블록(310)에서, 로직(예를 들어, 합성기(114))은 서브-블록(308)에서 결정되었던 시간(즉, 타겟팅된 렌더링 시간(200))에 HMD(100)가 있을 포즈를 예측할 수 있다. 서브-블록(310)에서의 HMD(100)의 포즈의 원래 예측은 HMD(100)(또는 HMD 시스템)의 머리 추적 시스템에 의해 생성된 머리 추적 데이터에 적어도 부분적으로 기초할 수 있다.
서브-블록(312)에서, 로직(예를 들어, 합성기(114))은, 서브-블록(310)에서 예측된 포즈를 표시하는 포즈 데이터를 프레임(108)을 렌더링하려는 목적들을 위해 애플리케이션(106)에 전송할 수 있다.
서브-블록(314)에서, 로직(예를 들어, 합성기(114))은 애플리케이션(106)으로부터 프레임(108)에 대한 픽셀 데이터를 수신할 수 있다. 픽셀 데이터는 본 명세서에 설명된 바와 같이, 디스플레이 패널(104)의 픽셀들의 어레이 내의 개별 픽셀들에 대한 픽셀 값들을 포함할 수 있다.
서브-블록(316)에서, 로직(예를 들어, 합성기(114))은 재투영된 프레임과 연관된 수정된 픽셀 데이터를 획득하기 위해 프레임(108)에 대한 픽셀 데이터에 재투영 조정들을 적용할 수 있다. 도 1의 도면에서, 이는 애플리케이션(106)으로부터 프레임(108)에 대한 픽셀 데이터를 수신한 이후 합성기(114)의 렌더링 작업부하(112) 동안 발생할 수 있다.
서브-블록(318)에서, 로직(예를 들어, 합성기(114))은 수정된 픽셀 데이터를 프레임 버퍼(들)에 출력할 수 있다. 다시, 한 쌍의 디스플레이 패널들(104)을 갖는 HMD(100)의 경우, 이러한 픽셀 데이터는 한 쌍의 디스플레이 패널들(104) 상에 디스플레이될 한 쌍의 이미지들을 표현하는 프레임에 대응할 수 있다.
320에서, HMD(100)(또는 HMD 시스템)의 로직(예를 들어, 디스플레이 제어기, 디스플레이 구동기 회로부 등)은, 블록(302)에서 렌더링되었던 프레임(108)에 기초하여(예를 들어, 서브-블록(318)에서 프레임 버퍼에 출력된 수정된 픽셀 데이터에 적어도 부분적으로 기초하여) 이미지가 디스플레이 패널(104) 상에 제시되게 할 수 있다. 서브-블록들(322, 324)에 의해 도시된 바와 같이, 블록(320)에서의 이미지의 제시는 하나 이상의 서브-동작들을 포함할 수 있다.
서브-블록(322)에서, 예를 들어, 수정된 픽셀 데이터는 디스플레이 패널(104) 상의 픽셀들의 개별 서브세트들에 대해 시퀀스로 스캔 아웃될 수 있다. 예를 들어, 픽셀들의 개별 행들에 대한 픽셀 값들은 디스플레이 포트(예를 들어, HDMI)를 통해 디스플레이 패널(들)(104)로 순차적으로 스캔 아웃될 수 있으며, 픽셀들의 제1 서브세트(예를 들어, 행)로 시작하여 픽셀들의 마지막 서브세트(예를 들어, 행)로 끝난다.
서브-블록(324)에서, 픽셀들의 개별 서브세트들은 디스플레이 패널(들)(104) 상에 이미지를 제시하기 위해 프레임(108)에 대한 조명 시간 기간(120)에 걸쳐 시퀀스로 조명될 수 있다. 이는 롤링 밴드 디스플레이 구동 기법을 사용하여 디스플레이 패널(들)(104)의 발광 요소들을 구동시킴으로써 달성될 수 있으며, 여기서 디스플레이 패널(들)(104)의 발광 요소들의 개별 서브세트들은, 픽셀들의 대응하는 서브세트들이 이미지 제시 동안 시퀀스로 조명되게 하기 위해 시퀀스로 조명된다.
도 4는 본 명세서에 개시된 실시예들에 따른, 재투영 조정들을 적용하기 위한 예시적인 서브-프로세스(400)(예를 들어, 프로세스(300)의 블록(316)의 서브-프로세스)의 흐름도를 예시한다. 논의 목적들을 위해, 프로세스(400)는 이전의 도면들을 참조하여 설명된다.
402에서, 합성기(114)가 애플리케이션(106)으로부터 프레임(108)에 대한 픽셀 데이터를 수신한 이후, HMD(100)(또는 HMD 시스템)의 로직(예를 들어, 합성기(114)를 포함하는 로직)은 HMD(100)(또는 HMD 시스템)의 머리 추적 시스템에 의해 생성된 업데이트된 (제2) 머리 추적 데이터에 적어도 부분적으로 기초하여, 프레임(108)에 대한 조명 시간 기간(120) 내에서, 픽셀들의 개별 서브세트들이 조명될 복수의 시간들에 대한 HMD(100)의 복수의 업데이트된 포즈들을 예측할 수 있다. 픽셀들의 개별 서브세트들이 픽셀들의 개별 행들인 예에서, 블록(402)에서 예측된 복수의 업데이트된 포즈들은, 픽셀들의 N개의 행들에 대해, 픽셀들의 제1 행("행 1")이 조명될 시간에 대한 HMD(100)의 제1 업데이트된 포즈, 픽셀들의 제2 행("행 2")이 조명될 시간에 대한 HMD(100)의 제2 업데이트된 포즈 등을 포함할 수 있으며, N은 임의의 적합한 수이다.
406에서, 로직(예를 들어, 합성기(114))은 원래 예측된 포즈와 업데이트된 포즈들 중 개별 업데이트된 포즈들 사이의 비교들에 적어도 부분적으로 기초하여 복수의 조정들(예를 들어, 재투영 조정들)을 계산(또는 그렇지 않으면 결정)할 수 있다. 즉, 블록(402)에서 예측된 업데이트된 포즈들 중 개별 업데이트된 포즈들은, 프로세스(300)의 블록(310)에서 예측되었고 프레임(108)을 렌더링하기 위한 입력으로서 애플리케이션(106)에 전송되었던 원래 포즈와 비교될 수 있다. 블록(406)에서의 포즈들 사이의 비교는, 해당 개별 업데이트된 포즈를 획득하기 위해 원래 예측된 포즈에 적용될 수 있는 변환을 결정할 수 있다. 예를 들어, 블록(406)에서 결정된 조정들 중 하나는, 예를 들어 픽셀들의 제1 행에 대한 HMD(100)의 업데이트된 포즈를 획득하기 위해 원래 예측된 포즈에 적용될 수 있는 변환에 대응할 수 있다. 픽셀들의 다른 서브세트들에 대해 유사한 방식으로 부가적인 변환들이 결정될 수 있다.
408에서, 로직(예를 들어, 합성기(114))은 재투영된 프레임과 연관된 수정된 픽셀 데이터를 획득하기 위해, 블록(406)에서 계산된 복수의 조정들에 적어도 부분적으로 기초하여, (애플리케이션(106)으로부터 수신되었던) 프레임(108)에 대한 픽셀 데이터를 수정할 수 있다. 도 2를 다시 간략히 참조하면, 그래프(204)는, 상이한 시간들에 픽셀들의 개별 서브세트들을 시퀀스로 조명하는 롤링 밴드 디스플레이 구동 기법으로 인해, 그리고 사용자(102)의 머리가 공간에서 끊임없이 움직일 수 있다는 사실로 인해, 블록(406)에서 계산된 조정들이 디스플레이 패널(들)(104)에 걸쳐 어떻게 변할 수 있는지의 일 예를 예시한다. 타겟팅된 렌더링 시간(200)과 연관된 픽셀들의 서브세트에 인접한 픽셀들의 서브세트들에 대한 조정들은 소규모 조정들인 반면, 타겟팅된 렌더링 시간(200)과 연관된 픽셀들의 서브세트에 인접하지 않은 픽셀들의 서브세트들에 대한 다른 조정들은 대규모 조정들이며; 인접한 픽셀 서브세트들의 소규모 조정들과 비교하여 이들 대규모 조정들이 얼마나 큰지는 단지, 프레임(108)이 렌더링되고 대응하는 이미지가 제시되는 동안 발생하는 머리 회전의 양(또는 레이트)에 의존한다. 임의의 경우, 타겟팅된 렌더링 시간(200)과 연관된 픽셀들의 서브세트에 인접한 픽셀들의 제1 개별 서브세트에 대한 복수의 조정들 중 제1 조정은 도 2의 그래프(204)에 도시된 바와 같이, 타겟 렌더링 시간(200)과 연관된 픽셀들의 서브세트에 인접하지 않은 픽셀들의 제2 개별 서브세트에 대한 복수의 조정들 중 제2 조정보다 작을 가능성이 있다. 이는, 디스플레이 패널(들)(104) 상에 제시된 이미지에는 사용자(102)가 보고 있는 디스플레이 패널(들)(104) 상의 위치에서의 재투영에 의해 야기되는 원치 않는 아티팩트들(예를 들어, 저더)이 없다는 것을 의미한다.
도 5는 본 명세서에 개시된 실시예들에 따른, VR 헤드셋과 같은 HMD(500)(또는 HMD(500)를 포함하는 HMD 시스템)의 예시적인 컴포넌트들이 임베딩될 수 있는 것을 예시한다. HMD(500)는 이전 도면들에서 참조된 HMD(100)와 동일하거나 유사할 수 있으며, 따라서 도 5에 도시된 HMD(500)의 컴포넌트들이 HMD(100)에서 구현될 수 있다. HMD(500)는 (예를 들어, 사용자(102)의 머리 상에) 사용자(102)에 의해 착용될 독립형 디바이스로서 구현될 수 있다. 일부 실시예들에서, HMD(500)는, 예컨대 사용자(102)의 머리 주위에 맞도록 크기설정된 고정 메커니즘(예를 들어, 조정가능한 밴드)을 사용하여 사용자(102)가 자신의 머리 상에 HMD(500)를 고정시키게 허용함으로써 머리-장착가능할 수 있다. 일부 실시예들에서, HMD(500)는 근안 또는 눈-부근 디스플레이(들)를 포함하는 가상 현실(VR) 또는 증강 현실(AR) 헤드셋을 포함한다. 그러므로, 용어들 "웨어러블 디바이스", "웨어러블 전자 디바이스", "VR 헤드셋", "AR 헤드셋", 및 "머리-장착형 디스플레이(HMD)"는 도 5의 디바이스(500)를 지칭하기 위해 본 명세서에서 상호교환가능하게 사용될 수 있다. 그러나, 이들 유형들의 디바이스들이 단지 HMD(500)의 예일 뿐이라는 것이 인식되어야 하며, HMD(500)가 다양한 다른 폼 팩터들로 구현될 수 있다는 것이 인식되어야 한다. 도 5에 도시된 컴포넌트들 중 일부 또는 전부가 HMD(500) 상에 구현될 수 있다는 것이 또한 인식되어야 한다. 따라서, 일부 실시예들에서, 도 5에 도시된 컴포넌트들의 서브세트는, HMD 시스템의 일부이지만 HMD(500) 자체와는 별개인 컴퓨팅 디바이스, 예컨대, PC, 게임 콘솔, 또는 임의의 다른 적합한 컴퓨팅 디바이스 상에 구현될 수 있다.
예시된 구현예에서, HMD(500)는 하나 이상의 프로세서들(502) 및 메모리(504)(예를 들어, 컴퓨터 판독가능 매체들(504))를 포함한다. 일부 구현예들에서, 프로세서들(502)은 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU)(들)(503), CPU 및 GPU(503) 둘 모두, 마이크로프로세서(들), 디지털 신호 프로세서(들) 또는 당업계에 알려진 다른 프로세싱 유닛들 또는 컴포넌트들을 포함할 수 있다. 대안적으로 또는 부가적으로, 본 명세서에 설명된 기능은, 적어도 부분적으로, 하나 이상의 하드웨어 로직 컴포넌트들에 의해 수행될 수 있다. 예를 들어, 그리고 제한 없이, 사용될 수 있는 예시적인 유형들의 하드웨어 로직 컴포넌트들은 필드-프로그래밍가능 게이트 어레이(FPGA)들, 주문형 집적 회로(ASIC)들, 주문형 표준 제품(ASSP)들, 시스템-온-칩 시스템(SOC, system-on-a-chip system)들, 복합 프로그래밍가능 로직 디바이스(CPLD)들 등을 포함한다. 부가적으로, 프로세서(들)(502) 각각은, 프로그램 모듈들, 프로그램 데이터, 및/또는 하나 이상의 운영 체제들을 또한 저장할 수 있는 그 자신의 로컬 메모리를 소유할 수 있다.
메모리(504)는 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 메모리, 제거가능 및 제거불가능 매체들을 포함할 수 있다. 그러한 메모리는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다목적 디스크들(DVD) 또는 다른 광학 저장소, 자기 카세트들, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, RAID 저장 시스템들, 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 디바이스에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만 이에 제한되지 않는다. 메모리(504)는 메모리(502) 상에 저장된 명령어들을 실행하기 위해 프로세서(들)(502)에 의해 액세스가능한 임의의 이용가능한 물리적 매체들일 수 있는 컴퓨터 판독가능 저장 매체들("CRSM")로서 구현될 수 있다. 하나의 기본 구현예에서, CRSM은 랜덤 액세스 메모리("RAM") 및 플래시 메모리를 포함할 수 있다. 다른 구현예에서, CRSM은 판독 전용 메모리("ROM"), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리("EEPROM"), 또는 원하는 정보를 저장하는 데 사용될 수 있고 프로세서(들)(502)에 의해 액세스될 수 있는 임의의 다른 유형의(tangible) 매체를 포함할 수 있지만 이에 제한되지 않는다.
일반적으로, HMD(500)는 본 명세서에 설명된 기법들, 기능, 및/또는 동작들을 구현하도록 구성된 로직(예를 들어, 소프트웨어, 하드웨어, 및/또는 펌웨어 등)을 포함할 수 있다. 컴퓨터 판독가능 매체들(504)은, 본 명세서에 설명된 기법들, 기능, 및/또는 동작들을 수행하기 위해 프로세서(들)(502) 상에서 실행되도록 구성될 수 있는 다양한 모듈들, 예컨대 명령어, 데이터스토어들 등을 포함하는 것으로 도시된다. 몇몇 예시적인 기능 모듈들은 컴퓨터 판독가능 매체들(504)에 저장되고 프로세서(들)(502) 상에서 실행가능한 것으로 도시되지만, 동일한 기능은 대안적으로 하드웨어, 펌웨어에서, 또는 시스템 온 칩(SOC), 및/또는 다른 로직으로서 구현될 수 있다.
운영 체제 모듈(506)은 다른 모듈들의 이점을 위해 HMD(500) 내에 있고 그에 커플링된 하드웨어를 관리하도록 구성될 수 있다. 부가적으로, 일부 예시들에서, HMD(500)는 메모리(504)에 저장되거나 또는 그렇지 않으면 HMD(500)에 액세스가능한 하나 이상의 애플리케이션들(106)을 포함할 수 있다. 이러한 구현예에서, 애플리케이션(들)(106)은 게이밍 애플리케이션(510)을 포함한다. 그러나, HMD(500)는 임의의 수 또는 유형의 애플리케이션들을 포함할 수 있으며, 본 명세서에 도시된 특정 예로 제한되지 않는다. 게이밍 애플리케이션(510)은 사용자(102)에 의해 플레이가능한 비디오-기반의 상호작용형 게임(예를 들어, VR 게임)의 게임플레이를 개시하고, HMD(500)의 디스플레이 패널들 상에 렌더링될 프레임들(108)을 출력하도록 구성될 수 있다. 합성기(114)는 HMD(500)의 다른 로직과 조합하여, 시선 추적에 기초하여 애플리케이션(예를 들어, 애플리케이션(106))에 대한 렌더링 시간을 동적으로 타겟팅하기 위해 본 명세서에 설명된 기법들을 수행하도록 구성될 수 있다.
일반적으로, HMD(500)는 입력 디바이스들(512) 및 출력 디바이스들(514)을 갖는다. 입력 디바이스들(512)은 제어 버튼들을 포함할 수 있다. 일부 구현예들에서, 하나 이상의 마이크로폰들은 사용자 음성 입력과 같은 오디오 입력을 수신하기 위한 입력 디바이스들(512)로서 기능할 수 있다. 일부 구현예들에서, 하나 이상의 카메라들 또는 다른 유형들의 센서들(예를 들어, 관성 측정 유닛(IMU, inertial measurement unit))은 사용자(102)의 손 및/또는 머리 모션과 같은 제스처 입력을 수신하기 위한 입력 디바이스들(512)로서 기능할 수 있다. 일부 실시예들에서, 부가적인 입력 디바이스들(512)은 키보드, 키패드, 마우스, 터치 스크린, 조이스틱 등의 형태로 제공될 수 있다. 다른 실시예들에서, HMD(500)는 키보드, 키패드, 또는 다른 유사한 형태들의 기계적 입력부를 생략할 수 있다. 대신에, HMD(500)는 입력 디바이스(512), 네트워크 인터페이스(무선 또는 유선 기반), 전력, 및 프로세싱/메모리 능력들의 비교적 단순한 형태들로 구현될 수 있다. 예를 들어, 하나 이상의 입력 컴포넌트들의 제한된 세트(예를 들어, 구성을 개시하거나, 전원을 켜고/끄는 등을 위한 전용 버튼)가 이용될 수 있어서, HMD(500)가 그 후에 사용될 수 있다. 일 구현예에서, 입력 디바이스(들)(512)는 제어 메커니즘들, 예컨대 볼륨을 증가/감소시키기 위한 기본 볼륨 제어 버튼(들) 뿐만 아니라 전원 및 리셋 버튼들을 포함할 수 있다.
출력 디바이스들(514)은 본 명세서에서 설명된 바와 같이, 하나 또는 다수의 디스플레이 패널들(104)(예를 들어, 디스플레이 패널들(104)의 스테레오 쌍)을 포함할 수 있는 디스플레이(들)(516)를 포함할 수 있다. 출력 디바이스들(514)은 조명 요소(예를 들어, LED), 햅틱 감각들을 생성하기 위한 진동기, 스피커(들)(예를 들어, 헤드폰들) 등을 제한 없이 더 포함할 수 있다. 예를 들어 전원이 켜져 있을 때와 같은 상태를 표시하는 간단한 조명 요소(예를 들어, LED)가 또한 존재할 수 있다.
HMD(500)는 네트워크에 대한 무선 연결을 용이하게 하기 위해 안테나(520)에 커플링된 무선 유닛(518)을 더 포함할 수 있다. 무선 유닛(518)은 Wi-Fi, 블루투스, 무선 주파수(RF) 등과 같은 다양한 무선 기술들 중 하나 이상을 구현할 수 있다. HMD(500)가 네트워크, 연결된 주변기기 디바이스(PC, 게임 콘솔 등을 포함함), 또는 다른 무선 네트워크와 통신하고 HMD 시스템의 일부일 수 있는 플러그-인 네트워크 디바이스에 대한 유선 연결을 용이하게 하기 위한 물리적 포트들을 더 포함할 수 있다는 것이 인식되어야 한다.
HMD(500)는 하나 이상의 광학 요소들을 사용하여 전자 디스플레이(들)(516)로부터 사용자의 눈(들)으로 광을 지향시키는 광학 서브시스템(522)을 더 포함할 수 있다. 광학 서브시스템(522)은, 예컨대 조리개들, 렌즈들(예를 들어, 프레넬 렌즈들, 볼록 렌즈들, 오목 렌즈들 등), 필터들 등을 제한 없이 포함하는 상이한 광학 요소들의 다양한 유형들 및 조합들을 포함할 수 있다. 일부 실시예들에서, 광학 서브시스템(522) 내의 하나 이상의 광학 요소들은 반사-방지 코팅들과 같은 하나 이상의 코팅들을 가질 수 있다. 광학 서브시스템(522)에 의한 이미지 광의 확대는 전자 디스플레이(들)(516)가 더 큰 디스플레이들보다 물리적으로 더 작고, 무게가 더 적으며, 더 적은 전력을 소비하게 허용한다. 부가적으로, 이미지 광의 확대는 디스플레이된 콘텐츠(예를 들어, 이미지들)의 시야(FOV)를 증가시킬 수 있다. 예를 들어, 디스플레이된 콘텐츠의 FOV는, 디스플레이된 콘텐츠가 사용자의 FOV의 거의 전부(예를 들어, 120 내지 150도 대각선) 및 일부 경우들에서는 전부를 사용하여 제시되도록 이루어진다. AR 애플리케이션들은 더 좁은 FOV(예를 들어, 약 40도의 FOV)를 가질 수 있다. 광학 서브시스템(522)은 배럴 왜곡, 핀쿠션 왜곡, 종방향 색수차, 횡방향 색수차, 구면 수차, 코마 수차(comatic aberration), 상면 만곡, 비점 수차 등과 같지만 이에 제한되지 않는 하나 이상의 광학 오류들을 보정하도록 설계될 수 있다. 일부 실시예들에서, 디스플레이를 위해 전자 디스플레이(들)(516)에 제공되는 콘텐츠는 전치-왜곡되며, 광학 서브시스템(522)은, 그것이 콘텐츠에 기초하여 생성된 이미지 광을 전자 디스플레이(들)(516)로부터 수신할 때 왜곡을 보정한다.
HMD(500)는 모션, 포지션, 및 배향 데이터를 생성하기 위해 사용되는 센서들과 같은 하나 이상의 센서들(524)을 더 포함할 수 있다. 이들 센서들(524)은 자이로스코프들, 가속도계들, 자력계들, 비디오 카메라들, 컬러 센서들, 또는 다른 모션, 포지션, 및 배향 센서들일 수 있거나 이들을 포함할 수 있다. 센서들(524)은 또한, 모션, 포지션, 및 배향 데이터를 생성하기 위해 카메라 또는 컬러 센서에 의해 외부에서 보여질 수 있는 일련의 능동 또는 수동 마커들과 같은 센서들의 서브-부분들을 포함할 수 있다. 예를 들어, VR 헤드셋은 그의 외부 상에, 외부 카메라에 의해 보여지거나 광(예를 들어, 적외선 또는 가시광)에 의해 조명될 때, 모션, 포지션, 및 배향 데이터를 생성하기 위해 소프트웨어에 의한 해석을 위한 하나 이상의 기준 지점들을 제공할 수 있는 다수의 마커들, 예컨대 반사기들 또는 광들(예를 들어, 적외선 또는 가시광)을 포함할 수 있다. HMD(500)는 HMD(500)의 환경에서 기지국들에 의해 투영되거나 브로드캐스팅되는 광(예를 들어, 적외선 또는 가시광)에 민감한 광 센서들을 포함할 수 있다.
일 예에서, 센서(들)(524)는 관성 측정 유닛(IMU)(526)을 포함할 수 있다. IMU(526)는 가속도계들, 자이로스코프들, 자력계들, 및/또는 모션을 검출하고, IMU(526)와 연관된 오류를 보정하는 데 적합한 다른 센서들, 또는 이들의 일부 조합으로부터 수신된 측정 신호들에 기초하여 교정 데이터를 생성하는 전자 디바이스일 수 있다. 측정 신호들에 기초하여, IMU(526)와 같은 그러한 모션-기반 센서들은 HMD(500)의 초기 포지션에 대한 HMD(500)의 추정된 포지션을 표시하는 교정 데이터를 생성할 수 있다. 예를 들어, 다수의 가속도계들은 병진이동 모션(전방/후방, 위/아래, 좌측/우측)을 측정할 수 있고, 다수의 자이로스코프들은 회전 모션(예를 들어, 피치, 요, 및 롤)을 측정할 수 있다. IMU(526)는, 예를 들어 측정 신호들을 신속하게 샘플링하고, 샘플링된 데이터로부터 HMD(500)의 추정된 포지션을 계산할 수 있다. 예를 들어, IMU(526)는, 속도 벡터를 추정하기 위해 시간에 걸쳐 가속도계들로부터 수신된 측정 신호들을 통합할 수 있고, HMD(500) 상의 기준 지점의 추정된 포지션을 결정하기 위해 시간에 걸쳐 속도 벡터를 통합한다. 기준 지점은 HMD(500)의 포지션을 설명하는 데 사용될 수 있는 지점이다. 기준 지점이 일반적으로 공간 내의 지점으로서 정의될 수 있지만, 다양한 실시예들에서, 기준 지점은 HMD(500) 내의 지점(예를 들어, IMU(526)의 중심)으로서 정의된다. 대안적으로, IMU(526)는 샘플링된 측정 신호들을 외부 콘솔(또는 다른 컴퓨팅 디바이스)에 제공하며, 외부 콘솔은 교정 데이터를 결정한다.
센서들(524)은 센서 데이터를 높은 레이트로 제공하기 위해 비교적 높은 주파수들로 동작할 수 있다. 예를 들어, 센서 데이터는 1000 Hz(또는 1 밀리초마다 1개의 센서 판독)의 레이트로 생성될 수 있다. 이러한 방식으로, 초당 1000개의 판독들이 취해진다. 센서들이 이러한 레이트로(또는 더 큰 레이트로) 이러한 많은 데이터를 생성할 때, 모션을 예측하기 위해 사용되는 데이터 세트는 심지어 대략 수십 밀리초의 비교적 짧은 시간 기간들에 걸쳐서도 상당히 크다.
언급된 바와 같이, 일부 실시예들에서, 센서들(524)은 3D 공간 내의 HMD(500)의 포지션 및/또는 배향, 포즈 등을 추적하려는 목적들을 위해 HMD(500)의 환경에서 기지국들에 의해 방출되는 광에 민감한 광 센서들을 포함할 수 있다. 포지션 및/또는 배향의 계산은 광 펄스들의 타이밍 특성들 및 센서들(524)에 의해 검출된 광의 존재 또는 부재에 기초할 수 있다.
HMD(500)는 시선 추적 데이터를 생성하는 시스템으로서 본 명세서의 다른 곳에서 설명된 바와 같은 시선 추적 시스템(528)을 더 포함할 수 있다. 시선 추적 시스템(528)은 사용자의 눈들(116)의 이미지 데이터(또는 정보)를 캡처하기 위해 HMD(500) 내부에 카메라 또는 다른 광학 센서를 제한 없이 포함할 수 있으며, 시선 추적 시스템(528)은 HMD(500)에 대한 각각의 눈(116)의 모션 벡터들, 동공간 거리, 안구간 거리, 3차원(3D) 포지션(비틀림 및 회전(즉, 롤, 피치, 및 요)의 크기 및 각각의 눈(116)에 대한 시선 방향들을 포함함)을 결정하기 위해 캡처된 데이터/정보를 사용할 수 있다. 일 예에서, 적외선 광은 HMD(500) 내에서 방출되고 각각의 눈(116)으로부터 반사된다. 반사된 광은 시선 추적 시스템(528)의 카메라에 의해 수신 또는 검출되고, 각각의 눈(116)에 의해 반사된 적외선 광의 변화들로부터 눈 회전을 추출하기 위해 분석된다. 사용자(102)의 눈들(116)을 추적하기 위한 많은 방법들이 시선 추적 시스템(528)에 의해 사용될 수 있다. 따라서, 시선 추적 시스템(528)은 각각의 눈의 최대 6개의 자유도들(즉, 3D 포지션, 롤, 피치 및 요)을 추적할 수 있으며, 추적된 양들의 적어도 서브세트는, 디스플레이 패널(들)(104)의 픽셀들의 개별 서브세트(예를 들어, 행) 또는 인접한 서브세트들의 그룹(예를 들어, 인접한 행들의 그룹)의 관점들에서 사용자(102)가 어디를 보고 있는지를 예측하기 위해 디스플레이 패널(들)(104) 상의 위치(들)에 맵핑될 수 있는 시선 지점(즉, 사용자가 보고 있는 가상 장면 내의 3D 위치 또는 포지션)을 추정하기 위해 사용자(102)의 2개의 눈들(116)로부터 결합될 수 있다. 예를 들어, 시선 추적 시스템(528)은 과거 측정들로부터의 정보, 사용자(102)의 머리의 포지션을 식별하는 측정들, 및 전자 디스플레이(들)(516)에 의해 제시된 장면을 설명하는 3D 정보를 통합할 수 있다. 따라서, 사용자(102)가 보고 있는 HMD(500)에 의해 제시된 가상 장면에서 시선 지점을 결정하기 위해 그리고 HMD(100)의 디스플레이 패널(들)(104) 상의 위치(들)에 그 시선 지점을 맵핑하기 위해, 사용자(102)의 눈들(116)의 포지션 및 배향에 대한 정보가 사용된다. 앞서 언급된 바와 같이, 사용자(102)가 보고 있는 디스플레이 패널(들)(104) 상의 시선 지점(들) 또는 위치(들)의 가장 최근의 추정/예측은, 사용자(102)가 주어진 프레임(108)에 대한 다가오는 조명 시간 기간(120) 동안 어디를 보고 있을지를 예측하기 위한 프록시로서 사용될 수 있다. 그러나, 눈 움직임의 궤적을 예측하기 위해 모션 벡터들을 이용하는 것 등과 같이, 사용자(102)가 미래에 어디를 보고 있을지를 예측하기 위한 다른 기법들이 이용될 수 있다.
HMD(500)는 머리 추적 시스템(530)을 더 포함할 수 있다. 머리 추적 시스템(530)은 위에서 설명된 바와 같이, 사용자(102)의 머리 모션(머리 회전을 포함함)을 추적하기 위해 센서(524) 중 하나 이상을 레버리지할 수 있다. 예를 들어, 머리 추적 시스템은(530)은 HMD(500)의 최대 6개의 자유도들(즉, 3D 포지션, 롤, 피치, 및 요)을 추적할 수 있다. 이들 계산들은, 애플리케이션(106)이 머리 포지션 및 배향에 따라 다음 프레임(108)에서 장면을 어떻게 렌더링할지를 결정할 수 있도록, 일련의 프레임들(108)의 모든 프레임(108)에서 행해질 수 있다. 일부 실시예들에서, 머리 추적 시스템(530) 및/또는 머리 추적 시스템(530)을 사용하는 합성기(114)는 본 명세서에서 설명된 바와 같이, 현재 및/또는 과거 데이터에 기초하여, 그리고/또는 롤링 밴드 디스플레이 구동 기법을 구현하는 디스플레이 시스템에서의 픽셀들의 개별 서브세트들의 알려진/묵시적 스캔 아웃 레이턴시에 기초하여 HMD(500)의 미래 포즈(포지션 및/또는 배향)를 예측하도록 구성된다. 이것은, 사용자(102)가 디스플레이(들)(516) 상에서 광(및 그에 따라, 이미지)을 실제로 보기 전에 애플리케이션이 프레임(108)을 렌더링하도록 요청받기 때문이다. 따라서, 다음 프레임(108)은, 주어진 프레임(108)에 대해 결정된 타겟 렌더링 시간(200)에 의존하여, 프레임(108)을 렌더링하기 전에 대략 12 내지 30 밀리초(ms)의 범위 내에 있을 수 있는 더 이른 시점에 이루어졌던 머리 포지션 및/또는 배향의 이러한 미래의 예측에 기초하여 렌더링될 수 있다. 머리 추적 시스템(530)에 의해 제공되는 회전 데이터는 HMD(500) 회전의 방향 및 임의의 적합한 측정 단위의 HMD(500) 회전의 양 둘 모두를 결정하는 데 사용될 수 있다. 예를 들어, 회전 방향은 좌측, 우측, 위, 및 아래에 대응하는 양의 또는 음의 수평 및 양의 또는 음의 수직 방향들의 관점들에서 단순화되고 출력될 수 있다. 회전의 양은 도, 라디안 등의 관점에서 이루어질 수 있다. 각속도는 HMD(500)의 회전 레이트를 결정하기 위해 계산될 수 있다.
주제가 구조적 특징들에 대해 특정한 언어로 설명되었지만, 첨부된 청구범위에서 정의된 주제는 설명된 구체적 특징들에 반드시 제한되지는 않는다는 것을 이해하여야 한다. 오히려, 구체적 특징들은 청구범위를 구현하는 예시적인 형태로 개시된다.

Claims (20)

  1. 머리-장착형 디스플레이(HMD) 시스템으로서,
    픽셀들의 어레이를 갖는 디스플레이 패널을 포함하는 HMD;
    시선 추적 시스템;
    머리 추적 시스템;
    프로세서; 및
    컴퓨터 실행가능 명령어들을 저장하는 메모리를 포함하며, 상기 컴퓨터 실행가능 명령어들은, 상기 프로세서에 의해 실행될 때, 상기 HMD로 하여금,
    상기 시선 추적 시스템에 의해 생성된 시선 추적 데이터에 적어도 부분적으로 기초하여, 상기 HMD를 착용한 사용자가 조명 시간 기간 동안 보고 있을 상기 디스플레이 패널 상의 위치를 예측하게 하고 - 상기 픽셀들의 개별 서브세트들은 상기 디스플레이 패널 상에 이미지를 제시하기 위해 상기 조명 시간 기간에 걸쳐 시퀀스로(in sequence) 조명됨 -;
    상기 조명 시간 기간 내에서, 상기 디스플레이 패널 상의 상기 위치에 대응하는 상기 픽셀들의 개별 서브세트가 조명될 시간을 결정하게 하고;
    상기 머리 추적 시스템에 의해 생성된 머리 추적 데이터에 적어도 부분적으로 기초하여, 상기 HMD가 상기 시간에 있을 포즈를 예측하게 하고;
    상기 이미지에 대응하는 프레임을 렌더링하기 위해 상기 포즈를 표시하는 포즈 데이터를 애플리케이션에 전송하게 하고;
    상기 애플리케이션으로부터 상기 프레임에 대한 픽셀 데이터를 수신하게 하고;
    재투영된 프레임과 연관된 수정된 픽셀 데이터를 획득하기 위해 상기 프레임에 대한 상기 픽셀 데이터에 재투영 조정들을 적용하게 하며;
    상기 수정된 픽셀 데이터에 적어도 부분적으로 기초하여 상기 디스플레이 패널 상에 상기 이미지를 제시하게 하고, 상기 픽셀들의 상기 개별 서브세트들은 상기 디스플레이 패널 상에서의 상기 이미지의 제시 동안 상기 조명 시간 기간에 걸쳐 상기 시퀀스로 조명되는, 머리-장착형 디스플레이 시스템.
  2. 제1항에 있어서,
    상기 픽셀들의 어레이의 상기 픽셀들은 행(row)들 및 열(column)들로 배열되고;
    상기 픽셀들의 상기 개별 서브세트들은 상기 픽셀들의 개별 행들에 대응하며;
    상기 픽셀들의 상기 개별 행들이 조명되는 상기 시퀀스는 상단으로부터 하단인, 머리-장착형 디스플레이 시스템.
  3. 제1항에 있어서, 상기 위치를 예측하는 것은 상기 HMD의 시야(FOV) 파라미터에 추가로 기초하는, 머리-장착형 디스플레이 시스템.
  4. 제1항에 있어서, 수정된 픽셀 데이터를 획득하기 위해 상기 픽셀 데이터에 상기 재투영 조정들을 적용하는 것은,
    상기 머리 추적 시스템에 의해 생성된 제2 머리 추적 데이터에 적어도 부분적으로 기초하여, 상기 조명 시간 기간 내에서, 상기 픽셀들의 상기 개별 서브세트들이 조명될 복수의 시간들에 대한 상기 HMD의 복수의 업데이트된 포즈들을 예측하는 것;
    상기 포즈와 상기 업데이트된 포즈들의 개별 업데이트된 포즈들 사이의 비교들에 적어도 부분적으로 기초하여 복수의 조정들을 계산하는 것; 및
    상기 재투영된 프레임과 연관된 상기 수정된 픽셀 데이터를 획득하기 위해 상기 복수의 조정들에 적어도 부분적으로 기초하여 상기 프레임에 대한 상기 픽셀 데이터를 수정하는 것을 포함하는, 머리-장착형 디스플레이 시스템.
  5. 제4항에 있어서,
    상기 복수의 조정들은,
    상기 디스플레이 패널 상의 상기 위치에 대응하는 상기 픽셀들의 상기 개별 서브세트에 인접한 상기 픽셀들의 제1 개별 서브세트에 대한 제1 조정; 및
    상기 디스플레이 패널 상의 상기 위치에 대응하는 상기 픽셀들의 상기 개별 서브세트에 인접하지 않는 상기 픽셀들의 제2 개별 서브세트에 대한 제2 조정을 포함하며;
    상기 제1 조정은 상기 제2 조정보다 작은, 머리-장착형 디스플레이 시스템.
  6. 제1항에 있어서,
    상기 디스플레이 패널은 제1 디스플레이 패널 및 제2 디스플레이 패널을 포함하는 한 쌍의 디스플레이 패널들 중 상기 제1 디스플레이 패널이고;
    상기 이미지는 상기 픽셀 데이터에 적어도 부분적으로 기초하여 상기 한 쌍의 디스플레이 패널들 상에 제시되는 한 쌍의 이미지들 중 제1 이미지인, 머리-장착형 디스플레이 시스템.
  7. 픽셀들의 어레이를 갖는 디스플레이 패널을 포함하는 머리-장착형 디스플레이(HMD) 시스템에 의해 구현되는 방법으로서,
    상기 HMD 시스템의 시선 추적 시스템에 의해 생성된 시선 추적 데이터에 적어도 부분적으로 기초하여, HMD를 착용한 사용자가 조명 시간 기간 동안 보고 있을 상기 디스플레이 패널 상의 위치를 예측하는 단계 - 상기 픽셀들의 개별 서브세트들은 상기 디스플레이 패널 상에 이미지를 제시하기 위해 상기 조명 시간 기간에 걸쳐 시퀀스로 조명됨 -;
    상기 조명 시간 기간 내에서, 상기 디스플레이 패널 상의 상기 위치에 대응하는 상기 픽셀들의 개별 서브세트가 조명될 시간을 결정하는 단계;
    상기 HMD 시스템의 머리 추적 시스템에 의해 생성된 머리 추적 데이터에 적어도 부분적으로 기초하여, 상기 HMD가 상기 시간에 있을 포즈를 예측하는 단계;
    상기 이미지에 대응하는 프레임을 렌더링하기 위해 상기 포즈를 표시하는 포즈 데이터를 애플리케이션에 전송하는 단계;
    상기 애플리케이션으로부터 상기 프레임에 대한 픽셀 데이터를 수신하는 단계;
    재투영된 프레임과 연관된 수정된 픽셀 데이터를 획득하기 위해 상기 프레임에 대한 상기 픽셀 데이터에 재투영 조정들을 적용하는 단계; 및
    상기 수정된 픽셀 데이터에 적어도 부분적으로 기초하여 상기 디스플레이 패널 상에 상기 이미지를 제시하는 단계를 포함하며, 상기 픽셀들의 상기 개별 서브세트들은 상기 디스플레이 패널 상에서의 상기 이미지의 제시 동안 상기 조명 시간 기간에 걸쳐 상기 시퀀스로 조명되는, 머리-장착형 디스플레이 시스템에 의해 구현되는 방법.
  8. 제7항에 있어서, 상기 재투영된 프레임과 연관된 상기 수정된 픽셀 데이터를 획득하기 위해 상기 프레임에 대한 상기 픽셀 데이터에 상기 재투영 조정들을 적용하는 단계는,
    상기 머리 추적 시스템에 의해 생성된 제2 머리 추적 데이터에 적어도 부분적으로 기초하여, 상기 조명 시간 기간 내에서, 상기 픽셀들의 상기 개별 서브세트들이 조명될 복수의 시간들에 대한 상기 HMD의 복수의 업데이트된 포즈들을 예측하는 단계;
    상기 포즈와 상기 업데이트된 포즈들의 개별 업데이트된 포즈들 사이의 비교들에 적어도 부분적으로 기초하여 복수의 조정들을 계산하는 단계; 및
    상기 재투영된 프레임과 연관된 상기 수정된 픽셀 데이터를 획득하기 위해 상기 복수의 조정들에 적어도 부분적으로 기초하여 상기 프레임에 대한 상기 픽셀 데이터를 수정하는 단계를 포함하는, 머리-장착형 디스플레이 시스템에 의해 구현되는 방법.
  9. 제8항에 있어서,
    상기 복수의 조정들은,
    상기 디스플레이 패널 상의 상기 위치에 대응하는 상기 픽셀들의 상기 개별 서브세트에 인접한 상기 픽셀들의 제1 개별 서브세트에 대한 제1 조정; 및
    상기 디스플레이 패널 상의 상기 위치에 대응하는 상기 픽셀들의 상기 개별 서브세트에 인접하지 않는 상기 픽셀들의 제2 개별 서브세트에 대한 제2 조정을 포함하며;
    상기 제1 조정은 상기 제2 조정보다 작은, 머리-장착형 디스플레이 시스템에 의해 구현되는 방법.
  10. 제7항에 있어서,
    상기 시선 추적 데이터는 상기 사용자가 상기 디스플레이 패널의 상기 위치를 보고 있다는 것을 표시하며;
    상기 사용자가 상기 조명 시간 기간 동안 보고 있을 상기 디스플레이 패널 상의 상기 위치를 예측하는 단계는, 상기 사용자가 상기 조명 시간 기간 동안 상기 디스플레이 패널 상의 어디를 보고 있을지를 예측하기 위한 프록시로서, 상기 사용자가 보고 있는 상기 디스플레이 패널의 상기 위치를 사용하는 단계를 포함하는, 머리-장착형 디스플레이 시스템에 의해 구현되는 방법.
  11. 제7항에 있어서,
    상기 픽셀들의 어레이의 상기 픽셀들은 행들 및 열들로 배열되고;
    상기 픽셀들의 상기 개별 서브세트들은 상기 픽셀들의 개별 행들 또는 상기 픽셀들의 인접한 행들의 개별 그룹들 중 적어도 하나에 대응하며;
    상기 픽셀들의 상기 개별 서브세트들이 조명되는 상기 시퀀스는 상단으로부터 하단인, 머리-장착형 디스플레이 시스템에 의해 구현되는 방법.
  12. 제7항에 있어서, 기 시선 추적 데이터는 상기 사용자의 눈 배향을 표시하고,
    상기 위치는 상기 사용자의 상기 눈 배향에 대한 픽셀들의 가장 근접한 서브세트로서 예측되는, 머리-장착형 디스플레이 시스템에 의해 구현되는 방법.
  13. 제7항에 있어서,
    상기 디스플레이 패널은 제1 디스플레이 패널 및 제2 디스플레이 패널을 포함하는 한 쌍의 디스플레이 패널들 중 상기 제1 디스플레이 패널이고;
    상기 이미지는 상기 픽셀 데이터에 적어도 부분적으로 기초하여 상기 한 쌍의 디스플레이 패널들 상에 제시되는 한 쌍의 이미지들 중 제1 이미지인, 머리-장착형 디스플레이 시스템에 의해 구현되는 방법.
  14. 제7항에 있어서, 상기 HMD는 가상 현실(VR) 헤드셋인, 머리-장착형 디스플레이 시스템에 의해 구현되는 방법.
  15. 제7항에 있어서, 상기 위치를 예측하는 단계는 상기 HMD의 시야(FOV) 파라미터에 추가로 기초하는, 머리-장착형 디스플레이 시스템에 의해 구현되는 방법.
  16. 머리-장착형 디스플레이(HMD) 시스템으로서,
    픽셀들의 어레이를 갖는 디스플레이 패널을 포함하는 HMD;
    시선 추적 시스템;
    머리 추적 시스템;
    프로세서; 및
    컴퓨터 실행가능 명령어들을 저장하는 메모리를 포함하며, 상기 컴퓨터 실행가능 명령어들은, 상기 프로세서에 의해 실행될 때, 상기 HMD로 하여금,
    상기 시선 추적 시스템에 의해 생성된 시선 추적 데이터에 적어도 부분적으로 기초하여, 상기 HMD를 착용한 사용자가 조명 시간 기간 동안 보고 있을 시선 지점을 예측하게 하고 - 상기 픽셀들의 개별 서브세트들은 상기 디스플레이 패널 상에 이미지를 제시하기 위해 상기 조명 시간 기간에 걸쳐 시퀀스로 조명됨 -;
    상기 시선 지점에 대응하는 상기 픽셀들의 개별 서브세트를 결정하게 하고;
    상기 머리 추적 시스템에 의해 생성된 머리 추적 데이터에 적어도 부분적으로 기초하여, 상기 조명 시간 기간 내에서, 상기 픽셀들의 상기 개별 서브세트가 조명될 시간에 상기 HMD가 있을 포즈를 예측하게 하고;
    상기 이미지에 대응하는 프레임을 렌더링하기 위해 상기 포즈를 표시하는 포즈 데이터를 애플리케이션에 전송하게 하고;
    상기 애플리케이션으로부터 상기 프레임에 대한 픽셀 데이터를 수신하게 하고;
    재투영된 프레임과 연관된 수정된 픽셀 데이터를 획득하기 위해 상기 프레임에 대한 상기 픽셀 데이터에 재투영 조정들을 적용하게 하며;
    상기 수정된 픽셀 데이터에 적어도 부분적으로 기초하여 상기 디스플레이 패널 상에 상기 이미지를 제시하게 하고, 상기 픽셀들의 상기 개별 서브세트들은 상기 디스플레이 패널 상에서의 상기 이미지의 제시 동안 상기 조명 시간 기간에 걸쳐 상기 시퀀스로 조명되는, 머리-장착형 디스플레이 시스템.
  17. 제16항에 있어서, 상기 재투영된 프레임과 연관된 상기 수정된 픽셀 데이터를 획득하기 위해 상기 프레임에 대한 상기 픽셀 데이터에 상기 재투영 조정들을 적용하는 것은,
    상기 머리 추적 시스템에 의해 생성된 제2 머리 추적 데이터에 적어도 부분적으로 기초하여, 상기 조명 시간 기간 내에서, 상기 픽셀들의 상기 개별 서브세트들이 조명될 복수의 시간들에 대한 상기 HMD의 복수의 업데이트된 포즈들을 예측하는 것;
    상기 포즈와 상기 업데이트된 포즈들의 개별 업데이트된 포즈들 사이의 비교들에 적어도 부분적으로 기초하여 복수의 조정들을 계산하는 것; 및
    상기 재투영된 프레임과 연관된 상기 수정된 픽셀 데이터를 획득하기 위해 상기 복수의 조정들에 적어도 부분적으로 기초하여 상기 프레임에 대한 상기 픽셀 데이터를 수정하는 것을 포함하는, 머리-장착형 디스플레이 시스템.
  18. 제16항에 있어서,
    상기 픽셀들의 어레이의 상기 픽셀들은 행들 및 열들로 배열되고;
    상기 픽셀들의 상기 개별 서브세트들은 상기 픽셀들의 개별 행들 또는 상기 픽셀들의 인접한 행들의 개별 그룹들 중 적어도 하나에 대응하고;
    상기 픽셀들의 상기 개별 서브세트들이 조명되는 상기 시퀀스는 상단으로부터 하단이며;
    상기 시선 지점에 대응하는 상기 픽셀들의 상기 개별 서브세트를 결정하는 것은 상기 사용자가 보고 있을, 상기 픽셀들의 개별 행 또는 상기 픽셀들의 인접한 행들의 개별 그룹 중 적어도 하나를 추정하는 것을 포함하는, 머리-장착형 디스플레이 시스템.
  19. 제16항에 있어서, 상기 HMD는 가상 현실(VR) 헤드셋인, 머리-장착형 디스플레이 시스템.
  20. 제16항에 있어서,
    상기 시선 추적 데이터는 상기 사용자가 보고 있는 상기 시선 지점을 표시하며;
    상기 사용자가 상기 조명 시간 기간 동안 보고 있을 상기 시선 지점을 예측하는 것은, 상기 사용자가 상기 조명 시간 기간 동안 어디를 보고 있을지를 예측하기 위한 프록시로서, 상기 사용자가 보고 있는 상기 시선 지점을 사용하는 것을 포함하는, 머리-장착형 디스플레이 시스템.
KR1020217020032A 2019-01-14 2020-01-14 시선 추적에 기초한 동적 렌더링 시간 타겟팅 KR20210113602A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962792305P 2019-01-14 2019-01-14
US62/792,305 2019-01-14
US16/367,008 US10802287B2 (en) 2019-01-14 2019-03-27 Dynamic render time targeting based on eye tracking
US16/367,008 2019-03-27
PCT/US2020/013441 WO2020150191A1 (en) 2019-01-14 2020-01-14 Dynamic render time targeting based on eye tracking

Publications (1)

Publication Number Publication Date
KR20210113602A true KR20210113602A (ko) 2021-09-16

Family

ID=71517537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217020032A KR20210113602A (ko) 2019-01-14 2020-01-14 시선 추적에 기초한 동적 렌더링 시간 타겟팅

Country Status (6)

Country Link
US (1) US10802287B2 (ko)
EP (1) EP3884340A4 (ko)
JP (1) JP2022517991A (ko)
KR (1) KR20210113602A (ko)
CN (1) CN113272715B (ko)
WO (1) WO2020150191A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024117452A1 (ko) * 2022-11-28 2024-06-06 삼성전자주식회사 사용자의 움직임에 대한 트래킹 정보에 기반하여 렌더링을 하기 위한 전자 장치 및 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
US10520739B1 (en) * 2018-07-11 2019-12-31 Valve Corporation Dynamic panel masking
US11962819B2 (en) * 2018-07-17 2024-04-16 Dolby Laboratories Licensing Corporation Foviation and HDR
EP3871069A1 (en) * 2018-10-24 2021-09-01 PCMS Holdings, Inc. Systems and methods for region of interest estimation for virtual reality
SE1851562A1 (en) * 2018-12-12 2020-06-02 Tobii Ab Method Computer Program and Driver Unit for Streaming Gaze Data Packets
US20210192681A1 (en) * 2019-12-18 2021-06-24 Ati Technologies Ulc Frame reprojection for virtual reality and augmented reality
US11803221B2 (en) * 2020-03-23 2023-10-31 Microsoft Technology Licensing, Llc AI power regulation
KR20220039113A (ko) * 2020-09-21 2022-03-29 삼성전자주식회사 엣지 컴퓨팅 서비스를 이용한 영상 컨텐츠 전송 방법 및 장치
CN114040184B (zh) * 2021-11-26 2024-07-16 京东方科技集团股份有限公司 图像显示方法、***、存储介质及计算机程序产品
US11977672B2 (en) * 2022-06-03 2024-05-07 Qualcomm Incorporated Distributed pose prediction
US11880503B1 (en) * 2022-12-19 2024-01-23 Rockwell Collins, Inc. System and method for pose prediction in head worn display (HWD) headtrackers

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040104935A1 (en) * 2001-01-26 2004-06-03 Todd Williamson Virtual reality immersion system
US9690099B2 (en) * 2010-12-17 2017-06-27 Microsoft Technology Licensing, Llc Optimized focal area for augmented reality displays
US10585472B2 (en) * 2011-08-12 2020-03-10 Sony Interactive Entertainment Inc. Wireless head mounted display with differential rendering and sound localization
US9443355B2 (en) * 2013-06-28 2016-09-13 Microsoft Technology Licensing, Llc Reprojection OLED display for augmented reality experiences
US10142553B2 (en) * 2013-09-16 2018-11-27 Intel Corporation Camera and light source synchronization for object tracking
US9727136B2 (en) * 2014-05-19 2017-08-08 Microsoft Technology Licensing, Llc Gaze detection calibration
US20160238852A1 (en) * 2015-02-13 2016-08-18 Castar, Inc. Head mounted display performing post render processing
US10274728B2 (en) * 2015-05-18 2019-04-30 Facebook Technologies, Llc Stacked display panels for image enhancement
US11010956B2 (en) * 2015-12-09 2021-05-18 Imagination Technologies Limited Foveated rendering
US9978180B2 (en) 2016-01-25 2018-05-22 Microsoft Technology Licensing, Llc Frame projection for augmented reality environments
US10089725B2 (en) * 2016-02-09 2018-10-02 Google Llc Electronic display stabilization at a graphics processing unit
US9829710B1 (en) * 2016-03-02 2017-11-28 Valve Corporation Display with stacked emission and control logic layers
US10372205B2 (en) * 2016-03-31 2019-08-06 Sony Interactive Entertainment Inc. Reducing rendering computation and power consumption by detecting saccades and blinks
US11017712B2 (en) * 2016-08-12 2021-05-25 Intel Corporation Optimized display image rendering
US9928660B1 (en) * 2016-09-12 2018-03-27 Intel Corporation Hybrid rendering for a wearable display attached to a tethered computer
US10379611B2 (en) 2016-09-16 2019-08-13 Intel Corporation Virtual reality/augmented reality apparatus and method
CN109716268B (zh) * 2016-09-22 2022-05-17 苹果公司 眼部和头部跟踪
US10565777B2 (en) * 2016-09-30 2020-02-18 Sony Interactive Entertainment Inc. Field of view (FOV) throttling of virtual reality (VR) content in a head mounted display
US10043318B2 (en) * 2016-12-09 2018-08-07 Qualcomm Incorporated Display synchronized image warping
US10212428B2 (en) * 2017-01-11 2019-02-19 Microsoft Technology Licensing, Llc Reprojecting holographic video to enhance streaming bandwidth/quality
US10643528B2 (en) * 2018-01-23 2020-05-05 Valve Corporation Rolling burst illumination for a display
US10890968B2 (en) * 2018-05-07 2021-01-12 Apple Inc. Electronic device with foveated display and gaze prediction
US10520739B1 (en) * 2018-07-11 2019-12-31 Valve Corporation Dynamic panel masking
US20200050353A1 (en) * 2018-08-09 2020-02-13 Fuji Xerox Co., Ltd. Robust gesture recognizer for projector-camera interactive displays using deep neural networks with a depth camera

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024117452A1 (ko) * 2022-11-28 2024-06-06 삼성전자주식회사 사용자의 움직임에 대한 트래킹 정보에 기반하여 렌더링을 하기 위한 전자 장치 및 방법

Also Published As

Publication number Publication date
EP3884340A1 (en) 2021-09-29
JP2022517991A (ja) 2022-03-11
US10802287B2 (en) 2020-10-13
CN113272715A (zh) 2021-08-17
US20200225473A1 (en) 2020-07-16
CN113272715B (zh) 2024-07-09
WO2020150191A1 (en) 2020-07-23
EP3884340A4 (en) 2022-08-24

Similar Documents

Publication Publication Date Title
KR20210113602A (ko) 시선 추적에 기초한 동적 렌더링 시간 타겟팅
US11314322B2 (en) Display system with dynamic light output adjustment for maintaining constant brightness
US11151776B2 (en) Prediction and throttling adjustments based on application rendering performance
CN113170136B (zh) 重投影帧的运动平滑
US11303875B2 (en) Split rendering between a head-mounted display (HMD) and a host computer
US11343486B2 (en) Counterrotation of display panels and/or virtual cameras in a HMD
KR20210029244A (ko) 동적 패널 마스킹