当前位置: 首页 > 专利查询>ARM有限公司专利>正文

图形处理系统技术方案

技术编号:20024314 阅读:26 留言:0更新日期:2019-01-06 03:47
图形处理系统。除了渲染表示场景的第一前向视图的第一帧,图形处理系统还渲染该第一帧的一个或更多个另外版本,各版本基于不同时间点和/或视图方位表示场景的另外视图。然后,可以对第一帧和/或一个或更多个另外版本中的一个或更多个版本进行“时间扭曲”和/或“空间扭曲”处理以生成用于显示的输出“时间扭曲的”和/或“空间扭曲的”图像。

【技术实现步骤摘要】
图形处理系统
本专利技术涉及图形处理系统,具体涉及向虚拟现实(VR)和/或增强现实(AR)(头戴式)显示系统提供用于显示的图像的图形处理系统。
技术介绍
图1示出了示例性片上系统(SoC)图形处理系统10,其包括包含中央处理单元(CPU)1的主处理器、图形处理单元(GPU)2、显示控制器4和存储器控制器6。示例性图形处理系统10可以还包括视频引擎3。如图1所示,这些单元经由互联器5通信并且可以访问片外存储器7。在该系统中,图形处理单元(GPU)2将渲染帧(图像)以被显示,并且显示控制器4然后将帧提供给显示面板8以显示。在使用该系统时,例如在主处理器(CPU)1上执行的诸如游戏之类的应用将要求在显示器8上显示帧。为此,应用将适当的命令和数据提交给在CPU1上执行的用于图形处理单元(GPU)2的驱动。然后,该驱动将生成适当的命令和数据,以使图形处理单元(GPU)2渲染用于显示的适当帧并将这些帧存储在适当的帧缓冲器中,例如存储在主存储器7中。然后显示控制器4将这些帧读入显示器的缓冲器中,然后将其从中读出并且在显示器8的显示面板上显示。图形处理系统10将被配置成提供用于显示的帧,并且图形处理单元(GPU)2将相应地被配置成以适当的速率诸如每秒30帧来渲染帧。使用诸如图1所示的图形处理系统的示例是提供虚拟现实(VR)或增强现实(AR)头戴式显示器(HMD)系统。在这种情况下,显示器8将是某种头戴式显示器。在头戴式显示器操作中,响应于来自(例如,在CPU1上执行的)诸如游戏之类的需要显示的应用的适当命令和数据,由图形处理单元(GPU)2渲染要向每只眼睛显示的适当帧(图像)。在这样的构造中,系统还将操作以跟踪用户的头部/视线的运动(所谓的头部姿态(方位)跟踪)。然后使用该头部方位(姿态)数据来确定如何实际向用户显示针对其当前头部位置(视图方位(姿态))的图像,并且相应地渲染图像(帧)(例如,通过基于头部方位数据来设置摄像头方位(视点和视图方向)),从而可以显示基于用户当前视图方向的适当图像(帧)。虽然可以简单地在图形处理单元(GPU)2开始渲染要在虚拟现实(VR)或增强现实(AR)系统中显示的帧时确定头部方位(姿态),然后一旦渲染了帧就用该其更新显示器8,但是由于渲染过程中的延迟,可能存在的情况是在头部方位(姿态)在开始渲染帧时被感测和实际显示该帧的时间(被扫描出到显示器8)之间用户的头部方位(姿态)改变了。此外,通常期望能够以比图形处理单元(GPU)2能够渲染帧快的速率提供用于在虚拟现实(VR)或增强现实(AR)系统中显示的帧。为了允许这一点,对于头戴式显示系统,已经提出了称为“时间扭曲”的处理。在该处理中,基于在图形处理单元(GPU)2渲染“应用”帧的开始处感测到的头部方位(姿态)数据,图形处理单元(GPU)2首先渲染应用帧,但是随后在图像被实际显示在显示器8上之前,感测到更多的头部方位(姿态)数据,并且使用更新的头部方位(姿态)传感器数据来变换经图形处理单元(GPU)2渲染的应用帧以生成考虑更新的头部方位(姿态)数据的应用帧的“更新”版本。然后,在显示器8上显示应用帧的这样“时间扭曲的”更新版本。通常可以在比图形处理单元(GPU)2渲染帧所需的时间短得多的时间内对由图形处理单元(GPU)2渲染后的应用帧执行“时间扭曲”所需的处理。因此,通过执行“时间扭曲”处理,与图形处理单元(GPU)2在没有“时间扭曲”处理的情况下直接渲染要在显示器8上显示的各图像相比,可以减少在感测到头部方位(姿态)数据与使用感测到的头部方位(姿态)数据更新在显示器8上显示的图像之间的时间。这样做的效果是,通过使用“时间扭曲”处理,在显示器8上显示的图像可以较紧密匹配用户的最新头部方位(姿态),从而得到例如较逼真的虚拟现实(VR)或增强现实(AR)体验。类似地,可以以比图形处理单元(GPU)2可以能够渲染帧的速率(诸如每秒30帧)快的速率(诸如每秒90或120帧)执行“时间扭曲”处理。因此,可以使用“时间扭曲”处理来以比在不使用“时间扭曲”处理的情况下可能的速率快的速率提供已经基于感测到的头部方位(姿态)更新的用于显示的帧。例如,这可以帮助减少“颤抖”的伪像并提供较平滑的虚拟现实(VR)或增强现实(AR)体验。图2、图3和图4较详细地例示了“时间扭曲”处理。图2示出当观看者向正前方观看时示例性帧20的显示,以及当用户的观看角度由于头部旋转而改变时该帧21的所需的“时间扭曲”投影。从图2可以看出,对于帧21,必须显示帧20的修改版本。图3相应地示出了对应用帧30的“时间扭曲”渲染31以提供用于显示的“时间扭曲的”帧32。如图3所示,为了以连续间隔显示应用帧30的适当“时间扭曲的”版本32,在等待新的应用帧被渲染的同时,已经渲染的给定应用帧30可以经受两个(或更多个)“时间扭曲”处理31。“时间扭曲”处理31可以与应用帧30的渲染并行(使用不同的线程)(即,异步地)执行,这被称为“异步时间扭曲”(ATW)处理。图3还示出了用于确定适当的“时间扭曲”修改的头部方位(姿态)数据的规则采样33,该修改应当被应用于应用帧30以基于其头部方位(姿态)适当地向用户显示帧。图4示出了示例性渲染的应用帧40以及由“时间扭曲”应用帧40生成以供显示的四个相应的“时间扭曲的”帧41A-41D的示意图。为了确保图形处理单元(GPU)2渲染后的应用帧数据对于一定范围的可能的头部运动可用以被“时间扭曲”,应用帧通常由图形处理单元(GPU)2基于比实际显示给用户的输出的“时间扭曲的”帧的视场宽的视场来渲染。应用帧的视场可以基于例如假定应用帧有效的时间段内的头部运动(例如,旋转和/或平移)的允许或预期(最大)量。然后,在要显示该应用帧时,将使用“时间扭曲”处理来有效地渲染从应用帧的较宽视场中获取的适当窗口(“信箱”)。因此,在图4的示意性示例中,通过基于16×8方块视场渲染场景来提供应用帧40,但是提供具有从该较宽视场获取的仅5×4方块视场的“时间扭曲的”帧41A-41D以显示。各“时间扭曲的”帧将还被变换(“时间扭曲”),例如,如上所述,基于最近的头部方位(姿态)信息来提供显示给用户的实际输出图像。因此,如图4的示例所示,当检测到头部方位(姿态)的改变时,应用帧40被变换,使得与当没有检测到头部方位(姿态)的变化时(41A)相比,对象42出现在“时间扭曲的”帧41B-41D中的适当移位的位置处。因此,如图4所示,当检测到向右的头部运动时,对象42看起来向左移位(41B)。与当没有检测到头部方位(姿态)改变时(41A)相比,当检测到向右的较大的头部运动时,对象42看起来向左移位较远(41C);并且当检测到向左的头部运动时,对象42看起来向右移位(41D)。因此,在“时间扭曲”处理中,应用帧首先基于在开始渲染应用帧时感测到的第一视图方位(姿态)被渲染,并且因此大致表示在第一视图方位(姿态)被感测时应该给用户出现的正在渲染的场景的静态“快照”。然后可以使用“时间扭曲”处理来基于在已经渲染该应用帧之后在一个或更多个相应的稍后时间点感测的一个或更多个第二视图方位(姿态)来更新(变换)静态“快照”应用帧,以提供一系列一个或更多个连续的“时间扭曲的”帧,各帧表示在该相应本文档来自技高网...

【技术保护点】
1.一种操作图形处理系统的方法,该图形处理系统渲染对一个或更多个对象的场景的视图进行表示的帧,并且通过基于接收到的视图方位数据和/或对象运动变换渲染后的帧来从渲染后的帧生成用于显示的输出帧,该方法包括以下步骤:渲染第一帧,该第一帧表示在第一时间点、从第一视点和在第一视图方向上的场景的第一视图;渲染所述第一帧的一个或更多个另外版本,各另外版本表示在另外时间点和/或从另外视点和/或在另外视图方向上的所述场景的另外视图;接着使用来自渲染后的第一帧的渲染数据和/或来自所述第一帧的一个或更多个渲染后的另外版本中的一个或更多个版本的渲染数据生成用于显示的输出帧。

【技术特征摘要】
2017.06.19 GB 1709752.8;2017.10.06 GB 1716377.51.一种操作图形处理系统的方法,该图形处理系统渲染对一个或更多个对象的场景的视图进行表示的帧,并且通过基于接收到的视图方位数据和/或对象运动变换渲染后的帧来从渲染后的帧生成用于显示的输出帧,该方法包括以下步骤:渲染第一帧,该第一帧表示在第一时间点、从第一视点和在第一视图方向上的场景的第一视图;渲染所述第一帧的一个或更多个另外版本,各另外版本表示在另外时间点和/或从另外视点和/或在另外视图方向上的所述场景的另外视图;接着使用来自渲染后的第一帧的渲染数据和/或来自所述第一帧的一个或更多个渲染后的另外版本中的一个或更多个版本的渲染数据生成用于显示的输出帧。2.根据权利要求1所述的方法,所述方法还包括:使用第一输入数据来渲染所述第一帧;以及使用所述第一输入数据的至少一些来渲染所述第一帧的所述一个或更多个另外版本中的至少一个版本。3.根据权利要求1或2所述的方法,所述方法还包括:确定所述场景的所述第一视图中的对象是否接近所述第一视点;以及仅当确定所述场景的所述第一视图中的对象接近所述第一视点时渲染所述第一帧的所述一个或更多个另外版本中的至少一个版本。4.根据权利要求1或2所述的方法,所述方法还包括:确定所述场景的所述第一视图中的对象是否正在运动;以及当确定所述场景的所述第一视图中的对象正在运动时,基于相应的另外时间点渲染所述第一帧的所述一个或更多个另外版本中的至少一个版本。5.根据权利要求1或2所述的方法,所述方法还包括:确定如果执行了渲染所述第一帧的所述一个或更多个另外版本中的至少一个版本是否将不超过所述图形处理系统的处理极限;以及仅当确定不超过处理极限时渲染所述第一帧的所述一个或更多个另外版本中的所述至少一个版本。6.根据权利要求1或2所述的方法,所述方法还包括:基于以下各项中的至少一项针对所述一个或更多个另外版本中的至少一个版本选择所述另外时间点和/或另外视点和/或另外视图方向:(i)被确定为接近所述第一视点和/或正在运动的对象的一个或更多个属性;(ii)接收到的视图方位数据;(iii)由应用提供的关于所述第一帧被渲染的信息;以及(iv)所述图形处理系统的处理能力。7.根据权利要求1或2所述的方法,所述方法还包括:以比所述第一帧低的质量渲染和/或存储所述第一帧的所述一个或更多个另外版本中的至少一个版本;和/或比所述第一帧较不频繁地更新所述第一帧的所述一个或更多个另外版本中的至少一个版本。8.根据权利要求1或2所述的方法,所述方法还包括:对于所述一个或更多个另外版本中的至少一个版本:确定场景的区域,该区域包含:接近第一视点和/或正在运动的对象;以及所述场景的一部分,该部分在由所述第一帧表示的所述场景的所述第一视图中被该对象遮挡但在由相应的另外版本表示的所述场景的视图中不被该对象遮挡;以及基于相应确定的所述的场景的区域,仅针对所述第一帧的一些而非全部渲染相应的另外版本。9.根据权利要求1或2所述的方法,其中,使用来自渲染后的第一帧的渲染数据和/或来自所述第一帧的所述一个或更多个渲染后的另外版本中的一个或更多个版本的渲染数据来生成用于显示的所述输出帧包括:基于接收到的视图方位数据从以下各项中的至少一项选择渲染数据以用于生成所述输出帧:(i)针对所述第一帧的渲染数据;以及(ii)针对所述第一帧的所述一个或更多个另外版本中的所述一个或更多个版本的渲染数据。10.根据权利要求9所述的方法,其中,生成所述输出帧包括基于接收到的视图方位数据和/或对象运动来变换所选择的渲染数据。11.一种生成用于显示系统的显示的输出帧的方法,所述方法包括以下步骤:接收由该显示系统感测到的视图方位数据;以及基于接收到的视图方位数据从以下各项中的至少一项选择渲染数据以用于生成所述输出帧:(i)基于第一时间点和第一视图方位渲染的针对第一帧的渲染数据;和(ii)基于另外时间点和/或另外视图方位分别渲染的针对所述第一帧的一个或更多个另外版本的渲染数据。12.一种图形处理系统,该图形处理系统被配置成:由处理电路帧来渲染帧,各帧表示一个或更多个对象的场景的视图,并且通过基于接收到的视图方位数据和/或对象运动对...

【专利技术属性】
技术研发人员:D·克罗克斯福德O·奥库尔特B·斯塔基
申请(专利权)人:Arm有限公司
类型:发明
国别省市:英国,GB

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1