KR20220047284A - 포비티드 렌더링을 위한 시스템들 및 방법들 - Google Patents

포비티드 렌더링을 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20220047284A
KR20220047284A KR1020227005499A KR20227005499A KR20220047284A KR 20220047284 A KR20220047284 A KR 20220047284A KR 1020227005499 A KR1020227005499 A KR 1020227005499A KR 20227005499 A KR20227005499 A KR 20227005499A KR 20220047284 A KR20220047284 A KR 20220047284A
Authority
KR
South Korea
Prior art keywords
viewing area
display
pixels
pixel
subframe
Prior art date
Application number
KR1020227005499A
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 KR20220047284A publication Critical patent/KR20220047284A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • 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
    • G06T5/003
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • 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/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • 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/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/37Details of the operation on graphic patterns
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/261Image signal generators with monoscopic-to-stereoscopic image conversion
    • H04N13/266Image signal generators with monoscopic-to-stereoscopic image conversion by scanning a film
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • H04N13/344Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/398Synchronisation thereof; Control thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20192Edge enhancement; Edge preservation
    • 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/0686Adjustment of display parameters with two or more screen areas displaying information with different brightness or colours
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Position Input By Displaying (AREA)
  • Television Systems (AREA)

Abstract

일 실시예에서, 컴퓨팅 시스템은 제1 프레임 레이트로 생성된 제1 렌더링 프레임을 액세스할 수 있다. 시스템은, 제1 렌더링 프레임에 기초하여, 제1 프레임 레이트보다 높은 제2 프레임 레이트로 서브프레임들을 생성할 수 있다. 시스템은 센서 데이터에 기초하여 사용자의 뷰잉 방향을 결정하고, 뷰잉 방향에 기초하여, 적어도 사용자의 중심와 초점 포인트를 포함한 제1 뷰잉 영역 및 제1 뷰잉 영역을 제외한 제2 뷰잉 영역을 결정하고, 제1 서브프레임에 대해, 제1 샘플링 분해능을 사용하여 제1 뷰잉 영역에 대응하는 컬러 값들 및 제1 샘플링 분해능보다 낮은 제2 샘플링 분해능을 사용하여 제2 뷰잉 영역에 대응하는 컬러 값들을 결정함으로써 제1 서브프레임을 생성할 수 있다. 시스템은 제2 프레임 레이트에서 디스플레이를 위해 서브프레임들을 출력할 수 있다.

Description

포비티드 렌더링을 위한 시스템들 및 방법들
본 개시는 일반적으로 가상 현실 및 증강 현실과 같은, 인공 현실에 관한 것이다.
인공 현실은 사용자로의 프리젠테이션 이전에 몇몇 방식으로 조정되어 온 현실의 형태이며, 이것은 예컨대 가상 현실(VR), 증강 현실(AR), 혼합 현실(MR), 하이브리드 현실, 또는 그것의 몇몇 조합 및/또는 파생물을 포함할 수 있다. 인공 현실 콘텐트는 완전히 생성된 콘텐트 또는 캡처된 콘텐트(예컨대, 실-세계 사진들)와 조합된 생성 콘텐트를 포함할 수 있다. 인공 현실 콘텐트는 비디오, 오디오, 햅틱 피드백, 또는 그것의 몇몇 조합을 포함할 수 있으며, 그 중 임의의 것은 단일 채널에서 또는 다수의 채널들에서(뷰어에게 3-차원 효과를 생성하는 스테레오 비디오와 같은) 제공될 수 있다. 인공 현실은 예컨대, 인공 현실에서 콘텐트를 생성하기 위해 사용되며 및/또는 인공 현실에서 사용되는(예컨대, 그것에 활동들을 수행하는) 애플리케이션들, 제품들, 액세서리들, 서비스들, 또는 그것의 몇몇 조합과 연관될 수 있다. 인공 현실 콘텐트를 제공하는 인공 현실 시스템은, 호스트 컴퓨터 시스템에 연결된 헤드-장착 디스플레이(HMD), 독립형 HMD, 이동 디바이스 또는 컴퓨팅 시스템, 또는 하나 이상의 뷰어들에게 인공 현실 콘텐트를 제공할 수 있는 임의의 다른 하드웨어 플랫폼을 포함한, 다양한 플랫폼들 상에서 구현될 수 있다.
본 출원에서 설명된 특정한 실시예들은 렌더링 프로세스의 전력 소비 및 계산 리소스 사용을 감소시키기 위해 사용자의 중심와 영역에 기초하여 디스플레이의 상이한 디스플레이 영역들에 걸쳐 가변 분해능들을 가진 디스플레이 콘텐트를 렌더링하기 위한 시스템들 및 방법들과 관련된다. 시스템은, 디스플레이를 위해, 디스플레이상에서 사용자의 응시 포인트로의 거리들에 기초하여 디스플레이 영역들의 수를 결정하며 상이한 디스플레이 영역들에서의 상이한 분해능들을 가진 디스플레이 콘텐트를 렌더링할 수 있다. 예를 들어, 시스템은: 전체 디스플레이 면적의 1/4 폭 및 1/4 높이를 가지며 사용자의 응시 포인트에 중심을 둔(가장 최신 눈 위치에 기초하여 결정될 수 있는) 제1 디스플레이 영역; 전체 디스플레이 면적의 1/2 폭 및 1/2 높이를 가지며 제1 디스플레이 영역을 둘러싸지만 이를 제외한 제2 디스플레이 영역; 및 디스플레이의 나머지 디스플레이 면적에 대응하는 제3 디스플레이 영역을 결정할 수 있다. 그 후, 시스템은 상이한 디스플레이 영역들의 3개의 컬러 채널들(예컨대, RGB)의 각각에 대한 샘플링 분해능을 독립적으로 결정할 수 있다. 예를 들어, 시스템은 제1 디스플레이 영역의 모든 3개의 컬러 채널들에 대한 전체 샘플링 분해능을 사용하며 제2 및 제3 디스플레이 영역들에 대한 감소된 샘플링 분해능들을 사용할 수 있다(예컨대, 제2 디스플레이 영역에서 녹색 컬러 채널에 대해 전체 분해능 및 적색 및 청색 컬러 채널들에 대해 1/2 분해능; 제3 디스플레이 영역에서 녹색 컬러 채널에 대해 1/2 분해능 및 적색 및 청색 컬러 채널에 대해 1/4 분해능).
특정한 실시예들에서, 시스템은 감소된 분해능들을 가진 디스플레이 콘텐트에 대한 타일/표면 쌍을 결정하기 위해 더 적은 광선들을 투사할 수 있다. 예를 들어, 시스템은 녹색 컬러 채널에 대해 전체 분해능을 사용하며 적색 또는 청색 컬러 채널들에 대해 1/2 분해능을 사용할 수 있다. 그 결과, 시스템은 각각의 녹색 픽셀에 대한 광선을 투사할 필요가 있으며 매 4개의 적색 또는 청색 픽셀들에 대해 단지 하나의 광선만을 투사할 필요가 있을 것이다(4개의 적색 픽셀들에 대한 4개의 광선들 및 4개의 청색 픽셀들에 대한 4개의 광선들 대신에). 이와 같이, 시스템은 12개보다는, 단지 4-픽셀 영역에 대해 총 5개의 광선들(적색에 대해 하나, 청색에 대해 하나, 및 녹색에 대해 4개)만을 투사할 필요가 있을 것이다. 그러므로, 시스템은 단지 메모리 판독 대역폭의 절반 및 계산 유닛들(예컨대, 필터 블록들)의 수의 절반만을 필요로 할 것이다. 시스템은 디스플레이 콘텐트에 대한 컬러 값들을 결정하기 위해 타일/표면 쌍들에 대한 텍스처 데이터(예컨대, MIP 맵 텍스처 데이터)를 검색할 수 있다. 더 적은 데이터가 프로세싱될 필요가 있으므로, 시스템은 감소된 텍스처 메모리 판독 및 데이터 프로세싱 때문에 주어진 클록 사이클에서 전체-분해능 픽셀들의 많은 1/2-분해능 픽셀들의 두 배를 프로세싱하기 위해 동일한 양의 리소스들(예컨대, 필터들, 메모리, 계산 유닛들)을 사용할 수 있다. 특정한 실시예들에서, 컬러 값들이 결정된 후, 시스템은 감소된 픽셀 밀도 때문에 디스플레이의 뒤판으로 컬러 값들을 전송하기 위해 더 적은 송신 대역폭을 필요로 할 수 있다. 특정한 실시예들에서, 시스템은 여러 상이한 방식들로; (1) 밝기 정정 및 디더링(dithering) 이전에 이웃하는 컬러 값들을 보간함으로써; (2) 디스플레이로 송신한 후 이웃하는 컬러 값들을 보간함으로써; 또는 (3) 디스플레이에서 이웃하는 컬러 값들을 복제함으로써, 포비티드 필터링으로 인해 독립적으로 계산되지 않는 컬러 값들을 생성할 수 있다.
본 출원에서 개시된 실시예들은 단지 예들이며, 본 개시의 범위는 그것들에 제한되지 않는다. 특정한 실시예들은 상기 개시된 실시예들의 구성요소들, 요소들, 특징들, 기능들, 동작들의 모두, 일부를 포함하거나, 또는 포함하지 않을 수 있다. 본 발명에 따른 실시예들은 특히 방법, 저장 매체, 시스템 및 컴퓨터 프로그램 제품에 관한 첨부된 청구항들에서 개시되며, 여기에서 하나의 청구항 카테고리, 예컨대 방법에서 언급된 임의의 특징은 또한 청구항 카테고리, 예컨대 시스템에서 또한 주장될 수 있다. 첨부된 청구항들에서 종속성들 또는 역 참조들은 단지 형식적인 이유들로 택하여진다. 그러나, 임의의 이전 청구항들(특히 다수의 종속성들)에 대한 의도적인 역 참조에서 기인한 임의의 주제가 또한 주장될 수 있으며, 따라서 청구항들 및 그것의 특징들의 임의의 조합이 개시되며 첨부된 청구항들에서 택하여진 종속성들에 관계없이 주장될 수 있다. 주장될 수 있는 주제는 첨부된 청구항들에서 제시된 바와 같은 특징들의 조합들뿐만 아니라 청구항들에서의 특징들의 임의의 다른 조합을 또한 포함하며, 청구항들에서 언급된 각각의 특징은 청구항들에서의 임의의 다른 특징 또는 다른 특징들의 조합과 조합될 수 있다. 더욱이, 본 출원에서 설명되거나 또는 묘사된 실시예들 및 특징들 중 임의의 것은 별개의 청구항에서 및/또는 본 출원에서 설명되거나 또는 묘사된 임의의 실시예 또는 특징과 또는 첨부된 청구항들의 특징들 중 임의의 것과 임의의 조합하여 주장될 수 있다.
실시예에서, 방법은, 컴퓨팅 시스템에 의해:
제1 프레임 레이트로 생성된 제1 렌더링 프레임을 액세스하는 것;
상기 제1 렌더링 프레임에 기초하여, 상기 제1 프레임 레이트보다 높은 제2 프레임 레이트로 서브프레임들을 생성하는 것으로서, 상기 서브프레임의 제1 서브프레임은:
센서 데이터에 기초하여 사용자의 뷰잉 방향을 결정하는 것;
상기 뷰잉 방향에 기초하여, 적어도 상기 사용자의 중심와 초점 포인트(foveal focus point)를 포함한 제1 뷰잉 영역 및 상기 제1 뷰잉 영역을 제외한 제2 뷰잉 영역을 결정하는 것;
상기 제1 서브프레임에 대해, 제1 샘플링 분해능을 사용하여 상기 제1 뷰잉 영역에 대응하는 컬러 값들 및 상기 제1 샘플링 분해능보다 낮은 제2 샘플링 분해능을 사용하여 상기 제2 뷰잉 영역에 대응하는 컬러 값들을 결정하는 것에 의해 생성되는, 상기 제2 프레임 레이트로 서브프레임들을 생성하는 것; 및
상기 제2 프레임 레이트에서 디스플레이를 위해 상기 서브프레임들을 출력하는 것을 포함할 수 있다.
실시예에서, 상기 제1 서브프레임은 변환 블록 및 픽셀 블록을 포함한 그래픽 파이프라인에 의해 생성될 수 있으며, 방법은:
상기 변환 블록에 의해, 복수의 타일들과 복수의 표면들 간의 교차 지점들을 결정하기 위해 복수의 광선들을 상기 복수의 표면들로 투사함으로써 복수의 타일-표면 쌍들을 결정하는 것으로서, 상기 제1 및 제2 뷰잉 영역들에 대응하는 상기 컬러 값들은 상기 복수의 타일-표면 쌍들에 기초하여 결정되는, 상기 복수의 타일-표면 쌍들을 결정하는 것을 포함할 수 있다.
상기 변환 블록은 상기 제1 뷰잉 영역에 대응하는 컬러 값들보다 상기 제2 뷰잉 영역에 대응하는 컬러 값들을 결정하기 위해 더 적은 광선들을 투사할 수 있다.
실시예에서, 방법은:
상기 픽셀 블록에 의해, 상기 제1 샘플링 분해능을 사용하여 제1 세트의 표면들을 샘플링함으로써 상기 제1 뷰잉 영역에 대응하는 컬러 값들을 결정하는 것; 및
상기 픽셀 블록에 의해, 상기 제2 샘플링 분해능을 사용하여 제2 세트의 표면들을 샘플링함으로써 상기 제2 뷰잉 영역에 대응하는 컬러 값들을 결정하는 것으로서, 상기 픽셀 블록은 상기 제1 뷰잉 영역에 대응하는 컬러 값들보다 상기 제2 샘플 뷰 영역에 대응하는 컬러 값들을 결정하기 위해 더 작은 양의 계산을 수행하는, 상기 제2 뷰잉 영역에 대응하는 컬러 값들을 결정하는 것을 포함할 수 있다.
상기 제2 뷰잉 영역에 대응하는 픽셀들의 그룹의 제1 컬러 채널은 상기 제2 샘플링 분해능과 연관될 수 있으며, 상기 제2 뷰잉 영역에 대응하는 픽셀들의 그룹의 제2 컬러 채널은 상기 제2 샘플링 분해능과 상이한 제3 샘플링 분해능과 연관될 수 있다.
실시예에서, 방법은:
상기 제2 뷰잉 영역에 대응하는 픽셀들의 그룹의 제1 컬러 채널의 각각의 n×n 픽셀 어레이에 대한 그레이스케일 값을 독립적으로 결정하는 것으로서, n의 값은 상기 제2 샘플링 분해능에 기초하여 결정되는, 상기 각각의 n×n 픽셀 어레이에 대한 그레이스케일 값을 독립적으로 결정하는 것; 및
상기 제2 뷰잉 영역에 대응하는 픽셀들의 그룹의 제2 컬러 채널의 각각의 m×m 픽셀들에 대한 그레이스케일 값을 독립적으로 결정하는 것으로서, m의 값은 상기 제2 컬러 채널과 연관된 제3 분해능에 기초하여 결정되는, 상기 각각의 m×m 픽셀들에 대한 그레이스케일 값을 독립적으로 결정하는 것을 포함할 수 있다.
상기 제1 컬러 채널에 대한 제2 샘플링 분해능 및 상기 제2 컬러 채널에 대한 제3 샘플링 분해능은 2의 거듭제곱들의 관계를 가질 수 있다.
실시예에서, 방법은:
복제 프로세스에 기초하여 상기 n×n 픽셀 어레이 내에서 각각의 픽셀에 대한 그레이스케일 값을 결정하는 것을 포함할 수 있으며, 상기 복제 프로세스는 디스플레이 시스템에 의해 수행된다.
실시예에서, 방법은:
보간 프로세스에 기초하여 상기 n×n 픽셀 어레이 내에서 각각의 픽셀에 대한 그레이스케일 값을 결정하는 것을 포함할 수 있으며, 상기 보간 프로세스는 밝기 정정 프로세스 및 디더링 프로세스 이전에 그래픽 파이프라인의 디스플레이 블록에 의해 수행된다.
실시예에서, 방법은:
상기 제1 뷰잉 영역 및 상기 제2 뷰잉 영역을 제외한 제3 뷰잉 영역을 결정하는 것을 포함할 수 있으며, 상기 제1 뷰잉 영역, 상기 제2 뷰잉 영역, 및 상기 제3 뷰잉 영역의 각각의 컬러 값들은 점진적으로 더 낮은 샘플링 분해능에 기초하여 결정된다.
실시예에서, 상기 제1 서브프레임은 소스 데이터에 기초하여 생성될 수 있으며, 방법은:
상기 제1 서브프레임을 생성하기 위해 연속하여 더 낮은 분해능에서 상기 소스 데이터를 사전-프로세싱하는 것; 및
상기 제1 서브프레임을 생성하는 동안 상기 연속하여 더 낮은 분해능에서 상기 소스 데이터를 액세스하는 것을 포함할 수 있다.
실시예에서, 방법은:
상기 제2 뷰잉 영역에 대응하는 복수의 픽셀들에 선명도 필터(sharpness filter)를 적용하는 것을 포함할 수 있으며, 상기 제1 서브프레임은 상기 제2 뷰잉 영역에서의 하나 이상의 오브젝트들과 연관된 하나 이상의 에지들 상에서 대비 레벨(contrast level)을 보존한다.
실시예에서, 방법은:
상기 제2 뷰잉 영역에서 상기 제1 서브프레임의 복수의 픽셀들로 선명도 필터를 적용하는 것을 포함할 수 있으며, 상기 제1 서브프레임은 상기 제2 뷰잉 영역에서 평균 밝기를 보존한다.
상기 제1 프레임 레이트는 30 내지 90Hz의 제1 범위 내에 있을 수 있으며, 상기 제2 프레임 레이트는 1 내지 2kHz의 제2 범위 내에 있을 수 있다.
실시예에서, 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체는 소프트웨어를 포함할 수 있으며, 상기 소프트웨어는 실행될 때:
제1 프레임 레이트로 생성된 제1 렌더링 프레임을 액세스하고;
상기 제1 렌더링 프레임에 기초하여, 상기 제1 프레임 레이트보다 높은 제2 프레임 레이트로 서브프레임들을 생성하는 것으로서, 상기 서브프레임들의 제1 서브프레임은:
센서 데이터에 기초하여 사용자의 뷰잉 방향을 결정하는 것;
상기 뷰잉 방향에 기초하여, 적어도 상기 사용자의 중심와 초점 포인트를 포함한 제1 뷰잉 영역 및 상기 제1 뷰잉 영역을 제외한 제2 뷰잉 영역을 결정하는 것;
상기 제1 서브프레임에 대해, 제1 샘플링 분해능을 사용하여 상기 제1 뷰잉 영역에 대응하는 컬러 값들 및 상기 제1 샘플링 분해능보다 낮은 제2 샘플링 분해능을 사용하여 상기 제2 뷰잉 영역에 대응하는 컬러 값들을 결정하는 것에 의해 생성되는, 상기 제2 프레임 레이트로 서브프레임들을 생성하며;
상기 제2 프레임 레이트에서 디스플레이를 위해 상기 서브프레임들을 출력하도록 동작 가능하다.
실시예에서, 상기 제1 서브프레임 이미지는 변환 블록 및 픽셀 블록을 포함한 그래픽 파이프라인을 사용하여 생성될 수 있으며, 상기 소프트웨어는 실행될 때:
상기 변환 블록에 의해, 복수의 타일들과 복수의 표면들 간의 교차 지점들을 결정하기 위해 복수의 광선들을 상기 복수의 표면들에 투사함으로써 복수의 타일-표면 쌍들을 결정하는 것으로서, 상기 제1 및 제2 뷰 영역들에 대응하는 컬러 값들은 상기 복수의 타일-표면 쌍들에 기초하여 결정되는, 상기 복수의 타일-표면 쌍들을 결정하도록 동작 가능할 수 있다.
상기 변환 블록은 상기 제2 뷰잉 영역에 대응하는 컬러 값들보다 상기 제1 뷰잉 영역에 대응하는 컬러 값들을 결정하기 위해 더 적은 광선들을 투사할 수 있다.
실시예에서, 시스템은: 하나 이상의 프로세서들; 및 상기 프로세서들 중 하나 이상에 결합되며 지시들을 포함하는 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체로서, 상기 지시들은 상기 프로세서들 중 하나 이상에 의해 실행될 때 상기 시스템으로 하여금:
제1 프레임 레이트로 생성된 제1 렌더링 프레임을 액세스하게 하고;
상기 제1 렌더링 프레임에 기초하여, 상기 제1 프레임 레이트보다 높은 제2 프레임 레이트로 서브프레임들을 생성하게 하는 것으로서, 상기 서브프레임들의 제1 서브프레임은:
센서 데이터에 기초하여 사용자의 뷰잉 방향을 결정하는 것;
상기 뷰잉 방향에 기초하여, 적어도 상기 사용자의 중심와 초점 포인트를 포함한 제1 뷰잉 영역 및 상기 제1 뷰잉 영역을 제외한 제2 뷰잉 영역을 결정하는 것;
상기 제1 서브프레임에 대해, 제1 샘플링 분해능을 사용하여 상기 제1 뷰잉 영역에 대응하는 컬러 값들 및 상기 제1 샘플링 분해능보다 낮은 제2 샘플링 분해능을 사용하여 상기 제2 뷰잉 영역에 대응하는 컬러 값들을 결정하는 것에 의해 생성되는, 상기 제2 프레임 레이트로 서브프레임들을 생성하게 하며;
상기 제2 프레임 레이트에서 디스플레이를 위해 상기 서브프레임들을 출력하게 하도록 동작 가능한, 상기 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체를 포함할 수 있다.
일 실시예에서, 상기 제1 서브프레임 이미지는 변환 블록 및 픽셀 블록을 포함한 그래픽 파이프라인을 사용하여 생성될 수 있으며, 상기 지시들은 상기 프로세서들 중 하나 이상에 의해 실행될 때 상기 시스템으로 하여금:
상기 변환 블록에 의해, 복수의 타일들과 복수의 표면들 간의 교차 지점들을 결정하기 위해 복수의 광선들을 상기 복수의 표면들에 투사함으로써 복수의 타일-표면 쌍들을 결정하게 하는 것으로서, 상기 제1 및 제2 뷰 영역들에 대응하는 컬러 값들은 상기 복수의 타일-표면 쌍들에 기초하여 결정되는, 상기 복수의 타일-표면 쌍들을 결정하게 하도록 동작 가능할 수 있다.
상기 변환 블록은 상기 제2 뷰잉 영역에 대응하는 컬러 값들보다 상기 제1 뷰잉 영역에 대응하는 컬러 값들을 결정하기 위해 더 적은 광선들을 투사할 수 있다.
도 1a는 예시적인 인공 현실 시스템을 예시한다.
도 1b는 예시적인 증강 현실 시스템을 예시한다.
도 2a는 디스플레이 엔진의 예시적인 아키텍처를 예시한다.
도 2b는 디스플레이 이미지 데이터를 생성하기 위한 디스플레이 엔진의 예시적인 그래픽 파이프라인을 예시한다.
도 2c는 마스터-서브프레임 메커니즘을 사용하여 디스플레이 콘텐트를 렌더링하기 위한 예시적인 기법을 예시한다.
도 3a는 포비티드 렌더링을 위해 상이한 렌더링 분해능들을 가진 디스플레이 영역들을 결정하기 위한 예시적인 기법을 예시한다.
도 3b는 적색, 녹색, 및 청색의 3개의 컬러 채널들에 대한 3개의 예시적인 픽셀 어레이들을 예시한다.
도 3c는 상이한 컬러 채널들 및 상이한 디스플레이 영역들의 샘플링 분해능들을 결정하기 위한 예시적인 기법을 예시한다.
도 3d는 계산의 양을 감소시키기 위해 상이한 컬러 채널들 및 상이한 디스플레이 영역들에 대해 상이한 샘플링 분해능들을 사용하는 예시적인 기법을 예시한다.
도 4a 내지 도 4d는 하나 이상의 이미지 영역들에서 샘플링 분해능들을 감소시킴으로써 시스템이 동일한 계산 리소스들을 사용하여 더 많은 수의 픽셀 타일들을 프로세싱하도록 허용하는 예시적인 프레임워크를 예시한다.
도 5a 내지 도 5c는 픽셀 서브-어레이 내에서의 픽셀들에 대한 그레이스케일 값들을 결정하기 위한 예시적인 복제 프로세스 및 보간 프로세스를 예시한다.
도 6은 포비티드 렌더링을 위한 예시적인 방법을 예시한다.
도 7은 예시적인 컴퓨터 시스템을 예시한다.
AR/VR 시스템은 제한된 가용 전력(예컨대, 배터리에 의해 동력을 제공받는) 및 제한된 계산 리소스들(예컨대, 계산 유닛들, 메모리, 데이터 송신 대역폭 등)을 가질 수 있다. 그러나, 전체 분해능 디스플레이 콘텐트를 위한 그래픽 렌더링 프로세스들은 전력 소비 및 계산 리소스들 양쪽 모두에 대해 요구적일 수 있으며, 그러므로 AR/VR 시스템의 성능에 부정적인 영향을 줄 수 있다. 특정한 실시예들에서, 디스플레이 콘텐트 렌더링 프로세스들에 관련된 전력 소비 및 계산 리소스 사용을 감소시키기 위해 포비티드 렌더링 프로세스를 사용할 수 있다. 예를 들어, 시스템은 사용자의 응시 포인트에 대응하는 중심와 영역에서 전체 분해능(적색, 녹색, 및 청색의 컬러 채널들 모두에 대해)을 가진 디스플레이 콘텐트를 렌더링하며 사용자의 중심와 영역을 넘어선 디스플레이 영역들에서 감소된 분해능들(하나 이상의 컬러 채널들에 대해)을 가진 디스플레이 콘텐트를 렌더링할 수 있다. 포비티드 렌더링 프로세스를 사용함으로써, 시스템은 감소된 분해능들을 가진 디스플레이 콘텐트에 대한 타일/표면 쌍들을 결정하기 위해 더 적은 광선들을 투사하며, 그러므로 렌더링 프로세스들을 위해 더 적은 계산 리소스들을 사용할 수 있다. 시스템은 감소된 메모리 판독 및 데이터 프로세싱 때문에 전체 분해능 이미지를 프로세싱하기 위한 것과 동일한 양의 계산 리소스들을 사용하여 주어진 클록 사이클에서 더 큰 이미지 면적(예컨대, 더 많은 픽셀 또는 픽셀 타일들)을 프로세싱하며, 그러므로 시스템 성능의 효율을 개선할 수 있다. 더욱이, 시스템은 포비티드 이미지의 적어도 일 부분에서의 감소된 분해능 때문에 픽셀 값들을 디스플레이로 전송하기 위해 더 적은 송신 대역폭을 요구할 수 있다.
도 1a는 예시적인 인공 현실 시스템(100A)을 예시한다. 특정한 실시예들에서, 인공 현실 시스템(100)은 헤드셋(104), 제어기(106), 및 컴퓨팅 시스템(108) 등을 포함할 수 있다. 사용자(102)는 사용자(102)에서 시각적 인공 현실 콘텐트를 디스플레이할 수 있는 헤드셋(104)을 착용할 수 있다. 헤드셋(104)은 사용자(102)에게 오디오 인공 현실 콘텐트를 제공할 수 있는 오디오 디바이스를 포함할 수 있다. 헤드셋(104)은 환경의 이미지들 및 비디오들을 캡처할 수 있는 하나 이상의 카메라들을 포함할 수 있다. 헤드셋(104)은 사용자(102)의 이향운동 거리를 결정하기 위해 눈 추적 시스템을 포함할 수 있다. 헤드셋(104)은 헤드-장착 디스플레이(HMD)로서 불리울 수 있다. 제어기(106)는 트랙패드 및 하나 이상의 버튼들을 포함할 수 있다. 제어기(106)는 사용자(102)로부터 입력들을 수신하며 입력들을 컴퓨팅 시스템(108)으로 전달할 수 있다. 제어기(106)는 또한 사용자(102)에게 햅틱 피드백을 제공할 수 있다. 컴퓨팅 시스템(108)은 케이블들 또는 무선 연결들을 통해 헤드셋(104) 및 제어기(106)에 연결될 수 있다. 컴퓨팅 시스템(108)은 사용자(102)에게 인공 현실 콘텐트를 제공하며 그로부터 입력들을 수신하도록 헤드셋(104) 및 제어기(106)를 제어할 수 있다. 컴퓨팅 시스템(108)은 독립형 호스트 컴퓨터 시스템, 헤드셋(104)과 통합된 탑재형 컴퓨터 시스템, 이동 디바이스, 또는 사용자에게 인공 현실 콘텐트를 제공하며 그로부터 입력들을 수신할 수 있는 임의의 다른 하드웨어 플랫폼일 수 있다.
도 1b는 예시적인 증강 현실 시스템(100B)을 예시한다. 증강 현실 시스템(100B)은 프레임(112), 하나 이상의 디스플레이들(114), 및 컴퓨팅 시스템(120)을 포함한 헤드-장착 디스플레이(HMD)(110)(예컨대, 안경)를 포함할 수 있다. 디스플레이들(114)은 투명하거나 또는 반투명하여 HMD(110)를 착용한 사용자가 실세계를 보기 위해 디스플레이들(114)을 통해 보도록 허용하며 동시에 사용자에게 시각적 인공 현실 콘텐트를 디스플레이할 수 있다. HMD(110)는 사용자들에게 오디오 인공 현실 콘텐트를 제공할 수 있는 오디오 디바이스를 포함할 수 있다. HMD(110)는 환경들의 이미지들 및 비디오들을 캡처할 수 있는 하나 이상의 카메라들을 포함할 수 있다. HMD(110)는 HMD(110)를 착용한 사용자의 이향 운동을 추적하기 위해 눈 추적 시스템을 포함할 수 있다. 증강 현실 시스템(100B)은 트랙패드 및 하나 이상의 버튼들을 포함한 제어기를 추가로 포함할 수 있다. 제어기는 사용자들로부터 입력들을 수신하며 입력들을 컴퓨팅 시스템(120)으로 전달할 수 있다. 제어기는 또한 사용자들에게 햅틱 피드백을 제공할 수 있다. 컴퓨팅 시스템(120)은 케이블들 또는 무선 연결들을 통해 HMD(110) 및 제어기에 연결될 수 있다. 컴퓨팅 시스템(120)은 사용자들에게 증강 현실 콘텐트를 제공하며 그로부터 입력들을 수신하도록 HMD(110) 및 제어기를 제어할 수 있다. 컴퓨팅 시스템(120)은 독립형 호스트 컴퓨터 시스템, HMD(110)와 통합된 탑재형 컴퓨터 시스템, 이동 디바이스, 또는 사용자들에게 인공 현실 콘텐트를 제공하며 그로부터 입력들을 수신할 수 있는 임의의 다른 하드웨어 플랫폼일 수 있다.
도 2a는 디스플레이 엔진(210)의 예시적인 아키텍처(200)를 예시한다. 특정한 실시예들에서, 본 개시에 설명된 바와 같이 프로세스들 및 방법들은 디스플레이 엔진(210) 내에서 구현되거나 또는 실행될 수 있다. 디스플레이 엔진(210)은, 예를 들어, 이에 제한되지 않지만, 텍스처 메모리(212), 변환 블록(213), 픽셀 블록(214), 디스플레이 블록(215), 입력 데이터 버스(211), 출력 데이터 버스(216) 등을 포함할 수 있다. 특정한 실시예들에서, 디스플레이 엔진(210)은 디스플레이상에서 렌더링될 이미지들을 생성하기 위해 하나 이상의 그래픽 파이프라인들을 포함할 수 있다. 예를 들어, 디스플레이 엔진(210)은 사용자의 좌측 및 우측 눈들을 위해 두 개의 그래픽 파이프라인들을 포함할 수 있다. 그래픽 파이프라인들 중 하나는 텍스처 메모리(212), 변환 블록(213), 픽셀 블록(214), 디스플레이 블록(215) 등을 포함할 수 있거나 또는 그것 상에 구현될 수 있다. 디스플레이 엔진(210)은 다른 그래픽 파이프라인을 위한 또 다른 세트의 변환 블록, 픽셀 블록, 및 디스플레이 블록을 포함할 수 있다. 그래픽 파이프라인(들)은 디스플레이 엔진(210)의 제어기 또는 제어 블록(도시되지 않음)에 의해 제어될 수 있다. 특정한 실시예들에서, 텍스처 메모리(212)는 제어 블록 내에 포함될 수 있거나 또는 제어 블록의 외부에 있지만 디스플레이 엔진(210)에 국소적인 메모리일 수 있다. 디스플레이 엔진(210)의 구성요소들 중 하나 이상은 고속 버스, 공유 메모리, 또는 임의의 다른 적절한 방법들을 통해 통신하도록 구성될 수 있다. 이러한 통신은 데이터뿐만 아니라 제어 신호들, 인터럽트들, 및/또는 다른 지시들의 송신을 포함할 수 있다. 예를 들어, 텍스처 메모리(212)는 입력 데이터 버스(211)를 통해 이미지 데이터를 수신하도록 구성될 수 있으며 디스플레이 블록(215)은 출력 데이터 버스(216)를 통해 디스플레이 시스템으로 픽셀 값들을 전송할 수 있다.
특정한 실시예들에서, 디스플레이 엔진(210)은 제어기 블록(도시되지 않음)을 포함할 수 있다. 제어 블록은 하나 이상의 데이터 버스들을 통해 디스플레이 엔진(210)의 외부에 있는 제어기들로부터 위치 데이터 및 표면 정보와 같은 데이터 및 제어 패키지들을 수신할 수 있다. 예를 들어, 제어 블록은 신체 착용 가능한 컴퓨팅 시스템으로부터 입력 스트림 데이터를 수신할 수 있다. 입력 데이터 스트림은 30 내지 90Hz의 메인프레임 레이트로 생성된 일련의 메인프레임 이미지들을 포함할 수 있다. 메인프레임 이미지들을 포함한 입력 스트림 데이터는 요구된 포맷으로 변환되며 텍스처 메모리(212)로 저장될 수 있다. 특정한 실시예들에서, 제어 블록은 신체 착용 가능한 컴퓨팅 시스템으로부터 입력을 수신하며 디스플레이상에서의 렌더링을 위해 이미지 데이터를 준비하고 마무리하기 위해 디스플레이 엔진에서 그래픽 파이프라인들을 초기화할 수 있다. 데이터 및 제어 패킷들은 예를 들어, 텍스처 데이터, 위치 데이터 및 부가적인 렌더링 지시들을 포함한 하나 이상의 표면들에 관련된 정보를 포함할 수 있다. 제어 블록은 데이터를 요구된 대로 디스플레이 엔진(210)의 하나 이상의 다른 블록들로 분배할 수 있다. 제어 블록은 디스플레이될 하나 이상의 프레임들을 프로세싱하기 위해 그래픽 파이프라인들을 개시할 수 있다. 특정한 실시예들에서, 두 개의 눈 디스플레이 시스템들에 대한 그래픽 파이프라인들은 각각 제어 블록을 포함하거나 또는 동일한 제어 블록을 공유할 수 있다.
특정한 실시예들에서, 변환 블록(213)은 인공 현실 씬에서 디스플레이될 표면들에 대한 초기 가시성 정보를 결정할 수 있다. 일반적으로, 변환 블록(213)은 스크린상에서의 픽셀 위치들로부터 광선들을 투사하며 픽셀 블록(214)으로 전송할 필터 명령들(예컨대, 이중선형 또는 다른 유형들의 보간 기술들에 기초한 필터링)을 생성할 수 있다. 변환 블록(213)은 사용자의 현재 시점(예컨대, 헤드셋의 관성 측정 유닛들, 눈 추적 센서들, 및/또는 동시적 국소화 및 매핑(SLAM)과 같은, 임의의 적절한 추적/국소화 알고리즘들을 사용하여 결정된)으로부터 표면들이 위치되는 인공 씬으로 광선 투사를 수행할 수 있으며 픽셀 블록(214)으로 전송할 타일/표면 쌍들(217)을 생성할 수 있다.
특정한 실시예들에서, 변환 블록(213)은 다음과 같인 4-스테이지 파이프라인을 포함할 수 있다. 광선 투사기는 타일들로서 불리우는(예컨대, 각각의 타일은 16×16 정렬된 픽셀들을 포함할 수 있다), 하나 이상의 정렬된 픽셀들의 어레이들에 대응하는 광선 번들들을 발행할 수 있다. 광선 번들들은 하나 이상의 왜곡 메시들에 따라, 인공 현실 씬에 들어가기 전에, 비틀릴 수 있다. 왜곡 메시들은 적어도, 헤드셋 시스템의 눈 디스플레이 시스템들에서 기인한 기하학적 왜곡 효과들을 정정하도록 구성될 수 있다. 변환 블록(213)은 표면들에 대한 경계 박스들에 각각의 타일의 경계 박스를 비교함으로써 각각의 광선 번들이 씬에서의 표면들과 교차하는지를 결정할 수 있다. 광선 번들이 오브젝트와 교차하지 않는다면, 그것은 폐기될 수 있다. 타일-표면 교차 지점들이 검출된 후, 대응하는 타일/표면 쌍들이 픽셀 블록(214)으로 전달될 수 있다.
특정한 실시예들에서, 픽셀 블록(214)은 타일-표면 쌍들에 기초하여 픽셀들에 대한 컬러 값들 또는 그레이스케일 값들을 결정할 수 있다. 각각의 픽셀에 대한 컬러 값들은 수신된 표면들의 텍셀 데이터로부터 샘플링되며 텍스처 메모리(212)에 저장될 수 있다. 픽셀 블록(214)은 변환 블록(213)으로부터 타일-표면 쌍들을 수신할 수 있으며 하나 이상의 필터 블록들을 사용하여 이중선형 필터링을 스케줄링할 수 있다. 각각의 타일-표면 쌍에 대해, 픽셀 블록(214)은 투영된 타일이 표면과 교차하는 곳에 대응하는 컬러 값들을 사용하여 타일 내에서 픽셀들에 대한 컬러 정보를 샘플링할 수 있다. 픽셀 블록(214)은 검색된 텍셀들에 기초하여(예컨대, 이중선형 보간을 사용하여) 픽셀 값들을 결정할 수 있다. 특정한 실시예들에서, 픽셀 블록(214)은 각각의 픽셀에 대해 적색, 녹색, 및 청색 컬러 구성요소들을 별도로 프로세싱할 수 있다. 특정한 실시예들에서, 디스플레이는 두 개의 눈 디스플레이 시스템들에 대해 두 개의 픽셀 블록들을 포함할 수 있다. 두 개의 눈 디스플레이 시스템들의 두 개의 픽셀 블록들은 독립적으로 및 서로 동시에 작동할 수 있다. 픽셀 블록(214)은 그 후 그것의 컬러 결정들을 디스플레이 블록(215)으로 출력할 수 있다. 특정한 실시예들에서, 픽셀 블록(214)은 둘 이상의 표면들이 중첩하는 면적들을 가질 때 둘 이상의 표면들을 하나의 표면으로 합성할 수 있다. 구성된 표면은 재샘플링 프로세스를 위해 더 적은 계산 리소스들(예컨대, 계산 유닛들, 메모리, 전력 등)을 요구할 수 있다.
특정한 실시예들에서, 디스플레이 블록(215)은 픽셀 블록(214)으로부터 픽셀 컬러 값들을 수신하고, 데이터의 포맷을 디스플레이의 스캔라인 출력에 더 적합하게 변환하고, 픽셀 컬러 값들에 하나 이상의 밝기 정정들을 적용하며, 디스플레이로의 출력을 위한 픽셀 컬러 값들을 준비할 수 있다. 특정한 실시예들에서, 디스플레이 블록(215)은 각각 로우 버퍼를 포함할 수 있으며 픽셀 블록(214)으로부터 수신된 픽셀 데이터를 프로세싱하고 저장할 수 있다. 픽셀 데이터는 쿼드들(예컨대, 쿼드 당 2×2 픽셀들) 및 타일들(예컨대, 타일당 16×16 픽셀들)로 조직될 수 있다. 디스플레이 블록(215)은 픽셀 블록(214)에 의해 생성된 타일-순 픽셀 컬러 값들을 스캔라인 또는 로우-순 데이터로 변환할 수 있으며, 이것은 물리 디스플레이들에 의해 요구될 수 있다. 밝기 정정들은 임의의 요구된 밝기 정정, 감마 매핑, 및 디더링을 포함할 수 있다. 디스플레이 블록(215)은 정정된 픽셀 컬러 값들을 물리 디스플레이(예컨대, 동공 디스플레이)의 드라이버로 직접 출력할 수 있거나 또는 다양한 포맷들로 디스플레이 엔진(210)의 외부에 있는 블록으로 픽셀 값들을 출력할 수 있다. 예를 들어, 헤드셋 시스템의 눈 디스플레이 시스템들은 백엔드 컬러 프로세싱을 추가로 맞춤화하고, 디스플레이로의 더 넓은 인터페이스를 지원하거나, 또는 디스플레이 속도 또는 충실도를 최적화하기 위해 부가적인 하드웨어 또는 소프트웨어를 포함할 수 있다.
특정한 실시예들에서, 그래픽 애플리케이션들(예컨대, 게임들, 맵들, 콘텐트-제공 앱들 등)은 씬 그래프를 구축할 수 있으며, 이것은 GPU 또는 디스플레이 엔진 상에서 렌더링할 프리미티브들을 생성하기 위해 주어진 뷰 위치 및 시점을 갖고 함께 사용된다. 씬 그래프는 씬에서의 오브젝트들 간의 논리적 및/또는 공간적 관계를 정의할 수 있다. 특정한 실시예들에서, 디스플레이 엔진(210)은 또한 전체 애플리케이션 씬 그래프의 단순화된 형태인 씬 그래프를 생성하고 저장할 수 있다. 단순화된 씬 그래프는 표면들 간의 논리적 및/또는 공간적 관계들(예컨대, 애플리케이션에 의해 렌더링된 메인프레임에 기초하여 생성된 대응 텍스처들을 가진, 3D 공간에 정의된, 4변형들 또는 윤곽들과 같은, 디스플레이 엔진(210)에 의해 렌더링된 프리미티브들)을 특정하기 위해 사용될 수 있다. 씬 그래프를 저장하는 것은 디스플레이 엔진(210)이 씬을 다수의 디스플레이 프레임들로 렌더링하고 현재 뷰포인트(예컨대, 머리 위치), 현재 오브젝트 위치들(예컨대, 그것들이 서로에 대하여 움직일 수 있는) 및 디스플레이 프레임마다 변하는 다른 인자들에 대한 씬 그래프에서의 각각의 요소를 조정하도록 허용한다. 또한, 씬 그래프에 기초하여, 디스플레이 엔진(210)은 또한 디스플레이 서브시스템에 의해 도입된 기하학 및 컬러 왜곡에 대해 조정하며 그 후 프레임을 생성하기 위해 오브젝트들을 함께 합성할 수 있다. 씬 그래프를 저장하는 것은, 상당히 더 낮은 레이트로 GPU 또는 디스플레이 엔진(210)을 실제로 구동하는 동안, 디스플레이 엔진(210)이 원하는 높은 프레임 레이트로 전체 렌더러를 행한 결과를 근사하도록 허용한다.
도 2b는 디스플레이 이미지 데이터를 생성하기 위한 디스플레이 엔진(210)의 예시적인 그래프 파이프라인(200B)을 예시한다. 특정한 실시예들에서, 그래프 파이프라인(200B)은 가시성 단계(272)를 포함할 수 있으며, 여기에서 디스플레이 엔진(210)은 신체 착용 가능한 컴퓨팅 시스템으로부터 수신된 하나 이상의 표면들의 가시성을 결정할 수 있다. 가시성 단계(272)는 디스플레이 엔진(210)의 변환 블록(예컨대, 도 2a에서의 213)에 의해 수행될 수 있다. 디스플레이 엔진(210)은 신체-착용 가능한 컴퓨팅 시스템으로부터 입력 데이터(261)를 수신할 수 있다(예컨대, 제어 블록 또는 제어기에 의해). 입력 데이터(261)는 신체 착용 가능한 컴퓨팅 시스템으로부터의 하나 이상의 표면들, 텍셀 데이터, 위치 데이터, RGB 데이터, 및 렌더링 지시들을 포함할 수 있다. 입력 데이터(261)는 초당 30 내지 90 프레임들(FPS)을 가진 메인프레임 이미지들을 포함할 수 있다. 메인 프레임 이미지는 예를 들어, 픽셀 당 24비트의 컬러 깊이를 가질 수 있다. 디스플레이 엔진(210)은 수신된 입력 데이터(261)를 프로세싱하며 텍셀 메모리(212)에 저장할 수 있다. 수신된 데이터는 디스플레이될 표면들에 대한 가시성 정보를 결정할 수 있는 변환 블록(213)으로 전달될 수 있다. 변환 블록(213)은 스크린상에서 픽셀 위치들에 대한 광선들을 투사하며 픽셀 블록(214)으로 전송할 필터 명령들(예컨대, 이중선형 또는 다른 유형들의 보간 기술들에 기초한 필터링)을 생성할 수 있다. 변환 블록(213)은 사용자의 현재 뷰포인트로부터(예컨대, 헤드셋의 관성 측정 유닛들, 눈 추적기들, 및/또는 동시적 국소화 및 매핑(SLAM)과 같은, 임의의 적절한 추적/국소화 알고리즘들을 사용하여 결정된)로부터 표면들이 배치되는 인공 씬으로의 광선 투사를 수행하며 픽셀 블록(214)으로 전송할 표면-타일 쌍들을 생성할 수 있다.
특정한 실시예들에서, 그래픽 파이프라인(200B)은 재샘플링 단계(273)를 포함할 수 있으며, 여기에서 디스플레이 엔진(210)은 픽셀 컬러 값들을 생성하기 위해 타일-표면 쌍들로부터 컬러 값들을 결정할 수 있다. 재샘플링 단계(273)는 디스플레이 엔진(210)의 픽셀 블록(도 2a에서의 214)에 의해 수행될 수 있다. 픽셀 블록(214)은 변환 블록(213)으로부터 타일-표면 쌍들을 수신할 수 있으며 이중선형 필터링을 스케줄링할 수 있다. 각각의 타일-표면 쌍에 대해, 픽셀 블록(214)은 투영된 타일이 표면과 교차하는 곳에 대응하는 컬러 값들을 사용하여 타일 내에서 픽셀들에 대한 컬러 정보를 샘플링할 수 있다. 픽셀 블록(214)은 검색된 텍셀들에 기초하여(예컨대, 이중선형 보간을 사용하여) 픽셀 값들을 결정하며 결정된 픽셀 값들을 각각의 디스플레이 블록(215)으로 출력할 수 있다.
특정한 실시예들에서, 그래픽 파이프라인(200B)은 휨 단계(274), 정정 단계(275), 직렬화 단계(276) 등을 포함할 수 있다. 특정한 실시예들에서, 274, 275, 및 276의 휨, 정정 및 직렬화 단계들을 디스플레이 엔진(210)의 디스플레이 블록(예컨대, 도 2a에서의 215)에 의해 수행될 수 있다. 디스플레이 엔진(210)은 디스플레이 콘텐트 렌더링을 위해 디스플레이 콘텐트를 블렌딩하고 하나 이상의 밝기 정정들을 픽셀 컬러 값들에 적용하고, 물리 디스플레이를 위한 스캔라인 출력에 대한 픽셀 값들을 직렬화하며, 투영기들의 μLED 디스플레이들에 적합한 디스플레이 데이터(279)를 생성할 수 있다. 디스플레이 엔진(210)은 디스플레이 데이터(279)를 투영기들의 μLED 디스플레이들로 전송할 수 있다. 특정한 실시예들에서, 시스템은 3개의 μLED 뒤판 유닛들(280A, 280B, 및 280C)을 포함할 수 있다. 280A, 280B, 및 280C의 각각의 μLED 뒤판 유닛은 역직렬화 모듈(282), PWM 제어 및 데이터 로딩 모듈(284), 및 μLED 매트릭스(286)를 포함할 수 있다. 디스플레이 엔진(210)으로부터 수신된 디스플레이 데이터(279)는 역-직렬화 모듈(282)에 의해 역-직렬화되고, PWM 제어 및 데이터 로딩 모듈(284)에 의해 로딩되며, μLED 매트릭스(286)에 의해 디스플레이될 수 있다. 특정한 실시예들에서, μLED 디스플레이는 픽셀당 5비트들을 갖고 초당 1 내지 2k 서브프레임들로 구동될 수 있으며 컬러당 47Gbps로 데이터 흐름을 생성할 수 있다. 서브프레임 이미지들은 8비트들의 컬러 깊이 또는 그레이스케일을 표현하기 위해 디더링될 수 있다(예컨대, 공간 또는/및 시간 디더링).
도 2c는 마스터-서브프레임 메커니즘을 사용하여 디스플레이 콘텐트를 렌더링하기 위한 예시적인 기법(200C)을 예시한다. 특정한 실시예들에서, 시스템은 디스플레이 콘텐트를 렌더링하기 위해 마스터-서브프레임 렌더링 메커니즘을 채택할 수 있다. 시스템의 디스플레이 엔진은 디스플레이 엔진의 외부에 있는 제어기(예컨대, AR/VR 시스템 또는 신체-착용 가능한 컴퓨팅 시스템의 다수의 디스플레이 엔진들을 조정하는 중앙 제어기 등)로부터의 일련의 메인프레임 이미지들을 포함한 메인프레임 이미지 데이터를 로딩할 수 있다. 메인프레임 이미지들은 생성되며 마스터 프레임 레이트에서(예컨대, 30 내지 90Hz) 디스플레이 엔진으로 로딩될 수 있다. 디스플레이 엔진은 마스터 프레임 레이트(예컨대, 30 내지 90Hz)보다 높을 수 있는 서브프레임 프레임 레이트(예컨대, 1 내지 2kHz)로 일련의 서브프레임 이미지를 생성하기 위해 그래픽 파이프라인 또는 국소화된 변환 동작들(예컨대, 2D 시프팅, 보간, 다수의 표면들을 단일 표면들로 합성하는 것)을 사용할 수 있다. 디스플레이 엔진언 서브프레임 프레임 레이트로 서브프레임 이미지들을 물리 디스플레이로 렌더링할 수있다. 이러한 마스터-서브프레임 렌더링 메커니즘은 디스플레이 엔진이 높은 서브프레임 레이트(예컨대, 1 내지 2kHz)를 갖고 디스플레이 콘텐트를 렌더링하며, 그러므로 사용자의 머리 움직임 또는 눈 움직임에 더 반응적(예컨대, 더 짧은 반응 시간)이도록 허용할 수 있다.
제한으로서가 아닌 예로서, 디스플레이 엔진은 도 2c에 예시된 바와 같이, 착용 가능한 컴퓨팅 시스템의 중앙 제어 유닛들(디스플레이 엔진의 외부에 있는)로부터 텍셀 메모리로 이미지 데이터를 로딩하며 마스터 프레임 클록 신호(220) 및 서브프레임 클록 신호(230)에 기초하여 물리 디스플레이로 디스플레이 제어를 렌더링할 수 있다. 마스터 프레임 클록 신호(220)는 활성 시간 기간(222) 및 무활동 시간 기간(224)을 포함한 주기적 시간 기간들을 포함할 수 있다. 특정한 실시예들에서, 마스터 프레임 클록 신호(220)의 활성 시간 기간(222)은 6ms 내지 28ms의 범위에서의 길이를 가질 수 있으며 무활동 시간 기간(224)은 약 5ms의 길이를 가질 수 있다. 메인 프레임 이미지 데이터는 주기적 마스터 프레임 클록 신호(220)의 무활동 시간 기간들(224) 동안 업데이트되거나 또는 디스플레이 엔진의 텍스처 메모리로 로딩될 수 있다.
디스플레이 엔진으로 로딩되거나 또는 업데이트된 후, 메인프레임 이미지 데이터는 디스플레이 엔진의 텍스처 메모리 내에 저장될 수 있다. 디스플레이 엔진은 메인프레임 이미지 데이터에 기초하여 물리 디스플레이를 위한 디스플레이 데이터를 생성하기 위해 그래픽 파이프라인(또는 하나 이상의 국소화된 변환 동작들)을 사용할 수 있다. 물리 디스플레이를 위한 디스플레이 데이터는 서브프레임 클록 신호(230)에 기초하여 생성되고 1 내지 2 kHz의 서브프레임 레이트로 렌더링될 수 있는 다수의 서브프레임 이미지들을 포함할 수 있다. 서브프레임 클록 신호(230)는 마스터 프레임 클록 신호(220)의 활성 시간 기간(222)에 대응하는 활성 시간 기간들(232), 및 마스터 프레임 클록 신호(220)의 무활동 시간 기간(224)에 대응하는 무활동 시간 기간들(234)을 포함한 주기적 시간 기간들을 포함할 수 있다. 서브프레임들(240)을 포함한 디스플레이 콘텐트는 1 내지 2 kHz(예컨대, 로우 업데이트 당 185 내지 270ns)의 서브프레임 레이트로 활성 시간 기간들(232) 동안 물리 디스플레이로 렌더링될 수 있다. 무활동 시간 기간들(234) 동안, 디스플레이 엔진은 물리 디스플레이로 임의의 서브프레임들을 렌더링하지 않으며, 물리 디스플레이로 임의의 서브프레임들을 렌더링하는 대신에, 다른 동작들, 예를 들어, 가변초점 렌즈를 기계적으로 조정하는 것, 및/또는 하나 이상의 국소화된 변환 동작들을 수행할 수 있다. 마스터-서브프레임 렌더링 메커니즘에 대해, 디스플레이 엔진은 메인프레임 이미지들을 수신하며 더 높은 서브프레임 레이트를 갖고 서브프레임을 렌더링하기 위해 업-스트림 모듈들(예컨대, 착용 가능한 컴퓨팅 시스템의 중앙 제어 유닛들)과 인터페이스하기 위해 마스터 프레임 레이트를 사용할 수 있다. 디스플레이 엔진은 다수의 프레임들을 리플레이하며 더 높은 밝기, 더 긴 지속성, 및/또는 개선된 비트 깊이를 가진 디스플레이 렌더링 결과들을 생성하기 위해 변환 또는 동작들(예컨대, 컬러 정정)을 수행할 수 있다.
특정한 실시예들에서, 시스템은 디스플레이 콘텐트(예컨대, 특정한 뷰 각도에서의 씬)가 사용자의 머리 움직임 또는 눈 움직임들에 매우 응답적이도록 허용하기 위해 높은 프레임 레이트(예컨대, 1 내지 2 kHz)를 가진 서브프레임 이미지들을 생성하며 렌더링할 수 있다. 시스템은 사용자의 눈 위치(예컨대, 응시 포인트) 또는/및 머리 위치를 결정하기 위해 하나 이상의 눈 추적 센서들 또는/및 머리 움직임 추적 센서들을 사용할 수 있다. 그 후, 시스템은 최근 눈 위치 또는/및 머리 위치에 따라 씬의 새로운 서브프레임들을 생성하고 렌더링할 수 있다(예컨대, 사용자의 뷰포인트, 뷰 각도, 또는/및 응시 포인트에 기초하여). 시스템은 서브프레임 이미지들을 생성하기 위해 하나 이상의 프로세스들(예컨대, 변환 블록에 의한 타일/표면 결정 프로세스, 픽셀 블록에 의한 재샘플링 프로세스, 디스플레이 블록에 의한 블렌딩, 필터링, 정정, 및 단종 프로세스들 등)을 포함한 그래픽 파이프라인을 사용할 수 있다. 서브프레임들의 높은 렌더링 프레임 레이트(및 따라서 짧은 렌더링 기간) 때문에, 시스템은 씬의 다음 서브프레임을 생성하기 전에 정확하며 최신의(예컨대, 실시간 또는 준-실시간) 눈 위치 정보(예컨대, 응시 포인트) 또는/및 머리 위치 정보를 가질 수 있다. 특정한 실시예들에서, 시스템은 포비티드 렌더링을 위한 포비티드 서브프레임 이미지들을 생성하기 위해 이러한 정확하며 최신의 눈 위치 정보 또는/및 머리 위치 정보를 이용할 수 있다. 시스템은 사용자의 중심와 영역 또는 응시 포인트로의 상대적인 위치들 및 거리들에 기초하여 다수의 디스플레이 영역들을 결정하며 상이한 디스플레이 영역들에 대응하는 상이한 이미지 영역들에서 가변 분해능을 갖고 포비티드 서브프레임 이미지들을 생성할 수 있다. 포비티드 서브프레임 이미지들을 사용자의 중심와 영역 또는 응시 포인트에 대응하는 하나 이상의 이미지 영역들에서 높은 분해능(예컨대, 전체 분해능)을 가질 수 있으며 사용자의 응시 포인트로부터 더 먼 이미지 영역들에서 점진적으로 더 낮은 분해능들을 가질 수 있다.
도 3a는 포비티드 렌더링을 위한 상이한 렌더링 분해능들을 가진 디스플레이 영역들을 결정하기 위한 예시적인 기법(300A)을 예시한다. 특정한 실시예들에서, 시스템은 사용자의 응시 포인트 또는 눈 위치에 기초하여 전체 디스플레이 면적(310)을 상이한 디스플레이 영역들 또는 면적들로 나눌 수 있다. 시스템은 디스플레이 영역들에 대응하는 상이한 이미지 영역들에서 상이한 분해능들을 가진 서브프레임 이미지를 생성하며 상이한 디스플레이 영역들에서 상이한 렌더링 분해능들을 갖고 디스플레이 콘텐트를 렌더링할 수 있다. 제한으로서가 아닌 예로서, 시스템은 사용자 응시 포인트(311)에 기초하여 제1 디스플레이 영역(312)을 결정할 수 있다. 제1 디스플레이 영역(312)은 전체 디스플레이 면적의 일 부분(예컨대, 10%, 20%, 25%, 30%, 50%, 60%, 또는 임의의 적절한 퍼센티지)을 커버하는 응시 포인트(311)에 중심을 둔 직사각형 영역일 수 있다. 사용자의 응시 포인트는 하나 이상의 눈 추적 센서들에 의해 측정된 바와 같이 사용자의 눈 위치에 기초하여 결정될 수 있다. 시스템은 제1 디스플레이 영역(312)을 제외한 제2 디스플레이 영역(313)을 결정할 수 있다. 다시 말해서, 제2 디스플레이 영역(313)은 제1 디스플레이 영역(312)에 의해 커버된 픽셀들의 서브세트와 공유된 픽셀들을 갖지 않을 수 있는 픽셀들의 서브세트를 커버할 수 있다. 시스템은 제1 디스플레이 영역(312) 및 제2 디스플레이 영역(313)을 제외한(예컨대, 제1 디스플레이 영역(312) 및 제2 디스플레이 영역(313)에 의해 커버된 픽셀들의 서브세트와 공유된 픽셀들을 갖지 않을 수 있는 픽셀들의 서브세트를 커버하는) 제3 디스플레이 영역(314)을 결정할 수 있다. 제3 디스플레이 영역(314)은 제1 디스플레이 영역(312) 및 제2 디스플레이 영역(313)에 의해 커버되지 않는 디스플레이의 남아있는 면적들을 커버할 수 있다.
본 출원에서 설명된 바와 같이 제1, 제2, 및 제3 디스플레이 영역들의 형태들 및 크기들은 예시적인 목적을 위한 것이며 디스플레이 영역들은 그것에 제한되지 않는다는 것이 주목할 만하다. 예를 들어, 디스플레이 영역들은 임의의 적절한 크기들(예컨대, 전체 디스플레이 면적의 임의의 퍼센티지)을 가진 임의의 적절한 형태들(예컨대, 직사각형 형태들, 정사각형 형태들, 둥근 형태들, 다각형 형태들, 맞춤화된 형태들, 불규칙한 형태들, 임의의 형태들 등)일 수 있다. 제한으로서가 아닌 예로서, 제1 디스플레이 영역(312)은 전체 디스플레이 면적(310)의 1/4 폭 및 1/4 높이를 가질 수 있다. 제2 디스플레이 영역(313)은 전체 디스플레이 면적(310)의 1/2 폭 및 1/2 높이를 가질 수 있다. 제3 디스플레이 영역(314)은 제2 디스플레이 영역(313)을 넘어 전체 디스플레이 면적(310)의 남아있는 면적을 커버할 수 있다. 제한으로서가 아닌 또 다른 예로서, 제1 디스플레이 영역(312)은 전체 디스플레이 면적(310)의 1/8 폭 및 1/8 높이를 가질 수 있다. 제2 디스플레이 영역(313)은 전체 디스플레이 면적(310)의 1/4 폭 및 1/4 높이를 가질 수 있다. 제3 디스플레이 영역(314)은 제2 디스플레이 영역(313)을 넘어 전체 디스플레이 면적(310)의 남아있는 면적을 커버할 수 있다.
제1, 제2, 및 제3 디스플레이 영역들의 상대적인 위치들 및 크기들은 예시적인 목적을 위한 것이며 디스플레이 영역들은 그것에 제한되지 않는다는 것이 주목할 만하다. 예를 들어, 특정한 실시예들에서, 제1 디스플레이 영역(312)은 응시 포인트(311)에 중심을 둘 수 있다. 그러나, 몇몇 다른 실시예들에서, 제1 디스플레이 영역(312)은 응시 포인트(311)에 중심을 두지 않을 수 있다. 응시 포인트(311)는 제1 디스플레이 영역(311)에서 임의의 적절한 위치들(예컨대, 중심-위치, 비-중심 위치, 중심에서 좌측 위치, 중심에서 우측 위치, 중심 위 위치, 중심 아래 위치, 임의의 위치 등)에 위치될 수 있다. 또 다른 예로서, 특정한 실시예들에서, 제2 디스플레이 영역(313)은 제1 디스플레이 영역(312)에 중심을 두며 또는/및 응시 포인트(311)에 중심을 둘 수 있다. 그러나, 몇몇 다른 실시예들에서, 제2 디스플레이 영역(313)은 제1 디스플레이 영역(312)에 중심을 두거나 또는 응시 포인트(311)에 중심을 둘 필요가 없을 수 있다. 제1 디스플레이 영역(312)은 제2 디스플레이 영역(313)에서 임의의 적절한 위치들에 위치될 수 있다. 제2 디스플레이 영역(313)은 제3 디스플레이 영역(314)에서 임의의 적절한 위치들에 위치될 수 있다.
특정한 실시예들에서, 사용자의 중심와 영역에 대응하는 제1 디스플레이 영역(312)은 사용자의 응시 포인트 또는 응시 방향의 불확실성의 정도에 기초하여 결정될 수 있다. 예를 들어, 시스템은 10 정도의 불확실성을 갖고 사용자의 응시 방향 및 ±5 정도의 불확실성을 갖고 사용자의 중심와 영역을 결정할 수 있다. 시스템은 전체 분해능에 대한 ±15도의 사용자의 뷰 각도들에 대응하는 크기를 가지며 제1 디스플레이 영역을 지나 다른 디스플레이 영역들에서 더 낮은 분해능을 사용한다. 본 출원에서 설명된 바와 같이 3개의 디스플레이 영역들은 예시적인 목적을 위한 것이며 디스플레이 영역 분할은 그것에 제한되지 않는다는 것이 주목할 만하다. 시스템은 임의의 적절한 방식들로 디스플레이를 임의의 수의 영역들(예컨대, 그리드 패턴들로 나눈 영역들, 중심이 같은 영역들, 중첩 형태들에 의해 정의된 배타적 영역들 등)로 나눌 수 있다. 예를 들어, 시스템은 그리드 패턴을 사용하여 전체 디스플레이 면적을 다수의 디스플레이 영역들로 나누며 사용자의 상대적 위치들 또는/및 응시 포인트에 기초하여 이들 디스플레이 영역들의 각각에 대한 렌더링 분해능을 결정할 수 있다. 각각의 디스플레이 영역은 픽셀들의 행렬을 포함한 각각의 타일(예컨대, 각각의 타일은 16 픽셀들×16 픽셀들을 갖는다)로 타일들의 행렬(예컨대, 16 타일들×16 타일들)을 커버할 수 있다. 디스플레이 영역들의 에지 위치들은 구현을 단순화하기 위해 몇몇 정렬(예컨대, 16 픽셀들)에 제한될 수 있다. 시스템은 디스플레이 영역들에 대응하는 상이한 이미지 영역들에서 상이한 분해능들을 가진 서브프레임 이미지를 생성하며 대응하는 렌더링 분해능들을 사용하여 디스플레이의 상이한 디스플레이 영역들에서 이미지의 상이한 부분들을 렌더링할 수 있다.
특정한 실시예들에서, 시스템은 상이한 디스플레이 영역들에서 상이한 렌더링 분해능들을 가진 디스플레이 콘텐트를 렌더링할 수 있다. 중심와 영역(사용자의 응시가 집중되는 곳)에 대응하는 디스플레이 영역에 대해, 시스템은 적색, 녹색, 및 청색 컬러 채널들에 대해 전체 분해능들을 갖고 픽셀 값들을 계산하고 디스플레이할 수 있다. 중심와 밖에 있는 디스플레이 영역들에 대해, 시스템은 사용자의 눈들이 이들 영역들에서 적은 예리함을 갖기 때문에 하나 이상의 컬러 채널들에 대해 더 낮은 분해능들을 사용할 수 있다. 시스템은 먼저 사용자의 응시 포인트에 기초하여 디스플레이의 둘 이상의 디스플레이 영역들을 결정하며 이들 디스플레이 영역들의 각각에 대한 렌더링 분해능을 결정할 수 있다. 각각의 디스플레이 영역의 렌더링 분해능들은 사용자의 응시 포인트에 대한 상기 디스플레이 영역의 거리에 의존할 수 있다. 시스템은 응시 포인트로부터 더 먼 디스플레이 영역들에 대해 점진적으로 더 낮은 렌더링 분해능들을 사용할 수 있다. 예를 들어, 시스템은 사용자의 응시 포인트를 포함한 디스플레이 영역에서 전체 렌더링 분해능을 사용하며 사용자의 응시 포인트로부터 더 먼 디스플레이 영역들에서 더 낮은 렌더링 분해능들을 사용할 수 있다. 특정한 실시예들에서, 시스템은 일련의 포비티드 서브프레임 이미지들을 생성하기 위해(예컨대, 1 내지 2kHz 서브프레임 프레임 레이트로) 그래픽 파이프라인 또는 하나 이상의 국소화된 변환 동작들을 사용할 수 있다. 포비티드 서브프레임 이미지들의 각각은 디스플레이의 디스플레이 영역들에 대응하는 상이한 이미지 영역들에 걸쳐 가변 이미지 분해능들을 가질 수 있다. 시스템은 디스플레이의 상이한 디스플레이 영역들에서 상이한 렌더링 분해능들을 사용하여 포비티드 서브프레임 이미지들을 렌더링할 수 있다. 제한으로서가 아닌 예로서, 시스템은 각각, 제1 디스플레이 영역(312), 제2 디스플레이 영역(313), 및 제3 디스플레이 영역(314)에서 제1 분해능, 제2 분해능, 및 제3 분해능을 가진 포비티드 서브프레임 이미지의 디스플레이 콘텐트를 렌더링할 수 있다. 제1 분해능은 3개의 렌더링 분해능들 중 가장 높은 분해능(예컨대, 디스플레이의 전체 분해능)일 수 있으며 제2 및 제3 분해능들은 제1 분해능보다 낮은 감소된 분해능들일 수 있다. 특히, 제3 분해능은 제2 분해능보다 낮을 수 있으며 제2 분해능은 제1 분해능보다 낮을 수 있다. 하나 이상의 디스플레이 영역들에서 감소된 렌더링 분해능들을 사용함으로써, 시스템은 디스플레이 콘텐트를 생성하고 렌더링하기 위한 프로세스들에 관련된 계산 및 전력 소비의 양을 감소시킬 수 있다.
도 3b는 적색, 녹색, 및 청색의 3개의 컬러 채널들에 대한 3개의 예시적인 픽셀 어레이들(예컨대, 320, 330, 340)을 예시한다. 특정한 실시예들에서, 시스템은 3개의 컬러 채널들(예컨대, 적색, 녹색, 및 청색)을 가진 디스플레이를 가질 수 있으며 시스템은 각각의 컬러 채널들의 하나 이상의 채도들의 픽셀들을 서브-샘플링할 수 있다. 다시 말해서, 시스템은 상이한 컬러 채널들의 픽셀들이 다른 컬러 채널들과 상이한 샘플링 분해능들을 갖도록 허용할 수 있다. 시스템은 각각, 적색, 녹색, 및 청색 컬러 채널들의 그레이스케일 값들을 결정하기 위해 그래픽 파이프라인의 재샘플링 프로세스를 사용할 수 있다. 동일한 픽셀의 적색, 녹색, 및 청색 컬러 채널들의 그레이스케일 값들은 서로에 대하여 독립적으로 결정될 수 있다. 특정한 실시예들에서, 시스템은 상이한 컬러 채널들(예컨대, 적색, 녹색, 청색)의 픽셀들에 대해 상이한 샘플링 분해능들을 가진 포비티드 이미지들을 생성하고 렌더링할 수 있다. 디스플레이 영역 또는 이미지 영역 내에서, 시스템은 적색, 녹색, 및 청색 컬러 채널들의 픽셀들이 사용자의 중심와 영역으로부터의 거리에 기초하여 스크린의 상이한 부분들을 프로세싱할 때 상이한 샘플링 분해능들(예컨대, 서로에 대하여 2의 제곱들로)을 갖도록 허용할 수 있다. 제한으로서가 아닌 예로서, 디스플레이 영역에 대응하는 이미지 영역 내에서, 시스템은 녹색 컬러 채널의 픽셀들이 전체 샘플링 분해능을 갖도록 허용하며 적색 및 청색 컬러 채널들의 픽셀들이 1/2 샘플링 분해능을 갖도록 허용할 수 있다. 또 다른 예로서, 디스플레이 영역에 대응하는 이미지 영역 내에서, 시스템은 녹색 컬러 채널의 픽셀들이 1/2 샘플링 분해능을 갖도록 허용하며 적색 및 녹색 컬러 채널들의 픽셀들이 1/4 샘플링 분해능을 갖도록 허용할 수 있다. 본 개시에서, 이미지들 또는 디스플레이의 분해능은 이미지 또는 디스플레이의 픽셀들의 수 또는 단위 면적당 픽셀들의 수에 의해 기술될 수 있다는 것이 주목할 만하다. 픽셀들의 수(예컨대, 컬러 채널의 2D 어레이에서 픽셀들)의 샘플링 분해능은 그레이스케일 값이 독립적으로 계산되는 픽셀들의 퍼센티지에 의해 또는 독립적으로 계산된 그레이스케일 값들 대 그레이스케일 값들이 독립적으로 계산된 그레이스케일 값들에 기초하여 결정되는 대응 픽셀들의 총 수의 비에 의해 기술될 수 있다. 렌더링 분해능은 디스플레이 영역에서 이미지의 일 부분을 렌더링하기 위해 사용되는 분해능을 나타낼 수 있으며 렌더링 분해능은 렌더링되는 대응 이미지 부분의 샘플링 분해능에 대응할 수 있다.
특정한 실시예들에서, 시스템은 하나 이상의 디스플레이 영역들 내에서 하나 이상의 컬러 채널들의 픽셀들에 대해 전체 샘플링 분해능 또는 감소된 샘플링 분해능을 사용할 수 있다. 특정한 실시예들에서, 전체 샘플링 분해능은 디스플레이의 전체 픽셀 분해능에 대응할 수 있으며 감소된 샘플링 분해능은 2의 거듭제곱만큼 전체 샘플링 분해능으로부터 감소된 서브-샘플링 분해능일 수 있다(즉, 전체 샘플링 분해능의 1/2n, 여기에서 n은 임의의 적절한 정수일 수 있다). 예를 들어, 감소된 샘플링 분해능들은 전체 샘플링 분해능의 1/2, 1/4, 1/8, 1/16 등일 수 있다. 전체 샘플링 분해능의 1/2n인 샘플링 분해능에 대해, 시스템은 n×n 픽셀들을 포함한 각각의 픽셀 그룹에 대한 그레이스케일 값을 독립적으로 결정할 수 있다. 서로에 대해 2의 거듭제곱에서의 샘플링 분해능들은 예시적인 목적을 위한 것이며 샘플링 분해능은 그것에 제한되지 않는다는 것이 주목할 만하다. 상이한 컬러 채널들 또는/및 상이한 디스플레이 영역들의 샘플링 분해능들은 서로에 대해 임의의 적절한 정수의 거듭제곱들에서의 관계를 가질 수 있다.
특정한 실시예들에서, 전체 샘플링 분해능을 가진 2D 픽셀 어레이에 대해, 시스템은 2D 픽셀 어레이의 각각의 픽셀에 대해 컬러 값 또는 그레이스케일 값을 독립적으로 결정할 수 있다(예컨대, 그래픽 파이프라인의 재샘플링 프로세스를 사용하여). 제한으로서가 아닌 예로서, 녹색 픽셀 어레이(320)가 전체 샘플링 분해능을 가질 때, 시스템은 녹색 픽셀 어레이(320) 내에서 16개 픽셀들의 각각에 대한 그레이스케일 값을 독립적으로 결정할 수 있다. 특정한 실시예들에서, 1/2 샘플링 분해능을 가진 2D 픽셀들에 대해, 시스템은 2D 픽셀 어레이의 각각의 2×2 픽셀 서브-어레이(예컨대, 수직을 따라 두 개의 픽셀들 및 수평 방향들을 따라 두 개의 픽셀들)에 대한 컬러 값 또는 그레이스케일 값을 독립적으로 결정할 수 있다(예컨대, 그래픽 파이프라인의 재샘플링 프로세스를 사용하여). 시스템은 각각의 픽셀 서브-어레이 내에서 픽셀들에 대한 각각의 그레이스케일 값들을 결정하기 위해 복제 또는 보간 프로세스를 사용할 수 있다(예컨대, 디스플레이 엔진의 디스플레이 블록에 의해 또는 디스플레이 시스템 내에서의 하나 이상의 제어기에 의해). 복제 또는 보간 프로세스들은 밝기 정정 및 디더링 프로세스들 이전에 디스플레이 블록에 의해 또는 디스플레이 시스템의 하나 이상의 제어기에 의해 수행될 수 있다. 복제 및 보간 프로세스들은 파이프라인 프로세스들(예컨대, 타일/표면 쌍 결정 프로세스, 재샘플링 프로세스, 필터링 프로세스 등)보다 적은 계산 리소스들을 요구하며 적은 전력을 소비할 수 있다. 그 결과, 시스템은 2D 어레이에서 픽셀들의 수의 그레이스케일 값들의 1/4만을 독립적으로 계산함으로써 계산 리소스 사용 및 전력 소비를 감소시킬 수 있다. 제한으로서가 아닌 예로서, 적색 픽셀 어레이(330)가 1/2 샘플링 분해능을 가질 때, 시스템은 [0,0], [0,1], [1,0], 및 [1,1]의 픽셀들을 포함한 제1 픽셀 서브-어레이, [0,2], [0,3], [1,2], 및 [1,3]의 픽셀들을 포함한 제2 픽셀 서브-어레이, [2,0], [2,1], [3,0], 및 [3,1]의 픽셀들을 포함한 제3 픽셀 서브-어레이, 및 [2,2], [2,3], [3,2], 및 [3,3]의 픽셀들을 포함한 제4 픽셀 서브-어레이를 포함한 2×2 픽셀 서브-어레이의 각각에 대한 그레이스케일 값을 독립적으로 결정할 수 있다. 그 결과, 시스템은 단지 2D 픽셀 어레이에서 16개 픽셀들에 대해 4개의 독립적인 그레이스케일 값들만을 계산할 필요가 있을 것이다.
특정한 실시예들에서, 1/4 샘플링 분해능을 가진 2D 픽셀 어레이에 대해, 시스템은 2D 픽셀 어레이의 각각의 4×4 픽셀 서브-어레이(예컨대, 수직 방향을 따르는 4개의 픽셀들 및 수평 방향을 따르는 4개의 픽셀들)의 컬러 값 또는 그레이스케일 값을 독립적으로 결정할 수 있다(예컨대, 그래픽 파이프라인의 재샘플링 프로세스를 사용하여). 시스템은 각각의 픽셀 서브-어레이 내에서 픽셀들에 대한 각각의 그레이스케일 값들을 결정하기 위해 복제 또는 보간 프로세스를 사용할 수 있다(예컨대, 디스플레이 엔진의 디스플레이 블록에 의해 또는 디스플레이 시스템 내에서의 하나 이상의 제어기에 의해). 그 결과, 시스템은 2D 어레이에서 픽셀들의 수의 그레이스케일 값들의 1/16만을 계산할 필요가 있을 것이다. 제한으로서가 아닌 예로서, 청색 픽셀 어레이(340)가 1/4 샘플링 분해능을 가질 때, 시스템은 청색 픽셀 어레이(340)에서 16개 픽셀들 모두를 포함한 4×4 픽셀 그룹에 대한 그레이스케일 값을 독립적으로 결정할 수 있다. 16개 픽셀들의 그레이스케일 값들은 동일한 그레이스케일 값을 복제하거나 또는 독립적으로 결정되는 다수의 그레이스케일 값들을 보간함으로써 결정될 수 있다. 그 결과, 시스템은 단지 2D 어레이에서 16개 픽셀들에 대해 하나의 그레이스케일 값만을 독립적으로 계산할 필요가 있을 것이다. 1/2 및 1/4 샘플링 분해능들은 예시적인 목적을 위한 것이며 감소된 샘플링 분해능들은 그것에 제한되지 않는다는 것이 주목할 만하다. 상이한 컬러 채널들 또는/및 상이한 디스플레이 영역들의 감소된 샘플링 분해능들은 전체 샘플링 분해능 및 임의의 적절한 정수의 거듭제곱들로(즉, 전체 샘플링 분해능의 1/mn, 여기에서 m 및 n은 임의의 적절한 정수일 수 있다) 서로에 대한 관계를 가질 수 있다.
특정한 실시예들에서, 시스템은 상이한 컬러 채널들에 대해 상이한 픽셀 크기를 갖는 디스플레이(예컨대, μLED 디스플레이)를 사용할 수 있다. 예를 들어, 시스템은 녹색 픽셀들의 크기의 두 배(면적의 4배)인 적색 픽셀들 및 청색 픽셀들을 가진 μLED 디스플레이를 사용할 수 있다. 디스플레이 영역에서 적색, 녹색, 및 청색 픽셀들의 수는 1:4:1의 비를 가질 수 있으며 각각의 적색 픽셀 및 각각의 청색 픽셀은 4개의 녹색 픽셀들에 대응한다. 특정한 실시예들에서, 시스템은 3개의 컬러 채널들에 대해 동일한 크기의 픽셀들 및 각각의 컬러 채널들에 대해 동일한 수의 픽셀들을 가진 디스플레이를 사용할 수 있다(예컨대, 적색, 녹색, 및 청색 픽셀들의 비는 디스플레이 영역에서 1:1:1이다). 특정한 실시예들에서, 시스템은 3개의 상이한 컬러 채널들에 대해 동일한 크기의 픽셀들을 갖지만 상이한 컬러 채널들에 대해 상이한 수의 픽셀들을 갖는 디스플레이를 사용할 수 있다(예컨대, 적색, 녹색, 및 청색 픽셀들의 숫자 비는 디스플레이 영역에서 1:2:1이다). 본 개시에서 설명된 바와 같이 시스템들 및 방법들은 디스플레이의 유형에 의존적이지 않으며 예를 들어, 이에 제한되지 않지만, μLED 디스플레이들, OLED 디스플레이들, AMOLED 디스플레이들, LCD 디스플레이들, LED 디스플레이들, 또는 상이한 컬러 채널들의 임의의 픽셀 크기들 또는/및 임의의 비의 수 픽셀들을 가진 임의의 적절한 디스플레이들을 포함한 임의의 유형들의 디스플레이들에 적용 가능하다는 것이 주목할 만하다. 본 개시에서 설명된 바와 같이 시스템들 및 방법들은 RGB 컬러 채널들을 가진 디스플레이에 제한되지 않는다는 것이 주목할 만하다. 예를 들어, 특정한 실시예들에서, 시스템은 흑백 휘도 채널들 및 인간이 휘도보다 덜 정확하게 컬러를 지각하는 이점을 취한 컬러 정보에 대한 두 개의 다른 채널들을 가진 디스플레이를 가질 수 있다. 하나 이상의 컬러 채널들 또는 휘도 채널들은 수평 또는/및 수직 방향으로 서브-샘플링될 수 있다. 본 개시에서 설명된 바와 같이 시스템들 및 방법은 이러한 유형의 디스플레이들에 또한 적용 가능하다.
도 3c는 상이한 컬러 채널들 및 상이한 디스플레이 영역들의 샘플링 분해능들을 결정하기 위한 예시적인 기법(300C)을 예시한다. 특정한 실시예들에서, 시스템은 사용자의 응시 포인트에 대한 상대적인 위치들 또는/및 거리들에 기초하여 디스플레이 영역들의 수 및 이들 영역들에 대한 점진적으로 더 낮은 렌더링 분해능들의 수를 결정할 수 있다. 본 개시의 이전 섹션들에서 논의된 바와 같이, 시스템은 상이한 컬러 채널들이 상이한 샘플링 분해능들을 갖도록 허용할 수 있다. 상이한 컬러 채널들의 샘플링 분해능들은 서로에 독립적이거나 또는 관련될 수 있다(예컨대, 2의 거듭제곱으로). 특정한 실시예들에서, 시스템은 녹색 픽셀보다 큰 크기를 가진(예컨대, 크기가 두 배이며 면적이 4배) 적색 및 청색 픽셀들을 가진 디스플레이를 가질 수 있다. 디스플레이 영역에서 적색, 녹색, 및 청색 픽셀들의 수는 1:4:1의 비를 가질 수 있으며 각각의 적색 픽셀 및 각각의 청색 픽셀은 4개의 녹색 픽셀들에 대응한다. 특정한 실시예들에서, 시스템은 동일한 크기의 적색, 녹색, 및 청색 픽셀들을 갖지만 적색 또는 청색 픽셀들보다 많은 녹색 픽셀들(예컨대, RGB 픽셀들의 숫자 비는 1:2:1일 수 있다)을 가질 수 있는 디스플레이를 가질 수 있다. 디스플레이의 녹색 픽셀들은 적색 또는 청색 픽셀들보다 큰 퍼센티지의 광 밀도(예컨대, 70 내지 80%)를 비출 수 있다. 특정한 실시예들에서, 시스템은 동일한 크기의 적색, 녹색, 및 청색 픽셀들을 가지며 동일한 수의 녹색, 적색, 또는 청색 픽셀들을 가질 수 있는(예컨대, RGB 픽셀들의 숫자 비는 1:1:1일 수 있다) 디스플레이를 가질 수 있다. 특정한 실시예들에서, 시스템은 적색 및 청색 컬러 채널들보다 녹색 컬러 채널에 대해 상대적인 더 높은 샘플링 분해능을 사용할 수 있다. 그러나, 본 개시에서 설명된 바와 같이 시스템들 및 방법들은 임의의 픽셀 크기 및 임의의 수의 상이한 컬러 채널들의 픽셀들을 가진 임의의 유형들의 디스플레이에 적용 가능하다는 것이 주목할 만하다.
제한으로서가 아닌 예로서, 시스템은 사용자의 응시 포인트에 대응하는(예컨대, 그것에 중심을 두거나 또는 이를 포함하는) 제1 디스플레이 영역을 결정하며 각각이 응시 포인트에 대해 더 긴 거리를 가진 제2, 제3, 및 제4 디스플레이 영역들을 결정할 수 있다. 사용자의 응시가 집중되는 중심와 영역에 대응하는 제1 디스플레이 영역에 대해, 시스템은 전체 샘플링 분해능을 사용하며 각각의 컬러 채널의 각각의 픽셀에 대한 독립적인 그레이스케일 값을 계산할 수 있다. 제1 디스플레이 영역에서 전체 샘플링 분해능은 이러한 영역에서의 디스플레이된 콘텐트가 날카로운 에지들을 갖도록 허용하며 이러한 영역에서 디스플레이 콘텐트의 선명한 뷰를 가능하게 할 수 있다. 다른 디스플레이 영역들에 대해, 시스템은 사용자가 이들 영역들에서 많은 예리함을 갖지 않을 수 있으므로 감소된 샘플링 분해능들을 사용할 수 있다.
또 다른 예로서, 제2 디스플레이 영역에 대해, 시스템은 녹색 컬러 채널에 대해 전체 샘플링 분해능을 사용하며 적색 및 청색 컬러 채널들 양쪽 모두에 대해 1/2 샘플링 분해능을 사용할 수 있다. 그 결과, 이러한 디스플레이 영역의 3개의 컬러 채널들의 픽셀들 모두에 대해, 시스템은 단지 이러한 영역에서 픽셀들의 총 수의 절반에 대한 그레이스케일 값들을 독립적으로 계산할 필요가 있을 것이다(1/2의 대응하는 계산 감소 레이트를 갖고). 예를 들어, 도 3b에서 320, 330, 및 340의 픽셀 어레이들을 참조하면, 녹색 컬러 채널이 전체 샘플링 분해능을 가지며 적색 및 청색 컬러 채널들이 1/2 샘플링 분해능을 가질 때, 독립적으로 계산될 필요가 있는 그레이스케일 값들의 수는 24개의 독립적인 그레이스케일 값들의 총 수를 갖고, 녹색, 적색, 및 청색의 컬러 채널들에 대해 각각 16, 4, 및 4일 수 있으며, 이것은 총 3개의 픽셀 어레이들(320, 330, 및 340)의 48개 픽셀들 모두의 1/2이다.
또 다른 예로서, 제3 디스플레이 영역에 대해, 시스템은 녹색, 적색, 및 청색의 3개의 컬러 채널들 모두에 대해 1/2 샘플링 분해능을 사용할 수 있다. 그 결과, 이 영역에서 3개의 컬러 채널들 모두에서의 픽셀들 모두에 대해, 시스템은 단지 이러한 영역의 픽셀들의 총 수의 1/4에 대한 그레이스케일 값들만을 독립적으로 계산할 필요가 있을 것이다(1/4의 대응하는 계산 감소 레이트를 갖고). 예를 들어, 도 3b에서 320, 330, 및 340의 픽셀 어레이들을 참조하면, 3개의 컬러 채널들 모두가 1/2 샘플링 분해능을 가질 때, 독립적으로 계산될 필요가 있는 그레이스케일 값들의 수는 녹색, 적색, 및 청색의 컬러 채널들에 대해, 각각 4, 4, 및 4일 수 있다. 독립적인 그레이스케일 값들의 총 수는 12일 수 있으며, 이것은 3개의 픽셀 어레이들(320, 330, 및 340)에서 48개 픽셀들 모두의 1/4이다.
또 다른 예로서, 제4 디스플레이 영역에 대해, 시스템은 녹색 컬러 채널에 대해 1/2 샘플링 분해능을 사용할 수 있으며 적색 및 청색의 컬러 채널에 대해 1/4 샘플링 분해능을 사용할 수 있다. 그 결과, 이러한 영역의 3개의 컬러 채널들 모두에서의 픽셀들 모두에 대해, 시스템은 단지 이 영역에서 픽셀들의 총 수의 1/8에 대한 그레이스케일 값들만을 독립적으로 계산할 필요가 있을 것이다(1/8의 대응하는 계산 감소 레이트를 갖고). 예를 들어, 도 3b에서 320, 330, 및 340의 픽셀 어레이들을 참조하면, 녹색 컬러 채널이 1/2 샘플링 분해능을 가지며 청색 및 적색 컬러 채널들이 1/4 샘플링 분해능을 가질 때, 독립적으로 계산될 필요가 있는 그레이스케일 값들의 수는 녹색, 적색, 및 청색의 컬러 채널들에 대해 각각 4, 1, 및 1일 수 있다. 독립적인 그레이스케일 값들의 총 수는 6일 수 있으며, 이것은 3개의 픽셀 어레이들(320, 330, 및 340)에서 48개 픽셀들 모두의 1/8이다. 그 결과, 시스템은 감소된 샘플링 분해능들을 갖고 이미지 영역들을 생성하기 위한 계산의 양을 감소시킬 수 있다. 본 출원에서 설명된 바와 같이 샘플링 분해능 기법은 예시적인 목적을 위한 것이며 샘플링 분해능 결정은 그것에 제한되지 않는다는 것이 주목할 만하다. 예를 들어, 시스템은 3개의 컬러 채널들에 대해 임의의 샘플링 분해능들의 임의의 적절한 조합들을 사용할 수 있다. 상이한 컬러 채널들의 상이한 샘플링 분해능들의 관계는 서로에 대해 2의 거듭제곱들의 관계에 제한되지 않는다는 것이 주목할 만하다. 그것은 임의의 적절한 정수의 거듭제곱들에 있을 수 있다.
특정한 실시예들에서, 시스템은 상이한 렌더링 분해능들을 가진 디스플레이 콘텐트를 렌더링하기 위한 특정한 크기들의 다수의 디스플레이 영역들을 결정할 수 있다. 제한으로서가 아닌 예로서, 도 3a를 참조하면, 시스템은 전체 디스플레이 크기(310)의 1/4(전체 디스플레이의 1/4 폭 및 1/4 높이)이며 전체 디스플레이 면적의 1/16을 커버하는 제1 디스플레이 영역(312)을 결정할 수 있다. 시스템은 제1 디스플레이 영역(312)을 제외한 제2 디스플레이 영역(313)을 결정할 수 있다. 제2 디스플레이 영역은 전체 디스플레이 크기의 1/2(전체 디스플레이 면적의 1/4를 커버하는 전체 디스플레이의 1/2 폭 및 1/2 높이)인 직사각형 형태(제1 디스플레이 영역(312)을 제외한)에 대응할 수 있다. 시스템은 전체 디스플레이 면적의 나머지 면적을 포함하며 전체 디스플레이 면적의 3/4를 커버하는 제3 디스플레이 영역(314)을 결정할 수 있다. 특정한 실시예들에서, 전체 디스플레이 면적은 2560 픽셀들×1792 픽셀들의 분해능을 가질 수 있다. 제1 디스플레이 영역(312)은 사용자의 응시 포인트(311)에 대략 중심을 둘 수 있다(예컨대, 제1 디스플레이 영역의 중심은 사용자의 응시 포인트(311)에 대해 임계 거리 내에 있다). 디스플레이 영역들의 에지 위치들은 구현을 단순화하기 위해 몇몇 정렬(예컨대, 16 픽셀들)에 제한될 수 있다.
도 3d는 계산의 양을 감소시키기 위해 상이한 컬러 채널들 및 상이한 디스플레이 영역들에 대해 상이한 샘플링 분해능들을 사용하는 예시적인 기법(300D)을 예시한다. 특정한 실시예들에서, 제1 디스플레이 영역은 전체 샘플링 분해능을 가진 모두 3개의 컬러 채널들을 가질 수 있다. 시스템은 이러한 디스플레이 영역에서 각각의 컬러 채널의 각각의 픽셀에 대한 그레이스케일 값을 독립적으로 계산할 수 있다. 제2 디스플레이 영역은 녹색 컬러 채널에 대한 전체 샘플링 분해능을 사용하며 적색 및 청색 컬러 채널들에 대해 1/2 샘플링 분해능을 사용할 수 있다. 본 개시의 이전 섹션들에서 설명된 바와 같이, 시스템은 단지 이러한 영역에서 픽셀들의 총 수의 1/2에 대한 그레이스케일 값들만을 독립적으로 계산할 필요가 있을 것이다(1/2의 계산 감소 레이트를 갖고). 제2 디스플레이 영역이 전체 디스플레이 면적의 3/16을 커버하기 때문에, 시스템은 단지 제2 디스플레이 영역에 대한 디스플레이의 총 픽셀들의 3/32에 대한 그레이스케일 값들만을 독립적으로 계산할 필요가 있을 것이다(예컨대, 제2 디스플레이 영역에 의해 기여된 바와 같이 디스플레이의 총 픽셀들의 3/16 내지 3/32의 계산 감소). 제3 디스플레이 영역은 모두 3개의 컬러 채널들에 대해 1/2 샘플링 분해능을 사용할 수 있다. 본 개시의 이전 섹션들에서 설명된 바와 같이, 시스템은 단지 이러한 영역에서 픽셀들의 총 수의 1/4에 대한 그레이스케일 값들만을 독립적으로 계산할 필요가 있을 것이다(1/4의 계산 감소 레이트를 갖고). 제3 디스플레이 영역이 전체 디스플레이 면적의 3/4를 커버하기 때문에, 시스템은 단지 제2 디스플레이 영역에 대한 디스플레이의 총 픽셀들의 3/16에 대한 그레이스케일 값들만을 독립적으로 계산팔 필요가 있을 것이다(예컨대, 제3 디스플레이 영역에 의해 기여된 바와 같이 디스플레이의 총 픽셀들의 3/4 내지 3/16의 계산 레이트). 그 결과, 시스템은 이러한 예시적인 기법을 사용함으로써 픽셀 프로세싱에 대한 계산 감소를 위해 11/32(즉, 1/16 + 3/32 + 3/16)의 계산 감소 레이트 또는 대략 3:1 감소를 가질 수 있다. 결과적으로, 시스템은 단지 디스플레이 뒤판으로 디스플레이 데이터를 송신하기 위해 버스 대역폭의 대략 1/3만을 필요로 할 수 있다.
특정한 실시예들에서, 시스템은 제1 디스플레이 영역들(전체 샘플링 분해능과 같은 비교적 더 높은 샘플링 분해능들을 가질 수 있는)에 대해 더 작은 영역을 사용함으로써 또는/및 다른 디스플레이 영역들에서 추가로 더 낮은 샘플링 분해능들을 사용함으로써 픽셀 값들을 결정하기 위한 계산을 추가로 감소시킬 수 있다. 제한으로서가 아닌 예로서, 시스템은 전체 디스플레이 크기의 1/5 폭 및 1/5 높이(즉, 전체 디스플레이 면적의 1/25 면적)를 가진 제1 디스플레이 영역을 사용할 수 있다. 또 다른 예로서, 시스템은 전체 디스플레이 크기의 1/6 폭 및 1/6 높이(즉, 전체 디스플레이 면적의 1/36 면적)를 가진 제1 디스플레이 영역을 사용할 수 있다. 또 다른 예로서, 시스템은 전체 디스플레이 크기의 1/8 폭 및 1/8 높이(즉, 전체 디스플레이 면적의 1/64 면적)를 가진 제1 디스플레이 영역을 사용할 수 있다. 본 출원에서 설명된 바와 같이 제1 디스플레이 영역의 크기들은 예시적인 목적을 위한 것이며 제1 디스플레이 영역의 크기는 그것에 제한되지 않고 임의의 적절한 크기들일 수 있다는 것이 주목할 만하다.
특정한 실시예들에서, 시스템은 하나 이상의 디스플레이 영역들에서 추가로 더 낮은 샘플링 분해능들을 사용함으로써 픽셀 값들을 결정하기 위한 계산의 양을 추가로 감소시킬 수 있다. 제한으로서가 아닌 예로서, 제3 디스플레이 영역에서, 시스템은 녹색 컬러 채널에 대해 1/2 분해능을 사용하며 적색 및 청색 컬러 채널들에 대해 1/4 분해능을 사용할 수 있다. 제3 디스플레이 영역에 대해, 시스템은 단지 디스플레이의 총 픽셀들의 3/32(즉, 1/8×3/4)에 대한 그레이스케일 값들만을 독립적으로 계산할 필요가 있을 것이다. 도 3d에 도시된 바와 동일한 크기들 및 샘플링 분해능을 가진 다른 영역들을 갖고, 시스템은 디스플레이의 픽셀들 모두에 대해 7/32(즉, 1/16 + 3/32 + 3/32 = 7/32) 또는 대략 1/4의 총 계산 감소 레이트를 가질 수 있다.
특정한 실시예들에서, 시스템은 하나 이상의 디스플레이 영역들에서 감소된 렌더링 분해능들을 가진 포비티드 렌더링을 사용함으로써 데이터 버스 상에서 최악의 스캔라인 대역폭(또는 로우 당 피크 대역폭)을 감소시킬 수 있다. 예를 들어, 도 3d에 도시된 기법을 사용한 도 3a에 예시된 바와 같은 디스플레이 영역들에 대해, 제1 디스플레이 영역은 전체 샘플링 분해능들을 가진 모두 3개의 컬러 채널들을 가지며 그러므로 전체 픽셀 밀도를 가질 수 있다. 제2 디스플레이 영역은 녹색 컬러 채널들에 대해 전체 샘플링 분해능 및 적색 및 청색 컬러 채널들에 대해 1/2 샘플링 분해능을 가지며, 그러므로 1/2 픽셀 밀도를 가질 수 있다. 제3 디스플레이 영역은 모두 3개의 컬러 채널들에 대해 1/2 샘플링 분해능을 가지며, 그러므로 1/4 픽셀 밀도를 가질 수 있다. 제1 디스플레이 영역과 교차하는 임의의 로우는 전체 픽셀 밀도를 가진 제1 디스플레이 영역에 있는 상기 로우의 1/4 픽셀들, 1/2 픽셀 밀도를 가진 제2 디스플레이 영역에 있는 상기 로우의 1/4 픽셀들, 및 1/4 픽셀 밀도를 가진 제3 디스플레이 영역에 있는 상기 로우의 1/2 픽셀들을 가질 수 있다. 그 결과, 모두 3개의 디스플레이 영역들과 교차하는 로우에 대한 최악의 스캔라인 대역폭은 전체 디스플레이에 대한 전체 분해능 렌더링과 비교하여 1/2 = 1/4×1 + 1/2×1/4 + 1/4×1/2(즉 픽셀 밀도×로우의 픽셀 수 퍼센티지의 합)에 의해 결정된 바와 같이 1/2의 감소 비(또는 2:1 압축 레이트)를 가질 수 있다. 결과적으로, 데이터 버스 상에서 로우 당 피크 대역폭은 이 예에 대해 2:1의 동일한 감소 비일 수 있다.
특정한 실시예들에서, 시스템은 포비티드 렌더링을 위해 상이한 이미지 영역들에서 가변 분해능들을 가진 일련의 포비티드 서브프레임 이미지들을 생성할 수 있다. 전체 분해능 서브프레임 이미지들을 생성하는 것과 비교하여, 포비티드 서브프레임 이미지들을 생성하는 것은 더 적은 계산 리소스들을 사용하여 더 적은 전력을 소비할 수 있다. 예를 들어, 더 낮은 분해능들을 가진 이미지 영역들에 대해, 시스템은 변환 블록에 의한 타일/표면 쌍 결정 프로세스 동안 더 적은 광선들을 투사하며, 그러므로 전력 소비 및 계산 리소스 사용을 감소시킬 수 있다. 또 다른 예로서, 더 낮은 분해능들을 가진 이미지 영역들에 대해, 그래픽 파이프라인은 픽셀 블록에 의한 재샘플링 프로세스 동안 보다 작은 수의 픽셀들에 대해 계산하며, 그러므로 전력 소비 및 계산 리소스 사용을 감소시킬 수 있다. 또 다른 예로서, 포비티드 서브프레임 이미지들에 대해, 시스템은 디스플레이 블록에 의한 블렌딩, 정정, 단종 프로세스들 동안 더 큰 디스플레이 면적(예컨대, 더 많은 수의 픽셀들 또는 픽셀 타일들)을 프로세싱하며, 그러므로 전력 소비 및 계산 리소스 사용을 감소시킬 수 있다. 또 다른 예로서, 감소된 샘플링 분해능들을 가진 이미지 영역들을 생성하기 위해, 시스템은 더 낮은 분해능들을 가진 소스 데이터(예컨대, 더 낮은 분해능들 또는 더 큰 크기들을 가진 MIP 맵 텍스처 데이터)를 액세스하며, 그러므로 텍스처 데이터를 액세스하기 위해 더 적은 메모리 판독을 수행할 수 있다. 더욱이, 포비티드 서브프레임 이미지들을 사용함으로써, 시스템은 데이터 버스(제한된 대역폭을 가질 수 있는)를 통해 픽셀 값들을 디스플레이로 송신하기 위해 더 적은 데이터 변환 대역폭을 요구할 수 있다.
도 4a 내지 도 4d는 시스템이 하나 이상의 이미지 영역들에서 샘플링 분해능들을 감소시킴으로써 동일한 계산 리소스들을 사용하여 더 많은 수의 픽셀 타일들을 프로세싱하도록 허용하는 예시적인 프레임워크를 예시한다. 제한으로서가 아닌 예로서, 시스템은 4×4 픽셀 타일들(예컨대, 타일(411), 타일(412), 타일(413), 타일(414), 타일(421), 타일(422), 타일(423), 타일(424), 타일(431), 타일(432), 타일(433), 타일(434), 타일(441), 타일(442), 타일(443), 타일(444))을 포함한 타일 어레이(400A)에서의 픽셀들을 프로세싱하도록 요구할 수 있다. 각각의 타일은 임의의 적절한 크기들의 픽셀들의 어레이(즉, n×n 픽셀 어레이, 여기에서 n은 임의의 정수일 수 있다), 예를 들어, 4×4 픽셀 어레이, 16×16 픽셀 어레이, 64×64 픽셀 어레이 등을 포함할 수 있다. 특정한 실시예들에서, 각각의 픽셀 타일은 적색, 녹색, 및 청색 컬러 채널들의 3개의 서브-채도 픽셀들을 포함한 하나의 단일 픽셀에 대응할 수 있다. 이 예에 대해, 적색, 녹색, 및 청색 컬러 채널들의 서브-채도 픽셀들은 1:1:1의 의 비의 숫자 또는 및/또는 동일한 픽셀 크기를 가질 수 있으며 각각의 타일(예컨대, 타일(411), 타일(412), 타일(421), 타일(422))은 16×16 픽셀 어레이(예컨대, 도 3b에 예시된 바와 같이 3개의 컬러 채널들의 3개의 픽셀 어레이들(320, 330, 340)의 조합)를 포함할 수 있다.
특정한 실시예들에서, 전체 분해능 이미지 영역들(예컨대, 사용자의 중심와 영역 또는 응시 포인트에 대응하는 영역에 대한)을 생성하기 위해, 시스템은 픽셀 타일 어레이(400A)에서 픽셀 타일을 프로세싱하기 위해 도 4b의 기법(400B)의 블록들(410, 420, 및 430)에 의해 표현된 바와 같이 계산 리소스들(예컨대, 메모리들, 버퍼들, 캐시들, 계산 유닛들, 필터들, 특정한 대역폭을 가진 데이터 버스, 또는 임의의 이미지 프로세싱 리소스들)의 그룹을 사용할 수 있다. 특정한 실시예들에서, 각각의 블록은 컬러 채널의 픽셀 타일들에 전용되며 동시에 4개의 픽셀 타일(상기 컬러 채널의)을 프로세싱할 수 있다. 예를 들어, 블록(410)은 녹색 컬러 채널들에 전용되며 동시에 411G, 412G, 421G, 및 422G의 4개의 녹색 타일들을 프로세싱할 수 있다. 유사하게, 블록(420)은 적색 컬러 채널에 전용되며 동시에 411R, 412R, 421R, 및 422R의 4개의 적색 타일들을 프로세싱할 수 있다. 블록(430)은 청색 컬러 채널에 전용되며 동시에 411B, 412B, 421B, 및 422B의 4개의 청색 타일들을 프로세싱할 수 있다. 그 결과, 410, 420, 및 430의 3개의 블록들에 의해 표현된 바와 같이 계산 리소스들의 그룹은 이미지(예컨대, 도 4a에서의 이미지 면적(401)에서)의 일 부분을 커버하는 4개의 픽셀 타일들을 동시에 프로세싱할 수 있다. 그에 부응하여, 시스템은 각각의 블록 상에서 동시에 프로세싱된 픽셀 타일들에 의해 결정된 바와 같이 특정한 대역폭을 가진 데이터의 양을 검색하기 위해 각각의 데이터 버스들(예컨대, 데이터 버스(491, 492, 및 493))을 통해 메모리를 액세스할 수 있다.
특정한 실시예들에서, 감소된 샘플링 분해능들을 가진 분해능 이미지 영역들을 생성하기 위해(예컨대, 사용자의 중심와 영역을 넘어선 영역들에 대해), 시스템은 더 큰 이미지 면적을 동시에 프로세싱하기 위해 블록(410), 블록(420), 및 블록(430)에 의해 표현된 바와 같이 동일한 그룹의 계산 리소스들(예컨대, 메모리들, 버퍼들, 캐시들, 계산 유닛들, 필터들, 특정한 대역폭을 가진 데이터 버스, 또는 임의의 이미지 프로세싱 리소스들)을 사용할 수 있다. 예를 들어, 녹색 컬러 채널에 대해 전체 샘플링 분해능 및 적색 및 청색 컬러 채널들에 대해 1/2 샘플링 분해능을 가진 이미지 영역에 대해, 시스템은 녹색 컬러 채널의 모든 4개의 픽셀들에 대해 적색 또는 청색 컬러 채널들의 각각의 픽셀에 대한 그레이스케일 값을 독립적으로 계산할 필요가 있을 것이다. 다시 말해서, 적색, 녹색, 및 청색 컬러 채널들의 서브-채도 픽셀은 1:4:1의 숫자 비를 가질 수 있다. 시스템은 도 4d에 예시된 바와 같이 픽셀 타일들을 프로세싱하기 위한 리소스들의 사용을 최적화할 수 있다. 예를 들어, 블록(410 및 420)은 녹색 컬러 채널들에 전용되며 411G, 412G, 413G, 414G, 421G, 422G, 423G, 및 424G의 8개의 녹색 타일들을 동시에 프로세싱할 수 있다. 블록(430)은 적색 및 녹색 컬러 채널들을 프로세싱하며 411R 및 413R의 두 개의 녹색 타일들 및 411R 및 413R의 두 개의 적색 타일들을 동시에 프로세싱하기 위해 사용될 수 있다. 그 결과, 도 4d에서 기법(400D)의 410, 420, 및 430의 3개의 블록들에 의해 표현된 바와 같이 계산 리소스들의 그룹은 도 4a에 도시된 바와 같이 타일 어레이(400A) 상에서 이미지 면적(401)의 두 배 크기인 이미지 면적(402)(도 4c에서의 타일 어레이(400C)에서)을 동시에 프로세싱할 수 있다. 그에 부응하여, 동일한 크기의 이미지 면적을 생성하거나 또는 프로세싱하기 위해, 시스템은 각각의 데이터 버스들(예컨대, 데이터 버스(491, 492, 및 493))로부터 더 적은 대역폭을 필요로 하며 이미지 생성 또는 프로세싱 프로세스들 동안 더 적은 양의 데이터를 검색할 수 있다. 그러므로, 시스템은 감소된 메모리 판독 및 데이터 프로세싱 때문에 전체 분해능 이미지를 프로세싱하기 위한 것과 동일한 양의 계산 리소스들을 사용하여 주어진 클록 사이클에서 더 큰 이미지 면적(예컨대, 더 많은 수의 픽셀 또는 픽셀 타일들)을 프로세싱하며, 그러므로 시스템 성능의 효율을 개선할 수 있다.
도 4a 내지 도 4d에 예시된 바와 같이 프레임워크는 임의의 특정 계산 리소스들에 제한되지 않는다는 것이 주목할 만하다. 예를 들어, 블록들(410, 420, 및 430)은 계산 유닛들, 메모리들, 필터들, 버퍼들, 캐시들, 데이터 버스 대역폭, 또는 임의의 적절한 리소스들을 나타낼 수 있다. 또 다른 예로서, 픽셀 타일들 및 대응하는 프로세싱 블록들의 배열은 임의의 배열이어서 동일한 블록 크기가 더 많은 픽셀 타일들(예컨대, 서브-샘플링 전 픽셀들보다 두 배 많은)을 호스팅하고 또는/및 프로세싱하도록 허용할 수 있다. 하나 이상의 이미지 영역들에서 감소된 분해능들을 가진 포비티드 렌더링을 사용함으로써, 시스템은 동일한 양의 계산 리소스들을 사용하여 더 큰 이미지 면적을 프로세싱하며, 그러므로 이미지 렌더링 프로세스들을 위해 더 적은 전력 및 시간을 소비할 수 있다. 더욱이, 감소된 샘플링 분해능들을 가진 이미지 영역들을 생성하거나 또는 프로세싱할 때, 시스템은 더 낮은 분해능 텍스처 데이터를 사용하고 더 적은 텍스처 메모리 판독 동작들을 가지며, 그러므로 전력 소비를 추가로 감소시킬 수 있다. 예를 들어, 녹색 컬러 채널에 대해 전체 분해능 및 적색 및 청색에 대해 1/2-분해능을 가진 영역을 고려할 때, 시스템은 녹색을 위해 전체 분해능 소스 데이터를 액세스하며 각각의 픽셀에 대한 별개의 값을 계산할 수 있고, 이것은 디스플레이 뒤판으로 전송될 것이다. 그러나, 적색 및 청색에 대해, 시스템은 1/4 분해능 소스 데이터를 액세스하며 픽셀들의 각각의 2×2에 대해 하나의 값을 계산할 수 있다. 이들 값들은 각각 디스플레이 뒤판으로 전송될 것이며, 이것은 그것들을 2×2 디스플레이 픽셀들로 복제할 수 있다. 그 결과, 이러한 방법은 더 낮은 분해능 서브-채도 픽셀들을 위해 요구된 메모리 저장, 메모리 액세스 및 프로세싱 시간을 감소시킬 뿐만 아니라, 디스플레이 블록에서 디스플레이를 구동하는 뒤판으로의 데이터 버스 상에서의 대역폭을 또한 감소시킨다.
도 5a 내지 도 5c는 픽셀 서브-어레이 내에서의 픽셀들에 대한 그레이스케일 값들을 결정하기 위한 예시적인 복제 프로세스 및 보간 프로세스를 예시한다. 도 5a는 1/2 샘플링 분해능을 가진 예시적인 픽셀 어레이를 예시한다. 시스템은 도 5a에 예시된 바와 같이, 픽셀 어레이(510)에서 각각의 2×2 픽셀 서브-어레이에 대한 그레이스케일 값을 독립적으로 계산할 수 있으며, 여기에서 실선 점들은 독립적으로 계산된 그레이스케일 값들을 가진 픽셀들을 나타내고 빈 점들은 그레이스케일 값들이 독립적으로 계산되지 않은(및 복제 또는 보간 프로세스에 의해 결정될) 픽셀들을 나타낸다. 예를 들어, 시스템은 각각의 2×2 픽셀 서브-어레이들에 대해 픽셀들 [0,0], [0,2], [2,0], 및 [2,2]에 대한 그레이스케일 값들을 독립적으로 계산할 수 있다. 그 후, 시스템은 각각의 2×2 픽셀 서브-어레이들 내에서 각각의 픽셀에 대한 픽셀 값을 결정하기 위해 복제 프로세스 또는 보간 프로세스를 사용할 수 있다. 도 5b는 서브-어레이(511) 내에서의 모든 픽셀들에 대한 그레이스케일 값들을 결정하기 위한 예시적인 복제 프로세스를 예시한다. 시스템은 픽셀 [0,0]의 그레이스케일 값을 복제하며 픽셀들 [0,1], [1,0], 및 [1,1]에 대해 동일한 값들을 사용할 수 있다. 도 5c는 서브-어레이(515) 내에서의 모든 픽셀들에 대한 그레이스케일 값들을 결정하기 위한 예시적인 보간 프로세스를 예시한다. 예를 들어, 시스템은 각각, [0,0]과 [2,0], [0,0]과 [0,2], [0,2]와 [2,2], 및 [2,0]와 [2,2]의 픽셀 쌍들의 그레이스케일 값들을 보간함으로써 픽셀들 [1,0], [0,1], [1,2], 및 [2,1]의 그레이스케일 값들을 결정할 수 있다. 또 다른 예로서, 시스템은 픽셀들 [0,0], [0,2], [2,0], 및 [2,2]의 임의의 적절한 조합을 보간함으로써 픽셀 [1,1]에 대한 그레이스케일 값을 결정할 수 있다. 픽셀 어레이(510)에서의 픽셀들은 임의의 컬러 채널들의 픽셀들일 수 있다는 것이 주목할 만하다. 본 출원에서 예시된 바와 같이 복제 프로세스 및 보간 프로세스는 예시적인 목적을 위한 것이며 복제 프로세스 및 보간 프로세스는 이에 제한되지 않는다는 것이 주목할 만하다. 예를 들어, 복제 프로세스는 임의의 크기들을 가진 임의의 서브-어레이들의 픽셀들에 대한 그레이스케일 값들을 결정하기 위해 사용될 수 있다. 또 다른 예로서, 보간 프로세스는 임의의 수의 관련된 픽셀들(2개의 픽셀들에 제한되지 않음)에 기초할 수 있다. 또 다른 예로서, 보간 프로세스는 이미지들의 하나 이상의 부분의 평균 밝기를 보존하기 위해 가중 평균 계산에 기초할 수 있다. 그 결과, 시스템은 포비팅 관점으로부터의 그레이스케일 값들에 기초하여 이미지의 복제된 영역들을 선택적으로 결정하고 렌더링하며 렌더링 프로세스에 관련된 계산의 양을 감소시킬 수 있다.
특정한 실시예들에서, 복제 프로세스 또는/및 보간 프로세스는 밝기 정정 및 디더링 프로세스들 전에 디스플레이 엔진의 디스플레이 블록에 의해 수행될 수 있다. 특정한 실시예들에서, 복제 프로세스 또는/및 보간 프로세스는 픽셀 데이터가 디스플레이로 송신된 후 디스플레이 시스템에 의해(예컨대, 디스플레이의 하나 이상의 제어기들에 의해) 수행될 수 있다. 예를 들어, 시스템은 감소된 샘플링 분해능들을 가진 픽셀 값들을 디스플레이 시스템(송신을 위해 더 적은 데이터 버스 대역폭을 필요로 하는)으로 전송하며 동일한 또는 별개의 데이터 스트림(예컨대, 사이드 채널)에서 디스플레이에 대응 픽셀 값들을 매핑(또는 물리 픽셀 어레이들로 송신되는 타일당 픽셀 밀도를 매핑)하기 위해 위치 정보(예컨대, 각각의 물리적 픽셀들이 연관되는 서브-어레이들 또는 픽셀 이치들)를 픽셀 값 데이터로 전송할 수 있다. 시스템은 복제 및 보간 동작들을 수행하기 위해 구동기 로직들 또는 제어기들을 포함할 수 있는 디스플레이 시스템(예컨대, LED 디스플레이 또는 μLED 디스플레이)을 포함할 수 있다. 복제 프로세스 또는/및 중복 프로세스를 사용함으로써, 시스템은 포비티드 렌더링으로 인한 계산 리소스 절감 및 전력 절감을 다운스트림 렌더링 파이프라인으로 확대할 수 있다.
특정한 실시예들에서, 시스템은 포비티드 이미지의 하나 이상의 부분들에서 대비 또는/및 평균 밝기를 보존할 수 있다. 특정한 실시예들에서, 시스템은 대비 또는/및 평균 밝기를 보존하기 위해 소스 데이터(예컨대, MIP 맵 텍스처 데이터)를 사전-프로세싱하며 포비티드 이미지를 생성하기 위해 연속하여 더 낮은 분해능들로 소스 데이터를 액세스할 수 있다. 특정한 실시예들에서, 시스템은 픽셀 값들을 디스플레이 뒤판으로 전송하기 전에 대비 또는/및 평균 밝기를 보존하기 전에 계산된 픽셀 값들에 선명도 필터를 적용할 수 있다. 이 경우에, 전체 샘플링 분해능을 가진 픽셀들은 필터링될 필요가 없을 것이며 단지 감소된 샘플링 분해능들을 가진 픽셀들만이 필터링될 필요가 있을 것이다. 예를 들어, 도 3a에 도시된 바와 같은 디스플레이 영역 및 도 3d에 도시된 바와 같은 샘플링 분해능 기법에 대해, 제1 디스플레이 영역에서의 픽셀들 및 제2 디스플레이 영역의 녹색 컬러 채널의 픽셀들은 그것들이 전체 샘플링 분해능을 가지므로 필터링될 필요가 없을 것이다. 제2 디스플레이의 적색 및 청색 컬러 채널들의 픽셀들 및 제3 디스플레이 영역의 모든 픽셀들은 대응하는 픽셀들의 대비 및 평균 밝기를 보존하기 위해 필터링될 필요가 있을 것이다.
도 6은 포비티드 렌더링을 위한 예시적인 방법(600)을 예시한다. 방법(600)은 단계 610에서 시작할 수 있으며, 여기에서 컴퓨팅 시스템은 제1 프레임 레이트(예컨대, 30 내지 90Hz의 메인프레임 레이트)로 생성된 제1 렌더링 프레임(예컨대, 메인프레임 이미지)을 액세스할 수 있다. 단계 620에서, 시스템은, 제1 렌더링 프레임에 기초하여, 제1 프레임 레이트보다 높은 제2 프레임 레이트로 서브프레임들을 생성할 수 있다. 서브프레임들의 제1 서브프레임은: 센서 데이터에 기초하여 사용자의 뷰잉 방향을 결정하고; 뷰잉 방향에 기초하여, 적어도 사용자의 중심와 초점 포인트(예컨대, 응시 포인트)를 포함한 제1 뷰잉 영역 및 제1 뷰잉 영역을 제외한 제2 뷰잉 영역을 결정하고; 제1 서브프레임에 대해, 제1 샘플링 분해능을 사용하여 제1 뷰잉 영역에 대응하는 컬러 값들 및 제1 샘플링 분해능보다 낮은 제2 샘플링 분해능을 사용하여 제2 뷰잉 영역에 대응하는 컬러 값들을 결정함으로써, 생성될 수 있다. 단계 630에서, 시스템은 제2 프레임 레이트에서 디스플레이를 위한 서브프레임들을 출력할 수 있다.
특정한 실시예들에서, 시스템은 적어도 변환 블록 및 픽셀 블록을 포함한 그래픽 파이프라인을 사용하여 제1 서브프레임을 생성할 수 있다. 시스템은 타일들과 표면 사이에서의 교차 지점들을 결정하기 위해 다수의 표면들로 다수의 광선들을 투사함으로써 다수의 타일-표면 쌍들을 결정하기 위해 변환 블록을 사용할 수 있다. 시스템은 복수의 타일-표면 쌍들에 기초하여 제1 및 제2 뷰 영역들에 대응하는 컬러 값들을 결정하기 위해 픽셀 블록을 사용할 수 있다. 특정한 실시예들에서, 변환 블록은 제1 뷰잉 영역(제1 샘플링 분해능과 연관된)에 대응하는 컬러 값들보다 제2 뷰잉 영역(제2 샘플링 분해능과 연관된)에 대응하는 컬러 값들을 결정하는데 더 적은 광선들을 투사할 수 있다. 특정한 실시예들에서, 시스템은, 픽셀 블록에 의해, 제1 샘플링 분해능을 사용하여 제1 세트의 표면들을 샘플링함으로써 제1 뷰잉 영역에 대응하는 컬러 값들을 결정할 수 있다. 시스템은 픽셀 블록에 의해, 제2 샘플링 분해능을 사용하여 제2 세트의 표면들을 샘플링함으로써 제2 뷰잉 영역에 대응하는 컬러 값들을 결정할 수 있다. 픽셀 블록은 제1 뷰잉 영역에 대응하는 컬러 값들보다 제2 샘플 뷰 영역에 대응하는 컬러 값들을 결정하기 위해 더 작은 양의 계산을 수행할 수 있다.
특정한 실시예들에서, 제2 뷰잉 영역에 대응하는 픽셀들의 그룹의 제1 컬러 채널은 제2 샘플링 분해능과 연관될 수 있다. 제2 뷰잉 영역에 대응하는 픽셀들의 그룹의 제2 컬러 채널은 제2 샘플링 분해능과 상이한 제3 샘플링 분해능과 연관될 수 있다. 특정한 실시예들에서, 시스템은 제2 뷰잉 영역에 대응하는 픽셀들의 그룹의 제1 컬러 채널의 각각의 n×n 픽셀 어레이에 대한 그레이스케일 값을 독립적으로 결정할 수 있으며, 여기에서 n의 값은 제2 샘플링 분해능에 기초하여 결정될 수 있다. 특정한 실시예들에서, 시스템은 제2 뷰잉 영역에 대응하는 픽셀들의 그룹의 제2 컬러 채널의 각각의 m×m 픽셀들에 대한 그레이스케일 값을 독립적으로 결정할 수 있으며, 여기에서 m의 값은 제2 컬러 채널과 연관된 제3 분해능에 기초하여 결정될 수 있다. 특정한 실시예들에서, 제1 컬러 채널의 제2 샘플링 분해능 및 제2 컬러 채널의 제3 샘플링 분해능은 2의 거듭제곱의 관계를 가질 수 있다. 특정한 실시예들에서, 시스템은 디스플레이 시스템에 의해 수행될 수 있는 복제 프로세스에 기초하여 n×n 픽셀 어레이 내에서 각각의 픽셀에 대한 그레이스케일 값을 결정할 수 있다. 특정한 실시예들에서, 시스템은 밝기 정정 프로세스 및 디더링 프로세스 이전에 그래픽 파이프라인의 디스플레이 블록에 의해 수행된 보간 프로세스에 기초하여 n×n 픽셀 어레이 내에서의 각각의 픽셀에 대한 그레이스케일 값을 결정할 수 있다.
특정한 실시예들에서, 시스템은 제1 뷰잉 영역 및 제2 뷰잉 영역을 제외한 제3 뷰잉 영역을 결정할 수 있다. 제1 뷰잉 영역, 제2 뷰잉 영역, 및 제3 뷰잉 영역의 각각의 컬러 값들은 점진적으로 더 낮은 샘플링 분해능에 기초하여 결정될 수 있다. 특정한 실시예들에서, 시스템은 소스 데이터에 기초하여 제1 서브프레임을 생성할 수 있다. 시스템은 제1 서브프레임을 생성하기 위해 연속하여 더 낮은 분해능에서 소스 데이터를 사전-프로세싱하며 제1 서브프레임을 생성하는 동안 연속하여 더 낮은 분해능에서 소스 데이터를 액세스할 수 있다. 특정한 실시예들에서, 시스템은 제2 뷰잉 영역에서 하나 이상의 오브젝트들과 연관된 하나 이상의 에지들 상에서 대비 레벨을 보존하기 위해 제2 뷰잉 영역에 대응하는 다수의 픽셀들에 선명도 필터를 적용할 수 있다. 특정한 실시예들에서, 시스템은 제2 뷰잉 영역에서 평균 밝기를 보존하기 위해 제2 뷰잉 영역에서 제1 서브프레임의 다수의 픽셀들에 선명도 필터를 적용할 수 있다. 특정한 실시예들에서, 제1 프레임 레이트는 30 내지 90Hz의 제1 범위 내에 있을 수 있으며 제2 프레임 레이트는 1 내지 2 kHz의 제2 범위 내에 있을 수 있다.
특정한 실시예들은 적절한 경우, 도 6의 방법의 하나 이상의 단계들을 반복할 수 있다. 본 개시는 특정한 순서로 발생하는 것으로 도 6의 방법의 특정한 단계들을 설명하고 예시하지만, 본 개시는 도 6의 방법의 임의의 적절한 단계들이 임의의 적절한 순서로 발생한다는 것을 고려한다. 게다가, 본 개시는 도 6의 방법의 특정한 단계들을 포함한 포비티드 렌더링에 대한 예시적인 방법을 설명하고 예시하지만, 본 개시는 적절한 경우, 도 6의 방법의 단계들의 모두, 일부를 포함하거나, 또는 포함하지 않을 수 있는, 임의의 적절한 단계들을 포함한 포비티드 렌더링을 위한 임의의 적절한 방법을 고려한다. 더욱이, 본 개시는 도 6의 방법의 특정한 단계들을 실행하는 특정한 구성요소들, 디바이스들, 또는 시스템들을 설명하고 예시하지만, 본 개시는 도 6의 방법의 임의의 적절한 단계들을 실행하는 임의의 적절한 구성요소들, 디바이스들, 또는 시스템들의 임의의 적절한 조합을 고려한다.
도 7은 예시적인 컴퓨터 시스템(700)을 예시한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(700)은 본 출원에서 설명되거나 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(700)은 본 출원에서 설명되거나 또는 예시된 기능을 제공한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(700) 상에서 구동하는 소프트웨어는 본 출원에서 설명되거나 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행하거나 또는 본 출원에서 설명되거나 또는 예시된 기능을 제공한다. 본 출원에서, 컴퓨터 시스템에 대한 참조는 적절한 경우, 컴퓨팅 디바이스를 포함하며, 그 반대 또한 마찬가지일 수 있다. 게다가, 컴퓨터 시스템에 대한 참조는 적절한 경우, 하나 이상의 컴퓨터 시스템들을 포함할 수 있다.
본 개시는 임의의 적절한 수의 컴퓨터 시스템들(700)을 고려한다. 본 개시의 임의의 적절한 물리적 형태를 취하는 컴퓨터 시스템(700)을 고려한다. 제한으로서가 아닌 예로서, 컴퓨터 시스템(700)은 내장형 컴퓨터 시스템, 시스템-온-칩(SOC), 단일-보드 컴퓨터 시스템(SBC)(예를 들어 컴퓨터-온-모듈(COM) 또는 시스템-온-모듈(SOM)과 같은), 데스크탑 컴퓨터 시스템, 랩탑 또는 노트북 컴퓨터 시스템, 대화형 키오스크, 메인프레임, 컴퓨터 시스템들의 메시, 이동 전화, 개인용 디지털 보조기(PDA), 서버, 태블릿 컴퓨터 시스템, 증강/가상 현실 디바이스, 또는 이들 중 둘 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(700)은 하나 이상의 컴퓨터 시스템들(700)을 포함하고; 통합형 또는 분산형이고; 다수의 위치들을 포괄하고; 다수의 기계들을 포괄하고; 다수의 데이터 센터들을 포괄하거나; 또는 하나 이상의 네트워크들에서 하나 이상의 클라우드 구성요소들을 포함할 수 있는, 클라우드에 존재할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템들(700)은 상당한 공간적 또는 시간적 제한 없이, 본 출원에서 설명되거나 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행할 수 있다. 제한으로서가 아닌 예로서, 하나 이상의 컴퓨터 시스템들(700)은 본 출원에서 설명되거나 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 실시간으로 또는 배치 모드에서 수행할 수 있다. 하나 이상의 컴퓨터 시스템들(700)은 적절한 경우, 본 출원에서 설명되거나 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 상이한 시간들에서 또는 상이한 위치들에서 수행할 수 있다.
특정한 실시예들에서, 컴퓨터 시스템(700)은 프로세서(702), 메모리(704), 저장장치(706), 입력/출력(I/O) 인터페이스(708), 통신 인터페이스(710), 및 버스(712)를 포함한다. 본 개시는 특정한 배열로 특정한 수의 특정한 구성요소들을 가진 특정한 컴퓨터 시스템을 설명하고 예시하지만, 본 개시는 임의의 적절한 배열로 임의의 적절한 수의 임의의 적절한 구성요소들을 가진 임의의 적절한 컴퓨터 시스템을 고려한다.
특정한 실시예들에서, 프로세서(702)는 컴퓨터 프로그램을 구성하는 것들과 같은, 지시들을 실행하기 위한 하드웨어를 포함한다. 제한으로서가 아닌 예로서, 지시들을 실행하기 위해, 프로세서(702)는 내부 레지스터, 내부 캐시, 메모리(704), 또는 저장장치(706)로부터 지시들을 검색(또는 인출)하고; 그것들을 디코딩하고 실행하며; 그 후 하나 이상의 결과들을 내부 레지스터, 내부 캐시, 메모리(704), 또는 저장장치(706)로 기록할 수 있다. 특정한 실시예들에서, 프로세서(702)는 데이터, 지시들, 또는 어드레스들을 위한 하나 이상의 내부 캐시들을 포함할 수 있다. 본 개시는 적절한 경우, 임의의 적절한 수의 임의의 적절한 내부 캐시들을 포함한 프로세서(702)를 고려한다. 제한으로서가 아닌 예로서, 프로세서(702)는 하나 이상의 지시 캐시들, 하나 이상의 데이터 캐시들, 및 하나 이상의 변환 색인 버퍼들(TLB들)을 포함할 수 있다. 지시 캐시들에서 지시들은 메모리(704) 또는 저장장치(706)에서의 지시들의 사본들일 수 있으며, 지시 캐시들은 프로세서(702)에 의한 이들 지시들의 검색의 속도를 높일 수 있다. 데이터 캐시들에서의 데이터는 동작하도록 프로세서(702)에서 실행한 지시들에 대한 메모리(704) 또는 저장장치(706)에서의 데이터의 사본들; 프로세서(702)에서 실행한 뒤이은 지시들에 의한 액세스를 위해 또는 메모리(704) 또는 저장장치(706)로 기록하기 위해 프로세서(702)에서 실행된 이전 지시들의 결과들; 또는 다른 적절한 데이터일 수 있다. 데이터 캐시들은 프로세서(702)에 의한 판독 또는 기록 동작들의 속도를 높일 수 있다. TLB들은 프로세서(702)에 대한 가상-어드레스 변환의 속도를 높일 수 있다. 특정한 실시예들에서, 프로세서(702)는 데이터, 지시들, 또는 어드레스들에 대한 하나 이상의 내부 레지스터들을 포함할 수 있다. 본 개시는 적절한 경우, 임의의 적절한 수의 임의의 적절한 내부 레지스터들을 포함한 프로세서(702)를 고려한다. 적절한 경우, 프로세서(702)는 하나 이상의 산술 논리 유닛들(ALU들)을 포함하고; 다중-코어 프로세서이거나; 또는 하나 이상의 프로세서들(702)을 포함할 수 있다. 본 개시는 특정한 프로세서를 설명하고 예시하지만, 본 개시는 임의의 적절한 프로세서를 고려한다.
특정한 실시예들에서, 메모리(704)는 프로세서(702)가 실행할 지시들 또는 프로세서(702)가 동작할 데이터를 저장하기 위한 메인 메모리를 포함한다. 제한으로서가 아닌 예로서, 컴퓨터 시스템(700)은 저장장치(706) 또는 또 다른 소스(예를 들어, 또 다른 컴퓨터 시스템(700)과 같은)로부터 메모리(704)로 지시들을 로딩할 수 있다. 프로세서(702)는 그 후 메모리(704)로부터 내부 레지스터 또는 내부 캐시로 지시들을 로딩할 수 있다. 지시들을 실행하기 위해, 프로세서(702)는 내부 레지스터 또는 내부 캐시로부터 지시들을 검색하며 그것들을 디코딩할 수 있다. 지시들의 실행 동안 또는 그 후, 프로세서(702)는 하나 이상의 결과들(중간 또는 최종 결과들일 수 있는)을 내부 레지스터 또는 내부 캐시로 기록할 수 있다. 프로세서(702)는 그 후 이들 결과들 중 하나 이상을 메모리(704)로 기록할 수 있다. 특정한 실시예들에서, 프로세서(702)는 하나 이상의 내부 레지스터들 또는 내부 캐시들에서 또는 메모리(704)에서의 지시들만을 실행하며(저장장치(706) 또는 다른 곳과 대조적으로) 단지 하나 이상의 내부 레지스터들 또는 내부 캐시들에서 또는 메모리(704)에서의 데이터만을 동작시킬 수 있다(저장장치(706) 또는 다른 곳과 대조적으로). 하나 이상의 메모리 버스들(각각은 어드레스 버스 및 데이터 버스를 포함할 수 있다)은 메모리(704)에 프로세서(702)를 결합할 수 있다. 버스(712)는 이하에서 설명되는 바와 같이, 하나 이상의 메모리 버스들을 포함할 수 있다. 특정한 실시예들에서, 하나 이상의 메모리 관리 유닛들(MMU들)은 프로세서(702)와 메모리(704) 사이에 존재하며 프로세서(702)에 의해 요청된 메모리(704)로의 액세스들을 가능하게 한다. 특정한 실시예들에서, 메모리(704)는 랜덤 액세스 메모리(RAM)를 포함할 수 있다. 이러한 RAM은 적절한 경우, 휘발성 메모리일 수 있다. 적절한 경우, 이러한 RAM은 동적 RAM(DRAM) 또는 정적 RAM(SRAM)일 수 있다. 게다가, 적절한 경우, 이러한 RAM은 단일-포트형 또는 다중-포트형 RAM일 수 있다. 본 개시는 임의의 적절한 RAM을 고려한다. 메모리(704)는 적절한 경우, 하나 이상의 메모리들(704)을 포함할 수 있다. 본 개시는 특정한 메모리를 설명하고 예시하지만, 본 개시는 임의의 적절한 메모리를 고려한다.
특정한 실시예들에서, 저장장치(706)는 데이터 또는 지시들에 대한 대용량 저장장치를 포함한다. 제한으로서가 아닌 예로서, 저장장치(706)는 하드 디스크 드라이브(HDD), 플로피 디스크 드라이브, 플래시 메모리, 광학 디스크, 자기-광학 디스크, 자기 테이프, 또는 범용 직렬 버스(USB) 드라이브 또는 이들 중 둘 이상의 조합을 포함한다. 저장장치(706)는 적절한 경우, 착탈 가능한 또는 착탈 가능하지 않은(또는 고정된) 매체를 포함할 수 있다. 저장장치(706)는 적절한 경우, 컴퓨터 시스템(700)의 내부 또는 외부에 있을 수 있다. 특정한 실시예들에서, 저장장치(706)는 비-휘발성, 고체-상태 메모리이다. 특정한 실시예들에서, 저장장치(706)는 판독-전용 메모리(ROM)를 포함한다. 적절한 경우, 이러한 ROM은 마스크-프로그램 ROM, 프로그램 가능한 ROM(PROM), 소거 가능한 PROM(EPROM), 전기적으로 소거 가능한 PROM(EEPROM), 전기적으로 변경 가능한 ROM(EAROM), 또는 플래시 메모리 또는 이들 중 둘 이상의 조합을 포함한다. 본 개시는 임의의 적절한 물리적 형태를 취하는 대용량 저장장치(706)를 고려한다. 저장장치(706)는 적절한 경우, 프로세서(702)와 저장장치(706) 간의 통신을 가능하게 하는 하나 이상의 저장 제어 유닛들을 포함할 수 있다. 적절한 경우, 저장장치(706)는 하나 이상의 저장장치들(706)을 포함할 수 있다. 본 개시는 특정한 저장장치를 기술하고 예시하지만, 본 개시는 임의의 적절한 저장장치를 고려한다.
특정한 실시예들에서, I/O 인터페이스(708)는 컴퓨터 시스템(700)과 하나 이상의 I/O 디바이스들 간의 통신을 위해 하나 이상의 인터페이스들을 제공하는, 하드웨어, 소프트웨어, 또는 둘 모두를 포함한다. 컴퓨터 시스템(700)은 적절한 경우, 이들 I/O 디바이스들 중 하나 이상을 포함할 수 있다. 이들 I/O 디바이스들 중 하나 이상은 사람과 컴퓨터 시스템(700) 간의 통신을 가능하게 할 수 있다. 제한으로서가 아닌 예로서, I/O 디바이스는 키보드, 키패드, 마이크로폰, 모니터, 마우스, 프린터, 스캐너, 스피커, 스틸 카메라, 스타일러스, 태블릿, 터치 스크린, 트랙볼, 비디오 카메라, 또 다른 적절한 I/O 디바이스 또는 이들 중 둘 이상의 조합을 포함할 수 있다. I/O 디바이스는 하나 이상의 센서들을 포함할 수 있다. 본 개시는 임의의 적절한 I/O 디바이스들 및 그것들을 위한 임의의 적절한 I/O 인터페이스들(708)을 고려한다. 적절한 경우, I/O 인터페이스들(708)은 프로세서(702)가 이들 I/O 디바이스들 중 하나 이상을 구동할 수 있게 하는 하나 이상의 디바이스 또는 소프트웨어 드라이버들을 포함할 수 있다. I/O 인터페이스(708)는 적절한 경우, 하나 이상의 I/O 인터페이스들(708)을 포함할 수 있다. 본 개시는 특정한 I/O 인터페이스를 설명하고 예시하지만, 본 개시는 임의의 적절한 I/O 인터페이스를 고려한다.
특정한 실시예들에서, 통신 인터페이스(710)는 컴퓨터 시스템(700) 및 하나 이상의 다른 컴퓨터 시스템들(700) 또는 하나 이상의 네트워크들 사이에서 통신(예를 들어, 패킷-기반 통신과 같은)을 위한 하나 이상의 인터페이스들을 제공하는 하드웨어, 소프트웨어, 또는 둘 모두를 포함한다. 제한으로서가 아닌 예로서, 통신 인터페이스(710)는 이더넷 또는 다른 와이어-기반 네트워크와 통신하기 위한 네트워크 인터페이스 제어기(NIC) 또는 네트워크 어댑터 또는 WI-FI 네트워크와 같은, 무선 네트워크와 통신하기 위한 무선 NIC(WNIC) 또는 무선 어댑터를 포함할 수 있다. 본 개시는 임의의 적절한 네트워크 및 그것을 위한 임의의 적절한 통신 인터페이스(710)를 고려한다. 제한으로서가 아닌 예로서, 컴퓨터 시스템(700)은 애드 혹 네트워크, 개인 영역 네트워크(PAN), 근거리 네트워크(LAN), 광역 네트워크(WAN), 대도시 영역 네트워크(MAN), 또는 인터넷의 하나 이상의 부분들 또는 이들 중 둘 이상의 조합과 통신할 수 있다. 이들 네트워크들 중 하나 이상의 하나 이상의 부분들은 유선 또는 무선일 수 있다. 예로서, 컴퓨터 시스템(700)은 무선 PAN(WPAN)(예를 들어, BLUETOOTH WPAN과 같은), WI-FI 네트워크, WI-MAX 네트워크, 셀룰러 전화 네트워크(예를 들어, 이동 통신들을 위한 전역적 시스템(GSM) 네트워크), 또는 다른 적절한 무선 네트워크 또는 이들 중 둘 이상의 조합과 통신할 수 있다. 컴퓨터 시스템(700)은 적절한 경우, 이들 네트워크들 중 임의의 것을 위한 임의의 적절한 통신 인터페이스(710)를 포함할 수 있다. 통신 인터페이스(710)는 적절한 경우, 하나 이상의 통신 인터페이스들(710)을 포함할 수 있다. 본 개시는 특정한 통신 인터페이스를 설명하고 예시하지만, 본 개시는 임의의 적절한 통신 인터페이스를 고려한다.
특정한 실시예들에서, 버스(712)는 컴퓨터 시스템(700)의 구성요소들을 서로 결합하는 하드웨어, 소프트웨어, 또는 둘 모두를 포함한다. 제한으로서가 아닌 예로서, 버스(712)는 가속화 그래픽 포트(AGP) 또는 다른 그래픽 버스, 강화된 산업 표준 아키텍처(EISA) 버스, 프론트-사이드 버스(FSB), HYPERTRANSPORT(HT) 상호연결, 산업 표준 아키텍처(ISA) 버스, INFINIBAND 상호연결, 로우-핀-카운트(LPC) 버스, 메모리 버스, 마이크로 채널 아키텍처(MCA) 버스, 주변 구성요소 상호연결(PCI) 버스, PCI-익스프레스(PCIe) 버스, 직렬 고급 기술 접속(SATA) 버스, 비디오 전자장치 표준 협회 로컬(VLB) 버스, 또는 또 다른 적절한 버스 또는 이들 중 둘 이상의 조합을 포함할 수 있다. 버스(712)는 적절한 경우, 하나 이상의 버스들(712)을 포함할 수 있다. 본 개시는 특정한 버스를 설명하고 예시하지만, 본 개시는 임의의 적절한 버스 또는 상호연결을 고려한다.
본 출원에서, 컴퓨터-판독 가능한 비-일시적 저장 매체 또는 매체들은 적절한 경우, 하나 이상의 반도체-기반 또는 다른 집적 회로들(IC들)(예를 들어, 필드-프로그램 가능한 게이트 어레이들(FPGA들) 또는 애플리케이션-특정 IC들(ASIC들)과 같은), 하드 디스크 드라이브들(HDD들), 하이브리드 하드 드라이브들(HHD들), 광학 디스크들, 광학 디스크 드라이브들(ODD들), 자기-광학 디스크들, 자기-광학 드라이브들, 플로피 디스켓들, 플로피 디스크 드라이브들(FDD들), 자기 테이프들, 고체-상태 드라이브들(SSD들), RAM-드라이브들, SECURE DIGITAL 카드들 또는 드라이브들, 임의의 다른 적절한 컴퓨터-판독 가능한 비-일시적 저장 매체, 또는 이들 중 둘 이상의 임의의 적절한 조합을 포함할 수 있다. 컴퓨터-판독 가능한 비-일시적 저장 매체는 적절한 경우, 휘발성, 비-휘발성, 또는 휘발성 및 비-휘발성의 조합일 수 있다.
본 출원에서, "또는"은 달리 명확하게 표시되거나 또는 맥락에 의해 달리 표시되지 않는다면, 포괄적이며 배타적이지 않다. 그러므로, 본 출원에서, "A 또는 B"는 달리 명확하게 표시되거나 또는 맥락에 의해 달리 표시되지 않는다면, "A, B, 또는 둘 모두"를 의미한다. 게다가, "및"은 달리 명확하게 표시되거나 또는 맥락에 의해 달리 표시되지 않는다면 공동 및 각기 양쪽 모두이다. 그러므로, 본 출원에서, "A 및 B"는 달리 명확하게 표시되거나 또는 맥락에 의해 달리 표시되지 않는다면, "A 및 B, 공동으로 또는 각기"를 의미한다.
본 개시의 범위는 이 기술분야에서 통상의 기술자가 이해할 본 출원에서 설명되거나 또는 예시된 예시적인 실시예들에 대한 모든 변화들, 대체들, 변형들, 변경들, 및 수정들을 포함한다. 본 개시의 범위는 본 출원에서 설명되거나 또는 예시된 예시적인 실시예들에 제한되지 않는다. 게다가, 본 개시는 본 출원에서의 각각의 실시예들을 특정한 구성요소들, 요소들, 특징, 기능들, 동작들, 또는 단계들을 포함하는 것으로 설명하고 예시하지만, 이들 실시예들 중 임의의 것은 이 기술분야에서 통상의 기술자가 이해할 본 출원에서 다른 곳에 설명되거나 또는 예시된 구성요소들, 요소들, 특징들, 기능들, 동작들, 또는 단계들 중 임의의 것의 임의의 조합 또는 순열을 포함할 수 있다. 더욱이, 특정한 기능을 수행하도록 적응되고, 배열되고, 가능하고, 구성되고, 가능화되고, 동작 가능하거나 또는 동작적인 장치 또는 시스템 또는 장치 또는 시스템의 구성요소에 대한 첨부된 청구항들에서의 참조는, 상기 장치, 시스템, 또는 구성요소가 그렇게 적응되고, 배열되고, 가능하고, 구성되고, 가능화되고, 동작 가능하거나, 또는 동작적인 한, 그것 또는 상기 특정한 기능이 활성화되고, 턴 온되거나, 또는 잠금 해제되는지에 관계없이, 상기 장치, 시스템, 구성요소를 포함한다. 부가적으로, 본 개시는 특정한 실시예들을 특정한 이점들을 제공하는 것으로 설명하거나 또는 예시하지만, 특정한 실시예들은 이들 이점들 중 일부, 또는 모두를 제공하거나, 또는 제공하지 않을 수 있다.

Claims (15)

  1. 방법에 있어서,
    컴퓨팅 시스템에 의해:
    제1 프레임 레이트로 생성된 제1 렌더링 프레임을 액세스하는 단계;
    상기 제1 렌더링 프레임에 기초하여, 상기 제1 프레임 레이트보다 높은 제2 프레임 레이트로 서브프레임들을 생성하는 단계로서, 상기 서브프레임들의 제1 서브프레임은:
    센서 데이터에 기초하여 사용자의 뷰잉 방향을 결정하고;
    상기 뷰잉 방향에 기초하여, 적어도 상기 사용자의 중심와 초점 포인트(foveal focus point)를 포함한 제1 뷰잉 영역 및 상기 제1 뷰잉 영역을 제외한 제2 뷰잉 영역을 결정하고;
    상기 제1 서브프레임에 대해, 제1 샘플링 분해능을 사용하여 상기 제1 뷰잉 영역에 대응하는 컬러 값들 및 상기 제1 샘플링 분해능보다 낮은 제2 샘플링 분해능을 사용하여 상기 제2 뷰잉 영역에 대응하는 컬러 값들을 결정함으로써 생성되는, 상기 제2 프레임 레이트로 서브프레임들을 생성하는 단계; 및
    상기 제2 프레임 레이트에서 디스플레이를 위해 상기 서브프레임들을 출력하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제1 서브프레임은 변환 블록 및 픽셀 블록을 포함한 그래픽 파이프라인에 의해 생성되며:
    상기 변환 블록에 의해, 복수의 타일들과 복수의 표면들 간의 교차 지점들을 결정하기 위해 상기 복수의 표면들에 복수의 광선들을 투사함으로써 복수의 타일-표면 쌍들을 결정하는 단계로서, 상기 제1 및 제2 뷰 영역들에 대응하는 컬러 값들은 상기 복수의 타일-표면 쌍들에 기초하여 결정되는, 상기 복수의 타일-표면 쌍들을 결정하는 단계를 더 포함하는, 방법.
  3. 제2항에 있어서, 상기 변환 블록은 상기 제1 뷰잉 영역에 대응하는 컬러 값들보다 상기 제2 뷰잉 영역에 대응하는 컬러 값들을 결정하는데 더 적은 광선들을 투사하는, 방법.
  4. 제2항에 있어서,
    상기 픽셀 블록에 의해, 상기 제1 샘플링 분해능을 사용하여 제1 세트의 표면들을 샘플링함으로써 상기 제1 뷰잉 영역에 대응하는 컬러 값들을 결정하는 단계; 및
    상기 픽셀 블록에 의해, 상기 제2 샘플링 분해능을 사용하여 제2 세트의 표면들을 샘플링함으로써 상기 제2 뷰잉 영역에 대응하는 컬러 값들을 결정하는 단계로서, 상기 픽셀 블록은 상기 제1 뷰잉 영역에 대응하는 컬러 값들보다 상기 제2 샘플 뷰 영역에 대응하는 컬러 값들을 결정하는데 더 작은 양의 계산을 수행하는, 상기 제2 뷰잉 영역에 대응하는 컬러 값들을 결정하는 단계를 더 포함하는, 방법.
  5. 제4항에 있어서, 상기 제2 뷰잉 영역에 대응하는 픽셀들의 그룹의 제1 컬러 채널은 상기 제2 샘플링 분해능과 연관되고, 상기 제2 뷰잉 영역에 대응하는 픽셀들의 그룹의 제2 컬러 채널은 상기 제2 샘플링 분해능과 상이한 제3 샘플링 분해능과 연관되는, 방법.
  6. 제5항에 있어서,
    상기 제2 뷰잉 영역에 대응하는 픽셀들의 그룹의 제1 컬러 채널의 각각의 n×n 픽셀 어레이에 대한 그레이스케일 값을 독립적으로 결정하는 단계로서, n의 값은 상기 제2 샘플링 분해능에 기초하여 결정되는, 상기 제1 컬러 채널의 각각의 n×n 픽셀 어레이에 대한 그레이스케일 값을 독립적으로 결정하는 단계; 및
    상기 제2 뷰잉 영역에 대응하는 픽셀들의 그룹의 제2 컬러 채널의 각각의 m×m 픽셀들에 대한 그레이스케일 값을 독립적으로 결정하는 단계로서, m의 값은 상기 제2 컬러 채널과 연관된 제3 분해능에 기초하여 결정되는, 상기 제2 컬러 채널의 각각의 m×m 픽셀들에 대한 그레이스케일 값을 독립적으로 결정하는 단계를 더 포함하는, 방법.
  7. 제6항에 있어서, 상기 제1 컬러 채널의 제2 샘플링 분해능 및 상기 제2 컬러 채널의 제3 샘플링 분해능은 2의 거듭제곱의 관계를 갖는, 방법.
  8. 제6항에 있어서, 복제 프로세스에 기초하여 n×n 픽셀 어레이 내에서 각각의 픽셀에 대한 그레이스케일 값을 결정하는 단계로서, 상기 복제 프로세스는 디스플레이 시스템에 의해 수행되는, 상기 n×n 픽셀 어레이 내에서 각각의 픽셀에 대한 그레이스케일 값을 결정하는 단계를 더 포함하는, 방법.
  9. 제6항에 있어서, 보간 프로세스에 기초하여 n×n 픽셀 어레이 내에서 각각의 픽셀에 대한 그레이스케일 값을 결정하는 단계로서, 상기 보간 프로세스는 밝기 정정 프로세스 및 디더링 프로세스 이전에 그래픽 파이프라인의 디스플레이 블록에 의해 수행되는, 상기 n×n 픽셀 어레이 내에서 각각의 픽셀에 대한 그레이스케일 값을 결정하는 단계를 더 포함하는, 방법.
  10. 제1항에 있어서, 상기 제1 뷰잉 영역 및 상기 제2 뷰잉 영역을 제외한 제3 뷰잉 영역을 결정하는 단계를 더 포함하며, 상기 제1 뷰잉 영역, 상기 제2 뷰잉 영역, 및 상기 제3 뷰잉 영역의 각각의 컬러 값들은 점진적으로 더 낮은 샘플링 분해능에 기초하여 결정되는, 방법.
  11. 제1항에 있어서,
    a) 상기 제1 서브프레임은 소스 데이터에 기초하여 생성되며:
    상기 제1 서브프레임을 생성하기 위해 연속하여 더 낮은 분해능에서 상기 소스 데이터를 사전 프로세싱하는 단계; 및
    상기 제1 서브프레임을 생성하는 동안 연속하여 더 낮은 분해능에서 상기 소스 데이터를 액세스하는 단계를 더 포함하거나; 또는
    b) 상기 제2 뷰잉 영역에 대응하는 복수의 픽셀들에 선명도 필터(sharpness filter)를 적용하는 단계로서, 상기 제1 서브프레임은 상기 제2 뷰잉 영역에서 하나 이상의 오브젝트들과 연관된 하나 이상의 에지들 상에서 대비 레벨(contrast level)을 보존하는, 상기 제2 뷰잉 영역에 대응하는 복수의 픽셀들에 선명도 필터를 적용하는 단계를 더 포함하거나; 또는
    c) 상기 제2 뷰잉 영역에서 상기 제1 서브프레임의 복수의 픽셀들에 선명도 필터를 적용하는 단계로서, 상기 제1 서브프레임은 상기 제2 뷰잉 영역에서 평균 밝기를 보존하는, 상기 제2 뷰잉 영역에서 상기 제1 서브프레임의 복수의 픽셀들에 선명도 필터를 적용하는 단계를 더 포함하거나; 또는
    d) 상기 제1 프레임 레이트는 30 내지 90Hz의 제1 범위 내에 있으며, 상기 제2 프레임은 1 내지 2kHz의 제2 범위 내에 있는, 방법.
  12. 소프트웨어를 포함한 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체에 있어서,
    상기 소프트웨어는 실행될 때:
    제1 프레임 레이트로 생성된 제1 렌더링 프레임을 액세스하고;
    상기 제1 렌더링 프레임에 기초하여, 상기 제1 프레임 레이트보다 높은 제2 프레임 레이트로 서브프레임들을 생성하고 - 상기 서브프레임들의 제1 서브프레임은: 센서 데이터에 기초하여 사용자의 뷰잉 방향을 결정하고; 상기 뷰잉 방향에 기초하여, 적어도 상기 사용자의 중심와 초점 포인트를 포함한 제1 뷰잉 영역 및 상기 제1 뷰잉 영역을 제외한 제2 뷰잉 영역을 결정하고; 상기 제1 서브프레임에 대해, 제1 샘플링 분해능을 사용하여 상기 제1 뷰잉 영역에 대응하는 컬러 값들 및 상기 제1 샘플링 분해능보다 낮은 제2 샘플링 분해능을 사용하여 제2 뷰잉 영역에 대응하는 컬러 값들을 결정함으로써 생성됨 -;
    상기 제2 프레임 레이트에서 디스플레이를 위해 상기 서브프레임들을 출력하도록 동작 가능한, 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체.
  13. 제12항에 있어서,
    a) 상기 제1 서브프레임 이미지는 변환 블록 및 픽셀 블록을 포함한 그래픽 파이프라인을 사용하여 생성되며, 상기 소프트웨어는 또한 실행될 때:
    상기 변환 블록에 의해, 복수의 타일들과 복수의 표면들 간의 교차 지점들을 결정하기 위해 상기 복수의 표면들에 복수의 광선들을 투사함으로써 복수의 타일-표면 쌍들을 결정하도록 동작 가능하거나 - 상기 제1 및 제2 뷰 영역들에 대응하는 컬러 값들은 상기 복수의 타일-표면 쌍들에 기초하여 결정됨 -; 또는
    상기 변환 블록은 상기 제2 뷰잉 영역에 대응하는 컬러 값들보다 상기 제1 뷰잉 영역에 대응하는 컬러 값들을 결정하기 위해 더 적은 광선들을 투사하는, 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체.
  14. 시스템에 있어서,
    하나 이상의 프로세서들; 및
    상기 프로세서들 중 하나 이상에 결합되며 지시들을 포함한 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체를 포함하며,
    상기 지시들은 상기 프로세서들 중 하나 이상에 의해 실행될 때 상기 시스템으로 하여금:
    제1 프레임 레이트로 생성된 제1 렌더링 프레임을 액세스하게 하고;
    상기 제1 렌더링 프레임에 기초하여, 상기 제1 프레임 레이트보다 높은 제2 프레임 레이트에서 서브프레임들을 생성하게 하고 - 상기 서브프레임들의 제1 서브프레임은: 센서 데이터에 기초하여 사용자의 뷰잉 방향을 결정하고; 상기 뷰잉 방향에 기초하여, 적어도 상기 사용자의 중심와 초점 포인트를 포함한 제1 뷰잉 영역 및 상기 제1 뷰잉 영역을 제외한 제2 뷰잉 영역을 결정하고; 상기 제1 서브프레임에 대해, 제1 샘플링 분해능을 사용하여 상기 제1 뷰잉 영역에 대응하는 컬러 값들 및 상기 제1 샘플링 분해능보다 낮은 제2 샘플링 분해능을 사용하여 상기 제2 뷰잉 영역에 대응하는 컬러 값들을 결정함으로써 생성됨 -;
    상기 제2 프레임 레이트에서 디스플레이를 위해 상기 서브프레임들을 출력하게 하도록 동작 가능한, 시스템.
  15. 제14항에 있어서,
    a) 상기 제1 서브프레임 이미지는 변환 블록 및 픽셀 블록을 포함한 그래픽 파이프라인을 사용하여 생성되며, 상기 지시들은 또한 상기 프로세서들 중 하나 이상에 의해 실행될 때 상기 시스템으로 하여금:
    상기 변환 블록에 의해, 복수의 타일들과 복수의 표면들 간의 교차 지점들을 결정하기 위해 상기 복수의 표면들에 복수의 광선들을 투사함으로써 복수의 타일-표면 쌍들을 결정하게 하거나 - 상기 제1 및 제2 뷰 영역들에 대응하는 컬러 값들은 상기 복수의 타일-표면 쌍들에 기초하여 결정됨 -; 또는
    b) 상기 변환 블록은 상기 제2 뷰잉 영역에 대응하는 컬러 값들보다 상기 제1 뷰잉 영역에 대응하는 컬러 값들을 결정하기 위해 더 적은 광선들을 투사하는, 시스템.
KR1020227005499A 2019-08-13 2020-07-29 포비티드 렌더링을 위한 시스템들 및 방법들 KR20220047284A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/539,724 2019-08-13
US16/539,724 US11100899B2 (en) 2019-08-13 2019-08-13 Systems and methods for foveated rendering
PCT/US2020/044119 WO2021030062A1 (en) 2019-08-13 2020-07-29 Systems and methods for foveated rendering

Publications (1)

Publication Number Publication Date
KR20220047284A true KR20220047284A (ko) 2022-04-15

Family

ID=72087255

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227005499A KR20220047284A (ko) 2019-08-13 2020-07-29 포비티드 렌더링을 위한 시스템들 및 방법들

Country Status (6)

Country Link
US (2) US11100899B2 (ko)
EP (1) EP4014207A1 (ko)
JP (1) JP2022543729A (ko)
KR (1) KR20220047284A (ko)
CN (1) CN114223196A (ko)
WO (1) WO2021030062A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10600213B2 (en) * 2016-02-27 2020-03-24 Focal Sharp, Inc. Method and apparatus for color-preserving spectrum reshape
CN110324601A (zh) * 2018-03-27 2019-10-11 京东方科技集团股份有限公司 渲染方法、计算机产品及显示装置
CN109637406A (zh) * 2019-01-04 2019-04-16 京东方科技集团股份有限公司 一种显示装置的显示方法、显示装置以及可读存储介质
KR102665516B1 (ko) * 2019-12-04 2024-05-14 엘지디스플레이 주식회사 표시 장치
JP2021125854A (ja) * 2020-02-07 2021-08-30 キヤノン株式会社 画像配信装置、方法、プログラム及び記憶媒体
US11748842B2 (en) * 2021-04-13 2023-09-05 Qualcomm Incorporated Methods and apparatus for content shifting in foveated rendering
US11900840B2 (en) 2021-12-13 2024-02-13 Qualcomm Incorporated Chrominance optimizations in rendering pipelines

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6040812A (en) * 1996-06-19 2000-03-21 Xerox Corporation Active matrix display with integrated drive circuitry
USH1812H (en) * 1997-10-24 1999-11-02 Sun Microsystems, Inc. Method for encoding bounding boxes of drawing primitives to be rendered for multi-resolution supersampled frame buffers
US20030112863A1 (en) * 2001-07-12 2003-06-19 Demos Gary A. Method and system for improving compressed image chroma information
US8897359B2 (en) * 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US11010956B2 (en) 2015-12-09 2021-05-18 Imagination Technologies Limited Foveated rendering
US10475370B2 (en) * 2016-02-17 2019-11-12 Google Llc Foveally-rendered display
US10373592B2 (en) * 2016-08-01 2019-08-06 Facebook Technologies, Llc Adaptive parameters in image regions based on eye tracking information
US10379611B2 (en) 2016-09-16 2019-08-13 Intel Corporation Virtual reality/augmented reality apparatus and method
US10388059B2 (en) 2016-10-03 2019-08-20 Nvidia Corporation Stable ray tracing
US20180262758A1 (en) * 2017-03-08 2018-09-13 Ostendo Technologies, Inc. Compression Methods and Systems for Near-Eye Displays
US10410349B2 (en) 2017-03-27 2019-09-10 Microsoft Technology Licensing, Llc Selective application of reprojection processing on layer sub-regions for optimizing late stage reprojection power
GB2568691A (en) 2017-11-23 2019-05-29 Nokia Technologies Oy A method, an apparatus and a computer program product for augmented/virtual reality

Also Published As

Publication number Publication date
EP4014207A1 (en) 2022-06-22
US11100899B2 (en) 2021-08-24
CN114223196A (zh) 2022-03-22
US11862128B2 (en) 2024-01-02
JP2022543729A (ja) 2022-10-14
US20210343261A1 (en) 2021-11-04
US20210049981A1 (en) 2021-02-18
WO2021030062A1 (en) 2021-02-18

Similar Documents

Publication Publication Date Title
US11862128B2 (en) Systems and methods for foveated rendering
US11640691B2 (en) Display engine for post-rendering processing
US11100992B2 (en) Selective pixel output
US11410272B2 (en) Dynamic uniformity correction
US11893676B2 (en) Parallel texture sampling
CN112912823A (zh) 生成和修改增强现实或虚拟现实场景中对象的表示
US11211034B2 (en) Display rendering
CN114127834A (zh) 用于时空抖动的系统和方法
KR20220148814A (ko) 효율적인 다중 뷰 래스터화를 위한 방법들 및 장치
US11681363B2 (en) Waveguide correction map compression
US20230237730A1 (en) Memory structures to support changing view direction
US11733773B1 (en) Dynamic uniformity correction for boundary regions
US11562679B2 (en) Systems and methods for mask-based temporal dithering