CN110663012B - 用于定制虚拟现实数据的方法和系统 - Google Patents

用于定制虚拟现实数据的方法和系统 Download PDF

Info

Publication number
CN110663012B
CN110663012B CN201880034442.4A CN201880034442A CN110663012B CN 110663012 B CN110663012 B CN 110663012B CN 201880034442 A CN201880034442 A CN 201880034442A CN 110663012 B CN110663012 B CN 110663012B
Authority
CN
China
Prior art keywords
virtual reality
experience
sequence
server
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880034442.4A
Other languages
English (en)
Other versions
CN110663012A (zh
Inventor
丹尼·布赖滕费尔德
勒内·塞普尔韦达
迈克尔·洛达托
派·穆德拉吉里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Verizon Patent and Licensing Inc
Original Assignee
Verizon Patent and Licensing Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Verizon Patent and Licensing Inc filed Critical Verizon Patent and Licensing Inc
Publication of CN110663012A publication Critical patent/CN110663012A/zh
Application granted granted Critical
Publication of CN110663012B publication Critical patent/CN110663012B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/036Insert-editing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/189Recording image signals; Reproducing recorded image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/324Colour aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/92Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N5/9201Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving the multiplexing of an additional signal and the video signal

Abstract

示例性虚拟现实系统(“系统”)生成体验选择数据结构,所述体验选择数据结构被配置为:在媒体播放器设备通过处理与所述媒体播放器设备选择的不同条目对应的不同虚拟现实数据集向用户提供不同虚拟现实体验时,有助于所述媒体播放器设备从所述体验选择数据结构内包括的多个条目动态选择不同条目。所述系统将所述体验选择数据结构提供给所述媒体播放器设备并且检测到所述媒体播放器设备通过所述体验选择数据结构选择了条目。所述条目与针对特定虚拟现实体验定制的特定虚拟现实数据集对应。响应于对所述条目的选择,所述系统将针对所述特定虚拟现实体验定制的所述特定虚拟现实数据集提供给所述媒体播放器设备。

Description

用于定制虚拟现实数据的方法和系统
相关申请
本申请要求2017年5月31日提交的标题为“METHODS AND SYSTEMS FORCUSTOMIZING VIRTUAL REALITY DATA(用于定制虚拟现实数据的方法和系统)”的第15/610,593号美国专利申请的优先权,其以引用的方式全部并入本文。
背景技术
虚拟现实媒体提供者可以向处理虚拟现实数据的媒体播放器设备提供虚拟现实数据,以便向媒体播放器设备的用户提供虚拟现实体验。例如,通过特定虚拟现实体验,通过同时将用户的注意力引向虚拟现实世界中呈现的各种事物中的任何事物,可以使用户沉浸在用户可以体验的交互式虚拟现实世界中。例如,用户可以在任何方向上环顾虚拟现实世界,从而使用户感觉到他或她实际上存在于虚拟现实世界中并从虚拟现实世界内的特定位置和视角(例如角度、视点等)体验虚拟现实世界。
附图说明
附图示出了各种实施例,并且是说明书的一部分。示出的实施例仅是示例,并且不限制本公开的范围。在所有附图中,相同或相似的附图标记表示相同或相似的元件。
图1示出了根据本文描述的原理的用于定制虚拟现实数据的示例性虚拟现实系统。
图2示出了根据本文描述的原理的呈现给用户的虚拟现实体验可以与其相关联的示例性三维(“3D”)场景。
图3A示出了根据本文描述的原理的图2所示3D场景的多个示例性区域,这些示例性区域分别与可提供给用户的不同虚拟现实体验相关联。
图3B示出了根据本文描述的原理的描述示例性虚拟现实体验的示例性体验参数集合。
图4示出了根据本文描述的原理的可由不同捕获设备捕获的图2所示3D场景的多个视图。
图5A示出了根据本文描述的原理的示例性捕获设备,该示例性捕获设备捕获要包括在表示图2所示3D场景可基于的现实世界场景的表面数据帧序列内的颜色和深度帧。
图5B示出了根据本文描述的原理的在由图5A所示捕获设备捕获的颜色帧中表示的颜色数据的示例性图形描绘。
图5C示出了根据本文描述的原理的在由图5A所示捕获设备捕获的深度帧中表示的深度数据的示例性图形描绘。
图6A和图6B示出了根据本文描述的原理的表示图2所示3D场景且由图5A所示捕获设备生成的示例性表面数据帧序列的不同表示。
图7示出了根据本文描述的原理的图2所示3D场景的多个视图,这些视图包括图4的视图并且进一步包括与虚拟化表面数据帧序列对应的附加示例性视图。
图8示出了根据本文描述的原理的与体验选择数据结构中的不同条目对应的不同虚拟现实数据集所基于的示例性帧序列子集。
图9示出了根据本文描述的原理的示例性体验选择数据结构,该示例性体验选择数据结构被配置为有助于从体验选择数据结构内包括的多个条目动态选择不同条目。
图10和图11示出了根据本文描述的原理的示例性虚拟现实媒体提供者系统定制虚拟现实数据的示例性配置。
图12示出了根据本文描述的原理的通过单独传输流发送的表面数据帧序列。
图13示出了根据本文描述的原理的示例性时间线,该示例性时间线描绘了关守(gatekeeper)服务器接收颜色和深度帧的时间帧和指定用于该关守服务器同步发送颜色和深度帧的时间帧。
图14示出了根据本文描述的原理的示例性虚拟现实数据集,该示例性虚拟现实数据集被实施为传输流,该传输流包括多个视频数据流并且被配置为流传输到媒体播放器设备。
图15示出了根据本文描述的原理的可由用户用来体验虚拟现实媒体内容的各种示例性类型的媒体播放器设备。
图16示出了根据本文描述的原理的示例性虚拟现实体验,在该示例性虚拟现实体验中,向用户呈现基于如从与相对于3D场景的示例性任意位置对应的动态可选择虚拟视点体验到的3D场景的示例性虚拟现实媒体内容。
图17至图19示出了根据本文描述的原理的用于定制虚拟现实数据的示例性方法。
图20示出了根据本文描述的原理的示例性计算设备。
具体实施方式
在某些虚拟现实体验中,与多个不同媒体播放器设备相关联的多个用户可能希望同时体验相同的虚拟现实世界。例如,虚拟现实媒体提供者可以提供表示多个不同用户可能希望使用相应媒体播放器设备来体验的特定虚拟现实世界的特定三维(“3D”)场景的虚拟现实数据。因此,虚拟现实媒体提供者可以向请求虚拟现实数据的每个媒体播放器设备提供相同的虚拟现实数据,从而允许所有媒体播放器设备处理虚拟现实数据并将相应虚拟现实体验提供给相应用户。
为此,本文描述了用于定制虚拟现实数据的方法和系统。例如,如将在下面更详细地描述的,示例性虚拟现实系统可以访问描述分别描绘三维(“3D”)场景的不同视图的多个表面数据帧序列(例如,颜色帧和深度帧的序列)的元数据。如元数据中描述的,例如,较大数量的表面数据帧序列可以包括表示从相对于3D场景的较大数量的不同位置、角度、视野等捕获的3D场景的数据。
虚拟现实系统还可以标识描述与3D场景相关联的多种虚拟现实体验内包括的特定虚拟现实体验的体验参数集合。媒体播放器设备可以向用户提供多种虚拟现实体验中的每一种(即,包括特定虚拟现实体验)。例如,多种可提供的虚拟现实体验中的不同虚拟现实体验可以分别与3D场景的可以从其将虚拟现实体验提供给相应用户的不同区域相关联,或者与可以为虚拟现实体验定义的各种其他参数相关联,如下文所描述的。这样,媒体播放器设备可以被配置为:通过处理针对多种虚拟现实体验中的相应虚拟现实体验定制的相应虚拟现实数据集(例如,包括针对特定虚拟现实体验定制的特定虚拟现实数据集),来向用户提供虚拟现实体验。例如,与在针对与3D场景的其他区域相关联的虚拟现实体验定制的虚拟现实数据集内可以包括的细节相比,针对与3D场景的某些区域相关联的虚拟现实体验定制的虚拟现实数据集可以包括有关3D场景的某些方面的更多细节以及有关3D场景的其他方面的更少细节。
基于标识出来的体验参数集合以及与多个数据帧序列相关联的元数据,虚拟现实系统可以从多个表面数据帧序列选择用于包括在特定虚拟现实数据集所基于的(例如,当生成虚拟现实数据集时,特定虚拟现实数据集所基于的)帧序列子集中的表面数据帧序列。例如,可以从多个表面数据帧序列中较大数量的可用表面数据帧序列选择包括较少数量的表面数据帧序列的帧序列子集,以允许针对特定虚拟现实体验定制基于该帧序列子集的特定虚拟现实数据集(例如,以便在排除其他不那么相关的细节的同时,包括与特定虚拟现实体验相关的3D场景的某些细节)。
基于选择用于包括在帧序列子集中的表面数据帧序列,虚拟现实系统可以包括体验选择数据结构内与特定虚拟现实数据集相对应的条目。更具体地,虚拟现实系统可以生成体验选择数据结构,该体验选择数据结构被配置为:在媒体播放器设备处理不同虚拟现实数据集以向用户提供不同虚拟现实体验时,有助于媒体播放器设备(例如,从体验选择数据结构内包括的多个条目)动态选择不同条目,并且可以包括与在所生成的体验选择数据结构内的特定虚拟现实数据集对应的条目。正如条目对应于针对特定虚拟现实体验定制的特定虚拟现实数据集一样,体验选择数据结构内的多个条目中的每个条目都可以对应于针对多种可提供的虚拟现实体验内包括的不同虚拟现实体验定制的不同虚拟现实数据集。
一旦已经将体验选择数据结构生成为包括与针对特定虚拟现实体验定制的特定虚拟现实数据集对应的条目,虚拟现实系统就可以将体验选择数据结构提供给媒体播放器设备。虚拟现实系统然后可以检测到媒体播放器设备(例如,通过提供的体验选择数据结构,从体验选择数据结构中包括的多个条目)选择了与针对特定虚拟现实体验定制的特定虚拟现实数据集相对应的条目。响应于检测到媒体播放器设备选择了与特定虚拟现实数据集相对应的条目,虚拟现实系统可以向媒体播放器设备提供针对特定虚拟现实体验定制的特定虚拟现实数据集。结果,媒体播放器设备可以接收特定虚拟现实数据集并处理特定虚拟现实数据集以向用户提供特定虚拟现实体验。
本文描述的用于定制虚拟现实数据的系统和方法可以提供各种优点和益处。作为一个示例,本文描述的系统和方法可以允许虚拟现实媒体提供者系统高效地分发针对提供给特定用户的特定体验而动态定制的虚拟现实数据。通过定制分发的虚拟现实数据,可以明显减少发送到任何特定媒体播放器设备的冗余和/或无关数据。这样,与不采用本文描述方法和系统的常规提供者系统相比,采用本文描述的方法和系统的提供者系统可以允许甚至向用户使用的媒体播放器设备分发更少数据的同时,向用户提供更高质量和/或更身临其境的体验(例如,以更高图像质量、更生动细节等为特征的体验)。
另外或可替代地,本文描述的系统和方法可以有助于同时向多个用户(例如,甚至包括非常大量的用户)实际地、高效地且高质量地分发虚拟现实数据。例如,可以访问许多表面数据帧序列选项(例如,包括虚拟化表面数据帧序列,如下描述)的虚拟现实媒体提供者系统可以受益于在选择系统会在特定时间提供给特定媒体播放器设备的数据方面增加的灵活性。例如,不是分发可能可用于描绘3D场景的每个方面的所有数据(例如,大量的高分辨率数据),由于数据量大,这种方法可能不实用或是不可能的,本文描述的系统和系统可以有助于更有选择性地且灵活地分配定制数据。
作为一个具体的示例,可以将针对第一虚拟现实体验定制的虚拟现实数据集(例如,表示从大量可用表面数据帧序列选择的一些表面数据帧序列的数据)分发给第一媒体播放器设备,以使用第一媒体播放器设备提供与具有第一虚拟现实体验的用户相关的3D场景的一部分的高水平细节。同时,可以将针对第二虚拟现实体验定制的虚拟现实数据集(例如,表示不同表面数据帧序列的数据)分发给第二媒体播放器设备,以使用第二媒体播放器设备提供与具有第二虚拟现实体验的不同用户相关的3D场景的不同部分的高水平细节。这样,虚拟现实媒体提供者系统可以同时向第一和第二媒体播放器设备提供与相应用户相关的单独定制的虚拟现实数据集(例如,包括针对用户正在体验的3D场景的相应部分定制的本地化数据的虚拟现实数据集),同时不会使媒体播放器设备或用于与媒体播放器设备进行通信的任何分发渠道超负荷,而产生过多的冗余数据或有关3D场景的与相应用户不太相关的部分的详细数据(例如,无论如何对用户来说都是微不足道的细节)。这样,由于改善了用户体验(例如,由于虚拟现实数据集的定制以动态地包括仅3D场景最相关部分的高质量表示,使其更现实更身临其境),甚至可以改善数据分发(例如,通过要求将更少的数据分发给客户端侧媒体播放器设备,从而使其更高效、更快、更有效)。
另外,如在本文中将显而易见的,本文描述的用于定制虚拟现实数据的方法和系统可以有助于媒体播放器设备针对媒体播放器设备的用户通过使用本文描述的体验选择数据结构而具有的不同虚拟现实体验动态地追踪和请求恰当的虚拟现实数据集。以这种方式,媒体播放器设备可以连续高效地接收定制数据,甚至同时可以为提供者系统减少追踪由不同媒体播放器设备提供的用户体验的任。此外,所公开的用于定制虚拟现实数据的方法和系统可以具有高可扩展性,以允许提供者系统支持任意大小的3D场景(例如,非常大的3D场景)、任意质量的3D场景(例如,由高级捕获设备等捕获的3D场景)、非常动态和活跃的3D场景(例如,包含大量对象以及对象之间的交互等的3D场景)、以及其他沉浸式3D场景。
现在将参考附图更详细地描述各种实施例。所公开的方法和系统可以提供上述益处中的一种或多种和/或将在本文中变得显而易见的各种附加和/或替代性益处。
图1示出了用于定制虚拟现实数据的示例性虚拟现实系统100(“系统100”)。如图所示,系统100可以包括但不限于体验选择数据结构管理设施102(“管理设施102”)、虚拟现实数据集管理设施104(“管理设施104”)和存储设施106,它们选择性地且通信地彼此耦合。要认识到,尽管设施102至106在图1中被示为单独的设施,但设施102至106可以被组合成更少的设施,诸如被组合成单个设施,或者可以被划分成更多的设施,以用于特定的实施方式。在一些示例中,如可以用于特定实施方式,设施102至106中的各个设施可以分布在多个计算设备(例如,多个服务器)和/或多个位置之间。另外,在系统100的某些实施方式中,图1中所示的某些设施(以及与此类设施相关联的相关功能)可以从系统100中省略。例如,系统100的特定实施方式可以仅包括管理设施102和存储设施106,系统100的另一实施方式可以仅包括管理设施104和存储设施106,以此类推。现在将描述设施102至106中的每一个。
管理设施102可以包括执行与设计、规划、生成和管理体验选择数据结构相关联的各种操作的一个或多个物理计算设备(例如,硬件和/或软件组件,诸如处理器、存储器、通信接口、存储在存储器中以供处理器执行的指令等),该体验选择数据结构包括多个条目并且配置为在媒体播放器设备向用户提供不同虚拟现实体验时有助于媒体播放器设备从多个条目动态选择不同条目。为此,管理设施102可以访问描述分别描绘3D场景的不同视图的多个表面数据帧序列的元数据。
管理设施102可以如可用于特定实施方式的任何方式访问元数据。例如,在某些实施例中,3D场景可以是现实世界场景,并且多个表面数据帧序列中的一个或多个表面数据帧序列可以由相对于现实世界场景设置在不同位置的多个捕获设备以捕获现实世界场景的不同视图的多个捕获设备中的不同捕获设备捕获(例如,生成)。这样,管理设施102可以通过直接从多个捕获设备访问(例如,接收、请求和获取等)所捕获的表面数据帧序列来访问元数据。在其他示例中,一个或多个其他系统(例如,现实世界场景捕获系统)可以居于捕获设备和系统100之间,使得管理设施102可以通过一个或多个其他系统访问元数据。另外,连同描述捕获的表面数据帧序列的元数据,管理设施102还可以按照类似的方式访问描述虚拟化的表面数据帧序列(即,从一个或多个捕获的表面数据帧序列导出或呈现的表面数据帧序列)的元数据。捕获和虚拟化的表面数据帧序列将在下面更详细地描述。
管理设施102还可以标识描述特定虚拟现实体验的体验参数集合,该特定虚拟现实体验包括在与3D场景相关联的多种虚拟现实体验中并且当媒体播放器设备处理针对每种虚拟现实体验定制的虚拟现实数据集时被媒体播放器设备提供给用户。管理设施102可以按照任何合适的方式标识体验参数集合(以及标识描述在多种虚拟现实体验中包括的其他虚拟现实体验的附加体验参数集合)。例如,管理设施102可以基于3D场景的特定属性将3D场景划分为不同的区域,并用每个体验参数集合内包括的相应参数来指定区域。作为另一示例,管理设施102可以确定将为3D场景支持哪些媒体播放器设备技术能力,并且指定要包括在每个体验参数集合内的表示所支持的技术能力的各个参数。下面将描述可以包括在体验参数集合中的体验参数的各种示例。
基于标识出来的体验参数集合以及与多个数据帧序列相关联的元数据,管理设施102可以从多个表面数据帧序列选择用于包括在特定虚拟现实数据集(例如,针对特定虚拟现实体验定制的虚拟现实数据集)所基于的帧序列子集中的表面数据帧序列。换句话说,当生成特定虚拟现实数据集时(例如,如下描述,通过管理设施104),管理设施102可以选择用于包括在特定虚拟现实数据集所基于的帧序列子集中的表面数据帧序列。
基于选择用于包括在帧序列子集(即特定虚拟现实数据集所基于的帧序列子集)中的表面数据帧序列,管理设施102可以生成体验选择数据结构,并且可以在体验选择数据结构内包括与特定虚拟现实数据集相对应的条目。例如,如上描述,体验选择数据结构中包括的多个条目(例如,包括与特定虚拟现实数据集相对应的条目)可以分别对应于针对多种虚拟现实体验内包括的不同虚拟现实体验定制的不同虚拟现实数据集。这样,当媒体播放器设备向用户提供不同的虚拟现实体验时(例如,由于媒体播放器设备的用户使虚拟视点从3D场景中的一个区域移动到另一个区域),管理设施102可以生成体验选择数据结构以有利于媒体播放器设备动态选择不同条目。管理设施102可以进一步执行本文描述和/或可以服务于系统100的特定实施方式的其他操作。
管理设施104可以包括一个或多个物理计算组件(例如,与管理设施102的硬件和/或软件组件分离或与管理设施102共享的硬件和/或软件组件),该物理计算组件执行与同媒体播放器设备进行交互并当媒体播放器设备向不同用户提供不同虚拟现实体验时向媒体播放器设备提供不同虚拟现实数据集相关联的各种操作。具体地,例如,管理设施104可以将由管理设施102生成的体验选择数据结构提供给媒体播放器设备,检测到媒体播放器设备(例如,通过体验选择数据结构)选择了与针对特定虚拟现实体验定制的特定虚拟现实数据集对应的条目,并响应于该检测,提供(即,向媒体播放器设备提供)针对特定虚拟现实体验定制的特定虚拟现实数据集。管理设施104可以进一步执行本文描述和/或可以服务于系统100的特定实施方式的其他操作。
如上描述,管理设施102和104可以与虚拟现实媒体提供者管道中的各种服务器侧和客户端侧设备和系统通信各种数据(例如,元数据、体验参数集合、体验选择数据结构、条目选择、虚拟现实数据集等)。如本文所使用,“服务器侧”可以指服务器-客户端交易(诸如内容提供者系统向最终用户使用的客户端设备提供数据(例如,虚拟现实数据)的交易)的服务器侧(例如,提供者侧)。例如,虚拟现实媒体提供者系统可以将虚拟现实数据提供给与用户相关联的媒体播放器设备。这样,服务器侧系统和组件可以指与内容提供者系统相关联(例如,包括在其中、由其实现、与其互操作等)以向媒体播放器设备(例如通过网络)提供数据(例如,虚拟现实数据集)的系统和组件。相反,“客户端侧”设备可以与网络另一侧上的用户使用的客户端设备(例如,媒体播放器设备)相关联,并且可以包括有助于客户端设备从内容提供者系统(例如,用户在网络的用户侧上操作的媒体播放器设备和/或其他计算机组件)接收数据的设备。为了执行这些通信,管理设施102和104可以被配置为使用如可以用于特定实施方式的任何通信接口、协议和/或技术与服务器侧和/或客户端侧系统进行通信。例如,管理设施102和104可以被配置为通过一个或多个网络(例如,有线或无线局域网、广域网、提供者网络、互联网等)、有线通信接口(例如,通用串行总线(“USB”))、无线通信接口或任何其他合适的通信接口、协议和/或技术。
在特定实施方式中,存储设施106可以存储和/或维持由管理设施102和104访问、接收、生成、管理、追踪、维持、使用、提供和/或发送的任何合适的数据。例如,如图所示,存储设施106可以包括可以按照本文描述的任何方式接收、生成、管理、追踪、维持、使用和/或发送(例如,提供给其他系统)的管理数据108和/或虚拟现实数据集110。管理数据108可以包括表面数据帧序列数据,该表面数据帧序列数据包括描述表面数据帧序列的元数据(例如,与表面数据帧序列相关联的捕获参数集合)、表示3D场景的数据、表示不同体验参数集合或用于生成体验参数集合的数据、表示帧序列子集的数据和包括在帧序列子集中的选定表面数据帧序列的数据、用于执行帧序列子集的选择的数据、表示体验选择数据结构的数据和/或用于生成(例如,动态生成)体验选择数据结构的数据等。虚拟现实数据集110可以包括:可以封装到一个或多个传输流中以传输到媒体播放器设备的数据流(例如,基于表面数据帧序列编码的视频数据流)和/或与可以提供给媒体播放器设备的虚拟现实数据集相关联的任何其他数据。此外,存储设施106可以包括系统100的特定实施方式所使用的其他类型的数据,诸如用于执行本文描述的操作的指令(例如,编程指令)和/或管理设施102和104所使用的用于执行所描述的操作的其他数据。
在一些示例中,3D场景可包括由相对于现实世界场景布置在不同位置处以便捕获现实世界场景的不同视图的多个捕获设备捕获的现实世界场景的元素。在一些这种示例中,当在现实世界场景中发生事件时,系统100可以实时地执行本文描述的一个或多个操作。因此,在其他系统也实时运行的虚拟现实数据集提供者管道中使用了系统100的实施方式中,可以将虚拟现实数据集提供给媒体播放器设备,使得可能在物理上不靠近现实世界场景但却可能希望体验现实世界场景(例如,现实世界场景中发生的事件)的媒体播放器设备的相应用户可以使用他们的相应媒体播放器设备虚拟地体验现实世界场景以及其中发生的事件(例如,当事件发生时,实时地体验)。尽管数据处理和数据分发可能会需要有限的时间,使得用户可能无法在现实世界场景中发生事件时恰好体验到现实世界场景,但是,如本文所用的,当立即且没有不必要的延迟地执行操作时,被认为是“实时”地执行操作。因此,即使用户在延迟之后(例如,实际发生几秒钟或几分钟之后)体验到现实世界场景内的特定事件,也可以说用户实时体验了现实世界场景。
为了进一步说明系统100的各种实施方式如何可操作来定制虚拟现实数据,现在将描述由系统100执行的操作和/或由媒体播放器设备执行的向用户提供虚拟现实体验的操作的各个方面。
图2示出了示例性3D场景202,可以将呈现给用户的虚拟现实体验与该示例性3D场景202关联。例如,3D场景202可以表示包括现实世界对象的现实世界场景、包括虚拟对象的虚拟场景、包括现实世界对象和虚拟对象的组合的融合现实场景、或者如可以用于特定实施方式的另一个合适的3D场景。
如本文使用的,现实世界场景可以表示任何现实世界风景、现实世界位置、现实世界事件(例如,直播事件等)或如可用于特定实施方式的现实世界中存在的其他主体(例如,与只能存在于虚拟世界或虚幻世界中相反)。在一些示例中,现实世界场景可以是特定划定的区域,例如舞台、比赛场地(例如,篮球场)、竞技场等。相反,在其他示例中,现实世界场景可能未很好地定义或描绘。例如,现实世界场景可以包括任何室内或室外现实世界位置,诸如城市街道、博物馆、风景名胜等等。在某些示例中,现实世界场景可以与现实世界事件相关联,诸如体育赛事、音乐事件、戏剧或剧场表演、大规模庆祝活动(例如,时代广场上的新年夜、狂欢节(Mardis Gras)等)、事件或任何其他现实世界事件。在相同或其他示例中,现实世界场景可以与如可用于特定实施方式的在任何其他室内或室外现实世界位置处的小说化场景(例如,一组真人虚拟现实电视节目或电影)和/或任何其他场景的设置相关联。
相反,如本文中所使用的,虚拟场景可以表示与现实世界场景相同类型的主体,但是在现实世界中可以不具有类似物。例如,虚拟场景可以完全是计算机生成的(例如,与被物理捕获设备捕获相反),并且因此,如可以用于特定实施方式一样,可以模仿现实世界位置或虚构位置。在某些情况下,虚拟场景可以包括现实世界中不存在或在现实世界中难以捕获的新奇元素(例如,幻想元素、其他星球的风景等)。
如本文中所使用的,融合现实场景可以包括现实世界场景和虚拟场景两者的元素。例如,融合现实场景可以包括从现实世界场景中捕获的风景(例如,著名建筑物的内部),但是可以将虚拟对象整合到现实世界风景中。在其他示例中,融合现实场景可以包括与已经由物理捕获设备捕获的现实世界对象集成在一起虚拟(即,计算机生成的)风景。
不管3D场景202是否表示(例如,实现、包括等)现实世界场景、虚拟场景或融合现实场景,3D场景202都可以包括一个或多个对象204(例如,对象204-1和204-2)。取决于所表示的场景的类型,对象204可以表示与3D场景202相关联(例如,位于3D场景202内或周围)并且可以从3D场景202的至少一个视图(例如下面将要描述和说明)检测到(例如,可观看到)的任何现实世界对象或虚拟对象,无论它们是活的还是无生命的。尽管为了清楚起见将对象204绘制为相对简单的几何形状,但是要理解,对象204可以表示具有各种复杂度的各种类型的对象。不是几何形状,例如,对象204中的任一或两者都可以表示有生命或无生命的对象或表面,诸如人或另一种生物、不透明的固体、液体或气体、不那么离散的对象(诸如墙壁、天花板、地板)、或本文描述的或可以用于特定实施方式的任何其他类型的对象。
如上描述的,系统100可以标识描述与3D场景相关联的多个虚拟现实体验内包括的特定虚拟现实体验的体验参数集合。如本文所使用的,“虚拟现实体验”在某些上下文中通常指的是用户使用基于虚拟现实数据呈现虚拟现实媒体内容的媒体播放器设备来体验虚拟现实世界(例如3D场景202的虚拟表示)。然而,在本文使用的其他上下文中(例如,具体地指包括在可由媒体播放器设备向用户提供的多种虚拟现实体验中的特定虚拟现实体验的上下文),“虚拟现实体验”可以指更具技术性的构思。具体而言,虚拟现实体验可以指媒体播放器设备可以基于特定虚拟现实数据集为用户提供的体验,该特定虚拟现实数据集例如包括描述3D场景的某些方面的高级别的细节和3D场景的其他方面的低级别的细节的虚拟现实数据,该虚拟现实数据以特定格式编码并且与特定图像质量和/或数据速率等相关联。在这种更技术的意义上,在用户指导虚拟视点(例如,用户查看3D场景的优势点)从3D场景内的一个区域移动到另一个区域时、在3D场景内的对象移动或更改时、在用户使用的媒体播放器设备的带宽能力改变时等等,可以说体验3D场景的用户从虚拟现实体验“切换”或“移动”到虚拟现实体验。如将在下面描述的,某些虚拟现实体验(例如,这种更技术类型的虚拟现实体验)可以由描述相应虚拟现实体验的相应体验参数集合中的一个或多个“体验参数”来定义。
为了说明可以提供给用户的虚拟现实体验以及描述虚拟现实体验的体验参数集合,图3A和图3B示出了与3D场景202有关的虚拟现实体验和体验参数的各个方面。
具体地,如图所示,图3A示出了3D场景202的多个示例性区域302(例如,区域302-1至302-18),每个区域都与可提供给用户的不同虚拟现实体验相关联。例如,区域302-1可以与第一虚拟现实体验相关联,区域302-2可以与第二不同的虚拟现实体验相关联,等等。要理解,区域302仅示出了虚拟现实体验的一个特定方面(例如,用户的虚拟视点在3D场景202内的位置),并且各个其他方面也可以参与虚拟现实体验。例如,与区域302-1相关联的第一虚拟现实体验也可以与特定图像质量(例如,较高分辨率的图像)相关联,而也与区域302-1相关联的第二虚拟现实体验可以与不同的图像质量(例如,较低分辨率的图像)相关联。在相同或其他示例中,图像质量体验参数可以与除图像分辨率(即像素分辨率)以外的图像质量方面有关,诸如,例如,捕获图像的帧速率、捕获图像的长宽比、捕获图像的颜色分辨率、捕获图像的编码方法等。因此,可向用户提供的多种虚拟现实体验可以通过包括位置体验参数(例如,定义与虚拟现实体验相关联的特定区域302的体验参数)、图像质量体验参数、以及如可以用于特定实施方式的任何其他体验参数在内的体验参数的各种不同排列来定义。
如图3A所示,可以在特定时间点将用户的虚拟视点304(即,用户从其体验3D场景202的当前优势点,并且在某些实施方式中,可以根据用户的意愿在3D场景202周围任意移动该当前视点)放置在区域302-8中。如图所示,对象204-1也可以位于区域302-8内的虚拟视点304附近,而对象204-2可以远离区域302-11中的虚拟视点304。这样,并且如将在下面更详细地描述的,系统100可能期望向用户的媒体播放器设备提供针对与区域302-8相关联的虚拟现实体验定制的虚拟现实数据集。这样的虚拟现实数据集可以例如包括对象204-1的较高级别的细节(即,由于对象204-1与虚拟视点304相对接近),以使用户能够体验到对象204-1的高质量渲染,同时包括对象204-2的较低级别的细节(即,由于对象204-2与虚拟视点304的距离更远,因此从虚拟视点304可能无法了解对象204-2的复杂细节)。
相反,如果虚拟视点304稍后移动到更靠近对象204-2(例如,进入区域302-11),则系统100可能希望向媒体播放器设备提供针对与区域302-11相关联的虚拟现实体验定制的虚拟现实数据集。例如,与上述虚拟现实数据集相反,该虚拟现实数据集可以包括描述对象204-2的较高级别的细节,以使用户体验对象204-2的高质量渲染,同时包括描述对象204-1的较低级别的细节。
图3B示出了描述示例性虚拟现实体验的示例性体验参数集合。更具体地说,体验参数集合306示出了可以用于描述特定虚拟现实体验(诸如,例如,可以与区域302-8相关联并可以被提供给向选择了虚拟视点304的用户提供虚拟现实体验的媒体播放器设备的虚拟现实体验)的各种示例性体验参数。
体验参数集合306可以包括可以描述虚拟现实体验的任何方面的任何类型的体验参数,如可服务于特定的实施方式。例如,如图所示,体验参数集合306可以包括表示3D场景202内的位置(例如,区域302之一)的体验参数,从该位置向用户提供虚拟现实体验(即,“体验位置坐标”)。体验参数集合306还可以包括表示3D场景202内的位置的轨迹(例如,虚拟视点304从一个区域302到另一区域的轨迹)的体验参数,从该轨迹向用户提供虚拟现实体验(即,“体验轨迹”)。体验参数集合306还可以包括表示向用户提供虚拟现实体验的媒体播放器设备的技术能力的体验参数(即“设备参数”,诸如“图像质量”参数,如媒体播放器设备支持的“屏幕分辨率”或“刷新速率”、媒体播放器设备支持的“带宽能力”、媒体播放器设备支持的“编解码器能力”等)。另外,体验参数集合306可以包括表示与提供给用户的虚拟现实体验相关联的3D场景202的几何特点的体验参数(即,“场景几何参数”,诸如“场景形状”、“场景大小”等)。此外,体验参数集合306可以包括表示3D场景202中包括的一个或多个对象204的属性的体验参数(即,“对象参数”,包括“对象几何形状”、“对象位置坐标”、“对象轨迹”等)。体验参数集306可以包括这些体验参数和/或如可以用于特定实施方式的任何其他合适的体验参数中的任何一个或全部。
虽然体验参数集306未示出与本文示出的每个不同体验参数相关联的特定值(例如,坐标值、轨迹值、设备参数值、场景或对象几何形状描述符等),但是将理解体验参数集306内表示的每个体验参数可以包括或与定义该特定体验参数的任何适当值相关联,如可以用于特定实施方式。例如,体验位置坐标参数可以包括定义3D场景202的特定区域(例如区域302-8)的数值坐标值,体验轨迹参数可以包括定义虚拟视点304或对象204可以在其中移动的相应轨迹的数值矢量值,以此类推。
系统100可以标识各种体验参数集合(即,包括体验参数集合306),这些体验参数描述了可向使用3D场景202的不同区域中的不同虚拟视点、使用具有用于体验3D场景202的不同能力的不同媒体播放器设备、将其虚拟视点指向不同的轨迹和/或与3D场景202的不同对象204或几何特征(例如,角落、边缘等)具有不同邻近度等的不同用户提供的各种虚拟现实体验。因此,对于每个标识出的体验参数集合(即,对于每种可提供的虚拟现实体验),系统100可以准备并生成针对由该体验参数集合描述的虚拟现实体验定制的相应虚拟现实数据集。系统100还可以在体验选择数据结构中包括这些虚拟现实数据集中的每一个的条目,以在用户体验3D场景202时有助于不同用户使用的媒体播放器设备选择合适的虚拟现实数据集。
为了针对特定虚拟现实体验(即,具有特定体验参数集合)定制虚拟现实数据集,系统100可以从描绘3D场景202的各种不同视图的大量可用表面数据帧序列中选择一些表面数据帧序列,并将所选表面数据帧序列包括在定制的虚拟现实数据集所基于的帧序列子集中。系统100可以如可以用于特定实施方式的任何方式来生成和/或访问描绘3D场景202的不同视图的多个可用表面数据帧序列中的表面数据帧序列。例如,如果3D场景202表示仅具有虚拟对象的纯虚拟场景,则表面数据帧序列可以由系统100或向系统100提供表示虚拟场景的数据的另一系统生成或动画化(例如,基于虚拟模型)。相反,如果3D场景202表示包括至少一些现实世界元素(例如,现实世界对象)的现实世界场景或融合现实场景,则系统100或与系统100相关联的系统可以使用物理的现实世界捕获设备捕获描绘现实世界场景的表面数据帧序列。
为了说明,图4示出了在3D场景202表示现实世界场景的实施方式中可以由不同捕获设备捕获的3D场景202的多个视图402(例如,视图402-1至402-6)。视图402中的每一个可以表示用于捕获3D场景202所基于的现实世界场景的捕获设备相对于现实世界场景的相应位置。另外,除了捕获设备的位置以外,视图402可以进一步表示相应捕获设备如何捕获现实世界场景的附加方面。例如,如从每个视图402发出的虚线所示,视图402也可以与特定的捕获角度(例如,与视图402相对应的捕获设备所面向的特定方向)、特定的捕获视野(例如,由捕获设备基于例如捕获设备的镜头的狭窄或广角、捕获设备的缩放级别等捕获的3D场景202所表示的现实世界场景的区域)等等相关联。每个视图402可以进一步与图4中未明确示出的捕获方面相关联。例如,每个视图402可以与同视图402相关联的捕获设备捕获表面数据帧序列的特定质量级别(例如,图像分辨率、帧速率等)、将捕获设备所捕获的数据编码的特定格式、和/或如可以用于特定实施方式的数据捕获的任何其他方面相关联。
如图所示,3D场景202的视图402可以提供可以从其观看3D场景202(例如,包括对象204)的不同视角、优势点等。例如,视图402可分别相对于3D场景202固定(例如,现实世界场景和捕获装置可为静止的或一起运动)。另外,在诸如图4中所示的一些示例中,视图402可以沿着至少两个维度(例如,沿着诸如地面之类的平面)围绕3D场景202。在某些示例中,视图402可以沿着三个维度进一步围绕3D场景202(例如,通过还包括在3D场景202上方和下方的视图402)。
如将在下面进一步描述和说明的,使用从各种不同视图402(例如,围绕3D场景202所基于的现实世界场景以从各种视角捕获现实世界场景的视图402)捕获的数据,系统100可以能够生成现实世界场景的其他任意视图的一个或多个虚拟化投影。换句话说,使用从一个或多个视图402捕获的数据,系统100可以渲染现实世界场景的定制视图的虚拟化投影,该虚拟化投影可以与其他位置、角度、视野等相关联并且可以或可以不与视图402对齐。因此,如图将示出的,当选择特定帧序列子集时系统100必须从中选择的多个可用表面数据帧序列可以包括描绘与物理捕获设备所捕获的视图402不对齐(即,独立于、不同于)的现实世界场景的视图的一个或多个虚拟化表面数据帧序列。
为了从每个视图402的视角捕获现实世界场景,可以在视图402的每个不同位置处设置多个捕获设备中的不同捕获设备。图5A示出了示例性捕获设备502,其从视图402-1的位置捕获颜色和深度帧,以包括在表示3D场景202可基于的现实世界场景的特定表面数据帧序列中。
如图5A所示,捕获设备502可以与视图402-1相关联,并且因此可以相对于现实世界场景和现实世界的对象204设置在与视图402-1相对应的位置处。图5A示出了捕获设备502可以包括:二维(“2D”)颜色捕获设备504,该2D颜色捕获设备504被配置为捕获表示现实世界场景(例如,包括现实世界的对象204-1和/或从视图402-1的视角可以看到的现实世界场景中包括的其他对象)的颜色数据;以及深度捕获设备506,该深度捕获设备506被配置为捕获表示现实世界场景的深度数据。
2D颜色捕获设备504可以由任何合适的2D视频捕获设备(例如,照相机、摄像机等)来实现,并且可以按照可以用于特定实施方式的任何方式来捕获2D颜色数据。在一些示例中,2D颜色捕获设备504可以是与深度捕获设备506分离的设备。统一来讲,这样的分离设备(例如,以及用于从功能上将设备融合在一起的任何通信接口和/或其他硬件或软件机构)可以称为捕获设备(例如,捕获设备502)。在其他示例中,如图5A所示,2D颜色捕获设备504和深度捕获设备506可以被集成到捕获颜色数据和深度数据两者的单个设备(即,捕获设备502)中。
无论是实现为分开的设备还是与2D颜色捕获设备504集成在一起,深度数据捕获设备506都可以按照可以用于特定实施方式的任何方式捕获表示现实世界场景的深度数据。例如,深度数据捕获设备506可以采用一种或多种深度图捕获技术,诸如结构化光深度图捕获技术、立体深度图捕获技术、飞行时间深度图捕获技术、另一种合适的深度图捕获技术、或可以用于特定实施方式的深度图捕获技术的任意组合。
不管用于捕获深度数据的深度图捕获技术的类型和数量如何,捕获设备502都可以捕获表示现实世界的对象204-1和/或在现实世界场景内包括的并且可从视图402-1的视角看到的其他对象的表面的颜色数据(例如,颜色帧)和深度数据(例如,深度帧)两者。如本文中所使用的,由捕获设备502在大约相同时间捕获的颜色帧和深度帧可以被统称为“表面数据帧”或“颜色和深度帧”,因为这些帧中包括的数据表示描述现实世界场景中包括的现实世界对象的表面(即,表面的可见外观以及表面的深度几何形状两者)的数据。
因此,如本文中所使用,表面数据帧或颜色和深度帧可指数据集,该数据集表示与在特定时间点从现实世界场景的特定视图可看到的现实世界场景内的现实世界对象的表面相关联的各种类型的数据。例如,表面数据帧可以包括颜色数据(即,图像数据)以及表示相对于现实世界场景从特定视图看到的对象的深度数据。这样,多个相关的表面数据帧可以被一起排序以创建从特定视图看到的现实世界场景的视频类的表示(不仅表示颜色数据而且表示深度数据)。在某些示例中,表面数据帧还可以与其他类型的数据相关联,诸如音频数据、元数据(例如,包括描述捕获表面数据帧的视图的捕获参数集合、有关表面数据帧中表示的特定现实世界对象的信息等的元数据)和/或如可以用于特定实施方式的其他类型的数据。如将在下面描述和说明的,这种表面数据帧序列在本文中可以被称为“表面数据帧序列”。
如本文所用,“颜色数据”可以广泛地包括任何图像数据、视频数据等,无论是以颜色还是灰度(即,“黑和白”)表示,该颜色数据表示主题(例如,在场景内包括的对象)可以从特定视图的视角出现在特定时间点或特定时间段内。颜色数据不限于可以与本领域中限定图像数据和/或视频数据的各种定义和/或标准相关联的任何特定格式、文件类型、帧速率、分辨率、质量水平或其他特点。类似地,如本文所使用,“深度数据”可以包括表示主体在空间中的位置和/或几何形状的任何数据。例如,表示对象的深度数据可包括相对于对象表面上不同点的坐标系(例如,与特定捕获设备相关联的坐标系、与3D场景相关联的全局坐标系等)的坐标。
如关于从视图402-1捕获颜色和深度帧的捕获设备502那样,要理解,其他捕获设备可以与其他视图402(例如,图4中的视图402-2至402-6)相关联以同样地从与其他视图402相关联的各个优势点捕获颜色和深度帧。在一些示例中,可以由与不同视图402相关联的不同捕获设备在同一特定时间点捕获表面数据帧,以便彼此同步。如本文所使用的,当表面数据帧是在足够近的时间被捕获以有效地表示在某个时刻(即,与在一段时间内表示该主题相反)的主题(例如,现实世界内场景内的现实世界对象)时,表面数据帧可以称为是“同步地”或“在相同的特定时间点处”被捕获,即使表面数据帧并未在同一瞬间被捕获也是如此。例如,取决于特定主题的动态程度(例如,一个或多个现实世界对象在现实世界场景中移动的速度等),在表面数据帧视是在彼此相差例如数十或数百毫秒内被捕获时,或者在另一合适的时间范围内(例如,在微秒、毫秒、秒等内)被捕获时,可以将表面数据帧视为是在同一特定时间点被捕获,如可用于特定的实施方式。因此,各个表面数据帧可以表示在特定时间点处在现实世界场景内包括的现实世界对象的表面从相应捕获设备所关联的视图402的相应优势点出现时的颜色数据和深度数据。
图5B和图5C示出了由捕获设备502捕获并包括在颜色和深度帧内(即,在表面数据帧内)包括的数据的示例性图形描绘。具体地,如图所示,包含到表面数据帧中的颜色帧可以包括颜色数据508(如图5B所示),而包含到表面数据帧中的深度帧可以包括深度数据510(如图5C所示)。
在图5B中,颜色数据508描绘了由捕获设备502内的2D颜色捕获设备504从视图402-1的视角观看的现实世界场景(例如,包括对象204-1)。因为颜色数据508可以表示在视频帧序列中的单个视频帧,所以对由颜色数据508表示的对象204-1的描绘可以表示对象204-1(例如,以及与现实世界场景相关联的其他对象)在特定时间点如何从优势点出现。虽然在图5B中被图示为图像,但是要理解,可以按照任何合适的形式来捕获、编码、格式化、发送和表示颜色数据508。例如,颜色数据508可以是根据标准视频编码协议、标准图像格式等格式化的数字数据。在一些示例中,颜色数据508可以表示现实世界场景中的对象的彩色图像(例如,类似于彩色照片)。替代地,在其他示例中,颜色数据508可以是表示对象的灰度图像(例如,类似于黑白照片)。
在图5C中,深度数据510(类似于颜色数据508)还从视图402-1的视角描绘了现实世界的对象204(包括对象204-1)。然而,不是表示现实世界场景内的对象的可见外观(即,以颜色或灰度表示光与对象204-1的表面如何交互),深度数据510可以表示对象表面上的各个点相对于例如捕获设备502中的深度捕获设备506的深度(即,距离或位置)。与颜色数据508一样,可以按照任何合适的形式来捕获、编码、格式化、发送和表示深度数据510。例如,如图所示,深度数据510可以由灰度图像数据表示(例如,针对深度捕获设备506捕获的各个像素,需要六或八个比特)。然而,不是表示光如何从对象204-1的表面反射(即,如颜色数据508中所表示),深度数据510的灰度图像可以针对图像中的各个像素表示由该像素表示的点离深度捕获设备506有多远。例如,更接近深度捕获设备506的点可以用表示较深灰色的值(例如,在0b111111表示黑色的六比特实施方式的情况下,更接近0b111111的二进制值)表示。相反,可以用表示较浅灰色的值(例如,在0b000000表示白色的六比特实施方式的情况下,更接近0b000000的二进制值)来表示离深度捕获设备506更远的点。
图6A和图6B示出了表示由捕获设备502生成的3D场景202的示例性表面数据帧序列600-1c(例如,从视图402-1的视角)。图6A示出了表面数据帧序列600-1c的详细图形表示,其描绘了可以包括在表面数据帧序列600-1c中的某些特定数据,而图6B示出了表面数据帧序列600-1c的统一图形表示,其没有具体描绘表面数据帧序列600-1c的内容的许多细节。尽管表面数据帧序列600-1c具体描绘了从3D场景202所基于的现实世界场景的视图402-1捕获的表面数据帧序列,但应理解,本文描述的其他表面数据帧序列(例如,其他捕获的表面数据帧序列以及虚拟化的表面数据帧序列)可以包括与图6A中所示的组件相似的组件。
还要理解,在图6中未明确示出但却包括与表面数据帧序列600-1c所示相似类型的数据的表面数据帧序列在本文也可以称为表面数据帧序列600。为此,将使用符号,在该符号中,表面数据帧序列“600-Nc”指来自视图402-N的“c”个捕获的表面数据帧序列,并且表面数据帧序列“600-Nv”指与视图702-N相关联的虚拟化表面数据帧序列(下面描述)。这样,例如,在图6中明确示出的表面数据帧序列600-1c是与视图402-1相关联的(即,从视图402-1捕获的)捕获表面数据帧序列。
如图6A所示,表面数据帧序列600-1c可以包括各种类型的数据,包括颜色数据、深度数据和元数据。具体地,表面数据帧序列600-1c被示出为包括颜色帧序列602、深度帧序列604和捕获参数集合606。应当理解,表面数据帧序列600-1c可以进一步包括在图6A中未明确示出的其他类型的数据(例如,所捕获的音频数据、除了捕获参数集合606之外的其他元数据等)。另外,要理解,包括在表面数据帧序列600-1c内的数据可以按照任何合适的方式布置或格式化。例如,如图所示,可以将包括在表面数据帧序列600-1c内的数据布置为一个颜色帧序列和一个深度帧序列。在其他示例中,单个捕获设备可以输出多个颜色帧序列和/或多个深度帧序列(例如,以覆盖所捕获的现实世界场景的视野的不同部分)。在又一些其他示例中,表面数据帧序列600-1c的数据可以被布置为集成表面数据帧的序列,每个集成表面数据帧包括特定颜色帧、特定深度帧和特定元数据(例如,表示捕获参数集合606的数据),或以可用于特定实施方式的其他方式。
包括在颜色帧序列602的每个颜色帧内的数据可以类似于以上关于图5所描述的颜色数据508。然而,可以在稍微不同的时间捕获颜色帧序列602内的每个颜色帧,使得颜色帧序列602可以形成来自视图402-1的现实世界场景的视频类的表示。类似地,在深度帧序列604的每个深度帧内包括的数据可以类似于深度数据510,除了深度帧序列604内的每个深度帧可以在略微不同的时间(例如,与捕获颜色帧序列602中的颜色帧的时间同步的时间),使得深度帧序列604可以形成来自视图402-1的现实世界场景的另一视频类的表示。
包括在表面数据帧序列600-1c中的捕获参数集合606可以包括描述从其捕获表面数据帧序列600-1c的视图(即,在这种情况下为视图402-1)的元数据。如上所述,系统100可以在帧序列子集和/或虚拟现实数据集的生成中访问和使用元数据。例如,系统100可以基于元数据选择要将哪些表面数据帧序列包括在不同的帧序列子集中,并且可以进而基于这些帧序列子集生成不同的虚拟现实数据集。捕获参数集合606中包括的元数据可以包括指示在哪里和/或如何捕获包括在表面数据帧序列600-1c中的表面数据帧的各个方面的各种参数中的任何一个。捕获参数集合606中包括的捕获参数可以包括与现实世界场景的相应视图相关联的任何合适的捕获参数,如可以用于特定实施方式。
例如,捕获参数集合606可以包括表示相对于3D场景202捕获与3D场景202的视图402-1相对应的颜色和深度帧的位置的捕获参数。作为另一示例,捕获参数集合606可以包括表示捕获与3D场景202的视图402-1相对应的颜色和深度帧的角度(例如,捕获角度)的捕获参数。类似地,作为另一示例,捕获参数集合606可以包括表示捕获与3D场景202的视图402-1相对应的颜色和深度帧的视野的捕获参数。另外,作为又一个示例,捕获参数集合606可以包括表示捕获与3D场景202的视图402-1相对应的颜色和深度帧的图像质量的捕获参数。在又一些其他示例中,捕获参数集合606可以包括表示可以捕获与3D场景202的视图402-1相对应的颜色和深度帧的其他方面的任何其他合适的捕获参数。例如,捕获参数集合606可以包括表示捕获与视图402-1相对应的颜色和深度帧的特定编码、格式、帧速率等的参数。
捕获参数集合606可以按照可用于特定实施方式的任何方式与包括在表面数据帧序列600-1c中的其他数据集成。例如,在一些示例中,捕获参数集合606可以与分别包括在颜色帧序列602和深度帧序列604内的每个颜色帧和/或深度帧集成(例如,关于其重复)。在其他示例中,捕获参数集合606可以与每个单独的表面数据帧集成。按照这些方式,即使视图402在由表面数据帧序列600-1c表示的时间段内动态变化,捕获参数集合606也可以灵活地描述每个帧的捕获参数。在其他示例中,捕获参数集合606在整个表面数据帧序列600-1c所表示的时间段内可以是静态的。在这些示例中,捕获参数集合606可以与帧序列602和604的帧分开发送。例如,捕获参数集合606可以与颜色和深度帧的传输分开发送,诸如在颜色和深度帧的传输之前、在颜色和深度帧的传输开始时、在颜色和深度帧的传输之后、和/或在另一个合适的时间发送。
如上面提到的,图6B示出了表面数据帧序列600-1c的统一图形表示。具体地,图6B中的表面数据帧序列600-1c的表示示出了作为块的表面数据帧序列600-1c,其描绘了从特定视图(即视图402-1)观看时在该块前面的3D场景202的部分(即,包括现实世界的对象204-1的部分)。这种类型的表面数据帧序列表示形式将有助于说明以下描述的图中的其他表面数据帧序列。然而,要理解,使用诸如图6B所示的统一图形表示来表示的任何表面数据帧序列都可以包括在上述任何布置中结合图6A示出和/或描述的所有相同类型的数据。
如上描述,在3D场景202包括由相对于现实世界场景设置在不同位置(例如,与图4中的视图402相关联的位置)的多个捕获设备捕获的现实世界场景的元素的实施方式中,系统100可以访问描述由捕获设备捕获的表面数据帧序列(例如,诸如表面数据帧序列600-1c)的元数据。因此,基于该元数据,可以将这些捕获的表面数据帧序列中的一个或多个包括在虚拟现实数据集所基于的帧序列子集中。然而,尽管从视图402捕获的表面数据帧序列可以充分覆盖3D场景202的所有方面,但是对于系统100而言,提供包括在这些捕获的表面数据帧序列中包括的所有数据的虚拟现实数据集可能是低效率的、不切实际的或不希望的。例如,与视图402中的每个视图相关联的捕获设备(例如,诸如上述捕获设备502)可以被配置为捕获非常大量的非常详细的高质量数据,使得将所有捕获的数据提供给任何特定的媒体播放器设备是不可能的或不可行的(例如,由于网络带宽限制、数据使用成本、媒体播放器设备能力等)。
因此,如上面提到的,捕获的表面数据帧序列中表示的大量数据可用于生成3D场景202不同视图的虚拟化表示(例如,一个或多个虚拟化表面数据帧序列),将虚拟化表示提供给媒体播放器设备更为可行(例如,通过包含较少的冗余和/或无关的数据)。因此,在一些示例中,多个可用的表面数据帧序列(即,从中选择包括在帧序列子集中的表面数据帧序列)可以包括一个或多个虚拟化表面数据帧序列,这些虚拟化表面数据帧序列描述了与物理捕获设备捕获的现实世界场景的视图402不对齐的现实世界场景视图。类似地,在不包括现实世界场景的元素的3D场景202的实施方式中,所有表面数据帧序列可以是虚拟的(即,基于计算机生成的虚拟对象和风景)。
图7示出了3D场景202的多个视图,该3D场景202包括视图402(即,对应于如上描述的捕获的表面数据帧序列),并且还包括与当系统100针对本文描述的不同虚拟现实体验定制虚拟现实数据时可用于系统100的虚拟化表面数据帧序列对应的另外的示例性视图702(例如,视图702-1至702-38)。为了方便起见,图7进一步示出了3D场景202的区域302(以上参照图3描述),以帮助示出可以如何针对与不同区域302相关联的各种虚拟现实体验定制从视图702捕获的虚拟化表面数据帧序列。
在图7中,视图702具有与上述视图402相似的外观和功能。然而,为了将可以与物理捕获设备相关联的视图402与可以与系统100基于捕获的表面数据帧序列生成的虚拟化表面数据帧序列相关联的视图702进行区分(即,与直接由物理捕获设备捕获相反),视图402绘制为圆形,而视图702绘制为方形。另外,虽然每个视图402都这样单独标记,但是在图7中使用缩写符号标记了视图702。具体地,如多个视图702(即,视图702-1和702-2)顺带指出的那样,每个视图702-N仅用其对应的数字(“N”)标记,而不用“702-”根标记。因此,视图702-1由标有“1”的方形表示,视图702-2由标有“2”的方形表示,以此类推。如本文所使用的,可以说虚拟化的表面数据帧序列是从与表面数据帧序列所关联的视图702“捕获”或“虚拟化”的。要理解,与由物理捕获设备从视图402捕获的表面数据帧序列(即“捕获的表面数据帧序列”)相比,被认为是从视图702“捕获”的表面数据帧序列可能不是直接由物理捕获设备(例如捕获设备502)捕获的数据,而是可以基于其他表面数据帧序列(例如捕获的表面数据帧序列)内包括的数据进行虚拟化(例如渲染)。
与视图402一样,每个视图702可以与定义从相应视图702捕获的表面数据帧序列的各个方面的捕获参数(诸如,捕获(即虚拟化)相应表面数据帧序列的位置、角度、视野、图像质量等)的不同相应集合相关联。如上所述,与每个视图702相关联的某些捕获参数(例如,捕获角度和视野参数)可以由从每个视图702出发的虚线来建议。因此,如从图7变得显而易见的,当不仅通过物理数据捕获从视图402捕获3D场景而且通过虚拟化从视图702捕获3D场景时,系统100可以访问相对较多的表面数据帧序列,从中选择针对不同虚拟现实体验定制的帧序列子集。
为此,图8示出了与体验选择数据结构中的不同条目相对应的不同虚拟现实数据集所基于的示例性帧序列子集800(例如,帧序列子集800-1至800-18)。如图8所示,每个帧序列子集800(即,图表中的每一行)可以与特定条目号(例如,条目号1至18)、特定体验参数集合(即,“体验参数”下总结的参数)、以及表面数据帧序列的子集(即,在“表面数据帧序列”列中列举的)相关联。在本示例中,条目1到18分别对应于与同3D场景202的区域302-1到302-18相关联的虚拟现实体验。具体地说,条目1可以对应于区域302-1(在体验参数列中列为“Loc 1”),条目2可以对应于区域302-2(在体验参数列中列为“Loc 2”),以此类推。
在图8的示例中,最潜在的体验参数(例如,与哪个设备正被用于提供虚拟现实体验相关联的参数、与场景的几何形状相关联的参数等)从帧序列子集800到帧序列子集800是恒定的(例如,各个帧序列子集800包括“标准设备”、“标准场景”等)。然而,要理解,在某些实施方式中可以支持许多可提供的虚拟现实体验,每种虚拟现实体验包括具有更大方差的不同体验参数集合。另外,要理解,图8中所示的体验参数仅是示例性的,并且在各种实施方式中可以包括比图8中所示的体验参数更多或更少的体验参数。例如,在某些实施方式中,可以表示3D场景202内的表面,而不必在3D场景中的特定对象之间进行区分。这样,在这些实施方式中,可以不使用表示3D场景202中包括的对象的属性的体验参数。
在图8中示出为针对每个帧序列子集800选择的表面数据帧序列可指与视图702相关联的虚拟化表面数据帧序列。因此,例如,帧序列子集800-1(针对与区域302-1相关联的虚拟现实体验定制的虚拟现实数据集基于该帧序列子集)被示出为包括从视图702捕获的表面数据帧序列,这些表面数据帧序列提供了针对区域302-1定制的细节。具体地,帧序列子集800-1包括从视图702-1、702-2、702-9、702-10、702-16和702-32捕获的表面数据帧序列。如上面提到的,这些表面数据帧序列在本文中可以分别称为表面数据帧序列600-1v、600-2v、600-9v、600-10v、600-16v和600-32v。
针对帧序列子集800-1捕获的表面数据帧序列600可以共同包括针对与区域302-1相关联的虚拟现实体验定制的虚拟现实数据集所基于的数据。例如,当用户体验(例如,看、与之交互)在区域302-1中及其周围的3D场景202的各个方面时,可以通过表面数据帧序列600-1v、600-2v、600-9v和600-10v来表示与这些方面有关的高级别的细节。当用户从区域302-1朝3D场景202的其他区域看时,这些表面数据帧序列还将提供适当级别的细节(即,表示可以从区域302-1中的虚拟视点看到的尽可能多细节的数据,但是不会有更多细节)。捕获其他角度的一些表面数据帧序列也包含在帧序列子集800-1中,以允许用户查看3D场景202之外的区域(例如,在表面数据帧序列600-32v的情况下则朝页面顶部,或者,在表面数据帧序列600-16v的情况下则位于页面左侧)。同时,帧序列子集800-1包括相对较少的数据,该数据表示3D场景202的远离区域302-1的区域的高级别的细节。例如,表面数据帧序列600-29v(与视图702-29关联)可以为与区域302-18关联的虚拟现实体验提供有关对象204-2的适当量的细节,并且表面数据帧序列600-29v中的数据可能与同区域302-1相关联的虚拟现实体验较不相关。因此,如图8所示,表面数据帧序列600-29v被从帧序列子集800-1中排除,但是被包括在帧序列子集800-18中。
虽然仅详细描述了包括在帧序列子集800-1中的表面数据帧序列,但是要理解,可以按照类似的方式选择针对各种其他帧序列子集800(即,图8中示出了的以及未在图8中明确示出的帧序列子集800)的表面数据帧序列以在3D场景202的除区域302-1之外的其他区域302中同样提供针对虚拟现实体验定制的虚拟现实数据集。被示出为在图8中针对每个帧序列子集800选择的表面数据帧序列仅是示例性的。要理解,在某些实施方式中,取决于与帧序列子集相关联的虚拟现实体验的性质,可以针对每个帧序列子集800选择不同数量的表面数据帧序列。例如,针对特定虚拟现实体验选择的表面数据帧序列的数量可以部分地由3D场景的几何形状确定,使得针对沿着3D场景的边缘和/或角落的虚拟现实体验选择更少的表面数据帧序列,而针对在3D场景的中间或大量对象集中等处的虚拟现实体验选择更多的表面数据帧序列。
可以生成帧序列子集800(即,通过选择用于包括在帧序列子集中的表面数据帧序列)和/或按照可以用于特定实施方式的任何方式将帧序列子集800提供给提供不同虚拟现实体验的媒体播放器设备。例如,在某些实施方式中,在将虚拟现实数据集提供给与用户相关联的媒体播放器设备之前,可以标识和预定与多种可提供的虚拟现实体验相关联的多个体验参数集合。在这些示例中,当用户将虚拟视点移动穿过3D场景202时,媒体播放器设备可以访问针对预定虚拟现实体验定制的预定虚拟现实数据集。另外或可替代地,当3D场景202和其中包括的对象204随着用户的虚拟视点动态改变时,可以动态地标识与某些虚拟现实体验相关联的至少一些体验参数集合。在这些示例中,系统100可以确定(例如,使用人工智能或其他合适的技术)应该虚拟化与3D场景202的附加视图相关联的表面数据帧序列、应该生成与非预定的虚拟现实体验相关联的附加帧序列子集,等等。在某些示例中,系统100可以预测性地预期应该在实际需要新表面数据帧序列或帧序列子集之前创建它们。
作为系统100的一种这样的动态实施方式的说明,示出了帧序列子集800-8与定制位置(即“Loc 8(定制)”,而不是可以表示整个区域302-8的“Loc 8”))相关联。这是因为,在区域302-8中存在对象204-1的情况下,位于区域302-8不同部分的虚拟视点可能与不同的优势点相关联,从这些优势点可以看到不同的细节(例如,关于对象204-1的不同侧面的细节)。事实上,因为对象204-1位于区域302-8内(因此非常接近区域302-8内的任何虚拟视点),所以系统100可以确定帧序列子集800-8应该包括来自不同于视图402或702中任何一个的定制视图的附加定制表面数据帧序列。例如,系统100可在与对象204-1成一定角度的虚拟视点304的位置生成定制视图,并将来自该定制视图的虚拟化表面数据帧序列(即,称为表面数据帧序列600-定制)包括在针对帧序列子集800-8所选择的表面数据帧序列中,如图所示。
一旦系统100选择了要包含在特定虚拟现实数据集所基于的帧序列子集800中的表面数据帧序列600,系统100就可以按照任何合适的方式访问所选择的表面数据帧序列。例如,系统100(例如,管理设施104)本身可以捕获和/或虚拟化表面数据帧序列,系统100可以直接从捕获表面数据帧序列的捕获设备访问表面数据帧序列,系统100可以从现实世界场景捕获系统或生成虚拟化的或虚拟表面数据帧序列的虚拟生成捕获系统访问表面数据帧序列,或者系统100可以按照可用于特定实施方式的任何方式访问表面数据帧序列。在访问选择的表面数据帧序列之后,系统100(例如,管理设施104)可以基于所访问的表面数据帧序列生成特定虚拟现实数据集。举例来说,如下文将更详细描述,系统100可以处理表面数据帧序列以形成一个或多个传输流,该传输流包括表示所选择的表面数据帧内包括的颜色和深度数据的一个或多个视频数据流。
在一些示例中,可以针对与特定3D场景相关联的许多不同的可提供虚拟现实体验执行该选择和访问针对特定虚拟现实体验定制的特定表面数据帧序列并基于表面数据帧序列生成特定虚拟现实数据集以供提供特定虚拟现实的媒体播放器设备使用的过程。例如,系统100可以生成针对与图3和图7所示的每个区域302相关联的每种虚拟现实体验的定制虚拟现实数据集、以及其他虚拟现实数据集(例如,针对对象204附近的虚拟现实体验的不同虚拟现实数据集(诸如关于帧序列子集800-8所描述的)、除了位置以外的体验参数变化的不同虚拟现实数据集等)。如上面提到,在一些示例中,许多或所有这些虚拟现实数据集可以在被媒体播放器设备请求之前被预先定义和预生成,而在其他示例中,许多或所有虚拟现实数据集可以根据系统100确定的不同媒体播放器设备的需求动态地生成。
无论如何,对于系统100而言,可能希望将关于可用于不同虚拟现实体验的各种虚拟现实数据集的已知信息提供给系统100可以向其提供虚拟现实数据的各种媒体播放器设备。为此,如上所述,系统100可以生成具有多个条目的体验选择数据结构,每个条目对应于不同的虚拟现实数据集。体验选择数据结构可以被配置为当媒体播放器设备向不同用户提供不同虚拟现实体验时有助于媒体播放器设备动态选择不同条目。
为了进行说明,图9示出了示例性体验选择数据结构900,该示例性体验选择数据结构900被配置为有助于从可以由系统100生成的体验选择数据结构中包括的多个条目中动态选择不同的条目。如图所示,体验选择数据结构900在树结构中包括多个级别的决策节点902(例如,顶层的节点902-1、中间层的节点902-2至902-4、和较低层的节点902-5至902-13,使用了类似于上面相对于图7的视图702描述的符号的缩写标记符号)。在树结构的“叶节点”处,体验选择数据结构900包括多个条目904(例如,条目904-1至904-18,使用类似的缩写符号标记)。
体验选择数据结构900被示为有助于基于3D场景202中的位置(例如,用户的特定虚拟视点的当前位置)选择条目的空间划分方案。例如,与已经在区域302-8中选择了虚拟视点304的用户相关联的媒体播放器设备(因此,在理想情况下,会接收针对与区域302-8相关联的虚拟现实体验定制的虚拟现实数据集)可以如下使用体验选择数据结构900。首先,媒体播放器设备可以在节点902-1处确定虚拟视点304在3D场景202的左侧(即,不是在中间或右侧),并且因此可以分支到跟在标有“左”字样的箭头后面的节点902-2。接下来,媒体播放器设备可以确定虚拟视点304在3D场景202的左侧的中间部分中(即,不是在顶部或底部部分),并且因此可以分支到跟在标有“中间”字样的箭头后面的节点902-6。最终,媒体播放器设备可以确定虚拟视点304在3D场景202左侧的中间部分的右手侧(即,与左手侧相反),并且因此可以分支到跟在标有“右”字样的箭头后面的节点902-8。条目904-8可以对应于针对媒体播放器设备正提供给用户的虚拟现实体验定制的虚拟现实数据集(即,与虚拟视点304相关联的虚拟现实体验)。例如,条目904-8可以对应于基于帧序列子集800-8的虚拟现实数据集。
当不同媒体播放器设备向用户提供不同虚拟现实体验时(例如,当用户使虚拟视点304在3D场景202中移动时、以及当使用其他媒体播放器设备体验3D场景202的其他用户使其他相应虚拟视点在3D场景202中移动时),媒体播放器设备每一个可以按照与上文针对条目904-8的选择具体描述的相同方式通过体验选择数据结构900的方式选择不同的条目904。
体验选择数据结构900示出了有助于媒体播放器设备选择条目的一种示例性结构。具体地,体验选择数据结构900采用基于空间划分方案的树结构,以仅基于虚拟视点的空间定位来有助于条目选择。在体验选择数据结构900的示例中,根据基于绘制有3D场景202的页面的定向系统,对3D场景202进行划分和引用(即,通过用诸如“左””、“右”、“上”和“下”等描述符来引用3D场景202的部分)。然而,要理解,可以根据任何合适的定向系统并且使用可以用于特定实施方式的任何合适的描述符(例如,数字描述符、笛卡尔坐标描述符等)来划分和引用3D场景。
另外,要理解,尽管图9的示例示出了将3D场景202的平面划分为三份,在需要将3D场景202划分为可被2整除的部分的某些实施方式中可以使用高效选择算法。例如,可以使用二进制空间划分树、八叉树、k维树和/或可以用于特定实施方式的任何其他合适的结构来实现与体验选择数据结构900类似的体验选择数据结构的树结构。此外,虽然所有条目904都被示出为在体验选择数据结构900的树结构内处于相同的深度级别,但是应当理解,条目904可以在体验选择数据结构900内处于任何深度级别,并且可以处于可以用于特定实施方式的不同深度级别。例如,具有更低深度级别(即,在更少的节点902下方)的条目904可以覆盖3D场景的更大区域,而具有更高深度级别(即,在更多的节点902之下)的条目904可以覆盖3D场景的更小区域。在某些示例中,如可以用于特定实施方式,可以类似地使用基于除树结构和空间划分方案之外的其他结构和/或方案的体验选择数据结构。
一旦媒体播放器设备已经通过体验选择数据结构900的方式选择了条目(例如,如上描述,条目904-8),则系统100可以检测到媒体播放器设备已经选择了该条目并且可以按照任何合适的方式提供与媒体播放器设备的所选条目相对应的特定虚拟现实数据集。例如,与特定虚拟现实数据集相对应的所选条目可以包括允许媒体播放器设备访问特定虚拟现实数据集的数据链接。这样,系统100可以基于所选择的条目(例如,条目904-8)中包括的数据链接接收(例如,从媒体播放器设备)访问针对特定虚拟现实体验定制的特定虚拟现实数据集(例如,针对与区域302-8相关联的定制虚拟现实体验定制的且基于帧序列子集800-8的虚拟现实数据集)的请求。响应于接收到该请求,系统100可以向媒体播放器设备提供针对特定虚拟现实体验定制的特定虚拟现实数据集。
在一些实施方式中,在大多数或所有条目904是在一个时间点被确定(例如,基于空间划分、基于人工智能、基于另一合适的技术等)的意义上,体验选择数据结构900可以是相对静态的,然后维持每个条目904的虚拟现实数据集以准备好流传输到请求特定条目904的媒体播放器设备。此外,如上面提到的,在某些示例中,选择用于包括在不同虚拟现实数据集所基于的帧序列子集(例如,帧序列子集800)中的表面数据帧序列可以动态地执行。这样,在这些示例中,体验选择数据结构900可以类似地是动态体验选择数据结构。例如,动态体验选择数据结构900中包括的条目904可以响应于相对于3D场景202发生的事件而改变(例如,可以添加或删除条目、条目中包括的数据链接可以改变成指向不同虚拟现实数据集的链接等)。
体验选择数据结构900可以按照可用于特定实施方式的任何方式编码、以数据表示、并提供(即,发送)。例如,如果体验选择数据结构900是动态变化的,则可能期望包括体验选择数据结构900作为提供给媒体播放器设备的虚拟现实数据集的一部分(例如,包括在可以用来分发虚拟现实数据集的传输流中),使得媒体播放器设备不断地接收体验选择数据结构900的更新副本。在其他示例中,可以将体验选择数据结构900与虚拟现实数据集分开发送到媒体播放器设备,或者可以使其能被媒体播放器设备通过其他合适的方式访问。
另外,体验选择数据结构900可以被提供给任何合适的系统或设备并由其使用。例如,尽管上面的描述主要集中于客户端侧媒体播放器设备对体验选择数据结构900的使用,但是应当理解,在某些实施方式中,体验选择数据结构900可以被提供给服务器侧系和/或过程并由其使用。作为一个示例,系统100可以在虚拟现实数据提供者管道内向系统100下游(即,在随后的处理阶段)的虚拟现实数据集复用系统提供体验选择数据结构900,在该虚拟现实数据提供者管道中,按照处理阶段的顺序逐步处理虚拟现实数据。虚拟现实数据集复用系统可以与系统100通信耦合,并且可以被配置为动态地提供(例如,向虚拟现实数据集复用系统下游的一个或多个媒体播放器设备)针对不同虚拟现实体验定制的一个或多个不同虚拟现实数据集。例如,虚拟现实数据集复用系统可以基于从媒体播放器设备接收的动态数据提供虚拟现实数据集,该动态数据表示媒体播放器设备分别提供给相应用户的当前虚拟现实体验。
为了进行说明,图10示出了示例性配置1000,在该示例性配置1000中,示例性虚拟现实媒体提供者系统通过使用虚拟现实数据集复用系统针对不同虚拟现实体验定制虚拟现实数据。具体地,如图10所示,服务器侧虚拟现实媒体提供者系统1002(“提供者系统1002”)包括可操作地且通信地耦合在一起的捕获管理系统1004、系统100的实施方式、以及虚拟现实数据集复用系统1006(“复用系统1006”)。提供者系统1002可以通过网络1008向一个或多个客户端侧媒体播放器设备(包括由用户1012使用的媒体播放器设备1010)提供(例如,发送、流传输等)虚拟现实数据(例如,特定虚拟现实数据集)。
在提供者系统1002内,系统100可以与捕获管理系统1004配合使用,以访问描述可用于包括在不同帧序列子集中的多个表面数据帧序列的元数据,标识描述可向用户提供的不同虚拟现实体验的不同体验参数集合,访问表面数据帧序列使得可以将表面数据帧序列封装为虚拟现实数据集,等等。为此,捕获管理系统1004可以生成表面数据帧序列(包括描述表面数据帧序列的元数据)并将其提供给系统100,包括:捕获的表面数据帧序列(即,物理捕获设备从现实世界场景的不同视图捕获的表面数据帧序列)、虚拟化的表面数据帧序列(即,对应于现实世界场景的定制视图并基于捕获的表面数据帧序列虚拟化的表面数据帧序列)、虚拟表面数据帧序列(即,表示虚拟场景或融合现实场景的虚拟元素的表面数据帧序列)等。
随后,一旦系统100已经针对各种帧序列子集800分析并选择了表面数据帧序列并生成了体验选择数据结构900,则系统100可以将体验选择数据结构900提供给复用系统1006。复用系统1006可以被包括在系统100的某些实施方式中,或者如配置1000所示,它可以充当系统100和媒体播放器设备1010之间的媒介。在任何一种情况下,复用系统1006都可以接收体验选择数据结构900(即,从系统100接收)和表示所提供的当前虚拟现实体验的动态数据(例如,从媒体播放器设备1010接收),并且可以充当媒介以帮助尽可能高效地向媒体播放器设备1010提供最相关的虚拟现实数据。为此,复用系统1006可以包括人工智能,该人工智能被配置为监测和追踪用户1012的移动和已经提供给媒体播放器设备1010的虚拟现实数据的使用,以尝试确定图案,预测媒体播放器设备1010在请求数据之前媒体播放器设备1010需要什么数据,以及智能地提供与媒体播放器设备1010相关的、高效的、高度定制的数据。
作为一个示例,复用系统1006可以在预期用户可能会采取的行动或在3D场景202中可能发生的事件的情况下确定应该将多个虚拟现实数据集(即,对应于体验选择数据结构900中的多个条目904)发送到媒体播放器设备1010。例如,当前可以使用一个提供的虚拟现实数据集,而可以缓冲另一个虚拟现实数据集并准备在短时间内预期使用。作为另一个示例,复用系统1006可以帮助确保在体验选择数据结构900中表示和包括的和/或提供给媒体播放器设备1010的每个帧序列子集是稳健的且功能齐全的帧序列子集,使得媒体播放器设备1010将能够基于帧序列子集中的表面数据帧序列向用户1012呈现虚拟现实媒体内容,而不管用户1012的行为如何。例如,复用系统1006可以确保提供给媒体播放器设备101 0的任何虚拟现实数据集将允许用户1012朝任何方向看都不会看到黑屏或低质量图像。
网络1008可以包括提供者特定的有线或无线网络(例如,电缆或卫星载波网络或移动电话网络)、互联网、广域网、内容传递网络或任何其他合适的网络。数据可以使用如可服务于特定实施方式的任何通信技术、设备、媒体和协议在提供者系统1002和媒体播放器设备1010(以及未明确示出的其他媒体播放器设备)之间流动。
用户1208可以使用媒体播放器设备1010来访问和体验提供者系统1002提供的虚拟现实媒体内容。例如,媒体播放器设备1010可以被配置为生成供用户1012从任意虚拟视点(例如,用户选择的且与3D场景202内的任意虚拟位置对应的动态可选择虚拟视点)体验的3D场景202的3D表示。为此,媒体播放器设备1010可以包括(或者由实现为)任何能够呈现3D场景202的视野并且能够检测来自用户1012的用户输入,以随着用户1012体验3D场景202的虚拟表示而动态更新呈现在视野内的部分3D场景202的设备。
配置1000示出了某种通用配置,在该配置中,系统100可以与其他系统和设备配合使用以定制虚拟现实数据。然而,要理解,在某些实施方式中,系统100和使用该系统的配置可以被配置为根据特定系统要求进行操作。具体来说,系统100的某些配置可以用于定制从任意大集合的数据导出的虚拟现实数据和/或向任意大量的不同媒体播放器设备提供定制的虚拟现实数据。结果,在某些示例中,由系统100处理的数据量可能极大,并且因此可能需要大量的计算能力(例如,来自许多联网并一起互操作的服务器的计算能力)以执行本文描述的功能性。对于向许多不同媒体播放器设备实时(例如,当在现实世界中发生事件时)提供虚拟现实数据的系统100的实施方式(例如,以及提供者系统1002的实施方式)而言尤其如此。
图11至图14示出了系统100的特定方面,这些方面可以促进系统100扩增以应对如本文描述的针对任意大小的3D场景、针对任意数量的可用表面数据帧序列、针对任意级别的细节和/或图片质量等的虚拟现实数据定制。具体地,通过根据以下描述的原理实施系统100,可以按照非常灵活且可扩展的方式执行和实施本文描述的方法和系统,这些方式同样可以向虚拟现实内容的提供者和用户提供各种优点。例如,提供者可以通过向系统100添加更多的硬件(例如,额外的服务器、额外的处理器等)来扩展系统100以实际上满足任何系统要求,而用户在无需过度使用数据的情况下即可体验到细节生动的大型有趣的3D场景。
图11示出了示例性配置1100,在该配置1100中,另一示例性虚拟现实媒体提供者系统定制了虚拟现实数据。配置1100与上述配置1000具有某些相似性。例如,与配置1000类似,配置1100包括虚拟现实媒体提供者系统(在这种情况下,虚拟现实媒体提供者系统1102(“提供者系统1102”)),其包括捕获管理系统1004(如上描述)和系统100的实施方式。另外,配置1100包括网络1008和与用户1012相关联的媒体播放器设备1010(也如上描述)。尽管配置1100未示出提供者系统1102的任何其他元素(例如,诸如由提供者系统1102实现的虚拟现实媒体提供者管道中包括的复用系统1006和/或其他系统),但应理解,在某些实施方式中,复用系统1006和/或其他合适的元件也可以存在于配置1100中,如可以用于特定实施方式。
上面描述的提供者系统1102与提供者系统1002之间的主要区别在于提供者系统1102包括系统100的实施方式,该实施方式更明确地说明了不同计算资源(例如,由于系统100的处理要求因实施方式的不同而有所不同而可以直接添加到系统100或从系统100删除的不同服务器)可以互操作以执行本文描述的系统100的功能性的方式。具体地,如图11所示,系统100可以包括多个关守服务器1104(例如,关守服务器1104-1至1104-N)、一个或多个管理服务器1106(图11中仅示出了一个)、以及同步服务器1108。服务器1104至1108可以表示如可以用于特定实施方式的任何类型的离散计算资源。例如,服务器1104至1108中的每一个都可以由单独的计算机(例如,单独的服务器计算机)、刀片服务器内的单独的刀片、与单个计算机关联的单独的处理器、和/或任何其他类型的离散计算资源来实现。在某些实施方式中,由服务器1104至1108表示的某些服务器也可以组合在单个计算资源上。例如,系统100可以包括多个关守服务器和一个执行管理服务器1106和同步服务器1108两者的功能性的附加服务器。
每个关守服务器1104可以负责处理一个或多个表面数据帧序列(例如,从捕获管理系统1004接收的)。例如,如果表面数据帧序列包括较高级别的细节和大量数据,则每个关守服务器1104可以负责较少的表面数据帧序列(少至一个表面数据帧序列,如果该表面数据帧序列是每个关守服务器所能够处理的所有表面数据帧序列)。相反,如果表面数据帧序列包括较低级别的细节和/或较少量的数据(例如,或者如果关守服务器1104包较强的计算资源),则每个关守服务器1104可以负责多个表面数据帧序列,或者,在一些实施例中,如果关守服务器1104能够处理所有可用表面数据帧序列,则单个关守服务器1104可以负责所有可用表面数据帧序列。
在操作中,第一关守服务器可以访问包括描绘3D场景的特定视图的颜色和深度帧的第一表面数据帧序列,而第二关守服务器可以访问包括描绘3D场景的不同视图的颜色和深度帧的第二表面数据帧序列。例如,参考上述帧序列子集800-8的示例,关守服务器1104-1可以访问被选择来包括在帧序列子集800-8中的某些表面数据帧序列,诸如表面数据帧序列600-10v、600-11v和600-18v(即分别与视图702-10、702-11和702-18关联的表面数据帧序列)。同时,单独的关守服务器,关守服务器1104-2,可以访问被选择用于包括在帧序列子集800-8中的其他表面数据帧序列,诸如表面数据帧序列600-19v、600-24v、600-25v和600-定制(即分别与视图702-19、702-24、702-25以及与虚拟视点304相关联的定制视图相关联的表面数据帧序列)。
第一关守服务器(即,在该示例中,关守服务器1104-1)可以响应于从管理服务器1106(如下描述)发送的请求,通过相应的单独的运输流,向管理服务器1106(例如,通过网络1008或其他合适的通信连接)发送第一关守服务器所负责的表面数据帧序列中包括的颜色和深度帧(即表面数据帧序列600-10v、600-1 1v和600-18v)。与第一关守服务器的发送同步地,第二关守服务器(即,在该示例中,关守服务器1104-2)可以响应于该请求,通过其他相应的单独的运输流,向管理服务器1106(例如,通过网络1008或其他合适的通信连接)相似地发送第二关守服务器所负责的表面数据帧序列中包括的颜色和深度帧(即表面数据帧序列600-19v、600-24v、600-25v和600-定制)。
为了进行说明,图12示出了通过单独的传输流发送的表面数据帧序列。具体地,如图所示,分别在单独的传输流1202(即分别是传输流1202-10、1202-1 1、1202-18、1202-19、1202-24、1202-25和1202-定制)中发送如上描述的针对帧序列子集800-8选择的表面数据帧序列600(即,表面数据帧序列600-10v、600-11v、600-18v、600-19v、600-24v、600-25v、600-定制)。
如本文所使用,“传输流”可以指用于封装数据以便有利于将数据从一个设备或系统发送(即,传输)到另一设备或系统、渲染或处理或分析数据、和/或出于可用于特定实施方式的其他目的的数据结构。在一些示例中,传输流可以包括一个或多个数据流(例如,一个或多个视频数据流)和/或其他数据,诸如元数据等。传输流可以被实现为可以用于特定实施方式的任何类型的传输流。例如,本文描述的某些传输流(例如,传输流1202)可以被实现为MPEG传输流、MPEG-2传输流或另一种便于数据传输的合适的数据结构,诸如表面数据帧序列、视频数据流等。
返回图11,关守服务器1104可以与管理服务器1106和/或同步服务器1108配合以将相应表面数据帧序列的单独帧(例如,颜色和深度帧)同步发送到管理服务器1106,管理服务器1106随后可以生成被配置用于发送到媒体播放器设备1010的虚拟现实数据集。例如,继续上述示例,管理服务器1106可以选择图12所示的表面数据帧序列600用于包括在帧序列子集800-8中。然后,管理服务器1106可以向关守服务器1104-1和1104-2发送请求(即,上面提到的请求,响应于该请求,关守服务器1104-1和1104-2同步发送其相应的颜色和深度帧)。作为响应,管理服务器1106可以接收(例如,通过网络1008从关守服务器1104-1接收)包括在关守1104-1所负责的表面数据帧序列中的颜色和深度帧(例如,通过单独的传输流)。类似地,并且与从关守服务器1104-1接收颜色和深度帧同步,管理服务器1106可以接收(例如,通过网络1008从关守服务器1104-2接收)包括在关守1104-2所负责的表面数据帧序列中的颜色和深度帧(例如,通过单独的传输流)。
可以按照可以用于特定实施方式的任何方式来执行通过不同的单独的传输流对包括在不同表面数据帧序列中的颜色和深度帧的同步传输。例如,在某些实施方式中,关守服务器1104和/或管理服务器1106可以与同步服务器1108通信和/或配合以促进将颜色和深度帧从关守服务器1104同步传输到管理服务器1106。
具体地,继续上述相对于帧序列子集800-8的示例,关守服务器1104-1可以将指示在关守服务器1104-1已经接收到的其中一个表面数据帧序列内包括的第一颜色和深度帧(例如,在例如表面数据帧序列600-10v内包括的颜色和深度帧)的数据发送给同步服务器1108。关守服务器1104-2可以类似地将指示在关守服务器1104-2已经接收到的其中一个表面数据帧序列内包括的第二颜色和深度帧(例如,在例如表面数据帧序列600-19v内包括的且与第一颜色和深度帧对应的颜色和深度帧)的数据发送给同步服务器1108。响应于指示已经接收到第一和第二颜色和深度帧的数据的发送,关守服务器1104-1和1104-2可以从同步服务器1108接收指示指定时间帧的数据,在该时间帧中,第一和第二颜色和深度帧将被同步发送,并且关守服务器1104-1和1104-2可以在该指定时间帧内将第一和第二颜色和深度帧(以及来自帧序列子集800-8中包括的其他表面数据帧序列的其他颜色和深度帧)发送给管理服务器1106。
为了进行说明,图13示出了示例性时间线1300,其描绘了关守服务器1104可以接收颜色和深度帧的时间帧1302(例如,时间帧1302-1至1302-7)和被指定用于关守服务器1104同步发送颜色和深度帧的时间帧1304(例如,时间帧1304-1至1304-4),如上所述。具体地,在每个时间帧1302内绘制的每个垂直线可以标记特定关守服务器1104接收到该关守服务器所负责的特定表面数据帧序列的特定颜色和深度帧的时刻。例如,时间帧1302-1内的垂直线1306可以标记关守服务器1104-1接收到包括在表面数据帧序列600-10v内的第一颜色和深度帧的时刻,而时间帧1302-1内的另一垂直线1308可以标记关守服务器1104-2接收到包括在表面数据帧序列600-19v中的第二颜色和深度帧的时刻(相对接近于接收到第一颜色和深度帧的时刻)。按照类似的方式,在时间帧1302-1内包括的其他垂直线可以标记关守服务器1104(例如,关守服务器1104-1、1104-2或其他关守服务器1104)接收到包括在其他表面数据帧序列(例如,包括在帧序列子集800-8中的其他表面数据帧序列或在其他帧序列子集800中使用的表面数据帧序列)中的其他颜色和深度帧的其他时刻。
在关守服务器1104开始发送在任何特定时间帧1302中接收到的颜色和深度帧之前,可以包括任意长度的延迟1310(例如,几毫秒、几秒、几分钟等)。然而,在所有关守服务器1104已针对所有表面数据帧序列接收到所有对应的颜色和深度帧之后,同步服务器1108可以指定(例如,调度)要发送颜色和深度帧的时间帧1304。例如,对于在时间帧1302-1期间接收到的所有颜色和深度帧,同步服务器1108可以指定时间帧1304-1(即,在延迟1310之后),在此期间,每个相应的关守服务器1104将发送已请求的任何表面数据帧序列(例如,至少一个帧序列子集800中包括的所有表面数据帧序列)的颜色和深度帧。
因此,例如,如上描述,如果管理服务器1106已向关守服务器1104-1和1104-2请求包括在帧序列子集800-8中的表面数据帧序列,则可以在时间帧1304-1期间将在时间帧1302-1期间接收的并且与这些表面数据帧序列相关联的每个颜色和深度帧同步地发送到管理服务器1106。具体地,例如,可以在由垂直线1312标记的时间发送第一颜色和深度帧(即,来自表面数据帧序列600-10v),而可以在垂直线1314标记的时间发送第二颜色和深度帧(即,来自表面数据帧序列600-19v)。
颜色和深度帧可以由关守服务器1104以任何合适的方式发送到管理服务器1106。例如,在某些实施方式中,在每个时间帧1304期间,负责管理服务器1106所请求的表面数据帧序列的所有关守服务器1104可以通过点对多点协议(例如,使用用户数据报协议(“UDP”)等)发送来自所请求的表面数据帧序列的特定颜色和深度帧,使得管理服务器1106可以接收其已请求的特定颜色和深度帧。按照这种方式,可以彼此并行操作以准备和封装多个不同虚拟现实数据集的多个管理服务器1106(在图11中未明确示出)可以请求和接收它们相应虚拟现实数据集所基于的颜色和深度帧,而忽略其他颜色和深度帧。因此,利用足够数量的关守服务器1104和管理服务器1106,可以将任意数量的表面数据帧序列重组为任意数量的虚拟现实数据集所基于的任意数量的帧序列子集。
在接收到包括所选表面数据帧序列的颜色和深度帧的同步传输后,管理服务器1106可以封装从关守服务器1104同步接收的颜色和深度帧以形成附加传输流(例如,与关守服务器1104用于将帧传输到管理服务器1106的传输流分开的传输流),该附加传输流包括对应于被选择来包括在帧序列子集800-8中的表面数据帧序列的视频数据流。具体地,附加传输流可以包括与每个表面数据帧序列600-10v、600-11v、600-18v、600-19v、600-24v、600-25v和600-定制相关联的颜色视频数据流和深度视频数据流。
在一些示例中,附加传输流可以被配置为用于流传输到媒体播放器设备。这样,包括这些视频数据流的附加传输流可以实现针对与帧序列子集800-8相关联的虚拟现实体验定制的虚拟现实数据集。换句话说,针对与帧序列子集800-8相关联(即,与虚拟视点304相关联)的虚拟现实体验定制的虚拟现实数据集可以包括该附加传输流或由其实现。
为了进行说明,图14示出了被实现为(例如被封装为)传输流1402的示例性虚拟现实数据集1400,该传输流1402包括多个视频数据流1404(即,视频数据流1404-10、1404-11、1404-18、1404-19、1404-24、1404-25和1404-定制)。传输流1402可以被配置用于经由网络1008流传输到媒体播放器设备1010,并且因此可以与体验选择数据结构900的条目904-8相关联(例如,由包括在其中的数据链接表示)。
可以按照任何合适的方式生成虚拟现实数据集1400。例如,系统100可以访问被选择来包括在帧序列子集800-8中的表面数据帧序列600,并且可以基于所访问的表面数据帧序列来生成虚拟现实数据集1400。更具体地,系统100可以通过生成分别与不同的访问表面数据帧序列相关联的多个视频数据流(例如,将每个表面数据帧序列编码为颜色视频数据流和深度视频数据流)并且然后生成包括这多个视频数据流的传输流1402,来生成虚拟现实数据集1400。在某些示例中,可以预先执行(例如,由捕获管理系统1004、关守服务器1104、或系统100或提供者系统1102内的其他地方)将每个表面数据帧序列编码为颜色视频数据流和深度视频数据流。例如,由关守服务器1104发送的表面数据帧序列600可能已经被编码为视频数据流1404。
如上面提到的,可以动态地生成虚拟现实数据集(诸如虚拟现实数据集1400)(例如,基于媒体播放器设备1010所请求的或被确定需要的内容,“按需”和/或“按订单”生成),或可以基于系统100确定可提供的虚拟现实体验提前预封装虚拟现实数据集。另外,尽管传输流1402示出了可以封装虚拟现实数据集1400的一种示例性方式,但是将理解的是,可以按照如可以用于特定实施方式的各种其他合适的方式来封装虚拟现实数据集1400。例如,在某些示例中,虚拟现实数据集1400可以作为一个以上的传输流的一部分来发送,或者可以使用纹理图集技术,或可以有助于将视频数据流1404中的数据高效且有效地提供到媒体播放器设备1010和/或其他媒体播放器设备的其他数据封装或数据传输技术和/或协议。
一旦虚拟现实数据集1400已经被生成(例如,与按照相同方式生成但是针对其他虚拟现实体验定制的多个其他虚拟现实数据集选项一起)并且已经被请求(例如,通过选择提供给媒体播放器设备1010的体验选择数据结构内的条目),便可以将虚拟现实数据集1400提供给媒体播放器设备1010。为此,媒体播放器设备1010和提供者系统1102(例如系统100)可以按照任何合适的方式进行交互。例如,媒体播放器设备1010可以(例如,从系统100)访问体验选择数据结构900,并且选择(例如,通过体验选择数据结构900)与针对特定虚拟现实体验(例如,将虚拟视点304指向3D场景202的区域302-8的用户1012的虚拟现实体验)定制的特定虚拟现实数据集(例如,虚拟现实数据集1400)对应的特定条目(例如,在以上示例中的条目904-8)。媒体播放器设备1010然后可以向系统100提供表示所选择的条目(例如,条目904-8)的数据,并且作为响应,可以接收针对特定虚拟现实体验定制的特定虚拟现实数据集(例如,虚拟现实数据集1400)。例如,媒体播放器设备1010可以通过网络1008接收包括多个视频数据流的传输流(例如,包括视频数据流1404的传输流1402)。
在接收到特定虚拟现实数据集之后,媒体播放器设备1010可以处理特定虚拟现实数据集以向用户1012提供特定虚拟现实体验。例如,使用虚拟现实数据集1400,媒体播放器设备1010可以按照较高级别的细节呈现包括对象204-1和区域302-8附近的其他对象的虚拟现实媒体内容,而不会浪费带宽在与用户1012能够从虚拟视点304看到的3D场景202的其他区域相关的更多细节。
当系统100正向媒体播放器设备1010提供(例如,流传输)虚拟现实数据集1400时,系统100可以检测到媒体播放器设备1010选择了(例如,通过体验选择数据结构900)与针对不同虚拟现实体验定制的不同虚拟现实数据集对应的不同条目(例如,除了先前选择的条目904-8以外的条目)。这样,响应于检测到媒体播放器设备1010选择了不同的条目,系统100可以向媒体播放器设备1010提供针对不同虚拟现实体验定制的不同虚拟现实数据集。例如,如果原来的虚拟现实体验与3D场景202的区域302-8相关联,则新的、不同的虚拟现实体验可以与3D场景202的与区域302-8不同的区域302(诸如区域302-9)相关联。因此,媒体播放器设备1010可以响应于接收到指示虚拟视点304从3D场景202的区域302-8中的第一位置移至区域302-9中的第二位置的用户输入(例如,来自用户1012),选择与针对不同虚拟现实体验定制的不同虚拟现实数据集相对应的不同条目。
提供给媒体播放器设备1010的虚拟现实数据集可以表示媒体播放器设备1010可以被配置用来渲染的虚拟现实媒体内容。例如,如上所述,虚拟现实数据集可以包括或表示可以由媒体播放器设备1010渲染的多个2D视频数据流(例如,与各个视图和虚拟化投影相关联的颜色数据和深度数据相关联的2D视频数据流),以便从3D场景202内的任何任意虚拟视点(例如,包括与任何捕获设备视图或定制视图不对齐但用户1012可能感兴趣的虚拟视点,诸如虚拟视点304)呈现3D场景202的视图。可以通过网络1008将虚拟现实数据集分发到一个或多个媒体播放器设备,诸如与用户1012相关联的媒体播放器设备1010。例如,提供者系统,诸如提供者系统1002或1102,可以将虚拟现实数据集提供给媒体播放器设备1010,使得用户1012可以使用媒体播放器设备1010虚拟地体验3D场景202。
在一些示例中,用户1208可能不希望被限制在由3D场景202内的一个或多个离散位置。这样,提供者系统可以在被提供给媒体播放器设备1010的各个虚拟现实数据集内提供足够的数据,以允许不仅从视图402和/或702而且从与3D场景202内的任意虚拟位置对应的任何动态可选择虚拟视点来呈现3D场景202。例如,当用户1012正在使用媒体播放器设备1010体验3D场景202时,用户1012可以选择动态可选择虚拟视点。
如本文所使用的,“任意虚拟位置”可以指与3D场景相关联的空间中的任何虚拟点。例如,任意虚拟位置不限于围绕3D场景的固定位置(例如,与视图402和/或定制视图702相关联的固定位置),还包括在与视图402和/或定制视图702相关联的位置之间的所有位置。在一些示例中,这样的任意虚拟位置可以对应于3D场景202中最理想的虚拟视点。例如,如果3D场景202包括篮球比赛,则用户1012可以动态选择在篮球场上的任何的任意虚拟位置中体验比赛的虚拟视点。例如,用户可以动态地选择他或她的虚拟视点以跟随篮球在篮球场上下运动并体验篮球比赛,就好像在比赛进行中站在篮球场上一样。
图15示出了可由用户1012用来体验虚拟现实媒体内容的各种示例性类型的媒体播放器设备1010。具体地,如图所示,媒体播放器设备1010可以采用多种不同形状因子中的一种,诸如包括头戴式显示屏的头戴式虚拟现实设备1502(例如,虚拟现实游戏设备)、个人计算机设备1504(例如,台式计算机、膝上型计算机等)、移动或无线设备1506(例如,智能电话、平板设备等,可能会借助于头戴式设备安装到用户1012的头部)、或通过可以服务于特定实施方式以有助于接收和/或呈现虚拟现实媒体内容的任何其他设备或设备配置。不同类型的媒体播放器设备(例如,头戴式虚拟现实设备、个人计算机设备、移动设备等)可以为用户1012提供具有不同沉浸度的不同类型的虚拟现实体验。
图16示出了示例性虚拟现实体验1600,在该示例性虚拟现实体验1600中,向用户1012呈现相对于现实世界场景从与示例性任意虚拟位置对应的动态可选择虚拟视点体验到的表示3D场景的示例性虚拟现实媒体内容。具体地,虚拟现实媒体内容1602被呈现在视野1604内,该视野1604从虚拟视点示出了3D场景,该虚拟视点对应于正在进行投篮的3D场景1606的表示内的篮球标准之下的任意虚拟位置。通过提供用户输入(例如,头部移动、键盘输入等)以环顾和/或移动(即,动态选择要体验的虚拟视点)3D场景1606,用户1012体验3D场景1606。
例如,视野1604可以提供窗口,用户1012可以通过该窗口轻松自然地环顾3D场景1606的虚拟表示。视野1604可以由媒体播放器设备1010呈现(例如,呈现在媒体播放器设备1010的显示屏上)并且可以包括描绘3D场景1606中在用户1012周围的对象的视频。此外,当用户1012体验3D场景1606时,视野1604可以响应于用户1012提供的用户输入而动态变化。例如,媒体播放器设备1010可以检测用户输入(例如,移动或旋转呈现有视野1604的显示屏)。作为响应,视野1604可以显示不同的对象和/或从不同虚拟视点或虚拟位置看到的对象,而不是从先前的虚拟视点或虚拟位置看到的对象。
在图16中,3D场景1606被示为半球体,指示用户1012可以在3D场景1606内的任何方向上看,基本上可以从用户1012当前选择的篮球标准下的位置的虚拟视点向前、向后、向左、向右和/或向上看。在其他示例中,3D场景1606可以包括整个360°乘180°的球体,使得用户1012也可以向下看。另外,用户1012可以移动到3D场景1606内的其他位置(即,动态选择不同的动态可选择虚拟视点)。例如,用户1012可以选择在半场处的虚拟视点、面向篮球标准的罚球线处的虚拟视点、悬置在篮球标准上方的虚拟视点等。
图17示出了用于定制虚拟现实数据的示例性方法1700。尽管图17示出了根据一个实施例的示例性操作,但其他实施例可以省略、增加、重新排序和/或修改图17中所示的任何操作。图17所示的操作中的一个或多个可以由系统100、其实施方式、和/或上面描述为与系统100相关联(例如,以通信方式耦合至系统100、被配置为与系统100互操作,等等)的另一系统来执行。
在操作1702中,虚拟现实系统可以访问描述分别描绘3D场景的不同视图的多个表面数据帧序列的元数据。可以按照本文描述的任何一种方式来执行操作1702。
在操作1704中,虚拟现实系统可以标识描述特定虚拟现实体验的体验参数集合。例如,可以将特定虚拟现实体验包括在与3D场景相关联的且可分别通过媒体播放器设备提供给用户的多种虚拟现实体验内。在一些示例中,媒体播放器设备可以被配置为通过处理针对特定虚拟现实体验定制的特定虚拟现实数据集向用户提供特定虚拟现实体验。可以按照本文描述的任何一种方式来执行操作1704。
在操作1706中,虚拟现实系统可以从多个表面数据帧序列选择用于包括在特定虚拟现实数据集所基于的帧序列子集中的表面数据帧序列。例如,可以基于在操作1704中标识出来的体验参数集合和/或基于与在操作1702中访问的多个数据帧序列相关联的元数据来选择用于包括在帧序列子集中的表面数据帧序列。可以按照本文描述的任何一种方式来执行操作1706。
在操作1708中,虚拟现实系统可以生成被配置为有助于动态选择不同题目的体验选择数据结构。更具体地说,体验选择数据结构可以在媒体播放器设备通过处理不同虚拟现实数据集向用户提供不同虚拟现实体验时,有助于媒体播放器设备从体验选择数据结构内包括的多个条目动态选择不同条目。在一些示例中,多个条目可以分别与不同虚拟现实数据集对应,虚拟现实数据集是针对与3D场景相关联的多种虚拟现实体验内包括的不同虚拟现实体验定制的。可以按照本文描述的任何一种方式来执行操作1708。
在操作1710中,虚拟现实系统可以将与特定虚拟现实数据集对应的条目包括在操作1708中生成的体验选择数据结构内。例如,基于在操作1706中选择用于包括在特定虚拟现实数据集所基于的帧序列子集中的表面数据帧序列,虚拟现实系统可以包括与特定虚拟现实数据集对应的条目。可以按照本文描述的任何一种方式来执行操作1710。
在操作1712中,虚拟现实系统可以将体验选择数据结构提供给媒体播放器设备。可以按照本文描述的任何一种方式来执行操作1712。
在操作1714中,虚拟现实系统可以检测到媒体播放器设备选择了与针对特定虚拟现实体验定制的特定虚拟现实数据集对应的条目。例如,虚拟现实系统可以通过在操作1708中生成的体验选择数据结构检测到媒体播放器设备在操作1710中选择了与体验选择数据结构内包括的特定虚拟现实数据集对应的条目。可以按照本文描述的任何一种方式来执行操作1714。
在操作1716中,虚拟现实系统可以将针对特定虚拟现实体验定制的特定虚拟现实数据集提供给媒体播放器设备。例如,虚拟现实系统可以响应于在操作1714中检测到媒体播放器设备选择了与特定虚拟现实数据集对应的条目而将特定虚拟现实数据集提供给媒体播放器设备。可以按照本文描述的任何一种方式来执行操作1716。
图18示出了用于定制虚拟现实数据的示例性方法1800。尽管图18示出了根据一个实施例的示例性操作,但其他实施例可以省略、增加、重新排序和/或修改图18中所示的任何操作。图18所示的操作中的一个或多个可以由系统100、其实施方式、和/或上面描述为与系统100相关联(例如,以通信方式耦合至系统100、被配置为与系统100互操作,等等)的另一系统来执行。
在操作1802中,虚拟现实系统可以访问描述分别描绘现实世界场景的不同视图的多个表面数据帧序列的元数据。例如,多个表面数据帧序列可以包括虚拟化表面数据帧序列,该虚拟化表面数据帧序列描绘现实世界场景的视图,该视图与由相对于现实世界场景布置在不同位置处的多个捕获设备捕获的现实世界场景的视图未对齐。在一些实施方式中,当在现实世界场景中发生事件时,可以实时执行操作1802。可以按照本文描述的任何一种方式来执行操作1802。
在操作1804中,虚拟现实系统可以标识现实世界场景内可通过媒体播放器设备向用户提供特定虚拟现实体验的位置。媒体播放器设备可以被配置为通过处理针对特定虚拟现实体验定制的特定虚拟现实数据集来向用户提供特定虚拟现实体验。在某些实施方式中,与操作1802一样,当在现实世界场景中发生事件时,可以实时执行操作1804。可以按照本文描述的任何一种方式来执行操作1804。
在操作1806中,虚拟现实系统可以从多个表面数据帧序列选择用于包括在特定虚拟现实数据集所基于的帧序列子集中的表面数据帧序列。在一些示例中,虚拟现实系统可以基于在操作1804中标识出来的位置和/或基于与在操作1802中访问的多个数据帧序列相关联的元数据来选择用于包括在帧序列子集中的表面数据帧序列。在某些实施方式中,与操作1802和1804一样,当在现实世界场景中发生事件时,可以实时执行操作1806。可以按照本文描述的任何一种方式来执行操作1806。
在操作1808中,虚拟现实系统可以动态地包括体验选择数据结构内与特定虚拟现实数据集对应的条目。例如,基于在操作1806中选择用于包括在特定虚拟现实数据集所基于的帧序列子集中的表面数据帧序列,虚拟现实系统可以动态地包括与特定虚拟现实数据集对应的条目。体验选择数据结构可以被配置为有助于从体验选择数据结构内包括的多个条目动态选择不同条目。例如,体验选择数据结构可以被配置为:在媒体播放器设备从现实世界场景内的不同位置向用户提供不同虚拟现实体验时,有助于媒体播放器设备动态选择不同条目。多个条目可以分别与不同虚拟现实数据集对应,该虚拟现实数据集是针对来自现实世界场景内的不同位置的多种虚拟现实体验内包括的不同虚拟现实体验定制的。在某些实施方式中,与操作1802至1806一样,当在现实世界场景中发生事件时,可以实时执行操作1808。可以按照本文描述的任何一种方式来执行操作1808。
图19示出了用于定制虚拟现实数据的示例性方法1900。尽管图19示出了根据一个实施例的示例性操作,但其他实施例可以省略、增加、重新排序和/或修改图19中所示的任何操作。图19所示的操作中的一个或多个可以由媒体播放器设备1010、其实施方式、和/或本文描述的或如可以用于特定实施方式的另一媒体播放器设备来执行。
在操作1902中,媒体播放器设备可以从虚拟现实系统访问由虚拟现实系统生成的体验选择数据结构。例如,体验选择数据结构可以被配置为:在媒体播放器设备通过处理不同虚拟现实数据集向用户提供不同虚拟现实体验时,有助于媒体播放器设备从体验选择数据结构内包括的多个条目动态选择不同条目。在一些示例中,体验选择数据结构内包括的多个条目可以分别与不同虚拟现实数据集对应,该虚拟现实数据集是针对与3D场景相关联的多种虚拟现实体验内包括的不同虚拟现实体验定制的。可以按照本文描述的任何一种方式来执行操作1902。
在操作1904中,媒体播放器设备可以通过体验选择数据结构从多个条目选择条目。例如,该条目可以与针对特定虚拟现实体验定制的特定虚拟现实数据集对应。可以按照本文描述的任何一种方式来执行操作1904。
在操作1906中,媒体播放器设备可以将表示通过体验选择数据结构选择的条目的数据提供给虚拟现实系统。可以按照本文描述的任何一种方式来执行操作1906。
在操作1908中,媒体播放器设备可以接收针对特定虚拟现实体验定制的特定虚拟现实数据集。例如,媒体播放器设备可以响应于在操作1906中提供表示条目的数据从虚拟现实系统接收特定虚拟现实数据集。可以按照本文描述的任何一种方式来执行操作1908。
在操作1910中,媒体播放器设备可以处理在操作1908中接收到的且针对特定虚拟现实体验定制的特定虚拟现实数据集。通过处理特定虚拟现实数据集,媒体播放器设备可以向用户提供特定虚拟现实体验。可以按照本文描述的任何一种方式来执行操作1910。
在某些实施例中,本文描述的系统、组件和/或过程中的一个或多个可以由一个或多个恰当配置的计算设备来实现和/或执行。为此,上述系统和/或组件中的一个或多个可以包括或由在被配置为执行本文所述的一个或多个过程的至少一种非暂时性计算机可读介质上实现的任何计算机硬件和/或计算机实现的指令(例如,软件)来实现。具体而言,系统组件可以在一个物理计算设备上实现,或者可以在一个以上的物理计算设备上实现。因此,系统组件可以包括任意数量的计算设备,并且可以采用任意数量的计算机操作系统。
在某些实施例中,本文描述的过程中的一个或多个可以至少部分地被实现为体现在非暂时性计算机可读介质中并且可由一个或多个计算设备执行的指令。通常,处理器(例如,微处理器)从非暂时性计算机可读介质(例如,存储器等)接收指令,并执行那些指令,从而执行一个或多个过程,包括本文描述的一个或多个过程。可以使用各种已知的计算机可读介质中的任何一种来存储和/或发送这样的指令。
计算机可读介质(也称为处理器可读介质)包括参与提供可由计算机(例如,由计算机的处理器)读取的数据(例如,指令)的任何非暂时性介质。这种介质可以采取许多形式,包括,但不限于,非易失性介质和/或易失性介质。非易失性介质可以包括,例如,光盘或磁盘以及其它永久性存储器。易失性介质可以包括,例如,动态随机存取存储器(“DRAM”),其通常构成主存储器。计算机可读介质的常见形式包括,例如,磁盘、硬盘、磁带、任何其他磁介质、光盘只读存储器(“CD-ROM”)、数字视频光盘(“DVD”)、任何其他光学介质、随机存取存储器(“RAM”)、可编程只读存储器(“PROM”)、电可擦除可编程只读存储器(“EPROM”)、FLASH-EEPROM、任何其他存储器芯片或盒式磁带、或计算机可以读取的任何其他有形介质。
图20示出了示例性计算设备2000,其可以被具体配置为执行本文描述的一个或多个过程。如图20所示,计算设备2000可以包括通过通信基础设施2010通信地连接的通信接口2002、处理器2004、存储设备2006和输入/输出(“I/O”)模块2008。尽管在图20中示出了示例性计算设备2000,但是图20示出的组件不旨在是限制性的。在其他实施例中可以使用另外的或替代的组件。现在将更详细地描述图20中示出的计算设备2000的组件。
通信接口2002可以被配置为与一个或多个计算设备通信。通信接口2002的示例包括但不限于有线网络接口(例如网络接口卡)、无线网络接口(例如无线网络接口卡)、调制解调器、音频/视频连接和任何其他合适的接口。
处理器2004通常表示能够处理数据或解释、执行和/或指导本文描述的一个或多个指令、过程和/或操作的执行的任何类型或形式的处理单元(例如,中央处理单元和/或图形处理单元)。处理器2004可以根据一个或多个应用2012或其他计算机可执行指令(其诸如可以存储在存储设备2006或另一计算机可读介质中)来指导操作的执行。
存储设备2006可以包括一个或多个数据存储介质、设备或配置,并且可以采用任何类型、形式和组合的数据存储介质和/或设备。例如,存储设备2006可以包括但不限于硬盘驱动器、网络驱动器、闪存驱动器、磁盘、光盘、RAM、动态RAM、其他非易失性和/或易失性数据存储单元、或其组合或子组合。电子数据,包括本文描述的数据,可以被临时和/或永久地存储在存储设备2006中。例如,表示被配置为指导处理器2004执行本文描述的任何操作的一个或多个可执行应用2012的数据可以存储在存储设备2006中。在一些示例中,数据可以被布置在驻留在存储设备2006内的一个或多个数据库中。
I/O模块2008可以包括被配置为接收用户输入并提供用户输出的一个或多个I/O模块。一个或多个I/O模块可用于接收针对单个虚拟现实体验的输入。I/O模块2008可以包括支持输入和输出能力的任何硬件、固件、软件或其组合。例如,I/O模块2008可以包括用于捕获用户输入的硬件和/或软件,包括但不限于键盘或小键盘、触摸屏组件(例如,触摸屏显示器)、接收器(例如,RF或红外接收器)、运动传感器和/或一个或多个输入按钮。
I/O模块2008可以包括用于向用户呈现输出的一个或多个设备,包括但不限于图形引擎、显示器(例如,显示屏)、一个或多个输出驱动器(例如,显示器驱动器)、一个或多个音频扬声器和一个或多个音频驱动器。在某些实施例中,I/O模块2008被配置为将图形数据提供给显示器以呈现给用户。图形数据可以表示一个或多个图形用户界面和/或如可以用于特定实施方式的任何其他图形内容。
在一些示例中,本文描述的任何设施可以由计算设备2000的一个或多个组件实现或在其中实现。例如,可以将驻留在存储设备2006内的一个或多个应用2012配置为指导处理器2004执行与系统100(参见图1)的体验选择数据结构管理设施102或虚拟现实数据集管理设施104相关联的一个或多个操作或功能。同样,系统100的存储设施106可以由存储设备2006实现或在其中实现。
在前述实施例收集、存储和/或使用由个人提供的个人信息的程度上,应当理解,应当根据关于个人信息保护的所有适用法律来使用这些信息。另外,此类信息的收集、存储和使用可能要征得个人对此类活动的同意,例如,通过适用于该情况和此类信息的众所周知的选择加入摂或选择退出摂过程。个人信息的存储和使用可以以适当安全的方式反映信息的类型,例如,通过针对特别敏感信息的各种加密和匿名化技术。
在前面的描述中,已经参考附图描述了各种示例性实施例。然而,显而易见的是,在不脱离如所附权利要求书所阐述的本发明的范围的情况下,可以对其进行各种修改和改变,并且可以实现其他实施例。例如,本文描述的一个实施例的某些特征可以与本文描述的另一实施例的特征组合或替代本文描述的另一实施例的特征。因此,说明书和附图应被认为是说明性而不是限制性的。

