基于三维(“3D”)场景的二维(“2D”)捕获图像,渲染虚拟现实内容的方法和系统与流程

文档序号:19734852发布日期:2020-01-18 04:20阅读:315来源:国知局
基于三维(“3D”)场景的二维(“2D”)捕获图像,渲染虚拟现实内容的方法和系统与流程

相关申请的交叉引用

本申请要求2017年5月31日提交的、标题为“methodsandsystemsforrenderingvirtualrealitycontentbasedontwo-dimensional("2d")capturedimageryofathree-dimensional("3d")scene(基于三维(“3d”)场景的二维(“2d”)捕获图像,渲染虚拟现实内容的方法和系统)”的美国专利申请no.15/610,586的优先权,其全部内容通过引用合并于此。



背景技术:

计算和网络技术的进步使得新形式的媒体内容成为可能。例如,可以使用虚拟现实媒体内容,将观众(或“用户”)沉浸在用户可能通过将他们的注意力集中到此时正在虚拟现实世界中呈现的各种事物中而体验的交互式虚拟现实世界中。在呈现虚拟现实媒体内容期间的任何时间,体验虚拟现实媒体内容的用户都可以在相对于水平维度(例如,向前、向后、向左、向右等)和垂直维度(例如,向上、向下等)的任何方向中,在虚拟现实世界中环顾和/或走动,使用户感觉到他或她实际存在于虚拟现实世界中,并从虚拟现实世界中的特定角度体验了虚拟现实世界。

在一些示例中,虚拟现实媒体提供者可以通过经由网络,将表示虚拟现实世界的数据传输到用户正在使用体验虚拟现实世界的客户端计算设备来提供包括虚拟现实世界的虚拟现实内容。

附图说明

附图示出了各种实施例,并且是说明书的一部分。示出的实施例仅是示例,并且不限制本公开的范围。在所有附图中,相同或相似的附图标记表示相同或相似的元件。

图1示出了根据本文所述的原理的示例性虚拟现实内容渲染系统。

图2示出了根据本文所述的原理的示例性配置,其中,图1的系统的渲染设备接收并处理与3d场景相关联的数据,以渲染表示3d场景的虚拟现实内容。

图3示出了根据本文所述的原理,关于3d场景中的对象的捕获设备的示例性配置。

图4示出了根据本文所述的原理的示例性二维(“2d”)输入网格。

图5-7示出了根据本文所述的原理的2d输入网格到虚拟3d空间内的深度的示例性投影。

图8-10示出了根据本文所述的原理,用于从局部3d网格中识别和去除无关图元的示例性操作。

图11-12示出了根据本文所述原理的投影到虚拟3d空间中的多个局部3d网格的截面图。

图13示出了根据本文所述的原理,投影到虚拟3d空间中并且被用于由任意视点生成虚拟3d空间的图像视图的局部3d网格的截面图。

图14示出根据本文所述的原理的帧缓冲器的示例性配置。

图15示出根据本文所述的原理,要从虚拟3d空间内的任意视点渲染的对象的局部表示的示例性深度偏移。

图16示出了根据本文所述的原理的图1的虚拟现实内容渲染系统的示例性实施方式。

图17示出了根据本文所述的原理,可由图1的虚拟现实内容渲染系统接收的示例性传输流。

图18示出了根据本文所述的原理,在特定的时间序列期间,可以由图1的虚拟现实内容渲染系统从特定的捕获设备接收的示例性2d颜色和深度数据。

图19示出了根据本文所述原理的元数据的示例性实施方式。

图20示出了根据本文所述原理,基于3d场景的2d捕获图像来渲染虚拟现实内容的示例性方法。

图21示出了根据本文所述原理,用于基于3d场景的2d捕获图像来渲染虚拟现实内容的另一示例性方法。

图22示出根据本文所述的原理的示例性计算设备。

具体实施方式

本文描述了用于基于3d场景的2d捕获的图像来渲染虚拟现实内容的方法和系统。在某些示例性方法和系统中,虚拟现实内容渲染系统(“渲染系统”)可以接收表示由物理地设置在相对于3d场景的不同优势点(vantagepoints)(例如,相对于3d场景具有不同捕获角度的不同位置)的多个捕获设备(例如,相机、3d深度扫描硬件等)捕获的3d场景(例如,现实世界场景)的2d图像的数据。所捕获的2d图像(可以被称为表面数据)可以包括如由包括在多个捕获设备中的每个捕获设备所捕获的、3d场景中的一个或多个对象的表面的2d颜色数据和深度数据。

由每个捕获设备捕获的2d颜色数据和深度数据可以表示来自相对于3d场景的特定优势点的3d场景的不同非网格视图。如本文中所使用的,“不同非网格视图”对应于来自特定捕获设备的3d场景的视图,其中,由特定捕获设备捕获的用于3d场景的表面数据(例如,2d颜色数据和深度数据)不被表示为几何图元的3d网格,并且/或者不与由另一捕获设备捕获的表面数据组合(即不网格化)以形成3d场景的3d模型或3d表示。

渲染系统还可以接收元数据,诸如用于2d颜色数据和深度数据的投影元数据。元数据可以包括与3d场景相关联的信息,诸如有关多个捕获设备的信息,其可以由渲染系统使用来将2d颜色数据和深度数据投影到虚拟3d空间中,以产生虚拟3d空间中的3d场景的虚拟表示,使得渲染系统可以使用投影数据来从虚拟3d空间内的任意视点渲染虚拟3d空间的视图(即虚拟3d空间中的3d场景的虚拟表示的视图)。

基于接收到的数据(例如,元数据和深度数据),渲染系统可以对与每个相应捕获设备相关联的每个优势点生成投影到虚拟3d空间中的局部3d网格,以产生虚拟3d空间中的3d场景的局部虚拟表示。在某些示例中,生成每个局部3d网格可以包括渲染系统对与每个相应捕获设备相关联的每个优势点,基于深度数据,沿着透视线,将2d输入网格投影到虚拟3d空间内的深度,以产生虚拟3d空间中的局部3d网格的图元的顶点的3d坐标。在某些示例中,生成每个局部3d网格还可以包括渲染系统对每个局部3d网格,将局部3d网格的一个或多个图元识别为无关图元,并且从每个局部3d网格中去除所识别的无关图元。

基于对与捕获设备相关联的优势点投影到虚拟3d空间中的局部3d网格,渲染系统可以从虚拟3d空间内的任意视点生成虚拟3d空间的图像视图。在某些示例中,生成虚拟3d空间的图像视图包括渲染系统累积投影到虚拟3d空间中的局部3d网格,并且基于2d颜色数据,混合局部3d网格的颜色样本以形成虚拟3d空间的图像视图。在某些示例中,累积投影到虚拟3d空间中的局部3d网格可以包括在图形处理单元(“gpu”)的帧缓冲器中累积局部3d网格,并且在gpu的帧缓冲器中加性地混合局部3d网格的颜色样本。在某些示例中,混合颜色样本可以包括渲染系统确定局部3d网格的图元的混合权重,基于对局部3d网格的图元所确定的混合权重,加权局部3d网格的颜色样本,并且确定包括在局部3d网格的重叠分段中的叠加图元的加权颜色样本的加权平均值。在某些示例中,渲染系统可以确定累积区域,并且仅累积和混合位于累积区域内的图元或片段。

本文描述了上述原理和操作以及附加和/或替代原理和操作的说明性示例。为了清楚和说明起见,本文中使用简化的数据集(例如,代表简单的3d场景、对象、2d输入网格、局部3d网格等的数据集)来描述和示出某些说明性示例。然而,将理解到,本文所述的原理和操作可以应用于更大和/或更复杂的数据集。

与传统的虚拟现实内容呈现技术相比,本文所述的方法和系统提供一个或多个优点和/或益处。例如,本文所述的方法和系统可以显著减少渲染虚拟现实内容所需的计算资源(例如,存储器和/或处理资源)。为了说明,如本文所述,通过使用2d颜色数据、深度数据和元数据来生成、累积和混合局部3d网格以形成虚拟3d空间的图像视图,渲染系统可以渲染虚拟现实内容(例如,来自虚拟3d空间中的任意且动态可选择的视点的虚拟3d空间的图像视图),而不必接收或生成3d场景的完整3d模型,诸如3d场景的单个内聚几何网格。这样可以节省传输带宽、处理要求和存储器。

附加地或可替代地,如本文所述,通过使用2d颜色数据、深度数据和元数据来生成、累积和混合局部3d网格以形成虚拟3d空间的图像视图,本文所述的方法和系统可以使用现有的视频处理技术(例如,视频渲染技术)和现有的图形硬件(例如,现有的图形卡和流水线)和/或渲染虚拟现实内容的软件,这可以支持虚拟现实内容服务对更广泛的最终用户计算设备的可扩展性,并且/或扩大虚拟现实内容对各种最终用户计算设备的用户的可访问性。

附加地或可替代地,如本文所述,通过使用2d颜色数据、深度数据和元数据来生成、累积和混合局部3d网格以形成虚拟3d空间的图像视图,本文所述的方法和系统可以比使用常规渲染技术渲染的虚拟现实内容,更快地渲染虚拟现实内容。这可以支持实时或接近实时地流式传输和渲染虚拟现实内容的应用,诸如用于在事件发生时实时表示事件的虚拟现实内容。

附加地或可替代地,如本文所述,通过使用2d颜色数据、深度数据和元数据来生成、累积和混合局部3d网格以形成虚拟3d空间的图像视图,本文所述的方法和系统可以有助于显著降低通过网络将虚拟现实内容提供给媒体播放器设备所需的带宽量。例如,代替在传输之前生成3d场景的3d模型,可以生成表示3d场景的不同非网格视图的2d数据,并且通过网络将其传输到媒体播放器设备。这显著地降低减少了在服务器端处理并且通过网络传输所需的数据量,使得在减少处理和/或带宽需求的情况下以更高的速度流式传输虚拟现实内容,从而可以改善数据吞吐量和延迟。

本文所述的系统和方法当用作特定的实施方式时,可以提供附加或替代的益处。现在将参考附图更详细地描述各种实施例。所公开的方法和系统可以提供上述益处中的一个或多个,和/或本文将变得显而易见的各种附加和/或替代的益处。

图1示出了一种根据本文所述的方法和系统的示例性虚拟现实内容渲染系统100(“系统100”),其可以处理2d颜色数据、深度数据和元数据以生成、累积和混合局部3d网格来形成虚拟3d空间的图像视图。如所示,系统100可以包括但不限于选择性地且通信地彼此耦合的渲染设施102和存储设施104。在某些替代示例中,存储设施104可以从系统100中排除并通信耦合到系统100。将认识到,尽管设施102和104在图1中被示为单独的设施,但是当用于特定的实施方式时,设施102和104可以被组合成更少的设施,例如被组合成单个设施,或者可以被划分成更多的设施。当用于特定实施方式时,设施102和设施104中的每一个可以包括或被容纳在设备(例如,具有单个机壳的媒体播放器设备)中,并且位于单个位置(例如,诸如住所、公司等的用户场所或与媒体播放器设备的用户相关联的位置)或分布在多个设备和/或多个位置之间。现在将更详细地描述设施102和104中的每一个。

存储设施104可以存储2d颜色和深度数据106、元数据108、虚拟现实内容数据110和/或由渲染设施102接收、生成、管理、维护、使用和/或发送的任何其他数据。2d颜色和深度数据106可以包括可以由渲染设施102接收的并且代表3d场景中的一个或多个对象的2d颜色数据和深度数据,诸如3d场景中的对象的外观和位置。

在某些示例中,3d场景可以是现实世界场景,诸如可以现场(例如实时)发生的现实世界事件的3d场景。在这样的示例中,3d场景可以包括与现实世界事件相关联的一个或多个现实世界对象,并且可以在现实世界事件发生时实时地获取2d颜色和深度数据106。在其他示例中,3d场景可以是包括一个或多个虚拟对象的虚拟场景。在其他示例中,3d场景可以是混合现实场景,并且3d场景可以包括至少一个虚拟对象和至少一个现实世界对象。该3d场景可以被认为是3d场景,因为在该3d场景中的每个对象和/或表面,无论是现实的还是虚拟的,均具有相对于该3d场景在3d空间中的可检测的位置和在该3d场景中的其他对象。

如本文中所使用的,“对象”可以包括从3d场景中的特定优势点可见的(即,不透明的)任何对象,无论是活的还是无生命的。例如,如果3d场景对应于诸如篮球比赛的现实世界事件,则对象可以包括用于比赛使用的篮球、篮球场、篮球规格(即,篮板、篮圈、网等)、参加比赛的球员和裁判员,和/或在篮球比赛中出现和/或与之相关联的任何其他对象。

