KR20230101926A - 동적 포비티드 파이프라인 - Google Patents

동적 포비티드 파이프라인 Download PDF

Info

Publication number
KR20230101926A
KR20230101926A KR1020237020758A KR20237020758A KR20230101926A KR 20230101926 A KR20230101926 A KR 20230101926A KR 1020237020758 A KR1020237020758 A KR 1020237020758A KR 20237020758 A KR20237020758 A KR 20237020758A KR 20230101926 A KR20230101926 A KR 20230101926A
Authority
KR
South Korea
Prior art keywords
resolution
image
various implementations
rendering
implementations
Prior art date
Application number
KR1020237020758A
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 KR20230101926A publication Critical patent/KR20230101926A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • G06T3/0093
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/631Multimode Transmission, e.g. transmitting basic layers and enhancement layers of the content over different transmission paths or transmitting with different error corrections, different keys or with different transmission protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)

Abstract

일 구현예에서, 방법은, (예를 들어, 디스플레이 공간에 디스플레이될) 시뮬레이션된 현실(SR) 콘텐츠를 표현하는 뒤틀린 이미지를 수신하는 단계를 포함하며, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖고, 여기서, 복수의 픽셀들은 복수의 개개의 픽셀 값들, 및 SR 콘텐츠의(예를 들어, 디스플레이 공간 내의) 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관된다. 방법은 프로세싱된 뒤틀린 이미지를 생성하기 위해 복수의 개개의 스케일링 인자들에 기초하여, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 단계, 및 프로세싱된 뒤틀린 이미지를 송신하는 단계를 포함한다.

Description

