用于交付内容和/或回放内容的方法和装置与流程

文档序号:11142969阅读:630来源:国知局
用于交付内容和/或回放内容的方法和装置与制造工艺

本发明涉及内容交付和/或回放,例如,立体图像内容的回放。



背景技术:

意在提供沉浸式体验的显示设备通常允许用户转动他的头并且体验所显示的场景中的对应变化。头戴式显示器有时支持360度观看,因为用户可以在佩戴头戴式显示器时转动,随着用户的头部位置改变,显示的场景改变。

利用此类设备,当向前看时,应当向用户呈现在相机位置的前面捕获的场景,当用户完全转身时,应当呈现在相机位置后面捕获的场景。虽然用户可以将他的头转到后面,但是在任何给定的时间,由于人在任何给定时间感知有限视野的能力的本质,用户的视野通常被限制到120度或更小。

为了支持360度的观看角度,360度的场景可以利用多个相机来捕获,图像被组合以生成将可用于观看的360度场景。

应当理解,360度视图包括比通常为通常的电视和许多其它视频应用捕获、编码的简单前向视图多得多的图像数据,在正常电视和许多其它视频应用中,用户没有机会改变用来确定要在特定时间点显示的图像的观看角度。

给定与被流化的内容关联的传输约束,例如,网络数据约束,可能不能向寻求接收内容并与其交互的所有消费者以全高清晰度视频来流化全360度视图。当内容是包括意在对应于左眼和右眼视图的图像内容以允许3D观看效果的立体内容时,尤其是这种情况。

鉴于上面的讨论,应当理解,对于以允许个体用户通过例如转动他或她的头来改变他的观看位置并看到环境的期望部分的方式支持内容的流化和/或回放的方法和装置存在需要。如果可以在遵守由于带宽或其它交付相关约束而可能应用的数据流化约束的同时向用户提供改变他/她的头部位置以及由此改变观看方向的选项,这将是被期望的。虽然不是对所有实施例都必需,但期望至少一些实施例允许处于不同位置的多个用户同时接收流并且观看他们期望的环境中的任何不同部分,而不管其他用户在观看哪个或哪些部分。



技术实现要素:

描述了用于支持对应于360度观看区域的视频或其它内容的交付(例如,流化)的方法和装置。本发明的方法和装置特别适于如下情况下立体和/或其它图像内容的流化,其中数据传输约束可能使得内容的360度交付难以以最大支持的质量水平(例如利用最佳质量编码和最高支持的帧速率)进行交付。但是,所述方法不限于立体内容。

在各种实施例中,对应于将从其获得视频内容的环境的3D模型和/或3D维度信息被生成和/或访问。环境中的相机位置被记录。在环境中可以存在多个不同的相机位置。例如,不同的终端目标相机位置和一个或多个中场相机位置可以被支持并用来捕获实时相机馈送。

3D模型和/或其它3D信息存储在被用来将视频流化到一个或多个用户的服务器或图像捕获设备中。

3D模型被提供给具有图像渲染和合成能力的用户回放设备,例如,消费者驻地设备。消费者驻地设备生成环境的3D表示,该3D表示例如经由头戴式显示器显示给消费者驻地设备的用户。

在各种实施例中,小于完整360度的环境在任何给定的时间被流化到个体消费者驻地设备。消费者驻地设备基于用户输入指示哪个相机馈送要被流化。用户可以经由作为消费者驻地设备的一部分或附连到消费者驻地设备的输入设备来选择场地和/或相机位置。

在一些实施例中,180度视频流从负责流化内容的服务器和/或摄像机以例如实况、实时或近实时流被传送到客户回放设备。回放设备监视用户的头部位置并且因此回放设备知道回放设备的用户正在由回放设备生成的3D环境内观看的观看区域。当3D环境的一部分可用于被观看时,消费者驻地设备呈现视频,其中视频内容替换或被显示为将在没有视频内容的情况下被呈现的模拟3D环境的替代。当回放设备的用户转动他或她的头时,呈现给用户的环境的部分可以来自提供给(例如流化到)回放设备的视频内容,其中其它部分从3D模型和/或先前提供的在与视频内容不同时间捕获的图像内容合成地生成。

因此,回放设备可以显示例如经由流化提供的视频,同时比赛、音乐会或其它事件仍在进行,对应于例如前180度相机视图,而3D环境的后和/或侧面部分或者完全合成地或者从在不同时间环境的侧面或后部区域的图像内容生成。

虽然用户可以通过向提供流内容的服务器信令位置的变化来在相机位置之间进行选择,但是提供流内容的服务器可以提供对于为未被流化的3D环境的部分生成合成环境有用的信息。

例如,在一些实施例中,多个后部和侧面视图在不同时间被捕获,例如,在流化一部分内容之前或者从更早的时间点开始。图像被缓冲在回放设备中。提供内容的服务器可以(并且在一些实施例中确实)向回放设备信令一组非实时场景或图像中的哪一个要被用于未在视频流中提供的环境部分的合成。例如,音乐会参与者坐着的图像和音乐会参与者站在相机位置后面的另一图像可以被提供并存储在回放设备中。服务器可以信令在特定时间点应当使用哪组存储的图像数据。因此,当人群站立时,服务器可以信令对应于人群站立的图像应当在图像合成期间用于背景180度视图,而当人群坐着时,服务器可以向消费者驻地设备指示其应当在合成3D相机环境的侧面或后部时使用对应于坐着的人群的图像或图像合成信息。

在至少一些实施例中,相机在3D环境中一个或多个位置中的每一个位置的朝向在图像捕获期间被跟踪。环境中的标记和/或识别点可以被用来促进所捕获的图像,例如活动图像,与要由消费者驻地设备模拟的先前建模和/或映射的3D环境的对准和/或其它映射。

合成的环境部分和真实(流化的视频)的混合提供沉浸式视频体验。环境可以并且有时候利用3d光度测量来测量或建模,以创建用来在视频不可用时,例如当环境之前未被建模时,模拟环境的3D信息。

在真实世界空间中基准标记在既定位置的使用有助于视频与先前生成的3D模型的校准和对准。

每个相机的位置跟踪在视频被捕获时实现。相对于场所的相机位置信息,例如,以度为单位映射X、Y、Z和偏航(yaw)(因此,我们知道每个相机指向的位置)。这允许容易地检测所捕获的图像对应于环境的什么部分,以及,当连同所捕获的视频一起被传送到回放设备时,允许回放以在图像呈现期间自动地将我们的视频捕获与由回放设备生成的合成环境重叠,例如,向用户回放。流化的内容可以被限制到小于360度视图,例如所捕获的在相机位置前面的区域的180度视图。当观看者环视时,当转向后方时观看者将看到模拟的背景(不是黑色空白),并且当转向前方时观看者将看到视频。

合成环境可以是(并且在一些实施例中是)交互式的。在一些实施例中,多个实际的观看者(例如不同消费者驻地设备的用户)被包括在模拟环境中,使得用户可以在虚拟3D环境中和他/她的朋友一起观看比赛,并且看起来似乎用户实际在体育场。

用户的图像可以(并且在一些实施例中)由包括在或附连到消费者驻地设备的相机捕获、提供给服务器并提供给其他用户,例如组的成员,以供生成模拟环境使用。用户图像不必是实时图像,但可以是实时图像。

所述方法可被用来实时地或近实时地编码和提供内容,但不限于这种实时应用。给定支持实时和近实时编码并流化到多个用户的能力,本文描述的方法和装置非常适于流化体育赛事、音乐会和/或其它场所的场景,其中个人喜欢观看事件并且不仅观察到舞台或场地,而且能够转动和欣赏环境的视图,例如体育场或人群。通过支持360度观看和3D,本发明的方法和装置非常适于与意在向用户提供3D沉浸式体验的头戴式显示器一起使用,具有转动并从不同观看角度观察场景的自由度,就像用户身处环境中并且用户的头部转向左、右或后方。

描述了用于传送图像内容(例如,对应于360度视野的内容)的方法和装置。在各种实施例中,视野对应于环境的不同部分,例如前部、至少一个后部、顶部和底部。在一些实施例中,环境的左后和右后方(例如,后部)被单独地生成和/或传送。回放设备监视用户头部的位置并生成图像,例如对应于用户在给定时间正在看的环境部分的立体图像,然后将图像显示给用户。在立体回放的情况下,生成分离的左眼图像和右眼图像。所生成的图像可以(并且在一些实施例中确实)对应于一个或多个场景,例如环境部分。

在回放开始时,用户向前看的头部水平位置被设置为缺省地对应于前向场景部分。当用户转动他/她的头部并且抬高或降低他或她的头部时,环境的其它部分可以进入用户的视野。

许多回放设备上的带宽和图像解码能力受设备的处理能力和/或用于接收图像内容的带宽的限制。在一些实施例中,回放设备确定环境的哪个部分对应于用户的主视野。然后,设备从优先角度选择要以高速率(例如对于指定的流以全分辨率)接收的部分作为主要流。来自提供对应于环境的其它部分的内容的一个或多个其它流的内容也可以被接收,但通常以较低的数据速率。用于特定流的内容交付可以由回放设备启动,例如通过发送用来触发内容交付的信号。该信号可被用来加入多播组,从而提供对应于环境的一部分的内容或者启动交换数字广播的交付。在广播内容不需要请求或诸如多播组加入信号的其它信号的情况下,设备可以通过调到内容可用的信道来开始接收。

假定用户通常主要对环境的前视图部分感兴趣,因为这是主要动作正常进行的地方,尤其是当内容对应于体育赛事、摇滚音乐会、时装秀或多个不同事件时,在一些实施例中,环境的前向视图部分被给予数据传输优先级。在至少一些实施例中,对应于前方观看位置的图像以比360度环境的一个或多个其它部分更高的速率被流化。对应于环境的其它部分的图像以较低的数据速率发送或作为静态图像发送。例如,可以发送顶部(例如,天空)和底部(例如,地面)的一个或多个静态图像。

在一些实施例中,为环境的一个或多个部分(例如后视图部分或天空部分)发送多个静态捕获的图像。在一些实施例中,发送指示用于环境的一部分的静态图像中的哪一个应当在给定时间被使用的控制信息。在用于环境的一部分的静态图像被发送的情况下,它们可以以编码形式被发送然后以解码形式被存储在存储器中,以供与其它图像内容组合。以这种方式,事件期间所需的解码资源可以减少,因为多个流不需要以相同的帧速率被并行解码。静态图像可以在流化主要事件的内容之前被发送。作为替代地,考虑到用户的头部位置从向前观看位置的改变,少数几个图像可以在回放期间需要它们的情况下针对环境的不同部分发送并存储。静态或不频繁的图像可以作为提供用于主要,例如前向,观看方向的内容的内容流的一部分被编码并发送,或者可以作为单独的内容流被发送。

对应于后部的静态图像可以(并且有时候确实)是在事件之前被捕获的图像,而对应于环境的前向部分的内容可以(并且在许多情况下确实)包括在事件正在例如实时地进行时被捕获和流化的内容。

考虑例如两个不同的后视图场景被传送并存储在回放设备中的情况。一个场景可以对应于处于站立位置的人群,另一个图像可以对应于处于就座位置的人群。控制信息可以(并且在一些实施例中确实)指示如果用户将他/她的头转动到环境的后部可见的位置的话就座或站立位置人群图像是否在给定时间被使用。

类似地,天空的多个图像可以被传送到回放设备并且以编码或解码形式存储在回放设备中。在一些实施例中,天空部分的哪个图像要在给定时间使用在控制信息中被传送。在其它实施例中,天空的哪个场景要被使用是基于对应于前向场景区域的一个或多个图像的亮度自动确定的,其中天空部分与所选的前向环境场景部分一致或接近,例如,明亮的前景场景区域可以被检测并用来控制对具有少量云的明亮天空图像的选择。类似地,在一些实施例中对阴暗前向环境区域的检测将导致阴暗的阴天天空图像被使用。

在视野中用于环境的一部分的图像不可用的情况下,场景部分可以例如从来自环境的可用的其它部分的信息或内容来成。例如,如果后方图像部分不可用,则来自前方场景区域的左侧和/或右侧的内容可以被复制并用来填充环境的缺失的后部。除了内容复制之外,模糊和/或其它图像处理操作也可在一些实施例中被用来填充环境的缺失部分。作为替代地,在一些实施例中,绘图信息在内容流中提供并且回放设备为丢失的部分生成完全合成的图像。与视频游戏内容一样,这种内容本质上可以是现实的并且可以包括从绘图和/或存储在回放设备中的其它图像创建规则生成的各种各样的图像效果和/或内容。

根据一些实施例,操作回放系统的示例性方法包括确定观看者的头部位置,所述头部位置对应于当前视野;接收提供对应于环境的第一部分的内容的第一内容流;基于包括在所述第一内容流中的至少一些接收的内容以及i)对应于所述环境的第二部分的存储内容或ii)模拟所述环境的第二部分的合成图像,生成对应于当前视野的一个或多个输出图像;以及输出或显示第一输出图像,所述第一输出图像是一个或多个生成的输出图像之一。根据一些实施例,示例性内容回放系统包括观看者头部位置确定模块,被配置为确定观看者的头部位置,所述头部位置对应于当前视野;内容流接收模块,被配置为接收提供对应于环境的第一部分的内容的第一内容流;基于输出图像内容流的生成模块,被配置为基于包括在所述第一内容流中的至少一些接收的内容以及i)对应于所述环境的第二部分的存储内容或ii)模拟所述环境的第二部分的合成图像,生成对应于当前视野的一个或多个输出图像;以及以下当中至少一个:被配置为输出所述第一输出图像的输出模块或者被配置为显示所述第一输出图像的显示模块。

众多变化和实施例是可能的并且在下面的详细描述中讨论。

附图说明

图1示出了根据本发明一些实施例实现的示例性系统,该系统可被用来捕获和流化内容,以连同环境的一个或多个合成部分一起供一个或多个用户随后显示。

图2A示出了示例性立体场景,例如,尚未被分割的完整360度立体场景。

图2B示出了根据一个示例性实施例的已被分割成3个示例性场景的示例性立体场景。

图2C示出了根据一个示例性实施例的已被分割成4个场景的示例性立体场景。

图3示出了根据一个示例性实施例的、编码示例性360度立体场景的示例性过程。

图4示出了表示输入图像部分如何利用各种编码器来编码以生成相同输入图像部分的不同编码版本的例子。

图5示出了已被分割成3个部分的输入立体场景的所存储的编码部分。

图6是示出根据利用图1的系统实现的示例性实施例的流化内容的示例性方法的步骤的流程图。

图7示出了根据本发明特征的、包括可被用来编码和流化内容的编码能力的示例性内容交付系统。

图8示出了可被用来接收、解码和显示由图7的系统流化的内容的示例性内容回放系统。

图9示出了表示具有安装在3个不同安装位置的3个相机对的示例性相机装备(rig)连同可被用于校准该相机装备的校准目标的图。

图10示出了表示具有安装在相机装备中的3个相机对的相机装备的更集中视图的图。

图11示出了根据一个示例性实施例实现的示例性相机装备的详细图示。

图12示出了示例性360度场景环境,例如360度场景区域,其可被分割成与捕获该360度场景的不同部分的相应相机的不同相机位置对应的不同观看区域/部分。

图13包括表示图12的示例性360度场景区域的不同部分的三个不同图,这三个部分可以由对应于和/或定位成覆盖示例性360度场景区域的观看区域/部分的不同相机捕获。

图14A是示出根据本发明示例性实施例的操作回放设备的示例性方法的步骤的流程图的第一部分。

图14B是示出根据本发明示例性实施例的操作回放设备的示例性方法的步骤的流程图的第二部分。

图14包括图14A和图14B的组合。

图15是示出根据示例性实施例的流选择子例程的步骤的流程图。

图16是示出根据示例性实施例的流优先化子例程的步骤的流程图。

图17是示出根据示例性实施例的渲染子例程的步骤的流程图。

图18示出了包括与多个内容流对应的流信息的示例性表。

图19示出了根据本发明实现的示例性回放系统。

图20A是根据示例性实施例的操作内容回放系统的示例性方法的流程图的第一部分。

图20B是根据示例性实施例的操作内容回放系统的示例性方法的流程图的第二部分。

图20C是根据示例性实施例的操作内容回放系统的示例性方法的流程图的第三部分。

图20D是根据示例性实施例的操作内容回放系统的示例性方法的流程图的第四部分。

图20E是根据示例性实施例的操作内容回放系统的示例性方法的流程图的第五部分。

图20包括图20A、图20B、图20C、图20D和图20E的组合。

图21是根据示例性实施例的示例性内容回放系统的图,其中示例性内容回放系统例如耦合到显示器的内容回放设备或计算机系统。

图22是可以包括在图21的示例性内容回放系统中的示例性模块组件的图。

图23是示出根据一些实施例的可以在图19的回放系统中使用的示例性流选择模块的图。

图24是示出可被实现为图23的流选择模块的一部分或者实现为单独模块的示例性流优先化模块的图。

具体实施方式

图1示出了根据本发明一些实施例实现的示例性系统100。系统100支持向位于消费者驻地的一个或多个消费者设备(例如回放设备/内容播放器)进行内容交付,例如成像内容交付。系统100包括示例性图像捕获设备102、内容交付系统104、通信网络105和多个消费者驻地106...110。图像捕获设备102支持立体图像的捕获。图像捕获设备102根据本发明的特征捕获并处理成像内容。通信网络105可以是例如混合光纤同轴(HFC)网络、卫星网络和/或互联网。

内容交付系统104包括编码装置112和内容流化设备/服务器114.编码装置112可以(并且在一些实施例中确实)包括用于根据本发明编码图像的一个或多个编码器。编码器可被并行使用,以编码场景的不同部分和/或编码场景的给定部分,来生成具有不同数据速率的编码版本。并行使用多个编码器在要支持实时或近实时流化时会是特别有用的。

内容流化设备114被配置为流化(例如发送)编码的内容,以便例如经通信网络105向一个或多个消费者设备交付编码的图像内容。经由网络105,内容交付系统104可以发送和/或与位于消费者驻地106、110的设备交换信息,如图中由穿过通信网络105的链路120所表示的那样。

虽然编码装置112和内容交付服务器114在图1的例子中被示为单独的物理设备,但是在一些实施例中,它们被实现为编码和流化内容的单个设备。编码过程可以是3D(例如立体)图像编码过程,其中对应于场景部分的左眼和右眼视图的信息被编码并包括在编码的图像数据中,使得可以支持3D图像观看。所使用的特定编码方法对于本申请不是关键的,并且广泛的编码器可被用作或用来实现编码装置112。

每个消费者驻地106、110可以包括多个设备/播放器,例如用来解码和回放/显示由内容流化设备114流化的成像内容的回放系统。消费者驻地1 106包括耦合到显示设备124的解码装置/回放设备122,而消费者驻地N 110包括耦合到显示设备128的解码装置/回放设备126。在一些实施例中,显示设备124、128是头戴式立体显示设备。在一些实施例中,回放设备122/126和头戴式设备124/128一起构成回放系统。

在各种实施例中,解码装置122、126在对应的显示设备124、128上呈现成像内容。解码装置/播放器122、126可以是能够执行以下的设备:解码从内容交付系统104接收的成像内容、利用解码的内容生成成像内容并在显示设备124、128上渲染成像内容,例如3D图像内容。解码装置/回放设备122、126中的任何一个可被用作图8中所示的解码装置/回放设备800。诸如图8和19中所示的系统/回放设备可被用作解码装置/回放设备122、126中的任何一个。

图2A示出了示例性立体场景200,例如,尚未被分割的完整360度立体场景。立体场景可以是并且通常是组合从常常安装在单个视频捕获平台或相机底座上的多个相机(例如摄像机)捕获的图像数据的结果。

图2B示出了示例性立体场景200的分割版本250,其中场景已根据一个示例性实施例被分割成3(N=3)个示例性部分,例如前方180度部分、左后90度部分和右后90度部分。

图2C示出了示例性立体场景200的另一个分割版本280,其已经根据一个示例性实施例被分割成4(N=4)个部分。

虽然图2B和2C示出了两个示例性分割,但是应当理解,其它分割是可能的。例如,场景200可被分割成十二(n=12)个30度部分。在一个这样的实施例中,不是单独地编码每个部分,而是多个部分被分组在一起并且作为组被编码。部分的不同组可以被编码并流化到用户,其中每个组的大小就场景的总度数而言是相同的,但是对应于可以依赖于用户的头部位置(例如以0至360度的刻度被测量的观看角度)被流化的图像的不同部分。

图3示出了根据一个示例性实施例的、编码示例性360度立体场景的示例性过程。图3所示的方法300的输入包括由例如被布置成捕获场景的360度视图的多个相机捕获的360度立体图像数据。立体图像数据(例如立体视频)可以是各种已知格式中任何一种并且,在大多数实施例中,包括用来允许3D体验的左眼和右眼图像数据。虽然所述方法特别适于立体视频,但是本文描述的技术和方法也可以应用于例如360度或小场景区域的2D图像。

