具有用于在建模3D空间中投影观看的选项的2D视频的制作方法

文档序号:13473482阅读:174来源:国知局
具有用于在建模3D空间中投影观看的选项的2D视频的制作方法

本公开一般涉及多媒体系统,并且更具体地,涉及虚拟现实和增强现实显示系统。



背景技术:

多媒体内容服务器、多媒体光盘播放器和其他多媒体内容源有助于观看在用户的电视、监视器、支持计算的手机、支持计算的手表和其他显示装置上的二维(2d)视频内容。随着消费者级虚拟现实(vr)和增强现实(ar)系统的出现,与vr和ar显示内容相比,这样的2d视频呈现经常缺乏场境(context)或“存在”。然而,在常规的显示系统中,用户仅限于在常规的平面显示模式中观看2d视频内容,或者观看完全无关的vr或ar内容。



技术实现要素:

本发明的一个方面涉及一种在具有头戴显示器的显示系统中的方法,其包括:接收表示二维视频内容的视频数据;接收表示建模的三维空间并表示所述建模的三维空间内的表面的模型数据,所述二维视频内容要被投影在所述表面上;在所述显示系统处确定二维视图模式还是三维视图模式被选择;以及响应于确定所述三维视图模式被选择:确定所述头戴显示器的当前姿态;以及经由所述头戴显示器提供基于所述当前姿态的所述建模的三维空间的视图的显示,其中所述建模的三维空间的所述视图包括基于所述当前姿态的所述二维视频内容到所述表面上的投影。

本发明的另一个方面涉及一种显示系统,其包括:头戴装置;耦合到所述头戴装置的至少一个处理器;和存储组件,所述存储组件耦合到所述至少一个处理器,所述存储组件存储所述至少一个处理器能够访问的一组可执行指令,其中所述一组可执行指令被配置为操纵所述至少一个处理器以:接收表示二维视频内容的视频数据;接收表示建模的三维空间并表示所述建模的三维空间内的表面的模型数据,所述二维视频内容要被投影在所述表面上;确定二维视图模式还是三维视图模式被选择;以及响应于确定所述三维视图模式被选择:确定所述头戴装置的当前姿态;以及向所述头戴装置提供基于所述当前姿态的所述建模的三维空间的视图的显示,其中所述建模的三维空间的所述视图包括基于所述当前姿态的所述二维视频内容到所述表面上的投影。

本发明的另一个方面涉及一种在处理装置中的方法,其包括:确定空间的三维模型;识别所述空间的所述三维模型中的表面,二维视频内容要被投影在所述表面上;以及提供表示所述二维视频内容的视频数据和表示所述空间的所述三维模型的模型数据以用于存储,以便对显示系统的后续访问能够使用。

本发明的再另一个方面涉及一种处理装置,其包括:至少一个处理器;和耦合到所述至少一个处理器的存储组件,所述存储组件存储一组可执行指令,所述一组可执行指令用于操纵所述至少一个处理器以:确定空间的三维模型;识别所述空间的所述三维模型中的表面,二维视频内容要被投影在所述表面上;以及提供表示所述二维视频内容的视频数据和表示所述空间的所述三维模型的模型数据以用于存储,以便对显示系统的后续访问能够使用。

附图说明

通过参考附图,本公开可以被更好地理解,并且使得其许多特征和优点对于本领域技术人员而言是显而易见的。在不同附图中使用相同的附图标记表示相似或相同的项目。

图1是图示出根据一些实施例的多媒体分发系统的框图。

图2是图示出根据一些实施例的将2d视频内容投影到在建模的3d空间中的指定位置的图。

图3是图示出根据一些实施例的为2d视频流提供2d/3d显示选项的多媒体应用的图。

图4是图示出根据一些实施例的响应于在图3的多媒体应用中选择2d显示选项的2d视频流的2d或“平坦”显示的图。

图5是图示出了根据一些实施例的响应于图3的多媒体应用中选择3d显示选项而投影到建模的3d空间的所识别表面内的2d视频流的显示的图。

图6是图示出根据一些实施例的用于与2d视频内容相关联地生成建模的3d空间的表示的装置的处理系统的图。