동적 포비티드 파이프라인{DYNAMIC FOVEATED PIPELINE}
본 개시내용은 일반적으로 이미지 렌더링에 관한 것으로, 특히 다양한 양의 세부사항을 갖는 시뮬레이션된 현실에 대한 이미지들을 렌더링하기 위한 시스템들, 방법들, 및 디바이스들에 관한 것이다.
물리적 설정은 사람들이 감지할 수 있고 그리고/또는 사람들이 전자 시스템들의 보조 없이 상호작용할 수 있는 세계를 지칭한다. 물리적 설정들(예를 들어, 물리적 숲)은 물리적 요소들(예를 들어, 물리적 나무들, 물리적 구조물들, 및 물리적 동물들)을 포함한다. 사람들은, 예컨대 촉각, 시각, 후각, 청각, 및 미각을 통해, 물리적 설정과 직접 상호작용 및/또는 감지할 수 있다.
대조적으로, 시뮬레이션된 현실(SR) 설정은 사람들이 감지할 수 있고 그리고/또는 사람들이 전자 시스템을 통해 상호작용할 수 있는 전체적으로 또는 부분적으로 컴퓨터-생성된 설정을 지칭한다. SR에서, 사람의 움직임들의 서브세트가 모니터링되고, 이에 응답하여, SR 설정에서의 하나 이상의 가상 객체들의 하나 이상의 속성들은 하나 이상의 물리 법칙들을 지키는 방식으로 변경된다. 예를 들어, SR 시스템은 사람이 몇 걸음 앞으로 걷는 것을 검출하고, 이에 응답하여, 이러한 풍경과 소리가 물리적 설정에서 변하는 것과 유사한 방식으로 사람에게 제시되는 그래픽 및 오디오를 조정할 수 있다. SR 설정에서의 가상 객체(들)의 속성(들)에 대한 수정은 또한 움직임의 표현들(예를 들어, 오디오 명령어들)에 응답하여 이루어질 수 있다.
사람은 촉각, 후각, 시각, 미각, 및 청각을 포함하는 자신의 감각들 중 임의의 하나를 이용하여 SR 객체와 상호작용하고 그리고/또는 이를 감지할 수 있다. 예를 들어, 사람은 다차원(예를 들어, 3차원) 또는 공간 청각적 설정을 생성, 및/또는 청각적 투명성을 가능하게 하는 청각 객체들과 상호작용하고/하거나 감지할 수 있다. 다차원 또는 공간 청각적 설정들은 사람에게 다차원 공간에서 개별적인 청각적 소스들에 대한 인식을 제공한다. 청각적 투명성은 물리적 설정으로부터의 소리를, 컴퓨터-생성 오디오와 함께 또는 그것 없이 선택적으로 포함한다. 일부 SR 설정들에서, 사람은 오직 청각적 객체들과 상호작용하고/하거나 감지할 수 있다.
SR의 일 예는 가상 현실(VR)이다. VR 설정은 감각들 중 적어도 하나에 대한 컴퓨터-생성 감각 입력들만을 포함하도록 설계되는 시뮬레이션된 설정을 지칭한다. VR 설정은 사람이 상호작용 및/또는 감지할 수 있는 다수의 가상 객체들을 포함한다. 사람은 컴퓨터-생성 설정 내의 사람의 액션들의 서브세트의 시뮬레이션, 및/또는 컴퓨터-생성 설정 내의 사람 또는 그의 존재의 시뮬레이션을 통해 VR 설정 내의 가상 객체들과 상호작용하고/하거나 감지할 수 있다.
SR의 다른 예는 혼합 현실(mixed reality, MR)이다. MR 설정은 컴퓨터-생성 감각 입력들(예를 들어, 가상 객체들)을 물리적 설정, 또는 그것들의 표현으로부터의 감각 입력들과 통합하도록 설계되는 시뮬레이션된 설정을 지칭한다. 현실 스펙트럼 상에서, 혼합 현실 설정은 한편으로 VR 설정과 다른 한편으로 전체 물리적 설정 사이에 존재하고, 이들을 포함하지 않는다.
일부 MR 설정들에서, 컴퓨터-생성 감각 입력들은 물리적 설정으로부터의 감각 입력들의 변화에 적응할 수 있다. 또한, MR 설정들을 제시하기 위한 일부 전자 시스템들은 가상 객체들과 실제 객체들(이들은 물리적 설정 또는 이들의 표현으로부터의 물리적 요소들임) 사이의 상호작용을 인에이블하기 위하여 물리적 설정에 대한 배향 및/또는 위치를 모니터링할 수 있다. 예를 들어, 시스템은 움직임들을 모니터링하여 가상 식물이 물리적 빌딩에 대해 고정된 것처럼 보이도록 할 수 있다.
혼합 현실의 일 예는 증강 현실(AR)이다. AR 설정은 적어도 하나의 가상 객체가 물리적 설정, 또는 그것들의 표현 위에 중첩되는 시뮬레이션된 설정을 지칭한다. 예를 들어, 전자 시스템은 불투명 디스플레이, 및 물리적 설정의 표현들인, 물리적 설정의 이미지들 또는 비디오를 캡처하기 위한 적어도 하나의 이미지 센서를 가질 수 있다. 시스템은 이미지들 또는 비디오를 가상 객체들과 조합하고, 불투명 디스플레이 상에 그 조합을 디스플레이한다. 사람은, 시스템을 사용하여, 물리적 설정의 이미지들 또는 비디오를 통해 간접적으로 물리적 설정을 보고, 물리적 설정 위에 중첩된 가상 객체들을 관찰한다. 시스템이 이미지 센서(들)를 사용하여 물리적 설정의 이미지들을 캡처하고, 이러한 이미지들을 사용하여 불투명 디스플레이 상에 AR 설정을 제시할 때, 디스플레이되는 이미지들은 비디오 패스-스루(pass-through)라고 불린다. 대안적으로, AR 설정을 디스플레이하기 위한 전자 시스템은 사람이 물리적 설정을 직접 볼 수 있는 투명 또는 반투명 디스플레이를 가질 수 있다. 시스템은 가상 객체들을 투명 또는 반투명 디스플레이 상에 디스플레이하여, 사람이 시스템을 사용하여, 물리적 설정 상에 중첩된 가상 객체들을 관찰하게 할 수 있다. 다른 예에서, 시스템은 가상 객체들을 물리적 설정 내로 투사하는 투사 시스템을 포함할 수 있다. 가상 객체들은, 예를 들어, 물리적 표면 상에 또는 홀로그래프로서 투사되어, 사람이 시스템을 사용하여, 물리적 설정 상에 중첩된 가상 객체들을 관찰하게 할 수 있다.
증강 현실 설정은 또한 물리적 설정의 표현이 컴퓨터-생성 센서 정보에 의해 변경되는 시뮬레이션된 설정을 지칭할 수 있다. 예를 들어, 물리적 설정의 표현의 일부분은 그래픽적으로 변경되어(예를 들어, 확대됨), 변경된 부분이 여전히 대표성은 있지만 원래 캡처된 이미지(들)의 충실하게 재현된 버전은 아닐 수 있다. 다른 예로서, 비디오 패스-스루를 제공함에 있어서, 시스템은 센서 이미지들 중 적어도 하나를 변경하여 이미지 센서(들)에 의해 캡처된 관점과 상이한 특정 관점을 부과할 수 있다. 부가적인 예로서, 물리적 설정의 표현은 그의 부분들을 그래픽적으로 모호하게 하거나 배제함으로써 변경될 수 있다.
혼합 현실의 다른 예는 증강 가상(augmented virtuality, AV)이다. AV 설정은 컴퓨터-생성 또는 가상 설정이 물리적 설정으로부터의 적어도 하나의 감각 입력을 포함시키는 시뮬레이션된 설정을 지칭한다. 물리적 설정으로부터의 감각 입력(들)은 물리적 설정의 적어도 하나의 특성의 표현들일 수 있다. 예를 들어, 가상 객체는 이미지 센서(들)에 의해 캡처된 물리적 구성의 색상을 취할 수 있다. 다른 예에서, 가상 객체는 이미지, 날씨-관련 센서, 및/또는 온라인 날씨 데이터를 통해 식별되는 바와 같이, 물리적 설정의 실제 날씨 조건들에 일치하는 특성들을 나타낼 수 있다. 또 다른 예에서, 증강 현실 숲은 가상 나무들 및 구조물들을 가질 수 있지만, 동물들은 물리적 동물들의 촬영된 이미지들로부터 정확하게 재현되는 특징들을 가질 수 있다.
많은 전자 시스템들은 개인이 다양한 SR 설정들과 상호작용하고/하거나 이들을 감지할 수 있게 한다. 일 예는 머리 장착형 시스템들을 포함한다. 머리 장착형 시스템은 불투명 디스플레이 및 스피커(들)를 가질 수 있다. 대안적으로, 머리 장착형 시스템은 외부 디스플레이(예를 들어, 스마트폰)를 수용하도록 설계될 수 있다. 머리 장착형 시스템은 각각 이미지들/비디오를 촬영하고 그리고/또는 물리적 설정의 오디오를 캡처하기 위한 이미징 센서(들) 및/또는 마이크로폰들을 가질 수 있다. 머리 장착형 시스템은 또한 투명 또는 반투명 디스플레이를 가질 수 있다. 투명 또는 반투명 디스플레이는 이미지들을 표현하는 광이 그를 통해 사람의 눈들로 지향되는 기판을 통합할 수 있다. 디스플레이는 LED들, OLED들, 디지털 광 프로젝터, 레이저 스캐닝 광원, 실리콘 액정표시장치, 또는 이 기술들의 임의의 조합을 포함할 수 있다. 광이 통과해서 투과되는 기판은 도광체, 광학 조합기, 광학 반사기, 홀로그래픽 기판, 또는 이 기판들의 임의의 조합일 수 있다. 일 실시예에서, 투명 또는 반투명 디스플레이는 불투명 상태와 투명 또는 반투명 상태 사이에서 선택적으로 전환될 수 있다. 다른 예에서, 전자 시스템은 투사-기반 시스템일 수 있다. 투사-기반 시스템은 이미지들을 개인의 망막 상으로 투사하기 위해 망막 투사를 사용할 수 있다. 대안적으로, 투사 시스템은 또한 가상 객체들을 물리적 설정 안에(예를 들어, 물리적 표면 상에 또는 홀로그래프로서) 투사할 수 있다. SR 시스템들의 다른 예들은 헤드 업 디스플레이들, 그래픽들을 디스플레이하는 능력을 갖는 자동차 앞유리들, 그래픽들을 디스플레이하는 능력을 갖는 창들, 그래픽들을 디스플레이하는 능력을 갖는 렌즈들, 헤드폰들 또는 이어폰들, 스피커 배열들, 입력 메커니즘들(예를 들어, 햅틱 피드백을 갖거나 갖지 않는 제어기들), 태블릿들, 스마트폰들, 및 데스크톱 또는 랩톱 컴퓨터들을 포함한다.
SR 경험을 위한 이미지를 렌더링하는 것은 계산적으로 비용이 많이 들 수 있다. 따라서, 이러한 계산 부담을 감소시키기 위해, 인간들이 전형적으로 비교적 약한 주변 시력을 갖는다는 사실의 이점이 취해진다. 따라서, 이미지의 상이한 부분들은 상이한 해상도들로 디스플레이 패널 상에서 렌더링된다. 예를 들어, 다양한 구현예들에서, 사용자의 초점 필드에 대응하는 부분들은 사용자의 주변부에 대응하는 부분들보다 더 높은 해상도로 렌더링된다.
본 명세서에 개시된 다양한 구현예들은 뒤틀린 공간에서 이미지를 프로세싱하기 위한 디바이스들, 시스템들, 및 방법들을 포함한다. 방법은, 디스플레이 공간에 디스플레이될 시뮬레이션된 현실(SR) 콘텐츠를 표현하는 뒤틀린 이미지를 수신하는 단계를 포함하며, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖고, 여기서, 복수의 픽셀들은 복수의 개개의 픽셀 값들, 및 디스플레이 공간 내의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관된다. 방법은 프로세싱된 뒤틀린 이미지를 생성하기 위해 복수의 개개의 스케일링 인자들에 기초하여, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 단계, 및 프로세싱된 뒤틀린 이미지를 송신하는 단계를 포함한다.
본 명세서에 개시된 다양한 구현예들은 복수의 스케일링 인자들에 기초하여 이미지를 프로세싱하기 위한 디바이스들, 시스템들, 및 방법들을 포함한다. 일 구현예에서, 방법은 시뮬레이션된 현실(SR) 콘텐츠를 표현하는 뒤틀린 이미지를 수신하는 단계를 포함하며, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖고, 여기서, 복수의 픽셀들은 복수의 개개의 픽셀 값들, 및 SR 콘텐츠의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관된다. 방법은 프로세싱된 뒤틀린 이미지를 생성하기 위해 복수의 개개의 스케일링 인자들에 기초하여, 뒤틀린 이미지를 프로세싱하는 단계, 및 프로세싱된 뒤틀린 이미지를 송신하는 단계를 포함한다.
일부 구현예들에 따르면, 디바이스는 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 프로그램들을 포함하고; 하나 이상의 프로그램들은 비일시적 메모리에 저장되며 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 하나 이상의 프로그램들은 본 명세서에 설명된 방법들 중 임의의 방법을 수행하거나 그의 수행을 야기하기 위한 명령어들을 포함한다. 일부 구현예들에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 디바이스로 하여금, 본 명세서에 설명되는 방법들 중 임의의 방법을 수행하게 하거나 수행을 야기하는 명령어들을 내부에 저장한다. 일부 구현예들에 따르면, 디바이스는 하나 이상의 프로세서들, 비일시적 메모리, 및 본 명세서에 설명되는 방법들 중 임의의 방법을 수행하거나 수행을 야기하기 위한 수단을 포함한다.
본 개시내용이 당업자들에 의해 이해될 수 있도록, 더 상세한 설명이 일부 예시적인 구현예들의 양태들에 대한 참조에 의해 이루어질 수 있으며, 이들 중 일부는 첨부 도면들에 도시된다.
도 1은 일부 구현예들에 따른 예시적인 동작 환경의 블록도이다.
도 2는 일부 구현예들에 따른, SR 콘텐츠를 수신하고 SR 콘텐츠에 기초하여 디스플레이 패널 상에 이미지를 디스플레이하는 SR 파이프라인을 예시한다.
도 3a 내지 도 3d는 다양한 구현예들에 따른 제1 차원에서의 다양한 렌더링 해상도 함수들을 예시한다.
도 4a 내지 도 4d는 다양한 구현예들에 따른 다양한 2차원 렌더링 해상도 함수들을 예시한다.
도 5a는 일부 구현예들에 따른, 뒤틀린 공간(warped space) 내의 각도의 함수로서 디스플레이 공간 내의 해상도를 특성화하는 예시적인 렌더링 해상도 함수를 예시한다.
도 5b는 일부 구현예들에 따른, 도 5a의 예시적인 렌더링 해상도 함수의 적분을 예시한다.
도 5c는 일부 구현예들에 따른, 도 5a의 예시적인 렌더링 해상도 함수의 적분의 역의 탄젠트를 예시한다.
도 6a는 일부 구현예들에 따른, 정적 포비에이션(foveation)을 수행하기 위한 예시적인 렌더링 해상도 함수를 예시한다.
도 6b는 일부 구현예들에 따른, 동적 포비에이션을 수행하기 위한 예시적인 렌더링 해상도 함수를 예시한다.
도 7은 일부 구현예들에 따른, 렌더링 해상도 함수에 기반하여 이미지를 렌더링하는 방법의 흐름도 표현이다.
도 8a는 일부 구현예들에 따라 렌더링될 SR 콘텐츠의, 디스플레이 공간 내의 예시적인 이미지 표현을 예시한다.
도 8b는 일부 구현예들에 따른, 도 8a의 SR 콘텐츠의 뒤틀린 이미지를 예시한다.
도 9는 일부 구현예들에 따른, 복수의 포비에이션 모드들 중 하나로 이미지를 렌더링하는 방법의 흐름도 표현이다.
도 10a 내지 도 10c는 다양한 구현예들에 따른 다양한 제약된 렌더링 해상도 함수들을 예시한다.
도 11는 일부 구현예들에 따른, 제약된 렌더링 해상도 함수를 이용하여 이미지를 렌더링하는 방법의 흐름도 표현이다.
도 12는 일부 구현예들에 따른, 눈 추적 메타데이터에 기초하여 이미지를 렌더링하는 방법의 흐름도 표현이다.
도 13a 및 도 13b는 다양한 구현예들에 따른 다양한 신뢰도 기반 렌더링 해상도 함수들을 예시한다.
도 14는 일부 구현예들에 따른, SR 콘텐츠에 기초하여 이미지를 렌더링하는 방법의 흐름도 표현이다.
도 15는 일부 구현예들에 따른, 이미지를 송신하는 방법의 흐름도 표현이다.
도 16a 및 도 16b는 예시적인 이미지, 및 예시적인 이미지의 1-층 웨이블릿(wavelet) 변환에 의해 생성된 웨이블릿 이미지를 예시한다.
도 17은 일부 구현예들에 따른, 제약된 렌더링 해상도 함수를 이용하여 이미지를 수신하는 방법의 흐름도 표현이다.
도 18a 및 도 18b는 일부 구현예들에 따른 예시적인 왜곡되지 않은 이미지 및 왜곡된 이미지를 예시한다.
도 19a 및 도 19b는 일부 구현예들에 따른 예시적인 전치왜곡된 이미지 및 왜곡된 전치왜곡된 이미지(또는 왜곡되지 않은 이미지)를 예시한다.
도 20은 일부 구현예들에 따른, 이미지를 전치왜곡시키는 방법의 흐름도 표현이다.
도 21a 및 도 21b는 일부 구현예들에 따른, 복수의 해상도 구역들을 표시하는 패널 데이터의 표현들을 예시한다.
도 22는 일부 구현예들에 따른, 스케일링 인자들 및 해상도 구역들에 의해 정의되는 예시적인 해상도 함수들의 그래프를 예시한다.
도 23는 일부 구현예들에 따른, 스케일링 인자들 및 해상도 구역들에 의해 정의되는 예시적인 해상도 함수들의 다른 그래프를 예시한다.
도 24는 일부 구현예들에 따른, 패널 데이터를 생성하는 방법의 흐름도 표현이다.
도 25는 일부 구현예들에 따른, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 방법의 흐름도 표현이다.
도 26은 일부 구현예들에 따른, 복수의 스케일링 인자들에 기초하여, 뒤틀린 이미지를 프로세싱하는 방법의 흐름도 표현이다.
일반적인 실시에 따라, 도면에 예시된 다양한 특징부들은 축척대로 그려지지 않을 수 있다. 따라서, 다양한 특징부들의 치수들은 명료함을 위해 임의대로 확대 또는 축소될 수 있다. 부가적으로, 도면들 중 일부는 주어진 시스템, 방법 또는 디바이스의 컴포넌트들 모두를 도시하지는 않을 수 있다. 마지막으로, 동일한 도면 번호들은 명세서 및 도면들 전반에 걸쳐 동일한 특징부들을 나타내기 위해 사용될 수 있다.
도면들에 도시된 예시적인 구현예들의 완전한 이해를 제공하기 위해 다수의 세부사항들이 설명된다. 그러나, 도면들은 단지 본 개시내용의 일부 예시적인 양태들만을 도시할 뿐이며, 따라서 제한적인 것으로 고려되지 않는다. 당업자들은 다른 효과적인 양태들 및/또는 변형들이 본 명세서에 설명되는 특정 세부사항들 모두를 포함하지는 않음을 인식할 것이다. 또한, 잘 알려진 시스템들, 방법들, 컴포넌트들, 디바이스들 및 회로들은 본 명세서에 설명되는 예시적인 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 철저히 상세하게 설명되지 않았다.
위에서 언급된 바와 같이, 다양한 구현예들에서, 이미지의 상이한 부분들은 상이한 해상도들로 디스플레이 패널 상에서 렌더링된다. 다수의 인자들에 기초하여 이미지의 상이한 부분들에 대한 해상도를 결정하는 다양한 방법들이 아래에서 설명된다.
도 1은 일부 구현예들에 따른 예시적인 동작 환경(100)의 블록도이다. 관련 특징부들이 도시되어 있지만, 당업자는 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 구현예들의 더 많은 관련 양태들을 불명료하게 하지 않도록 하기 위해 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 동작 환경(100)은 제어기(110) 및 머리-장착형 디바이스(HMD)(120)를 포함한다.
일부 구현예들에서, 제어기(110)는 사용자에 대한 시뮬레이션된 현실(SR) 경험을 관리 및 조정하도록 구성된다. 일부 구현예들에서, 제어기(110)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 일부 구현예들에서, 제어기(110)는 장면(105)에 대해 로컬 또는 원격인 컴퓨팅 디바이스이다. 예를 들어, 제어기(110)는 장면(105) 내에 위치된 로컬 서버이다. 다른 예에서, 제어기(110)는 장면(105)의 외부에 위치된 원격 서버(예를 들어, 클라우드 서버, 중앙 서버 등)이다. 일부 구현예들에서, 제어기(110)는 하나 이상의 유선 또는 무선 통신 채널들(144)(예를 들어, 블루투스, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x 등)을 통해 HMD(120)와 통신가능하게 커플링된다. 다른 예에서, 제어기(110)는 HMD(120)의 인클로저 내에 포함된다.
일부 구현예들에서, HMD(120)는 SR 경험을 사용자에게 제시하도록 구성된다. 일부 구현예들에서, HMD(120)는 소프트웨어, 펌웨어, 또는 하드웨어의 적합한 조합을 포함한다. 일부 구현예들에서, 제어기(110)의 기능들은 HMD(120)에 의해 제공되고 그리고/또는 이와 조합된다.
일부 구현예들에 따르면, HMD(120)는 사용자가 장면(105) 내에 가상으로 그리고/또는 물리적으로 존재하는 동안 SR 경험을 사용자에게 제공한다. 일부 구현예들에서, AR 경험을 제시하는 동안, HMD(120)는 AR 콘텐츠(예를 들어, 하나 이상의 가상 객체들)를 제시하고 장면(105)의 광학 시스루(see-through)를 가능하게 하도록 구성된다. 일부 구현예들에서, AR 경험을 제시하는 동안, HMD(120)는 HMD(120)의 장면 카메라에 의해 캡처된 이미지들 또는 그의 부분들과 오버레이되거나 달리 조합된 AR 콘텐츠(예를 들어, 하나 이상의 가상 객체들)를 제시하도록 구성된다. 일부 구현예들에서, AV 콘텐츠를 제시하는 동안, HMD(120)는 컴퓨터-시뮬레이션된 환경의 사용자의 뷰와 조합되거나 그 위에 중첩된 실제 세계의 요소들 또는 그의 표현들을 제시하도록 구성된다. 일부 구현예들에서, VR 경험을 제시하는 동안, HMD(120)는 VR 콘텐츠를 제시하도록 구성된다.
일부 구현예들에서, 사용자는 HMD(120)를 자신의 머리 상에 착용한다. 이와 같이, HMD(120)는, 선택적으로 아이피스 또는 다른 광학 렌즈 시스템을 통해 SR 콘텐츠를 디스플레이하도록 제공되는 하나 이상의 SR 디스플레이들을 포함한다. 예를 들어, 다양한 구현예들에서, HMD(120)는 사용자의 시야를 둘러싼다. 일부 구현예들에서, HMD(120)는 SR 콘텐츠를 제시하도록 구성된 핸드헬드 디바이스(예컨대, 스마트폰 또는 태블릿)로 대체되며, 여기서 사용자는 HMD(120)를 착용하지 않지만 사용자의 시야를 향해 지향된 디스플레이 및 장면(105)을 향해 지향된 카메라를 갖는 디바이스를 보유한다. 일부 구현예들에서, 핸드헬드 디바이스는 사용자의 머리 상에 착용될 수 있는 인클로저 내에 배치될 수 있다. 일부 구현예들에서, HMD(120)는 SR 콘텐츠를 제시하도록 구성된 SR 챔버, 인클로저, 또는 룸으로 대체되며, 여기서 사용자는 HMD(120)를 착용하지 않거나 보유하지 않는다.
다양한 구현예들에서, HMD(120)는 SR 콘텐츠를 제시하는 SR 파이프라인을 포함한다. 도 2는 SR 콘텐츠를 수신하고 SR 콘텐츠에 기초하여 디스플레이 패널(240) 상에 이미지를 디스플레이하는 SR 파이프라인(200)을 예시한다.
SR 파이프라인(200)은 SR 콘텐츠(및 눈 추적기(260)로부터의 눈 추적 데이터)를 수신하고 SR 콘텐츠에 기초하여 이미지를 렌더링하는 렌더링 모듈(210)을 포함한다. 다양한 구현예들에서, SR 콘텐츠는 가상 객체들의 기하학적 형상들, 가상 객체들의 색상들 및/또는 텍스처들, 이미지들(예컨대, 장면의 시스루 이미지), 및 렌더링된 이미지에서 표현될 콘텐츠를 설명하는 다른 정보의 정의들을 포함한다.
이미지는 픽셀들의 매트릭스를 포함하며, 각각의 픽셀은 대응하는 픽셀 값 및 대응하는 픽셀 위치를 갖는다. 다양한 구현예들에서, 픽셀 값들은 0 내지 255의 범위이다. 다양한 구현예들에서, 각각의 픽셀 값은 3개의 색상 채널들에 대응하는 3개의 값들을 포함하는 색상 트리플렛(triplet)이다. 예를 들어, 일 구현예에서, 이미지는 RGB 이미지이고, 각각의 픽셀 값은 적색 값, 녹색 값, 및 청색 값을 포함한다. 다른 예로서, 일 구현예에서, 이미지는 YUV 이미지이고, 각각의 픽셀 값은 휘도 값 및 2개의 채도 값들을 포함한다. 다양한 구현예들에서, 이미지는, 각각의 채도 값이 하나의 픽셀과 연관되는 YUV444 이미지이다. 다양한 구현예들에서, 이미지는, 각각의 채도 값이 픽셀들의 2x2 블록과 연관되는 YUV420 이미지이다(예를 들어, 채도 값들은 다운샘플링된다). 일부 구현예들에서, 이미지는 타일들의 매트릭스를 포함하며, 각각의 타일은 대응하는 타일 위치를 갖고, 대응하는 픽셀 값들을 갖는 픽셀들의 블록을 포함한다. 일부 구현예들에서, 각각의 타일은 픽셀들의 32x32 블록이다. 특정 픽셀 값들, 이미지 포맷들, 및 타일 크기들이 제공되지만, 다른 값들, 포맷, 및 타일 크기들이 사용될 수 있다는 것을 인식해야 한다.
렌더링 모듈(210)에 의해 렌더링된 이미지(예를 들어, 렌더링된 이미지)는 렌더링 모듈(210)을 디스플레이 모듈(230)에 커플링시키는 이송 모듈(220)에 제공된다. 이송 모듈(220)은 렌더링된 이미지를 압축하는(압축된 이미지를 초래하는) 압축 모듈(222), 압축된 이미지를 반송하는 통신 채널(224), 및 압축된 이미지를 압축해제하는(압축해제 이미지를 초래하는) 압축해제 모듈(226)을 포함한다.
압축해제된 이미지는 압축해제된 이미지를 패널 데이터로 변환하는 디스플레이 모듈(230)에 제공된다. 패널 데이터는 패널 데이터에 의해(예를 들어, 그에 따라) 설명된 바와 같이, 디스플레이된 이미지를 디스플레이하는 디스플레이 패널(240)에 제공된다. 디스플레이 모듈(230)은 HMD의 아이피스(242)에 의해 야기된 왜곡을 보상하는 렌즈 보상 모듈(232)을 포함한다. 예를 들어, 다양한 구현예들에서, 렌즈 보상 모듈(232)은, 디스플레이된 이미지가, 사용자(250)에 의해 아이피스(242)를 통해 보여질 때 왜곡되지 않은 것으로 나타나도록 아이피스(242)에 의해 야기된 왜곡과 역의 관계로, 압축해제된 이미지를 전치왜곡시킨다. 디스플레이 모듈(230)은 또한 디스플레이 패널(240)에 의해 판독될 패널 데이터로 이미지 데이터를 변환하는 패널 보상 모듈(234)을 포함한다.
아이피스(242)는 사용자(250)에 의해 인지될 수 있는 해상도를 제한한다. 다양한 구현예들에서, 아이피스(242)가 지원할 수 있는 최대 해상도는 디스플레이 공간의 원점으로부터의 거리의 함수로서 변하는 아이피스 해상도 함수로서 표현된다. 다양한 구현예들에서, 아이피스(242)가 지원할 수 있는 최대 해상도는 사용자(250)의 광축과 사용자(250)가 아이피스(242)의 중심을 보고 있을 때의 광축 사이의 각도의 함수로서 변하는 아이피스 해상도 함수로서 표현된다. 다양한 구현예들에서, 아이피스(242)가 지원할 수 있는 최대 해상도는 사용자(250)의 광축과 사용자(250)가 디스플레이 패널(240)의 중심을 보고 있을 때의 광축 사이의 각도의 함수로서 변하는 아이피스 해상도 함수로서 표현된다.
디스플레이 패널(240)은 디스플레이 공간 내의 개개의 위치들에 위치된 M×N 픽셀들의 매트릭스를 포함한다. 디스플레이 패널(240)은 패널 데이터에 의해(예를 들어, 그에 따라) 설명된 바와 같이 픽셀들 각각으로부터 광을 방출함으로써, 디스플레이된 이미지를 디스플레이한다.
다양한 구현예들에서, SR 파이프라인(200)은 사용자(250)의 시선을 표시하는 눈 추적 데이터를 생성하는 눈 추적기(260)를 포함한다. 다양한 구현예들에서, 눈 추적 데이터는 디스플레이 패널(240) 상의 사용자(250)의 주시 지점을 표시하는 데이터를 포함한다. 다양한 구현예들에서, 눈 추적 데이터는 사용자(250)의 시선 각도, 예컨대 사용자(250)의 현재 광축과 사용자(250)가 디스플레이 패널(240)의 중심을 보고 있을 때의 광축 사이의 각도를 표시하는 데이터를 포함한다.
일 구현예에서, 디스플레이 패널(240) 상에서의 디스플레이를 위해 이미지를 렌더링하기 위하여, 렌더링 모듈(210)은 M×N 이미지의 각각의 픽셀에 대한 M×N 픽셀 값들을 생성한다. 따라서, 렌더링된 이미지의 각각의 픽셀은 디스플레이 공간 내의 대응하는 위치를 갖는 디스플레이 패널(240)의 픽셀에 대응한다. 따라서, 렌더링 모듈(210)은 디스플레이 공간에서 그리드 패턴으로 균일하게 이격된 M×N 픽셀 위치들에 대한 픽셀 값을 생성한다. 동등하게, 렌더링 모듈(210)은 T×T 픽셀들의 타일을 생성하며, 각각의 픽셀은 디스플레이 공간에서 그리드 패턴으로 균일하게 이격된 M/T×N/T 타일 위치들에서 대응하는 픽셀 값을 갖는다.
M×N 픽셀 값들을 렌더링하는 것은 계산적으로 비용이 많이 들 수 있다. 추가로, 렌더링된 이미지의 크기가 증가됨에 따라, 압축 모듈(222)에서 이미지를 압축하는 데 필요한 프로세싱의 양, 통신 채널(224)을 통해 압축 이미지를 이송하는 데 필요한 대역폭의 양, 및 압축 모듈(226)에서 압축된 이미지를 압축해제하는 데 필요한 프로세싱의 양이 증가된다.
다양한 구현예들에서, 사용자 경험을 저하시키지 않으면서 렌더링된 이미지의 크기를 감소시키기 위해, 포비에이션(예를 들어, 포비티드 이미징(foveated imaging))이 사용된다. 포비에이션은, 이미지 해상도 또는 세부사항의 양이 이미지에 걸쳐 변하는 디지털 이미지 프로세싱 기법이다. 따라서, 포비티드 이미지는 이미지의 상이한 부분들에서 상이한 해상도들을 갖는다. 인간들은 전형적으로 비교적 약한 주변 시력을 갖는다. 하나의 모델에 따르면, 사용자에 대한 분해가능한 해상도는 (예를 들어, 사용자가 응시하고 있는) 주시범위(field of fixation) 위에서 최대이며, 역 선형 방식으로 떨어진다. 따라서, 일 구현예에서, 디스플레이 패널(240)에 의해 디스플레이되는 디스플레이된 이미지는 초점 필드에서 최대 해상도, 및 초점 필드로부터의 거리에 비례하여 역 선형 방식으로 감소하는 해상도를 갖는 포비티드 이미지이다.
이미지의 일부 부분들이 더 낮은 해상도를 갖기 때문에, M×N 포비티드 이미지는 M×N 비포비티드(unfoveated) 이미지보다 적은 정보를 포함한다. 따라서, 다양한 구현예들에서, 렌더링 모듈(210)은 렌더링된 이미지로서 포비티드 이미지를 생성한다. 렌더링 모듈(210)은, 렌더링 모듈(210)이 M×N 비포비티드 이미지를 생성할 수 있는 것보다 더 신속하게 그리고 더 적은 프로세싱 전력(및 배터리 전력)으로 M×N 포비티드 이미지를 생성할 수 있다. 또한, M×N 포비티드 이미지는 M×N 비포비티드 이미지보다 더 적은 데이터로 표현될 수 있다. 다시 말하면, M×N 포비티드 이미지 파일은 M×N 비포비티드 이미지 파일보다 크기가 더 작다. 다양한 구현예들에서, 다양한 압축 기법들을 사용하여 M×N 포비티드 이미지를 압축하는 것은 M×N 비포비티드 이미지를 압축하는 것보다 더 적은 비트들을 초래한다.
포비에이션 비(R)는 M×N 비포비티드 이미지에서의 정보의 양을 M×N 포비티드 이미지에서의 정보의 양으로 나눈 것으로서 정의될 수 있다. 다양한 구현예들에서, 포비에이션 비는 1.5 내지 10이다. 예를 들어, 일부 구현예들에서, 포비에이션 비는 2이다. 일부 구현예들에서, 포비에이션 비는 3 또는 4이다. 일부 구현예들에서, 포비에이션 비는 이미지들 사이에서 일정하다. 일부 구현예들에서, 포비에이션 비는 렌더링되는 이미지에 기초하여 선택된다.
일부 구현예들에서, 디스플레이 패널(240) 상에서의 디스플레이를 위해 이미지를 렌더링하기 위하여, 렌더링 모듈(210)은 M/R×N/R 뒤틀린 이미지의 각각의 픽셀에 대한 M/R×N/R 픽셀 값들을 생성한다. 뒤틀린 이미지의 각각의 픽셀은 디스플레이 공간 내의 대응하는 위치에서 디스플레이 패널(240)의 픽셀보다 큰 영역에 대응한다. 따라서, 렌더링 모듈(210)은 그리드 패턴으로 균일하게 분포되지 않는 디스플레이 공간 내의 M/R×N/R 위치들 각각에 대한 픽셀 값을 생성한다. 유사하게, 일부 구현예들에서, 렌더링 모듈(210)은, 그리드 패턴으로 균일하게 분포되지 않는 디스플레이 공간 내의 M/(RT)×N/(RT) 위치들 각각에서 T×T 픽셀들의 타일을 생성하며, 각각의 픽셀은 대응하는 픽셀 값을 갖는다. 각각의 픽셀 값(또는 각각의 타일)에 대응하는 디스플레이 공간 내의 개개의 영역은 디스플레이 공간 내의 대응하는 위치(렌더링 위치) 및 스케일링 인자(또는 수평 스케일링 인자의 세트 및 수직 스케일링 인자의 세트)에 의해 정의된다.
다양한 구현예들에서, 렌더링 모듈(210)은 렌더링된 이미지로서 뒤틀린 이미지를 생성한다. 다양한 구현예들에서, 뒤틀린 이미지는 디스플레이 공간과는 상이한 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 M/R×N/R 위치들에 대한 M/R×N/R 픽셀 값들의 매트릭스를 포함한다. 특히, 뒤틀린 이미지는 그리드 패턴으로 균일하게 분포되지 않는 디스플레이 공간 내의 M/R×N/R 위치들에 대한 M/R×N/R 픽셀 값들의 매트릭스를 포함한다. 따라서, 뒤틀린 이미지의 해상도가 뒤틀린 공간에서는 균일한 반면, 해상도는 디스플레이 공간에서 달라진다. 이는 도 8a 및 도 8b에 관해 아래에서 더 상세히 설명된다.
렌더링 모듈(210)은 디스플레이된 공간 내의 렌더링된 이미지의 해상도를 일반적으로 특성화하는 렌더링 해상도 함수에 기초하여 렌더링 위치들 및 대응하는 스케일링 인자들을 결정한다.
일 구현예에서, 렌더링 해상도 함수(S(x))는 (디스플레이 패널(240)의 중심에 대응할 수 있는) 디스플레이 공간의 원점으로부터의 거리의 함수이다. 다른 구현예에서, 렌더링 해상도 함수(S(θ))는 사용자(250)의 광축과 사용자(250)가 디스플레이 패널(240)의 중심을 보고 있을 때의 광축 사이의 각도의 함수이다. 따라서, 일 구현예에서, 렌더링 해상도 함수(S(θ))는 PPD(pixels per degree)로 표현된다.
인간들은 전형적으로 비교적 약한 주변 시력을 갖는다. 하나의 모델에 따르면, 사용자에 대한 분해가능한 해상도는 (사용자가 응시하고 있는) 초점 필드 위에서 최대이며, 각도가 광축으로부터 증가됨에 따라 역 선형 방식으로 떨어진다. 따라서, 일 구현예에서, (제1 차원에서의) 렌더링 해상도 함수는 다음과 같이 정의되며:
Figure pat00001
,
S max 는 렌더링 해상도 함수의 최대치(예를 들어, 대략 60 PPD)이고, S min 은 렌더링 해상도 함수의 점근선(asymptote)이고, θ fof 는 초점 필드의 크기를 특성화하며, w는 렌더링 해상도 함수의 폭을 특성화한다.
도 3a는 초점 필드로부터 역 선형 방식으로 떨어지는 (제1 차원에서의) 렌더링 해상도 함수(310)를 예시한다. 도 3b는 초점 필드로부터 선형 방식으로 떨어지는 (제1 차원에서의) 렌더링 해상도 함수(320)를 예시한다. 도 3c는 대략 가우시안(Gaussian)인 (제1 차원에서의) 렌더링 해상도 함수(330)를 예시한다. 도 3d는 둥근 단계적 방식으로 떨어지는 (제1 차원에서의) 렌더링 해상도 함수(340)를 예시한다.
도 3a 내지 도 3d의 렌더링 해상도 함수들(310 내지 340) 각각은 피크 높이(예를 들어, 최대 값) 및 피크 폭을 포함하는 피크의 형태로 이루어진다. 피크 폭은 다수의 방식들로 정의될 수 있다. 일 구현예에서, 피크 폭은 (도 3a의 폭(311) 및 도 3b의 폭(321)에 의해 예시된 바와 같이) 초점 필드의 크기로서 정의된다. 일 구현예에서, 피크 폭은 (도 3c의 폭(331)에 의해 예시된 바와 같은) 반치전폭(full width at half maximum)으로서 정의된다. 일 구현예에서, 피크 폭은 (도 3d의 폭(341)에 의해 예시된 바와 같이) 원점에 가장 가까운 2개의 변곡점들 사이의 거리로서 정의된다.
도 3a 내지 도 3d가 단일 차원에서의 렌더링 해상도 함수들을 예시하지만, 렌더링 모듈(210)에 의해 사용되는 렌더링 해상도 함수가 2차원 함수일 수 있다는 것을 인식할 것이다. 도 4a는, 렌더링 해상도 함수(410)가 수평 차원(θ) 및 수직 차원(φ)에서 독립적인 2차원 렌더링 해상도 함수(410)를 예시한다. 도 4b는, 렌더링 해상도 함수(420)가 단일 변수(예를 들어,
Figure pat00002
)의 함수인 2차원 렌더링 해상도 함수(420)를 예시한다. 도 4c는, 렌더링 해상도 함수(430)가 수평 차원(θ) 및 수직 차원(φ)에서 상이한 2차원 렌더링 해상도 함수(430)를 예시한다. 도 4d는 인간 시력 모델에 기초한 2차원 렌더링 해상도 함수(440)를 예시한다.
아래에서 상세히 설명되는 바와 같이, 렌더링 모듈(210)은 인간 시력에 관한 생물학적 정보, 눈 추적 데이터, 눈 추적 메타데이터, SR 콘텐츠, 및 다양한 제약들(예컨대, HMD의 하드웨어에 의해 부과되는 제약들)을 포함하는 다수의 인자들에 기초하여 렌더링 해상도 함수를 생성한다.
도 5a는, 뒤틀린 공간에서의 각도의 함수로서 디스플레이 공간에서의 해상도를 특성화하는 예시적인 렌더링 해상도 함수(510)(S(θ)로 표기됨)를 예시한다. 렌더링 해상도 함수(510)은 포커스 필드 내의(-θ fof 와 +θ fof 사이의) 상수(S -max )이며, 이러한 윈도우 외부에서 역 선형 방식으로 떨어진다.
도 5b는 시야 내에서의, 예를 들어 -θ fov 내지 +θ fov 의 도 5a의 렌더링 해상도 함수(510)의 적분(520)(U(θ)로 표기됨)을 예시한다. 따라서,
Figure pat00003
Figure pat00004
이다. 적분(520)은 fov 에서의 0 내지 fov 에서의 최대 값(U max 로 표기됨)의 범위이다.
도 5c는 도 5a의 렌더링 해상도(510)의 적분(520)의 역의 탄젠트(530)(V(x R )로 표기됨)를 예시한다. 따라서,
Figure pat00005
이다. 탄젠트(530)는 x R 에서의 렌더링된 공간으로부터 x D 에서의 디스플레이 공간으로의 직접적인 맵핑을 예시한다. 렌더링 해상도 함수(510)에 의해 표시된 포비에이션에 따르면, (x R 축을 따라 동등하게 이격된) 뒤틀린 공간 내의 균일한 샘플링 지점들은 (x D 축을 따라 동등하지 않게 이격된) 디스플레이 공간 내의 불균일한 샘플링 지점들에 대응한다. 스케일링 인자들은 디스플레이 공간 내의 불균일한 샘플링 지점들 사이의 거리들에 의해 결정될 수 있다.
정적 포비에이션을 수행할 때, 렌더링 모듈(210)은 사용자 상의 시선에 의존하지 않는 렌더링 해상도 함수를 사용한다. 그러나, 동적 포비에이션을 수행할 때, 렌더링 모듈(210)은 사용자의 시선에 의존하는 렌더링 해상도 함수를 사용한다. 특히, 동적 포비에이션을 수행할 때, 렌더링 모듈(210)은 사용자가 보고 있는 디스플레이 공간 내의 위치(예를 들어, 눈 추적기(260)에 의해 결정되는 바와 같은 고정 지점)에 대응하는 위치에서 피크 높이를 갖는 렌더링 해상도 함수를 사용한다.
도 6a는 정적 포비에이션을 수행할 때 렌더링 모듈(210)에 의해 사용될 수 있는 렌더링 해상도 함수(610)을 예시한다. 렌더링 모듈(210)은 또한 동적 포비에이션을 수행하고 사용자가 디스플레이 패널(240)의 중심을 보고 있을 때 도 6a의 렌더링 해상도 함수(610)를 사용할 수 있다. 도 6b는 동적 포비에이션을 수행하고 사용자가 디스플레이 패널(240)의 중심으로부터 멀리 떨어진 각도(θ g )로 보고 있을 때 렌더링 모듈에 의해 사용될 수 있는 렌더링 해상도 함수(620)를 예시한다.
도 7은 일부 구현예들에 따른, 이미지를 렌더링하는 방법(700)의 흐름도 표현이다. 일부 구현예들에서(그리고 일 예로서 아래에서 상세히 설명되는 바와 같이), 방법(700)은 도 2의 렌더링 모듈(210)과 같은 렌더링 모듈에 의해 수행된다. 다양한 구현예들에서, 방법(700)은 도 1의 HMD(100)와 같은 HMD 또는 도 2의 SR 파이프라인(200)과 같은 그의 일부에 의해 수행된다. 다양한 구현예들에서, 방법(700)은 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 SR 디스플레이들을 갖는 디바이스에 의해 수행된다. 일부 구현예들에서, 방법(700)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(700)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다.
방법(700)은 블록(710)에서, 렌더링 모듈이 디스플레이 공간 내에 렌더링될 SR 콘텐츠를 획득하는 것으로 시작한다. 다양한 구현예들에서, SR 콘텐츠는 가상 객체들의 기하학적 형상들, 가상 객체들의 색상들 및/또는 텍스처들, 이미지들(예컨대, 장면의 시스루 이미지), 또는 렌더링된 이미지에서 표현될 콘텐츠를 설명하는 다른 정보의 정의들을 포함할 수 있다.
방법(700)은 블록(720)에서, 렌더링 모듈이 디스플레이 공간과 뒤틀린 공간 사이의 맵핑을 정의하는 렌더링 해상도 함수를 획득하는 것으로 계속된다. 다양한 렌더링 해상도 함수들이 도 3a 내지 도 3d 및 도 4a 내지 도 4d에 예시되어 있다. 렌더링 해상도 함수를 생성하는 다양한 방법들이 아래에서 추가로 설명된다.
다양한 구현예들에서, 렌더링 해상도 함수는 일반적으로 디스플레이 공간 내의 렌더링된 이미지의 해상도를 특성화한다. 따라서, 렌더링 해상도 함수의 적분은 (도 5a 내지 도 5c에 예시된 바와 같이) 디스플레이 공간과 뒤틀린 공간 사이의 맵핑을 제공한다. 일 구현예에서, 렌더링 해상도 함수(S(x))는 디스플레이 공간의 원점으로부터의 거리의 함수이다. 다른 구현예에서, 렌더링 해상도 함수(S(θ))는 사용자의 광축과 사용자가 디스플레이 패널의 중심을 보고 있을 때의 광축 사이의 각도의 함수이다. 따라서, 렌더링 해상도 함수는 (디스플레이 공간에서의) 각도의 함수로서 디스플레이 공간 내의 해상도를 특성화한다. 따라서, 일 구현예에서, 렌더링 해상도 함수(S(θ))는 PPD(pixels per degree)로 표현된다.
다양한 구현예들에서, 렌더링 모듈은 동적 포비에이션을 수행하고, 렌더링 해상도 함수는 사용자의 시선에 의존한다. 따라서, 일부 구현예들에서, 렌더링 해상도 함수를 획득하는 것은, 예를 들어, 도 2의 눈 추적기(260)로부터 사용자의 시선을 표시하는 눈 추적 데이터를 획득하는 것, 및 눈 추적 데이터에 기초하여 렌더링 해상도 함수를 생성하는 것을 포함한다. 다양한 구현예들에서, 눈 추적 데이터는 사용자의 시선 각도를 표시하는 데이터 또는 사용자의 주시 지점을 표시하는 데이터 중 적어도 하나를 포함한다. 특히, 다양한 구현예들에서, 눈 추적 데이터에 기초하여 렌더링 해상도 함수를 생성하는 것은, 눈 추적 데이터에 의해 표시된 바와 같이, 사용자가 보고 있는 위치에서 피크 높이를 갖는 렌더링 해상도 함수를 생성하는 것을 포함한다.
방법(700)은 블록(730)에서, 렌더링 모듈이 SR 콘텐츠 및 렌더링 해상도 함수에 기초하여, 렌더링된 이미지를 생성하는 것으로 계속된다. 렌더링된 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖는 뒤틀린 이미지를 포함한다. 복수의 픽셀들은 SR 콘텐츠에 기초하여 복수의 개개의 픽셀 값들과 각각 연관된다. 복수의 픽셀들은 렌더링 해상도 함수에 기초하여 디스플레이 공간 내의 영역을 정의하는 복수의 개개의 스케일링 인자들과 각각 연관된다.
디스플레이 공간 내에 있는 것으로 지칭되는 이미지는 디스플레이의 균일하게 이격된 구역들(픽셀들 또는 픽셀들의 그룹들)에 맵핑되는 균일하게 이격된 구역들(예를 들어, 픽셀들 또는 픽셀들의 그룹들)을 갖는다. 뒤틀린 공간 내에 있는 것으로 지칭되는 이미지는 디스플레이 공간 내의 불균일하게 이격된 구역들(예를 들어, 픽셀들 또는 픽셀들의 그룹들)에 맵핑되는 균일하게 이격된 구역들(예를 들어, 픽셀들 또는 픽셀들의 그룹들)을 갖는다. 뒤틀린 공간 내의 균일하게 이격된 구역들과 디스플레이 공간 내의 불균일하게 이격된 구역들 사이의 관계는 스케일링 인자들에 의해 적어도 부분적으로 정의된다. 따라서, (렌더링 해상도 함수와 같은) 복수의 개개의 스케일링 인자들은 뒤틀린 공간과 디스플레이 공간 사이의 맵핑을 정의한다.
다양한 구현예들에서, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 타일들을 포함하고, 복수의 타일들 각각은 개개의 하나 이상의 스케일링 인자들과 연관된다. 예를 들어, 일부 구현예들에서, 각각의 타일(복수의 픽셀들을 포함함)은 단일 수평 스케일링 인자 및 단일 수직 스케일링 인자와 연관된다. 일부 구현예들에서, 각각의 타일은 수평 및 수직 스케일링 둘 모두에 대해 사용되는 단일 스케일링 인자와 연관된다. 다양한 구현예들에서, 각각의 타일은 픽셀들의 32x32 매트릭스이다.
다양한 구현예들에서, 렌더링 모듈은 복수의 개개의 스케일링 인자들과 연관된 복수의 픽셀 값들을 포함하는 뒤틀린 이미지를 송신한다. 따라서, 이러한 정보를 사용하여 생성될 수 있는 포비티드 이미지보다는, 뒤틀린 이미지 및 스케일링 인자들이 파이프라인을 통해 전파된다.
특히, 도 2에 관해, 다양한 구현예들에서, 렌더링 모듈(210)은 렌더링 모듈(210)에 의해 송신되는 뒤틀린 이미지 및 복수의 개개의 스케일링 인자들을 생성한다. 파이프라인(200) 내의 다양한 스테이지들에서, 뒤틀린 이미지(또는 뒤틀린 이미지의 프로세싱된 버전) 및 복수의 개개의 스케일링 인자들은 아래에서 추가로 설명되는 바와 같이 이송 모듈(220)(및 그의 압축 모듈(222) 및 압축해제 모듈(226))에 의해 수신된다(그리고 뒤틀린 이미지를 프로세싱하는 데 사용된다). 파이프라인(200) 내의 다양한 스테이지들에서, 뒤틀린 이미지(또는 뒤틀린 이미지의 프로세싱된 버전) 및 복수의 개개의 스케일링 인자들은 아래에서 추가로 설명되는 바와 같이 디스플레이 모듈(230)(및 그의 렌즈 보상 모듈(232) 및 패널 보상 모듈(234))에 의해 수신된다(그리고 뒤틀린 이미지를 프로세싱하는 데 사용된다).
다양한 구현예들에서, 렌더링 모듈은 렌더링 해상도 함수에 기초하여 스케일링 인자들을 생성한다. 예를 들어, 일부 구현예들에서, 스케일링 인자들은 도 5a 내지 도 5c에 관해 위에서 설명된 바와 같이 렌더링 해상도 함수에 기초하여 생성된다. 다양한 구현예들에서, 스케일링 인자들을 생성하는 것은 렌더링 해상도 함수의 적분을 결정하는 것을 포함한다. 다양한 구현예들에서, 스케일링 인자들을 생성하는 것은 렌더링 해상도 함수의 적분의 역의 탄젠트를 결정하는 것을 포함한다. 다양한 구현예들에서, 스케일링 인자들을 생성하는 것은, 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들 각각에 대해, 렌더링 해상도 함수의 적분의 역의 탄젠트에 기초하여 개개의 스케일링 인자들을 결정하는 것을 포함한다. 따라서, 뒤틀린 공간에서 균일하게 이격된 복수의 위치들에 대해, 디스플레이 공간에서 불균일하게 이격된 복수의 위치들이 스케일링 인자들에 의해 표현된다.
도 8a는 디스플레이 공간에 렌더링될 SR 콘텐츠(810)의 이미지 표현을 예시한다. 도 8b는 도 7의 방법(700)에 따라 생성된 뒤틀린 이미지(820)를 예시한다. 렌더링 해상도 함수에 따라, 디스플레이 공간 내의 불균일하게 이격된 구역들(예를 들어, 상이한 양들의 영역)에 대응하는 SR 콘텐츠(810)의 상이한 부분들은 뒤틀린 이미지(820) 내의 균일하게 이격된 구역들(예를 들어, 동일한 양의 영역)으로 렌더링된다.
예를 들어, 도 8a의 SR 콘텐츠(810)의 이미지 표현의 중심의 영역은 K개의 픽셀들(및 K개의 픽셀 값들)을 포함하는 도 8b의 뒤틀린 이미지(820) 내의 영역에 의해 표현된다. 유사하게, 도 8a의 SR 콘텐츠(810)의 이미지 표현의 코너 상의 영역(도 8a의 중심의 영역보다 큰 영역)은 또한 K개의 픽셀들(및 K개의 픽셀 값들)을 포함하는 도 8b의 뒤틀린 이미지(820) 내의 영역에 의해 표현된다.
위에서 언급된 바와 같이, 렌더링 모듈(210)은 정적 포비에이션 또는 동적 포비에이션을 수행할 수 있다. 다양한 구현예들에서, 렌더링 모듈(210)은 SR 콘텐츠를 렌더링하기 위해 적용할 포비에이션 모드를 결정하고, 결정된 포비에이션 모드에 따라 정적 포비에이션 또는 동적 포비에이션을 수행한다. 정적 포비에이션 모드에서, SR 콘텐츠는 눈 추적 데이터와 독립적으로 렌더링된다. 비포비에이션 모드에서, 렌더링된 이미지는 디스플레이 구역들 당 고정된 해상도들(예를 들어, 타일 당 일정한 수의 픽셀들)에 의해 특징지어진다. 동적 포비에이션 모드에서, 렌더링된 이미지의 해상도는 사용자의 시선에 의존한다.
도 9는 일부 구현예들에 따른, 이미지를 렌더링하는 방법(900)의 흐름도 표현이다. 일부 구현예들에서(그리고 일 예로서 아래에서 상세히 설명되는 바와 같이), 방법(900)은 도 2의 렌더링 모듈(210)과 같은 렌더링 모듈에 의해 수행된다. 다양한 구현예들에서, 방법(900)은 도 1의 HMD(100)와 같은 HMD 또는 도 2의 SR 파이프라인(200)과 같은 그의 일부에 의해 수행된다. 다양한 구현예들에서, 방법(900)은 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 SR 디스플레이들을 갖는 디바이스에 의해 수행된다. 일부 구현예들에서, 방법(900)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(900)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다.
방법(900)은 블록(910)에서, 렌더링 모듈이 사용자의 시선(예를 들어, 사용자가 보고 있는 경우에는, 예컨대, 시선 방향 또는 사용자의 주시 지점)을 표시하는 눈 추적 데이터를 획득하는 것으로 시작한다. 다양한 구현예들에서, 눈 추적 데이터는 사용자의 시선 각도를 표시하는 데이터 또는 사용자의 주시 지점을 표시하는 데이터 중 적어도 하나를 포함한다.
방법(900)은 블록(920)에서, 렌더링 모듈이 렌더링될 SR 콘텐츠를 획득하는 것으로 계속된다. 다양한 구현예들에서, SR 콘텐츠는 가상 객체들의 기하학적 형상들, 가상 객체들의 색상들 및/또는 텍스처들, 이미지들(예컨대, 장면의 시스루 이미지), 또는 렌더링된 이미지에서 표현될 콘텐츠를 설명하는 다른 정보의 정의들을 포함할 수 있다.
방법(900)은 블록(930)에서, 렌더링 모듈이 SR 콘텐츠를 렌더링하기 위해 적용할 포비에이션 모드를 결정하는 것으로 계속된다. 다양한 구현예들에서, 렌더링 모듈은 다양한 인자들에 기초하여 포비에이션 모드를 결정한다. 일부 구현예들에서, 렌더링 모듈은 렌더링 프로세서 특성에 기초하여 포비에이션 모드를 결정한다. 예를 들어, 일부 구현예들에서, 렌더링 모듈은 렌더링 모듈의 렌더링 프로세서의 이용가능한 프로세싱 전력, 프로세싱 속도, 또는 프로세서 유형에 기초하여 포비에이션 모드를 결정한다. 렌더링 모듈이 (큰 프로세싱 용량 또는 프로세싱 용량의 낮은 사용량으로 인해) 큰 이용가능한 프로세싱 전력을 가질 때, 렌더링 모듈은 동적 포비에이션 모드를 선택하고, 렌더링 모듈이 (작은 프로세싱 용량 또는 프로세싱 용량의 높은 사용량으로 인해) 작은 이용가능한 프로세싱 전력을 가질 때, 렌더링 모듈은 정적 포비에이션 모드 또는 비포비에이션 모드를 선택한다. 도 1을 참조하면, 렌더링이 제어기(110)에 의해 수행될 때(예를 들어, 렌더링 프로세서가 제어기에 있음), 렌더링 모듈은 동적 포비에이션 모드를 선택하고, 렌더링이 HMD(120)에 의해 수행될 때(예를 들어, 렌더링 프로세서가 HMD에 있음), 렌더링 모듈은 정적 포비에이션 모드 또는 비포비에이션 모드를 선택한다. 다양한 구현예들에서, 정적 및 동적 포비에이션 모드들 사이에서의 스위칭은 제어기(110)의 프로세싱 전력에 대한 HMD(120)의 프로세싱 전력과 같은 HMD(120)의 특성에 기초하여 발생한다.
일부 구현예들에서, 렌더링 모듈은 눈 추적 성능(예를 들어, 신뢰도)이 충분히 저하될 때 정적 포비에이션 또는 비포비에이션 모드를 선택한다. 예를 들어, 일부 구현예들에서, 눈 추적이 손실될 때, 정적 포비에이션 모드 또는 비포비에이션 모드가 선택된다. 다른 예로서, 일부 구현예들에서, 눈 추적 성능이 임계치를 위반할 때, 예컨대 눈 추적 정확도가 (예를 들어, 눈 추적 데이터에서의 큰 갭들로 인해) 너무 많이 낮게 떨어지고 그리고/또는 눈 추적에 관련된 레이턴시가 값을 초과할 때, 정적 포비에이션 모드 또는 비포비에이션 모드가 선택된다. 일부 구현예들에서, 렌더링 모듈은 HMD(120)의 중심으로 초점을 시프트시키며, 동적 포비레이션 동안 눈 추적 성능의 감소가 의심될 때(예를 들어, 낮은 예측 신뢰도에 의해 표시된 바와 같이, 타임아웃 이후), 정적 포비에이션을 사용하여, 주시범위(FoF)를 점진적으로 증가시킨다.
다양한 구현예들에서, 렌더링 모듈은 다른 고려사항들을 고려하기 위해 정적 포비에이션 모드 또는 비포비에이션 모드를 선택한다. 예를 들어, 일부 구현예들에서, 렌더링 모듈은, 우수한 눈 추적 센서 성능이 바람직한 정적 포비에이션 모드 또는 비포비에이션 모드를 선택한다. 다른 예로서, 일부 구현예들에서, 렌더링 모듈은, HMD(120)를 착용한 사용자가 눈 추적을 방지하거나 그것을 충분히 비효과적이게 만드는 의학적 질환(medical condition)을 가질 때 정적 포비에이션 모드 또는 비포비에이션 모드를 선택한다.
다양한 구현예들에서, 정적 포비에이션 모드 또는 비포비에이션 모드가 선택되는데, 그 이유는, 그것이 렌더링 이미징 시스템의 다양한 양태들의 더 양호한 성능을 제공하기 때문이다. 예를 들어, 일부 구현예들에서, 정적 포비에이션 모드 또는 비포비에이션 모드는 더 양호한 속도 제어를 제공한다. 다른 예로서, 일부 구현예들에서, 정적 포비에이션 모드 또는 비포비에이션 모드는 혼합된 포비티드 및 비-포비티드 영역들의 더 양호한 은폐를 (예를 들어, 그 구역들의 경계를 정하는 페인터(fainter)를 만듦으로써) 제공한다. 다른 예로서, 일부 구현예들에서, 정적 포비에이션 모드 또는 비포비에이션 모드는, 예를 들어, 유사한 전력 및/또는 대역폭을 유지하기 위해 정적의 그룹화된 보상 데이터를 사용함으로써, 더 양호한 디스플레이 패널 소비 대역폭을 제공한다. 또 다른 예로서, 일부 구현예들에서, 정적 포비에이션 모드 또는 비포비에이션 모드는 플리커 및/또는 아티팩트들(예를 들어, 그룹화된 롤링 방출 전단 아티팩트)과 같은 바람직하지 않은 시각적 양태들을 렌더링하는 위험을 완화시킨다.
방법(900)은 판단 블록(935)에서 계속된다. 포비에이션 모드가 동적 포비에이션 모드라는 결정에 따라, 방법(900)은 블록(940)에서 계속되며, 여기서 렌더링 모듈은 (예를 들어, 도 7에 관해 위에서 설명된 바와 같이) 눈 추적 데이터에 기초하여 동적 포비에이션에 따라 SR 콘텐츠를 렌더링한다. 포비에이션 모드가 정적 포비에이션 모드라는 결정에 따라, 방법(900)은 블록(942)에서 계속되며, 여기서 렌더링 모듈은 (예를 들어, 도 7에 관해 위에서 설명된 바와 같이) 눈 추적 데이터와는 독립적으로 정적 포비에이션에 따라 SR 콘텐츠를 렌더링한다. 포비에이션 모드가 비포비에이션 모드라는 결정에 따라, 방법(900)은 블록(944)에서 계속되며, 여기서 렌더링 모듈은 포비에이션 없이 SR 콘텐츠를 렌더링한다.
다양한 구현예들에서, 방법(900)은 부가적인 SR 콘텐츠가 수신되는 블록(920)으로 복귀한다. 다양한 구현예들에서, 렌더링 모듈은 변화하는 상황들에 의존하여 상이한 포비에이션 모드들에 따라 상이한 SR 콘텐츠를 렌더링한다. 특정 순서로 도시되지만, 방법(900)의 블록들이 상이한 순서들로 또는 동시에 수행될 수 있다는 것을 인식해야 한다. 예를 들어, 눈 추적 데이터는 방법(900)의 수행 전반에 걸쳐 (예를 들어, 블록(910)에서와 같이) 획득될 수 있고, 그 데이터에 의존하는 그 블록들은 이전에 획득된(예를 들어, 가장 최근에 획득된) 눈 추적 데이터 또는 그의 변형들(예를 들어, 윈도우 평균 등) 중 임의의 것을 사용할 수 있다.
도 10a는 각도의 함수로서 변하는 아이피스 해상도 함수(1020)(E(θ))를 예시한다. 아이피스 해상도 함수(1020)는 아이피스(242)의 중심에서 최대를 가지며, 에지들을 향해 떨어진다. 다양한 구현예들에서, 아이피스 해상도 함수(1020)는 원, 타원, 포물선, 또는 쌍곡선의 일부를 포함한다.
도 10a는 또한, 시선 각도(θ g )에 중심설정된 피크를 갖는 제약되지 않은 렌더링 해상도 함수(1010)(S u (θ))를 예시한다. 피크 주위에서, 제약되지 않은 렌더링 해상도 함수(1010)는 아이피스 해상도 함수(1020)보다 더 크다. 따라서, 렌더링 모듈(210)이 제약되지 않은 렌더링 해상도 함수(1010)에 의해 표시된 해상도를 갖는 이미지를 렌더링했다면, 이들 각도들에서의 세부사항들은 아이피스(242)에 의해 스트리핑(strip)될 것이다. 따라서, 이들 세부사항들을 렌더링할 시에 계산 비용 및 지연을 피하기 위해, 다양한 구현예들에서, 렌더링 모듈(210)은, 아이피스 해상도 함수(1010)와 제약되지 않은 렌더링 해상도 함수 중 더 적은 것과 동일한, 캡핑(cap)된 렌더링 해상도 함수(1030)(볼드체로 표기됨)(S c (θ))를 생성한다. 따라서, 다음과 같다:
Figure pat00006
.
다양한 구현예들에서, 렌더링된 이미지를 렌더링하는 렌더링 모듈(210)과 연관된 계산 비용 및 지연의 양은 사용자(250)의 시선 각도와 무관하게 비교적 일정하게 유지된다(예를 들어, 정규화된다). 따라서, 다양한 구현예들에서, 렌더링 모듈(210)은 렌더링된 이미지에서 세부사항의 총량을 표시하는 고정된 합산 값을 갖는 렌더링 해상도 함수를 사용하여, 렌더링된 이미지를 렌더링한다. 다양한 구현예들에서, 합산 값은 일반적으로 시야에 걸친 렌더링 해상도 함수의 적분과 동일하다. 다시 말하면, 합산 값은 시야에 걸친 렌더링 해상도 함수 아래의 영역에 대응한다. 다양한 구현예들에서, 합산 값은 렌더링된 이미지 내의 픽셀들, 타일들, 및/또는 (x, y) 위치들의 수에 대응한다.
캡핑된 렌더링 해상도 함수(1030)의 합산 값은 제약되지 않은 렌더링 해상도 함수(1010)의 합산 값보다 작다. 예를 들어, 고정된 합산 값과 동일한 더 큰 합산 값을 갖는 렌더링 해상도 함수를 생성하기 위해, 렌더링 모듈은, 제약되지 않은 렌더링 해상도 함수(1010)와 비교하여 감소되지 않았던 캡핑된 렌더링 해상도 함수(1030)의 값들을 증가시킨다. 예를 들어, 도 10b는, 렌더링 해상도 함수의 떨어진 부분들이 캡핑된 렌더링 해상도 함수(1030)의 떨어진 부분들과 비교하여 증가되는 제1 제약된 렌더링 해상도 함수(1032)를 예시한다. 다른 예로서, 도 10c는, 렌더링 해상도 함수의 피크 폭이 캡핑된 렌더링 해상도 함수(1030)의 피크 폭과 비교하여 증가되는 제2 제약된 렌더링 해상도 함수(1034)를 예시한다.
도 11은 일부 구현예들에 따른, 이미지를 렌더링하는 방법(1100)의 흐름도 표현이다. 일부 구현예들에서(그리고 일 예로서 아래에서 상세히 설명되는 바와 같이), 방법(1100)은 도 2의 렌더링 모듈(210)과 같은 렌더링 모듈에 의해 수행된다. 다양한 구현예들에서, 방법(1100)은 도 1의 HMD(100)와 같은 HMD 또는 도 2의 SR 파이프라인(200)과 같은 그의 일부에 의해 수행된다. 다양한 구현예들에서, 방법(1100)은 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 SR 디스플레이들을 갖는 디바이스에 의해 수행된다. 일부 구현예들에서, 방법(1100)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(1100)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다.
방법(1100)은 블록(1110)에서, 렌더링 모듈이 사용자의 시선(예를 들어, 사용자가 보고 있는 경우에는, 예컨대, 시선 방향 및/또는 사용자의 주시 지점)을 표시하는 눈 추적 데이터를 획득하는 것으로 시작한다. 다양한 구현예들에서, 렌더링 모듈은 적어도 사용자의 시선에서의 아이피스의 성능 특성들을 표시하는 데이터를 수신한다. 다양한 구현예들에서, 사용자의 시선에서의 아이피스의 성능 특성들은 눈 추적 데이터로부터 결정될 수 있다.
방법(1110)은 블록(1120)에서, 렌더링 모듈이 눈 추적 데이터에 기초하여 렌더링 해상도 함수를 생성하며, 렌더링 해상도 함수가 눈 추적 데이터에 의존하는 최대 값 및 눈 추적 데이터와는 독립적인 합산 값을 갖는 것으로 계속된다.
다양한 구현예들에서, 렌더링 해상도 함수를 생성하는 것은, 눈 추적 데이터에 기초하여 제약되지 않은 렌더링 해상도 함수(예컨대, 도 10a의 제약되지 않은 렌더링 해상도 함수(1010))를 생성하는 것; 눈 추적 데이터(및 선택적으로는 도 10a의 아이피스 해상도 함수(1020)와 같은 아이피스 해상도 함수)에 기초하여 (제약된 이후의 렌더링 해상도 함수의) 최대 값을 결정하는 것; (도 10a의 캡핑된 렌더링 해상도 함수(1030)와 같은) 캡핑된 렌더링 해상도 함수를 생성하기 위해, 최대 값을 초과하는 제약되지 않은 렌더링 해상도 함수의 값들을 최대 값으로 감소시키는 것; 및 렌더링 해상도 함수를 생성하기 위해, 캡핑된 렌더링 해상도 함수의 비-감소된 값들을 증가시키는 것을 포함한다. 다양한 구현예들에서, 캡핑된 렌더링 해상도 함수의 비-감소된 값들을 증가시키는 것은 캡핑된 렌더링 해상도 함수의 떨어진 부분들을 증가시키는 것을 포함한다. 일부 구현예들에서, 렌더링 해상도 함수의 주변 부분들은 역 선형 방식으로(예를 들어, 쌍곡선으로) 떨어진다. 다양한 구현예들에서, 캡핑된 렌더링 해상도 함수의 비-감소된 값들을 증가시키는 것은, 초점 필드의 크기를 증가시키는 것과 같이, 캡핑된 렌더링 해상도 함수의 피크 폭을 증가시키는 것을 포함한다.
다양한 구현예들에서, 최대 값은 사용자의 시선과 렌즈 성능 특성들 사이의 맵핑에 기초한다. 일부 구현예들에서, 렌즈 성능 특성들은 아이피스 해상도 함수 또는 변조 전달 함수(MTF)에 의해 표현된다. 일부 구현예들에서, 렌즈 성능 특성들은 표면 렌즈 모델링에 의해 결정된다.
다양한 구현예들에서, 최대 값은 시선 방향의 함수로서 결정된다(이는, 아이피스 해상도 함수가 시선 방향의 함수로서 변하기 때문이다). 다양한 구현예들에서, 최대 값은 시선 모션(예를 들어, 시선 위치를 변화시킴)과 같은 사용자의 시선의 변화들에 기초한다. 예를 들어, 일부 구현예들에서, 렌더링 해상도 함수의 최대 값은 사용자가 주위를 보고 있을 때 감소된다(이는, 해상도 지각이 눈 모션 동안 감소하기 때문이다). 다른 예로서, 일부 구현예들에서, 사용자가 깜박일 때, 렌더링 해상도 함수의 최대 값이 감소된다(이는, 사용자가 깜박일 때 해상도 지각[및 눈 추적 신뢰도]이 감소하기 때문이다).
다양한 구현예들에서, 최대 값은 렌즈 성능 특성들에 의해 영향을 받는다. 예를 들어, 일부 구현예들에서, 최대 값은 렌즈 성능 특성들이 렌즈가 더 높은 해상도를 지원할 수 없다는 것을 표시할 때 감소된다. 일부 구현예들에서, 렌즈 성능 특성들은 렌즈에 의해 도입된 왜곡을 포함한다.
방법(1100)은 블록(1130)에서, 렌더링 모듈이 (예를 들어, 도 7에 관해 위에서 설명된 바와 같이) SR 콘텐츠 및 렌더링 해상도 함수에 기초하여, 렌더링된 이미지를 생성하는 것으로 계속된다. 다양한 구현예들에서, 렌더링된 이미지는 사용자의 주시범위(FoF) 외부에서 더 낮은 해상도를 갖는 이미지와 같은 포비티드 이미지이다. 다양한 구현예들에서, 렌더링된 이미지는 SR 콘텐츠와 비교하여 불균일한 공간으로 변환된 이미지와 같은 뒤틀린 이미지이다.
도 12는 일부 구현예들에 따른, 이미지를 렌더링하는 방법(1200)의 흐름도 표현이다. 일부 구현예들에서(그리고 일 예로서 아래에서 상세히 설명되는 바와 같이), 방법(1200)은 도 2의 렌더링 모듈(210)과 같은 렌더링 모듈에 의해 수행된다. 다양한 구현예들에서, 방법(1200)은 도 1의 HMD(100)와 같은 HMD 또는 도 2의 SR 파이프라인(200)과 같은 그의 일부에 의해 수행된다. 다양한 구현예들에서, 방법(1200)은 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 SR 디스플레이들을 갖는 디바이스에 의해 수행된다. 일부 구현예들에서, 방법(1200)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(1200)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다.
방법(1200)은 블록(1210)에서, 렌더링 모듈이 사용자의 시선(예를 들어, 사용자가 보고 있는 경우에는, 예컨대, 시선 방향 또는 사용자의 주시 지점)을 표시하는 눈 추적 데이터를 획득하는 것으로 시작한다. 다양한 구현예들에서, 눈 추적 데이터는 사용자의 시선 각도를 표시하는 데이터 또는 사용자의 주시 지점을 표시하는 데이터 중 적어도 하나를 포함한다.
방법(1200)은 블록(1220)에서, 렌더링 모듈이 눈 추적 데이터의 특성을 표시하는 눈 추적 메타데이터를 획득하는 것으로 계속된다. 다양한 구현예들에서, 눈 추적 메타데이터는 대응하는 눈 추적 데이터와 연관되어 획득된다. 다양한 구현예들에서, 눈 추적 데이터 및 연관된 눈 추적 메타데이터는 도 2의 눈 추적기(260)와 같은 눈 추적기로부터 수신된다.
다양한 구현예들에서, 눈 추적 메타데이터는 눈 추적 데이터의 신뢰도를 표시하는 데이터를 포함한다. 예를 들어, 다양한 구현예들에서, 눈 추적 메타데이터는 눈 추적 데이터가 사용자의 시선을 정확하게 표시하는 믿음의 측정을 제공한다.
다양한 구현예들에서, 눈 추적 데이터의 신뢰도를 표시하는 데이터는 눈 추적 데이터의 정확도를 표시하는 데이터를 포함한다. 다양한 구현예들에서, 렌더링 모듈은 사용자의 눈의 일련의 최근에 캡처된 이미지들, 사용자의 시선의 최근 측정들, 사용자 생체측정들, 및/또는 다른 획득된 데이터에 기초하여 눈 추적 데이터의 정확도를 표시하는 데이터를 생성한다.
다양한 구현예들에서, 눈 추적 데이터의 신뢰도를 표시하는 데이터는 눈 추적 데이터의 레이턴시(예를 들어, 눈 추적 데이터가 생성되는 시간과 눈 추적 데이터가 렌더링 모듈에 의해 수신되는 시간 사이의 차이)를 표시하는 데이터를 포함한다. 다양한 구현예들에서, 렌더링 모듈은 눈 추적 데이터의 타임스탬프들에 기초하여 눈 추적 데이터의 레이턴시를 표시하는 데이터를 생성한다. 다양한 구현예들에서, 눈 추적 데이터의 신뢰도는, 레이턴시가 많을 때보다 레이턴시가 적을 때 더 높다.
다양한 구현예들에서, 눈 추적 데이터는 사용자의 시선의 예측을 표시하는 데이터를 포함하고, 눈 추적 데이터의 신뢰도를 표시하는 데이터는 예측의 신뢰도를 표시하는 데이터를 포함한다. 다양한 구현예들에서, 사용자의 시선의 예측을 표시하는 데이터는 과거에 캡처된 이미지들에 기초한 사용자의 시선의 과거의 측정들에 기초한다. 다양한 구현예들에서, 사용자의 시선의 예측은, 사용자의 시선의 과거의 모션을 연속적인 주시, 매끄러운 추격, 또는 단속성 운동(saccade)으로서 분류하는 것에 기초한다. 다양한 구현예들에서, 예측의 신뢰도는 이러한 분류에 기초한다. 특히, 다양한 구현예들에서, 예측의 신뢰도는, 과거의 모션이 단속성 운동으로 분류될 때보다 과거의 모션이 연속적인 주시 또는 매끄러운 추격으로서 분류될 때 더 높다.
다양한 구현예들에서, 눈 추적 메타데이터는 사용자의 하나 이상의 생체측정들, 및 특히, 눈 추적 메타데이터 또는 그의 신뢰도에 영향을 주는 생체측정들을 표시하는 데이터를 포함한다. 특히, 다양한 구현예들에서, 사용자의 생체측정들은 눈 해부학적 구조, 인종/물리학적 식술(physionomegy), 눈 색상, 연령, 시각적 보조기구들(예를 들어, 교정 렌즈들), 메이크업(예를 들어, 아이라이너 또는 마스카라), 의학적 질환, 이력 시선 변동, 입력 선호도들 또는 교정, 헤드셋 위치/배향, 동공 확장/중심-시프트, 및/또는 눈꺼풀 위치 중 하나 이상을 포함한다.
다양한 구현예들에서, 눈 추적 메타데이터는 눈 추적 데이터가 생성되었던 사용자의 환경의 하나 이상의 환경 조건들을 표시하는 데이터를 포함한다. 특히, 다양한 구현예들에서, 환경 조건들은 진동, 주변 온도, IR 방향 광, 또는 IR 광 세기 중 하나 이상을 포함한다.
방법(1200)은 블록(1230)에서, 렌더링 모듈이 눈 추적 데이터 및 눈 추적 메타데이터에 기초하여 렌더링 해상도 함수를 생성하는 것으로 계속된다. 다양한 구현예들에서, 렌더링 모듈은 눈 추적 데이터에 기초하여 피크 최대치를 갖는 렌더링 해상도 함수를 생성한다(예를 들어, 해상도는 사용자가 보고 있는 경우에 가장 높다). 다양한 구현예들에서, 렌더링 모듈은 눈 추적 메타데이터에 기초하여 피크 폭을 갖는(예를 들어, 눈 추적 메타데이터가 눈 추적 데이터의 정확성에 있어서 더 적은 신뢰도를 표시할 때 더 넓은 피크를 갖는) 렌더링 해상도 함수를 생성한다.
방법(1200)은 블록(1240)에서, 렌더링 모듈이 (예를 들어, 도 7에 관해 위에서 설명된 바와 같이) SR 콘텐츠 및 렌더링 해상도 함수에 기초하여, 렌더링된 이미지를 생성하는 것으로 계속된다. 다양한 구현예들에서, 렌더링된 이미지는 사용자의 주시범위(FoF) 외부에서 더 낮은 해상도를 갖는 이미지와 같은 포비티드 이미지이다. 다양한 구현예들에서, 렌더링된 이미지는 SR 콘텐츠와 비교하여 불균일한 공간으로 변환된 이미지와 같은 뒤틀린 이미지이다.
도 13a는, 동적 포비에이션을 수행할 때, 사용자가 디스플레이 패널의 중심으로부터 멀리 떨어진 각도(θ g )로 보고 있다는 것을 눈 추적 데이터가 표시할 때, 및 눈 추적 메타데이터가 제1 피크 폭(1311)을 초래하는 제1 신뢰도를 표시할 때, 렌더링 모듈에 의해 사용될 수 있는 렌더링 해상도 함수(1310)를 예시한다. 도 13b는, 동적 포비에이션을 수행할 때, 사용자가 디스플레이 패널의 중심으로부터 멀리 떨어진 각도(θ g )로 보고 있다는 것을 눈 추적 데이터가 표시할 때, 및 눈 추적 메타데이터가 제1 피크 폭(1311)보다 큰 제2 피크 폭(1321)을 초래하는, 제1 신뢰도보다 작은 제2 신뢰도를 표시할 때, 렌더링 모듈에 의해 사용될 수 있는 렌더링 해상도 함수(1320)를 예시한다.
다양한 구현예들에서, 렌더링 모듈은 눈 추적 메타데이터 및 눈 추적 데이터를 포함하는 눈 추적 스트림의 손실을 검출한다. 이에 응답하여, 렌더링 모듈은 눈 추적 스트림의 손실을 검출하는 것에 기초하여 제2 렌더링 해상도 함수를 생성하고, SR 콘텐츠 및 제2 렌더링 해상도 함수에 기초하여 제2 렌더링된 이미지를 생성한다.
다양한 구현예들에서, 눈 추적 스트림의 손실을 검출하는 것은 사용자의 시선이 눈 추적 스트림의 손실 시에 정적이었다고 결정하는 것을 포함한다. 따라서, 다양한 구현예들에서, 제2 렌더링 해상도 함수를 생성하는 것은, 렌더링 해상도 함수의 피크 최대치와 동일한 위치에서 피크 최대치를 갖고 렌더링 해상도 함수의 피크 폭보다 더 큰 피크 폭을 갖는 제2 렌더링 해상도 함수를 생성하는 것을 포함한다. 따라서, 다양한 구현예들에서, 눈 추적 스트림의 손실을 검출하는 것에 응답하여, 렌더링 해상도 함수는 동일한 위치에 머물러 있지만, 주시범위의 크기는 증가한다.
다양한 구현예들에서, 눈 추적 스트림의 손실을 검출하는 것은 사용자의 시선이 눈 추적 스트림의 손실 시에 이동중이었다고 결정하는 것을 포함한다. 따라서, 다양한 구현예들에서, 제2 렌더링 해상도 함수를 생성하는 것은, 렌더링 해상도 함수의 피크 최대치와 비교하여, 중심을 향해 변위된 위치에서 피크 최대치를 갖고 렌더링 해상도 함수의 피크 폭보다 더 큰 피크 폭을 갖는 제2 렌더링 해상도 함수를 생성하는 것을 포함한다. 따라서, 다양한 구현예들에서, 눈 추적 스트림의 손실을 검출하는 것에 응답하여, 렌더링 해상도 함수는 디스플레이 패널의 중심으로 이동되고, 주시범위의 크기는 증가한다.
다양한 구현예들에서, 눈 추적 스트림의 손실을 검출하는 것은 사용자의 시선이 눈 추적 스트림의 손실 시에 일 방향으로 이동중이었다고 결정하는 것을 포함한다. 따라서, 다양한 구현예들에서, 제2 렌더링 해상도 함수를 생성하는 것은, 렌더링 해상도 함수의 피크 최대치와 비교하여, 방향으로 변위된 위치에서 피크 최대치를 갖고 렌더링 해상도 함수의 피크 폭보다 더 큰 피크 폭을 갖는 제2 렌더링 해상도 함수를 생성하는 것을 포함한다. 따라서, 다양한 구현예들에서, 눈 추적 스트림의 손실을 검출한 것에 응답하여, 렌더링 해상도 함수는 예측된 위치로 이동되고, 주시범위의 크기는 증가한다.
도 14는 일부 구현예들에 따른, 이미지를 렌더링하는 방법(1400)의 흐름도 표현이다. 일부 구현예들에서(그리고 일 예로서 아래에서 상세히 설명되는 바와 같이), 방법(1400)은 도 2의 렌더링 모듈(210)과 같은 렌더링 모듈에 의해 수행된다. 다양한 구현예들에서, 방법(1400)은 도 1의 HMD(100)와 같은 HMD 또는 도 2의 SR 파이프라인(200)과 같은 그의 일부에 의해 수행된다. 다양한 구현예들에서, 방법(1400)은 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 SR 디스플레이들을 갖는 디바이스에 의해 수행된다. 일부 구현예들에서, 방법(1400)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(1400)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다.
방법(1400)은 블록(1410)에서, 렌더링 모듈이 사용자의 시선(예를 들어, 사용자가 보고 있는 경우에는, 예컨대, 시선 방향 또는 사용자의 주시 지점)을 표시하는 눈 추적 데이터를 획득하는 것으로 시작한다. 다양한 구현예들에서, 눈 추적 데이터는 사용자의 시선 각도를 표시하는 데이터 또는 사용자의 주시 지점을 표시하는 데이터 중 적어도 하나를 포함한다.
방법(1400)은 블록(1420)에서, 렌더링 모듈이 렌더링될 SR 콘텐츠를 획득하는 것으로 계속된다. 다양한 구현예들에서, SR 콘텐츠는 가상 객체들의 기하학적 형상들, 가상 객체들의 색상들 및/또는 텍스처들, 이미지들(예컨대, 장면의 시스루 이미지), 또는 렌더링된 이미지에서 표현될 콘텐츠를 설명하는 다른 정보의 정의들을 포함할 수 있다.
방법(1400)은 블록(1430)에서, 렌더링 모듈이 눈 추적 데이터 및 SR 콘텐츠에 기초하여 렌더링 해상도 함수를 생성하는 것으로 계속된다. 다양한 구현예들에서, 렌더링 모듈은 눈 추적 데이터에 기초하여 피크 최대치를 갖는 렌더링 해상도 함수를 생성한다(예를 들어, 해상도는 사용자가 보고 있는 경우에 가장 높다). 다양한 구현예들에서, 렌더링 모듈은 눈 추적 데이터에 기초하여 렌더링 해상도 함수를 생성하고, SR 콘텐츠에 기초하여 렌더링 해상도 함수를 조정한다. 예를 들어, 일부 구현예들에서, 렌더링 모듈은, 얼굴 또는 고해상도 물체와 같이, 인간들이 특히 해결하도록 적응되는 게임 목표 또는 콘텐츠(예를 들어, 인간들이 주의를 기울일 가능성이 있는 콘텐츠)와 같은 하나 이상의 들여오기 영역들에서 렌더링 해상도 함수를 증가시킨다. 다른 예로서, 일부 구현예들에서, 렌더링 모듈은 (예를 들어, SR 콘텐츠의 객체들의) 하나 이상의 모션 영역들에서 렌더링 해상도 함수를 증가시킨다.
다양한 구현예들에서, 렌더링 모듈은 SR 콘텐츠의 밝기에 기초하여 렌더링 해상도 함수를 생성한다. 예를 들어, 일부 구현예들에서, 주변 시력이 중심 시력보다 더 광 감응성이기 때문에, 주변 해상도는 (더 밝은 조건들과 비교하여) 더 어두운 조건들에서 증가된다. 다양한 구현예들에서, 주변 해상도를 증가시키는 것은 렌더링 해상도 함수의 피크 폭을 증가시키는 것 및/또는 렌더링 해상도 함수의 떨어진 부분들을 증가시키는 것을 포함한다.
다양한 구현예들에서, 렌더링 모듈은 SR 콘텐츠의 색상에 기초하여 렌더링 해상도 함수를 생성한다. 예를 들어, 일부 구현예들에서, 적색-녹색 색상 변동들에 대한 감도가 휘도 또는 청색-황색 색상들에 대한 감도보다 주변을 향해 더 급격하게 감소하기 때문에, 청색-황색과는 대조적으로 SR 콘텐츠가 주로 적색-녹색일 때 주변 해상도가 감소된다. 다양한 구현예들에서, 주변 해상도를 감소시키는 것은 렌더링 해상도 함수의 피크 폭을 감소시키는 것 및/또는 렌더링 해상도 함수의 떨어진 부분들을 감소시키는 것을 포함한다.
다양한 구현예들에서, SR 콘텐츠(예를 들어, SR 콘텐츠의 색상)에 기초하여 렌더링 해상도 함수를 생성하는 것은 상이한 색상 채널들에 대한 상이한 렌더링 해상도 함수들(예를 들어, 3개의 상이한 색상 채널, 예를 들어 적색, 녹색, 및 청색에 대한 3개의 상이한 렌더링 해상도 함수들)을 생성하는 것을 포함한다. 특히, 다양한 구현예들에서, 렌더링 모듈은 제1 색상 채널에 대한 제1 렌더링 해상도 함수, 및 제1 색상 채널에 대한 제1 렌더링 해상도 함수와는 상이한 제2 색상 채널에 대한 제2 렌더링 해상도 함수를 생성한다. 추가로, (아래에서 설명되는 바와 같이) 렌더링된 이미지를 생성할 시에, 렌더링 모듈은 제1 렌더링 해상도 함수에 기초하여, 렌더링된 이미지의 제1 색상 채널 이미지를 그리고 제2 렌더링 해상도 함수에 기초하여, 렌더링된 이미지의 제2 색상 채널 이미지를 생성한다.
다양한 구현예들에서, 렌더링 모듈은 SR 콘텐츠의 복잡도에 기초하여 렌더링 해상도 함수를 생성한다. 예를 들어, 다양한 구현예들에서, 렌더링 모듈은 높은 해상도 공간 변화들 및/또는 빠른 공간 변화들을 갖는 영역들에서 렌더링 해상도 함수를 증가시킨다.
방법(1400)은 블록(1440)에서, 렌더링 모듈이 (예를 들어, 도 7에 관해 위에서 설명된 바와 같이) SR 콘텐츠 및 렌더링 해상도 함수에 기초하여, 렌더링된 이미지를 생성하는 것으로 계속된다. 다양한 구현예들에서, 렌더링된 이미지는 사용자의 주시범위(FoF) 외부에서 더 낮은 해상도를 갖는 이미지와 같은 포비티드 이미지이다. 다양한 구현예들에서, 렌더링된 이미지는 SR 콘텐츠와 비교하여 불균일한 공간으로 변환된 이미지와 같은 뒤틀린 이미지이다.
도 2에 관해 위에서 설명된 바와 같이, 렌더링 모듈(210)은 렌더링된 이미지를 이송 모듈(220)에 제공한다. 이송 모듈(220)은 렌더링된 이미지를 압축하는(압축된 이미지를 초래하는) 압축 모듈(222), 압축된 이미지를 반송하는 통신 채널(224), 및 압축된 이미지를 압축해제하는(압축해제 이미지를 초래하는) 압축해제 모듈(226)을 포함한다.
다양한 구현예들에서, 통신 채널(224)은 유선 또는 무선 통신 채널(예를 들어, 블루투스, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x 등)이다. 예를 들어, 다양한 구현예들에서, 통신 채널(224)은 렌더링 모듈(210) 및 압축 모듈(222)을 포함하는 제1 디바이스(예를 들어, 도 1의 제어기(110))를, 압축해제 모듈(226)을 포함하는 제2 디바이스(예를 들어, 도 1의 HMD(120))에 커플링시킨다. 다양한 구현예들에서, 통신 채널은 단일 디바이스의 2개의 프로세싱 유닛들, 예를 들어 압축 모듈(222)을 포함하는 제1 프로세싱 유닛 및 압축해제 모듈(226)을 포함하는 제2 프로세싱 유닛을 커플링시킨다. 다양한 구현예들에서, 통신 채널은 단일 프로세싱 유닛의 2개의 프로세싱 모듈들, 예를 들어 압축 모듈(222) 및 압축해제 모듈(226)을 커플링시킨다.
다양한 구현예들에서, 압축 모듈(222)은 렌더링 모듈(210)로부터, 이미지의 상이한 부분들에서 상이한 해상도들을 갖는 포비티드 이미지를 수신한다. 다양한 구현예들에서, 다양한 압축 기법들을 사용하여 M×N 포비티드 이미지를 압축하는 것은 M×N 비포비티드 이미지를 압축하는 것보다 더 적은 비트들을 초래한다.
다양한 구현예들에서, 압축 모듈(222)은 렌더링 모듈(210)로부터, 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖는 뒤틀린 이미지를 수신한다. 복수의 픽셀들은 복수의 개개의 픽셀 값들, 및 디스플레이 공간 내의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관된다.
다양한 구현예들에서, 압축 모듈(222)은 렌더링 모듈(210)로부터 스케일링 인자들을 수신한다. 다양한 구현예들에서, 압축 모듈(222)은 각각의 픽셀에 대한 단일 스케일링 인자를 수신한다. 다양한 구현예들에서, 압축 모듈(222)은 각각의 픽셀에 대한 수평 스케일링 인자 및 수직 스케일링을 수신한다. 다양한 구현예들에서, 압축 모듈(222)은 픽셀들의 각각의 타일(예를 들어, 픽셀들의 각각의 32x32 블록)에 대한 단일 스케일링 인자를 수신한다. 다양한 구현예들에서, 압축 모듈(222)은 픽셀들의 각각의 타일(예를 들어, 픽셀들의 각각의 32x32 블록)에 대한 수평 스케일링 인자 및 수직 스케일링 인자를 수신한다.
뒤틀린 이미지가 이미지(예를 들어, 픽셀 값들의 매트릭스)이기 때문에, 다양한 종래의 압축 기법들이 이미지에 적용될 수 있다. 그러나, 다양한 구현예들에서, 압축 모듈(222)은 뒤틀린 이미지를 이송하는 데 사용되는 통신 채널(224)의 대역폭을 추가로 감소시키기 위해 뒤틀린 이미지의 압축 및/또는 송신 동안 스케일링 인자들을 사용한다.
도 15는 일부 구현예들에 따른, 이미지를 송신하는 방법(1500)의 흐름도 표현이다. 일부 구현예들에서(그리고 일 예로서 아래에서 상세히 설명되는 바와 같이), 방법(1500)은 도 2의 이송 모듈(220) 또는 압축 모듈(222)과 같은 이송 모듈(또는 그의 일부)에 의해 수행된다. 다양한 구현예들에서, 방법(1500)은 도 1의 HMD(100)와 같은 HMD 또는 도 2의 SR 파이프라인(200)과 같은 그의 일부에 의해 수행된다. 다양한 구현예들에서, 방법(1500)은 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 SR 디스플레이들을 갖는 디바이스에 의해 수행된다. 일부 구현예들에서, 방법(1500)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(1500)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다.
방법(1500)은 블록(1510)에서, 이송 모듈이 디스플레이 공간에 디스플레이될 시뮬레이션된 현실(SR) 콘텐츠를 표현하는 뒤틀린 이미지를 수신하며, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖고, 여기서, 복수의 픽셀들은 복수의 개개의 픽셀 값들, 및 디스플레이 공간 내의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관되는 것으로 시작한다.
다양한 구현예들에서, 복수의 개개의 스케일링 인자들은 뒤틀린 공간과 디스플레이 공간 사이의 맵핑을 정의한다. 예를 들어, 다양한 구현예들에서, 디스플레이 공간 내의 불균일하게 이격된 구역들에 대응하는 SR 콘텐츠의 상이한 부분들은 뒤틀린 공간 내의 균일하게 이격된 구역들에 의해 표현된다.
다양한 구현예들에서, 복수의 픽셀들 각각은 별개로 수신된 픽셀 값과 각각 연관된다. 다양한 구현예들에서, 복수의 픽셀들 각각은 별개로 수신된 스케일링 인자(또는 수평 스케일링 인자 및 수직 스케일링 인자의 세트)와 각각 연관된다. 다양한 구현예들에서, 복수의 픽셀들의 복수의 타일들 각각은 별개로 수신된 스케일링 인자(또는 수평 스케일링 인자 및 수직 스케일링 인자의 세트)와 각각 연관된다. 따라서, 복수의 픽셀들(예를 들어, 단일 타일의 픽셀들)은 단일 수신된 스케일링 인자(또는 수평 스케일링 인자 및 수직 스케일링 인자의 세트)와 연관된다.
따라서, 다양한 구현예들에서, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 타일들을 포함하며, 여기서 복수의 타일들 각각은 개개의 하나 이상의 스케일링 인자들과 연관된다. 또한, 다양한 구현예들에서, 복수의 개개의 스케일링 인자들 중 하나 이상은 수평 스케일링 인자 및 수직 스케일링 인자를 포함한다.
방법(1500)은 블록(1520)에서, 뒤틀린 이미지의 개개의 부분들의 송신에 의해 사용되는 하나 이상의 채널들의 적어도 하나의 대역폭이 뒤틀린 이미지의 개개의 부분들에 대응하는 복수의 스케일링 인자들 중 하나 이상의 스케일링 인자들에 기초하도록, 이송 모듈이 하나 이상의 채널들을 통해 뒤틀린 이미지를 송신하는 것으로 계속된다.
다양한 구현예들에서, 개개의 부분들의 송신에 의해 사용되는 하나 이상의 채널들의 적어도 하나의 대역폭은 스케일링 인자들에 기초하여 뒤틀린 이미지의 부분들을 압축함으로써 변화된다. 더 압축된 부분은 덜 압축된 부분보다 채널의 대역폭을 더 적게 사용한다.
특히, 다양한 구현예들에서, 이송 모듈은 뒤틀린 이미지의 개개의 부분들에 대응하는 복수의 스케일링 인자들 중 하나 이상의 스케일링 인자들에 기초하여 뒤틀린 이미지의 개개의 부분들을 압축한다. 예를 들어, 다양한 구현예들에서, 이송 모듈은 (예를 들어, MAC 계층에서 더 적은 비트들을 할당하고/하거나 양자화 파라미터를 더 낮은 값[예를 들어, 더 많은 양자화]으로 설정함으로써) 고해상도 부분들보다 저해상도 부분들을 더 많이 압축한다.
다양한 구현예들에서, 개개의 부분들의 송신에 의해 사용되는 하나 이상의 채널들의 적어도 하나의 대역폭은 스케일링 인자들에 기초하여 뒤틀린 이미지의 코딩 부분들을 에러-보정함으로써 변화된다. 더 약한 에러-보정 코드로 에러-보정 코딩된 부분은 더 강한 에러-보정 코드로 에러-보정 코딩된 부분보다 더 적은 대역폭을 사용한다.
특히, 다양한 구현예들에서, 이송 모듈은 뒤틀린 이미지의 개개의 부분들에 대응하는 복수의 스케일링 인자들 중 하나 이상의 스케일링 인자들에 기초하여 뒤틀린 이미지의 개개의 부분들을 에러-보정 코딩한다. 예를 들어, 다양한 구현예들에서, 이송 모듈은 저해상도 부분들에 대해서보다 고해상도 부분들에 대해 더 강한 에러-보정 코드를 사용한다(예를 들어, PHY 계층에서 더 많은 중복성을 부가함).
다양한 구현예들에서, 개개의 부분들의 송신에 의해 사용되는 하나 이상의 채널들의 적어도 하나의 대역폭은 스케일링 인자들에 기초하여 뒤틀린 이미지의 부분들의 송신(또는 재송신) 확률을 변화시킴으로써 변화된다. 일부의 송신(또는 재송신) 확률이 더 적을 때, 그 일부의 송신에 의해 사용되는 대역폭이 더 적다.
특히, 다양한 구현예들에서, 뒤틀린 이미지의 개개의 부분들의 송신 확률은 뒤틀린 이미지의 개개의 부분들에 대응하는 복수의 스케일링 인자들 중 하나 이상의 스케일링 인자들에 기초한다. 다양한 구현예들에서, 송신 확률은 손실된 패킷의 경우에는 재송신 확률이다. 예를 들어, 뒤틀린 이미지의 일부에 대응하는 데이터 패킷이 채널 위에서 손실되면, 패킷을 재송신할 확률은, 더 높은 해상도 부분들에 대응하는 데이터 패킷들이 더 낮은 해상도 부분들에 대응하는 데이터 패킷들과 비교하여 재전송될 가능성이 더 크도록 스케일링 인자에 기초할 수 있다.
다양한 구현예들에서, 송신 확률은 선택된 서브채널에 기초한다. 예를 들어, 더 높은 신호 대 잡음비를 갖는 (예를 들어, PHY 계층에서) 서브채널을 선택함으로써, 비트 에러, 패킷 에러, 또는 드롭된 패킷으로 인한 재송신 확률이 감소된다. 따라서, 다양한 구현예들에서, 이송 모듈은 개개의 스케일링 인자에 기초하여 개개의 부분의 송신을 위한 서브채널을 선택한다. 다양한 구현예들에서, 이송 모듈은 더 낮은 해상도 부분에 대해서보다 더 높은 해상도 부분에 대해 더 높은 신호 대 잡음비를 갖는 서브 채널을 선택한다.
다양한 구현예들에서, 송신 확률은 뒤틀린 이미지와 연관된 이미지 데이터를 수신하는 버퍼(예를 들어, 도 2의 압축해제 모듈(226)의 버퍼)의 레벨에 기초한다. 예를 들어, 다양한 구현예들에서, 버퍼가 오버플로우에 가까워지고 있거나 오버플로우에 접근했을 때, 뒤틀린 이미지의 일부를 송신할 확률이 감소되며, 뒤틀린 이미지의 더 높은 해상도의 부분들에 대해서보다 뒤틀린 이미지의 더 낮은 해상도의 부분들에 대해 더 그러하다. 다양한 구현예들에서, 버퍼가 오버플로우에 가까워지고 있거나 오버플로우에 접근했을 때, 수신기(예를 들어, 압축해제 모듈)는 스케일링 인자들에 기초하여 뒤틀린 이미지의 수신된 부분들을 폐기한다. 예를 들어, 다양한 구현예들에서, 수신기는 더 높은 해상도 부분들보다 더 낮은 해상도 부분들을 폐기할 가능성이 더 크다.
다양한 구현예들에서, 뒤틀린 이미지를 송신하는 것은 뒤틀린 이미지를 변환하는 것을 포함한다. 예를 들어, 다양한 구현예들에서, 이송 모듈은 뒤틀린 이미지를 웨이블릿 변환함으로써 웨이블릿 뒤틀린 이미지를 생성한다. 웨이블릿 뒤틀린 이미지는, 뒤틀린 이미지의 각각의 개개의 부분에 대해, 상이한 주파수 대역들에 대응하는 웨이블릿 뒤틀린 이미지의 복수의 부분들을 포함한다.
도 16a는 예시적인 이미지(1610)를 예시한다. 도 16b는 예시적인 이미지의 1-층 웨이블릿 변환에 의해 생성된 웨이블릿 이미지(1620)를 예시한다. 예시적인 이미지(1610)의 각각의 부분(예를 들어, 상단 중간 블록(1611))은 상이한 주파수 대역들에 대응하는 웨이블릿 이미지(1620)의 복수의 부분들(예를 들어, 블록들(1621a 내지 1621d))에 의해 표현된다. 특히, 블록(1621a)은 수평 방향 및 수직 방향들 둘 모두에서 저주파수에 대응하고, 블록(1621b)은 수평 방향에서는 고주파수 및 수직 방향에서는 저주파수에 대응하고, 블록(1621c)은 수평 방향에서는 저주파수 및 수직 방향에서는 고주파수에 대응하며, 블록(1021d)은 수평 방향 및 수직 방향들 둘 모두에서 고주파수에 대응한다.
다양한 구현예들에서, 웨이블릿 뒤틀린 이미지는 1-층 웨이블릿 함수(도 16a 및 도 16b에 예시됨)를 사용하여 생성된다. 다양한 구현예들에서, 웨이블릿 뒤틀린 이미지는 2-층 웨이블릿 함수를 사용하여 생성된다.
다양한 구현예들에서, 웨이블릿 뒤틀린 이미지의 개개의 부분들의 송신에 의해 사용되는 하나 이상의 채널들의 적어도 하나의 대역폭은 상이한 주파수 대역들에 기초한다. 특히, 다양한 구현예들에서, 더 낮은 주파수 대역들과 연관된 웨이블릿 뒤틀린 이미지의 개개의 부분들은 더 높은 주파수 대역들과 연관된 웨이블릿 뒤틀린 이미지의 부분들보다 더 많은 대역폭을 할당받는다.
다양한 구현예들에서, 이송 모듈은 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 필터링한다. 예를 들어, 다양한 구현예들에서, 이송 모듈은 뒤틀린 이미지를 웨이블릿-임계처리(wavelet-threshold)한다. 다양한 상황들에서, 이는, 연속적인 스트림을 제공하기 위해 이미지를 더 명료하게 하고/하거나 일부 세부사항들을 제거하기 위해 주파수 대역에 기초하여 이미지를 디노이징(de-noise)시킨다.
다양한 구현예들에서, 뒤틀린 이미지의 개개의 부분들의 송신에 의해 사용되는 하나 이상의 채널들의 적어도 하나의 대역폭은 하나 이상의 채널들의 적어도 하나의 이용가능한 대역폭에 추가로 기초한다. 특히, 이용가능한 대역폭이 더 클 때, 사용되는 채널의 대역폭이 더 크다. 다양한 구현예들에서, 이송 모듈은 고효율 비디오 코더(HEVC)를 포함한다.
도 2에 관해 위에서 언급된 바와 같이, 다양한 구현예들에서, 이송 모듈(220)은 렌더링 모듈(210)로부터 복수의 개개의 스케일링 인자들을 수신한다. 다양한 구현예들에서, 이송 모듈(220)은 개개의 스케일링 인자들을 디스플레이 모듈(230)에 제공한다. 따라서, 이송 모듈(220)은 통신 채널(224)을 통해 개개의 스케일링 인자들을 이송한다.
따라서, 다양한 구현예들에서, 도 15의 방법(1500)은 (예를 들어, 렌더링 모듈로부터) 복수의 개개의 스케일링 인자들을 수신하는 단계, 복수의 개개의 스케일링 인자들을 압축하는 단계, 채널을 통해 복수의 개개의 스케일링 인자들을 송신하는 단계, 복수의 개개의 스케일링 인자들을 압축해제하는 단계, 및/또는 복수의 개개의 스케일링 인자들을 (예를 들어, 디스플레이 모듈에) 제공하는 단계를 더 포함한다.
도 2를 참조하면, 압축해제 모듈(226)은 통신 채널(224)을 통해 뒤틀린 이미지를 수신한다. 다양한 구현예들에서, 뒤틀린 이미지는 압축, 인코딩, 및/또는 변환된다. 따라서, 다양한 구현예들에서, 압축해제 모듈(226)은 뒤틀린 이미지를 압축해제, 디코딩, 및/또는 역변환(de-transform)시킨다. 추가로, 다양한 구현예들에서, 압축해제 모듈(226)은 통신 채널(224)을 통해 복수의 개개의 스케일링 인자들을 수신한다. 다양한 구현예들에서, 복수의 개개의 스케일링 인자들이 압축된다. 따라서, 다양한 구현예들에서, 압축해제 모듈(226)은 복수의 개개의 스케일링 인자들을 압축해제한다.
일부 상황들에서, 압축해제 모듈(226)은 개개의 스케일링 인자와 연관된 뒤틀린 이미지의 일부와 연관된 데이터 패킷을 정확하게 수신하지 못한다. 예를 들어, 압축해제 모듈(226)은 개개의 스케일링 인자를 수신할 수 있지만, 대응하는 데이터 패킷을 수신하지 않을 수 있다. 다른 예로서, 압축해제 모듈(226)은 (예를 들어, 데이터 패킷이 손상되었다는 것을 표시하는 패리티 비트, 순환 중복 검사, 또는 다른 표시자에 의해 표시된 바와 같이) 개개의 스케일링 인자와 연관된 손상된 데이터 패킷을 수신할 수 있다. 다른 예로서, 압축해제 모듈(226)은, 압축해제 모듈(226)의 버퍼가 가득 찼거나 거의 가득 찼기 때문에 패킷들을 폐기할 수 있다.
다양한 구현예들에서, 압축해제 모듈(226)은 정확하게 수신되지 않았던 데이터 패킷을 재송신하라는 요청을 압축 모듈(222)에 전송한다. 다양한 구현예들에서, 압축해제 모듈(226)은 대응하는 스케일링 인자에 기초하여 그러한 재송신 요청을 전송할지 여부를 결정한다. 예를 들어, 다양한 구현예들에서, 이미지의 대응하는 부분의 해상도가 더 낮다는 것을 대응하는 스케일링 인자가 표시하는 경우보다 이미지의 대응하는 부분의 해상도가 더 높다는 것을 대응하는 스케일링 인자가 표시하는 경우, 압축해제 모듈(226)이 재송신 요청을 전송할 가능성이 더 높다.
위에서 언급된 바와 같이, 다양한 구현예들에서, 압축해제 모듈(226)은 수신된 데이터 패킷들을 저장하는 버퍼를 포함한다. 일부 상황들에서, 버퍼는 가득 차게 되어, 손실된 패킷들을 초래할 수 있다. 다양한 구현예들에서, 버퍼가 거의 가득 차게 될 때(예를 들어, 충만도의 임계 퍼센티지를 초과함), 압축해제 모듈(226)은 대응하는 스케일링 인자에 기초하여, 수신된 패킷을 저장할지 또는 수신된 패킷을 폐기할지를 결정한다. 예를 들어, 다양한 구현예들에서, 이미지의 대응하는 부분의 해상도가 더 높다는 것을 대응하는 스케일링 인자가 표시하는 경우보다 이미지의 대응하는 부분의 해상도가 더 낮다는 것을 대응하는 스케일링 인자가 표시하는 경우, 압축해제 모듈(226)이 패킷을 폐기할 가능성이 더 높다. 다양한 구현예들에서, 압축해제 모듈(226)은 버퍼 충만도(예를 들어, 버퍼가 얼마나 가득 찼는지)의 연속 함수 및 대응하는 스케일링 인자에 기초하여, 수신된 패킷을 저장할지 또는 수신된 패킷을 폐기할지를 결정한다. 함수는, 버퍼 충만도가 증가할 때 그리고/또는 이미지의 대응하는 부분의 해상도가 낮다는 것을 대응하는 스케일링 인자가 표시할 때, 압축해제 모듈(226)이 패킷을 폐기할 가능성이 더 높다는 것을 초래할 수 있다.
도 17은 일부 구현예들에 따른, 이미지를 수신하는 방법(1700)의 흐름도 표현이다. 일부 구현예들에서(그리고 일 예로서 아래에서 상세히 설명되는 바와 같이), 방법(1700)은 도 2의 이송 모듈(220) 또는 압축해제 모듈(226)과 같은 이송 모듈(또는 그의 일부)에에 의해 수행된다. 다양한 구현예들에서, 방법(1700)은 도 1의 HMD(100)와 같은 HMD 또는 도 2의 SR 파이프라인(200)과 같은 그의 일부에 의해 수행된다. 다양한 구현예들에서, 방법(1700)은 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 SR 디스플레이들을 갖는 디바이스에 의해 수행된다. 일부 구현예들에서, 방법(1700)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(1700)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다.
방법(1700)은 블록(1710)에서, 이송 모듈이 디스플레이 공간에 디스플레이될 시뮬레이션된 현실(SR) 콘텐츠를 표현하는 뒤틀린 이미지의 부분들에 대응하는 복수의 데이터 패킷들의 적어도 서브세트를 수신하며, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖는 것으로 시작한다.
다양한 구현예들에서, 복수의 개개의 스케일링 인자들은 뒤틀린 공간과 디스플레이 공간 사이의 맵핑을 정의한다. 예를 들어, 다양한 구현예들에서, 디스플레이 공간 내의 불균일하게 이격된 구역들에 대응하는 SR 콘텐츠의 상이한 부분들은 뒤틀린 공간 내의 균일하게 이격된 구역들에 의해 표현된다.
방법(1700)은 블록(1720)에서, 이송 모듈이 디스플레이 공간 내의 복수의 개개의 위치들에서의 뒤틀린 이미지의 부분들의 개개의 해상도를 표시하는 복수의 스케일링 인자들을 수신하는 것으로 계속된다.
방법(1700)은 블록(1730)에서, 이송 모듈이 복수의 데이터 패킷들 중 특정 데이터 패킷에 대한 에러 조건을 검출하는 것으로 계속된다. 다양한 구현예들에서, 에러 조건을 검출하는 것은 복수의 데이터 패킷들 중 특정 데이터 패킷을 수신하지 않으면서 복수의 스케일링 인자들 중 특정 스케줄링 인자를 수신하는 것을 포함한다. 이는 패킷이 손실되었다는 것을 표시할 수 있다. 다양한 구현예들에서, 에러 조건을 검출하는 것은 복수의 데이터 패킷들 중 특정 데이터 패킷이 손상되었다고 결정하는 것을 포함한다. 예를 들어, 다양한 구현예들에서, 패리티 비트, 순환 중복 검사, 또는 다른 표시자는 데이터 패킷이 손상되었다는 것을 표시한다. 다양한 구현예들에서, 에러 조건을 검출하는 것은 버퍼가 가득 찼거나 거의 가득 찬 동안 복수의 데이터 패킷들 중 특정 데이터 패킷을 수신하는 것을 포함한다. 다양한 구현예들에서, 에러 조건을 검출하는 것은 버퍼가 적어도 데이터의 임계 퍼센티지를 저장하고 있다고 결정하는 것을 포함한다.
방법(1700)은 블록(1740)에서, 이송 모듈이 복수의 데이터 패킷들 중 특정 데이터 패킷에 대응하는 복수의 스케일링 인자들 중 특정 스케일링 인자에 기초하여, 에러 조건을 해결하는 것으로 계속된다. 다양한 구현예들에서, 에러 조건을 해결하는 것은 복수의 스케일링 인자들 중 특정 스케일링 인자에 기초하여 복수의 데이터 패킷들 중 특정 데이터 패킷에 대한 재송신 요청을 전송할지 여부를 결정하는 것을 포함한다. 다양한 구현예들에서, 이송 모듈은, 뒤틀린 이미지의 대응하는 부분의 해상도가 낮다는 것을 복수의 스케일링 인자들 중 특정한 스케일링 인자가 표시하는 경우와 비교하여 뒤틀린 이미지의 대응하는 부분의 해상도가 높다는 것을 복수의 스케일링 인자들 중 특정한 스케일링 인자가 표시하는 경우 재송신 요청을 전송할 가능성이 더 높다. 따라서, 다양한 구현예들에서, 에러 조건을 해결하는 것은 재송신 요청을 전송하기로 결정하고 재송신 요청을 전송하는 것(또는 재송신 요청을 전송하지 않기로 결정하는 것)을 포함한다.
다양한 구현예들에서, 에러 조건을 해결하는 것은 복수의 스케일링 인자들 중 특정 스케일링 인자에 기초하여 복수의 데이터 패킷들 중 특정 데이터 패킷을 폐기할지 또는 저장할지를 결정하는 것을 포함한다. 다양한 구현예들에서, 이송 모듈은, 뒤틀린 이미지의 대응하는 부분의 해상도가 낮다는 것을 복수의 스케일링 인자들 중 특정한 스케일링 인자가 표시하는 경우와 비교하여 뒤틀린 이미지의 대응하는 부분의 해상도가 높다는 것을 복수의 스케일링 인자들 중 특정한 스케일링 인자가 표시하는 경우 (버퍼에) 데이터 패킷을 저장할 가능성이 더 높다. 따라서, 다양한 구현예들에서, 에러 조건을 해결하는 것은 데이터 패킷을 저장하기로 결정하고 데이터 패킷을 저장하는 것(또는 데이터 패킷을 폐기하기로 결정하고 데이터 패킷을 저장하지 않는 것)을 포함한다.
다양한 구현예들에서, 방법(1700)은 뒤틀린 이미지를 압축해제, 디코딩, 및/또는 역변환시키는 것을 포함한다.
도 2에 관해 위에서 설명된 바와 같이, 렌더링 모듈(210)은 렌더링된 이미지를 이송 모듈(220)에 제공한다. 위에서 설명된 바와 같이, 이송 모듈(220)은 렌더링된 이미지를 압축하는(압축된 이미지를 초래하는) 압축 모듈(222), 압축된 이미지를 반송하는 통신 채널(224), 및 압축된 이미지를 압축해제하고(압축해제 이미지를 초래하고) 이를 디스플레이 모듈(230)에 제공하는 압축해제 모듈(226)을 포함한다. 따라서, 압축, 송신, 수신, 및/또는 압축해제에 의해 야기된 왜곡을 조건으로 하여, 디스플레이 모듈(230)은 렌더링 모듈(210)에 의해 제공되는 렌더링된 이미지를 수신한다. 다양한 구현예들에서, 이송 모듈(220)은 부재하며, 렌더링 모듈(210)은 렌더링된 이미지를 디스플레이 모듈(230)에 직접 제공한다.
다양한 구현예들에서, 디스플레이 모듈(230)은 이송 모듈(220) 또는 렌더링 모듈(210)로부터, 이미지의 상이한 부분들에서 상이한 해상도들을 갖는 포비티드 이미지를 수신한다. 다양한 구현예들에서, 디스플레이 모듈(230)은 이송 모듈(220) 또는 렌더링 모듈(230)로부터, 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖는 뒤틀린 이미지를 수신한다. 복수의 픽셀들은 복수의 개개의 픽셀 값들, 및 디스플레이 공간 내의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관된다.
다양한 구현예들에서, 디스플레이 모듈(230)은 이송 모듈(220) 또는 렌더링 모듈(210)로부터 스케일링 인자들을 수신한다. 다양한 구현예들에서, 디스플레이 모듈(230)은 각각의 픽셀에 대한 단일 스케일링 인자를 수신한다. 다양한 구현예들에서, 디스플레이 모듈(230)은 각각의 픽셀에 대한 수평 스케일링 인자 및 수직 스케일링을 수신한다. 다양한 구현예들에서, 디스플레이 모듈(230)은 픽셀들의 각각의 타일(예를 들어, 픽셀들의 각각의 32x32 블록)에 대한 단일 스케일링 인자를 수신한다. 다양한 구현예들에서, 디스플레이 모듈(230)은 픽셀들의 각각의 타일(예를 들어, 픽셀들의 각각의 32x32 블록)에 대한 수평 스케일링 인자 및 수직 스케일링 인자를 수신한다.
디스플레이 모듈(230)은, 디스플레이된 이미지가, 사용자(250)에 의해 아이피스(242)를 통해 보여질 때 왜곡되지 않은 것으로 나타나도록 HMD의 아이피스(242)에 의해 야기된 왜곡과 역의 관계로, 압축해제된 이미지를 왜곡시키는 렌즈 보상 모듈(232)을 포함한다. 아이피스(242)에 의해 야기된 왜곡은, 입력 이미지의 픽셀의 픽셀 위치를 입력으로서 취하고 출력 이미지 내의 픽셀의 픽셀 위치를 출력으로서 제공하는 호모그래픽(homographic) 왜곡 함수에 의해 설명될 수 있다.
따라서, F가 호모그래픽 왜곡 함수이고, (x 1 , y 1 )가 입력 이미지 내의 픽셀의 픽셀 위치이며, (x 2 , y 2 )가 출력 이미지 내의 픽셀의 픽셀 위치인 경우, 다음과 같다:
Figure pat00007
.
도 18a는 제1 픽셀 위치에서 제1 픽셀 값을 갖는 픽셀(1811)을 포함하는 왜곡되지 않은 이미지(1810)를 예시한다. 도 18b는 제2 픽셀 위치에서 제1 픽셀 값을 갖는 픽셀(1821)을 포함하는 왜곡된 이미지를 예시한다. 도 18a 및 도 18b에서, 제1 픽셀 위치는 (2, 1)이고, 제2 픽셀 위치는 (2.2, 1.1)이다.
따라서, 입력 이미지의 제1 픽셀 위치에서 (픽셀 값을 갖는) 픽셀은, 아이피스를 통해 투사될 때, 출력 이미지의 제2 픽셀 위치에서 동일한 픽셀 값으로 나타난다. 이러한 관계는, I(x, y)가 위치 (x, y)에서의 입력 이미지의 픽셀 값이고, O(x, y)가 위치 (x, y)에서의 출력 이미지의 픽셀 값인 경우, 다음과 같이 표현될 수 있다:
Figure pat00008
.
따라서, 다음과 같다:
Figure pat00009
.
이러한 왜곡을 다루기 위해, 렌즈 보상 모듈(232)은, 아이피스(242)에 의해 왜곡된 출력 이미지가 입력 이미지와 유사하게 보이도록 전치왜곡된 이미지를 생성한다. 따라서, 여기서, P(x, y)는 위치 (x, y)에서의 전치왜곡된 이미지의 픽셀 값이며, 다음과 같다:
Figure pat00010
.
따라서, 다음과 같다:
Figure pat00011
.
전치왜곡된 이미지가 아이피스에 의해 왜곡될 때, 다음과 같다:
Figure pat00012
.
따라서, 다음과 같다:
Figure pat00013
.
도 19a는 제1 픽셀 위치에서 픽셀 값을 갖는 픽셀(1911)을 포함하는 전치왜곡된 이미지(1910)를 예시한다. 도 19b는 제2 픽셀 위치에서 제1 픽셀 값을 갖는 픽셀(1921)을 포함하는 왜곡된 전치왜곡된 이미지(또는 왜곡되지 않은 이미지)(1920)를 예시한다. 도 19a 및 도 19b에서, 제1 픽셀 위치는 (2, 1)이고, 제2 픽셀 위치는 (2.2., 1.1)이다.
제1 위치 (x 1 , y 1 )에서 전치왜곡된 이미지의 픽셀의 픽셀 값을 결정하기 위해, 렌즈 보상 모듈(232)은 제2 위치 (x 2 , y 2 )에서 입력 이미지의 픽셀의 픽셀 값을 결정한다. 그러나, 일부 상황들에서, 제2 위치 (x 2 , y 2 )는 픽셀 값들이 알려져 있는 입력 이미지의 픽셀 위치들 사이에 속한다.
예를 들어, 도 19a에서, 픽셀(1911)의 픽셀 값은 도 18a의 픽셀(1811)의 픽셀 값과 동일하지 않다. 오히려, 픽셀(1911)의 픽셀 값은, 그러한 픽셀이 존재했다면, (2.2, 1.1)에서 왜곡되지 않은 이미지(1810)의 픽셀의 픽셀 값과 동일하다.
따라서, 다양한 구현예들에서, 제1 위치 (x 1 , y 1 )에서 전치왜곡된 이미지의 픽셀의 픽셀 값을 결정하기 위해, 렌즈 보상 모듈(232)은, 제2 위치 (x 2 , y 2 ) 주위의 이웃의 픽셀들의 알려진 픽셀 값들을 사용하여, 예를 들어 보간을 사용하여 제2 위치 (x 2 , y 2 )에서 입력 이미지의 픽셀의 픽셀 값을 결정한다.
픽셀이 제2 위치로부터의 미리 결정된 거리보다 작으면, 픽셀은 제2 위치의 이웃에 있다. 다양한 구현예들에서, 이러한 거리는 L 2 거리이다. 다양한 구현예들에서, 이러한 거리는 L 1 거리이다. 다양한 구현예들에서, 미리 결정된 거리는 1을 뒤틀린 이미지의 해상도(예를 들어, 이웃한 픽셀들 사이의 거리)로 나눈 것이다. 다양한 구현예들에서, 미리 결정된 거리는 2를 뒤틀린 이미지의 해상도로 나눈 것이다.
예를 들어, 도 19a에서, 픽셀(1911)의 픽셀 값을 결정하기 위해, (2,1), (2,2), (3,1), 및 (3,2)에서의 왜곡되지 않은 이미지(1810)의 픽셀들의 픽셀 값들이 사용된다.
다양한 구현예들에서, 제1 위치에서의 전치왜곡된 이미지의 픽셀의 픽셀 값은 제2 위치 주위의 이웃에서의 왜곡되지 않은 이미지의 픽셀들의 픽셀 값들의 가중 합이다. 따라서, 다양한 구현예들에서, 렌즈 보상 모듈(232)은 전치왜곡된 이미지의 픽셀의 픽셀 값을 결정하기 위해 선형 보간을 수행한다. 다양한 구현예들에서, 렌즈 보상 모듈(232)은 전치왜곡된 이미지의 픽셀의 픽셀 값을 결정하기 위해, 가장 가까운 이웃 보간, 다항식 보간, 또는 스플라인 보간과 같은 다양한 유형들의 보간을 수행한다.
따라서, N(x 2 , y 2 )가 제2 위치 주위의 픽셀들의 이웃이고, w i 가 가중치들일 경우, 다음과 같다:
Figure pat00014
다양한 구현예들에서, 가중치들은 픽셀 위치와 제2 위치 사이의 거리(예를 들어, L 2 거리)에 기초하여 결정된다.
따라서, 일부 구현예들에서, M이 정규화 인자일 경우, 다음과 같다:
Figure pat00015
다양한 구현예들에서, 렌즈 보상 모듈(232)은 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖는 뒤틀린 이미지를 수신하며, 여기서, 복수의 픽셀들은 복수의 개개의 픽셀 값들, 및 디스플레이 공간 내의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관된다. 디스플레이 공간 및 뒤틀린 공간이 상이하기 때문에 그리고 출력 이미지가 (뒤틀린 공간이 아니라) 디스플레이 공간에서 아이피스에 의해 왜곡되기 때문에, 렌즈 보상 모듈(232)은 이웃한 픽셀들의 픽셀 값들에 부가하여 스케일링 인자들을 사용해서, 전치왜곡된 이미지의 픽셀에 대한 픽셀 값을 생성한다. 특정 픽셀에 대해, 뒤틀린 이미지 내의 픽셀 위치 및 스케일링 인자는 일반적으로 디스플레이 공간 내의 위치를 설명한다. 이웃 내의 상이한 픽셀들의 상이한 스케일링 인자들은 픽셀 위치들이 단독으로 표시할 것과는 상이한 거리들을 표시한다. 이들 상이한 거리들은 보간을 수행할 시에(예를 들어, 보간의 가중치들을 결정하거나 가장 가까운 이웃을 결정할 시에) 사용될 수 있다.
예를 들어, 다양한 구현예들에서, a x (x,y) 및 a y (x,y)가 픽셀 위치 (x,y)에서의 픽셀과 연관된(또는 그에 비례하거나 반비례하는) 스케일링 인자들일 경우, 전치왜곡된 이미지는 다음과 같이 계산된다:
Figure pat00016
도 20은 일부 구현예들에 따른, 이미지를 전치왜곡시키는 방법(2000)의 흐름도 표현이다. 일부 구현예들에서(그리고 일 예로서 아래에서 상세히 설명되는 바와 같이), 방법(2000)은 도 2의 디스플레이 모듈(230) 또는 렌즈 보상 모듈(232)과 같은 디스플레이 모듈(또는 그의 일부)에 의해 수행된다. 다양한 구현예들에서, 방법(2000)은 도 1의 HMD(100)와 같은 HMD 또는 도 2의 SR 파이프라인(200)과 같은 그의 일부에 의해 수행된다. 다양한 구현예들에서, 방법(2000)은 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 SR 디스플레이들을 갖는 디바이스에 의해 수행된다. 일부 구현예들에서, 방법(2000)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(2000)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다.
방법(2000)은 블록(2010)에서, 디스플레이 모듈이 디스플레이 공간에 디스플레이될 시뮬레이션된 현실(SR) 콘텐츠를 표현하는 뒤틀린 이미지를 수신하며, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖고, 여기서, 복수의 픽셀들은 복수의 개개의 픽셀 값들, 및 디스플레이 공간 내의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관되는 것으로 시작한다.
다양한 구현예들에서, 복수의 개개의 스케일링 인자들은 뒤틀린 공간과 디스플레이 공간 사이의 맵핑을 정의한다. 예를 들어, 다양한 구현예들에서, 디스플레이 공간 내의 불균일하게 이격된 구역들에 대응하는 SR 콘텐츠의 상이한 부분들은 뒤틀린 공간 내의 균일하게 이격된 구역들에 의해 표현된다.
다양한 구현예들에서, 복수의 픽셀들 각각은 별개로 수신된 픽셀 값과 각각 연관된다. 다양한 구현예들에서, 복수의 픽셀들 각각은 별개로 수신된 스케일링 인자(또는 수평 스케일링 인자 및 수직 스케일링 인자의 세트)와 각각 연관된다. 다양한 구현예들에서, 복수의 픽셀들의 복수의 타일들 각각은 별개로 수신된 스케일링 인자(또는 수평 스케일링 인자 및 수직 스케일링 인자의 세트)와 각각 연관된다. 따라서, 복수의 픽셀들(예를 들어, 단일 타일의 픽셀들)은 단일 수신된 스케일링 인자(또는 수평 스케일링 인자 및 수직 스케일링 인자의 세트)와 연관된다.
따라서, 다양한 구현예들에서, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 타일들을 포함하며, 여기서 복수의 타일들 각각은 개개의 하나 이상의 스케일링 인자들과 연관된다. 또한, 다양한 구현예들에서, 복수의 개개의 스케일링 인자들 중 하나 이상은 수평 스케일링 인자 및 수직 스케일링 인자를 포함한다.
방법(2000)은 블록(2020)에서, 디스플레이 모듈이 뒤틀린 이미지(특히, 그의 복수의 개개의 픽셀 값들), 복수의 개개의 스케일링 인자들, 및 아이피스에 의해 야기된 왜곡을 설명하는 왜곡 함수에 기초하여, 아이피스에 의해 야기된 왜곡과 역의 관계로 왜곡된 뒤틀린 이미지의 버전인 렌즈 보상된 뒤틀린 이미지를 생성하는 것으로 계속된다. 다양한 구현예들에서, 렌즈 보상된 뒤틀린 이미지는, 아이피스를 통해 디스플레이 패널 상에서 (가능하게는 렌즈 보상 이후 뒤틀리지 않은 것으로) 사용자에 의해 보여질 때, 왜곡되지 않은 것으로 나타난다. 다양한 구현예들에서, 디스플레이 모듈은 디스플레이 공간에서 중간 이미지를 생성하지 않으면서, 렌즈 보상된 뒤틀린 이미지를 생성한다. 특히, 디스플레이 모듈은 뒤틀린 이미지를 뒤틀리지 않게 하지 않으면서, 렌즈 보상된 뒤틀린 이미지를 생성한다. 따라서, 그리고 위에서 언급된 바와 같이, 디스플레이 모듈은 복수의 개개의 스케일링 인자들에 기초하여, 렌즈 보상된 뒤틀린 이미지를 생성한다.
다양한 구현예들에서, 렌즈 보상된 뒤틀린 이미지를 생성하는 것은 렌즈 보상된 뒤틀린 이미지의 복수의 픽셀들(예를 들어, 각각의 픽셀)의 픽셀 값을 결정하는 것을 포함한다. 따라서, 다양한 구현예들에서, 디스플레이 모듈은 렌즈 보상된 뒤틀린 이미지의 제1 위치에서 특정 픽셀의 픽셀 값을 결정함으로써 렌즈 보상된 뒤틀린 이미지를 생성한다. 다양한 구현예들에서, 디스플레이 모듈은 제2 위치의 이웃 내의 뒤틀린 이미지의 픽셀들의 복수의 개개의 픽셀 값들에 기초하여, 렌즈 보상된 뒤틀린 이미지의 제1 위치에서 특정 픽셀의 픽셀을 결정한다. 다양한 구현예들에서, 이웃은 제2 위치에 가장 가까운 픽셀들의 4x4 블록이다. 다양한 구현예들에서, 이웃은 픽셀들의 9x9 블록이다. 다양한 구현예들에서, 디스플레이 모듈은 제1 위치 및 아이피스의 왜곡 함수에 기초하여 제2 위치를 결정한다. 다양한 구현예들에서, 왜곡 함수는 입력 이미지의 픽셀의 픽셀 위치를 입력으로서 취하고 출력 이미지 내의 픽셀의 픽셀 위치를 출력으로서 제공하는 호모그래픽 왜곡 함수이다.
다양한 구현예들에서, 렌즈 보상된 뒤틀린 이미지의 특정 픽셀의 픽셀 값을 결정하는 것은, 뒤틀린 이미지의 대응하는 픽셀의 이웃 내의 픽셀들의 개개의 스케일링 인자들에 기초하여, 뒤틀린 이미지의 대응하는 픽셀의 이웃 내의 복수의 픽셀들의 픽셀 위치들과 제2 위치 사이의 보정된 거리들을 결정하는 것을 포함한다.
예를 들어, 스케일링 인자들의 부재 시에, (0, 2)에서의 제2 위치와 (0, 1)에서의 제1 픽셀 사이의 거리는 제2 위치와 (0, 3)에서의 제2 픽셀 사이의 거리, 예를 들어 1과 동일한 것으로 결정될 수 있다. 그러나, 제1 픽셀이 1의 스케일링 인자와 연관되고 제2 픽셀이 4의 스케일링 인자와 연관되면, 제2 위치와 제1 픽셀 사이의 보정된 거리(예를 들어, 1)는 제2 위치와 제2 픽셀 사이의 보정된 거리(예를 들어, 4)보다 작다.
다양한 구현예들에서, 렌즈 보상된 뒤틀린 이미지의 특정 픽셀의 픽셀 값을 결정하는 것은, 제2 위치의 이웃 내의 뒤틀린 이미지의 픽셀들의 개개의 스케일링 인자들에 기초하여, 제2 위치의 이웃 내의 뒤틀린 이미지의 복수의 개개의 픽셀 값들 중 하나를 선택하는 것을 포함한다. 따라서, 다양한 구현예들에서, 디스플레이 모듈은 가장 가까운 이웃 보간을 수행하며, 가장 가까운 이웃은 스케일링 인자들에 기초하는 보정된 거리들에 기초하여 결정된다.
다양한 구현예들에서, 렌즈 보상된 뒤틀린 이미지의 특정 픽셀의 픽셀 값을 결정하는 것은, 제2 위치의 이웃 내의 뒤틀린 이미지의 픽셀들의 개개의 스케일링 인자들에 기초하여, 제2 위치의 이웃 내의 뒤틀린 이미지의 픽셀들의 복수의 개개의 픽셀 값들을 평균하는 것(예를 들어, 그의 가중 평균을 결정하는 것)을 포함한다. 따라서, 다양한 구현예들에서, 디스플레이 모듈은 (선형 보간이 일 예인) 다항식 보간을 수행하며, 가중치들은 스케일링 인자들에 기초하는 보정된 거리들에 기초하여 결정된다. 따라서, 다양한 구현예들에서, 렌즈 보상된 뒤틀린 이미지의 특정 픽셀의 픽셀 값은 제2 위치와 픽셀들 사이의 보정된 거리에 의해 가중되는 픽셀들의 픽셀 값의 가중 평균이다.
도 2에 관해 위에서 설명된 바와 같이, 렌즈 보상 모듈(232)은 렌즈 보상된 뒤틀린 이미지(및 개개의 스케일링 인자들)를 패널 보상 모듈(234)에 제공한다. 패널 보상 모듈(234)은 렌즈 보상된 뒤틀린 이미지를 디스플레이 패널(240)에 의해 판독될 패널 데이터로 변환한다. 따라서, 다양한 구현예들에서, 패널 보상 모듈(234)은 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖는 뒤틀린 이미지(예를 들어, 렌즈 보상된 뒤틀린 이미지)를 수신하며, 여기서, 복수의 픽셀들은 복수의 개개의 픽셀 값들, 및 디스플레이 공간 내의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관된다.
디스플레이 패널(240)은 디스플레이 공간 내의 개개의 위치들에 위치된 M×N 픽셀들의 매트릭스를 포함한다. 디스플레이 패널(240)은 패널 데이터에 의해 설명된 바와 같이 픽셀들 각각으로부터 광을 방출함으로써, 디스플레이된 이미지를 디스플레이한다. 다양한 구현예들에서, 패널 데이터는 디스플레이 패널(240)의 각각의 픽셀에 대한 픽셀 값을 포함한다. 예를 들어, 패널 데이터는 디스플레이 패널(240)의 특정 픽셀에 대한 픽셀 값을 포함할 수 있고, 특정 픽셀은 그 픽셀 값에 따라 광을 방출한다. 다양한 구현예들에서, 패널 데이터는 디스플레이 패널(240)의 픽셀들의 복수의 블록들 각각에 대한 픽셀 값을 포함한다. 예를 들어, 패널 데이터는 디스플레이 패널(240)의 픽셀들의 2x2 블록에 대한 픽셀 값을 포함할 수 있고, 블록의 픽셀들 각각은 그 픽셀 값에 따라 광을 방출한다.
다양한 구현예들에서, 패널 데이터는 복수의 해상도 구역들에 관한 데이터를 포함한다. 각각의 해상도 구역은 정수들(예를 들어, 단일 해상도-감소 인자 또는 수평 해상도-감소 인자 및 수직 해상도 감소 계수 둘 모두)인 하나 이상의 해상도-감소 인자들 및 경계에 의해 정의된다.
도 21a는 복수의 해상도 구역들(2111A 내지 2111C)을 표시하는 패널 데이터(2110)의 표현을 예시한다. 복수의 해상도 구역들(2111A 내지 2111C)은 제1 경계와 1의 해상도-감소 인자를 갖는 제1 해상도 구역(2111A)을 포함한다. 1의 해상도-감소 인자에 의해, 해상도는 디스플레이 패널(240)의 최대 해상도로부터 감소되지 않고, 수신된 각각의 픽셀 값은 디스플레이 패널(240)의 단일 픽셀에 의해 디스플레이된다. 복수의 해상도 구역들(2111A 내지 2111C)은 제2 경계와 2의 해상도-감소 인자를 갖는 제2 해상도 구역(2111B)을 포함한다. 제2 해상도 구역(2111B)의 제2 경계는 2개의 부분들, 즉 제1 해상도 구역(2111A)의 제1 경계와 동일한 위치에 있는 내측 부분 및 제2 해상도 구역(2111B)을 둘러싸는 외측 부분을 포함한다. 2의 해상도-감소 인자에 의해, 해상도는 디스플레이 패널(240)의 최대 해상도의 절반으로 감소되고, 디스플레이 패널(240)에 의해 수신된 각각의 픽셀 값은 디스플레이 패널(240)의 픽셀들의 2x2 블록에 의해 디스플레이된다. 복수의 해상도 구역들(2111A 내지 2111C)은 제3 경계와 4의 해상도-감소 인자를 갖는 제3 해상도 구역(2111C)을 포함한다. 제3 해상도 구역(2111C)의 제3 경계는 2개의 부분들, 즉 제2 해상도 구역(2111B)의 제2 경계의 외측 부분과 동일한 위치에 있는 내측 부분 및 디스플레이 패널(240)의 에지에 있는 외측 부분을 포함한다. 4의 해상도-감소 인자에 의해, 해상도는 디스플레이 패널(240)의 최대 해상도의 1/4로 감소되고, 디스플레이 패널(240)에 의해 수신된 각각의 픽셀 값은 디스플레이 패널(240)의 픽셀들의 4x4 블록에 의해 디스플레이된다.
다양한 구현예들에서, 복수의 해상도 구역들을 표시하는 패널 데이터는 다양한 형태들을 취한다. 예를 들어, 다양한 구현예들에서, 복수의 해상도 구역들(2111A 내지 2111C)은 제1 해상도 구역(2111A)의 위치(예를 들어, 상단-좌측 픽셀의 위치), 제1 해상도 구역(2111A)의 크기, 제2 해상도 구역(2111B)의 위치(예를 들어, 상단-좌측 픽셀의 위치), 및 제2 해상도 구역이 제1 해상도 구역(2111A)을 포함했다면 제2 해상도 구역(2111B)의 크기로서 통신된다. 제3 해상도 구역(2111C)의 경계는 디스플레이 패널(240)의 나머지를 차지하는 것으로 추론적으로 결정될 수 있다. 유사하게, 해상도-감소 인자들은 1, 2, 및 4로서 추론적으로 결정될 수 있다.
도 21b는 복수의 해상도 구역들(2121A 내지 2121Y)을 표시하는 패널 데이터(2120)의 표현을 예시한다. 복수의 해상도 구역들(2121A 내지 2121Y)은 제1 경계, 1의 수평 해상도-감소 인자 및 1의 수직 해상도-감소 인자를 갖는 제1 해상도 구역(2121M)을 포함한다. 1의 수평 해상도-감소 인자 및 수직 해상도-감소 인자 둘 모두에 의해, 해상도는 디스플레이 패널(240)의 최대 해상도로부터 감소되지 않고, 수신된 각각의 픽셀 값은 디스플레이 패널(240)의 단일 픽셀에 의해 디스플레이된다. 따라서, 다양한 구현예들에서, 복수의 해상도 구역들은 해상도가 감소되지 않는 해상도 구역을 포함한다.
복수의 해상도 구역들(2121A 내지 2121Y)은 제2 경계, 2의 수평 해상도-감소 인자, 및 1의 수직 해상도-감소 인자를 갖는 제2 해상도 구역(2121N)을 포함한다. 2의 수평 해상도-감소 인자 및 1의 수직 해상도-감소 인자에 의해, 수평 해상도는 디스플레이 패널(240)의 최대 수평 해상도의 절반이고, 수직 해상도는 디스플레이 패널(240)의 최대 수직 해상도로부터 감소되지 않으며, 수신된 각각의 픽셀 값은 디스플레이 패널(240)의 픽셀들의 2x1 블록에 의해 디스플레이된다. 따라서, 다양한 구현예들에서, 복수의 해상도 구역들은, 해상도가 하나의 차원에서는 감소되지만 다른 차원에서는 감소되지 않는 해상도 구역을 포함한다.
복수의 해상도 구역들(2121A 내지 2121Y)은 제3 경계, 2의 수평 해상도-감소 인자, 및 2의 수직 해상도-감소 인자를 갖는 제3 해상도 구역(1221S)을 포함한다. 2의 수평 해상도-감소 인자 및 수직 해상도-감소 인자 둘 모두에 의해, 해상도는 디스플레이 패널(240)의 최대 해상도의 절반이고, 수신된 각각의 픽셀 값은 디스플레이 패널(240)의 픽셀들의 2x2 블록에 의해 디스플레이된다. 따라서, 다양한 구현예들에서, 복수의 해상도 구역들은 해상도가 차원들 둘 모두에서 감소되는 해상도 구역을 포함한다.
복수의 해상도 구역들(2121A 내지 2121Y)은 4의 수평 해상도-감소 인자 및 2의 수직 해상도 감소 인자를 갖는 제4 해상도 구역(1221T)을 포함한다. 4의 수평 해상도-감소 인자 및 2의 수직 해상도-감소 인자에 의해, 수평 해상도는 디스플레이 패널(240)의 최대 수평 해상도의 1/4이고, 수직 해상도는 디스플레이 패널(240)의 최대 수직 해상도의 절반이며, 수신된 각각의 픽셀 값은 디스플레이 패널(240)의 픽셀들의 4x2 블록에 의해 디스플레이된다. 따라서, 다양한 구현예들에서, 복수의 해상도 구역들은, 해상도가 하나의 차원에서는 제1 양으로 감소되고 다른 차원에서는 제2 양(제1 양과는 상이함)으로 감소되는 해상도 구역을 포함한다.
위에서 언급된 바와 같이, 다양한 구현예들에서, 복수의 해상도 구역들을 표시하는 패널 데이터는 다양한 형태들을 취한다. 예를 들어, 다양한 구현예들에서, 복수의 해상도 구역들(2121A 내지 2121Y)은 각각의 해상도 구역의 위치, 각각의 해상도 구역의 크기, 및 대응하는 수평 및 수직 해상도-감소 인자들로서 통신된다. 다양한 구현예들에서, 해상도 구역들의 위치들은 크기로부터 추론될 수 있다(예를 들어, 제1 해상도 구역은 상단-좌측에 위치되고, 제2 해상도 구역은 제1 해상도 구역의 우측 및 그에 인접하게 위치되고, 제3 해상도 구역은 제2 해상도 구역의 우측 및 그에 인접하게 위치되고, 제4 해상도 구역은 제3 해상도 구역의 우측 및 그에 인접하게 위치되고, 제5 해상도 구역은 제4 해상도 구역의 우측 및 그에 인접하게 위치되고, 6 해상도 구역은 제1 해상도 구역에 인접하게 그리고 그 아래에 위치되는 등의 식이다).
다시 도 2를 참조하면, 패널 보상 모듈(234)은 뒤틀린 이미지 및 스케일링 인자들에 기초하여 패널 데이터를 생성한다. 위에서 설명된 바와 같이, 다양한 구현예들에서, 스케일링 인자들은 렌더링 해상도 함수에 기초하여 (렌더링 모듈(210)에 의해) 생성된다. 따라서, 스케일링 인자들은, 디스플레이된 이미지의 해상도를 디스플레이 공간 내의 위치의 함수로서 일반적으로 설명하는 해상도 함수를 정의한다. 유사하게, 해상도 구역들(예를 들어, 그들의 위치, 크기, 및 감소-해상도 인자들)은 디스플레이된 이미지의 해상도를 디스플레이 공간 내의 위치의 함수로서 설명하는 해상도 함수를 정의한다.
도 22는 스케일링 인자들 및 해상도 구역들에 의해 정의되는 예시적인 해상도 함수들의 그래프(2200)를 예시한다. 그래프(2200)는 뒤틀린 이미지와 연관된 스케일링 인자들에 의해 정의되는 제1 해상도 함수(2210)를 포함한다. 그래프(2200)는 대응하는 해상도-감소 인자들을 갖는 복수의 해상도 구역들에 의해 정의되는 제2 해상도 함수(2220)를 포함한다.
도 23은 스케일링 인자들 및 해상도 구역들에 의해 정의되는 예시적인 해상도 함수들의 다른 그래프(2300)를 예시한다. 그래프(2300)는 뒤틀린 이미지와 연관된 스케일링 인자들에 의해 정의되는 제1 해상도 함수(2310)를 포함한다. 그래프(2300)는 대응하는 해상도-감소 인자들을 갖는 복수의 해상도 구역들에 의해 정의되는 제2 해상도 함수(2320)를 포함한다.
다양한 구현예들에서, 패널 보상 모듈(234)은, 해상도 구역들에 의해 정의된 해상도 함수가 모든 위치들에서, 스케일링 인자들에 의해 정의된 해상도 함수보다 더 크도록 스케일링 인자들에 기초하여, 해상도 구역들의 경계들 및 해상도 구역들의 대응하는 해상도-감소 인자들을 결정한다. 이러한 방식으로, 해상도의 변화로 인한 해상도 구역들의 에지에서의 아티팩트들이 최소화된다.
다양한 구현예들에서, 패널 보상 모듈(234)은 1의 해상도-감소 인자(또는 수평 해상도-감소 인자 및 수직 해상도-감소 인자(둘 모두 1과 동일함))를 갖는 풀-해상도 해상도 구역의 경계(예를 들어, 크기 및 위치)를 결정한다. 다양한 구현예들에서, 풀-해상도 해상도 구역의 중심은 스케일링 인자들에 의해 표시된 해상도 함수의 최대치의 중심(예를 들어, 사용자가 보고 있는 곳)에 위치된다.
다양한 구현예들에서, 풀-해상도 해상도 구역의 크기는 다양한 인자들에 기초하여 결정된다. 예를 들어, 다양한 구현예들에서, 풀-해상도 해상도 구역의 크기는 스케일링 인자들에 의해 표시된 해상도 함수의 피크 폭에 기초하여 결정된다. 다양한 구현예들에서, 풀-해상도 해상도 구역의 크기는 눈 추적 데이터, 예를 들어, 사용자의 시선이 얼마나 많이 이동하고 있는지에 기초하여 결정된다. 다양한 구현예들에서, 풀-해상도 해상도 구역의 크기는 눈 추적 데이터의 특성을 표시하는 눈 추적 메타데이터에 기초하여 결정된다.
다양한 구현예들에서, 눈 추적 메타데이터는 눈 추적 데이터의 신뢰도를 표시하는 데이터를 포함한다. 예를 들어, 다양한 구현예들에서, 눈 추적 메타데이터는 눈 추적 데이터가 사용자의 시선을 정확하게 표시하는 믿음의 측정을 제공한다. 다양한 구현예들에서, 눈 추적 데이터의 신뢰도를 표시하는 데이터는 눈 추적 데이터의 정확도를 표시하는 데이터를 포함한다. 다양한 구현예들에서, 눈 추적 데이터의 신뢰도를 표시하는 데이터는 눈 추적 데이터의 레이턴시(예를 들어, 눈 추적 데이터가 생성되는 시간과 눈 추적 데이터가 수신되는 시간 사이의 차이)를 표시하는 데이터를 포함한다. 다양한 구현예들에서, 눈 추적 데이터는 사용자의 시선의 예측을 표시하는 데이터를 포함하고, 눈 추적 데이터의 신뢰도를 표시하는 데이터는 예측의 신뢰도를 표시하는 데이터를 포함한다. 다양한 구현예들에서, 사용자의 시선의 예측을 표시하는 데이터는 과거에 캡처된 이미지들에 대한 사용자의 시선의 과거의 측정들에 기초한다. 다양한 구현예들에서, 사용자의 시선의 예측은, 연속적인 주시, 매끄러운 추격, 또는 단속성 운동 등으로서의 사용자의 시선의 카테고리화된 과거의 모션에 기초한다. 다양한 구현예들에서, 예측의 신뢰도는 이러한 카테고리화에 기초한다. 특히, 다양한 구현예들에서, 예측의 신뢰도는, 과거의 모션이 단속성 운동으로 카테고리화될 때보다 과거의 모션이 연속적인 주시 또는 매끄러운 추격으로서 카테고리화될 때 더 높다. 따라서, 다양한 구현예들에서, 풀-해상도 해상도 구역의 크기는 눈 추적 데이터의 신뢰도를 표시하는 데이터에 기초하여 결정된다. 예를 들어, 다양한 구현예들에서, 풀-해상도 해상도 구역의 크기는 신뢰도가 더 작을 때 더 크다.
다양한 구현예들에서, 눈 추적 메타데이터는 사용자의 하나 이상의 생체측정들, 및 특히, 눈 추적 메타데이터 또는 그의 신뢰도에 영향을 주는 생체측정들을 표시하는 데이터를 포함한다. 특히, 다양한 구현예들에서, 사용자의 생체측정들은 눈 해부학적 구조, 인종/물리학적 식술, 눈 색상, 연령, 시각적 보조기구들(예를 들어, 교정 렌즈들), 메이크업(예를 들어, 마스카라), 의학적 질환, 이력 시선 변동, 입력 선호도들 또는 교정, 헤드셋 위치/배향, 동공 확장/중심-시프트, 및/또는 눈꺼풀 위치 중 하나 이상을 포함한다. 따라서, 다양한 구현예들에서, 풀-해상도 해상도 구역의 크기는 사용자의 하나 이상의 생체측정들에 기초하여 결정된다.
다양한 구현예들에서, 눈 추적 메타데이터는 눈 추적 데이터가 생성되었던 사용자의 환경의 하나 이상의 조건들을 표시하는 데이터를 포함한다. 특히, 다양한 구현예들에서, 환경 조건들은 진동, 주변 온도, IR 방향 광, 또는 IR 광 세기 중 하나 이상을 포함한다. 따라서, 다양한 구현예들에서, 풀-해상도 해상도 구역의 크기는 사용자의 환경의 하나 이상의 조건들에 기초하여 결정된다.
다양한 구현예들에서, 결정된 풀-해상도 해상도 구역의 크기(예를 들어, 도 22의 해상도 함수(2220)의 상단의 폭)에 따라, 나머지 해상도 구역들의 경계들은, 해상도 구역들에 의해 표시된 해상도 함수가 최소화되면서 여전히 스케일링 인자들에 의해 표시된 해상도 함수보다 더 크도록 결정된다. 다양한 구현예들에서, 최소화는, 해상도-감소 인자들이 정수들(또는 그의 서브세트, 예를 들어 단지 1, 2, 또는 4)이라는 사실에 의해 제한된다. 다양한 구현예들에서, 최소화는, 해상도 구역들의 크기가 감소-해상도 인자들의 배수이어야 한다는 사실에 의해 제한된다(예를 들어, 2의 해상도-감소 인자를 갖는 해상도 구역은 2Ux2V이어야 하며, 여기서, UV는 정수들이다). 다양한 구현예들에서, 최소화는, 해상도 구역들의 전체 크기가 디스플레이 패널의 크기와 동일해야 한다는 사실에 의해 제한된다.
다양한 구현예들에서, 다른 해상도 구역들의 크기는 스케일링 인자들에 의해 표시된 해상도 함수의 형상에 기초한다. 예를 들어, 도 23에서, 스케일링 인자들에 의해 표시된 해상도 함수(2310)는 거리들의 세트에서의 스텝들을 갖는 만곡된 스텝 함수에 따라 초점 윈도우로부터의 거리의 함수로서 감소하고, 해상도 구역들에 의해 표시된 해상도 함수(2320)는 거리들의 세트에서의 스텝들을 갖는 스텝 함수에 따라 초점 윈도우로부터의 거리의 함수로서 감소한다.
도 24는 일부 구현예들에 따른, 패널 데이터를 생성하는 방법(2400)의 흐름도 표현이다. 일부 구현예들에서(그리고 일 예로서 아래에서 상세히 설명되는 바와 같이), 방법(2400)은 도 2의 디스플레이 모듈(230) 또는 패널 보상 모듈(234)과 같은 디스플레이 모듈(또는 그의 일부)에 의해 수행된다. 다양한 구현예들에서, 방법(2400)은 도 1의 HMD(100)와 같은 HMD 또는 도 2의 SR 파이프라인(200)과 같은 그의 일부에 의해 수행된다. 다양한 구현예들에서, 방법(2400)은 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 SR 디스플레이들을 갖는 디바이스에 의해 수행된다. 일부 구현예들에서, 방법(2400)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(2400)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다.
방법(2400)은 블록(2410)에서, 디스플레이 모듈이 디스플레이 공간에 디스플레이될 시뮬레이션된 현실(SR) 콘텐츠를 표현하는 뒤틀린 이미지(예를 들어, 렌즈 보상된 뒤틀린 이미지)를 수신하며, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖고, 여기서, 복수의 픽셀들은 복수의 개개의 픽셀 값들, 및 디스플레이 공간 내의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관되는 것으로 시작한다.
다양한 구현예들에서, 복수의 개개의 스케일링 인자들은 뒤틀린 공간과 디스플레이 공간 사이의 맵핑을 정의한다. 예를 들어, 다양한 구현예들에서, 디스플레이 공간 내의 불균일하게 이격된 구역들에 대응하는 SR 콘텐츠의 상이한 부분들은 뒤틀린 공간 내의 균일하게 이격된 구역들에 의해 표현된다.
다양한 구현예들에서, 복수의 픽셀들 각각은 별개로 수신된 픽셀 값과 각각 연관된다. 다양한 구현예들에서, 복수의 픽셀들 각각은 별개로 수신된 스케일링 인자(또는 수평 스케일링 인자 및 수직 스케일링 인자를 포함하는 스케일링 인자들의 세트)와 각각 연관된다. 다양한 구현예들에서, 복수의 픽셀들의 복수의 타일들 각각은 별개로 수신된 스케일링 인자(또는 수평 스케일링 인자 및 수직 스케일링 인자를 포함하는 스케일링 인자들의 세트)와 각각 연관된다. 따라서, 복수의 픽셀들(예를 들어, 단일 타일의 픽셀들)은 단일 수신된 스케일링 인자(또는 단일 수평 스케일링 인자 및 단일 수직 스케일링 인자를 포함하는 스케일링 인자들의 세트)와 연관된다.
따라서, 다양한 구현예들에서, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 타일들을 포함하며, 여기서 복수의 타일들 각각은 개개의 하나 이상의 스케일링 인자들과 연관된다. 또한, 다양한 구현예들에서, 복수의 개개의 스케일링 인자들 중 하나 이상은 수평 스케일링 인자 및 수직 스케일링 인자를 포함한다.
다양한 구현예들에서, 복수의 스케일링 인자들 중 적어도 하나는 정수가 아니다. 예를 들어, 2개의 탄젠트 함수들 사이의 차이로서 스케일링 인자들을 생성할 시에, 복수의 스케일링 인자들 중 대부분은 정수들이 아닐 것이다.
방법(2400)은 블록(2420)에서, 디스플레이 모듈이 복수의 각각의 스케일링 파라미터들에 기초하여, 복수의 해상도 구역들에 대해, 디스플레이 공간 내의 복수의 개개의 경계들 및 복수의 개개의 해상도-감소 인자들을 결정하며, 여기서 복수의 개개의 해상도-감소 인자들은 정수들인 것으로 계속된다. 다양한 구현예들에서, 복수의 개개의 해상도-감소 인자들은 특정 해상도 구역에 대해 단일 해상도-감소 인자를 포함한다. 다양한 구현예들에서, 복수의 개개의 해상도-감소 인자들은 특정 해상도 구역에 대해, 수평 해상도-감소 인자 및 수직 해상도-감소 인자를 포함한다. 다양한 구현예들에서, 복수의 개개의 해상도-감소 인자들은 1의 제1 해상도-감소 인자, 2의 제2 해상도-감소 인자, 및 4의 제3 해상도-감소 인자를 포함한다.
복수의 해상도-감소 인자들은 디스플레이 공간 내의 복수의 개개의 위치들 각각에서의 해상도를 표시한다(일반적으로 해상도 함수를 설명함). 유사하게, 복수의 개개의 스케일링 인자들은 디스플레이 공간 내의 복수의 개개의 위치들 각각에서의 해상도를 표시한다(일반적으로 해상도 함수를 설명함). 다양한 구현예들에서, 복수의 개개의 해상도-감소 인자들은, 복수의 개개의 스케일링 인자들에 의해 표시된 디스플레이 공간 내의 복수의 개개의 위치들에서의 개개의 해상도들보다 큰 디스플레이 공간 내의 복수의 개개의 위치들 각각에서의 해상도를 표시한다.
예를 들어, 다양한 구현예들에서, 복수의 개개의 스케일링 인자들에 의해 표시된 디스플레이 공간 내의 복수의 개개의 위치들에서의 개개의 해상도들은 (예를 들어, 도 22의 해상도 함수(2210)에 의해 도시된 바와 같이) 순감소 함수(strictly decreasing function)에 따라 초점 윈도우로부터의 거리의 함수로서 감소하고, 개개의 해상도-감소 인자들에 의해 표시된 디스플레이 공간 내의 복수의 개개의 위치들 각각에서의 해상도는 (예를 들어, 도 22의 해상도 함수(2220)에 의해 도시된 바와 같이) 스텝 함수에 따라 초점 윈도우로부터의 거리의 함수로서 감소한다.
다른 예로서, 다양한 구현예들에서, 복수의 개개의 스케일링 인자들에 의해 표시된 디스플레이 공간 내의 복수의 개개의 위치들에서의 개개의 해상도들은 (예를 들어, 도 23의 해상도 함수(2310)에 의해 도시된 바와 같이) 거리들의 세트에서의 스텝들을 갖는 만곡된 스텝 함수에 따라 초점 윈도우로부터의 거리의 함수로서 감소하고, 개개의 해상도-감소 인자들에 의해 표시된 디스플레이 공간 내의 복수의 개개의 위치들 각각에서의 해상도는 (예를 들어, 도 23의 해상도 함수(2320)에 의해 도시된 바와 같이) 거리들의 세트에서의 스텝들을 갖는 스텝 함수에 따라 초점 윈도우로부터의 거리의 함수로서 감소한다.
다양한 구현예들에서, 복수의 해상도 구역들 중 하나 이상, 특히 풀-해상도 해상도 구역의 크기는 눈 추적 데이터에 기초한다. 다양한 구현예들에서, 복수의 해상도 구역들 중 하나 이상, 특히 풀-해상도 해상도 구역의 크기는 눈 추적 데이터의 신뢰도와 같은 눈 추적 메타데이터에 기초한다.
방법(2400)은 블록(2430)에서, 디스플레이 모듈이 디스플레이 공간 내의 복수의 개개의 경계들, 복수의 개개의 해상도-감소 인자들, 및 복수의 개개의 픽셀 값들에 기초한 대응하는 픽셀 값들을 표시하는 데이터를 송신하는 것으로 계속된다. 다양한 구현예들에서, 송신된 데이터는 패널 데이터이다. 다양한 구현예들에서, 송신된 데이터는 디스플레이 패널로 송신된다.
도 25는 일부 구현예들에 따른, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 방법(2500)의 흐름도 표현이다. 일부 구현예들에서(그리고 일 예로서 아래에서 상세히 설명되는 바와 같이), 방법(2500)은 도 2의 이송 모듈(220) 또는 디스플레이 모듈(230)과 같은 모듈(또는 그의 일부)에 의해 수행된다. 다양한 구현예들에서, 방법(2500)은 도 1의 HMD(100)와 같은 HMD 또는 도 2의 SR 파이프라인(200)(또는 그의 일부)과 같은 그의 일부에 의해 수행된다. 다양한 구현예들에서, 방법(2500)은 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 SR 디스플레이들을 갖는 디바이스에 의해 수행된다. 일부 구현예들에서, 방법(2500)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(2500)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다.
방법(2500)은 블록(2510)에서, 모듈이 디스플레이 공간에 디스플레이될 시뮬레이션된 현실(SR) 콘텐츠를 표현하는 뒤틀린 이미지를 수신하며, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖고, 여기서, 복수의 픽셀들은 복수의 개개의 픽셀 값들, 및 디스플레이 공간 내의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관되는 것으로 시작한다.
다양한 구현예들에서, 복수의 개개의 스케일링 인자들은 뒤틀린 공간과 디스플레이 공간 사이의 맵핑을 정의한다. 예를 들어, 다양한 구현예들에서, 디스플레이 공간 내의 상이한 양들의 영역에 대응하는 SR 콘텐츠의 불균일하게 이격된 구역들은 뒤틀린 이미지 내의 동일한 양의 영역에 의해 표현된다.
다양한 구현예들에서, 복수의 픽셀들 각각은 별개로 수신된 픽셀 값과 각각 연관된다. 다양한 구현예들에서, 복수의 픽셀들 각각은 별개로 수신된 스케일링 인자(또는 수평 스케일링 인자 및 수직 스케일링 인자를 포함하는 스케일링 인자들의 세트)와 각각 연관된다. 다양한 구현예들에서, 복수의 픽셀들의 복수의 타일들 각각은 별개로 수신된 스케일링 인자(또는 수평 스케일링 인자 및 수직 스케일링 인자를 포함하는 스케일링 인자들의 세트)와 각각 연관된다. 따라서, 복수의 픽셀들(예를 들어, 단일 타일의 픽셀들)은 단일 수신된 스케일링 인자(또는 단일 수평 스케일링 인자 및 단일 수직 스케일링 인자를 포함하는 스케일링 인자들의 세트)와 연관된다.
따라서, 다양한 구현예들에서, 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 타일들을 포함하며, 여기서 복수의 타일들 각각은 개개의 하나 이상의 스케일링 인자들과 연관된다. 또한, 다양한 구현예들에서, 복수의 개개의 스케일링 인자들 중 하나 이상은 수평 스케일링 인자 및 수직 스케일링 인자를 포함한다.
방법(2500)은 블록(2520)에서, 모듈이 프로세싱된 뒤틀린 이미지를 생성하기 위해 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 것으로 계속된다. 다양한 구현예들에서, 뒤틀린 이미지와 같은 프로세싱된 뒤틀린 이미지는 뒤틀린 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 포함한다. 다양한 구현예들에서, 복수의 픽셀들은 (뒤틀린 이미지의 복수의 개개의 픽셀 값들과는 상이할 수 있는) 복수의 개개의 픽셀 값들, 및 디스플레이 공간 내의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관된다.
다양한 구현예들에서, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 것은 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 것을 배제한다. 따라서, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 것은, 디스플레이 공간에서 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 포함하는 디스플레이 공간 이미지로 뒤틀린 이미지를 변환하는 것을 배제하고, 그러한 디스플레이 공간 이미지를 프로세싱하는 것을 배제하며, 프로세싱된 디스플레이 공간 이미지를 뒤틀린 공간 내의 프로세싱된 뒤틀린 이미지로 변환하는 것을 배제한다. 이들 단계들(예를 들어, 변환, 프로세싱, 및 역변환)을 회피하는 것은 상당한 프로세싱 시간 및 전력을 절약한다. 따라서, HMD와 같은 모바일 디바이스에서, 디스플레이 공간 내보다는 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱함으로써 배터리 전력이 절약된다.
다양한 구현예들에서, 뒤틀린 이미지는, 뒤틀린 이미지를 생성하는 렌더링 모듈로부터, 프로세싱된 뒤틀린 이미지에 기초한 이미지를 뒤틀린 공간에 디스플레이하는 디스플레이 패널로 완전히 프로세싱된다. 따라서, 다양한 구현예들에서, (블록(2510)에서) 뒤틀린 이미지를 수신하는 것은 렌더링 모듈로부터 뒤틀린 이미지를 수신하는 것을 포함한다. 일부 구현예들에서, (아래의 블록(2530)에서 설명되는 바와 같이) 프로세싱된 뒤틀린 이미지를 송신하는 것은 프로세싱된 뒤틀린 이미지를 디스플레이 패널에 송신하는 것을 포함한다. 다양한 구현예들에서, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 것은 뒤틀린 공간에서 복수의 프로세스들에 따라 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 것을 포함한다(예를 들어, 압축, 에러-보정 코딩, 왜곡[예컨대, 렌즈 보상], 필터링 등 중 2개 이상이 뒤틀린 공간에서 수행된다).
다양한 구현예들에서, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 것은 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 압축하는 것을 포함한다. 예들은 도 15에 관해 위에서 설명되어 있다. 다양한 구현예들에서, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 것은 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 에러-보정 코딩하는 것을 포함한다. 예들은 도 15에 관해 위에서 설명되어 있다.
다양한 구현예들에서, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 것은 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 왜곡시키는 것을 포함한다. 예들은 도 20에 관해 위에서 설명되어 있다.
다양한 구현예들에서, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 것은 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 필터링하는 것을 포함한다. 예를 들어, 1들의 정규화된 3x3 매트릭스에 의해 정의된 간단한 저역 통과 필터를 적용하는 것은, 고해상도를 표시하는 스케일링 인자를 갖는 픽셀들(여기서, 픽셀은 디스플레이 공간에서 더 작은 영역을 표현함)과 비교하여 저해상도를 표시하는 스케일링 인자를 갖는 픽셀들(여기서, 픽셀은 디스플레이 공간에서 더 큰 영역을 표현함)을 부적절하게 가중할 것이다. 따라서, 다양한 구현예들에서, 복수의 스케일링 인자들에 기초하여 뒤틀린 공간 내의 뒤틀린 이미지를 필터링하는 것은 특정 픽셀 값에 대해, 필터링된 픽셀 값을 이웃한 픽셀들의 이웃한 픽셀 값들의 가중 합으로서 결정하는 것을 포함하며, 여기서, 가중치들은 필터 커널(예를 들어, 1들의 정규화된 매트릭스, 가우시안 블러(blur) 필터 커널) 및 이웃한 픽셀들의 개개의 스케일링 인자들에 기초한다.
다양한 구현예들에서, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 것은 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 색상 보정하는 것을 포함한다.
따라서, 다양한 구현예들에서, 뒤틀린 공간 내의 뒤틀린 이미지를 프로세싱하는 것(예를 들어, 뒤틀린 이미지를 왜곡시키거나, 필터링하거나, 색상 보정하는 것)은 뒤틀린 이미지의 특정 픽셀에 대해, 특정 픽셀의 이웃 내의 뒤틀린 이미지의 픽셀들의 개개의 픽셀 값들 및 특정 픽셀의 이웃 내의 뒤틀린 이미지의 픽셀들의 개개의 스케일링 인자들에 기초하여, 프로세싱된 뒤틀린 이미지의 (예를 들어, 뒤틀린 공간 내의 동일한 위치에 있는) 대응하는 픽셀의 픽셀 값을 결정하는 것을 포함한다.
방법(2500)은 블록(2530)에서, 모듈이 프로세싱된 뒤틀린 이미지를 송신하는 것으로 계속된다. 다양한 구현예들에서, 모듈은 프로세싱된 뒤틀린 이미지를 개개의 복수의 스케일링 인자들과 함께 송신한다.
도 26은 일부 구현예들에 따른, 복수의 스케일링 인자들에 기초하여, 뒤틀린 이미지를 프로세싱하는 방법(2600)의 흐름도 표현이다. 일부 구현예들에서(그리고 일 예로서 아래에서 상세히 설명되는 바와 같이), 방법(2600)은 도 2의 이송 모듈(220) 또는 디스플레이 모듈(230)과 같은 모듈(또는 그의 일부)에 의해 수행된다. 다양한 구현예들에서, 방법(2600)은 도 1의 HMD(100)와 같은 HMD 또는 도 2의 SR 파이프라인(200)(또는 그의 일부)과 같은 그의 일부에 의해 수행된다. 다양한 구현예들에서, 방법(2600)은 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 SR 디스플레이들을 갖는 디바이스에 의해 수행된다. 일부 구현예들에서, 방법(2600)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(2600)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다.
방법(2600)은 블록(2610)에서, 모듈이 시뮬레이션된 현실(SR) 콘텐츠를 표현하는 뒤틀린 이미지를 수신하며, 뒤틀린 이미지는 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 갖고, 여기서, 복수의 픽셀들은 복수의 개개의 픽셀 값들, 및 SR 콘텐츠의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관되는 것으로 시작한다. 다양한 구현예들에서, SR 콘텐츠의 불균일하게 이격된 구역들에 대응하는 SR 콘텐츠의 상이한 부분들은 뒤틀린 이미지 내의 동일한 양의 영역에 의해 표현된다.
다양한 구현예들에서, 복수의 픽셀들 각각은 별개로 수신된 픽셀 값과 각각 연관된다. 다양한 구현예들에서, 복수의 픽셀들 각각은 별개로 수신된 스케일링 인자(또는 수평 스케일링 인자 및 수직 스케일링 인자를 포함하는 스케일링 인자들의 세트)와 각각 연관된다. 다양한 구현예들에서, 복수의 픽셀들의 복수의 타일들 각각은 별개로 수신된 스케일링 인자(또는 수평 스케일링 인자 및 수직 스케일링 인자를 포함하는 스케일링 인자들의 세트)와 각각 연관된다. 따라서, 복수의 픽셀들(예를 들어, 단일 타일의 픽셀들)은 단일 수신된 스케일링 인자(또는 단일 수평 스케일링 인자 및 단일 수직 스케일링 인자를 포함하는 스케일링 인자들의 세트)와 연관된다.
따라서, 다양한 구현예들에서, 뒤틀린 이미지는 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 타일들을 포함하며, 여기서 복수의 타일들 각각은 개개의 하나 이상의 스케일링 인자들과 연관된다. 또한, 다양한 구현예들에서, 복수의 개개의 스케일링 인자들 중 하나 이상은 수평 스케일링 인자 및 수직 스케일링 인자를 포함한다.
방법(2600)은 블록(2620)에서, 모듈이 프로세싱된 뒤틀린 이미지를 생성하기 위해 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 프로세싱하는 것으로 계속된다. 다양한 구현예들에서, 뒤틀린 이미지와 같은 프로세싱된 뒤틀린 이미지는 그리드 패턴으로 균일하게 이격된 개개의 위치들에 복수의 픽셀들을 포함한다. 다양한 구현예들에서, 복수의 픽셀들은 (뒤틀린 이미지의 복수의 개개의 픽셀 값들과는 상이할 수 있는) 복수의 개개의 픽셀 값들, 및 SR 콘텐츠의 복수의 개개의 위치들에서의 복수의 개개의 해상도들을 표시하는 복수의 개개의 스케일링 인자들과 각각 연관된다.
다양한 구현예들에서, 개개의 복수의 스케일링 인자들에 기초하여 뒤틀린 이미지를 프로세싱하는 것은, SR 콘텐츠의 균일하게 이격된 구역들에 대응하는 SR 콘텐츠의 상이한 부분들이 뒤틀리지 않은 이미지의 균일하게 이격된 구역들에 의해 표현되는 뒤틀리지 않은 이미지를 생성하는 것을 배제한다.
다양한 구현예들에서, 뒤틀린 이미지는, 복수의 개개의 스케일링 인자들에 기초하여, 뒤틀린 이미지를 생성하는 렌더링 모듈로부터, 프로세싱된 뒤틀린 이미지에 기초한 이미지를 디스플레이하는 디스플레이 패널로 완전히 프로세싱된다. 따라서, 다양한 구현예들에서, (블록(2510)에서) 뒤틀린 이미지를 수신하는 것은 렌더링 모듈로부터 뒤틀린 이미지를 수신하는 것을 포함한다. 일부 구현예들에서, (아래의 블록(2630)에서 설명되는 바와 같이) 프로세싱된 뒤틀린 이미지를 송신하는 것은 프로세싱된 뒤틀린 이미지를 디스플레이 패널에 송신하는 것을 포함한다. 다양한 구현예들에서, 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 프로세싱하는 것은 복수의 프로세스들에 따라 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 프로세싱하는 것을 포함한다(예를 들어, 압축, 에러-보정 코딩, 왜곡[예컨대, 렌즈 보상], 필터링 등 중 2개 이상이 복수의 각각의 스케일링 인자들에 기초하여 수행된다).
다양한 구현예들에서, 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 프로세싱하는 것은 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 압축하는 것을 포함한다. 예들은 도 15에 관해 위에서 설명되어 있다. 다양한 구현예들에서, 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 프로세싱하는 것은 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 에러-보정 코딩하는 것을 포함한다. 예들은 도 15에 관해 위에서 설명되어 있다.
다양한 구현예들에서, 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 프로세싱하는 것은 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 왜곡시키는 것을 포함한다. 예들은 도 20에 관해 위에서 설명되어 있다.
다양한 구현예들에서, 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 프로세싱하는 것은 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 필터링하는 것을 포함한다. 예를 들어, 1들의 정규화된 3x3 매트릭스에 의해 정의된 간단한 저역 통과 필터를 적용하는 것은, 고해상도를 표시하는 스케일링 인자를 갖는 픽셀들(여기서, 픽셀은 디스플레이 공간에서 더 작은 영역을 표현함)과 비교하여 저해상도를 표시하는 스케일링 인자를 갖는 픽셀들(여기서, 픽셀은 디스플레이 공간에서 더 큰 영역을 표현함)을 부적절하게 가중할 것이다. 따라서, 다양한 구현예들에서, 복수의 스케일링 인자들에 기초하여 뒤틀린 이미지를 필터링하는 것은 특정 픽셀 값에 대해, 필터링된 픽셀 값을 이웃한 픽셀들의 이웃한 픽셀 값들의 가중 합으로서 결정하는 것을 포함하며, 여기서, 가중치들은 필터 커널(예를 들어, 1들의 정규화된 매트릭스, 가우시안 블러 필터 커널) 및 이웃한 픽셀들의 개개의 스케일링 인자들에 기초한다.
다양한 구현예들에서, 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 프로세싱하는 것은 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 색상 보정하는 것을 포함한다.
따라서, 다양한 구현예들에서, 복수의 개개의 스케일링 인자들에 기초하여 뒤틀린 이미지를 프로세싱하는 것(예를 들어, 뒤틀린 이미지를 왜곡시키거나, 필터링하거나, 색상 보정하는 것)은 뒤틀린 이미지의 특정 픽셀에 대해, 특정 픽셀의 이웃 내의 뒤틀린 이미지의 픽셀들의 개개의 픽셀 값들 및 특정 픽셀의 이웃 내의 뒤틀린 이미지의 픽셀들의 개개의 스케일링 인자들에 기초하여, 프로세싱된 뒤틀린 이미지의 대응하는 픽셀의 픽셀 값을 결정하는 것을 포함한다.
방법(2600)은 블록(2630)에서, 모듈이 프로세싱된 뒤틀린 이미지를 송신하는 것으로 계속된다. 다양한 구현예들에서, 모듈은 프로세싱된 뒤틀린 이미지를 개개의 복수의 스케일링 인자들과 함께 송신한다.
첨부된 청구범위의 범주 내의 구현예들의 다양한 양태들이 위에서 설명되지만, 위에서 설명된 구현예들의 다양한 특징들이 광범위하게 다양한 형태들로 구현될 수 있고 위에서 설명된 임의의 특정 구조 및/또는 기능이 단지 예시적이라는 것이 명백할 것이다. 본 개시내용에 기초하여, 당업자는 본 명세서에 설명된 양태가 임의의 다른 양태들과 독립적으로 구현될 수 있고 이들 양태들 중 2개 이상이 다양한 방식들로 조합될 수 있음을 이해해야 한다. 예를 들어, 본 명세서에 기재된 임의의 수의 양태들을 사용하여 장치가 구현될 수 있고/있거나 방법이 실시될 수 있다. 부가적으로, 본 명세서에 기재된 양태들 중 하나 이상에 부가하여 또는 그 이외의 다른 구조 및/또는 기능을 사용하여 그러한 장치가 구현될 수 있고 그리고/또는 그러한 방법이 실시될 수 있다.
용어들 "제1", "제2" 등이 다양한 요소들을 설명하기 위해 본 명세서에서 사용될 수 있지만, 이들 요소들은 이들 용어들에 의해 제한되어서는 안 된다는 것이 또한 이해될 것이다. 이들 용어들은 하나의 요소를 다른 요소와 구별하는 데에만 사용된다. 예를 들어, 모든 "제1 노드"의 발생이 일관되게 재명명되고 모든 "제2 노드"의 발생이 일관되게 재명명되기만 한다면, 제1 노드는 제2 노드로 지칭될 수 있고, 유사하게, 제2 노드는 제1 노드로 지칭될 수 있으며, 이는 설명의 의미를 변경한다. 제1 노드 및 제2 노드는 둘 모두 노드들이지만, 그것들은 동일한 노드가 아니다.
본 명세서에서 사용되는 용어는 단지 특정 구현예들만을 설명하는 목적을 위한 것이고, 청구범위를 제한하도록 의도되지 않는다. 본 구현예들의 설명 및 첨부된 청구범위에 사용되는 바와 같이, 단수형들("a", "an" 및 "the")은 문맥상 명확하게 달리 나타나지 않으면 복수형들도 또한 포함하도록 의도된다. 또한, 본 명세서에서 사용되는 바와 같은 "및/또는"이라는 용어는 열거되는 연관된 항목들 중 하나 이상의 항목들의 임의의 및 모든 가능한 조합들을 나타내고 그들을 포괄하는 것임이 이해될 것이다. 본 명세서에서 사용될 때 "포함한다(comprise)" 및/또는 "포함하는(comprising)"이라는 용어들은 진술되는 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 부가를 배제하지 않는다는 것이 추가로 이해될 것이다.
본 명세서에서 사용되는 바와 같이, 맥락에 의존하여, 언급된 선행 조건이 사실"인 경우(if)"라는 용어는 그가 사실"일 때(when)", 그가 사실"일 시(upon)" 또는 그가 사실"이라고 결정하는 것에 응답하여(in response to determining)" 또는 그가 사실"이라는 결정에 따라(in accordance with a determination)" 또는 그가 사실"임을 검출하는 것에 응답하여(in response to detecting)"를 의미하는 것으로 해석될 수 있다. 유사하게, 어구 "[언급된 선행 조건이 사실이라고] 결정하면" 또는 "[언급된 선행 조건이 사실]이면" 또는 "[언급된 선행 조건이 사실]일 때"는 상황에 따라, 언급된 선행 조건이 사실"이라고 결정할 시에" 또는 그 조건이 사실"이라고 결정하는 것에 응답하여" 또는 그 조건이 사실"이라는 결정에 따라" 또는 그 조건이 사실"이라는 것을 검출할 시에" 또는 그 조건이 사실"이라는 것을 검출하는 것에 응답하여"를 의미하는 것으로 해석될 수 있다.