在步骤304中,场景数据302被分割成对应于不同场景区域的数据,例如对应于不同观看方向的N个场景区域。例如,在诸如图2B中所示的一个实施例中,360度场景区域被分割成三个分区:对应于90度部分的左后部分、前180度部分和右后90度部分。不同的部分可以已被不同的相机捕获,但这不是必需的,事实上,360度场景可以由在被划分成如图2B和2C所示的N个场景区域之前从多个相机捕获的数据构建。

在步骤306中,对应于不同场景部分的数据根据本发明进行编码。在一些实施例中,每个场景部分由多个编码器独立地编码,以支持用于每个部分的多个可能的位速率流。在步骤308中,编码的场景部分被存储在例如内容交付系统104的内容交付服务器114中,以用于流化到消费者回放设备。

图4是示出显示输入图像部分(例如场景的180度前部)如何利用各种编码器来编码以生成相同输入图像部分的不同编码版本的例子的图400。

如图400中所示,输入场景部分402(例如场景的180度前部)被供给至多个编码器进行编码。在该例中,存在K个不同的编码器,这些编码器利用不同分辨率并利用不同的编码技术编码输入数据,以生成编码的数据来支持图像内容的不同数据速率流。这K个编码器包括高清晰度(HD)编码器1 404、标准清晰度(SD)编码器2 406、降低的帧速率SD编码器3 408...,以及高压缩降低的帧速率SD编码器K 410。

HD编码器1 404被配置为执行全高清晰度(HD)编码,以产生高位速率HD编码图像412。SD编码器2 406被配置为执行低分辨率标准清晰度编码,以产生输入图像的SD编码版本2 414。降低的帧速率SD编码器3 408被配置为执行降低的帧速率低分辨率SD编码,以产生输入图像的降低的速率SD编码版本3 416。降低的帧速率可以是例如由SD编码器2 406用于编码的帧速率的一半。高压缩降低的帧速率SD编码器K 410被配置为执行具有高压缩的降低帧速率低分辨率SD编码,以产生输入图像的高压缩降低速率SD编码版本K420。

因此,应当理解,空间和/或时间分辨率的控制可被用来产生不同数据速率的数据流,诸如数据压缩水平之类的其它编码器设置的控制也可以被单独地或者除了空间和/或时间分辨率的控制以外被使用,以产生对应于具有一个或多个期望数据速率的场景部分的数据流。

图5示出了已被分割成3个示例性部分的输入立体场景的所存储的编码部分500。所存储的编码部分可以存储在内容交付系统104中,例如在存储器中作为数据/信息。立体场景的所存储的编码部分500包括编码部分的3个不同集合,其中每个部分对应于不同的场景区域并且每个集合包括对应场景部分的多个不同编码版本。每个编码版本是编码视频数据的版本并且因此表示已被编码的多个帧。应当理解,每个编码版本510、512、516是对应于多个时段的视频,并且当流化时,对应于正被回放的时段的部分(例如帧)将被用于传输目的。

如上面关于图4所示出和讨论的,每个场景部分(例如前、后场景部分)可以利用多个不同的编码器对进行编码,以产生相同场景部分的K个不同版本。对应于给定输入场景的每个编码器的输出作为集合被分组在一起并被存储。编码场景部分502的第一集合对应于前180度场景部分,并且包括前180度场景的编码版本1 510、前180度场景的编码版本2 512,...,以及前180度场景的编码版本K 516。编码场景部分504的第二集合对应于场景部分2,例如90度左后场景部分,并且包括90度左后场景部分的编码版本1 520、90度左后场景部分的编码版本2 522,...,以及90度左后场景部分的编码版本K 526。类似地,编码场景部分506的第三集合对应于场景部分3,例如90度右后场景部分,并且包括90度右后场景部分的编码版本1530、90度右后场景部分的编码版本2 332,...,以及90度右后场景部分的编码版本K 536。

360度场景的各种不同的所存储的编码部分可被用来生成用于发送到消费者回放设备的各种不同位速率流。

图6是示出根据示例性实施例的提供图像内容的示例性方法的步骤的流程图600。在一些实施例中,流程图600的方法是利用图1中所示的捕获系统实现的。

该方法在步骤602中开始,例如,交付系统通电并初始化。该方法从开始步骤602前进到步骤604。在步骤604中,内容交付系统104(例如系统104内的服务器114)接收对内容的请求,例如对先前编码的节目的请求或者,在一些情况下,被实时或近实时地编码和流化的实况事件,例如,当事件仍在进行时。

响应于该请求,在步骤606中,服务器114确定可用于交付的数据速率。数据速率可以根据包括在指示支持的数据速率的请求中的信息和/或根据诸如指示可用于将内容交付到请求设备的最大带宽的网络信息之类的其它信息来确定。应当理解,可用的数据速率可以依赖于网络负载而变化并且可以在内容被流化的时段期间改变。改变可以由用户设备报告或者从消息或信号中检测,其中该消息或信号指示分组被丢弃或延迟超过指示网络难以支持正在使用的数据速率的期望时间量并且当前可用数据速率低于被确定为可用的原始数据速率。

操作从步骤606前进到步骤608,在那里,从其开始对内容的请求被初始化的用户设备的当前头部位置(例如,在请求时的当前头部位置)将是0度位置。在一些实施例中,0度或前视图位置可由用户利用回放设备发信号通知要进行重新初始化来重新初始化。随着时间的推移,用户的头部位置和/或用户头部位置例如相对于原始头部位置的变化被报告给内容交付系统104,并且如下面将讨论的那样更新的位置被用来做出内容交付决定。

操作从步骤608前进到步骤610,其中对应于所请求的内容的360度场景的部分被发送,以初始化回放设备。在至少一些实施例中,初始化涉及发送场景数据的完整360度集合,例如在360度场景被划分为N个部分时是N个部分。

作为步骤610中初始化的结果,回放设备将具有对应于360度可能观看区域的每个不同部分的场景数据。因而,如果回放设备的用户突然转向后方,那么,即使不是与用户在转动头部之前正在观看的部分一样最新,也至少有一些数据将可用于向用户显示。

操作从步骤610前进到步骤612和步骤622。步骤622对应于全局场景更新路径,它被用来确保回放设备每个全局更新周期至少一次接收整个360度场景的更新版本。在步骤610中已经被初始化,全局更新过程在等待步骤622中被延迟预定的时段。然后在步骤624中,执行360度场景更新。虚线箭头613表示在对应于步骤622的辅助时段期间关于哪些场景部分被传送到回放设备的信息的传送。在步骤624中,整个360度场景可以被发送。但是,在一些实施例中,不是所有部分都在步骤624中被发送。在一些实施例中,在等待时段622期间被更新的场景的部分从在步骤624中执行的更新中被省略,因为它们已经在基于用户的头部位置发送场景的至少一些部分的正常流化过程期间被刷新了。

操作从步骤624前进回等待步骤622,在那里,在下一全局更新之前执行等待。应当理解,通过调整在步骤622中使用的等待时段,可以支持不同的全局刷新速率。在一些实施例中,内容服务器基于被提供的场景内容的类型来选择等待时段以及由此选择全局参考时段。在其中主要动作在面向前方区域中并且刷新的原因之一是户外照明条件的可能变化的体育事件的情况下,等待时段可以相对长,例如大约一分钟或几分钟。在其中人群中的动作和活动可能随着不同歌曲被演奏而频繁改变的摇滚音乐会的情况下,全局刷新率可以,并且有时候就是,高于体育事件,用户可能想转身并看到人群反应并且除了获得在前台观看区域正在发生什么的感觉之外还想获得在人群中发生了什么的感觉。

在一些实施例中,全局参考时段作为正被流化的呈现的部分的函数而改变。例如,在体育事件的比赛部分期间,全局刷新率可以相对较低,但是在其中处于事件或经由回放设备观看事件的人更可能从向前主区域转动他或她的头部的超时或中场休息期间或者在触地得分时刻后期间,全局参考速率可以(并且在一些实施例中)通过减少在步骤622中使用的等待(例如刷新时段控制)而增加。

虽然已经参考步骤622和624描述了全局刷新过程,但是描述场景的部分的正常供给。如应当理解的,场景或场景部分的正常刷新将在数据速率允许的情况下以被支持的视频帧速率对至少一个部分发生。因此,关于至少一个帧部分(例如他/她的头部被指示为面向的部分)将以全视频流化帧速率被提供,假设可用的数据速率是足够的。

在步骤612中,基于用户的所指示的头部位置(例如,观看角度)来选择要提供的场景部分。所选择的部分被例如周期性地发送(例如流化)到回放设备。在一些实施例中,对应于这些部分的数据被流化的速率依赖于视频帧速率。例如,至少一个被选的部分将以所支持的全帧速率被流化。虽然在步骤612中选择了至少一个场景部分,但是通常选择多个场景部分,例如用户正面向的场景部分以及下一个最近的场景部分。如果可用的数据速率足以支持多个帧部分的通信,则附加的场景部分也可被选择和提供。

在步骤612中选择要流化的场景部分之后,操作前进到步骤614,其中例如基于可用的数据速率和用户的观看位置来选择被选流部分的编码版本。例如,如由当前报告的头部部分所指示的用户面对的场景部分的全速率高分辨率版本可以并且通常将被流化。在当前头部位置左边和/或右边的一个或多个场景部分可以被选择以较低分辨率、较低时间速率或者利用减少发送当前不被观看的场景区域所需的带宽量的另一种编码方法被流化。相邻场景部分的编码版本的选择将依赖于在当前被观看的场景部分的高质量版本被发送之后带宽剩余的量。虽然当前不被观看的场景部分可以作为较低分辨率编码版本或作为在帧之间具有较大时间距离的编码版本被发送,但是如果有足够的带宽可用,则可以周期性或频繁地发送全分辨率高质量版本。

在步骤616中,所选择的场景部分的被选编码版本被发送到请求内容的回放设备。因此,在步骤616中,对应于一个或多个部分的编码内容,例如对应于多个连续帧的立体视频内容,被流化到回放设备。

操作从步骤616前进到步骤618,其中接收指示用户的当前头部位置的信息。这种信息可以周期性地和/或响应于检测头部位置的变化而从回放设备发送。除了头部位置的变化之外,可用数据速率的变化也会影响什么内容被流化。操作从步骤618前进到步骤620,其中确定可被用于向回放设备进行内容交付的当前数据速率。因此,内容交付系统可以检测可用于支持到请求设备的流化的带宽量的变化。

操作从步骤620前进到步骤612,其中流化继续,直到内容被完全交付,例如节目或事件结束,或者直到从请求内容的回放设备接收到指示会话要被终止的信号、或者未能从回放设备接收到预期信号,诸如检测到指示回放设备不再与内容服务器114通信的头部位置更新。

根据以上述方式交付的场景数据,回放设备将至少具有可用于在用户快速转动他或她的头部的情况下显示的对应于每个场景部分的一些数据。应当理解,用户很少在非常短的时间内完全地转过头,因为这对于许多人来说是观看位置的不舒服的变化。因而,虽然完整360度场景可能不总是被发送,但是在任何给定时间最有可能被观看的场景部分的高质量版本可以被流化并让用户可用。

内容交付系统104可以支持大量的并发用户,因为编码过程允许场景的N个部分以不同方式被发送到不同的用户并被处理,而不必为每个单独的用户单独地编码内容。因此,虽然多个并行编码器可被用来支持实时编码,以允许体育或其它事件的实时或近实时流化,但是所使用的编码器的数量趋于远小于内容被流化到的回放设备的数量。

虽然内容的部分被描述为对应于360度视图的部分,但是应当理解,场景可以(在一些实施例中确实)代表还具有垂直维度的空间的平坦版本。回放设备能够利用3D环境的模型(例如空间)来映射场景部分,并且调整垂直观看位置。因此,本申请中所讨论的360度是指相对于水平线的头部位置,就好像用户在保持他的目光水平的同时向左或向右改变其观看角度。

图7示出了根据本发明特征的、包括可被用来编码和流化内容的编码能力的示例性内容交付系统700。

该系统可被用来执行根据本发明的特征的编码、存储,以及传输和/或内容输出。在一些实施例中,系统700或其中的元件执行对应于图6中所示过程的操作。内容交付系统700可被用作图1的系统104。虽然图7中所示的系统被用于内容的编码、处理和流化,但是应当理解,系统700还可以包括解码和例如向操作者显示经处理和/或编码的图像数据的能力。

系统700包括显示器702、输入设备704、输入/输出(I/O)接口706、处理器708、网络接口710和存储器712。系统700的各种部件经由总线709耦合在一起,这允许数据在系统700的部件之间传送。

存储器712包括各种模块,例如例程,当其被处理器708执行时,控制系统700实现根据本发明的分割、编码、存储,以及流化/传输和/或输出操作。

存储器712包括各种模块,例如例程,当其被处理器708执行时,控制计算机系统700实现根据本发明的沉浸式立体视频获取、编码、存储,以及传输和/或输出方法。存储器712包括控制例程714、分割模块716、编码器718、流化控制器720、接收的输入图像732(例如场景的360度立体视频)、编码的场景部分734,以及定时信息736。在一些实施例中,模块被实现为软件模块。在其它实施例中,模块在硬件中被实现,例如实现为单独的电路,其中每个模块被实现为用于执行模块对应的功能的电路。在还有其它实施例中,模块是利用软件和硬件的组合来实现的。

控制例程714包括设备控制例程和通信例程,以控制系统700的操作。分割模块716被配置为根据本发明的特征将接收到的场景的立体360度版本分割成N个场景部分。

编码器718可以(并且在一些实施例中确实)包括被配置为根据本发明的特征编码接收到的图像内容的多个编码器,其中图像内容例如场景和/或一个或多个场景部分的360度版本。在一些实施例中,编码器包括多个编码器,其中每个编码器被配置为编码立体场景和/或分割的场景部分,以支持给定的位速率流。因此,在一些实施例中,每个场景部分可以利用多个编码器来编码,以支持用于每个场景的多个不同的位速率流。编码器718的输出是编码的场景部分734,其被存储在存储器中,以用于流化到消费者设备,例如回放设备。编码的内容可以经由网络接口710被流化到一个或多个不同的设备。

流化控制器720被配置为控制编码内容的流化,以用于例如经通信网络105将编码的图像内容交付给一个或多个消费者设备。在各种实施例中,流程图600的各个步骤由流化控制器720的元件实现。流化控制器720包括请求处理模块722、数据速率确定模块724、当前头部位置确定模块726、选择模块728和流化控制模块730。请求处理模块722被配置为处理从消费者回放设备接收的对成像内容的请求。在各种实施例中,对内容的请求是经由网络接口710中的接收器接收的。在一些实施例中,对内容的请求包括指示请求回放设备的身份的信息。在一些实施例中,对内容的请求可以包括由消费者回放设备支持的数据速率、用户的当前头部位置,例如头戴式显示器的位置。请求处理模块722处理接收到的请求并将检索到的信息提供给流化控制器720的其它元件,以采取进一步的动作。虽然对内容的请求可以包括数据速率信息和当前头部位置信息,但是在各种实施例中,由回放设备支持的数据速率可以从系统700和回放设备之间的网络测试和其它网络信息交换来确定。

数据速率确定模块724被配置为确定可被用来将成像内容流化到消费者设备的可用数据速率,例如,由于支持多个编码场景部分,因此内容交付系统700可以支持以多个数据速率向消费者设备流化内容。数据速率确定模块724还被配置为确定由从系统700请求内容的回放设备支持的数据速率。在一些实施例中,数据速率确定模块724被配置为基于网络测量确定用于图像内容交付的可用数据速率。

当前头部位置确定模块726被配置为根据从回放设备接收的信息确定用户的当前观看角度和/或当前头部位置,例如头戴式显示器的位置。在一些实施例中,回放设备周期性地向系统700发送当前头部位置信息,其中当前头部位置确定模块726接收并处理该信息,以确定当前观看角度和/或当前头部位置。

选择模块728被配置为基于用户的当前观看角度/头部位置信息来确定360度场景的哪些部分要流化到回放设备。选择模块728还被配置为基于可用的数据速率选择所确定的场景部分的编码版本,以支持内容的流化。

流化控制模块730被配置为根据本发明的特征以各种支持的数据速率控制图像内容的流化,其中图像内容例如360度立体场景的多个部分。在一些实施例中,流化控制模块730被配置为控制360度立体场景的N个部分到请求内容的回放设备的流化,以初始化回放设备中的场景存储器。在各种实施例中,流化控制模块730被配置为例如以确定的速率周期性地发送所确定的场景部分的被选编码版本。在一些实施例中,流化控制模块730还被配置为根据时间间隔(例如每分钟一次)向回放设备发送360度场景更新。在一些实施例中,发送360度场景更新包括发送完整360度立体场景的N个场景部分或N-X个场景部分,其中N是完整360度立体场景被分割成的部分的总数并且X表示最近被发送到回放设备的所选择的场景部分。在一些实施例中,流化控制模块730在初始发送N个场景部分之后等待预定时间,用于在发送360度场景更新之前初始化。在一些实施例中,控制360度场景更新的发送的定时信息被包括在定时信息736中。在一些实施例中,流化控制模块730还被配置为识别在刷新间隔期间尚未被发送到回放设备的场景部分;以及发送在刷新间隔期间未被发送到回放设备的所识别出的场景部分的更新版本。

在各种实施例中,流化控制模块730被配置为周期性地向回放设备传送至少足够数量的N个部分,以允许回放设备在每个刷新周期期间至少一次完全刷新所述场景的360度版本。

图8示出了根据本发明实现的回放系统800,其可被用来接收、解码、存储和显示从诸如图1和7中所示的内容交付系统接收的成像内容。系统800可被实现为包括显示器802的单个回放设备800',或者实现为诸如耦合到计算机系统800'的外部显示器(例如,头戴式显示器805)的元件的组合。

在至少一些实施例中,回放系统800包括3D头戴式显示器。头戴式显示器可以利用可以包括头戴式显示器805的OCULUS RIFTTMVR(虚拟现实)耳机来实现。其它头戴式显示器也可被使用。在一些实施例中,头戴式头盔或其它头戴式设备,其中一个或多个显示屏被用来向用户的左眼和右眼显示内容。通过在单个屏幕上向左眼和右眼显示不同的图像,其中头戴式设备被配置为将单个屏幕的不同部分暴露给不同的眼睛,可以使用单个显示器来显示将被观看者的左眼和右眼分别感知到的左眼和右眼图像。在一些实施例中,手机屏幕被用作头戴式显示设备的显示器。在至少一些这样的实施例中,手机被插入头戴式设备并且手机被用来显示图像。

回放系统800具有解码接收到的编码图像数据并且生成用于向消费者显示的3D图像内容的能力,其中编码图像数据例如左眼和右眼图像和/或对应于环境或场景的不同部分的单声道(单个图像),其中显示是例如通过将用户感知到的不同的左眼和右眼视图渲染并显示为3D图像。在一些实施例中,回放系统800位于消费者驻地位置,诸如家或办公室,但也可以位于图像捕获地点。系统800可以执行根据本发明的信号接收、解码、显示和/或其它操作。

系统800包括显示器802、显示设备接口803、输入设备804、输入/输出(I/O)接口806、处理器808、网络接口810和存储器812。系统的各种部件800经由允许数据在系统800的部件之间通信的总线809和/或通过其它连接或通过无线接口耦合在一起。虽然在一些实施例中显示器802作为可选元件被包括,如利用虚线框所示的,但是在一些实施例中,外部显示设备805(例如头戴式立体显示设备)可以经由显示设备接口803耦合到回放设备。

例如,在手机处理器被用作处理器808并且手机在头戴式设备中生成和显示图像的情况下,系统可以包括处理器808、显示器802和存储器812,作为头戴式设备的一部分。处理器808、显示器802和存储器812都可以是手机的一部分。在系统800的其它实施例中,处理器808可以是诸如XBOX或PS4的游戏系统的一部分,其中显示器805安装在头戴式设备中并且耦合到游戏系统。处理器808或存储器812是否位于佩戴在头上的设备中并不是关键的并且,如可以理解的,虽然在一些情况下,在头饰(headgear)中共同定位处理器会是方便的,但是从功率、热量和重量的角度来看,在至少一些情况下,可能期望使处理器808和存储器812耦合到包括显示器的头饰。

虽然各种实施例构想了头戴式显示器805或802,但是该方法和装置还可以与可支持3D图像的非头戴式显示器一起使用。因而,虽然在许多实施例中系统800包括头戴式显示器,但是它还可以利用非头戴式显示器来实现。

存储器812包括各种模块,例如例程,当其被处理器808执行时,控制回放设备800执行根据本发明的解码和输出操作。存储器812包括控制例程814、对内容的请求生成模块816、头部位置和/或观看角度确定模块818、解码器模块820、也被称为3D图像生成模块的立体图像渲染模块822,以及包括接收到的编码图像内容824、解码图像内容826、360度解码场景缓冲器828和生成的立体内容830的数据/信息。