Claims (20)

1.一种用于定制虚拟现实数据的方法,包括:
通过虚拟现实系统生成体验选择数据结构,所述体验选择数据结构包括多个条目,每个条目对应不同的虚拟现实数据集,每个虚拟现实数据集定制于不同的虚拟现实体验,所述不同的虚拟现实体验与相对于三维(3D)场景定位在不同位置的不同虚拟视点相关联;
通过所述虚拟现实系统将所述体验选择数据结构提供给媒体播放器设备;
通过所述虚拟现实系统检测所述媒体播放器设备通过所述体验选择数据结构的方式从所述多个条目选择了条目,所述条目对应于针对特定虚拟现实体验定制的特定虚拟现实数据集;以及
通过所述虚拟现实系统,响应于检测到所述媒体播放器设备选择了所述条目,将针对所述特定虚拟现实体验定制的所述特定虚拟现实数据集提供给所述媒体播放器设备。
2.根据权利要求1所述的方法,还包括:
通过所述虚拟现实系统,在所述虚拟现实系统正将针对所述特定虚拟现实体验定制的所述特定虚拟现实数据集提供给所述媒体播放器设备时,检测所述媒体播放器设备通过所述体验选择数据结构的方式从所述多个条目选择了不同条目,所述不同条目对应于针对不同特定虚拟现实体验定制的不同特定虚拟现实数据集;以及
通过所述虚拟现实系统,响应于检测到所述媒体播放器设备选择了所述不同条目,将针对所述不同特定虚拟现实体验定制的所述不同特定虚拟现实数据集提供给所述媒体播放器设备。
3.根据权利要求2所述的方法,其中:
所述特定虚拟现实体验与位于所述3D场景的第一区域内的第一位置的第一虚拟视点相关联;
所述不同特定虚拟现实体验与位于所述3D场景的与所述第一区域不同的第二区域内的第二位置的第二虚拟视点相关联;以及
响应于接收到指示用户视点从所述第一位置处的所述第一虚拟视点移动到所述第二位置处的所述第二虚拟视点的用户输入,所述媒体播放器设备选择与针对所述不同特定虚拟现实体验定制的所述不同特定虚拟现实数据集对应的所述不同条目。
4.根据权利要求1所述的方法,其中:
所述3D场景包括由相对于现实世界场景布置在不同位置处以便捕获所述现实世界场景的不同视图的多个捕获设备捕获的所述现实世界场景的元素,所述不同视图分别由所述多个捕获设备中的不同捕获设备捕获并且分别被描绘在多个表面数据帧序列中包括的不同表面数据帧序列内;
所述多个表面数据帧序列包括虚拟化表面数据帧序列,所述虚拟化表面数据帧序列描绘所述现实世界场景的视图,所述视图与由所述多个捕获设备捕获的所述现实世界场景的所述不同视图未对齐;并且
所述方法还包括:
通过所述虚拟现实系统,标识描述所述特定虚拟现实体验的体验参数集合,以及
通过所述虚拟现实系统,基于标识的所述体验参数集合,从所述多个表面数据帧序列选择用于包括在所述特定虚拟现实数据集所基于的帧序列子集中的表面数据帧序列,所述帧序列子集包括所述虚拟化表面数据帧序列;以及
生成所述体验选择数据结构包括:基于选择所述表面数据帧序列用于包括在所述特定虚拟现实数据集所基于的所述帧序列子集中,将与所述特定虚拟现实数据集对应的所述条目包括在所述体验选择数据结构内。
5.根据权利要求1所述的方法,还包括:
通过所述虚拟现实系统内包括的第一服务器,访问多个表面数据帧序列内包括的第一表面数据帧序列,所述表面数据帧序列分别包括描绘所述3D场景的不同视图的颜色和深度帧;
通过与所述第一服务器分开且进一步被包括在所述虚拟现实系统内的第二服务器,访问所述多个表面数据帧序列内包括的第二表面数据帧序列;
通过所述第一服务器,响应于从管理服务器发送的请求,通过第一单独传输流的方式将所述第一表面数据帧序列内包括的颜色和深度帧发送给所述虚拟现实系统内包括的且通过网络通信地耦合至所述第一服务器和所述第二服务器的所述管理服务器;以及
通过所述第二服务器,响应于所述请求,与所述第一服务器进行的所述发送同步地,通过第二单独传输流的方式将所述第二表面数据帧序列内包括的颜色和深度帧发送给所述管理服务器。
6.根据权利要求5所述的方法,还包括:
通过所述管理服务器,从所述多个表面数据帧序列选择用于包括在所述特定虚拟现实数据集所基于的帧序列子集中的表面数据帧序列,被选择用于包括在所述帧序列子集中的所述表面数据帧序列包括所述第一表面数据帧序列和所述第二表面数据帧序列;
通过所述管理服务器,响应于选择用于包括在所述帧序列子集中的所述表面数据帧序列,将所述请求发送给所述第一服务器和所述第二服务器,响应于所述请求,所述第一服务器和所述第二服务器分别同步地发送所述第一表面数据帧序列和所述第二表面数据帧序列内包括的所述颜色和深度帧;
通过所述管理服务器,通过所述网络的方式,从所述第一服务器接收所述第一表面数据帧序列内包括的所述颜色和深度帧;
通过所述管理服务器,通过所述网络的方式,与所述的从所述第一服务器接收所述颜色和深度帧同步地,从所述第二服务器接收所述第二表面数据帧序列内包括的所述颜色和深度帧;以及
通过所述管理服务器,封装从所述第一服务器和所述第二服务器同步接收的所述颜色和深度帧以形成附加传输流,所述附加传输流包括与被选择用于包括在所述帧序列子集中的所述表面数据帧序列对应的视频数据流;
其中:
所述附加传输流被配置为流传输到所述媒体播放器设备,并且
针对所述特定虚拟现实体验定制的且被提供给所述媒体播放器设备的所述特定虚拟现实数据集包括所述附加传输流。
7.根据权利要求5所述的方法,其中,分别通过所述第一单独传输流和所述第二单独传输流同步发送所述第一表面数据帧序列和所述第二表面数据帧序列内包括的所述颜色和深度帧包括:
通过所述第一服务器,将指示所述第一服务器已经接收到所述第一表面数据帧序列内包括的第一颜色和深度帧的数据发送给同步服务器;
通过所述第二服务器,将指示所述第二服务器已经接收到所述第二表面数据帧序列内包括的且对应于所述第一颜色和深度帧的第二颜色和深度帧的数据发送给所述同步服务器;
通过所述第一服务器和所述第二服务器,响应于发送指示已经接收到所述第一颜色和深度帧和所述第二颜色和深度帧的所述数据,从所述同步服务器接收指示要在其中同步发送所述第一颜色和深度帧和所述第二颜色和深度帧的指定时间帧的数据;以及
通过所述第一服务器和所述第二服务器,在所述指定时间帧内分别将所述第一颜色和深度帧和所述第二颜色和深度帧发送给所述管理服务器。
8.根据权利要求1所述的方法,体现为在至少一种非暂时性计算机可读介质上的计算机可读指令。
9.一种用于定制虚拟现实数据的方法,包括:
通过媒体播放器设备,从虚拟现实系统访问体验选择数据结构,所述体验选择数据结构包括多个条目,每个条目对应不同的虚拟现实数据集,每个虚拟现实数据集定制于不同的虚拟现实体验,所述不同的虚拟现实体验与相对于三维(3D)场景定位在不同位置的不同虚拟视点相关联;
通过所述媒体播放器设备,通过所述体验选择数据结构的方式,从所述多个条目选择条目,所述条目对应于针对特定虚拟现实体验定制的特定虚拟现实数据集;以及
通过所述媒体播放器设备,将表示通过所述体验选择数据结构的方式选择的所述条目的数据提供给所述虚拟现实系统;
通过所述媒体播放器设备,响应于提供表示所述条目的所述数据,从所述虚拟现实系统接收针对所述特定虚拟现实体验定制的所述特定虚拟现实数据集;以及
通过所述媒体播放器设备,处理针对所述特定虚拟现实体验定制的所述特定虚拟现实数据集,以提供所述特定虚拟现实体验。
10.根据权利要求9所述的方法,其中,接收针对所述特定虚拟现实体验定制的所述特定虚拟现实数据集包括:通过将所述媒体播放器设备通信地耦合至所述虚拟现实系统的网络的方式,接收传输流,所述传输流包括多个视频数据流,所述视频数据流对应于从分别描绘所述3D场景的不同视图的多个表面数据帧序列选择的表面数据帧序列的帧序列子集。
11.根据权利要求9所述的方法,体现为在至少一种非暂时性计算机可读介质上的计算机可读指令。
12.一种用于定制虚拟现实数据的系统,包括:
至少一个物理计算设备,所述物理计算设备:
生成体验选择数据结构,所述体验选择数据结构包括多个条目,每个条目对应不同的虚拟现实数据集,每个虚拟现实数据集定制于不同的虚拟现实体验,所述不同的虚拟现实体验与相对于三维(3D)场景定位在不同位置的不同虚拟视点相关联;
将所述体验选择数据结构提供给媒体播放器设备;
检测所述媒体播放器设备通过所述体验选择数据结构的方式从所述多个条目选择条目,所述条目对应于针对特定虚拟现实体验定制的特定虚拟现实数据集;以及
响应于检测到所述媒体播放器设备选择了所述条目,将针对所述特定虚拟现实体验定制的所述特定虚拟现实数据集提供给所述媒体播放器设备。
13.根据权利要求12所述的系统,其中,所述至少一个物理计算设备进一步:
在所述至少一个物理计算设备正将针对所述特定虚拟现实体验定制的所述特定虚拟现实数据集提供给所述媒体播放器设备时,检测所述媒体播放器设备通过所述体验选择数据结构的方式从所述多个条目选择不同条目,所述不同条目对应于针对不同特定虚拟现实体验定制的不同特定虚拟现实数据集;以及
响应于检测到所述媒体播放器设备选择了所述不同条目,将针对所述不同特定虚拟现实体验定制的所述不同特定虚拟现实数据集提供给所述媒体播放器设备。
14.根据权利要求13所述的系统,其中:
所述特定虚拟现实体验与位于所述3D场景的第一区域内的第一位置的第一虚拟视点相关联;
所述不同特定虚拟现实体验与位于所述3D场景的与所述第一区域不同的第二区域内的第二位置的第二虚拟视点相关联;以及
响应于接收到指示用户视点从所述第一位置处的所述第一虚拟视点移动到所述第二位置处的所述第二虚拟视点的用户输入,所述媒体播放器设备选择与针对所述不同特定虚拟现实体验定制的所述不同特定虚拟现实数据集对应的所述不同条目。
15.根据权利要求12所述的系统,其中:
所述3D场景包括由相对于现实世界场景布置在不同位置处以捕获所述现实世界场景的不同视图的多个捕获设备捕获的所述现实世界场景的元素,所述不同视图分别由所述多个捕获设备中的不同捕获设备捕获并且分别被描绘在多个表面数据帧序列中包括的不同表面数据帧序列内;
所述多个表面数据帧序列包括虚拟化表面数据帧序列,所述虚拟化表面数据帧序列描绘所述现实世界场景的视图,所述视图与由所述多个捕获设备捕获的所述现实世界场景的所述不同视图未对齐;并且所述至少一个物理计算设备进一步:
标识描述所述特定虚拟现实体验的体验参数集合;以及
基于标识的所述体验参数集合,从所述多个表面数据帧序列选择用于包括在所述特定虚拟现实数据集所基于的帧序列子集中的表面数据帧序列,所述帧序列子集包括所述虚拟化表面数据帧序列;以及
所述至少一个物理计算设备:基于选择用于包括在所述特定虚拟现实数据集所基于的所述帧序列子集中的所述表面数据帧序列,通过将与所述特定虚拟现实数据集对应的所述条目包括在所述体验选择数据结构内,来生成所述体验选择数据结构。
16.根据权利要求12所述的系统,其中,所述至少一个物理计算设备包括:
第一服务器,所述第一服务器访问多个表面数据帧序列内包括的第一表面数据帧序列,所述表面数据帧序列分别包括描绘所述3D场景的不同视图的颜色和深度帧;
第二服务器,所述第二服务器与所述第一服务器分开,所述第二服务器访问所述多个表面数据帧序列内包括的第二表面数据帧序列;以及
管理服务器,所述管理服务器通过网络通信地耦合至所述第一服务器和所述第二服务器;
其中:
所述第一服务器响应于从所述管理服务器发送的请求,通过第一单独传输流将所述第一表面数据帧序列内包括的颜色和深度帧发送给所述管理服务器;以及
所述第二服务器响应于所述请求,与所述第一服务器进行的所述发送同步地,通过第二单独传输流将所述第二表面数据帧序列内包括的颜色和深度帧发送给所述管理服务器。
17.根据权利要求16所述的系统,其中:
所述管理服务器:
从所述多个表面数据帧序列选择用于包括在所述特定虚拟现实数据集所基于的帧序列子集中的表面数据帧序列,被选择用于包括在所述帧序列子集中的所述表面数据帧序列包括所述第一表面数据帧序列和所述第二表面数据帧序列;
响应于选择用于包括在所述帧序列子集中的所述表面数据帧序列,将所述请求发送给所述第一服务器和所述第二服务器,响应于所述请求,所述第一服务器和所述第二服务器分别同步地发送所述第一表面数据帧序列和所述第二表面数据帧序列内包括的所述颜色和深度帧;
通过所述网络的方式,从所述第一服务器接收所述第一表面数据帧序列内包括的所述颜色和深度帧;
通过所述网络的方式,与从所述第一服务器接收所述颜色和深度帧同步地,从所述第二服务器接收所述第二表面数据帧序列内包括的所述颜色和深度帧;以及
封装从所述第一服务器和所述第二服务器同步接收的所述颜色和深度帧以形成附加传输流,所述附加传输流包括与被选择用于包括在所述帧序列子集中的所述表面数据帧序列对应的视频数据流;
所述附加传输流被配置为流传输到所述媒体播放器设备;以及
针对所述特定虚拟现实体验定制的且被提供给所述媒体播放器设备的所述特定虚拟现实数据集包括所述附加传输流。
18.根据权利要求16所述的系统,其中,分别通过所述第一单独传输流和所述第二单独传输流同步发送所述第一表面数据帧序列和所述第二表面数据帧序列内包括的所述颜色和深度帧包括:
通过所述第一服务器,将指示所述第一服务器已经接收到所述第一表面数据帧序列内包括的第一颜色和深度帧的数据发送给同步服务器;
通过所述第二服务器,将指示所述第二服务器已经接收到所述第二表面数据帧序列内包括的且与所述第一颜色和深度帧对应的第二颜色和深度帧的数据发送给所述同步服务器;
通过所述第一服务器和所述第二服务器,响应于发送指示已经接收到所述第一颜色和深度帧和所述第二颜色和深度帧的所述数据,从所述同步服务器接收指示要在其中同步发送所述第一颜色和深度帧和所述第二颜色和深度帧的指定时间帧的数据;以及
通过所述第一服务器和所述第二服务器,在所述指定时间帧内分别将所述第一颜色和深度帧和所述第二颜色和深度帧发送给所述管理服务器。
19.一种媒体播放器设备,包括:
至少一个物理计算组件,所述物理计算组件:
从虚拟现实系统访问体验选择数据结构,所述体验选择数据结构包括多个条目,每个条目对应不同的虚拟现实数据集,每个虚拟现实数据集定制于不同的虚拟现实体验,所述不同的虚拟现实体验与相对于三维(3D)场景定位在不同位置的不同虚拟视点相关联;
通过所述体验选择数据结构的方式,从所述多个条目选择条目,所述条目对应于针对特定虚拟现实体验定制的特定虚拟现实数据集对应;以及
将表示通过所述体验选择数据结构的方式选择的所述条目的数据提供给所述虚拟现实系统;
响应于提供表示所述条目的所述数据,从所述虚拟现实系统接收针对所述特定虚拟现实体验定制的所述特定虚拟现实数据集;以及
处理针对所述特定虚拟现实体验定制的所述特定虚拟现实数据集,以向用户提供所述特定虚拟现实体验。
20.根据权利要求19所述的媒体播放器设备,其中,所述至少一个物理计算组件通过将所述媒体播放器设备通信地耦合至所述虚拟现实系统的网络的方式通过接收传输流来接收针对所述特定虚拟现实体验定制的所述特定虚拟现实数据集,所述传输流包括多个视频数据流,所述视频数据流对应于从分别描绘所述3D场景的不同视图的多个表面数据帧序列选择的表面数据帧序列的帧序列子集。
CN201880034442.4A 2017-05-31 2018-05-24 用于定制虚拟现实数据的方法和系统 Active CN110663012B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/610,593 2017-05-31
US15/610,593 US10542300B2 (en) 2017-05-31 2017-05-31 Methods and systems for customizing virtual reality data
PCT/US2018/034436 WO2018222500A1 (en) 2017-05-31 2018-05-24 Methods and systems for customizing virtual reality data

