KR20230018368A - 폐색 처리 기법을 위한 방법 및 장치 - Google Patents

폐색 처리 기법을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20230018368A
KR20230018368A KR1020227040548A KR20227040548A KR20230018368A KR 20230018368 A KR20230018368 A KR 20230018368A KR 1020227040548 A KR1020227040548 A KR 1020227040548A KR 20227040548 A KR20227040548 A KR 20227040548A KR 20230018368 A KR20230018368 A KR 20230018368A
Authority
KR
South Korea
Prior art keywords
depth
buffers
eye
map
graphics processing
Prior art date
Application number
KR1020227040548A
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 KR20230018368A publication Critical patent/KR20230018368A/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
    • H04N13/128Adjusting depth or disparity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • G06T5/005
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30004Biomedical image processing
    • G06T2207/30041Eye; Retina; Ophthalmic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 개시는 그래픽 프로세싱을 위한 방법들 및 장치에 관한 것이다. 장치는 또한 3DRU 메시, DFS 맵 및 디스플레이 포즈 중 적어도 하나에 기초하여 결합된 깊이 맵을 결정할 수 있다. 장치는 또한 하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들 및 디스플레이 포즈 중 적어도 하나에 기초하여 하나 이상의 재투영된 아이 및 깊이 버퍼들을 결정할 수 있다. 장치는 또한 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하여 적어도 하나의 합성된 프레임을 통신할 수 있다. 장치는 또한 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하여 적어도 하나의 합성된 프레임을 결정할 수 있다. 장치는 또한 3DRU 메시, DFS 맵, 및 디스플레이 포즈를 결합할 수 있다.

Description