控制例程814包括设备控制例程和通信例程,以控制设备800的操作。请求生成模块816被配置为生成对内容的请求,以发送到内容传递系统以用于提供内容。在各种实施例中,对内容的请求是经由网络接口810发送的。头部位置和/或观看角度确定模块818被配置为确定用户的当前观看角度和/或当前头部位置,例如,头戴式显示器的位置,并将确定的位置和/或观看角度信息报告给内容交付系统700。在一些实施例中,回放设备800周期性地向系统700发送当前头部位置信息。

解码器模块820被配置为解码从内容交付系统700接收的编码图像内容824,以产生解码的图像数据826。解码的图像数据826可以包括解码的立体场景和/或解码的场景部分。

3D图像渲染模块822根据本发明的特征,例如利用解码的图像内容826来生成3D图像,例如以将被感知为3D图像的方式显示的左眼和右眼图像,以用于在显示器802和/或显示设备805上向用户显示。所生成的立体图像内容830是3D图像生成模块822的输出。因此,渲染模块822将3D图像内容830渲染到显示器。在一些实施例中,显示设备805可以是诸如Oculus Rift的3D显示设备的一部分。回放设备800的操作者可以经由输入设备804控制一个或多个参数和/或选择要执行的操作,例如选择显示3D场景。

图9示出了表示示例性相机组件900(有时也被称为相机装备或相机阵列)的图,其具有安装在3个不同安装位置的3个相机对902、904、906和可被用于校准相机组件900的校准目标915。根据本发明的一些实施例,相机装备900被用来捕获图像内容。在一些实施例中,相机装备900被用作图1的图像捕获装置102。相机装备900包括将相机保持在指示位置的支撑结构(图11中所示)、3对902、904、906立体相机(901、903)、(905、907)、(909、911)总共6个相机。支撑结构包括在本文中也被称为安装板(参见图11中所示的元件1120)的基座1120,基座支撑相机并且其上安装有相机的板可以固定到该基座。支撑结构可以由塑料、金属或者诸如石墨或玻璃纤维的复合材料制成,并且由构成三角形的线表示,其也被用来示出相机之间的间距和关系。点线相交的中心点表示中心节点,在一些但不一定是所有实施例中,相机对902、904、906可以围绕该中心节点旋转。在一些实施例中,中心节点对应于例如三脚架基座的钢杆或螺纹中心安装件,由三角形线表示的相机支撑框架912可以围绕其旋转。支撑框架可以是其中安装有相机的塑料外壳或者是三脚架结构。

在图9中,每对相机902、904、906对应于不同的相机对位置。第一相机对902对应于面向前0度位置。这个位置通常对应于感兴趣的主场景区域,例如,正在其上进行体育比赛的场地、舞台或者主要动作可能发生的某个其它区域。第二相机对904对应于120度相机位置并被用来捕获右后观看区域。第三相机对906对应于240度位置(相对于0度位置)和左后观看区域。注意,三个相机位置隔开120度。每个相机观看位置包括图9实施例中的一个相机对,其中每个相机对包括用来捕获图像的左相机和右相机。左相机捕获有时被称为左眼图像的内容,右相机捕获有时被称为右眼图像的内容。图像可以是在一个或多个时间捕获的视图序列或静止图像的一部分。通常,至少对应于相机对902的前相机位置将用高质量摄像机填充。其它相机位置可以用用来捕获静止或单色图像(mono image)的单个相机或高质量摄像机、较低质量摄像机来填充。在一些实施例中,第二和第三相机实施例保持未被填充并且其上安装有相机的支撑板被旋转,从而允许第一相机对902捕获对应于所有三个相机位置但在不同时间的图像。在一些这样的实施例中,左和右后方图像被较早捕获并存储,然后前向相机位置的视频在事件期间被捕获。捕获的图像可以被实时地,例如在事件仍在进行的同时,被编码和流化到一个或多个回放设备。

图9中所示的第一相机对包括左相机901和右相机903。左相机901具有固定到第一相机的第一透镜组件920,右相机903具有固定到右相机903的第二透镜组件920'。透镜组件920、920'包括允许捕获广角视野的透镜。在一些实施例中,每个透镜组件920、920'包括鱼眼镜头。因此,相机902、903中的每一个可以捕获180度视野或大约180度。在一些实施例中,小于180度被捕获,但是在一些实施例中,在从相邻的相机对捕获的图像中仍然存在至少一些重叠。在图9的实施例中,相机对在第一(0度)、第二(120度)和第三(240度)相机安装位置中的每一个处定位,其中每对捕获环境的至少120度或更多,但是在许多情况下,每个相机对捕获环境的180度或大约180度。

第二904和第三906相机对与第一相机对902相同或相似,但是相对于前0度位置位于120和240度相机安装位置。第二相机对904包括左相机905和左镜头组件922以及右相机907和右相机镜头组件922'。第三相机对906包括左相机909和左镜头组件924以及右相机911和右相机镜头组件924'。

在图9中,D表示第一立体相机对901、903的轴间距离。在图9中,示例D为117mm,这与普通人的左眼和右眼的瞳孔之间的距离相同或相似。图9中的虚线950绘出了从全景阵列的中心点到右相机镜头920'的入射光瞳的距离(aka节点偏移)。在对应于图9例子的一个实施例中,由附图标记950指示的距离是315mm,但其它距离是可能的。

在一个特定实施例中,相机装备900的覆盖区(footprint)相对较小,其水平面积为640mm2或更小。这种小尺寸允许相机装备被放在观众中,例如在粉丝或观众通常可以位于或定位的就座位置处。因此,在一些实施例中,相机装备被放在观众区域中,从而允许观看者具有作为期望这种效果的观众中的一员的感觉。在一些实施例中,覆盖区对应于在一些实施例中包括中心支撑杆的支撑结构安装到其或支撑塔定位到其的基座的尺寸。应当理解,在一些实施例中,相机装备可以围绕对应于3对相机之间的中心点的基座的中心点旋转。在其它实施例中,相机是固定的并且不围绕相机阵列的中心旋转。

相机装备能够捕获相对接近以及遥远的物体。在一个特定实施例中,相机阵列的最小成像距离为649mm,但其它距离也是可能的并且这个距离不是关键的。

从相机组件的中心到第一和第三相机部分的视图的交叉点951的距离表示可被用于校准由第一和第二相机对捕获的图像的示例性校准距离。应当指出,目标915可被放在距位于或稍微超过最大失真的区域的相机对的已知距离处。校准目标包括已知的固定校准模式。校准目标可以是并且被用于校准由相机对的相机捕获的图像的大小。这种校准是可能的,因为,相对于捕获校准目标915的图像的相机,校准目标的尺寸和位置是已知的。

图10是图9中示出的相机阵列的更详细的图1000。虽然相机装备再次被示为具有6个相机,但是在一些实施例中,相机装备被填充有两个相机,例如相机对902。如图所示,在每个相机对安装位置之间存在120度的间隔。考虑例如如果每个相机对之间的中心对应于相机安装位置的方向,那么在这种情况下,第一相机安装位置对应于0度、第二相机安装位置对应于120度并且第三相机安装位置对应于240度。因此,每个相机安装位置隔开120度。如果延伸穿过每个相机对902、904、906的中心的中心线被延伸并且线之间的角度被测量,则可以看到这一点。

在图10的例子中,相机对902、904、906可以(在一些实施例中确实)围绕相机装备的中心点旋转,从而允许在不同时间捕获不同视图,而不必更改相机装备基座的位置。即,相机可以绕装备的中心支撑件旋转并被允许在不同时间捕获不同场景,从而允许在其仅填充有两个相机的同时利用图10中所示的装备进行360度场景捕获。考虑到立体相机的成本,这种配置从成本的角度来看是特别期望的,并且非常适于许多应用,可能期望示出从相同视点但在与包括体育事件或其它事件期间的主要动作的前场景可以发生的时间不同的时间处捕获的背景。考虑例如在事件期间对象可以被放在相机后面,那么在主事件期间不显示其将是优选的。在这种情况下,后图像可以(有时候)在主事件之前被捕获并且连同主事件的实时捕获的图像一起可用,以提供图像数据的360度集合。

图11示出了根据一个示例性实施例实现的示例性相机装备1100的详细图示。如从图11可以理解的,相机机架1100包括3对相机1102、1104和1106,在一些但不是全部实施例中,它们是立体相机。在一些实施例中,每个相机对包括两个相机。相机对1102、1104和1106与上面关于图9-10讨论的相机对902、904、906相同或相似。在一些实施例中,相机对1102、1104和1106安装在相机装备1100的支撑结构1120上。在一些实施例中,三对相机(六个相机)1102、1104和1106经由相应的相机对安装板安装在支撑结构1120上。支撑结构1120包括用于安装立体相机对的三个安装位置,其中每个安装位置对应于不同的120度观看区域。在图11的所示实施例中,第一对立体相机1102安装在三个安装位置中的第一个,例如正面位置,并且对应于120度正面观看区域。第二对立体相机1104安装在三个安装位置中的第二个,例如相对于正面位置顺时针旋转120度的背景位置,并且对应于不同的120度观看区域。第三对立体相机1106安装在三个安装位置中的第三个,例如相对于正面位置顺时针旋转240度的背景位置,并且对应于另一个120度的观看区域。虽然相机装备1100上的三个相机安装位置相对于彼此偏移120度,但是在一些实施例中,安装在相机机架上的每个相机具有大约180度的视野。在一些实施例中,这种扩大的视野是通过在相机设备上使用鱼眼镜头来实现的。

虽然不是所有的安装板都在所示的附图中可见,但是示出了用于安装相机对1102的相机安装板1110。用于相机的安装板具有用于螺钉的狭槽,以穿过支撑基座1120中的狭槽并从底部进入安装板中的螺纹孔中。这允许通过松开可从底部接近的螺钉然后拧紧螺钉来调节用于该对的安装板,以将相机对安装板固定到支撑结构。各个相机位置也可以被调整,然后在调整后被锁定。在一些实施例中,各个相机可以从顶部被调整/固定到安装板,并且相机安装板可以从底部被调整/固定。

在各种实施例中,相机装备1100包括基座1122,支撑结构1120可旋转地安装到基座1122。因此,在各种实施例中,支撑结构1120上的相机组件可以围绕穿过基座中心的轴旋转360度。在一些实施例中,基座1122可以是三脚架或另一安装设备的一部分。支撑结构可以由塑料、金属或者诸如石墨或玻璃纤维的复合材料制成。在一些实施例中,相机对可以围绕有时被称为中心节点的中心点旋转。

除了上述元件之外,在一些实施例中,相机装备1100还包括两个模拟耳状物1130、1132。这些模拟耳状物1130、1132模仿人耳并且在一些实施例中由以人耳形状模制的硅树脂制成。模拟耳状物1130、1132包括麦克风,其中两个耳状物彼此分开等于或近似等于普通人的人耳之间间隔的距离。安装在模拟耳状物1130、1132中的麦克风安装在前置相机对1102上,但是可以作为替代地安装在支撑结构(例如平台1120)上。以与人耳垂直于人头上的眼睛的前表面定位的类似方式,模拟耳状物1130、1132垂直于相机对1102的前表面定位。模拟耳状物1130、1132侧面的孔充当模拟耳状物侧面的音频入口孔,其中模拟耳状物和孔组合操作,以将音频指向安装在每个模拟耳状物中的麦克风,非常像人耳将音频声音指向包括在人耳中的鼓膜。左和右模拟耳状物1130、1132中的麦克风提供立体声捕获,类似于处于相机装备1100位置的人如果位于相机装备的位置时将经由人的左耳和右耳感知到的立体声音。

虽然图11示出了具有三个立体相机对的示例性相机装备1100的一种配置,但是应当理解,其它变型是可能的并且在范围内。例如,在一个实现中,相机装备1100包括单个相机对,例如,可以围绕相机装备的中心点旋转的一对立体相机,从而允许在不同时间捕获360度场景的不同部分。因此,单个相机对可以安装在支撑结构上并且围绕装备的中心支撑旋转并且被允许在不同时间捕获不同场景,从而允许360度场景捕获。

图12示出了示例性360度场景环境1200,例如360度场景区域,其可被分割为对应于捕获360度场景的不同部分的相应相机的不同相机位置相的不同观看区域/部分。在所示的例子中,360度场景区域1200被划分成对应于由三个不同相机/相机对(例如,诸如安装在相机装备1100上并如同9、10和11中所示定位的相机)捕获的三个180度区的三个部分。360度场景1200上的0度标记可以被认为是场景的中心。在不使用鱼眼镜头的一些实施例中,每个相机的视野大约为120度,因此允许相机捕获大约120度的场景区域。在这样的实施例中,不同的120度场景部分的边界在图中利用将360度场景分成每个120度的3个部分的实心黑线示出。在相机配有鱼眼镜头的实施例中,每个相机的视野扩展到大约180度(±5度),从而允许相机捕获大约180度(±5度)的场景区域。

覆盖0度标记的左侧和右侧90度的第一个区(对应于从270到90的180度前场景区域的区1)可以由第一相机捕获,第一相机例如被定位成捕获前场景区域、装配有允许相机设备具有大约180度视野的鱼眼镜头的相机对1102。第二个区(区2)对应于从30到210的180度后右场景区域,其可以由第二相机捕获,第二相机例如被定位成捕获右后方场景区域、配备有鱼眼镜头的相机对1104,第三个区(区3)对应于从150到330的180度左后场景区域,其可以由第三相机捕获,第三相机例如被定位成捕获左后场景区域、配备有鱼眼镜头的相机对1106。图例1250包括识别用来指示不同区边界的不同线条图案的信息,例如,标记在不同区下面被覆盖的场景区域的开始和结束。从图中可以理解,在由不同相机覆盖的三个不同区下面的场景区域之间存在实质性的重叠。在图12所示的例子中,区1和区2之间的重叠是60度,即,30到90下面的场景区域,区2和区3之间的重叠也是60度,即,150到210下面的场景区域,区3和区1之间的重叠是60度,即,270到330下面的场景区域。虽然在所示的例子中重叠是60度,但是应当理解,不同的变化重叠是可能的。在一些实施例中,两个不同的场景覆盖区域之间的重叠在30度到60度之间。

在一些实施例中,内容提供者向消费者回放设备发布(例如多播)包括对应于由不同相机捕获的360度场景区域的不同部分的内容的内容流。在一些实施例中,对应于已经被不同地编码的不同场景区域的多个版本的内容由内容提供商多播,并且支持和/或更喜欢特定版本的回放设备可以选择适当的内容流来解码和回放。根据一些实施例的一方面,回放设备跟踪指示用户的当前视野的当前头部位置,并且决定要选择包括对应于360度场景区域的一部分的内容的可用内容流中的哪一个或多个可用内容流来接收以用于回放。例如,如果用户头部位置指示用户正在看/直视前方,则回放设备解码传送360度场景的180度前部的流,但是当检测到用户的头部位置和观看角度已经改变时,回放设备解码360度场景区域的对应于适合用户的当前观看角度(例如,右后、左后、后)的场景部分的流。在一些实施例中,包括对应于360度场景区域的第一部分(例如,前180度)的内容的流包括由用来捕获360度场景的前部的前置相机对的左和右相机捕获的场景区域。

图13示出了表示图12的示例性360度场景区域的不同部分的例子,其可以由例如示例性相机装备1100上可被定位成覆盖示例性360度场景区域的观看区域/部分的不同相机捕获。图13的例子包括示出示例性360度场景区域的不同部分的图1300、1320和1350。然而,如从图中可以理解的,在一些实施例中,由不同相机捕获的场景的不同部分中每一个的至少部分重叠。不同的阴影图案在图1300、1320、1350中每一个中被使用,以示出对应于不同相机位置的场景区域的部分。在一些实施例中,在图1300、1320、1350中示出的不同场景部分经由提供对应于不同观看方向的内容的不同内容流被传送。虽然在图13的例子中场景部分被示为覆盖大约180度的观看区域,但是在一些实施例中场景部分可以覆盖120度到180度之间。

图1300示出了360度场景1200的第一示例性场景部分1305。第一示例性场景部分1305对应于正面观看方向并且覆盖360度场景环境中的180度或大约180度的观看区域。第一场景部分1305可以由例如位于0度相机位置的第一相机对902或1102捕获。第一示例性场景部分1305下面的区域在图1300中利用对角线图案示出。第一示例性场景部分1305可以由传送对应于第一(例如,前方)观看方向的内容帧的第一流传送。

图1320示出了360度场景1200的第二示例性场景部分1307(其包括在图1320中示出的部分1307'和1307”)。第二示例性场景部分1307对应于右后方观看方向并覆盖360度场景环境中从30到210延伸的180度或大约180度观看区域。第二场景部分1307可以由位于如图9-10中所示120度相机位置的例如第二相机对904捕获。在第二示例性场景部分1307下面的区域在图1300中利用水平线条图案示出。考虑图1300和1320。注意在第一和第二场景部分1305和1307之间的场景区域的重叠部分1308。重叠部分1308示出了对场景区域1200的第一和第二场景部分1305、1307公共的所捕获场景区域的一部分。在一些实施例中,第一和第二场景部分1305、1307之间的重叠在30度到60度之间,具有加减2-3度的变化。在图13所示的例子中,重叠部分1308是60度,例如,从30到90的区域。因此,在一些实施例中,对应于由不同内容流提供和/或由不同相机捕获的不同观看方向的场景区域的至少一部分重叠。在一些其它实施例中,在对应于由不同相机捕获的不同观看方向的场景区域之间没有重叠。在一些实施例中,第二示例性场景部分1307可以由传送对应于第二观看方向的内容帧的第二流传送。

图1350示出了360度场景1200的第三示例性场景部分1309(包括图1350中示出的部分1309'和1309”)。第三示例性场景部分1309对应于左后观看方向并且覆盖360度场景环境中从150到330延伸的180度或大约180度观看区域。第三场景部分1309可以由位于如图9-10所示240度相机位置的例如第三相机对906捕获。在第三示例性场景部分1309下面的区域在图1300中利用垂直线图案示出。考虑图1320和1350。注意重叠部分1310、1310',它们组合构成第二和第三场景部分1307和1309之间的重叠区域部分。在重叠部分1310、1310'下面共同的区域示出了对场景区域1200的第二和第三场景部分1307、1309公共的所捕获的场景区域的部分。在一些实施例中,第二和第三场景部分1307、1309之间的重叠在30度到60度之间,具有加减2-3度的变化。在图13所示的例子中,重叠部分1310、1310'一起包括大约60度的覆盖,例如,从150到210的区域。现在进一步考虑图1300和1350。注意重叠部分1312,它指示第一和第三场景部分1305和1309之间的重叠区域部分。在一些实施例中,第三示例性场景部分1309可以由传送对应于第三观看方向的内容帧的第三流传送。

虽然作为图13例子的一部分示出的图示出了一个例子,以便于理解本发明的一些方面,但是应当理解,其它变型是可能的并且在本公开内容的范围内。

包括图14A和14B的组合的图14是示出根据本发明示例性实施例的操作回放系统的示例性方法的步骤的流程图1400。该系统可以是图8中所示的回放系统800或者是本申请中所示的任何其它附图的回放系统。

示例性方法开始于步骤1402,其中回放设备(例如图19的回放设备1900或任何其它附图的回放设备)被开启并初始化。为了讨论的目的,考虑回放系统包括耦合到头戴式显示设备1905的计算机系统1900',头戴式显示设备1905包括在其上呈现图像内容的显示器,例如,在立体内容的情况下向用户的左眼和右眼呈现不同的图像。虽然计算机系统1900'被示为在包括显示器的头戴式设备的外部,但是计算机系统1900'可以结合到头戴式显示器中,而不是在其外部。

操作从开始步骤1402前进到步骤1404。在步骤1404中,回放系统1900接收关于多个内容流和/或初始化数据的信息,例如作为节目指南的一部分。所接收的信息可以是图18中所示的类型并且包括指示哪些内容流是或者将可用的信息,连同可被用来接收流的信息,诸如多播组标识符或可被用来请求内容或调谐到内容的其它标识符。例如,与内容流关联的多播地址可以包括在所接收的信息或者当内容经由交换数字视频提供时可被用来请求内容的节目标识符中。在广播内容的情况下,所接收的信息可以(并且有时候确实)包括指示回放设备为了接收特定内容流而应当调谐到的信道和/或频率的调谐信息。

在步骤1404中接收的信息可以包括用于一个或多个节目的信息。对于给定节目,例如体育事件、音乐会等,不同的流可用于在内容所对应的环境处提供对应于相对于相机位置处于不同观看方向的内容。相机位置对应于回放期间的观看位置。因此,在回放期间用户的观看角度与在可被接收的内容中表示的环境的部分相关。环境的不同部分可以在不同的流中被传送。对于环境的每个部分,例如360度环境的部分,对应于不同数据速率的一个或多个流可以在所提供的信息中列出。环境的顶部和底部也可以被提供。在一些实施例中,各个流的内容是立体内容,其中不同的信息为左眼和右眼图像提供,从而允许向用户显示不同的图像,以提供期望的3D效果。在一些实施例中,球形环境的顶部和底部作为单色图像被提供,其中左眼和右眼视图是相同的,因此仅需要提供一个图像而不是两个图像。

给定可用于流内容的有限带宽,关于节目、环境的部分以及流的数据速率的信息可以(并且在一些实施例中确实)被回放系统用来优先化哪个流要被接收。在给定时间接收哪个流的优先化和选择可以(并且在一些实施例中确实)基于用户的头部位置和/或用户当前或过去的头部旋转方向。

在立体内容的流化的情况下,给定有限的带宽和/或数据约束,对要接收的适当流的选择对于令人满意的和高质量的观看体验是重要的。在步骤1404中接收的可以与图18所示的信息相同或相似的信息(例如流信息1405)被存储在存储器中并被用于要在特定时间点被接收的一个或多个流的选择,并被用于启动被选流的交付,例如通过加入对应于被选流的多播组、调谐到提供被选流的信道,和/或通过向网络设备指示要向回放设备提供的期望的流经其被传送的交换数字视频信道进行所请求的流的交付。

操作从步骤1404前进到步骤1406。在步骤1406中,在初始化期间,检测用户当前头部位置。用户知道在初始化阶段期间检测到的头部位置将被假设为向前看位置,因此在步骤1406期间通常将他的头部维持在舒适水平面向前位置。

操作从步骤1406前进到步骤1408。在步骤1408中,在步骤1406中检测到的用户头部位置1407被视为向前(0度)环境观看位置,并且当用户他/她的头部处于这个位置时所显示的视图位置将对应于0度环境位置,即,由用来捕获然后被编码并包括在对应于环境的特定部分的内容流中的图像的相机捕获的前向位置。在体育事件的情况下,这个位置通常将对应于环境中的主要动作区域,例如,在一个或多个流对应于音乐会的情况下是舞台,在流对应于体育事件的情况下是场地的中心。因此,在步骤1408中,用户的观看位置将被设置为被解释为零度观看位置,例如场景区域的前向/前方部分。应当指出,360度视图的部分对应于水平观看位置,如果用户转动他/她的头部,则不同部分是可见的。通过向上或向下移动用户头部,用户可以单独地或与一个或多个其它部分组合地看到天空部分和/或地面部分。由于在假设水平头部位置的情况下,主场景区域沿着360度旋转被划分成多个部分,因此对应于这些部分的流通常被分配更多带宽,而顶部/底部场景部分可以利用静态图像或不频繁变化的图像来呈现。

操作从步骤1408前进到步骤1410,其中环境深度映射被接收。深度映射定义内容流的图像将被映射到其上的3D环境的表面。在没有接收深度映射的情况下,球体是环境的缺省假设形状,其中球体的内表面是在显示之前渲染期间环境的图像要映射到其上的表面。通过提供并使用深度映射,实现了更真实的体验,因为内容流中的图像将被映射到更真实地再现要被模拟的环境的形状和表面的表面。因此,在步骤1410中接收的深度映射对应于由用户选择要接收的内容也对应的环境。在步骤1410中接收的环境映射,或者在没有接收到映射的情况下的缺省映射,被存储为环境映射1411,用于随后在渲染图像时使用。

操作从步骤1410前进到步骤1412。在步骤1412中,接收要被用于将2D图像内容映射到3D表面的至少一部分上的一个或多个UV映射。在一个实施例中,为可以由不同的个别图像表示的环境的每个部分接收至少一个UV映射。在一些这样的实施例中,当由内容流传送的图像由不同的相机(例如左眼和右眼相机)捕获时,不同的UV映射可以并且有时候确实针对不同的相机被提供。因此,虽然在图14A的例子中在步骤1414中接收对应于环境的诸如前向部分的第一部分的第一UV映射,但是在步骤1416中接收对应于环境的诸如左后部分的第二部分的第二UV映射,在步骤1417中接收对应于环境的诸如右后部分的第三部分的第三UV映射。对应于环境的顶部和底部的UV映射分别在步骤1418和1420中接收。如果这些部分具有相同的尺寸,则相同的UV映射可被用于多个部分。但是,在一些实施例中,不同的UV映射用于由不同相机捕获的图像。

因而,在一个这样的实施例中,对于为其提供立体图像数据的环境的每个部分,例如左眼和右眼图像,可以为左眼和右眼图像中的每一个接收并存储单独的UV映射,因此UV映射可以考虑被用来捕获特定的左眼或右眼图像内容的相机组件的特定特性。

每个UV映射提供被用来将该映射对应的内容流的二维图像映射到3D环境的表面的对应部分的映射。以这种方式,由相机捕获的图像可以作为2D图像被发送,然后作为纹理映射到由3D模型定义的表面或表面的一部分上。

随着3D模型信息和UV映射已经被接收,在用于场景部分的其它内容的情况下可被用作缺省值的图像可以被接收并存储。在步骤1422中,对应于第一、第二、第三和第五场景部分中一个或多个的内容(例如图像)在步骤1422中被接收并存储。在一些实施例中,对应于环境的一部分(例如,背景部分或天空部分)的多个替代图像在步骤1422中被接收并存储。可以接收控制信息,该控制信息指示在事件期间给定时间点对于为其存储了多个缺省图像的一部分要使用哪个缺省图像。例如,在一些实施例中,人群坐着的背景图像和人群站立的背景区域图像被存储为两个缺省图像。控制信息被用来指示哪个背景图像被用于事件的给定部分。例如,在对应于戏剧或音乐会的站立节奏的部分期间,如果用户转向背景方向,则人群站立图像将被信令表示为要显示的背景图像。但是,在当人群通常坐着的事件的主要部分期间,如果用户朝背景转动他/她的头部,则控制信息将被信令应当使用人群坐着的缺省图像。控制信息可以与内容流分开信令,或者可以与用于环境的一部分的内容流一起被包括,该部分不同于一个或多个缺省图像相关的部分。例如,对应于前向方向的内容流可以提供对应于前向方向的图像,例如左眼和右眼图像,以及指示哪些缺省图像应当在事件期间的各个时间用于天空、地面、右背景部分和左背景部分的控制信息。作为替代地,回放设备可以基于在特定时间点与前景图像的一个或多个特征的相似度的亮度来决定使用哪个背景或天空部分。例如,当前景图像暗时,这可以被检测到并且多云天空图像被自动检测到,而当前景图像较亮时,这也可以被检测到并且从被接收和存储的可用的缺省天空图像中自动选择较少云、较亮的天空图像。

在步骤1422中,对应于不同环境部分的缺省图像通常以编码形式被接收和存储。在步骤1424中,所接收的图像中一个或多个被解码,然后在步骤1426中解码的内容被存储在一个或多个图像缓冲器中。以这种方式,缺省图像可以被解码并以解码形式被存储,因此在回放期间当它们需要渲染时不需要被再次解码。由于缺省图像可以被多次使用,因此解码和存储可以减少解码要求,否则可能在渲染时或在渲染之前需要解码图像。假定处理资源可能不足,与其中图像在紧接着显示之前被解码、然后一旦解码图像不再被需要就将其从例如存储器中删除的实施例相比,缺省图像的预解码和以解码形式存储提高了处理器资源的使用。

虽然相同的缺省解码图像可以被多次使用,例如对于天空等,但是它可以在与其它接收的图像内容组合之前被处理,使得其更紧密匹配它与其组合的环境的其它图像,以生成环境的被观看部分。例如,在一些实施例中,解码的缺省图像基于它们与其组合的图像部分接受亮度调整,或者在缺省图像将与对应于环境的另一部分的图像组合的时候至少沿着边缘被模糊。因此,在至少一些实施例中,在使用期间,图像发光和/或颜色特性被过滤或修改,以使它们更类似于它们与其组合的地面图像的相同特性。

随着初始化数据和缺省图像已被存储用于将来使用,操作前进到步骤1428,其中要被接收的一个或多个流的集合(例如当前选择的流的集合)被初始化。每个流可以提供立体或单色图像数据。可选地,对应的音频还可以在所选的流中被接收,但更常见地是在一个或多个单独的音频流中被接收。描述将集中于视频流的接收,但是应当理解,音频流通常也将由回放设备接收和解码,并且音频可以包括立体声音频。

在示例性步骤1428中,当前被选的流的集合被设置为等于传送对应于环境的前向/前方部分的内容的第一流。这是因为在启动时初始位置被设置为向前观看位置并且因此,作为初始化的结果,用户将在开始时期望看到前方场景区域。

操作从步骤1428前进到步骤1429。在步骤1429中,资源分配信息被接收。资源分配信息可以是带宽和/或数据速率分配控制信息的形式。在一些实施例中,在步骤1429中接收的信息包括关于多少带宽或数据通信容量应当分配给对应于环境的不同部分的一个或多个通信流的信息。信息可以就带宽或数据速率来表示,但是应当理解,数据速率通常与带宽一致。例如,考虑用来经带宽通信的数据编码的类型,可以被接收的数据量可以根据带宽量而变化。

在步骤1429中接收的信息可以指示分配给对应于环境特定部分的图像接收的可用通信容量的相对最大量。例如,其可以指示至多80%的带宽或可支持的数据速率应当分配给主数据流,例如前向数据流,而带宽的最后20%被分配给一个或多个其它流。资源向不同方向的分配可以根据(并且在一些实施例中确实根据)环境的对应部分中的图像内容和/或检测到的观众反馈而变化。例如,在一些实施例中,在内容对应的事件期间发生的中场休息期间,在步骤1429中接收的信息可以指示增加量的资源应当分配给对应于环境的一个或两个后部的接收图像。这是因为在中场休息期间,用户更有可能转动他们的头部并开始远离主场地或舞台地看去并且可能期望为后部提供某个视频,使得看起来在中场休息期间在观众中有动作进行。例如,在棒球比赛时购买热狗或改变座位的人的图像可以(并且在一些实施例中确实)被发送,使得看起来背景在中场休息期间是活动的,而在其它时间是静态的。类似地,背景中广告牌的图像可以在中场休息期间改变,以用于广告和/或娱乐目的。因此,可能期望触发回放设备,以在中场休息期间比在事件的其它部分期间分配更多的资源来接收背景部分。在步骤1429中接收的控制信息在事件的主要部分期间可以,(并且有时候确实)与在事件的中场休息或其它离散部分期间不同。在至少一些实施例中,在主要事件期间,在步骤1429中接收的控制信息使得与后部相比更多的带宽和/或数据速率被分配给环境的主要的(例如前向)区域。但是,在中场休息或其它离散部分期间,可以迫使分配给一个或两个后部的数据速率增加。

分配给给定方向的资源之间的分割可以基于在环境的部分中呈现的内容、观众注意力的测量和/或正在进行的事件的部分,例如主要部分、中场休息部分、演出后的部分。在一些实施例中,在步骤1429中提供的控制信息指定要分配用于对应于环境的一个或多个部分的图像接收的带宽或数据速率的最大和/或最小量,例如当事件正在进行时。在一些实施例中,该信息指示在事件期间没有带宽或数据应当被分配用于接收地面到天空图像部分,并且因此在这种情况下当需要时这些部分要利用静态图像来填充。

带宽/数据速率分配控制信息可以随时间变化,不同的信息在不同的时间被接收。控制信息可以例如作为单独的控制信息集合被嵌到前向内容流中和/或被单独发送。

操作从步骤1429前进到步骤1430,其中启动尚未被接收的被选流集合中流的内容交付。这可以涉及加入被选流对应的多播组、向请求被选流的交付的网络设备发送消息和/或调谐到所选的一个或多个流在其上被发送的广播信道。在第一次通过步骤1430的情况下,这将涉及启动对应于环境的前向部分的内容流的交付,因为这被设置为将被选择用于交付的初始观看部分。但是,当用户的头部位置改变时,例如,用户向左或向右转动他/她的头部,被选择的流的集合可以并且通常将改变。例如,如果用户将他的头部向左转,使得前方区域和右后方区域的一部分进入视野,则被选的流的集合将被改变,使得对应于前方区域和左后方部分的内容被接收。如果左后部分未被接收并且被选择,则流中对应于左后部分的内容的交付将在步骤1430中被启动。如果不能在两个方向上都支持最大数据速率流,则可以选择较低数据速率前向流,并且因此较低数据速率的前向流和左后内容流的启动都将被启动。在被选集合之外的流在新选择的集合中的流接收之前被终止。流的终止和启动以平滑的方式被执行,使得时间间隙和/或被接收的内容的大幅变化被最小化,其中模糊和/或过滤被用来减小当流切换发生时图像的质量或源的显著变化。例如,模糊可以跨作为渲染或显示过程的一部分被缝合在一起的图像的部分被实现。

随着内容交付对被选流的当前集合启动,操作从步骤1430前进到步骤1432。在步骤1432中,从被选的内容流集合中的流接收内容。这可以(并且在各种实施例中确实)涉及接收对应于最高优先级流的内容,例如,提供对应于大部分视野的内容和对应于环境的一个或多个其它部分(例如,提供对应于视野的图像内容的一小部分的部分)的内容的流。提供用于当前视野的内容的一小部分的流可以被描述为次要流。在其中单个流提供用于全视野的内容的一个实施例中,20%或更少的可用带宽/可支持接收数据速率被保留并被用于接收一个或多个次要或较低优先级流,例如,这些一个或多个次要或较低优先级流在用户在视野之外的方向上转动的情况下提供在视野之外的内容。在视野在对应于两个不同内容流的区域之间大致均匀分割的情况下,每个流可被分配大约一半的可用数据速率/接收数据速率,因为它们以大致均匀的方式贡献并且用户将不可能快速改变位置来观看两个流为其提供图像的区域外的环境的区域。

随着内容接收已被启动,在步骤1432中,从被选的流的集合中接收内容,例如图像。在主要(例如,最高优先级)流的情况下,内容通常将是立体内容,其中左眼和右眼图像内容都在流中被接收。对于低优先级流和/或被分配低数据速率的流,单色图像可以被接收,其中单个图像被接收,以用于显示给给左眼和右眼图像。前向场景部分通常作为立体内容被被接收,但是一个或多个后部可以作为单色图像流被提供。

在步骤1432中,编码的图像内容通常在流中被接收。在步骤1434中,接收到的内容被解码,然后在经由连接节点A 1436到达的步骤1438中,解码的内容被存储在一个或多个图像缓冲器中。在一些实施例中,对环境的每个部分维持解码图像缓冲器。虽然接收到的图像的仅一部分最后被显示,但是完整的接收到的帧通常被解码和缓冲。解码的缓冲图像可以(并且在一些实施例中确实)保持在存储器中,直到其被用于相同场景部分的更近期的图像替换。因此,在任何给定的时间,解码图像可用于环境的每个部分,以便基于当前视野根据需要渲染最终的输出图像。由于解码图像的内容被维持在存储器中,直到它被更近期的解码图像替换,因此对应于360度环境的每个部分的图像的解码不需要在每个帧时间期间发生。因此,虽然可以支持每秒30帧的帧速率,但是不需要在每个帧周期解码150帧,例如,对于顶部、底部、前、左后、右后部分中的每一个有一帧,而是等于或稍高于要支持的帧速率的较低数量的帧可以被解码,其中图像的一些部分来自先前解码的静态图像或先前解码的以比对应于主视野的部分更低的速率更新的图像部分。

因此,在步骤1438中的更新之后,当前解码的帧可用于基于用户的当前视野来渲染图像。

操作从步骤1438前进到步骤1440。在步骤1440中,使用如下来渲染内容以供显示:从图像缓冲器可用的解码内容,定义一个或多个图像部分要例如作为纹理应用到其上的表面的环境映射,以及提供关于如何将2D解码图像应用到3D表面的模型的信息的UV映射。环境的3D网格模型可以是网格的形式,其中UV映射中的点对应于定义环境的图像要应用到其的表面的网格模型的顶点。

作为渲染的一部分,当来自单个流的内容不能提供将完全占据用户视野的部分时,对应于从不同流接收的内容的图像部分将被组合,以生成对应于用户视野的环境的图像。过滤或模糊可以(并且在一些实施例中确实)被跨图像应用,其中图像被连接,以形成对应于用户视野的合成图像。这趋于减少接缝对用户有多明显。此外,在一些实施例中,提供合成图像的一部分的图像部分的亮度被调整,以减少被组合以形成合成图像的图像部分之间的亮度差异,其中,当对被组合以形成合成图像的图像部分进行亮度调整时,前向视图的亮度值开始被给予高于后部、顶部或侧部的亮度值的优先级。

在步骤1442中,可以是从不同内容流接收的图像的一个或多个图像部分的合成的渲染图像被存储、显示或发送。这表示基于被选的内容流的当前集合对一个或多个内容帧的生成和显示。

随着时间的推移,由于通信信道条件的变化或网络问题,最大可支持数据速率会改变。这可以在步骤1443中被检测并且在选择哪些内容流应当被接收和处理时被考虑。在步骤1443中,最大可支持数据速率和/或带宽被确定为由数据1444表示,以在后续步骤中使用。在步骤1445中,检测用户的当前头部位置。这可以通过使用包括头戴式显示器的头饰上的位置传感器来完成。

操作从步骤1445前进到步骤1446,其中确定用户的头部位置是否已改变。如果用户的头部位置没有改变,则操作前进到步骤1447,其中检查当前可用的最大带宽或最大可支持的数据速率是否已经改变,例如,从上一次进行流选择开始。如果没有检测到最大可支持数据速率或头部位置的改变,则先前的流选择保持有效并且不对所选择的内容流集合进行改变。因此,回放系统将继续接收对应于保持不变的用户的当前视野的内容。在步骤1447中未检测到改变的情况下,操作经由连接节点B 1456返回到步骤1429。

但是,如果在步骤1446或1447中检测到改变,则操作前进到流选择步骤1448,其涉及对流选择子例程的调用。以这种方式,检测到的头部位置和/或可支持数据速率的变化可以被考虑,并且流的选择鉴于可被用来接收数据(例如,图像内容)的可支持数据速率和/或用户头部位置被重新考虑。

一旦流已经通过流选择子例程被选择,操作就前进到步骤1450,其中检查所选择的流是否不同于当前选择的流的集合。如果新选择的集合与正在使用的流的当前被选集合相同,则不需要对正在接收的流进行改变,并且在步骤1452中当前选择的流集合保持不变,操作经由连接节点B 1456前进到步骤1429。但是,如果新选择的流集合不同于当前选择的流集合,则在步骤1454中当前选择的流集合被更新,以反映被选的流集合的改变,例如,当前选择的集合被设置为等于由流选择子例程选择的新选择的流集合。

操作从步骤1454前进到步骤1455,其中不在更新后的当前被选流集合中的流的接收被终止。这可能涉及回放系统信令它不再希望成为对应于不再被接收的流的多播组的一员,或者采取另一动作来为了另一目的(例如,新选择的一个或多个流的接收)而使用资源(诸如之前被用来接收被终止的流的调谐器)。

操作经由连接节点B 1456从步骤1455前进到步骤1429。然后,在步骤1430中,任何新选择的流的接收将被启动,并且接收到的内容将被用来渲染一个或多个图像。因此,随着时间的推移,当用户改变他或她的头部位置和/或可以被支持的数据速率改变时,所选择的流也可以改变。

图15是示出根据示例性实施例的流选择子例程的步骤的流程图,其可被用作在图14方法的步骤1448中调用的流选择子例程。

当子例程被例如图14的步骤1448调用时,流选择子例程1500在步骤1502开始。操作从开始步骤1502前进到流选择步骤1504。流选择步骤1504的输入包括带宽和/或数据速率约束1503。这些可以包括关于应当被分配给一个或多个场景部分、流和/或流方向的可用带宽的最大部分或总接收数据速率的信息。约束还可以包括对场景部分、流和/或观看方向的最小带宽或数据分配。因此,约束可以限制分配给接收对应于特定方向的内容的资源的最大量和/或授权(mandate)分配给方向的最小资源量,使得对应于方向的部分在事件中场休息期间当动作在环境的一部分(诸如后部区域)中发生时至少不频繁地或在在特定时间处被更新。

最大可支持数据速率和/或最大可用带宽1444是选择步骤1504的另一输入。这个信息1444指示可用于接收内容的最大带宽和/或可被用来支持接收一个内容流或内容流的组合的最大可支持数据速率。用户的当前头部位置1407和关于可用流1405的信息(例如,诸如在图18中所示的流引导信息)也被输入到步骤1504。

在流选择步骤1504中,选择对应于节目或事件(例如,在一些情况下是正在进行的实时事件)的一个或多个内容流。一个或多个流的选择基于用户的当前头部位置、诸如流带宽或流数据速率需求的流信息和/或关于最大可支持数据速率或最大可支持带宽的信息。可以是关于观看方向或流优先级基础的带宽和/或数据速率约束1503可以(并且有时候确实)在步骤1504中进行的流选择时被考虑和使用。

示例性流选择步骤1504包括步骤1506,其中内容流基于用户的当前和/或过去的头部位置进行优先化。这可以涉及对诸如图16中所示的流优先化子例程的调用。

在一些实施例中,对应于相同环境方向的流被分配相同的优先级。因此,对应于与环境和/或观看方向的相同部分对应的内容的多个流可以(并且有时候确实)被分配相同的优先级。虽然流对应于相同的观看方向,但是在一些情况下,流具有不同的数据速率,其中一些流以高帧速率提供高分辨率立体内容,而在一些情况下较低分辨率流提供单色图像内容和/或低分辨率图像和/或支持低帧(图像)速率。因此,虽然特定方向可以被认为具有高优先级并且提供对应于高优先级方向的内容的所有流都相同,但是在一些实施例中对可用于接收对应于特定方向的内容的带宽量进行选择。

在内容流的优先化之后,操作从步骤1506前进到步骤1508。在步骤1508中,确定被用于具有最高优先级的流的最大带宽和/或数据速率。这个确定可以基于带宽或其它约束1503作出,约束可以指示要为最高优先级流分配的最大、最小可用接收资源或其部分。在一些实施例中,用于最高优先级流的最小带宽/数据速率分配为50%或更多,但其它分配也是可能的。

在步骤1510中,确定要用于具有较低优先级的每个流的最大带宽和/或数据速率。在一些实施例中,数据速率或带宽的至少20%用于次要或较低优先级流。

随着在步骤1508、1510中已确定用于不同优先级的流的数据速率,操作前进到步骤1512,其中基于用于最高优先级流的最大带宽和/或数据速率进行检查以确定是否可以支持最高优先级流。如果对应于最高优先级的任何一个流都可以被支持,则步骤1512中的决定将为“是”并且操作前进到步骤1514,在那里对应于最高优先级的最高质量流将被选择。这通常涉及从被指派最高优先级的流的集合中选择最高数据速率流。考虑例如如果前向方向的流被指派最高优先级,那么,给定可用于最高优先级内容流的数据速率,可被支持的最高数据速率前向方向内容流将被选择。

操作从步骤1514前进到步骤1516。在步骤1516中,确定是否可以支持第二高优先级流。在一些实施例中,这涉及在最高优先级流已被选择之后确定有多少带宽/数据可用以及基于所接收的约束确定那个带宽/数据中有多少可用于第二最高优先级流。如果没有对第二高优先级流置以约束,则全部量的带宽/数据接收能力可被用于第二高优先级流。如果在步骤1516中确定第二最高优先级流可以被支持,则操作前进到步骤1518,其中第二最高优先级流是例如从被指派第二最高优先级的一个或多个流的集合中选择的。步骤1518可以(并且在一些实施例中确实)涉及选择具有第二高优先级的可以被支持的最高数据速率流。例如,如果第二高优先级对应于环境的右后部分,则步骤1518将涉及选择对应于环境的右后部分的可以被支持的最高数据速率流。

虽然在大多数情况下最高优先级和次要流将被支持,但是在选择两个最高优先级流之后可能剩余足够的带宽,以接收对应于环境的另一部分(例如,未被观看的部分)的一些内容。如果第二最高优先级流不能被支持,则操作从步骤1518前进到步骤1520或者直接从步骤1516前进到步骤1520。

在步骤1520中,例如利用在第一和/或第二优先级流已被选择之后可用的带宽/数据接收资源来检查第三最高优先级流是否可以被支持。如果在步骤1520中确定第三高优先级流可被支持,则操作前进到步骤1522,其中例如利用可被支持的剩余带宽/数据速率来选择第三高优先级流。如果给定可用带宽和/或所接收的数据和/或带宽分配约束,第三最高优先级流不能被支持,则操作从步骤1522前进到步骤1524或者直接从步骤1520前进到步骤1524。

在步骤1524中,进行检查以确定在其它流选择之后是否剩余可被用来接收附加内容的任何带宽(例如,接收数据的能力)。如果剩余附加的带宽,则操作前进到步骤1526,其中一个或多个较低优先级流被选择,以使用剩余的可用带宽/数据速率。操作从步骤1526前进到步骤1530。如果没有附加的带宽可用,则操作从步骤1524前进到返回步骤1530。

返回步骤1530使处理返回到流选择子例程1500被调用的点,例如,新选择的流集合已经由例程1500确定。

图16是示出根据示例性实施例的流优先化子例程的步骤的流程图。图1600示出了可以由本文描述的一个或多个其它例程或子例程使用(例如调用)的示例性流优先化例程。例如,图15的步骤1506可以通过对子例程1600的调用来实现。当例程被调用时,流优先化子例程1600在步骤1602开始。操作从开始步骤1602前进到步骤1604。在步骤1604中,基于用户的检测到的头部位置确定用户的当前视野。假设用户的视野小于180度,当前视野可以对应于从单个相机位置(例如,向前看的相机位置)捕获的环境的一部分。但是,当用户移动他的头部时,例如向左或向右转动和/或向上或向下看时,用户的视野可以对应于由位于不同相机位置的相机捕获的环境的部分。例如,当看对应于由不同相机捕获的图像相遇或重叠的点的环境的一部分时,用户的视野可以对应于将在两个不同流中被传送的内容。在一些实施例中,提供对应于视野的最大部分的图像的流通常将被给予最高优先级。

随着用户的视野已在步骤1604中被确定,操作前进到步骤1605,其中识别传送对应于用户当前视野的内容的流,其中内容例如单色图像或包括左眼和右眼图像的立体图像对。然后,操作前进到步骤1606,其中确定从识别出的流中可用的对应于用户当前视野的场景区域的一个或多个部分(例如,图像部分)的大小。因此,在步骤1606结束时,关于哪些流提供对应于当前视野的图像内容和部分的相对大小的信息可用并且可被用来对流进行排名,例如优先化。

操作从步骤1606前进到步骤1608。在步骤1608中,优先级被指派给提供对应于用户的当前视野的图像内容的一个或多个流。优先化(例如排名)是基于流提供的用户视野的一个或多个部分的大小。例如,提供对应于用户视野的80%的图像内容的流将比提供对应于用户视野的15%的图像内容的流排名高,提供剩余5%(例如,顶部或底部)的流将被指派第三优先级,这低于分配给提供对应于视野的80%部分的图像的流的最高优先级。

步骤1608可以(并且在一些实施例中确实)包括步骤1610和/或步骤1612。在步骤1610中,最高优先级被指派给提供视野的最大部分的流。步骤1610可以包括将提供视野的最大部分的流指定为主流。步骤1612包括将下一最高优先级指派给对在由最高优先级流贡献的部分之外的视野贡献部分的流。这些流在步骤1612中基于它们可以对当前视野贡献的部分的大小来优先化,其中贡献越小部分的流被指派越低的优先级。

假设例如具有不同数据速率的多个流可以向视野贡献相同的部分,尽管潜在地处于不同的分辨率或帧速率,但是多个流可以被指派相同的优先级,例如,对应于前向视图的流可以被指派相同的优先级,提供左后方视图的流可以被指派相同的优先级,例如与指派给前向流不同的优先级,并且提供右后方视图的流可以被提供相同的优先级,例如与指派给前向或左后视图流不同的优先级。

因此,在步骤1608中,对视野有贡献的流将已经被排名,即,优先化。优先化可以通过在排名列表中列出流来表示,其中主流被指派最高优先级,而其它流被指派较低优先级。

不是所有流都可以对应于视野。例如,顶部或两个场景部分可以在视野之外,并且因此提供这种视图的流可能在步骤1608中还没有被优先化。操作从步骤1608前进到步骤1614。在步骤1614中,确定是否有任何剩余的流要被优先化。如果不存在要被优先化的剩余流,例如因为它们都对应于用户的当前视野,则操作前进到返回步骤1630。但是,如果在步骤1614中确定一个或多个流仍然要被优先化,则操作前进到步骤1616。

在步骤1616中,优先级被指派给传送内容的一个或多个附加流,例如在当前视野之外的流。在一些实施例中,在步骤161中执行的优先化是基于由被优先化的流提供的内容与在当前视野中可见的内容的接近度和/或基于用户的当前或过去的头部旋转方向。例如,如果流提供对应于紧密接近当前视野的环境的一部分的图像内容,则在一些实施例中,它将比提供对应于更远离用户当前视野的图像部分的内容的流被指派更高的优先级。类似地,假设在头部旋转方向上的内容比在远离用户的检测到的头部旋转方向的相反方向上的内容更有可能快速进入用户的视野,提供在用户头部旋转方向上的图像内容的流可以比在远离用户的检测到的头部旋转方向上的内容被给予更高优先级。

在至少一个实施例中,步骤1616包括步骤1618,其中进行检查以确定头部位置的变化是否指示头部旋转,例如,与头部向上或向下倾斜相反的向左或向右旋转。如果在步骤1618中没有检测到头部旋转,则操作前进到步骤1620,其中,在一些实施例中,流基于它们相对于用户的当前视野提供图像数据的哪个部分来优先化。当顶部和底部部分以及左或右后部部分在视野之外时,提供顶部和/或底部部分的流可以缺省地比提供左或右后部部分的流被指派更低的优先级。操作从步骤1620前进到返回步骤1630。

如果在步骤1618中确定已经检测到用户头部旋转,则操作前进到步骤1622。在步骤1622中,确定头部旋转的方向,例如,用户头部是向左还是向右转动。这允许考虑头部旋转的方向,因为要进入用户视野的环境的下一部分常常更有可能在头部旋转的方向上而不是远离其。

操作从步骤1622前进到步骤1624,其中基于头部旋转的方向将优先级指派给一个或多个内容流,例如在视野之外的流。在至少一个实施例中,步骤1624包括步骤1626,其中下一个最低未用的优先级被指派给提供对应于环境的在头部旋转方向上的一部分的内容的流。例如,如果在看环境的前向部分的用户正在将他的头向右转,则提供在视野之外右后方内容的流将比提供也在视野之外左后方内容的流被分配更高的优先级。操作从步骤1624前进到步骤1628,在那里,还没有被优先化的剩余流比已经被指派优先级的流被指派较低的优先级,指示较低的重要性。

操作从步骤1628前进到返回步骤1630。在到达返回步骤1630时,内容流将已经根据优先级被优先化,例如排名或排序。

图17是示出根据示例性实施例的渲染子例程的步骤1700的流程图。

当需要图像渲染时,渲染子例程1700可以被一个或多个例程调用。在立体内容的情况下,为用户的左眼和右眼中的每只眼渲染单独的图像。在单色内容的情况下,对用户的左眼和右眼中每只眼渲染并使用单个图像。渲染常常涉及来自一个或多个流的图像内容的组合。因此,虽然环境的一些部分可以作为单色内容被提供,但是其它部分可以作为立体内容被提供,在这种情况下,不同的左眼和右眼图像可以被渲染,其中一些内容是立体的,而其它内容是单色的,但是,当环境的至少一部分作为立体内容被呈现时,为左眼和右眼图像中的每一个生成单个图像。

渲染例程1700在开始步骤1702开始,并前进到渲染步骤1706。渲染步骤1706的输入包括环境映射1411、对应于一个或多个视图的解码图像内容1703,以及被用来将一个或多个解码图像或图像部分映射到由环境映射1411定义的表面上的一个或多个UV映射1704。如上面所讨论的,在不提供更复杂的几何形状的情况下,环境映射1411可以缺省地是球体,其中图像被映射到球体的内表面。

在一些实施例中,渲染步骤1706包括步骤1708,该步骤包括利用通过解码包括在对应于用户当前视野的一个或多个内容流中的图像而生成的内容和环境映射以及至少一个UV映射来生成对应于用户当前视野的至少一个图像。在立体(例如,3D图像内容)的情况下,渲染将导致以适于显示的格式生成左眼和右眼图像。在一些实施例中,经渲染的左眼和右眼图像的差异导致用户感知到图像是3D的。

操作从步骤1706前进到步骤1710,步骤1710是返回步骤,它使得经渲染的图像被返回到程序或例程,以便提供给显示设备、存储和/或输出。

每次当要视野的帧或更新版本要被显示时,渲染子例程1700可以被调用。因此,渲染通常以与图像(例如,帧)显示速率一致的速率发生。

图18示出了包括对应于多个内容流的流信息的示例性表1800。在一些实施例中,包括在示例性表1800中的流信息作为指导信息(例如节目指南)的一部分被接收,从而提供关于回放系统可以选择接收的内容流的信息。图例1840包括指示被用作在表1800中包括的信息的缩写的各种字母的含义的信息。

包括在表1800中的信息可被用来访问信息所对应的内容流。如将在一些实施例中讨论的,对于多个可用的内容流,流信息包括可被加入以接收给定的对应内容流的多播组的多播地址、可被用来请求访问用于提供给定内容流的交换数字视频信道的信息或者可被用来控制回放系统的调谐器调谐到给定内容流在其上广播的广播信道的信道调谐信息当中至少一个。

在表1800中,每行对应于传送内容的单独内容流,其中行对应的内容流由列1812中对应条目中所示的流标识符识别。列1804中的每个条目识别由该行对应的单独内容流传送的节目内容。如从表1800可以理解的,第一组行1820对应于节目内容“足球”,这可以指示如列1804中的对应条目中所示的节目/事件标题。可以存在对应于各种不同的节目/事件的多个这样的组。每个组包括内容流,每个内容流对应于观看方向并支持给定的数据速率,如将讨论的那样。为了简单起见,图中仅示出了两个组,其中对应于第二组1822的行仅被部分地示出,这只是为了说明概念。第二组行1822对应于节目内容“HI”,如由列1804中的对应条目所指示的那样。

列1806中的每个条目指示由对应的内容流传送的场景区域的一部分,例如360度场景区域的区1200。因此,组1820中的前三行(每一行对应于不同的内容流)传送前方场景部分(例如,映射到图12中所示的区1,覆盖270°到90°的观看区域)。组1820中接下来的三行(每一行对应于不同的内容流)传送右后方场景部分(例如,映射到图12中所示的区2,覆盖30°到210°的观看区域)。组1820中的最后三行(每一行对应于不同的内容流)传送后左方场景部分(例如,映射到图12中所示的区3,覆盖150°到330°的观看区域)。

列1808中的每个条目指示对应的内容流支持的数据速率。列1810中的每个条目指示可以被加入以接收由列1812中的对应条目中所示的流标识符识别的对应内容流的多播组的标识符/地址。列1814中的每个条目包括用于由列1812中的对应条目中所示的流标识符识别的对应内容流的流描述符。列1816中的每个条目包括可被用来访问或请求对应内容流的访问信息,例如调谐参数和/或其它访问参数。

如从示例性表1800可以理解的,在所示出的例子中,存在对应于给定观看方向的每个内容流的多个(例如三个)可供在回放中使用的不同版本,其中内容流的每个版本支持不同的数据速率。因此,根据本发明的特征,回放系统可以基于一个或多个因素,例如,诸如支持的带宽、数据速率、用户头部位置等,来选择要在回放中使用的一个或多个流,如关于图14-17详细讨论的那样。

为了更清楚地理解表1800中的信息如何可以被回放系统用来选择和/或访问一个或多个内容流,考虑组1820中的第一行以及列1804、1806、1808、1810、1812、1814和1816中每一列中的第一个条目。列1804的第一个条目指示由列1812中包括的流标识符S1D1识别的第一内容流传送的事件/节目“足球”。列1806中对应的条目指示第一个流传送对应于前方场景部分(例如,270°到90°观看区域)的内容。这个观看区域信息被回放系统用来识别传送对应于用户/观众的当前头部位置的内容的一个或多个流,该当前头部位置对应于当前视野。继续该例,列1808中对应的第一条目指示第一内容流支持和/或需要数据速率D1。列1810中对应的条目指示第一内容流可以通过加入多播组M1来访问,其中M1指示多播组地址和/或映射到地址的标识符。列1814中对应的条目包括对应于第一内容流的流描述符“V1C1D1F1”,其指示第一流对应的相机观看角度(V1)、对应于第一流的帧速率(F1)、支持的数据速率(D1)和编解码器类型(C1)。最后一列1816中对应的条目指示可被用来访问或请求第一内容流的访问调谐参数和/或其它访问参数(被示为A123)。

随着上面讨论的关于可用内容流的此类信息可以被使用,诸如回放系统1900的回放系统可以根据本发明的特征选择和访问一个或多个内容流以在回放中使用。为了更好的理解,考虑一个简单的例子,其中回放系统确定用户头部位置指示用户正在看360度场景的前部。在这种情况下,在一个实施例中,回放系统选择传送前方场景部分的至少一个内容流。依赖于如关于图14-17讨论的各种其它因素,诸如可用带宽、可支持的数据速率、流带宽和/或数据速率约束,回放系统可以从三个不同的可用流(S1D1、S1D2、S1D3)中选择传送前方场景部分的一个流。如果约束允许,则回放系统将从对应于前方场景部分的多个内容流中选择最高质量流,例如流S1D1。表1800中提供的信息便于选择用于回放的适当流,因为可被用来进行选择的至少一些信息由流信息1800提供。在流选择之后,回放系统可以再次使用流信息1800来通过加入对应于被选流的多播组(例如,M1)或者通过使用访问信息获得内容流来启动内容交付(例如,内容接收)。

图19示出了根据本发明实现的回放系统1900,其可被用来接收、解码、存储和显示从内容交付系统接收的成像内容。可被实现的系统1900为包括显示器1902的单个回放设备1900',或者实现为诸如耦合到计算机系统1900'的外部显示器(例如,头戴式显示器1905)的元件的组合。

在至少一些实施例中,回放系统1900包括3D头戴式显示器。头戴式显示器可以利用可以包括头戴式显示器1905的OCULUSRIFTTM VR(虚拟现实)耳机来实现。还可以使用其它头戴式显示器。在一些实施例中,其中一个或多个显示屏被用来向用户的左眼和右眼显示内容的头戴式头盔或其它头戴式设备被用作设备1905。通过在单个屏幕上向左眼和右眼显示不同的图像,其中头戴式设备被配置为将单个屏幕的不同部分暴露给不同的眼睛,单个显示器可被用来显示将由观看者的左眼和右眼分开感知的左眼和右眼图像。在一些实施例中,手机屏幕被用作头戴式显示设备的显示器。在至少一些这样的实施例中,手机被插入头戴式设备中并且手机被用来显示图像。在一些实施例中,显示设备1905可以是诸如Oculus Rift的3D显示装置的一部分。

回放系统1900具有以下的能力:解码所接收的编码图像数据(例如,对应于环境或场景的不同部分的左眼和右眼图像和/或单色(单个图像))并且例如通过渲染并显示被用户感知为3D图像的不同的左眼和右眼视图来生成3D图像内容以用于向消费者显示。在一些实施例中,回放系统1900位于消费者驻地位置,诸如家或办公室,但是也可以位于图像捕获地点。系统1900可以执行根据本发明的信号接收、解码、显示和/或其它操作。

系统1900包括显示器1902、显示设备接口1903、输入设备1904、输入/输出(I/O)接口1906、处理器1908、网络接口1910和存储器1912。系统1900的各种部件经由允许数据在系统1900的部件之间通信的总线1909和/或通过其它连接或通过无线接口耦合在一起。虽然在一些实施例中显示器1902作为可选元件被包括,如利用虚线框所示的,但是在一些实施例中,外部显示设备1905,例如头戴式立体显示设备,可以经由显示设备接口1903耦合到回放设备。

例如,在手机处理器被用作处理器1908并且手机在头戴式设备中生成和显示图像的情况下,系统可以包括处理器1908、显示器1902和存储器1912,作为头戴式设备的一部分。处理器1908、显示器1902和存储器1912都可以是手机的一部分。在系统1900的其它实施例中,处理器1908可以是诸如XBOX或PS4的游戏系统的一部分,其中显示器1905安装在头戴式设备中并且耦合到游戏系统。处理器1908或存储器1912是否位于佩戴在头上的设备中并不是关键的并且,如可以理解的,虽然在一些情况下在头饰中共同定位处理器会是方便的,但是从功率、热量和重量的角度来看,在至少一些情况下,可能期望使处理器1908和存储器1912耦合到包括显示器的头饰。

虽然各种实施例构想了头戴式显示器1905或1902,但是该方法和装置还可以与可支持3D图像的非头戴式显示器一起使用。因而,虽然在许多实施例中系统1900包括头戴式显示器,但是它也可以利用非头戴式显示器来实现。

回放系统1900的操作者可以经由输入设备1904控制一个或多个参数和/或选择要执行的操作,例如选择显示3D场景。经由I/O接口1906,系统1900可以耦合到外部设备和/或与其它设备交换信号和/或信息。在一些实施例中,经由I/O接口1906,系统1900可以接收由各种相机捕获的图像,这些相机可以是诸如相机装备900的相机装备的一部分。

处理器1908(例如CPU)执行例程1914并使用各种模块来控制回放系统1900以根据本发明进行操作。处理器1908负责控制回放系统1900的总体一般操作。在各种一些实施例中,处理器1908被配置为执行已被讨论为由回放设备执行的功能。

经由网络接口1610,系统1900经通信网络(例如,诸如通信网络105)向各种外部设备传送和/或接收信号和/或信息(例如,包括图像和/或视频内容)。网络接口1910包括接收器1911和发送器1913,经由它们执行接收和发送操作。在一些实施例中,系统经由网络接口1910从内容提供者接收一个或多个被选的内容流。在一些实施例中,系统1900经由接口1910的接收器1911接收一个或多个被选的内容流以用于回放。所接收的内容流可以作为编码数据(例如编码的场景部分1952)被接收。接收器1911还被配置为接收流信息1946和/或初始化数据,例如作为节目指南的一部分。系统1900还例如经由接收器1911接收带宽和/或数据速率分配控制信息1952,这包括用于不同观看方向的带宽约束、指定要用于接收一个或多个内容流的最大带宽的单独带宽约束,以便提供对应于与单独带宽约束对应的观看方向的内容。在一些实施例中,接收器1911还被配置为接收至少一个环境映射,例如限定义3D表面的3D深度映射,以及要被用于将图像内容映射到3D表面的至少一部分上的一个或多个UV映射,例如,在初始化阶段期间或其它时间。在一些实施例中,接收器1911接收对应于场景环境的第一部分的第一UV映射、对应于场景环境的第二部分的第二UV映射、对应于第三部分的第三UV映射、对应于第四部分的第四UV映射以及对应于场景环境的第五部分的第五映射。在一些实施例中,在初始化期间,系统1900例如经由接口1910的接收器接收对应于场景的第一、第二、第三、第四和第五部分中一个或多个的内容,例如图像。

存储器1912包括各种模块,例如,当其被处理器1908执行时,控制回放系统1900执行根据本发明的解码和输出操作。存储器1912包括控制例程1914、头位置确定模块1916、当前观看位置初始化模块1918、解码器模块1920、当前被选流初始化模块1922、内容交付启动模块1924、图像缓冲器1926、图像缓冲器更新模块1928、也被称为图像生成模块的图像渲染模块1930、可用带宽和/或支持的数据速率确定模块1932、头部位置改变确定模块1934、可用带宽和/或支持的数据速率改变确定模块1936、流选择模块1938、被选流集合改变确定模块1940、被选流集合更新模块1942、流终止模块1944,以及包括接收到的流信息1946、接收到的带宽和/或数据速率分配信息1948、确定的当前最大可用带宽和/或可支持数据速率1950、接收到的编码图像内容1952、接收到的环境映射1954、接收到的UV映射1956、解码图像内容1958和生成的3D内容1960在内的数据/信息。

控制例程1914包括设备控制例程和通信例程,以控制系统1900的操作。头部位置确定模块1916被配置为确定用户的当前头部位置,例如头戴式显示器的位置。头部位置确定模块1916可以与位置传感器集成和/或协同工作,其中位置传感器可以例如在包括头戴式显示器的头饰上。当前观看位置初始化模块1918被配置为例如在初始化阶段期间通过将检测到的用户的当前头部位置设置为前向(零度)观看位置来将用户的当前观看位置初始化为前向(0度)环境观看位置。

解码器模块1920被配置为解码从内容交付系统700接收的编码图像内容1952,以产生解码的图像数据1958。解码的图像数据1958可以包括解码的立体场景和/或解码的场景部分。在一些实施例中,解码的内容存储在一个或多个图像缓冲器1926中。当前被选流初始化模块1922被配置为初始化要被接收的被选择的一个或多个内容流的当前集合。当前被选流初始化模块1922被配置为将当前选择的流集合设置为传送对应于环境/场景的前向/前方部分的内容的第一流。

内容交付启动模块1924被配置为启动所选择的内容流的交付。在一些实施例中,内容交付启动模块1924启动所选集合中尚未被接收的内容流的交付。在一些实施例中,内容交付启动模块1924被配置为发送请求信号,以加入对应于被选的内容流的多播组,例如对应于传送与当前选择的流集合对应的内容流的多播组。在一些其它实施例中,内容交付启动模块1924被配置为生成并向网络中的设备发送请求,请求交付被选的内容流在其上被传送的交换数字信道。

图像缓冲器更新模块1928被配置为在例如由被选的内容流集合传送的更新的内容被接收并解码时利用更新的内容来更新图像缓冲器1926。

图像渲染模块1930根据本发明的特征,例如利用解码的图像内容1958,生成3D图像,例如以将被感知为3D图像的方式显示的左眼和右眼图像,以用于在显示器1902和/或显示设备1905上向用户显示。在一些实施例中,图像渲染模块1930被配置为利用对应于用户当前观看区域的解码的图像内容1958、环境映射1954和UV映射来渲染内容以用于显示。因此,在一些实施例中,图像渲染模块1930被配置为执行关于图17中所示的步骤讨论的功能。所生成的图像内容1960是3D图像生成模块1930的输出。因此,渲染模块1930向显示器渲染3D图像内容1960。在一些实施例中,图像渲染模块1930被配置为将一个或多个生成的图像输出到例如显示设备或另一设备。所生成的图像可以经由网络接口1910和/或显示设备接口1903输出。

可用带宽和/或支持的数据速率确定模块1932被配置为确定在给定时间可用(例如,用于接收内容流)的当前最大可用带宽和/或当前最大可支持数据速率。由于可用带宽和/或可支持的数据速率会由于通信信道条件的改变或网络问题而随时间改变,因此在一些实施例中,确定模块1932在持续的基础上执行监视和/或确定,以检测可用带宽和/或支持的数据速率的改变。所确定的当前最大可支持数据速率和/或带宽1950是确定模块1932的输出,并且可以在需要时更新。

头部位置改变确定模块1934被配置为例如通过检查和比较头部位置确定模块1916的输出的改变来确定用户头部位置是否已经改变。可用带宽和/或支持的数据速率改变确定模块1936被配置为检测与由确定模块1932确定的当前最大可用带宽和/或当前最大可支持数据速率相比而言可用带宽和/或支持的数据速率是否存在任何改变。

流选择模块1938被配置为基于用户的当前头部位置来选择多个内容流中哪一个要在给定时间被接收以用于在回放中使用。基于用户的当前头部位置的改变和/或其它因素,流选择模块1938可以在不同时间选择不同的流。当前被选流集合1961是流选择模块1938的输出,并且指示当前选择用于接收的内容流的集合。在一些实施例中,流选择模块1938包括被配置为作为流选择操作的一部分执行各种功能的多个子模块。图23更详细地示出了流选择模块1938和包括在其中的各种模块,并且将在后面讨论。

被选流集合改变确定模块1940被配置为确定当前被选流集合1961是否已有改变,例如,由于选择模块选择了一个或多个附加内容流和/或由于被接收的一个或多个流已经被终止/停止。被选流集合更新模块1942被配置为当被选流集合存在改变时(例如内容流到被选流集合1961的添加或终止)更新当前被选流集合1961,以反映对被选流集合的任何改变。流终止模块1944被配置为终止/停止接收先前被接收但不再在当前被选流集合1961中的一个或多个内容流,例如由于当前被选流集合1961由于流选择的改变而被更新。

流信息1946包括关于可用于在回放中接收和使用的多个内容流的信息。包括在流信息1946中的信息与图18中所示和前面讨论的相同或相似。所接收的带宽和/或数据速率分配控制信息1948包括用于不同观看方向的带宽约束和/或指示关于对应于为各种不同观看方向提供内容的内容流的数据速率的约束的信息。所确定的当前最大可支持数据速率和/或带宽1950指示在给定时间由回放系统1900确定的最大可支持数据速率和/或带宽。

所接收的环境映射1954包括定义3D表面的环境的3D深度映射。在一些实施例中,对应于感兴趣环境的一个或多个这样的深度映射可以由回放系统1900接收。所接收的UV映射1956包括对应于感兴趣的环境/场景的部分的一个或多个UV映射。解码的数据1958包括由解码器1920根据本发明解码的数据。解码的数据1958包括包含由被选流集合传送的环境的场景或场景部分的内容。

在一些实施例中,上面讨论的各种模块被实现为软件模块。在其它实施例中,模块在硬件中实现,例如实现为单独的电路,其中每个模块被实现为用于执行该模块对应的功能的电路。在还有其它实施例中,模块是利用软件和硬件的组合来实现的。

虽然在图19的例子中被示为要包括在存储器1912中,但是被示为包括在回放设备1900中的模块可以(并且在一些实施例中确实)完全在处理器1908内的硬件中实现,例如作为单独的电路。模块可以(并且在一些实施例中确实)完全在硬件中实现,例如作为对应于不同模块的单独电路。在其它实施例中,一些模块在处理器1908内被实现为例如电路,而其它模块被实现为例如在处理器1908外部并且耦合到处理器1908的电路。如应当理解的,处理器上模块的集成水平和/或一些模块在处理器外部的水平可以是设计选择之一。作为替代,不是被实现为电路,而是所有或一些模块可以在软件中实现并被存储在系统1900的存储器1912中,其中当模块被处理器(例如,处理器1908)执行时,系统1900的模块控制操作实现对应于模块的功能。在还有其它实施例中,各种模块被实现为硬件和软件的组合,例如,在处理器外部的另一电路向处理器1908提供输入,然后处理器1908在软件控制下操作,以执行执行模块功能的一部分。

图23更详细地示出了在回放系统1900中使用的流选择模块1938和其中包括的各种模块。流选择模块被配置为根据如关于图14-16详细讨论的本发明的方法来选择一个或多个内容流。在一些实施例中,流选择模块被配置为基于用户的头部位置、流信息1946和/或最大可支持数据速率来选择要接收多个内容流中哪一个。在一些实施例中,流选择模块1938包括被配置为基于用户的头部位置优先化内容流的流优先化模块2306。流优先化模块2306的输出例如是具有指派的优先级的内容流的优先化列表。下面关于图24更详细地讨论流优先化模块2306。

流选择模块1938还包括被配置为例如基于带宽和/或数据速率约束确定用于具有最高优先级的流的最大带宽和/或数据速率的最高优先级流最大带宽和/或数据速率确定模块2308,以及被配置为确定要用于具有较低优先级的每个流的最大带宽和/或数据速率的较低优先级流最大带宽和/或数据速率确定模块2310。在一些实施例中,确定模块2308、2310使用带宽控制信息1948和流优先化模块2306的输出来执行相应的确定。因此,流选择模块1938可以包括一个或多个被配置为基于例如从网络设备/服务器传送到回放系统的带宽约束来确定至少一个内容流的带宽的流带宽确定模块。

流选择模块1938还包括被配置为基于所确定的用于最高优先级流的最大带宽和/或数据速率并且基于可用带宽和/或可支持数据速率来确定最高优先级流是否可被支持的模块2312,以及被配置为选择具有可被支持的最高优先级的最高数据速率流的模块2314。在一些实施例中,选择模块2314被配置为从被指派最高优先级的多个内容流中选择一个内容流,被指派最高优先级的每个内容流提供对应于相同观看方向的内容,作为被配置为从具有相同优先级的多个内容流进行选择的一部分。在一些实施例中,模块2314被配置为基于所确定的可用带宽量从具有相同优先级(例如,最高优先级)的多个内容流中进行选择。因此,在一些实施例中,当具有相同优先级的多个流可用时,例如,一些具有高数据速率需求,而其它具有较低数据速率需求,如果可用带宽和/或可支持数据速率和带宽约束允许这样的选择,则选择模块2314选择最高质量流,例如高数据速率流。

流选择模块1938还包括被配置为基于所确定的用于第二最高优先级流的最大带宽和/或数据速率并基于可用带宽(例如,总的可用或剩余可用)和/或可支持的数据速率来确定第二最高优先级流是否可被支持的模块2316,被配置为选择具有可被支持的第二高优先级的最高数据速率流的模块2318,被配置为基于所确定的用于第三最高优先级流的最大带宽和/或数据速率并集基于可用带宽(例如,总的可用或剩余可用)和/或可支持的数据速率确定第三最高优先级流是否可被支持的模块2320,以及被配置为选择具有可被支持的第三最高优先级的最高数据速率流的模块2322。因此,在一些实施例中,流选择模块1938被配置为例如通过优先化模块2306选择已被指派最高优先级的一个或多个内容流。

流选择模块1938还包括附加容量/带宽可用性确定模块2324,其被配置为例如在已经选择一个或多个较高优先级流用于接收之后确定是否存在任何剩余或附加可用带宽以用于接收附加内容流。在一些实施例中,流选择模块1938还包括模块2326,其被配置为基于所确定的用于一个或多个较低优先级流的最大带宽和/或数据速率并且基于可用带宽和/或可支持的数据速率来选择可被支持的一个或多个较低优先级流。

图24示出了流优先化模块2306,其可被实现为例如流选择模块1938的一部分(例如,作为其子模块)或者作为单独的模块。流优先化模块2306被配置为基于用户的头部位置来优先化内容流。一旦内容流已经被优先化,流选择模块1938就可以从优先化的内容流执行流选择。在一些实施例中,流优先化模块2306包括被配置为基于用户的当前头部位置来识别指示用户正在观看的场景区域的一部分的用户当前视野的当前视野识别模块2404,以及被配置为识别传送与对应于用户当前视野的场景区域的部分对应的内容的流的当前视野流识别模块2404。当前视野流识别模块2404的输出在一些实施例中是可以存储在存储器1912中的识别出的流的列表,并且该列表可以在用户的头部位置并且因此在视野改变时被更新。因此,在各种实施例中,为了优先化各种可用内容流,首先识别对应于头部位置的用户的当前视野,并且识别传送对应于视野的内容的流。

在一些实施例中,流优先化模块2306还包括被配置为确定从所识别出的流可用的对应于用户当前视野的场景区域的部分的大小的模块2406,以及被配置为基于每个流提供的部分的大小向提供对应于用户当前视野的场景区域的部分的一个或多个流指派优先级的优先级指派/分配模块2408。在一些实施例中,优先级指派/分配模块2408包括模块2410,其被配置为向提供视野的最大部分的流指派最高优先级,例如将提供对应于当前视野的场景的最大部分的流指定为主流。在一些实施例中,优先级指派/分配模块2408还包括模块2412,其被配置为基于每个剩余的流提供的视野部分的大小来指派接下来的最高优先级并指定剩余的流(例如,作为次要、第三级,等等),例如提供视野的较大部分的流比提供对应于当前视野的场景的较小部分的流被给予更高的优先级和指定。

在一些实施例中,流优先化模块2306还包括模块2414,其被配置为确定是否存在剩余流要被优先化,例如,提供对应于在当前视野之外的场景区域的内容的流。

在一些实施例中,流优先化模块2306还包括模块2416,其被配置为基于图像内容与当前视野的接近度或者头部旋转的方向来优先化提供在用户当前视野之外的内容的一个或多个附加流,例如,向其指派优先级。在一些实施例中,模块2416被配置为基于所传送的图像内容与当前视野的接近度来优先化传送对应于在所述当前视野之外的部分的内容的一个或多个附加流,传送在当前视野紧密附近的图像内容的内容流比在当前视野之外并进一步远离的内容流被指派更高优先级。

在一些实施例中,模块2416包括头部旋转确定模块2418,其被配置为确定是否检测到用户的头部旋转,例如作为用户头部位置改变的一部分。在一些但不是所有的实施例中,当用户朝天空或屋顶向上或者朝地面向下看时,虽然头部位置有改变,但是这种头部运动不被认为是头部旋转。在一些实施例中,模块2416被配置为基于用户的头部旋转方向来优先化一个或多个附加内容流,提供在当前视野之外但是在头部旋转方向上的图像内容的内容流比在当前视野之外并且在远离头部旋转方向的方向上的图像内容的另一内容流被指派较高的优先级。在一些这样的实施例中,模块2416还包括模块2420,其被配置为向提供对应于在当前视野之外的场景部分(例如,场景环境的顶部或底部)的内容的流指派下一较低优先级(例如,在较高优先级被指派给提供对应于视野的内容的流之后)和流指定,例如第三级。在一些实施例中,当确定不存在头部旋转时,头部旋转确定模块向模块2420提供控制输入,以便向附加的流指派优先级。

在一些实施例中,模块2416还包括头部旋转方向确定模块2422,其被配置为确定用户头部相对于先前头部位置的旋转方向,例如,向左或向右。在一些实施例中,模块2416还包括模块2424,其被配置为考虑头部旋转方向而向传送对应于在当前视野之外的部分的内容的一个或多个附加流指派优先级。在一些实施例中,模块2424包括模块2426,其被配置为向提供对应于场景的在头部方向上的一部分的内容的流指派下一较低优先级(例如,从较高开始的下一个可用优先级)和指定,例如第三级流。因此,应当理解,如果检测到头部旋转,则在一些实施例中基于头部旋转的方向来执行对流的优先级指派。在一些实施例中,模块2416还包括被配置为向考虑的任何剩余流指派更低优先级的附加模块2428。

虽然在图19的实施例中被示为单个处理器(例如计算机),但是应当理解,处理器1908可以被实现为一个或多个处理器,例如计算机。当在软件中实现时,模块包括在由处理器1908执行时配置处理器1908以实现对应于该模块的功能的代码。在图19、23和24所示的各种模块存储在存储器1912中的实施例中,存储器1912是包括计算机可读介质的计算机程序产品,计算机可读介质包括代码,例如用于每个模块的单独代码,用于使至少一个计算机(例如处理器1908)实现模块对应的功能。

可以使用完全基于硬件或完全基于软件的模块。但是,应当理解,可以使用软件和硬件的任任何组合,例如,电路实现的模块可被用来实现功能。如应当理解的,图19、23和24中所示的模块控制和/或配置系统1900或其中的元件(诸如处理器1908)来执行在图14的流程图1400的方法中示出和/或描述的对应步骤的功能并执行图15-17中所示的对应步骤的功能。

包括图20A、图20B、图20C、图20D和图20E的组合的图20是根据各种示例性实施例的操作内容回放系统的示例性方法的流程图2000。根据各种实施例,内容回放系统例如是耦合到显示器的内容回放设备或计算机系统。

示例性方法的操作开始于步骤2002,其中内容回放系统上电并初始化。操作从步骤2002前进到步骤2004,其中内容回放系统接收对应于所述环境的第一后视图部分的第一图像。操作从步骤2004前进到步骤2006,其中内容回放系统存储对应于所述环境的所述第一后视图部分的所述接收到的第一图像。操作从步骤2006前进到步骤2008,其中内容回放系统接收对应于所述环境的所述第一后视图部分的一个或多个附加图像,包括对应于所述环境的所述第一后视图部分的至少第二图像。操作从步骤2008前进到步骤2010,其中内容回放系统存储对应于所述环境的所述第一后视图部分的所述接收到的一个或多个附加图像。操作从步骤2010前进到步骤2012。

在步骤2012中,内容回放系统接收对应于所述环境的第二后视图部分的第一图像。操作从步骤2012前进到步骤2014,其中内容回放系统存储对应于所述环境的所述第二后视图部分的所述接收到的第一图像。操作从步骤2014前进到步骤2016,其中内容回放系统接收对应于所述环境的所述第二后视图部分的一个或多个附加图像,包括至少对应于所述环境的所述第二后视图部分的第二图像。操作从步骤2016前进到步骤2018,其中内容回放系统存储对应于所述环境的所述第二后视图部分的所述接收到的一个或多个附加图像。操作从步骤2018前进到步骤2020。

在步骤2020中,内容回放系统接收对应于所述环境的天空视图部分的一个或多个图像。操作从步骤2020前进到步骤2022,其中内容回放系统存储对应于所述环境的所述天空视图部分的所述接收到的一个或多个图像。操作从步骤2022前进到步骤2024,其中内容回放系统接收对应于所述环境的地面视图部分的一个或多个图像。操作从步骤2024前进到步骤2026,其中内容回放系统存储对应于所述环境的所述地面视图部分的所述接收到的一个或多个图像。在一些实施例中,天空视图和地面视图被用来指相对于观看者的标称头部方向视角(perspective)的上行方向和下行方向并且应用于室内环境以及室外环境。

在一些实施例中,例如依赖特定的实施例,可以接收对应于第一后视图部分、第二后视图部分、天空视图部分和地面视图部分当中的一些但不一定是全部的图像。

操作从步骤2026经由连接节点A 2028前进到步骤2030、到达步骤2034,并且经由连接节点B 2036到达步骤2028、2040、2042、2044、2046、2048、2050和2052。返回到步骤2030,在步骤2030中,内容回放系统确定观看者的头部位置,所述头部位置对应于当前视野。操作从步骤2030前进到步骤2032,其中内容回放系统基于所确定的头部位置来确定所述观看者的当前视野。操作从步骤2032前进到步骤2030。例如在持续的基础上,重复地执行步骤2030和2032,且当前视野被更新(例如,刷新)。所确定的当前视野可用于在生成输出图像时使用。

在步骤2034中,内容回放系统接收提供对应于环境的第一部分(例如,前向部分视图)的内容的第一内容流。

在步骤2038中,内容回放系统接收控制信息,该控制信息指示在回放时间期间应当显示对应于所述环境的所述第一后视图部分的多个先前传送的图像中的哪一个,该回放时间是相对于在所述第一内容流中指示的回放时间进行测量的。在步骤2040中,内容回放系统接收图像选择信息,该图像选择信息指示在所述事件的一部分期间应当使用对应于环境的所述第一后视图部分的多个图像中的哪一个。

在步骤2042中,内容回放系统接收控制信息,该控制信息指示在回放时间期间2236应当显示对应于所述环境的所述第二后视图部分的多个先前传送的图像中的哪一个,该回放时间是相对于在所述第一内容流中指示的回放时间进行测量的。在步骤2044中,内容回放系统接收图像选择信息,该图像选择信息指示在所述事件的一部分期间应当使用对应于环境的所述第二后视图部分的多个图像中的哪一个。

在步骤2046中,内容回放设备接收控制信息,该控制信息指示在回放时间期间应当显示对应于所述环境的所述天空视图部分的多个先前传送的图像中的哪一个,该回放时间是相对于在所述第一内容流中指示的回放时间进行测量的。在步骤2048中,内容回放系统接收图像选择信息,该图像选择信息指示在所述事件的一部分期间应当使用对应于环境的所述天空视图部分的多个图像中的哪一个。

在步骤2050中,内容回放系统接收控制信息,该控制信息指示在回放时间期间应当显示对应于所述环境的所述地面视图部分的多个先前传送的图像中的哪一个,该回放时间是相对于在所述第一内容流中指示的回放时间进行测量的。在步骤2052中,内容回放系统接收图像选择信息,该图像选择信息指示在所述事件的一部分期间应当使用对应于环境的所述地面视图部分的多个图像中的哪一个。

操作从步骤2032、步骤2034和步骤(可以并行执行的2038、2040、2042、2044、2046、2048、2050和2052,经由连接节点C2054)经由连接节点D 2056前进到步骤2058。

在一些实施例中,来自步骤2038、2040、2042、2044、2046,2048、2050和2052的控制信息以例如逐个的方式稍微先于步骤2034的对应的第一流内容被发送,对于该第一流内容,控制信息将被使用。在一些其它实施例中,控制信息块在开始接收第一内容流之前或与其同时被接收。

在步骤2058中,内容回放系统基于以下至少一个来生成对应于当前视野的一个或多个输出图像:来自对应于环境的第一部分视图(例如,前向部分视图)的第一内容流的所接收内容、对应于环境的第一后视图部分的存储的所接收图像、对应于环境的第二后视图部分的存储的所接收图像、对应于环境的天空视图部分的存储的所接收图像、对应于环境的地面视图部分的存储的所接收图像,或对应于当前视野的图像不可用的一部分的合成图像。步骤2058包括步骤2060、2062、2064、2066、2068、2076和2078。

在步骤2060中,内容回放系统基于当前视野确定要在生成一个或多个输出图像中使用的视图部分(例如,对其存在可用数据)的集合。一些示例性确定的集合包括例如:{}、{前视图部分}、{第一后视图部分}、{第二后视图部分}、{天空视图部分}、{地面视图部分}、{前视图部分、天空视图部分}、{前视图部分、地面视图部分}、{前视图部分、第一后视图部分}、{前视图部分、第二后视图部分}、{前视图部分、第一后视图部分、天空部分}、{前视图部分、第二后视图部分、天空视图部分}、{前视图部分、第一后视图部分、地面视图部分}、{前视图部分、第二后视图部分、地面视图部分}、{第一后视图部分、天空视图部分}、{第一后视图部分、地面视图部分}、{第一后视图部分,第二后视图部分}、{第一后视图部分、第二后视图部分、天空视图部分}、{第一后视图部分、第二后视图部分、地面视图部分},{第二后视图部分、天空视图部分}和{第二后视图部分、地面视图部分}。

操作从步骤2060前进到步骤2062。在步骤2062中,内容回放系统确定是否满足以下两个条件:(i)从步骤2060确定的视图部分的集合仅包括第一视图部分和(ii)在第一视图部分之外没有当前视野的部分。如果确定所确定的集合仅包括第一视图部分并且在第一视图部分之外不存在当前视野的部分,则操作从步骤2062前进到步骤2064;否则,操作从步骤2062前进到步骤2066。

在步骤2064中,内容回放系统基于从第一内容流接收的内容生成对应于当前视野的一个或多个输出图像。

在步骤2066中,内容回放系统确定是否存在图像不可用的所述当前视野的任何部分。如果内容回放系统确定存在图像不可用的当前视野的至少一个部分,则操作从步骤2066前进到步骤2076;否则,操作从步骤2066前进到步骤2068。

在步骤2068中,内容回放系统基于在生成一个或多个输出图像时要使用的所确定的视图部分的集合来生成对应于当前视野的一个或多个输出图像。步骤2068可以(并且有时候确实)包括步骤2070,其中内容回放系统基于包括在第一内容流中的至少一些接收到的内容和对应于所述环境的第二部分的所存储的内容来生成对应于当前视野的一个或多个输出图像。在一些实施例中,步骤2070包括步骤2072和2074中的一个或两个。在步骤2072中,内容回放系统基于接收到的图像选择信息来选择对应于环境的第二部分视图的图像。操作从步骤2072前进到步骤2074。在步骤2074中,内容回放系统将从在第二时间点捕获的所述第一内容流获得的内容与对应于所述第一时间点的第一图像组合,所述第一时间点与第二时间点不同。

在一些实施例中,第一图像是环境的第二部分的第一图像,并且第二部分是环境的第一后视图部分和环境的第二后视图部分之一。在一些这样的实施例中,第一时间点对应于第二时间点之前的时间。在一些这样的实施例中,第一时间点在直播事件的时间之前,在该直播事件期间捕获第一内容流中的图像。

返回到步骤2076,对图像不可用的每个部分执行步骤2076。在步骤2076中,内容回放系统为所述当前视野的图像不可用的部分合成图像。操作从步骤2076前进到步骤2078。在步骤2078中,内容回放系统基于在生成一个或多个输出图像和/或一个或多个合成图像中要使用的环境的所确定视图部分集合来生成对应于当前视野的一个或多个输出图像。由步骤2078生成的输出图像可以包括:完全合成的图像;包括来自合成图像的内容和来自第一内容流的内容的图像;包括来自合成图像的内容、来自第一内容流的内容和来自存储的图像的内容的图像;以及包括来自合成图像的内容和来自存储图像的内容的图像。在各种实施例中,步骤2078可以(并且有时候确实)包括步骤2080和2082中的一个或两个。

在步骤2080中,内容回放系统基于包括在第一内容流中的至少一些接收到的内容和模拟环境的一部分(例如,第二部分)的合成图像来生成对应于当前视野的一个或多个输出图像。在步骤2082中,内容回放设备将合成图像与接收到的图像的至少一部分组合,以生成对应于当前视野的图像。

应当理解,当前视野可以(并且通常确实)随时间而改变。响应于当前视野的改变,可以在步骤2060中确定要被用来生成输出图像的视图部分的不同集合,不同的图像可能需要并且在步骤2076中合成,例如,对应于视野的没有图像的不同部分。此外,在不同时间,基于接收到的控制信息,可以识别不同的存储图像以用于生成在不同时间的组合输出图像。

操作从步骤2058经由连接节点E 2084前进到步骤2086,其中内容回放系统输出和/或显示所生成的一个或多个输出图像。步骤2086包括步骤2088,其中内容回放系统输出和/或显示第一输出图像,所述第一输出图像是一个或多个生成的输出图像之一。

在一些实施例中,例如在步骤2070中生成的对应于当前视野的生成的输出图像可以(并且有时候确实)包括来自环境的第一部分、环境的第二部分以及环境的第三部分的信息。在一些实施例中,对应于第一内容流的环境的第一部分是前视图部分,环境的第二部分是环境的第一后视图部分(例如,右后视图部分)和第二后视图部分(例如,左后视图部分)之一,环境的第三部分是环境的天空视图部分和地面视图部分之一。在一些这样的实施例中,对应于所述第一部分的内容包括在事件正在进行时捕获并被流化到所述回放系统的实时内容,而对应于所述第二和第三部分的内容是非实时图像。

在各种实施例中,组合内容以生成对应于当前视野的输出图像包括在一个或多个边界区域中执行过滤、模糊、亮度变化和/或色彩变化,例如在以下任何两个之间的边界区域中:从对应于环境的前视图部分的第一内容流获得的图像、对应于环境的第一后视图部分的存储的图像、对应于环境的第二后视图部分的存储的图像,对应于环境的天空视图部分的存储的图像、对应于环境的地面视图部分的存储的图像,以及对应于当前视野中对其不存在图像的区域的合成图像。

在一些实施例中,存在没有被对应于第一内容流的第一(例如,前视图部分)覆盖的环境的一些部分,以及为其存储了接收到的图像的一个或多个附加部分。在各种实施例中,对于环境的那些未被覆盖的部分,图像被合成。例如,在一个实施例中,可以不存在对应于天空视图部分的存储图像,并且在当前视野包括天空视图的一部分时,图像被合成。在另一个例子中,在第一后视图部分和第二后视图部分之间可以存在死角,例如未被覆盖的区域。在一些实施例中,合成图像包括重复对应于环境中的相邻区域的图像的一部分,例如存储的图像的一部分或者从接收到的第一内容流获得的图像的一部分。

在一些实施例中,在步骤2034中接收到的第一图像内容是包括左眼图像和右眼图像的立体图像内容,例如,左眼和右眼图像对被接收。在一些这样的实施例中,被接收和存储的对应于第一后视图部分、第二后视图部分、天空视图部分和地面视图部分的图像包括例如成对的左眼图像和右眼图像。因此,当例如在步骤2070中生成对应于当前视野的一个或多个输出图像时,来自对应于第一视图部分(例如,前视图部分)的第一内容流的左眼图像与对应于环境的一个或多个其它部分的存储的左眼图像组合,来自对应于第一视图部分(例如,前视图部分)的第一内容流的右眼图像与对应于环境的一个或多个其它部分的存储的右眼图像组合。

在一些其它实施例中,被接收和存储的对应于第一后视图部分、第二后视图部分、天空视图部分和地面视图部分的图像包括来自原始图像对的左眼图像或右眼图像或者包括单个(单色)图像,例如,来自单独操作以捕获视图部分的单个相机。因此,在这样的实施例中,当例如在步骤2070中生成对应于当前视野的一个或多个输出图像时,来自第一内容流(例如,对应于前视图部分)的左眼图像和来自第一内容流的对应的右眼图像都与来自另一视图部分的相同的存储图像组合。

在还有另一实施例中,一些存储的图像包括左眼和右眼图像对,而其它图像包括单个存储的图像。例如,对应于第一后视图部分的所存储的接收图像可以包括左眼和右眼图像对,而对应于天空视图部分所存储的接收图像可以包括单个图像,例如单色图像,而不是成对。

在一些实施例中,环境的第一部分(例如,对应于所接收的第一内容流)是前视图部分,环境的第二部分是后视图部分(例如,对应于对应于观看者的右后方的第一后视图部分或者对应于观看者的左后方的第二后视图部分),环境的第三部分是天空视图部分或地面视图部分。在一些这样的实施例中,图像以对应于第一、第二和第三部分的不同速率被接收,更多图像为对应于所述第一部分而不是所述第二部分的事件被接收。在一些这样的实施例中,接收对应于所述第二部分而不是所述第三部分的更多图像。

根据一些实施例,操作内容回放系统的示例性方法包括:确定观看者的头部位置,所述头部位置对应于当前视野;接收提供对应于环境的第一部分的内容的第一内容流;基于包括在所述第一内容流中的至少一些接收到的内容以及i)对应于所述环境的第二部分的存储的内容或ii)模拟所述环境的第二部分的合成图像,生成对应于当前视野的一个或多个输出图像;以及输出或显示第一输出图像,所述第一输出图像是一个或多个生成的输出图像之一。在一些实施例中,内容回放系统是内容回放设备。在一些实施例中,内容回放系统是耦合到显示器的计算机系统。

