1.本公开的实施例涉及一种系统设计,以使用3d建模语法来支持媒体对象,实现媒体语法以支持各种媒体编解码器、容器和格式,通过预定义的编程接口来管理媒体存储和传递方法,并提供媒体缓冲器控制和呈现功能。
背景技术:2.图形语言传输格式(gltf,graphics language transmission format)是一种api中性的运行时资源3d建模传递格式。与传统的3d建模工具相比,gltf为3d内容的传输和加载提供了更高效、可扩展、可互操作的格式。gltf2.0是由科纳斯3d小组(khronos 3d group)编写的gltf规范的最新版本。该格式支持简单的场景图格式,其通常能够支持场景中的静态(不定时)对象,包括“png”和“jpeg”图像格式。gltf2.0支持简单的动画,包括支持使用gltf基元(primitives)描述的基本形状(即几何对象)的平移、旋转和缩放。gltf2.0不支持定时媒体,因此不支持视频和音频。
[0003]“信息技术—视听对象的编码—第12部分:iso基本媒体文件格式”,iso/iec 14496-12(2015年12月),“iso/iec 23000-19分段媒体的通用媒体应用格式的fdis草案”,iso/iec jtc1/sc29/wg11 mpeg117/16819(2017年4月),以及“iso/iec fdis 23009-1文本第4版”,iso/iec jtc 1/sc 29/wg 11n18609(2019年8月)和gltf2.0规范通过引用整体并入本文。
技术实现要素:[0004]
根据实施例,一种管理媒体存储和传递的方法由至少一个处理器实现,包括:通过媒体访问功能(maf)获取与场景对应的图形语言传输格式(gltf)文件;从所述gltf文件获取指示二进制数据blob的统一资源定位符(url)参数;确定所述二进制数据blob具有简明二进制对象表示(cbor)格式;使用由所述maf实现的cbor解析器功能将所述二进制数据blob转换为具有javascript对象表示(json)格式的对象;以及基于所述对象获取与所述场景对应的媒体内容。
[0005]
根据实施例,一种管理媒体存储和传递的设备包括:至少一个存储器,被配置为存储程序代码;以及至少一个处理器,被配置为读取所述程序代码并按照所述程序代码的指示操作,所述程序代码包括:第一获取代码,被配置为使所述至少一个处理器通过媒体访问功能(maf)获取与场景对应的图形语言传输格式(gltf)文件;第二获取代码,被配置为使所述至少一个处理器从所述gltf文件获取指示二进制数据blob的统一资源定位符(url)参数;确定代码,被配置为使所述至少一个处理器确定所述二进制数据blob具有简明二进制对象表示(cbor)格式;转换代码,被配置为使所述至少一个处理器使用由所述maf实现的cbor解析器功能将所述二进制数据blob转换为具有javascript对象表示(json)格式的对象;以及第三获取代码,被配置为使所述至少一个处理器基于所述对象获取与所述场景对应的媒体内容。
[0006]
根据实施例,一种非易失性计算机可读介质存储指令,所述指令包括一个或多个指令,所述一个或多个指令被配置为在由管理媒体存储和传递的设备的至少一个处理器执行时,使所述至少一个处理器:通过媒体访问功能(maf)获取与场景对应的图形语言传输格式(gltf)文件;从所述gltf文件获取指示二进制数据blob的统一资源定位符(url)参数;确定所述二进制数据blob具有简明二进制对象表示(cbor)格式;使用由所述maf实现的cbor解析器功能将所述二进制数据blob转换为具有javascript对象表示(json)格式的对象;以及基于所述对象获取与所述场景对应的媒体内容。
附图说明
[0007]
根据以下详细描述和附图,所公开的主题的其他特征、性质和各种优点将进一步明确,其中:
[0008]
图1是根据实施例的可以实现本文所述的方法、装置和系统的环境的示意图。
[0009]
图2是根据实施例的图1的一个或多个设备的示例组件的框图。
[0010]
图3是根据实施例的gltf场景描述对象的示意图。
[0011]
图4是根据实施例的媒体场景描述系统参考架构的示意图。
[0012]
图5是根据实施例的gltf javascript对象表示(json)格式表示的示例。
[0013]
图6是根据实施例的mpeg gltf扩展的示例。
[0014]
图7a是根据实施例的具有json格式的文件的示意图。
[0015]
图7b是根据实施例的具有cbor格式的文件的示意图。
[0016]
图8是根据实施例的gltf语法的示例的示意图。
[0017]
图9a-9c是根据实施例的用于管理媒体存储和传递的示例过程的示意图。
具体实施方式
[0018]
图1是根据实施例的可以实现本文所述的方法、装置和系统的环境100的示意图。如图1所示,环境100可以包括用户设备110、平台120和网络130。环境100的设备可以通过有线连接、无线连接或有线和无线连接的组合进行互连。
[0019]
用户设备110包括一个或多个设备,该一个或多个设备能够接收、生成、存储、处理和/或提供与平台120相关的信息。例如,用户设备110可以包括计算设备(例如,台式计算机、膝上型计算机、平板计算机、手持式计算机、智能扬声器、服务器等)、移动电话(例如,智能电话、无线电话等)、可穿戴设备(例如,智能眼镜或智能手表)或相似设备。在一些实施方式中,用户设备110可以从平台120接收信息和/或向平台120发送信息。
[0020]
平台120包括一个或多个设备,如本文中其它地方所描述的。在一些实施方式中,平台120可以包括云服务器或云服务器组。在一些实施方式中,平台120可以被设计成模块化的,使得软件组件可以根据特定需要被换入或换出。这样,可以容易地和/或快速地重新配置平台120以用于不同的用途。
[0021]
在一些实施方式中,如图所示,平台120可以被托管(hosted)在云计算环境122中。值得注意的是,虽然本文所述的实施方式将平台120描述为托管在云计算环境122中,但是在一些实施方式中,平台120可以不是基于云的(即,可以在云计算环境外部实现)或者可以是部分基于云的。
[0022]
云计算环境122包括托管平台120的环境。云计算环境122可以提供计算、软件、数据访问、存储等服务,这些服务不需要终端用户(例如,用户设备110)了解托管平台120的系统和/或设备的物理位置和配置。如图所示,云计算环境122可以包括一组计算资源124(统称为“计算资源(computing resources)124”并分别称为“计算资源(computing resource)124”)。
[0023]
计算资源124包括一个或多个个人计算机、工作站计算机、服务器设备或其它类型的计算和/或通信设备。在一些实施方式中,计算资源124可以托管平台120。云资源可以包括在计算资源124中执行的计算实例、在计算资源124中提供的存储设备、由计算资源124提供的数据传输设备等。在一些实施方式中,计算资源124可以通过有线连接、无线连接或有线和无线连接的组合与其它计算资源124通信。
[0024]
如图1进一步所示,计算资源124包括一组云资源,例如一个或多个应用程序(“app”)124-1、一个或多个虚拟机(“vm”)124-2、虚拟化存储(“vs”)124-3、一个或多个管理程序(“hyp”)124-4等。
[0025]
应用程序124-1包括一个或多个软件应用程序,其可以提供给用户设备110和/或平台120或由用户设备110和/或平台120访问。应用程序124-1可以消除在用户设备110上安装和执行软件应用程序的需要。例如,应用程序124-1可以包括与平台120相关的软件和/或能够通过云计算环境122提供的任何其它软件。在一些实施方式中,一个应用程序124-1可以通过虚拟机124-2向/从一个或多个其它应用程序124-1发送/接收信息。例如,应用程序124-1可以提供媒体流,其包括但不限于音频流、视频流、对象描述流、场景描述流等。场景描述通常是指描述场景的描述符。场景通常可以指任何2d、3d和/或沉浸式(immersive)对象及其相关联的属性、命令和/或行为。场景描述可以以场景图的形式传输,场景图是音频、视频和图形对象的分层表示。应注意,场景描述可以独立于其它类型的流进行传输,例如,音频流、视觉流、对象描述流等。
[0026]
虚拟机124-2包括机器(例如,计算机)的软件实现,该机器执行程序,类似于物理机。虚拟机124-2可以是系统虚拟机,也可以是进程虚拟机,这取决于虚拟机124-2对任何真实机的使用和对应程度。系统虚拟机可以提供完整系统平台,其支持完整操作系统(“os”)的执行。进程虚拟机可以执行单个程序,并且可以支持单个进程。在一些实施方式中,虚拟机124-2可以代表用户(例如,用户设备110)执行,并且可以管理云计算环境122的基础架构,例如数据管理、同步或长期数据传输。
[0027]
虚拟化存储124-3包括一个或多个存储系统和/或一个或多个设备,该一个或多个设备在计算资源124的存储系统或设备内使用虚拟化技术。在一些实施方式中,在存储系统的上下文内,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以指逻辑存储从物理存储的抽象(或分离),以便可以在不考虑物理存储或异构结构的情况下访问存储系统。分离可以允许存储系统的管理员灵活地管理终端用户的存储。文件虚拟化可以消除在文件级别存取的数据与物理存储文件的位置之间的依赖性。这可以优化存储使用、服务器整合和/或无中断文件迁移的性能。
[0028]
管理程序(hypervisor)124-4可以提供硬件虚拟化技术,其允许多个操作系统(例如,“客户操作系统”)在诸如计算资源124的主计算机上同时执行。管理程序124-4可以向客户操作系统提供虚拟操作平台,并且可以管理客户操作系统的执行。各种操作系统的多个
实例可以共享虚拟化硬件资源。
[0029]
网络130包括一个或多个有线和/或无线网络。例如,网络130可以包括蜂窝网络(例如,第五代(5g)网络、长期演进(lte)网络、第三代(3g)网络、码分多址(cdma)网络等)、公共陆地移动网络(plmn)、局域网(lan)、广域网(wan)、城域网(man)、电话网络(例如,公共交换电话网络(pstn))、专用网络、自组织网络、内联网、互联网、基于光纤的网络等,和/或这些或其它类型的网络的组合。
[0030]
图1所示的设备和网络的数量和排列被作为示例来提供。实际上,与图1所示的设备和/或网络相比,可以有更多的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或排列不同的设备和/或网络。此外,图1所示的两个或更多个设备可以在单个设备内实现,或者图1所示的单个设备可以实现为多个分布式设备。另外或可替代地,环境100的一组设备(例如,一个或多个设备)可以执行被描述为由环境100的另一组设备执行的一个或多个功能。
[0031]
图2是图1的一个或多个设备的示例组件的框图。设备200可以对应于用户设备110和/或平台120。如图2所示,设备200可以包括总线210、处理器220、存储器230、存储组件240、输入组件250、输出组件260和通信接口270。
[0032]
总线210包括允许设备200的组件之间进行通信的组件。处理器220以硬件、固件或硬件和软件的组合来实现。处理器220是中央处理单元(cpu)、图形处理单元(gpu)、加速处理单元(apu)、微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic)或另一类型的处理组件。在一些实施方式中,处理器220包括一个或多个能够被编程以执行功能的处理器。存储器230包括随机存取存储器(ram)、只读存储器(rom)和/或另一类型的动态或静态存储设备(例如,闪存、磁存储器和/或光存储器),其存储供处理器220使用的信息和/或指令。
[0033]
存储组件240存储与设备200的操作和使用相关的信息和/或软件。例如,存储组件240可以包括硬盘(例如,磁盘、光盘、磁光盘和/或固态盘)、光盘(cd)、数字通用盘(dvd)、软盘、盒式磁带、磁带和/或另一类型的非易失性计算机可读介质,以及相应的驱动器。
[0034]
输入组件250包括允许设备200例如通过用户输入接收信息的组件,例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风。另外或可替代地,输入组件250可以包括用于感测信息的传感器(例如,全球定位系统(gps)组件、加速计、陀螺仪和/或致动器)。输出组件260包括提供来自设备200的输出信息的组件,例如,显示器、扬声器和/或一个或多个发光二极管(led)。
[0035]
通信接口270包括类似收发器的组件(例如,收发器和/或单独的接收器和发送器),该组件使设备200能够例如通过有线连接、无线连接或有线和无线连接的组合与其它设备通信。通信接口270可以允许设备200从另一设备接收信息和/或向另一设备提供信息。例如,通信接口270可以包括以太网接口、光接口、同轴接口、红外接口、射频(rf)接口、通用串行总线(usb)接口、wi-fi接口、蜂窝网络接口等。
[0036]
设备200可以执行本文中所描述的一个或多个过程。设备200可以响应于处理器220执行由非易失性计算机可读介质(例如存储器230和/或存储组件240)存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非易失性存储器设备。存储器设备包括单个物理存储设备内的存储空间或分布在多个物理存储设备上的存储空间。
[0037]
软件指令可以通过通信接口270从另一计算机可读介质或从另一设备读入存储器230和/或存储组件240。当被执行时,存储在存储器230和/或存储组件240中的软件指令可以使处理器220执行本文中所描述的一个或多个过程。另外或可替代地,可以使用硬连线电路来代替软件指令或与软件指令结合以执行本文中所描述的一个或多个过程。因此,本文中所描述的实施方式不限于硬件电路和软件的任何特定组合。
[0038]
图2所示的组件的数量和排列被作为示例来提供。实际上,与图2所示的组件相比,设备200可能包括更多的组件、更少的组件、不同的组件或排列不同的组件。另外或可替代地,设备200的一组组件(例如,一个或多个组件)可以执行被描述为由设备200的另一组组件执行的一个或多个功能。
[0039]
参考图3,图形语言传输格式(gltf)是一种应用编程接口(api)中性的运行时资源3d建模传递格式。与传统的3d建模工具相比,gltf为3d内容的传输和加载提供了更高效、可扩展、可互操作的格式。
[0040]
gltf场景可以是多个gltf资源的组合。gltf资源可以是包含完整场景描述的json(javascript object notation)格式的文件,该完整场景描述可以包括,例如场景对象301、节点302、相机303、网格304、灯光305、动画306、存取器307、素材308、皮肤309、缓冲视图310、技术311、纹理312、缓冲器313、程序314、图像315、采样器316、着色器317以及支持的外部数据。
[0041]
gltf还支持可在任何上述场景对象中引用的外部数据源。在实施例中,二进制文件可用于动画306或其它基于缓冲器的数据313。图像文件可用于对象纹理312。
[0042]
参考图5,如上所述,gltf场景可以以json格式组织。gltf资源可以包括零个或多个场景503,其可以是要呈现的视觉对象的集合。场景可以在场景阵列中定义。在图5所示的示例中,存在具有单个节点501的单个场景506,但实施例不限于此,可以与每个节点对象相关联的各种参数。例如,名称502可以指定节点对象的名称,场景名称504可以指定单个场景的名称。
[0043]
gltf场景资源可以由呈现引擎使用,以向用户呈现3d或沉浸式场景。现有的gltf语法仅支持3d对象,包括静态或计算机生成的动画。不支持视频或音频等媒体类型,更不用说呈现这些视频/音频媒体类型。
[0044]
同时,现有的gltf不能使用地理坐标系来描述场景,在某些媒体呈现场景中,这样的特征是需要的。
[0045]
因此,需要扩展gltf以支持媒体类型,包括传统的2d平面视频、沉浸式媒体内容,例如虚拟现实(vr)、增强现实(ar)、扩展现实(xr)和空间音频。这可能需要进行扩展以支持视频/音频语法,并需要用于媒体传递和呈现的系统。
[0046]
运动图像专家组(mpeg)在gltf规范的基础上定义了一些扩展,以支持沉浸式媒体内容。参考图3,新的扩展是mpeg_media 330、mpeg_scene_dynamic 331、mpeg_texture_video 333、mepg_animation_timing 332、mpeg_audio_spatial 334、mpeg_accessor_timed 335、mpeg_buffer_circular 336。在图3中,通常,具有圆形轮廓的元素(例如元素301-317)可以是gltf元素,具有方形轮廓的元素(例如元素330-336)可以对应于gltf规范的基于mpeg的扩展,但实施例不限于此。
[0047]
如果指定mpeg_media 330作为根标识符,则可以支持mpeg媒体。参考图6,支持
mpeg媒体的语法可以声明为顶级json语法。如果支持,图6中从601到604的语法可以完全如图所示进行呈现。
[0048]
可以使用json补丁协议来表达场景更新,并且可以使用mpeg_scene_dynamic 331来支持json补丁协议。
[0049]
由mpeg_texture_video 333标识的mpeg纹理视频扩展可以提供将gltf纹理对象链接到mpeg媒体及其各自的轨迹(由mpeg_media对象列出)的可能性。mpeg纹理视频扩展还可以提供对mpeg_accessor_timed 335的参考,其中解码的定时纹理将可用。
[0050]
mpeg_audio_spatial 334扩展可以支持多种音频类型。
[0051]
为了支持定时数据访问,可以扩展缓冲器元素以提供循环缓冲功能。该扩展命名为mpeg_buffer_circular 336,并且可以作为gltf“缓冲器”对象的一部分而包括在内,例如缓冲器313。
[0052]
上述mepg扩展可以允许使用gltf创建沉浸式体验。最后,具有mpeg扩展的gltf资源可用于加载到呈现引擎中以进行可视化。
[0053]
参考图4,参考媒体场景描述架构400示出了如何使用mpeg扩展来支持诸如音频/视频的媒体类型的示例。可以使用媒体检索引擎和媒体访问功能(maf)402从诸如媒体云401的外部源检索媒体内容,可以使用视频解码器403、音频解码器404和其它数据压缩器405处理媒体内容,可以在视频缓冲器406、音频缓冲器407和其它缓冲器408中缓冲媒体内容,并且可以由呈现引擎409呈现媒体内容。在某些情况下,媒体内容可以存储在本地存储器410中。maf提供了一个框架,用于将多个mpeg标准中的元素集成到单个规范中,该规范适用于特定但广泛使用的应用。例如,maf可以指定如何以明确定义的格式将元数据与定时媒体信息结合起来,以便于媒体的交换、管理、编辑和呈现。呈现可以是系统的“本地”呈现,也可以通过网络或其它流传递机制来访问。
[0054]
参考图4,mpeg场景描述扩展可以将呈现引擎409与媒体检索引擎402分离。呈现引擎409和媒体检索引擎402可以通过预定义的编程接口进行通信,这允许呈现引擎409请求场景呈现所需的媒体数据。媒体检索引擎402可以检索所请求的媒体,并使其以可以由呈现引擎409立即处理的格式及时可用。例如,所请求的媒体资源可以被压缩并驻留在网络中,因此媒体检索引擎402将检索并解码该资源,并将得到的媒体数据传递给呈现引擎409进行呈现。媒体数据可以以缓冲器的形式从媒体检索引擎402传递到呈现引擎409。对媒体数据的请求可以通过媒体检索api从呈现引擎409传递到媒体检索引擎402。为了灵活使用视频解码资源,可以使用视频解码器403。当使用视频解码器403时,呈现引擎409可以通过应用配置api向视频解码器403提供用于输入格式化和输出格式化的信息。
[0055]
如上所述,gltf语法可以在json文件中表达。与传统的json格式相比,互联网工程任务组(ietf)简明二进制对象表示(cbor,concise binary object representation)可以表示一种简明的数据格式。cbor与名称/值对格式的json等类似数据对象相关,但以二进制和紧凑的方式表示,并且对键值类型有更多支持。cbor格式的文件的大小可以小于json格式的相应文件。在某些情况下,cbor文件可以比相应的json文件小50%以上。cbor在互联网号码分配局(iana,internet assigned numbers authority(iana))注册为“应用/cbor”。
[0056]
cbor可以用作gltf可互换压缩文件格式之一,由于其紧凑的数据大小和与json的可互换性,它也得到了广泛的支持。
(801)。根据示例2,前缀“application/cbor;”可以包括在实际二进制数据之前。示例1和2可以一起使用。在任何情况下,可以调用名为“cbor2json(object)”的函数,该函数采用cbor二进制数据,以将cbor文件格式解析为json。
[0066]
如果输入gltf是cbor格式,则输出可以是使用cbor2json()api的gltf。
[0067]
如果输入是本机gltf格式,则不需要转换。
[0068]
出于本地存储或缓存的目的,可以使用json2cbor()和save()接口将gltf文件保存为cbor。
[0069]
因此,实施例可以涉及如下方法:提供gltf文件格式与cbor的互操作性、减小本地存储或缓存的文件大小、提高数据传输速度、减少文件传输时延。
[0070]
参考图9a-9c,下面描述用于管理媒体存储和传递的过程900a、900b和900c。
[0071]
图9a是用于管理媒体存储和传递的示例过程900a的流程图。
[0072]
如图9a所示,过程900a可以包括通过媒体访问功能(maf)获取与场景对应的gltf文件(框911)。在实施例中,maf可以对应于maf 402。
[0073]
如图9a进一步所示,过程900a可以包括从gltf文件获取指示二进制数据blob的统一资源定位符(url)参数(框912)。
[0074]
如图9a进一步所示,过程900a可以包括确定二进制数据blob具有cbor格式(框913)。
[0075]
如图9a进一步所示,过程900a可以包括使用由maf实现的cbor解析器功能将二进制数据blob转换为具有json格式的对象(框914)。
[0076]
如图9a所示,过程900a可以包括基于对象获取与场景对应的媒体内容(框914)。
[0077]
在实施例中,具有json格式的对象可以大于具有cbor格式的二进制数据blob。
[0078]
在实施例中,可以基于在gltf文件中发信号通知的多用途互联网邮件扩展(mime)类型,确定二进制数据blob具有cbor格式。
[0079]
在实施例中,可以基于二进制数据blob开头包含的前缀,确定二进制数据blob具有cbor格式。
[0080]
在实施例中,可以基于在gltf文件中发信号通知的多用途互联网邮件扩展(mime)类型和二进制数据blob开头包含的前缀,确定二进制数据blob具有cbor格式。
[0081]
在实施例中,maf可以包括在运动图像专家组(mpeg)场景描述架构中。
[0082]
在实施例中,可以使用与maf相关联的应用编程接口来实现cbor解析器功能。
[0083]
图9b是用于管理媒体存储和传递的示例过程900b的流程图。在实施例中,过程900b的一个或多个框可以与过程900a的一个或多个框组合执行。例如,过程900b的一个或多个框可以在过程900a的一个或多个框之后执行。
[0084]
如图9b进一步所示,过程900b可以包括确定gltf文件具有cbor格式(框921)。
[0085]
如图9b所示,过程900b可以包括使用由maf实现的cbor解析器功能将gltf文件转换为具有json格式的转换gltf文件(框922)。在实施例中,该cbor解析器功能可以不同于框914中使用的cbor解析器功能。
[0086]
在实施例中,具有json格式的转换gltf文件可以大于具有cbor格式的gltf文件。
[0087]
图9c是用于管理媒体存储和传递的示例过程900c的流程图。在实施例中,过程900c的一个或多个框可以与过程900a和/或900b的一个或多个框组合执行。例如,过程900c
的一个或多个框可以在过程900a的一个或多个框之后或在过程900b的一个或多个框之后执行。
[0088]
如图9c所示,过程900c可以包括使用由maf实现的json解析器功能将转换gltf文件重新转换为具有cbor格式的重新转换的gltf(框931)。
[0089]
如图9c进一步所示,过程900c可以包括将重新转换的gltf文件存储在本地存储器或缓存中的至少一个中(框932)。
[0090]
虽然图9a-9c示出了过程900a、900b和900c的示例框,但是在一些实施方式中,过程900a、900b和900c可以包括比图9a-9c所描述的更多的框、更少的框、不同的框、或不同排列的框。另外或可替代地,过程900a、900b和900c的两个或更多个过程框可以并行执行。在实施例中,过程900a、900b和900c中的任何一个或多个框可以按任何顺序与过程900a、900b和900c的任何其它一个或多个框组合,并且过程900a、900b和900c中的任何一个或多个框可以根据需要拆分或组合。
[0091]
进一步地,所提出的方法可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,该一个或多个处理器执行存储在非易失性计算机可读介质中的程序,以执行所提出的方法中的一个或多个。
[0092]
前述的公开内容提供了说明和描述,但并不旨在穷举或将实施方式限制为所公开的精确形式。根据上述的公开内容,可以进行修改和变化,或者可以从实施方式的实践中获得修改和变化。
[0093]
很明显,本文中所述的系统和/或方法可以以硬件、固件或硬件和软件的组合的不同形式来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码并不限制实施方式。因此,应当理解,可以基于本文中的描述对软件和硬件进行设计以实现该系统和/或方法。
[0094]
即使特征的具体组合在权利要求中叙述和/或在说明书中公开,这些组合也不旨在限制可能的实施方式的公开。实际上,这些特征中的许多特征可以以在权利要求中没有具体叙述和/或在说明书中没有公开的方式组合。虽然下面列出的每个从属权利要求可能直接依赖于仅一个权利要求,但是可能的实施方式的公开包括权利要求集中的每个从属权利要求与每个其它权利要求的组合。
[0095]
除非明确说明,否则本文中使用的元件、动作或指令不应被解释为关键的或必需的。此外,如本文中所使用的,冠词“一个(a)”和“一个(an)”旨在包括一个或多个项,并且可以与“一个或多个(one or more)”互换使用。此外,如本文中所使用的,术语“集”旨在包括一个或多个项(例如,相关项、不相关项、相关项和不相关项的组合等),并且可以与“一个或多个(one or more)”互换使用。在仅意指一个项的情况下,使用术语“一个(one)”或类似的语言。此外,如本文中所使用的,术语“具有(has)”、“具有(have)”、“具有(having)”等旨在为开放式术语。此外,短语“基于”旨在表示“至少部分地基于”,除非另有明确说明。
技术特征:1.一种管理媒体存储和传递的方法,其特征在于,所述方法由至少一个处理器实现,包括:通过媒体访问功能maf获取与场景对应的图形语言传输格式gltf文件;从所述gltf文件获取指示二进制数据blob的统一资源定位符url参数;确定所述二进制数据blob具有简明二进制对象表示cbor格式;使用由所述maf实现的cbor解析器功能将所述二进制数据blob转换为具有javascript对象表示json格式的对象;以及基于所述对象获取与所述场景对应的媒体内容。2.根据权利要求1所述的方法,其特征在于,具有所述json格式的所述对象大于具有所述cbor格式的所述二进制数据blob。3.根据权利要求1所述的方法,其特征在于,基于在所述gltf文件中发信号通知的多用途互联网邮件扩展mime类型,确定所述二进制数据blob具有所述cbor格式。4.根据权利要求1所述的方法,其特征在于,基于所述二进制数据blob开头包含的前缀,确定所述二进制数据blob具有所述cbor格式。5.根据权利要求1所述的方法,其特征在于,基于在所述gltf文件中发信号通知的多用途互联网邮件扩展mime类型和所述二进制数据blob开头包含的前缀,确定所述二进制数据blob具有所述cbor格式。6.根据权利要求1所述的方法,其特征在于,所述maf包括在运动图像专家组mpeg场景描述架构中。7.根据权利要求1所述的方法,其特征在于,使用与所述maf相关联的应用编程接口来实现所述cbor解析器功能。8.一种管理媒体存储和传递的设备,其特征在于,所述设备包括:至少一个存储器,被配置为存储程序代码;以及至少一个处理器,被配置为读取所述程序代码并按照所述程序代码的指示操作,所述程序代码包括:第一获取代码,被配置为使所述至少一个处理器通过媒体访问功能maf获取与场景对应的图形语言传输格式gltf文件;第二获取代码,被配置为使所述至少一个处理器从所述gltf文件获取指示二进制数据blob的统一资源定位符url参数;确定代码,被配置为使所述至少一个处理器确定所述二进制数据blob具有简明二进制对象表示cbor格式;转换代码,被配置为使所述至少一个处理器使用由所述maf实现的cbor解析器功能将所述二进制数据blob转换为具有javascript对象表示json格式的对象;以及第三获取代码,被配置为使所述至少一个处理器基于所述对象获取与所述场景对应的媒体内容。9.根据权利要求8所述的设备,其特征在于,具有所述json格式的所述对象大于具有所述cbor格式的所述二进制数据blob。10.根据权利要求8所述的设备,其特征在于,基于在所述gltf文件中发信号通知的多用途互联网邮件扩展mime类型,确定所述二进制数据blob具有所述cbor格式。
11.根据权利要求8所述的设备,其特征在于,基于所述二进制数据blob开头包含的前缀,确定所述二进制数据blob具有所述cbor格式。12.根据权利要求8所述的设备,其特征在于,基于在所述gltf文件中发信号通知的多用途互联网邮件扩展mime类型和所述二进制数据blob开头包含的前缀,确定所述二进制数据blob具有所述cbor格式。13.根据权利要求8所述的设备,其特征在于,所述maf包括在运动图像专家组mpeg场景描述架构中。14.根据权利要求8所述的设备,其特征在于,使用与所述maf相关联的应用编程接口来实现所述cbor解析器功能。15.一种非易失性计算机可读介质,其特征在于,用于存储指令,所述指令包括:一个或多个指令,所述一个或多个指令被配置为在由管理媒体存储和传递的设备的至少一个处理器执行时,使所述至少一个处理器:通过媒体访问功能(maf)获取与场景对应的图形语言传输格式(gltf)文件;从所述gltf文件获取指示二进制数据blob的统一资源定位符(url)参数;确定所述二进制数据blob具有简明二进制对象表示(cbor)格式;使用由所述maf实现的cbor解析器功能将所述二进制数据blob转换为具有javascript对象表示(json)格式的对象;以及基于所述对象获取与所述场景对应的媒体内容。16.根据权利要求15所述的非易失性计算机可读介质,其特征在于,具有所述json格式的所述对象大于具有所述cbor格式的所述二进制数据blob。17.根据权利要求15所述的非易失性计算机可读介质,其特征在于,基于在所述gltf文件中发信号通知的多用途互联网邮件扩展(mime)类型,确定所述二进制数据blob具有所述cbor格式。18.根据权利要求15所述的非易失性计算机可读介质,其特征在于,基于所述二进制数据blob开头包含的前缀,确定所述二进制数据blob具有所述cbor格式。19.根据权利要求15所述的非易失性计算机可读介质,其特征在于,所述maf包括在运动图像专家组(mpeg)场景描述架构中。20.根据权利要求15所述的非易失性计算机可读介质,其特征在于,使用与所述maf相关联的应用编程接口来实现所述cbor解析器功能。
技术总结管理媒体存储和传递的系统、方法和设备,包括:通过媒体访问功能(MAF)获取与场景对应的图形语言传输格式(glTF)文件;从所述glTF文件获取指示二进制数据blob的统一资源定位符(URL)参数;确定所述二进制数据blob具有简明二进制对象表示(CBOR)格式;使用由所述MAF实现的CBOR解析器功能将所述二进制数据blob转换为具有JavaScript对象表示(JSON)格式的对象;以及基于所述对象获取与所述场景对应的媒体内容。体内容。体内容。
技术研发人员:赵帅 史蒂芬
受保护的技术使用者:腾讯美国有限责任公司
技术研发日:2021.10.13
技术公布日:2022/11/1