폐색 처리 기법을 위한 방법 및 장치
관련 출원(들)에 대한 상호 참조
본 출원은 발명의 명칭이 "METHODS AND APPARATUS FOR OCCLUSION HANDLING TECHNIQUES" 이고 2020년 6월 1일자로 출원된 인도 특허 출원 일련 번호 제 202041022961호의 이익을 주장하며, 여기서는 그 전체 내용을 명확하게 참조로서 포함한다.
기술분야
본 개시는 일반적으로 프로세싱 시스템들에 관한 것으로, 특히, 그래픽 프로세싱을 위한 하나 이상의 기법들에 관한 것이다.
컴퓨팅 디바이스는 디스플레이를 위한 그래픽 데이터의 렌더링을 가속화하기 위해 그래픽 프로세싱 유닛 (GPU) 을 종종 활용한다. 이러한 컴퓨팅 디바이스는 예를 들어 컴퓨터 워크스테이션, 모바일 폰, 예컨대 이른바 스마트 폰, 임베딩된 시스템, 개인용 컴퓨터, 태블릿 컴퓨터 및 비디오 게임 콘솔을 포함할 수도 있다. GPU들은 그래픽 프로세싱 커맨드들을 실행하고 프레임을 출력하도록 함께 동작하는 하나 이상의 프로세싱 스테이지들을 포함하는 그래픽 프로세싱 파이프라인을 실행한다. 중앙 프로세싱 유닛 (CPU) 이 하나 이상의 그래픽 프로세싱 커맨드들을 GPU 에 발행함으로써 GPU 의 동작을 제어할 수도 있다. 현대의 CPU들은 통상적으로 다중 애플리케이션들을 동시에 실행할 수 있으며, 그 각각은 실행 동안 GPU 를 활용할 필요성이 있을 수도 있다. 디스플레이 상에 시각적 프리젠테이션을 위한 콘텐츠를 제공하는 디바이스는 일반적으로 GPU 를 포함한다.
전형적으로, 디바이스의 GPU 는 그래픽 프로세싱 파이프라인에서 프로세스들을 수행하도록 구성된다. 그러나, 무선 통신 및 더 작은 핸드헬드 디바이스들의 출현과 함께, 개선된 그래픽 프로세싱에 대한 필요성이 증가하였다.
다음은 그러한 양태들의 기본적인 이해를 제공하기 위하여 하나 이상의 양태의 간략한 개요를 제시한다. 이 개요는 모든 고려된 양태들의 철저한 개관은 아니며, 모든 양태들의 핵심적인 엘리먼트들을 식별하지도 않고, 임의의 또는 모든 양태들의 범위를 묘사하지도 않도록 의도된 것이다. 그 유일한 목적은 이후에 제시되는 보다 상세한 설명에 대한 도입부로서 간략화된 형태로 하나 이상의 양태의 일부 개념들을 제시하는 것이다.
본 개시의 일 양태에서, 방법, 컴퓨터 판독가능 매체, 및 장치가 제공된다. 장치는 중앙 프로세싱 유닛 그래픽 프로세싱 유닛, 디스플레이 프로세싱 유닛 (DPU), 재투영 모듈, 깊이 컴바이너, 컴포지터, 또는 그래픽 프로세싱을 수행할 수 있는 임의의 장치일 수 있다. 장치는 3DRU (three-dimensional (3D) reconstruction and understanding) 메시, DFS (depth from stereo) 맵, 및 디스플레이 포즈를 결합할 수 있다. 장치는 또한 3DRU 메시, DFS 맵 및 디스플레이 포즈 중 적어도 하나에 기초하여 결합된 깊이 맵을 결정할 수 있다. 또한, 장치는 하나 이상의 바운딩 박스 및 와프 파라미터들을 계산할 수 있다. 장치는 또한 하나 이상의 아이 버퍼들 또는 하나 이상의 깊이 버퍼들 중 적어도 하나를 인코딩할 수 있다. 장치는 또한 하나 이상의 아이 버퍼들 또는 하나 이상의 깊이 버퍼들 중 적어도 하나를 디코딩할 수 있다. 또한, 장치는 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 디스플레이 포즈를 결합할 수 있다. 장치는 또한 하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 디스플레이 포즈 중 적어도 하나에 기초하여 하나 이상의 재투영된 아이 및 깊이 버퍼들을 결정할 수 있다. 추가적으로, 장치는 가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나를 계산할 수 있다. 장치는 또한 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하여 적어도 하나의 합성된 프레임을 결정할 수 있다. 장치는 또한 적어도 하나의 합성된 프레임을 통신할 수도 있고, 적어도 하나의 합성된 프레임은 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초한다.
본 개시의 하나 이상의 예들의 상세들은 첨부 도면들 및 이하의 설명에 기술된다. 본 개시의 다른 특징들, 목적들 및 이점들은 상세한 설명 및 도면들, 및 청구항들로부터 명확해질 것이다.
도 1 은 본 개시의 하나 이상의 구현들에 따른 일 예의 콘텐츠 생성 시스템을 예시하는 블록 다이어그램이다.
도 2 는 본 개시의 하나 이상의 기법들에 따른 일 예의 GPU 를 예시한다.
도 3 은 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 일 예의 다이어그램을 예시한다.
도 4 는 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 일 예의 다이어그램을 예시한다.
도 5 는 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 일 예의 다이어그램을 예시한다.
도 6 은 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 일 예의 다이어그램을 예시한다.
도 7 은 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 일 예의 다이어그램을 예시한다.
도 8 은 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 일 예의 다이어그램을 예시한다.
도 9 는 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 일 예의 다이어그램을 예시한다.
도 10 은 본 개시의 하나 이상의 구현들에 따른 일 예의 다이어그램을 예시한다.
도 11 은 본 개시의 하나 이상의 구현들에 따른 일 예의 방법의 일 예의 플로우차트를 예시한다.
증강 현실(augmented reality, AR) 에서, 더 몰입적인 경험을 위해 실제 및 가상 객체들 사이의 폐색들을 적절하게 처리하는 것은 물론, 환경과의 끊김없는 상호작용들을 처리하는 것이 중요할 수 있다. 폐색 처리가 없으면, 가상 객체들이 실세계에 붙여넣기되는 것으로 보일 수 있다. 폐색 처리의 품질은 다수의 팩터들에 의존할 수도 있다. 예를 들어, 폐색 처리의 품질은 장면이 얼마나 잘 모델링되는지에 의존할 수 있다. 일부 경우들에서, 3차원 복원 및 이해는 AR 디바이스가 장면을 스캔할 때 실세계의 복원된 메시를 제공할 수 있다. 이는 또한 실세계의 깊이 추정값들의 품질을 제공할 수 있다. 폐색 처리에는 여러 가지 문제가 있다. 예를 들어, 3DRU 메시는 애플리케이션이 시작된 직후에 이용가능하지 않을 수 있다. 또한, 3DRU 장면 메시로부터 획득된 깊이 맵은 비교적 클린할 수 있지만, 이는 동적 객체들을 캡처하지 않을 수 있다. 스테레오 카메라 프레임들로부터의 깊이 추정들은 동적 객체들을 캡처할 수 있지만, 이들은 노이즈가 있을 수 있고 디스플레이 리프레시 레이트에서 이용가능하지 않을 수 있다. 본 개시내용의 양태들은, 실세계에서 정적 및 동적 객체들 양쪽 모두를 캡처할 수 있는 더 신뢰성 있는 깊이 맵을 획득하기 위해 3DRU 깊이 및/또는 스테레오의 깊이를 결합할 수 있다. 예를 들어, 본 개시내용의 양태들은 실세계에서 정적 및 동적 객체들을 효과적으로 캡처하기 위해 재투영 모듈, 깊이 결합기, 및/또는 컴포지터를 포함할 수 있다. 이렇게 하는 것에 의해, 본 개시 내용의 양태들은 결합된 깊이 맵, 재투영된 아이 및 깊이 버퍼들 및/또는 합성된 프레임을 초래할 수 있다.
시스템들, 장치들, 컴퓨터 프로그램 제품들, 및 방법들의 다양한 양태들이 첨부 도면들을 참조하여 이하에서 더 충분히 설명된다. 그러나, 본 개시는 많은 상이한 형태들로 구현될 수도 있고, 본 개시에 걸쳐 제시된 임의의 특정 구조 또는 기능으로 제한된다고 해석되어서는 안 된다. 오히려, 이들 양태들은 본 개시가 철저하고 완전하게 되고, 그리고 본 개시의 범위를 당업자에게 충분히 전달하도록 제공된다. 본 명세서에서의 교시들에 기초하여, 당업자는, 본 개시의 다른 양태들과 독립적으로 구현되든 또는 결합되든, 본 개시의 범위가 본 명세서에 개시된 시스템들, 장치들, 컴퓨터 프로그램 제품들 및 방법들의 임의의 양태를 커버하도록 의도된다는 것을 인식할 것이다. 예를 들어, 본 명세서에 제시된 임의의 수의 양태를 이용하여 장치가 구현될 수도 있거나 방법이 실시될 수도 있다. 또한, 본 개시의 범위는 본 명세서에 제시된 본 개시의 다양한 양태들 이외에 또는 이에 부가하여 다른 구조, 기능성, 또는 구조 및 기능성을 이용하여 실시되는 그러한 장치 또는 방법을 커버하도록 의도된다. 본 명세서에 개시된 임의의 양태는 청구항의 하나 이상의 엘리먼트에 의해 구체화될 수도 있다.
다양한 양태들이 본 명세서에서 설명되지만, 이 양태들의 많은 변형들 및 치환들이 본 개시의 범위에 속한다. 본 개시의 양태들의 일부 잠재적인 이익들 및 이점들이 언급되지만, 본 개시의 범위는 특정 이익들, 사용들, 또는 목적들로 한정되도록 의도되지 않는다. 오히려, 본 개시의 양태들은 상이한 무선 기술들, 시스템 구성들, 네트워크들, 및 송신 프로토콜들에 광범위하게 적용가능한 것으로 의도되고, 이들 중 일부는 예로써 도면들에서 그리고 다음의 설명에서 예시된다. 상세한 설명 및 도면들은 제한적이기보다는 본 개시의 예시일 뿐이며, 본 개시의 범위는 첨부된 청구항들 및 그 등가물들에 의해 정의된다.
여러 개의 양태들이 다양한 장치 및 방법들을 참조하여 제시된다. 이들 장치 및 방법들은 다양한 블록들, 컴포넌트들, 회로들, 프로세스들, 알고리즘들 등 ("엘리먼트들" 로 총칭됨) 에 의해 다음의 상세한 설명에서 설명되고 첨부 도면들에 예시될 것이다. 이 엘리먼트들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 임의의 조합을 이용하여 구현될 수도 있다. 그러한 엘리먼트들이 하드웨어 또는 소프트웨어로 구현될지 여부는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약들에 의존한다.
예로써, 엘리먼트, 또는 엘리먼트의 임의의 부분, 또는 엘리먼트들의 임의의 조합은 하나 이상의 프로세서들 (또한 프로세싱 유닛들로 지칭될 수도 있음) 을 포함하는 "프로세싱 시스템" 으로서 구현될 수도 있다. 프로세서들의 예들은 마이크로프로세서들, 마이크로제어기들, 그래픽 프로세싱 유닛들 (GPU들), 범용 GPU들 (GPGPU들), 중앙 프로세싱 유닛들 (CPU들), 애플리케이션 프로세서들, 디지털 신호 프로세서들 (DSP들), RISC (reduced instruction set computing) 프로세서들, SOC (Systems on a chip), 베이스밴드 프로세서들, ASIC들 (application specific integrated circuits), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 프로그래밍가능 로직 디바이스들 (PLD들), 상태 머신들, 게이트된 로직, 이산 하드웨어 회로들, 및 본 개시 전반에 걸쳐 설명된 다양한 기능성을 수행하도록 구성된 다른 적합한 하드웨어를 포함한다. 프로세싱 시스템에서 하나 이상의 프로세서는 소프트웨어를 실행할 수도 있다. 소프트웨어는 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션 언어로 지칭되든 다른 것으로 지칭되든, 명령들, 명령 세트, 코드, 코드 세그먼트, 프로그램 코드, 프로그램, 서브프로그램, 소프트웨어 컴포넌트, 애플리케이션, 소프트웨어 애플리케이션, 소프트웨어 패키지, 루틴, 서브루틴, 객체, 실행물 (executable), 실행의 스레드, 프로시저, 함수 (function) 등을 의미하는 것으로 폭넓게 해석될 수 있다.
용어 "애플리케이션"은 소프트웨어를 지칭할 수도 있다. 본 명세서에서 설명된 바와 같이, 하나 이상의 기술은 하나 이상의 기능을 수행하도록 구성된 애플리케이션, 즉 소프트웨어를 지칭할 수도 있다. 그러한 예들에서, 애플리케이션은 메모리, 예를 들어, 프로세서의 온-칩 메모리, 시스템 메모리, 또는 임의의 다른 메모리에 저장될 수도 있다. 프로세서와 같은 본 명세서에 설명된 하드웨어는 애플리케이션을 실행하도록 구성될 수도 있다. 예를 들어, 애플리케이션은 하드웨어에 의해 실행될 때, 하드웨어로 하여금 본 명세서에 설명된 하나 이상의 기법을 수행하게 하는 코드를 포함하는 것으로 설명될 수도 있다. 예로서, 하드웨어는 메모리로부터 코드에 액세스하고 메모리로부터 액세스된 코드를 실행하여 본 명세서에 설명된 하나 이상의 기법을 수행할 수도 있다. 일부 예들에서, 컴포넌트들은 본 개시에 식별된다. 이러한 예들에서, 컴포넌트들은 하드웨어, 소프트웨어, 또는 이들의 조합일 수도 있다. 컴포넌트들은 별개의 컴포넌트 또는 단일의 컴포넌트의 서브컴포넌트들일 수도 있다.
이에 따라, 본원에 설명된 하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어에서 구현되면, 그 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나 또는 인코딩될 수도 있다. 컴퓨터-판독가능 매체들은 컴퓨터 저장 매체들을 포함한다. 저장 매체들은 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 비한정적 예로서, 이러한 컴퓨터 판독가능 매체는 RAM (random-access memory), ROM (read-only memory), EEPROM (electrically erasable programmable ROM), 광학 디스크 스토리지, 자기 디스크 스토리지, 다른 자기 스토리지 디바이스들, 전술한 유형의 컴퓨터 판독가능 매체의 조합, 또는 컴퓨터에 의해 액세스될 수도 있는 명령 또는 데이터 구조 형태의 컴퓨터 실행가능 코드를 저장하는데 사용될 수도 있는 임의의 다른 매체를 포함할 수도 있다.
일반적으로, 본 개시는 단일 디바이스 또는 다중 디바이스들에서 그래픽 프로세싱 파이프라인을 갖고, 그래픽 콘텐츠의 렌더링을 개선하고, 그리고/또는 프로세싱 유닛, 즉, GPU 와 같은 본 명세서에서 설명된 하나 이상의 기술들을 수행하도록 구성된 임의의 프로세싱 유닛의 로드를 감소시키기 위한 기술들을 설명한다. 예를 들어, 본 개시는 그래픽 프로세싱을 이용하는 임의의 디바이스에서의 그래픽 프로세싱을 위한 기술들을 설명한다. 다른 예시적인 이점들이 본 개시 전반에 걸쳐 설명된다.
본 명세서에 사용된 바와 같이, 용어 "콘텐츠" 의 인스턴스들은 "그래픽 콘텐츠", "이미지" 를 지칭할 수도 있으며, 그 역 또한 마찬가지이다. 이것은 용어들이 형용사, 명사 또는 다른 품사들로서 사용되고 있는지에 관계없이 사실이다. 일부 예들에서, 본 명세서에 사용된 바와 같이, 용어 "그래픽 콘텐츠" 는 그래픽 프로세싱 파이프라인의 하나 이상의 프로세스에 의해 생성된 콘텐츠를 지칭할 수도 있다. 일부 예들에서, 본 명세서에 사용된 바와 같이, 용어 "그래픽 콘텐츠" 는 그래픽 프로세싱을 수행하도록 구성된 프로세싱 유닛에 의해 생성된 콘텐츠를 지칭할 수도 있다. 일부 예들에서, 본 명세서에 사용된 바와 같이, 용어 "그래픽 콘텐츠" 는 그래픽 프로세싱 유닛에 의해 생성된 콘텐츠를 지칭할 수도 있다.
일부 예들에서, 본 명세서에 사용된 바와 같이, 용어 "디스플레이 콘텐츠" 는 디스플레잉 프로세싱을 수행하도록 구성된 프로세싱 유닛에 의해 생성된 콘텐츠를 지칭할 수도 있다. 일부 예들에서, 본 명세서에 사용된 바와 같이, 용어 "디스플레이 콘텐츠" 는 디스플레이 프로세싱 유닛에 의해 생성된 콘텐츠를 지칭할 수도 있다. 그래픽 콘텐츠는 디스플레이 콘텐츠가 되도록 프로세싱될 수도 있다. 예를 들어, 그래픽 프로세싱 유닛은 프레임과 같은 그래픽 콘텐츠를 버퍼 (프레임버퍼로 지칭될 수도 있음) 에 출력할 수도 있다. 디스플레이 프로세싱 유닛은 버퍼로부터 하나 이상의 프레임들과 같은 그래픽 콘텐츠를 판독하고, 그에 대해 하나 이상의 디스플레이 프로세싱 기법들을 수행하여 디스플레이 콘텐츠를 생성할 수도 있다. 예를 들어, 디스플레이 프로세싱 유닛은 프레임을 생성하기 위해 하나 이상의 렌더링된 레이어들에 대해 구성을 수행하도록 구성될 수도 있다. 다른 예로서, 디스플레이 프로세싱 유닛은 둘 이상의 레이어들을 함께 단일 프레임으로 구성, 블렌딩, 또는 그 외에 결합하도록 구성될 수도 있다. 디스플레이 프로세싱 유닛은 프레임에 스케일링, 예컨대 업스케일링 또는 다운스케일링을 수행하도록 구성될 수도 있다. 일부 예들에서, 프레임은 레이어를 지칭할 수도 있다. 다른 예들에서, 프레임은 프레임을 형성하도록 이미 함께 블렌딩된 2 이상의 레이어들을 지칭할 수도 있으며, 즉, 프레임은 2 이상의 레이어들을 포함하고, 2 이상의 레이어들을 포함하는 프레임이 후속하여 블렌딩될 수도 있다.
도 1 은 본 개시의 하나 이상의 기법들을 구현하도록 구성된 일 예의 콘텐츠 생성 시스템 (100) 을 예시하는 블록 다이어그램이다. 콘텐츠 생성 시스템 (100) 은 디바이스 (104) 를 포함한다. 디바이스 (104) 는 본원에 설명된 여러 기능들을 수행하기 위한 하나 이상의 컴포넌트들 또는 회로들을 포함할 수도 있다. 일부 예들에서, 디바이스 (104) 의 하나 이상의 컴포넌트는 SOC 의 컴포넌트들일 수도 있다. 디바이스 (104) 는 본 개시의 하나 이상의 기법들을 수행하도록 구성된 하나 이상의 컴포넌트들을 포함할 수도 있다. 도시된 예에서, 디바이스 (104) 는 프로세싱 유닛 (120), 콘텐츠 인코더/디코더 (122), 및 시스템 메모리 (124) 를 포함할 수도 있다. 일부 양태들에서, 디바이스 (104) 는 다수의 선택적 컴포넌트들, 예를 들어 통신 인터페이스 (126), 트랜시버 (132), 수신기 (128), 송신기 (130), 디스플레이 프로세서 (127), 및 하나 이상의 디스플레이 (131) 를 포함할 수 있다. 디스플레이 (131) 에 대한 언급은 하나 이상의 디스플레이 (131) 를 지칭할 수도 있다. 예를 들어, 디스플레이 (131) 는 단일 디스플레이 또는 다중 디스플레이들을 포함할 수도 있다. 디스플레이 (131) 는 제 1 디스플레이 및 제 2 디스플레이를 포함할 수도 있다. 제 1 디스플레이는 좌안 디스플레이이고, 제 2 디스플레이는 우안 디스플레이일 수도 있다. 일부 예들에서, 제 1 및 제 2 디스플레이는 그 표면에서의 제시를 위해 상이한 프레임들을 수신할 수도 있다. 다른 예들에서, 제 1 및 제 2 디스플레이는 그 표면에서의 제시를 위해 동일한 프레임들을 수신할 수도 있다. 추가 예들에서, 그래픽 프로세싱의 결과들은 디바이스 상에 디스플레이되지 않을 수도 있고, 예를 들어, 제 1 및 제 2 디스플레이는 그 표면에서의 제시를 위한 임의의 프레임들을 수신하지 않을 수도 있다. 대신에, 프레임들 또는 그래픽 프로세싱 결과들이 다른 디바이스로 이송될 수도 있다.일부 양태들에서, 이는 분할-렌더링으로 지칭될 수 있다.
프로세싱 유닛 (120) 은 내부 메모리 (121) 를 포함할 수도 있다. 프로세싱 유닛 (120) 은 그래픽 프로세싱 파이프라인 (107) 에서와 같은, 그래픽 프로세싱을 수행하도록 구성될 수도 있다. 콘텐츠 인코더/디코더 (122) 는 내부 메모리 (123) 를 포함할 수도 있다. 일부 예들에서, 디바이스 (104) 는 디스플레이 프로세서 (127) 와 같은 디스플레이 프로세서를 포함하여, 하나 이상의 디스플레이 (131) 에 의한 제시 전에 프로세싱 유닛 (120) 에 의해 생성된 하나 이상의 프레임에 대해 하나 이상의 디스플레이 프로세싱 기법을 수행할 수도 있다. 디스플레이 프로세서 (127) 는 디스플레이 프로세싱을 수행하도록 구성될 수도 있다. 예를 들어, 디스플레이 프로세서 (127) 는 프로세싱 유닛 (120) 에 의해 생성된 하나 이상의 프레임에 대해 하나 이상의 디스플레이 프로세싱 기술을 수행하도록 구성될 수도 있다. 하나 이상의 디스플레이들 (131) 은 디스플레이 프로세서 (127) 에 의해 프로세싱된 프레임들을 디스플레이하거나 그렇지 않으면 제시하도록 구성될 수도 있다. 일부 예들에서, 하나 이상의 디스플레이들 (131) 은 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 프로젝션 디스플레이 디바이스, 증강 현실 디스플레이 디바이스, 가상 현실 디스플레이 디바이스, 헤드 마운티드 디스플레이, 또는 임의의 다른 유형의 디스플레이 디바이스 중 하나 이상을 포함할 수도 있다.
프로세싱 유닛 (120) 및 콘텐츠 인코더/디코더 (122) 외부의 메모리, 이를 테면, 시스템 메모리 (124) 는 프로세싱 유닛 (120) 및 콘텐츠 인코더/디코더 (122) 에 액세스 가능할 수도 있다. 예를 들어, 프로세싱 유닛 (120) 및 콘텐츠 인코더/디코더 (122) 는 시스템 메모리 (124) 와 같은 외부 메모리로부터 판독 및/또는 그에 기록하도록 구성될 수도 있다. 프로세싱 유닛 (120) 및 콘텐츠 인코더/디코더 (122) 는 버스를 통해 시스템 메모리 (124) 에 통신 가능하게 커플링될 수 있다. 일부 예들에서, 처리 유닛(120) 및 콘텐츠 인코더/디코더(122)는 버스 또는 상이한 접속을 통해 서로 통신적으로 커플링될 수 있다.
콘텐츠 인코더/디코더 (122) 는 시스템 메모리 (124) 및/또는 통신 인터페이스 (126) 와 같은 임의의 소스로부터 그래픽 콘텐츠를 수신하도록 구성될 수도 있다. 시스템 메모리 (124) 는 수신된 인코딩된 또는 디코딩된 그래픽 콘텐츠를 저장하도록 구성될 수도 있다. 콘텐츠 인코더/디코더 (122) 는 예를 들어, 시스템 메모리 (124) 및/또는 통신 인터페이스 (126) 로부터 인코딩된 또는 디코딩된 그래픽 콘텐츠를 인코딩된 픽셀 데이터의 형태로 수신하도록 구성될 수도 있다. 콘텐츠 인코더/디코더 (122) 는 임의의 그래픽 콘텐츠를 인코딩 또는 디코딩하도록 구성될 수도 있다.
내부 메모리 (121) 또는 시스템 메모리 (124) 는 하나 이상의 휘발성 또는 비휘발성 메모리 또는 저장 디바이스를 포함할 수도 있다. 일부 예들에서, 내부 메모리 (121) 또는 시스템 메모리 (124) 는 RAM, SRAM, DRAM, EPROM (erasable programmable ROM), EEPROM (electrically erasable programmable ROM), 플래시 메모리, 자기 데이터 매체 또는 광학 저장 매체, 또는 임의의 다른 유형의 메모리를 포함할 수도 있다.
내부 메모리 (121) 또는 시스템 메모리 (124) 는 일부 예들에 따른 비일시적 저장 매체일 수도 있다. 용어 "비일시적(non-transitory)" 은, 저장 매체가 캐리어 파 또는 전파 신호에서 구현되지 않는다는 것을 나타낼 수도 있다. 그러나, 용어 "비일시적" 은 내부 메모리 (121) 또는 시스템 메모리 (124) 가 이동가능하지 않거나 또는 그것의 콘텐츠들이 정적임을 의미하는 것으로 해석되어서는 안 된다. 일 예로서, 시스템 메모리 (124) 는 디바이스 (104) 로부터 제거되고 다른 디바이스로 이동될 수도 있다. 다른 예로서, 시스템 메모리 (124) 는 디바이스 (104) 로부터 탈착가능하지 않을 수도 있다.
프로세싱 유닛 (120) 은 중앙 프로세싱 유닛, 그래픽 프로세싱 유닛, 범용 GPU (GPGPU), 또는 그래픽 프로세싱을 수행하도록 구성될 수 있는 임의의 다른 프로세싱 유닛일 수도 있다. 일부 예들에서, 프로세싱 유닛 (120) 은 디바이스 (104) 의 마더보드에 통합될 수도 있다. 일부 예들에서, 프로세싱 유닛 (120) 은 디바이스 (104) 의 마더보드에서의 포트에 설치되는 그래픽 카드 상에 존재할 수도 있거나 그렇지 않으면 디바이스 (104) 와 상호동작하도록 구성된 주변 디바이스에 통합될 수도 있다. 프로세싱 유닛 (120) 은 하나 이상의 마이크로프로세서들, GPU들, ASIC들 (application specific integrated circuits), 필드 프로그래밍가능 로직 어레이들 (FPGA들), ALU들 (arithmetic logic units), 디지털 신호 프로세서들 (DSP들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어, 다른 등가의 집적 또는 이산 로직 회로부, 또는 이들의 임의의 조합과 같은 하나 이상의 프로세서들을 포함할 수도 있다. 기법들이 소프트웨어에서 부분적으로 구현되면, 프로세싱 유닛 (120) 은 적합한 비일시적인 컴퓨터 판독가능 저장 매체, 예를 들어, 내부 메모리 (121) 에 소프트웨어에 대한 명령들을 저장할 수도 있으며, 본 개시의 기법들을 수행하기 위해 하나 이상의 프로세서들을 사용하여 하드웨어에서 명령들을 실행할 수도 있다. 하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함하는 임의의 전술한 바가 하나 이상의 프로세서인 것으로 고려될 수도 있다.
콘텐츠 인코더/디코더 (122) 는 콘텐츠 디코딩을 수행하도록 구성된 임의의 프로세싱 유닛일 수도 있다. 일부 예들에서, 콘텐츠 인코더/디코더 (122) 는 디바이스 (104) 의 마더보드에 통합될 수도 있다. 콘텐츠 인코더/디코더 (122) 는 하나 이상의 마이크로프로세서들, ASIC들 (application specific integrated circuits), 필드 프로그래밍가능 로직 어레이들 (FPGA들), ALU들 (arithmetic logic units), 디지털 신호 프로세서들 (DSP들), 비디오 프로세서들, 이산 로직, 소프트웨어, 하드웨어, 펌웨어, 다른 등가의 집적 또는 이산 로직 회로부, 또는 이들의 임의의 조합과 같은 하나 이상의 프로세서들을 포함할 수도 있다. 기법들이 소프트웨어에서 부분적으로 구현되면, 프로세싱 유닛 (122) 은 적합한 비일시적인 컴퓨터 판독가능 저장 매체, 예를 들어, 내부 메모리 (123) 에 소프트웨어에 대한 명령들을 저장할 수도 있으며, 본 개시의 기법들을 수행하기 위해 하나 이상의 프로세서들을 사용하여 하드웨어에서 명령들을 실행할 수도 있다. 하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함하는 임의의 전술한 바가 하나 이상의 프로세서인 것으로 고려될 수도 있다.
일부 양태들에서, 콘텐츠 생성 시스템 (100) 은 옵션의 통신 인터페이스 (126) 를 포함할 수 있다. 통신 인터페이스 (126) 는 수신기 (128) 와 송신기 (130) 를 포함할 수도 있다. 수신기 (128) 는 디바이스 (104) 에 대하여 본원에 설명된 임의의 수신 기능을 수행하도록 구성될 수도 있다. 추가적으로, 수신기 (128) 는 다른 디바이스로부터 정보, 예를 들어, 눈 또는 머리 위치 정보, 렌더링 컴포넌트들, 또는 위치 정보를 수신하도록 구성될 수도 있다. 송신기 (130) 는 디바이스 (104) 에 대하여 본원에 설명된 임의의 송신 기능을 수행하도록 구성될 수도 있다. 예를 들어, 송신기 (130) 는 다른 디바이스로, 콘텐츠의 요청을 포함할 수도 있는 정보를 송신하도록 구성될 수도 있다. 수신기 (128) 및 송신기 (130) 는 트랜시버 (132) 로 결합될 수도 있다. 그러한 예들에서, 트랜시버 (132) 는 디바이스 (104) 에 대해 본 명세서에서 설명된 임의의 수신 기능 및/또는 송신 기능을 수행하도록 구성될 수도 있다.
다시 도 1 을 참조하면, 특정 양태들에서, 그래픽 프로세싱 파이프라인 (107) 은 3차원 복원 및 이해 메시, 스테레오의 깊이 (DFS) 맵, 및 디스플레이 포즈를 조합하도록 구성된 결정 컴포넌트 (198) 를 포함할 수도 있다. 결정 컴포넌트 (198) 는 또한 3DRU 메시, DFS 맵 및 디스플레이 포즈 중 적어도 하나에 기초하여 결합된 깊이 맵을 결정하도록 구성될 수 있다. 결정 컴포넌트 (198) 는 또한 하나 이상의 바운딩 박스 및 와프 파라미터들을 계산하도록 구성될 수 있다. 결정 컴포넌트 (198) 는 또한 하나 이상의 아이 버퍼들 또는 하나 이상의 깊이 버퍼들 중 적어도 하나를 인코딩하도록 구성될 수 있다. 결정 컴포넌트 (198) 는 또한 하나 이상의 아이 버퍼들 또는 하나 이상의 깊이 버퍼들 중 적어도 하나를 디코딩하도록 구성될 수 있다. 결정 컴포넌트 (198) 는 하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 디스플레이 포즈를 결합하도록 구성될 수 있다. 결정 컴포넌트 (198) 는 또한 하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들 및 디스플레이 포즈 중 적어도 하나에 기초하여 하나 이상의 재투영된 아이 및 깊이 버퍼들을 결정하도록 구성될 수 있다. 일부 양태들에서, 재투영된 아이 및 깊이 버퍼들은 디스플레이 포즈의 함수일 수 있다. 결정 컴포넌트 (198) 는 또한 가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나를 계산하도록 구성될 수 있다. 결정 컴포넌트 (198) 는 또한 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하여 적어도 하나의 합성된 프레임을 결정하도록 구성될 수 있다. 결정 컴포넌트 (198) 는 또한 적어도 하나의 합성된 프레임을 통신하도록 구성될 수도 있고, 적어도 하나의 합성된 프레임은 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초한다.
본 명세서에서 설명된 바와 같이, 디바이스 (104) 와 같은 디바이스는 본 명세서에서 설명된 하나 이상의 기술을 수행하도록 구성된 임의의 디바이스, 장치 또는 시스템을 지칭할 수도 있다. 예를 들어, 디바이스는 서버, 기지국, 사용자 장비, 클라이언트 디바이스, 스테이션, 액세스 포인트, 컴퓨터, 예를 들어, 개인용 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 컴퓨터 워크스테이션, 또는 메인프레임 컴퓨터, 최종 제품, 장치, 전화, 스마트폰, 서버, 비디오 게임 플랫폼 또는 콘솔, 핸드헬드 디바이스, 예를 들어, 휴대용 비디오 게임 디바이스 또는 PDA (personal digital assistant), 웨어러블 컴퓨팅 디바이스, 예를 들어, 스마트 워치, 증강 현실디바이스, 또는 가상 실디바이스, 비-웨어러블 디바이스, 디스플레이 또는 디스플레이 디바이스, 텔레비전, 텔레비전 셋톱 박스, 중간 네트워크 디바이스, 디지털 미디어 플레이어, 비디오 스트리밍 디바이스, 콘텐츠 스트리밍 디바이스, 차내 컴퓨터 (in-car computer), 임의의 모바일 디바이스, 그래픽 콘텐츠를 생성하도록 구성된 임의의 디바이스, 또는 본 명세서에 설명된 하나 이상의 기술을 수행하도록 구성된 임의의 디바이스일 수 있다. 본 명세서의 프로세스들은 특정 컴포넌트 (예를 들어, GPU) 에 의해 수행되는 것으로 설명될 수도 있지만, 추가 실시형태들에서, 개시된 실시형태들과 모순이 없는, 다른 컴포넌트들 (예를 들어, CPU) 을 사용하여 수행될 수 있다.
GPU들은 GPU 파이프라인에서 다중 유형들의 데이터 또는 데이터 패킷들을 프로세싱할 수 있다. 예를 들어, 일부 양태들에서, GPU 는 2 개의 유형들의 데이터 또는 데이터 패킷들, 예를 들어, 컨텍스트 레지스터 패킷들 및 드로우 콜 데이터를 프로세싱할 수 있다. 컨텍스트 레지스터 패킷은 그래픽 컨텍스트가 프로세싱될 방법을 조절할 수 있는, 예를 들어, 글로벌 레지스터, 셰이딩 프로그램, 또는 상수 데이터에 관한 정보와 같은 글로벌 상태 정보의 세트일 수 있다. 예를 들어, 컨텍스트 레지스터 패킷들은 컬러 포맷에 관한 정보를 포함할 수 있다. 컨텍스트 레지스터 패킷들의 일부 양태들에서, 어느 작업부하가 컨텍스트 레지스터에 속하는지를 표시하는 비트가 있을 수 있다. 또한, 동시에 및/또는 병렬로 실행되는 다중 기능들 또는 프로그래밍이 있을 수 있다. 예를 들어, 기능들 또는 프로그래밍은 소정의 동작, 예를 들어, 컬러 모드 또는 컬러 포맷을 설명할 수 있다. 이에 따라, 컨텍스트 레지스터는 GPU 의 다중 상태들을 정의할 수 있다.
컨텍스트 상태들은 개별 프로세싱 유닛, 예를 들어, 버텍스 페처 (VFD), 버텍스 셰이더 (VS), 셰이더 프로세서, 또는 지오메트리 프로세서가 어떻게 기능하는지, 및/또는 프로세싱 유닛이 어떤 모드에서 기능하는지를 결정하는데 활용될 수 있다. 그렇게 하기 위해, GPU들은 컨텍스트 레지스터들 및 프로그래밍 데이터를 사용할 수 있다. 일부 양태들에서, GPU 는 모드 또는 상태의 컨텍스트 레지스터 정의에 기초하여 파이프라인에서 작업부하, 예를 들어, 버텍스 또는 픽셀 작업부하를 생성할 수 있다. 소정의 프로세싱 유닛들, 예를 들어, VFD 는, 소정의 기능들, 예를 들어, 버텍스가 어셈블링되는 방법을 결정하기 위해 이들 상태들을 사용할 수 있다. 이들 모드들 또는 상태들이 변경될 수 있기 때문에, GPU들은 대응하는 컨텍스트들을 변경할 수도 있다. 추가적으로, 모드 또는 상태에 대응하는 작업부하는 변경되는 모드 또는 상태에 따를 수도 있다.
도 2 는 본 개시의 하나 이상의 기법들에 따른 일 예의 GPU (200) 를 예시한다. 도 2 에 도시된 바와 같이, GPU (200) 는 커맨드 프로세서 (CP) (210), 드로우 콜 패킷들 (212), VFD (220), VS (222), 버텍스 캐시 (VPC) (224), 삼각형 셋업 엔진 (TSE) (226), 래스터화기 (RAS) (228), Z 프로세스 엔진 (ZPE) (230), 픽셀 보간기 (PI) (232), 프래그먼트 셰이더 (FS) (234), 렌더 백엔드 (RB) (236), L2 캐시 (UCHE) (238), 및 시스템 메모리 (240) 를 포함한다. 도 2 는 GPU (200) 가 프로세싱 유닛들 (220-238) 을 포함하는 것을 디스플레이하지만, GPU (200) 는 다수의 추가적인 프로세싱 유닛들을 포함할 수 있다. 추가적으로, 프로세싱 유닛들 (220-238) 은 단지 예일 뿐이고 프로세싱 유닛들의 임의의 조합 또는 순서가 본 개시에 따른 GPU들에 의해 사용될 수 있다. GPU (200) 는 또한, 커맨드 버퍼 (250), 컨텍스트 레지스터 패킷들 (260), 및 컨텍스트 상태들 (261) 을 포함한다.
도 2 에 도시된 바와 같이, GPU 는 커맨드 버퍼를 컨텍스트 레지스터 패킷들, 예를 들어, 컨텍스트 레지스터 패킷들 (260), 및/또는 드로우 콜 데이터 패킷들, 예를 들어, 드로우 콜 패킷들 (212) 로 파싱하기 위해 하드웨어 가속기, 또는 CP, 예를 들어, CP (210) 를 활용할 수 있다. 그 다음, CP (210) 는 컨텍스트 레지스터 패킷들 (260) 또는 드로우 콜 데이터 패킷들 (212) 을 별개의 경로들을 통해 GPU 내의 프로세싱 유닛들 또는 블록들로 전송할 수 있다. 또한, 커맨드 버퍼(250)는 컨텍스트 레지스터 및 드로우 콜의 상이한 상태를 교번할 수 있다. 예를 들어, 커맨드 버퍼는 다음의 방식으로 구조화될 수 있다: 컨텍스트 N 의 컨텍스트 레지스터, 컨텍스트 N 의 드로우 콜(들), 컨텍스트 N+1 의 컨텍스트 레지스터, 및 컨텍스트 N+1 의 드로우 콜(들).
GPU들은 다양한 상이한 방식들로 이미지들을 렌더링할 수 있다. 일부 인스턴스들에서, GPU들은 렌더링 또는 타일링된 렌더링을 사용하여 이미지를 렌더링할 수 있다. 타일링된 렌더링 GPU들에서, 이미지는 상이한 섹션들 또는 타일들로 분할 또는 분리될 수 있다. 이미지의 분할 후, 각각의 섹션 또는 타일은 별도로 렌더링될 수 있다. 타일링된 렌더링 GPU들은, 그리드의 각각의 부분, 즉, 타일이 별도로 렌더링되도록, 컴퓨터 그래픽 이미지들을 그리드 포맷으로 분할할 수 있다. 일부 양태들에서, 비닝 패스 동안, 이미지는 상이한 빈들 또는 타일들로 분할될 수 있다. 일부 양태들에서, 비닝 패스 동안, 가시적 프리미티브 또는 드로우 콜이 식별될 수 있는 가시적 스트림이 구성될 수 있다.
일부 양태들에서, GPU들은 드로잉 또는 렌더링 프로세스를 상이한 빈들 또는 타일들에 적용할 수 있다. 예를 들어, GPU 는 하나의 빈으로 렌더링하고, 빈 내의 프리미티브들 또는 픽셀들에 대한 모든 드로우들을 수행할 수 있다. 빈으로 렌더링하는 프로세스 동안, 렌더 타겟들은 GPU 내부 메모리 (GMEM) 에 위치될 수 있다. 일부 인스턴스들에서, 하나의 빈으로 렌더링한 후, 렌더 타겟들의 콘텐츠는 시스템 메모리로 이동될 수 있고 GMEM 은 다음 빈을 렌더링하기 위해 자유로워질 수 있다. 추가적으로, GPU 는 다른 빈으로 렌더링하고, 그 빈 내의 프리미티브들 또는 픽셀들에 대한 드로우들을 수행할 수 있다. 따라서, 일부 양태들에서, 하나의 표면에서의 모든 드로우들을 커버하는 적은 수의 빈들, 예를 들어, 4 개의 빈들이 있을 수도 있다. 또한, GPU들은 하나의 빈 내의 모든 드로우들을 순환할 수 있지만, 가시적인 드로우 콜들, 즉 가시적인 지오메트리를 포함하는 드로우 콜들에 대한 드로우들을 수행할 수 있다. 일부 양태들에서, 가시적 스트림은 예를 들어, 비닝 패스에서, 이미지 또는 장면에서 각각의 프리미티브의 가시적 정보를 결정하기 위해, 생성될 수 있다. 예를 들어, 이 가시적 스트림은 소정의 프리미티브가 가시적인지 아닌지를 식별할 수 있다. 일부 양태들에서, 이 정보는 예를 들어, 렌더링 패스에서, 가시적이지 않은 프리미티브들을 제거하는데 사용될 수 있다. 또한, 가시적인 것으로 식별되는 프리미티브들의 적어도 일부는 렌더링 패스에서 렌더링될 수 있다.
타일링된 렌더링의 일부 양태들에서, 다중 프로세싱 페이즈들 또는 패스들이 있을 수 있다. 예를 들어, 렌더링은 2 개의 패스들, 예를 들어, 가시적 또는 빈-가시적 패스 및 렌더링 또는 빈-렌더링 패스에서 수행될 수 있다. 가시적 패스 동안, GPU 는 렌더링 작업부하를 입력하고, 프리미티브들 또는 삼각형들의 위치들을 기록한 후, 어느 프리미티브들 또는 삼각형들이 어느 빈 또는 영역에 속하는지를 결정할 수 있다. 가시적 패스의 일부 양태들에서, GPU들은 또한 가시적 스트림에서 각각의 프리미티브 또는 삼각형의 가시성을 식별 또는 마킹할 수 있다. 렌더링 패스 동안, GPU 는 가시적 스트림을 입력하고 하나의 빈 또는 영역을 한 번에 프로세싱할 수 있다. 일부 양태들에서, 가시적 스트림은 어느 프리미티브들, 또는 프리미티브들의 버텍스들이 가시적인지 또는 가시적이지 않은지를 결정하기 위해 분석될 수 있다. 이와 같이, 가시적인 프리미티브들, 또는 프리미티브들의 버텍스들이 프로세싱될 수도 있다. 그렇게 함으로써, GPU들은 가시적이지 않은 프리미티브들 또는 삼각형들을 프로세싱 또는 렌더링하는 불필요한 작업부하를 감소시킬 수 있다.
일부 양태들에서, 가시적 패스 동안, 소정의 유형들의 프리미티브 지오메트리, 예를 들어, 위치 지오메트리가 프로세싱될 수도 있다. 추가적으로, 프리미티브들 또는 삼각형들의 위치 또는 로케이션에 의존하여, 프리미티브들은 상이한 빈들 또는 영역들로 분류될 수도 있다. 일부 인스턴스들에서, 프리미티브들 또는 삼각형들을 상이한 빈들로 분류하는 것은 이들 프리미티브들 또는 삼각형들에 대한 가시적 정보를 결정함으로써 수행될 수도 있다. 예를 들어, GPU는 예를 들어 시스템 메모리에서 각 빈 또는 영역에서 각 프리미티브의 가시적 정보를 결정하거나 기입할 수 있다. 이 가시적 정보는 가시적 스트림을 결정 또는 생성하는데 사용될 수 있다. 렌더링 패스에서, 각각의 빈 내의 프리미티브들은 별도로 렌더링될 수 있다. 이들 인스턴스들에서, 가시적 스트림은 그 빈에 대해 가시적이지 않은 프리미티브들을 드롭하는데 사용되는 메모리로부터 페치될 수 있다.
GPU들 또는 GPU 아키텍처들의 일부 양태들은 렌더링, 예를 들어, 소프트웨어 렌더링 및 하드웨어 렌더링을 위한 다수의 상이한 옵션들을 제공할 수 있다. 소프트웨어 렌더링에서, 드라이버 또는 CPU 는 각각의 뷰를 한 번 프로세싱함으로써 전체 프레임 지오메트리를 복제할 수 있다. 추가적으로, 일부 상이한 상태들은 뷰에 의존하여 변경될 수도 있다. 이와 같이, 소프트웨어 렌더링에서, 소프트웨어는 이미지 내의 각각의 뷰포인트에 대해 렌더링하기 위해 활용될 수도 있는 일부 상태들을 변경함으로써 전체 작업부하를 복제할 수 있다. 소정의 양태들에서, GPU들이 이미지 내의 각각의 뷰포인트에 대해 동일한 작업부하를 여러 번 제출할 수도 있으므로, 오버헤드의 양이 증가될 수도 있다. 하드웨어 렌더링에서, 하드웨어 또는 GPU는 이미지의 각 뷰포인트에 대한 지오메트리를 복제하거나 처리하는 역할을 할 수 있다. 이에 따라, 하드웨어는 이미지 내의 각각의 뷰포인트에 대한 프리미티브들 또는 삼각형들의 복제 또는 프로세싱을 관리할 수 있다.
AR 에서, 더 몰입적인 경험을 위해 실제 및 가상 객체들 사이의 폐색들을 적절하게 처리하는 것은 물론, 환경과의 끊김없는 상호작용들을 처리하는 것이 중요할 수 있다. 폐색 처리가 없으면, 가상 객체들이 실세계에 붙여넣기되는 것으로 보일 수 있다. 폐색 처리의 품질은 다수의 팩터들에 의존할 수도 있다. 예를 들어, 폐색 처리의 품질은 장면이 얼마나 잘 모델링되는지에 의존할 수 있다. 일부 경우들에, 3차원 복원 및 이해는 AR 디바이스가 장면을 스캔할 때 실세계의 복원된 메시를 제공할 수 있다. 이는 또한 실세계의 깊이 추정값들의 품질을 제공할 수 있다.
폐색 처리에는 여러 가지 문제가 있다. 예를 들어, 3DRU 메시는 애플리케이션이 시작된 직후에 이용가능하지 않을 수 있다. 또한, 3DRU 장면 메시로부터 획득된 깊이 맵은 비교적 클린할 수 있지만, 이는 동적 객체들을 캡처하지 않을 수 있다. 예를 들어, 3DRU 서비스는 시간에 따른 측정값들을 집계하여 정적 객체들의 클린 이미지 데이터를 제공할 수 있다. 스테레오 카메라 프레임들로부터의 깊이 추정들은 동적 객체들을 캡처할 수 있지만, 이들은 노이즈가 있을 수 있고 디스플레이 리프레시 레이트에서 이용가능하지 않을 수 있다. 이와 같이, 본 개시내용의 양태들은, 실세계에서 정적 및 동적 객체들 양쪽 모두를 캡처할 수 있는 더 신뢰성 있는 깊이 맵을 획득하기 위해 3DRU 깊이 및/또는 스테레오의 깊이를 결합하는 현 필요성이 존재한다.
본 개시내용의 양태들은, 실세계에서 정적 및 동적 객체들 양쪽 모두를 캡처할 수 있는 더 신뢰성 있는 깊이 맵을 획득하기 위해 3DRU 깊이 및/또는 스테레오의 깊이를 결합할 수 있다. 예를 들어, 본 개시내용의 양태들은 실세계에서 정적 및 동적 객체들을 효과적으로 캡처하기 위해 재투영 모듈, 깊이 결합기, 및/또는 컴포지터를 포함할 수 있다. 이렇게 하는 것에 의해, 본 개시 내용의 양태들은 결합된 깊이 맵, 재투영된 아이 및 깊이 버퍼들 및/또는 합성된 프레임을 초래할 수 있다.
도 3 은 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 다이어그램 (300) 을 예시한다. 도 3 에 도시된 바와 같이, 다이어그램 (300) 은 다수의 컴포넌트들, 이를 테면, AR 애플리케이션 컴포넌트 (310), AR 디바이스 컴포넌트 (320) 상의 지각 서비스, 바운딩 박스 (bbox) 및 와프 파라미터 연산 컴포넌트 (330), 깊이 컴바이너 (340), 재투영 모듈 (350), 및 컴포지터 모듈 (360) 을 포함한다. AR 디바이스 컴포넌트 (320) 상의 지각 서비스는 헤드포즈, 제어기, 또는 앵커 포즈를 AR 애플리케이션 (310) 에 통신할 수 있고, 디스플레이 포즈, 3D 메시, 및 DFS 맵을 깊이 컴바이너 (340) 에 통신할 수 있다. 깊이 컴바이너 (340) 는 결합된 실세계 깊이 맵을 컴포지터 모듈 (360) 에 통신할 수 있다. AR 애플리케이션 (310) 은 아이 및 깊이 버퍼들을 바운딩 박스 및 와프 파라미터 연산 컴포넌트 (330) 뿐만 아니라 재투영 모듈 (350) 에 통신할 수 있다. 바운딩 박스 및 와프 파라미터 연산 컴포넌트 (330) 는 바운딩 박스 및 와프 파라미터들을 재투영 모듈 (350) 에 통신할 수 있고, 재투영 모듈은 재투영된 아이 및 깊이 버퍼들을 컴포지터 모듈 (360) 에 통신할 수 있다. 또한, 컴포지터 모듈 (360) 은 합성된 프레임을 디스플레이 (도시 생략) 에 통신할 수 있다.
도 3 에 도시된 바와 같이, AR 디바이스 상의 3DRU 서비스는 스테레오 프레임들로부터 획득된 여러 깊이 맵들을 통합함으로써 실세계 장면의 3D 메시를 생성할 수 있다. 이는 비교적 클린할 수 있지만 동적 실세계 객체들을 캡처하지 않을 수 있다. 일부 경우들에서, 스테레오 프레임들로부터의 깊이 맵들은 노이즈가 있을 수 있지만 동적 객체들을 캡처할 수도 있다. 깊이 컴바이너 (340) 는 디스플레이 포즈에서 재투영된 더 클린하고 필터링된 깊이 맵을 생성하기 위해 3DRU 및 스테레오 프레임들로부터의 깊이 맵들을 결합할 수 있다. 또한, AR 애플리케이션 (310) 에 의해 렌더링된 눈 버퍼들 및 깊이 버퍼들은 재투영 모듈 (350) 에 의해 디스플레이 포즈로 재투영될 수 있다. 컴포지터 모듈 (360) 은 깊이 결합기 (340) 로부터 획득된 가상 깊이 및 깊이 맵을 결합함으로써 실세계 상에서 렌더링된 가상 객체들을 증강시킬 수 있다. 추가적으로, 결과적인 합성된 프레임은 디스플레이에 통신될 수 있다.
도 4 는 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 다이어그램 (400) 을 예시한다. 도 4 에 도시된 바와 같이, 다이어그램 (400) 은 AR 애플리케이션 컴포넌트 (410), AR 디바이스 컴포넌트 (420) 에 대한 지각 서비스, 바운딩 박스 및 와프 파라미터 연산 컴포넌트 (430), 깊이 샘플러 (440), 깊이 컴바이너 (450), 비디오 인코더 (460), 비디오 디코더 (462), 깊이 인코더 (470), 깊이 디코더 (472), 재투영 모듈 (480), 및 컴포지터 모듈 (490) 을 포함한다. 도 4 에 도시된 바와 같이, 일부 AR 사용 경우들에서, 렌더링은 서버, 예를 들어, 전화 또는 에지 서버와, 서버에 유선 또는 무선 접속에 의해 접속된 AR 클라이언트 디바이스 사이에서 분할될 수 있다. 도 4 에 도시된 바와 같이, 분할 AR 용도 케이스들에서, 서버는 AR 애플리케이션 컴포넌트 (410), 바운딩 박스 및 와프 연산 파라미터들 컴포넌트 (430), 깊이 샘플러 (440), 비디오 인코더 (460), 및 깊이 인코더 (470) 를 포함할 수 있다. AR 클라이언트 디바이스는 AR 디바이스 컴포넌트 (420), 깊이 컴바이너 (450), 비디오 디코더 (462), 깊이 디코더 (472), 재투영 모듈 (480) 및 컴포지터 모듈 (490) 상의 지각 서비스를 포함할 수 있다. 디바이스측 상의 AR 디바이스 컴포넌트 (420) 상의 지각 서비스는 무선 네트워크를 통해 서버측 상의 AR 애플리케이션 컴포넌트 (410) 에 헤드포즈, 제어기, 또는 앵커 포즈를 통신할 수 있다. 서버 측 상의 바운딩 박스 및 와프 파라미터 연산 컴포넌트 (430) 는 바운딩 박스들 및 와프 메타데이터를 무선 네트워크를 통해 디바이스 측 상의 재투영 모듈 (480) 로 뿐만 아니라 서버 측 상의 깊이 샘플러 (440) 로 전송할 수 있다. 깊이 샘플러 (440) 는 샘플링된 깊이 텍스처를 깊이 인코더 (470) 에 제공할 수 있다. 일부 양태들에서, 깊이 샘플러 (440) 는 특정 바운딩 박스들 내의 샘플링 깊이 데이터에 기초하여 깊이 버퍼 크기를 감소시키는 것을 도울 수 있다. 깊이 샘플러 (440) 는 일부 구현들에서 깊이 인코더 (470) 의 일부일 수 있거나, 다른 구현들에서 깊이 인코더 (470) 로부터 분리될 수 있다. 서버측 상의 깊이 인코더 (470) 는 인코딩된 깊이 버퍼들을 무선 네트워크를 통해 디바이스측 상의 깊이 디코더 (472) 에 전송할 수 있다. 서버측 상의 깊이 인코더 (460) 는 인코딩된 깊이 버퍼들을 무선 네트워크를 통해 디바이스측 상의 깊이 디코더 (462) 에 전송할 수 있다. 또한, 깊이 텍스처는 전송 대역폭을 감소시키기 위해 샘플링 및 인코딩될 수 있다. 대안적으로, 일부 구현들에서, 깊이 버퍼는 생략될 수 있으며, 그 중 3D 평면 데이터는 깊이 버퍼 데이터를 획득하거나 사용할 필요성과 관계없이 바운딩 박스에 대해(또는 바운딩 박스 내에서) 생성될 수 있다. 이와 같이, 3D 평면 데이터는 깊이 버퍼 데이터의 표현을 포함할 수 있다.
도 5 는 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 다이어그램 (500) 을 예시한다. 도 5 에 도시된 바와 같이, 다이어그램 (500) 은 AR 디바이스 (510) 및 깊이 컴바이너 (550) 를 포함한다. AR 디바이스 (510) 상의 지각 서비스는 6-자유도 (6DoF) 포즈 트랙커 (512), 3D 복원 컴포넌트 (514), 및 DFS 컴포넌트 (516) 를 포함한다. 깊이 컴바이너 (550) 는 포즈 및 메시 컴포넌트 (552) 로부터의 샘플 깊이, 디스플레이 포즈 컴포넌트 (554) 에서의 재투영 깊이, 및 결합 깊이 컴포넌트 (556) 를 포함한다. 도 5 에 도시된 바와 같이, 6DoF 포즈 추적기 (512) 는 포즈 및 메시 컴포넌트 (552) 로부터의 샘플 깊이에 대한 6DoF 포즈 및 디스플레이 포즈 컴포넌트 (554) 에서의 재투영 깊이에 대한 디스플레이 포즈 신호를 제공한다. 3D 복원 컴포넌트 (514) 는 3D 메시 신호를 포즈 및 메시 컴포넌트 (552) 로부터의 샘플 깊이에 제공하고, 3DRU 깊이 신뢰도 맵을 결합 깊이 컴포넌트(556) 에 제공한다. DFS 컴포넌트 (516) 는 디스플레이 포즈 컴포넌트 (554) 에서의 재투영 깊이에 스테레오 깊이 맵을 제공하고 DFS 신뢰도 맵을 결합 깊이 컴포넌트 (556) 에 제공한다. 깊이 결합기 (550) 는 AR 디바이스 (510) 상의 지각 서비스로부터의 3DRU 메시, 스테레오 깊이 맵 및 6DoF 포즈들을 사용하고, 정적 및 동적 객체들 양쪽 모두를 캡처하는 결합된 실세계 깊이 맵을 생성한다. 깊이 컴바이너 (550) 는 또한 홀 마스크를 생성할 수 있다. 이와 같이, 깊이 값들이 3DRU 깊이 또는 DFS 깊이 중 어느 하나로부터의 신뢰성으로 추정될 수 없는 픽셀들은 홀들로 표기될 수 있다.
도 5 에 도시된 바와 같이,
Figure pct00001
는 포즈 P2로부터 획득된 DFS 깊이 맵에 대응할 수 있다. 또한,
Figure pct00002
는 포즈 P1로부터 획득된 3DRU 깊이 맵에 대응할 수 있다. 추가적으로,
Figure pct00003
Figure pct00004
는 포즈 PD 에 재투영된 DFS 및 3DRU 깊이 맵에 대응할 수 있다.
본 개시의 양태들은 지각 서비스가 3DRU 및 DFS로부터 획득된 각각의 깊이 샘플에 대한 신뢰도 측정값을 제공한다고 가정할 수 있다. 깊이 컴바이너 (550) 는 또한 결합된 신뢰도 맵을 생성할 수 있으며, 이는 양쪽 깊이 맵들로부터 신뢰도 측정값들을 캡처한다. 일부 양태들에서, DFS 및 3DRU 는 초당 더 낮은 프레임들 (fps) 에서 실행될 수 있다. 깊이 맵들은 잠재적으로 2개의 상이한 포즈들로부터 샘플링될 수 있을 뿐만 아니라, 동일한 디스플레이 포즈로 재투영될 수 있다.
깊이 맵들은 깊이 값들의 차이에 기초하는 것과 같은 다수의 상이한 방식들로 조합될 수 있다. 예를 들어, 픽셀에 대한 깊이 값들의 차이가 일부 값, 예를 들어, ε보다 작으면, 3DRU 깊이 값이 선택될 수 있고, 그렇지 않으면 DFS 값이 선택될 수 있다. DFS 깊이 맵이 픽셀에 홀을 가지면, 3DRU 깊이가 선택될 수 있고 그 반대도 마찬가지이다. 또한, 홀 마스크는 DFS 및 3DRU 깊이 맵이 모두 홀을 포함하는 픽셀들에 대한 정보를 포함할 수 있다. 또한, 결합 깊이 컴포넌트 (556) 는 선택된 깊이 맵 값의 신뢰도 측정값을 포함할 수 있는 결합된 신뢰도 맵을 생성한다.
일부 양태들에서, 3DRU 깊이의 신뢰도 측정값은 그 깊이 값에 기여하는 샘플들의 수에 기초할 수 있다. 부가적으로, DFS 깊이의 신뢰도 척도는 디스패리티 계산 동안 모호한 매칭들의 수에 기초할 수 있다. 일부 경우들에서, 모호한 매칭들의 수가 많을수록 신뢰도 레벨이 낮아질 수 있다.
도 6 은 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 다이어그램 (600) 을 예시한다. 도 6 에 도시된 바와 같이, 다이어그램 (600) 은 AR 디바이스 (610) 및 깊이 컴바이너 (650) 를 포함한다. AR 디바이스 (610) 상의 지각 서비스는 6-자유도 (6DoF) 포즈 트랙커 (612), 3D 복원 컴포넌트 (614), 및 DFS 컴포넌트 (616) 를 포함한다. 깊이 컴바이너 (650) 는 포즈 및 메시 컴포넌트 (652) 로부터의 생성 깊이, 디스플레이 포즈 컴포넌트 (654) 에서의 재투영 깊이, 및 결합 깊이 컴포넌트 (656) 를 포함한다. 다이어그램 (600) 은 또한 객체 분류기 (660) 및 객체 트랙커 (670) 를 포함한다. 도 6 에 도시된 바와 같이, 카메라 프레임들을 입력으로서 취하고 잘 알려진 실제 객체들, 예를 들어, 소파, 의자, 및/또는 테이블에 대한 바운딩 박스들을 생성할 수 있는 객체 분류기 (660) 가 사용될 수 있다. 객체 분류기 (660) 는 손 및 사람과 같은 객체를 인식하도록 더 확장될 수 있다. 일부 양태들에서, 객체 트랙커 (670) 는 경계 박스들을 사용하고 프레임들에 걸쳐 이들을 추적할 수 있다. 또한, 깊이 맵들의 더 양호한 예측은 디스플레이 포즈 컴포넌트 (654) 에서 재투영 깊이로 예를 들어 동적 실제 객체에 대해 객체 트랙커 정보를 3DRU 및 DFS 깊이에 결합하는 것에 의해 획득될 수 있다.
도 7 은 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 다이어그램 (700) 을 예시한다. 도 7 에 도시된 바와 같이, 다이어그램 (700) 은 AR 디바이스 컴포넌트 (710) 상의 지각 서비스, 재투영 모듈 (720), 깊이 컴바이너 (750) 및 컴포지터 모듈 (760) 을 포함한다. 재투영 모듈 (720) 은 디스플레이 포즈 컴포넌트 (722) 에 대한 재투영 깊이 및 비동기 평면 재투영 (APR) 또는 와프 모듈 (724) 을 포함한다. 컴포지터 모듈 (760) 은 하나 이상의 깊이 노이즈 제거기들 (762, 764) 및 알파 블렌딩 컴포넌트 (766) 를 포함한다. 도 7 에 도시된 바와 같이, 재투영 모듈 (720) 의 디스플레이 포즈에 대한 재투영 깊이 컴포넌트 (722) 는 6DoF 트랙커 (예를 들어, 도 5 의 6DoF 트랙커 (512)) 로부터 디스플레이 포즈를 수신하고, AR 애플리케이션 (예를 들어, 도 3의 AR 애플리케이션 (310)) 으로부터 깊이 버퍼들을 수신할 수 있다. APR 또는 와프 모듈 (724) 은 6DoF 추적기 (예를 들어, 도 5의 6DoF 추적기(512)) 로부터 디스플레이 포즈를 수신할 수 있고, 바운딩 박스 및 와프 파라미터 연산 모듈 (예를 들어, 도 3의 계산 경계 박스 및 와프 파라미터 모듈(330)) 로부터 계산된 경계 박스 및 와프 파라미터를 수신할 수 있고, AR 애플리케이션 (예를 들어, 도 3의 AR 애플리케이션(310)) 으로부터 깊이 버퍼를 수신할 수 있다. 이와 관련하여, APR 또는 와프 모듈 (724) 은 비동기 평면 재투영 (APR) 또는 유사한 재투영 방법에 의해 렌더링된 아이 버퍼들을 워핑할 수 있다. 재투영 모듈 (720) 은 또한 렌더링된 깊이 버퍼를 디스플레이 포즈에 재투영할 수 있다. 예를 들어, 디스플레이 포즈에 대한 재투영 깊이 컴포넌트 (722) 는 깊이 노이즈제거기 (762) 에 대한 재투영된 깊이 맵을 생성하여 제공한다. 이어서, 깊이 노이즈제거기 (762) 는 노이즈제거된 가상 깊이를 생성할 수 있고, 이는 이어서 알파 블렌딩 컴포넌트 (766) 에 제공된다. 알파 블렌딩 컴포넌트 (766) 는 또한 APR 또는 와프 모듈 (724) 로부터 와프된 아이 버퍼들 및 재투영 깊이로부터 디스플레이 포즈 컴포넌트 (722) 로 재투영된 깊이 버퍼들을 수신하여 차폐 렌더링에 의한 증강 프레임을 생성할 수도 있다.
깊이 컴바이너 (750) 는 알파 블렌딩 컴포넌트 (766) 에 신뢰도 맵 및 홀 마스크를 제공한다. 깊이 컴바이너 (750) 는 실세계 깊이 맵을 깊이 노이즈 제거기 (764) 에 제공한다. 깊이 노이즈제거기 (764) 는 실세계 깊이 맵에 기초하여 노이즈제거된 실제 깊이 맵을 제공할 수 있다. 일부 양태들에서, 재투영된 렌더링된 깊이는 홀들을 가질 수 있으며, 이는 인-페인팅 또는 노이즈제거기에 기초하여 노이즈제거될 수 있다. 깊이 컴바이너 (750) 로부터 획득된 결합된 실세계 깊이 맵은 깊이 노이즈 제거기 (764) 에 의해 추가로 리파이닝될 수 있다. 추가적으로, 알파 블렌딩은 깊이 컴바이너 (750) 로부터 획득된 결합된 신뢰도 맵에 기초하여 수행될 수 있다. 예를 들어, 홀 마스크로부터 획득된 홀 픽셀들에 대한 알파 블렌딩은 이웃하는 유효 픽셀들의 결합된 신뢰도 맵에 기초하여 수행될 수 있다. 이와 같이, 알파 블렌딩 컴포넌트 (766) 는 디스플레이에 전송할 합성된 프레임을 생성할 수 있다.
도 8 은 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 다이어그램 (800) 을 예시한다. 도 8 에 도시된 바와 같이, 다이어그램 (800) 은 AR 애플리케이션 컴포넌트 (810), AR 디바이스 컴포넌트 (820) 에 대한 지각 서비스, 바운딩 박스 및 와프 파라미터 연산 컴포넌트 (830), 깊이 결합기 (840), 셰이딩 텍스처 연산 컴포넌트 (850), 가시적 지오메트리 연산 컴포넌트 (860), 텍스처링된 가시적 지오메트리 생성 컴포넌트 (870), 재투영 모듈 (880), 및 컴포지터 모듈 (890) 을 포함한다.
도 8 에 도시된 바와 같이, 게임 엔진은 렌더 포즈에 대해 잠재적으로 다수의 예측된 뷰포인트들로부터 장면의 가시적 지오메트리 데이터, 즉 버텍스들 또는 삼각형들의 컬렉션을 생성할 수 있다. 예를 들어, AR 애플리케이션 컴포넌트 (810) 는 렌더 포즈 및 렌더링된 지오메트리를 가시적 지오메트리 연산 컴포넌트 (860) 에 제공하고, 아이 및 깊이 버퍼들을 바운딩 박스 및 와프 파라미터 연산 컴포넌트 (830) 및 셰이딩된 텍스처 연산 컴포넌트 (850) 에 제공할 수 있다. 가시적 지오메트리 연산 컴포넌트 (860) 는 가시적 지오메트리를 셰이딩된 텍스처 연산 컴포넌트 (850) 및 재투영 모듈 (880) 에 제공할 수 있다. 가시적 지오메트리 연산 컴포넌트 (860) 는 또한 텍스처 가시적 지오메트리 생성 컴포넌트 (870) 에 지오메트리 메타데이터를 제공한다. 가시적 지오메트리의 텍스처들은 셰이딩된 텍스처 상에 덤핑될 수 있는 아이 버퍼들 및 바운딩 박스들로부터 획득될 수 있다. 셰이딩된 텍스처 연산 컴포넌트 (850) 는 또한 텍스처링된 가시적 지오메트리 생성 컴포넌트 (870) 에 셰이딩된 텍스처를 제공한다. 지오메트리 메타데이터는 셰이딩된 텍스처 상의 이들의 대응하는 위치에 버텍스 및 삼각형들을 맵핑할 수 있다. 또한, 재투영 모듈 (880) 은 가시적인 지오메트리를 취하고 그것을 디스플레이 포즈에 재투영할 수 있다. 재투영 모듈 (880) 은 또한 텍스처링된 가시적 지오메트리 생성 컴포넌트 (870) 에 재투영된 지오메트리를 제공한다. 디스플레이 포즈에서 셰이딩된 가시적 지오메트리는 버텍스들 및 삼각형들의 셰이딩된 텍스처 및 재투영된 가시적 지오메트리 맵핑 데이터를 사용하여 AR 디바이스 상에서 복원될 수도 있다. 예를 들어, 텍스처링된 가시적 지오메트리 생성 컴포넌트 (870) 는 재투영된 텍스처링된 가시적 지오메트리를 컴포지터 모듈 (890) 에 제공한다. 깊이 컴바이너 (840) 는 결합된 실세계 깊이 맵을 컴포지터 모듈 (890) 에 제공할 수 있다. 또한, 컴포지터 모듈 (890) 은 임의의 폐색을 해결하기 위해 재투영된 버텍스들 및 결합된 실세계 깊이 맵을 사용할 수 있다.
도 9 는 본 개시의 하나 이상의 구현들에 따른 일 예의 폐색 처리 기법을 포함하는 다이어그램 (900) 을 예시한다. 도 9 에 도시된 바와 같이, 다이어그램 (900) 은 AR 애플리케이션 컴포넌트 (910), AR 디바이스 컴포넌트 (920) 에 대한 지각 서비스, 게임 엔진 플러그인 모듈 (930), 깊이 컴바이너 (940), 텍스처링된 가시적 지오메트리 생성 컴포넌트 (950), 재투영 모듈 (960), 커스텀 인코더 (970), 커스텀 디코더 (972), 비디오 인코더 (980), 비디오 디코더 (982), 및 컴포지터 모듈 (990) 을 포함한다. 도 9 에 도시된 바와 같이, 분할 AR 용도 케이스들에서, 서버는 AR 애플리케이션 컴포넌트 (910), 게임 엔진 플러그인 (930), 커스텀 인코더 (970), 및 비디오 인코더 (980) 를 포함할 수 있다. 게임 엔진 플러그인 모듈 (930) 은 바운딩 박스 및 와프 파라미터 연산 컴포넌트 (932), 가시적 지오메트리 연산 컴포넌트 (934), 및 셰이딩된 텍스처 연산 컴포넌트 (936) 를 포함한다. AR 클라이언트 디바이스는 AR 디바이스 컴포넌트 (920) 상의 지각 서비스, 깊이 컴바이너 (940), 텍스처링된 가시적 지오메트리 생성 컴포넌트 (950), 커스텀 디코더 (972), 비디오 디코더 (982), 재투영 모듈 (960) 및 컴포지터 모듈 (990) 을 포함할 수 있다.
도 9 에 도시된 바와 같이, 일부 AR 사용 경우들에서, 렌더링은 서버 상에, 예를 들어, 전화 또는 에지 서버에, 서버에 렌더링될 수 있고, 유선 또는 무선 접속에 의해 접속된 AR 클라이언트 디바이스에 셰이딩된 텍스처와 함께 전송될 수 있다. 디바이스측 상의 AR 디바이스 컴포넌트 (920) 상의 지각 서비스는 무선 네트워크를 통해 서버측 상의 AR 애플리케이션 컴포넌트 (910) 에 헤드포즈, 제어기, 또는 앵커 포즈를 통신할 수 있다. AR 애플리케이션 컴포넌트 (910) 는 렌더링된 포즈 및 렌더링된 지오메트리 데이터를 가시적 지오메트리 연산 컴포넌트 (934) 에 전송할 수 있다. 가시적 지오메트리 연산 컴포넌트 (934) 는 또한 가시적 지오메트리 데이터를 셰이딩된 텍스처 연산 컴포넌트 (936) 에 전송할 수 있다. 서버 측 상의 바운딩 박스 및 와프 파라미터 연산 컴포넌트 (932) 는 바운딩 박스들 및 와프 파라미터 메타데이터를 셰이딩된 텍스처 연산 컴포넌트 (936) 에 전송할 수 있다.
디바이스 측에서, AR 디바이스 컴포넌트 (920) 상의 지각 서비스는 디스플레이 포즈를 재투영 모듈 (960) 에 그리고 3D 메시 데이터를 DFS 데이터와 함께 깊이 컴바이너 (940) 에 제공할 수 있다. 깊이 컴바이너 (940) 는 결합된 실세계 깊이 맵을 컴포지터 모듈 (990) 에 제공할 수 있다. 재투영 모듈 (960) 은 또한 텍스처링된 가시적 지오메트리 생성 컴포넌트 (950) 에 재투영된 지오메트리를 제공할 수 있다.
또한, 비디오 인코더 (980) 는 셰이딩된 텍스처를 HEVC/H.264 데이터로서 무선 네트워크를 통해 비디오 디코더 (982) 로 전송할 수 있다. 셰이딩된 텍스처는 고효율 비디오 코딩 (HEVC) 또는 H.264 인코더로 인코딩될 수 있고 네트워크 (예를 들어, 무선 네트워크) 상에서 AR 클라이언트 디바이스로 전송될 수 있다. 비디오 디코더 (982) 는 디코딩된 셰이딩된 텍스처를 컴포지터 모듈 (990) 에 제공할 수 있다.
서버측 상의 커스텀 인코더 (970) 는 인코딩된 지오메트리 및 메타데이터를 무선 네트워크를 통하여 디바이스 측 상의 커스텀 디코더 (972) 에 전송할 수 있다. 지오메트리 및 메타데이터는 커스텀 인코더 (970) 으로 인코딩되어 네트워크를 통하여 전송될 수 있다. 또한, 가시적 기하학적 구조는 폐색 렌더링을 위해 컴포지터 모듈 (990) 에 의해 재구성, 재투영 및 소비될 수 있다. 예를 들어, 텍스처링된 가시적 지오메트리 생성 컴포넌트 (950) 는 재투영된 텍스처링된 가시적 지오메트리를 컴포지터 모듈 (990) 에 제공한다. 이와 같이, 컴포지터 모듈 (990) 은 디스플레이에 전송할 컴포지터 프레임을 생성한다.
일부 경우들에서, 렌더러는 깊이 버퍼들을 제출하지 않을 수 있지만, 게임 엔진 플러그인 (930) 의 일부로서, 깊이는 좌측 및 우측 스테레오 아이 버퍼들로부터 결정될 수 있다. 일부 경우들에서, 본 개시는 아이 트랙킹 데이터가 포커스에서 바운딩 박스들을 결정하고 이들 바운딩 박스들에 대해 더 우수한 블렌딩을 실행하는 데 사용될 수 있는 방법을 포함할 수 있다. 또한, 본 개시는 실시간 시맨틱 세그먼터가 정적 및 동적 객체들을 세그먼트화하고 세그먼트화 맵을 생성하기 위해 사용될 수 있는 방법을 포함할 수 있다. 일부 양태들에서, 세그먼트화 맵은 가상 및 실제 객체들의 에지들 근처의 블렌딩을 강화하기 위해 알파 블렌딩에서 사용될 수 있다.
본 개시의 양태들은 다수의 상이한 방법들 또는 장치를 포함할 수 있다. 예를 들어, 본 개시의 양태들은 스테레오 프레임들로부터의 깊이 및 3D 복원된 메시로부터의 깊이가 더 양호한 폐색 렌더링을 위해 더 신뢰성 있는 깊이 맵을 획득하기 위해 결합되는 증강 현실 애플리케이션들의 맥락에서의 방법을 포함할 수 있다. 또한, 본 개시의 양태들은 렌더링된 지오메트리 데이터, 즉, 가시적 버텍스들 및 삼각형들의 세트들이 셰이딩되고 폐색 렌더링을 위해 컴포지터에 의해 소비될 디스플레이 포즈로 재투영되는 증강 현실의 맥락에서의 방법을 포함할 수 있다. 본 개시내용의 양태들은 또한, 렌더러, 예를 들어, 전화 또는 에지 서버가 가상 장면 깊이를 생성하고, 가상 객체들 주위의 바운딩 박스들을 계산하고, 바운딩 박스들에 대응하는 객체들의 인코딩된 샘플링된 깊이 텍스처들을 유선 또는 무선 접속에 의해 AR 디바이스에 전송하는 분할 AR의 맥락에서의 방법을 포함할 수 있다.
본 개시의 양태들은 또한 렌더러, 예를 들어, 전화 또는 에지 서버가 폐색 렌더링을 위해 인코딩된 지오메트리, 셰이딩된 텍스처 및 관련 메타데이터를 AR 디바이스에 전송하는 분할 AR 의 맥락에서의 방법을 포함할 수 있다.또한, 본 개시내용의 양태들은 렌더러가 AR 디바이스 상의 동적 가상 객체들의 깊이를 예측할 때 모션 벡터 텍스처를 레버리징하는 방법을 포함할 수 있다. 본 개시의 양태들은 또한, 실시간 객체 분류기 및 객체 트랙터가 스테레오 프레임들 및 3D 복원된 메시로부터 획득된 깊이 맵들을 보강하기 위해 사용될 수 있는 방법을 포함할 수 있다.
일부 경우들에서, 본 개시의 양태들은 계산된 바운딩 박스들에 대한 렌더링된 깊이 버퍼들이 디스플레이 포즈에서 재투영되거나 예측되는 방법을 포함할 수 있다. 본 개시의 양태들은 또한 3DRU 및 DFS로부터 계산된 실세계 결합 깊이 맵 및 렌더링된 깊이 맵이 깊이 노이즈 제거기 또는 인-페인팅 알고리즘에 의해 노이즈제거되는 방법을 포함할 수 있다. 추가적으로, 본 개시의 양태들은 렌더링된 아이 버퍼로부터의 픽셀들 및 실세계 프레임이 스테레오 깊이 및 3DRU 깊이들의 신뢰도 측정값에 기초하여 알파 블렌딩되는 방법을 포함할 수 있다. 홀 픽셀들의 스마트 블렌딩은 이웃하는 깊이들의 신뢰도에 기초하여 수행될 수 있다.
도 10 은 본 개시의 하나 이상의 구현들에 따른 일 예의 다이어그램 (1000) 을 예시한다. 보다 구체적으로, 다이어그램 (1000) 은 본원에 설명된 폐색 처리 기법들에 대한 다수의 컴포넌트들을 포함한다. 도 10 에 도시된 바와 같이, 다이어그램 (1000) 은 GPU (1010), 재투영 모듈 (1012), 깊이 결합기 (1014), DPU (1020), 컴포지터 (1022), 및 디스플레이 (1030) 를 포함한다. 본원에 설명된 바와 같이, GPU (1010), 재투영 모듈 (1012), 깊이 컴바이너 (1014), DPU (1020), 컴포지터 (1022), 및 디스플레이 (1030) 는 폐색 처리 기법들을 수행하기 위해 도 3-9 의 예들과 관련하여 설명된 바와 같이 다수의 상이한 단계들 또는 프로세스들을 수행할 수 있다.
도 11 은 본 개시의 하나 이상의 구현들에 따른 일 예의 프로세스의 플로우차트 (1100) 를 예시한다. 방법은 장치 이를 테면, GPU, CPU, DPU 또는 재투영 모듈, 깊이 컴바이너, 컴포지터, 디스플레이 또는 그래픽 프로세싱을 위한 장치에 의해 수행될 수도 있다. 다양한 양태들에 따르면, 프로세스의 예시된 동작들 중 하나 이상은 생략, 전치, 및/또는 동시에 수행될 수도 있다. 선택적 양태들은 파선으로 예시된다.
1102 에서, 장치는 도 3-10 의 예들과 관련하여 설명된 바와 같이, 3차원 복원 및 이해 메시, 스테레오의 깊이 맵, 및 디스플레이 포즈를 결합할 수도 있다. 일부 양태들에서, 3DRU 메시, DFS 맵, 및 디스플레이 포즈는, 도 3-10의 예들과 관련하여 설명된 바와 같이, 깊이 컴바이너에서 결합될 수 있다.
1104 에서, 장치는 도 3-10의 예들과 관련하여 설명된 바와 같이, 3DRU 메시, DFS 맵, 및 디스플레이 포즈 중 적어도 하나에 기초하여 결합된 깊이 맵을 결정할 수 있다. 일부 양태들에서, 결합된 깊이 맵은 도 3-10 에서의 예들과 관련하여 설명된 바와 같이, GPU 또는 DPU에 의해 결정될 수도 있다.
1106 에서, 장치는 도 3-10 의 예들과 관련하여 설명된 바와 같이, 하나 이상의 바운딩 박스 및 와프 파라미터들을 계산할 수도 있다.
1108 에서, 장치는 도 3-10 의 예들과 관련하여 설명된 바와 같이, 하나 이상의 아이 버퍼들 또는 하나 이상의 깊이 버퍼들 중 적어도 하나를 인코딩할 수도 있다.
1110 에서, 장치는 도 3-10 의 예들과 관련하여 설명된 바와 같이, 하나 이상의 아이 버퍼들 또는 하나 이상의 깊이 버퍼들 중 적어도 하나를 디코딩할 수도 있다.
1112 에서, 장치는 도 3-10 의 예들과 관련하여 설명된 바와 같이, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 디스플레이 포즈를 결합할 수 있다. 일부 양태들에서, 하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 디스플레이 포즈는 도 3-10 의 예들과 관련하여 설명된 바와 같이, 재투영 모듈에서 결합될 수 있다.
1114 에서, 장치는 도 3-10 의 예들과 관련하여 설명된 바와 같이, 하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 디스플레이 포즈 중 적어도 하나에 기초하여 하나 이상의 재투영된 아이 및 깊이 버퍼들을 결정할 수 있다. 일부 경우들에서, 하나 이상의 재투영된 아이 및 깊이 버퍼들은 도 3-10의 예들과 관련하여 설명된 바와 같이, 가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나에 기초하여 추가로 결정될 수 있다. 또한, 하나 이상의 재투영된 아이 및 깊이 버퍼들은 도 3-10 에서의 예들과 관련하여 설명된 바와 같이, GPU 또는 DPU에 의해 결정될 수도 있다.
1116 에서, 장치는 도 3-10 의 예들과 관련하여 설명된 바와 같이, 가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나를 계산할 수도 있다.
1118 에서, 장치는 도 3-10 의 예들과 관련하여 설명된 바와 같이, 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하여 적어도 하나의 합성된 프레임을 결정할 수 있다. 일부 양태들에서, 적어도 하나의 합성된 프레임은 도 3-10의 예들과 관련하여 설명된 바와 같이, 홀 마스크, 신뢰도 맵, 및 노이즈제거된 가상 깊이 중 적어도 하나에 기초하여 추가로 결정될 수도 있다. 또한, 적어도 하나의 합성된 프레임은 도 3-10 에서의 예들과 관련하여 설명된 바와 같이, 컴포지터 모듈에서 결정될 수도 있다.
1120 에서, 장치는 적어도 하나의 합성된 프레임을 통신할 수도 있고, 적어도 하나의 합성된 프레임은 도 3-10의 예들과 관련하여 설명된 바와 같이, 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초할 수 있다. 일부 양태들에서, 적어도 하나의 합성된 프레임은 도 3-10 에서의 예들과 관련하여 설명된 바와 같이, 디스플레이에 통신될 수도 있다.
하나의 구성에서, 그래픽 프로세싱을 위한 방법 또는 장치가 제공된다. 장치는 GPU, CPU, DPU 또는 재투영 모듈, 깊이 컴바이너, 컴포지터, 디스플레이 또는 그래픽 프로세싱을 수행할 수 있는 일부 다른 프로세서일 수도 있다. 일 양태에서, 장치는 디바이스 (104) 내의 프로세싱 유닛 (120) 일 수도 있거나, 디바이스 (104) 또는 다른 디바이스 내의 일부 다른 하드웨어일 수도 있다. 장치는 3차원 복원 및 이해 메시, 스테레오의 깊이 (DFS) 맵, 및 디스플레이 포즈 중 적어도 하나에 기초하여 결합된 깊이 맵을 결정하기 위한 수단을 포함할 수 있다. 장치는 또한 하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들 및 디스플레이 포즈 중 적어도 하나에 기초하여 하나 이상의 재투영된 아이 및 깊이 버퍼들을 결정하기 위한 수단을 포함할 수도 있다. 장치는 또한 적어도 하나의 합성된 프레임을 통신하기 위한 수단을 포함할 수도 있고, 적어도 하나의 합성된 프레임은 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초한다. 장치는 또한 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하여 적어도 하나의 합성된 프레임을 결정하기 위한 수단을 포함할 수 있다. 장치는 또한 3DRU 메시, DFS 맵, 및 디스플레이 포즈를 결합하기 위한 수단을 포함할 수 있다. 장치는 또한 하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 디스플레이 포즈를 결합하기 위한 수단을 포함할 수 있다. 장치는 또한 하나 이상의 바운딩 박스 및 와프 파라미터들을 계산하기 위한 수단을 포함할 수 있다. 장치는 또한 하나 이상의 아이 버퍼들 또는 하나 이상의 깊이 버퍼들 중 적어도 하나를 인코딩하기 위한 수단을 포함할 수 있다. 장치는 또한 하나 이상의 아이 버퍼들 또는 하나 이상의 깊이 버퍼들 중 적어도 하나를 디코딩하기 위한 수단을 포함할 수 있다. 장치는 또한 가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나를 계산하기 위한 수단을 포함할 수 있다.
본원에 설명된 청구물은 하나 이상의 이익 또는 이점을 실현하도록 구현될 수 있다. 예를 들어, 설명된 그래픽 프로세싱 기법들은 GPU, CPU, DPU, 재투영 모듈, 깊이 컴바이너, 컴포지터, 디스플레이 또는 본원에 설명된 차폐 처리 기법들을 구현하기 위해 그래픽 프로세싱을 수행할 수 있는 일부 다른 프로세서에 의해 사용될 수도 있다. 이것은 또한, 다른 그래픽 프로세싱 기법들과 비교하여 낮은 비용으로 달성될 수 있다. 더욱이, 본 명세서에서의 그래픽 프로세싱 기법들은 데이터 프로세싱 또는 실행을 개선 또는 가속화할 수 있다. 또한, 본 명세서에서의 그래픽 프로세싱 기법들은 리소스 또는 데이터 활용 및/또는 리소스 효율성을 개선할 수 있다. 추가적으로, 본 개시의 양태들은 폐색 계산들 동안 폐색 또는 가시적 프리미티브들을 더 정확하게 결정할 수 있다.
다음의 양태들은 예시일 뿐이며 제한 없이 본 명세서에서 설명된 다른 실시형태들 또는 교시의 양태들과 결합될 수도 있다.
양태 1 은 그래픽 프로세싱의 방법으로서, 장치는 3차원 (3D) 복원 및 이해 (3DRU) 메시, 스테레오의 깊이 (DFS) 맵, 및 디스플레이 포즈 중 적어도 하나에 기초하여 결합된 깊이 맵을 결정하는 단계; 또한 하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들 및 디스플레이 포즈 중 적어도 하나에 기초하여 하나 이상의 재투영된 아이 및 깊이 버퍼들을 결정하는 단계; 및 적어도 하나의 합성된 프레임을 전송하는 단계로서, 적어도 하나의 합성된 프레임은 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하는, 전송하는 단계를 포함한다.
양태 2 에서, 양태 1 의 방법은, 또한 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하여 적어도 하나의 합성된 프레임을 결정하는 단계를 더 포함한다.
양태 3 에서, 양태 1 또는 양태 2 의 방법은, 적어도 하나의 합성된 프레임이, 홀 마스크, 신뢰도 맵, 및 노이즈제거된 가상 깊이 중 적어도 하나에 기초하여 추가로 결정되는 단계를 더 포함한다.
양태 4 에서, 양태 1 또는 양태 2 의 방법은, 적어도 하나의 합성된 프레임은 컴포지터 모듈에서 추가로 결정되는 단계를 더 포함한다.
양태 5 에서, 양태 1-4 의 어느 방법은, 신뢰도 맵에 기초하여 알파 블렌딩을 수행하는 단계를 더 포함한다.
양태 6 에서, 양태 1-5 의 어느 방법은, 3DRU 메시, DFS 맵, 및 디스플레이 포즈를 결합하는 단계를 더 포함한다.
양태 7 에서, 양태 1-6 의 어느 방법은, 3DRU 메시, DFS 맵, 및 디스플레이 포즈가 깊이 컴바이너에서 결합되는 단계를 더 포함한다.
양태 8 에서, 양태 1-7 의 어느 방법은 또한, 장치는 하나 이상의 심도 버퍼들, 하나 이상의 바운딩 박스 및 왑핑 파라미터들, 및 디스플레이 포즈를 결합하는 단계를 더 포함하고, 하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 디스플레이 포즈는 재투영 모듈에서 결합된다.
양태 9 에서, 양태 1-8 의 어느 방법은, 하나 이상의 바운딩 박스 및 와프 파라미터들을 계산하는 단계를 더 포함한다.
양태 10 에서, 양태 1-9 의 어느 방법은, 하나 이상의 바운딩 박스 및 워프 파라미터들을 계산하는 단계를 더 포함하고, 이는 아이 트랙킹 데이터에 기초하여 계산된다.
양태 11 에서, 양태 1-10 의 어느 방법은, 서버로부터 하나 이상의 바운딩 박스 및 와프 파라미터들을 수신하는 단계를 더 포함한다.
양태 12 에서, 양태 1-11 의 어느 방법은, 하나 이상의 아이 버퍼들 또는 하나 이상의 깊이 버퍼들 중 적어도 하나를 인코딩하는 단계를 더 포함한다.
양태 13 에서, 양태 1-12 의 어느 방법은, 서버로부터 하나 이상의 인코딩된 아이 버퍼들 또는 하나 이상의 인코딩된 깊이 버퍼들을 수신하는 단계를 더 포함한다.
양태 14 에서, 양태 13 의 방법은, 하나 이상의 아이 인코딩된 버퍼들 또는 하나 이상의 인코딩된 깊이 버퍼들 중 적어도 하나를 디코딩하는 단계를 더 포함한다.
양태 15 에서, 양태 1-14 의 어느 방법은, 가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나를 계산하는 단계를 더 포함한다.
양태 16 에서, 양태 1-15 의 어느 방법은, 하나 이상의 재투영된 아이 및 깊이 버퍼들이 가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나에 기초하여 추가로 결정되는 단계를 더 포함한다.
양태 17 에서, 양태 1-16 의 어느 방법은, 서버로부터 가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나를 수신하는 단계를 더 포함한다.
양태 18 에서, 양태 1-17 의 어느 방법은, 적어도 하나의 합성된 프레임이 디스플레이에 통신되는 단계를 더 포함한다.
양태 19 에서, 양태 1-18 의 어느 방법은, 또한, 결합된 깊이 맵이 그래픽 프로세싱 유닛 또는 디스플레이 프로세싱 유닛에 의해 결정되는 것을 더 포함하고, 하나 이상의 재투영된 아이 및 깊이 버퍼들은 GPU 또는 DPU 에 의해 결정된다.
양태 20 에서, 양태 1-19 의 어느 방법은, 또한, 결합된 깊이 맵을 결정하는 단계가, 동적 객체들에 대한 3DRU 및 DFS 맵에 객체 트랙커 정보를 결합하는 단계를 포함하는 것을 더 포함한다.
양태 21 에서, 양태 1-20 의 어느 방법은, 좌측 및 우측 스테레오 아이 버퍼들에 기초하여 샘플링된 깊이 텍스처를 생성하는 단계를 더 포함한다.
양태 22 에서, 양태 1-21 의 어느 방법은, 정적 및 동적 객체를 세그먼트함으로써 세그먼트화 맵을 생성하는 단계, 및 가상 및 실제 객체들의 에지들에 근접한 블렌딩을 강화하기 위해 세그먼트화 맵과 알파 블렌딩을 수행하는 단계를 더 포함한다.
양태 23 은, 하나 이상의 프로세서들, 및 시스템 또는 장치로 하여금, 양태 1 내지 양태 22 중 어느 것에서와 같은 방법을 구현하게 하도록 하나 이상의 프로세서들에 의해 실행가능한 명령들을 저장하는 하나 이상의 프로세서들과 전자 통신하는 하나 이상의 메모리들을 포함하는 디바이스이다.
양태 24 는 양태 1 내지 22 중 어는 것에서와 같이 방법을 구현하거나 장치를 실현하기 위한 수단을 포함하는 시스템 또는 장치이다.
양태 25 는 하나 이상의 프로세서들로 하여금 양태 1 내지 22 중 어느 것에서의 방법을 구현하게 하도록 하나 이상의 프로세서에 의해 실행가능한 명령들을 저장한 비일시적 컴퓨터 판독가능 매체이다.
개시된 프로세스들/플로우차트들에 있어서의 블록들의 특정 순서 또는 계위는 예시적인 접근법들의 예시임이 이해된다. 설계 선호도들에 기초하여, 프로세스들/플로우차트들에 있어서의 블록들의 특정 순서 또는 계위가 재배열될 수도 있음이 이해된다. 추가로, 일부 블록들은 결합되거나 또는 생략될 수도 있다. 첨부 방법 청구항들은 다양한 블록들의 엘리먼트들을 샘플 순서로 제시하고, 제시된 특정 순서 또는 계위로 한정되도록 의도되지 않는다.
이전의 설명은 당업자가 본 명세서에 기재된 다양한 양태들을 실시하는 것을 가능하게 하기 위해서 제공된다. 이들 양태들에 대한 다양한 수정들은 당업자에게 쉽게 자명할 것이며, 본 명세서에 정의된 일반적인 원리들은 다른 양태들에 적용될 수도 있다. 따라서, 청구항들은 본 명세서에 나타낸 양태들에 제한되도록 의도되는 것이 아니라, 청구항 언어에 부합하는 전체 범위가 부여되어야 하며, 단수형 엘리먼트에 대한 언급은, 특별히 그렇게 언급되지 않았으면, "하나 및 오직 하나만" 을 의미하도록 의도되는 것이 아니라 오히려 "하나 이상" 을 의미하도록 의도된다. "예시적인" 이라는 용어는 "예, 실례, 또는 예시로서 역할하는" 을 의미하는 것으로 본원에서 사용된다. “예시적인" 이라는 용어는 "예, 실례, 또는 예시로서 역할하는" 을 의미하는 것으로 본원에서 사용된다. 명확하게 달리 언급되지 않으면, 용어 "일부" 는 하나 이상을 지칭한다. 본 개시에 따르면, 용어 "또는" 은 문맥이 달리 지시하지 않는 경우 "및/또는" 으로 해석될 수도 있다. 추가적으로, "하나 이상" 또는 "적어도 하나" 등과 같은 문구들이 본 명세서에 개시된 일부 특징들에 대해 사용되고 다른 특징들에 대해서는 사용되지 않았을 수도 있지만, 그러한 표현이 사용되지 않은 특징들은 문맥이 달리 지시하지 않는 경우 암시되는 그러한 의미를 갖는 것으로 해석될 수도 있다. "A, B, 또는 C 중 적어도 하나", "A, B, 또는 C 중 하나 이상", "A, B, 및 C 중 적어도 하나", "A, B, 및 C 중 하나 이상", 및 "A, B, C, 또는 이들의 임의의 조합" 과 같은 조합들은 A, B, 및/또는 C 의 임의의 조합을 포함하고, A 의 배수들, B 의 배수들, 또는 C 의 배수들을 포함할 수도 있다. 구체적으로, "A, B, 또는 C 중 적어도 하나", "A, B, 또는 C 중 하나 이상", "A, B, 및 C 중 적어도 하나", "A, B, 및 C 중 하나 이상", 및 "A, B, C, 또는 이들의 임의의 조합" 과 같은 조합들은 A만, B만, C만, A 및 B, A 및 C, B 및 C, 또는 A 와 B 와 C 일 수도 있으며 여기서, 임의의 이러한 조합들은 A, B, 또는 C 의 하나 이상의 멤버 또는 멤버들을 포함할 수도 있다. 당업자에게 공지되거나 나중에 공지되게 될 본 개시 전반에 걸쳐 설명된 다양한 양태들의 엘리먼트들에 대한 모든 구조적 및 기능적 균등물들은 본 명세서에 참조로 명백히 통합되며 청구항들에 의해 포괄되도록 의도된다. 또한, 본 명세서에서 개시된 어떤 것도, 그러한 개시가 청구항들에 명시적으로 기재되는지 여부에 관계 없이 공중에 제공되도록 의도되지 않는다. "모듈", "메커니즘", "엘리먼트", "디바이스" 등의 단어는 "수단" 이라는 단어의 대체물이 아닐 수도 있다. 이로써, 어떠한 청구항 엘리먼트도, 그 엘리먼트가 어구 "하는 수단" 을 사용하여 명백하게 기재되지 않는다면 수단 플러스 기능으로서 해석되지 않아야 한다.
하나 이상의 예에서, 본원에 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 예를 들어, 용어 "프로세싱 유닛" 이 본 개시에 걸쳐 사용되었지만, 이러한 프로세싱 유닛들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 임의의 기능, 프로세싱 유닛, 본 명세서에 설명된 기술, 또는 다른 모듈이 소프트웨어에서 구현되는 경우, 기능, 프로세싱 유닛, 본 명세서에 설명된 기술, 또는 다른 모듈은 컴퓨터 판독가능 매체 상에 하나 이상의 명령 또는 코드로서 저장되거나 전송될 수도 있다. 컴퓨터 판독가능 매체는 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체 또는 컴퓨터 데이터 저장 매체를 포함할 수도 있다. 이런 식으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 캐리어 파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시에 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 가용 매체들일 수도 있다. 한정이 아닌 예로서, 그러한 컴퓨터 판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스들을 포함할 수 있다. 본 명세서에서 사용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 콤팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며, 여기서 디스크 (disk) 들은 보통 데이터를 자기적으로 재생하는 한편, 디스크 (disc) 들은 레이저들로 데이터를 광학적으로 재생한다. 또한, 상기의 조합들이 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수 있다.
코드는 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로 프로세서들, 주문형 집적 회로들 (ASIC들), ALU들 (arithmetic logic units), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 균등한 집적된 또는 별개의 로직 회로부와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 본 명세서에 사용된 용어 "프로세서" 는 전술한 구조 중 임의의 것 또는 본 명세서에 설명된 기법들의 구현에 적합한 임의의 다른 구조를 지칭할 수도 있다. 또한, 기법들은 하나 이상의 회로 또는 로직 엘리먼트에서 완전히 구현될 수도 있다.
본 개시의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트, 예컨대 칩 세트를 포함하는, 매우 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하는 것은 아니다. 오히려, 상기 설명된 바와 같이, 다양한 유닛들은 적합한 소프트웨어 및/또는 펌웨어와 함께 상기 설명된 바와 같은 하나 이상의 프로세서들을 포함하여 임의의 하드웨어 유닛에서 결합되거나 또는 상호운용식 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
다양한 예들이 개시되어 있다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (31)

  1. 그래픽 프로세싱의 방법으로서,
    3차원 (3D) 복원 및 이해 (3DRU; 3D reconstruction and understanding) 메시, 스테레오의 깊이 (DFS; depth from stereo) 맵, 및 디스플레이 포즈 중 적어도 하나에 기초하여 결합된 깊이 맵을 결정하는 단계;
    하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 상기 디스플레이 포즈 중 적어도 하나에 기초하여 하나 이상의 재투영된 아이 및 깊이 버퍼들을 결정하는 단계; 및
    적어도 하나의 합성된 프레임을 디스플레이에 전송하는 단계로서, 적어도 하나의 합성된 프레임은 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하는, 상기 전송하는 단계를 포함하는, 그래픽 프로세싱의 방법.
  2. 제 1 항에 있어서,
    상기 결합된 깊이 맵 및 상기 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하여 상기 적어도 하나의 합성된 프레임을 결정하는 단계를 더 포함하고, 상기 적어도 하나의 합성된 프레임은 컴포지터 모듈에서 결정되는, 그래픽 프로세싱의 방법.
  3. 제 2 항에 있어서,
    상기 적어도 하나의 합성된 프레임은 또한, 홀 마스크, 신뢰도 맵, 및 노이즈제거된 가상 깊이 중 적어도 하나에 기초하여 결정되는, 그래픽 프로세싱의 방법.
  4. 제 3 항에 있어서,
    상기 신뢰도 맵에 기초하여 알파 블렌딩을 수행하는 단계를 더 포함하는, 그래픽 프로세싱의 방법.
  5. 제 1 항에 있어서,
    상기 3DRU 메시, 상기 DFS 맵 및 상기 디스플레이 포즈를 결합하는 단계를 더 포함하고, 상기 3DRU 메시, 상기 DFS 맵 및 상기 디스플레이 포즈는 깊이 컴바이너에서 결합되는, 그래픽 프로세싱의 방법.
  6. 제 1 항에 있어서,
    상기 하나 이상의 아이 버퍼들, 상기 하나 이상의 깊이 버퍼들, 상기 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 상기 디스플레이 포즈를 결합하는 단계를 더 포함하고,
    상기 하나 이상의 아이 버퍼들, 상기 하나 이상의 깊이 버퍼들, 상기 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 상기 디스플레이 포즈는 재투영 모듈에서 결합되는, 그래픽 프로세싱의 방법.
  7. 제 1 항에 있어서,
    상기 하나 이상의 바운딩 박스 및 와프 파라미터들을 계산하는 단계를 더 포함하는, 그래픽 프로세싱의 방법.
  8. 제 7 항에 있어서,
    상기 하나 이상의 바운딩 박스 및 와프 파라미터들은 아이 트랙킹 데이터에 기초하여 계산되는, 그래픽 프로세싱의 방법.
  9. 제 1 항에 있어서,
    서버로부터 상기 하나 이상의 바운딩 박스 및 와프 파라미터들을 수신하는 단계를 더 포함하는, 그래픽 프로세싱의 방법.
  10. 제 1 항에 있어서,
    상기 하나 이상의 아이 버퍼들 또는 상기 하나 이상의 깊이 버퍼들 중 적어도 하나를 인코딩하는 단계를 더 포함하는, 그래픽 프로세싱의 방법.
  11. 제 1 항에 있어서,
    서버로부터 하나 이상의 인코딩된 아이 버퍼들 또는 하나 이상의 인코딩된 깊이 버퍼들을 수신하는 단계를 더 포함하는, 그래픽 프로세싱의 방법.
  12. 제 11 항에 있어서,
    상기 하나 이상의 아이 버퍼들 또는 상기 하나 이상의 깊이 버퍼들 중 적어도 하나를 디코딩하는 단계를 더 포함하는, 그래픽 프로세싱의 방법.
  13. 제 1 항에 있어서,
    가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나를 계산하는 단계를 더 포함하는, 그래픽 프로세싱의 방법.
  14. 제 13 항에 있어서,
    하나 이상의 재투영된 아이 및 깊이 버퍼들은 또한 가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나에 기초하여 결정되는, 그래픽 프로세싱의 방법.
  15. 제 1 항에 있어서,
    서버로부터 가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나를 수신하는 단계를 더 포함하는, 그래픽 프로세싱의 방법.
  16. 제 1 항에 있어서,
    결합된 깊이 맵이 그래픽 프로세싱 유닛 (GPU) 또는 디스플레이 프로세싱 유닛 (DPU) 에 의해 결정되고, 상기 하나 이상의 재투영된 아이 및 깊이 버퍼들은 GPU 또는 DPU 에 의해 결정되는, 그래픽 프로세싱의 방법.
  17. 제 1 항에 있어서,
    결합된 깊이 맵을 결정하는 것이, 동적 객체들에 대한 3DRU 및 DFS 맵에 객체 트랙커 정보를 결합하는 것을 포함하는, 그래픽 프로세싱의 방법.
  18. 제 1 항에 있어서,
    좌측 및 우측 스테레오 아이 버퍼들에 기초하여 샘플링된 깊이 텍스처를 생성하는 단계를 더 포함하는, 그래픽 프로세싱의 방법.
  19. 제 1 항에 있어서,
    정적 및 동적 객체를 세그먼트함으로써 세그먼트화 맵을 생성하는 단계, 및
    가상 및 실제 객체들의 에지들에 근접한 블렌딩을 강화하기 위해 상기 세그먼트화 맵과 알파 블렌딩을 수행하는 단계를 더 포함하는, 그래픽 프로세싱의 방법.
  20. 그래픽 프로세싱을 위한 장치로서,
    메모리; 및
    상기 메모리에 커플링된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는:
    3차원 (3D) 복원 및 이해 (3DRU) 메시, 스테레오의 깊이 (DFS) 맵, 및 디스플레이 포즈 중 적어도 하나에 기초하여 결합된 깊이 맵을 결정하고;
    하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 상기 디스플레이 포즈 중 적어도 하나에 기초하여 하나 이상의 재투영된 아이 및 깊이 버퍼들을 결정하고; 그리고
    적어도 하나의 합성된 프레임을 통신하는 것으로서, 상기 적어도 하나의 합성된 프레임은 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하는, 상기 적어도 하나의 합성된 프레임을 통신하도록 구성되는, 그래픽 프로세싱을 위한 장치.
  21. 제 17 항에 있어서,
    상기 적어도 하나의 프로세서는 또한 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하여 상기 적어도 하나의 합성된 프레임을 결정하도록 구성되고, 상기 적어도 하나의 합성된 프레임은 또한, 홀 마스크, 신뢰도 맵, 및 노이즈제거된 가상 깊이 중 적어도 하나에 기초하여 결정되는, 그래픽 프로세싱을 위한 장치.
  22. 제 21 항에 있어서,
    상기 적어도 하나의 프로세서는 또한 신뢰도 맵에 기초하여 알파 블렌딩을 수행하도록 구성되고, 상기 적어도 하나의 합성된 프레임은 컴포지터 모듈에서 결정되는, 그래픽 프로세싱을 위한 장치.
  23. 제 20 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 3DRU 메시, 상기 DFS 맵 및 상기 디스플레이 포즈를 결합하도록 구성되고, 상기 3DRU 메시, 상기 DFS 맵 및 상기 디스플레이 포즈는 깊이 컴바이너에서 결합되는, 그래픽 프로세싱을 위한 장치.
  24. 제 20 항에 있어서,
    상기 적어도 하나의 프로세서는 또한:
    상기 하나 이상의 아이 버퍼들, 상기 하나 이상의 깊이 버퍼들, 상기 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 상기 디스플레이 포즈를 결합하도록 구성되고,
    상기 하나 이상의 아이 버퍼들, 상기 하나 이상의 깊이 버퍼들, 상기 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 상기 디스플레이 포즈는 재투영 모듈에서 결합되는, 그래픽 프로세싱을 위한 장치.
  25. 제 20 항에 있어서,
    상기 적어도 하나의 프로세서는 또한 상기 하나 이상의 바운딩 박스 및 와프 파라미터들을 계산하도록 구성되는, 그래픽 프로세싱을 위한 장치.
  26. 제 20 항에 있어서,
    상기 하나 이상의 프로세서는 또한 상기 하나 이상의 아이 버퍼들 또는 상기 하나 이상의 깊이 버퍼들 중 적어도 하나를 인코딩하도록 구성되는, 그래픽 프로세싱을 위한 장치.
  27. 제 26 항에 있어서,
    상기 적어도 하나의 프로세서는 또한 상기 하나 이상의 아이 버퍼들 또는 상기 하나 이상의 깊이 버퍼들 중 적어도 하나를 디코딩하도록 구성되는, 그래픽 프로세싱을 위한 장치.
  28. 제 17 항에 있어서,
    상기 적어도 하나의 프로세서는 또한 가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나를 계산하도록 구성되는, 그래픽 프로세싱을 위한 장치.
  29. 제 28 항에 있어서,
    하나 이상의 재투영된 아이 및 깊이 버퍼들은 또한 가시적 지오메트리 또는 셰이딩된 텍스처 중 적어도 하나에 기초하여 결정되는, 그래픽 프로세싱을 위한 장치.
  30. 그래픽 프로세싱을 위한 장치로서,
    3차원 (3D) 복원 및 이해 (3DRU) 메시, 스테레오의 깊이 (DFS) 맵, 및 디스플레이 포즈 중 적어도 하나에 기초하여 결합된 깊이 맵을 결정하기 위한 수단;
    하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 상기 디스플레이 포즈 중 적어도 하나에 기초하여 하나 이상의 재투영된 아이 및 깊이 버퍼들을 결정하기 위한 수단; 및
    적어도 하나의 합성된 프레임을 통신하기 위한 수단으로서, 상기 적어도 하나의 합성된 프레임은 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하는, 상기 적어도 하나의 합성된 프레임을 통신하기 위한 수단을 포함하는, 그래픽 프로세싱을 위한 장치.
  31. 그래픽 프로세싱을 위한 컴퓨터 실행가능 코드를 저장한 컴퓨터 판독가능 저장 매체로서,
    상기 코드는 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    3차원 (3D) 복원 및 이해 (3DRU) 메시, 스테레오의 깊이 (DFS) 맵, 및 디스플레이 포즈 중 적어도 하나에 기초하여 결합된 깊이 맵을 결정하게 하고;
    하나 이상의 아이 버퍼들, 하나 이상의 깊이 버퍼들, 하나 이상의 바운딩 박스 및 와프 파라미터들, 및 상기 디스플레이 포즈 중 적어도 하나에 기초하여 하나 이상의 재투영된 아이 및 깊이 버퍼들을 결정하게 하고; 그리고
    적어도 하나의 합성된 프레임을 통신하게 하는 것으로서, 상기 적어도 하나의 합성된 프레임은 결합된 깊이 맵 및 하나 이상의 재투영된 아이 및 깊이 버퍼들에 기초하는, 상기 적어도 하나의 합성된 프레임을 통신하게 하는, 그래픽 프로세싱을 위한 컴퓨터 실행가능 코드를 저장한 컴퓨터 판독가능 저장 매체.
KR1020227040548A 2020-06-01 2021-04-28 폐색 처리 기법을 위한 방법 및 장치 KR20230018368A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN202041022961 2020-06-01
IN202041022961 2020-06-01
PCT/US2021/029657 WO2021247171A1 (en) 2020-06-01 2021-04-28 Methods and apparatus for occlusion handling techniques

Publications (1)

Publication Number Publication Date
KR20230018368A true KR20230018368A (ko) 2023-02-07

Family

ID=76012013

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227040548A KR20230018368A (ko) 2020-06-01 2021-04-28 폐색 처리 기법을 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US20230147244A1 (ko)
EP (1) EP4158890A1 (ko)
KR (1) KR20230018368A (ko)
CN (1) CN115715464A (ko)
BR (1) BR112022023671A2 (ko)
TW (1) TW202230287A (ko)
WO (1) WO2021247171A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240029363A1 (en) * 2022-07-20 2024-01-25 Qualcomm Incorporated Late stage occlusion based rendering for extended reality (xr)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2015274283B2 (en) * 2014-06-14 2020-09-10 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
WO2018081176A1 (en) * 2016-10-24 2018-05-03 Aquifi, Inc. Systems and methods for contextual three-dimensional staging
CN108537871B (zh) * 2017-03-03 2024-02-20 索尼公司 信息处理设备和信息处理方法
CN111801708B (zh) * 2017-12-22 2022-04-29 奇跃公司 使用光线投射和实时深度进行遮挡渲染的方法

Also Published As

Publication number Publication date
TW202230287A (zh) 2022-08-01
US20230147244A1 (en) 2023-05-11
CN115715464A (zh) 2023-02-24
BR112022023671A2 (pt) 2022-12-20
WO2021247171A1 (en) 2021-12-09
EP4158890A1 (en) 2023-04-05

Similar Documents

Publication Publication Date Title
KR102590644B1 (ko) 증강 현실 콘텐츠의 아틀라스 관리를 위한 방법 및 장치
US10164459B2 (en) Selective rasterization
US20150084981A1 (en) Anti-Aliasing for Graphics Hardware
CN112739433A (zh) 用于远程渲染的vr的异步空间扭曲
CN116391205A (zh) 用于图形处理单元混合渲染的装置和方法
US11468629B2 (en) Methods and apparatus for handling occlusions in split rendering
KR20230052884A (ko) 압축된 지오메트리 렌더링 및 스트리밍
KR20220148814A (ko) 효율적인 다중 뷰 래스터화를 위한 방법들 및 장치
US20230147244A1 (en) Methods and apparatus for occlusion handling techniques
US11908079B2 (en) Variable rate tessellation
US20210312704A1 (en) Rendering using shadow information
TW202137141A (zh) 用於邊緣壓縮抗混疊的方法和裝置
WO2024055221A1 (en) Fast msaa techniques for graphics processing
US20240096042A1 (en) Methods and apparatus for saliency based frame color enhancement
US20230252685A1 (en) Leaf node compression with compressibility prediction
US20230101978A1 (en) Meshlet shading atlas
KR20240093463A (ko) 메시릿 셰이딩 아틀라스
KR20240044504A (ko) 동적 가변 레이트 셰이딩
KR20230052891A (ko) 오브젝트-공간 렌더링에서의 빌보드 계층들
CN117980955A (zh) 与样本空间相关联的聚焦分箱渲染
CN116457830A (zh) 基于区域不连续性的运动估计

Legal Events

Date Code Title Description
A201 Request for examination