在各种实施例中,该方法还包括:接收对应于所述环境的所述第二部分的第一图像;以及存储对应于所述环境的所述第二部分的所述第一图像。

在一些实施例中,所述环境的所述第二部分的所述第一图像对应于第一时间点;生成对应于当前视野的一个或多个输出图像包括组合从在第二时间点捕获的所述第一内容流获得的内容与对应于所述第一时间点的所述第一图像,所述第一时间点与第二时间点不同。在一些这样的实施例中,所述第一时间点对应于所述第二时间点之前的时间。在一些这样的实施例中,所述第一时间点在直播事件的时间之前,在该直播事件期间捕获包括在所述第一内容流中的图像。

在各种实施例中,该方法还包括接收对应于所述环境的所述第二部分的一个或多个附加图像,所述一个或多个附加图像对应于所述环境的所述第二部分,至少包括第二图像。

在一些实施例中,该方法包括接收控制信息,控制信息指示对应于所述环境的所述第二部分的多个先前传送的图像中的哪一个应当在回放时间期间被显示,该回放时间是相对于在所述第一内容流中指示的回放时间进行测量的。

在一些实施例中,所述环境的第二部分是第一后视图部分、第二后视图部分、天空视图部分或地面视图部分之一。在一些这样的实施例中,该方法还包括:接收对应于所述环境的第三部分的一个或多个图像。

