以资产复杂性为优先级的沉浸式媒体流式传输的制作方法

未命名 09-09 阅读:124 评论:0

以资产复杂性为优先级的沉浸式媒体流式传输
相关申请的交叉引用
1.本技术基于并要求于2021年11月5日提交的第63/276,545号美国临时专利申请和于2022年10月21日提交的第17/971,037号美国专利申请的优先权权益,这两个在先申请的公开内容通过整体引用并入本文中。
技术领域
2.本公开描述了总体上涉及用于分发媒体(包括用于客户端呈现设备的视频、音频、几何(3d)对象、触觉、相关联的元数据、或其他内容)的系统和网络的架构、结构和组件的实施例。一些实施例涉及用于将媒体内容分发到异构沉浸式和交互式客户端呈现设备的系统、结构和架构。


背景技术:

3.沉浸式媒体通常是指刺激任何或所有人类感觉系统(例如,视觉、听觉、体感、嗅觉和可能的味觉)以创建或增强用户在媒体体验中物理地存在的感知的媒体,即,超出在现有(例如,“传统”)商业网络上分发的用于定时二维(2d)视频和对应音频的感知;这种定时媒体也被称为“传统媒体”。沉浸式媒体也可以被定义为试图通过对动力学和物理定律的数字模拟来创建或模仿物理世界的媒体,从而刺激任何或所有人类感觉系统来创建用户在描绘真实或虚拟世界的场景内物理地存在的感知。
4.具有沉浸式媒体功能的呈现设备可以指配备有足够的资源和能力来访问、解释和呈现沉浸式媒体的设备。这种具有沉浸式媒体功能的设备支持多种数量和格式的媒体,并且还支持大规模分发沉浸式媒体所需的多种网络资源。“大规模”可指由服务提供商通过网络实现与传统视频和音频媒体的分发相当的媒体分发,例如netflix、hulu、comcast订阅和spectrum订阅等。
5.相比之下,诸如膝上型显示器、电视和移动手机显示器的传统呈现设备在其功能上是同质的(即功能相同),因为所有这些设备都包括使用2d矩形视频或静止图像作为其主要视觉媒体格式的矩形显示屏。传统呈现设备中通常使用的一些视觉媒体格式可以包括高效视频编解码(high efficiency video coding)/h.265、高级视频编解码(advanced video coding)/h.264、以及多功能视频编解码(versatile video coding)/h.266。
6.任何媒体在网络上的分发都可以采用将媒体从输入格式或网络“摄取”媒体格式重新格式化和/或转变为分发媒体格式的媒体传送系统和架构,其中该分发媒体格式不仅适合于被目标客户端设备及其应用摄取,而且有助于通过网络被“流式传输”。重新格式化或流式传输可以由网络(例如,媒体流式传输网络中的服务器)执行,即,在将媒体分发到客户端之前,产生被称为“分发媒体格式”或简称为“分发格式”的媒体格式。
7.在相关技术中,当网络可以访问信息以指示客户端将在多个场合需要经转换的媒体对象(媒体对象也可以被称为媒体资产)和/或经流式传输的媒体对象时,该多次使用将多次触发这种媒体的转换和流式传输。也就是说,这种用于媒体转换和流式传输的数据的
持续再处理和传输是网络内延迟的来源,导致正在使用的网络和/或计算资源的量的潜在显著增加。
8.相比之下,能够访问信息以指示客户端何时可能已经具有存储在其高速缓存中或相对于客户端本地存储的特定媒体数据对象的网络设计,将比能够访问这种信息的网络执行得更有效。因此,可能需要包括对指示客户端何时可以在其高速缓存中本地存储媒体对象的信息的访问的网络设计。


技术实现要素:

