(
映维网Nweon
2024年07月03日
)现有通信协议的有限数据速率对AR/VR等分布式显示系统提出了挑战。例如,根据无线协议,将数据从主机无线传输到显示设备的典型数据速率可能在每秒50到300Mbps之间。
考虑一个可用数据速率为100 Mbps的示例。若在主机执行的游戏以每只眼睛2.5 K像素的分辨率(2500×2500像素的图像)渲染帧,每像素3字节计算,这意味着在给定帧中传输图像的数据量大约为300Mbps。在120赫兹的VR游戏系统中,为了及时传输所有图像数据,主机必须以36000 Mbps的速率传输像素数据。然而,在受100mbps数据速率限制的分布式系统中,这种数量的像素数据传输速度不够快。
在名为“Dual detail encoding in a distributed system”的专利申请中,
Valve
介绍了一种用于在分布式显示系统中实现双细节编码方案的技术。
简单来说,可以利用
眼动追踪
确定用户注视的子区域。
在主计算机,应用程序可以以第一分辨率渲染场景的帧。主机可以为所述帧生成2D像素阵列,对所述2D像素阵列进行编码,并将所述编码的像素数据传输到显示设备。对于每只眼睛,所述像素的2D阵列包括按比例缩小到小于所述第一分辨率的第二分辨率的帧的副本,以及所述场景的子区域的副本。
在显示设备,对编码的像素数据进行解码,得到所述帧的2D像素阵列,通过放大所述帧的副本来对所述帧的2D像素阵列进行修改,从而使用所述帧的放大副本和所述子区域的混合副本生成图像。
特别地,在上述过程中编码的2D像素阵列为每只眼睛提供了两个级别的细节。即,对于每只眼睛,所述像素的2D阵列包括按比例缩小到小于所述第一分辨率的第二分辨率的帧的副本,以及所述场景的子区域的副本。并且由于所述帧包括所述子区域,所述像素的2D阵列对于每只眼睛包括所述子区域的两个副本。
在一个实施例中,表示场景子区域副本的像素与帧的原始像素一对一对应,这样对于显示设备呈现的图像,子区域能偶以与原始帧中应用程序呈现的相同或相似的质量呈现。另外,通过传输子区域的副本和缩小比例的帧的副本,主机计算机能够以分布式显示系统中通常可用的数据速率传输减少的像素数据量。
所以,发明描述的双细节编码技术允许主机计算机发送更少的数据量(即2D像素阵列),并且显示设备配置为从2D像素阵列重构图像,使得显示设备的用户将呈现的图像感知为高质量图像。
用于显示基于从主机接收的像素数据的图像的示例过程可包括:从主机接收用于场景的帧的编码像素数据,解码编码的像素数据以获得用于帧的2D像素阵列,至少部分地基于2D像素阵列的第一像素放大该帧的第一副本,以获得帧的第一放大副本;以及至少部分地基于所述2D像素阵列的第二像素放大所述帧的第二副本,以获得所述框架的第二放大副本。
接下来,至少部分地基于所述帧的第一放大副本和表示所述场景子区域的第一副本的所述2D像素阵列的第三像素生成第一图像;以及至少部分地基于所述帧的第二放大副本和代表所述子区域的第二副本的所述2D像素阵列的第四个像素生成第二图像。然后,可以将第一图像和第二图像呈现在显示设备的各自显示面板,例如左显示面板和右显示面板,或呈现在单个显示面板。
通过使用双细节编码技术减少要从主机传输到显示设备的数据量,分布式显示系统可以及时地流式传输像素数据,以便在显示设备显示相应的图像。例如,即便子区域之外的显示图像的部分可能以相对较低的质呈现,由于用户的目光指向图像质量相对较高的场景子区域,所以对用户来说,感知图像质量很高。
图1示出示例分布式显示系统100。在将像素数据发送到头显 104之前,主机102可以实施双细节编码技术,从而允许在100 Mbps数量级的数据速率约束下将数据136及时传输到头显 104。
如图1所示,主机计算机102可以为具有减少的像素数的帧生成像素的2D阵列138。像素的2D阵列138可以包括表示按比例缩小到第二分辨率的帧140(1)的第一副本的第一像素,低于应用程序132呈现该帧时的第一分辨率,以及表示按比例缩小到第二分辨率的帧140(2)的第二副本的第二像素。“
在一个实施例中,场景的子区域可以是预定的,并且预定的子区域可以对应于场景的中心子区域。对于渲染的每一帧,像素的2D阵列138可以包括表示作为场景的中心子区域的场景的子区域142(1)、142(1)的副本的像素,使得子区域对于每一帧和对于生成和传输的每个像素的2D阵列138都是场景的相同部分。
子区域可以为单个帧动态确定。例如,子区域可以至少部分地基于头显 104的眼动追踪系统120产生并在运行时在数据122中由主机计算机102接收的眼动追踪数据来确定为单个帧。主机102接收到的眼动追踪数据可以指示头显 104的显示面板108的预测位置。
142(1)、142(2)分区的副本可以是任何合适的形状。图1的示例显示子区域142(1)、142(2)的副本为矩形,但子区域142(1)、142(2)的副本可以具有不同的形状,例如椭圆形和方形等。
在一个实施例中,2D阵列138中子区域142(1)、142(2)的各自副本的像素可以与表示子区域的帧的原始像素一一对应。换句话说,2D阵列138中子区域142(1),142(2)的各自副本可以是未以任何方式重新采样的精确副本。这意味着应用程序为一帧渲染的每个图像的场景子区域中的每个像素都可以原样复制到2D阵列138中子区域142(1)、142(2)的各自副本中。
在一个实施例中,2D阵列138中的子区域142(1)、142(2)的副本缩小到降低的分辨率。当在头显 104放大子区域的副本时,子区域的采样可以允许相对高质量的重采样。换句话说,按照整数比例缩小子区域142(1)、142(2)的副本可以减轻在头显 104呈现的图像的相应部分中的伪影,而将子区域142(1)、142(2)的副本缩小10%、15%或类似的比例可能导致这些伪影在头显 104上的生成图像中展示。
第142(1)、142(2)分区的副本可以是任何适当的大小。使子区域尽可能大的权衡是需要更多的数据来传输更大的子区域的像素。因此,由于数据速率约束可能因实现而异,子区域的最佳大小可能会有所不同,并且增加子区域的大小可能存在实际限制。
主机102可以对像素的2D阵列138进行编码,以获得用于该帧的编码像素数据,并且主机102可以将编码的像素数据传输到头显104。
对于头显104,在接收数据136后,头显 104可以解码编码的像素数据以获得用于该帧的像素的2D阵列138。然后,头显 104的合成器116可以修改2D阵列138的像素,以便重建用于所述帧的图像,以及对几何畸变、色差、重投影等进行调整。
图2示出图像200(1)和200(2),它们分别呈现在头显 104的显示面板108(1)和108(2)。如上所述,头显 104配置为对从主机102接收的编码像素数据进行解码,以获得图1所示帧的像素2D阵列138,并且合成器116修改2D阵列138的像素以重建图像200(1)、200(2)。
为了重建右侧图像200(2),合成器116可以至少部分地基于2D阵列138的相应像素放大帧140(1)的第一副本,以获得帧202(1)的第一放大副本;并且可以至少部分地基于帧202(1)的第一放大副本和表示场景的子区域142(1)的第一副本的2D阵列138的像素生成右侧图像200(2)。其中子区域的外围204(1)的像素子集混合在右侧图像200(2)中。
左侧图像类似。然后可以在头显104的各自显示面板108(1)和108(2)显示左图像200(1)和右图像200(2)。
由于像素的2D阵列138中帧140(1)、140(2)的副本缩小,所以所述帧202(1)、202(2)的放大副本在所示图像200(1)、200(2)中可能显得模糊。特别是,图像200(1)、200(2)在各自的子区域142(1)、142(2)之外的区域,但由于用户的106眼睛直接注视子区域142(1)、142(2),所以子区域142(1)、142(2)之外的相对低质量图像会遭到忽略,因为它们位于用户的106周边视觉。
V社指出,通过利用眼动追踪动态确定子区域,可以减少用户106注意到子区域142(1)、142(2)之外的相对低质量图像的实例,但即便具有预定(或固定)子区域,普通用户106都很难注意到由于双细节编码方案而导致的图像质量下降。
图3A示出用于上述像素的2D阵列138的第一示例封装布局300A,而图3B示出用于像素的2D阵列138的第二示例封装布局300B。
图4示出了在分布式显示系统100中实现双细节编码的示例性过程400。
在402,主机102的逻辑可执行应用程序132,例如游戏132(1),其任务是渲染一系列帧中的一帧。
在404,头显 104可以向通信耦合到头显 104的主机102发送数据122。
在406,主机102可以从显示设备接收数据122。
在408,在主机102执行的应用程序132可以以第一分辨率呈现场景的帧。
在410,如果场景的子区域不是预先确定的,则处理400可以沿着从410到412的NO路由,其中主机102的逻辑至少部分地基于从显示设备接收的眼动追踪数据确定子区域。
由于眼动追踪数据可能已经在数据122中发送到404,所以如果预测用户106正在查看头显 104的显示面板108的中心,则可以在412确定子区域为场景的中心子区域。如果预测用户106正在查看头显 104的显示面板108的左侧,则可以在412确定子区域为场景中中心偏左的子区域。如果场景的子区域是预先确定的(即遵循来自410的YES路由),或者在确定412的子区域之后,则过程400可以继续到414。
在414,主机102的逻辑可以为所述帧生成像素的2D阵列138。如子块416和418所示,像素的2D阵列138可以包括场景的子区域142(1)、142(2)的两个副本,以及帧140(1)、140(2)的两个副本,副本按比例缩小到低于在块408呈现帧时的第一分辨率。
如上所述,2D阵列138中子区域142(1)、142(2)的各自副本的像素可以与在块408处呈现的帧的原始像素一一对应。换句话说,2D阵列138中子区域142(1)、142(2)的各自副本可以是该帧渲染图像的子区域的精确副本,而不需要对应用渲染的子区域进行任何重新采样。
在420,主机102的逻辑可以对像素的2D阵列138进行编码,以获得用于所述帧的编码像素数据。
在422,主机102可以向显示设备传输(并通过通信接口134传输编码的像素数据。携带编码像素数据的一个或多个数据包通过主机102的收发器在422无线传输。在422处的传输可以利用大约100mbps的传输数据速率。
在424,显示设备可以从主机102接收,并通过通信接口124接收帧的编码像素数据。
在426,显示设备的逻辑可以解码所编码的像素数据以获得用于所述帧的像素的2D阵列138。
在428,显示设备的逻辑,例如合成器116,可以修改2D阵列138中的像素以获得修改的像素数据。如430和432所示。
在430,可以对先前缩小的帧140(1)、140(2)的两个副本进行放大,以获得帧202(1)、202(2)的两个放大副本。
在432,基于帧202(1)、202(2)的这些放大副本和子区域142(1)、142(2)的两个副本生成图像200(1)、200(2),并在子区域142(1)、142(2)的外围204(1)、204(2)处进行混合。
在434,可以在428执行其他修改,例如补偿几何畸变、色差、重投影等的修改。
在436,显示设备的逻辑可以向显示设备的帧缓冲器输出修改过的像素。
在438,显示设备的逻辑可以根据输出到位于436的帧缓冲区的像素值,在显示设备的各自显示面板108(1)、108(2)显示图像200(1)、200(2)。
过程400是用于在分布式显示系统100中实现双细节编码方案的示例技术。双细节编码方案减少了要从主机102传输到显示设备的数据量,以便像素数据可以及时流式传输,并且以这样的方式确保用户106将图像感知为显示设备的高保真图像。
相关专利
:
Valve Patent | Dual detail encoding in a distributed system
名为“Dual detail encoding in a distributed system”的V社专利申请最初在2022年12月提交,并在日前由美国专利商标局公布。