在各种实施例中,所述环境的所述第一部分是前视图部分;所述第三部分是天空视图或地面视图部分之一;并且图像以对应于所述第一、第二和第三部分的不同速率被接收,更多图像为对应于所述第一部分而不是所述第二部分的事件接收。

在各种实施例中,对应于所述第一部分的所述内容包括在事件正在进行时被捕获并流化到所述回放设备的实时内容;与对应于所述第二和第三部分的所述图像对应的内容是非实时图像。在一些这样的实施例中,接收指示对应于环境的所述第二部分的多个图像中的哪个应当在所述事件的一部分期间被使用的图像选择信息;并且

基于至少一些接收到的内容生成对应于当前视野的一个或多个输出图像包括:基于接收到的图像选择信息选择对应于环境的所述第二部分的图像。

在各种实施例中,示例性方法包括确定图像对所述当前视野的一部分不可用;合成要用于所述当前视野的图像对其不可用的所述部分的图像;以及组合合成图像与接收到的图像的至少一部分,以生成对应于当前视野的图像。

在各种实施例中,所述第一图像内容是包括左眼图像和右眼图像的立体图像内容。

图21示出了根据本发明实现的示例性内容回放系统2100,其可被用来接收、解码、存储、处理和显示从内容交付系统(诸如图1和7中所示的内容交付系统)接收的成像内容。系统2100可被实现为包括显示器2102的单个回放设备2100',或实现为诸如耦合到计算机系统2100'的外部显示器(例如,头戴式显示器2105)的元件的组合。