9.根据实施例,提供了方法、系统和装置,以促进对将资产从网络打包并流式传输到客户端的序列顺序的计算。复杂性分析器分析包括场景的必要元素的媒体资产,以确定特定场景的哪些资产将花费最多的时间来处理。将特定场景的资产打包和流式传输到客户端的顺序是基于特定场景的每个资产的复杂性。
10.根据本公开的一个方面,可以提供一种用于打包媒体以优化媒体流式传输网络中的媒体分发的方法。该方法可以包括:媒体流式传输服务器接收包括与一个或多个场景相关联的一个或多个沉浸式媒体资产的沉浸式媒体流;识别该一个或多个沉浸式媒体资产的子集,该子集包括该一个或多个场景中的相应场景的必要元素;基于所识别的该一个或多个沉浸式媒体资产的子集,将该一个或多个沉浸式媒体资产按顺序进行排序,该子集包括该一个或多个场景中的相应场景的该必要元素;以及按排序后的顺序将该一个或多个沉浸式媒体资产从该媒体流式传输服务器流式传输到客户端设备。
11.根据本公开的另一个方面,可以提供一种用于优化媒体流式传输网络中的媒体分发的设备(或装置)。该设备可以包括至少一个存储器,其被配置为存储计算机程序代码;以及至少一个处理器,其被配置为读取该计算机程序代码并按照该计算机程序代码的指示运行。该计算机程序代码可以包括:第一接收代码,其被配置为使得该至少一个处理器:接收包括与一个或多个场景相关联的一个或多个沉浸式媒体资产的沉浸式媒体流;识别代码,其被配置为使得该至少一个处理器:识别该一个或多个沉浸式媒体资产的子集,该子集包括该一个或多个场景中的相应场景的必要元素;排序代码,其被配置为使得该至少一个处理器:基于所识别的该一个或多个沉浸式媒体资产的子集,将该一个或多个沉浸式媒体资产按顺序进行排序,该子集包括该一个或多个场景中的相应场景的该必要元素;以及流式传输代码,其被配置为使得该至少一个处理器:按排序后的顺序将该一个或多个沉浸式媒体资产从该媒体流式传输服务器流式传输到客户端设备。
12.根据本公开的另一个方面,一种非暂时性计算机可读介质存储有指令,该指令当由用于打包媒体以优化媒体流式传输网络中的媒体分发的设备的至少一个处理器执行时,使得该至少一个处理器:接收包括与一个或多个场景相关联的一个或多个沉浸式媒体资产的沉浸式媒体流;识别该一个或多个沉浸式媒体资产的子集,该子集包括该一个或多个场景中的相应场景的必要元素;基于所识别的该一个或多个沉浸式媒体资产的子集,将该一个或多个沉浸式媒体资产按顺序进行排序,该子集包括该一个或多个场景中的相应场景的该必要元素;以及按排序后的顺序将该一个或多个沉浸式媒体资产从该媒体流式传输服务器流式传输到客户端设备。
13.附加实施例将在随后的描述中阐述,并且将部分地根据描述显而易见,和/或可以
通过本公开所呈现的实施例的实践来实现。
附图说明
14.图1a是根据实施例的媒体分发流式传输网络的示例性图示。
15.图1b是根据实施例的示例性工作流程,其示出了在媒体流式传输网络中以分发格式创建媒体和生成(一个或多个)重用指示符。
16.图2a是根据实施例的示例性工作流程,其示出了向客户端设备流式传输媒体。
17.图2b是根据实施例的示例性工作流程,其示出了向客户端设备流式传输媒体。
18.图3a是根据实施例的用于定时沉浸式媒体(timed immersive media)的表示和流式传输的数据模型的示例性图示。
19.图3b是根据实施例的用于定时沉浸式媒体的表示和流式传输的数据模型的示例性图示。
20.图4a是根据实施例的用于不定时沉浸式媒体(untimed immersive media)的表示和流式传输的数据模型的示例性图示。
21.图4b是根据实施例的用于不定时沉浸式媒体的表示和流式传输的数据模型的示例性图示。
22.图5是根据实施例的图示了自然媒体合成的示例性工作流程。
23.图6是根据实施例的图示了合成媒体摄取创建的示例性工作流程。
24.图7是根据实施例的计算机系统的示例性图示。
25.图8是根据实施例的网络媒体分发系统的示例性图示。
26.图9是根据实施例的图示了沉浸式媒体分发的示例性工作流程。
27.图10是根据实施例的媒体适配过程系统的系统示意图。
28.图11a是根据实施例的图示了以分发格式创建媒体的示例性工作流程。
29.图11b是根据实施例的图示了以分发格式按序列创建媒体的示例性工作流程。
30.图12是根据实施例的图示了打包过程的示例性工作流程。
31.图13是根据实施例的图示了组件之间的通信流程的示例性工作流程。
32.图14a是根据实施例的图示了沉浸式媒体复杂性分析的示例性工作流程。
33.图14b是根据实施例的呈现中的场景的一组复杂性属性的示例。
具体实施方式
34.示例实施例的以下详细描述参考附图。不同附图中的相同附图标记可以标识相同或相似的元件。
35.前述公开内容提供了说明和描述,但并不旨在穷举或将实施方式限制为所公开的精确形式。根据上述公开内容可知,修改和变化是可能的,或者可以从实施方式的实践中获得修改和变化。此外,一个实施例的一个或多个特征或组件可以并入另一个实施例中或与另一个实施例(或另一个实施例的一个或多个特征)组合。附加地,在下面提供的操作的流程图和描述中,应该理解的是,可以省略一个或多个操作,可以添加一个或多个操作,可以同时(至少部分地)执行一个或多个操作,并且可以调换一个或多个操作的顺序。
36.显然,本文中描述的系统和/或方法可以以不同形式的硬件、软件、或硬件和软件
的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不限制实施方式。因此,本文中在不参考特定软件代码的情况下描述了系统和/或方法的操作和行为。应该理解的是,基于本文中的描述,软件和硬件可以被设计成实现系统和/或方法。
37.即使在权利要求书中记载了和/或在说明书中公开了特征的特定组合,这些组合并不旨在限制可能的实施方式的公开内容。事实上,这些特征中的许多特征可以以权利要求书中没有具体记载和/或说明书中没有公开的方式组合。尽管下面列出的每个从属权利要求可能仅直接引用一个权利要求,但可能的实施方式的公开内容包括每个从属权利要求与权利要求集合中的每个其他权利要求的组合。
38.下面讨论的所提出的特征可以单独使用或以任何顺序组合使用。此外,实施例可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,该一个或多个处理器执行存储在非暂时性计算机可读介质中的程序。
39.除非明确描述,否则本文中使用的任何元素、动作或指令都不应被解释为关键或必要的。此外,如本文所使用的,冠词“一(a)”和“一个(an)”意在包括一个或多个项目,并且可以与“一个或多个(one or more)”可交换地使用。如果只打算使用一个项目,则使用术语“一(one)”或类似的措词。此外,如本文中所使用的,术语“有(has)”、“具有(have)”、“正具有(having)”、“包括(include)”、“正包括(including)”等旨在为开放式术语。此外,除非另有明确说明,否则“基于”一词的意思是“至少部分基于”。此外,诸如“[a]和[b]中的至少一个”或“[a]或[b]中的至少一个”的表达应被理解为仅包括a、仅包括b、或包括a和b两者。
[0040]
根据实施例,具有沉浸式媒体功能的呈现设备可以指配备有足够的资源和能力来访问、解释和呈现沉浸式媒体的设备。这种设备在它们可以支持的媒体的数量和格式以及大规模分发这种媒体所需的网络资源的数量和类型方面是异构的。“大规模”可指由服务提供商通过网络实现与传统视频和音频媒体的分发相当的媒体分发,例如netflix、hulu、comcast订阅和spectrum订阅等。
[0041]
根据实施例,充当用于在网络上分发沉浸式媒体的端点的客户端设备都非常多样化。任何媒体在网络上的分发都可以采用将媒体从输入或网络“摄取”媒体格式重新格式化为分发媒体格式的媒体传送系统和架构,其中该分发媒体格式不仅适合于被目标客户端设备及其应用摄取,而且有助于通过网络被“流式传输”。因此,可以存在由网络对摄取的媒体执行的两个过程:1)将媒体从格式a转变成适合于由目标客户端摄取(即,基于客户端摄取某些媒体格式的能力)的格式b,以及2)准备要流式传输的媒体。
[0042]
在实施例中,流媒体广义地指媒体的分段(fragmenting)和/或打包(packetizing),使得该媒体可以根据媒体的时间或空间结构之一或两者以逻辑地组织和排序的连续较小块在网络上被传送。将媒体从格式a转换(有时称为“转码”)到格式b可以是通常由网络或服务提供商在将媒体分发到客户端设备之前执行的过程。这种转码可以包括基于格式b是优选格式或唯一格式的先验知识将媒体从格式a转变为格式b,该优选格式或唯一格式可以由目标客户端设备摄取,或者更适合于在诸如商业网络的受限资源上分发。在许多情况下,但不是所有情况下,在目标客户端设备可以从网络接收和处理媒体之前,转换媒体和准备要流式传输的媒体两者都是必要的。
[0043]
转变(或转换)媒体并准备用于流式传输的媒体是在将媒体分发到客户端设备之前由网络对摄取的媒体所执行的过程的一部分。该过程的结果(即,转变和准备流式传输)
是被称为分发媒体格式,或者简称为分发格式的媒体格式。如果对于给定的媒体数据对象执行了这些操作,且如果网络可以访问信息以指示客户端将需要用于多个场合的经转换的和/或流式传输的媒体对象,则这些操作应该仅执行一次,否则将多次触发这种媒体的转换和流式传输。也就是说,用于媒体的转换和流式传输的数据的处理和传输由于需要消耗潜在的大量网络和/或计算资源通常被认为是延迟的来源。因此,不能访问信息以指示客户端何时可能已经具有存储在其高速缓存中或相对于客户端本地存储的特定媒体数据对象的网络设计,将比能够访问这种信息的网络执行得次优(即该网络设计的性能不是最优的)。
[0044]
场景图可以是由基于矢量的图形编辑应用程序和现代计算机游戏通常使用的通用数据结构,其排布图形场景的逻辑和通常(但不是必然)空间表示,或者其可以是图形结构中节点和顶点的集合。
[0045]
在计算机图形的背景中,场景可以是对象的集合(例如,3d资产——也可以被称为媒体资产、媒体对象、对象和资产)。对象包括媒体数据的必要元素(essential elements)、对象属性和包括描述特定设置的基于视觉、听觉和物理的特性的其他元数据,该特定设置就该设置内的对象的交互而言,是受空间或时间限制的。
[0046]
节点可以是场景图的基本元素,包括与视觉、听觉、触觉、嗅觉、味觉或相关处理信息的逻辑、空间或时间表示相关的信息;每个节点最多应有一条输出边、零或更多条输入边,以及至少一条与其连接的(输入或输出)边。
[0047]
基础层可以是媒体资产的名义表示,通常被制定为最小化渲染资产所需的计算资源或时间,或者通过网络传输资产的时间。
[0048]
增强层可以是一组信息,当应用于资产的基础层表示时,该增强层增强基础层以包括基础层中不支持的特征或能力。
[0049]
属性可以是与节点相关联的元数据,用于以规范或更复杂的形式(例如,从另一个节点的角度)描述该节点的特定特性或特征。
[0050]
容器可以是串行化格式(serialized format),用于存储和交换信息以表示包括场景图和渲染场景所需的所有媒体资源的所有自然场景、所有合成场景、或合成场景和自然场景的混合。
[0051]
串行化可以是将数据结构或对象状态转换成可以存储(例如,在文件或存储缓冲器中)或传输(例如,通过网络连接链路)并且随后(可能在不同的计算机环境中)重建的格式的过程。当产生的位序列是根据串行化格式重读得到的时,该位序列可以用于创建原始对象的语义相同的克隆。
[0052]
渲染器可以是基于涉及以下内容的学科的选择性混合的(典型地基于软件的)应用程序或过程:声学物理,光物理,视觉感知、听觉感知,数学,和软件开发,该渲染器在给定输入场景图和资产容器的情况下,发射适合于在目标设备上呈现或符合由场景图中的渲染目标节点的属性所指定的期望性能的典型视觉和/或音频信号。对于基于视觉的媒体资产,渲染器可以发射适合于目标显示或作为中间资产存储的视觉信号(例如,重新打包到另一个容器中,即,在图形流水线中的一系列渲染过程中使用);对于基于音频的媒体资产,渲染器可以发射音频信号以在多声道扬声器和/或双听觉耳机中呈现,或者以重新打包到另一个(输出)容器中。渲染器的普遍示例包括游戏引擎unity和unreal engine的实时渲染功能。
[0053]
脚本语言可以是解释性的编程语言,其可以由渲染器在运行时执行,以处理对场景图节点进行的动态输入和变量状态改变,这影响空间和时间对象拓扑(包括物理力、约束、逆运动学、变形、碰撞)以及能量传播和传输(光、声音)的渲染和评估。
[0054]
着色器可以是一种计算机程序,最初用于着色(在图像中产生适当水平的光、暗和颜色),但现在在计算机图形特效的各个领域中执行各种专门的功能,或进行与着色无关的视频后处理,甚至与图形完全无关的功能。
[0055]
路径追寻是一种用于渲染三维场景,使得场景的光照忠实于现实的计算机图形方法。
[0056]
定时媒体可以包括可以按时间排序的媒体和/或媒体对象;例如,具有根据特定时钟的开始和结束时间。不定时媒体可包括可由空间、逻辑或时间关系组织的媒体和/或媒体对象;例如,如在根据(一个或多个)用户采取的行动实现的交互体验中。
[0057]
神经网络模型(neural network model,nn model)可以是参数和张量(例如矩阵)的集合,这些参数和张量定义了在应用于视觉信号的明确定义的数学运算中使用的权重(即数值),以获得改进的视觉输出,该改进的视觉输出可以包括原始信号未明确提供的视觉信号的新视图的插值。
[0058]
在过去十年中,已经被引入消费市场的具有沉浸式媒体功能的设备的数量激增,这些设备包括头戴式显示器、增强现实眼镜、手持控制器、多视图显示器、触觉手套和游戏控制台。此外,全息显示器和其他形式的体积显示器将准备在未来三到五年内进入消费市场。然而,尽管这些设备立即或即将可用,但由于几个原因,用于在商业网络上分发沉浸式媒体的连贯的端到端生态系统未能实现。
[0059]
尚未实现用于在商业网络上分发沉浸式媒体的连贯的端到端生态系统的原因之一是,用作这种用于沉浸式显示的分发网络的端点的客户端设备都非常多样化。一些客户端设备支持某些沉浸式媒体格式,而另一些客户端设备则不支持。有些可以从传统的基于栅格的格式中创建沉浸式体验,而有些则不能。与仅设计用于分发传统媒体的网络不同,在必须支持显示客户端的多样性的网络能够采用适配过程将媒体转换成适合于每个目标显示器和对应应用程序的格式之前,这样的网络需要与客户端的每个能力的细节以及要分发的媒体的格式相关的大量信息。这样的网络至少需要访问描述每个目标显示器的特性和所摄取媒体的复杂性的信息,以便网络确定如何有意义地使输入媒体源适配适合于目标显示器和应用程序的格式。
[0060]
支持这种多样化的客户端设备的网络应该利用这样的事实,即从输入媒体格式适配到特定目标格式的一些资产可以在一组类似的显示目标中被重用。也就是说,一些资产一旦被转换成适合于目标显示器的格式,就可以在具有类似适配要求的几个这样的显示器之间重用。因此,采用高速缓存机制将适配资产存储到相对不可变的区域中的这种网络将更有效。
[0061]
沉浸式媒体可以被组织成由场景图描述的“场景”,场景图也称为场景描述。场景图的范围可以是描述视觉、听觉和其他形式的沉浸式资产,其包括作为呈现的一部分的特定设置,例如,在作为呈现的一部分的建筑物中的特定位置中发生的演员和事件,例如,电影。包括单个呈现的所有场景的列表可以被表述为场景的清单。
[0062]
基于“场景”的方法的好处是,对于在必须分发内容之前准备的这种内容,可以创
建“材料单”,该材料单标识将用于整个呈现的所有资产,以及每个资产在呈现中的各种场景中使用的频率。一种网络了解高速缓存资源的存在,该高速缓存资源可用于满足特定呈现的资产要求。类似地,正在呈现一系列场景的客户端设备可能希望了解要在多个场景中使用的任何给定资产的频率。例如,如果媒体资产(也称为媒体对象、资产或对象)在正在或将要由客户端设备处理的多个场景中被多次引用,则客户端设备应该避免从其高速缓存资源中丢弃该资产,直到客户端已经呈现了需要该特定资产的最后一个场景。
[0063]
对于传统呈现设备,分发格式可以等同于或充分等同于客户端呈现设备最终用来创建呈现的“呈现格式”。也就是说,呈现媒体格式是其性能(分辨率、帧速率、位深度、色域等
……
)与客户端呈现设备的能力密切相关的媒体格式。分发与呈现格式的一些示例包括:由网络分发到分辨率为(3840像素列x 2160像素行)的超高清(ultra-high-definition,uhd)客户端设备的高清(high-definition,hd)视频信号(1920像素列x 1080像素行)。uhd客户端可以将称为“超分辨率”的过程应用于hd分发格式,以将视频信号的分辨率从hd提高到uhd。因此,由客户端设备呈现的最终信号格式是“呈现格式”,在该示例中,该“呈现格式”是uhd信号,而hd信号包括分发格式。在该示例中,hd信号分发格式与uhd信号呈现格式非常类似,因为两个信号都是直线性视频格式(rectilinear video format),并且将hd格式转换为uhd格式的过程是在大多数传统客户端设备上执行的相对简单且容易的过程。
[0064]
然而,在一些实施例中,目标客户端设备的优选呈现格式可以与由网络接收的摄取格式显著地不同。然而,客户端设备可以访问足够的计算、存储和带宽资源,以将媒体从摄取格式转换成适合由客户端设备呈现的必要呈现格式。网络可以绕过将摄取的媒体从第一格式a重新格式化(例如对媒体进行“转码”)为第二格式b,因为客户端可以访问足够的资源来执行所有媒体转换,而不需要网络预先这样做。网络仍然可以对摄取媒体进行分段和打包,使得媒体可以被流式传输到客户端。
[0065]
然而,在一些实施例中,由网络接收的摄取媒体明显与客户端的优选呈现格式不同,并且客户端设备不能访问足够的计算、存储和/或带宽资源来将媒体转变为优选呈现格式。在无法访问资源的情况下,网络可以通过代表客户端执行从摄取格式到等同于或几乎等同于客户端设备的优选呈现格式的格式的一些或全部转换来辅助客户端。在一些实施例中,由网络代表客户端提供的这种辅助通常被称为“分离渲染(split rendering)”。
[0066]
如本文所描述的本公开的实施例能够确定网络是否应该将一些或所有摄取媒体从第一格式(例如,格式a)转换为第二格式(例如,格式b),以促进客户端设备的以潜在第三格式c产生媒体呈现的能力。该确定可以由媒体流式传输网络的处理器或服务器做出,或者可以由客户端设备做出。以下对于辅助该确定可能是有用的:确定在呈现的上下文中哪些媒体资产在呈现内被不止一次地使用,并且设计过程和/或网络以使那些媒体资产易于网络使用。依赖于来自这种分析的信息,然后可以设计网络,使得可以请求客户端设备(也称为“客户端”)在其本地高速缓存中保留可以不止一次地使用的一个或多个媒体资产的副本。
[0067]
然而,如果客户端设备在其本地高速缓存中存储媒体资产的副本,则网络可能对客户端设备的本地高速缓存的管理没有任何控制,并且导致,客户端设备可能遇到必须从其本地高速缓存中删除资源(甚至可重用资源)的情况。为了促进其中网络被优化从而最小化对多次使用的媒体资产执行从第一格式到第二格式的转换的需要的设计,或者为了促进
网络不必将多次使用的媒体资产重新流式传输到客户端,网络可以管理其自己的高速缓存,与客户端维护的任何高速缓存分离,从而确保网络对于客户端和网络都可以访问每个可重用资产的至少一个冗余副本。
[0068]
在一个实施例中,网络可以首先查询客户端设备以获得反馈,以确保所讨论的媒体资产在客户端的本地高速缓存中仍然可用。如果客户端设备的回复指示它不再具有所讨论的媒体资产的副本,则网络可以向客户端发信号告知客户端应该从冗余高速缓存访问其分发格式的媒体资产的副本。在一些实施例中,可以省略对客户端设备的查询,并且网络可以向客户端发信号告知客户端应该从冗余高速缓存访问资产的分发格式的副本。
[0069]
图1a是根据实施例的用于将媒体从网络云、边缘设备或服务器104分发到客户端设备108的媒体分发流式传输系统100的示例性图示。如图1a所示,从内容提供商接收第一格式a(以下称为“摄取媒体格式a”)的媒体,该媒体包括包括一个或多个场景和一个或多个媒体对象的沉浸式媒体。该过程可以由网络云或边缘设备(以下称为“网络设备104”)执行或实行,并分发到客户端,例如客户端设备108。在一些实施例中,相同的过程可以在手动过程中预先执行或由客户端设备执行。网络设备104可以摄取第一格式的媒体101,生成和/或创建第二格式的分发媒体102(以下称为“分发媒体创建102”),并且例如使用分发模块分发第二格式的媒体103。客户端设备108可以包括渲染模块106和呈现模块107。
[0070]
根据一个方面,网络设备104可以从内容提供商等接收摄取媒体。媒体流式传输网络可以获得以摄取媒体格式a存储的摄取媒体。可以使用摄取媒体的任何必要的转换或调节来创建和/或生成分发媒体,以创建媒体的潜在替代表示。即,可以创建摄取媒体中的媒体对象的分发格式。如所述的,分发格式是可以通过将媒体格式化为分发格式b来分发到客户端的媒体格式。分发格式b是准备流式传输到客户端设备108的格式。分发媒体创建102可以包括优化重用逻辑,以执行决策过程来确定特定媒体对象是否已经被流式传输到客户端设备108。将参照图1b详细描述与分发媒体创建102和优化重用逻辑相关联的进一步操作。
[0071]
媒体格式a和媒体格式b可以是也可以不是遵循特定媒体格式规范的相同语法的表示,然而,格式b可能被调整为促进通过网络协议的媒体分发的方案。网络协议可以是例如面向连接的协议(connection-oriented protocol,tcp)或无连接协议(connectionless protocol,udp)。分发模块经由网络连接105将可流式媒体(即,媒体格式b)从网络设备104流式传输到客户端设备108。
[0072]
客户端设备108可以接收分发媒体,并且可以使用渲染模块106来渲染用于呈现的媒体。取决于被作为目标的客户端设备108,渲染模块106可以获取一些渲染能力,这些渲染能力可以是基本的或者同样是复杂的。渲染模块106可以创建呈现格式c的呈现媒体。呈现格式c可以或可以不根据第三格式规范来表示。因此,呈现格式c可以与媒体格式a和/或媒体格式b相同或不同。渲染模块106将呈现格式c输出到可以在客户端设备108的显示器(或类似设备)中呈现呈现媒体的呈现模块107。
[0073]
本公开的实施例促进了由网络采用来计算将资产打包并从网络流式传输到客户端的序列顺序的决策过程。在这种情况下,媒体复杂性分析器分析在包括呈现的一组一个或多个场景中利用的所有资产,以确定与贯穿包括呈现的所有场景的每个资产相关联的复杂性。因此将特定场景的资产打包并流式传输到客户端的顺序可以是基于在包括呈现的一组场景中使用每个资产的复杂性。
[0074]
实施例解决了对分析沉浸式媒体场景以获得可用于支持决策过程的足够信息的机制或过程的需求,该决策过程在被网络或客户端采用时,提供关于媒体对象从格式a到格式b的转换是否应该完全由网络执行、完全由客户端执行、或经由两者的结合来执行的指示(以及哪些资产应该由客户端或网络来转换的指示)。这种沉浸式媒体数据复杂性分析器可以在自动化环境中由客户端或网络采用,或者由例如操作系统或设备的人手动采用。
[0075]
根据实施例,将输入沉浸式媒体源适配到特定端点客户端设备的过程可以与将相同的输入沉浸式媒体源适配到正在特定客户端端点设备上执行的特定应用程序的过程相同或相似。因此,将输入媒体源适配到端点设备的特性的问题与将特定输入媒体源适配到特定应用程序的特性的问题具有相同的复杂性。
[0076]
图1b是根据实施例的分发媒体创建102的工作流程。更具体地,图1b的工作流程包括在媒体流式传输网络中生成(一个或多个)重用指示符,该重用指示符辅助决策过程以确定特定媒体对象是否已经被流式传输到客户端设备108。
[0077]
在操作152处,开始分发媒体创建过程。在操作155处,可以执行条件逻辑以确定当前媒体对象先前是否已经被流式传输到客户端设备108。可以访问用于呈现的独有资产的列表,以确定媒体对象先前是否已经被流式传输到客户端。如果当前媒体对象先前已经被流式传输,则过程进行到操作160。在操作160处,创建指示符(稍后也称为“代理”)以标识客户端已经接收到当前媒体对象,并且应该从本地高速缓存或其他高速缓存访问媒体对象的副本。如果确定了媒体对象先前没有被流式传输,则过程进行到操作165。在操作165处,可以准备媒体对象用于转换和/或分发,并且创建媒体对象的分发格式。随后,结束对当前媒体对象的处理。
[0078]
图2a是用于通过网络处理摄取媒体的示例性工作流程。根据实施例,图2a中图示的工作流程描绘了媒体转换决策过程200。采用媒体转换决策过程200来确定网络是否应该在将媒体分发到客户端设备之前转换媒体。媒体转换决策过程200可以通过网络内的手动或自动过程来处理。
[0079]
以格式a表示的摄取媒体由内容提供商提供给网络。在操作205处,媒体流式传输网络从内容提供商摄取媒体。在操作210处,获取目标客户端的属性(如果还不知道的话)。这些属性描述了目标客户端的处理能力。
[0080]
在操作215处,确定网络(或客户端)是否应该协助摄取媒体的转换。在一些实施例中,在操作215处,可以具体地确定在媒体被流式传输到目标客户端之前是否需要包含在摄取媒体内的任何媒体资产的任何格式转变(例如,一个或多个媒体对象从格式a到格式b的转变)。在操作215处,该确定可以是基于媒体是否可以以其原始摄取格式a被流式传输,或者是否必须被转换成不同的格式b以方便客户端对媒体的呈现。这样的决策(即,确定在将媒体流式传输到客户端之前是否需要对摄取媒体的转换,或者媒体是否应该以其原始摄取格式a直接被流式传输到客户端)可能需要访问描述摄取媒体的方面或特征的信息。
[0081]
如果确定了网络(或客户端)应该协助任何媒体资产的转换(在操作215处为“是”),则过程200前进到操作220。
[0082]
在操作220处,转换摄取媒体以将媒体从格式a转变成格式b,以产生转换后的媒体222。输出转换后的媒体222,并且在操作225处,输入媒体经历用于将媒体流式传输到客户端的准备过程。在这种情况下,准备转换后的媒体222(即,输入媒体)以被流式传输。
[0083]
沉浸式媒体的流式传输,尤其是在这种媒体是“基于场景”而不是“基于帧”的情况下,可以是相对新兴的。例如,基于帧的媒体的流式传输可以等同于视频帧的流式传输,其中每个帧捕获整个场景的全部图像或要由客户端呈现的整个对象的完整图像。当由客户端从帧序列的压缩形式重建帧序列并呈现给观看者时,创建包括整个沉浸式呈现或呈现的一部分的视频序列。对于基于帧的流式传输,帧从网络流式传输到客户端的顺序可以与预定义的规范(例如,诸如itu-t建议书h.264通用视听服务的高级视频编码)一致。然而,基于场景的媒体流式传输不同于基于帧的流式传输,因为场景可以由本身可以彼此独立的单个资产组成。给定的基于场景的资产可以在特定场景内或在一系列场景中被多次使用。客户端或任何给定渲染器重建特定资产所需花费的时间量可以取决于许多因素,包括但不限于:资产的大小、执行渲染的计算资源的可用性以及描述资产的整体复杂性的其他属性。支持基于场景的流式传输的客户端可以要求在场景的任何呈现能够开始之前完成场景中每个资产的部分或全部渲染。因此,资产从网络流式传输到客户端的顺序可以影响系统的整体性能。
[0084]
媒体从格式a到另一格式(例如,格式b)的转换可以完全由网络完成、完全由客户端完成、或者在网络和客户端两者之间联合完成。对于分离渲染,很明显可能需要描述媒体格式的属性词典,以便客户端和网络两者都有完整的信息来表征必须完成的工作。此外,可能同样需要提供客户端能力(例如,在可用计算资源、可用存储资源和对带宽的访问方面)的属性的词典。更进一步地,需要一种机制来表征摄取媒体格式的计算、存储或带宽复杂性的水平,以便网络和客户端可以联合或单独地确定网络是否或何时可以采用分离渲染过程来将媒体分发到客户端。
[0085]
如果确定了网络(或客户端)不应该(或者不需要)协助任何媒体资产的转换(在操作215处为“否”),则过程200前进到操作225。在操作225处,准备媒体以用于流式传输。在这种情况下,准备摄取数据(即,原始形式的媒体)以被流式传输。
[0086]
最后,一旦媒体数据是可流式格式(stream-able format),在操作225处已经准备好的媒体在操作230处被流式传输到客户端。在一些实施例中,(如参考图1b所描述的)如果可以避免客户端完成其媒体呈现所需要的或将会需要的特定媒体对象的转换和/或流式传输,假设客户端仍然可以访问或可使用它可能需要的媒体对象以便完成客户端的媒体呈现,则网络可以跳过摄取媒体的转换和/或流式传输(即,操作215-230)。关于将基于场景的资产从网络流式传输到客户端以促进客户端充分发挥其潜力的能力的顺序,可能希望网络配备有足够的信息,使得网络可以确定这样的顺序以改进客户端的性能。例如,这种具有足够信息以避免在特定呈现中不止一次使用的资产的重复转换和/或流式传输步骤的网络,可以比不是以这种方式设计的网络执行得更好。类似地,能够“智能地”按顺序向客户传送资产的网络可以促进客户端充分发挥其潜力的能力(即,创建最终用户可能更愉快的体验)。
[0087]
图2b示出了根据实施例的包括确定媒体资产重用的示例性的媒体转换过程250。像媒体转换决策过程200一样,具有媒体资产重用过程的媒体转换过程250通过网络摄取媒体,以在将媒体分发到客户端之前确定网络是否应该转换媒体。
[0088]
以格式a表示的摄取媒体由内容提供商提供给网络。根据一个实施例,类似于图2a所示的操作205-210和215-230来执行操作255-260和275-286。在操作255处,网络从内容提
供商摄取媒体。随后,在操作260处,获取目标客户端的属性(如果还不知道的话)。这些属性描述了目标客户端的处理能力。
[0089]
如果确定了网络先前已经流式传输了特定媒体对象或当前媒体对象(在操作265处为“是”),则过程前进到操作270。在操作270处,创建代理以替代先前流式传输的媒体对象,以指示客户端应该使用其先前流式传输的对象的本地副本或存储在另一高速缓存中的先前流式传输的对象的副本。
[0090]
如果确定了网络先前没有流式传输媒体对象(在操作265处为“否”),则过程前进到操作275。在操作275处,确定网络或客户端是否应该对包含在操作255处摄取的媒体内的任何媒体资产执行任何格式转换。例如,转换可以包括在媒体被流式传输到客户端之前,将特定媒体对象从格式a转变为格式b。操作275可以类似于在图2a所示的操作215处执行的那些操作。
[0091]
如果确定了媒体资产应该由网络转换(在操作275处为“是”),则过程前进到操作280。在操作280处,将媒体对象从格式a转换为格式b。然后,准备将转换后的媒体流式传输到客户端(操作286)。
[0092]
如果确定了媒体资产不应该由网络转换(在操作275处为“否”),则过程前进到操作285。在操作285处,然后准备将媒体对象流式传输到客户端。一旦媒体是可流式格式,在操作285处准备好的媒体在操作286处被流式传输到客户端。
[0093]
媒体的可流式格式可以是定时或不定时的异构沉浸式媒体。图3a示出了异构沉浸式媒体的可流式格式的定时媒体表示300的示例。定时沉浸式媒体可以包括一组n个场景。定时媒体是按时间排序的媒体内容,例如,具有根据特定时钟的开始和结束时间。图4示出了异构沉浸式媒体的可流式格式的不定时媒体表示400的示例。不定时媒体是由空间、逻辑或时间关系组织的媒体内容(例如,如在根据一个或多个用户采取的行动实现的交互体验中)。
[0094]
图3a-图3b是指用于定时媒体的定时场景,图4a-图4b是指不定时媒体的不定时场景。定时场景和不定时场景可以对应于各种场景表示或场景描述。图3b、图3b、图4a和图4b都采用已从源摄取媒体格式适配以匹配特定客户端端点的能力的单个示例性包含媒体格式(encompassing media format)。也就是说,包含媒体格式是能够流式传输到客户端设备的分发格式。包含媒体格式在其结构上足够稳固,以容纳各种各样的媒体属性,其中每个属性可以基于每个层对媒体呈现所贡献的重要信息量来分层。
[0095]
如图3a所示,定时媒体表示300包括定时场景清单300a,该定时场景清单300a包括场景信息301的列表。场景信息301是指单独描述处理信息和构成场景信息301的媒体资产的类型的组件302的列表。例如,资产列表和其他处理信息。组件302的列表可以参考对应于资产类型的代理资产308(例如,代理视觉和音频资产,如图3a所示)。组件302是指先前没有在其他场景中使用过的独有资产的列表。例如,图3a中示出了(定时)场景1的独有资产的列表307。组件302还指包括基础层304和属性增强层305的资产303。基础层是资产的名义表示,该资产可以被制定为最小化渲染资产所需的计算资源、时间,和/或通过网络传输资产所需的时间。在该示例性实施例中,基础层304中的每个是指数值复杂性度量,该数值复杂性度量指示表征客户端在处理资产的时间或资源方面可能需要花费的努力。增强层可以是一组信息,当应用于资产的基础层表示时,该增强层增强基础层以包括基础层中可能不支
持的特征或能力。
[0096]
图3b示出了按复杂性递减排序的定时媒体表示3030。该定时媒体表示与图3a中所示的表示相同,然而,图3b中的资产3033在列表中按资产类型和每个资产类型内的复杂性度量值递减排序。定时场景清单303a包括场景信息3031的列表。场景信息3031的列表是指单独描述处理信息和包括场景信息3031的列表的媒体资产的类型的组件3032的列表。例如,资产列表和其他处理信息。组件3032可以参考对应于资产类型的代理资产3038(例如,代理视觉和音频资产,如图3b所示)。组件3032是指进一步指基础层3034和属性增强层3035的资产3033。每个基础层3034根据对应复杂性度量的递减值进行排序。还提供了先前没有在其他场景中使用过的独有资产的列表3037。
[0097]
如图4a所示,不定时媒体和复杂性表示400包括场景信息401。场景信息401不与开始和结束时间/持续时间(根据时钟、定时器等)相关联。不定时场景清单(未描绘)可以引用场景1.0,对于该场景1.0,没有其他场景可以分支到场景1.0。场景信息401是指单独描述处理信息和构成场景信息401的媒体资产的类型的组件402的列表。组件402是指视觉资产、音频资产、触觉资产和定时资产(统称为资产403)。资产403还指基础层404和属性增强层405和属性增强层406。在该示例性实施例中,基础层404中的每个是指数值复杂性值,该数值复杂性值表征客户端在包括呈现的场景中处理资产的时间或资源方面可能需要花费的努力。场景信息401还可以指用于不定时媒体源的其他不定时场景(即,在图4a中被称为不定时场景2.1-2.4)和/或用于定时媒体场景(即,在图4a中被称为定时场景3.0)的场景信息407。在图4a的示例中,不定时沉浸式媒体包含一组五个场景(包括定时的和不定时的)。独有资产的列表408标识与特定场景相关联的独有资产,这些资产先前没有在更高阶(例如,父)场景中使用过。图4中所示的独有资产的列表408包括用于不定时场景2.3的独有资产。
[0098]
图4b示出了不定时媒体和排序后的复杂性表示4040。不定时场景清单(未描绘)引用场景1.0,对于该场景1.0,没有其他场景可以分支到场景1.0。场景信息4041不与根据时钟的开始和结束持续时间相关联。场景信息4041还指单独描述处理信息和构成场景信息4041的媒体资产的类型的组件4042的列表。组件4042是指视觉资产、音频资产、触觉资产和定时资产(还统称为资产4043)。资产4043还指基础层4044和属性增强层4045和属性增强层4046。在该示例性实施例中,触觉资产4043通过增加复杂性度量值来组织,而音频资产4043通过减少复杂性度量值来组织,反之亦然。此外,场景信息4041是指用于不定时媒体的其他不定时场景信息4041。场景信息4041还指用于定时媒体的其他定时场景信息4047。独有资产的列表4048标识与特定场景相关联的独有资产,这些资产先前没有在更高阶(例如,父)场景中使用过。
[0099]
根据包含媒体格式流式传输的媒体不限于传统的视觉和音频媒体。包含媒体格式可以包括能够产生与机器交互以刺激人类视觉、听觉、味觉、触觉和嗅觉的信号的任何类型的媒体信息。如图3a-图3b和图4a-图4b所示,根据包含媒体格式流式传输的媒体可以是定时媒体或不定时媒体,或者两者的混合。通过使用基础层和增强层架构使媒体对象的分层表示成为可能,使得包含媒体格式是可流化的。
[0100]
在一些实施例中,通过对每个场景中的媒体对象应用多分辨率或多镶嵌分析技术来计算单独的基础层和增强层。这种计算技术不限于基于光栅的视觉格式。
[0101]
在一些实施例中,几何对象的渐进表示可以是使用小波分析技术计算的对象的多
分辨率表示。
[0102]
在一些实施例中,在分层表示媒体格式中,增强层可以将不同的属性应用于基础层。例如,一个或多个增强层可以细化由基础层表示的视觉对象的表面的材料性能。
[0103]
在一些实施例中,在分层表示介质格式中,属性可以通过例如将表面从光滑纹理变化为多孔纹理,或者从粗糙表面变化为光泽表面来细化由基础层表示的对象表面的纹理。
[0104]
在一些实施例中,在分层表示媒体格式中,场景中的一个或多个视觉对象的表面可以从朗伯表面改变为光线可追寻表面。
[0105]
在一些实施例中,在分层表示媒体格式中,网络可以将基础层表示分发到客户端,使得客户端可以创建场景的名义呈现,同时客户端等待附加增强层的传输以细化基础层的分辨率或其他特性。
[0106]
在实施例中,增强层中的属性或细化信息的分辨率没有明确与基础层中的对象的分辨率相联系。此外,包含媒体格式可以支持可以由呈现设备或机器呈现或驱动的任何类型的信息媒体,从而能够支持到异构客户端端点的异构媒体格式。在一些实施例中,分发媒体格式的网络将首先查询客户端端点以确定客户端的能力。基于该查询,如果客户端不能有意义地摄取媒体表示,则网络可以移除客户端不支持的属性层。在一些实施例中,如果客户端不能有意义地摄取媒体表示,则网络可以将媒体从其当前格式适配到适合客户端端点的格式。例如,网络可以通过使用基于网络的媒体处理协议将体积视觉媒体资产转变成相同视觉资产的2d表示来适配媒体。在一些实施例中,网络可以通过采用神经网络(neural network,nn)处理来适配媒体,以将媒体重新格式化为适当的格式,或者可选地合成客户端端点所需的视图。
[0107]
完整的(或部分完整的)沉浸式体验(直播流事件、游戏或点播资产的回放)的场景清单由包含渲染和摄取以便创建呈现所需的最小量信息的场景来组织。场景清单包括要为客户端所请求的整体沉浸式体验而渲染的各个场景的列表。与每个场景相关联的是与场景几何的可流式版本相对应的场景内的几何对象的一个或多个表示。场景的一个实施例可以指场景的几何对象的低分辨率版本。同一场景的另一个实施例可以指用于场景的低分辨率表示的增强层,以添加同一场景的几何对象的附加细节或增加镶嵌。如上所述,每个场景可以具有一个或多个增强层,以渐进的方式增加场景的几何对象的细节。场景内引用的每一层媒体对象可以与一个令牌(例如,统一资源标识符(uniform resource identifier,uri))相关联,该令牌指向在网络内可以访问资源的地址。这种资源类似于内容递送网络(content delivery network,cdn),其中内容可以由客户端获取。用于表示几何对象的令牌可以指向网络内的位置或者指向客户端内的位置。也就是说,客户端可以向网络发信号告知其资源可用于网络以进行基于网络的媒体处理。
[0108]
根据实施例,场景(定时的或不定时的)可以对应于作为多平面图像(multi-plane image,mpi)或作为多球面图像(multi-spherical image,msi)的场景图。mpi技术和msi技术都是有助于为自然内容创建与显示器无关的场景表示(即,从一个或多个摄像机同时捕获的真实世界的图像)的技术示例。另一方面,可以采用场景图技术以合成表示的形式表示自然的影像和计算机生成的影像。然而,对于内容被一个或多个摄像机捕获为自然场景的情况,创建这种表示的计算量非常大。创建自然捕获内容的场景图表示既需要时间又需要
计算,需要使用摄影测量技术或深度学习技术或两者对自然图像进行复杂的分析,以便创建合成表示,该合成表示随后可用于内插足够和充分数量的视图,以填充目标沉浸式客户端显示器的视锥。作为结果,将这种合成表示考虑为表示自然内容的候选是不切实际的,因为它们实际上不能被实时创建以供需要实时分发的用例参考。因此,计算机生成的影像的最佳表示是使用具有合成模型的场景图,因为计算机生成的影像是使用3d建模过程和工具创建的,使用具有合成模型的场景图会产生计算机生成的影像的最佳表示。
[0109]
图5示出了根据实施例的自然媒体合成过程500的示例。自然媒体合成过程500将摄取格式从自然场景转变为可用作服务于异构客户端端点的网络的摄取格式的表示。虚线510的左侧是自然媒体合成过程500的内容捕获部分。虚线510的右侧是自然媒体合成过程500的(对于自然图像的)摄取格式合成。
[0110]
如图5所示,第一摄像机501使用单个摄像机镜头来捕获例如人(即,图5所示的演员)的场景。第二摄像机502通过在环形对象周围安装五个摄像机镜头来捕获具有五个发散视场的场景。图5中所示的第二摄像机502的布置是通常用于捕获用于vr应用程序的全向内容的示例性布置。第三摄像机503通过在球体的内径部分上安装七个摄像机镜头来捕获具有七个会聚视场的场景。第三摄像机503的布置是通常用于为光场或全息沉浸式显示器捕获光场的示例性布置。实施例不限于图5所示的配置。第二摄像机502和第三摄像机503可以包括多个摄像机镜头。
[0111]
自然图像内容509从第一摄像机501、第二摄像机502和第三摄像机503输出,并用作合成器504的输入。合成器504可以使用训练图像506的集合来采用nn训练505产生捕获nn模型508。训练图像506可以是预定义的,或者是根据先前的合成处理所存储的。nn模型(例如,捕获nn模型508)是参数和张量(例如矩阵)的集合,这些参数和张量定义了在应用于视觉信号的明确定义的数学运算中使用的权重(即数值),以获得改进的视觉输出,该改进的视觉输出可以包括原始信号未明确提供的视觉信号的新视图的插值。
[0112]
在一些实施例中,可以实施摄影测量过程以代替nn训练505。如果捕获nn模型508是在自然媒体合成过程500期间创建的,则捕获nn模型508成为自然媒体内容的摄取格式507中的资产之一。摄取格式507可以是例如mpi或msi。摄取格式507还可以包括媒体资产。
[0113]
图6示出了根据实施例的合成媒体摄取创建过程600的示例。合成媒体摄取创建过程600为诸如例如计算机生成的影像的合成媒体创建摄取媒体格式。
[0114]
如图6所示,摄像机601可以捕获场景的点云602。摄像机601可以是例如lidar摄像机。例如,计算机603采用通用网关接口(common gateway interface,cgi)工具、3d建模工具或另一个动画处理来创建合成内容(即,可以用作服务于异构客户端端点的网络的摄取格式的合成场景的表示)。计算机603可以通过网络创建cgi资产604。此外,传感器605a可以佩戴在场景中的演员605身上。传感器605a可以是例如附接有传感器的运动捕捉服。传感器605a捕获演员605的运动的数字记录以产生动画运动数据606(或mocap数据)。来自点云602、cgi资产604和运动数据606的数据被提供作为合成器607的输入,该合成器607创建合成媒体摄取格式608。在一些实施例中,合成器607可以使用nn和训练数据来创建nn模型,以生成合成媒体摄取格式608。
[0115]
自然内容和计算机生成的(即,合成的)内容都可以存储在容器中。该容器可以包括串行化格式,用于存储和交换信息以表示包括场景图和渲染场景所需的所有媒体资源的
所有自然场景、所有合成场景、或合成场景和自然场景的混合。内容的序列化过程包括将数据结构或对象状态转换成可以存储(例如,在文件或存储缓冲器中)或传输(例如,通过网络连接链路)并且随后在相同或不同的计算机环境中重建的格式。当产生的位序列是根据序列化格式重读得到的时,该位序列可以用于创建原始对象的语义相同的克隆。
[0116]
自然内容和计算机生成的(即合成的)内容两者的最佳表示的二分法表明了,自然捕获的内容的最佳摄取格式不同于计算机生成的内容的最佳摄取格式,或者也不同于对于实时分发应用程序不是必需的自然内容的最佳摄取格式。因此,根据实施例,网络的目标是足够稳固以支持视觉沉浸式媒体的多种摄取格式,无论这些摄取格式是通过使用例如物理摄像机自然创建的还是由计算机创建的。
[0117]
诸如otoy的orbx、皮克斯(pixar)的通用场景描述、以及由khronos 3d组编写的图形语言传输格式2.0(graphics language transmission format 2.0,gltf2.0)规范等技术,将场景图形体现为适合于表示使用计算机生成技术创建的视觉沉浸式媒体的格式,或者采用深度学习或摄影测量技术来创建自然场景的对应合成表示的自然捕获的内容(即,对于实时分发应用程序不是必需的)。
[0118]
otoy的orbx是几种场景图形技术之一,其能够支持任何类型的定时或不定时的视觉媒体,包括光线追随、传统的(基于帧的)、体积的和其他类型的合成的或基于矢量的视觉格式。orbx不同于其他场景图,因为orbx为网格、点云和纹理的免费和/或开源格式提供了本地支持。orbx是经过精心设计的场景图,目的是促进在场景图上操作的多个供应商技术之间的交换。此外,orbx提供了丰富的材质系统、对开放着色器语言的支持、稳固的摄像机系统以及对lua脚本的支持。orbx也是沉浸式数字体验联盟(immersive digital experiences alliance,idea)根据免版税条款发布的沉浸式技术媒体格式的基础。在媒体的实时分发的背景中,创建和分发自然场景的orbx表示的能力是计算资源的可用性的功能,该能力执行摄像机捕获的数据的复杂性分析并将相同的数据合成为合成表示。
[0119]
皮克斯的usd是广泛用于视觉效果和专业内容制作的场景图。将usd集成到nvidia的omniverse平台中,该平台是供开发人员使用nvidia的图形处理单元(graphic processing unit,gpu)创建和渲染3d模型的一套工具。由苹果(apple)和皮克斯发布的usd的一个子集被称为usdz,由苹果的arkit支持。
[0120]
gltf2.0是由khronos 3d小组编写的图形语言传输格式规范的一个版本。这种格式支持通常能够支持场景中的静态(不定时)对象的简单的场景图形格式(包括png和jpeg图像格式)。gltf2.0支持简单的动画,包括支持使用gltf图元描述的基本形状(即几何对象)的平移、旋转和缩放。gltf2.0不支持定时媒体,因此不支持视频或音频媒体输入。
[0121]
这些用于沉浸式视觉媒体的场景表示的设计仅作为示例提供,并不限制所公开的主题指定将输入沉浸式媒体源适配成适合于客户端端点设备的特定特性的格式的过程的能力。此外,任何或所有上述示例性的媒体表示采用或可以采用深度学习技术来训练和创建nn模型,该nn模型使得能够或促进基于截锥的特定尺寸选择特定视图来填充特定显示器的视锥。为特定显示器的视锥选择的视图可以从场景表示中明确提供的现有视图中进行插值,例如根据msi或mpi技术进行插值。也可以基于渲染引擎的特定虚拟摄像机位置、滤光器、或虚拟摄像机的描述直接从这些渲染引擎中渲染得到视图。
[0122]
本公开的方法和设备足够稳固以考虑存在一组相对较小但众所周知的沉浸式媒
体摄取格式,其足以满足对自然捕获(例如,用一个或多个摄像机)的媒体或使用计算机生成技术创建的媒体的实时或按需(例如,不实时)分发的要求。
[0123]
随着先进的网络技术(例如,用于移动网络的5g),进一步促进了使用神经网络模型或基于网络的渲染引擎对来自沉浸式媒体摄取格式的视图进行插值,并且部署了光纤电缆用于固定网络。这些先进的网络技术增加了商业网络的容量和能力,因为这种先进的网络基础设施可以支持日益大量的视觉信息的传输和传送。诸如多址边缘计算(multi-access edge computing,mec)、软件定义网络(software defined network,sdn)和网络功能虚拟化(network functions virtualization,nfv)的网络基础设施管理技术使得商业网络服务提供商能够灵活地配置他们的网络基础设施,以适配对某些网络资源需求的变化,例如,响应于对网络吞吐量、网络速度、往返延迟和计算资源需求的动态增加或减少。此外,这种适配动态网络需求的固有能力同样促进了网络将沉浸式媒体摄取格式适配到适合的分发格式的能力,以便支持具有用于异构客户端端点的潜在异构视觉媒体格式的各种沉浸式媒体应用程序。
[0124]
沉浸式媒体应用程序本身也可以对网络资源具有不同的要求,包括需要显著更低的网络延迟来响应于游戏状态中的实时更新的游戏应用程序、对网络的上行链路和下行链路部分都具有对称吞吐量要求的远程呈现应用程序、以及可以取决于消耗数据的客户端端点显示器的类型增加对下行链路资源需求的被动观看应用程序。一般来说,任何面向消费者的应用程序都可以由各种客户端端点来支持,这些客户端端点具有用于存储、计算和功率的各种机载客户端能力,以及同样具有对特定媒体表示的各种要求。
[0125]
因此,本公开的实施例使得充分配备的网络,即采用现代网络的一些或所有特性的网络,能够根据设备内指定的特征同时支持多个传统的和具有沉浸式媒体功能的设备。因此,本文中所描述的沉浸式媒体分发方法和过程提供了利用对于媒体分发的实时和点播用例都实用的媒体摄取格式的灵活性、支持传统客户端端点和具有沉浸式媒体能力的客户端端点的自然内容和计算机生成的内容的灵活性,以及对定时和不定时媒体的支持。该方法和过程还基于客户端端点的特征和能力,以及基于应用程序的要求,动态地将源媒体摄取格式适配到适合的分发格式。这确保了分发格式在基于ip的网络上是可流式传输的,并且使得网络能够同时服务于多个异构客户端端点,该多个异构客户端端点可以包括传统设备和具体沉浸式媒体功能的设备。此外,实施例提供了促进沿着场景边界组织分发媒体的示例性媒体表示框架。
[0126]
根据提供前述改进的本公开实施例的异构沉浸式媒体分发的端到端实施是根据图7-图16的详细描述中描述的过程和组件实现的,下面将进一步详细描述。
[0127]
上述用于表示和流式传输异构沉浸式媒体的技术可以在源和目的地两者中实现为计算机软件,该计算机软件使用计算机可读指令并且物理地存储在一个或多个非暂时性计算机可读媒体中,或者由特定配置的一个或多个硬件处理器实现。图7示出了适合于实现所公开主题的某些实施例的计算机系统700。
[0128]
可以使用任何适合的机器代码或计算机语言对计算机软件进行编码,这些机器代码或计算机语言可以经过汇编、编译、链接或类似机制来创建包括指令的代码,这些指令可以由计算机中央处理单元(computer central processing unit,cpu)、图形处理单元(gpu)等直接执行,或者通过解释、微代码执行等来执行。
[0129]
这些指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板计算机、服务器、智能手机、游戏设备、物联网设备等。
[0130]
图7中示出的用于计算机系统700的组件本质上是示例性的,并且不旨在对实现本公开的实施例的计算机软件的使用范围或功能提出任何限制。组件的配置也不应被解释为具有与计算机系统700的示例性实施例中所图示的任何一个组件或组件组合相关的任何依赖性或要求。
[0131]
计算机系统700可以包括某些人机界面输入设备。这样的人机界面输入设备可以响应一个或多个人类用户通过例如触觉输入(诸如击键、滑动、数据手套运动)、音频输入(诸如说话声、拍手)、视觉输入(诸如手势)、嗅觉输入等的输入。人机界面设备还可以用于捕获不一定与人类的有意识输入直接相关的某些媒体,诸如音频(诸如语音、音乐、环境声音)、图像(诸如扫描图像、从静止图像摄像机获得的摄影图像)、视频(诸如二维视频、包括立体视频的三维视频)。
[0132]
输入人机界面设备可以包括以下中的一个或多个(每种仅描绘了一个):键盘701、触控板702、鼠标703、屏幕709(其可以是例如触摸屏)、数据手套、操纵杆704、麦克风705、摄像机706和扫描仪707。
[0133]
计算机系统700也可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。这种人机界面输出设备可以包括触觉输出设备(例如屏幕709、数据手套或操纵杆704的触觉反馈,但是也可以存在不用作输入设备的触觉反馈设备)、音频输出设备(例如:扬声器708、耳机)、视觉输出设备(例如屏幕709,包括crt屏幕、lcd屏幕、等离子屏幕、oled屏幕,其中每个具有或不具有触摸屏输入能力,每个具有或不具有触觉反馈能力——其中一些可以能够通过诸如立体输出的装置输出二维视觉输出或多于三维输出;虚拟现实眼镜、全息显示器和烟雾罐)和打印机。
[0134]
计算机系统700还可以包括人类可访问的存储设备及其相关联的介质,诸如包括具有cd/dvd或类似介质710的cd/dvd rom/rw的光学介质711、拇指驱动器712、可移动硬盘驱动器或固态驱动器713、诸如磁带和软盘的传统磁介质、诸如安全加密狗的基于专用rom/asic/pld的设备等。
[0135]
本领域技术人员还应理解,结合本公开主题使用的术语“计算机可读介质”不包含传输介质、载波或其他瞬时信号。
[0136]
计算机系统700还可以包括到一个或多个通信网络714的接口715。网络714可以例如是无线的、有线的、光学的。网络714还可以是本地的、广域的、城域的、车辆的和工业的、实时的、延迟容忍的等等。网络714的示例包括局域网,诸如以太网、无线lan、包括gsm、3g、4g、5g、lte等的蜂窝网络、包括有线tv、卫星tv和地面广播tv的tv有线或无线广域数字网络、包括canbus的车辆和工业网络等。某些网络714通常需要外部网络接口适配器(例如,图形适配器725),其附接到某些通用数据端口或外围总线716(诸如例如计算机系统700的usb端口);其他的通常如下所述地通过附接到系统总线748集成到计算机系统700的内核中(例如,集成到pc计算机系统的以太网接口或集成到智能手机计算机系统的蜂窝网络接口)。使用这些网络714中的任何一个网络,计算机系统700可以与其他实体进行通信。这种通信可以是单向的、仅接收的(例如,广播tv)、单向仅发送的(例如,到某些canbus设备的canbus)
或双向的(例如使用本地或广域数字网络到其他计算机系统)。如上所述,某些协议和协议栈可以在这些网络和网络接口中的每个上使用。
[0137]
前述人机界面设备、人类可访问的存储设备和网络接口可以附接到计算机系统700的内核717。
[0138]
内核717可以包括一个或多个中央处理单元(cpu)718、图形处理单元(gpu)719、以现场可编程门阵列(field programmable gate area,fpga)形式的专用可编程处理单元720、用于某些任务的硬件加速器721等等。这些设备与只读存储器(rom)723、随机存取存储器(ram)724、诸如内部非用户可访问硬盘驱动器、ssd等的内部大容量存储器722可以通过系统总线748一起连接。在一些计算机系统中,系统总线748可以以一个或多个物理插头的形式被访问,以使得能够通过附加cpu、gpu等进行扩展。外围设备可以直接或者通过外围总线716而附接到内核的系统总线748。外围总线的架构包括pci、usb等。
[0139]
cpu 718、gpu 719、fpga 720和加速器721可以执行某些指令,这些指令组合起来可以构成前述机器代码(或计算机代码)。该计算机代码可以存储在rom 723或ram 724中。过渡数据也可以存储在ram 724中,而永久数据可以存储在例如内部大容量存储器722中。可以通过使用高速缓冲存储器来使得能够对任何存储器设备的快速存储和检索,该高速缓冲存储器可以与一个或多个cpu 718、gpu 719、大容量存储器722、rom 723、ram 724等紧密相关联。
[0140]
计算机可读介质上可以具有用于执行各种计算机实现的操作的计算机代码。为了本公开的目的,媒体和计算机代码可以是专门设计和构造的,或者它们可以是计算机软件技术领域的技术人员所熟知和可用的类型。
[0141]
作为示例,而不是限制,具有计算机系统700架构的计算机系统,特别是内核717可以提供作为执行体现在一个或多个有形的计算机可读介质中的软件的(一个或多个)处理器(包括cpu、gpu、fpga、加速器等)的结果的功能。这种计算机可读介质可以是与如上所介绍的用户可访问的大容量存储器、以及内核717的某些非暂时性的存储器(诸如内核内部大容量存储器722或rom 723)相关联的介质。实现本公开的各种实施例的软件可以存储在这样的设备中并由内核717执行。根据特定需要,计算机可读介质可以包括一个或多个存储器设备或芯片。软件可以使内核717和具体地使其中的处理器(包括cpu、gpu、fpga等)执行本文中描述的特定过程或特定过程的特定部分,包括根据软件定义的过程定义存储在ram 724中的数据结构并修改此类数据结构。附加地或作为替代,计算机系统可提供作为硬连线或以其他方式体现在电路(例如加速器721)中的逻辑的结果的功能,该电路可以代替软件或与软件一起操作以执行本文中描述的特定过程或特定过程的特定部分。在适当的情况下,对软件的参考可以包含逻辑,反之亦然。在适当的情况下,对计算机可读介质的参考可以包含存储用于执行的软件的电路(诸如集成电路(integrated circuit,ic))、体现用于执行的逻辑的电路或两者。本公开包含硬件和软件的任何合适的组合。
[0142]
图7中所示的组件的数量和布置被提供作为示例。在实践中,输入人机界面设备可以包括与图7中所示的那些组件相比的附加组件、更少的组件、不同的组件或不同布置的组件。附加地或可选地,输入人机界面设备的一组组件(例如,一个或多个组件)可以执行被描述为由输入人机界面设备的另一组组件执行的一个或多个功能。
[0143]
在实施例中,图1-图6和图8-图15的操作或过程中的任何一个都可以通过或使用
图7中图示的元件中的任何一个来实现。
[0144]
图8示出了服务于多个异构客户端端点的示例性网络媒体分发系统800。即,系统800支持各种传统的和异构的具有沉浸式媒体能力的显示器作为客户端端点。系统800可以包括内容获取模块801、内容准备模块802和传输模块803。
[0145]
该内容获取模块801使用例如图6和/或图5中描述的实施例来捕获或创建源媒体。该内容准备模块802创建摄取格式,然后使用该传输模块803将该摄取格式传输到网络媒体分发系统。网关804可以服务于客户驻地设备(customer premise equipment),以提供对网络的各种客户端端点的网络访问。机顶盒805也可以用作客户驻地设备,以提供对网络服务提供商所聚合的内容的访问。无线电解调器806可以用作移动设备(例如,具有所示的移动手机显示器813)的移动网络接入点。在该系统800的特定实施例中,传统2d电视807被示为直接连接到网关804,机顶盒805或wifi(路由器)808中的一个。膝上型计算机2d显示器809(即,具有传统2d显示器的计算机或膝上型计算机)被图示为连接到wifi(路由器)808的客户端端点。一种头戴式2d(基于光栅的)显示器810也连接到wifi(路由器)808。透镜状光场显示器811被示为连接到其中一个网关804。透镜状光场显示器811可包括一个或多个gpu 811a,存储设备811b、以及使用基于光线的透镜光学技术创建了多个视图的视觉呈现组件811c。全息显示器812被示为连接到机顶盒805。全息显示器812可包括一个或多个cpu 812a,一个或多个gpu 812b,存储设备812c,以及可视化组件812d。可视化组件812d可以是基于菲涅耳图案、波的全息设备/显示器。增强现实(augmented reality,ar)耳机814被示为连接到无线电解调器806。ar耳机814可以包括gpu 814a、存储设备814b、电池814c、以及体积视觉呈现组件814d。密集光场显示器815被示为连接到wifi(路由器)808。密集光场显示器815可包括一个或多个gpu 815a、一个或多个cpu 815b、存储设备815c、眼睛追寻设备815d,摄像机815e、以及基于密集光线的光场面板815f。
[0146]
图8中所示的组件的数量和布置被提供作为示例。在实践中,系统800可以包括与图8中所示的那些组件相比的附加组件、更少的组件、不同的组件或不同布置的组件。附加地或可选地,系统800的一组组件(例如,一个或多个组件)可以执行被描述为由设备或相应显示器的另一组组件执行的一个或多个功能。
[0147]
图9示出了沉浸式媒体分发过程900的示例性工作流程,该沉浸式媒体分发过程900能够如先前在图8中描绘的那样服务于传统显示器和异构的具有沉浸式媒体功能的显示器。由网络执行的沉浸式媒体分发过程900可以例如在网络适配媒体以供特定沉浸式媒体客户端端点消费(如参考图10所述的)的过程之前,提供关于以媒体摄取格式表示的特定媒体的适配信息。
[0148]
沉浸式媒体分发过程900可以分成两个部分:虚线912左侧的沉浸式媒体制作和虚线912右侧的沉浸式媒体网络分发。沉浸式媒体制作和沉浸式媒体网络分发可以由网络或客户端设备执行。
[0149]
媒体内容901分别由网络(或客户端设备)或从内容源创建或获取。用于创建或获取数据的方法可以分别对应于图5以及图6的自然内容和合成内容。然后使用网络摄取格式创建过程902将创建的内容901转变成摄取格式。网络摄取创建过程902还可以分别对应于图5以及图6的自然内容和合成内容。摄取格式也可以被更新以存储关于来自例如媒体复杂性分析器911的可能跨多个场景重用的资产的信息(稍后参考图10和图14a详细说明)。摄取
格式被传输到网络并存储在摄取媒体存储器903(即,存储设备)中。在一些实施例中,存储设备可以位于沉浸式媒体内容制作者的网络中,并且可被远程访问以进行沉浸式媒体网络分发920。客户端和应用程序专用信息可选地在远程存储设备中可用,客户端专用信息904。在一些实施例中,客户端专用信息904可以远程存在于备用云网络中,并且可以被传输到该网络。
[0150]
然后执行网络编排器(network orchestrator)905。网络编排作为执行网络主要任务的信息的主要来源和汇集。网络编排器905可以与网络的其他组件以统一的格式实现。网络编排器905可以是进一步与客户端设备采用双向消息协议以根据客户端设备的特性促进媒体的所有处理和分发的过程。此外,双向协议可以跨不同的传送信道(例如,控制平面信道和/或数据平面信道)实现。
[0151]
如图9所示,网络编排器905接收关于客户端设备908的特征和属性的信息。网络编排器905收集关于当前在客户端设备908上运行的应用程序的要求。可以从客户端专用信息904获得该信息。在一些实施例中,可以通过直接查询客户端设备908来获得信息。当直接查询客户端设备时,假设双向协议存在并可操作,使得客户端设备908可以直接与网络编排器905通信。
[0152]
网络编排器905还可以启动并且与媒体适配和分段模块910(其在图10中描述)通信。当摄取媒体被媒体适配和分段模块910适配和分段时,媒体可以被传送到媒体间存储设备,诸如准备用于分发的媒体909。如果网络被设计成包括用于在呈现的上下文中多次使用的资产的高速缓存,则用于重用的媒体资产的另一个媒体间存储设备冗余高速缓存912可以被利用来作为用于这种资产的高速缓存。当分发媒体被准备好并存储在准备用于分发的媒体909存储设备中时,则网络编排器905确保客户端设备908通过“推送(push)”请求接收分发媒体和描述性信息906,或者客户端设备908可以从准备用于分发的存储媒体909发起分发媒体和描述性信息906的“拉(pull)”请求。可以经由客户端设备908的网络接口908b“推送”或“拉”信息。经过“推送”或“拉”的分发媒体和描述性信息906可以是对应于分发媒体的描述信息。
[0153]
在一些实施例中,网络编排器905采用双向消息接口来执行“推送”请求或客户端设备908发起的“拉”请求。客户端设备908可以可选地采用gpus 908c(或cpus)。
[0154]
然后将分发媒体格式存储到包括在客户端设备908中的存储设备或存储高速缓存908d。最后,客户端设备908经由可视化组件908a可视化地呈现媒体。
[0155]
贯穿将沉浸式媒体流式传输到客户端设备908的过程,网络编排器905经由客户端进度和状态反馈信道907检测(monitor)客户端进度的状态。在一些实施例中,状态的检测可以通过双向通信消息接口来执行。
[0156]
图10示出了由例如媒体适配和分段模块910执行的媒体适配过程1000的示例。通过执行媒体适配过程1000,摄取的源媒体可以被适当地适配以匹配客户端(例如,客户端设备908)的要求。
[0157]
如图10所示,媒体适配过程1000包括促进将摄取媒体适配成用于客户端设备908的适当分发格式的多个组件。图10中示出的组件应被视为示例性的。在实践中,媒体适配过程1000可以包括与图10中所示的那些组件相比的附加组件、更少的组件、不同的组件或不同布置的组件。附加地或可选地,媒体适配过程1000的一组组件(例如,一个或多个组件)可
以执行被描述为由另一组组件执行的一个或多个功能。
[0158]
在图10中,适配模块1001接收输入的网络状态1005以追寻(track)网络上的当前流量负载。如上所述,适配模块1001还从网络编排器905接收信息。该信息可以包括客户端设备908的属性和特征描述、应用程序特征和描述、应用程序的当前状态以及客户端nn模型(如果可用的话),以协助将客户端的截锥(frustum)的几何形状映射到摄取沉浸式媒体的插值能力。这种信息可以凭借双向消息接口获得。适配模块1001确保在创建适配的输出时将其存储到用于存储客户端适配媒体的存储设备1006中。
[0159]
媒体复杂性分析器911可以是可以优先执行或作为用于分发媒体的网络自动化过程的一部分来执行的可选的过程。媒体复杂性分析器911可以将摄取的媒体格式和资产存储在存储设备(1002)中。然后可以将摄取的媒体格式和资产从存储设备(1002)传输到适配模块1001。
[0160]
适配模块1001可以由逻辑控制器1001f控制。适配模块1001也可以采用渲染器1001b或者处理器1001c来将特定摄取的源媒体适配到适合客户端的格式。处理器1001c可以是基于nn的处理器。处理器1001c使用nn模型1001a。这种处理器1001c的示例包括如mpi和msi中描述的深度视图nn模型生成器。如果媒体是2d格式,但客户端必须具有3d格式,则处理器1001c可以调用使用来自2d视频信号的高度相关的图像来导出媒体中描绘的场景的体积表示的过程。
[0161]
渲染器1001b可以是基于软件的(或基于硬件的)、基于涉及以下内容的学科的选择性混合的应用程序或过程:声学物理,光物理,视觉感知、听觉感知,数学,和软件开发,该渲染器在给定输入场景图和资产容器的情况下,发射适合于在目标设备上呈现或符合由场景图中的渲染目标节点的属性所指定的期望性能的(典型)视觉和/或音频信号。对于基于视觉的媒体资产,渲染器可以发射适合于目标显示器或作为中间资产存储的视觉信号(例如,重新打包到另一个容器中并在图形流水线中的一系列渲染过程中使用)。对于基于音频的媒体资产,渲染器可以发射音频信号,用于在多声道扬声器和/或双音频耳机中呈现,或者用于重新打包到另一个(输出)容器中。渲染器包括,例如,源和跨平台游戏引擎的实时渲染特征。渲染器可以包括脚本语言(即,解释的编程语言),该脚本语言可以由渲染器在运行时执行,以处理对场景图节点进行的动态输入和变量状态改变。动态输入和变量状态变化可能会影响对空间和时间对象拓扑(包括物理力、约束、逆运动学、变形、碰撞)以及能量传播和传输(光、声音)的渲染和评估。对空间和时间对象拓扑的评估产生导致输出从抽象结果到具体结果的结果(例如,类似于对网页的文档对象模型的评估)。
[0162]
渲染器1001b可以是例如otoy octane渲染器的修改版本,其将被修改以直接与适配模块1001交互。在一些实施例中,渲染器1001b实现渲染三维场景的计算机图形方法(例如,路径追寻),使得场景的照明忠实于现实。在一些实施例中,渲染器1001b可以采用着色器(即,最初用于着色(在图像中产生适当级别的光、暗和颜色)的一种计算机程序),但是现在该着色器在计算机图形特殊效果、与着色无关的视频后处理的各个领域中执行各种专门的功能,以及与图形无关的其他功能)。
[0163]
适配模块1001可以分别使用媒体压缩器1001d和媒体解压缩器1001e执行媒体内容的压缩和解压缩,其取决于基于摄取媒体的格式和客户端设备908所需的格式对于压缩和解压缩的需要。媒体压缩器1001d可以是媒体编码器,媒体解压缩器1001e可以是媒体解
码器。在执行压缩和解压缩(如果需要)之后,适配模块1001将最优于流式传输或分发的客户端适配媒体1006输出到客户端设备908。客户端适配媒体1006可以存储在用于存储适配媒体的存储设备中。
[0164]
图11a示出了示例性分发格式创建过程1100。如图11a所示,分发格式创建过程1100包括媒体适配模块1101和适配媒体打包模块1103,该适配媒体打包模块1103打包从媒体适配过程1000输出并存储为客户端适配媒体1006的媒体。媒体打包模块1103将适配媒体从客户端适配媒体1006格式化到稳固的分发格式1104。分发格式可以是例如在图3a或者图4a中示出的示例性格式。信息清单1104a可以向客户端设备908提供场景数据资产的列表1104b。场景数据资产的列表1104b还可以包括描述每个资产的复杂性的元数据,该每个资产跨包括呈现的一组场景使用。场景数据资产的列表1104b描绘了视觉资产、音频资产和触觉资产的列表,每个资产具有它们对应的元数据。在该示例性实施例中,场景数据资产列表1104b中的每个资产引用包含数值复杂性度量值的元数据,该数值复杂性度量值表征了客户端跨包括呈现的所有场景处理资产将花费的时间和资源的量。
[0165]
图11b描绘了具有排序后的复杂性的分布格式创建过程1110。具有排序后的复杂性的分布格式创建过程1110包括类似于图11a的组件。因此,在此参照图11b进行重复的描述。媒体打包模块11043类似于媒体打包模块1103。然而,媒体打包模块11043基于复杂性度量对场景数据资产列表11044b中的资产进行排序。例如,场景数据资产列表11044b中的视觉资产可以通过增加复杂性来排序,而场景数据资产列表1104b中的音频资产和触觉资产可以通过降低复杂性来排序,反之亦然。如图11b所示,分布格式11044中的资产首先按资产类型排序,然后按资产跨整个呈现被使用的复杂性排序,例如,按照基于资产类型(即,视觉、触觉、音频等)的递增或递减复杂性值。信息清单11044a向客户端设备908提供了其期望接收的场景数据资产列表11044b,以及指示复杂性的可选元数据,该复杂性为跨包括整个呈现的一组场景中使用所有资产的复杂性。场景数据资产的列表11044b包括视觉资产、音频资产和触觉资产的列表,每个资产具有它们对应的元数据。
[0166]
在流式传输之前,可以进一步将媒体打包。图12示出了示例性打包过程1200。该打包系统1200包括打包器1202。该打包器1202可以接收场景数据资产1104b(或11044b)的列表作为输入媒体1201(如图12所示)。在一些实施例中,客户端适配媒体1006或分发格式1104被输入到打包器1202。该打包器1202将输入媒体1201分成适合于在网络上表示和流式传输到客户端设备908的单独的数据包1203。
[0167]
图13是示出了根据实施例的组件之间的数据和通信流程的示例的顺序图。图13的顺序图是网络将摄取格式的特定沉浸式媒体适配到用于特定沉浸式媒体客户端端点的可流式且适合的分发格式。数据和通信流程可以如下所示。
[0168]
客户端设备908向网络编排器905发起媒体请求1308。在一些实施例中,可以向客户端设备的网络分发接口发出该请求。媒体请求1308包括标识客户端设备908所请求的媒体的信息。媒体请求可以通过例如统一资源名称(uniform resource name,urn)或其他标准命名法来标识。然后,响应媒体请求1308,网络编排器905向客户端设备908发送简档(profile)请求1309。简档请求1309请求客户端提供关于当前可用资源的信息(包括计算、存储、电池充电百分比以及表征客户端当前操作状态的其他信息)。简档请求1309还请求客户端提供一个或多个nn模型,如果这样的nn模型在客户端端点可用,则网络可以使用该nn
模型进行nn推断,以提取或插值正确的媒体视图来匹配客户端的呈现系统的特征。
[0169]
然后,客户端设备908发送从客户端设备908到网络编排器905的响应1310,该响应1310被提供为客户端令牌、应用程序令牌和一个或多个nn模型令牌(如果这样的nn模型令牌在客户端端点可用)。然后,网络编排器905向客户端设备提供会话id令牌1311。网络编排器905然后从摄取媒体服务器1303请求摄取媒体1312。摄取媒体服务器1303可以包括例如摄取媒体存储器903或摄取媒体格式和资产的存储设备1002。对摄取媒体的请求1312还可以包括请求1308中所标识的媒体的urn或其他标准名称。摄取媒体服务器1303用包括摄取媒体令牌的响应1313来回复摄取媒体1312请求。然后,网络编排器905在呼叫1314中将来自响应1313的媒体令牌提供给客户端设备908。然后,网络编排器905通过向适配和分段模块910提供摄取媒体令牌、客户端令牌、应用程序令牌和nn模型令牌,在请求1315中发起针对所请求媒体的适配过程。适配和分段模块910通过在请求1316向摄取媒体服务器1303提供摄取媒体令牌以请求对摄取媒体资产的访问来请求对摄取媒体的访问。
[0170]
摄取媒体服务器1303响应于请求1316,向适配和分段模块910发送包含摄取媒体访问令牌的响应1317。然后,适配和分段模块910请求媒体适配过程1000针对与在响应1313处创建和传输的会话id令牌相对应的客户端、应用程序和nn推断模型,适配位于摄取媒体访问令牌处的摄取媒体。适配和分段模块910向媒体适配过程1000发送请求1318。该请求1318包含所需的令牌和会话id。媒体适配过程1000在更新响应1319中向网络编排器905提供适配的媒体访问令牌和会话id。然后,网络编排器905在接口呼叫1320中向媒体打包模块11043提供适配的媒体访问令牌和会话id。媒体打包模块11043向网络编排器905提供响应1321,该响应1321中包含打包的媒体访问令牌和会话id。然后,媒体打包模块11043在响应1322中向打包媒体服务器1307提供用于会话id的打包资产、urn和打包媒体访问令牌以被存储。随后,客户端设备908向打包媒体服务器1307发送请求1323,以发起与在响应1321中接收的打包的媒体访问令牌相对应的媒体资产的流式传输。最后,客户端设备908执行其他请求,并在消息1324中向网络编排器905提供状态更新。
[0171]
图14a示出了图9所示的媒体复杂性分析器911的工作流程。媒体复杂性分析器911分析与包括在媒体数据中的场景的对象的唯一性相关的元数据。
[0172]
在操作1401处,可以开始初始化。在操作1402处,潜在地读取媒体资产数据。在操作1403处,确定媒体资产数据是否被成功读取。如果媒体资产数据没有被成功读取,则过程在操作1409处结束。然而,如果媒体资产数据被成功读取,则过程继续进行到操作1404。在操作1404处,执行读取或数据检索以从媒体资产数据获得复杂性属性。然后解析在操作1404处检索到的数据以访问描述媒体资产的属性。每个属性被提供作为操作1405的输入。在操作1405处,检查来自操作1404的数据以确定其是否是已先验识别的复杂性属性的列表1410中的一个。这种复杂性属性1410可以包括对象的大小,其影响处理对象所需的存储量;对象的多边形数量,其可以是gpu所需处理量的指示符;定点与浮点数值表示,其可以是gpu或cpu所需处理量的指示符;位深度,其也可以是gpu或cpu所需处理量的指示符;单浮点与双浮点数值表示,其可以是正在处理的数据值的大小的指示符;存在光分布函数,其可以指示场景需要经历一个过程来模拟场景中光线如何分布的物理过程;光分布函数的类型,其可以指示用于模拟光的物理过程的光分布函数的复杂性;所需的变换过程(如果有的话),其可以指示对象需要如何放置(经由旋转、平移和缩放)到场景中的复杂性。如果属性是复
杂性属性,则过程继续到操作1406,否则,过程移动到操作1407。在操作1406处,检索复杂性属性的(一个或多个)值,并将这样的(一个或多个)值存储到媒体资产的复杂性概要区域中。在操作1407处,可以确定是否有更多属性要从媒体资产读取。如果没有更多要读取的属性,则过程继续进行到操作1408,其将对象的复杂性概要写入到被识别用于存储包含对象的场景的复杂性数据的区域中。
[0173]
尽管本公开已经描述了几个示例性实施例,但是存在落入本公开范围内的变更、置换和各种替代等价物。因此,应当理解,本领域技术人员将能够设计许多系统和方法,尽管本文中没有明确示出或描述,但这些系统和方法体现了本公开的原理,并因此落入本公开的精神和范围内。

技术特征:
1.一种用于打包媒体以优化媒体流式传输网络中的媒体分发的方法,由至少一个处理器执行,所述方法包括:媒体流式传输服务器接收包括与一个或多个场景相关联的一个或多个沉浸式媒体资产的沉浸式媒体流;识别所述一个或多个沉浸式媒体资产的子集,所述子集包括所述一个或多个场景中的相应场景的必要元素;基于所识别的所述一个或多个沉浸式媒体资产的子集,将所述一个或多个沉浸式媒体资产按顺序进行排序,所述子集包括所述相应场景的所述必要元素;以及按排序后的顺序将所述一个或多个沉浸式媒体资产从所述媒体流式传输服务器流式传输到客户端设备。2.根据权利要求1所述的方法,其中,所述方法还包括:基于确定了一个或多个相应属性中的至少一个存在于复杂性属性列表中,确定与所述一个或多个沉浸式媒体资产相关联的相应复杂性度量和相应资产类型;以及基于与所述一个或多个沉浸式媒体资产相关联的所述相应复杂性度量和所述相应资产类型,按顺序对所述一个或多个沉浸式媒体资产进行排序。3.根据权利要求2所述的方法,其中,所述一个或多个沉浸式媒体资产的顺序是首先按所述资产类型进行排序,然后按所述相应复杂性度量进行排序。4.根据权利要求2所述的方法,其中,所述方法还包括:基于确定了所述一个或多个相应属性中的一个以上存在于所述复杂性属性列表中,所述媒体流式传输服务器生成与所述一个或多个场景相关联的资产复杂性分析。5.根据权利要求2所述的方法,其中,与所述一个或多个沉浸式媒体资产相关联的所述一个或多个相应属性包括以下至少一项:沉浸式媒体资产的大小、所述沉浸式媒体资产中的多边形的数量、位深度、以及所需的转换的类型。6.根据权利要求5所述的方法,其中,与所述一个或多个沉浸式媒体资产中的每个相关联的相应复杂性度量是基于与所述一个或多个沉浸式媒体资产中的每个相关联的所述一个或多个相应属性。7.根据权利要求5所述的方法,其中,与所述一个或多个媒体沉浸式资产中的所述沉浸式媒体资产相关联的相应复杂性度量是基于存在于所述复杂性属性列表中的所述沉浸式媒体资产的所述一个或多个相应属性。8.一种用于打包媒体以优化媒体流式传输网络中的媒体分发的媒体流式传输服务器,该设备包括:至少一个存储器,被配置为存储计算机程序代码;以及至少一个处理器,被配置为读取所述计算机程序代码并按照所述计算机程序代码的指令运行,所述计算机程序代码包括:第一接收代码,被配置为使得所述至少一个处理器:接收包括与一个或多个场景相关联的一个或多个沉浸式媒体资产的沉浸式媒体流;识别代码,被配置为使得所述至少一个处理器:识别所述一个或多个沉浸式媒体资产的子集,所述子集包括所述一个或多个场景中的相应场景的必要元素;排序代码,被配置为使得所述至少一个处理器:基于所识别的所述一个或多个沉浸式
媒体资产的子集,将所述一个或多个沉浸式媒体资产按顺序进行排序,所述子集包括所述相应场景的所述必要元素;以及流式传输代码,被配置为使得所述至少一个处理器:按排序后的顺序将所述一个或多个沉浸式媒体资产从所述媒体流式传输服务器流式传输到客户端设备。9.根据权利要求8所述的媒体流式传输服务器,其中,所述计算机程序代码还包括:确定代码,被配置为使得所述至少一个处理器:基于确定了一个或多个相应属性中的至少一个存在于复杂性属性列表中,确定与所述一个或多个沉浸式媒体资产相关联的相应复杂性度量和相应资产类型;以及其中,所述顺序是基于与所述一个或多个沉浸式媒体资产相关联的所述相应复杂性度量和所述相应资产类型进行排序的。10.根据权利要求9所述的媒体流式传输服务器,其中,所述一个或多个沉浸式媒体资产的顺序是首先按所述资产类型进行排序,然后按所述相应复杂性度量进行排序。11.根据权利要求9所述的媒体流式传输服务器,其中,所述计算机程序代码还包括:生成代码,被配置为使得所述至少一个处理器:基于确定了所述一个或多个相应属性中的一个以上存在于所述复杂性属性列表中,生成与所述一个或多个场景相关联的资产复杂性分析。12.根据权利要求9所述的媒体流式传输服务器,其中,与所述一个或多个沉浸式媒体资产相关联的所述一个或多个相应属性包括以下至少一项:沉浸式媒体资产的大小、所述沉浸式媒体资产中的多边形的数量、位深度、以及所需的转换的类型。13.根据权利要求12所述的媒体流式传输服务器,其中,与所述一个或多个沉浸式媒体资产中的每个相关联的相应复杂性度量是基于与所述一个或多个沉浸式媒体资产中的每个相关联的所述一个或多个相应属性。14.根据权利要求12所述的媒体流式传输服务器,其中,与所述一个或多个沉浸式媒体资产中的所述沉浸式媒体资产相关联的相应复杂性度量是基于存在于所述复杂性属性列表中的所述沉浸式媒体资产的所述一个或多个相应属性。15.一种非暂时性计算机可读介质,存储有指令,所述指令当由用于打包媒体以优化媒体流式传输网络中的媒体分发的媒体流式传输服务器的至少一个处理器执行时,使得所述至少一个处理器:接收包括与一个或多个场景相关联的一个或多个沉浸式媒体资产的沉浸式媒体流;识别所述一个或多个沉浸式媒体资产的子集,所述子集包括所述一个或多个场景中的相应场景的必要元素;基于所识别的所述一个或多个沉浸式媒体资产的子集,将所述一个或多个沉浸式媒体资产按顺序进行排序,所述子集包括所述相应场景的所述必要元素;以及按排序后的顺序将所述一个或多个沉浸式媒体资产从所述媒体流式传输服务器流式传输到客户端设备。16.根据权利要求15所述的非暂时性计算机可读介质,其中,所述指令还使得所述至少一个处理器:基于确定了一个或多个相应属性中的至少一个存在于复杂性属性列表中,确定与所述一个或多个沉浸式媒体资产相关联的相应复杂性度量和相应资产类型,其中,所述顺序是基于与所述一个或多个沉浸式媒体资产相关联的所述相应复杂性度
量和所述相应资产类型进行排序的。17.根据权利要求16所述的非暂时性计算机可读介质,其中,所述一个或多个沉浸式媒体资产的顺序是首先按所述资产类型进行排序,然后按所述相应复杂性度量进行排序。18.根据权利要求16所述的非暂时性计算机可读介质,其中,所述指令还使得所述至少一个处理器:基于确定了所述一个或多个相应属性中的一个以上存在于所述复杂性属性列表中,所述媒体流式传输服务器生成与所述一个或多个场景相关联的资产复杂性分析。19.根据权利要求15所述的非暂时性计算机可读介质,其中,与所述一个或多个沉浸式媒体资产相关联的所述一个或多个相应属性包括以下至少一项:沉浸式媒体资产的大小、所述沉浸式媒体资产中的多边形的数量、位深度、以及所需的转换的类型。20.根据权利要求19所述的非暂时性计算机可读介质,其中,与所述一个或多个沉浸式媒体资产中的每个相关联的相应复杂性度量是基于与所述一个或多个沉浸式媒体资产中的每个相关联的所述一个或多个相应属性。

