KR20200052846A - 데이터 처리 시스템 - Google Patents

데이터 처리 시스템 Download PDF

Info

Publication number
KR20200052846A
KR20200052846A KR1020190140609A KR20190140609A KR20200052846A KR 20200052846 A KR20200052846 A KR 20200052846A KR 1020190140609 A KR1020190140609 A KR 1020190140609A KR 20190140609 A KR20190140609 A KR 20190140609A KR 20200052846 A KR20200052846 A KR 20200052846A
Authority
KR
South Korea
Prior art keywords
frame
display
output
version
data
Prior art date
Application number
KR1020190140609A
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 KR20200052846A publication Critical patent/KR20200052846A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/2007Display of intermediate tones
    • G09G3/2018Display of intermediate tones by time modulation using two or more time intervals
    • G09G3/2022Display of intermediate tones by time modulation using two or more time intervals using sub-frames
    • 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
    • G06T3/4092Image resolution transcoding, e.g. by using client-server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/04Context-preserving transformations, e.g. by using an importance map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • 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/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • 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/139Format conversion, e.g. of frame-rate or size
    • 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]
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0112Head-up displays characterised by optical features comprising device for genereting colour display
    • G02B2027/0116Head-up displays characterised by optical features comprising device for genereting colour display comprising devices for correcting chromatic aberration
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0147Head-up displays characterised by optical features comprising a device modifying the resolution of the displayed image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Optics & Photonics (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

데이터 처리 시스템
데이터 처리 시스템에서, 포비티드 화상을 표시할 때, 생성기 처리 유닛은, 표시되는 프레임의 복수의 상이한 해상도 버전들을 발생한다. 그 후, 디스플레이 프로세서는, 프레임의 어느 해상도 버전이, 디스플레이 프로세서에 제공되게 표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여, 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여, 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생한다.

Description

데이터 처리 시스템{DATA PROCESSING SYSTEMS}
본 발명은 데이터 처리 시스템에 관한 것으로, 특히 디스플레이 상에 화상들을 표시하는 데이터 처리 시스템의 동작에 관한 것이다.
도 1은 중앙 처리 유닛(7; CPU), 그래픽 처리 유닛(2; GPU), 비디오 코덱(1), 화상 신호 프로세서(13; ISP)(즉, 예를 들면, 카메라 12와 통신함), 디스플레이 프로세서(5; 디스플레이 처리 유닛(DPU)), 및 메모리 제어기(8)를 포함하는 호스트 프로세서를 구비하는 데이터 처리 시스템(14)의 예를 나타낸다. 도 1에 나타낸 바와 같이, 이들 유닛은 인터커넥트(9)를 통해 통신하고 오프-칩 메모리(3)에 액세스한다.
이러한 시스템에서, 상기 GPU(2), 비디오 코덱(1), ISP(13) 및/또는 CPU(7)는 표시되는 프레임들(화상들)을 생성하고 다음에 상기 디스플레이 프로세서(5)는 표시를 위해 디스플레이(4)에 상기 프레임들을 제공할 것이다. 상기 디스플레이(4)는 상기 시스템의 나머지에 대해 로컬 또는 원격일 수 있으며, 상기 디스플레이 프로세서(5)에 유선 또는 무선으로 접속할 수도 있다.
이러한 시스템의 사용에 있어서, 호스트 프로세서(CPU) 상에서 실행되는 게임과 같은 애플리케이션은, 예를 들어 디스플레이(4) 상에 프레임들의 표시를 요구할 것이다. 이를 행하기 위해, 상기 애플리케이션(10)은 상기 CPU(7) 상에서 실행중인 그래픽 처리 유닛(2)에 대한 드라이버(11)에 적절한 명령 및 데이터를 제공할 것이다. 다음에, 상기 드라이버(11)는 적절한 명령 및 데이터를 발생하여 상기 그래픽 처리 유닛(2)이 표시를 위해 적절한 프레임들을 렌더링하고 이 프레임들을 적절한 프레임 버퍼들, 예컨대 메인 메모리(3)에 저장하게 한다. 다음에, 상기 디스플레이 프로세서(5)는 이들 프레임을 표시를 위해 버퍼로 독출하고, 이후 여기서 이들 프레임이 판독되어 디스플레이(4)의 디스플레이 패널 상에 표시된다.
표시용 프레임들은, 예컨대 원할 경우 캐시를 통해, 상기 프레임들을 생성중인 처리 유닛, 예컨대 GPU(2) 또는 ISP(13)로부터 디스플레이 프로세서에 스트리밍되거나 또는 대신에 스트리밍될 수도 있다.
도 1에 나타낸 것과 같은 데이터 처리 시스템(14) 사용의 예는 증강 현실(AR) 및/또는 가상 현실(VR), 헤드(head) 장착형 디스플레이(HMD) 시스템을 제공하는 것이다. (이러한 경우, 상기 디스플레이(4)는 일부 종류의 헤드 장착형 디스플레이일 것이다.)
헤드 장착형 AR/VR 디스플레이 동작에서, 각 눈에 표시되는 적절한 화상들은, 예컨대 상기 증강 현실 또는 가상 현실 디스플레이를 요구하는 게임(예컨대, CPU(7) 상에서 실행되는)과 같은 애플리케이션으로부터의 적절한 명령 및 데이터에 응답하여, 상기 그래픽 처리 유닛(2)에 의해 렌더링될 것이다. 예를 들어, 상기 GPU(2)는 초당 60 프레임과 같은 디스플레이의 리프레시 레이트(refresh rate)와 일치하는 레이트로 표시되는 화상들을 렌더링할 것이다.
이러한 구성에서, 상기 시스템은 유저의 헤드/시선의 움직임을 추적(소위 헤드 포즈 추적)하도록 동작할 것이다. 그 후, 이러한 헤드 방향(포즈) 데이터는 화상들이 현재 헤드 위치(뷰 방향)에 대해 유저에게 실제로 어떻게 표시되어야 하는지를 결정하는데 사용되며, 이에 따라 화상들(프레임들)이 (예컨대, 헤드 방향 데이터를 기초하여 카메라(시점) 방향을 설정함으로써) 렌더링되어, 유저의 현재 뷰의 방향에 기초하여 적절한 화상이 표시될 수 있다.
AR/VR 시스템에서 표시되는 프레임의 렌더링 시작시에 헤드 방향(포즈)을 단순히 결정하는 것이 가능할 수 있지만, 렌더링 프로세스에서의 지연 때문에, 프레임의 렌더링 시작시의 헤드 방향(포즈)과 실제로 프레임이 표시되는(디스플레이 패널로 스캔되는) 시간간 유저의 헤드 방향(포즈)이 변경되어 있는 경우가 있을 수 있다.
이를 고려하여, 표시되는 프레임들이 프레임의 렌더링 시작시에 감지된 헤드 방향 데이터에 근거하여 렌더링되지만, 이후 프레임들이 실제로 표시되기 전에, 프레임들이 실제로 유저에게 표시될 시간 동안 예측된 헤드 방향에 근거하여 프레임들이 재투영된다. 이 예측된 헤드 방향은, 예컨대 프레임이 렌더링되는 시간과 프레임이 실제로 표시될 시점간 유저의 예측된 헤드 움직임에 근거할 수도 있다. 그리고, 프레임의 재투영된 버전이 표시된다. 이에 따라, 디스플레이 상에 표시된 화상이 유저의 (예측된) 현재 헤드 방향과 더 가깝게 일치한다.
이러한 처리를 행하기 위해, 초기의 "애플리케이션" 프레임들이 메모리의 적절한 버퍼들에 렌더링되지만, 이후 제2렌더링 프로세스는 상기 메모리의 상기 초기의 애플리케이션 프레임들을 취하고 예측된 헤드 방향(포즈) 정보를 사용하여 유저에게 표시될 프레임들을 제공하기 위해 그 예측된 헤드 방향을 고려하는 초기에 렌더링된 프레임들의 "재투영된" 버전을 렌더링한다. 이는 통상 상기 예측된 헤드 방향(포즈)에 기초하여 그 프레임들에 일부 형태의 변환을 포함한다. 그리고, 이렇게 변환된(재투영된) 렌더링된 프레임들이 표시된다.
"XR" 디스플레이 시스템에서 적절한 레이트로 표시하기 위한 프레임들의 발생을 실행하는데 도움이 되는데 사용되는 추가의 기술을, 소위 "포비티드(foveated)" 또는 "가변 해상도" 렌더링이라고 한다.
가변 해상도("포비티드") 렌더링은, 표시되는 프레임(화상)의 하나 이상의 일부들을 고해상도로 렌더링하지만, 그 프레임의 하나 이상의 그 밖의 일부들을 저해상도로 렌더링하는 렌더링 기술이다.
이것은, 유저가 직접 주시하고 있는 상기 프레임의 영역이 시각적 수용 가능성을 위한 고해상도로 렌더링될 필요가 있을지도 모르고, 유저가 직접 주시하고 있는 중이 아닌 상기 프레임의 주변 영역이 계속 시각적으로 수용 가능하게 보이면서 저해상도로 렌더링될 수 있다는, 사실에 근거한다. 그 후, 이것은, 요구된("중심와") 최고 해상도로 표시되는 프레임 전체를 렌더링하는 대신에, 저해상도로 상기 주변 영역을 렌더링함으로써, 표시용 프레임들을 생성중인 예를 들면, 그래픽 처리 유닛(GPU)의 렌더링 부담을 저하시키는데 사용될 수 있다.
가변 해상도 렌더링은, 상기 프레임의 고해상도 영역들이 렌더링될 하나 이상의 "주시점들"을 특정함으로써 실시되어도 되고, 이때 상기 주시점(들)으로부터 한층 더 떨어진 상기 영역들은 저해상도로 렌더링된다. 따라서, 각 주시점은, 상기 프레임의 최고의 해상도 영역을 나타내어도 되고, 일부의 경우에는, 눈의 망막의 중심(중심와)에 대응하도록 구성되는 것이다.
가변 해상도 렌더링은, 헤드 장착형 디스플레이들(HMDs)에 의해 도입된 렌즈 왜곡들을 고려(이용)하는데도 사용될 수 있다. 예를 들면, 가상 현실 애플리케이션용 고해상도 헤드 장착형 디스플레이들은, 일반적으로, 심한 핀쿠션 왜곡이 특징을 이루는 렌즈들을 사용한다. 이 핀쿠션 왜곡은 술통형 왜곡을 통해 상기 렌더링된 화상을 통과함으로써 보정될 수 있다. 이것의 효과는, (눈마다) 상기 디스플레이의 중심을 향하는 상기 렌더링된 화상이 확대되는 반면에, 그 주변 영역이 축소되는 것이다. 그 후, 이것의 효과는, 유저의 전반적인 시각효과에 있어서 어떠한 중요한 손실도 없이, 상기 중심의 확대 영역보다 저품질로 렌더링될 수 있다는 것이다.
가변 해상도 렌더링을 수행할 때, 상기 프레임의 최고의 해상도 영역들의 장소들(예를 들면, 상기 주시점(들))은, 임의의 적절하고 원하는 방식으로 결정되어도 된다. 예를 들면, 일부 형태의 머리 추적 또는 시선 추적(헤드 포즈 추적)은, 최고의 해상도로 렌더링되어야 하는 상기 프레임의 영역을 특정하도록, 유저가 상기 화상을 주시중인 장소를 특정하려고 하는데 사용되어도 된다. 또한, 또는 대신에, 상기 프레임의 고해상도 영역들의 장소는, 렌즈 왜곡 등의 그 밖의 요인들에 근거할 수도 있다.
출원인이 믿는 것은, 특히, 헤드 장착형 디스플레이 시스템, 이를테면 증강 및/또는 가상 현실 애플리케이션을 위한 화상들을 표시하는 향상된 구성에 대한 여지가 있다는 것이다.
본 발명의 제1 국면에서 제공한 데이터 처리 시스템의 동작방법은: 상기 데이터 처리 시스템이:
표시용 프레임들을 표시 가능한 디스플레이;
디스플레이 상에 표시용 프레임들을 발생 가능한 생성기 처리 유닛; 및
생성기 처리 유닛에 의해 발생된 프레임들을 표시를 위해 디스플레이에 제공 가능한 디스플레이 프로세서를 구비하고, 상기 디스플레이 프로세서는:
입력 프레임들의 데이터를 판독 가능한 입력 스테이지;
표시용 프레임들을 디스플레이에 제공 가능한 출력 스테이지; 및
상기 입력 스테이지에 의해 판독된 입력 프레임의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 발생 가능한 적어도 하나의 변환 스테이지를 구비하고;
상기 방법은:
생성기 처리 유닛에 의해, 표시되는 프레임에 대해, 이 표시되는 프레임의 복수의 상이한 해상도 버전들을 발생하는 단계;
생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 표시를 위해 디스플레이 프로세서에서 발생하는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터를 디스플레이 프로세서에 제공하는 단계;
디스플레이 프로세서의 입력 스테이지에 의해, 생성기 처리 유닛에서 발생한 상기 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부 또는 전부의 데이터를 판독하는 단계;
디스플레이 프로세서에 의해, 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 상기 표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여 입력 스테이지에서 판독한 생성기 처리 유닛에서 발생한 상기 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여, 상기 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하는 단계; 및
디스플레이 프로세서의 출력 스테이지에 의해, 표시를 위해 디스플레이에, 상기 프레임의 뷰 방향 변환된 출력 버전을 제공하는 단계를 포함한다.
본 발명의 제2 국면에서 제공한 데이터 처리 시스템은:
표시용 프레임들을 표시 가능한 디스플레이;
디스플레이 상에 표시용 프레임들을 발생 가능한 생성기 처리 유닛; 및
생성기 처리 유닛에 의해 발생된 프레임들을 표시를 위해 디스플레이에 제공 가능한 디스플레이 프로세서를 구비하고, 상기 디스플레이 프로세서는:
입력 프레임들의 데이터를 판독 가능한 입력 스테이지;
표시용 프레임들을 디스플레이에 제공 가능한 출력 스테이지; 및
상기 입력 스테이지에 의해 판독된 입력 프레임의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 발생 가능한 적어도 하나의 변환 스테이지를 구비하고;
생성기 처리 유닛은, 표시되는 프레임에 대해, 이 표시되는 프레임의 복수의 상이한 해상도 버전들을 발생하도록 구성되고;
디스플레이 프로세서의 입력 스테이지는, 생성기 처리 유닛에서 발생한 상기 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부 또는 전부의 데이터를 판독하도록 구성되고;
디스플레이 프로세서는, 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이, 디스플레이 프로세서에 제공된 표시를 위해 디스플레이 프로세서에서 발생하는 표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여 입력 스테이지에서 판독한 생성기 처리 유닛에서 발생한 상기 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여, 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하도록 구성되고;
디스플레이 프로세서의 출력 스테이지는, 표시를 위해 디스플레이에, 프레임의 뷰 방향 변환된 출력 버전을 제공하도록 구성된다.
본 발명은, 포비티드(가변 해상도) 렌더링을 수행할 때 데이터 처리 시스템의 동작에 관한 것이다.
본 발명에 있어서, 생성기 처리 유닛, 이를테면 그래픽 프로세서는, 표시되는 프레임의 복수의 상이한 해상도 버전들을 발생한다. 그리고, 그 복수의 상이한 해상도 버전들은, 디스플레이 프로세서에 의해 판독되고, 표시용 프레임의 뷰 방향 변환된 버전을 발생하는데 사용된다. 또한, 디스플레이 프로세서는, 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터를 구비하고 있고, 해당 데이터를 사용하여, 생성기 처리 유닛에서 발생한 프레임의 상이한 해상도 버전들 중 어느 버전이, 프레임의 뷰 방향 변환된 출력 버전의 각각의 구역들을 발생할 때 사용되어야 하는지를 결정한다.
한층 더 후술하듯이, 이것은, 예를 들면, 증강 또는 가상현실 디스플레이 시스템에서, 보다 효율적이고 효과적으로, 사용하기 위한 포비티드(가변 해상도) 표시용 프레임들을 제공하는 것을 용이하게 하여서, 예를 들면, 메모리 대역폭, 처리 자원, 전력 사용량 등...에 관해서 절약할 수 있다.
디스플레이 상에 표시하기 위한 프레임들을 발생하는 생성기 처리 유닛은, 표시용 프레임들을 발생할 수 있는 데이터 처리 시스템의 임의의 처리 유닛을 구비할 수 있다. 따라서, 예를 들어, 그래픽 프로세서(그래픽 처리 유닛(GPU)), 비디오 프로세서/코덱(비디오 처리 유닛(VPU)), CPU, 및/또는 화상 신호 프로세서(ISP) 등을 포함할 수도 있다. 원할 경우, 디스플레이 상에 표시용 프레임들을 발생 가능한 1보다 많은 생성기 처리 유닛이 있을 수도 있다. 바람직한 실시예에서, 생성기 처리 유닛은 그래픽 프로세서이다.
따라서, 표시를 위해 발생된 프레임들은, 표시하기에 바람직할 수도 있는 임의의 적절하고 원하는 프레임들일 수 있다. 바람직한 실시예에서, 그 프레임들은 게임과 같은 애플리케이션을 위한, 바람직하게는 증강 현실 또는 가상 현실 애플리케이션을 위한, 표시를 위해 발생되는 프레임들이다. 이에 따라, 각 프레임은 표시되는 화상을 포함하는 것이 바람직하다.
각 프레임은, 적절한 데이터(예컨대, 컬러 값들의 세트)가 각각 저장되는 데이터 요소들(샘플링 위치들)(예를 들어, 픽셀들)들의 어레이를 포함할 것이다.
바람직한 실시예에서, 생성기 처리 유닛에서 발생한 프레임들은, 예를 들면, 프레임 버퍼에, 메모리에 기억되고, 여기로부터 그 프레임들은 그 후 디스플레이 프로세서에 의해 처리(하고나서 표시를 위해 디스플레이에 제공)하는 디스플레이 프로세서에 의해 판독된다.
프레임들이 (디스플레이 프로세서에서 처리하기 전에) 기억되는 메모리는, 임의의 적절한 메모리를 포함하여도 되고, 임의의 적절하고 원하는 방식으로 구성되어도 된다. 예를 들면, 그 메모리는, 디스플레이 프로세서를 갖는 온칩인 메모리이어도 되거나, 외부 메모리이어도 된다. 일 실시예에서, 그것은 외부 메모리, 이를테면 전체 데이터 처리 시스템의 메인 메모리에 있어도 된다. 그것은, 이를 위한 전용 메모리이어도 되거나, 그 밖의 데이터에도 사용되는 메모리의 일부이어도 된다.
본 발명에서, 생성기 처리 유닛, 예를 들면 GPU는, 표시되는 프레임의(및 각 프레임의) 복수의 상이한 해상도 버전들의 세트를 발생한다. 발생되는 복수의 상이한 해상도 버전들은, 포비티드 렌더링에 사용될 수 있는 프레임의 버전들의 임의의 적절한 세트일 수 있다(즉, 화상들의 세트는, 동일한 시점으로부터 오지만(뷰들은 동일한 뷰 위치(로부터)를 갖고 동일한 뷰 방향(으로)을 가짐) 상이한 해상도들을 갖는 프레임을 묘사하는 장면의 뷰들을 포함한다).
이에 따라, 프레임의 최고의 해상도가 표시되는 주시 위치에 표시되는 "중심와" 뷰를 포함할 복수의 상이한 해상도 프레임 버전들(화상들)의 세트에 프레임의 최고의 해상도 버전이 있을 것이다. 그리고, 주시점으로부터 예를 들면, 표시중인 출력 프레임의 주변을 향해 떨어져 사용 및 표시되어도 되고, 사용 및 표시되는 것이 바람직한 프레임의 하나 이상의 저해상도 버전들이 있을 것이다.
단지 2개의 상이한 해상도 프레임 버전들, 즉 최고의 해상도 버전과 저해상도 버전이 있을 수도 있다. 또는, 상기 프레임의 최고의 해상도 버전과 2개 이상의 저해상도 버전들로 이루어진, 프레임에 대한 3개 이상의 상이한 해상도 버전들이 준비될 수 있었다.
프레임의 상이한 해상도 버전들은, 주어진, 특별한, 바람직하게는 선택된 스케일 계수에 의해 서로 관련되는 것이 바람직하다. 해상도 버전이 2개보다 많은 경우, "인접한" 해상도 버전들의 각기 각각의 쌍의 버전들은 동일한 스케일 계수(즉, 상이한 해상도 버전간의 일정한 스케일 계수가 사용된다)에 의해 서로 관련되어도 된다(일 실시예에서는 관련된다). 가상 현실 헤드 장착형 디스플레이 등의 일부의 경우에, 최저의 해상도 버전은, 해상도에 있어서 그 밖의 버전들(즉, 일부의 즉시 레벨 해상도 버전들이 예를 들면, 실제로 없을 수도 있다)보다 더 이격될지도 모른다.
스케일 계수는, 바람직하게는, 2의 제곱이긴 하다, 하지만 그 밖의 구성이 원하는 경우 사용될 수 있다. 바람직한 일 실시예에서, 고해상도 버전은, (해상도 계층에 있어서) 그것의 직전의 저해상도 버전의 해상도에 2배이고, 즉 각 버전의 해상도는 2배로(또는, 이에 따라 반배로) 해상도 계층에 있어서 그것의 인접한 버전 또는 버전들에 관련된다.
특히 바람직한 실시예에서, 생성기 처리 유닛은, 밉맵들(의 세트로서)의 형태로 하나의(및 각) 프레임을 제공하도록 구성된다.
전체적으로(및 이미 행해진 것인 바람직한 일 실시예에서) 상기 프레임에 대한 각기 상이한 해상도 버전을 발생하는 것만 가능할 것이지만, 특히 바람직한 실시예에서, 프레임의 상이한 해상도 버전들은, 전체적인 출력 프레임의, 주어진, 특별한 및 바람직하게는, 선택된 구역들(영역들)에 대해서만 발생된다. 달리 말하면, 프레임의 각각의 상이한 해상도 버전들의 발생은, 완전한 프레임(프레임의 영역)의 일부이지 전부가 아닌, 그 각각의 버전들의 적어도 하나(및 바람직하게는 전부)에 대해 발생하는 것을 포함한다.
예를 들면 및 바람직하게는, 최고의 해상도 버전은, 바람직하게는, 해당 최고의(풀(full)) 해상도 화상이 표시될지도 모르는 프레임의 일부(구역(즉, 예를 들면 프레임의 중심에서, 주시점 또는 주시점들에 집중되는 구역이나 구역들)에 대해 최소한(및 바람직하게는 단지) 발생된다. 따라서, 프레임의 최고의 해상도 버전은, 표시되는 (전체적인) 프레임(의 영역)의 단지 일부이지 전부가 아닌 프레임에 대해 발생되는 것이 바람직하다.
이에 대응하게, 프레임의 저해상도 버전이나 버전들은, 주시점 또는 주시점들로부터(예를 들면, 프레임의 중심으로부터) 더 멀리에 있는 그 프레임 구역들에 대해 최소한 발생되는 것이 바람직하지만, 주시점 또는 주시점들에, 또는 주시점 또는 주시점들 근방에 있는(예를 들면, 프레임의 중심에 또는 중심 근방에 있는) 그 프레임 구역들에 대해 발생되지 않아도 되고, 바람직한 실시예에서는 발생되지 않는다.
프레임의 상이한 해상도 버전들이 전체적인 프레임의 일부이지 전부가 아닌 프레임에 대해서만 발생되는 경우, 그 상이한 해상도 구역들은, (프레임의 그들의 커버리지에서) 전혀 중첩되지 않도록(및 일 실시예에서 이것은 사실이다) 또는 그들이 적어도 어느 정도 중첩하도록(및 다른 실시예에서 이것은 사실이다), 배치될 수 있다. 후자의 경우에, 중첩하는 정도는, 예를 들면 출력 프레임을 발생할 때 프레임의 상이한 해상도 버전들로부터 샘플링할 때 사용되는 필터 윈도우(커널)의 사이즈에 기초할 수 있고, 바람직하게는 기초한다.
프레임의 상이한 해상도 버전들이 준비되어(그리고, 메모리에 기억되어) 있다면, 그 프레임의 상이한 해상도들은, 디스플레이 프로세서에 제공되고 디스플레이 프로세서에 의해 처리되어, 표시를 위해 뷰 방향 변환된 출력 프레임을 제공한다.
디스플레이 프로세서에 의해 처리되고 상기 표시를 위한 출력 프레임을 제공하게 조합되는, 프레임의 상이한 해상도 버전들의 수는, 원하는 대로 선택될 수 있다. 바람직한 일 실시예에서, 프레임의 2개(및 2개만) 상이한 해상도 버전들은, 상기 뷰 방향 변환된 출력 프레임을 제공하도록 조합된다. 그 밖의 실시예들에서는, 프레임의 2개보다 많은 상이한 해상도 버전들을 조합한다.
디스플레이 프로세서는, 표시되는 프레임의 상이한 해상도 버전들뿐만 아니라, 생성시 처리 유닛에서 생성한 프레임의 상이한 해상도 버전들(예를 들면, 밉맵 레벨)의 어느 버전이 전체적인 출력 프레임의 구역(영역)마다 사용되어야 하는지를 나타내는 데이터를 구비하고 있고, 이때의 디스플레이 프로세서(한층 더 후술하듯이, 예를 들면 및 바람직하게는, 디스플레이 프로세서의 변환 스테이지 및/또는 합성 스테이지)는 해당 데이터를 사용하여 생성기 처리 유닛에서 발생한 프레임의 상이한 해상도 버전들의 어느 버전을 상기 변환된 출력 프레임의 어느 구역에 대해 사용할지를 결정한다.
이에 따라, 디스플레이 프로세서는, 생성기 처리 유닛에서 생성한 프레임의 상이한 해상도 버전들의 어느 버전이 뷰 방향 변환된 출력 프레임을 제공하기 위해 전체적인 출력 프레임의 구역(영역)마다 사용되어야 하는지를 나타내는 데이터에 따라, 상기 생성기 처리유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들을 조합할 것이다.
따라서, 사용하는 프레임의 상이한 해상도 버전들을 나타내는 데이터는, 프레임의 상이한 해상도 버전들이 어떻게 조합되어야 하는지를 나타내야 하고, 나타내는 것이 바람직하고, 따라서, 바람직하게는, 입력 프레임의 최고의 해상도 버전이 중심와 주시점 또는 주시점들에서(및 주위에서) 사용되어야 하지만, 저해상도 버전이나 버전들은 주시점 또는 주시점들로부터 떨어져(예를 들면, 출력 프레임의 주변을 향해) 사용되어야 하는 것을 나타낸다.
전체적인 출력 프레임에서 임의의 주어진 위치에 대해 상기 프레임의 어느 해상도 버전을 사용해야 하는지의 판정은, 원하는 대로 수행될 수 있다.
예를 들면, 적절한 헤드 추적 또는 시선 추적 정보는 어느 해상도 버전을 출력 프레임의 경우에 표시해야 하는지를 특정하는데 사용될 수 있고, 및/또는, 대신에 표시 시스템의 특성들에 관한 정보도 사용될 수 있다. 예를 들면, 헤드 장착형 디스플레이의 경우에, 출력 프레임의 중심은, 최고의 해상도 버전이 표시되어야 하는 구역으로서 특정되어 나타내어질 수 있고, 이때 출력 프레임의 주변을 향하는 구역들은 저해상도로 표시된다.
일 실시예에서, 프레임의 상이한 해상도 버전들의 단일의 해상도 버전만(예를 들면, 최고의 해상도 버전 또는 저해상도 버전)이 선택되어, 표시되는 출력 프레임에서 임의의 주어진 위치(구역)에서 사용되도록 나타내어진다. 그렇지만, 다른 실시예에서, 복수의 상이한 해상도 버전들은, 적어도 일부의 출력 프레임 구역들에 대해 조합될 수 있다(조합된다).
출력 프레임이 분할되고, 해당 구역에 대해 상기 프레임의 어느 상이한 해상도 버전의 표시가 사용되어야 하는지의 상이한 구역들은, 출력 프레임의 복수의 구역들로의 임의의 적절하고 원하는 세부분할을 포함할 수 있다. 그 구역들의 사이즈와 구성은 모두 같은 것이 바람직하고, 바람직하게는 직사각형, 바람직하게는 정사각형이다. 각 구역은 출력 프레임에서 단일의 데이터 요소(픽셀)에 해당할 수 있지만, 특히 바람직한 실시예에서, 각 구역은 바람직하게는 직사각형에 대응하고, 바람직하게는, 정사각형, 출력 프레임에서 복수의 데이터 요소들(픽셀들)의 블록에 대응한다.
사용하는 프레임의 상이한 해상도 버전들을 나타내는 데이터는, 임의의 적절하고 원하는 형태를 취할 수 있고, 임의의 적절하고 원하는 방식으로 사용되는 상이한 해상도 버전들을 나타낼 수 있다.
바람직한 일 실시예에서, 이 데이터는, 표시되는 출력 프레임(의 영역)을 표현하는 2차원 어레이의 형태이고, 이때의 상기 어레이내의 각각의 데이터 요소 위치는, 상기 프레임의 어느 해상도 버전을 출력 프레임내의 해당 구역에 대해 사용할지를 나타낸다. 이러한 어레이는, 예를 들면, 출력 프레임의 구역마다 상기 프레임의 어느 해상도 버전을 사용할지를 기술하는 2D 텍스처, 또는 "밀도 맵"의 형태일 수 있다.
이러한 경우에, 상기 "밀도 맵"은 출력 프레임의 영역을 가로질러 그래뉴래러티(해상도)(구역들로의 세부분할)의 임의의 원하는 레벨에서 구역마다 사용하는 해상도를 나타낼 수도 있다. 따라서, 각 "밀도 맵" 데이터 요소는, 바람직하게는, 발생되는 출력 프레임에서 복수의 데이터 요소들(픽셀들)의 주어진 블록을 포함하는 하나의 구역에 대응한다.
특히 바람직한 실시예에서, 2차원 어레이(밀도 텍스처/맵)의 특별한 사이즈는, 이를테면 64×64, 100×100, 128×128 또는 256×256 데이터 요소 위치들을 갖고, 이때의 상기 어레이에서의 각 데이터 요소 위치는 출력 프레임의 영역의 대응한 구역(블록)에 매핑한다.
이 구성들에서, 출력 프레임의 주어진 구역에 대해 사용하는 해상도 버전(예를 들면, 밉맵 레벨)은, 임의의 적절하고 원하는 방식으로 나타내어질 수 있다. 예를 들면, 상기 데이터는, (예를 들면, 정수값을 사용하여) 하나의(및 각) 프레임 구역에 대해 사용하는 상이한 해상도 버전들의 단일의 버전을 나타낼 수 있거나, 그 사용하는 버전들은 (소수값으로 변환될 수 있는) 소수값들로서 또는 그래디언트로서 나타내어질 수 있다(이때 비정수 소수값(레벨)은 2개의 상이한 해상도 레벨들이 해당 출력 프레임 구역에 대해 조합되어야 하는 것을 나타냄). 물론, 그 밖의 구성도 가능할 것이다.
또, 또는 대신에, 사용하는 프레임의 상이한 해상도 버전들을 나타내는 데이터는, 예를 들면, 룩업 테이블에 의해, 또는 기능적 표현법의 일부의 형태에 의해 그 밖의 형태로, 또는, 최고의 해상도 버전(레벨)이 사용되어야 하는 영역 구역(들)을 정의하는 바운딩 박스(예를 들면, 2D 축 정렬 바운딩 박스)의 형태로, 제공될 수 있다(이때의 그 밖의 모든 구역들은, 프레임의 저해상도(레벨) 버전으로부터 발생된다)(일 실시예에서, 이것은 사실이다). 후자의 구성은, 프레임의 단지 2개의 상이한 해상도 버전들만이 발생되어 사용되는 경우에 특히 적용 가능할 수도 있다.
데이터(예를 들면, 밀도 맵/텍스처)를 나타내는 해상도 레벨은, 압축 형태 및/또는 저해상도 형태로 디스플레이 프로세서에 제공될 수 있고, 이때의 상기 디스플레이 프로세서는 먼저 압축해제/업스케일링을 하거나 그렇지 않은 경우는 해당 데이터(예를 들면, 밀도 맵)를 디스플레이 프로세서에서 사용하는데 적절한 형태로 변환한 후, 해당 정보를 사용하여 어느 상이한 해상도 버전들을 사용할지를 결정한다.
다른 바람직한 실시예에서, 뷰 방향 변환된 출력 프레임의 구역(영역)마다 사용되는 상기 프레임의 상이한 해상도 버전들을 나타내는 데이터는, 예를 들면, 및 바람직하게는, "블렌딩" 파라미터 값들, 이를테면 및 바람직하게는, 상기 프레임의 상이한 해상도 버전들과 관련된, 투명도(알파)값들 형태로 상기 프레임 상이한 해상도 버전들 자체(의 일부로서)를 구비하고 있다. 그 후, 디스플레이 프로세서는, 상기, 예를 들면 투명도(알파), 값들을 사용하여 상기 프레임의 상이한 해상도 버전들을 원하는 방식으로 합성(블렌드)할 수 있다.
출력 프레임을 발생할 때와 그것을 나타내는 데이터의 발생에서 어느 해상도 버전을 사용할지의 결정은, 상기 데이터 처리 시스템의 임의의 적절하고 원하는 부품이나 프로세서에 의해 행해질 수 있다. 예를 들면, 그것을 나타내는 데이터, 이를테면 밀도 맵/텍스처의 발생과, 출력 프레임에서 어느 해상도 버전을 사용할지의 결정은, 프레임들의 표시를 요구중인 애플리케이션에 의해, 예를 들면, 프레임들(화상들)이 표시될 렌즈계의 특성들과, (상술한 것처럼) 유저 헤드 추적 정보 및/또는 시선 추적 정보와의 하나 이상 및 바람직하게는 양쪽에 근거하여, 행해질 수 있고, 바람직하게는 행해진다.
예를 들면, 표시(렌즈) 시스템에 근거한 데이터의 1세트와, 헤드/시선 추적에 근거한 데이터의 1세트로 이루어진 데이터의 2세트, 및/또는 해당 데이터의 "조합"은, 원하는 경우 발생될 수 있다.
바람직한 일 실시예에서, 애플리케이션(예를 들면)에 의해 발생된 출력 프레임에서 어느 해상도 버전을 사용할지를 나타내는 데이터는, 사용하기 위해 디스플레이 프로세서에 제공되기 전에, 사전 처리되어 특별한, 바람직하게는 선택된, 바람직하게는 (예를 들면, 해상도가 제한된) 소정의 포맷으로 제공한다.
투명도(알파)값들을 사용하는 경우에, 상술한 것처럼 "밀도 맵" 또는 유사한 데이터 구조는, 우선 발생되고 나서, 바람직하게는 별도의 처리 패스(pass)로, 예를 들면, 상기 프레임의 상이한 해상도 버전들을 발생중인 소프트웨어로 및/또는 생성기 처리 유닛(예: GPU)상에서, 대응한 투명도 값들로 변환되어도 된다. 또는, 투명도(알파) 값들은, 원하는 경우, 직접 발생될 수 있다. 또한, 그 밖의 구성도 가능할 것이다.
디스플레이 프로세서는, 데이터 처리 시스템의 생성기 처리 유닛에서 발생한 프레임들을 표시를 위해 디스플레이에 제공 가능한 임의의 적절하고 원하는 디스플레이 프로세서를 포함할 수 있다. 따라서, 디스플레이 프로세서는, 메모리로부터 프레임들의 데이터를 판독하고, 그 프레임들에 관해 적절한 "표시 처리"를 행하고 나서, 처리된 프레임들을 표시를 위해 디스플레이에 제공 가능해야 한다. 바람직한 실시예에서, 디스플레이 프로세서는, 디스플레이에 대한 "직접" 접속을 거쳐 표시를 위해 디스플레이에 상기 프레임들을 제공하고, 즉, 예를 들면, 프레임들을 메모리를 거쳐 디스플레이에 전달하는 대신에, 프레임들(그 프레임들에 대한 데이터)을 디스플레이에 스트리밍할 수 있다. 디스플레이 프로세서는, 상기 디스플레이에 유선 또는 무선 접속하여도 된다.
디스플레이 프로세서는, 입력 프레임들의 데이터를 해당 데이터가 기억되는 메모리로부터 판독 가능한 입력 스테이지를 구비한다. 바람직한 실시예에서, 입력 스테이지는, 바람직하게는 판독 제어기, 이를테면, 입력 프레임들이 기억되는 메모리로부터 입력 프레임들의 데이터를 판독하도록 구성된(판독 가능한) 직접 메모리 액세스(DMA) 판독 제어기를 구비하는, 메모리 판독 서브시스템을 구비한다.
특히 바람직한 실시예에서, 입력 스테이지는, 디스플레이 프로세서에 의해 처리되는 입력 프레임들의 데이터를 메모리로부터 디스플레이 프로세서의 로컬 버퍼나 버퍼들에 페치(fetch) 가능하다(따라서, 디스플레이 프로세서는, 바람직하게는, 디스플레이 프로세서에 의해 처리되는 입력 프레임이나 프레임들의 데이터를 기억 가능한 하나 이상의 로컬 버퍼들을 구비한다).
디스플레이 프로세서는, 입력 프레임들의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 발생 가능한(즉, 입력 프레임들의 뷰 방향 변환된 버전들을 제공하기 위해 뷰 방향에 근거하여 입력 스테이지에서 판독한 입력 프레임들을 변환 가능한) 적어도 하나의 변환 스테이지를 구비한다. 상기 변환 스테이지는, 바람직하게는, 디스플레이 프로세서의 로컬 버퍼나 버퍼들로부터 입력 프레임들을 처리한다.
디스플레이 프로세서는, 단일의 변환 스테이지를 구비하여도 되지만, 특히 바람직한 실시예에서는, 복수의 변환 스테이지들을 구비한다.
가장 바람직하게는, 디스플레이 프로세서는 복수의 디스플레이 처리 파이프라인들을 구비하고, 각 파이프라인은 표시를 위해 하나 이상의 입력 프레임들을 처리 가능하고, 각 파이프라인은 그 자신의 각각의 변환 스테이지를 구비한다.
바람직한 실시예에서, 각 디스플레이 처리 파이프라인은, 바람직하게는, 디스플레이 처리 파이프라인 시퀀스에서 변환 스테이지가 후속하는 자신의 각각의 층 처리 파이프라인도 구비한다. 상기 층 처리 파이프라인들은, 예를 들면, 색 관리 기능들 등을 수행 가능하여도 된다.
디스플레이 프로세서는, 바람직하게는, 하나 또는 2개의 상기와 같은 디스플레이 처리 파이프라인들을 구비한다(일 실시예에서는, 2개(및 2개만)의 상기와 같은 디스플레이 처리 파이프라인들을 구비한다).
특히 바람직한 실시예에서, 디스플레이 프로세서는, 그 중에서도, 표시를 위해 전체적인 뷰 방향 변환된 출력 프레임을 제공하도록, 상이한 변환 스테이지들에 의해, 바람직하게는 디스플레이 프로세서의 상이한 디스플레이 처리 파이프라인들에 의해 발생된 뷰 방향 변환된 프레임들을 합성 가능한 합성 스테이지를 구비한다.
디스플레이 프로세서의 출력 스테이지는, 표시용 출력 프레임을 디스플레이에 제공 가능한, 예를 들면, 표시용 출력 프레임이 디스플레이상에 표시되게 할 수 있는, 임의의 적절한 출력 스테이지이어도 된다. 출력 스테이지는, 바람직하게는, 표시되는 출력 프레임에 관해 임의의 추가의 디스플레이 처리 동작들을 수행하는 처리 파이프라인을 구비한다. 출력 스테이지는, 바람직하게는, 표시를 위해, 적절한 타이밍 제어 기능성을 구비한다(예를 들면, 그것은, 수평 및 수직 블랭킹 기간이 적절한 상기 디스플레이에 픽셀 데이터를 송신하도록 구성된다).
출력 스테이지는, 예를 들면 및 바람직하게는 표시를 위한 데이터 요소들(픽셀들)의 스트림으로서, 출력 프레임을 표시를 위해 디스플레이에 직접 송신하는 것이 바람직하다. 하나의 프레임에 대한 데이터는, 원하는 대로, 유선 또는 무선 접속을 거쳐 디스플레이에 제공되어도 된다.
그 후, 디스플레이는, 수신된 프레임을 (예를 들면 및 바람직하게는, 당해 상기 디스플레이에 대한 통상의 동작 방식으로) 표시하도록 동작할 것이다. 따라서, 상기 프레임에 대한 데이터 요소들(픽셀들)은, 그 프레임을 표시하기 위해, 디스플레이의 패널상에 적절하게 스캔될 것이다.
디스플레이 프로세서의 각종 스테이지들은, 원하는 대로, 예를 들면, 하나 이상의 고정된 기능 회로들(하드웨어)(즉, 변경될 수 없는 하나 이상의 기능들 전용이다) 형태로, 예를 들면 원하는 동작을 수행하도록 프로그래밍될 수 있는 프로그램 가능한 회로들에 의해 하나 이상의 프로그램 가능한 처리 스테이지들로서 구현되어도 된다. 고정된 기능과 프로그램 가능한 회로들의 양쪽이 존재하여도 된다.
디스플레이 프로세서의 각종 스테이지들의 하나 이상은, 서로에게 별도의 회로 소자들로서 제공되어도 된다. 추가로 또는 이와는 달리, 상기 스테이지들의 일부 또는 전부는 적어도 부분적으로 공유회로들로 형성되어도 된다.
디스플레이 프로세서의 하나의( 및 각) 변환 스테이지는, 임의의 적절하고 원하는 방식으로 구현되어도 된다. 그것은, 바람직하게는, 적절한 처리 회로소자(하나의 적절한 처리회로)에 의해 제공된다. 그것은, 예를 들면, 원하는 방식으로 동작하도록 프로그래밍될 수 있는 적절한 프로그램 가능한 처리 회로소자에 의해 제공되어도 되거나, 요구된 처리 동작(들)을 수행하도록 구성되는 고정된 기능 처리 회로소자로서 제공되어도 된다. 고정된 기능 회로소자를 사용하여 변환 동작을 수행하는 경우, 그 고정된 기능 회로 소자는, 바람직하게는, 고정된 기능 회로소자(회로)의 동작의 구성의 일부 변형을 용이하게 하도록, 상기 회로소자가 수행하는 동작을 위한 하나 이상의 제어 파라미터들을 다르게 하는 것이 가능하는 등, 사용중 설정 가능성이 제한되게 배치된다.
상기(및 각) 변환 스테이지는, 뷰 방향 변환된 출력 프레임을 발생하도록(즉, 뷰 방향에 근거하여(예를 들면 및 바람직하게는, 수신된 뷰 방향 데이터에 근거하여) 표시되는 프레임을 변환시키도록) 동작한다.
표시되는 프레임이 기초하여 변환되는 뷰 방향은, 임의의 적절하고 원하는 뷰 방향일 수 있다. 바람직한 실시예에서, 뷰 방향은, 프레임이 마치 원하는 뷰 방향으로부터 보여지는 것처럼 표시되는(변환되는 프레임이 이에 대해 표시되는) 원하는 뷰 방향을 표현하고 원하는 뷰 방향에 대응한다.
따라서, 뷰 방향 변환은, 바람직하게는, 프레임을 변환하도록, 마치 원하는 뷰 방향으로부터 보여지는 것처럼 프레임의 표현법을 제공하는 것이다. 특히 바람직한 실시예에서, 변환 스테이지는, 원하는 뷰 방향에 근거하여 입력 프레임의 투영을 발생하도록 동작한다.
디스플레이 프로세서의 변환 스테이지(또는 스테이지들)는, 바람직하게는, 원하는 예측 뷰 방향에 근거하여 표시용 하나의(및 각) 프레임을 변환시킬 수 있다.
하나의 프레임이 기초하여 변환되는 예측 뷰 방향은, 예측 뷰 위치 및/또는 예측 뷰 방향을 포함할 수 있다. 바람직한 실시예에서, 그것은, 예측 뷰 위치와 예측 뷰 방향의 양쪽을 포함한다.
예측 뷰 방향은, 바람직하게는, 프레임의 실제의 표시동안에 유저에 대한 뷰 방향을 예측하기 위해, 프레임이 표시될 시간에 대한 정보와 함께, 샘플링된 뷰 방향(예: 헤드 위치 및/또는 방향)에 근거하는 것이 바람직하다.
따라서, 바람직한 실시예에서, 본 발명은 주기적으로 뷰 방향 데이터(예를 들면, 헤드 포즈 데이터)를 (예를 들면 및 바람직하게는, 디스플레이가 일부인 헤드 장착형 디스플레이의 적절한 센서들에 의해) 샘플링하는 것과, 하나의 프레임을 변환할 때 그 샘플링된 뷰 방향 데이터를 사용하여 표시용 프레임의 뷰 방향 변환된 버전을 제공하는 것을 포함한다(그리고, 데이터 처리 시스템은, 주기적으로 뷰 방향 데이터(예를 들면, 헤드 포즈 데이터)를 (예를 들면 및 바람직하게는, 디스플레이가 일부인 헤드 장착형 디스플레이의 적절한 센서들에 의해) 샘플링하고, 하나의 프레임을 변환할 때 그 샘플링된 뷰 방향 데이터를 사용하여 표시용 프레임의 뷰 방향 변환된 버전을 제공하도록 구성되는 것이 적절하다.).
이에 관해서 샘플링되어 사용된 헤드 포즈 추적 데이터는, 임의의 적절하고 원하는 헤드 포즈 추적 데이터를 포함할 수 있다. 바람직한 실시예에서, 이 헤드 포즈 추적 데이터는, 뷰 방향 및/또는 위치(및 바람직하게는 양쪽)를 나타내고, 바람직하게는 헤드 회전과 헤드 병진 이동의 하나 이상 및 바람직하게는 전부를 추적하는, 데이터다.
헤드 포즈 추적 데이터는, 원하는 대로 결정될 수 있다. 예를 들면, 이 헤드 포즈 추적 데이터는, 데이터 처리 시스템의 적절한 센서, 이를테면 상기 디스플레이와 관련된 관성 측정 유닛(IMU), 추적 시스템 또는 카메라에 의해 발생될 수 있다. 일반적으로, 감지된 헤드 포즈 데이터는, 헤드 포즈(바람직하게는, 회전 및 위치) 데이터의 저지연성, 고정밀 소스에 대한 임의의 포인트에서 질의될 수 있는 적절한 시스템에 의해 제공될 수 있고, 바람직하게는 제공된다. 헤드 포즈 추적 시스템은, 원하는 대로, 회전만, 또는 회전 및 위치, 또는 회전 및 위치 및 속도 등을 추적할 수 있었다.
특히 바람직한 실시예에서, 생성기 처리 유닛(예: GPU)은, 현재 감지된 뷰 방향에 근거하여 표시용 프레임을 발생하도록 구성되고, 이때의 변환 스테이지(들)는 감지된 뷰 방향에 근거하여 발생되는 프레임을, 그 프레임이 표시될 때의 시간에 근거한 새롭고 예측된 뷰 방향으로 변환한다.
감지된 헤드 포즈 데이터를 사용하여 상기 예측된 뷰 방향의 실제의 결정은, 데이터 처리 시스템의 임의의 적절하고 원하는 부품이나 요소로 수행될 수 있다. 따라서, 그것은, 예를 들면, 데이터 처리 시스템의, 적절한 프로세서, 이를테면 CPU, 또는 그 밖의 프로세서에서 발생되어도 된다. 이것은, 바람직하게는, (예를 들면, 및 바람직하게는, 데이터 처리 시스템의 CPU(예를 들면, 호스트 프로세서)상에서 실행하는) 상기 디스플레이 프로세서에 대한 드라이버 동작의 일부로서 행해진다.
뷰 방향들에 근거한 변환들은, 바람직하게는 변환 매트릭스들을 사용하여 수행된다. 이 변환 매트릭스들은, 프레임이 이에 대해 발생되어 있는 뷰 방향으로부터 표시되는 원하는(바람직하게는 예측된) 뷰 방향으로 프레임을 재투영하도록 적절한 변환을 수행할 수 있을 임의의 적절하고 원하는 형태를 취할 수 있다. 따라서, 예를 들면, 상기 매트릭스들은, 원근법 화상들 및 규칙적 2D화상들을 호모그래피를 거쳐 가상 원근법 카메라에 회전적 재투영을 수행해야 하고, 바람직하게는 수행한다.
상기(및 각) 변환 스테이지는, 바람직하게는, 샘플링 위치(예를 들면, 픽셀) 단위로 출력된 뷰 방향 변환된 프레임을, 즉, 뷰 방향 변환된 프레임 샘플링 위치들(픽셀들)(샘플링 위치(픽셀) 값들)의 스트림으로서, 생성하도록 동작한다. 이것은, 생성기 처리 유닛에서 발생한 프레임의 상이한 해상도 버전들의 하나 또는 하나보다 많은 버전에서 샘플링 위치들(예: 픽셀들)에 대한 데이터 값들로부터 상기 출력된 뷰 방향 변환된 프레임에서의 각각의 샘플링 위치(예: 픽셀)에 대한 데이터 값을 발생함으로써, 상기 출력된 뷰 방향 변환된 프레임을 상기 변환 스테이지에 의해 발생하여서, 행해진다.
특히 바람직한 실시예에서, 변환 스테이지는, 출력 뷰 방향 변환된 프레임 데이터 요소(픽셀) 위치에 대해, 뷰 방향 변환된 출력 프레임에서의 해당 데이터 요소(픽셀) 위치에 대한 데이터가 취해져야 하는 생성기 처리 유닛에서 발생한 프레임에서의 대응한 위치(좌표)를 결정함으로써 출력 뷰 방향 변환된 프레임 데이터 요소(픽셀)를 발생한다.
달리 말하면, 변환 스테이지는, 바람직하게는, 이 변환 스테이지가 적용하는 변환에 의해 뷰 방향 변환된 출력 프레임에서의 데이터 요소(픽셀) 위치에 이동될 처리기 생성 유닛에서 발생한 프레임에서의 위치를 결정한다.
이것은, 발생하는 것이 요망되는 뷰 방향 변환된 프레임에서의 복수의, 및 바람직하게는 각, 데이터 요소(픽셀) 위치에 대해 행해지는 것이 바람직하다.
변환 스테이지는, 임의의 적절하고 원하는 방식으로 주어진 뷰 방향 변환된 출력 프레임 데이터 요소(예를 들면, 픽셀)에 대해, 입력 프레임 위치가 샘플링되어야 하는지를 결정할 수 있다.
특히 바람직한 실시예에서, 변환 스테이지는, 출력 뷰 방향 변환된 프레임 데이터 요소(픽셀) 위치 x,y에 대해, 변환 동작을 적용하는 뷰 방향 변환과, 바람직하게는, 렌즈 왜곡 보정과 색수차 보정의 하나 이상, 바람직하게는 렌즈 왜곡 보정과 색수차 보정의 양쪽에 근거하여, 뷰 방향 변환된 출력 프레임에서의 데이터 요소(픽셀) 위치에 대한 데이터가 취해져야 하는(취해지는) 대응한 입력 프레임 위치를 결정한다.
특히 바람직한 실시예에서, 변환 스테이지는, 출력 뷰 방향 변환된 프레임 데이터 요소(픽셀) 위치 x,y에 대해, 변환 스테이지가 고려하도록 구성되는 렌즈 왜곡 및 색수차와, 적용된 뷰 방향 변환에 근거하여, 샘플링되는 컬러 평면마다 하나인, 3개의 대응한 입력 프레임 위치들(좌표들)((xr, yr)(xg, yg)(xb, yb))의 세트를 결정한다.
변환 스테이지에서 발생하는 출력 뷰 방향 변환된 프레임에서의 데이터 요소(픽셀) 위치에 대해 사용하는 데이터를 갖는 입력 프레임에서의 위치나 위치들이 결정되어 있다면, 생성기 처리 유닛에서 발생한 표시되는 (입력) 프레임의 상이한 해상도 버전들의 하나(또는 그 이상)는, 변환 스테이지에서 발생중인 출력 뷰 방향 변환된 프레임에서 데이터 요소(픽셀)(샘플링 위치)에 사용되는 데이터 값들을 제공하도록, 결정된 위치나 위치들에서 샘플링될 수 있고, 바람직하게는 샘플링된다.
이 샘플링은, 원하는 대로, 예를 들면, 이중선형 필터링 또는 삼중선형 필터링(보간)을 사용하여 수행될 수 있다. 가장 바람직하게는, 이중선형 필터링(보간)은 프레임의 단일 해상도 버전내에서 샘플링하는데 사용되고, 삼중선형 필터링(보간)은 프레임의 2개의 상이한 해상도 버전들이 요구될 때 이 2개의 상이한 해상도 버전들을 샘플링하여 조합하는데 사용된다. 이를 위해, 변환 스테이지는, 바람직하게는, 적절한 필터링(보간)회로(들)를 구비한다.
바람직한 일 실시예에서, 전체적인 뷰 방향 변환된 출력 프레임을 제공하기 위해 조합하여 사용되는 프레임의 상이한 해상도 버전들의 각각은, 각각 뷰 방향 변환이 실시되고 나서, 프레임의 복수의 뷰 방향 변환된 상이한 해상도 버전들은 표시를 위해 뷰 방향 변환된 출력 프레임을 제공하도록 조합된다.
이 경우에, 뷰 방향 변환되어 표시를 위한 전체적인 출력 프레임을 제공하는데 사용되는 프레임의 각기 상이한 해상도 버전은, 바람직하게는, 디스플레이 프로세서의 별도의(상이한) 변환 스테이지에 의해 뷰 방향 변환된다. 가장 바람직하게는, 프레임의 각기 상이한 해상도 버전은, 디스플레이 프로세서의 각각의 상이한 디스플레이 처리 파이프라인에 의해 처리된다(그리고 뷰 방향 변환된다).
그 후, 프레임의 복수의 뷰 방향 변환된 상이한 해상도 버전들은, 바람직하게는, 출력 프레임에 대해 표시되는 전체적인 출력 뷰 방향 변환된 프레임을 어디에 제공할지를 프레임의 어느 해상도 버전을 사용할지를 나타내는 데이터에 근거하여, 디스플레이 프로세서의 합성 스테이지(합성 유닛)에서 (적절하게) 조합(합성)된다.
따라서, 바람직한 일 실시예에서, 디스플레이 프로세서는,
생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 각각에 대해, 표시되는 프레임의 해당 해상도 버전의 각각의 뷰 방향 변환된 버전을 발생하고;
표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터에 근거하여 프레임의 복수의 상이한 해상도 버전들의 복수의 뷰 방향 변환된 버전들을 조합하여, 프레임의 복수의 상이한 해상도 버전들의 뷰 방향 변환된 버전들의 조합을 포함하는 표시용 프레임의 뷰 방향 변환된 출력 버전을 제공함으로써,
프레임의 출력 버전의 구역마다 프레임의 어느 해상도 버전이 사용될지를 나타내는 데이터에 근거하여 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생한다(그리고, 이에 대응하게, 디스플레이 프로세서는,
생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 각각에 대해, 표시되는 프레임의 해당 해상도 버전의 각각의 뷰 방향 변환된 버전을 발생하고;
표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터에 근거하여 프레임의 복수의 상이한 해상도 버전들의 복수의 뷰 방향 변환된 버전들을 조합하여, 프레임의 복수의 상이한 해상도 버전들의 뷰 방향 변환된 버전들의 조합을 포함하는 표시용 프레임의 뷰 방향 변환된 출력 버전을 제공하도록, 구성된다).
이에 대응하게, 바람직한 실시예에서, 디스플레이 프로세서는, 입력 스테이지에서 판독한 입력 프레임의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 각기 발생 가능한 복수의 변환 스테이지들과, 변환 스테이지들에서 발생한 뷰 방향 변환된 출력 프레임들을 조합 가능한 합성 스테이지를 구비하고; 상기 방법은:
디스플레이 프로세서의 복수의 변환 스테이지들의 각각에 의해, 뷰 방향에 근거하여 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들의 상이한 버전을 변환시켜, 프레임의 해당 각각의 해상도 버전의 뷰 방향 변환된 버전을 제공하는 단계; 및
합성 스테이지에 의해, 표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터에 근거하여 변환 스테이지들에서 발생한 프레임의 상이한 해상도 버전들의 복수의 뷰 방향 변환된 버전들을 합성하여, 프레임의 복수의 상이한 해상도 버전들의 뷰 방향 변환된 버전들의 조합을 포함하는 표시용 프레임의 뷰 방향 변환된 출력 버전을 제공하는 단계를 포함한다(그리고, 디스플레이 프로세서는,
디스플레이 프로세서의 복수의 변환 스테이지들의 각각에 의해, 뷰 방향에 근거하여 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들의 상이한 버전을 변환시켜, 프레임의 해당 각각의 해상도 버전의 뷰 방향 변환된 버전을 제공하고;
합성 스테이지에 의해, 표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터에 근거하여 변환 스테이지들에서 발생한 프레임의 상이한 해상도 버전들의 복수의 뷰 방향 변환된 버전들을 합성하여, 프레임의 복수의 상이한 해상도 버전들의 뷰 방향 변환된 버전들의 조합을 포함하는 표시용 프레임의 뷰 방향 변환된 출력 버전을 제공하도록 구성된다).
이 경우에, 프레임의 주어진 상이한 해상도 버전의 뷰 방향 변환을 행할 때, 뷰 방향 변환은, 바람직하게는, 상술한 방식으로 수행될 것이고, 이때의 입력 프레임에서의 결정된 위치(들)는 당해 프레임의 해상도 버전에서 (예를 들면, 및 바람직하게는, 이중선형 필터링을 사용하여) 샘플링되어, 당해 출력 프레임 위치(픽셀)에 대한 대응한 출력 뷰 방향 변환된 프레임 데이터 값(들)을 얻는다.
이 경우에, 출력 프레임에서 프레임의 어느 해상도 버전을 사용할지를 나타내는 데이터는, 바람직하게는 각각의 블렌딩 파라미터, 예를 들면 및 바람직하게는, 디스플레이 프로세서의 합성 스테이지가 프레임의 뷰 방향 변환된 상이한 해상도 버전들을 함께 블렌드(조합)하여 전체적인 출력 뷰 방향 변환된 출력 프레임을 제공하는데 사용할 수 있는, 투명도(알파), 프레임의 상이한 해상도 버전들(의 데이터 요소들)과 관련된 값들의 형태로 되어 있다.
이 실시예들에서, 프레임의 임의의 저해상도 버전(즉, 사용중인 프레임의 최고의 해상도 버전이외의 버전)은, 바람직하게는, 먼저, 사용중인 프레임의 최고의 해상도 버전의 해상도로 업스케일된 후 뷰 방향 변환이 실시된다. 이것은, 전체적인 출력 프레임을 제공하기 위해 상기 프레임의 상이한 해상도 버전들을 보다 간단하게 조합하는 것을 용이하게 한다.
업스케일링은 프로세스의 임의의 원하는 스테이지에서 행해질 수 있지만, 특히 바람직한 실시예에서, 또한, 당해 변환 스테이지는, 뷰 방향 변환되는 프레임의 최고의 해상도 버전보다 낮은 해상도를 갖는 뷰 방향 변환되는 프레임의 임의의 버전을, 출력 프레임을 발생할 때 뷰 방향 변환되는 프레임의 최고의 해상도 버전의 해상도로 업스케일하고 나서(업스케일하도록 동작하고 나서), 프레임의 저해상도 버전의 업스케일된 버전을 사용하여 프레임의 저해상도 버전의 뷰 방향 변환된 버전을 발생할 수 있다.
그리고, 이것은, 프레임의 각 뷰 방향 변환된 "상이한" 해상도 버전은, 사용중인 동일한(최고의) 해상도로 변환 스테이지에 의해 출력될 것이라는 것을 의미할 것이다. 그리고, 이것은, 전체적인 출력 프레임을 제공하기 위해 프레임의 뷰 방향 변환된 상이한 해상도 버전들을 보다 간단히 조합하는 것(합성하는 것)을 용이하게 할 것이다.
또 하나의 바람직한 실시예에서, 디스플레이 프로세서의 단일(및 바람직하게는 각) 변환 스테이지는, 프레임의 복수의 상이한 해상도 버전들의 조합으로부터 표시를 위한 뷰 방향 변환된 출력 프레임을 발생할 수 있다(발생한다)(그리고, 이것을 행하는데 사용된다). 이 경우에, 그 후, 단일의 변환 스테이지는, 출력 프레임을 발생하는데 요구되는 프레임의 복수의 상이한 해상도 버전들(의 전부)을 처리할 수 있을 것이고, 바람직하게는 처리한다(그리고 사용한다).
이 경우에, 디스플레이 프로세서가 복수의 변환 스테이지들(예를 들면, 각각의 변환 스테이지를 각각 포함하는 복수의 디스플레이 처리 파이프라인)을 구비하는 경우, 나머지 각 변환 스테이지(디스플레이 처리 파이프라인)는 유휴상태로 있을 수 있거나, 바람직하게는, 상이한 출력 프레임을 병렬로 처리하는데 사용될 수 있다(사용된다). 예를 들면, 헤드 장착형 디스플레이, 및/또는 가상현실 또는 증강현실 디스플레이에 출력 프레임을 표시하는데 사용되는 한 쌍의 좌안 및 우안의 프레임들(화상들)의 좌안 프레임(화상)을 처리하는데는 하나의 변환 스테이지(하나의 디스플레이 처리 파이프라인)를 사용할 수 있고, 우안 프레임(화상)을 처리하는데는 또 하나의 변환 스테이지(디스플레이 처리 파이프라인)를 사용할 수 있다.
이 경우에, 표시를 위해 뷰 방향 변환된 출력 프레임은, 출력 프레임의 어느 구역들에 대해 어느 해상도 버전을 사용할지를 나타내는 데이터에 근거하여, 생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 세트로부터 적절하게 샘플링하는 변환 스테이지에 의해 발생될 것이고, 바람직하게는 발생된다.
따라서, 변환 스테이지는, 바람직하게는, 출력 뷰 방향 변환된 프레임에서 데이터 요소(샘플링 위치)에 대한 데이터 값들을 제공하기 위해 샘플링되는 입력 프레임 위치(들)의 세트를 결정할 것이지만, 그 변환 스테이지는, 바람직하게는, 생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 어느 버전이나 버전들이 입력 프레임 위치(들)의 해당 세트에서 상기 데이터를 샘플링할지를 결정하는데 발생중인 프레임의 뷰 방향 변환된 출력 버전의 구역마다 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터도 사용할 것이다.
그러므로, 이 경우에, 변환 스테이지는, 프레임의 복수의 상이한 해상도 버전들의 어느 버전이나 버전들이 발생되는 뷰 방향 변환된 출력 프레임 위치에 대해 사용되어야 하는지를 결정하기 위해 프레임의 뷰 방향 변환된 출력 버전의 구역마다 상기 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터를 사용하고 나서, 그 결정된 위치(들)에서 입력 프레임의 그렇게 해서 결정된 상이한 해상도 버전이나 버전들을 샘플링하여 당해 출력 뷰 방향 변환된 프레임 데이터 요소(픽셀)를 발생할 것이다.
따라서, 또 하나의 바람직한 실시예에서, 디스플레이 프로세서는,
디스플레이 프로세서의 변환 스테이지에 의해, 발생되는 프레임의 뷰 방향 변환된 출력 버전에서 복수의 데이터 요소들의 각각에 대해;
출력 뷰 방향 변환된 프레임에서의 데이터 요소에 대해 데이터 값(들)을 제공하기 위해 샘플링되는 하나 이상의 입력 프레임 위치(들)의 세트를 결정하고;
생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 발생되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터를 사용하여, 생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 어느 버전이나 버전들을, 하나 이상의 입력 프레임 위치(들)의 결정된 세트에서 샘플링할지를 결정하고 나서;
출력 뷰 방향 변환된 프레임 데이터 요소의 데이터 값(들)을 제공하기 위해 상기 결정된 위치(들)에서의 입력 프레임의 그렇게 해서 결정된 상이한 해상도 버전이나 버전들을 샘플링함으로써,
프레임의 어느 해상도 버전이 프레임의 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생한다(그리고, 이에 대응하게, 디스플레이 프로세서는,
디스플레이 프로세서의 변환 스테이지에 의해, 발생되는 프레임의 뷰 방향 변환된 출력 버전에서 복수의 데이터 요소들의 각각에 대해;
출력 뷰 방향 변환된 프레임에서의 데이터 요소에 대해 데이터 값(들)을 제공하기 위해 샘플링되는 하나 이상의 입력 프레임 위치(들)의 세트를 결정하고;
생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 발생되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터를 사용하여, 생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 어느 버전이나 버전들을, 하나 이상의 입력 프레임 위치(들)의 결정된 세트에서 샘플링할지를 결정하고 나서;
출력 뷰 방향 변환된 프레임 데이터 요소의 데이터 값(들)을 제공하기 위해 상기 결정된 위치(들)에서의 입력 프레임의 그렇게 해서 결정된 상이한 해상도 버전이나 버전들을 샘플링하도록 구성된다).
이에 대응하게, 바람직한 실시예에서, 디스플레이 프로세서의 하나의(및 바람직하게는 각) 변환 스테이지는,
발생되는 프레임의 뷰 방향 변환된 출력 버전에서 복수의 데이터 요소들의 각각에 대해, 출력 뷰 방향 변환된 프레임에서 데이터 요소에 대한 데이터 값(들)을 제공하기 위해 샘플링되는 하나 이상의 입력 프레임 위치(들)의 세트를 결정하고;
생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 발생되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터를 사용하여, 생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 어느 버전이나 버전들을, 하나 이상의 입력 프레임 위치(들)의 결정된 세트에서 샘플링할지를 결정하고 나서;
출력 뷰 방향 변환된 프레임 데이터 요소의 데이터 값(들)을 제공하기 위해 상기 결정된 위치(들)에서의 입력 프레임의 그렇게 해서 결정된 상이한 해상도 버전이나 버전들을 샘플링하도록 구성된다.
이 경우에, 출력 프레임에서 프레임의 어느 해상도 버전을 사용할지를 나타내는 데이터는, 바람직하게는, (예를 들면, 투명도(알파) 값들의 일부 형태를 포함하는 대신에) 표시되는 출력 프레임(의 영역)을 표현하는 2차원 어레이(예: 밀도 맵)의 형태로, 또는, 프레임의 어느 해상도 버전들을 표시되는 출력 프레임(의 영역)에 걸쳐 사용할지를 나타내는 (바운딩 박스나 기능적 표현법 등의) 일부의 표현법의 다른 형태로 되어 있다.
바람직한 실시예에서, 출력 프레임에서 프레임의 어느 해상도 버전을 사용할지를 나타내는 데이터는, 디스플레이 프로세서에 의해 (예를 들면, 디스플레이 프로세서의 로컬 스토리지에) 페치될 것이고, 예를 들면, 업스케일되고나서, 프레임의 복수의 상이한 해상도 버전들의 어느 버전이나 버전들을 당해 출력 프레임 데이터 요소에 대해 샘플링할지를 결정하는데 사용되어도 된다.
출력 프레임에서 프레임의 어느 해상도 버전을 사용할지를 나타내는 데이터는, 당해 데이터 요소를 위해 어느 해상도 버전이나 버전들(어느 밉맵 레벨들)이 필요한지를 특정하고, 바람직하게는, 디스플레이 프로세서에서 사용하기 위한 생성기 처리 유닛에서 발생한 프레임의 상기와 같이 해서 결정된 상이한 해상도 버전이나 버전들의 관련된 구역들을 (예를 들면, 디스플레이 프로세서의 로컬 스토리지에) 페치하는 것을 기동하는데 사용된다.
그리고, 변환 스테이지는, 당해 출력 뷰 방향 변환된 데이터 요소(픽셀)를 제공하기 위해, 상기 결정된 위치들에서 입력 프레임의 그렇게 해서 페치된 상이한 해상도 버전이나 버전들을 샘플링할 것이다.
본 동작에 있어서, 출력 프레임에서 주어진 데이터 요소에 대해 샘플링되는 프레임의 단일의 해상도 버전만이 존재하는 경우, 변환 스테이지는, 바람직하게는, 적절한 방식으로, 이를테면 및 바람직하게는 이중선형 필터링을 사용하여, 상기 프레임의 해당 단일의 결정된 해상도 버전을 샘플링한다.
한편, 프레임의 2개(또는 그 이상)의 상이한 해상도 버전들이 주어진 출력 프레임 데이터 요소(픽셀)가 샘플링되어야(이 요소에 사용되어야) 하는 것을 출력 프레임이 나타내는 경우 프레임의 어느 해상도 버전을 사용할지를 데이터가 나타내는 경우에, 변환 스테이지는, 조합되는 프레임의 2개 이상의 상이한 해상도 버전들로부터 적절하게 샘플링 해야 하고, 바람직하게는 샘플링한다. 바람직한 일 실시예에서, 이것은, 적절한 필터링 구성, 이를테면, 및 바람직하게는, 삼중선형 필터링을 사용하여, 당해 출력된 뷰 방향 및 변환된 프레임 데이터 요소(픽셀)에 대한 프레임의 상기 나타낸 복수의 상이한 해상도 버전들로터의 데이터 값들을 샘플링(및 블렌딩)하는 것을 포함한다.
바람직한 실시예에서, 프로세스(예를 들면, 변환 스테이지)는, 출력 프레임을 발생하기 위해, 바람직하게는 최고의 해상도와 일치하기 위해, 사용중인 프레임의 최고의 해상도 버전보다 낮게 샘플링되는 프레임의 임의의 해상도 버전 구역들을 업스케일링하는 것을 포함하고(업스케일링 하도록 동작하고), 이때의 샘플링은 입력 프레임 구역들의 업스케일된 버전들을 사용하여 수행된다. 이것은, 출력 프레임 데이터 요소(픽셀)에 대한 입력 프레임의 복수의 상이한 해상도 버전들을 샘플링할 때 상이한 해상도 버전간의 블렌딩을 용이하게 하고, 및/또는 출력 프레임에서 상이한 해상도 구역간의 천이를 평활화 하는데 도움이 될 수도 있다.
또한, 2개의 저해상도 버전들(하지만 프레임의 최고의 해상도 버전은 아닌 버전들)이 샘플링되는 경우, 쌍의 저해상도 버전을 업스케일링하여 샘플링 동작 전에 쌍의 최고의 해상도 버전의 해상도와 일치시키는 것도 가능할 것이다. 이 경우에, 그 후, 바람직하게는, 프레임의 출력 버전에서 입력 프레임의 상이한 최고의 해상도 버전들로 발생한 구역간의 천이를 평활화하는 일부의 추가의 평활화(필터링) 동작이, 수행된다.
또한, 뷰 방향 변환된 출력 프레임에서의 데이터 요소들을 발생할 때 샘플링(및 필터링) 프로세스도, 입력 프레임의 상이한 해상도(또는, 적어도 상이한 최고의 해상도) 버전들을 사용하여 발생될 출력 프레임의 구역간에 천이를 고려하고, 그 천이를 평활화하는 작용을 한다.
특히, 출원인이 인식한 것은, 출력 프레임에서 상이한 해상도 구역간의 경계(천이)에서, 상기 경계의 양측에 입력 프레임의 주어진 해상도 버전내에서 샘플링하는 것이 바람직할 수도 있다는 것이다. 그것이 사실일 경우, 경계의 양측에 당해 프레임의 해상도 버전에 대해 유효한 데이터가 존재하는 것이 바람직할 것이다.
바람직한 일 실시예에서, 이것은, 생성기 처리 유닛에 의해, 경계 구역들에서 (적어도 어느 정도) 전부 중첩하도록 프레임의 상이한 해상도 버전들을 발생함으로써 확보된다.
또 하나의 바람직한 실시예에서, 생성기 처리 유닛이 경계 구역들에서 상이한 해상도 버전간에 중첩하도록 프레임의 상이한 해상도 버전들을 발생하지 않는 경우(중첩이 없는 경우에), 추가의 데이터는, 출력 프레임에서 입력 프레임의 상이한 해상도 버전간의 경계에서 입력 프레임의 주어진 해상도 버전에서 샘플링할 때 샘플링하기 위한 유효 데이터를 제공하도록 프레임의 상이한 해상도 버전들에 대한 경계 구역들 외부로 연장되는 데이터 값들을 제공하도록, 경계 구역들에서 생성기 처리 유닛에 의해 발생되는 프레임의 상이한 해상도 버전들에 대해 발생된다.
이것은, 예를 들면, 생성기 처리 유닛(예를 들면, GPU)에 의해, 경계를 가로질러 해당 고해상도 버전내에서의 샘플링을 허용하기 위해 고해상도 구역에서 충분한 데이터를 제공하도록, (프레임의 상이한 해상도 버전들이 디스플레이 프로세서에 제공되기 전에) 저해상도 레벨을 미리 고해상도 레벨로 사전 블렌딩함으로써 이루어질 수 있다. 이와는 달리, 또는 추가로, 상이한 해상도 버전간의 경계들에서 상기와 같은 추가의 데이터 요소 값들은, 디스플레이 프로세서상에 로컬 버퍼에 로딩되므로 입력 프레임의 상이한 해상도 버전들의 구역들에 대해 발생될 수 있다.
상술한 것처럼, 바람직한 실시예에서, 입력 프레임의 상이한 해상도 버전들의 데이터는, 사용하기 위해 디스플레이 프로세서의 로컬 버퍼나 버퍼들에 로딩된다. 하나의(및 각) 변환 스테이지는, 예를 들면, 현재 발생중인 변환된 출력 프레임의 행을 발생하는데 요구되는 데이터를 가질 상이한 해상도 입력 프레임의 구역들(및 바람직하게는 각각의 2차원 블록들(영역들))을 특정 가능하고, 또 디스플레이 프로세서의 입력 스테이지가, 필요한 입력 프레임 구역들(블록들)을 디스플레이 제어기의 입력, 예를 들면 로컬 버퍼나 로컬 버퍼들에 로딩하게 할 수 있어, 대응한 출력 변환된 프레임 샘플링 위치나 위치들이 발생될 때 변환 스테이지에서 사용하기 위해 이용 가능하다. 이것은, 특히, 차례로 상기 변환된 출력 프레임의 행들에 대해 샘플링 위치들의 연속적인 순서로서 상기 출력 변환된 프레임을 발생할 수 있는 것을 용이하게 하는데 도움이 될 수도 있다.
본 구성에서, 변환 스테이지는, 바람직하게는, 필요한 경우, 상이한 해상도 입력 프레임 버전들의 어느 버전이 데이터를 요구하는지를 나타내고 결정한다. 변환 스테이지가 디스플레이 프로세서에서 발생한 입력 프레임의 상이한 해상도 버전들의 주어진 버전의 뷰 방향 변환된 버전을 단순히 생성중인 경우에, 변환 스테이지는, 필요한 해당 해상도 입력 프레임 버전의 블록이나 블록들인 것을 단순히 나타낼 수 있다.
변환 스테이지가 입력 프레임의 복수의 상이한 해상도 버전들을 처리하여 조합 가능한 경우에, 변환 스테이지는, 바람직하게는, 생성기 처리 유닛에서 발생한 입력 프레임의 상이한 해상도 버전이나 버전들이 요구되는지를 결정하고, 디스플레이 프로세서의 입력 스테이지를 기동하여 생성기 처리 유닛에서 발생한 프레임의 그 상이한 해상도 버전들로부터 필요한 입력 프레임 구역들(블록들)을 로딩하기 위해, 출력 뷰 방향 변환된 프레임 구역들에 대해 상기 프레임의 복수의 상이한 해상도 버전들 중 어느 버전을 사용할지를 나타내는 데이터를 사용한다.
이에 관해서 로딩되는 입력 프레임의 블록들(영역들)은, 상이한 해상도 입력 프레임 버전들의 임의의 적절하고 원하는 블록들(영역들)이어도 된다. 각 블록은, 바람직하게는, 입력 프레임의 명시된 샘플링(데이터) 위치들(데이터 요소들)의 (2차원) 어레이를 포함하고, 각 축방향으로 복수의 샘플링 위치들(데이터 요소들)에 의해 연장된다. 그 블록들은, 바람직하게는, 직사각형, 바람직하게는 정사각형이다. 그 블록들은, 예를 들면, 입력 프레임의 4×4, 8×8 또는 16×16 샘플링 위치들(데이터 요소들)을 각각 포함하여도 된다.
특히 바람직한 실시예에서, 이것은, 변환 스테이지에 의해, 출력 변환된 프레임 샘플링 위치를 발생하는데 요구될 데이터를 갖는 입력 프레임의 블록(영역)을 특정하기 위해 출력 변환된 프레임 샘플링 위치(데이터 요소)에 대해 샘플링되는 입력 프레임 위치의 정수를 사용하고 나서, 디스플레이 제어기의 입력 스테이지에게, 입력 프레임의 상이한 해상도 입력 프레임 버전들(의 하나 이상)의 적절한 블록을, 변환 스테이지가 출력 변환된 프레임 샘플링 위치를 발생하기 위해 원하는 입력 프레임 버전 샘플링 위치들을 판독할 디스플레이 제어기의 로컬 버퍼에 페치시키기 위해 디스플레이 제어기의 입력 스테이지에 대한 해당 블록 위치(예를 들면, 정수값)를 나타냄으로써, 행해진다.
본 발명을 전체적인 데이터 처리 시스템의 동작에 대해 특별한 레퍼런스로 상술하였지만, 본 발명은 디스플레이 프로세서와 디스플레이 프로세서 그 자체의 동작까지도 확장된다.
따라서, 본 발명의 추가의 국면에서는, 표시를 위해 디스플레이에 프레임들을 제공 가능한 디스플레이 프로세서의 동작 방법을 제공하되, 상기 디스플레이 프로세서는:
입력 프레임들의 데이터를 판독 가능한 입력 스테이지;
표시용 프레임들을 디스플레이에 제공 가능한 출력 스테이지; 및
입력 스테이지에서 판독한 입력 프레임의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 발생 가능한 적어도 하나의 변환 스테이지를 구비하고,
상기 방법은:
디스플레이 프로세서의 입력 스테이지에 의해, 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부 또는 전부의 데이터를 판독하는 단계;
디스플레이 프로세서에 의해, 표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터에 근거하여 입력 스테이지에서 판독한 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하는 단계; 및
디스플레이 프로세서의 출력 스테이지에 의해, 프레임의 뷰 방향 변환된 출력 버전을 표시를 위해 디스플레이에 제공하는 단계를 포함한다.
본 발명의 추가의 국면에서는, 표시를 위해 디스플레이에 프레임들을 제공 가능한 디스플레이 프로세서를 제공하고, 상기 디스플레이 프로세서는:
입력 프레임들의 데이터를 판독 가능한 입력 스테이지;
표시용 프레임들을 디스플레이에 제공 가능한 출력 스테이지; 및
입력 스테이지에서 판독한 입력 프레임의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 발생 가능한 적어도 하나의 변환 스테이지를 구비하고,
디스플레이 프로세서의 입력 스테이지는, 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부 또는 전부의 데이터를 판독하도록 구성되고;
디스플레이 프로세서는, 디스플레이 프로세서에 제공된 표시를 위해 디스플레이 프로세서에서 발생하는 표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터에 근거하여, 입력 스테이지에서 판독한 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하도록 구성되고;
디스플레이 프로세서의 출력 스테이지는, 프레임의 뷰 방향 변환된 출력 버전을 표시를 위해 디스플레이에 제공하도록 구성된다.
당업자라면 알 듯이, 본 발명의 이 국면들은, 적절하게, 여기서 기재된 본 발명의 바람직하고 선택적인 특징들의 임의의 하나 이상 또는 전부를 포함할 수 있고, 바람직하게는 포함한다.
본 발명을 단일의 프레임의 발생 및 처리에 대한 특별한 레퍼런스로 상술하였지만, 당업자라면 알 듯이, 본 발명의 방식에서의 동작은, 표시되는 복수의 프레임들 및, 바람직하게는, 표시되는 복수의 프레임들의 시퀀스의 프레임마다 수행되는 것이 바람직하다. 따라서, 일 실시예에서, 본 발명의 방식에서의 동작은 유저에게 표시하기 위한 복수의 출력 프레임들의 시퀀스를 발생하는데 사용되고, 이에 대응하게, 본 발명의 방식에서의 동작은, 표시되는 복수의 출력 프레임들에 대해 반복되는 것이 바람직하다.
따라서, 예를 들면, 생성기 처리 유닛은, 표시되는 복수의 출력 프레임들의 시퀀스를 생성할 것이고, 상기 디스플레이 프로세서는 상기 프레임들을 표시를 위해 디스플레이에 적절하게 제공하기 위해 그 프레임들을 처리한다.
이에 따라, 표시용 프레임들의 발생 및 처리는, 유저의 좌안 및 우안에 각각 표시되는 "좌" 프레임 및 "우" 프레임의 시퀀스를 발생하는 것도 포함하여도 되고, 바람직하게는 포함한다. 표시용 "좌" 프레임과 "우" 프레임의 각 쌍은, 원하는 대로, 공통 입력 프레임으로부터, 또는 각각의 "좌" 및 "우" 입력 프레임으로부터 발생되어도 된다.
본 발명에서의 디스플레이는, 임의의 적절하고 원하는 형태의 디스플레이일 수 있고, 디스플레이가 이를테면 및 바람직하게는, 디스플레이 패널, 프레임 데이터를 디스플레이 패널로 스캔하기 위한 디스플레이 드라이버 회로, 및 상기 디스플레이 패널 상에 디스플레이될 데이터를 수신하기 위한 디스플레이 수신기를 포함하여도 되는 임의의 적절하고 원하는 부품 및 요소들을 포함할 수 있다. 또한, 상기 디스플레이는 프레임 버퍼와 같은 적절한 로컬(온 칩) 프레임 데이터 스토리지(storage)를 구비할 수도 있다. 상기 디스플레이는, 전체적인 데이터 처리 시스템의(디바이스의) 로컬 디스플레이(스크린) 및/또는 외부 디스플레이를 구비할 수도 있다. 원하는 경우, 하나보다 많은 디스플레이 출력이 있어도 된다.
특히 바람직한 실시예에서, 상기 디스플레이는, 예를 들면 및 바람직하게는, 가상현실 및/또는 증강현실 표시를 위한 헤드 장착형 디스플레이를 포함한다. 이 경우에, 상기 디스플레이는, 그에 따라 유저에게 프레임들을 표시하기 위한 디스플레이 패널과, 유저가 표시된 프레임들을 시청할 렌즈나 렌즈들을 포함해야 하고, 바람직하게는 포함한다.
이에 대응하게, 바람직한 실시예에서, 상기 디스플레이는, 바람직하게, 주기적으로 디스플레이의 현재 및/또는 상대적 위치에 근거하여 뷰 추적 정보를 발생하고, 해당 뷰 방향을, 예를 들면, 바람직하게는, 뷰 방향에 근거하여 프레임들을 변환할 때 사용하기 위한 데이터 처리 시스템의 처리 유닛들에 주기적으로 제공 가능한, 뷰 방향 결정(예를 들면, 헤드 추적) 센서들이 관련되어 있다.
따라서, 본 발명의 또 하나의 국면은, 여기서 설명된 본 발명의 국면들 및 실시예들의 임의의 하나 이상의 데이터 처리 시스템을 구비하는 헤드 장착형 디스플레이 디바이스를 포함한다. 이에 대응하게, 본 발명의 또 하나의 국면은, 본 발명의 국면들 및 실시예들의 임의의 하나 이상의 방식으로 헤드 장착형 디스플레이 디바이스를 동작시키는 것을 포함하는 헤드 장착형 디스플레이 디바이스의 동작 방법을 포함한다.
본 발명의 방식으로 동작하는데 요구된 특별한 유닛들과 부품들뿐만 아니라, 데이터 처리 시스템은, 데이터 처리 시스템이 구비하여도 되는, 임의의 다른 적절하고 원하는 부품, 유닛, 프로세서 등의 하나 이상과, 바람직하게는 전부도 구비하여도 되고, 바람직하게는 구비한다. 따라서, 데이터 처리 시스템은, 중앙처리 유닛, 호스트 프로세서, 그래픽 처리 유닛, 비디오 프로세서, 화상신호 프로세서, 카메라, 시스템 버스 및 메모리 제어기의 하나 이상과, 바람직하게는 전부를 구비하여도 된다. 바람직한 실시예에서, 데이터 처리 시스템은, 여기서 설명된 데이터를 기억하는 하나 이상의 메모리들 및/또는 메모리 디바이스들, 및/또는 여기서 설명된 프로세스들을 수행하는 소프트웨어를 포함하고, 및/또는, 여기서 설명된 데이터를 기억하는 하나 이상의 메모리들 및/또는 메모리 디바이스들, 및/또는 여기서 설명된 프로세스들을 수행하는 소프트웨어와 통신하고 있다.
또한, 데이터 처리 시스템은, 원하는 경우, 및 바람직한 시스템에서, 2개의 디스플레이 프로세서를 구비할 수 있고, 적어도 한쪽의 디스플레이 프로세서 및 바람직하게는 양쪽의 디스플레이 프로세서들이 본 발명에 따르고, 본 발명에 따라 동작 가능하다.
이것은, 예를 들면, 디스플레이 프로세서들을 사용하는 전자기기가, 표시용 화상들을 (유선 또는 무선) 동반 디스플레이 디바이스(이를테면 및 바람직하게는 헤드셋)에 송신하는 (예를 들면, 휴대장치, 이를테면 전화, 또는 PC 또는 콘솔일 수 있는) 호스트 디바이스 모두를 구비하는 경우일 수 있고, 이때의 동반 디스플레이 디바이스는 상기 디스플레이와 디스플레이 프로세서도 구비한다.
이러한 구성에서, 디스플레이 처리는, 호스트 디바이스와 상기 동반 디바이스와의 사이에서 확산될 수 있다. 예를 들면, 호스트 디바이스는, 표시용 프레임들을 준비할 수 있지만, 이때의 동반 디바이스는 최종의 표시된 프레임들을 생성하기 위해 임의의 뷰 방향 변환 등을 포함하는 상기 디스플레이 처리를 수행한다. 다른 극단적인 면에서, 호스트 디바이스는, 완전한, 보상된, 렌즈 보정된 및 뷰 방향 변환된 출력 프레임들을 준비할 수 있고, 이때의 상기 동반 디바이스는 단순히 그 표시용 프레임들의 최종 처리를 행한다.
본 발명의 특히 바람직한 실시예에서, 본 발명의 데이터 처리 시스템은, 이 옵션들 중 제1 옵션에 따라 구성된다, 즉 그 중에서도 표시되는 프레임들의 복수의 상이한 해상도 버전들을 생성하는 호스트 디바이스를 구비하지만, 본 발명의 디스플레이 프로세서 동작은, 동반 디스플레이 디바이스, 이를테면 및 바람직하게는, 헤드 장착형 디스플레이 디바이스에서의 디스플레이 프로세서상에서 수행된다.
따라서, 바람직한 실시예에서, 데이터 처리 시스템은, 생성기 처리 유닛을 구비하는 호스트 디바이스와, 본 발명의 방식으로 디스플레이 프로세서를 구비하는(그리고, 본 발명의 방식으로 동작하는) 동반 디스플레이 디바이스를 구비한다. 바람직하게는, 호스트 디바이스는, 본 발명의 방식으로 동작 가능할 수도 있고, 바람직한 실시예에서는 동작할 수 있는, 추가의 디스플레이 프로세서도 구비한다.
이 구성에서, 호스트 디바이스는, 표시용 프레임들의 복수의 상이한 해상도 버전들의 세트들을 발생할 것이고, 이때의 동반 디스플레이 디바이스의 디스플레이 프로세서는 본 발명의 방식으로 표시용 프레임들의 그 상이한 해상도 버전들을 처리한다.
이러한 구성에서, 프레임의 복수의 상이한 해상도 버전들(예를 들면, 밉맵들의 세트)을, 본 발명의 방식으로 처리하기 위한 상기 동반 디바이스 디스플레이 프로세서에 제공하는 것이 필요할 것이다. 이 때문에, 상기 동반 디바이스 디스플레이 프로세서는, 처리하기 위한 상기 프레임들을 기억하는 상기 동반 디바이스의 적절한 버퍼를 구비하거나 이 적절한 버퍼에 액세스할 필요가 있고, 바람직하게는 상기 동반 디바이스의 적절한 버퍼를 구비하거나 이 적절한 버퍼에 액세스한다.
이에 관해서, 상기 동반 디바이스(동반 디바이스의 디스플레이 프로세서)에 전체적으로 표시되는 프레임의 상이한 해상도 버전들을 보내는 것이 가능하겠지만, 출원인이 인정하는 것은, 프레임의 각기 상이한 해상도 버전의 일부만이 (포비티드 디스플레이를 발생할 때의 경우와 같이) 최종의 출력 프레임에서 사용되는 경우, 상기 동반 디바이스의 디스플레이 프로세서에 의해 처리하기 위해 전체적으로 프레임의 상이한 해상도 버전들을 송신하는 것이 불필요하지만, 오히려 상기 프레임의 각기 상이한 해상도 버전의 요구된 부분들만이 상기 동반 디바이스상의 디스플레이 프로세서에 송신될 필요가 있다는 것이다. 게다가, 이것은, 표시를 위해 포비티드 출력 프레임들을 발생할 때 호스트 디바이스와 동반 디바이스와의 사이에서 잠재적으로 상당히 송신 대역폭을 감소시키는 효과가 있을 것이다.
따라서, 특히 바람직한 실시예에서, 상기 호스트 디바이스는, 생성기 처리 유닛이 표시되는 프레임에 대한 상이한 해상도 버전들의 세트(예를 들면, 밉맵들의 세트)를 생성하였다면, 프레임의 복수의 상이한 해상도 버전들을 사용하여 표시를 위한 출력 프레임을 발생할 때 상기 동반 디바이스상의 디스플레이 프로세서에 의해 요구될 표시되는 프레임의 그 복수의 상이한 해상도 버전들의 일부들을 결정하고, 상기 동반 디바이스상의 디스플레이 프로세서에서 사용하기 위한 동반 디바이스에 발생되어 있는 상기 프레임의 상이한 해상도 버전들의 상기 결정된(선택된) 일부들만을 송신하도록, 동작한다.
출력 프레임을 발생할 때 동반 디바이스상의 디스플레이 프로세서에 의해 요구될 프레임의 상이한 해상도 버전들의 일부들은, 원하는 대로 특정되어 선택될 수 있다. 특히 바람직한 실시예에서, 이것은, 입력 프레임의 어느 해상도 버전들이 출력 뷰 방향 변환된 프레임에서 사용되는지를 나타내는 데이터에 근거하여 행해진다. 따라서, 바람직한 실시예에서, 호스트 디바이스는, 입력 프레임의 어느 해상도 버전들이 출력 뷰 방향 변환된 프레임에서 사용되는지를 나타내는 데이터를 사용하여, 프레임의 각기 상이한 해상도 버전의 어느 구역들이 표시용 프레임의 출력 버전을 발생할 때 상기 동반 디바이스에서 디스플레이 프로세서에 의해 필요로 될지를 특정하도록 동작하고 나서, 상기 동반 디바이스에 그들의(및 그들만의) 특정된 구역들(의 데이터)을 송신한다.
이 경우에, 출력 프레임은, 바람직하게는 (상술한 것처럼) 복수의 데이터 요소들의 직사각형(및 바람직하게는 정사각형) 블록을 각각 포함하는, 복수의, 바람직하게는 사이즈와 형상이 규칙적인 구역들로 분할되는 것이 바람직하고, 생성기 처리 유닛에서 생성한 프레임의 어느 해상도 버전이 요구될지를 상기 출력 프레임에서의 구역마다 결정되고, 이때의 호스트 디바이스는 프레임의 결정된 해상도 버전이나 버전들의 특정된 구역들을 상기 동반 디바이스에 송신한다.
이 동작은, 필요에 따라, 정밀도가 더 크거나 적은 프레임의 상이한 해상도 버전들의 요구된 구역들을 특정할 수 있다. 일 실시예에서, 프로세스는, 바람직하게는 상대적으로 성기게 상기 프레임의 상이한 해상도 버전(들)의 비가시적(비사용) 구역들을 잘라 내도록 동작한다.
이러한 구성들은 그들 자체만으로도 새롭고 이로울 수도 있다고 믿는다.
따라서, 본 발명의 추가의 국면에서는, 데이터 처리 시스템의 동작방법을 제공하고, 상기 데이터 처리 시스템은:
디스플레이 상에 표시용 프레임들을 발생 가능한 생성기 처리 유닛을 구비하는 호스트 디바이스; 및
표시용 프레임들을 표시 가능한 디스플레이;
생성기 처리 유닛에 의해 발생된 프레임들을 표시를 위해 디스플레이에 제공 가능한 디스플레이 프로세서를 구비한, 동반 디스플레이 디바이스를 포함하고, 상기 디스플레이 프로세서는:
입력 프레임들의 데이터를 판독 가능한 입력 스테이지;
표시용 프레임들을 디스플레이에 제공 가능한 출력 스테이지; 및
상기 입력 스테이지에 의해 판독된 입력 프레임의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 발생 가능한 적어도 하나의 변환 스테이지를 구비하고;
상기 방법은:
생성기 처리 유닛에 의해, 표시되는 프레임에 대해, 이 표시되는 프레임의 복수의 상이한 해상도 버전들을 발생하는 단계;
상기 호스트 디바이스에 의해:
프레임의 복수의 상이한 해상도 버전들을 사용하여 표시를 위한 출력 프레임을 발생할 때, 동반 디바이스상의 디스플레이 프로세서에 의해 요구될, 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부들을 결정하는 단계; 및
발생되어 있는 프레임의 상이한 해상도 버전들의 상기 결정된 일부들만을, 동반 디바이스상의 디스플레이 프로세서에서 사용하기 위해 동반 디바이스에 송신하는 단계; 및
동반 디바이스상의 디스플레이 프로세서에 의해:
호스트 디바이스에 의해 동반 디바이스에 송신된 생성기 처리유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하는 단계; 및
프레임의 뷰 방향 변환된 출력 버전을 표시를 위해 디스플레이에 제공하는 단계를, 포함한다.
본 발명의 추가의 국면에서 제공한, 데이터 처리 시스템은:
디스플레이 상에 표시용 프레임들을 발생 가능한 생성기 처리 유닛을 구비하는 호스트 디바이스; 및
표시용 프레임들을 표시 가능한 디스플레이;
생성기 처리 유닛에 의해 발생된 프레임들을 표시를 위해 디스플레이에 제공 가능한 디스플레이 프로세서를 구비한, 동반 디스플레이 디바이스를 포함하고, 상기 디스플레이 프로세서는:
입력 프레임들의 데이터를 판독 가능한 입력 스테이지;
표시용 프레임들을 디스플레이에 제공 가능한 출력 스테이지; 및
입력 스테이지에 의해 판독된 입력 프레임의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 발생 가능한 적어도 하나의 변환 스테이지를 구비하고;
생성기 처리 유닛은, 표시되는 프레임에 대해, 이 표시되는 프레임의 복수의 상이한 해상도 버전들을 발생하도록 구성되고;
호스트 디바이스는:
프레임의 복수의 상이한 해상도 버전들을 사용하여 표시를 위한 출력 프레임을 발생할 때, 동반 디바이스상의 디스플레이 프로세서에 의해 요구될, 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부들을 결정하고;
발생되어 있는 프레임의 상이한 해상도 버전들의 상기 결정된 일부들만을, 동반 디바이스상의 디스플레이 프로세서에서 사용하기 위해 동반 디바이스에 송신하도록 구성되고;
동반 디바이스상의 디스플레이 프로세서는:
호스트 디바이스에 의해 동반 디바이스에 송신된 생성기 처리유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하고;
프레임의 뷰 방향 변환된 출력 버전을 표시를 위해 디스플레이에 제공하도록 구성된다.
당업자라면 알 듯이, 본 발명의 이 국면들 및 실시예들은, 적절하게, 여기서 기재된 본 발명의 바람직하고 선택적인 특징들의 임의의 하나 이상 또는 전부를 포함할 수도 있고, 바람직하게는 포함한다.
따라서, 예를 들면, 호스트 프로세서는, 바람직하게는, 표시를 위해 디스플레이 프로세서에서 발생하는 프레이의 뷰 방향 변환된 출력 버전의 구역마다 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터를 디스플레이 프로세서에 제공한다.
마찬가지로, 상기 디스플레이 프로세서는, 바람직하게는, 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이, 디스플레이 프로세서에 제공된 표시를 위해 디스플레이 프로세서에서 발생하는 표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여 입력 스테이지에서 판독한 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여, 상기 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하도록 구성된다.
출력 프레임을 발생할 때 동반 디바이스상의 디스플레이 프로세서에 의해 요구될 프레임의 상이한 해상도 버전들의 일부들은, 원하는 대로 특정되어 선택될 수 있다. 특히 바람직한 실시예에서, 이것은, 입력 프레임의 어느 해상도 버전들이 출력 뷰 방향 변환된 프레임에서 사용되는지를 나타내는 데이터에 근거하여 행해진다. 따라서, 바람직한 실시예에서, 호스트 디바이스는, 입력 프레임의 어느 해상도 버전들이 출력 뷰 방향 변환된 프레임에서 사용되는지를 나타내는 데이터를 사용하여, 프레임의 각기 상이한 해상도 버전의 어느 구역들이 표시용 프레임의 출력 버전을 발생할 때 상기 동반 디바이스에서 디스플레이 프로세서에 의해 필요로 될지를 특정하도록 동작하고 나서, 상기 동반 디바이스에 (그래뉴래러티의 원하는 레벨에서) 그들의(및 그들만의) 특정된 구역들(의 데이터)을 송신한다.
또한, 비교 디바이스는, 바람직하게는, 동반 디바이스상의 디스플레이 프로세서에서 사용하기 위한 동반 디바이스상에서, 호스트 디바이스에 의해 동반 디바이스에 송신되어 있는 프레임의 상이한 해상도 버전들의 상기 결정된 일부들을 기억하는 버퍼와 같은, 로컬 스토리지를 구비한다.
또한, 호스트 디바이스는, 바람직하게는, 프레임의 상이한 해상도 버전들의 선택된 일부들을 적절한 데이터 구조, 이를테면 및 바람직하게는 단일의 프레임 구조에 팩(pack)하고 나서, 공통 디바이스에 송신한다. 프레임의 상이한 해상도 버전들의 그렇게 해서 송신된 일부들은, 바람직하게는, 동반 디바이스의 디스플레이 프로세서에서 사용하기 위해 이용 가능하도록 동반 디바이스의 버퍼에 적절하게 기억된다.
또한, 동반 디바이스에 송신되는 프레임의 상이한 해상도 버전들의 관련 일부들은, 송신을 위해 압축(그리고, 이에 대응하게, 예를 들면 동반 디바이스상의 디스플레이 프로세서의 동작의 일부로서, 동반 디바이스에서 압축해제)되어도 되고, 바람직한 실시예에서는 압축된다. 임의의 다른 필요한 포맷 변경, 데이터의 변환 또는 언패킹도, 동반 디바이스상에서 적절하게 수행되어야 한다.
프레임의 상이한 해상도 버전들의 요구된 일부들의 특정, 선택 및 송신은, 호스트 디바이스의 임의의 적절하고 원하는 요소나 부품에 의해 수행될 수 있다. 특히 바람직한 실시예에서, 이것은, (보통, 그외에는, 동반 디스플레이 디바이스에 표시용 데이터를 송신 가능할) 호스트 디바이스의 디스플레이 프로세서에 의해 행해진다.
출원인이 한층 더 인식한 것은, 이러한 실시예들과 시스템들에 있어서, 특정한 화상들, 이를테면, 표시중인 연속적인 프레임들에서 반복적으로 사용되어도 되는 인터페이스 요소들, 사진들 및 다른 2D "게시판"도 존재할 수 있다는 것이다. 바람직한 실시예에서, 이러한 화상들을 표현하는 프레임들은, 디스플레이 디바이스상에 복수의 출력 프레임들에 사용하기 위해 이용 가능하도록 디스플레이 디바이스상의 상기 버퍼에 출력 프레임별로 유지되어 있다. 그리고, 이것은, 상기와 같은 프레임들을 동반 디스플레이 디바이스에 반복적으로 재송신할 필요를 회피하여 감소시킨다. 이것은, 소스 프레임 데이터가 정적인 상태로 있는(하지만, 예를 들면, 상이한 출력 프레임들에서 상이한 장소들에 표시되어도 되는) 출력 프레임들의 시퀀스에서 반복적으로 재사용되어도 되는 임의의 형태의 화상(프레임)에 대해 행해질 수 있다.
본 발명은, 임의의 적절한 시스템, 이를테면 적절하게 구성된 마이크로프로세서 기반 시스템에 구현될 수 있다. 일 실시예에서, 본 발명은, 컴퓨터 및/또는 마이크로프로세서 기반 시스템에 구현된다.
본 발명의 각종 기능들은, 임의의 원하는 적절한 방식으로 실행될 수있다. 예를 들면, 본 발명의 기능들은, 필요한 경우, 하드웨어나 소프트웨어로 구현될 수 있다. 따라서, 예를 들면, 달리 나타내지 않으면, 본 발명의 각종 기능적 요소들, 엔진들, 스테이지들, 및 "수단"은, 원하는 방식으로 작동하도록 프로그래밍될 수 있는 적절하게 전용 하드웨어 요소들(처리회로들/회로소자) 및/또는 프로그램 가능한 하드웨어 요소들(처리회로들/회로소자)와 같은 각종 기능들 등을 행할 수 있는, 적절한 프로세서나 프로세서들, 제어기나 제어기들, 기능 유닛들, 회로소자, 회로들, 처리 로직, 마이크로프로세서 구성 등을 포함할 수도 있다.
또한, 여기서는, 당업자라면 알 수 있듯이, 본 발명의 각종 기능 등이, 주어진 프로세서상에서 병렬로 복제 및/또는 실행될 수도 있다는 것을 주목해야 한다. 마찬가지로, 각종 처리 스테이지들은, 필요한 경우 처리회로소자 등을 공유할 수도 있다.
또한, 본 발명의 상기 처리 스테이지들 및 엔진들의 어느 하나 이상 또는 전부는, 예를 들면, 하나 이상의 고정된 기능 유닛들(하드웨어)(처리회로소자(회로들))의 형태로, 및/또는 원하는 동작을 행하기 위해 프로그래밍될 수 있는 프로그램 가능한 처리 회로소자(회로들)의 형태로, 처리 스테이지 회로소자(회로들)로서 구체화되어도 된다. 마찬가지로, 본 발명의 상기 처리 스테이지들 중 어느 하나 이상과 처리 스테이지 회로소자는, 그 밖의 처리 스테이지들 중 어느 하나 이상 또는 처리 스테이지 회로소자(회로들)에 별도의 회로 요소로서 제공되어도 되고, 및/또는 상기 처리 스테이지들 중 어느 하나 이상 또는 전부와 처리 스테이지 회로소자(회로들)는 적어도 부분적으로 공유 처리 회로소자로 형성되어도 된다.
또한, 당업자라면, 본 발명의 상술한 국면들과 실시예들 모두가, 적절하게, 여기서 설명한 본 발명의 바람직하고 선택적 특징의 어느 하나 이상 또는 모두를 포함할 수 있고, 바람직하게는 행한다는 것을 알 것이다.
본 발명에 따른 방법들은, 소프트웨어, 예를 들면 컴퓨터 프로그램을 적어도 일부 사용하여 구현되어도 된다. 이렇게 하여 안 것은, 또 다른 측면에서 볼 때, 본 발명은, 데이터 처리수단에 인스톨될 때 여기서 설명된 방법들을 실행하도록 구체적으로 구성된 컴퓨터 소프트웨어와, 데이터 처리수단상에 작동할 때 여기서 설명된 방법들을 행하기 위한 컴퓨터 소프트웨어 코드 부분을 포함한 컴퓨터 프로그램 요소와, 상기 프로그램이 데이터 처리 시스템상에 작동할 때 여기서 설명된 방법이나 방법들의 단계 모두를 행하도록 구성된 코드수단을 포함한 컴퓨터 프로그램을 제공한다는 것이다. 상기 데이터 프로세서는, 마이크로프로세서 시스템, 프로그램 가능 FPGA(Field Programmable Gate Array) 등이어도 된다.
또한, 본 발명은, 디스플레이 제어기 또는, 데이터 프로세서를 갖는마이크로프로세서 시스템을 작동시키는데 사용될 때, 상기 데이터 프로세서와 관련지어 상기 제어기나 시스템이 본 발명의 방법들의 단계들을 실행하게 하는 상기 소프트웨어를 구비한 컴퓨터 소프트웨어 캐리어까지 확장된다. 이러한 컴퓨터 소프트웨어 캐리어는, ROM칩, CD ROM, RAM, 플래시 메모리나, 디스크 등의 물리적 기억매체일 수 있거나, 유선상의 전자신호, 광신호 또는 위성 등에 관한 무선신호 등의 신호일 수 있다.
본 발명의 방법들의 모든 단계들을 컴퓨터 소프트웨어로 실행할 필요가 없고 이에 따라서 또 다른 넓은 측면에서 본 발명은 컴퓨터 소프트웨어와, 여기 기재된 방법들의 단계들의 적어도 하나를 실행하기 위한 컴퓨터 소프트웨어 캐리어 상에 인스톨된 상기 소프트웨어를 제공한다는 것도 또한 알 것이다.
따라서, 본 발명은, 컴퓨터 시스템에 사용하기 위한 컴퓨터 프로그램 제품으로서 적절히 구체화되어도 된다. 이러한 구현은, 유형의, 비일시적 매체, 이를테면 컴퓨터 판독 가능한 매체, 예를 들면, 디스켓, CD-ROM, ROM, RAM, 플래시 메모리, 또는 하드디스크에 고정된 일련의 컴퓨터 판독 가능한 명령들을 포함할 수도 있다. 또한, 본 발명은, 광학적이거나 아날로그적 통신회선을 포함하지만 이에 한정되지 않거나, 또는, 마이크로웨이브, 적외선 또는 그 밖의 전송 기술들 포함하지만 이에 한정되지 않는 무선 기술을 무형으로 사용하는 유형의 매체 상에서, 모뎀이나 그 밖의 인터페이스 디바이스를 거쳐 컴퓨터 시스템에 전송가능한, 일련의 컴퓨터 판독 가능한 명령을 포함할 수 있었다. 상기 일련의 컴퓨터 판독 가능한 명령은, 여기서 이전에 설명된 기능성의 전부 또는 일부를 구체화한다.
당업자는, 여러 가지의 컴퓨터 아키텍처나 운영체계에 사용하기 위한 다수의 프로그래밍 언어로 상기 컴퓨터 판독 가능한 명령을 기록할 수 있다는 것을 알 것이다. 또한, 이러한 명령은, 반도체, 마그네틱, 또는 광학적 기술을 포함하지만 이에 한정되지 않는 현재 또는 미래의 어떠한 메모리 기술을 사용하여서도 저장될 수도 있거나, 광학적, 적외선 또는 마이크로웨이브를 포함하지만 이에 한정되지 않는 현재 또는 미래의 어떠한 통신기술을 사용하여서도 전송되어도 된다. 이러한 컴퓨터 프로그램 제품은, 인쇄된 문서나 전자 문서가 첨부되는 착탈 가능한 매체, 예를 들면, 컴퓨터 시스템, 예를 들면, 시스템 ROM이나 고정형 디스크 상에 사전 적재된 쉬링크 랩 소프트웨어로서 배포되거나, 네트워크, 예를 들면, 인터넷이나 월드 와이드 웹상에서 서버나 전자 게시판으로부터 배포되어도 된다.
이하, 본 발명의 각종 실시예들을 예시로만 또한 아래의 첨부도면들을 참조하여 설명한다:
도 1은 데이터 처리 시스템의 예를 도시한 것이고;
도 2는 헤드 장착형 디스플레이 헤드셋의 예를 개략적으로 도시한 것이고;
도 3은 포비티드 화상의 표시를 도시한 것이고;
도 4는 표시용 포비티드 화상을 제공하도록 조합되어도 되는 프레임의 복수의 상이한 해상도 버전들의 세트의 예를 도시한 것이고;
도 5는 표시용 포비티드 화상을 제공하기 위해 프레임의 복수의 상이한 해상도 버전들의 조합을 개략적으로 도시한 것이고;
도 6은 본 발명의 실시예들에 있어서 데이터 처리 시스템의 동작을 개략적으로 도시한 것이고;
도 7은 본 발명의 실시예들에 있어서 디스플레이 프로세서의 관련 요소들을 개략적으로 도시한 것이고;
도 8은 도 7의 디스플레이 프로세서의 뷰 방향 변환동작을 보다 상세히 도시한 것이고;
도 9는 도 7의 디스플레이 프로세서의 뷰 방향 변환동작을 보다 상세히 도시하는 흐름도이고;
도 10은 본 발명의 실시예들에서의 표시용 포비티드 화상들의 발생을 도시한 것이고;
도 11은 본 발명의 또 하나의 실시예에서의 표시용 포비티드 화상들의 발생을 도시한 것이고;
도 12는 본 발명의 또 하나의 실시예에서의 표시용 포비티드 화상들의 발생을 도시한 것이고;
도 13은 본 발명의 일 실시예에서 사용되어도 되는 밀도 텍스처의 예를 도시한 것이다.
동일한 참조부호는, 적절한 경우, 도면들 전체에 거쳐 동일한 부품들에 사용된다.
이제, 본 발명의 다수의 바람직한 실시예들에 대해서 설명한다.
본 실시예들은 증강 현실(AR) 또는 가상 현실(VR) 디스플레이와 같은 헤드 장착형 디스플레이 시스템에서 유저에게 프레임들을 표시하는 프로세스에 관한 것이다.
이와 같은 시스템은, 도 1에 도시된(그리고 상기 기술한) 바와 같이 구성될 수도 있고, 이때의 상기 시스템의 디스플레이(4)는, 그 중에서도, 헤드 장착형 디스플레이를 착용하고 있는 유저에게 보여지는 프레임들을 표시하기 위한 디스플레이 스크린 또는 스크린들(패널 또는 패널들), 상기 유저의 눈과 상기 디스플레이 스크린들간 시야 경로에서 하나 이상의 렌즈들, 및 사용 중에(화상들이 유저에게 디스플레이 상에서 표시중인 동안에) 유저의 헤드의 포즈(그들의 헤드 위치 및/또는 그들의 뷰(시선) 방향)를 추적하기 위한 하나 이상의 센서들을 포함하는 적절한 헤드 장착형 디스플레이를 포함한다.
도 2는 본 발명의 실시예들에서 사용되어도 되는 헤드 장착형 디스플레이(85)의 예를 개략적으로 도시한 것이다. 도 2에 도시된 바와 같이, 상기 헤드 장착형 디스플레이(85)는, 예를 들어 하나 이상의 헤드 포즈 추적 센서들을 포함함과 더불어 디스플레이 스크린(87; 패널)이 장착되는 적절한 디스플레이 마운트(86)를 포함한다. 한 쌍의 렌즈들(88)은, 상기 디스플레이 스크린(87)의 시야 경로의 렌즈 마운트(89)에 장착된다. 마지막으로, 유저가 헤드셋을 착용하기 위한 적절한 부속품(95)이 있다.
도 1에 도시된 시스템에서, 디스플레이 프로세서(5)는 유저가 보기 위해 적절한 화상들(프레임들)을 디스플레이(4)에 제공하도록 동작할 것이다. 상기 디스플레이 프로세서(5)는, 필요에 따라 유선 또는 무선 방식으로 디스플레이(4)에 연결될 수도 있다.
상기 헤드 장착형 디스플레이(4) 상에 표시되는 화상들(프레임들)은, 예컨대 전체 데이터 처리 시스템의 호스트 프로세서(7; CPU)상에서 실행되는 애플리케이션(10)으로부터의 상기 렌더링에 대한 요청에 응답하여 그래픽 프로세서(2; GPU)에 의해 렌더링되고, 그 프레임들을 메인 메모리(3)에 기억할 것이다. 그 후, 상기 디스플레이 프로세서(5)는 입력 표면들로서 메모리(3)로부터 프레임들을 판독하고, 유저에게 표시를 위해 상기 디스플레이(4)에 그 프레임들을 적절히 제공할 것이다.
본 실시예들은, 구체적으로는, 도 1의 데이터 처리 시스템이 디스플레이(4)상에 포비티드 화상들을 표시하는데 사용중인 상황에 관한 것이다.
도 3은 주시점(최고의 해상도의 구역)(40)이 화상의 좌측을 향하고 있는 포비티드 화상의 일례를 도시한 것이다. 주시점으로부터 떨어져 있는 화상의 구역들(41)이 저해상도로 표시된 것을 알 수 있다.
본 실시예에서, 포비티드 표시를 수행할 때, 그래픽 프로세서(3)는, 복수의, 예를 들면, 3개의, 표시되는 입력 프레임의(따라서, 동일한 씬의 뷰의) 상이한 해상도 버전들을 렌더링하도록 제어되고, 이때의 그 상이한 해상도 버전들(화상들)은 표시되는 출력 "포비티드" 화상(출력 프레임)을 제공하도록 적절하게 조합된다. 그래픽 프로세서는, 임의의 적절하고 원하는 방식으로(예를 들면, 여기서 전체적으로 참고로 포함된 출원인의 US특허출원공개번호 2017/031660호에 기재된 기술들에 따라) 표시되는 프레임의 복수의 상이한 해상도 버전들을 렌더링할 수 있다.
도 4는 표시를 위해 포비티드 화상(프레임)을 제공하도록 조합되어도 되는 동일한 씬(프레임)의 뷰의 3개의 상이한 해상도 버전들(화상들), 즉: 뷰 50의 최고의 해상도 버전; "중간의" 해상도 뷰 51; 및 뷰 52의 최저의 해상도 버전으로 이루어진 세트의 예를 도시한 것이다. 그 후, 이 상이한 화상들은, 최종의, 표시를 위한 출력 "포비티드" 화상을 제공하도록 조합되어도 된다. (도 4에는, 상이한 해상도 화상들이, 비교목적으로 동일한 사이즈로 모두 스케일링되게 도시되어 있다.)
도 5는 도 4에 도시된 화상들에 대응한 상이한 해상도 화상들(프레임의 버전들)(64, 65, 66)을 조합하여 최종의 포비티드 출력 화상(프레임)(60)을 제공하는 것을 개략적으로 도시한 것이다. 도 5에 도시된 것처럼, 최종의 출력된 포비티드 화상(프레임)(60)은, 상이한 해상도 화상들(64, 65, 66)로 이루어지고, 상이한 해상도 화상들(64, 65, 66)의 각각은 렌더링되는 전체 씬의 상이한 관측 시야들(일부들)을 나타낸다.
특히, 최고의 해상도 뷰(64)의 적절한 구역은, 예를 들면 유저가 주시중이라고 판정되는 경우 상기 출력 포비티드 프레임의 구역(61)에 표시되고, 이때의 저해상도 뷰들(65, 66)의 적절한 구역들은 해당 최고의 해상도 구역(61)으로부터 떨어져 있는 출력 프레임(60)의 구역들(62, 63)에 순차적으로 표시되어 있다.
본 실시예들에서, 상기 상이한 해상도 화상들(표시되는 프레임의 버전들)(각기 상이한 해상도 화상들의 적절한 일부들)(64, 65, 66)이 그래픽 프로세서(3)에 의해 렌더링되어 있으면, 그 버전들(화상들)은 데이터 처리 시스템의 메모리(3)에서 적절한 프레임 버퍼들에 기억된다. 그리고, 그 상이한 해상도 화상들은, (도 5에 도시된 것처럼) 표시되는 최종의, 출력된 포비티드 프레임을 제공하도록 상기 디스플레이 프로세서(5)에 의해 적절하게 조합된다.
도 6은 본 발명의 실시예들에서 상기 포비티드 렌더링 및 표시를 수행할 때 데이터 처리 시스템의 동작을 개략적으로 도시한 것이다.
도 6에 도시된 것처럼, 그래픽 프로세서(2)는, 표시되는 프레임의 복수의 상이한 해상도 버전들의 적절한 세트들(200, 201)을 발생하고, 표시되는 그 프레임의 상이한 해상도 버전들의 그 세트들을 메모리(3)에 기억할 것이다.
도 6은 밉맵들의 적절한 세트들(밉맵 체인들)로서 표시되는 프레임의 상이한 해상도 버전들의 세트들을 발생하는 것으로서 그래픽 프로세서(2)를 도시한 것이다. 또한, 도 6은 좌우안 화상이 표시되게 밉맵들의 각각의 세트들의 발생을 도시한 것이다. 물론, 그 밖의 구성도 가능할 것이다.
도 6에 도시된 것처럼, 그래픽 프로세서(2)는, 예를 들면, 데이터 처리 시스템의 CPU(7)상에서 실행중일 적절한 드라이버(203)의 제어하에, 표시되는 프레임의 상이한 해상도 버전들의 각각의 세트들을 발생한다.
도 6에 도시된 것처럼, 드라이버(203)는, 그래픽 프로세서(2)를 제어하여, 상기 프레임의 어느 해상도 버전들이 프레임의 어느 구역들에 대해 사용할지를 나타내는 데이터에 따라 표시되는 상기 프레임의 상이한 해상도 버전들의 세트들을, (예를 들면, 적절한 애플리케이션에 의해 CPU(7)상에서 실행함으로써 발생되어도 되는) 상기 프레임을 볼 렌즈계의 특성들에 근거하여 프레임의 상이한 구역들에 대해 사용되는 프레임의 상이한 해상도 버전들을 나타내는 제1 밀도 텍스처(204)의 형태와, (제공되는 적절한 헤드/시선 추적 정보(207)에 따라 발생되어도 되는) 뷰어의 현재 시선 방향의 분석에 근거한 제2 밀도 텍스처(205)의 형태로, 발생한다.
본 실시예에서, 상기 밀도 텍스처들(204, 205)은, 표시되는 출력 프레임(의 영역)을 표현하는 2차원 어레이들의 형태로 되어 있고, 이때의 상기 어레이내의 각각의 데이터 요소 위치들은 상기 프레임의 어느 해상도 버전이 상기 출력 프레임내의 주어진 구역(블록/타일)에 사용할지를 나타낸다.
도 13은, 밀도 텍스처(400)의 예를 도시한 것이다. 본 도면에서, 가장 어두운 텍스처 위치(401)는, 상기 프레임의 고해상도 버전들이 표시될 곳을 도시한 것으로, 이때 가장 밝은 텍스처 위치들(402)은 상기 프레임의 최저의 해상도 버전이 표시될 곳을 도시하고, "미드 그레이(mid-grey)" 텍스처 위치들(403)은 상기 프레임의 최고 및 최저의 해상도 구역들의 조합이 표시되어야 하는 곳을 도시한다. 실제로, 이 밀도 텍스처 위치들은, 당해 밀도 텍스처 위치에 대응하는 출력 프레임 구역에 대해 상기 프레임의 어느 해상도 버전이나 버전들을 사용할지를 나타낼, 적절한(그레이스케일) 값으로 각각 표현될 것이다(그들에 대해 기억하였을 것이다).
밀도 텍스처들(204, 205)은, 정수 데이터 값들을 사용하여서 하나의(및 각) 프레임 구역에 대해 사용하기 위해 상기 상이한 해상도 버전들의 단일의 버전만을 나타낼 수 있거나, 소수값들(fractional values)(또는 (소수값으로 변환될 수 있는) 그래디언트)을 사용할 수 있고, 이때의 비정수 소수값(레벨)은 해당 출력 프레임 구역에 대해 2개의 상이한 해상도 버전들(밉맵 레벨들)이 조합되어야 하는 것을 나타낸다. 물론, 그 밖의 구성도 가능할 것이다.
또한, 출력 프레임 구역마다 사용하기 위해 프레임의 상이한 해상도 버전들을 나타내는 데이터는, 예를 들면 룩업 테이블에 의해, 또는 일부의 형태의 기능적 표현법에 의해 그 밖의 형태들로, 또는, 최고의 해상도 버전(레벨)이 사용되어야 하는 영역 구역(들)을 명시하는 바운딩 박스(예를 들면, 2D 축정렬 바운딩 박스)의 형태로, 제공될 수 있다(이때의 그 밖의 구역들 전부는 상기 프레임의 하나의 또는 저해상도(레벨) 버전으로부터 발생된다).
그래픽 프로세서(2)가 표시되는 프레임의 상이한 해상도 버전들의 적절한 세트(들)을 발생하였다면, 디스플레이 프로세서(5)는, 상기 표시되는 프레임의 그 상이한 해상도 버전들을 메모리(3)로부터 판독하고, 표시를 위해 적절한 뷰 방향 변환된 출력 프레임 또는 프레임들(211, 212)(예를 들면, 눈마다 1개의 프레임)을 제공할 것이다.
이러한 동작은, 도 6에 도시된 것처럼, (다시 CPU(7)상에 실행중일 수도 있는) 디스플레이 프로세서용의 적절한 드라이버(209)의 제어하에 행해지고, 또한, 도 6에 도시된 것처럼, 상기 프레임의 어느 해상도 버전들이 상기 출력 프레임의 어느 구역들에 대해 사용되는지를 나타내는 밀도 텍스처들과, 또한, 헤드 장착형 디스플레이의 적절한 시선 추적 센서들에 의해 검출된 "최신의" 시선 추적정보(210)도 사용할 것이다. 이에 관해서, 디스플레이 프로세서(5)의 동작을 아래에 보다 상세히 설명하겠다.
도 7은 본 발명의 실시예들에서 디스플레이 프로세서(5)의 관련 요소들을 개략적으로 도시한 것이다.
도 7에 도시된 것처럼, 디스플레이 프로세서(5)는, 그 중에서도, 메모리(3)로부터 그래픽 프로세서(2)에 의해 발생되어 있는 입력 프레임들의 상이한 해상도 버전들의 데이터를 디스플레이 프로세서(5)의 로컬 버퍼(221)에 로딩 가능한 메모리 서브시스템(220)의 형태로 입력 스테이지를 구비한다. 본 실시예들에서, 이 데이터는, 입력 프레임의 상이한 해상도 버전들의 각각의 구역들(타일들/블록들)로서 로딩된다.
도 7에 도시된 것처럼, 그 후, 상기 디스플레이 프로세서는, 하나 이상의(본 예에서는 2개) 디스플레이 처리 파이프라인들(228, 229)을 구비하고, 각 디스플레이 처리 파이프라인은, XR처리 유닛(222, 223)과, XR층 파이프라인(224, 225)을 각각 구비한다. 그리고, 이 디스플레이 처리 파이프라인들로부터의 출력들은, 합성 유닛(226)에서 조합되어 상기 디스플레이까지의 송신을 위해 디스플레이 출력 파이프라인(227)에 제공될 수 있다.
상기 합성 유닛(디스플레이 합성기)(226)은, 디스플레이 처리 파이프라인들에서 발생한 프레임들을 합성하여 예를 들면, (필요한 경우) 적절한 알파 블렌딩 동작들 등에 의해 표시하기 위한 합성된 출력 프레임을 발생하도록 동작한다.
디스플레이 출력 파이프라인(227)은, 선택적으로 출력면(프레임)에 임의의 원하는 처리 동작(들)을 실시하고 나서, 관련된 디스플레이 상에 적절한 표시를 위한 상기 (처리된) 출력 프레임을 송신하도록 구성된다.
디스플레이 출력 파이프라인(227)은, 예를 들면, 출력 프레임에 색변환을 적용 가능한 색변환 스테이지와, 출력 프레임에 디더링(dithering)을 적용 가능한 디더링 스테이지와, 및/또는 출력 프레임에 관해 감마 보정을 실시 가능한 감마 보정 스테이지로 이루어져도 된다. 또한, 디스플레이 출력 파이프라인(227)은, 적절한 표시 타이밍 기능성도 포함한다.
디스플레이 출력 파이프라인(227)은, 예를 들면, 데이터 처리 시스템의(예를 들면, 데이터 처리 시스템이 일부분인 휴대장치, 스마트폰, 타브렛 등의) 로컬 디스플레이와, 및/또는 외부의 또는 원격의 디스플레이와 인터페이싱할 수도 있다.
(이에 따라, 디스플레이 출력 파이프라인(227)은, 표시용 출력 프레임들을 상기 디스플레이(4)에 제공하기 위한 디스플레이 프로세서(5)에 대한 출력 스테이지로서 작용한다.)
XR층 파이프라인(224, 225)은, 상기 합성 스테이지 앞에서 색관리와 색 보정 기능을 수행한다.
각 디스플레이 처리 파이프라인의 XR 처리 유닛들(222, 223)은, 그 중에서도, 메모리(3)에 기억되는 그래픽 프로세서(2)에서 발생한 입력 프레임들로부터 뷰 방향 변환된 출력 프레임들을 발생 가능하다.
도 8 및 도 9는 XR처리 유닛들(222, 223)의 이 동작을 보다 상세히 도시한 것이다.
도 8은 XR처리 유닛을 보다 상세히 도시한 것이다. 디스플레이 프로세서의 각 XR 처리 유닛은, 이렇게 구성되어 동작한다.
도 8에 나타낸 바와 같이, 상기 디스플레이 프로세서의 XR 처리 유닛(222, 223)은 다수의 스테이지, 즉 좌표 보간기 스테이지(60), 색수차 보정 스테이지(61), 시야 방향 변환 스테이지(62) 및 보간 스테이지(63)를 포함한다. 이 스테이지들의 각각은, 본 실시예들에서, 수신하는 입력 데이터에 대해 특별한 처리 동작을 수행하도록 구성된 고정-기능 하드웨어 모듈(처리 회로소자)의 형태로 구현되지만, 모듈마다 특정 제어 파라미터들을 변경하는 능력에 의해 일부 제한적인 설정 가능성도 갖는다. 본 실시예들에서, 상기 제어 파라미터들은, 시스템이 사용중인 특별한 헤드셋(4; 디스플레이)에 근거하여, 프레임들의 시퀀스가 표시될 때 디스플레이 프로세서(5)를 위한 드라이버(11)에 의해 설정된다.
물론, 그 밖의 구성도 가능할 것이다.
좌표 보간기 스테이지(60)는, 디스플레이(4)의 디스플레이 패널 상에 표시되어 헤드 장착형 디스플레이의 렌즈를 통해 보여질 때 출력 변환된 프레임에 도입될 렌즈 왜곡에 대응하는 명시된 렌즈 왜곡에 근거하여, XR 처리 유닛으로부터 출력되는 출력 변환 표면에서의 샘플링 위치(x, y)에 대해, 입력 프레임(유저에게 표시되는 메모리(3)에 기억된 GPU(2)에 의해 렌더링된 프레임)에서의 대응 위치(좌표)(x', y')를 결정하도록 동작한다.
상기 좌표 보간기 스테이지(60)는, 예를 들면, 이러한 목적을 위해, 예를 들면 타원체의 초점과 같은 그러한 함수의 파라미터들이 디스플레이 프로세서를 위한 드라이버에 의해 제어 파라미터들에 의해 설정 가능한 상태에서, 일부의 형태의 3차 곡선 또는 타원체 함수를 실행할 수도 있다.
또는, 출력 좌표들을 각 색채널의 입력 좌표들에 매핑하는 3개의 별도의 왜곡 메쉬들은, 이것에 사용될 수 있다. 예를 들면, 소형 메쉬(32×32)가 사용될 수 있고, 이때의 사이에 값들은 b-스플라인 보간을 사용하여 보가된다. 또한, 원하는 경우, 중간 좌표 값들을 이중선형 보간을 사용하여 보간하는 것도 가능할 것이다.
상기 색수차 보정 스테이지(61)는 보간기 스테이지(60)에 의해 결정된 입력 표면 위치(좌표들)(x', y')를 취하여 헤드 장착형 디스플레이(4)의 렌즈들에 의해 도입될 색수차들을 고려하여 그 좌표들을 "보정"한다.
도 8에 도시된 바와 같이, 별도의 색수차 보정이 컬러 평면(R, G, B)마다 수행된다.
따라서, 이러한 색수차 보정 스테이지(61)의 출력은 3개 세트의 변경된 입력 프레임 위치들(좌표들), 입력 프레임에서 적색 평면을 샘플링하는데 사용되는 1개의 세트 xR', yR', 입력 프레임에서 녹색 평면을 샘플링하기 위한 1개의 세트 xG', yG', 및 입력 프레임에서 청색 평면을 샘플링하기 위한 1개의 세트 xB', yB'이다.
또 하나의 실시예에서, 별도의 좌표 보간기(60)와 색수차 보정(61) 스테이지를 갖는 대신에, 색수차도 고려하는 색 채널마다 하나인, 3개의 별도의 "좌표 보간기" 스테이지들(블록들)은, R, G, B 컬러 평면 좌표들을 따로따로 발생하는데 사용될 수 있다. 이 경우에, 별도의 색수차 보정 스테이지(61)를 갖는 대신에, 프로세스는, 단순히 색채널마다 하나인, 3개의 별도의 좌표 보간기들을 사용하여, (색수차를 고려하는) 적절한 R, G, B 좌표들을 발생할 것이다.
그 후, 상기 색수차 보정 스테이지(61)에 의해 결정된 변경된 입력 프레임 위치들은 상기 뷰 방향 변환 스테이지(62)에 제공된다.
이러한 스테이지는, 입력 프레임이 디스플레이(4) 상의 표시를 위해 보여지는 것처럼 렌더링되는 예측된 뷰 방향에 대응하는 변환 파라미터들의 세트를 그 입력으로서 취하고, 그 예측된 뷰 방향(에 대응하는)에 근거하여 입력 프레임의 투영을 발생하도록 동작한다.
따라서, 상기 뷰 방향 변환 스테이지(62)는, 색수차 보정 스테이지에 의해 제공된 각 입력 프레임 위치에 대한 추가의 변환을 수행하는 것에 의해, 현재 발생중인 출력 변환된 프레임 샘플링(데이터 요소) 위치 x, y에 대해 사용되는 컬러 값들을 얻기 위해 입력 프레임을 샘플링하는데 사용될 뷰 방향 변환된 입력 프레임 위치들(xR", yR"), (xG", yG"), (xB", yB")의 세트를 제공한다.
뷰 방향 변환 스테이지(62)가 각 입력 프레임 위치상에서 수행하는 변환은, 예를 들어 2D 평면(화상)의 3D 회전(원근 변환/2D 호모그래피)을 포함할 수도 있다. 또, 이것은, 사용중에 변환 스테이지(62)에 대한 드라이버 설정 제어 파라미터들에 의해 적절하게 조정될 수 있다.
상기 뷰 방향 변환 스테이지(62)에 의해 결정된 변환된 입력 프레임 위치들은, 보간 스테이지(63)에 제공되고, 이러한 보간 스테이지(63)는 나타낸 위치에서 입력 프레임을 샘플링하여 각각의 그 입력 프레임 위치들에서 입력 프레임 값들을 결정한다. 이는 명시된 입력 프레임 샘플링(데이터 요소) 위치들에 대한 입력 프레임 값들의 적절한 보간에 의해 수행된다.
상기 입력 프레임 샘플링 위치 데이터의 보간은 임의의 적절하고 원하는 방식으로 수행될 수 있다. 이하, 본 실시예들에서는 이것을 어떻게 수행하는지를 보다 상세히 설명하겠다.
상이한 컬러 평면들에 대해 상이한 입력 프레임 위치들(좌표들)이 결정됨에 따라, 본 실시예들에서, 데이터의 별도의 세트는, (해당 컬러 평면에 대해 상기 결정된 입력 프레임 위치에 근거하여) 컬러 평면마다 출력 변환된 프레임 샘플링 위치(데이터 요소)에 대해 보간된다. 따라서, 출력 변환된 프레임 샘플링 위치(데이터 요소)에 대한 RGB 컬러 데이터 세트는, 결정된 "적색" 입력 프레임 위치(좌표)(xR", yR")로부터 결정된 적색 값, 결정된 "녹색" 입력 프레임 위치(좌표)(xG", yG")로부터 결정된 녹색 값 및 결정된 "청색" 입력 프레임 위치(좌표)(xB", yB")로부터 결정된 청색 값을 포함할 것이다.
다음에, 알파(투명도) 값도 결정되어야 하는 경우, 그것은, 컬러 평면마다 별도로 당해 컬러 평면에 대해 결정되는 각각의 입력 프레임 위치(좌표)를 사용하여 결정된다.
다음에, 상기 보간된 값들은, 유저에게 표시를 위해 상기 디스플레이(4)에 제공하기 위해 디스플레이 프로세서의 디스플레이 처리 파이프라인의 나머지에 제공하도록, 도 8에 도시된 바와 같이 출력 버퍼(FIFO)(52)에 출력된다.
도 8에 도시된 바와 같이, 적절한 입력 프레임 데이터가 상기 보간 스테이지(63)에 이용 가능하도록, 상기 뷰 방향 변환 스테이지(62)에 의해 결정된(그리고 상기 보간 스테이지(63)에 의해 샘플링되는) 변경된 입력 표면 위치들은, 이들이 상기 보간 스테이지(63)에 의해 사용되기 전에 이들 샘플링 위치를 포함하는 입력 프레임의 적절한 구역들의 입력 버퍼(51)에의 페치를 제어하기 위해 65를 사용한다.
이를 행하기 위해, 상기 뷰 방향 변환 스테이지(62)에 의해 결정된 상기 입력 프레임 위치들의 정수 부분은, 요구된 입력 프레임 데이터를 포함하는 입력 프레임의 적절한 2차원 블록들을 특정하는데 사용된다. 다음에, 상기 입력 스테이지는 각각의 그 입력 프레임 블록들을 입력 버퍼(51)에 로딩하도록 동작한다.
또한 도 8에 도시된 바와 같이, 상기 보간 스테이지(63)에서 사용하기 위해 입력 버퍼(51) 내로 입력 프레임 데이터를 요청하는 것과, 출력 변환된 프레임 샘플링 위치를 제공하기 위해 해당 데이터를 상기 보간 스테이지(63)가 처리하는 것 사이의 지연성을 고려하기 위해서, 변환 스테이지에 포함된 적절한 지연(지연성-흡수) 메카니즘(64)이 있을 수도 있다. 이것은 원하는 대로 구현될 수 있다.
도 8에 도시된 바와 같이, 상기 XR 처리 유닛의 동작은, 상기 디스플레이(4)로부터의 적절한 동기화 신호들(65)의 수신에 의해 기동되고, 그것의 타이밍이 제어된다.
도 9는 도 8에 도시된 XR 처리 유닛의 동작을 도시하는 흐름도이다.
도 9는 표시를 위해 생성되는 출력 변환된 프레임에서의 각각의 픽셀(데이터) 위치에 대한 동작을 도시한 것이다. 이러한 동작은 요구되는 출력 변환된 프레임 픽셀(데이터 위치)마다 반복된다.
도 9에 도시된 바와 같이, 프로세스는 표시를 위한 새로운 출력 프레임의 시작을 나타내는 적절한 동기화 신호(120)에 의해 시작한다.
그 후, 다음에 생성되는 원하는 출력 변환된 프레임 픽셀 좌표들, x0, y0가 결정된다(단계 121).
그 후, 상기 좌표 보간기 스테이지(60)는, 변환 엔진으로부터 출력되는 출력 변환된 프레임에서의 픽셀(샘플링) 위치 x0, y0에 대해서, 상기 디스플레이(4)의 디스플레이 패널 상에 표시되어 헤드 장착형 디스플레이의 렌즈들을 통해 보여질 때 출력 변환된 프레임에 도입될 렌즈 왜곡에 대응하는 명시된 렌즈 왜곡에 근거하여 입력 프레임에서(유저에게 표시되는 상기 메모리(3)에 기억된 GPU(2)에 의해 렌더링된 프레임에서) 대응한 위치(좌표) xi, yi를, 결정하도록 동작한다(단계 122).
그 후, 상기 색수차 보정 스테이지(61)는, 단계 122에서 상기 좌표 보간기 스테이지(60)에 의해 결정된 입력 프레임 위치(좌표들) xi, yi를 취하고, 3개 세트의 변경된 입력 프레임 위치들(좌표들) xr, yr; xga, yga; xb, yb를 제공하기 위해, 상기 디스플레이(4)의 렌즈들에 의해 도입될 색수차를 고려하여 그 좌표들을 "보정"한다(단계 123).
상술한 것처럼, 단계 123에서의 렌즈 사전왜곡과 단계 123에서의 색수차 보정은, 색수차를 포함하는 렌즈 왜곡을 고려하는 각각의 컬러 평면마다 대응한 좌표들을 산출하는 단일의 동작으로서 수행될 수 있었다.
그 후, 단계 123(또는 다른 방법으로)에서 상기 색수차 보정 스테이지(61)에 의해 결정된 변경된 입력 프레임 위치들은, 예측된 시야 방향 변환된 입력 프레임 위치들(x'r, y'r), (x'ga, y'ga), (x'b, y'b)의 세트를 제공하기 위해, 원하는 예측된 시야 방향에 대응하는 현재 입력 세트의 파라미터들에 근거하여 상기 변환 스테이지(62)에 의해 "시야 방향" 좌표 재투영(보정)이 실시된다(단계 124).
바람직한 실시예에서는, 상기 결정된 렌즈 사전왜곡된 좌표들을, 정규화하고, -1과 +1 사이의 범위에 놓고, 뷰 방향 좌표 재투영(보정) 후, 상기 정규화된 결정된 렌즈 사전왜곡 좌표들을 원하는 입력 프레임 위치들(픽셀) 좌표들에 매핑하는 "좌표 비정규화" 프로세스"를 행한다.
그 후, 그렇게 결정된 입력 프레임 위치들은, 도 9에 도시된 것처럼, 이 결정된 입력 프레임 위치들에 대한 데이터 값들이 상기 보간 스테이지(63)에 의해 결정될 수 있게 하기 위해, 필요한 입력 프레임 샘플링 위치 데이터를 포함하는 입력 프레임의 적절한 블록들을 입력 버퍼에 페치하는 것을 요청하는데 사용된다. 이는 각기 결정된 입력 프레임 위치의 정수 부분을 사용하여 어느 입력 프레임 블록들을 요청할지를 특정한다. 그 후, 상기 특정된 입력 프레임 블록들을 페치하여 입력 버퍼에 기억한다(단계 126).
그 후, 상기 보간 스테이지는, 입력 버퍼에 기억된 입력 프레임 블록들로부터 적절한 입력 프레임 데이터 위치들을 판독하고, 당해 출력 프레임 픽셀(샘플링 위치)(x0, y0)에 대한 적절한 데이터 값들을 보간한다(단계 127).
그 후, 그렇게 발생된 출력 픽셀들은 디스플레이 합성 유닛에 대한 후속의 제공(및 그에 의한 소비), 및 표시를 위한 디스플레이에 제공을 위해 출력 버퍼에 수집된다(단계 128).
도 8 및 도 9에 도시된 바와 같이, 상기 디스플레이 프로세서(5)의 XR 처리 유닛은, 출력 변환된 프레임 기준(각 샘플링 위치별)(픽셀별)으로 샘플링 위치들(픽셀들)의 시퀀스로서 유저에게 표시되는 출력 변환된 프레임을 발생한다. 본 실시예들에서, 상기 변환 엔진은, 출력 변환된 프레임 래스터 라인별(예컨대, 출력 변환된 프레임이 표시를 위해 디스플레이(4)에 제공될 필요가 있는 순서에 따라) 발생하도록 구성된다.
도 8 및 도 9는, 그래픽 프로세서에서 발생한 표시되는 프레임의 주어진 버전으로부터 샘플링할 때 XR처리 유닛들의 동작을 주로 예시한 것이다. 포비티드 표시를 본 실시예들의 방식으로 행할 때, 상기 동작은, 그래픽 프로세서에서 발생한 상기 프레임의 상이한 해상도 버전들의 하나 이상으로부터 적절하게 샘플링하는데 사용된다. 이하, 본 동작의 실시예들은, 도 10, 도 11 및 도 12를 참조하여 보다 상세히 설명하겠다.
도 10은, 본 발명의 방식으로 표시를 위한 포비티드 화상들을 발생할 때 도 7에 도시된 것처럼 디스플레이 프로세서(5)의 동작의 제1 실시예를 도시한 것이다.
도 10에 도시된 것처럼, 본 구성에서는, XR처리 유닛들(222, 223)의 각각은, 입력 프레임의 복수의 상이한 해상도 버전들로부터 출력 뷰 방향 변환된 프레임을 발생 가능하다(도 10은 사용되는 2개의 밉맵 레벨을 도시한 것이다).
따라서, 도 10에 도시된 것처럼, 이 경우에, 각기 각각의 디스플레이 처리 파이프라인은, 상이한 눈에 대한 출력 화상을 발생하는데 사용될 수 있었다. 또는, 본 구성에서, 상기 디스플레이 처리 파이프라인들 중 하나는 액티브 상태이고 출력 프레임(화상)을 발생중일 수 있었고, 그 밖의 디스플레이 처리 파이프라인은 유휴상태인채로 있다. 또한, 제2의 디스플레이 처리 파이프라인은, 원하는 경우, 제1의 디스플레이 처리 파이프라인에서 발생한 출력 프레임과 합성되는 또 하나의 출력 프레임을 처리하는데 사용될 수 있었다.
도 10에 도시된 것처럼, XR 처리 유닛들(222, 223)은, 입력으로서, 표시되는 화상의 복수의 상이한 해상도 버전들로부터의 (적절한) 데이터뿐만 아니라, 프레임의 어느 해상도 버전들을 표시되는 상기 출력 프레임에서 사용할지를 나타내는 적절한 밀도 맵/텍스처(230)도 취한다.
따라서, 상기 XR처리 유닛들은, (상술한 방식으로) 출력 뷰 방향 변환된 프레임에서 데이터 요소(샘플링 위치)에 대한 데이터 값들을 제공하기 위해 샘플링되는 입력 프레임 위치들의 세트를 결정할 뿐만 아니라, 그래픽 프로세서에서 발생한 프레임의 어느 해상도 버전이 발생되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 밀도 맵(230)을 사용하여, 그래픽 프로세서에서 발생한 프레임의 복수의 상이한 해상도 버전들의 어느 버전 또는 버전들을 입력 프레임 위치들의 해당 세트로부터 데이터를 샘플링할지도 결정한다.
본 실시예에서, 상기 XR 처리 유닛은, (상술한 방식으로) 출력 뷰 방향 변환된 프레임에서 데이터 요소(샘플링 위치)에 대한 데이터 값들을 제공하기 위해 샘플링되는 입력 프레임 위치들의 세트를 결정하고, 그 위치들을 사용하여 밀도 맵(230)의 관련 구역(들)의 디스플레이 프로세서의 로컬 스토리지에의 페치를 결정하여 기동할 것이다. 그 후, 그 페치된 밀도 맵 구역(들)은, 예를 들면, 상기 프레임의 복수의 상이한 해상도 버전들의 어느 버전이나 버전들을 당해 출력 프레임 데이터 요소에 대해 샘플링할지를 결정하는데 사용되기 전에, 업스케일되어도 된다.
그 후, 입력 프레임의 상기 결정된 복수의 상이한 해상도 입력 버전들의 관련 구역들은, 밀도 맵 정보에 근거하여 메모리 서브시스템(220)에 의해 페치될 것이다.
그 후, 상기 변환 스테이지는, 당해 출력 뷰 방향 변환된 데이터 요소(픽셀)를 제공하기 위해 상기 결정된 위치들에서의 상기 입력 프레임의 상기와 같이 해서 페치된 상이한 해상도 버전이나 버전들을 샘플링할 것이다.
이 구성의 일 실시예에서, 상기 디스플레이 프로세서에 제공된 밀도 맵(230)은, 항상, 상기 출력 프레임의 임의의 주어진 구역에 사용하기 위해 단일의 해상도 버전(밉맵 레벨)만을 나타낸다. 이 경우에, 뷰 방향 변환들을 수행할 때, XR 처리 유닛들(222, 223)은, 이에 따라, 입력 프레임의 어느 해상도 버전(밉맵 레벨)을, 하나의(및 각) 각각의 뷰 방향 변환된 출력 프레임 데이터 요소(픽셀)에 대해 샘플링할지를 결정하기 위해 밀도 맵을 사용할 것이다. 그 후, 변환 스테이지는, 적절한 방식으로, 이를테면 및 바람직하게는, 이중선형 필터링을 사용하여 상기 프레임의 해당 단일의 결정된 해상도 버전을 샘플링할 것이다.
이 경우에, 상기 프레임의 임의의 저해상도 버전들으, 사용중인 프레임의 최고의 해상도 버전(밉맵 레벨)에 일치하도록 업스케일되고 나서, XR 처리 유닛(222)에 의해 관련 출력 프레임 데이터 요소(픽셀)를 제공하도록 샘플링된다. 이것은, 적절한 해상도로 상기 뷰 방향 변환된 출력 프레임을 발생하는 것을 용이하게 할 것이다.
필요한 경우, 상기 뷰 방향 변환된 출력 프레임에서 상이한 해상도 버전간의 경계들(천이들)을 고려하기 위해 상이한 해상도 버전들(밉맵 층들)의 사전 블렌딩은, 입력 프레임들의 상이한 뷰 해상도 버전들이 디스플레이 프로세서(5)에 제공되기 전에, 그래픽 프로세서(2)상에서 수행될 수 있다.
또 하나의 실시예에서, 상기 밀도 맵(230)은, 하나의 프레임(밉맵 레벨)의 하나보다 많은 상이한 해상도 버전이 사용되어 주어진 뷰 방향 변환된 출력 프레임 위치(픽셀)를 발생하는 것을 나타낼 수 있다. 예를 들면, 상기 밀도 맵은, 소수값들로서, 및/또는 그래디언트로 환산하여 사용하기 위해 상이한 해상도 버전들(밉맵 레벨들)을 나타낼 수 있었다.
이 경우에, 주어진 뷰 방향 변환된 출력 프레임 위치에 대한 밀도 맵은, 적용되는, 해당 뷰 방향 변환된 프레임 위치(픽셀) 및 상기, 예를들면 그래디언트 계수로부터 샘플링하기 위해 상이한 해상도 버전들(밉맵 레벨(들))의 수를 결정하도록 확인될 것이다. 그 후, 메모리 서브시스템(220)은, 요구된 적절한 상이한 해상도 버전(들)의 타일들을 처리하기 위해 로컬 버퍼(221)에 페치하도록 제어될 것이다.
그 후, 상기 변환 스테이지는, 적절한 방식으로, 이를테면 및 바람직하게는, 삼중선형 필터링을 사용하여, 상기 프레임의 복수의 상이한 해상도 버전들로부터 샘플링할 것이다.
이 경우에, 상이한 해상도 버전들이 적절하게(예를 들면, 임의의 경계 구역들에서 중첩하도록) 발생되는 경우, 2개의 상이한 해상도 버전들(2개의 밉맵 레벨)로부터 샘플링할 때, 삼중선형 필터링(보간)은, 그래픽 프로세서(2)에 의해 상이한 해상도 버전들(밉맵 레벨들)의 임의의 사전 블렌딩에 대한 필요 없이, 직접 그것을 행하는데 사용될 수 있다. 그 밖의 구성들, 이를테면, 샘플링 보간을 수행하기 전에 상기 화상의 임의의 저해상도 버전들을 적절하게 업스케링하는 것을, 원하는 경우 사용할 수 있었다.
이 실시예들에서, 또한, 뷰 방향 변환된 출력 프레임에서 데이터 요소들을 발생할 때 샘플링(및 필터링) 프로세스는, 입력 프레임의 상이한 해상도(또는 적어도 상이한 최고의 해상도) 버전들을 사용하여 발생될 출력 프레임의 구역간의 천이들을 고려하고, 매끄럽게 하도록 작용할 수도 있다. 이것은, 임의의 적절하고 원하는 방식으로 행해질 수도 있다.
그 후, 적절한 XR 처리 유닛에서 발생한 뷰 방향 변환된 출력 프레임(에 대한 픽셀들)은, 층 파이프라인(224)에 의해 (통상의 방식으로) 처리되고 나서, 필요한 경우, (표시되는 프레임마다) 합성 유닛(226)에서 임의의 그 밖의 출력 프레임들과 합성된 후, 디스플레이 출력 파이프라인(227)을 거쳐 표시를 위해 디스플레이에 제공(되는 등 할 것이다)될 것이다.
도 11은, 도 10에 도시된 실시예들에 대한 다른 실시예를 도시한 것이다. 본 실시예에서, 도 11에 도시된 것처럼, 표시되는 프레임의 각기 각각의 상이한 해상도 버전은, 디스플레이 프로세서(5)의 디스플레이 처리 파이프라인들(XP 처리 유닛들)의 상이한 버전에 의해 변환된 뷰 방향이다. 그 후, 이렇게 해서 뷰 방향 변환된 프레임들은, 상이한 출력 프레임 위치들에 대한 투명도(알파) 값들에 따라 합성 유닛(226)에서 조합되고나서, 표시를 위해 전체적인, 포비티드, 뷰 방향 변환된 프레임을 제공한다.
따라서, 이 경우에, 도 11에 도시된 것처럼, 제1의 디스플레이 처리 파이프라인의 XR 처리 유닛(222)은, 표시되는 프레임의 최고의 해상도 버전(밉맵 레벨 0)을 처리하고, 제2의 디스플레이 처리 파이프라인의 제2의 XR 처리 유닛(223)은 표시되는 프레임의 저해상도 버전(밉맵 레벨 1)을 뷰 방향 변환할 것이다.
후자의 경우에, 도 11에 도시된 것처럼, 또한, XR 처리 유닛(223)은, 해당 프레임의 뷰 방향 변환된 버전을 발생할 때 입력 프레임의 최고의 해상도 버전의 해상도와 일치하도록, 상기 프레임의 저해상도 버전(밉맵 레벨 1)을 업스케일하게 동작할 것이다. 그 후, 이것은, 합성 유닛(226)에서 상기 프레임의 2개의 상이한 해상도 버전들의 블렌딩을 용이하게 한다.
본 실시예에서, 밀도 맵(230)을 도 10에 도시된 실시예들에서와 같이 디스플레이 프로세서(5)에 제공하는 대신에, 출력 프레임의 구역마다 입력 프레임의 어느 상이한 해상도 버전이 사용되는지를 나타내는 정보는, 그래픽 프로세서(2)에 의해 발생되는 입력 프레임의 상이한 해상도 버전들에서 그 상이한 데이터 요소들(픽셀들)과 관련된 알파(투명도) 값들의 세트의 형태로 제공된다. 그 후, 투명도 값들은, 전체적인 조합된(합성된) 뷰 방향 변환된 출력 프레임이 디스플레이 출력 파이프라인(227)을 거쳐 (표시되는 프레임마다) 표시를 위한 디스플레이에 제공되는( 등) 전에 합성 유닛(226)에서 입력 프레임의 뷰 방향 변환된 상이한 해상도 버전들의 블렌딩을 제어하는데 사용된다.
본 실시예에서, 그래픽 프로세서(2)에 제공된 밀도 텍스처들(밀도 맵들)(230)은, 제공된 밀도 텍스처들로부터 상기 요구된 투명도(알파) 값들을 발생하여, 그 알파 값들을 그래픽 프로세서(5)에서 발생한 상이한 해상도 버전들(밉맵 레벨들)의 데이터 요소(픽셀) 값들에 "삽입"하도록, 그래픽 프로세서(2)상에서 별도의 처리 패스(pass)를 사용하여 상기 그래픽 프로세서에 의해 발생되는 상기 표시되는 프레임의 상이한 해상도 버전들에서의 데이터 요소들(픽셀들)에 대한 상기 요구된 알파(투명도) 값들로 변환된다.
물론, 그 밖의 구성들도 가능할 것이다.
도 12는 표시용 프레임들(화상들)을 (유선 또는 무선) 동반 디스플레이 디바이스(시스템 온 칩)(301)(이를테면, 및 바람직하게는, 헤드셋)에 송신하는 (예를 들면, 휴대장치, 이를테면, 전화, 또는 PC나 콘솔일 수 있는) 호스트 디바이스(시스템 온 칩)(300) 모두를 구비하는 데이터 처리 시스템에서 구현되었을 때의 본 발명의 추가의 실시예를 도시한 것으로, 이때의 동반 디스플레이 디바이스(301)는 본 발명의 방식으로 표시하기 위한 뷰 방향 변환된 포비티드 프레임들을 생성 가능한 상기 디스플레이와 디스플레이 프로세서도 구비한다.
본 실시예에서, 호스트 디바이스(300)의 예를 들면 그래픽 프로세서(2)는, 표시되는 프레임들의 복수의 상이한 해상도 버전들을 생성할 것이지만, 그 후, 본 발명의 디스플레이 프로세서 동작은 동반 디스플레이 디바이스(301)에서 디스플레이 프로세서(5)상에서 수행된다.
도 12에 도시된 것처럼, 또한, 호스트 디바이스(300)는, 적절한 드라이버(309)에 의해 제어되는 디스플레이 프로세서(306)를 구비한다. 또한, 호스트 디바이스는, 적절한 송신 및 압축 회로소자(304)도 구비하고, 동반 디스플레이 디바이스(301)에 적절한 유선 또는 무선 트랜스포트(307)에 의해 결합된다. 이에 대응하게, 동반 디스플레이 디바이스(301)는, 호스트 디바이스(300)로부터 수신된 데이터를 기억하는 적절한 수신기 회로소자(305)와 버퍼(메모리)(302)를 구비한다.
본 실시예에서는, 본 발명의 방식으로 처리하는 동반 디바이스 디스플레이 프로세서(5)에 하나의 프레임(예를 들면, 밉맵들의 세트)의 복수의 상이한 해상도 버전들을 제공하는 것이 필요하다.
본 실시예에서, 이것은, 도 12에 도시된 것처럼, 호스트 디바이스(300)상에서 디스플레이 프로세서(306)에 의해, 표시를 위해 상기 출력 뷰 방향 변환된 포비티드 프레임을 발생하기 위해 동반 디스플레이 디바이스(301)상에서 디스플레이 프로세서(5)에서 필요로 할 그래픽 프로세서(2)에서 발생한 상기 프레임의 복수의 상이한 해상도 버전들의 그 부분들을 특정하고 나서, 그래픽 프로세서(2)에서 발생한 복수의 상이한 해상도 버전들의 그 부분들을 적절한 프레임 구조에 팩(pack)하고 나서 해당 프레임 데이터를, 상기 프레임의 어느 해상도 버전을 상기 출력 프레임에서 사용할지를 나타내는 적절한 밀도 맵들과 함께, 동반 디스플레이 디바이스(301)에 송신함으로써, 행해진다.
도 12에 도시된 것처럼, 동반 디스플레이 디바이스(301)에 송신되는 상기 팩된 데이터는, 원하는 경우, 압축(이에 대응하게 동반 디스플레이 디바이스(301)상에서 압축해제)되어도 된다. 상기 데이터의 임의의 그 밖의 필요한 포맷 변경, 변환 또는 언팩킹도, 상기 동반 디바이스상에서 적절하게 수행되어야 한다.
이를 행하기 위해서, 호스트 디바이스(300)상의 디스플레이 프로세서(306)는, 그래픽 프로세서(2)에서 발생한 프레임의 어느 해상도 버전들이 상기 출력 뷰 방향 변환된 프레임에서 사용되는지를 나타내는 밀도 맵들을 사용하여, 상기 프레임의 각 상이한 해상도 버전의 어느 구역들(타일들)이 표시용 프레임의 출력 버전을 발생할 때 상기 동반 디바이스(301)에서의 디스플레이 프로세서(5)에 의해 필요로 될지를 특정하여도 된다.
그 후, 호스트 디바이스(300)상의 디스플레이 프로세서(306)는, 이에 따라, 이를테면, 도 12에 도시된 것처럼, 상기 프레임(밉맵 레벨 0)의 최고의 해상도 버전의 기가시(비사용) 부분을 제거하여, 상기 프레임의 밉맵 레벨(예를 들면, 최고의 해상도 버전)을 위한 중복된 데이터의 송신을 피하기 위해서, 상기 프레임의 상이한 해상도 버전들의 하나 이상을 잘라내어도 된다. 그 후, 호스트 디바이스(300)상의 디스플레이 프로세서(306)는, 프레임의 상이한 해상도 버전들의 상기 특정된 부분들을 본 실시예에서는 단일의 프레임 구조에 팩한 후, 해당 단일의 프레임 구조를 압축하고 해당 팩된 프레임 구조를 상기 밀도 맵과 함께 상기 동반 디바이스(301)에 송신한다.
이 경우에, 상기 출력 프레임은, 바람직하게는 (상술한 것처럼) 복수의 데이터 요소들의 직사각형(바림직하게는 정사각형) 블록을 각각 포함하는 복수의, 바람직하게는 사이즈와 형상이 규칙적인 구역들로 분할되는 것이 바람직하고, 생성기 처리 유닛에서 생성한 프레임의 어느 해상도 버전이 요구될지를 상기 출력에서의 구역마다 결정되고, 이때의 호스트 디바이스는 상기 프레임의 상기 결정된 해상도 버전이나 버전들의 상기 특정된 구역들을 상기 동반 디바이스에 송신한다.
그 후, 이렇게 해서 송신된 상기 프레임의 상이한 해상도 버전들의 부분들은, 상기 동반 디바이스의 디스플레이 프로세서에서 사용하기 위해 이용 가능하도록 동반 디바이스의 버퍼(302)에 적절하게 기억된다.
그 후, 동반 디스플레이 디바이스(301)상의 디스플레이 프로세서(5)는, 표시를 위한 상기 뷰 방향 변환된 포비티드 출력 프레임을 발생하기 위한 것일 때, 상기 프레임의 상기 팩된 상이한 해상도 버전들(밉맵들)의 관련 부분들을 상기 동반 디스플레이 디바이스(301)상의 메모리(302)로부터 페치하고, 이에 따라 (예를 들면, 상술한 방식들 중 하나의 방식에서) 표시를 위한 뷰 방향 변환된 포비티드 프레임(화상)을 발생할 것이다.
이상으로부터, 적어도 본 발명의 바람직한 실시예들에서의 본 발명은, 표시를 위해 뷰 방향 변환된 포비티드 화상들의 발생을 용이하게 한다는 것을 알 수 있다. 이것은, 적어도 본 발명의 바람직한 실시예들에서, 디스플레이 프로세서에 의해, 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이, 발생되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터를 사용하여, 생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들로부터 프레임의 뷰 방향 변환된 출력 버전을 발생함으로써, 이루어진다.

Claims (27)

  1. 데이터 처리 시스템의 동작방법으로서, 상기 데이터 처리 시스템이:
    표시용 프레임들을 표시 가능한 디스플레이;
    디스플레이 상에 표시용 프레임들을 발생 가능한 생성기 처리 유닛; 및
    생성기 처리 유닛에 의해 발생된 프레임들을 표시를 위해 디스플레이에 제공 가능한 디스플레이 프로세서를 구비하고, 상기 디스플레이 프로세서는:
    입력 프레임들의 데이터를 판독 가능한 입력 스테이지;
    표시용 프레임들을 디스플레이에 제공 가능한 출력 스테이지; 및
    입력 스테이지에 의해 판독된 입력 프레임의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 발생 가능한 적어도 하나의 변환 스테이지를 구비하고;
    상기 방법은:
    생성기 처리 유닛에 의해, 표시되는 프레임에 대해, 이 표시되는 프레임의 복수의 상이한 해상도 버전들을 발생하는 단계;
    생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 표시를 위해 디스플레이 프로세서에서 발생하는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터를 디스플레이 프로세서에 제공하는 단계;
    디스플레이 프로세서의 입력 스테이지에 의해, 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부 또는 전부의 데이터를 판독하는 단계;
    디스플레이 프로세서에 의해, 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여, 입력 스테이지에서 판독한 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여, 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하는 단계; 및
    디스플레이 프로세서의 출력 스테이지에 의해, 표시를 위해 디스플레이에, 프레임의 뷰 방향 변환된 출력 버전을 제공하는 단계를 포함하는, 동작방법.
  2. 제 1 항에 있어서,
    프레임의 상이한 해상도 버전들은 전체의 프레임의 일부이지만 전부가 아닌 프레임에 대해서만 각각 발생되고, 상이한 해상도 버전들은 프레임의 그들의 커버리지에서 중첩하는, 동작방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 표시를 위해 디스플레이 프로세서에 의해 발생되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터는, 프레임의 복수의 상이한 해상도 버전들이 적어도 일부의 출력 프레임 구역들에 대해 조합되는 것을 나타내는, 동작방법.
  4. 제 1 항 또는 제 2 항에 있어서,
    생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 표시를 위해 디스플레이 프로세서에 의해 발생되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터는:
    표시되는 출력 프레임의 영역을 표현하는 2차원 어레이-이 어레이내의 각각의 데이터 요소 위치들은 프레임의 어느 해상도 버전을 출력 프레임내의 해당 구역에 대해 사용할지를 나타냄-;
    프레임의 최고의 해상도 버전이 사용되는 출력 프레임 구역들을 명시하는 바운딩 박스; 및
    프레임의 상이한 해상도 버전과 관련되는 투명도 값들 중,
    하나를 포함하는, 동작방법.
  5. 제 1 항 또는 제 2 항에 있어서,
    디스플레이 프로세서는,
    생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 각각에 대해, 표시되는 프레임의 해당 해상도 버전의 각각의 뷰 방향 변환된 버전을 발생하고;
    프레임의 복수의 상이한 해상도 버전들의 뷰 방향 변환된 버전들의 조합을 포함하는 표시용 프레임의 뷰 방향 변환된 출력 버전을 제공하기 위해, 프레임의 어느 해상도 버전이 표시되는 프레임의 뷰 방향 변환된 출력 버전에 사용되는지를 나타내는 데이터에 근거하여 프레임의 복수의 상이한 해상도 버전들의 복수의 뷰 방향 변환된 버전들을 조합함으로써,
    프레임의 어느 해상도 버전이 프레임의 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하는, 동작방법.
  6. 제 5 항에 있어서,
    프레임의 임의의 저해상도 버전은, 먼저, 사용중인 프레임의 최고의 해상도 버전의 해상도로 업스케일된 후 뷰 방향 변환이 실시되는, 동작방법.
  7. 제 1 항 또는 제 2 항에 있어서,
    디스플레이 프로세서는,
    디스플레이 프로세서의 변환 스테이지에 의해, 출력 프레임의 어느 구역들에서 어느 해상도 버전을 사용할지를 나타내는 데이터에 근거하여 생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 조합으로부터 표시를 위해 뷰 방향 변환된 출력 프레임을 발생함으로써,
    프레임의 어느 해상도 버전이 프레임의 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하는, 동작방법.
  8. 제 7 항에 있어서,
    디스플레이 프로세서는,
    발생되는 프레임의 뷰 방향 변환된 출력 버전에서의 복수의 데이터 요소들의 각각에 대해, 디스플레이 프로세서의 변환 스테이지에 의해:
    출력 뷰 방향 변환된 프레임에서 데이터 요소에 대한 데이터 값들을 제공하기 위해 샘플링되는 하나 이상의 입력 프레임 위치들의 세트를 결정하고;
    생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 발생되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터를 사용하여, 생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 어느 버전이나 버전들을 상기 결정된 하나 이상의 입력 프레임 위치들의 세트에서 샘플링할지를 결정하고 나서;
    상기 출력 뷰 방향 변환된 프레임 데이터 요소의 데이터 값들을 제공하기 위해 상기 결정된 위치들에서 입력 프레임의 이렇게 해서 결정된 상이한 해상도 버전이나 버전들을 샘플링함으로써,
    프레임의 어느 해상도 버전이 프레임의 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여, 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하는, 동작방법.
  9. 제 1 항 또는 제 2 항에 있어서,
    생성기 처리 유닛은 호스트 디바이스의 일부이고, 디스플레이 프로세서는 호스트 디바이스와 통신하고 있는 동반 디스플레이 디바이스의 일부이고;
    상기 방법은:
    호스트 디바이스에 의해:
    프레임의 복수의 상이한 해상도 버전들을 사용하여 표시용 출력 프레임을 발생할 때 상기 동반 디바이스상에서 디스플레이 프로세서에 의해 요구될 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부들을 결정하는 단계; 및
    발생되어 있는 프레임의 상이한 해상도 버전들의 상기 결정된 일부들만을 동반 디스플레이 디바이스상의 디스플레이 프로세서에서 사용하기 위한 상기 동반 디바이스에 송신하는 단계를 포함하고;
    동반 디스플레이 디바이스상의 디스플레이 프로세서에 의해:
    호스트 디바이스에 의해 동반 디스플레이 디바이스에 송신된 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여, 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하는 단계를 포함하는, 동작방법.
  10. 데이터 처리 시스템의 동작방법으로서, 상기 데이터 처리 시스템은:
    디스플레이 상에 표시용 프레임들을 발생 가능한 생성기 처리 유닛을 구비하는 호스트 디바이스; 및
    표시용 프레임들을 표시 가능한 디스플레이;
    생성기 처리 유닛에 의해 발생된 프레임들을 표시를 위해 디스플레이에 제공 가능한 디스플레이 프로세서를 구비하는, 동반 디스플레이 디바이스를 포함하고, 상기 디스플레이 프로세서는:
    입력 프레임들의 데이터를 판독 가능한 입력 스테이지;
    표시용 프레임들을 디스플레이에 제공 가능한 출력 스테이지; 및
    상기 입력 스테이지에 의해 판독된 입력 프레임의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 발생 가능한 적어도 하나의 변환 스테이지를 구비하고;
    상기 방법은:
    생성기 처리 유닛에 의해, 표시되는 프레임에 대해, 이 표시되는 프레임의 복수의 상이한 해상도 버전들을 발생하는 단계;
    상기 호스트 디바이스에 의해:
    프레임의 복수의 상이한 해상도 버전들을 사용하여 표시를 위한 출력 프레임을 발생할 때, 상기 동반 디바이스상의 디스플레이 프로세서에 의해 요구될, 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부들을 결정하는 단계; 및
    발생되어 있는 프레임의 상이한 해상도 버전들의 상기 결정된 일부들만을, 동반 디바이스상의 디스플레이 프로세서에서 사용하기 위해 동반 디바이스에 송신하는 단계; 및
    동반 디바이스상의 디스플레이 프로세서에 의해:
    호스트 디바이스에 의해 동반 디바이스에 송신된 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여, 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하는 단계; 및
    프레임의 뷰 방향 변환된 출력 버전을 표시를 위해 디스플레이에 제공하는 단계를 포함하는, 동작방법.
  11. 제 9 항에 있어서,
    호스트 디바이스는, 표시를 위해 디스플레이 프로세서에서 발생하는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터를, 동반 디스플레이 디바이스상의 디스플레이 프로세서에서 사용하기 위해 동반 디스플레이 디바이스에도 송신하는, 동작방법.
  12. 제 9 항에 있어서,
    호스트 디바이스는, 표시를 위해 동반 디스플레이 디바이스상의 디스플레이 프로세서에서 발생하는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터를 사용하여, 프레임의 복수의 상이한 해상도 버전들을 사용해서 표시용 출력 프레임을 발생할 때 동반 디스플레이 디바이스상에서 디스플레이 프로세서에 의해 요구될 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부들을 결정하는, 동작방법.
  13. 데이터 처리 시스템으로서,
    표시용 프레임들을 표시 가능한 디스플레이;
    디스플레이 상에 표시용 프레임들을 발생 가능한 생성기 처리 유닛; 및
    생성기 처리 유닛에 의해 발생된 프레임들을 표시를 위해 디스플레이에 제공 가능한 디스플레이 프로세서를 구비하고, 상기 디스플레이 프로세서는:
    입력 프레임들의 데이터를 판독 가능한 입력 스테이지;
    표시용 프레임들을 디스플레이에 제공 가능한 출력 스테이지; 및
    입력 스테이지에 의해 판독된 입력 프레임의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 발생 가능한 적어도 하나의 변환 스테이지를 구비하고;
    생성기 처리 유닛은, 표시되는 프레임에 대해, 이 표시되는 프레임의 복수의 상이한 해상도 버전들을 발생하도록 구성되고;
    디스플레이 프로세서의 입력 스테이지는, 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부 또는 전부의 데이터를 판독하도록 구성되고;
    디스플레이 프로세서는, 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이, 디스플레이 프로세서에 제공된 표시를 위해 디스플레이 프로세서에서 발생하는 표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여 입력 스테이지에서 판독한 생성기 처리 유닛에서 발생한 상기 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여, 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하도록 구성되고;
    디스플레이 프로세서의 출력 스테이지는, 표시를 위해 디스플레이에, 프레임의 뷰 방향 변환된 출력 버전을 제공하도록 구성되는, 데이터 처리 시스템.
  14. 제 13 항에 있어서,
    프레임의 상이한 해상도 버전들은 전체의 프레임의 일부이지만 전부가 아닌 프레임에 대해서만 각각 발생되고, 상이한 해상도 버전들은 프레임의 그들의 커버리지에서 중첩하는, 데이터 처리 시스템.
  15. 제 13 항 또는 제 14 항에 있어서,
    생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 표시를 위해 디스플레이 프로세서에 의해 발생되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터는, 프레임의 복수의 상이한 해상도 버전들이 적어도 일부의 출력 프레임 구역들에 대해 조합되는 것을 나타내는, 데이터 처리 시스템.
  16. 제 13 항 또는 제 14 항에 있어서,
    생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 표시를 위해 디스플레이 프로세서에 의해 발생되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터는:
    표시되는 출력 프레임의 영역을 표현하는 2차원 어레이-이 어레이내의 각각의 데이터 요소 위치들은 프레임의 어느 해상도 버전을 출력 프레임내의 해당 구역에 대해 사용할지를 나타냄-;
    프레임의 최고의 해상도 버전이 사용되는 출력 프레임 구역들을 명시하는 바운딩 박스; 및
    프레임의 상이한 해상도 버전과 관련되는 투명도 값들 중,
    하나를 포함하는, 데이터 처리 시스템.
  17. 제 13 항 또는 제 14 항에 있어서,
    디스플레이 프로세서는,
    생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 각각에 대해, 표시되는 프레임의 해당 해상도 버전의 각각의 뷰 방향 변환된 버전을 발생하고;
    프레임의 복수의 상이한 해상도 버전들의 뷰 방향 변환된 버전들의 조합을 포함하는 표시용 프레임의 뷰 방향 변환된 출력 버전을 제공하기 위해, 프레임의 어느 해상도 버전이 표시되는 프레임의 뷰 방향 변환된 출력 버전에 사용되는지를 나타내는 데이터에 근거하여 프레임의 복수의 상이한 해상도 버전들의 복수의 뷰 방향 변환된 버전들을 조합함으로써,
    프레임의 어느 해상도 버전이 프레임의 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하도록 구성되는, 데이터 처리 시스템.
  18. 제 17 항에 있어서,
    프레임의 임의의 저해상도 버전은, 먼저, 사용중인 프레임의 최고의 해상도 버전의 해상도로 업스케일된 후 뷰 방향 변환이 실시되는, 데이터 처리 시스템.
  19. 제 13 항 또는 제 14 항에 있어서,
    디스플레이 프로세서는,
    디스플레이 프로세서의 변환 스테이지에 의해, 출력 프레임의 어느 구역들에서 어느 해상도 버전을 사용할지를 나타내는 데이터에 근거하여 생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 조합으로부터 표시를 위해 뷰 방향 변환된 출력 프레임을 발생함으로써,
    프레임의 어느 해상도 버전이 프레임의 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하도록 구성되는, 데이터 처리 시스템.
  20. 제 19 항에 있어서,
    디스플레이 프로세서는,
    발생되는 프레임의 뷰 방향 변환된 출력 버전에서의 복수의 데이터 요소들의 각각에 대해, 디스플레이 프로세서의 변환 스테이지에 의해:
    출력 뷰 방향 변환된 프레임에서 데이터 요소에 대한 데이터 값들을 제공하기 위해 샘플링되는 하나 이상의 입력 프레임 위치들의 세트를 결정하고;
    생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 발생되는 프렝미의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터를 사용하여, 생성기 처리 유닛에서 발생한 프레임의 복수의 상이한 해상도 버전들의 어느 버전이나 버전들을 상기 결정된 하나 이상의 입력 프레임 위치들의 세트에서 샘플링할지를 결정하고 나서;
    상기 출력 뷰 방향 변환된 프레임 데이터 요소의 데이터 값들을 제공하기 위해 상기 결정된 위치들에서 입력 프레임의 이렇게 해서 결정된 상이한 해상도 버전이나 버전들을 샘플링함으로써,
    프레임의 어느 해상도 버전이 프레임의 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여, 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하도록 구성되는, 데이터 처리 시스템.
  21. 제 13 항 또는 제 14 항에 있어서,
    생성기 처리 유닛은 호스트 디바이스의 일부이고, 디스플레이 프로세서는 호스트 디바이스와 통신하고 있는 동반 디스플레이 디바이스의 일부이고;
    상기 호스트 디바이스는:
    프레임의 복수의 상이한 해상도 버전들을 사용하여 표시용 출력 프레임을 발생할 때 상기 동반 디바이스상에서 디스플레이 프로세서에 의해 요구될 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부들을 결정하고;
    발생되어 있는 프레임의 상이한 해상도 버전들의 상기 결정된 일부들만을 동반 디스플레이 디바이스상의 디스플레이 프로세서에서 사용하기 위한 상기 동반 디바이스에 송신하도록 구성되고;
    동반 디스플레이 디바이스상의 디스플레이 프로세서는:
    호스트 디바이스에 의해 동반 디스플레이 디바이스에 송신된 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하도록 구성되는, 데이터 처리 시스템.
  22. 데이터 처리 시스템으로서,
    디스플레이 상에 표시용 프레임들을 발생 가능한 생성기 처리 유닛을 구비하는 호스트 디바이스; 및
    표시용 프레임들을 표시 가능한 디스플레이;
    생성기 처리 유닛에 의해 발생된 프레임들을 표시를 위해 디스플레이에 제공 가능한 디스플레이 프로세서를 구비한, 동반 디스플레이 디바이스를 포함하고, 상기 디스플레이 프로세서는:
    입력 프레임들의 데이터를 판독 가능한 입력 스테이지;
    표시용 프레임들을 디스플레이에 제공 가능한 출력 스테이지; 및
    입력 스테이지에 의해 판독된 입력 프레임의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 발생 가능한 적어도 하나의 변환 스테이지를 구비하고;
    생성기 처리 유닛은, 표시되는 프레임에 대해, 이 표시되는 프레임의 복수의 상이한 해상도 버전들을 발생하도록 구성되고;
    호스트 디바이스는:
    프레임의 복수의 상이한 해상도 버전들을 사용하여 표시를 위한 출력 프레임을 발생할 때, 동반 디스플레이 디바이스상의 디스플레이 프로세서에 의해 요구될, 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부들을 결정하고;
    발생되어 있는 프레임의 상이한 해상도 버전들의 상기 결정된 일부들만을, 동반 디스플레이 디바이스상의 디스플레이 프로세서에서 사용하기 위해 동반 디스플레이 디바이스에 송신하도록 구성되고;
    동반 디스플레이 디바이스상의 디스플레이 프로세서는:
    호스트 디바이스에 의해 동반 디스플레이 디바이스에 송신된 생성기 처리유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여, 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하고;
    프레임의 뷰 방향 변환된 출력 버전을 표시를 위해 디스플레이에 제공하도록 구성되는, 데이터 처리 시스템.
  23. 제 21 항에 있어서,
    호스트 디바이스는, 표시를 위해 디스플레이 프로세서에서 발생하는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터를, 동반 디스플레이 디바이스상의 디스플레이 프로세서에서 사용하기 위해 동반 디스플레이 디바이스에도 송신하도록 구성되는, 데이터 처리 시스템.
  24. 제 21 항에 있어서,
    호스트 디바이스는, 표시를 위해 동반 디스플레이 디바이스상의 디스플레이 프로세서에서 발생하는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 생성기 처리 유닛에서 발생한 프레임의 어느 해상도 버전이 사용되는지를 나타내는 데이터를 사용하여, 프레임의 복수의 상이한 해상도 버전들을 사용해서 표시용 출력 프레임을 발생할 때 동반 디스플레이 디바이스상에서 디스플레이 프로세서에 의해 요구될 생성기 처리 유닛에서 발생한 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부들을 결정하도록 구성되는, 데이터 처리 시스템.
  25. 프레임들을 표시를 위해 디스플레이에 제공 가능한 디스플레이 프로세서로서,
    입력 프레임들의 데이터를 판독 가능한 입력 스테이지;
    표시용 프레임들을 디스플레이에 제공 가능한 출력 스테이지; 및
    입력 스테이지에 의해 판독된 입력 프레임의 데이터를 사용하여 뷰 방향 변환된 출력 프레임을 발생 가능한 적어도 하나의 변환 스테이지를 구비하고;
    디스플레이 프로세서의 입력 스테이지는, 표시되는 프레임의 복수의 상이한 해상도 버전들의 일부 또는 전부의 데이터를 판독하도록 구성되고;
    디스플레이 프로세서는, 프레임의 어느 해상도 버전이, 디스플레이 프로세서에 제공된 표시를 위해 디스플레이 프로세서에서 발생하는 표시되는 프레임의 뷰 방향 변환된 출력 버전의 구역마다 사용되는지를 나타내는 데이터에 근거하여, 입력 스테이지에서 판독한 표시되는 프레임의 복수의 상이한 해상도 버전들로부터의 데이터를 사용하여, 표시되는 프레임의 뷰 방향 변환된 출력 버전을 발생하도록 구성되고;
    디스플레이 프로세서의 출력 스테이지는, 표시를 위해 디스플레이에, 프레임의 뷰 방향 변환된 출력 버전을 제공하도록 구성되는, 디스플레이 프로세서.
  26. 청구항 13 또는 22의 데이터 처리 시스템을 구비하는 헤드 장착형 디스플레이 디바이스.
  27. 컴퓨터 소프트웨어 코드를 포함하는 컴퓨터 프로그램이 데이터 프로세서상에서 실행될 때 청구항 1 또는 10의 방법을 실행하기 위해, 기억매체에 기억된, 컴퓨터 프로그램.
KR1020190140609A 2018-11-07 2019-11-06 데이터 처리 시스템 KR20200052846A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1818163.6A GB2578769B (en) 2018-11-07 2018-11-07 Data processing systems
GB1818163.6 2018-11-07

Publications (1)

Publication Number Publication Date
KR20200052846A true KR20200052846A (ko) 2020-05-15

Family

ID=64655552

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190140609A KR20200052846A (ko) 2018-11-07 2019-11-06 데이터 처리 시스템

Country Status (3)

Country Link
KR (1) KR20200052846A (ko)
CN (1) CN111161660A (ko)
GB (1) GB2578769B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022000347A1 (zh) * 2020-06-30 2022-01-06 深圳市大疆创新科技有限公司 图像处理方法、显示处理装置和计算机可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6781606B2 (en) * 1999-05-20 2004-08-24 Hewlett-Packard Development Company, L.P. System and method for displaying images using foveal video
US7667707B1 (en) * 2005-05-05 2010-02-23 Digital Display Innovations, Llc Computer system for supporting multiple remote displays
US9087402B2 (en) * 2013-03-13 2015-07-21 Microsoft Technology Licensing, Llc Augmenting images with higher resolution data
GB2523740B (en) * 2014-02-26 2020-10-14 Sony Interactive Entertainment Inc Image encoding and display
GB2553744B (en) * 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
US11290699B2 (en) * 2016-12-19 2022-03-29 Dolby Laboratories Licensing Corporation View direction based multilevel low bandwidth techniques to support individual user experiences of omnidirectional video
GB2575097B (en) * 2018-06-29 2023-01-18 Advanced Risc Mach Ltd Data processing systems

Also Published As

Publication number Publication date
US20200143516A1 (en) 2020-05-07
CN111161660A (zh) 2020-05-15
GB2578769B (en) 2022-07-20
GB2578769A (en) 2020-05-27
GB201818163D0 (en) 2018-12-19

Similar Documents

Publication Publication Date Title
US9159135B2 (en) Systems, methods, and computer program products for low-latency warping of a depth map
US6788309B1 (en) Method and apparatus for generating a video overlay
CN109983500B (zh) 重新投影全景视频图片的平板投影以通过应用进行渲染
CN108536405B (zh) 用于数据处理***的显示控制器及其操作方法
US11862128B2 (en) Systems and methods for foveated rendering
CN110659005B (zh) 操作数据处理***和方法、显示装置以及计算机可读介质
CN109559282A (zh) 用于通用几何校正引擎的高效处理的方法和***
US20090244066A1 (en) Multi parallax image generation apparatus and method
US10692420B2 (en) Data processing systems
US11270413B2 (en) Playback apparatus and method, and generation apparatus and method
US11211034B2 (en) Display rendering
KR20190011212A (ko) 출력면을 제공하는 방법 및 데이터 처리 시스템
CN109643462B (zh) 基于渲染引擎的实时图像处理方法以及显示设备
JP4797039B2 (ja) 画像合成方法及び装置
US10672367B2 (en) Providing data to a display in data processing systems
KR20200052846A (ko) 데이터 처리 시스템
US20210304494A1 (en) Image processing apparatus, 3d data generation apparatus, control program, and recording medium
US20220108420A1 (en) Method and system of efficient image rendering for near-eye light field displays
CN106412562A (zh) 三维场景中显示立体内容的方法及其***
US12020401B2 (en) Data processing systems
JP7365185B2 (ja) 画像データ伝送方法、コンテンツ処理装置、ヘッドマウントディスプレイ、中継装置、および、コンテンツ処理システム
CN117931120B (zh) 一种基于gpu的摄像头图像视角调整方法
CN116601943A (zh) 实时多视图视频转换方法及***
JP2011114381A (ja) 映像信号処理装置、仮想現実感生成システム

Legal Events

Date Code Title Description
A201 Request for examination