Claims (1)

  1. 제1항에 기재된 장치.
KR1020237020758A 2018-05-07 2019-05-06 동적 포비티드 파이프라인 KR20230101926A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862667733P 2018-05-07 2018-05-07
US62/667,733 2018-05-07
KR1020207032180A KR102547106B1 (ko) 2018-05-07 2019-05-06 동적 포비티드 파이프라인
PCT/US2019/030819 WO2019217261A1 (en) 2018-05-07 2019-05-06 Dynamic foveated pipeline

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207032180A Division KR102547106B1 (ko) 2018-05-07 2019-05-06 동적 포비티드 파이프라인

Publications (1)

Publication Number Publication Date
KR20230101926A true KR20230101926A (ko) 2023-07-06

Family

ID=66625277

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237020758A KR20230101926A (ko) 2018-05-07 2019-05-06 동적 포비티드 파이프라인
KR1020207032180A KR102547106B1 (ko) 2018-05-07 2019-05-06 동적 포비티드 파이프라인

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207032180A KR102547106B1 (ko) 2018-05-07 2019-05-06 동적 포비티드 파이프라인

Country Status (5)

Country Link
US (2) US11836885B2 (ko)
KR (2) KR20230101926A (ko)
CN (1) CN112106366A (ko)
DE (1) DE112019002368T5 (ko)
WO (1) WO2019217261A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115842907A (zh) * 2018-03-27 2023-03-24 京东方科技集团股份有限公司 渲染方法、计算机产品及显示装置
WO2019217261A1 (en) * 2018-05-07 2019-11-14 Zermatt Technologies Llc Dynamic foveated pipeline
KR20230144093A (ko) * 2019-07-28 2023-10-13 구글 엘엘씨 포비에이티드 메시들로 몰입형 비디오 콘텐츠를 렌더링하기 위한 방법들, 시스템들, 및 매체들
US10970811B1 (en) * 2019-09-23 2021-04-06 Facebook Technologies, Llc Axis based compression for remote rendering
US11651473B2 (en) * 2020-05-22 2023-05-16 Meta Platforms, Inc. Outputting warped images from captured video data
CN114935971A (zh) * 2021-02-05 2022-08-23 京东方科技集团股份有限公司 显示驱动芯片、显示装置和显示驱动方法
KR20220160800A (ko) 2021-05-28 2022-12-06 엘지디스플레이 주식회사 표시장치와 이를 이용한 개인 몰입형 시스템 및 모바일 단말 시스템
KR102448833B1 (ko) * 2021-10-13 2022-09-29 서울과학기술대학교 산학협력단 클라우드 vr을 위한 렌더링 방법
US11722655B2 (en) * 2021-11-30 2023-08-08 SoliDDD Corp. Low latency networking of plenoptic data
US20230300338A1 (en) * 2022-03-16 2023-09-21 Apple Inc. Resolution-based video encoding

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917549A (en) * 1996-08-07 1999-06-29 Adobe Systems Incorporated Transforming images with different pixel aspect ratios
US6252989B1 (en) * 1997-01-07 2001-06-26 Board Of The Regents, The University Of Texas System Foveated image coding system and method for image bandwidth reduction
US20050018911A1 (en) * 2003-07-24 2005-01-27 Eastman Kodak Company Foveated video coding system and method
KR101663819B1 (ko) 2008-08-20 2016-10-10 톰슨 라이센싱 정제된 깊이 맵
GB2523740B (en) 2014-02-26 2020-10-14 Sony Interactive Entertainment Inc Image encoding and display
US9621798B2 (en) * 2014-07-07 2017-04-11 GM Global Technology Operations LLC Grid-based image resolution enhancement for video processing module
US11294815B2 (en) * 2015-06-10 2022-04-05 Mobileye Vision Technologies Ltd. Multiple multithreaded processors with shared data cache
US10979691B2 (en) * 2016-05-20 2021-04-13 Qualcomm Incorporated Circular fisheye video in virtual reality
KR101945082B1 (ko) * 2016-07-05 2019-02-01 안규태 미디어 컨텐츠 송신 방법, 미디어 컨텐츠 송신 장치, 미디어 컨텐츠 수신 방법, 및 미디어 컨텐츠 수신 장치
WO2018041244A1 (en) 2016-09-02 2018-03-08 Mediatek Inc. Incremental quality delivery and compositing processing
US10379611B2 (en) 2016-09-16 2019-08-13 Intel Corporation Virtual reality/augmented reality apparatus and method
US10564715B2 (en) 2016-11-14 2020-02-18 Google Llc Dual-path foveated graphics pipeline
US10121337B2 (en) * 2016-12-30 2018-11-06 Axis Ab Gaze controlled bit rate
CN116456097A (zh) 2017-04-28 2023-07-18 苹果公司 视频流水线
CN110770796B (zh) * 2017-06-05 2024-03-15 谷歌有限责任公司 平稳变化的中央凹型渲染
WO2019217261A1 (en) * 2018-05-07 2019-11-14 Zermatt Technologies Llc Dynamic foveated pipeline
WO2019217264A1 (en) * 2018-05-07 2019-11-14 Zermatt Technologies Llc Dynamic foveated compression
WO2019217260A1 (en) * 2018-05-07 2019-11-14 Zermatt Technologies Llc Dynamic foveated display
WO2019217262A1 (en) * 2018-05-07 2019-11-14 Zermatt Technologies Llc Dynamic foveated rendering
US11480804B2 (en) * 2018-07-20 2022-10-25 Tobii Ab Distributed foveated rendering based on user gaze
US20220004012A1 (en) * 2020-07-06 2022-01-06 Seagate Technology Llc Variable resolution and automatic windowing for lidar