图7是图示出根据一些实施例的用于生成建模的3d空间的表示并且在该建模空间内为2d视频内容指定投影表面的方法的流程图。

图8是图示出根据一些实施例的用于为具有相关联的建模3d空间的2d视频内容提供2d/3d显示选项的装置的处理系统的图。

图9是图示出根据一些实施例的具有相关联的建模3d空间的2d视频内容的2d/3d可选显示的方法的流程图。

具体实施方式

常规的显示系统将2d视频内容的观看限制为常规的2d或“平面”观看模式,其中在操作系统(os)或软件应用显示区域的对应窗口或2d区域中显示2d视频内容。相比之下,ar/vr系统允许观看建模的3d空间和其他3d内容,许多这样的系统允许用户通过使用各种传感器跟踪vr/ar设备的姿态(位置和/或定向)来有效地“移动”通过3d空间。如这里更详细地描述的,2d/3d多媒体分发系统使得用户能够以常规2d或“平面”观看模式观看2d视频内容,或者如果系统是vr/ar使能的并且用户如此倾向,则可以与2d视频内容相关联地提供或访问建模的3d空间的表示,并且可以将2d视频内容投影到建模的3d空间内的指定表面上,以供用户观看,就像2d视频正在显示在建模的3d空间内的该表面处,或者以其他方式从建模的3d空间内的该表面被投影。此外,在一些实施例中,可以监视用户的姿态,并且相应地更新2d视频内容的投影以匹配用户的当前姿态并且观看到建模的3d空间中。

为了通过非限制性示例的方式来说明,定期上传播放各种视频游戏的用户的2d视频剪辑的youtube(tm)用户可以对用户的游戏室进行建模,并且与一个或多个2d视频剪辑相关联地上传所生成的游戏室的3d模型的表示。然后,2d视频剪辑可以经由youtube(tm)服务作为流式视频文件流式传输到其他用户。根据其相应计算系统的vr/ar能力,这些其他用户可以选择在web浏览器中以常规的平面2d显示模式观看2d视频剪辑中的一个,或者通过头戴显示器(hmd)或其他vr显示器观看2d视频剪辑之一,使得2d视频剪辑被投影到与游戏室的3d模型中的计算机监视器相对应的表面上,并且因此看起来像2d视频剪辑正在被显示在在游戏室的3d模型中的计算机监视器“处”。如果用户经由vr显示器具有3自由度(3dof)或6自由度(6dof)能力,则用户可以改变位置和/或改变定向,从而改变计算机监视器的视角和看起来显示在其上的2d视频内容。

图1图示出了根据本公开的至少一个实施例的2d/3d多媒体分发系统100。在所描述的示例中,系统100包括经由一个或多个有线或无线网络108连接到多个用户计算系统(诸如,用户计算系统104、106)的多媒体服务器102。用户计算系统104、106可以包括用于捕获和/或呈现多媒体内容的各种设备或设备的组合的任何,诸如桌面型计算机、笔记本计算机、平板计算机、计算使能的移动电话、个人数字助理、游戏控制台、计算使能的电视、计算使能的手表和其他可穿戴设备、以及hmd或其他ar/vr显示装置等。

对于以下,用户计算系统104被用作视频内容的源和虚拟或现实世界空间的3d模型的源,因此在本文中被称为内容源系统104,而用户计算系统106用于以2d视图模式或3d视图模式向用户呈现2d视频内容,因此在本文中被称为2d/3d显示系统106。2d/3d显示系统106包括2d显示装置110,用于以2d/平面显示模式显示2d视频内容,其中在2d显示装置110的显示面板或监视器上将2d视频内容显示为2d矩形窗口。这种装置的示例包括桌面/笔记本计算机、计算使能的蜂窝电话、平板计算机等。此外,在一些情况下,2d/3d显示系统106还可以包括能够显示3d视频内容的vr/ar显示装置112。vr/ar显示装置112可以包括例如分立的专用hmd,或者可以通过以特定方式配置2d显示装置110来实现(诸如其中计算使能的蜂窝电话被插入纸板头饰以形成hmd的googlecardboardvr视图)。在这种情况下,2d/3d显示系统106能够在2d视频内容被显示在2d窗口中的2d视图模式中,或者在经由vr/ar显示装置112呈现建模的3d空间的3d视图模式中操作,,并且如下面更详细描述的那样,2d视频内容被投影到建模的3d空间的指定表面上。注意,在一些情况下,装置110、112可以包括相同的装置。