如本文中所使用的,“2d颜色数据”可以广泛地包括表示3d场景如何从捕获2d颜色数据的至少一个设备的至少一个优势点出现的任何数据。2d颜色数据可以包括3d场景的颜色(例如,红色、绿色、蓝色等)表示、3d场景的黑白表示、3d场景的灰度表示和/或3d场景的外观的任何其他合适的表示。在某些示例中,2d颜色数据可以包括表示在特定时间段来自优势点的3d场景(例如,现实世界事件的对象)的外观的所捕获的图像序列(例如高分辨率静态图像)。例如,2d颜色数据可以包括3d场景的2d颜色视频数据,在其中,视频帧表示在该帧的像素坐标处的颜色值。然而,2d颜色数据不限于任何特定格式、文件类型、帧速率、分辨率、质量水平或可以与本领域中定义视频的各种定义和/或标准相关联的其他特性。

如本文所使用的,“深度数据”可以广泛地包括表示3d场景内的一个或多个对象(例如,现实世界事件中的一个或多个对象)的空间位置的任何数据。可以以任何合适的方式格式化深度数据。在某些示例中,如下文所述,深度数据可以被格式化为从特定优势点捕获的一系列连续的2d深度数据(例如,在特定时间捕获的深度数据的单独实例)。例如,深度数据可以包括来自特定优势点的3d场景的2d深度视频数据,并且在其中,视频帧表示在该帧的像素坐标处的深度值。然而,深度数据不限于可以任何特定格式、文件类型、帧速率、分辨率、质量水平或与本领域中定义视频的各种定义和/或标准相关联的其他特性。优选地,深度数据具有高精度和准确性。然而,深度数据通常可以具有比2d颜色数据更低的分辨率(例如,更低的x和y坐标分辨率)并且仍然是可接受的。

深度数据可以与2d颜色数据同步。例如,深度数据中的深度数据帧和颜色数据中的颜色数据帧可以在时间上与常用实例相对应(例如,相同的参考信号、时间戳、捕获时间等)。这样的对应深度数据帧和颜色数据帧可以形成一对同步帧,其与从其他优势点捕获的其他深度和颜色数据帧的同步对以及相应的元数据一起可以由渲染设施102以任何适当的方式进行处理,诸如本文所述,生成、累积和混合局部3d网格以形成虚拟3d空间的图像视图。

2d颜色数据和深度数据可以由设置在相对于3d场景的不同优势点处的多个捕获设备捕获。捕获设备可以包括例如2d相机、3d深度扫描仪、组合捕获设备(例如,被配置为捕获2d视频和相关联的深度数据的设备)等等。包括在多个捕获设备中的每个捕获设备可以从相对于3d场景的特定优势点捕获3d场景的2d颜色数据和深度数据。如本文所使用的,“优势点”是指由包括在多个捕获设备中的每个捕获设备捕获3d场景的表面数据的位置和捕获角度。在某些示例中,特定捕获设备的优势点可以是固定的(即,特定捕获设备的位置和特定捕获设备的捕获角度不随时间改变)。替代地,特定捕获装置的位置和捕获角度中的一个或多个可以随时间改变。例如,当固定特定捕获设备的装置相对于3d场景移动时,特定捕获设备的位置和/或捕获角度可能随时间改变。可以通过适合于特定实施方式的任何其他合适的信息来描述优势点。本文描述了捕获装置的示例性优势点。

多个捕获设备可以以任何合适的方式并且使用任何合适的设备来捕获2d颜色数据和深度数据,用于可以用于特定实施方式的那样。在某些示例中,捕获设备可以由相机或可以从多个优势点捕获3d场景中的对象的2d颜色数据的其他类型的图像捕获设备组成,并且通过使用一种或多种深度捕获技术(例如,基于三角测量的深度捕获技术、立体深度捕获技术等)可以从该多个优势点捕获(例如,导出)用于对象的表面的深度数据。

在其他示例中,捕获设备可以包括被配置为捕获2d颜色数据的相机或其他类型的图像捕获设备,以及被配置为使用一种或多种深度捕获技术(例如,基于飞行时间的深度捕获技术、基于红外的深度捕获技术等)捕获对象的表面深度的单独深度捕获设备。例如,每个捕获设备可以包括被配置为捕获第一组件所指向的对象的2d视频的第一组件(例如相机设备)和被配置为捕获第二组件所指向的对象的深度数据的第二组件(例如深度相机设备,3d成像或3d扫描设备等)。在该示例中,第一组件和第二组件可以是单独的或分立的设备,但是可以可通信地耦合并且被配置为彼此协同工作以同步地(例如,同时地)捕获2d颜色数据和深度数据。

在其他示例中,每个捕获设备可以包括被配置为捕获2d颜色数据和深度数据两者的组合视频深度捕获设备(例如,专门设计的相机)。组合视频深度捕获设备可以是可商购或专门设计的相机,不仅能够捕获3d场景中的对象的视频数据,而且能够使用一种或多种合适的深度捕获技术来检测对象的相应深度。

在一些示例中,捕获设备可以具有有限的捕获角度(例如90度、120度等),并且可以被定位和定向以捕获来自3d场景的各个区域的数据。例如,捕获设备的环形配置可以被定位为围绕3d场景或3d场景的一个或多个部分(例如,篮球场、赛道的转弯)并且向内指向以捕获表示3d场景的对象的数据。在相同或其他示例中,至少一个特定捕获设备可以具有360度捕获角度,并且可以被定位以捕获来自该特定捕获设备周围的对象的数据。例如,捕获设备中的至少一个可以是被配置为捕获和/或生成围绕对应于360度相机的中心点的3d场景的360度视频图像的360度相机。尽管本文描述了相对于3d场景的捕获设备的某些示例性配置,但是这些示例仅是说明性的。在其他实施方式中可以使用相对于3d场景的捕获设备的任何合适的配置。

诸如本文所述,多个捕获设备可以以任何适当的方式通信地彼此耦合(例如,一起联网)和/或通信地耦合至另一设备或系统(例如系统100)。这可以允许捕获设备在时间、位置、角度等方面保持同步。例如,捕获设备可以发送和接收定时信号,以确保每个捕获设备在公共时间(例如,在阈值时间范围内)捕获相应的数据,并且可以确保通过由所有捕获设备共享的公共时间,对由不同捕获设备捕获的数据加时间戳。在某些示例中,控制器可以指示捕获设备关于何时捕获和/或输出3d场景的数据。在其他示例中,捕获设备可以控制何时捕获和/或输出用于3d场景的数据,并且任何合适的设施可以分类和/或选择性地使用从捕获设备接收的数据。捕获设备如何同步运行的这些示例仅是示例性的。在其他实施方式中,可以使用其他任何合适的设备同步和/或通信技术来有助于捕获设备的操作,从而同步捕获3d场景的数据。在某些替代示例中,多个捕获设备中的一个或多个可以异步地运行,并且可以在捕获之后以任何合适的方式来处理和同步对3d场景捕获的数据。

元数据108可以包括可以由渲染设施102使用的任何信息,以及与3d场景的2d颜色数据和深度数据一起,生成虚拟3d空间中的3d场景的虚拟表示并且从虚拟3d空间内的任意视点形成虚拟3d空间的图像视图。例如,元数据108可以包括投影元数据,该投影元数据可以包括可以由渲染设施102使用的任何信息,并且与3d场景的2d颜色数据和深度数据一起,将用于3d场景的2d颜色数据和深度数据投影到公共虚拟3d空间中,以生成虚拟3d空间中的3d场景的虚拟表示。元数据108可以包括但不限于指示与用于3d场景的2d颜色数据相关联的时间和空间信息的信息,诸如何时捕获2d颜色数据、捕获2d颜色数据的优势点、哪一捕获设备捕获2d颜色数据等。另外,元数据108可以包括指示与用于3d场景的深度数据相关联的时间和空间信息的信息,诸如何时捕获深度数据、何处捕获深度数据,捕获深度数据的优势点、哪一捕获设备捕获深度数据等。元数据108还可以包括视场信息(例如,焦距、光学中心、视角、角度的正切等)、深度映射信息、位置信息、方位信息、视角信息、平移信息、变换矩阵信息、每个捕获设备的任何这类信息的更改,和/或有关捕获设备的任何其他固有和/或非本征特性的信息。在一些示例中,元数据108可以包括关于坐标系(例如,与捕获设备和/或场景相关联的局部坐标系)的信息、投影参数、投影计算、镜头畸变参数和/或用于以本文所述的任何方式处理2d颜色和深度数据的任何其他信息。在某些示例中,元数据108还可以包括相对于3d场景捕获的音频样本的位置信息。可以以可用于特定实施方式的任何适当的格式来表示元数据108,诸如java脚本对象表示法(“json”)、可扩展标记语言(“xml”)等。本文描述了元数据108的示例性格式。

沉浸式虚拟现实内容数据110可以包括代表基于与3d场景相关联的2d颜色数据、深度数据和元数据,由渲染设施102生成的虚拟现实内容的任何数据。例如,虚拟现实内容数据110可以包括表示投影到虚拟3d空间中的所生成的局部3d网格的数据、表示从虚拟3d空间内的任意视点生成的虚拟3d空间的图像视图的数据,和/或可以由渲染设施102生成的以从虚拟3d空间内的任意视点提供虚拟3d空间中的3d场景的虚拟表示的图像视图的任何其他合适的数据。本文描述了这样的数据的示例。在某些示例中,虚拟现实内容数据110还可以包括与所生成的3d场景的虚拟表示相关联的音频数据,和/或与所生成的3d场景的虚拟表示相关联的任何其他合适的数据。当用于特定实施方式时,存储设施104可以进一步包括可以由渲染设施102使用来从虚拟3d空间内的任意视点形成虚拟3d空间中的3d场景的虚拟表示的图像视图的任何其他数据。

渲染设施102可以包括用于基于2d颜色数据、深度数据和元数据生成、累积和混合局部3d网格以形成虚拟3d空间的图像视图的任何硬件和/或软件(例如,计算系统、软件程序、图形处理硬件等)。在某些示例中,渲染设施102可以包括具有专用视频解码硬件(例如,一个或多个专用视频解码器)和可编程gpu的图形卡。

渲染设施102可以接收由相对于3d场景设置在不同优势点的多个捕获设备捕获的2d颜色数据和深度数据。渲染设施102还可以接收用于2d颜色数据和深度数据的元数据(例如,元数据108)。渲染设施102可以以任何合适的方式并且从任何合适的源接收2d颜色数据、深度数据和元数据。为了说明,图2示出了示例性配置200,其中,渲染设施102从相对于包括对象208的3d场景206,物理上设置在不同优势点(例如优势点204-1至204-n)的多个捕获设备202(例如,捕获设备202-1至202-n)接收数据。

可以以可用于特定实施方式的任何方式,相对于3d场景206,将多个捕获设备202设置(即,定位、安装等)在固定位置。例如,捕获设备202可以位于围绕现实世界事件或现实世界事件的一个或多个部分(例如,围绕或部分围绕体育事件的比赛场地,例如篮球比赛的篮球场)的固定位置。

在图2所示的示例中,优势点204中的每一个提供3d场景206以及3d场景206中的对象208的不同的有限视图。例如,捕获设备202-2的优势点204-2可以从对象208的上方提供的视图。从优势点204-2,捕获设备202-2可能无法捕获对象208的底面的2d颜色数据和深度数据。但是,捕获设备202-1可以位于对象208的下方,并且能够从优势点204-1捕获对象208的底面的2d颜色数据和深度数据。因此,捕获设备202可以被配置为组合地捕获对象208的所有表面的2d颜色数据和深度数据。捕获设备202可以以诸如本文所述的任何合适的方式通信地耦合到彼此并且耦合到渲染设施102。

如图2所示,渲染设施102可以接收2d颜色数据210、深度数据212和元数据214。渲染设施102可以使用任何适当的数据通信信道和/或技术,直接或间接地从捕获设备202接收2d颜色数据210、深度数据212和元数据214。在某些示例中,渲染设施102可以通过一个或多个合适的数据通信网络,从捕获设备202接收2d颜色数据210、深度数据212和元数据214。例如,渲染设施102可以通过诸如能够携带流媒体视频和/或其他数据的cdn(例如,由amazonwebservices(亚马逊web服务)运营的cdn)的内容分发网络(“cdn”)来接收2d颜色数据210、深度数据212和元数据214中的至少一些。本文描述了渲染设施102可以通过其接收2d颜色数据210、深度数据212和元数据214的示例性数据通信网络。

可以使用任何适当的数据格式和/或数据通信协议、格式和技术来表示由渲染设施102接收的2d颜色数据210、深度数据212和元数据214。本文描述了这类数据格式和通信流的示例。

基于针对3d场景的所接收的数据(例如,用于3d场景的元数据和深度数据),渲染设施102可以针对与3d场景相关联的每个相应捕获设备有关的每个优势点,生成投影到虚拟3d空间中的局部3d网格以产生虚拟3d空间中的3d场景的局部表示。参考图2,例如,基于所接收的元数据214和所接收的深度数据212,渲染设施102可以对分别与每个捕获设备202相关联的每个优势点204,生成投影到虚拟3d空间中的局部3d网格以在虚拟3d空间产生3d场景206(以及对象208)的局部表示。

如本文所使用的,“虚拟3d空间”可以表示虚拟3d世界的3d空间,并且可以基于一组虚拟3d世界坐标来表示。虚拟3d空间可以被定义为可以容纳投影到3d空间中的局部3d网格以产生3d空间中所捕获的3d场景的局部虚拟表示的任何合适的3d空间。在某些示例中,渲染设施102可以至少部分地基于元数据,诸如关于深度映射范围、视场和每个捕获设备的每个优势点的变换矩阵的信息,来定义虚拟3d空间。

投影到虚拟3d空间中的局部3d网格可以包括由投影到虚拟3d空间内的3d坐标的一组顶点互相连接和/或形成的几何图元(例如,三角形、点、线、多边形、复杂的几何形状等)的网格。这样,基于用于3d场景的深度数据投影到虚拟3d空间中的局部3d网格可以产生3d场景(例如3d场景206)的局部虚拟表示,并且由此产生3d场景内的一个或多个对象(例如3d场景206中的对象208)的局部虚拟表示。3d场景的局部虚拟表示可以被称为3d场景的局部虚拟重构,并且可以虚拟地表示3d场景中的一个或多个对象的表面。如本文所使用的,“局部3d网格”是局部3d网格,而不是整个3d场景的单个内聚3d网格,因为局部3d网格仅表示3d场景的局部视图,即来自与单个相应捕获设备关联的单个优势点的视图。如本文所述,渲染设施102可以生成和使用单个局部3d网格或多个局部3d网格来渲染虚拟现实内容,而不必构造或使用3d场景的整个3d模型,诸如3d场景的单个内聚3d网格。本文描述了可以由渲染设施102生成的局部3d网格的示例。

在某些示例中,投影到虚拟3d空间中的局部3d网格可以在虚拟3d空间中产生所捕获的3d场景的局部几何表示,无需来自与该局部3d网格相关联的所捕获的3d场景的2d颜色数据的颜色样本。在其他示例中,投影到虚拟3d空间中的局部3d网格可以通过来自与该局部3d网格相关联的所捕获的3d场景的2d颜色数据的颜色样本,在虚拟3d空间中产生所捕获的3d场景的局部几何表示。因此,在某些示例中,生成投影到虚拟3d空间中的局部3d网格可以进一步基于所接收的2d颜色数据210,以将来自2d颜色数据210的颜色样本与投影到虚拟3d空间中的局部3d网格的顶点和/或图元相关联,作为生成局部3d网格的一部分。在其他示例中,渲染设施102可以执行与生成局部3d网格分开的一个或多个操作(在生成局部3d网格之后),以将来自2d颜色数据210的颜色样本与投影到虚拟3d空间中的局部3d网格的顶点和/或图元相关联。

渲染设施102可以以任何合适的方式生成用于3d场景的每个优势点的局部3d网格。例如,渲染设施102可以基于渲染设施102接收的深度数据,在存储器中实例化,并且沿着透视线将2d输入网格投影到虚拟3d空间内。2d输入网格可以包括在2d平面中以正则化坐标的栅格排列的一组顶点,以形成将顶点互连的一组几何图元。例如,2d输入网格可以包括通过将顶点与边互连并且覆盖任意预定范围(例如,可以简化一个或多个计算的有符号归一化范围[-1,1])的顶点和几何图元(例如,三角形、点、线、多边形、复杂的几何形状等)的2d栅格。本文描述了示例性2d输入网格。

渲染设施102可以基于渲染设施102接收并且与优势点相关联的深度数据,沿着透视线将2d输入网格从优势点投影到虚拟3d空间内的深度。例如,渲染设施102可以将2d输入网格的顶点投影到虚拟3d空间内的深度以确定虚拟3d空间内的顶点的3d坐标。2d输入网格的顶点到3d坐标的投影可以确定2d输入网格的图元的形状、方向、深度等,并且可以将2d输入网格转换为投影到虚拟3d空间中的局部3d网格,以使虚拟3d网格的图元位于虚拟3d空间内,来虚拟地表示包括在所捕获的3d场景中的一个或多个对象的表面。在某些示例中,虚拟3d空间内的2d输入网格的顶点的投影包括将2d捕获的图像(例如,渲染设施102接收的2d颜色数据和/或深度数据)转换(例如,使用包括在渲染设施102接收的元数据中的转换矩阵)为与该虚拟3d空间相关联的3d世界坐标系。

现在将参考图3-10,描述生成局部3d网格的渲染设施102的示例。图3示出了布置在不同的相应优势点204-1至204-3上的捕获设备202-1至202-3,捕获设备202-1至202-3可以从中捕获与3d场景206内的对象208的某些表面302(例如表面302-1和302-2)相关联的深度数据和2d颜色数据。为了简化说明,在图3中示出了三个捕获设备202,以及图3是关于具有相对于对象208的三个相应优势点204-1至204-3的三个捕获设备202-1至202-3的3d场景206内的对象208的截面图。因此,在图3中,以二维(例如,在由x-y-z坐标系表示的3d场景206的x-z平面内)示出了立方体208、捕获设备202和优势点204之间的关系。然而,应理解到,可以相对于对象208和/或3d场景206提供任意多个捕获设备202,如可以适应特定实施方式那样,并且关于2d截面图描述的原理适用于对象208和具有各种优势点204的捕获设备202之间的3d关系。

渲染设施102可以接收由捕获设备202-1至202-3捕获的2d颜色数据和深度数据,以及用于2d颜色数据和深度数据的元数据,并且使用所接收的数据来对每个捕获设备202-1至202-3的每个优势点204-1至204-3生成局部3d网格。为了生成局部3d网格,渲染设施102可以诸如通过实例化存储器中的每个2d输入网格来为每个优势点204-1至204-3生成2d输入网格。图4示出了可以由渲染设施102生成的示例性2d输入网格402(例如,2d输入网格402-1至402-3)。在图4所示的示例中,2d输入网格402-1与优势点204-1相关联,2d输入网格402-2与优势点204-2相关联,并且2d输入网格404-3与优势点204-3相关联。在示出的示例中,每个2d输入网格是布置在2d平面中的三角形的栅格,每个三角形(例如,三角形404)表示图元(即,具有几何形状的面),并且三角形的每个点表示位于2d平面中的坐标(例如,正则化坐标)处的顶点(例如,顶点406)。在图4所示的示例中,2d输入网格402每个都是矩形的,具有特定的高度(例如,四个顶点或三个图元)和特定的长度(例如,八个顶点或七个图元)。但是,2d输入网格可以具有任何合适的长宽比、大小和/或形状,并且可以使用顶点和图元的任何合适的2d排列,如可以适合于特定实施方式那样。

渲染设施102可以以任何合适的方式在虚拟3d空间内投影2d输入网格。例如,渲染设施102可以基于渲染设施102所接收的深度数据,沿着与各个优势点相关联的透视线将2d输入网格投影到虚拟3d空间内的深度。为了说明,图5-7示出了虚拟3d空间504内的沿着透视线502(例如,透视线502-1至502-3)的2d输入网格402(例如,2d输入网格402-1到402-3)的示例性投影。在图5-7所示的示例中,以截面图(例如,由x-y-z坐标系表示的虚拟3d空间504的x-z平面的视图)示出虚拟3d空间504和2d输入网格402,2d输入网格402的每个圆点代表2d输入网格402的顶点。虽然图5-7将虚拟3d空间504的截面图示为矩形,这仅是示例性的。虚拟3d空间可以具有任何合适的形状。

图5示出了将2d输入网格402-1沿着与优势点204-1相关联的多个透视线502-1投影到虚拟3d空间504内的深度,该深度由与优势点204-1相关联的捕获设备202-1捕获并且由渲染设施102接收的深度数据表示。深度数据可以表示包括在所捕获的3d场景中的一个或多个对象的表面,该表面在捕获设备202-1的视场内并从优势点204-1被检测到。图5示出了对象208的虚线表示506(例如,立方体的截面图)和另一对象的虚线表示508(例如,后墙的截面图)以表示所捕获的3d场景内的对象的表面的位置。对象的表面的位置被表示为所捕获的深度数据的图像,以及渲染设施102可以使用该深度数据来将2d输入网格402-1的顶点投影到与所捕获的3d场景内的对象的表面的检测位置对齐的虚拟3d空间504中的3d坐标。

图6类似地示出了将2d输入网格402-2沿着与优势点204-2相关联的多个透视线502-2投影到虚拟3d空间504内的深度,该深度由与优势点204-2相关联的捕获设备202-2捕获并且由渲染设施102接收的深度数据表示。图7类似地示出了将2d输入网格402-3沿着与优势点204-3相关联的多个透视线502-3投影到虚拟3d空间504内的深度,该深度由与优势点204-3相关联的捕获设备202-3捕获并且由渲染设施102接收的深度数据表示。

在图5-7所示的示例中,投影的2d输入网格402形成虚拟地表示包括在所捕获的3d场景中的对象的表面的至少一部分的局部3d网格510(例如,局部3d网格510-1至510-3)。局部3d网格510包括位于虚拟3d空间504内的3d坐标处的顶点。位于3d坐标处的顶点定义局部3d网格的图元的属性(例如大小、位置、方向等),以使这些顶点和图元虚拟地表示虚拟3d空间504内所捕获的3d场景中的对象的表面的位置。

仅为说明目的,提供图5-7中所示的示例性2d输入网格402和相应的局部3d网格510。应当理解到,在实践中,2d输入网格的截面可以具有比在图5-7所描述的针对每个2d输入网格所示的八个顶点更多的顶点。

如图5-7所示,可以将局部3d网格的顶点投影到与包括在所捕获的3d场景中的不同对象的表面相关联的、虚拟3d空间504内的深度。例如,在图5中,将局部3d网格510-1的八个截面顶点中的五个投影到与所捕获的3d场景中的对象208的表面(表示为对象208的虚线表示506)相关联的深度,而将局部3d网格510-1的其他三个截面的顶点投影到例如与所捕获的3d场景中的背景墙的表面(表示为另一对象的虚线表示508)相关的深度。类似地,在图6和7中,局部3d网格的顶点被投影到与包括在所捕获的3d场景中的对象的表面相关联的、虚拟3d空间504内的深度。

在虚拟3d空间内投影2d输入网格可能会产生局部3d网格,该局部3d网格包括一个或多个图元,这些图元可能不能有用地或可靠地对在虚拟3d空间中生成所捕获的场景或对象的局部虚拟表示。因此,渲染设施102可以执行一个或多个操作来从局部3d网格中识别和移除无用和/或不可靠的图元。这样的图元可以被称为无关图元,并且可以包括可能无法以足够的置信度准确地表示所捕获的3d场景的对象的表面的任何图元,可以以适合特定实施方式来定义该置信度阈值。

作为示例,局部3d网格可以包括一个或多个图元,图元分别跨越投影到一个对象的表面的顶点与投影到另一个对象的表面的顶点之间的距离。这样的对象间图元可能无法准确地表示所捕获的3d场景中的对象表面,因此同样可能不能用来生成对象的局部虚拟表示。例如,图5示出了图元512跨越了从投影到由虚线表示506表示的立方体对象的表面的顶点到投影到由虚线表示508表示的后墙对象的表面的顶点的距离。因此,图元512可能不表示立方体对象208或后墙对象的表面。因此,图元512不能用于生成虚拟3d空间内的对象208或后墙对象的局部虚拟表示。

渲染设施102可以执行一个或多个操作以从局部3d网格中识别并去除无关图元,例如图元512。这样的操作可以包括渲染设施102对每个局部3d网格,将局部3d网格的一个或多个图元识别为无关图元,并且从每个局部3d网格中移除所识别的无关图元。渲染设施102可以以任何合适的方式从局部3d网格识别并移除无关图元,现在将描述其示例。

在某些示例中,渲染设施102可以至少部分地基于具有超过预定深度变化阈值的深度变化的图元,将局部3d网格的图元识别为无关图元。预定深度变化阈值可以以任何合适的方式预先确定,并且根据特定的实施方式可以具有任何合适的值。在某些示例中,预定深度变化阈值可以表示图元可能具有并且仍然被认为表示3d场景中的对象的表面的最大深度变化量。

图8示出了包括在局部3d网格510-2中的某些图元具有超过预定深度变化阈值的深度变化的示例。如图8所示,局部3d网格510-2包括图元802(例如,图元802-1至802-7)。在图元802中,图元802-2和802-6可以分别具有超过预定深度变化阈值的相应的深度变化804(例如,深度变化804-1和804-2)。由于深度变化804,渲染设施102可以确定图元802-2和802-6没有准确地表示所捕获的3d场景中的对象(例如,对象208或后墙对象)的表面。因此,渲染设施102可以将图元802-2和802-6识别为无关图元,并且以任何合适的方式从局部3d网格510-2中去除图元802-2和802-6。图8中以虚线示出了图元802-2和802-6以表示它们已被渲染设施102移除。

附加地或可替代地,渲染设施102可以至少部分地基于该图元超出预定的近平面或预定的远平面的范围,将局部3d网格的图元识别为无关图元。渲染设施102可以诸如基于元数据(例如,包括在元数据中的深度映射范围)、优势点和/或深度数据,以任何适当方式预先定义预定的近平面和预定的远平面。

图9示出了相对于预定的近平面902和预定的远平面904示出局部3d网格510-2的图元802的示例。在图9所示的示例中,渲染设施102可以确定预定的近平面902对应于由虚线表示506表示的最近深度点的深度值或者最近深度点的深度值减去某个预定偏移。当图元的全部或一部分位于预定的近平面902与优势点204-2之间时,渲染设施102可以确定该图元是无关图元。类似地,当图元的全部或一部分位于远平面904上或之外(远离优势点204-2)时,渲染设施102可以确定该图元是无关图元。在图9所示的示例中,图元802-2和802-6的至少一部分位于远平面904之外。另外,图元802-1和802-7完全位于远平面904之外。因此,渲染设施102可以确定图元802-1、802-2、802-6和802-7是无关图元,并且可以以任何合适的方式将它们从局部3d网格510-2中移除。图9中以虚线示出了图元802-1、802-2、802-6、802-7以表示它们已被渲染设施102移除。

附加地或可替代地,渲染设施102可以至少部分地基于图元具有不面向与局部3d网格相关联的各个优势点的表面,而将该图元识别为无关图元。渲染设施102可以以任何合适的方式确定图元是否具有不面向相应的优势点的表面。例如,渲染设施102可以基于图元的表面法线和来自相应的优势点的相应的透视线之间的关系来确定图元没有面向相应的优势点。例如,渲染设施102可以执行cosθ或点积计算来确定图元的表面是否面对相应的优势点。如果cosθ或点积计算的结果是某个值,则渲染设施102可以确定图元的表面背向优势点(例如,在与优势点的透视线正交的方向上)。因此,渲染设施102可以将这样的图元识别为无关图元。

图10示出了为局部3d网格510-2的每个图元802图示了表面法线箭头以示出图元802的表面可以面向的方向的示例。在图10所示的示例中,渲染设施102可以执行任何适当的计算以确定图元802-2和802-6具有不面向优势点204-2的表面。因此,渲染设施102可以将图元802-2和802-6识别为无关图元,并以任何合适的方式将它们从局部3d网格510-2中移除。

在上述示例中,如果对应的透视线与该表面的表面法线之间的角度大于或等于正交角,则渲染设施102可以确定图元的表面背离对应的优势点。在某些其他示例中,渲染设施102可以基于表面在相对于相应优势点的透视线正交的预定范围内,确定图元的表面不面向优势点,如可以适合于特定实施方式那样。因此,渲染设施102可以识别并移除具有相对于优势点的透视线的角度大于预定角度的表面的图元。

渲染设施102可以执行一个或多个操作,例如上述的操作,以生成局部3d网格。在某些示例中,如上所述,所生成的局部3d网格可以包括通过将2d输入网格投影到由优势点的深度数据所定义的深度而产生的所有图元,如上所述。在其他示例中,所生成的局部3d网格可以包括少于通过将2d输入网格投影到优势点的深度数据所定义的深度所产生的所有图元,因为一个或多个图元可以被识别为无关图元并从局部3d网格中被移除,保留图元的子集作为所生成的局部3d网格。例如,某些图元802已经从图9中所示的局部3d网格510-2移除,使得仅保留图标802-3至802-5。可以对与各个优势点相对应的任意多个局部3d网格执行这类操作。因此,渲染设施102可以对可用优势点的全部或子集生成投影到虚拟3d空间中的局部3d网格,以产生所捕获的3d场景中的一个或多个对象(例如3d场景206中的对象208)的局部虚拟表示,其可以由渲染设施102使用来从虚拟3d空间内的任意视点生成虚拟3d空间中的局部虚拟表示的图像视图。

渲染设施102可以单独地生成并使用每个局部3d网格,以及每个局部3d网格仅可以代表3d场景的局部虚拟表示形式。例如,如图9中所示,包括图元802-3、802-4和802-5的局部3d网格510-2仅局部地表示3d场景206中的对象208的表面。从这个意义上说,与整个虚拟对象或虚拟3d世界的单个内聚网格相反,局部3d网格510-2可以被视为局部网格。尽管渲染设施102可以单独地生成和使用局部3d网格,但是由于局部3d网格被投影到公共虚拟3d空间中,所以总体上,局部3d网格可以表示所捕获的3d场景中的对象的所有表面或所有相关表面。

图11示出了投影到虚拟3d空间504中的多个局部3d网格1102(例如,局部3d网格1102-1至1102-3)的截面图。在图11所示的示例中,每个局部3d网格1102的顶点由与其他局部3d网格1102的顶点不同的形状指示符表示。例如,局部3d网格1102-1的顶点由三角形指示符表示,局部3d网格1102-2的顶点由圆形指示符表示,以及局部3d网格1102-3的顶点由正方形指示符表示。顶点在图11中由不同的形状表示以便区分局部3d网格1102并且示例每个局部3d网格1102是单个的、单独的局部3d网格。

另外,为了清楚起见,图11中将局部3d网格1102示为彼此相邻而不是彼此重叠。应当理解到,在实践中,局部3d网格1102可以基于在表示所捕获的3d场景206中的对象208的表面的位置的深度数据的基础上,投影到虚拟3d空间504内相同深度的一个或多个顶点来彼此重叠并且具有对象208的虚线表示506。例如,虽然局部3d网格1102-1和1102-3在图11中被示为稍微位于局部3d网格1102-2和对象208的虚线表示506的前方,但这是为了图示清楚。在实践中,局部3d网格1102-1和1102-3将与局部3d网格1102-2和对象208的虚线表示506更接近地对齐。

图11示出了各个局部3d网格可以被投影到公共虚拟3d空间中,使得各个局部3d网格被叠加并且可以具有共享虚拟3d空间中的公共空间位置的重叠分段。当局部3d网格的分段共享虚拟3d空间中的公共空间位置时,这些分段可以被视为重叠。例如,局部3d网格1102-2的图元1104和局部3d网格1102-1的分段1106与表示虚拟3d空间504中的对象208的表面的公共空间位置对齐时可能重叠。

图11示出了投影到虚拟3d空间中的三个局部3d网格1102-1至1102-3。局部3d网格1102-1至1102-3可以是渲染设施102基于图2中所示的配置200中的捕获设备202-1至202-3的优势点204-1至204-3,以上文所述的任何方式,由渲染设施102生成的局部3d网格。然而,用于具有相对于3d场景的优势点的捕获设备的任何合适配置的任何合适数量的局部3d网格可以被投影到公共虚拟3d空间中以在虚拟3d空间中产生3d场景的局部虚拟表示。例如,对于相对于3d场景中的对象208具有附加优势点的附加捕获设备的配置,渲染设施102对附加的优势点,可以生成投影到虚拟3d空间504中的附加局部3d网格,以虚拟地表示虚拟3d空间504中的对象208的附加表面。为了说明,图12示出了投影到虚拟3d空间504中的多个局部3d网格1202(例如,局部3d网格1202-1至1202-6)的截面图。图12类似于图11,除了图12示出了与投影到虚拟3d空间504中的六个优势点相关联的六个局部3d网格1202外。

在某些示例中,渲染设施102可以对相对于所捕获的3d空间的所有可用优势点,生成投影到公共虚拟3d空间中的局部3d网格。在其他示例中,渲染设施102可以仅对相对于所捕获的3d空间的所有可用优势点的子集,生成投影到公共虚拟3d空间中的局部3d网格。渲染设施102可以仅对可用优势点的子集生成局部3d网格,因为渲染设施102接收了仅用于可用优势点的子集的数据,或者因为渲染设施102可以选择和处理最优选优势点(例如对虚拟3d空间中的任意视点提供最可靠数据的优势点)的子集的数据。

渲染设施102可以使用投影到虚拟3d空间中的所生成的局部3d网格来从虚拟3d空间内的任意视点生成虚拟3d空间的图像视图。因为如上所述,投影到虚拟3d空间中的局部3d网格会生成所捕获的3d场景的局部虚拟表示(即3d场景中的一个或多个对象的局部虚拟重构),因此图像视图可以表示从虚拟3d空间内的任意视点的3d场景的局部虚拟表示的透视图。可以以任何合适的方式来表示所生成的图像视图,包括作为从虚拟3d空间504中的3d坐标映射(例如光栅化)到图像平面中的一组2d图像坐标的数据(例如,代表片段的数据),使得数据可以被用来生成和输出表示图像视图的显示屏数据(例如,像素数据),以在2d显示屏上显示。

渲染设施102可以通过累积投影到虚拟3d空间中的局部3d网格并且混合用于局部3d网格的颜色样本以形成虚拟3d空间的图像视图,从虚拟3d空间内的任意视点生成虚拟3d空间的图像视图。在某些示例中,渲染设施102可以在gpu的帧缓冲器中累积局部3d网格,并且在gpu的帧缓冲器中加性地混合用于局部3d网格的颜色样本。在某些示例中,混合用于局部3d网格的颜色样本可以包括:渲染设施102确定用于局部3d网格的图元的混合权重,基于对该局部3d网格的图元确定的混合权重来加权用于局部3d网格的颜色样本,并且对包括在局部3d网格的重叠分段中的叠加图元,确定加权颜色样本的加权平均值。在某些示例中,渲染设施102可以确定累积区域并且仅累积和混合位于累积区域内的图元或片段。现在将描述用于基于投影到虚拟3d空间中的局部3d网格,从虚拟3d空间内的任意视点生成虚拟3d空间的图像视图的这种操作的示例。

图13示出了投影到虚拟3d空间504中并且可以由渲染设施102使用以从虚拟3d空间504中的任意视点1304生成虚拟3d空间504的图像视图1302的局部3d网格1202的截面图(例如,虚拟3d空间504的x-z平面的视图)。在图13中,图像视图1302被表示为虚拟3d空间504中并且可以从任意视点1304在其上投影虚拟3d空间504的透视图的2d图像平面的截面图。

为了生成图像视图1302,渲染设施102可以将表示在虚拟3d空间504中投影的局部3d网格1202的数据累积到帧缓冲器中,在其中写入表示图像视图1302的数据。帧缓冲器可以是能够存储来自累积的局部3d网格的数据样本的任何缓冲器,诸如gpu的缓冲器。在某些示例中,帧缓冲器可以是高精度帧缓冲器,诸如被配置为存储16位浮点型数据或适合于高动态范围视频或图像格式的任何其他数据类型的帧缓冲器。在其他示例中,帧缓冲器可以被配置为存储可以用于任何合适的图像和/或视频格式的任何其他数据类型。

渲染设施102可以以任何合适的方式,将局部3d网格1202累积到帧缓冲器中,包括通过采样局部3d网格的数据以选择要写入帧缓冲器的数据,将选择的数据写入帧缓冲器,而未选择的数据不写入帧缓冲器。为此,渲染设施102可以执行一个或多个操作以选择要向帧缓冲器写入或不写入哪些数据,诸如用于确定虚拟3d空间504内的遮挡、确定局部3d网格1202表示的表面所面向的方向、深度测试等的操作。使用这样的操作,渲染设施102可以确定来自局部3d网格1202的哪些数据虚拟地代表了从任意视点1304可见的对象的表面,并且可以选择该数据并将其写入帧缓冲器。

为了说明,从图13中的任意观点1304,虚拟地表示虚拟3d空间中的对象208的右前表面的局部3d网格1202的图元是可见的,由此被包括在图像视图1302中。如所示,这类图元包括局部3d网格1202-2的一个图元(标记为图元1306)、局部3d网格1202-3的所有图元(未标记有单独的参考数字)和局部3d网格1202-4的一个图元(标记为图元1308)。在该示例中,渲染设施102可以执行操作以将这些图元标识为从任意视点1304可见,并且将表示这些图元的数据写入帧缓冲器。渲染设施102还可以执行操作以将其他图元标识为从任意视点1304不可见并且不将表示这些其他图元的数据写入帧缓冲器,这可能包括绝不将表示不可见图元的数据写入帧缓冲器和/或用表示被标识为从任意视点1304可见的数据覆盖已经写入帧缓冲器的表示不可见图元的数据,取决于渲染设施102从局部3d网格1202采样(例如,深度测试)数据的顺序。

在某些示例中,渲染设施102可以以任意顺序从投影到虚拟3d空间504中的所有局部3d网格1202中采样数据,并且将表示所选图元的数据写入帧缓冲器,使得在采样所有局部3d网格1202之后,帧缓冲器包括仅用于从任意视点1304可见的局部3d网格的图元的数据。在其他示例中,渲染设施102可以基于任何合适的定义的标准和操作来选择在虚拟3d空间504中投影的、与任意视点1304最相关的局部3d网格1202的子集,并且仅对所选择的局部3d网格1202采样数据。

因为渲染设施102可以累积具有与虚拟3d空间504中的公共3d坐标相关联的重叠分段的局部3d网格1202,所以渲染设施102可以对于将映射到如在帧缓冲器中所表示的图像视图1302的公共2d坐标的虚拟3d空间504中的公共3d坐标,从多个局部3d网格1202中选择多个图元或样本。对于局部3d网格1202的这种重叠分段,渲染设施102可以执行一个或多个操作以在帧缓冲器中累积和混合局部3d网格1202的重叠分段的颜色样本。在某些示例中,渲染设施102使用加性地混合来混合颜色样本,使得对于局部3d网格1202的处理的任何顺序,当采样并选择要写入的样本时,可以将局部3d网格1202的样本写入帧缓冲器。

现在将描述渲染设施102对图像视图1302的单个2d坐标点累积和混合来自局部3d网格的样本的示例。图13示出了从任意视点1304投射到虚拟3d空间504中的示例性透视线1310。如所示,透视线1310在虚拟3d空间504中的3d坐标点1312处与图像视图1302相交,在虚拟3d空间504中的3d坐标点1314处与局部3d网格1202-3相交,在虚拟3d空间504中的3d坐标点1316处与局部3d网格1202-2相交,以及地3d坐标点1318处与局部3d网格1202-6相交。尽管因为如上所述,为了清楚起见,局部3d网格1202-2和1202-3没有彼此对齐,因此在图13中的不同位置处示出了3d坐标点1314和1316,但是3d坐标点1314和1316被认为是相同的3d坐标点或在彼此的预定阈值距离之内,从而被视为相同的3d坐标点。图像视图1302的图像平面上的3d坐标点1312对应于用于表示图像视图1302并且当在帧缓冲器中累积来自局部3d网格1202的数据时,3d坐标点1314、1316和1318由渲染设备1302所映射到的一组2d坐标内的图像视图1302的2d坐标点。

作为示例,渲染设施102可以采样局部3d网格1202-3的3d坐标点1314,选择要写入帧缓冲器的3d坐标点1314,并且将用于3d坐标点1314的数据映射写入对应于图像视图1302的图像平面上的3d坐标点1312的图像视图1302的2d坐标点。渲染设施102还可以采样局部3d网格1202-6的3d坐标点1318,而不选择要写入帧缓冲器的3d坐标点1318,因为3d坐标点1318被已经映射并写入帧缓冲器中的图像视图1302的2d坐标点的该3d坐标点的1314遮挡(可以通过深度测试或任何其他合适的方式确定遮挡),并且不将3d坐标点1318的数据写入图像视图1302的2d坐标点。渲染设施102还可以采样局部3d网格1202-2的3d坐标点1316并且选择要写入帧缓冲器的3d坐标点1316,因为3d坐标点1316未被3d坐标点1314遮挡,因为它们代表了公共3d点。由于3d坐标点1316与3d坐标点1314相同,如上所述,因此,渲染设施102可以以混合用于3d坐标点1314和1316的数据的方式,将用于3d坐标点1316的数据映射和写入到图像视图1302的2d坐标点,使得帧缓冲器将包括用于2d坐标点的数据,该数据表示3d坐标点1314和1316的数据的混合。例如,渲染设施102可以在帧缓冲器中混合用于3d坐标点1314和1316的颜色样本。

在某些示例中,当渲染设施102处理样本时,渲染设施102可以通过在帧缓冲器中的局部3d网格的重叠分段上加性地混合公共3d坐标点的颜色样本来混合局部3d网格的颜色样本。继续图13所示的示例,渲染设施102可以对3d坐标点1314和1316映射到图像视图1302中的2d坐标点,在帧缓冲器中加性地混合公共3d坐标点1314和1316的颜色样本。为了说明,渲染设施102可以采样局部3d网格1202-3的3d坐标点1314,选择要写入帧缓冲器的3d坐标点1314,并且将3d坐标点1314的数据映射并写入到用于图像视图1302的2d坐标点。这可以包括将与3d坐标点1314相关联的颜色样本数据写入帧缓冲器。例如,rgb颜色模型值中用于3d坐标点的颜色样本数据可以是(255,0,0),并且渲染设施102可以将该值写入用于图像视图1302的2d坐标点的帧缓冲器(例如,作为片段数据的一部分)。如上所述,渲染设施102还可以采样局部3d网格1202-2的3d坐标点1316,并且选择要写入帧缓冲器的3d坐标点1316。因为3d坐标点1316与3d坐标点1314相同,所以将用于3d坐标点1316的数据写入到用于图像视图1302的2d坐标点可以包括:以混合3d坐标点1314和1316的颜色样本数据的方式,将与3d坐标点1316相关联的颜色样本数据写到帧缓冲器中,使得帧缓冲器将包括2d坐标点的颜色样本数据,该数据表示3d坐标点1314和1316的颜色样本的混合。例如,rgb颜色模型值中用于3d坐标点的颜色样本数据可以是(205,0,0),并且渲染设施102可以将该值加性地混合到已经存储在用于图像视图1302的2d坐标点的帧缓冲器中的3d坐标点1314的rgb值上。在某些示例中,加性地混合可以包括确定3d坐标点1314和1316的rgb颜色值的平均值,并且将所确定的平均值(例如,rgb值(225,0,0))写入用于图像视图1302的2d坐标点的帧缓冲器。

在某些示例中,渲染设施102可以使用加权混合来混合用于局部3d网格的颜色样本。例如,混合用于局部3d网格的颜色样本可以包括渲染设施102确定用于局部3d网格的图元的混合权重,基于对局部3d网格的图元所确定混合权重来加权用于局部3d网格的颜色样本,并且确定包括在局部3d网格的重叠分段中的叠加图元的加权颜色样本的加权平均值。

渲染设施102可以以任何合适的方式确定局部3d网格的图元的混合权重。在某些示例中,渲染设施102可以基于图元的表面相对于从其捕获与图元相关联的数据的优势点的方向,诸如图元表面的表面法线与从优势点投射并与图元相交的透视线之间的关系(例如,角度),来确定图元的混合权重。这样的关系可以基于图元的表面相对于从其捕获表面数据的优势点的角度,表示图元的表面数据的置信度或质量。例如,与图元的表面法线与从捕获优势点投射的透视线之间的较大角度相比,图元的表面法线与从捕获优势点投射的透视线之间的较小角度可能表示该图元的表面数据的更高的置信度。与表示图元的表面不太直接面向捕获优势点的较大角度相比,较小的角度表示图元的表面更直接面向捕获优势点。因此,基于图元表面和捕获优势点之间的角度关系,渲染设施102可以对具有更直接面向捕获优势点的表面的第一图元确定较高的混合权重,以及对具有不太直接面向捕获优势点的表面的第二图元确定较低的混合权重,以便对与第一图元相关联的表面数据赋予比与第二图元相关联的表面数据更高的权重。以这种或类似的方式,渲染设施102可以基于对图元的表面数据中的置信度来控制图元如何影响混合操作,诸如通过减少成角表面对混合操作的影响。

继续图13所示的示例,例如,3d坐标点1314可以在局部3d网格1202-3的图元上,相对于从其捕获与局部3d网格1202-2相关联的表面数据的优势点(例如优势点204-2),该图元的表面比3d坐标点1316所处的局部3d网格1202-2的图元的表面更直接面向优势点(例如优势点204-3)。因此,渲染设施102可以对与局部3d网格1202-3上的3d坐标点1314相关联的图元确定相对较高的混合权重,以及对与局部3d网格1202-2上的3d坐标点1316相关联的图元确定相对较低的混合权重,当混合用于3d坐标点1314和1316的颜色样本时,混合加权可以由渲染设施102使用来增加与3d坐标点1314相关联的图元的影响,并且减小与3d坐标点1316相关联的图元的影响。

渲染设施102可以使用对局部3d网格的图元所确定的混合权重来加权局部3d网格的表面数据(例如,颜色样本)并且确定包括在局部3d网格的重叠分段中的叠加图元的表面数据的加权平均值。例如,渲染设施102可以使用局部3d网格1202-3和1202-2的图元的混合权重来加权3d坐标点1314和1316的颜色样本,并且确定加权颜色样本的加权平均值。例如,渲染设施102可以将用于3d坐标点1314的颜色样本乘以对包括3d坐标点1314的局部3d网格1202-3的图元所确定的第一混合权重,将用于3d坐标点1316的颜色样本乘以对包括3d坐标点1316的局部3d网格1202-2的图元所确定的第二混合权重,将两个乘法的乘积相加,然后将乘积之和除以混合权重的总和来确定包括在局部3d网格1202-3和1202-2的重叠分段中的叠加图元的3d坐标点1314和1316的颜色样本的加权平均值。渲染设施102可以将所确定的颜色样本的加权平均值写入图像视图1302的相应2d坐标点的帧缓冲器。

以这种或类似方式加权颜色样本可以对与更直接捕获的表面相关联的颜色样本赋予相对较大的权重,而对不太直接捕获的表面相关联的颜色样本赋予相对较小的权重。例如,如果对于具有rgb值(255,0,0)的3d坐标点1314的颜色样本确定权重为0.7以及对于具有rgb值(205,0,0)的3d坐标点1316的颜色样本确定权重为0.3,则渲染设施102可以对混合颜色样本确定加权平均颜色样本rgb值(240,0,0),可以将该加权平均颜色样本值写入用于相应的2d坐标点的帧缓冲器中,作为在帧缓冲器中混合颜色样本的结果。

如本文所使用的,将数据写入帧缓冲器可以包括将数据写入任何合适的帧缓冲器或存储用于虚拟3d空间的2d图像视图的数据的帧缓冲器的配置。写入帧缓冲器的数据可以包括有助于显示数据和/或确定可以输出到显示设备并且用于在2d显示屏或一组多个2d显示屏上显示2d图像视图的显示数据(例如像素数据)的任何数据。

图14示出了帧缓冲器的示例性配置1400,其包括累积缓冲器1402和输出缓冲器1404。在某些示例中,渲染设施102可以使用累积缓冲器1402来累积用于局部3d网格的加权数据。为此,累积缓冲器1402可以包括用于加权片段的一组数据,其中,rgb颜色模型值被乘以混合权重“w”。累积缓冲器1402还可以包括代表混合权重“w”的数据,该混合权重可以由本文所述的渲染设施102确定。如本文所述,渲染设施102可以在累积缓冲器中累积局部3d网格,包括通过相加用于图像视图的公共2d坐标点的所有加权片段。一旦所有样本已经被累积在累积缓冲器1402中,渲染设施102就可以将加权片段的总和除以累积缓冲器1402中的混合权重的总和来确定公共2d坐标点的片段的加权平均值。渲染设施102可以将所确定的片段的加权平均值输出(例如,写入)到输出缓冲器1404(例如,以所示的rgba颜色模型格式或任何其他合适的格式),其可以被用于在显示屏上提供2d图像视图的显示以供与显示屏相关联的用户查看。

在图14中,示出了累积缓冲器1402包括用于被映射到图像视图1302上的2d坐标点的、虚拟3d空间504中的单个3d坐标点的一组数据。将理解到,累积缓冲器1402可以包括用于被映射到图像视图1302上的相同2d坐标点的、虚拟3d空间504中的一个或多个其他3d坐标点的附加数据集,以允许加权累积和混合被映射到图像视图1302上的相同2d坐标点的、虚拟3d空间504中的所有3d坐标点的数据集。

在图14中,累积缓冲器1402和输出缓冲器1404均被示出为包括用于图像视图(例如,图像视图1302)的单个2d坐标点的一组数据。将理解,累积缓冲器1402和输出缓冲器1404可以分别包括用于表示2d图像视图的2d坐标点的2d阵列中的每个2d坐标点的所示数据集(以及在某些实施方式中,未在图14中示出的附加数据)。在某些示例中,累积缓冲器1402可以是比显示精度和/或输出缓冲器1404更高精度的缓冲器,以允许对累积缓冲器1402中的数据进行准确的累积计算。例如,累积缓冲器1402可以以16位浮点、16位归一化或其他高动态范围视频或图像数据类型格式存储数据,而输出缓冲器1404可以以8位低动态范围视频或图像数据类型格式存储数据。累积缓冲器1402可以用作中间缓冲器,其中可以累积用于多个局部3d网格的数据,然后将其输出到输出缓冲器1404,如本文所述。

在某些示例中,渲染设施102可以确定累积区域并且仅累积和/或混合位于该累积区域内的图元或片段。渲染设施102可以在任何合适的时间(例如,作为深度预阶段(pre-pass)的一部分)并且以任何合适的方式(诸如基于元数据(例如,包括在元数据中的深度映射范围)、虚拟3d空间中的任意视点和/或投影到虚拟3d空间中的局部3d网格的深度数据)确定累积区域。例如,渲染设施102可以基于投影到虚拟3d空间504中的局部3d网格1202的深度数据来确定累积区域从虚拟3d空间504内的任意视点沿着透视在投影的局部3d网格1202的最近深度点的深度值开始。渲染设施102可以将预定的深度偏移值添加到所投影的局部3d网格1202的最近深度点的所确定的深度值上来确定累积范围的远端。累积区域可以从所确定的最近深度点的深度值沿着透视并且远离任意视点的方向延伸到远深度点的深度值,该远深度点的深度值等于该最近深度点和预定深度偏移值的和。如果将最近深度点表示为z0并且将预定深度偏移量表示为dz,则最远深度点可以表示为z1,其中,z1=z0+dz,并且累积范围为[z0,z1],其中从任意视点沿透视定向角深度z。

累积区域可以具有可以适合于特定实施方式的任何大小(即,虚拟3d空间内的深度范围)。累积区域的大小可以由预定深度偏移的值确定,该预定深度偏移的值可以按照适合于特定实施方式被预先定义。例如,可以定义深度偏移以对3d场景和/或虚拟3d空间提供所需的精度。

深度偏移量可以由渲染设施102使用,以从虚拟3d空间504中的任意视点沿透视向后倒推投影的局部3d网格的每个最近样本的深度值。为了说明,图15示出了关于虚拟3d空间504内的任意视点1502的对象208的虚线表示506的示例性截面图。在图15中,对象208的虚线表示506的前边缘是投影到任意视点1502的局部3d网格的最近深度样本,并且被表示为实线1504-1和1504-2。最近样本沿着透视图被向后推达深度偏移,该深度偏移表示为箭头1506。通过使最近样本向后推深度偏移,渲染设施102可以从任意视点1502确定沿每个透视的累积区域。累积区域1508的示例在图15中示出。在图15中,对象208的虚线表示1510表示在渲染设施102执行深度偏移之后的虚拟3d空间504中的对象。对象208的虚线表示1510的前边缘是深度偏移之后投影到任意视点1502的局部3d网格的最近深度样本,并且被表示为实线1512-1和1512-2。因为渲染设施102从任意视点1502沿着透视向后推最近样本,所以深度偏移对于用户可以是透明的。

如图15所示,累积区域1508可以从任意视点1502沿着透视,横跨从最近深度样本值到深度偏移值的距离。沿着与每个累积区域1508相关联的任意视点1502的透视,渲染设施102可以仅累积和混合位于各个累积区域1508内的图元或片段(例如,用于图元或片段的颜色样本)。因此,渲染设施102可以忽略每个累积区域1508之外(例如,超出)的样本,这可以节省计算资源和/或允许快速处理数据。可以将每个累积区域(例如,每个累积区域1508)视为虚拟3d空间中相对于任意视点的累积区域,或者可以将虚拟3d空间中的累积区域(例如,累积区域1508)的组合视为相对于任意视点的虚拟3d空间的累积区域。

可以在虚拟3d空间内叠加和重叠投影的局部3d网格(例如,如图11和12所示)。因此,从任意观点沿着透视,局部3d网格可以具有不同的深度值。深度值的这种差异可能是由于编码误差、捕获误差和/或与渲染设施102接收的深度数据相关联的任何其他误差而发生。渲染设施102可以通过使用与最前面的样本的深度偏移来校正和/或补偿深度值的这种差异,以确定累积区域并且在所确定的累积区域内累积样本,这允许与累积区域内的不同深度值相关联的样本被采样并且一起混合以促成来自任意视点的图像视图。

在某些示例中,系统100可以被合并在媒体播放器设备中,该媒体播放器设备可以接收用于捕获的3d场景的2d颜色数据、深度数据和元数据,并且使用所接收的数据来渲染虚拟现实内容,如本文所述,以呈现给媒体播放器设备的用户,使得媒体播放器设备的用户可以从3d场景的虚拟重构内的动态选择的视点体验3d场景的虚拟重建。图16示出了系统100的示例性实施方式1600,其中,系统100被并入通信地耦合到虚拟现实媒体提供者系统1604的媒体播放器设备1602中。媒体播放器设备1602可以以任何合适的方式通信地耦合到虚拟现实媒体提供者系统1604。在图16所示的示例中,媒体播放器设备1602通过网络1606可通信地耦合到虚拟现实媒体提供者系统1604。然而,媒体播放器设备1602可以附加地或可替代地直接通信地耦合到虚拟现实媒体提供者系统1604。

网络1606可以包括任何特定于提供者的有线或无线网络(例如,电缆或卫星运营商网络或移动电话网络)、互联网、广域网或任何其他合适的网络。数据可以使用可以用于特定实施方式的任何通信技术、设备、媒介和协议,在媒体播放器设备1602和虚拟现实媒体提供者系统1604之间流动。例如,媒体播放器设备1602和虚拟现实媒体提供者系统1604可以使用支持数据通信的任何合适的通信技术、设备、媒介和/或协议进行通信,包括但不限于套接字连接、以太网、数据总线技术、数据传输介质、通信设备、媒体流式传输技术(例如,视频流式传输技术)、运动图像专家组(“mpeg”)协议、传输控制协议(“tcp”)、网际协议(“ip”)、文件传输协议(“ftp”)、telnet、超文本传输协议(“http”)、https、会话发起协议(“sip”)、简单对象访问协议(“soap”)、可扩展标记语言(“xml”)及其变体、实时传输协议(“rtp”)、用户数据报协议(“udp”)、全球移动通信系统(“gsm”)技术、码分多址(“cdma”)技术、演进数据优化协议(“evdo”)、4g长期演进(“lte”)、wimax、时分多址(“tdma”)技术、射频(“rf”)信令技术、无线通信技术(例如,蓝牙、wi-fi等)、带内和带外信令技术以及其他合适的通信技术。尽管在图2中仅示出了一个网络1606来互连虚拟现实媒体提供者系统1604和媒体播放器设备1602,但是,将认识到,这些设备和系统可以通过用于特定实施方式的多个和/或不同的互连网络来相互通信。

虚拟现实媒体提供者系统1604可以包括用于处理2d捕获的图像和元数据的任何硬件和/或软件(例如,计算系统、软件程序等)。根据适合特定实施方式,虚拟现实媒体提供者系统1604可以位于单个位置或分布在多个设备(例如,服务器)和/或多个位置之间。

虚拟现实媒体提供者系统1604可以为分发2d捕获的图像和元数据提供数据管道,其中2d捕获的图像和元数据以任何合适的方式(例如,直接或通过网络1606)从捕获设备(例如,捕获设备202)流向虚拟现实媒体提供者系统1604,并且通过网络1606从虚拟现实媒体提供者系统1604流向媒体播放器设备1602。例如,虚拟现实媒体提供者系统1604可以处理所获取的2d捕获的图像和元数据以生成并提供至少一个传输流中的2d捕获的图像和元数据,以通过网络1606流式传输到媒体播放器设备1602。

在某些示例中,虚拟现实媒体提供者系统1604可以以与本申请同日提交的、标题为“methodsandsystemsforusing2dcapturedimageryofascenetoprovidevirtualrealitycontent(使用2d捕获的场景图像提供虚拟现实内容的方法和系统)”的共同待定的美国专利申请no.15/610,575中所述的任何方式,生成2d捕获的图像和元数据并且将其提供给媒体播放器设备,该共同待定的申请通过引用整体合并于此。

在某些示例中,虚拟现实媒体提供者系统1604可以通过任何合适的通信信道将传输流流式传输到媒体播放器设备1602。备选地,虚拟现实媒体提供者系统1604可以将传输流提供给内容分发网络(“cdn”)(例如,第三方cdn),以流式传输到媒体播放器设备1602。在某些示例中,虚拟现实媒体提供者系统1604可以将元数据包括在传输流中(例如,连同2d捕获的图像数据(即表面数据)一起),并且提供用于流式传输的传输流,使得元数据作为传输流的一部分被流式传输到媒体播放器设备1602。在其他示例中,虚拟现实媒体提供者系统1604可以分别提供元数据和传输流以流式传输,使得可以将元数据与传输流分开地进行流式传输。

如本文所使用的,“传输流”可以指代可以封装颜色视频数据流和深度视频数据流的单个传输流,或者指代可以封装颜色视频数据流和深度视频数据流的多个传输流。因此,在某些示例中,传输流可以指的是承载用于捕获场景的视频数据流的单个传输流(例如,用于每个3d捕获设备的一个颜色视频数据流和用于每个3d捕获设备的一个深度视频数据流)以及为在特定实施方式中传输而包括的任何元数据或其他合适的数据。在其他示例中,传输流可以指的是共同承载用于捕获的场景的视频数据流的多个传输流(例如,用于每个3d捕获设备的一个颜色视频数据流和用于每个3d捕获设备的一个深度视频数据流)以及为在特定实施方式中传输而包括的任何元数据或其他合适的数据。

传输流可以包括适合于将视频和/或其他数据从虚拟现实媒体提供者系统1604传输到媒体播放器设备1602的任何类型的传输流(例如,mpeg传输流或其他类型的传输流)。可以根据适合特定实施方式的任何适当的数据格式、容器格式和/或传输协议来配置传输流。

图17示出了传输流1702的示例,其中,颜色视频数据流1704-1、深度视频数据流1706-1和元数据流1708-1被提供为来自捕获设备202-1的流,彩色视频数据流1704-2、深度视频数据流1706-2和元数据流1708-2被提供为来自捕获设备202-2的流,颜色视频数据流1704-n、深度视频数据流1706-n和元数据流1708-n被提供为来自捕获设备202-n的流。

可以以任何合适的方式,将在传输流(例如,传输流1702)中传输或以其他方式提供给媒体播放器设备1602的2d捕获的图像数据提供为单独的颜色数据流和深度数据流。为了说明,图18示出了可以由虚拟现实媒体提供者系统1604从例如捕获设备202-2获取的示例性表面数据1802。如图18所示,表面数据1802可以包括由捕获设备202-2捕获的3d场景206的一系列连续的2d颜色数据捕获1804(例如,颜色数据流的帧)和由捕获设备202-2捕获的场景206的一系列连续的2d深度数据捕获1806(例如,深度数据流的帧)。一系列连续的2d颜色数据捕获1804可以表示在特定的时间序列1808(例如,特定的实时时间段,与3d场景206相关联的特定虚拟时间线等)期间,来自捕获设备202-2的优势点204-2的3d场景206中的对象208的颜色数据。一系列连续的2d深度数据捕获1806可以表示在特定时间序列1808期间,来自捕获设备202-2的优势点204-2的3d场景206中的对象208的深度数据。

图18还示出了包括在一系列连续的2d颜色数据捕获1804中的示例性2d颜色数据捕获1810和包括在一系列的顺序2d深度数据捕获中的示例性2d深度数据捕获1812。2d颜色数据捕获1810可以包括颜色数据,该颜色数据可以表示从优势点204-2可见的3d场景206的视图(包括来自对象208的表面的颜色数据)。尽管在图18中将颜色数据示为图像,但是将理解到,可以以任何合适的形式来捕获、编码、格式化、传输和表示颜色数据。例如,颜色数据可以是根据标准视频编码协议,标准图像格式等格式化的数字数据。颜色数据可以表示如从虚拟优势点204-2看到的、包括在3d场景内的对象的彩色图像(例如,类似于彩色照片)。可替代地,颜色数据可以是代表对象的灰度图像(例如,类似于黑白照片)。