Also Published As

Publication number Publication date
WO2019217261A1 (en) 2019-11-14
KR20200142539A (ko) 2020-12-22
US20240087080A1 (en) 2024-03-14
DE112019002368T5 (de) 2021-01-28
US11836885B2 (en) 2023-12-05
US20210142443A1 (en) 2021-05-13
CN112106366A (zh) 2020-12-18
KR102547106B1 (ko) 2023-06-23

Similar Documents

Publication Publication Date Title
KR102547106B1 (ko) 동적 포비티드 파이프라인
EP3744007B1 (en) Controlling image display via real-time compression in peripheral image regions
US11816820B2 (en) Gaze direction-based adaptive pre-filtering of video data
US9721393B1 (en) Method for processing and delivering virtual reality content to a user
TWI660201B (zh) 在顯示裝置上呈現影像之方法及呈現影像之顯示裝置
CN111699693A (zh) 用于数字现实的图像压缩
WO2019217260A1 (en) Dynamic foveated display
KR20220138403A (ko) 분산 시스템에서 모션 평활화
CN108369750B (zh) 用于虚拟现实图像的图像增强的方法和装置
US11567567B2 (en) Encoders, methods and display apparatuses incorporating gaze-directed compression ratios
WO2019217262A1 (en) Dynamic foveated rendering
TWI792535B (zh) 圖形處理方法和相關眼動追蹤系統
CN112470484A (zh) 偏影及hdr
CN108141559B (zh) 影像系统、影像生成方法及计算机可读介质
WO2019217264A1 (en) Dynamic foveated compression
CN114374832A (zh) 虚拟现实体验的控制方法、装置、用户设备及网络设备
US20240095879A1 (en) Image Generation with Resolution Constraints

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal