在重新投影每个场时,检测来自头显传感器306或姿态追踪器的更新姿态数据。因此,由于在服务器计算的姿态预测产生的相对较大的姿态差异在早期重投影步骤中得到了考虑★★★★■■,所以后期重投影步骤只需要考虑相对较小的姿态差异★★■,因为更新的姿态是在场率下检测到★◆◆■◆■,只需要进行微小的调整即可进行重投影。
头显对所接收的渲染图像帧流执行早期重投影404■◆★◆■。在一个示例中,早期重投影是在以帧速率呈现的帧流的呈现帧执行。
图2解释了重投影。图2描述了基于所述预渲染图像212的预渲染图像212的一部分和更新的图像214的一个示例。
在早前重投影之后,在操作406a、406b和406c中对渲染图像帧的场进行后期重投影■★★■◆◆。后期的重投影是按场速率进行◆■◆。早期重投影比后期重投影使用更多的计算资源。一旦使用后期重投影对已呈现的图像帧的场进行了重投影,则在步骤404■◆★■■★,头显对从服务器接收的下一个渲染图像帧执行早期重投影。图4的方法重复,以便在头显的高场速率显示下呈现和显示图像帧流。
通常■◆,图像帧显示引起的大部分延迟来自非本地计算单元,这意味着姿态预测与实际头显姿态之间的差值可能相对于服务器的初始姿态预测(Pi)较大。所以★■◆,在早期进行的复杂重投影非常适合。
预渲染图像是由独立于头显的计算设备(例如云服务器或边缘服务器)渲染的图像。更新后的图像是从使用重投影的预渲染图像计算得到的图像◆★◆◆。
因此,与早期重投影相比■★,后期重投影使用的计算资源更少,这意味着头显316可以以高场速率显示器所需的场率在渲染图像帧的场重复后期重投影,从而最大限度地减少色差■★。
在第400,在服务器呈现图像帧。在一个示例中■★,从复杂的3D模型中渲染图像帧流,与由头显渲染相比,服务器能够以更短的时间尺度和更高的质量进行渲染。所渲染的图像帧根据姿态进行渲染■◆■■■★,例如由服务器基于从所述头显接收到的头显传感器数据计算的预测姿态◆■。
早期阶段的重投影以低于场速率的速率应用于渲染帧。后期重投影应用于渲染帧的场,其中早期重投影比后期重投影使用更多的计算资源。
服务器304使用头显 316的相应初始预测姿态(Pi) 302呈现图像帧300◆★。预测是在图像帧显示给用户时头显将处于什么姿态◆★★■◆★。对于所述所述图像帧流中的其他所述图像帧重复图3A所示的过程◆★■。呈现的帧流以帧速率从服务器发送到头显。
高场速率是一个重大挑战◆◆■,因为它们需要重新投影在非常短的时间内执行。由于头显是一种资源受限的设备,所以存在对功率的限制。这限制了重投影在具有高场速率显示器的头显中补偿的延迟量,从而使得厂商倾向于将具有高场速率显示器的头显限制在具有本地渲染的场景中◆★■★,而不是基于云端的渲染。
头显316通过应用由传感器306检测到的更新姿态(PR1)来对接收到的渲染帧300执行早期再投影308。更新的姿态(PR1)用于计算用于第一后期重投影308的头显更新预测姿态(Pe1)。由于更新的姿态数据(PR1)是基于最近的真实头显姿态数据,所以与在服务器304计算的初始姿态预测(Pi)相比◆★◆★,更新的姿态预测(Pe1)是更准确的姿态预测。
在一个实施例中,基于更新的姿态估计和初始姿态估计之间的姿态差异,通过对预渲染的图像212应用图像转换,使用重投影生成更新的图像214。
在一个实施例中◆■■■,专利描述的方法包括接收头显姿态,并使用所接收的头显姿态和当前预测的头显姿态作为早期重投影的输入。通过这种方式,早期重投影能够获得高质量的性能。
图像变换包括预渲染图像212的至少一部分的图像旋转■◆■◆■◆、平移★◆★■、调整大小、移动或倾斜。更新的图像214可以通过预渲染图像212的同位变换来生成。
后期重投影在每个场的指定时间进行,并且后期重投影使用头显对每个场的预测姿态★◆■◆,头显计算的预测姿态。使用预测的姿态可以实现高精度★■。例如★★■■,头显计算的预测姿态是使用有关头显运动路径的数据计算◆★★。使用运动路径特别有效。
其中,早期阶段的重投影以较低的频率运行◆■★◆◆■,并且与更高速率的更简单、更有效的重投影相结合。
可以使用像素偏移调整或同向变换和像素偏移调整的组合生成更新的图像214。在一个实施例中★◆■■■◆,可使用与显示器集成的控制器或处理器生成所述同形变换和/或像素偏移调整★◆★◆。
例如,它可以以像素精度运行◆★◆■,并利用额外的数据源或神经网络来提高质量。早期重投影操作用于校正在早期重投影操作时传入帧所呈现的姿态与更新的前向预测姿态之间的差■◆。剩余的延迟★◆,以及剩余的姿态误差可以用一个更简单、更有效的重投影过程来补偿。
通过以这种方式使用早期和后期重投影★◆◆,可以显著减少运动到光子的延迟以及颜色分离伪影■◆■◆。早期的重投影足够复杂★■★◆★,可以解释接收到的渲染帧的姿态误差★■★■,后期的重投影足够有效■★■■,可以在场速率下操作。
将早期重投影308应用于渲染帧流的速率小于场速率。在一个实施例中,早期重投影308以帧速率执行★◆◆■■,即渲染帧从服务器发送到头显的速率◆■★■■★。与场速率相比★■★,以较低的速率执行早期重投影308的好处是可以采用更复杂的重投影方法,更准确地校正服务器304使用的初始姿态预测(Pi)和更新的姿态预测(Pe1)之间的差值。
头显316依次对所呈现的图像帧的场执行后期重投影310■◆★、312、314,其中场重投影之间的时间由场率定义★★。例如,对于包含RGBD数据的图像帧,将后期重投影应用于红色场,然后是蓝色场,接下来是绿色场。
后期重投影是使用使用早期重投影进行重投影的渲染图像帧执行。后期重投影使用来自头显传感器306或头姿态追踪器的更新姿态数据(PR2■■◆■■, PR3◆■★■, PRN)。
然后◆★◆■,对帧的每个场依次执行后期重投影,并对每个场使用正好及时接收到的用于后期重投影的头显姿态■■◆◆◆★。
高场速率显示器能够以足够快的视场率显示◆◆,其中一个例子是FSC场序彩色显示器。它可以实现更低的功耗和更高的空间分辨率,因为没有使用空间彩色滤波子像素◆■★◆■★。所以★★★◆◆★,微软认为FSC显示器适用于XR头显中的微型显示器。
图3B与图3A相同◆★★◆■■,但增加了图3A各阶段过程之间的时间间隔标签。时间间隔320显示了应用早期重投影速率的示例,其中它以帧速率(tFRAME)应用■■◆■,这是渲染帧从服务器发送到头显的速率◆★■◆。时间间隔322◆◆★◆■、324和326由场率(tFIELD)设定,而与时间间隔320 (tFRAME)相比时间间隔较短◆◆★◆。
在不同的例子中,渲染的帧是红绿蓝深度RGBD帧◆■,并且RGBD帧的深度通道用于早期重投影◆◆■★◆。通过在渲染帧中包含深度通道,可以在早期重投影阶段考虑深度信息并获得高质量的结果。
需要注意的是,一般来说,美国专利申请接收审查后■■★■,自申请日或优先权日起18个月自动公布或根据申请人要求在申请日起18个月内进行公开。注意★★◆,专利申请公开不代表专利获批■★◆。在专利申请后,美国专利商标局需要进行实际审查■★★■■★,时间可能在1年至3年不等◆★。
图3A是用于高场速率显示器的示例重投影过程的示意图。图3A示出位于所述头显中的服务器304■◆■★■★、头显 316和传感器306◆★★★。图3A示出用于渲染图像帧流的单个渲染图像帧300的处理。
根据在确定初始姿态估计之后的某个时间点获取的更新姿态信息确定更新的姿态估计。在一个示例中,基于基于摄像头的姿态追踪信息和/或基于摄像头的姿态追踪信息和与头显对应的低延迟IMU运动信息的组合生成更新的姿态信息。
头显316的预测姿态302是根据头显316传感器提供的信息或以任何其他合适的方式计算。所呈现的图像帧300和初始预测姿态302提供给头显316◆★■。在一个示例中◆◆■■■,渲染的图像帧300是一个红绿蓝深度RGBD帧。
重投影是AR设备显示全息图时经常应用的过程。这是因为头显经常移动,导致渲染图像的视点与头显的视点不一致,所以为了减少这种不一致★■★,通常需要采用重投影。
由于早期重投影的运行速度较低,所以它可以使用更复杂或更复杂的过程,而功耗/性能成本与逐场重投影相同★■■■■。早期重投影的复杂性是由于重投影对计算的要求更高和/或重投影处理的数据量更大等因素造成。
在一个示例中,所渲染的图像帧300由服务器从复杂的3D模型呈现■★★★。由于从复杂的3D模型进行渲染的计算需求很高,所以与在头显渲染相比,具有更强大计算资源的服务器304可以在更短的时间内执行渲染。
在示例中,至少部分地使用来自惯性测量单元IMU的数据来计算观察到的头显的预测姿态。在头戴式显示器中使用IMU是一种实用的方法,它提供了一种有效的方法来获得头戴式显示器的预测姿态★◆■。
如上所述,预渲染图像212是基于头显的初始姿态估计渲染。初始姿态估计是基于头显的当前位置和方向以及头显在确定初始姿态估计之前的加速度和速度来确定◆◆■。预渲染图像212包括基于初始姿态估计的渲染图像,并且使用GPU或其他渲染系统渲染。
在一个实施例中,通过对预渲染的图像212应用像素偏移调整来生成更新的图像214★★■★◆。像素偏移调整的程度可以取决于更新的姿态估计和初始姿态估计之间的差异★■◆。如图所示■■,虚拟对象的图像213在x维度和y维度都进行了像素移动,例如向左移动4个像素,向上移动3个像素★■■★。