在操作中,内容源系统104生成或以其他方式获得表示2d视频内容的2d视频数据114,并将2d视频数据114提供给多媒体服务器102以供存储并随后分发给其他用户。2d视频数据114可以包括例如由内容源系统104的用户记录的视频剪辑或其他视频流(该用户在此被称为“内容提供者”)。此外,内容提供者操纵内容源系统104以生成或以其他方式获得可以用作2d视频内容的3d显示的设置的虚拟空间或现实世界空间的3d模型,并且向多媒体服务器102提供这种3d模型的表示作为3d模型元数据116,以分发给2d视频数据114的接收者。3d模型元数据116可以被并入作为2d视频数据114的一部分。为了说明,2d视频数据114可以实现为h.264视频数据,并且3d模型元数据116可以使用各种元数据注入技术中的任一种作为元数据并入h.264数据。作为另一种方法,3d模型元数据116可以使用用于在像素信息中嵌入数据的各种隐写工具中的任何工具来编码到视频内容本身的像素中。替选地,3d模型元数据116可以与2d视频数据114分立提供但与2d视频数据114相关联。为了说明,2d视频数据114可以包括或引用标识3d模型元数据116的标识符(id)。这个id可以包括例如包含2d视频数据114的文件或其他数据容器的名称。作为另一示例,id可以以与3d模型元数据116的存储位置相关联的远程存储位置id(诸如超文本传输协议(http)链接)的形式提供。

可以以各种方式中的任何方式生成所识别的vr空间或现实世界空间的3d模型。在一些实施例中,内容源系统104具有用于捕获现实世界房间或其他现实世界空间的图像和/或深度信息并且使用该信息来生成现实世界空间的vr模型的设施。为了说明,内容源系统104可以被实现为或采用googleprojecttango使能的平板电脑或手机来映射出具有现实几何的一个或多个房间,并将该数据与所捕获的图像数据组合以生成一个或多个房间的纹理3d模型。在其他实施例中,3d模型可以是使用计算机辅助设计(cad)工具或其他vr建模工具创建的完全vr空间。

使用如此确定的3d模型,内容提供者进一步操作内容源系统104以识别在建模的空间内的表面,在该表面上可以有效地“投影”2d视频内容,以便显现为在建模的空间内的那个表面上正在“显示”的2d视频。该表面在本文中被称为“投影表面”。在一些实施例中,投影表面可以包括例如矩形平面表面,其中矩形表面的四个角由3d模型的参考坐标系中的四个对应的3d坐标点标识。在其他实施例中,表面可以采用具有由对应的3d坐标点限定的角和/或边的其他平面形状。在其他实施例中,投影表面可以具有非平面形状,例如弯曲表面或刻面,在这种情况下,可以使用几何网格(mesh)或其他表示来识别投影表面。

为了说明,表面可以被指定为3d网格空间中的点,3d网格空间表示环境以及指示投影表面应朝向的方向的法向量以及在该网格空间内的最大宽度/高度指示符(例如,以米为单位)。在这些之间,可以以任意的弯曲量渲染矩形2d视频,并以任意的宽高比工作。替选地,内容提供者可以提供他们的视频应该被渲染到其上的2d网格和纹理坐标,其位于与环境网格相同的空间中。通常需要根据当前视频的宽高比来改变这个网格,以避免信箱化。这将使得内容提供者能够通过将视频纹理细分为不同的区域并且然后提供视频将在其上渲染的潜在的不相交的网格来利用静态网格创建伪6dof视频。以这种方式,启用简单的设置,其中内容提供者可以通过使用网格简单地在具有分立内容在空间中渲染两个视频屏幕,该网格将两个四边形放入环境中,并提供纹理坐标,使得每个四边形获得不同的一半视频,有效地允许两个视频表面。这也可以用任意网格实现;例如,在一种环境中,可以包括坐在作为环境的一部分的具有静态纹理的沙发上的个人,但是在此之上,内容提供者可以将视频纹理的一部分放置在面部上(具有可能符合该面部的网格),以便面部可以与视频进行反应。

利用如此识别的投影表面,内容源系统104将投影表面的表示并入到3d模型元数据116中作为投影位置信息118。根据投影表面的特性,投影位置信息118可以包括例如,投影表面的点或角的表示、表示投影表面的几何网格的表示、或如上所述的3d点和向量等。

利用上传到多媒体服务器102的2d视频数据114和3d模型元数据116,其他用户然后能够访问2d视频数据114,以在他们相应的显示系统106处显示。因此,当用户选择由2d视频数据114表示的2d视频内容以用于回放(例如,通过点击在显示系统106处显示的web浏览器中正在观看的超文本标记语言(html)页面中的相关http链接)时,多媒体服务器102启动2d视频数据114传送给显示系统106。除了常规2d显示选项之外,2d视频数据114还可以包括2d视频数据114具有3d显示选项的指示符。例如,用于2d视频数据114的容器的标题或其他字段可以包括表示该选项的可用性的值。响应于识别2d视频数据114的3d视图模式可用性,显示系统106诸如通过确定显示系统106是否包括vr/ar显示装置112来确定其是否具有显示3d内容的能力。如果存在3d显示能力,则显示系统106可以向用户提供以常规2d视图模式观看2d视频数据114的2d视频内容的选项,于是2d视频内容在2d矩形窗口或框中或者在3d视图模式中被显示,因此使用vr/ar显示装置112将用户浸入由3d模型元数据116表示的建模的3d空间中,并且将2d视频内容投影到由投影位置信息118指定的建模的3d空间内的投影表面中。在此更详细地描述这些显示模式。

图2图示出了根据一些实施例的具有指定投影表面的建模3d空间的示例。内容提供者(即,内容源系统104的用户)或者通过捕获现实世界空间的图像和深度信息以及其中包含的几何的“虚拟化”,或者通过从头开始设计虚拟空间来生成空间的3d模型202。在所描绘的示例中,建模空间是用户的客厅,其包含电视机204的建模表示。内容提供者还将电视机204的显示表面指定为投影表面206,用于将2d视频内容投影到由3d模型202表示的建模的3d空间。投影表面206可以通过例如下述方式在3d模型202内被识别:指定由投影表面206表示的矩形平面表面的四个角211、212、213、214的、在3d模型202的坐标系内的3d坐标。。

内容提供者还指定用于以常规平面2d视图模式显示或用于在3d视图模式下投影到投影表面206上的2d视频流216。2d视频流216包括诸如所图示的2d画面217、218、219的2d画面序列。因此,如这里更详细地描述的,当内容消费者(即,2d/3d显示系统106的用户)从多媒体服务器102(图1)访问2d视频数据114和3d模型元数据116并选择3d视图模式时,经由vr/ar显示装置112向内容消费者显示3d模型202的3d表示220,其中,如果vr/ar显示装置112被启用用于姿态跟踪,则3d模型202的透视图可以基于vr/ar显示装置112的当前姿态。为了在3d表示220内提供2d视频流的投影3d视图,2d/3d显示系统106使用各种坐标系统变换算法中的任何算法将2d视频流216的每个画面从2d坐标系转换成3d模型的坐标系中的对应纹理222,并且所得到的纹理222在提供3d表示220的显示中被并入显示在vr/ar显示装置112处的一个或多个画面224的投影表面206中。

如上所述,内容消费者(即,系统106的用户)可能没有设备或不希望观看投影到3d空间中的2d视频内容,并且因此可以向内容消费者提供在2d视频内容的2d视图模式或3d视图模式之间进行选择的能力。图3图示出了向内容消费者提供该选项来选择显示模式的示例方法,图4图示出了当如此选择时的2d视图模式的示例方法,并且图5图示出了当如此选择时的3d视图模式的示例方法。如图3所示,内容消费者可以初始地访问或以其他方式指示通过对在2d/3d显示系统106处的软件应用300的图形用户界面(gui)的输入或其他操纵来观看流式视频文件或其他视频流的愿望。在所图示示例中,软件应用300包括已访问诸如youtube(tm)网站(例如由多媒体服务器102提供)的视频共享网站的web浏览器。内容消费者经由web浏览器选择3d显示使能的视频剪辑。作为响应,呈现2d显示窗口302连同识别对该视频剪辑可用的视图模式(即2d视图模式和3d视图模式)的视图选择字段304(在该示例中描绘为下拉菜单)。在2d/3d显示系统106不能提供3d显示的情况下,或者在所选剪辑不是3d显示使能的情况下,视图选择字段304可以不将3d视图模式描述为选项,或者可以防止3d视图模式选项的选择。然后,内容消费者可以操纵视图选择字段304,以选择在平面2d呈现中显示2d视频剪辑,还是经由将2d视频内容投影到与视频剪辑相关联的建模3d空间的投影表面上来显示2d视频剪辑。

如图4所示,当内容消费者通过在表示视图选择字段304的下拉菜单中选择“2d”来选出以2d视图模式观看2d视频剪辑时,软件应用300(作为web浏览器)访问2d视频数据114,并且提供其中所呈现的2d视频内容402,用于按照常规2d视频显示技术在2d/3d显示系统106的显示面板404处在软件应用300的2d显示窗口302中显示。相反,如图5所示,当内容消费者通过在表示视图选择字段304的下拉菜单中选择“3d”来选出以3d视图模式观看2d视频剪辑时,软件应用300启用3d视图模式,其中软件应用300访问与视频剪辑相关联的3d模型元数据116,并且相同的软件应用300或另一软件应用随后在vr/ar显示装置112处提供由3d模型元数据116表示的建模的3d空间的3d显示(例如,作为如图5所示的立体图像的平行流)。如上所述,该3d显示过程包括将2d视频剪辑的每个画面变换成两个对应的表面(一个用于左眼图像,一个用于右眼图像),以便并入立体图像的平行流中,使得该画面似乎显示在为建模的3d空间指定的投影平面处或从其投影。

图6图示出了根据一些实施例的图1的多媒体分发系统100的内容源系统104的示例实施方式。在所描绘的示例中,内容源系统104包括至少一个处理器602、数据存储604、系统存储器606或其他软件存储组件以及到网络108(图1)的网络接口608。此外,在一些实施例中,内容源系统104提供光流、同步定位与地图构建(slam)、或其他基于图像捕获的遥测功能,并且因此可以包括以下的一组:成像相机610、612、深度传感器614、惯性测量单元(imu)616、和用于控制组件610-616的传感器中心618。例如,imu616可以包括以下中的一个或多个:陀螺仪620、磁力计622、和加速度计624等。

系统存储器606存储包括由至少一个处理器602访问和执行的可执行指令的软件应用626(图3的软件应用300的一个实施例),并且当这样执行时,操纵处理器602与其他组件一起提供本文关于内容源系统104描述的各种功能。为此,软件应用626被布置为一组模块,包括3d建模模块628和视频投影布局模块630。

图7图示出了根据一些实施例的图6所描绘的内容源系统104的实施方式的操作的示例方法700,用于生成和提供2d视频数据114和3d模型元数据116以分发给其他系统。方法700以使得对2d或3d显示可用的2d视频内容的识别、生成或其他确定来在框702处启动。在一些实施例中,2d视频内容的确定可以包括对先前生成的2d视频内容的选择。例如,内容提供者可以从存储在数据存储604中的用于如本文所述的2d/3d处理的2d视频剪辑的数据库中选择2d视频剪辑。在其他实施例中,明确地生成2d视频内容以对本文所述的2d/3d显示选项过程可用。在这种情况下,可经由成像相机610、612之一来捕获2d视频内容,经由计算机图形应用生成2d视频内容,或其组合。在框702生成2d视频内容的事件中,所生成的2d视频内容可以被提供用于在数据存储604处作为2d视频数据114进行存储。此外,在框702,所生成或选择的2d视频数据114可以经由网络接口608传送到多媒体服务器102以便存储和随后分发。

在框704,在内容源系统104处执行3d建模模块628,以便在3d建模过程期间基于用户输入632生成指定空间的3d模型。如框703所表示,内容提供者可能希望生成现实世界空间的3d模型。为了说明,如果2d视频内容表示正在客厅中进行视频游戏的内容提供者,则该内容提供者可能希望生成该客厅的3d模型以便给予观看者身处客厅中并且看着游戏正在进行的感觉。因此,框704的3d建模过程可以包括例如建模模块628,其利用成像相机610、612来捕获现实世界空间的图像,利用深度传感器614捕获现实世界空间的深度信息,并利用imu616在捕获图像和深度信息期间确定姿态信息,并且从该信息确定在与现实世界空间紧密相关的参考坐标系的场境中的现实世界空间的各种相关空间特征。然后,3d建模模块628可以使用这些空间特征和该参考坐标系来生成现实世界空间的空间几何的3d模型634(图6)。替选地,如框705所表示,内容提供者可能希望生成虚拟空间的3d模型,在这种情况下,3d建模模块628可以采用cad工具或其他vr工具或与其配合来构建该虚拟空间的3d模型634(图6)。

在建模的3d空间被指定的情况下,在框706处,在内容源系统104处执行视频投影布局模块,以便基于用户输入636(图6)识别建模的3d空间内的投影表面,可以在其该投影表面上呈现或以其他方式投影2d视频内容。为了说明,内容提供者可以指定建模的3d空间内的平面区域的角的坐标,以用作投影表面。

在框708,视频投影布局模块630组合表示3d模型634的数据和表示所选择的投影表面的数据(即,图1的投影位置信息118),以生成3d模型元数据116,并将3d模型元数据116提供给网络接口608以传输到多媒体服务器102,以便与对应的2d视频数据114相关联地进行后续分发。在一些实施例中,视频投影布局模块630诸如通过下述方式将3d模型元数据116提供为2d视频数据114的部分:将3d视频数据114嵌入到用于2d视频数据114的容器的元数据字段中,或者将3d视频数据114直接编码到2d视频数据114的图像的像素中。替选,3d模型元数据116可以被提供为分立的文件或其他数据容器,并且2d视频数据114可以包括id或对3d模型元数据116的其他引用,使得多媒体服务器102可以识别如与2d视频数据114相关联的3d模型元数据116,反之亦然。在其他实施例中,3d模型元数据116可以与内容提供者相关联,并且因此应用于由内容提供者提供的所有3d显示使能的视频剪辑。为了说明,再次使用上述的youtube(tm)示例,内容提供者可以对内容提供者进行视频游戏的客厅进行建模,并且由内容提供者上传的每个视频游戏剪辑可以默认为对基于来自该特定内容提供者的视频剪辑而在该建模的客厅内投影的3d显示可用。

图8图示出了根据至少一个实施例的图1的多媒体分发系统100的2d/3d显示系统106的示例实施方式。在所描绘的示例中,系统106包括至少一个应用处理器802、至少一个图形处理单元(gpu)804、系统存储器806或其他存储组件、耦合到网络108(图1)的网络接口808、显示控制器810、显示面板812、和vr/ar显示装置112,其在所描述的实施例中包括hmd814和hmd控制器816。系统存储器806存储支持如本文所述的2d/3d显示系统106的功能的一个或多个软件应用,诸如表示一个或多个软件应用的主显示软件818,其操作以操纵2d/3d显示系统106显示一个或多个gui以促进可用于用户选择的2d视频流的列表、阵列或其他清单(例如,经由web浏览器上显示的网页),以在对于所选择的2d视频流选择了2d视图模式的情况下,促进与用户从多媒体服务器102选择的视频流相关联的2d视频数据114的访问以及由2d视频数据114表示的视频内容的2d显示。为此,主显示软件818可以包括例如渲染模块820以用于解码2d视频数据114,并将解码的数据渲染成表示2d视频数据114的视频内容的一系列画面,如下详细描述。

由系统存储器806存储的软件应用还包括一个或多个vr软件应用822,其操作以操纵2d/3d显示系统106,以经由hmd控制器816在hmd814处渲染用于显示vr或ar内容的平行立体图像流,并且在用户选出以3d视图模式观看视频内容的情况下,一个或多个vr软件应用822进一步操作以支持以3d视图模式显示视频内容。为此,一个或多个软件应用822包括3d模型提取/显示模块824和2d视频投影模块826。下面更详细地描述模块824、826的操作。

图9图示出了根据本公开的至少一个实施例的图8的2d/3d显示系统106的实施方式的操作的示例性方法900。方法900在框902处以下述行为启动:用户选择3d显示使能的2d视频流以在2d/3d显示系统106处呈现,并响应于该选择而接收所选2d视频流的2d视频数据114。为了说明,用户可能正在浏览视频共享网站,并从作为选项呈现的多个视频流中选择视频流。响应于该选择,主显示软件应用818经由网络接口808向多媒体服务器102发送对于对应的2d视频数据114的请求。多媒体服务器102作为响应将2d视频数据114发送回到2d/3d显示系统106,其中它被缓冲以用于处理。

在框904处,主显示软件应用818确定所选择的视频流是否被启用用于3d显示,并且如果是,则向用户呈现在平面屏幕模式(即,常规2d视图模式)或vr模式(即,本文所述的投影3d视图模式)中观看所选视频流的选项。主显示软件应用818可以例如基于存储在2d视频数据114本身中的字段或值、基于与2d视频数据114相关联的3d模型元数据116的存在或不存在、和基于2d视频数据114的源或内容提供者等来作出该确定。如上所述,在2d视图模式或3d视图模式下观看视频内容的选项可以被呈现为例如用作所选2d视频流的源的视频共享网站或其他软件应用的gui内的用户输入字段或其他gui小部件。

在用户选择平面屏幕模式的事件中,在框906,应用处理器802或gpu804中的一个或两者对2d视频数据114进行解码,并渲染由所得到的解码视频数据表示的画面序列,并且根据常规的2d显示过程,经由显示控制器810将每个画面呈现以在显示面板812的对应显示窗口(例如,图3的显示窗口302)中显示。

返回到框904,在用户为所选视频流选择3d视图模式的事件中,在框908,3d模型提取/显示模块824访问与所选择的视频流相关联的3d模型元数据116。如上所述,在一些实施例中,3d模型元数据116作为元数据嵌入2d视频数据114中或在像素数据本身内编码,在这种情况下,3d模型提取/显示模块824可以通过从2d视频数据114提取3d模型元数据116来访问3d模型元数据116。在其他实施例中,为了带宽、兼容性或灵活性考虑,使得3d模型元数据116与2d视频数据114分立可用。为了说明,3d模型元数据116可以被存储为被2d视频数据114经由html链接或其他远程存储位置id引用的分立文件。在这种情况下,3d模型提取/显示模块824可以通过使用远程存储位置id从多媒体服务器102请求3d模型元数据116来访问3d模型元数据116。在其他实施例中,3d模型元数据116可能已经预先存储在2d/3d显示系统106中。为了说明,内容提供者可以为由内容提供者提供的所有2d视频流使用相同的建模的3d空间,并且因此当用户观看一个2d视频流时,可以下载并在2d/3d显示系统106处存储表示建模的3d空间的3d模型元数据116,以用于与当前2d视频流和来自同一内容提供者的任何随后访问的2d视频流一起使用。在这种情况下,访问3d模型元数据116可以包括识别3d模型元数据116的副本已经存储在本地存储位置(例如,本地硬盘驱动器)上,并且从所识别的本地存储位置访问3d模型元数据116。

应当理解,vr/ar显示装置112具有帧速率,其表示hmd控制器816将左眼/右眼画面驱动到hmd814以进行显示的速率。在一个实施例中,下面对于框910、912、914、916和918所描述的过程表示对要提供给hmd814以供显示的每个立体显示画面对所执行的过程,并且因此以vr/ar显示装置112的帧速率执行该处理的迭代。此外,以下假设所选择的视频流的帧速率与vr/ar显示装置112的帧速率相同。然而,如果所选择的视频流的帧速率较低,则来自所选视频流的相同画面可用于vr/ar显示装置112的两个或更多个显示帧。替选地,如果所选择的视频流的帧速率较高,则可以采用从视频流选择性地丢弃画面来实现帧速率之间的有效匹配。

在框910处,渲染模块820解码2d视频数据114的一部分,从所得到的解码数据渲染画面828,并将画面828提供给2d视频投影模块826。并行地,在框912处,处理器802使用各种众所周知的hmd姿态确定技术中的任何技术基于来自hmd814的imu(未示出)的传感器信息和基于由hmd814的成像相机(未示出)捕获的图像中检测到的空间特征等来确定hmd814的当前6dof或3dof姿态830(图8)