在至少一些实施例中,内容回放系统2100包括3D头戴式显示器。头戴式显示器可以利用可以包括头戴式显示器2105的OCULUSRIFTTM VR(虚拟现实)耳机来实现。在各种实施例中,头戴式显示器2105与头戴式显示器805相同。还可使用其它头戴式显示器。在一些实施例中,头戴式头盔或其它头戴式设备,其中一个或多个显示屏被用来向用户的左眼和右眼显示内容。通过在单个屏幕上向左眼和右眼显示不同的图像,其中头戴式设备被配置为将单个屏幕的不同部分暴露给不同的眼睛,可以使用单个显示器来显示将被观看者的左眼和右眼分别感知到的左眼和右眼图像。在一些实施例中,手机屏幕被用作头戴式显示设备的显示器。在至少一些这样的实施例中,手机被插入头戴式设备并且手机被用来显示图像。

内容回放系统2100具有解码接收到的编码图像数据并且生成用于向消费者显示的3D图像内容的能力,其中编码图像数据例如左眼和右眼图像和/或对应于环境或场景的不同部分的单声道(单个图像),其中显示是例如通过将用户感知到的不同的左眼和右眼视图渲染并显示为3D图像。在一些实施例中,内容回放系统2100位于消费者驻地位置,诸如家或办公室,但也可以位于图像捕获地点。根据本发明,内容回放系统2100可以执行根据本发明的信号接收、解码、显示和/或其它操作。

系统2100包括显示器2102、显示设备接口2103、输入设备2104、输入/输出(I/O)接口2106、处理器2108、网络接口2110和存储器2112。存储器2112包括模块组件2114,例如软件模块组件,及数据/信息2116。在一些实施例中,系统2100包括模块组件2115,例如硬件模块(例如电路)组件。系统2100的各种部件经由允许数据在系统2100的部件之间通信的总线2109和/或通过其它连接或通过无线接口耦合在一起。虽然在一些实施例中显示器2102作为可选元件被包括,如利用虚线框所示的,但是在一些实施例中,外部显示设备2105,例如头戴式立体显示设备,可以经由显示设备接口2103耦合到回放设备。

例如,在手机处理器被用作处理器2108并且手机在头戴式设备中生成和显示图像的情况下,系统可以包括处理器2108、显示器2102和存储器2112,作为头戴式设备的一部分。处理器2108、显示器2102和存储器2112都可以是手机的一部分。在系统2100的其它实施例中,处理器2108可以是诸如XBOX或PS4的游戏系统的一部分,其中显示器2105安装在头戴式设备中并且耦合到游戏系统。处理器2108和/或存储器2112是否位于佩戴在头上的设备中并不是关键的并且,如可以理解的,虽然在一些情况下在头饰中共同定位处理器2108会是方便的,但是从功率、热量和重量的角度来看,在至少一些情况下,可能期望使处理器2108和存储器2112耦合到包括显示器的头饰。

虽然各种实施例构想了头戴式显示器2105或2102,但是该方法和装置还可以与可支持3D图像的非头戴式显示器一起使用。因而,虽然在许多实施例中系统2100包括头戴式显示器,但是它还可以利用非头戴式显示器来实现。

存储器2112包括各种模块,例如例程,当其被处理器2108执行时,控制内容回放系统2100执行根据本发明的操作。存储器2112包括模块组件2114,例如软件模块组件,及数据/信息2116。

数据信息2116包括以下一个或多个:对应于第一后视图部分2118的接收图像、对应于第二后视图部分2120的接收图像、对应于天空视图部分2122的接收图像、及对应于地面视图部分2124的接收图像。对应于后视图部分2118或2120的示例性接收图像包括例如观众或人群站立的图像、观众或人群坐着的图像、具有不同可见广告的图像、人群欢呼的图像等。对应于天空视图的示例性接收图像包括例如晴空、不同的云图案、对应于不同时间的不同暗度等。数据信息2116还包括以下一个或多个或全部:接收到的对应于第一后视图部分2130的控制信息、接收到的对应于第二后视图部分2132的控制信息、接收到的对应于天空视图部分2134的控制信息,以及接收到的对应于地面视图部分2136的控制信息。数据信息2116还包括确定的当前观看者头部位置2126、确定的当前视野2128、接收的第一内容流2128(例如,包括对应于前视图部分的右眼图像和左眼图像对)、用于生成输出图像2138的确定的视图部分集合(例如,对应于当前视野,对于该当前视野,存在可用于组合的至少一些接收内容)、合成图像2140,及生成的输出图像2142。生成的输出图像2142。生成的输出图像可以(并且有时候确实)包括生成的输出图像,该生成的输出图像包括来自第一内容流的组合图像内容(例如,对应于第一,(例如前视图)部分),并且包括接收到的存储图像(例如,来自后视图部分、天空部分或地面部分)的一部分,和/或包括合成图像或合成图像的一部分。

图22是根据示例性实施例的可以被包括在图21的示例性内容回放系统2100或图8的系统800中的模块组件2200的图。模块组件2200中的模块可以(并且在一些实施例中确实)完全在处理器2108内以硬件实现,例如作为单独的电路。模块组件2200中的模块可以(并且在一些实施例中确实)完全在模块组件2115内以硬件实现,例如作为对应于不同模块的单独电路。在其它实施例中,一些模块在处理器2108内被实现为例如电路,而其它模块被实现为例如模块组件2115内的电路,在处理器2108外部并且耦合到处理器2108。如应当理解的,处理器上模块的集成水平和/或一些模块在处理器外部的水平可以是设计选择之一。

作为替代地,不是被实现为电路,而是所有或一些模块可以以软件实现并被存储在系统2100的存储器2112中,其中当模块被处理器(例如,处理器2108)执行时,模块控制系统2100的操作以实现对应于模块的功能。在一些这样的实施例中,模块组件2200被包括在存储器2112中,作为模块组件2114。在还有其它实施例中,模块组件2200中的各种模块被实现为硬件和软件的组合,例如,在处理器外部的另一电路向处理器2108提供输入,然后处理器2108在软件控制下操作,以执行执行模块功能的一部分。虽然在图21的实施例中被示为单个处理器,例如计算机,但是应当理解,处理器2108可以被实现为一个或多个处理器,例如计算机。

当以软件实现时,模块包括代码,当代码被处理器2108执行时,配置处理器2108实现对应于该模块的功能。在模块组件2200存储在存储器2112中的实施例中,存储器2112是包括计算机可读介质的计算机程序产品以用于使至少一个计算机(例如处理器2108)实现模块对应的功能,该计算机可读介质包括代码,例如用于每个模块的单独代码。

可以使用完全基于硬件或完全基于软件的模块。但是,应当理解,软件和硬件的任何组合(例如电路实现的模块)可被用来实现功能。如应当理解的,在图22中所示的模块控制和/或配置系统2100或其中的元件(诸如处理器2108),来执行在图20的流程图2000的方法中示出和/或描述的对应步骤的功能。因此,模块组件2200包括执行对应于图20的一个或多个步骤的功能的各种模块。

模块组件2200包括观察者头部位置确定模块2202、当前视野确定模块2204、内容流选择模块2206、内容流接收模块2208、图像接收模块2210、接收图像存储模块2212、控制信息接收模块2214、输出图像生成模块2216、输出模块2242、显示模块2244和控制例程2246。

观看者头部位置确定模块2202被配置为确定观看者的头部位置,所述头部位置对应于当前视野。当前视野确定模块2204被配置为基于所确定的头部位置来确定所述观察者的当前视野。

内容流选择模块2206被配置为例如基于用户(例如,观看者)输入来从多个替代内容流中选择内容流。不同的内容流可以对应于不同的事件。在各种实施例中,对应于相同事件的不同内容流对应于指向不同方向的不同相机,例如,以向观看者提供替代的前视图视角。在一些实施例中,可被选择的图像流中的至少一些包括包含左眼图像对和右眼图像对的立体图像内容。

内容流接收模块2208被配置为接收提供对应于环境的第一部分(例如,前向部分视图)的内容的第一内容流。在各种实施例中,在第一内容流中接收的第一图像内容是包括左眼图像和右眼图像对的立体图像内容。

图像接收模块2210被配置以接收对应于一个或多个不同视图部分(例如,第一后视图部分、第二后视图部分、天空视图部分和地面视图部分)的图像。图像接收模块2210被配置为接收对应于所述环境的第二部分的第一图像。在一些这样的实施例中,图像接收模块还被配置为接收对应于所述环境的所述第二部分的一个或多个附加图像,所述一个或多个附加图像对应于所述环境的所述第二部分,包括至少第二图像。在一些实施例中,所述环境的第二部分是第一后视图部分、第二后视图部分、天空视图部分或地面视图部分之一。在一些实施例中,所述环境的第二部分是第一后视图部分或第二后视图部分之一。在一些实施例中,图像接收模块2210被配置为接收对应于所述环境的第三部分的一个或多个图像。在一些实施例中,环境的第一部分是前视图部分,环境的第三部分是天空视图或地面视图部分之一。

在一些实施例中,图像接收模块2210被配置为接收对应于所述环境的第一后视图部分的第一图像,并且还被配置为接收对应于所述环境的所述第一后视图部分的一个或多个附加图像,对应于所述第一后视图部分的所述一个或多个附加图像包括对应于所述第一后视图部分的至少第二图像。在一些实施例中,图像接收模块2210被配置为接收对应于所述环境的第二后视图部分的第一图像,并且还被配置为接收对应于所述环境的所述第二后视图部分的一个或多个附加图像,对应于所述第二后视图部分的所述一个或多个附加图像至少包括对应于所述第二后视图部分的第二图像。在一些实施例中,图像接收模块2210被配置为接收对应于所述环境的天空视图部分的一个或多个图像。在一些实施例中,图像接收模块2210被配置为接收对应于所述环境的地面视图部分的一个或多个图像。

接收的图像存储模块2212被配置为存储由图像接收模块2212接收的图像。接收的图像存储模块2212被配置为存储对应于所述环境的所述第二部分的第一图像。接收的图像存储模块2212被配置为存储对应于环境的第二部分的一个或多个附加图像。接收的图像存储模块2212被配置为存储接收到的对应于所述环境的第三部分的一个或多个图像。在各种实施例中,接收的图像存储模块2212被配置为存储对应于所述环境的所述第一后视图部分的第一图像,以及对应于所述环境的所述第一后视图部分的一个或多个附加图像。在各种实施例中,接收图像存储模块2212被配置为存储对应于所述环境的所述第二后视图部分的第一图像,以及对应于所述环境的所述第二后视图部分的一个或多个附加图像。在一些实施例中,接收的图像存储模块2212被配置为存储对应于所述环境的所述天空视图部分的一个或多个图像。在一些实施例中,接收的图像存储模块2212被配置为存储对应于所述环境的所述地面视图部分的一个或多个图像。

控制信息接收模块2214被配置为接收控制信息,该控制信息指示对应于所述环境的第二部分的多个先前传送的图像中的哪一个应当在回放时间期间被显示,该回放时间是相对于在第一内容流中指示的回放时间进行测量的。在各种实施例中,控制信息接收模块2214还被配置为接收控制信息,该控制信息指示对应于所述环境的第三部分的多个先前传送的图像中的哪一个应当在回放时间期间被显示,该回放时间是相对于在第一内容流中指示的回放时间进行测量的。在一些实施例中,控制信息接收模块2214被配置为接收图像选择信息,该图像选择信息指示对应于环境的第二部分的多个图像中的哪一个应当在事件的一部分期间被使用。在一些实施例中,控制信息接收模块2214被配置为接收图像选择信息,该图像选择信息指示对应于环境的第三部分的多个图像中的哪一个应当在事件的一部分期间被使用。

在一些实施例中,控制信息接收模块2214被配置为接收控制信息,该控制信息指示对应于所述环境的所述第一后视图部分的多个先前传送的图像中的哪一个应当在回放时间期间被显示,该回放时间是相对于在所述第一内容流中的回放时间进行测量的。在一些实施例中,控制信息接收模块2214被配置为接收图像选择信息,该图像选择信息指示对应于环境的所述第一后视图部分的多个图像中的哪一个应当在事件的一部分期间被使用。在一些实施例中,控制信息接收模块2214被配置为接收控制信息,该控制信息指示对应于所述环境的所述第二后视图部分的多个先前传送的图像中的哪一个应当在回放时间期间被显示,该回放时间是相对于在所述第一内容流中的回放时间进行测量的。在一些实施例中,控制信息接收模块2214被配置为接收图像选择信息,该图像选择信息指示对应于环境的所述第二后视图部分的多个图像中的哪一个应当在事件的一部分期间被使用。

在一些实施例中,控制信息接收模块2214被配置为接收控制信息,该控制信息指示对应于所述环境的所述天空视图部分的多个先前传送的图像中的哪一个应当在回放时间期间被显示,该回放时间是相对于在所述第一内容流中的回放时间进行测量的。在一些实施例中,控制信息接收模块2214被配置为接收图像选择信息,该图像选择信息指示对应于环境的所述天空视图部分的多个图像中的哪一个应当在事件的一部分期间被使用。在一些实施例中,控制信息接收模块2214被配置为接收控制信息,该控制信息指示对应于所述环境的所述地面视图部分的多个先前传送的图像中的哪一个应当在回放时间期间被显示,该回放时间是相对于在所述第一内容流中的回放时间进行测量的。在一些实施例中,控制信息接收模块2214被配置为接收图像选择信息,该图像选择信息指示对应于环境的所述地面视图部分的多个图像中哪一个应当在事件的一部分期间被使用。

输出图像生成模块2216被配置以基于以下中的至少一个来生成对应于当前视野的一个或多个输出图像:来自对应于环境的第一部分视图的第一内容流的接收内容、所存储的对应于环境的第一后视图部分的接收图像、所存储的对应于环境的第二后视图部分的接收图像、所存储的对应于环境的天空视图部分的接收图像、所存储的对应于环境的地面视图部分的接收图像,或对应于当前视野的图像不可用的部分的合成图像。输出图像生成模块2216包括视图部分集合确定模块2218、仅内容流确定模块2220、缺失部分确定模块2222、图像合成器模块2224、内容流输出图像生成模块2226、合成输出图像生成模块2228,基于输出图像内容流的生成模块2230,以及基于输出图像非流的生成模块2236。

视图部分集合确定模块2218被配置为基于当前视野确定要用于生成一个或多个输出图像的所述环境的视图部分集合,例如对其存在至少一些可用的图像内容的视图部分。一些示例性确定的集合包括例如:{}、{前视图部分}、{第一后视图部分}、{第二后视图部分}、{天空视图部分}、{地面视图部分}、{前视图部分、天空视图部分}、{前视图部分、地面视图部分}、{前视图部分、第一后视图部分}、{前视图部分、第二后视图部分}、{前视图部分、第一后视图部分、天空部分}、{前视图部分、第二后视图部分、天空视图部分}、{前视图部分、第一后视图部分、地面视图部分}、{前视图部分、第二后视图部分、地面视图部分}、{第一后视图部分、天空视图部分}、{第一后视图部分、地面视图部分}、{第一后视图部分,第二后视图部分}、{第一后视图部分、第二后视图部分、天空视图部分}、{第一后视图部分、第二后视图部分、地面视图部分},{第二后视图部分、天空视图部分}和{第二后视图部分、地面视图部分}。

仅内容流确定模块2220被配置为基于第一内容流中的内容来确定是否要生成一个或多个输出图像,而不必依赖来自其它部分视图(例如第一后视图部分、第二后视图部分、天空视图部分或地面视图部分)的所存储的接收图像或合成的图像。仅内容流确定模块2220被配置为检查所确定的集合是否包括作为对应于第一内容流的第一(例如,前)视图部分的单个元素,并且检查视野是否在该第一(例如,前)视图部分中。

缺失部分确定模块2222被配置为确定图像对于当前视野的一部分不可用,例如,图像或者从对应于环境的前视图的第一内容流或者从对应于环境另一部分的接收的存储图像不可用。图像合成器模块2224被配置为合成要用于当前视野的图像不可用的所述部分的图像。在各种实施例中,图像合成模块2224生成稍大于填充缺失部分所需的合成图像,例如,以允许一些整体边界。

内容流输出图像生成模块2226被配置为,当所确定的集合仅包括第一视图部分(例如,前视图部分)并且如由仅内容流确定模块2220确定的当前视野没有在第一视图部分之外的部分时,仅基于来自第一内容流的接收内容生成对应于当前视野的一个或多个输出图像。在一些实施例中,内容流输出图像生成模块2226对从第一内容流获得的图像执行裁剪操作。

基于输出图像内容流的生成模块2230被配置为基于包括在第一内容流(例如,对应于前视图的内容流)中的至少一些接收的内容以及i)对应于环境的第二部分的存储的内容(例如对应于第一后视图、第二后视图、天空视图或地面视图的存储图像)或ii)模拟环境的第二部分的合成图像(例如模拟图像不可用的视野的一部分的合成图像)来生成对应于当前视野的一个或多个输出图像。对应于环境的第二部分的存储内容是例如由接收图像存储模块2212存储的存储图像。合成图像例如是由模块2224生成的图像。在一些实施例中,基于输出图像内容流的生成模块2230被配置为基于所接收的图像选择信息来选择对应于环境的所述第二部分的图像,作为被配置为生成对应于当前视野的一个或多个输出图像的一部分。

基于输出图像内容流的生成模块2230包括被配置为将一个或多个合成图像结合到正在生成的输出图像中的合成图像结合模块2232。合成图像结合模块2232被配置为将合成图像与接收到的图像(例如,来自从接收到的第一内容流获得的第一(例如,前)视图部分的接收图像)的至少一部分或者对应于第一后视图部分、第二后视图部分、天空视图部分或地面视图部分之一的所存储的接收图像进行组合,以生成对应于当前视野的图像。存储图像结合模块2134被配置为将一个或多个存储图像的一部分结合到正在生成的输出图像中。作为生成输出图像的一部分,模块2230、模块2232和/或模块2234在边界区域执行混合。在各种实施例中,混合包括过滤、模糊、亮度变化和/或颜色变化。

基于输出图像非流的生成模块2236被配置为基于以下至少一个来生成对应于当前视野的一个或多个输出图像:i)对应于环境的一部分的存储内容,例如对应于第一后视图、第二后视图、天空视图或地面视图的存储图像,或ii)模拟环境的一部分的合成图像,例如模拟图像不可用的视野的一部分的合成图像。在当前视野在对应于与第一内容流对应的第一(例如,前视图)部分的区域之外时,模块2236生成一个或多个图像。在一些实施例中,基于输出图像非内容流的生成模块2236被配置为基于所接收的图像选择信息来选择对应于环境的所述第二部分的图像,作为被配置为生成对应于当前视野的一个或多个输出图像的一部分。

基于输出图像非流的生成模块2236包括被配置为将一个或多个合成图像结合到正在生成的输出图像中的合成图像结合模块2238。合成图像结合模块2238被配置为将合成图像与接收图像(例如,来自第一后视图部分、第二后视图部分、天空视图部分或地面视图部分的接收图像)的至少一部分组合,以生成对应于当前视野的图像。存储的图像结合模块2240被配置为将一个或多个存储的图像的一部分结合到正在生成的输出图像中。作为生成输出图像的一部分,模块2236、模块2232和/或模块2234在边界区域执行混合。在各种实施例中,混合包括过滤、模糊、亮度变化和/或颜色变化。

输出模块2242被配置为输出例如由基于输出图像内容流生成模块2130、内容流输出图像生成模块2130和基于输出图像非内容流生成模块2236生成的一个或多个生成的输出图像,所述一个或多个输出图像包括第一输出图像。输出模块被配置为例如经由网络接口2110和/或显示设备接口2103输出第一输出图像。

显示模块2244被配置为显示例如由基于输出图像内容流的生成模块2230、内容流输出图像生成模块2230和基于输出图像非内容流的生成模块2136生成的一个或多个生成的输出图像,所述一个或多个输出图像包括第一输出图像。显示模块2244被配置为例如经由显示器2102和/或显示器2105显示第一输出图像。

控制例程2246包括设备控制例程和通信例程,以控制系统2100的操作。

根据一些实施例,示例性内容回放系统(例如图21的系统2100)包括:被配置为确定观看者的头部位置的观看者头部位置确定模块2202、所述头部位置对应于当前视野;被配置为接收提供对应于环境的第一部分的内容的第一内容流的内容流接收模块;基于输出图像内容流的生成模块2230,其被配置为基于包括在所述第一内容流中的至少一些接收的内容以及i)对应于所述环境的第二部分的存储内容或ii)模拟所述环境的第二部分的合成图像来生成对应于当前视野的一个或多个输出图像;以及以下至少一个:被配置为输出第一输出图像的输出模块2242或者被配置为显示第一输出图像的显示模块2244,所述第一输出图像是一个或多个生成的输出图像之一。

在一些实施例中,所述内容回放系统2100是内容回放设备2100'。在一些实施例中,所述内容回放系统2100是耦合到显示器2105的计算机系统2100'。

在一些实施例中,该系统还包括:被配置为接收对应于所述环境的所述第二部分的第一图像的图像接收模块2210;以及被配置为存储对应于所述环境的所述第二部分的所述第一图像的接收图像存储模块2212。

在各种实施例中,所述环境的所述第二部分的所述第一图像对应于第一时间点;所述基于输出图像内容流的生成模块2230被配置为将从在第二时间点捕获的所述第一内容流获得的内容与对应于所述第一时间点的所述第一图像组合,所述第一与第二时间点不同。在一些这样的实施例中,所述第一时间点对应于所述第二时间点之前的时间。在各种实施例中,所述第一时间点在直播事件的时间之前,在该直播事件之间捕获包括在所述第一内容流中的图像。

在一些实施例中,所述图像接收模块2210还被配置为接收对应于所述环境的所述第二部分的一个或多个附加图像,所述一个或多个附加图像对应于包括至少第二图像的所述环境的所述第二部分。

在各种实施例中,系统还包括:被配置为接收控制信息的控制信息接收模块2214,该控制信息指示对应于所述环境的所述第二部分的多个先前传送的图像中的哪一个应当在回放时间期间被显示,该回放时间是相对于在所述第一内容流中指示的回放时间进行测量的。

在一些实施例中,所述环境的所述第二部分是第一后视图部分、第二后视图部分、天空视图部分或地面视图部分之一。在一些这样的实施例中,所述图像接收模块2210还被配置为接收对应于所述环境的第三部分的一个或多个图像。

在一些实施例中,所述环境的所述第一部分是前视图部分;所述第三部分是天空视图或地面视图部分之一;图像是以对应于所述第一、第二和第三部分的不同速率接收的,更多图像为对应于所述第一部分而不是所述第二部分的事件接收。

在一些实施例中,对应于所述第一部分的所述内容包括在事件正在进行时被捕获并流化到所述回放设备的实时内容;并且与对应于所述第二和第三部分的所述图像对应的所述内容是非实时图像。在一些这样的实施例中,所述控制信息接收模块2214还被配置为接收图像选择信息,该图像选择信息指示对应于所述环境的所述第二部分的多个图像中的哪一个应当在所述事件的一部分期间被使用;所述基于输出图像内容流的生成模块2230被配置为基于所接收的图像选择信息来选择对应于所述环境的所述第二部分的图像,作为被配置为生成对应于当前视野的一个或多个输出图像的一部分。

在各种实施例中,系统还包括被配置成确定图像对所述视野的一部分不可用的缺失部分确定模块2222;被配置为合成要用于所述视野的图像不可用的所述部分的图像的图像合成器模块2224;以及被配置为将合成图像与接收图像的至少一部分组合以生成对应于当前视野的图像的合成图像结合模块2232。

在各种实施例中,所述第一图像内容是包括左眼图像和右眼图像的立体图像内容。

在一些实施例中,除了图8中所示的其它模块之外,模块组件2200还被包括在图8的内容回放系统800中。模块组件2200中的模块可以包括在存储器812中、处理器808中,和/或作为系统800内耦合到总线809的在处理器808外部的硬件模块。

图23是示出根据一些实施例的可以在回放系统1900中使用的示例性流选择模块1938的图2300。

图24是示出了示例性流优先化模块2306的图2400,其可被实现为图23的流选择模块的一部分或者作为单独的模块。

一些实施例针对包括用于控制计算机或其它设备来编码和压缩立体视频的软件指令(例如,计算机可执行指令)集合的非瞬时性计算机可读介质。其它实施例是针对包括用于控制计算机或其它设备在播放器端解码和解压缩视频的软件指令(例如,计算机可执行指令)集合的计算机可读介质。虽然编码和压缩作为可能的单独操作被提及,但是应当理解,编码可以被用来执行压缩并且因此编码可以在一些情况下包括压缩。类似地,解码可以涉及解压缩。

各种实施例的技术可以利用软件、硬件和/或软件和硬件的组合来实现。各种实施例针对装置,例如图像数据处理系统。各种实施例还针对方法,例如处理图像数据的方法。各种实施例还针对非瞬时性机器,例如包括用于控制机器实现方法的一个或多个步骤的机器可读指令的计算机可读介质,例如ROM、RAM、CD、硬盘等。

本发明的各种特征是利用模块来实现的。这种模块可以(并且在一些实施例中确实)被实现为软件模块。在其它实施例中,模块以硬件实现。在还有其它实施例中,模块是利用软件和硬件的组合来实现的。在一些实施例中,模块被实现为单独的电路,其中每个模块被实现为用于执行模块对应的功能的电路。各种各样的实施例是预期的,包括其中不同模块以不同方式实现的一些实施例,例如一些在硬件中、一些在软件中、一些使用硬件和软件的组合。还应当指出,与在通用处理器上执行的软件相反,例程和/或子例程或者由这种例程执行的一些步骤可以在专用硬件中实现。这种实施例保持在本发明的范围内。许多上述方法或方法步骤可以利用包括在机器可读介质(诸如存储器设备,例如RAM、软盘等)中的机器可执行指令(诸如软件)来实现,以控制机器(例如具有或不具有附加硬件的通用计算机)实现上述方法的全部或部分。因而,除其它的之外,本发明尤其针对包括机器可执行指令的机器可读介质,所述机器可执行指令用于使机器(例如,处理器和关联的硬件)执行上述方法的一个或多个步骤。

鉴于上面的描述,上述各种实施例的方法和装置的众多附加变化对本领域技术人员将是清楚的。这些变化被认为在范围内。

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