技术总结
可以提供一种用于打包媒体以优化媒体流式传输网络中的媒体分发的方法。该方法可以包括:媒体流式传输服务器接收包括与一个或多个场景相关联的一个或多个沉浸式媒体资产的沉浸式媒体流;识别该一个或多个沉浸式媒体资产的子集,该子集包括相应场景的必要元素;基于所识别的该一个或多个沉浸式媒体资产的子集将该一个或多个沉浸式媒体资产按顺序排序,该子集包括该一个或多个场景中的相应场景的必要元素;以及按排序后的顺序将该一个或多个沉浸式媒体资产从该媒体流式传输服务器流式传输到客户端设备。可以提供一种用于打包媒体以优化媒体流式传输网络中的媒体分发的方法。该方法可以包括:媒体流式传输服务器接收包括与一个或多个场景相关联的一个或多个沉浸式媒体资产的沉浸式媒体流;识别该一个或多个沉浸式媒体资产的子集,该子集包括相应场景的必要元素;基于所识别的该一个或多个沉浸式媒体资产的子集将该一个或多个沉浸式媒体资产按顺序排序,该子集包括该一个或多个场景中的相应场景的必要元素;以及按排序后的顺序将该一个或多个沉浸式媒体资产从该媒体流式传输服务器流式传输到客户端设备。器流式传输到客户端设备。


技术研发人员:阿芮亚娜
受保护的技术使用者:腾讯美国有限责任公司
技术研发日:2022.10.25
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