2d深度数据捕获1812可以包括来自与优势点204-2相关联的空间中的点的对象208的表面的深度数据。与颜色数据一样,从优势点204-2的角度看,在2d深度数据捕获412中表示的深度数据可以描绘3d场景206中的对象208。但是,不是代表对象208的可见外观(即,以彩色或灰度表示光与对象208的表面如何相互作用),深度数据可以代表相对于优势点204-2的位置,对象208(例如,以及3d场景206中的其他对象)的表面上的点的深度(即,距离或位置)。与颜色数据一样,可以以任何合适的形式捕获、编码、格式化、传输和表示深度数据。例如,如所示,深度数据可以由灰度图像数据表示(例如,对于在深度数据内表示的每个像素,六位或八位)。然而,代替表示可见光如何从对象208的表面反射(即,如在颜色数据中所示),深度数据的灰度图像可以对图像中的每个像素,表示由该像素点表示的点离优势点204-2的位置有多远。例如,更接近优势点204-2的点可以用代表更深的灰色阴影的值来表示(例如,在六位实施方式的情况下,更接近0b111111的二进制值,其中0b111111表示黑色)。相反,可以用表示较浅的灰色阴影的值来表示离优势点204-2较远的点(例如,在六位实施方式的情况下,更接近0b000000的二进制值,其中,0b000000表示白色)。

虚拟现实内容提供者系统1604提供的元数据可以以任何合适的方式格式化。在某些示例中,元数据可以被格式化为一系列连续的元数据捕获。包括在一系列连续投影元数据捕获中的每个元数据捕获可以包括相对于3d场景,在特定时间点,与特定捕获设备相关联的元数据。另外,每个元数据捕获可以与相应的2d颜色数据捕获和相应的2d深度数据捕获同步,同样地,可以被称为2d颜色数据和深度数据的元数据(例如,用于同步的2d颜色和深度数据捕获或帧的元数据捕获或帧)。

图19示出了可以由虚拟现实内容提供者系统1604提供并且由媒体播放器设备1602接收的元数据的示例性实施方式1902。实施方式1902可以遵循json数据格式、二进制数据格式或任何其他合适的数据格式,如可以适合于特定实施方式那样。图19示出了可用于定义与特定捕获设备(例如,捕获设备202-1)相关联的元数据的示例性数据字段。现在,将提供图19中所示的每个字段的简要描述。

在图19所示的示例中,标记为“流id”的字段可以用与特定捕获设备相关联的用于颜色视频数据流的标识符和用于深度视频数据流的标识符填充。可以使用字符串类型变量或任何其他合适的数据类型来表示标识符。标识符可以以用于任何适当类型的数据流的任何适当的格式。例如,对于mpeg传输流,标识符可以是用于mpeg传输流中的数据包的包标识符(“pid”)。

在图19所示的示例中,标记为“深度映射”的字段可以分别用“近”和“远”深度值填充,该“近”和“远”深度值最初由捕获设施106提供,并且表示可代表的值范围中的最小值(例如,距特定捕获设备)的距离以及可代表的值范围中的最大值(例如,距特定捕获设备)的距离。“近”和“远”深度值可以将数据值映射到现实世界单位,并且可以由浮点值或任何其他合适的数据类型表示,并且可以表示深度映射范围,诸如由位于指定深度值的近平面和远平面深度限定的深度映射范围。在实施例中,这可以包括以诸如的格式的概括“深度解码”,其中,并且捕获系统(例如,一个或多个捕获设备,诸如图4中的捕获设备202)发送矩阵系数a、b、c、d。

在图19所示的示例中,标记为“3×4列-主变换矩阵”的字段可以用将由系统100使用来将包括在颜色视频数据流和深度视频数据流中的数据转换为公共虚拟3d空间中的3d坐标的转换矩阵填充。

在图19所示的示例中,标记为“fov角度正切”的字段可以用表示就视角或角度的正切而言,表示特定捕获设备的诸如基于焦距、中心点等的视场或固有捕获设备参数的信息填充(例如,tanleft、tanright、tantop和tanbottom)。在某些示例中,元数据可以附加地或可替代地包括与捕获设备和/或捕获的表面数据相关联的线性和/或非线性深度差异有关的外在捕获设备参数和/或信息。

图11中所示的实施方式1102是在某些示例中,可以表示元数据并且将其提供给媒体播放器设备210的一种方式的示例。在其他示例中,元数据可以以任何其他格式表示,并且可以包括适合于特定实施方式的任何附加或可替代信息。

返回图16,媒体播放器设备1602可以包括能够如上所述,接收代表(例如传输流中)2d颜色数据和深度数据以及元数据的数据并且处理所接收的数据以生成虚拟现实内容的任何设备或者可以由其实现。媒体播放器设备1602可以生成和使用(诸如本文所述的)局部3d网格以从虚拟3d空间内的选定任意视点渲染和呈现虚拟3d空间的图像视图,该图像视图可以是虚拟3d空间的透视图视场(例如,表示所捕获的3d场景的虚拟现实世界的透视图)。如图16所示,媒体播放器设备1602可以由用户1608操作。媒体播放器设备1602可以检测来自用户1608的用户输入,并且基于该用户输入,当用户1608体验在虚拟3d空间中表示的虚拟现实世界时,动态地更新将渲染和呈现的虚拟3d空间的图像视图。

例如,从虚拟现实世界内的任意视点的视场可以提供图像视图,通过该图像视图,用户1608可以容易且自然地环顾虚拟现实世界。视场可以由媒体播放器设备1602呈现(例如,在媒体播放器设备1602的显示屏上),并且可以包括描绘虚拟现实世界内,环绕用户1608的视点的对象的视频。另外,当用户1608体验虚拟现实世界时,视场可以响应于由用户1608提供的用户输入而动态地改变。例如,媒体播放器设备1602可以检测用户输入(例如,移动或转动在其上呈现视场的显示屏)。作为响应,代替从前一视点看到的对象,视场可以显示不同的对象和/或从不同的视点(例如,对应于显示屏的位置的视点)看到的对象。

为了便于用户1608体验虚拟3d空间的图像视图,媒体播放器设备1602可以包括至少一个显示屏(例如,内置在头戴式虚拟现实设备中的头戴式显示屏或用诸如硬纸板装置之类的装置安装到用户头部的移动设备的显示屏)或与之相关联,在该至少一个显示屏上可以显示虚拟现实世界的图像视图。媒体播放器设备1602还可以包括被配置为接收、维护和/或处理代表虚拟现实世界的2d颜色数据和深度数据以及相应的元数据的软件,以根据本文所述的系统100的任何操作,在媒体播放器设备1602的显示屏上渲染和呈现虚拟现实世界的视图。例如,媒体播放器设备1602可以包括被配置为处理和呈现代表显示器上的虚拟现实世界的数据专用的独立软件应用(例如,移动应用)。在其他示例中,用来呈现虚拟现实世界的特定视图的软件可以包括非专用软件,诸如标准的web浏览器应用。

附加地或可替代地,媒体播放器设备1602可以包括被配置为便于接收、解码、解复用和/或处理2d颜色数据、深度数据和元数据的硬件、固件和/或软件。例如,媒体播放器设备1602可以包括解码/解复用系统1610,其可以执行与从虚拟现实媒体提供者系统1604接收的2d颜色数据、深度数据和元数据相关联的任何合适的解码和/或解复用操作。在某些示例中,解码/解复用系统1610可以包括具有专用视频解码硬件(例如,一个或多个专用视频解码器)的图形卡和可编程gpu。图形卡可以包括能够解码所接收的数据的有限多个解码器。因此,在某些示例中,(例如,通过限制包括在传输流中的流的数量)可以通过虚拟现实媒体提供者系统1604,使由媒体播放器设备1602接收的数据(例如,包括在由媒体播放器设备1602接收的传输流中的数据)适合于媒体播放器设备1602的某些硬件约束。

解码/解复用系统1610可以以任何合适的方式通信地耦合到系统100。因此,在某些示例中,系统100可以从解码/解复用系统1610接收解复用和/或解码的2d捕获的图像数据和投影数据,并且如本文所述,处理所接收的数据以渲染虚拟现实内容。将认识到,尽管在图16中,系统100和1610被示为单独的系统,但是系统100和1610可以被组合成更少的系统,诸如被组合成单个系统,或者可以被划分成更多的系统,以适合特定的实施方式。

媒体播放器设备1602可以采用几个不同形状因子中的一个。例如,媒体播放器设备1602可以包括具有头戴式显示屏的头戴式虚拟现实设备(例如,虚拟现实游戏设备)、个人计算机设备(例如台式计算机、手提电脑等)、移动或无线设备(例如,智能手机、平板设备、移动阅读器等)或可适合于特定实施方式来便于接收2d颜色数据、深度数据和元数据并且渲染和呈现虚拟现实内容的任何其他设备或设备的配置或由其实现。不同类型的媒体播放器设备(例如头戴式虚拟现实设备、个人计算机设备、移动设备等)可以为用户1608提供具有不同沉浸度的不同类型的虚拟现实体验。

尽管已经描述了某些媒体播放器设备的示例,但是这些示例是说明性的而不是限制性的。媒体播放器设备可以包括被配置为根据本文所述的原理,接收2d颜色数据、深度数据和元数据并且使用2d颜色数据、深度数据和元数据来渲染虚拟3d空间的图像视图的任何合适的设备和/或设备的配置。例如,媒体播放器设备可以包括系缆设备配置(例如,系缆耳机设备)或非系缆设备配置(例如,未系缆到处理设备的显示屏)。作为另一示例,头戴式虚拟现实媒体播放器设备或其他媒体播放器设备可以与虚拟现实控制器(诸如可穿戴控制器(例如,环形控制器)和/或手持控制器)结合使用。

尽管图16将系统100示出为媒体播放器设备1602的一部分,但是应当理解到,在替代实施方式中,系统100的一个或多个设施可以被并入或分布在其他计算设备中。例如,由渲染设施102执行的一个或多个操作可以由与虚拟现实媒体提供者系统1604和/或与媒体播放器设备1602分开的另一系统相关联的计算设备(例如服务器)来执行。另外,在某些实施方式中,存储设施104可以远离媒体播放器设备1602放置(例如,作为基于云的存储设施)。

图20示出了用于基于3d场景的2d捕获图像来渲染虚拟现实内容的示例性方法2000。尽管图20示出了根据一个实施例的示例性操作,但是其他实施例可以省略、增加、重新排序和/或修改图20中所示的任何操作。图20中所示的一个或多个操作可以由渲染系统100和/或其任何实施方式来执行。

在操作2002中,虚拟现实内容渲染系统(例如,虚拟现实内容渲染系统100)可以接收关于3d场景,由设置在不同优势点的多个捕获设备捕获的2d颜色数据和深度数据。可以以本文所述的任何方式来执行操作2002。

在操作2004中,虚拟现实内容渲染系统可以接收用于2d颜色数据和深度数据的元数据。可以以本文所述的任何方式来执行操作2004。

在操作2006中,虚拟现实内容渲染系统可以对与包括在多个捕获设备中的每个相应捕获设备相关联的每个优势点,基于元数据和深度数据,生成投影到虚拟3d空间中的局部3d网格,以在虚拟3d空间中产生3d场景的局部虚拟表示。可以以本文所述的任何方式来执行操作2006。

在操作2008中,虚拟现实内容渲染系统可以基于投影到虚拟3d空间中的局部3d网格,并且从虚拟3d空间内的任意视点生成虚拟3d空间的图像视图。在某些示例中,生成图像视图可以包括累积投影到虚拟3d空间中的局部3d网格,并且基于2d颜色数据,混合用于局部3d网格的颜色样本以形成虚拟3d空间的图像视图。可以以本文所述的任何方式来执行操作2008。

在某些示例中,可以根据gpu和/或图形卡的图形流水线(例如,opengl渲染流水线)、作为其一部分和/或使用gpu和/或图形卡的图形流水线(例如,opengl渲染流水线)来执行本文所述的系统100的一个或多个操作。系统100的这类实施方式可以利用gpu和/或图形卡的一个或多个能力、功能和/或资源(例如,设计成表示2d数据的现有视频编解码器),包括gpu和/或图形卡的固定功能、硬件加速功能和/或缓冲器(例如,固定功能光栅化、硬件加速的深度测试、深度缓冲器等)。

在某些示例中,图形流水线可以至少包括顶点处理、光栅化和片段处理级,并且可以在图形流水线的这些级内执行系统100的一个或多个操作。作为示例,系统100可以在图形流水线的顶点处理级内生成局部3d网格,如本文所述。作为另一示例,系统100可以使用图形流水线的顶点处理级内的顶点着色器来投影2d输入网格以在虚拟3d空间中生成局部3d网格,如本文所述。作为另一示例,系统100可以移除局部3d网格的无关图元和/或确定局部3d网格的图元的混合权重,如本文所述,使用图形流水线的顶点处理级内的几何着色器和/或细分曲面(tessellation)着色器的预光栅化和/或使用图形流水线的片段处理级内的片段着色器的后光栅化。作为另一示例,系统100可以采样和混合颜色样本,如本文所述,使用图形流水线的片段处理级内的片段着色器的后光栅化。

在某些示例中,系统100可以以利用图形流水线的方式对数据集执行多遍(pass)(例如,对一系列捕获帧中的一帧的2d颜色数据、深度数据和元数据执行多遍)。例如,系统100可以对数据集迭代一次以执行深度预阶段来确立在其内累积颜色样本的累积区域,并且可以再次对数据集进行迭代以在累积区域内累积颜色样本。系统100可以对累积的颜色样本进行迭代以混合颜色样本来形成可以输出显示的图像视图。

图21示出了根据本文所述原理,基于3d场景的2d捕获图像来渲染虚拟现实内容的示例性方法。尽管图21示出了根据一个实施例的示例性操作,但其他实施例可以省略、增加、重新排序和/或修改图21所示的任何操作。图21中所示的一个或多个操作可以由虚拟现实内容渲染系统(例如,虚拟现实内容渲染系统100)和/或由任何实施方式或其组合来执行。

在操作2102中,虚拟现实内容渲染系统(例如,虚拟现实内容渲染系统100)可以接收关于3d场景,由布置在不同优势点的多个捕获设备捕获的2d颜色数据和深度数据。可以以本文所述的任何方式来执行操作2102。

在操作2104中,虚拟现实内容渲染系统可以接收用于2d颜色数据和深度数据的元数据。可以以本文所述的任何方式来执行操作2104。

在操作2106中,虚拟现实内容渲染系统可以执行深度阶段(例如,深度预阶段)。深度阶段可以包括虚拟现实内容渲染系统将所接收的深度数据(例如,表示3d场景中的对象的位置的所捕获的深度数据)和元数据(例如,优势点信息)转换为公共虚拟3d空间中的3d坐标并且将用于优势点的2d输入网格投影到虚拟3d空间中的3d坐标,以形成投影到虚拟3d空间中的局部3d网格,如本文所述。深度阶段还可以包括虚拟现实内容渲染系统诸如通过深度测试,从虚拟3d空间内的选定任意视点的透视挑选深度数据,以识别和省略被遮挡的样本。

深度阶段还可以包括虚拟现实内容渲染系统从虚拟3d空间内的选定任意视点确定将累积颜色样本的累积范围。虚拟现实内容渲染系统可以诸如本文所述,通过从所选任意视点沿着透视平移来偏移最接近所选任意视点的深度值,确定累积范围。虚拟现实内容渲染系统可以存储表示累积范围的数据,诸如表示累积范围的远值的数据,以用在累积阶段中。

可以设置深度阶段以进行深度测试和深度写入,同时禁用颜色写入。因此,虚拟现实内容渲染系统可以在深度阶段期间将数据写入深度缓冲器。写入深度缓冲器的数据可以包括按预定深度偏移(即,累积范围的远值)偏移的最前面的深度样本值。虚拟现实内容渲染系统可以被配置为在累积阶段之前不清零深度缓冲器,使得深度缓冲器可以向在累积阶段中执行的固定功能深度测试提供输入。这可以提供对所确定的累积范围之外的样本(例如,超出累积范围的远值的样本)的硬件加速拒绝,并且将不输出超出累积范围的样本(例如,超出深度偏移的样本)以光栅化。将选择在累积范围内的样本(即,在累积范围的远值前面的样本),并且有助于绘制的图像视图。

在操作2108中,虚拟现实内容渲染系统可以执行累积阶段。累积过程可以包括虚拟现实内容渲染系统将接收到的深度数据(例如,表示3d场景中的对象的位置的捕获的深度数据)和元数据(例如,优势点视场坐标)转换为公共虚拟3d空间中的3d坐标并且将优势点的2d输入网格投影到虚拟3d空间中的3d坐标,以形成投影到虚拟3d空间中的局部3d网格,如上所述。累积阶段还可以包括虚拟现实内容渲染系统诸如通过深度测试,从虚拟3d空间内的所选择的任意视点的透视挑选深度数据,以识别和省略被遮挡的样本。累积阶段还可以包括虚拟现实内容渲染系统确定局部3d网格的图元的混合权重,诸如本文所述。

如本文所述,累积阶段还可以包括虚拟现实内容渲染系统从虚拟3d空间内的选定任意视点光栅化所投影的局部3d网格的透视图像视图,并且对在深度阶段中确立的累积区域内的所投影的局部3d网格的3d坐标,由2d颜色数据(例如,来自输入2d坐标处的颜色视频流)累积颜色样本。如本文所述,可以将用于透视图像视图的颜色样本累积在帧缓冲器中。在某些示例中,累积可以使用加性地混合来累积所有片段输出的总和,在某些实施方式中,该混合可以是固定功能的操作。诸如本文所述,可以使用累积阶段中确定的混合权重来乘以累积的颜色样本,然后将这些颜色样本加在一起来确定所有片段的加权总和。

可以为深度测试和颜色写入设置累积阶段,禁用深度写入。因此,如本文所述,虚拟现实内容渲染系统可以在累积阶段期间,将累积的颜色样本数据写入中间的高精度帧缓冲器。

在操作2110中,虚拟现实内容渲染系统可以执行加权平均除法阶段。加权平均除法阶段可以包括虚拟现实内容渲染系统将累积的加权颜色样本除以混合权重的总和,以确定累积的颜色样本的加权平均值。在步骤2112中,虚拟现实内容渲染系统可以将所确定的加权平均值的全屏四边形(例如,覆盖裁切坐标中的x/y[-1,1]的四边形)绘制到输出(例如,显示)帧缓冲器。如本文所述,输出帧缓冲器中的内容可以由虚拟现实内容渲染系统和/或实现虚拟现实内容渲染系统的媒体播放器设备使用,以显示由生成、累积和混合局部3d网格的虚拟现实内容渲染系统形成的虚拟3d空间的透视图像视图。

在某些示例中,可以对帧的时间序列中的帧执行方法2000或方法2100。该帧可以包括与该帧相关联(例如,与对应于该帧的时间点相关联)的2d颜色数据帧、深度数据帧以及元数据。因此,可以对帧时间序列中的每一其他帧重复方法2000或方法2100,以产生表示所捕获的3d场景的虚拟3d空间的动态透视图像视图的视频输出。

在某些实施例中,本文所述的系统、组件和/或过程中的一个或多个可以由一个或多个适当配置的计算设备来实现和/或执行。为此,上述系统和/或组件中的一个或多个可以包括被配置为执行本文所述的一个或多个过程的、在至少一种非暂时性计算机可读介质上体现的任何计算机硬件和/或计算机实现的指令(例如,软件)或由其实现。具体地,系统组件可以在一台物理计算设备上实现或可以在一个以上物理计算设备上实现。因此,系统组件可以包括任意多个计算设备,并且可以采用任意多个计算机操作系统。

在某些实施例中,本文所述的一个或多个过程可以至少部分地被实现为体现在非暂时性计算机可读介质中并且可以由一个或多个计算设备执行的指令。通常,处理器(例如,微处理器)从非暂时性计算机可读介质(例如,存储器等)接收指令,并且执行那些指令,从而执行一个或多个过程,包括本文所述的一个或多个过程。可以使用各种已知的计算机可读介质中的任何一种来存储和/或发送这样的指令。

计算机可读介质(也称为处理器可读介质)包括参与提供可由计算机(例如,计算机的处理器)读取的数据(例如,指令)的任何非暂时性介质。这样的介质可以采取许多形式,包括但不限于非易失性介质和/或易失性介质。非易失性介质可以包括例如光盘或磁盘以及其他持久性存储器。易失性介质可以包括例如动态随机存取存储器(“dram”),其通常构成主存储器。计算机可读介质的常见形式包括例如,磁盘、硬盘、磁带、任何其他磁介质、光盘只读存储器(“cd-rom”)、数字视频光盘(“dvd”)、任何其他光学介质、随机存取存储器(“ram”)、可编程只读存储器(“prom”)、电可擦可编程只读存储器(“eprom”)、flash-eeprom、任何其他存储芯片或盒式磁带或计算机可以从中读取的任何其他有形介质。

图22示出了示例性计算设备2200,其可以被具体配置为执行本文所述的一个或多个过程。如图22所示,计算设备2200可以包括经由通信基础设施2212通信地连接的通信接口2202、处理器2204、存储设备2206、输入/输出(“i/o”)模块2208以及图形卡2210。尽管在图22中示出了示例性计算设备2200,但是,图22中示出的组件秒旨在为限制。在其他实施例中,可以使用附加或替代组件。现在,将另外详细地描述图22中所示的计算设备2200的组件。

通信接口2202可以被配置为与一个或多个计算设备通信。通信接口2202的示例包括但不限于有线网络接口(例如网络接口卡)、无线网络接口(例如无线网络接口卡)、调制解调器、音频/视频连接和任何其他合适的接口。

处理器2204通常代表能够处理数据或解释、执行和/或指示执行本文所述的一个或多个指令、过程和/或操作的任何类型或形式的处理单元(例如,中央处理单元)。处理器2204可以根据一个或多个应用2214或诸如可以存储在存储设备2206或另一计算机可读介质中的其他计算机可执行指令来指示操作的执行。

存储设备2206可以包括一个或多个数据存储介质、设备或配置,并且可以采用数据存储介质和/或设备的任何类型、形式和组合。例如,存储设备2206可以包括但不限于硬盘驱动器、网络驱动器、闪存驱动器、磁盘、光盘、ram、动态ram、其他非易失性和/或易失性数据存储单元或其组合或子组合。电子数据(包括本文所述的数据)可以被临时和/或永久存储在存储设备2206中。例如,表示被配置为指示处理器2204执行本文所述的任何操作的一个或多个可执行应用2214的数据可以被存储在存储设备2206内。在一些示例中,可以将数据布置在驻留在存储设备2206内的一个或多个数据库中。在某些示例中,存储设备2206可以维护表面数据、元数据、数据流、视频流、传输流和/或由设施102接收、生成、管理、维护、使用和/或发送或发送到设施102的任何其他数据。存储设备2206可以进一步包括可以由设施102使用来执行本文所述的一个或多个操作的任何其他数据。

i/o模块2208可以包括一个或多个i/o模块,其被配置为接收用户输入并提供用户输出。一个或多个i/o模块可以被用来接收用于单一虚拟现实体验的输入。i/o模块2208可以包括支持输入和输出能力的任何硬件、固件、软件或其组合。例如,i/o模块2208可以包括用于捕获用户输入的硬件和/或软件,包括但不限于键盘或小键盘、触摸屏组件(例如,触摸屏显示器)、接收器(例如,rf或红外接收器)、运动传感器和/或一个或多个输入按钮。

i/o模块2208可以包括用于向用户呈现输出的一个或多个设备,包括但不限于图形引擎、显示器(例如,显示屏)、一个或多个输出驱动器(例如,显示驱动器)、一个或多个音频扬声器和一个或多个音频驱动程序。在某些实施例中,i/o模块2208被配置为将图形数据提供给显示器以呈现给用户。图形数据可以表示一个或多个图形用户界面和/或可以适合于特定实施方式的任何其他图形内容。i/o模块2208可以从某些实施方式中省略。

在一些示例中,本文所述的任何设施可以由计算设备2200的一个或多个组件实现或在其内实现。例如,可以将驻留在存储设备2206内的一个或多个应用2214配置为指示处理器2204执行与虚拟现实内容渲染系统100(参见图1)的渲染设施102相关联的一个或多个过程或功能。备选地,可以将驻留在存储设备2206内的一个或多个应用2214配置为指示处理器2204执行与数据解码/解复用系统1610(见图16)相关联的一个或多个过程或功能。同样地,系统100的存储设施104可以由存储设备2206实现或在其内实现。

图形卡2210可以包括具有专用视频解码硬件(例如一个或多个专用视频解码器)和可编程gpu2216的任何合适的图形卡(例如市售图形卡)。在某些实施例中,图形卡2210可以包括附加组件。在执行本文所述的一个或多个示例性操作中,图形卡2210和/或gpu2216可以被配置为执行和/或协助处理器2204。图形卡2210可以包括适合于特定实施方式的任何合适数量的图形卡和/或gpu。

就上述实施例收集、存储和/或使用由个人提供的个人信息而言,应理解到,应当根据涉及保护个人信息的所有适用法律使用这类信息。此外,这类信息的收集、存储和使用可能要征得个人对此类活动的同意,例如,通过适用于情形和信息类型的众所周知的“选择加入”或“选择退出”过程。存储和使用个人信息可以以反映信息的类型的适当安全的方式,例如,通过对特别敏感信息的各种加密和匿名化技术。

在前面的描述中,已经参考附图描述了各种示例性实施例。然而,将显而易见的是,在不脱离如所附权利要求书所阐述的本发明的范围的情况下,可以对其进行各种修改和改变,并且可以实现另外的实施例。例如,本文所述的一个实施例的某些特征可以与本文所述的另一实施例的特征组合或由其替代。因此,说明书和附图应被认为是说明性而不是限制性的。

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