Publications (2)

Publication Number Publication Date
CN110663012A CN110663012A (zh) 2020-01-07
CN110663012B true CN110663012B (zh) 2023-09-12

Family

ID=62716128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880034442.4A Active CN110663012B (zh) 2017-05-31 2018-05-24 用于定制虚拟现实数据的方法和系统

Country Status (6)

Country Link
US (3) US10542300B2 (zh)
EP (1) EP3631602B1 (zh)
JP (1) JP7217713B2 (zh)
KR (1) KR102502794B1 (zh)
CN (1) CN110663012B (zh)
WO (1) WO2018222500A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018147329A1 (ja) * 2017-02-10 2018-08-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 自由視点映像生成方法及び自由視点映像生成システム
US20180356885A1 (en) * 2017-06-10 2018-12-13 Tsunami VR, Inc. Systems and methods for directing attention of a user to virtual content that is displayable on a user device operated by the user
CN110998669B (zh) * 2017-08-08 2023-12-08 索尼公司 图像处理装置和方法
JP6409107B1 (ja) * 2017-09-06 2018-10-17 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
US11113887B2 (en) * 2018-01-08 2021-09-07 Verizon Patent And Licensing Inc Generating three-dimensional content from two-dimensional images
US10825236B1 (en) * 2018-03-13 2020-11-03 Arvizio, Inc. Composite mesh LOD construction
US10528132B1 (en) * 2018-07-09 2020-01-07 Ford Global Technologies, Llc Gaze detection of occupants for vehicle displays
US11410439B2 (en) * 2019-05-09 2022-08-09 Snap Inc. Sequence-of-sequences model for 3D object recognition
KR102522892B1 (ko) * 2020-03-12 2023-04-18 한국전자통신연구원 가상 시점 영상을 합성하기 위한 입력 영상을 제공하는 카메라 선별 방법 및 장치
US11715270B2 (en) * 2021-09-14 2023-08-01 Verizon Patent And Licensing Inc. Methods and systems for customizing augmentation of a presentation of primary content

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101836210A (zh) * 2007-10-22 2010-09-15 伊斯曼柯达公司 虚拟世界中的数字多媒体共享
CN102450031A (zh) * 2009-05-29 2012-05-09 微软公司 集成化身的共享媒体体验
CN104796778A (zh) * 2013-10-17 2015-07-22 苹果公司 向虚拟影院发布媒体内容
EP3147758A1 (en) * 2015-09-22 2017-03-29 Facebook, Inc. Systems and methods for content streaming

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003017680A1 (en) 2001-08-15 2003-02-27 Koninklijke Philips Electronics N.V. 3d video conferencing system
US6938047B2 (en) 2003-02-19 2005-08-30 Maui X-Stream, Inc. Methods, data structures, and systems for processing media data streams
US10972680B2 (en) 2011-03-10 2021-04-06 Microsoft Technology Licensing, Llc Theme-based augmentation of photorepresentative view
US8675067B2 (en) * 2011-05-04 2014-03-18 Microsoft Corporation Immersive remote conferencing
US20130041808A1 (en) * 2011-08-10 2013-02-14 Nathalie Pham Distributed media access
US9674580B2 (en) * 2012-03-31 2017-06-06 Vipeline, Inc. Method and system for recording video directly into an HTML framework
CN105027190B (zh) * 2013-01-03 2019-06-21 美达视野股份有限公司 用于虚拟或增强介导视觉的射出空间成像数字眼镜
US9551873B2 (en) * 2014-05-30 2017-01-24 Sony Interactive Entertainment America Llc Head mounted device (HMD) system having interface with mobile computing device for rendering virtual reality content
GB2536025B (en) 2015-03-05 2021-03-03 Nokia Technologies Oy Video streaming method
EP3338454A1 (en) * 2015-08-20 2018-06-27 Koninklijke KPN N.V. Forming one or more tile streams on the basis of one or more video streams
US10213688B2 (en) 2015-08-26 2019-02-26 Warner Bros. Entertainment, Inc. Social and procedural effects for computer-generated environments
JP6346131B2 (ja) 2015-09-07 2018-06-20 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および画像生成方法
US9674435B1 (en) * 2016-07-06 2017-06-06 Lawrence Maxwell Monari Virtual reality platforms for capturing content for virtual reality displays
US10341672B2 (en) * 2017-02-03 2019-07-02 Korea Advanced Institute Of Science And Technology Method and system for media synchronization
US10783165B2 (en) * 2017-05-17 2020-09-22 International Business Machines Corporation Synchronizing multiple devices
GB2563439B (en) * 2017-06-16 2022-02-16 Canon Kk Methods, devices, and computer programs for improving streaming of portions of media data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101836210A (zh) * 2007-10-22 2010-09-15 伊斯曼柯达公司 虚拟世界中的数字多媒体共享
CN102450031A (zh) * 2009-05-29 2012-05-09 微软公司 集成化身的共享媒体体验
CN104796778A (zh) * 2013-10-17 2015-07-22 苹果公司 向虚拟影院发布媒体内容
EP3147758A1 (en) * 2015-09-22 2017-03-29 Facebook, Inc. Systems and methods for content streaming

