CN108536405B - 用于数据处理系统的显示控制器及其操作方法 - Google Patents

用于数据处理系统的显示控制器及其操作方法 Download PDF

Info

Publication number
CN108536405B
CN108536405B CN201810171149.4A CN201810171149A CN108536405B CN 108536405 B CN108536405 B CN 108536405B CN 201810171149 A CN201810171149 A CN 201810171149A CN 108536405 B CN108536405 B CN 108536405B
Authority
CN
China
Prior art keywords
data
output
input
display
input image
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201810171149.4A
Other languages
English (en)
Other versions
CN108536405A (zh
Inventor
I·R·布拉特
A·E·查芬
E·孔泽
P·S·休斯
A·科尔尼延科
D·P·摩多尔兹克
M·G·于纳尔
J·A·劳敦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
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 ARM Ltd filed Critical ARM Ltd
Publication of CN108536405A publication Critical patent/CN108536405A/zh
Application granted granted Critical
Publication of CN108536405B publication Critical patent/CN108536405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • 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
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • 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/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0464Positioning
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/391Resolution modifying circuits, e.g. variable screen formats
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Optics & Photonics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

用于数据处理系统的显示控制器及其操作方法。一种数据处理系统中的显示控制器(93)包括:时间扭曲模块(变换级)(100),其可操作以执行对用于向显示板(94)提供的由图形处理器(GPU)(91)生成的经渲染的帧(92)的时间扭曲处理。时间扭曲模块(变换级)(100)操作以基于所接收的观看方位数据变换由显示控制器(93)读取的输入面(92),以提供输入面的适当“经时间扭曲的”经变换的版本作为用于在显示器(94)上显示的输出经变换面。

Description

用于数据处理系统的显示控制器及其操作方法
技术领域
本发明涉及数据处理系统,具体涉及在显示器上显示图像的数据处理系统的操作。
背景技术
图1示出了示例性数据处理系统,该数据处理系统包括:主处理器,该主处理器包括中央处理单元(CPU)7;图形处理单元(GPU)2;视频编解码器1;显示控制器5;以及存储器控制器8。如图1所示,这些单元经由互连器9通信并访问片外存储器3。在该系统中,GPU 2、视频编解码器1和/或CPU 7将生成要显示的帧(图像),并且显示控制器5然后将向显示器4提供这些帧以显示。
在该系统的使用中,在主处理器(CPU)7上执行的、诸如游戏的应用10例如将需要在显示器4上显示帧。为此,应用10将向在CPU 7上执行的图形处理单元2的驱动器11提交适当的命令和数据。驱动器11然后将生成适当的命令和数据,以使得图形处理单元2渲染用于显示的适当帧,并且将这些帧存储在适当的帧缓冲器中(例如,在主存储器3中)。显示控制器5然后将把这些帧读取到用于显示器的缓冲器中,这些帧从该缓冲器读出并在显示器4的显示板上显示。
图9例示了这一点且示出了GPU 91,该GPU响应于从主机90接收的命令和数据生成经渲染的帧92,GPU将其存储在存储器中。如图9所示,然后随后由显示控制器93读取经渲染的帧92并将其提供给显示板94以显示。
诸如图1所例示的数据处理系统的用途的示例是提供虚拟现实(VR)头戴式显示器(HMD)系统。(在这种情况下,显示器4将为某种头戴式显示器。)
在头戴式虚拟现实显示器操作中,将响应于来自需要虚拟现实显示器的、诸如游戏这样的(例如,在CPU 7上执行的)应用的适当命令和数据由图形处理单元2渲染要向各眼睛显示的适当图像。GPU 2例如将渲染要以与显示器的刷新率(诸如每秒30帧)匹配的速率显示的图像。
在这种结构中,系统还将操作以跟踪用户的头部/注视的移动(所谓的头部姿态跟踪)。然后使用该头部方位(姿态)数据确定实际上应如何对于用户当前的头部位置(观看方向)向用户显示图像,并且因此(例如通过基于头部方位数据设置摄像头(视点)方位)来渲染图像(帧),使得可以基于用户当前的观看方向显示适当图像。
虽然将可以在渲染要在VR系统中显示的帧的开始时简单地确定头部方位(姿态),但由于渲染处理中的时延,可以有以下情况:用户的头部方位(姿态)在帧的渲染开始时对头部方位(姿态)的感测与实际上显示(向显示板扫描输出)帧的时间之间变化。
为了允许这一点,已经对于虚拟现实头戴式显示器系统提出被称为“时间扭曲”的处理。在该处理中,基于在帧的渲染开始时感测的头部方位数据渲染要显示的帧,但然后在实际显示帧之前,感测进一步的头部方位(姿态)数据,并且然后使用经更新的头部姿态传感器数据渲染将经更新头部方位(姿态)数据考虑在内渲染原始帧的“经更新”版本。然后显示帧的“经更新”版本。这允许在显示器上显示的图像较紧密地匹配用户最新的头部方位。
为了进行该处理,将初始“应用”帧渲染到存储器中的适当缓冲器中,但然后存在第二渲染处理,该第二渲染处理取得存储器中的初始应用帧,并且使用最新的头部方位(姿态)数据来渲染将最新头部方位考虑在内的初始经渲染的帧的版本,以提供将向用户显示的帧。这通常涉及基于头部方位(姿态)数据对初始帧执行某一形式的变换。将实际上要显示的、这样“时间扭曲”渲染的帧写到存储器中的另外缓冲器中,然后由显示控制器从另外缓冲器读出帧以显示。
这两个渲染操作通常在来自CPU 7的适当控制下由图形处理单元2来进行。由此,对于该处理,将需要图形处理单元2执行两个不同的渲染任务,一个是如由应用需要并指示的渲染“应用”帧,并且另一个是然后适当基于最新的头部方位数据将这些经渲染的帧“时间扭曲”渲染到存储器中的缓冲器中,以由显示控制器5读出以显示。
图2和图3例示了“时间扭曲”处理。
图2示出了在观看者直向前看时的示例性帧20的显示和在用户的视角变化时该帧21的所需“时间扭曲”投影。从该附图可以看到,对于帧21,必须显示帧20的修改版本。
图3对应地示出对应用帧30的时间扭曲渲染31以提供用于显示的“时间扭曲的”帧32。如图3所示,已经被渲染的给定应用帧30为了在等待要渲染的新应用帧的同时以连续间隔显示该应用30帧的适当“时间扭曲的”版本32的目的而可以经受两个时间扭曲处理31。图3还示出了头部位置(姿态)数据的规则采样33,该规则采样用于确定适当的“时间扭曲”修改,该修改应应用于应用帧30以基于用户的头部位置向用户适当显示帧。
发明内容
申请人相信存在针对用于执行用于数据处理系统中的虚拟现实显示器的“时间扭曲”渲染的改进结构的范围。
根据本发明的第一方面,提供了一种用于数据处理系统的显示控制器,该显示控制器包括:
输入级,该输入级可操作以读取输入面;
输出级,该输出级可操作以向显示器提供用于显示的输出面;以及
变换级,该变换级可操作以:
基于所接收的观看方位数据变换由输入级读取的输入面,以提供输入面的经变换的版本作为输出经变换面;并且
向输出级提供输出经变换面,以作为用于显示的输出面提供给显示器。
根据本发明的第二方面,提供了一种操作数据处理系统中的显示控制器的方法,显示控制器包括变换级,该变换级可操作以基于所接收的观看方位数据变换输入面,以提供输入面的经变换的版本作为输出经变换面;
方法包括以下步骤:
显示控制器读取输入面;
显示控制器的变换级基于所接收的观看方位数据变换所读取的输入面,以提供输入面的经变换的版本作为输出经变换面;以及
显示控制器向显示器提供输出经变换面以显示。
本发明涉及一种可操作以向显示器提供用于显示的输出面的显示控制器。如同在传统显示控制器中,本发明的显示控制器包括:输入级,该输入级可操作以读入至少一个输入面(例如,帧);和输出级,该输出级可操作以向显示器提供用于显示的输出面(帧)。然而,与传统显示控制器对比,本发明的显示控制器还包括变换级,该变换级可操作以基于所接收的观看方位数据变换输入面,以提供输入面的已变换版本,以用作用于显示的输出面,观看方位数据例如且优选地为头部位置(姿态)(跟踪)信息。
如以下将进一步讨论的,变换级意指本发明的显示控制器自身可以执行对于输入面上的时间扭曲渲染所需的变换处理,而不是需要由例如图形处理单元执行那些操作以提供用于显示的“时间扭曲的”帧。
申请人特别已经认识到,可以在显示控制器中执行要显示的帧的时间扭曲变换,作为用于提供用于显示的帧的显示处理操作的一部分,而不是必须在处理用于显示的帧之前在数据处理系统中(例如,在图形处理单元上)的其他位置首先执行该处理。
随着时间扭曲帧被显示而在显示控制器上执行时间扭曲变换处理提供多个优点。例如,它避免了必须在GPU上执行应用帧的“时间扭曲”处理并避免了将应用帧写到存储器然后由显示控制器从存储器读出。这可以提供在存储带宽、处理资源、电力等方面的大幅节省。
它还去除了图形处理单元执行用于显示的应用帧的时间扭曲渲染的需要,从而避免了例如使图形处理单元执行两个渲染处理(一个为渲染应用帧且另一个为然后执行这些应用帧的时间扭曲渲染)且必须在这两个渲染处理之间切换的需要。图形处理器还可以专门用于渲染应用帧,从而去除了将图形处理器资源转换到“时间扭曲”操作的需要。
本发明还具有以下优点:用于时间扭曲处理的变换可以与向用户显示帧较紧密地同步,使得向用户的显示可以与用户当前的头部位置较紧密地对准。
本发明还可以允许随着显示流被提供给虚拟现实头戴式视图器以显示而实际上实时地执行要在头戴式视图器上显示的应用帧的时间扭曲渲染,因此可以允许基于用户头部移动以较高分辨率来施加对所显示帧的调节,例如,逐线地施加,而不是例如在可以进行任何改变之前必须等待下一帧被显示。
与现有结构相比,以上全部促进向用户提供增强的显示器。
变换级变换的输入面可以为任意合适且期望的这种面。优选地,输入面为旨在在与显示控制器关联的显示器上显示的输入面。在优选实施方式中,输入面是用于显示的图像(例如,帧)。
在优选实施方式中,变换级变换的输入面包括帧,该帧为了为诸如游戏的应用显示而生成,但要在被初始渲染之后基于所确定的观看方位来显示,例如且优选地该帧经受“时间扭曲”处理。
输入面(且各输入面)将包括数据元素(采样位置)(例如,像素)的阵列,对于各数据元素,存储适当的数据(例如,一组颜色值)。
可以根据期望生成输入面。
输入面优选地由数据处理系统的图形处理单元(图形处理器)来生成(渲染),显示控制器是数据处理系统的一部分,但如果期望则还可以或相反由整个数据处理系统的其他部件生成或提供,其他部件诸如CPU或视频处理器。
所生成的输入面如以上所讨论的优选地存储在例如存储器中的帧缓冲器中,然后由显示控制器的输入级从该帧缓冲器读取该输入面以由显示控制器处理。
存储输入面的存储器可以包括任何合适的存储器,并且可以以任意合适且期望的方式来配置。例如,存储器可以为具有显示控制器的片上存储器,或者它可以为外部存储器。在优选实施方式中,存储器是外部存储器,诸如整个数据处理系统的主存储器。存储器可以为用于该目的的专用存储器,或者它可以为也用于其他数据的存储器的一部分。在优选实施方式中,至少一个输入面存储在帧缓冲器(例如,“眼睛”缓冲器)中(并从其读取)。
显示控制器的输入级可以包括任意合适的这种级,这种级可操作以从存储输入面的数据的存储器读取该数据。在优选实施方式中,输入级包括存储器读子系统,该存储器读子系统优选地包括读控制器,诸如例如直接存储器存取(DMA)读控制器,该读控制器被配置成(操作以)从存储输入面的存储器读取输入面的数据。
在特别优选的实施方式中,输入级可操作以从存储器将要由显示控制器处理的输入面的数据获取到显示控制器的本地缓冲器中,并且由此,显示控制器优选地包括可操作以存储要由显示控制器处理的输入面的数据的一个或更多个本地缓冲器。变换级优选地然后处理来自本地缓冲器的输入面。
由此,在特别优选的实施方式中,变换级具有关联的输入缓冲器,要处理的输入面的数据被加载到该输入缓冲器以然后由变换级处理。
对应地,在特别优选的实施方式中,本发明包括显示控制器的输入级,该输入级将要处理的输入面的数据从存储器加载到显示控制器的本地(输入)缓冲器中,并且变换级然后基于所接收的观看方位数据来处理来自本地(输入)缓冲器的输入面数据,以提供输出经变换面。
输入面数据被获取到的显示控制器的本地(输入)缓冲器可以为显示控制器的或显示控制器可访问的任意合适且期望的本地缓冲存储器。如以下将进一步讨论的,本地缓冲器优选地能够(且可操作以)存储输入面的数据元素(采样(数据)位置)的一个或更多个块,且优选地为多个块。
本地缓冲器可以特别为了本发明的目的而提供,或者它们可以为为了其他目的已经存在于显示控制器中或用于显示控制器而存在的缓冲器,诸如显示控制器的相应层流水线的缓冲器。
由此,在一个优选实施方式中,显示控制器包括一个或更多个且优选地为多个输入层(表面)处理流水线,并且这些输入层流水线中的一个或更多个用于存储要由变换级变换的用于输入面的数据,并且变换级可操作以从适当输入层流水线读取它需要的输入面数据。
整个操作优选地还包括首先渲染输入面(例如,由图形处理单元),并且将该输入面存储在存储器中,然后由输入级从该存储器读取输入面。
变换级操作以基于所接收的观看方位数据变换输入面。
观看方位数据可以为指示观看方位(观看方向)的任意合适且期望的数据。在优选实施方式中,观看方位数据表示且指示期望观看方位(观看方向),输入面被显示为犹如从该观看方位观看(要关于该观看方位显示要变换的输入面)。
在特别优选的实施方式中,观看方位数据指示相对于基准(例如,预定义)观看位置(该基准观看位置可以为“直向前的”观看位置,但不需要是),显示输入面所针对的观看位置的方位。
基准观看位置优选地为生成(渲染)输入面所关于的观看位置(方向(方位))。
由此,在优选实施方式中,观看方位数据指示相对于生成(渲染)输入面所关于的观看位置(方向),显示输入面所针对的观看位置的方位。
观看方位数据优选地指示相对于基准观看位置,显示输入面的观看位置的旋转。观看位置旋转可以根据期望(诸如以三个(欧拉(Euler))角的形式)或作为四元数(quaternion)来提供。
由此,在特别优选的这种实施方式中,观看方位数据包括一个或更多个(且优选地为三个)角(欧拉角),其表示相对于基准(例如,预定义)观看位置,显示输入面的观看位置的方位。
观看方位数据在使用中可以以任意适当且期望的方式提供给显示控制器。该数据优选地由需要显示该输出经变换面的应用来适当提供。
观看方位数据优选地定期提供给显示控制器的变换级,例如以所选择的且优选预定义的速率提供,变换级然后适当使用所提供的观看方位数据来控制其变换操作。在优选实施方式中,经更新的观看方位数据以诸如800Hz这样的数百赫兹左右的速率提供给变换级。
在从输入面生成输出经变换面时由变换级使用的观看方位数据可以以任意合适且期望的方式提供给变换级(由其接收)。观看方位数据优选地被写到显示控制器的合适的本地存储(例如,寄存器)中,然后可以在从输入面生成输出经变换面时由变换级从该本地存储读取并使用。
在优选实施方式中,观看方位数据包括头部位置数据(头部姿态跟踪数据),该头部位置数据例如且优选地从显示控制器将用于显示的图像提供给的虚拟现实显示头戴式视图器的适当头部位置(头部姿态跟踪)传感器感测。
观看方位(例如,头部位置(姿态))数据,例如所采样的观看方位(例如,头部位置数据,优选地以适当方式且以适当速率(例如且优选地为由关联的头戴式显示器对数据采样的相同速率)提供给显示控制器的变换级。变换级然后可以适当使用所提供的头部姿态跟踪(观看方位)信息来控制其变换操作。
由此,观看方位数据优选地包括适当采样的头部姿态跟踪数据,该数据例如且优选地由显示控制器所联接到(且将用于显示的输出经变换面提供到)的虚拟现实头戴式视图器定期确定。
显示控制器可以集成到头戴式视图器(头戴式显示器)自身中,或者它可以以其他方式联接到头戴式视图器,例如经由有线或无线连接。
由此,在特别优选的实施方式中,本发明的方法包括以下步骤(且显示控制器和/或数据处理系统被适当配置成):对用于由变换级使用的观看方位数据定期采样(例如且优选地,借助于显示控制器将用于显示的输出经变换面提供给的头戴式显示器的适当传感器),并且向显示控制器(显示控制器的变换级)定期提供经采样的观看方位数据,变换级然后在变换输入面以提供输入面的经变换版本作为输出经变换面时使用所提供的经采样的观看方位数据。
变换级优选地被配置成以适当间隔,诸如在各帧开始时和/或在已经生成给定输出经变换面的一些数量的线之后,基于新的观看方位数据(头部跟踪数据)更新其变换操作。优选地,变换级基于最新的所提供的观看方位(头部跟踪)信息定期更新其操作,且优选地在每次生成输出经变换面的特定的、优选地为所选择的数量的线时更新。这可以对于输出经变换面中的各新线来进行,或者例如可以在输出了经变换面的每一些线(例如,每两线或每四线)进行。
变换级可以操作以以任意合适且期望的方式基于所接收的观看方位数据变换输入面。在优选实施方式中,变换级操作以实际上基于观看方位数据来向输入面应用变换。
变换级基于观看方位数据向输入面(实际上)应用的变换可以为任意合适且期望的变换。在优选实施方式中,该变换变换输入面提供将输入面的表示犹如是从由所接收的观看方位数据指示(表示)的观看方位(观看方向)观看的(如例如与生成(渲染)输入面所关于的观看方位(观看方向)相比)。
在特别优选的实施方式中,变换级操作以基于观看方位数据生成输入面的投影,例如且优选地为基于由观看方位数据指示的当前观看方位且与其对应的投影。
基于观看方位数据的变换例如可以且优选地确实包括x/y移位、缩放以及旋转中的一个或更多个,且优选地包括所有。如果期望则可以使用较复杂的变换。
在优选实施方式中,基于观看方位数据的变换(仅)包括基于观看方位数据的、输入面的平面旋转。
在特别优选的实施方式中,变换级基于(考虑)一个或更多个其他因素以及观看方位来变换输入面。
在特别优选的这种实施方式中,变换级向输入面应用的变换还考虑(基于)将由于用户观看所显示的输出经变换面将借助的镜头而引起的任何失真,例如,桶形失真。
申请人在这一点上已经认识到,通常将借助镜头观看由虚拟现实头戴式视图器显示的输出帧,这些镜头通常向被观看的帧施加几何失真,诸如桶形失真。因此,期望能够“预失真”要被显示的面(帧),以补偿镜头将引起的(几何)失真。
由此,在特别优选的实施方式中,变换级可操作以考虑来自观看输出经变换面将借助的镜头的(预期的)(几何)失真,并且从输入面生成输出经变换面以补偿(考虑)该(预期的)镜头(几何)失真。
由此,在特别优选的实施方式中,变换级可操作以基于特定镜头(几何)失真从输入面生成输出经变换面,镜头失真优选地为所选择的,并且优选地为预定义的,该镜头失真应且优选地基于且对应于将由于用户观看输出经变换面将借助的镜头而引起的几何失真。
在优选实施方式中,变换级向输入面应用以生成输出经变换面的变换还或相反(且优选地为还)考虑(且可操作以尝试校正)所显示的输出经变换面的观看路径中的色差(失真)。
申请人在这一点上已经再次认识到,观看由虚拟现实头戴式视图器显示的输出帧将借助的镜头还可能将色差引入到被观看的帧。因此,期望能够“预失真”要被显示的表面(帧),以补偿镜头将引起的任何色差。
由此,在特别优选的实施方式中,变换级可操作以考虑(例如,来自观看输出经变换面将借助的镜头的)输出经变换面的观看路径中的(预期的)色差,并且从输入面生成输出经变换面,以补偿(考虑)(预期的)色差。
由此,在特别优选的实施方式中,变换级可操作以基于特定色差从输入面生成输出经变换面,色差优选地为所选择的,并且优选地为预定义的,该色差应且优选地基于且对应于将由于用户观看输出经变换面将借助的镜头而引起的色差。
在特别优选的实施方式中,对于输入面的不同颜色平面,单独确定色差校正。在特别优选的实施方式中,对于输入面的各颜色平面确定单独的色差校正。因此,在这种情况下,将存在由变换级确定并应用于输入面的相应红色、绿色以及蓝色(例如)色差校正。
申请人在这一点上已经认识到,由观看输出经变换面将借助的观看路径引入的任何色差将依赖于讨论中的颜色而变化。因此,有利的是对于各颜色平面单独确定单独色差校正,而不是向所有颜色平面应用单个公共色差校正,但如果期望则公共色差校正可以进行。
在特别优选的实施方式中,在输入面和输出经变换面还包括阿尔法(透明)数据(阿尔法(透明)平面)的情况下,那么对于颜色平面中的一个(优选地为绿色平面)确定的色差校正也应用于(且用于)阿尔法(透明)平面(值)。
变换级可以以任意合适且期望的方式从输入面生成输出经变换面。
变换级生成的输出经变换面将为用于显示的帧(例如,图像),因此将对应地包括数据元素(采样位置)(例如,像素)的阵列,针对该阵列定义了(并提供)相应颜色数据。
在特别优选的实施方式中,变换级操作以对于输出经变换面中的数据元素(采样)(例如,像素)位置,确定输入面中的对应位置(坐标),应从该对应位置取得用于输出经变换面中的该数据元素(采样位置)的数据。换言之,变换级优选地确定输入面中的位置,该位置将通过由变换级应用于输入面的变换来移动至输出经变换面中的该数据元素(采样位置)。
优选地对于期望生成(以显示)的输出经变换面中的多个且优选地为各数据元素(采样位置)进行。
变换级可以以任意合适且期望的方式确定对于给定输出经变换面数据元素(采样)(例如,像素)位置应采样哪一个输入面位置。
在特别优选的实施方式中,变换级基于以下内容中的一个或更多个(且优选地为所有)对于输出经变换面数据元素(采样)位置x,y确定对应的输入面位置,用于在输出经变换面中的该数据元素(采样位置)的数据应(要)从该对应的输入面位置取得:变换操作被配置成向输入面应用的镜头失真校正;变换操作被配置成向输入面应用的观看方位变换;以及变换操作被配置成向输入面应用的色差校正。
在特别优选的实施方式中,变换级基于变换操作被配置成考虑的镜头失真对于输出经变换面采样位置x,y确定对应的输入面位置(坐标)(x’,y’),然后基于至少观看方位数据修改所确定的输入面位置(坐标)(x’,y’)(即,以应用必要的头部跟踪(观看方向)变换)。
最优选地,还修改所确定的输入面位置(坐标),以考虑当观看输出经变换面时的色差(以应用色差校正)。这优选地在基于观看方位数据修改所确定的输入面位置之前进行。
对应地,在特别优选的实施方式中,变换级包括:坐标内插器级,该坐标内插器级可操作以基于已定义镜头失真对于要从变换级输出的输出经变换面中的采样位置(坐标),确定用于该输出经变换面采样位置(坐标)的对应输入面位置(坐标);色差校正级,该色差校正级可操作以修改输入面位置(坐标),以考虑在其显示器上观看输出经变换面时的色差;以及观看方位变换级,该观看方位变换级可操作以基于所接收的观看方位数据(例如,指示要观看输出面的观看者的当前头部位置)修改输入面位置(坐标)。
认为用于通过确定应用于输出经变换面中的给定采样位置(像素)的输入面中的位置(坐标)来变换输入面以提供输出经变换面的这种结构凭借自身可以是新颖且有利的,并且不仅仅用于用于显示装置的显示控制器中。例如,可以将这种变换级作为独立模块提供,该独立模块可以被包括在整个数据处理系统(例如,片上系统)中,并且不是必须仅在显示控制器内。
由此,根据本发明的另外方面,提供了一种设备,该设备用于基于所接收的观看方位数据变换输入面以提供输出经变换面,该设备包括:
坐标内插器级,该坐标内插器级可操作以基于已定义镜头失真对于要从设备输出的输出经变换面中的数据元素位置确定输入面中的对应位置;
色差校正级,该色差校正级可操作以修改由坐标内插器级确定的输入面位置,以考虑观看输出经变换面时的色差来提供至少一个经修改的输入面位置;以及
观看方位变换级,该观看方位变换级可操作以基于所接收的观看方位数据进一步修改由色差校正级确定的至少一个经修改的输入面位置,以提供输出输入面位置,该输出输入面位置要被采样以提供用于输出经变换面的数据元素的数据。
对应地,根据本发明的另外方面,提供了一种方法,该方法用于基于所接收的观看方位数据变换输入面以提供输出经变换面,该方法包括以下步骤:
基于已定义镜头失真对于要输出的输出经变换面中的数据元素位置确定输入面中的对应位置;
修改所确定的输入面位置,以考虑观看输出经变换面时的色差来提供至少一个经修改的输入面位置;以及
基于所接收的观看方位数据进一步修改所确定的至少一个经修改的输入面位置,以提供输入面中的输出位置,该输出位置要被采样以提供用于输出经变换面的数据元素的数据。
如本领域技术人员将理解的,本发明的这些方面可以适当(且优选地确实)包括这里所描述的本发明的优选和可选特征中的任一个或更多个或全部。
如以上所讨论的,在优选实施方式中,色差校正级可操作以对于各不同颜色平面确定单独的色差。由此,在特别优选的实施方式中,处理操作以对于例如且优选地基于镜头失真生成的输出经变换面数据元素(采样位置)确定初始输入面位置(如以上所讨论的),但色差校正级优选地然后确定多个(例如且优选地为三个,一个用于一个颜色平面)经修改的输入面位置(坐标)(各经修改的输入面位置考虑相应色差)。
在这些结构中,基于观看方位进行的输入面位置的随后修改应且优选地因此应用于已生成的各输入面位置(即,应用于各不同的颜色平面输入面位置)。
在这种情况下因此对于给定输出经变换面采样位置,将(且优选地)存在要在输入面中采样的多个(例如,3个)位置,例如且优选地,一个输入面位置用于要对于输出经变换面生成的一个不同颜色平面(颜色值)。
一旦已经确定输入面中的位置,该位置的数据要用于输出经变换面中的数据元素(采样位置),那么在特别优选的实施方式中,在所确定的位置处对输入面采样,以提供要用于输出经变换面中的数据元素(采样位置)的数据值。
输入面对此可以以任意合适且期望的方式来采样。
在特别优选的实施方式中,变换级可操作以通过以下方式来确定用于输出经变换面中的数据元素(采样位置)的数据值:从针对包围所确定的对应输入面位置的一组多个(例如,四个)输入面采样位置而定义的数据值,内插出用于该输入面位置的数据值。
因此,在特别优选的实施方式中,变换级可操作以从输入面中的已定义采样位置内插数据,以提供要用于输出经变换面数据元素(采样)位置(坐标)的输入面位置(坐标)的数据。
由此,在特别优选的实施方式中,变换级还包括内插级,该内插级可操作以内插多个输入面采样位置值,以提供用于输出经变换面中的数据元素(采样位置)的经内插的采样位置值。
输入面采样位置数据的内插可以以任意合适且期望的方式来执行。在优选实施方式中,使用双线性内插,但如果期望,则可以使用其他结构。
在这些结构中,在对于不同颜色平面确定不同输入面位置(坐标)(以考虑色差)的情况下,那么在优选实施方式中,因此基于用于各颜色平面的输入面位置对于用于该颜色平面的输出经变换面数据元素(采样位置)内插单独的一组数据。由此,例如,用于输出经变换面数据元素(采样位置)的一组RGB颜色数据优选地将包括从一个(“红色”)输入面位置(坐标)确定的红色值、从另一个(“绿色”)输入面位置(坐标)确定的绿色值以及从第三(“蓝色”)输入面位置(坐标)确定的蓝色值。
这样单独确定的颜色平面(例如,红色、绿色以及蓝色)值优选地然后一起用于提供用于讨论中的输出经变换面数据元素(采样位置)的颜色数据。
在还要确定阿尔法(透明)值的情况下,那么如以上所讨论的,优选地从用于确定绿色值的输入面位置(坐标)确定该阿尔法值。
从上述将理解,在特别优选的实施方式中,变换级通过将输入面中的一个或更多个采样位置(例如,像素)读取作为输入并使用这些采样位置来生成输出经变换面的输出采样位置(例如,像素)来操作。换言之,变换级优选地操作以通过从用于输入面中的采样位置(例如,像素)的数据值生成用于输出经变换面中的相应采样位置(例如,像素)的数据值来生成输出经变换面。
如本领域技术人员将理解的,输入面(和输出经变换面)中的已定义采样(数据)位置(数据元素)可以(且在一个优选实施方式中确实)与显示器的像素对应,但这不需要必须为这种情况。例如,在输入面和/或输出经变换面经受某一形式的降采样的情况下,那么在输入面和/或输出经变换面中将存在与显示器的各像素对应的一组多个数据(采样)位置(数据元素),而不是存在面采样(数据)位置到显示器像素的一对一映射。
由此,在优选实施方式中,变换级对于输出经变换面所需的一个、且优选地为多个、并且优选地为各个采样位置(数据元素)操作以对于输出经变换面采样位置确定要用于生成该输出经变换面采样位置的一组一个或更多个(且优选地为一组多个)输入面采样位置,然后使用这些所确定的输入面位置来生成输出经变换面采样位置(数据元素)。
这样生成输出经变换面中的相应采样位置(数据元素)促进逐采样位置(逐数据元素)生成输出经变换面,例如且优选地,作为输出采样位置(数据元素)的序列或流。这是有利的,因为这有效地允许以与显示控制器和显示控制器的显示处理流水线将正常处理用于显示的面的方式一致的方式来生成输出经变换面(即,作为采样位置(数据元素)(例如,像素)的序列或流,例如与采样位置(像素)的块相反地)。
实际上,本发明的这些实施方式的特定优点是促进生成该面作为输出经变换面的采样位置的流,这从而促进随着输出经变换面被显示而“实时”在作为显示处理流水线一部分的显示控制器中执行时间扭曲渲染的能力。
由此,在特别优选的实施方式中,变换级操作以逐采样位置(例如,逐像素)地产生输出经变换面。
由此,在优选实施方式中,变换级对于输出经变换面中的第一采样位置(数据元素)确定要用于生成输出经变换面采样位置的、输入面中的采样位置(数据元素),然后使用这些输入面采样位置来生成输出经变换面采样位置,然后对于下一(第二)输出经变换面采样位置(数据元素)确定要用于生成该下一(第二)输出经变换面采样位置的、输入面中的采样位置(数据元素),并且使用这些所确定的输入面采样位置来生成输出经变换面采样位置,以此类推。
由此,在特别优选的实施方式中,变换级的输出是输出经变换面采样位置(采样位置值)的流。
变换级优选地逐线(逐栅格线)地从输入面生成输出经变换面,因为这然后是用于向显示器提供输出经变换面的适当格式。由此,变换级优选地生成输出经变换面作为输出经变换面的采样位置的(数据元素)的行的序列,各行具有与跨用于输出经变换面的宽度的期望采样位置的数量对应的长度和输出经变换面的一个采样位置的垂直高度。
申请人在这一点上还认识到,虽然可以是变换级将产生输出经变换面作为该面的例如水平行的序列的情况,但由于例如将例如由变换级补偿的桶形失真,可能有但实际上通常将不是输出经变换面的给定行将仅使用来自输入面中的对应水平行的输入面采样位置的情况。相反,输出经变换面的行通常将由从跨输入面延伸的曲线取得的采样位置来形成。
为了考虑该情况并促进能够依次对于输出经变换面的行将输出经变换面生成作为采样位置的连续序列,在特别优选的实施方式中,变换级可操作以识别输入面的区域(且优选地为相应的二维块(区)),在生成当前生成的输出经变换面的行时将需要该区域的数据,并且可操作以使得显示控制器的输入级将必要的输入面区域(块)加载到显示控制器的输入(例如,本地)缓冲器中,以在要生成对应的输出经变换面采样位置时可由变换级使用。
为此被加载的输入面的宽(区)可以为输入面的任意合适且期望的块(区)。各块优选地包括输入面的已定义采样(数据)位置(数据元素)的(二维)阵列,并且沿各轴方向由多个采样位置(数据元素)延伸。块优选地为矩形,并且优选地为正方形。块例如可以各包括输入面的4×4、8×8或16×16个采样位置(数据元素)。
在特别优选的实施方式中,这通过以下方式来进行:变换级使用对于输出经变换面采样位置(数据元素)要采样的输入面位置的整数部分识别输入面的块(区),生成输出经变换面采样位置将需要该块(区)数据,然后变换级向显示控制器的输入级指示该块位置(例如,整数值),以使显示控制器的输入级将输入面的适当块获取到显示控制器的本地缓冲器中,变换级将从该本地缓冲器读取期望的输入面采样位置以生成输出经变换面采样位置。
在优选实施方式中,操作,例如,输入级,被配置成首先确定所需的输入面块是否已经存在于本地缓冲器中,然后仅在确定输入面块未存在于本地缓冲器中时将输入面块从存储器获取到本地缓冲器中。对应地,在优选实施方式中,在要将新输入面块获取到本地缓冲器中时,如果需要,则逐出(用新块替换)已存储在本地缓冲器中的输入面块,优选地使用适当块替换机制,诸如最少最近使用的替换处理。
由变换级生成的输出经变换面可以以任意合适且期望的方式作为用于显示的输出面提供给输出级,以作为用于显示的输出面提供给显示器。
在优选实施方式中,变换级的输出(例如,输出经变换面采样位置(数据元素)的流)被适当输出到显示处理流水线的剩余部分以处理。例如且优选地,该输出可以且在优选实施方式中被提供给显示控制器的另外处理级,例如且优选地为合成级,以在显示之前进行任意期望的另外处理。
由此,在优选实施方式中,向输出级提供输出经变换面以作为用于显示的输出面提供的步骤包括:向显示控制器的另外处理级提供输出经变换面,然后向输出级(或例如向另外处理级)提供经这样处理的输出经变换面,以作为用于显示的输出面提供给显示器。如果期望则输出经变换面可以在被提供给该输出级之前提供给多个处理级。
在特别优选的实施方式中,变换级的输出(例如,用于由变换级生成的输出经变换面的采样位置)从变换级输出到适当的缓冲器(例如,时延隐藏缓冲器,诸如FIFO),该缓冲器充当例如变换级与显示控制器的随后级(例如,输出级和/或输出级之前的一个或更多个处理级)之间的时延隐藏缓冲器。
本发明的显示控制器的输出级可以为任意合适的输出级,该输出级可操作以向显示器提供用于显示的输出面,例如以使得在显示器上显示用于显示的输出面。输出级优选地包括处理流水线,该处理流水线对要显示的输出面执行需要的显示处理操作。输出级优选地包括用于显示器的适当定时控制功能,例如,被配置成以适当的水平和垂直消隐时段向显示器发送像素数据。
变换级(及其相应级,例如,坐标内插器级、色差校正级以及观看方位变换级)可以以任意合适且期望的方式来实现。例如,它们可以借助于可以被编程为以期望方式操作的合适可编程处理电路来提供。对此,它们可以全部由被分别编程为执行不同操作的同一可编程处理电路来实现,或者可以存在各可编程为以期望方式操作的单独可编程级。
然而,在特别优选的实施方式中,变换级(及其相应独立级)不借助于可编程处理电路来提供,相反而是被提供作为被配置成执行所需处理操作的固定功能级(固定功能处理电路)。由此,在特别优选的实施方式中,变换级(及其相应独立级中的每一个)以被配置成能够执行所需操作的固定功能硬件单元(电路)的形式来提供,该硬件单元不经由执行所需操作的可编程处理电路来执行(除了执行之外)软件程序。
申请人对此已经认识到,提供可操作以执行输入面的变换(例如,各种输入面位置确定)的固定功能电路将允许变换级以已知且可靠(例如,固定的)速率来执行其操作,与例如操作借助于使用可编程电路执行合适程序来实现的结构相反,在该结构中,在使用中可能存在可变延迟和时延。因此进一步促进了在显示控制器中(在显示控制器的显示处理流水线中)实时地执行本发明的操作。
在特别优选的实施方式中,在固定功能电路用于执行变换级的操作的情况下,该固定功能电路被设置为在使用中具有有限的可配置性。具体地,优选地可以改变电路执行的操作的一个或更多个控制参数,以促进固定功能电路的操作的一些变化和配置。由此,在优选实施方式中,变换级的操作借助于固定功能处理电路来实现,该固定功能处理电路但可通过在使用中设置该电路的一个或更多个特定(优选地为所选择的)控制参数来配置。
例如,在例如变换级的级可操作以变换输入面以补偿潜在的镜头(几何)失真的情况下,电路可以被配置成执行一般“镜头失真”补偿处理,但被执行的处理的确切参数借助于可以在使用中设置的一个或更多个控制参数来设置。例如,可以使用具有近似镜头失真的基准点的2D网格来控制并表示镜头失真。
类似地,在例如变换级的级可操作以变换输入面以补偿(校正)潜在的色差的情况下,电路可以被配置成执行一般“色差”补偿(校正)处理,但被执行的处理的确切参数借助于可以在使用中设置的一个或更多个控制参数来设置。
同样地,在例如变换级的级可操作以基于所接收的观看方位变换输入面的情况下,电路可以被配置成执行一般“观看方位”变换处理,但被执行的处理的确切参数借助于可以在使用中设置的一个或更多个控制参数(例如,欧拉角或四元数)来设置。
在这些结构中,可以根据期望设置用于变换级的控制参数。例如,在显示控制器被配置成仅与特定给定虚拟现实头戴式显示器(例如,被提供为固定虚拟现实头戴式显示系统的一部分)一起操作的情况下,那么用于变换级的控制参数可以被设置为初始设置处理的一部分并且在使用中不可变(即,变换级可以被简单地预配置成对于讨论中的显示系统执行适当操作,例如,镜头失真校正等)。
在优选实施方式中,可以(且优选地)例如且优选地由向显示控制器提供输入面以显示的应用和/或由显示控制器的驱动器在使用中设置用于变换级的控制参数。
这然后将允许例如显示控制器与不同的头戴式视图器一起使用,并且这将允许基于显示控制器与其一起使用(联接到)的当前头戴式显示器例如由驱动器在使用中设置例如其镜头失真校正等。
可以类似地配置要由变换级应用的任意其他操作(诸如色差校正)(即,对于“固定”操作而预配置(预存储),或例如且优选地在使用中可例如由驱动器设置以考虑显示控制器的不同使用情形)。
除了以上所讨论的输入级、输出级以及变换级之外,本发明的显示控制器还可以另外包括显示控制器可以合适地包括的处理级和元件中的任一个或更多个或全部。
如以上所讨论的,在优选实施方式中,显示控制器包括处理级,该处理级可操作以处理表面例如以生成输出面。
处理级优选地可操作以执行以下内容中的一个或更多个(且优选地为全部):合成(两个或更多个)输入面以生成经合成的输出面;解码(例如,解压缩)输入面,例如以生成一个或更多个经解码(例如,经解压缩的)输入面;使输入面旋转,例如以生成一个或更多个经旋转的输入面;以及缩放(例如,放大和/或缩小)一个或更多个表面,例如以生成一个或更多个经缩放的面。
这些操作可以由相同处理级来执行,或者可以存在例如相应的单独合成、解码(解压缩)、旋转和/或缩放级(如果期望)。还将可以在输入级中提供该功能的一些或所有(如果期望)。
显示控制器优选地还包括一个或更多个层流水线,该一个或更多个层流水线可操作以例如在向变换级、缩放级和/或合成级提供一个或更多个经处理的输入面之前或在其他方面适当对一个或更多个输入面执行一个或更多个处理操作。在显示控制器可以处理多个输入层的情况下,可以存在多个层流水线,诸如视频层流水线、图形层流水线等。这些层流水线例如可以操作以提供像素处理功能,诸如像素拆包、颜色转换、(逆)伽马校正等。
显示控制器还可以包括后处理流水线,该后处理流水线可操作以对一个或更多个表面执行一个或更多个处理操作,例如以生成已后处理面。该后处理例如可以包括颜色转换、抖动和/或伽马校正。
在优选实施方式中,显示控制器还包括写输出级,该写输出级可操作以将输出面写到外部存储器。这将允许显示控制器例如且优选地与在显示器上显示输出面同时地例如将输出面(选择性地)写到外部存储器(诸如帧缓冲器)。
在这种结构中,在优选实施方式中,显示控制器因此操作以显示输出经变换面并将其写输出到外部存储器(随着它由变换级生成并提供)。这例如在可以期望通过向之前的(“基准”)输出经变换面应用一组差值来生成输出已变换(经时间扭曲)面的情况下可以是有用的。在这种情况下,显示控制器的写输出级例如可以用于将“基准”输出经变换面存储在存储器中,使得它然后可用于在生成将来的输出经变换面时使用。
其他结构当然会是可能的。
显示控制器的各种级可以根据期望来实现,例如,以一个或更多个固定功能单元(硬件)(即,该功能单元专用于不可变化的一个或更多个功能)的形式、或被实现为一个或更多个可编程处理级,例如借助于可以被编程为执行期望操作的可编程电路。可以存在固定功能级和可编程级这两者。
显示控制器的各种级中的一个或更多个可以作为单独的电路元件提供给彼此。另外或另选地,级中的一些或所有可以至少部分由共享电路来形成。
还将可以使显示控制器包括例如两个显示处理核,核中的一个或更多个或所有以本发明的方式来配置(如果期望)。
本发明的显示控制器与其一起使用的显示器可以为任意合适且期望的显示器(显示板),诸如例如,屏幕。该显示器可以包括整个数据处理系统(装置)的本地显示器(屏幕)和/或外部显示器。可以存在多于一个显示输出(如果期望)。
在特别优选的实施方式中,显示控制器与其一起使用的显示器包括虚拟现实头戴式显示器。该显示器因此优选地包括:显示板,该显示板用于向用户显示以本发明的方式生成的输出经变换面;和镜头,用户将借助该镜头来观看所显示的已变换输出帧。
对应地,显示器优选地具有关联的观看方位确定(例如,头部跟踪)传感器,这些传感器优选地基于显示器的当前和/或相对位置定期生成观看跟踪信息,并且可操作以向显示控制器(向显示控制器的变换级)定期提供该观看方位数据,以在变换输入面以提供用于显示的输出经变换面时使用。
在优选实施方式中,本发明的显示控制器形成数据处理系统的一部分。由此,根据本发明的另一个方面,提供了一种数据处理系统,该数据处理系统包括根据本发明的显示控制器。
数据处理系统可以(并且优选地确实)还包括中央处理单元、图形处理单元、视频处理器(编解码器)、系统总线以及存储器控制器中的一个或更多个,并且优选地包括全部。
显示控制器和/或数据处理系统可以(并且优选地是)被配置成与外部存储器(例如,经由存储器控制器)、一个或更多个本地显示器和/或一个或更多个外部显示器中的一个或更多个(并且本发明还扩展到包括上述部件中的一个或更多个的结构)通信。外部存储器优选地包括整个数据处理系统的主存储器(例如,该主存储器与中央处理单元(CPU)共享)。
由此,在一些实施方式中,显示控制器和/或数据处理系统包括一个或更多个存储器和/或存储装置和/或与该存储器和/或存储装置通信,该存储器和/或存储装置存储这里描述的数据,和/或存储用于这行这里描述的处理的软件。显示控制器和/或数据处理系统还可以与主微处理器、和/或与用于基于由显示控制器生成的数据显示图像的显示器通信或包括它们。
对应地,根据本发明的另外方面,提供了一种数据处理系统,该数据处理系统包括:
主存储器;
显示器;
一个或更多个处理单元,该一个或更多个处理单元可操作以生成用于显示的输入面,并且将输入面存储在主存储器中;以及
显示控制器,该显示控制器包括:
输入级,该输入级可操作以读取在主存储器中存储的输入面;
输出级,该输出级可操作以向显示器提供用于显示的输出面;以及
变换级,该变换级可操作以:
基于所接收的观看方位数据变换由输入级读取的输入面,以提供输入面的经变换的版本作为输出经变换面;并且
向输出级提供输出经变换面,以作为用于显示的输出面提供给显示器。
如本领域技术人员将理解的,本发明的这些方面和实施方式可以(且优选地确实)包括这里描述的本发明的优选和可选特征中的一个或更多个,并且优选地包括全部。
由此,例如,显示控制器优选地还包括一个或更多个本地缓冲器,并且其输入级优选地可操作以将从主存储器将要由显示控制器处理的输入面的数据获取到显示控制器的本地缓冲器中(然后由变换级处理)。
在使用本发明的显示控制器和数据处理系统时,例如且优选地将由GPU、CPU和/或视频编解码器等生成一个或更多个输入面并将其存储在存储器中。然后将由显示控制器处理这些输入面,以向显示器提供用于显示的输出面。
虽然以上已经特别参照从输入面生成单个输出经变换面来描述了本发明,但如本领域技术人员将理解的,至少在本发明的优选实施方式中,将存在表示要向用户显示的帧的序列的连续帧的、被生成的多个输入面。显示控制器的变换级因此将优选地操作以提供用于显示的多个输出经变换面的序列。由此,在特别优选的实施方式中,以本发明的方式进行的操作用于生成用于向用户显示的多个输出经变换面的序列。对应地,优选地对于要显示的多个输出帧(例如且优选地对于要显示的帧的序列)重复以本发明的方式进行的操作。
输出经变换面的生成因此且对应地还可以包括生成分别向用户的左眼和右眼显示的“左”和“右”输出经变换面的序列。各对“左”和“右”输出经变换面可以从命令输入面或从相应的“左”和“右”输入面来生成(根据期望)。
本发明可以在任意合适的系统中实现,诸如基于合适配置的微处理器的系统。在实施方式中,本发明实现在计算机和/或基于微处理器的系统中。
本发明优选地在虚拟现实显示装置(诸如且优选地为虚拟现实头戴式视图器)中来实施。由此,根据本发明的另一个方面,提供了一种虚拟现实显示装置,该虚拟现实显示装置包括本发明的方面和实施方式中的任一个或更多个的显示控制器和/或数据处理系统。对应地,根据本发明的另一个方面,提供了一种操作虚拟现实显示装置的方法,该方法包括以下步骤:以本发明的方面和实施方式中的任一个或更多个的方式操作虚拟现实显示装置。
本发明的各种功能可以以任意期望且合适的方式执行。例如,本发明的功能可以实现在硬件或软件中(根据期望)。由此,例如,除非以其他方式指示,本发明的各种功能元件、级以及“装置”可以包括合适的处理器、控制器、功能单元、电路、处理逻辑、微处理器结构等,它们可操作以执行各种功能等,诸如适当专用硬件元件(处理电路)和/或可以被编程以以期望方式操作的可编程硬件元件(处理电路)。
这里还应当注意的是,如本领域技术人员将理解的,本发明的各种功能等可以在给定处理器上重复和/或并行执行。等同地,如果期望则各种处理级可以共享处理电路等。
此外,本发明的处理级中的任一个或更多个或所有可以被具体实施为处理级电路,该处理级电路例如为一个或更多个固定功能单元(硬件)的形式(处理电路)、和/或可以被编程为执行期望操作的可编程处理电路的形式。相等地,本发明的处理级和处理级电路中的任一个或更多个可以作为单独的电路元件提供给其他处理级或处理级电路中的任一个或更多个,和/或处理级和处理级电路中的任一个或更多个或所有可以至少部分由共享处理电路来形成。
本领域技术人员还将理解的,本发明的所有描述的方面和实施方式可以(且在实施方式中确实)适当包括这里描述的本发明的优选和可选特征中的任一个或更多个或所有。
根据本发明的方法至少部分地可以使用软件(例如,计算机程序)实现。由此将看到,当从另外的实施方式看时,本发明提供计算机软件,该计算机软件当安装在数据处理器上时专门适用于执行这里描述的方法;计算机程序元件,该计算机程序元件包括计算机软件代码部,用于在程序元件在数据处理器上运行时执行这里描述的方法;和计算机程序,该计算机程序包括软件代码,该软件代码当程序在数据处理系统上运行时适用于执行这里描述的方法的所有步骤。数据处理器可以是微处理器系统、可编程FPGA(现场可编程门阵列)等。
本发明还扩展到计算机软件载体,该计算机软件载体包括这种软件,这种软件当用于操作显示控制器或包括数据处理器的微处理器系统时与所述数据处理器结合使所述控制器或系统执行本发明的方法的步骤。这种计算机软件载体可以是物理存储介质,诸如ROM芯片、CD ROM、RAM、闪存或盘,或可以是信号,诸如电线上的电信号、光信号或无线电信号,诸如卫星等。
还将进一步理解的是,不是本发明的方法的所有步骤都需要由计算机软件执行,并且由此根据更宽实施方式,本发明提供了计算机软件并且这种软件安装在计算机软件载体上,用于执行这里阐述的方法的步骤中的至少一个。
本发明可以因此适当地具体实施为用于与计算机系统一起使用的计算机程序产品。这种实现可以包括一系列计算机可读指令,该一系列计算机可读指令固定在有形、永久介质上,诸如计算机可读介质,例如,磁盘、CD-ROM、ROM、RAM、闪存或硬盘。还可以包括一系列计算机可读指令,在有形介质(包括但不限于,光学或模拟通信线)上,或无形地使用无线技术(包括但不限于,微波、红外或其他传输技术),这些指令经由调制解调器或其他界面装置可发送到计算机系统。该系列计算机可读指令具体实施这里之前描述的功能的所有或一部分。
本领域技术人员将理解这种计算机可读指令可以以多种编程语言来写,用于与许多计算机架构或操作系统一起使用。进一步地,这种指令可以使用任意存储技术来存储(存储技术现在或将来包括但不限于半导体、磁或光),或使用任意通信技术来发送(通信技术现在或将来包括但不限于光学、红外或微波)。预期的是,这种计算机程序产品可以作为可去除介质来分发,附有已打印的文档或电子文档,例如,现成软件;例如在系统ROM或固定盘上预加载有计算机系统;或在网络(例如,因特网或万维网)上从服务器或电子公告栏分发。
附图说明
现在将仅以示例的方式并参照附图来描述本发明的各种实施方式,附图中:
图1示出了示例性数据处理系统;
图2和图3例示了头戴式虚拟现实显示系统中的“时间扭曲”渲染的处理;
图4示意性示出了可以根据本发明的实施方式操作的显示控制器;
图5更详细地示出了图4的显示控制器的变换级;
图6是更详细地示出图4的显示控制器的变换级的操作的流程图;
图7示意性示出了根据本发明的实施方式中生成用于显示的输出经变换面;
图8示意性示出了示例性虚拟现实头戴式显示视图器;
图9示意性示出了数据处理系统中提供用于显示的帧;
图10示意性示出了在本发明的实施方式中的数据处理系统中提供用于显示的帧;
图11更详细地示意性示出了在本发明的实施方式中的数据处理系统中提供用于显示的帧;以及
图12示意性示出了可以用于本发明的实施方式中的镜头失真校正参数的示例。
同样的附图标记贯穿附图在适当的情况下用于同样的部件。
具体实施方式
现在将描述本发明的多个优选实施方式。
本发明和本实施方式涉及在虚拟现实显示系统中(具体在头戴式虚拟现实显示系统中)向用户显示帧的处理。
这种系统可以如图1所示(且以上所描述)来配置,系统的显示器4包括适当的头戴式显示器,该头戴式显示器具体包括:显示屏(板),该显示屏用于向穿戴头戴式显示器的用户显示要观看的帧;一个或更多个镜头,在一个或更多个镜头处于在用户眼睛与显示屏之间的观看路径中;以及一个或更多个传感器,该一个或更多个传感器用于在使用中(当在显示器上向用户显示图像时)跟踪用户头部(和/或他们的观看(注视)方向)的位置(姿态)。
图8示意性示出了示例性虚拟现实头戴式显示器85。如图8所示,头戴式显示器85例如包括适当的显示底座86,该显示底座包括显示屏(板)87安装到的一个或更多个头部姿态跟踪传感器。一对镜头88安装在在显示屏87的观看路径中的镜头底座89中。最后,存在使用户穿戴头戴式视图器的适当配件95。
在图1所示的系统中,显示控制器5将操作以向显示器4提供适当的图像,以由用户观看。显示控制器可以以有线或无线方式联接到显示器4(根据期望)。
要显示在头戴式显示器4上的图像例如将响应于来自在整个数据处理系统的主处理器(CPU)7上执行的应用10的、对这种渲染的请求由图形处理器(GPU)2来渲染,并且将这些帧存储在主存储器3中。显示控制器5然后将从主存储器3读取帧,作为输入面,并且向显示器4适当提供这些帧,以向用户显示。
在本实施方式中且根据本发明,显示控制器5可操作以能够在向显示器4提供在存储器3中存储的帧以向用户显示之前对这些帧执行所谓的“时间扭曲”处理。
图10和图11例示了这一点。
如图10所示,显示控制器93包括时间扭曲模块(变换级)100,该时间扭曲模块可操作以执行由图形处理器(GPU)91生成的用于提供给显示板94的经渲染的帧92的时间扭曲处理。
图11示出了在执行时间扭曲处理时进行的显示控制器的操作。如图11所示,首先从存储器获取要显示的经渲染的帧92(步骤110),然后将该经渲染的帧加载到显示控制器93的适当缓冲器(诸如行缓冲器)中(步骤111)。
然后确定是否启用时间扭曲处理(步骤112)。如果不启用时间扭曲处理,那么以正常方式向显示器94提供已加载的输入帧以显示。
如果启用时间扭曲处理,则基于从主处理器90提供的适当时间扭曲参数114由显示控制器的时间扭曲模块(变换级)处理所获取的输入帧,以提供要显示的帧的适当“经扭曲的”版本(步骤113)。然后以正常方式向显示处理流水线的剩余部分(向板信号生成器115)提供“经时间扭曲的”帧,以向显示器94提供,以显示。
现在将更详细地描述本实施方式中的显示控制器5的用于执行“时间扭曲”操作的配置和该操作的处理。
图4更详细地示意性示出了显示控制器5。在图4中,方框表示显示控制器的功能单元,而标有箭头的线表示各种功能单元之间的连接。
如图4所示,显示控制器5包括存储器读子系统41,该存储器读子系统具体包括为直接存储器存取(DMA)读控制器形式的读控制器。该读控制器被配置成经由存储总线9从主存储器3(图4中未示出)中的一个或更多个帧缓冲器读取一个或更多个输入面。
存储器读子系统41还包括一个或更多个实时FIFO(先入先出)模块,该一个或更多个实时FIFO模块用于随着从存储器读取一个或更多个输入面而在本地缓冲输入面,例如为了时延隐藏。
在该实施方式中,存储器读子系统41被配置成提供(读取)用作要用于生成合成输出帧的输入层的多达三个不同的输入面。三个输入层可以包括一个或更多个视频层例如由视频处理器(编解码器)1生成;以及一个或更多个图形层,例如,由图形处理单元(GPU)2生成的图形窗口;等。因此,图4示出了显示控制器5包括三个层流水线42、43、44,这三个层流水线将各从用作显示层的输入面接收数据。由层流水线接收的输入面中的任一个或全部如果期望则可以已经经受由解码器进行的解码和/或由旋转单元进行的旋转。
各层流水线42、43、44对所接收面执行适当的操作,诸如从所接收数据字进行像素拆包、颜色(例如,YUV至RGB)转换以及逆伽马或逆sRGB校正。
虽然图4的实施方式例示了使用三个层流水线(且因此多达三个输入层),但将理解,在本发明中可以提供并使用任意数量的层流水线,这依赖于讨论中的应用(以及还依赖于任意硅面积限制等)。
层处理流水线42、43、44充当显示控制器5的处理级,其取得由存储器读子系统41读取的输入面的数据,并且根据该数据产生输出面,例如用于显示。
显示控制器5还包括合成单元(显示合成器)46,该合成单元可以从层流水线42、43、44接收输入,并且操作以合成所接收的输入层以生成经合成的输出面,例如通过适当的阿尔法混合操作等。
来自合成单元46的合成输出帧向前传输到显示处理(后处理)流水线47,以显示,和/或传输到存储器写子系统48(根据期望)。
显示流水线47被配置成对经合成的输出面(帧)选择性地进行任何期望的处理操作,然后传输(已处理的)经合成的输出帧,以在关联的显示器上适当显示。
显示处理流水线47例如可以包括颜色转换级,该颜色转换级可操作以向经合成的输出帧应用颜色转换;抖动级,该抖动级可操作以向经合成的输出帧应用抖动;和/或伽马校正级,该伽马校正级可操作以对经合成的输出帧进行伽马校正。
显示处理流水线47还包括适当的显示定时功能。由此,显示处理流水线47被配置成向显示输出49发送像素数据,例如以适当的水平和垂直消隐时段。例如,可以将水平和垂直同步脉冲(HSYNC、VSYNC)连同在非消隐时段中断言(asserted)的DATAEN信号一起生成。在消隐时段中,DATAEN被解断言(de-asserted),并且没有数据被发送到显示器(存在4个消隐时段:水平前沿-在HSYNC脉冲之前、水平后沿-在HSYNC脉冲之后、垂直前沿-在VSYNC脉冲之前、以及垂直后沿-在VSYNC脉冲之后)。
如果期望,则还将可以使用其他显示定时和数据(像素)封装方案,诸如MIPIDPI、HDMI、显示端口等。
显示输出49例如可以与(例如,数据处理系统作为其一部分的移动装置、智能电话、平板电脑等的)数据处理系统的本地显示器接口连接。
显示处理流水线47和显示输出控制接口49因此充当显示控制器5的输出级,用于向显示器4提供用于显示的输出面。
显示控制器5的存储器写子系统48可操作以经由存储总线将它接收的面写输出到外部存储器3(外部存储器3中的帧缓冲器),所述面例如由合成单元46生成。这然后允许显示控制器5除了提供用于显示的输出帧之外,如果期望,则还将这些输出帧写到主存储器。为了促进该操作,存储器写子系统48包括DMA写控制器。在本实施方式中,它还包括充当时延隐藏缓冲器的适当FIFO。
显示控制器5还包括数据流控制模块45,该数据流控制模块可操作以引导数据流通过显示控制器,即,将输入层、经合成的输出面等提供到适当单元以用于图4所示的处理。在本实施方式中,数据流控制器45在适当软件控制下操作,该软件控制例如且优选地来自用于显示控制器的驱动器11,该驱动器11在显示控制器5作为其一部分的整个数据处理系统的主处理器(例如,CPU 7)上运行。驱动器可以响应于例如用于从在主处理器上运行的应用接收的、用于显示处理的命令和数据而生成用于显示控制器5的数据流控制器45和程序控制寄存器的适当命令。
对此,其他结构当然会是可能的。
如以上所讨论的,当显示控制器5将提供用于显示的输出帧时,它将读入一个或更多个输入面的数据,该一个或更多个输入面例如由视频编解码器1和/或GPU 2生成并且存储在主存储器3中的相应帧缓冲器中以在其输出面生成处理中充当输入层,(例如,通过将该输入面合成为输出帧来)处理该输入面数据,并且经由显示处理流水线47向显示器4提供(所合成的)输出帧,以显示。
例如以30或60帧每秒的速率对于需要显示的各帧重复该处理。
因为这种显示处理是实时操作,所以显示控制器5需要在触发来自显示控制器的显示输出的各时钟周期中定期地向显示器4(向显示输出)传送要显示的像素数据。
除了以上所讨论的功能之外,在本实施方式中,显示控制器5还在其输入层流水线42、43、44中的每个中且在输出显示处理流水线47(未示出)中包括缩放功能(缩放器)。
如图4所示,本实施方式的显示控制器5还包括为具有关联的输入缓冲器51和关联的输出缓冲器52的时间扭曲模块50的形式的变换级50。变换级50可操作以变换它经由输入缓冲器51接收的输入面,以提供该输入面的适当“经时间扭曲的”版本,该版本然后经由输出缓冲器52提供给显示器,以显示。
所需的输入面数据通过驱动器控制存储器读子系统41从主存储器读取用于输入面的适当数据来加载到输入缓冲器51中,并且将其提供给层流水线,以由数据流控制模块45提供给输入缓冲器51。
如图4所示,数据流控制模块45可操作以将由层流水线42、43和/或44处理的输入面数据适当引导到输入缓冲器51,以由时间扭曲模块50处理,并且可操作以然后将来自输出缓冲器52的数据适当引导到合成单元46,并且从那里将数据引导到显示处理流水线47,以显示。这再次可以由驱动器来适当控制并配置。
如果期望,则数据流控制模块45还可以将时间扭曲输出经变换面的数据引导到存储器写子系统48,以写输出到外部存储器。这在基于与之前帧的差异生成用于显示的随后帧的情况下可以是适当的。
虽然输入缓冲器51和输出缓冲器52在图4中被示出为单独的缓冲器,但这些缓冲器例如还可以经由可以存在于显示控制器5中的其他缓冲器(诸如可以存在于层流水线中的缓冲器)来提供(如果期望)。
如图4所示,变换级(时间扭曲模块)50还具有关联的一组控制寄存器53,经由该组控制寄存器可以设置用于时间扭曲变换处理的适当控制参数,例如且优选地在驱动器11的控制下。如图4所示,寄存器具体接收并存储从头戴式显示器接收的适当头部跟踪数据(参数)。例如指示镜头的其他控制参数和/或头戴式显示器的任意其他配置参数也可以存储在寄存器53中,以用于控制变换级(时间扭曲模块)50的操作。
其他结构当然会是可能的。
图5更详细地示出了图4所示的显示控制器的时间扭曲模块(变换级)50。
如图5所示,显示控制器的时间扭曲模块(变换级)50包括多个级,即:坐标内插器级60、色差校正级61、“时间扭曲”变换级62以及内插级63。这些级中的每个在本实施方式中以被配置成对它接收的输入数据执行特定处理操作的固定功能硬件模块(处理电路)的形式来实现,但是还具有由于改变用于各模块的特定控制参数的能力而产生的某一有限的可配置性。控制参数在本实施方式中基于系统与其一起使用的特定头戴式视图器(显示器)4在要显示用于虚拟现实显示器的帧序列时由用于显示控制器5的驱动器11来设置。
针对这些级使用固定功能硬件模块具有以下优点:可以已知它们用于它们操作的“定时”,使得可以较可靠地保证以适当的速率由显示控制器5将用于显示的输出数据传送到显示器4。
其他结构当然会是可能的。
坐标内插器级60操作以基于与镜头失真(该镜头失真当在显示器4的显示板上显示且借助头戴式显示器的镜头观看时将被引入到输出经变换帧)对应的已定义镜头失真,对于要从时间扭曲模块输出的输出经变换面中的采样位置x,y,确定在输入帧中(在要被显示给用户的、由存储在存储器3中的GPU 2渲染的帧中)的对应位置(坐标)x’,y’。
坐标内插器级60例如可以用例如可由用于显示控制器的驱动器借助于控制参数设置的椭球函数的参数(诸如椭球的焦点)来执行某一形式的三次曲线或用于该目的的椭球函数。
图12示出了用于球面镜头130的镜头失真校正参数的示例。(该附图已经被简化为二维。)
在图12中,S表示作为从镜头的中心开始的沿着半径的距离的、球面镜头的一个构造,并且S’表示作为从镜头的中心开始的、沿着半径的距离的不同镜头构造。
在该示例中,S和S’这两者具有相同的镜头形状,但它们改变投影平面(由图12所示的虚线来表示)上的失真量。
图12所示的参数化可以被扩展到椭球和其他一般化形状,诸如三次曲线。
色差校正级61取得由坐标内插器级60确定的输入面位置(坐标)x’,y’,并且“校正”这些坐标,以考虑将由显示器4的镜头引入的色差。
如图5所示,对于各颜色平面(R,G,B)执行单独的色差校正。绿色平面色差还用于阿尔法(透明)平面。
因此,该色差校正级61的输出是三组经修改的输入面位置(坐标),一组xR’、yR’用于对输入面中的红色平面采样,一组xG’、yG’用于对输入面中的绿色和阿尔法(透明)平面采样,并且一组xB’、yB’用于对输入面中的蓝色平面采样。
然后向“时间扭曲”观看方位变换级62提供由色差校正级61确定的经修改的输入面位置。
该级把一组角α、β、γ当作其输入,该组角指示用户当前的头部位置(该头部位置从显示器4的头部跟踪传感器适当提供),并且因此指示观看方位,输入面(帧)要被渲染为犹如从该观看方位观看以显示在显示器4上,并且该级操作以基于所指示的观看方位生成输入面的投影。
时间扭曲(观看方位)变换级62因此对由色差校正级提供的各输入面位置执行进一步的变换,从而提供一组观看方位变换的输入面位置(xR”,yR”)、(xG”,yG”)、(xB”,yB”),该组输入面位置然后将用于对输入面采样,以得到要用于当前生成的输出经变换面采样(数据元素)位置x,y的颜色值。
时间扭曲(观看方位)变换级62对各输入面位置执行的变换可以包括例如x,y移位、缩放和/或旋转。如果期望,则可以应用较复杂的变换。再次,这在使用中例如可以基于系统与其一起使用的特定头戴式视图器(显示器)4通过驱动器设置用于时间扭曲变换级62的控制参数来调节。
由时间扭曲变换级62确定的已变换输入面位置被提供给内插级63,该内插级在所指示的位置处对输入面采样,以确定这些相应输入面位置处的输入面值。这通过适当内插用于已定义输入面采样(数据元素)位置的输入面值来进行。
输入面采样位置数据的内插可以以任意合适且期望的方式来执行。在本实施方式中,使用双线性内插,但如果期望则可以使用其他结构。
因为对于不同颜色平面确定不同输入面位置(坐标)(以考虑色差),所以在本实施方式中,因此(基于用于各颜色平面的所确定输入面位置)对于用于该颜色平面的输出经变换面采样位置(数据元素)内插单独的一组数据。由此,用于输出经变换面采样位置(数据元素)的一组RGB颜色数据将包括从所确定的“红色”输入面位置(坐标)(xR”,yR”)确定的红色值、从所确定的“绿色”输入面位置(坐标)(xG”,yG”)确定的绿色值以及从所确定的“蓝色”输入面位置(坐标)(xB”,yB”)确定的蓝色值。
这样单独确定的颜色平面(例如,红色、绿色以及蓝色)值然后一起用于(组合)提供用于讨论中的输出经变换面采样(数据)位置(x,y)的颜色数据。
在还要确定阿尔法(透明)值的情况下,那么如以上所讨论的,从用于确定绿色值的输入面位置(坐标)确定该阿尔法值。
经内插的值然后如图5所示地输出到输出缓冲器(FIFO)52,以提供给显示控制器的显示处理流水线的剩余部分,以提供给显示器4以用于向用户显示。
如图5所示,为了适当输入面数据对于内插级63可用,使用65由时间扭曲变换级62确定(且要由内插级63采样)的经修改的输入面位置来控制以下内容:在由内插级63使用包含这些采样位置的输入面的适当区域之前将这些适当区域获取到输入缓冲器51中。
为此,使用由时间扭曲变换级62确定的输入面位置的整数部分来识别包含所需输入面数据的输入面的适当二维块。输入级然后操作以将这些相应输入面块加载到输入缓冲器51中。以下所讨论的图7中进一步例示了这一点。
还如图5所示,为了允许将输入面数据请求到输入缓冲器51中以由内插级63使用与内插级63处理该数据以提供输出经变换面采样位置之间的时延,可以存在在变换级中包括的适当延迟(时延吸收)机制64。这可以根据期望来实现。
如图5所示,通过从显示器4接收适当的同步信号65触发时间扭曲模块(变换级)的操作并控制其定时。
图6是示出了如图5所示的时间扭曲模块(变换级)50的操作的流程图。
图6示出了用于要被生成以显示的输出经变换面中的相应像素(数据位置)的操作。该操作对于所需的各输出经变换面像素(数据位置)重复。
如图6所示,该处理以指示用于显示的新输出帧的开始的适当同步信号120开始。
然后确定要接着生成的期望输出经变换面像素坐标x0,y0(步骤121)。
坐标内插器级60然后操作以基于与镜头失真(该镜头失真当在显示器4的显示板上显示且借助头戴式显示器的镜头观看时将被引入到输出已变换帧)对应的已定义镜头失真,对于要从时间扭曲模块输出的输出经变换面中的像素(采样)位置x0,y0,确定在输入帧中(在要被显示给用户的、由存储在存储器3中的GPU 2渲染的帧中)的对应位置(坐标)xi,yi(步骤122)。
色差校正级61然后取得在步骤122处由坐标内插器级60确定的输入面位置(坐标)xi,yi,并且“校正”这些坐标,以考虑将由显示器4的镜头引入的色差(步骤123),以提供三组经修改的输入面位置(坐标)xr,yr;xga,yga;xb,yb
在步骤123处由色差校正级61确定的经修改的输入面位置然后基于指示用户当前的头部位置的当前输入组的角α、β、γ经受由变换级62进行的“时间扭曲”坐标重新投影(校正)(步骤124),从而提供一组观看方位已变换输入面位置(x’r,y’r)、(x’ga,y’ga)、(x’b,y’b)。
在本实施方式中,基于对于要生成的输出时间扭曲经变换面的各新线从显示器提供的头部跟踪信息更新指示角α、β、γ的输入头部位置。这从而允许逐线调节时间扭曲变换处理,而不是例如必须等待到要显示的下一输出帧开始为止。其他结构当然会是可能的。
这样确定的输入面位置然后如图6所示的针对请求将包括必要输入面采样位置数据的输入面的适当块获取到输入缓冲器中,以允许由内插级63确定用于所确定输入面位置的数据值。这使用各所确定的输入面位置的整数部分来识别将需要哪些输入面块。然后获取所识别的输入面块并将其存储在输入缓冲器中(步骤126)。
内插级然后从在输入缓冲器中存储的输入面块读取适当的输入面数据位置,并且内插用于在讨论中的(x0,y0)中的输出面像素(采样位置)的适当数据值(步骤127)。
然后在输出缓冲器中收集这样生成的输出像素,以随后提供给显示合成单元(并由其消耗)并提供给显示器,以显示(步骤128)。
如图5和图6所示,显示控制器5的时间扭曲模块(变换级)生成要向用户显示的输出经变换面,作为该输出经变换面中的采样位置(像素)的序列(逐采样位置(逐像素))。
在本实施方式中,时间扭曲模块(变换级)被配置成逐栅格线(因为这是将需要把输出经变换面提供给显示器4以显示的顺序)地生成输出经变换面。
图7例示了这一点,并且示出了将被提供为来自时间扭曲模块(变换级)的内插级63的输出流的示例性输出经变换面的三个栅格线71。
图7还示出了对应的输入面72,该输入面存储在存储器33中的适当帧缓冲器(眼睛缓冲器)中,被分成16×16采样位置(像素)块73的阵列,这些采样位置块如以上所讨论的被独立加载到输入缓冲器中,以随着生成输出经变换面的线71而由内插级63使用。
如图7所示,由于由观看所显示的输出经变换面所借助的头戴式显示器4中的镜头引入的典型桶形失真,输出经变换面中的各水平栅格线71实际上将与输入面72中的曲线对应。由此,如图7所示,输出经变换面中的栅格线75将与输入面72中的曲线76对应,以此类推。
由此,如图7所示,为了生成输出经变换面中的栅格线75,将需要把来自整个输入面72的多个不同块73(而不是简单地为来自输入面72的块的线性行)加载到输入缓冲器中。图7的右手侧上例示了这一点,该右手侧示出了处理输出经变换面中的栅格线75所需的输入缓冲器的内容77。
图7还示出了在生成输出经变换面中的栅格线79时需要的来自输入面72的块方面的、输入缓冲器的内容78、以及在生成栅格线81时的输入缓冲器的内容80。
如以上所讨论的,来自输入面72的适当块响应于来自时间扭曲变换级62的信号而加载到输入缓冲器中,这些信号指示生成输出经变换面中的相应采样位置而将需要的输入面位置。将块加载到输入缓冲器中以以下这种方式来控制:在输入缓冲器中保持对于输出经变换面中的下一线所需的任意块,直到对于输出经变换面的下一线不再需要该块为止。
如将从上述内容理解的,本发明至少在其优选实施方式中可以提供一种用于使用头戴式虚拟现实显示系统向用户提供用于显示的适当“经时间扭曲的”图像的更高效机制。
这至少在本发明的优选实施方式中通过将要显示在显示控制器中的帧的“时间扭曲”执行为显示控制器显示处理流水线操作的一部分来实现。具体地,至少在本发明的优选实施方式中,显示控制器被配置成能够逐采样位置(逐像素)地从输入面生成用于显示的时间扭曲经变换面,以能够将用于显示的期望“经时间扭曲的”帧作为像素流直接提供给显示器,以显示。
前述具体实施方式已经为了例示和描述的目的而提出。并非旨在对本技术进行穷尽,或者将本技术限于所公开的精确形式。许多修改例和变型例鉴于上述示教而是可以的。选择了所描述实施方式以最好地说明本技术的原理及其实际应用,从而使本领域其它技术人员能够在各种实施方式中最好使用本技术,以及适合于所设想的具体用途的各种变型。

Claims (25)

1.一种用于数据处理系统的显示控制器,该显示控制器包括:
本地输入缓冲器,该本地输入缓冲器被配置成存储输入图像的数据;
输入电路,该输入电路被配置成将输入图像的数据从存储器获取到所述本地输入缓冲器中;
输出电路,该输出电路被配置成向显示器提供用于显示的输出图像;以及
变换电路,该变换电路被配置成:
识别输入图像的数据区域,该数据区域的数据将是提供所述输入图像的输出变换版本所需的;
使所述输入电路将所述输入图像的所识别的数据区域从所述存储器获取到所述本地输入缓冲器中;
处理来自所述本地输入缓冲器的输入图像数据,来基于所接收的观看方位数据对所述输入图像的数据进行变换,以提供所述输入图像的所述输出变换版本作为输出变换图像;并且
向所述输出电路提供所述输出变换图像,以作为用于显示的输出图像提供给显示器。
2.根据权利要求1所述的显示控制器,其中,所述输入电路被配置成从所述存储器将所述输入图像的数据的块获取到所述本地输入缓冲器中。
3.根据权利要求1或2所述的显示控制器,其中,所述变换电路被配置成基于新接收的观看方位数据定期更新其变换操作。
4.根据权利要求1或2所述的显示控制器,其中:
所述变换电路被配置成基于失真来对所述输入图像进行变换,该失真将由镜头引起,该镜头为用户观看所显示的输出变换图像时将使用的镜头。
5.根据权利要求1或2所述的显示控制器,其中:
所述变换电路被配置成基于色差来对所述输入图像进行变换,该色差将由镜头引起,该镜头为用户观看所显示的输出变换图像时将使用的镜头。
6.根据权利要求5所述的显示控制器,其中,对于所述输入图像的不同颜色平面确定单独的色差校正。
7.根据权利要求1或2所述的显示控制器,其中:
所述变换电路被配置成对于所述输出变换图像中的数据位置确定所述输入图像中的对应位置,应从该对应位置取得用于所述输出变换图像中的该数据位置的数据。
8.根据权利要求1或2所述的显示控制器,其中:
所述变换电路包括:
坐标内插器电路,该坐标内插器电路被配置成基于已定义镜头失真对于要生成的输出变换图像中的数据位置,确定输入图像中的对应位置;
色差校正电路,该色差校正电路被配置成修改由所述坐标内插器电路确定的输入图像位置,以补偿观看所述输出变换图像时的色差来提供至少一个经修改的输入图像位置;以及
观看方位变换电路,该观看方位变换电路被配置成基于所接收的观看方位数据修改由所述色差校正电路确定的所述至少一个经修改的输入图像位置,以提供输出输入图像位置,该输出输入图像位置要被采样以提供用于所述输出变换图像的所述数据位置的数据。
9.根据权利要求1或2所述的显示控制器,其中:
所述变换电路包括内插电路,该内插电路被配置成对多个输入图像采样位置值进行内插,以提供用于输出变换图像中的数据位置的经内插的采样位置值。
10.根据权利要求1或2所述的显示控制器,其中:
所述变换电路被配置成产生输出变换图像数据作为输出变换图像数据位置的流。
11.根据权利要求1或2所述的显示控制器,其中:
所述变换电路包括固定功能处理电路,该固定功能处理电路在使用中能够通过设置用于该固定功能处理电路的一个或更多个控制参数来配置。
12.一种虚拟现实显示装置,该虚拟现实显示装置包括根据权利要求1或2所述的显示控制器。
13.一种用于基于所接收的观看方位数据对输入图像进行变换以提供输出变换图像的设备,该设备包括:
本地输入缓冲器,该本地输入缓冲器被配置成存储输入图像的数据;
坐标内插器电路,该坐标内插器电路被配置成基于已定义镜头失真对于要从所述设备输出的输出变换图像中的数据位置确定输入图像中的对应位置;
色差校正电路,该色差校正电路被配置成修改由所述坐标内插器电路确定的输入图像位置,以补偿观看所述输出变换图像时的色差来提供至少一个经修改的输入图像位置;以及
观看方位变换电路,该观看方位变换电路被配置成:
基于所接收的观看方位数据修改由所述色差校正电路确定的所述至少一个经修改的输入图像位置,以提供输出输入图像位置,该输出输入图像位置要被从来自所述本地输入缓冲器的输入图像数据采样以提供用于所述输出变换图像的所述数据位置的数据;
识别所述输入图像的数据区域,该数据区域的数据将是提供所述输出变换图像所需的;以及
将所述输入图像的所识别的数据区域从所述存储器获取到所述本地输入缓冲器中。
14.一种操作数据处理系统中的显示控制器的方法,所述显示控制器包括:本地输入缓冲器,该本地输入缓冲器被配置成存储输入图像的数据;输入电路,该输入电路被配置成将输入图像的数据从存储器获取到所述本地输入缓冲器中;变换电路,该变换电路被配置成基于所接收的观看方位数据对输入图像进行变换以提供所述输入图像的变换版本作为输出变换图像;
所述方法包括以下步骤:
所述显示控制器的所述变换电路:
识别所述输入图像的数据区域,该数据区域的数据将是提供所述输入图像的输出变换版本所需的;
使所述输入电路将所述输入图像的所识别的数据区域从所述存储器获取到所述本地输入缓冲器中;并且
处理来自所述本地输入缓冲器的输入图像数据,来基于所接收的观看方位数据对所述输入图像的数据进行变换,以提供所述输入图像的所述输出变换版本作为输出变换图像;以及
所述显示控制器向显示器提供所述输出变换图像以供显示。
15.根据权利要求14所述的方法,所述方法包括:
所述输入电路从所述存储器将所述输入图像的数据的块获取到所述本地输入缓冲器中。
16.根据权利要求14或15所述的方法,所述方法包括:所述变换电路基于新接收的观看方位数据定期更新其变换操作。
17.根据权利要求14或15所述的方法,所述方法包括:
所述变换电路基于失真来对所述输入图像进行变换,该失真将由镜头引起,该镜头为用户观看所显示的输出变换图像时将使用的镜头。
18.根据权利要求14或15所述的方法,所述方法包括:
所述变换电路基于色差来对所述输入图像进行变换,该色差将由镜头引起,该镜头为用户观看所显示的输出变换图像时将使用的镜头。
19.根据权利要求18所述的方法,其中,对于所述输入图像的不同颜色平面确定单独的色差校正。
20.根据权利要求14或15所述的方法,其中:
所述变换电路对于所述输出变换图像中的数据位置确定所述输入图像中的对应位置,应从该对应位置取得用于所述输出变换图像中的该数据位置的所述数据。
21.根据权利要求14或15所述的方法,其中,所述变换电路通过以下处理基于所接收的观看方位数据来变换所述输入图像以提供所述输出变换图像:
基于已定义镜头失真对于要输出的所述输出变换图像中的数据位置确定所述输入图像中的对应位置;
修改所确定的输入图像位置,以补偿观看所述输出变换图像时的色差来提供至少一个经修改的输入图像位置;以及
基于所接收的观看方位数据修改所确定的至少一个经修改的输入图像位置,以提供所述输入图像中的输出位置,该输出位置要被采样以提供用于所述输出变换图像的所述数据位置的数据。
22.根据权利要求14或15所述的方法,所述方法包括:
所述变换电路内插多个输入图像采样位置值,以提供用于所述输出变换图像中的数据位置的经内插的采样位置值。
23.根据权利要求14或15所述的方法,其中:
所述变换电路产生所述输出变换图像数据作为输出变换图像数据位置的流。
24.根据权利要求14或15所述的方法,所述方法包括:
用于所述显示控制器的驱动器在使用中设置用于所述变换电路的一个或更多个控制参数,以配置该变换电路。
25.一种计算机可读存储介质,所述计算机可读存储介质包括计算机软件代码的计算机程序,该计算机软件代码用于当所述程序在数据处理器上运行时执行根据权利要求14或15所述的方法。
CN201810171149.4A 2017-03-01 2018-03-01 用于数据处理系统的显示控制器及其操作方法 Active CN108536405B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/446,997 US11127110B2 (en) 2017-03-01 2017-03-01 Data processing systems
US15/446,997 2017-03-01

Publications (2)

Publication Number Publication Date
CN108536405A CN108536405A (zh) 2018-09-14
CN108536405B true CN108536405B (zh) 2023-05-12

Family

ID=61903187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810171149.4A Active CN108536405B (zh) 2017-03-01 2018-03-01 用于数据处理系统的显示控制器及其操作方法

Country Status (4)

Country Link
US (1) US11127110B2 (zh)
KR (1) KR102561042B1 (zh)
CN (1) CN108536405B (zh)
GB (1) GB2565613B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740802A (zh) * 2016-01-28 2016-07-06 北京中科慧眼科技有限公司 基于视差图的障碍物检测方法和装置及汽车驾驶辅助系统
WO2018190826A1 (en) * 2017-04-12 2018-10-18 Hewlett-Packard Development Company, L.P. Transfer to head mounted display
US10692420B2 (en) 2018-09-13 2020-06-23 Arm Limited Data processing systems
US11170577B2 (en) * 2018-10-30 2021-11-09 Facebook Technologies, Llc Generating and modifying representations of objects in an augmented-reality or virtual-reality scene
US11403810B2 (en) * 2018-11-02 2022-08-02 Facebook Technologies, Llc. Display engine for post-rendering processing
CN109460205B (zh) * 2018-11-06 2021-09-10 沈阳天眼智云信息科技有限公司 数据曲线的生成与显示方法及系统
CN109194951B (zh) * 2018-11-12 2021-01-26 京东方科技集团股份有限公司 头戴显示设备的显示方法和头戴显示设备
KR20200063614A (ko) * 2018-11-28 2020-06-05 주식회사 라온텍 Ar/vr/mr 시스템용 디스플레이 유닛
CN109753155B (zh) * 2019-01-02 2021-01-22 京东方科技集团股份有限公司 头戴显示设备、其驱动方法及虚拟现实显示装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184522A (zh) * 2010-06-17 2011-09-14 威盛电子股份有限公司 顶点数据储存方法、图形处理单元及细化器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPM701394A0 (en) * 1994-07-22 1994-08-18 Monash University A graphical display system
AUPQ005099A0 (en) * 1999-04-29 1999-05-20 Canon Kabushiki Kaisha Sequential bus architecture
US7750236B2 (en) * 2007-01-09 2010-07-06 The Southern Company Non-boring support system for transmission line structures
JP5388534B2 (ja) * 2008-10-09 2014-01-15 キヤノン株式会社 画像処理装置およびその方法、頭部装着型ディスプレイ、プログラム、記録媒体
US9621869B2 (en) * 2012-05-24 2017-04-11 Sony Corporation System and method for rendering affected pixels
US9576397B2 (en) * 2012-09-10 2017-02-21 Blackberry Limited Reducing latency in an augmented-reality display
US9355484B2 (en) * 2014-03-17 2016-05-31 Apple Inc. System and method of tile management
GB201410314D0 (en) * 2014-06-10 2014-07-23 Advanced Risc Mach Ltd Display controller
US10438331B2 (en) * 2014-06-26 2019-10-08 Intel Corporation Distortion meshes against chromatic aberrations
US11010956B2 (en) 2015-12-09 2021-05-18 Imagination Technologies Limited Foveated rendering
CN108139815B (zh) 2016-02-22 2020-11-10 谷歌有限责任公司 用于虚拟现实内容的显示的场景和对象的分立时间扭曲
US10453272B2 (en) 2016-05-29 2019-10-22 Google Llc Time-warping adjustment based on depth information in a virtual/augmented reality system
EP4235391A3 (en) * 2016-08-22 2023-10-25 Magic Leap, Inc. Virtual, augmented, and mixed reality systems and methods
GB2556634B (en) 2016-11-18 2020-05-27 Advanced Risc Mach Ltd Graphics processing systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184522A (zh) * 2010-06-17 2011-09-14 威盛电子股份有限公司 顶点数据储存方法、图形处理单元及细化器

Also Published As

Publication number Publication date
KR102561042B1 (ko) 2023-07-28
US20180253868A1 (en) 2018-09-06
KR20180100486A (ko) 2018-09-11
GB2565613A (en) 2019-02-20
US11127110B2 (en) 2021-09-21
CN108536405A (zh) 2018-09-14
GB2565613B (en) 2021-04-28
GB201803300D0 (en) 2018-04-11

Similar Documents

Publication Publication Date Title
CN108536405B (zh) 用于数据处理系统的显示控制器及其操作方法
US12020401B2 (en) Data processing systems
US10733789B2 (en) Reduced artifacts in graphics processing systems
CN110659005B (zh) 操作数据处理系统和方法、显示装置以及计算机可读介质
US11270492B2 (en) Graphics processing systems
KR101785027B1 (ko) 화면 왜곡 보정이 가능한 디스플레이 장치 및 이를 이용한 화면 왜곡 보정 방법
US10890966B2 (en) Graphics processing systems
CN109300183B (zh) 用于提供输出面的数据处理系统和方法
US10692420B2 (en) Data processing systems
US11211034B2 (en) Display rendering
US10672367B2 (en) Providing data to a display in data processing systems
CN109410303B (zh) 用于头戴式显示器的低延迟失真单元
TW454154B (en) Method and apparatus for stretch blitting using a 3D pipeline
JP4487959B2 (ja) 画像処理装置および画像処理方法、並びにプログラム
US20230237730A1 (en) Memory structures to support changing view direction
JP2015099959A (ja) 画像処理装置及び方法、並びに電子機器
JPH04349496A (ja) 画像処理装置及びその方式
KR20220080314A (ko) 디스플레이 패널의 영상 출력을 위한 프레임 버퍼를 포함하는 영상 표시 장치 및 이의 제어 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220819

Address after: Britain Camb

Applicant after: Arm Ltd.

Address before: Britain Camb

Applicant before: Arm Ltd.

Applicant before: Apical Ltd.

GR01 Patent grant
GR01 Patent grant