在框914,3d模型提取/显示模块824使用由3d模型元数据116表示的空间的3d模型和当前姿态830来渲染表示来自当前姿态830的空间的3d视图的立体对画面831、832(对于用户的左眼和右眼每个一个画面),并将该对画面831、832写入帧缓冲区834以进行临时存储。同时,在框916处,2d视频投影模块826使用当前姿态830和从3d模型元数据116提取的投影位置信息118所表示的投影表面,以将所渲染的画面828从平面2d坐标参考变换成适合在建模的3d空间的坐标参考中相对于当前姿态830的投影表面,导致一对经变换的画面纹理835、836,画面纹理835、836用于左眼和右眼中的每一个。然后将经变换的画面纹理835、836写入帧缓冲区834,并存储,使得经变换的画面纹理835封闭与画面831中的投影表面的位置相对应的画面831的区域,并且经变换的画面纹理836同样封闭与画面832中的投影表面的位置相对应的画面832的区域。在框918,hmd控制器816访问帧缓冲区834,并将所得到的最终显示画面837、838传送到hmd814以用于同时显示以便由用户感知为3d图像内容,其使得来自2d视频数据114的2d画面828显现为从3d图像内容中表示的空间内的指定表面投影。然后可以对来自2d视频数据114和更新的姿态830的下一个画面重复框910-918的过程。

在一些实施例中,上述技术的某些方面可以由执行软件的处理系统的一个或多个处理器来实现。软件包括所存储或以其他方式有形地体现在非暂时计算机可读存储介质上的一组或多组可执行指令。该软件可以包括指令和和某些数据,所述指令和某些数据当由一个或多个处理器执行时操纵一个或多个处理器以执行上述技术的一个或多个方面。非暂时性计算机可读存储介质可以包括例如磁盘或光盘存储装置、诸如闪存、高速缓存、随机存取存储器(ram)或其他非易失性存储装置的固态存储装置等等。存储在非暂时性计算机可读存储介质上的可执行指令可以是由一个或多个处理器解释或以其他方式可执行的源代码、汇编语言代码、目标代码或其他指令格式。

计算机可读存储介质可以包括计算机系统在使用期间可以访问以向计算机系统提供指令和/或数据的任何存储介质或存储介质的组合。这种存储介质可以包括但不限于光学介质(例如,光盘(cd)、数字通用盘(dvd)、蓝光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(ram)或高速缓存)、非易失性存储器(例如,只读存储器(rom)或闪存))或基于微机电系统(mems)的存储介质。计算机可读存储介质可以被嵌入计算系统(例如,系统ram或rom)中,固定地附接到计算系统(例如,磁性硬盘驱动器),可移除地附接到计算系统(例如,光盘或基于通用串行总线(usb)的闪存),或者经由有线或无线网络耦合到计算机系统(例如,网络可访问存储(nas))。

注意,不一定需要在一般描述中描述的所有活动或元素,特定活动或设备的一部分可能不是必需的,并且可以除了描述的那些执行一个或多个其他活动,或者包括一个或多个其他元素。此外,列出活动的顺序不一定是活动被执行的顺序。此外,已经参考具体实施例描述了这些概念。然而,本领域的普通技术人员认识到,在不脱离如所附权利要求中阐述的本公开的范围的情况下,可以进行各种修改和改变。因此,说明书和附图被认为是说明性的而不是限制性的,并且所有这些修改旨在被包括在本公开的范围内。

以上已经针对特定实施例描述了益处、其他优点和问题的解决方案。然而,所述益处、优点、问题的解决方案以及可能导致任何益处、优点或解决方案发生或变得更加显著的任何特征都不应被解释为权利要求的任何或全部的关键、必需或基本特征。此外,上面公开的特定实施例仅是说明性的,因为所公开的主题可以以对受益于在此的教导的益处的本领域技术人员显而易见的不同但等同的方式进行修改和实践。除了在所附的权利要求中描述的之外,对于本文所示的结构或设计的细节没有旨在有限制。因此,显而易见的是,上述公开的特定实施例可以被改变或修改,并且所有这些变化被认为在所公开的主题的范围内。因此,本文寻求的保护如所附的权利要求中所述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1