Also Published As

Publication number Publication date
JP2020522191A (ja) 2020-07-27
US20180352272A1 (en) 2018-12-06
US10750213B2 (en) 2020-08-18
US20200344507A1 (en) 2020-10-29
KR20200013232A (ko) 2020-02-06
EP3631602B1 (en) 2021-06-23
CN110663012A (zh) 2020-01-07
KR102502794B1 (ko) 2023-02-24
WO2018222500A1 (en) 2018-12-06
JP7217713B2 (ja) 2023-02-03
US10542300B2 (en) 2020-01-21
EP3631602A1 (en) 2020-04-08
US20200120370A1 (en) 2020-04-16
US11197038B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
CN110663012B (zh) 用于定制虚拟现实数据的方法和系统
CN110679152B (zh) 生成融合现实场景的方法和系统
US10699471B2 (en) Methods and systems for rendering frames based on a virtual entity description frame of a virtual scene
US10699749B2 (en) Methods and systems for customizing virtual reality data
US10586377B2 (en) Methods and systems for generating virtual reality data that accounts for level of detail
CN110663067B (zh) 用于生成现实世界场景的定制视图的虚拟化投影以包括在虚拟现实媒体内容中的方法和系统
US10347037B2 (en) Methods and systems for generating and providing virtual reality data that accounts for level of detail

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40013952

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant