/ Nweon / 0浏览

微软XR专利介绍分拆计算架构+远程重投影渲染改善设备性能



映维网Nweon
2024年11月25日

)重投影是增强现实设备显示全息图时经常应用的过程。当从3D模型进行渲染以获得在头戴式显示器显示的图像时,渲染系统使用有关头显姿势的信息来确保渲染图像与头显视点一致。但是,从3D模型进行渲染会导致延迟,特别是在3D模型非常复杂时。在渲染延迟期间,头显经常移动,导致渲染图像的视点与头显视点不一致。为了减少这种不一致,通常会采用重投影。重投影的目的是最大限度地减少运动到光子的延迟。

然而,从一个复杂的3D模型中进行渲染对于计算而言非常昂贵。通常,这种高计算成本任务会从头显转移到云端、配套计算设备或边缘计算设备。但这又会对重投影产生影响,因为重投影使用头显的最新姿势,而这通常是在头显本身完成。

在一份专利申请中,
微软
指出,通过精心设计,可以令远程计算设备与头戴式显示器一起执行重投影过程的工作。通过这种方式,可以利用远程设备提供的更多计算资源。另外,资源受限的头显可以释放出来并用于其他任务。

在一个实施例中,可以使用平面偏差重投影。平面偏移重投影是一种将深度图像划分为块并将每个块中的深度值拟合为单独平面的过程。确定块中偏离块平面的特征。对偏离平面的特征进行三维多边形网格拟合。

为了计算平面偏差重投影,使用显示设备的更新姿态从3D多边形网格中渲染图像,然后使用所述图像变换与所述深度图像相对应的彩色图像,以产生所述彩色图像的重投影。

深度图像是根据预测的姿态从3D模型中渲染出来。通过从3D模型进行渲染,可以创建3D图形的图像。所述深度图像被划分为多个块。通过将图像划分为块,可以以并行的方式实现每个块的有效处理。

对于所述多个块中的每个块,计算一个包括表示块几何复杂性的平面偏差误差值的误差图,其中平面偏差误差值包括块的几何形状偏离平面的程度。由于图像划分为多个块,所以可以将平面与块的深度值相匹配,因为每个块都是图像的一小部分。

图1示出了针对存储在云中或在边缘计算设备中存在复杂3D模型112的情况实现重投影的部署。在图1的示例中,复杂的3D模型112是一个城市,并且包含数百万个顶点,其中3D模型112是一个网格模型。

远程渲染设备106具有存储器和预计算功能110,用于执行使用平面偏差重投影来重投影图像的部分工作。

所述显示设备102能够向所述远程渲染设备106发送包含其姿态的查询。远程渲染设备106响应所述查询并使用所述姿态渲染来自所述复杂3D模型112的图像。所渲染的图像通过网络100返回到所述显示设备102。

所以,延迟是由远程渲染设备106的处理和网络100上的通信引入。延迟同时由在显示设备102发生的处理引起。如上所述,可以在显示设备使用重投影104,并且在显示设备102和远程渲染设备之间分割重投影104的工作。

微软表示,显示设备102以非常规方式操作以实现改进的视觉质量图像。远程渲染设备106同样以非常规方式操作以实现改进的视觉质量图像。

图2描述了基于预渲染图像202的预渲染图像202和更新的图像208的一部分。预渲染图像是由独立于显示设备的计算设备渲染的图像。更新后的图像是从使用重投影的预渲染图像计算得到的图像。

预渲染图像202基于显示设备的初始姿态估计200进行渲染。预渲染图像202包括基于初始姿态估计200的渲染图像,并且使用具有将三维模型渲染为给定特定姿态的二维图像的能力的GPU或其他渲染系统进行渲染。

更新的姿态估计206是基于在确定初始姿态估计之后的某个时间点获得的更新的姿态信息来确定。更新后的图像208使用平面偏移重投影生成。所述预渲染图像包括深度图像和彩色图像。

在一个实施例中,通过对预渲染图像202的彩色图像应用像素偏移调整来生成更新后的图像208。像素偏移调整的程度可以取决于更新的姿态估计与初始姿态估计之间的差异,以及从拟合到偏离平面的特征的3D网格中渲染的图像中的信息。

如图所示,虚拟对象的图像204在x维和y维都进行了像素移动。在一个示例中,更新后的图像208是使用通过渲染镶嵌网格计算的像素偏移调整生成。为了计算平面偏差重投影,使用显示设备的更新姿态从3D多边形网格中渲染图像。然后使用所述图像变换与所述深度图像相对应的彩色图像,以产生所述彩色图像的重投影。

