具体实施方式
本发明的实施例可以提供一种使用可操作为向观看者显示图像的显示器的显示方法和装置。在一些实施例中,该显示器是可头戴式显示器并且通过检测可头戴式显示器的位置和/或方向来检测观看者头部的位置和/或方向。可头戴式显示器可以具有被安装到观看者头部上的框架,该框架限定了在使用中定位于观看者的各只眼睛前面的一个或两个眼睛显示位置,并且相对于每个眼睛显示位置安装各自的显示元件,该显示元件向观看者的该只眼睛提供来自视频信号源的视频信号的视频显示的虚拟图像。在其他示例中,该显示器不是可头戴式显示器。在一些实施例中,该显示器(不论是否为可头戴式的)可以被称为沉浸式(immersive)显示器,这是由于在正常使用中它至少覆盖了用户的视场(filed ofview)的阈值角度范围(例如,至少40度)。示例包括多投影器显示器、环绕(弯曲)式显示器等。
现参照图1,用户10在用户的头部30上佩戴HMD 20。该HMD包括框架40,在本示例中由后带和顶带构成,以及显示部分50。
图1的HMD完全遮盖了用户的周围环境的视图。用户能够看到的全部是在该HMD内显示的一对图像。
该HMD具有相关联的头戴电话耳机60,其被放入用户的左耳和右耳70。耳机60重放从外部源提供的音频信号,该外部源可以与向用户的眼睛提供用于显示的视频信号的视频信号源相同。
在操作中,提供用于由该HMD显示的视频信号。这可以通过诸如视频游戏机或数据处理装置(诸如个人计算机)的外部视频信号源80提供,在该情况下,可以通过有线或无线连接将该信号传输到HMD。合适的无线连接的示例包括蓝牙(R)连接。用于耳机60的音频信号可以通过该相同的连接进行传送。类似地,任何从该HMD传递到视频(音频)信号源的控制信号可以通过该相同的连接进行传送。
因此,图1的布置提供了包括被安装在观察者头部上的框架的可头戴式显示系统的示例,该框架限定了在使用中定位于观察者的相应眼睛前面的一个或两个眼睛显示位置以及相对于每个眼睛显示位置安装的显示元件,该显示元件向观察者的该只眼睛提供来自视频信号源的视频信号的视频显示的虚拟图像。
图1仅示出了HMD的一个示例。其他样式是可能的:例如HMD可以使用更类似于与传统眼镜相关的框架,即从显示部分往回延伸至用户的耳后上部的基本上水平的腿,有可能地在耳朵后向下弯曲。在其他的示例中,用户的外部环境的视图实际上可能未被完全遮盖;已显示的图像可以被布置为使得被叠加(从用户的视点来看)在外部环境之上。以下将参考图4描述这种布置的示例。
在图1的示例中,对于用户的每只眼睛提供单独各自的显示。如图2所示提供了这是如何实现的示意性平面视图,其示出了用户眼睛的位置100和用户鼻子的相对位置110。以示意的形式,显示部分50包括从用户眼睛遮蔽周围的光的外部屏蔽120和防止一只眼睛看到用于另一只眼睛的显示的内部屏蔽130。用户的脸、外部屏蔽120和内部屏蔽130的组合形成两个隔室140,其中每一个针对每一只眼睛。在每个隔室中,提供了显示元件150和一个或多个光学元件160。将参考图3描述该显示元件和(多个)光学元件协作以向用户提供显示的方式。
参照图3,显示元件150生成显示的图像,该图像(在本示例中)被光学元件160(示意性地表示为凸透镜,但其可以包括复合透镜或其他元件)折射以便生成虚拟图像170,用户看起来该虚拟图像170要比由显示元件150生成的真实图像更大并且明显地更远。作为示例,虚拟图像可能具有大于1米的视在图像大小(图像对角线),并且可能置于离用户眼睛(或者离HMD的框架)超过1米的距离处。总体而言,取决于该HMD的目的,期望的是使虚拟图像置于离用户明显的距离。例如,如果该HMD用于观看电影等,期望的是在这种观看期间用户的眼睛是放松的,这需要至少几米的(到虚拟图像的)距离。在图3中,实线(诸如线180)用于表示真实光照射,而虚线(诸如线190)用于表示虚拟照射。
图4中示出了替代的布置。其中期望用户对外部环境的视图未被完全遮盖时可以使用这种布置。然而,它也可适用于其中用户的外部视图被完全遮盖的HMD。在图4的布置中,显示元件150和光学元件200协作以提供图像,该图像被投影到镜子210上,该镜子210朝向用户的眼睛位置220偏转该图像。用户感观到虚拟图像位于用户前面并且离用户适当距离处的位置230处。
在其中用户的外部环境的视图被完全遮盖的HMD的情况下,镜子210可以是基本上100%的反射镜。则图4的布置具有的优点是显示元件和光学元件可以位于更靠近于用户头部的重心和用户眼睛的侧面,其可以产生一个不那么庞大的HMD用于用户佩戴。另外,如果该HMD被设计为未完全遮盖用户的外部环境的视图,镜子210可以做成部分反射的,以使得用户透过镜子210看到外部环境、以及叠加在真实外部环境之上的虚拟图像。
在对于用户的每只眼睛提供单独各自的显示的情况下,能够显示立体图像。图5中示出用于显示给左眼和右眼的一对立体图像的示例。该图像相对于彼此表现出横向位移,其中图像特征的位移取决于捕捉该图像的摄像机的(真实的或模拟的)横向间隔、摄像机的角度收敛以及每个图像特征离摄像机位置的(真实的或模拟的)距离。
注意,图5中的横向位移(以及以下将在图15中描述的那些)可能实际上是相反的,也就是说,所绘制的左眼图像可能实际上是右眼图像,并且所绘制的右眼图像可能实际上是左眼图像。这是因为一些立体显示器倾向于在右眼图像中向右移动对象和在左眼图像中向左移动对象,以便模拟该用户透过立体窗口眺望远处场景的想法。然而,一些HMD使用图5所示的布置,因为这给予用户该用户透过双筒望远镜观看该场景的印象。在这两种布置之间的选择由系统设计人员自由裁量。
在一些情况下,HMD可以简单地用于观看电影等。在这种情况下,当用户例如从一侧到另一侧时转动用户头部时,已显示的图像的视在(apparent)视点不需要改变。然而,在诸如与虚拟现实(VR)或增强现实(AR)系统相关的那些其他使用中,用户的视点需要跟踪相对于用户位于其中的真实或虚拟空间的移动。
此跟踪通过检测HMD的运动并且改变已显示的图像的视在视点,使得视在视点跟踪该运动。
图6示意性地示出了VR或AR系统中用户头部移动的效果。
参照图6,虚拟环境由用户周围的(虚拟)球形外壳250表示。因为需要在二维图纸上表示这种布置,因此该外壳由离用户相当于已显示的虚拟图像离用户的间隔的距离处的圆的一部分表示。用户最初在第一位置260处并且方向朝向虚拟环境的一部分270。正是这一部分270在用户的HMD的显示元件150上显示的图像中予以表示。
考虑其中用户随后将他的头部移动到新的位置和/或方向280的情况。为了保持该虚拟现实或增强现实显示的正确感观,虚拟环境的已显示的部分也移动,以使得在移动结束时由该HMD显示一个新部分290。
因此,在这种布置中,虚拟环境内的视在视点随着头部移动而移动。如果头部旋转到右侧,例如,如图6所示,视在视点也从用户的视点移动到右侧。如果从诸如已显示的对象300的已显示的对象的方面考虑该情况,这将实际上在与头部移动相反的方向上移动。因此,如果头部移动是向右,则视在视点向右移动,但诸如在虚拟环境中静止的已显示的对象300的对象将朝向已显示的图像的左侧移动,并且最终将消失在已显示的图像的左手侧,原因很简单,该虚拟环境的已显示的部分已经移动到右侧,然而已显示的对象300在虚拟环境中没有移动。
图7a和图7b示意性地示出了具有运动感测的HMD。这两个附图类似于图2中所示的样式。也就是说,该附图是HMD的示意性平面视图,其中显示元件150和光学元件160由简单的盒子形状表示。为了该图形的清楚,图2的许多特征未予以示出。两个附图均示出具有用于检测观察者头部的运动的运动检测器的HMD的示例。
在图7a中,在该HMD的前面上提供前向摄像机320。这并不一定向用户提供用于显示的图像(尽管它可以在增强现实布置中这样做)。相反,在本实施例中它的主要目的是允许运动感测。以下将结合图8描述用于使用由摄像机320捕捉的图像的用于运动感测的技术。在这些布置中,运动检测器包括安装成随框架移动的摄像机;以及可操作为将由该摄像机捕捉的连续图像进行比较以便检测图像间运动的图像比较器。
图7b利用硬件运动检测器330。这可以安装在该HMD内或该HMD上的任何地方。合适的硬件运动检测器的示例为压电加速计或光纤陀螺仪。当然应理解的是,在同一设备中可以使用硬件运动检测和基于摄像机的运动检测两者,在这种情况下,一个感测装置可以用作当另一个不可用时的备份,或者一个感测装置(诸如摄像机)可以提供用于改变已显示的图像的视在视点的数据,而另一个(诸如加速度计)可以提供用于图像稳定的数据。
图8示意性地示出了使用图7a的摄像机320的运动检测的一个示例。
摄像机320是以例如每秒25个图像的图像捕捉速率来捕捉图像的视频摄像机。当捕捉到每个图像时,其被传递给用于存储的图像存储400并且还由图像比较器410将其与从该图像存储检索到的先前图像相比较。该比较使用已知的块匹配技术(所谓的“光流”检测)以确定自从捕捉到该先前图像的时刻起整个图像是否移动。局部运动可能指示的摄像机320的视场内的移动对象,但是基本上整个图像的全局运动将倾向于指示该摄像机的运动,而不是该捕捉的场景中单独特征的运动,并且在这种情况下,由于摄像机安装在HMD上,摄像机的运动对应于HMD的运动,进而对应于用户头部的运动。
由图像比较器410检测到的一个图像和下一个图像之间的位移由运动检测器420转换为指示运动的信号。如果需要的话,该运动信号由积分器430转换为位置信号。
如上所述,作为通过检测由与HMD相关联的视频摄像机捕捉的图像之间的图像间运动的运动的检测的替代或额外地,HMD可以使用诸如加速度计的机械或固态检测器330检测头部运动。实际上这可以给出关于运动的指示的更快的响应,考虑到基于视频的系统的最佳的响应时间为图像捕捉速率的倒数。因此,在一些情况下,检测器330可以更好地适合于具有更高频率运动检测的使用。然而,在其他情况下,例如如果使用高图像速率摄像机(诸如200赫兹捕捉速率摄像机),基于摄像机的系统可能更适合。就图8而言,检测器330可以取代摄像机320、图像存储400和比较器410,以便直接向运动检测器420提供输入。或者检测器330还可以取代运动检测器420,直接提供指示物理运动的输出信号。
其他位置或运动检测技术当然也是可能的。例如,可以使用通过可移动的缩放臂(pantograph arm)将HMD连接至固定点(例如,数据处理设备上的或在一件家具上的)的机械装置、以及检测该缩放臂的偏转的变化的位置和方向的传感器。在其他实施例中,可以使用具有安装在HMD上和固定点上的一个或多个发送器和接收器的系统,以允许通过三角测量技术检测HMD的位置和方向。例如,HMD可以携带一个或多个定向发送器,并且与已知或固定点相关联的接收器的阵列能够检测来自该一个或多个发送器的相关信号。或者发送器可以是固定的并且接收器可以在HMD上。发送器和接收器的示例包括红外换能器、超声换能器和射频换能器。射频换能器可以具有双重目的,在于它们也可以形成到和/或来自HMD的射频数据链路的一部分,诸如链路。
图9示意性地示出了响应于HMD的检测到的位置或位置的改变而执行的图像处理。
如以上结合图6所述,在诸如虚拟现实和增强现实布置的一些应用中,正在向HMD的用户显示的视频的视在视点响应于用户头部的实际位置或方向的改变而改变。
参考图9,这是通过运动传感器450(诸如图8的布置和/或图7b的运动检测器330)向所需图像位置检测器460提供指示运动和/或当前位置的数据来实现的,其中该所需图像位置检测器460将HMD的实际位置转换成限定用于显示所需的图像的数据。如果需要的话,图像生成器480访问存储在图像存储470中的图像数据,并且从用于由HMD显示的合适的视点生成所需的图像。外部视频信号源可以提供图像生成器480的功能并且作为控制器来通过改变已显示的图像的视点以便在与检测到的运动相反的方向上移动该已显示的图像以便在检测到的运动的方向上改变观察者的视在视点而补偿观察者的头部的运动的低频分量。
图像生成器480可以以下面将描述的方式在元数据的基础上动作以执行包括重新投影的各种功能。
为了示意性地示出一些与本技术相关联的一般概念,图10示意性示出了摄像机的图像的捕捉,并且图11示意性地示出了捕捉到的图像的重新投影。
参照图10,摄像机500捕捉真实世界场景的一部分510的图像。摄像机500的视场示意性地表示为大致三角形形状520,使得该摄像机在大致三角形形状的一个顶点处,该摄像机的相邻侧示意性地指示视场的左和右极端,并且该摄像机的相对侧示意性地示出了被捕捉的该部分场景。这种示意性表示法将在以下几个附图中使用。
为了讨论图像重新投影的一般概念,假定在图10的布置中,不仅捕捉了图像而且也捕捉了限定摄像机的“视图矩阵”的信息。这里,视图矩阵可以指摄像机在空间中或者相对于假想的固定点和方向、或者表示为相对于在先前时刻(例如,其可以是与先前捕捉到的图像相关联的时刻)适用的位置和/或方向的改变的位置和/或方向。因此,在一个表达式中,视图矩阵可以被认为是摄像机的x、y和z空间位置以及其表示为偏摆(yaw)、俯仰(pitch)、滚转(roll)(指示三正交旋转自由度的一般术语)的旋转方向及其视锥体(viewing frustum)(指示范围在宽角度视场与窄角度或摄远视场之间的摄像机的视场的一般术语,并且其可以表示为对应于例如图10所示的角度530的角度范围)。视图矩阵数据不需要包括这些数据贡献的全部。例如,在一些布置中,可能只与横向旋转方向(偏摆)相关。因此,考虑到捕捉到的图像和视图矩阵数据的预期使用将哪个数据项目包括在视图矩阵数据内的选择是系统设计人员的问题。
在本发明的实施例中,视图矩阵数据与捕捉到的图像相关联地存储,例如作为所谓的以整个图像数据包的一部分存储和/或发送的元数据,例如通过诸如以下参考图27描述的包括用于捕捉图像的图像捕捉设备的摄像机装置;用于检测在该图像的捕捉的时刻的摄像机装置的位置和/或方向的位置和/或方向检测器;以及用于将元数据与该图像相关联的元数据生成器,该元数据指示在该图像的捕捉的时刻该摄像机装置的检测到的位置和/或方向。
注意,摄像机500可以是静态摄像机或者捕捉由时间间隔隔开的连续图像的视频摄像机。
图11示意性地示出了图10的摄像机捕捉的图像根据观看者的视点的重新投影。视点540示意性地由眼睛符号和大致三角形形状550示出,该大致三角形形状550类似于上面所讨论的三角形形状520。为了显示由摄像机500捕捉到的图像以便它适合于根据图11所示的视点来观看,执行将该视点的视图矩阵(如上所讨论的)与摄像机500的视图矩阵相关联的处理。将参考图12和图13描述这种技术的示例。
图12示意性地示出了从第一视图矩阵560到第二视图矩阵570的图像旋转。这种类型的重新投影涉及简单地旋转和缩放图像,以便校正摄像机的视图矩阵与用户视点的视图矩阵之间的视场和方向中的任何差异。以下将参考图16和图17讨论这种类型的重新投影的示例。
图13示意性地示出了从第一视图矩阵580到第二视图矩阵590的图像旋转和平移。这里,该处理稍微较复杂,并且还可以使用指示捕捉到的图像中的不同图像特征的图像深度的深度图,以允许将用户视点相对于摄像机的视点进行转换。以下将参考图18-20讨论深度图的使用的示例。
注意,该图像不必须是摄像机捕捉的图像。这些技术都同样适用于机器生成的图像,诸如由电脑游戏机产生的用于显示给用户的作为玩电脑游戏的过程的一部分的图像。
图14示意性地示出了HMD图像显示的延迟问题。如上所述,例如参考图9所讨论的,可以使用HMD的位置和/或方向,使得根据检测到的HMD的位置和/或方向渲染用于显示的图像。在观看较宽的捕捉到的图像的一部分或者生成作为电脑游戏玩法的一部分的所需的图像情况下,参考图9所讨论的布置涉及检测HMD的当前位置和/或方向并且渲染合适的图像用于显示。
然而,这个处理中涉及的延迟可能导致生成不正确的图像。
参照图14,考虑在经过HMD中使用的图像显示的图像重复周期的数量级的时间间隔的过程中(例如,1/25秒),用户的视点从第一视点600旋转(如图14中示意性示出为以顺时针方向)到第二视点610的情况。注意,图14中的两个表示被示为并排的,但这仅是绘图的目的,而并不一定指示用户视点的平移(尽管在这两个视点之间可能涉及一些平移)。
为了允许有时间以用于渲染下一个输出图像,当HMD在视点600处时,检测HMD的位置和/或方向。然后渲染用于显示的下一个输出图像,但是到该图像实际显示的时候,视点已经旋转到视点610。其结果是,被显示的图像对于用户在显示该图像的时刻的视点610是不正确的。这可能给用户提供主观上较差的体验,并且可能对用户的该部分导致迷失方向感或者甚至恶心。
现将讨论解决这个问题的技术。
图15是示出图像处理技术的示意性流程图。首先将以较高的层次讨论该技术,然后将在下面给出更多细节。
图15所示的该技术的特征涉及根据摄像机的视图矩阵(在捕捉的图像的情况下)或HMD的视图矩阵(在例如由计算机游戏渲染的图像的情况下)捕捉或渲染图像(在步骤620中)。
在后者的示例中,将根据对应于图14中的视点600的视图矩阵渲染图像。换句话说,该技术涉及检测观看者头部的初始位置和/或方向,并根据检测到的位置和/或方向生成用于显示的图像。然后将该图像与限定该视图矩阵(也就是说,根据其捕捉或第一次渲染该图像的视图矩阵)的元数据一起发送或传递到HMD。在显示的时刻,再次检测该HMD视图矩阵(换句话说,在该图像被显示的时刻检测观看者头部的当前位置和/或方向),并且在步骤630中,基于指示原始视图矩阵的元数据和在显示的时刻从HMD检测的视图矩阵(以图14的术语,这将是对应于视点610的视图矩阵,从而该技术涉及将元数据与生成的图像相关联,其中该元数据指示观看者头部的初始位置和/或方向)来将该图像重新投影。因此,该技术涉及根据观看者头部的初始位置和/或方向与当前位置和/或方向之间的差异来对生成的图像进行重新投影并使用该显示来显示重新投影的图像。
在捕捉的图像的情况下,摄像机的视图矩阵一般不在显示装置的控制范围内,因此该技术提供了补偿这两个视图矩阵之间的差异的方式。然而,在图像渲染的情况下问题稍有不同。然而,明显特征是,处理重新投影操作所花费的时间可以比完整的渲染操作以生成输出图像所花费的时间少得多。进而,这意味着渲染操作必须相对于显示的时刻更早开始,如参考图14的所讨论的,其中该显示可能导致关于对用于渲染操作的合适的视点的检测的延迟问题。相比之下,使用参考图15描述的技术,渲染操作相对于在启动该渲染操作的时刻正确的视点(诸如视点600)发生,但随后在显示的时刻对该视点调整(例如,调整到视点610)。这避免了尝试提前预测视点610的需要,其中该预测也可能导致视点的错误,但是以对应于显示时刻的合适的视点向用户提供用于显示的图像。因此,该技术可以涉及接收图像和相关联的元数据、在图像被显示的时刻检测观看者头部的当前位置和/或方向、根据由元数据指示的位置和/或方向与观看者头部的当前位置和/或方向之间的任何差异重新投影所接收的图像、以及显示该重新投影的图像。
以下将讨论这项技术的工作示例。
图16示意性地示出了HMD视点650在顺时针方向上的旋转。
图16类似于以上讨论的图6,在于用于显示的图像被视为位于半径r的球体的表面上,其中r基本上等于从用户的眼睛到由HMD显示系统生成的虚拟图像的距离。在这种布置下,视点650以角度θ的旋转可以被认为是半径r的球体的表面以横向距离d的横向移动。在图17中示意性地示出了这种位移d。如果假定在步骤620中生成的图像由图16中的图像660表示,在本步骤630中生成的图像由图16中的图像670表示,可以看出这两个图像可以从用户的视点表示为并排的(注意,在图17中,示出了小的垂直位移仅为了允许在附图中允许不同的图像彼此区分)。
在简单的示例中,为了生成(在步骤630中)用于向用户显示的合适的图像670,执行“减法”操作,其中该“减法”操作是示意性的术语,用来说明检测图像670的所需的显示部分和图像660的实际位置之间的重叠的操作,以便在图像670内显示图像660的重叠部分680(图17中的阴影部分)。换句话说,重新投影包括检测生成的图像和所需的重新投影的图像之间的重叠部分,并且再现该重叠部分作为重新投影的图像的一部分。
在本发明的实施例中,图像670中缺少的区域(未示出为阴影的那些部分)可以使用来自例如为此目的捕捉或准备的并由显示装置存储的全景图像的图像数据进行遮蔽或者填充。因此,该技术的实施例可以因此包括利用来自另外的图像源的图像材料来填充重新投影图像中除了重叠部分的部分。
为了通过考虑视点的平移而对图像重新投影,本发明的实施例可以使用与该图像相关联的深度信息。图18示意性地示出了可以从例如由3-D(双目)摄像机或所谓的Z-摄像机捕捉的图像数据得到的、或者可以作为电脑游戏机的渲染引擎的操作的一部分而生成的深度图。
在图18的示意性示例中,标记为对象A、B和C的三个图像对象被示为在从任意深度位置700测量的各自的图像深度zA、zB和zC处。示出了两个潜在的视点,分别标记为视点v1和视点v2。
图19和图20示意性地示出了分别根据视点v1和视点v2的图像的部分。在渲染阶段中,在生成该图像中对每个图像对象的深度予以考虑。然而,该技术也可以在诸如由以上讨论的步骤630所限定的重新投影阶段中使用,以使图像对象可以根据它们各自的图像深度在重新投影的图像中相对于彼此移动。因此,该技术可以涉及提供指示一个或多个图像特征的图像深度的深度数据,并且重新投影可以包括根据该深度数据在重新投影的图像内重新定位一个或多个图像特征。
图21示意性地示出了用于图像渲染和重新投影来补偿HMD运动的技术。以类似于图14的方式,用户视点从以图15的步骤620的一部分所检测到的视点710移动或旋转到以图15的步骤630的一部分所检测到的视点720,并且根据其对用于显示的图像进行重新投影。以这种方式,根据正确的视点720的图像被显示给用户。
更详细地,图22是关于图21所示的技术的示意性流程图。在图22中,示出了处理步骤800、810、820、830、840和850。在这些之中,步骤800、810和820大致对应于图15的步骤620。其余的步骤830、840和850大致对应于图15的步骤630。
在步骤800中,检测HMD的当前位置(对应于图21的位置710),并且在步骤810中,将其存储(例如,在形成HMD或电脑游戏机的一部分的临时工作存储器中)。在步骤820中,根据视点710渲染用于显示的图像。
在渲染的图像被显示的时刻,或者在该图像被显示的时刻之前的时间间隔t时,其中t是重新投影操作所需的时间长度,在步骤830中,再次检测HMD位置,在本示例中将检测位置720。在步骤840中如上所讨论的将用于显示的图像重新投影,并在步骤850中将其显示给用户。
现在将讨论关于捕捉的图像的类似的示例。图23示意性地示出了用于图像捕捉和重新投影来补偿不同的摄像机和HMD位置的技术。在图23中摄像机视点730不同于HMD视点740。
图24是关于图23所示的技术的示意性流程图。
在图24中,示出了处理步骤900、910、920、930、940和950。这些之中,步骤900和910大致对应于图15的步骤620。其余的步骤920、930、940和950大致对应于图15的步骤630。
在步骤900中,检测摄像机的当前位置(对应于图23的位置730),并且在步骤910中,将其作为元数据与捕捉到的图像一起传送。
在该图像被显示的时刻,或者在该图像被显示的时刻之前的时间间隔t,其中t是重新投影操作所需的时间长度,在步骤920中检测HMD位置,在本示例中将检测位置740。在步骤930中如上所讨论的将用于显示的图像重新投影,并对其渲染(在步骤940中)以在步骤950中显示给用户。
图25示意性地示出了对通过将由各个摄像机或摄像机位置1000、1010、1020捕捉到的图像组合或拼接在一起所形成的全景图像1030的观看。应注意的是不必须涉及真实的摄像机;该全景图像可以通过将多个计算机生成的具有各自不同的视点的图像拼接在一起而形成。以类似于以上所讨论的步骤910的方式,摄像机、摄像机位置或用来捕捉该全景图像的虚拟相机中的每个的视点与该全景图像或对应于该视点的各自的图像部分相关联来作为图像元数据。在显示的时刻,根据用户视点1040,根据以上所讨论的技术通过将各自的图像部分或整个全景图像重新投影生成用于显示的图像1050。
图26示意性地示出在已显示的图像中的摄像机视点调整,其可以允许在相对于观看者以原始大小和位置再现图像。图26的左侧示意性地示出了用户使用手持摄像机捕捉(在本示例中)高的建筑物的图像。如上所讨论的,将摄像机视点记录并且与捕捉到的图像相关联作为元数据。对于图26的右侧,用户通过HMD观看捕捉到的图像。将该捕捉到的图像根据用户的视点使用以上所讨论的技术进行重新投影。
以上所述的数据处理操作可以在视频信号源80(例如,电脑游戏机)和/或HMD处执行(关于图22的所有的步骤和图24的步骤920……950)。在HMD处的处理和在源80处的处理之间的划分是系统设计人员的问题;可能期望的是为了用户舒适度而减小HMD的大小、重量和功率消耗,这将使它适合于将尽可能多的处理移动到源80。可替代地,为了减少需要在HMD和源80之间传送的数据量,一些处理可以全部在HMD处发生。在任一情况下,该处理可以通过例如合适的可编程硬件在软件控制下操作来执行。图24的步骤900、910可以由摄像机或(类似于以上的讨论的方式)由与摄像机相关联的装置来执行。为示例的目的,图27示意性地示出了具有此功能的摄像机1100。在图27中,摄像机1100包括透镜结构1110、布置为透过透镜结构1110来接收光并且将光转换成图像信号的图像传感器1120、位置、方向和/或运动检测器1130、其可以是以上结合检测HMD的位置、方向和/或运动所讨论的类型、以及可操作为使用来自检测器1130的数据至少执行步骤900、910并且输出具有如以上所讨论的相关联的视点元数据的图像信号1150。注意,如果如之前所述使用光流运动检测,则针对这个处理的图像数据可以简单地从传感器1120得到,从而避免了需要单独的检测器1130。
根据本发明的至少一些实施例,通过在视频信号中增加额外的数据,诸如头戴式显示器(HMD)的沉浸式视频显示器或者多屏幕投影器能够向观看者再现与实物大小相同的并且在它们正确的方向上的图像。对于交互式应用,图像重新投影可以快速进行并且最迟在显示之前。这可以减少由渲染延迟导致的不需要的图像移动。对于任何应用,该技术能够稳定摄像机运动以减少观看者恶心并且保持对象的真实世界方向,以提高沉浸和真实感。
在本发明的至少一些实施例中,可以使用该相同的技术将单个HMD用于对交互式内容和广播电视信号两者重新投影。如果观看者正在以不同于摄像机的方向观看则可能看到一些帧边缘(frame border),尽管这可以使用补充的全景静止图像填补间隙得以缓解。
本发明的实施例还可以解决关于由摇晃的摄像机捕捉到的视频的问题,例如由手持摄像机或其运动受到外界影响的摄像机,诸如安装在机械设备上或在风流的路径中的摄像机。通过将元数据与指示摄像机在图像捕捉期间的运动的(如上所述的)图像相关联,在显示的时刻使用以上所讨论的技术进行重新投影。以这种方式,可以对图像的中央区域进行摄像机运动的补偿并且使观看者看起来是稳定的,尽管该补偿的结果可能是图像的外边界可能到处移动。
至此所描述的实施例主要涉及可头戴式显示器。现将描述其中显示器或多个显示器不是可头戴式的另外的布置。
图28示意性地示出观看者1200观察显示屏幕1210。显示屏幕1210可以是前向投影屏幕(在这种情况下,未示出可以位于屏幕1210的与用户相同侧的一个或多个投影器)、或者是背面投影屏幕(在这种情况下,未示出可以位于屏幕1210的相对于用户侧的另一侧的一个或多个投影器)、或者形成为一个或多个诸如液晶显示器(LCD)面板的显示面板。本领域技术人员将理解,用于在显示屏幕1210上实现图像的显示的特定技术对于本实施例并不重要。
许多以上结合HMD设备讨论的技术还可以同样地就图28的布置而言加以使用。在之前对HMD系统的讨论中,通过各种技术检测HMD的方向。图28的布置中的类似考虑涉及对用户头部的方向的检测。应当理解,头部方向不一定指示用户正在观看的方向,但它通常被认为指示观看1220的方向的良好近似。
因此,在一些实施例中,就更大的显示器1210和对用户头部方向的检测而言可以使用与以上(结合HMD系统)所讨论的相同的技术。以下将讨论可以检测头部方向的各种方式。
图29示意性地示出了用户1300佩戴头部方向检测器1310。头部方向检测器1310被示意性地示为头带1320和安装在头带上的方向检测器1330。在实践中,可以该布置做的更加周到,例如将其组合成可附连到一副常规眼镜1340的配件或者形成帽子或一对耳机的一部分。
在功能上,如果所有各种替代方案是之前结合图8的描述所讨论的,则方向检测器1330根据图8所示的技术进行操作。在这方面,方向检测器1330包括HMD的大部分功能,但没有图像显示功能。
方向检测器1330可以包括处理器以从任何其使用的数据源(例如,周围的场景的图像或加速度计数据)得到方向,以便方向检测器1330将指示该方向的数据发送到接收器1350,例如通过诸如蓝牙链路的无线链路。当然,可以代替地使用有线链路。可替代地,方向检测器1330可以将“原始”获得的数据发送到接收器1350,诸如捕捉到的周围的图像或者来自加速度计的原始数据,以便接收器1350(或者未示出的另外的下游处理设备)从自方向检测器1330接收到的原始数据得到方向信息。
图30示意性地示出了被动式头部方向检测技术。这种布置不一定需要用户1400佩戴或携带任何特定的设备或物品。视频摄像机1410捕捉用户1400的图像,并将该图像传递到处理器1420。处理器1420可以以各种方式进行操作。在一个示例中,处理器1420可以应用已知的面部检测技术,以检测用户的面部相对于摄像机1410的方向。例如,这种技术可能涉及将包含该用户的面部的图像部分(归一化到标准比例)与每个指示出面部在相对于该摄像机的不同方向上的特征的各种本征(Eigen)图像相比较。该本征图像之中最接近的匹配可以被当作指示用户面部的当前方向。可以利用限定摄像机1410和所使用的显示屏幕的相对方向的信息对处理器1420进行校准,以便其能够提供指示该用户的面部相对于显示屏幕的当前方向的输出。
在另一示例中,用户可以佩戴一个或多个诸如反射或逆反射标记的被动标记(图30中未示出)以协助处理器1420检测用户面部相对于摄像机的方向。例如,如果用户眼镜的侧臂1430提供有不同的(即,可由摄像机1410区分的)反射标记,可以对各个标记在捕捉到的图像中的相对大小进行处理来提供用户面部的方向的指示。可选地,摄像机1410可以包括布置为消除该标记的照射源。可选地,该照射可以是用户不可见的或基本上不可见的,例如红外照射。
图31示意性地示出了使用多投影器的显示布置。
在图31中,以示例的方式提供四个投影器,即投影器1500A、1500B、1500C和1500D。该投影器具有各自的视场,它们一起覆盖整个显示屏幕1510。各自的视场由各自的虚线1520A-D示意性地指示,为了绘图起见,在投影屏幕后面予以示出。实际上,当然要考虑的重要区域是在投影器屏幕1510的平面处的投影的范围。
四个投影器由显示控制器1530驱动,其向投影器1500A-D中的每个提供各自的显示信号。现将讨论该信号的形成。
对于观察显示屏幕1510的观看者(图31中未示出),布置有头部方向检测器1540来检测观看者头部相对于显示屏幕1510的方向。以上所讨论的各种技术都适用于该检测。也如以上所讨论的,这提供了观看者正在观看的方向的指示。图31所示的系统的目的是,在遍及整个显示屏幕1510上显示由图像信号1550提供的较低分辨率背景场景,但是叠加由图像信号1560提供的较高分辨率插入图像,以便替换较低分辨率背景场景的一部分(如果未检测到观看者的头部方向,则可以假定-在仿真环境中并不少见的-固定的头部位置)。
在图32中示意性地示出了一个示例,其可能形成关于沿着由树木包围的道路驾驶(非常示意性地在图32中示出)的视频或视频游戏的一部分。这里,以低于插入图像1600的分辨率生成和显示背景场景,其中该插入图像1600是以较高分辨率生成和显示的。插入图像1600涉及整体场景中用户将集中注意力的部分,即(在本示例中)紧前方的道路和任何迎面而来的车辆。其余的背景图像(在插入图像的插入之后)涉及整体场景中对于用户的注意力不那么重要的其他部分。使用这种图像分辨率的差异的一个原因是由于在以高分辨率生成覆盖整个显示的整体场景的高的处理开销。相反,可以以较低分辨率生成背景(并且可以被布置为比插入图像较不频繁地改变)以便节省处理开销。
需要注意的是,指示插入图像1600的范围的虚线只是为了附图的清楚,并且不存在于实际显示的图像上。
返回到图31,根据检测到的观看者的头部方向,通过重新投影逻辑1570将由信号1560表示的插入图像在适当的图像显示位置处重新投影。重新投影的插入信号被提供给显示控制器,该显示控制器在适当的显示位置处将其与由信号1550表示的较低分辨率背景场景相组合。
类似于图31的布置可以参考体育赛事等的电视转播。背景显示可以是,例如,整个运动场地的图像(尽管在同一时刻可能不一定向用户显示运动场地的全部)。将被重新投影到主显示内的插入图像是来自从跟随着例如运动员的移动的运动动作的摄像机的快照(shot)。使用元数据和上述技术将该插入图像重新投影到背景图像中的适当位置。这向观看者提供了在整个场地的范围内哪里正在发生动作的指示。
作为以上处理的一部分,随着重新投影的图像到处移动,本发明的实施例可以使用重新投影的图像的非变化部分(或某种颜色或纹理的部分,可能代表草的视图)来填充背景图像。在一些示例中,当重新投影的图像到处移动时,可以利用表示运动场地的较高分辨率图像材料,通过从重新投影的图像复制来对低分辨率背景图像进行填充。如果多摄像机视图是可用的(如一些运动赛事等的广播转播的情况下),那么(a)该用户可以选择一个或多个这样的视图进行重新投影,和(b)这将允许通过从多于一个这样的视图提取材料进行背景图像的更快填充。
在其它示例中,如果背景和插入图像提供有深度图或者其它深度数据,用户可以在三维中在整个场景到处移动,以响应于用户的虚拟位置对重新投影进行调整。
另外的示例涉及视频游戏,使得整个背景图像可以表示虚拟世界的一部分或者全部。关于玩家的特定游戏动作的场景被重新投影到虚拟世界内的正确位置作为该插入图像。
图33和图34示意性地示出了图像的各自不同的视场(FOV)版本。
现在将描述的涉及图像的多个FOV版本的系统的基本原则是,许多图像尤其是在视频游戏的范围内具有主要感兴趣的点或区域。为了实现对于该用户主观上有吸引力的图像,但无需以非常高的分辨率发送整个图像的过高的带宽要求,以下将描述的技术涉及提供图像的两个版本。
第一版本,诸如图33中所示,提供了整个图像的特定分辨率(例如,可能为720或更多视频行的高分辨率)表示。该表示被称为大或高FOV图像,由于该图像的FOV包括(例如)整个原始渲染的图像。
另一个版本,诸如图34中所示,具有较低或较小的FOV,因此未包括原始渲染的图像的全部。相反,表示了感兴趣的区域。在图34的示例中,感兴趣的区域涉及直升机的客舱和机身,但一般来讲,在视频游戏的情况下,感兴趣区域通常将涉及视频游戏中玩家的角色周围的区域,或者在“第一人称视点”视频游戏的情况下,为与最重要或当前最危险的敌人相距(例如)预定的边界距离的周围的区域。其他系统(除了视频游戏)也可以具有可以以自动的方式识别的感兴趣的区域。例如,视频商业广告可以具有限定感兴趣的产品的图像位置的相关联的元数据。或者,在HMD的情况下,眼睛跟踪可以用来检测用户当前正在观看该图像的哪一部分,以便该图像的所识别的部分(无论它包含图像材料或内容如何)被视为感兴趣的区域。默认的可能是感兴趣的区域是较高FOV图像的位于中心的区域。注意,至少在一些实施例中,已经使用HMD位置和/或方向(作为参考图22和图24所讨论的两阶段重新投影处理的一部分)作为元数据来影响每个图像的生成,因此发送和使用眼睛位置元数据来影响将渲染的图像编码成高和低FOV部分不是过度的处理负担。
可以以与图33的图像相同的基本的分辨率提供图34的图像,例如720或更多视频行的高分辨率。但是由于图34的图像的FOV小于图33的图像的FOV,所以图34的图像中表示的每个特定图像特征事实上是以比图33的图像中的该特征的相应表示较高的分辨率表示的。
两个图像(图33和图34)提供表示相同的底层(underlying)场景或渲染图像的图像、但是以两种不同的方式表示的对。这是两个或更多个这种图像的示例。
图35示意性地示出了高FOV图像和低FOV图像的组合。这里,图34的图像或图33的图像的任一者(或两者)被缩放以便使图33和图34的图像的比例相等。例如,如果低FOV图像(图34)包括在高FOV图像(图33)的范围的每个线性方向上的50%,则应用到图34的图像的示例性缩放操作是在每个线性方向上以50%的系数进行的。在示出的特定示例中,其目的是对图像中的一个或两者进行缩放,以使直升机在两个图像中大小相同。然后这允许将来自低FOV图像的图像内容插入到高FOV图像的较宽FOV但较低分辨率的视图。
在图35中示意性地示出了图像内容的这种插入,其中虚线1700指示图34的低FOV图像的原始边界。在基本层次上,边界1700内的图像内容可以从低FOV图像提供,并且除边界1700外的图像内容可以从高FOV图像提供。
但是在更复杂的布置中,为了避免边界1700处的图像质量的突然转变,在边界1700和位于边界1700内的边界轮廓1710之间定义边界区域。在该边界区域中将两个图像按比例混合,其中该比例在轮廓1710和边界1700之间变化,使得在轮廓1710处图35的合成图像是完全从图34的低FOV图像得到的,在边界1700处合成图像是完全从图33的高FOV图像得到的,并且在轮廓1710和边界1700之间,两个图像的比例随着轮廓1710和边界1700之间的距离变化,例如以线性变化。这提供了从两个贡献图像得到的合成图像35的各部分之间的更平滑的转变。
在操作的另外可能的模式中,边界1700和/或轮廓1710的尖角可以是圆滑的,可能通过应用延伸超过90°并且具有半径为图34的(缩放的)图像的横向宽度的(例如)5%的倒圆(radiused)的部分圆形的外形。在图35示出关于一个角的这种倒圆的轮廓的示例1720,但应理解的是,如果使用的话,相同的轮廓可以应用于以下的一者或两者(a)边界1700的所有四个角、以及(b)轮廓1710的所有四个角中。使用倒圆或其他方式的平滑轮廓或边界可以避免与在尖角处产生的图像的混合有关的可见的伪像(artefact)。
应该理解的是,可以使用两个以上具有各自不同的FOV的图像,以便然后以类似于参考图35描述的方式将该图像组合以形成合成图像。如果使用两个以上不同的FOV,该组图像可以(例如)包括:
(a)一连串不同FOV图像,其中心在相同位置上,也就是说,相同的感兴趣的点或区域;和/或
(b)覆盖(例如)整个原始渲染的图像的高FOV图像,加上两个或更多个关于各自不同的感兴趣的区域的较低FOV图像。
现在将描述用于对多FOV图像编码的技术,以该种方式,可以使用诸如HDMI接口和电缆的常规样式传输介质将它们从例如游戏控制台传递到用于显示的HMD。
一项示例性技术涉及将图像对(高FOV和低FOV)格式化和伪装成“虚拟(dummy)”3-D高清晰度图像,例如用于经过诸如HDMI 1.4视频链路的链路传输。另一示例性技术涉及以高于图像生成的速率的帧速率对该对图像编码。
因此,参考图35所描述的技术提供以下一个或多个的示例:就由低FOV表示所表示的图像区域而言主要使用来自该低FOV表示的图像内容,对于其它图像区域使用来自相应的高FOV表示的图像内容;至少针对低FOV表示的中心区域,通过低FOV表示的相应图像内容来替换高FOV表示的图像内容;以及至少针对低FOV表示的周边区域,将低和高FOV表示的图像内容混合。还可以使用以上所讨论的重新投影技术,以使图像的组合包括重新投影以根据期望的显示视点形成各自的显示图像。
图36示意性地示出了对多FOV图像编码为连续的合成图像。
在以下将描述的图36和图37这两个图中,假设显示器(在本示例中为HMD)是立体显示器,因此生成左和右图像两者。以(例如)30赫兹的帧速率和(例如)1440×1620×2的分辨率在例如视频游戏控制台的渲染缓冲器中生成的左和右图像被标记为图像1800、1810。据此,编码器(以下参照图45描述的)生成相应的高FOV和低FOV的图像。
针对左和右分量中的每个的高和低FOV图像中的每个具有与这四个图像中的每个其他的相同的分辨率。它们也具有与原始的1440×1620图像相同的纵横比(在本示例中)。通过编码器将它们成对地组合以使得从原始图像对1800、1810生成的四个图像中的两个被编码为第一高清晰度60赫兹帧1820,其余的两个被编码为下一个高清晰度60赫兹帧1830。以这种方式,生成的所有四个图像(左、右、高FOV、低FOV)可以以生成原始图像1800、1810所根据的原始30赫兹帧周期被发送。然后可以对这些图像处理,并且由HMD以30赫兹或其它帧速率进行显示。
图36示出一个示例性的置换(permutation),其中这四个图像被划分成两个高清晰度60赫兹帧1820、1830。当然应理解的是,也可以使用其他可用的置换代替。
在HMD处,左和右图像中的每个的高FOV和低FOV部分被再次组合,并且在本发明的实施例中,被重新投影以显示给用户的左眼和右眼。在本发明的实施例中,利用以上参考图22和图24所讨论的技术进行重新投影,也就是说,获取最新的HMD位置并且基于最新的HMD位置和适合该图像原始生成时刻的位置将用于显示给每只眼睛的图像重新投影。用于由HMD显示的输出图像指示为1840、1850。
图37示意性地示出了对多FOV图像编码为虚拟3D图像。这里,术语“虚拟”意味着使用适用于3D图像的传输格式,但由该传输格式实际所编码的图像可能是或可能不是可观看(例如,在3D电视显示器上)为立体图像对的。然而,注意在诸如图37所示的一些布置中,“虚拟”图像实际上是在3D显示器上可立体地观看的,但是或许图像内容在观看者看来有些奇怪,由于该显示器将会在低FOV图像旁边示出高FOV图像。
再一次,该处理开始于生成的左和右图像1800、1810,(本示例中)每个大小为1440×1620像素并且以830赫兹帧速率生成。从左和右图像1800、1810中的每个形成低和高FOV图像。然而,相比于图36,该对左图像被格式化成单个帧1860并且该对右图像被格式化成单个帧1870,使得这两个帧1860、1870形成例如为720p(720行,逐行扫描)分辨率的3-D视频信号的左和右图像。3-D视频信号的帧速率可以例如是60赫兹。再一次,这允许使用诸如HDMI电缆的标准视频连接将每个图像对的低和高FOV部分发送到HMD,但这里使用3-D视频传输标准。
如前所述,将低和高FOV部分在HMD处组合并且重新投影,以形成用于由HMD显示的左和右图像1840、1850。
图38是示出涉及生成、编码、解码和使用多FOV图像的操作的示意性的流程图,垂直虚线1900左侧的步骤(在实施例中)由游戏控制台或其它数据处理系统执行,并且线1900右侧的步骤由HMD执行。以下将参考图45和图46讨论用于执行这些步骤的合适的装置。
在步骤1910中,游戏控制台生成左和右图像,例如如上面所讨论的将它们存储在渲染缓冲器中。
在步骤1920中,游戏控制台对于每个所生成的左和右图像生成高FOV和低FOV图像。
在步骤1930中,将四个产生的图像编码成例如“虚拟”3-D视频或者具有比在步骤1910中生成原始左和右图像的速率更高的帧速率的视频流中的替代图像。在任一情况下,例如使用诸如HDMI接口和电缆的标准连接将已编码的图像传递到HMD。
在步骤1940中,HMD接收并且解码该四个图像,将它们存储在合适的缓冲器中。
最后,在步骤1950中,HMD根据最新的HMD位置将该左和右图像组合并且重新投影(使用图22和图24的技术)。
因此,图36-38及其所附描述提供一种图像编码方法的示例,包括:对于一对立体图像的左和右图像中的每个,在输入图像中识别感兴趣的区域;生成该输入图像的至少两个生成表示,使得该表示中的一个是基本上包括输入图像的全部的高视场(FOV)表示,并且另一个表示是具有比该高FOV表示更低的FOV的低FOV表示,并且至少包括该感兴趣的区域;其中对于高FOV表示和低FOV表示,像素分辨率和图像大小之间的关系为,使得关于该感兴趣的区域,低FOV表示提供了比高FOV表示更多数量的图像细节;通过将左和右、高FOV和低FOV表示的至少一些部分并置(juxtapose)来生成一个或多个复合图像,以便在少于四个的复合图像中包括该左和右、高FOV和低FOV表示的图像内容的全部;以及发送和/或存储(或简称为“输出”)该复合图像。
在显示器侧,这些技术提供一种图像显示方法的示例,包括:接收由以上限定的方法发送和/或存储的复合图像;对该复合图像解复合(demutiplex)以生成左和右、高FOV和低FOV表示的组;并且将左和右图像中的每个的低FOV表示和高FOV表示组合以提供相应的左和右显示图像。
以下参照图44-45描述适用于执行这些方法(其可以或可以不至少部分地在软件控制下操作)的装置。该编码方法可以由视频游戏机执行。该显示方法可以由可头戴式显示器执行。
本发明的实施例还包括包含连续复合图像的图像信号以及将这种图像信号进行存储的存储介质,使得该复合图像包括输入立体图像对的左和右、高视场(FOV)和低FOV表示的并置的部分,以便在少于四个的复合图像中包括该左和右、高FOV和低FOV表示的图像内容的全部,其中对于高FOV表示和低FOV表示,像素分辨率和图像大小之间的关系为,使得关于该感兴趣的区域,低FOV表示提供了比高FOV表示更多数量的图像细节。
如上述所提到的,在复合图像中不同图像的各种置换是可能的,从而本发明的实施例包括生成一个或多个复合图像,其包括通过将左和右、高FOV和低FOV表示中的第一个的整体并置至紧挨着左和右、高FOV和低FOV表示中的第二个的整体而生成第一复合图像,以及通过将左和右、高FOV和低FOV表示中的第三个的整体并置至紧挨着左和右、高FOV和低FOV表示中的第四个的整体而生成第二复合图像。
在本发明的实施例中,复合图像可以以比输入图像的图像重复速率较高的图像重复速率进行输出(发送、存储等)、或者可以输出为相应的左和右虚拟3D图像。
图39示意性地示出了所谓的帧撕裂。
帧撕裂是一种可能发生在视频游戏系统中的现象,其中导致用于显示的图像的生成和渲染的处理与图像显示周期并不时间同步。
考虑一个假设的示例,如果用于显示的图像正在以例如30赫兹的帧速率生成,那么每1/30秒或33.3(循环的)毫秒需要新的图像。如果生成该图像所需的处理花费略少于该时间,那么图像生成可以在必须启动下一个图像的处理之前及时地完成。在这种系统中,它确实能够使图像生成和图像输出同步。
然而,考虑如果图像生成花费(比如说)37毫秒的情况。如果该处理在生成图像后暂停并且在下一个图像周期等待同步,则将是大量的处理时间的浪费,并且仅可以实现15赫兹的图像输出速率。特别是,该系统将在每个图像的生成后花费大约30毫秒等待。实际上,生成每个图像所花费的时间可能是可变的,以使得等待时间将必须基于最坏情况的可能性,从而导致潜在的更多浪费的处理时间。因此,为了避免这种处理时间的浪费,在许多系统中,一旦系统已经生成一个图像,其被布置为开始下一个图像的生成,在本示例再花费37毫秒。
这种布置将避免处理能力的浪费,但应记住的是,需要以定期和固定速率以每1/30秒输出图像。,这种缺乏图像生成和图像输出之间的同步的结果因此是,当每个图像从渲染缓冲器输出时,在许多情况下,它将部分地由一个图像(一个部分完成的新生成的图像)和部分地由之前的图像(关于那些尚未被新生成的图像重写的部分)构成。在图39中示意性地示出这种情形,其中,就所生成的图像1960的任意一个而言,一个部分1970是新生成的图像(图像n)的一部分,但另一部分1980是之前生成的图像(图像n-1)的一部分。
这种类型的布置是在视频游戏系统中相对常见的,而且在许多情况下不会导致困难。然而,在使用重新投影的系统中,它可能会导致问题。
这是由于每个图像是初始地对应于在启动该图像的生成的时刻取样的HMD的视点生成的(可以回顾的是在该图像的显示的时刻将重新投影用于将视点改变为当前HMD视点)。但是,如果如图39所示,图像由不同部分构成,可能的是适合于构成的图像(图像n和图像n-1)中的每个的各自的视点是不同的。这可能导致关于上述的重新投影技术的一个大问题。
为了解决这个问题,在本发明的实施例中使用一种特定类型的图像元数据编码。将参考图40和图41描述这种编码。这尤其与其中与预定图像输出周期同步地周期地执行生成连续输出图像、但相对于生成连续输出图像的步骤不同步地执行生成图像内容的布置相关。
图40示意性地示出了元数据编码技术,该技术对可能经受所谓的帧撕裂的系统而言尤其有用。图41示意性地表示根据本技术的已编码的元数据。
参考图40,在步骤2000中,在已编码的图像的顶部,将对应于待编码的图像的上部分的视图矩阵的视图矩阵数据(限定图像生成所依据的视图矩阵的元数据)进行编码。在图41的示例中,该编码借助于已编码的图像中的虚拟像素行2010,使得代替于这些数据位置由像素数据所占据,它们替代地由已编码的视图矩阵元数据所占据。在图39-41的示例中,行2010将携带图像n的视图矩阵元数据。
作为步骤2020,在图像的侧面向下对图像标识符进行编码,例如在一列虚拟像素2030中。例如,该图像标识符可以形成为滚动的七或八位(bit)值(因此在一些编码技术中,这将占据一列像素),其表示以滚动为基础的连续帧。帧标识符值在一些实施例中至少存在于每行像素,以使得在图像撕裂情况下,存在每行像素初始源自于哪个图像的逐行的定义。在本示例中,像素列2030的上部分编码为图像编号n(或至少在这些示例中,该编号的模数27或28计数)像素列2030的下部分编码为图像编号n-1。
当然,在列2030中并非每行必须具有虚拟像素;该编码可以适用于行的组合(例如,八位虚拟像素值的组合,该八位值的四个两位像素部分中的每个可能指示四个各自的行中的每个的图像编号(模数4))。或者实际上由列2030提供的数据可以提供一次,例如作为在该图像的顶部或底部处、或者在其他地方的行中的虚拟像素数据,。
元数据编码处理的最后阶段是在图40中的步骤2040中,其中,在图像的底部对该图像的下部分的视图矩阵数据进行编码。在本示例中,编码借助于一个或多个虚拟像素行2050,并且携带图像n-1的视图矩阵数据。
因此,在假设帧撕裂将导致不多于两个图像贡献成特定的输出图像(换言之,图39的示例)的情况下,目前的布置提供了两组视图矩阵数据,一个在对应于上部分的视图矩阵(或者具体地,适用于顶部真实像素行的视图矩阵数据)的图像的顶部,以及一个在对应于下部分的视图矩阵(或者具体地,适用于底部真实像素行的视图矩阵数据)的图像的底部。虚拟像素列2030中的图像标识符用于识别这些视图矩阵数据组中的哪个适用于每行像素。如果涉及三个或更多个图像,各个位置(诸如,在图像的底部处的另外的像素行)可以用于与第三或后续的图像相关联的视点数据。
应理解的是,不一定使用虚拟像素对这些项目进行编码。可以使用单独的相关联的数据代替。然而,使用所描述的虚拟像素的优点在于,它们总是与图像一起携带,然而相关联但单独的元数据可能或者不能通过某些传输路由而从图像剥离或分离。然而,如果使用虚拟像素数据,认为其优点在于将其置于图像的最外边缘(顶部、底部、左、右),以减少其对图像的视觉部分的影响并允许它在显示之前被移除。
本发明的实施例可以提供将至少一部分元数据编码为各自的输出图像内的像素数据。例如,指示该输出图像的哪些部分是根据每个视点生成的元数据可以被编码为该输出图像中的像素行的至少一个子集中的每个的一个边缘处的像素数据。例如,指示该输出图像的哪些部分是根据每个视点生成的元数据可以被提供为该输出图像中的每个像素行的一个边缘处的像素数据,以便指示关于该像素行的视点。例如,指示关于包含在该输出图像中的图像内容的每个视点可以被编码为各自的输出图像内的像素数据。例如,指示关于包含在该输出图像中的图像内容的每个视点可以在该输出图像的顶部和/或底部边缘处被编码为各自的输出图像内的一行或多行像素数据中的像素数据。
因此,结合之前所讨论的图像传输技术,图39-图41提供用于处理帧撕裂的技术,通过(a)能够限定使用该图像固有的数据,并且是以原始图像由每行像素表示的逐行的基础;以及(b)能够限定适用于图像的不同部分的多组视图矩阵数据。然后这些特征有利地允许即使已发生帧撕裂时使用重新投影。以下将描述实现此的技术。
因此,图39-图41(结合以下讨论的图42-图43)和其所附描述提供一种图像编码方法的示例,包括:根据由图像视点数据限定的视点生成图像内容;生成连续输出图像,使得每个输出图像包括根据一个或多个视点生成的图像内容;以及对与每个输出图像相关联的元数据进行编码,其中该元数据指示关于包含在该输出图像中的图像内容的每个视点,并且限定了该输出图像的那些部分是根据这些视点中的每个而生成的;以及一种图像显示方法的示例,用于从连续输入图像生成每个包括根据一个或多个视点生成的图像内容的连续显示图像,该输入图像每个具有相关联的元数据,该元数据指示关于包含在该输入图像中的图像内容的每个视点,并且限定了该输入图像的哪些部分是根据这些视点中的每个而生成的,该方法包括:根据期望的显示视点和由与该输入图像相关联的元数据对于该部分限定的视点之间的任何差异,对每个输入图像的各部分重新投影以形成各自的显示图像。图44-图45提供可能(尽管不一定)至少部分地在合适的计算机软件的控制下执行这种方法的装置的示例。该编码方法可以由视频游戏机执行。该显示方法可以由可头戴式显示系统执行。
本发明的实施例还包括使用这些技术所生成的图像信号,例如包括连续输出图像的图像信号,以及通过其存储这种信号的存储介质(诸如磁盘或存储器介质),使得每个输出图像包括根据一个或多个视点生成的图像内容和与每个输出图像相关联的元数据,该元数据指示关于包含在该输出图像中的图像内容的每个视点,并且限定了该输出图像的哪些部分是根据这些视点中的每个而生成的。
当然,就特定图像而言,在帧撕裂并不发生的情况下,行2010、2050中的两组视图矩阵数据将是相同的。
图42和图43是示意性流程图,示出了围绕帧撕裂的组合图像的两种不同的方式。讨论会提到帧撕裂图像的“第一”和“第二”部分。哪个部分对应于图39所示的部分是任意选择的。为了讨论起见,第一部分将被认为指代图39中的部分1970,而第二部分将被认为指代图39中的部分1980,但如果将该部分倒过来则讨论同样是有效的。
参考图42,基于行2010和2050中的两组视图矩阵数据,在步骤2100中,将帧撕裂图像的第二部分重新投影到第一部分的视点。在步骤2110中,将重新投影的第二部分与第一部分组合。然后,在步骤2120中,将从步骤2110中产生的组合的图像重新投影到HMD在显示的时刻的视点。
在图43示意性示出不同的布置,其中,在步骤2130中,将第一部分利用其各自的视图矩阵数据重新投影到当前HMD视点。在步骤2140中,将第二部分重新投影到相同的当前HMD视点。在步骤2150中,将两个重新投影的部分组合以用于显示。
作为图42的步骤2120的示例,图44示意性地示出了帧撕裂时的重新投影处理。这里,图像2160已经在其生成期间经历了帧撕裂,产生了部分A和B。尽管将哪个部分重新投影到另一部分是任意选择的,本示例中,将较旧的帧部分(B)的重新投影到较新的帧部分(A)的视点,部分原因是更可能的是较新获取的部分A的视点更接近于HMD的当前视点。结合本示例图像,根据各自不同的视点生成的图像的部分是上部和下部图像部分;以及指示适用于上部图像部分的元数据可以被编码为该输出图像的一个或多个最顶端的像素行中的像素数据,而指示适用于下部图像部分的元数据可以被编码在该输出图像的一个或多个最底端的像素行中。
注意,作为重新投影和/或显示处理的一部分,将任何虚拟像素元数据移除或遮蔽(或另外地在该处理的任何阶段中省略),以便不被显示。
重新投影的视点可以通过检测观看者的头部的当前位置和/或方向来获得;以及根据检测到的用户头部的当前位置和/或方向得到显示视点。
(类似地,如之前所讨论的,可以通过检测观看者头部的初始位置和/或方向得到用于图像生成的视点;并且将检测到的初始位置和/或方向提供给图像生成器以根据该初始位置和/或方向作为视点来生成图像内容。)
这些技术当然对于单个图像或以上所讨论类型的低和高FOV图像操作相同。
作为执行以上所讨论的各种操作的实施例的示例,图45示意性地示出了图像生成器的一部分;以及图46示意性地示出了HMD的一部分。
在图45中,渲染引擎2200响应于游戏参数2210以生成适当的输出图像,其被存储在渲染缓冲器2220中。输出编码器2230生成以上所讨论类型的输出图像。
在图46中,解码器和缓冲器2240接收由输出编码器2230提供的已编码的图像,对它们进行解码和缓冲。如果适当的话,解码器和缓冲器2240还对如以上所讨论的低和高FOV图像组合。重新投影单元2250响应于当前HMD视点2260以生成输出图像,其在显示器(例如,每只眼睛一个显示器)2270上进行显示。
以上所述技术可以在硬件、软件或两者的组合中实现。在采用软件控制数据处理装置以实现实施例的一个或多个特征的情况下,将理解的是这种软件、以及提供的这种软件的诸如非瞬时性机器可读存储介质的存储器或传输介质,也被认为是本发明的实施例。
数据信号
应当理解通过以上所讨论的装置的变体生成的数据信号、以及携带这种信号的存储器或传输介质,被认为代表本公开的实施例。
就以上所讨论的处理、编码或解码的方法,应理解,配置为执行这种方法的装置也被认为代表本公开的实施例。还将理解的是,包括这种技术的视频存储器、传输、捕捉和/或显示装置被认为代表本公开的实施例。
对于已被描述为至少部分地由软件控制数据处理装置实现的本公开的实施例,应理解,携带这种软件的非瞬时性机器可读介质,诸如光盘、磁盘、半导体存储器等也被认为代表本公开的实施例。
根据上述教导,清楚的是本公开的许多修改和变型是可能的。因此应理解,在所附的权利要求的范围内,该技术可以以不同于这里所具体描述予以实践。