图3A是在远程渲染设备106和显示设备102之间分配重投影过程的示意图。在图3A的示例中,由远程渲染设备106计算错误映射并发送到显示设备102。在图3B的示例中,误差图由远程渲染设备106计算,预算图306同样由远程渲染设备计算。在图3B的示例中,将预算映射314发送到显示设备。

在图3A的实施例中,远程渲染设备渲染来自复杂3D模型的彩色图像,并且渲染相应的深度图像。所述远程渲染设备300向所述显示设备102发送所述颜色和深度图像300。在一个示例中,远程渲染设备106使用任何常规图像压缩过程,并将300发送到显示设备。

远程渲染设备106计算302一个错误映射。误差图是一个2D数值数组,对应于深度图像的块,其中深度图像划分为块,块在2D深度图像数组上镶嵌。误差图中的数值为平面偏差值。

平面偏差值是深度图像块与深度图像中所描绘的表面的平面在深度上不同的量。平面偏差误差值可以计算为块中深度值与块中拟合深度值的最小二乘平面之间的均方根误差。在一个例子中,通过在近平面和远平面之间的非线性映射来透视投影贴图中的深度值。

远程渲染设备106向显示设备102发送错误映射304。错误映射由远程渲染设备进行压缩。显示设备102接收错误映射并在适当的情况下对其进行解压缩。

显示设备计算306预算映射。显示设备通过分析从远程渲染设备106接收的彩色图像和深度图像来计算预算映射306,以确定哪些区域包含复杂内容、简单内容或根本没有内容。对图像进行分析以计算统计数据,如颜色变化量、熵、边缘数量、深度变化率或其他统计数据。将统计数据与阈值进行比较,以确定内容复杂、内容简单或没有内容的区域。

没有内容的区域是指颜色或深度值为零或接近零的区域。给定可用于重投影的总计算成本的预算,显示设备将预算分配到源图像的每个区域之间。在一个示例中,预算映射整数与要使用的许多多边形相关。内容复杂的地区占总预算的比例较高,内容简单的地区占总预算的比例较低,没有内容的地区则不占总预算。

所述显示设备102生成308个网格。网格由多边形组成,网格单位表面积的多边形密度根据预算图而变化。所述多边形连接在一起以形成一个网格。网格使用镶嵌或细分生成,并表示深度图像的近似值。

所述显示设备102根据所述显示设备的更新姿态从所述网格渲染310以产生重投影图像。显示设备任选地对所述重投影图像进行后处理312以产生最终图像作为输出。

通过在远程渲染设备106执行错误映射计算,可以显著减少显示设备102的计算负担。与显示设备计算误差图的情况相比,这显著提高了重投影图像的视觉质量。

图3B是分配重投影工作的另一示例过程。在图3B的示例中,由远程渲染设备106计算误差图。远程渲染设备还计算预算映射306。在图3B的示例中,将预算映射314发送到显示设备。在将预算映射发送314到显示设备102之前,可选地由远程渲染设备106压缩预算映射。

预算图可以通过诸如使用任何常规图像压缩过程来压缩。通过压缩预算表304发送到显示设备102的延迟时间,可以减少预算表304发送到显示设备102的延迟时间。显示设备102接收预算映射并在适当的情况下对其进行解压缩。

显示设备102使用接收的深度图像并根据接收的预算映射生成网格308。所述显示设备102根据所述显示设备102的更新姿态从所述网格310进行渲染,以产生作为在操作300处接收的彩色图像的重投影的重投影图像。显示设备102任选地对重新投影的图像进行后处理312。

通过使用远程渲染设备来计算误差图302和预算图306,这可以显着降低显示设备102的计算需求,从而显著提高了重投影图像的视觉质量。

图3C是分配重投影工作的另一示例过程。在图3C的实施例中,远程渲染设备106执行误差图的计算302、预算图306的计算和网格308的生成。远程渲染设备106使用任意图像压缩技术压缩所述网格,并将压缩后的网格316发送给所述显示设备102。所述显示设备接收所述压缩的网格、解压缩所述网格、从所述网格310渲染并任选地如上所述进行后处理312。

图4是使用平面偏差重投影的示意图,其中所述显示设备102执行完整的重投影过程。

在图4的实施例中,渲染设备106从显示设备接收姿态数据446。姿态数据包括显示设备102的预测姿态。渲染设备106包括渲染引擎108,渲染引擎108根据所述姿态数据从复杂3D模型中渲染彩色图像402和相应的深度图像404。

所述彩色图像和所述深度图像由渲染设备106进行压缩。彩色图像压缩器406对彩色图像进行压缩。深度图像压缩器408压缩深度图像。所述压缩彩色图像410和所述压缩深度图像412通过网络连接400从所述渲染设备106发送到所述显示设备102。

所述显示设备102接收所述彩色图像410并使用彩色图像解压缩器414对其进行解压缩以产生所述彩色图像418。所述显示设备102接收所述深度图像412并使用深度图像解压缩器416对其进行解压缩以产生所述深度图像420。

所述显示设备102使用深度分析过程422分析所述深度图像。对于深度图像的每个图层,使用最小二乘平面将平面拟合到该图层的深度值。对于每个图层,将计算该图层和最小二乘平面中样本深度值之间的均方根误差。

深度分析422的结果是误差图424。所述显示设备具有性能预算428,其根据所述显示设备102的可用资源预配置或动态确定。显示设备102在深度图的块之间分配426所述性能预算428,以产生预算映射430。在一个示例中,性能预算428是若干个多边形,分配给块的多边形数与平面偏差误差值有关。更高的平面偏差误差值会得到更多的多边形。

显示设备102通过使用镶嵌器432对多边形进行镶嵌来生成网格434,以大致跟随深度图像中所描绘的表面。网格中多边形的密度与预算映射430相关。结果是一个镶嵌网格434。

在显示设备102的重投影处理436接收网格434、彩色图像418和深度图像420,以及更新的姿态438。重投影过程产生重投影图像440。在特定实施例中,可将重投影图像输出到显示设备上显示器444。

所述重投影图像任选地后处理以填充去遮挡区域以产生校正后的彩色图像,所述校正后的彩色图像随后显示在所述显示设备102。

图5是基于平面偏差的重投影示例示意图。显示设备从渲染设备106接收压缩的预算映射502。显示设备使用预算映射解压器504对预算映射502进行解压,并使用解压后的预算映射506生成网格434。

显示设备中的重投影处理使用网格434、彩色图像418和深度图像420以及更新的姿态438来计算重投影图像440。重新投影的图像可以在显示设备显示。在另一示例中,在显示在显示设备上之前,对重投影的图像进行后处理以填充未遮挡的区域。

深度分析和预算分配等昂贵的操作是在远程渲染设备完成。这减少了在显示设备上生成预算映射的工作,以更低成本的方式解压。远程渲染设备的更高性能允许通过可能运行多个校正通道来执行更准确的预算分配,以确保不超过性能预算。

图6显示了如何扩展图5以使用交叉可视性图614。交叉可见度图614是有用的,因为它们提供了关于如何填充重投影图像中在重投影过程中被解除遮挡的区域的信息。在将右眼重新投射到一个矫正姿势时,由于对象的相对视差运动,特定区域可能会被解除遮挡。因为在右眼中没有可用的颜色和纹理信息来填充这些未遮挡的区域,所以需要使用额外的信息来源。

一种方法是使用左眼的RGBD图像,并对右眼的相同校正姿势进行额外的重投影,从而将缺失的数据从左眼投影到右眼。然而,执行额外的左眼前向投影或通过左眼搜索可能会在计算方面过于昂贵。

通过利用左眼(源)和右眼(目标)图像之间的交叉可见性映射,可以将额外的前向重投影或搜索限制在那些唯一包含右眼图像中未提供的信息的区域,从而显着降低使用额外的源RGBD图像填充去遮挡区域的计算成本。

相反,源和目标之间的交叉可见性映射标记了右眼图像中不包括在左眼图像中的区域,并且可用于在附加合成步骤中重新投影左图像时填充缺失数据。

交叉可视性映射不局限于左右眼,但可以使用其他源图像,例如专门为提供填充信息而渲染的附加视图,或者可以使用先前渲染的帧。

交叉可见性映射的计算使用源图像到目标图像的重投影,因此不能用于降低显示设备上的额外填充重投影的成本,因为根据定义,它与完全重投影一样昂贵。

然而,在拆分计算架构中,可以在更强大的远程渲染设备106计算单个或一组交叉可见性映射614,并以适当压缩的形式传输618。

因此,图6示出了计算一个或多个交叉可视性映射的渲染设备。交叉可见性映射由交叉可见性估计器612计算,估计器将渲染引擎108渲染的RGBD图像和其他元数据600作为输入。交叉可见性估计器将额外图像610作为输入,以便与RGBD图像形成立体对。交叉可见性估计器612计算作为输入的一对RGBD图像之间的比较。结果生成一个交叉可见性图,如上文所述,可选择压缩616。将压缩的交叉可见性图618发送到显示设备102。

显示设备解压缩620交叉可见性图并使用它来计算RGBD图像的额外部分重投影622。结果是任何未遮挡区域624的校正RGBD图像。经过压缩器602压缩后,将压缩后的颜色和深度图像604发送到显示设备102,再通过减压器606进行解压。


相关专利


Microsoft Patent | Split compute reprojection

名为“Split compute reprojection”的
微软专利
申请最初在2023年3月提交,并在日前由美国专利商标局公布。