优化封装后的媒体内容的一部分的传输的方法、装置和计算机程序

文档序号:144895 发布日期:2021-10-22 浏览:34次 >En<

阅读说明:本技术 优化封装后的媒体内容的一部分的传输的方法、装置和计算机程序 (Method, apparatus and computer program for optimizing transmission of a portion of packaged media content ) 是由 弗兰克·德诺奥 弗雷德里克·梅兹 内尔·奥德拉奥果 于 2020-03-02 设计创作,主要内容包括:根据实施例,本发明提供一种用于接收由服务器提供的封装后的媒体数据的方法,所述封装后的媒体数据包括元数据和与所述元数据相关联的数据,所述元数据描述关联的数据,所述方法由客户端执行并且包括:从所述服务器获得与实际数据相关联的元数据;以及响应于获得所述元数据,请求与所获得的元数据相关联的实际数据的一部分,其中,所述实际数据是独立于与所述实际数据相关联的所有元数据而请求的。(According to an embodiment, the present invention provides a method for receiving packaged media data provided by a server, the packaged media data comprising metadata and data associated with the metadata, the metadata describing the associated data, the method being performed by a client and comprising: obtaining metadata associated with actual data from the server; and in response to obtaining the metadata, requesting a portion of actual data associated with the obtained metadata, wherein the actual data is requested independently of all metadata associated with the actual data.)

优化封装后的媒体内容的一部分的传输的方法、装置和计算 机程序

技术领域

本发明涉及用于改进媒体数据的封装和解析的方法、装置和计算机程序,从而使得可以优化封装后的媒体内容的一部分的传输。

背景技术

本发明涉及例如根据如MPEG标准化组织所定义的ISO基媒体文件格式来对媒体内容进行封装、解析和流传输,以提供便于媒体内容组的交换、管理、编辑和呈现的灵活且可扩展的格式,并改善该媒体内容例如通过诸如使用自适应http流传输协议的因特网等的IP网络的传递。

国际标准化组织基媒体文件格式(ISO BMFF,ISO/IEC 14496-12)是描述供本地存储或者供经由网络或经由另一位流传递机制进行传输的编码定时媒体数据位流的众所周知的灵活且可扩展的格式。该格式具有数个扩展,例如,ISO/IEC 14496-15第15部分,其描述各种基于NAL(网络抽象层)单元的视频编码格式所用的封装工具。这样的编码格式的示例是AVC(高级视频编码)、SVC(可分级视频编码)、HEVC(高效率视频编码)或L-HEVC(分层HEVC)。该文件格式是面向对象的。该文件格式包括被称为框(box)(或数据结构,其各自由四字符代码标识)的构建块,其中这些框是顺次或层级组织的,并且定义了编码定时媒体数据位流的诸如定时参数和结构参数等的描述性参数。在该文件格式中,随时间的经过的整个呈现被称为动画(movie)。动画由在媒体或呈现文件的顶层的动画框(具有四字符代码“moov”)描述。该动画框表示包含描述呈现的各种框的集合的初始化信息容器。该动画框在逻辑上可被划分成由轨框(具有四字符代码“trak”)表示的轨。(由轨标识符(track_ID)唯一地标识的)各轨表示属于呈现的媒体数据(例如,视频的帧)的定时序列。在各轨内,数据的各定时单元被称为样本;这可以是视频、音频或定时元数据的帧。样本按顺序隐含地编号。实际样本数据在与动画框相同级别处的被称为媒体数据框(具有四字符代码“mdat”)的框中。动画也可被片段化,即可被时间上组织为包含整个呈现的信息的动画框、之后是动画片段和媒体数据框对的列表。在动画片段(具有四字符代码“moof”的框)内,存在轨片段(具有四字符代码“traf”的框)的集合(针对各动画片段存在零个或多个轨片段)。而轨片段包含零个或多个轨运行框(“trun”),各轨运行框记录该轨片段的样本的连续运行。

用ISOBMFF封装的媒体数据可用于利用HTTP的自适应流媒体。例如,MPEG DASH(“经由HTTP的动态自适应流传输”的缩写)和平滑流传输是使媒体文件的基于条带或片段的传递成为可能的HTTP自适应流传输协议。MPEG DASH标准(参见“ISO/IEC 23009-1,经由HTTP的动态自适应流媒体(DASH),第1部分:媒体呈现描述和分段格式”)使得可以在媒体呈现的(一个或多个)内容的紧凑描述和HTTP地址之间建立链接。通常,该关联在被称为清单文件或描述文件的文件中描述。在DASH的上下文中,该清单文件是也称为MPD(媒体呈现描述的缩写)文件的文件。当客户端装置获得MPD文件时,客户端可以容易地确定媒体内容的各编码且可交付版本的描述。通过读取或解析清单文件,客户端获知在媒体呈现中提出的媒体内容成分的种类,并且知晓用于下载关联的媒体内容成分的HTTP地址。因此,客户端可以决定(经由HTTP请求)下载和播放(即,在接收到媒体数据分段之后解码并播放)哪些媒体内容成分。DASH定义数个类型的分段,主要是初始化分段、媒体分段或索引分段。初始化分段包含描述媒体内容的设置信息和元数据,通常至少是ISOBMFF媒体文件的“ftyp”和“moov”框。媒体分段包含媒体数据。媒体分段例如可以是ISOBMFF文件的一个或多个“moof”+“mdat”框或ISOBMFF文件的“mdat”框中的字节范围。媒体分段可被进一步细分为(也与一个或多个完整的“moof”+“mdat”框相对应的)子分段。DASH清单可以将向具有字节范围的文件的分段URL或基URL提供给分段以供流传输客户端通过HTTP请求寻址这些分段。字节范围信息可以由索引分段、或者由诸如分段索引框“sidx”或子分段索引框“ssix”等的特定ISOBMFF框提供。

图1示出从服务器向客户端流传输媒体数据的示例。

如图所示,服务器100包括经由网络接口(未示出)连接到通信网络110的封装模块105,该通信网络110也经由网络接口(未示出)连接到客户端120的解封装模块115。

服务器100处理数据(例如,视频和/或音频数据),以供流传输或以供存储。为此,服务器100获得或接收包括例如原始图像序列125的数据,使用未示出的媒体编码器(例如,视频编码器)将该图像序列编码为媒体数据(即,位流),并使用封装模块105将该媒体数据封装在一个或多个媒体文件或媒体分段130中。封装模块105包括写入器和打包器至少之一以封装媒体数据。媒体编码器可以在封装模块105内实现以对所接收到的数据进行编码,或者可以与封装模块105分开。

客户端120用于处理从通信网络110接收到的数据,例如用于处理媒体文件130。在所接收到的数据已在解封装模块115(也称为解析器)中解封装之后,对与媒体数据位流相对应的解封装数据(或解析数据)进行解码,从而形成例如可被存储、显示或输出的音频和/或视频数据。媒体解码器可以在解封装模块115内实现,或者可以与解封装模块115分开。媒体解码器可被配置为并行地解码一个或多个视频位流。

注意,可以以不同的方式将媒体文件130通信到解封装模块115。特别地,封装模块105可以生成具有媒体描述(例如,DASH MPD)的媒体文件130,并在接收到来自客户端120的请求时将媒体文件130直接通信(或流传输)到解封装模块115。

为了说明起见,媒体文件130可以根据ISO基媒体文件格式(ISOBMFF、ISO/IEC14496-12和ISO/IEC 14496-15标准)将媒体数据(例如,编码音频或视频)封装到框中。在这种情况下,媒体文件130可以对应于如图2a所示的一个或多个媒体文件(由文件类型框“ftyp”表示)、或者如图2b所示的一个或多个分段文件(由分段类型框“styp”表示)。根据ISOBMFF,媒体文件130可以包括两个种类的框:“媒体数据框”,其标识为“mdat”,包含媒体数据;以及“元数据框”(例如,“moof”),其包含定义媒体数据的放置和定时的元数据。

图2a示出媒体文件中的数据封装的示例。如图所示,媒体文件200包含提供在初始化步骤期间由客户端使用的元数据的“moov”框205。为了说明起见,“moov”框中所包含的信息项可以包括文件中存在的轨的数量以及文件中包含的样本的描述。根据例示示例,媒体文件还包括分段索引框“sidx”210、以及各自由元数据部分和数据部分组成的诸如片段215和220等的数个片段。例如,片段215包括由“moof”框225表示的元数据和由“mdat”框230表示的数据部分。分段索引框“sidx”包括索引,从而使得可以直接到达与特定片段相关联的数据。分段索引框“sidx”特别地包括动画片段的持续时间和大小。

图2b示出作为媒体分段或作为分段的数据封装的示例,观察到媒体分段适合于实时流传输。如图所示,媒体分段250以“styp”框开始。注意,为了使用如分段250那样的分段,初始化分段必须可用,其中“moov”框指示动画片段(“mvex”)的存在,该初始化分段包括动画片段或不包括动画片段。根据图2b所示的示例,媒体分段250包含一个分段索引框“sidx”255以及诸如片段260和265等的数个片段。“sidx”框255通常提供该分段中存在的动画片段的持续时间和大小。再次地,各片段由元数据部分和数据部分组成。例如,片段260包括由“moof”框270表示的元数据和由“mdat”框275表示的数据部分。

图3示出如由ISO/IEC 14496-12以简单模式定义的在图2a和2b中表示的分段索引框“sidx”,其中索引为封装在相应文件或分段中的各片段提供持续时间和大小。当表示为305的reference_type字段设置为0时,由“sidx”框300描述的简单索引涉及对分段中所包含的片段的循环。索引中的各条目(例如,表示为320和325的条目)提供动画片段的以字节为单位的大小和持续时间、以及与分段中可能存在的随机访问点的存在和位置有关的信息。例如,索引中的条目320提供动画片段330的大小310和持续时间315。

图4示出如利用DASH进行的在服务器和客户端之间的用以获得媒体数据的请求和响应。为了说明起见,假定以ISOBMFF封装数据,并且在DASH媒体呈现描述(MPD)中可用媒体成分的描述。

如图所示,第一请求和响应(步骤400和405)旨在向客户端提供流传输清单,也就是说媒体呈现描述。根据该清单,客户端可以确定设置和初始化其(一个或多个)解码器所需的初始化分段。然后,客户端通过HTTP请求来请求根据所选择的媒体成分而标识的初始化分段中的一个或多个(步骤410)。服务器用元数据(通常是在ISOBMFF“moov”框及其子框中提供的元数据)进行回复(步骤415)。客户端进行设置(步骤420),并且可以从服务器请求索引信息(步骤425)。例如在编有索引的媒体分段在使用中的DASH配置文件(例如,实时配置文件)中是这种情况。为了实现这一点,客户端可以依赖于MPD中的提供索引信息的字节范围的指示(例如,indexRange(索引范围))。当根据ISOBMFF封装媒体数据时,分段索引信息可对应于SegmentIndex(分段索引)框“sidx”。在根据MPEG-2TS封装媒体数据所依据的情况中,MPD中的指示可以是参考索引分段的特定URL。

然后,客户端从服务器接收所请求的分段索引(步骤430)。根据该索引,客户端可以计算字节范围(步骤435)以请求给定时间(例如,与给定时间范围相对应)或给定位置(例如,与随机访问点或客户端正在寻找的点相对应)的动画片段。客户端可以发出一个或多个请求以获得MPD中的所选择的媒体成分的一个或多个动画片段(步骤440)。服务器通过发送包括“moof”和“mdat”框的一个或多个集合来回复所请求的动画片段(步骤445)。观察到,例如当媒体分段被描述为分段模板并且没有索引信息可用时,可以在不请求索引的情况下直接进行对动画片段的请求。

在接收到动画片段时,客户端解码并绘制相应的媒体数据,并准备下一时间间隔的请求(步骤450)。这可能涉及获得新索引,甚至有时涉及获得MPD更新,或者仅仅是请求如在MPD中指示的下一媒体分段(例如在SegmentList(分段列表)或SegmentTemplate(分段模板)描述之后)。

尽管这些文件格式和用于传输媒体数据的这些方法已被证明是有效的,但持续需要在减少所请求的带宽并利用客户端装置的不断增加的处理能力的情况下改进要发送到客户端的数据的选择。

设计了本发明以解决上述问题中的一个或多个。

发明内容

根据本发明的第一方面,提供一种用于接收由服务器提供的封装后的媒体数据的方法,所述封装后的媒体数据包括元数据和与所述元数据相关联的数据,所述元数据描述关联的数据,所述方法由客户端执行并且包括:从所述服务器获得与数据相关联的元数据;以及响应于获得所述元数据,请求与所获得的元数据相关联的数据的一部分,其中,所述数据是独立于与所述数据相关联的所有元数据而请求的。

因此,本发明的方法使得可以从客户端的角度例如从网络带宽和客户端处理能力方面更适当地选择要从服务器发送到客户端的数据,以使数据流传输适应客户端的需求。这通过提供可由客户端在请求媒体数据之前获得的低级别索引信息项来实现。

根据实施例,所述方法还包括:接收与所获得的元数据相关联的数据的所请求的部分,所述数据是独立于与所述数据相关联的所有元数据而接收的。

根据实施例,所述元数据和所述数据是采用分段组织的,所述封装后的媒体数据包括多个分段。

根据实施例,至少一个分段包括元数据、以及给定时间范围的与所述至少一个分段的元数据相关联的数据。

根据实施例,所述方法还包括:获得索引信息,与数据相关联的所获得的元数据是根据所获得的索引信息而获得的。

根据实施例,所述索引信息包括至少一个索引对,索引对使得所述客户端能够单独定位与数据相关联的元数据以及相应的数据。

根据实施例,所述索引信息还包括用以定位相应数据的第一项的数据参考。

根据实施例,所述索引信息还包括多个数据参考,所述数据参考中的各数据参考使得能够定位相应数据的一部分的第一项。

根据实施例,数据参考是数据参考偏移或使得能够标识媒体文件的信息项。

根据实施例,所述索引对中的索引与元数据、数据、以及包括元数据和数据这两者的数据中的不同类型的数据相关联。

根据实施例,所述数据是采用数据部分组织的,至少一个数据部分包括被组织为数据组的数据,所述索引对使得所述客户端能够单独地定位与所述至少一个数据部分的数据相关联的元数据以及相应数据,并且所述索引对使得所述客户端能够单独请求所述至少一个数据部分的数据组的数据。

根据实施例,所获得的索引信息包括至少一个指针集,所述指针集中的指针指向所述元数据,所述指针集中的指针指向相应数据的至少一个块,并且所述指针集中的指针指向与所获得的索引信息不同的索引信息项。

根据实施例,所获得的索引信息还包括类型信息的项,所述类型信息的项描述由所述至少一个指针集的指针指向的数据的性质。

根据实施例,所述方法还包括:获得所述封装后的媒体数据的描述信息,所述描述信息包括用于定位与数据相关联的元数据的定位信息,所述元数据和所述数据是独立地定位的。

根据实施例,所述多个分段中的至少一个分段仅包括与数据相关联的元数据。

根据实施例,所述多个分段中的至少一个分段仅包括数据,仅包括数据的至少一个分段对应于仅包括与数据相关联的元数据的至少一个分段。

根据实施例,所述多个分段中的数个分段仅包括数据,仅包括数据的数个分段对应于仅包括与数据相关联的元数据的至少一个分段。

根据实施例,所述方法还包括:接收描述文件,所述描述文件包括所述封装后的媒体数据的描述和用以访问所述封装后的媒体数据的数据的多个链接,所述描述文件还包括能够独立于与数据相关联的所有元数据来接收数据的指示。

根据实施例,所接收到的描述文件还包括用于使得所述客户端能够请求所述多个分段中的仅包括与数据相关联的元数据的至少一个分段的链接。

根据实施例,所述封装后的媒体数据的格式是ISOBMFF类型,其中描述关联的数据的元数据属于“moof”框,并且与元数据相关联的数据属于“mdat”框。

根据实施例,所述索引信息属于“sidx”框。

根据本发明的第二方面,提供一种用于处理所接收到的由服务器提供的封装后的媒体数据的方法,所述封装后的媒体数据包括元数据和与所述元数据相关联的数据,所述元数据描述关联的数据,所述方法由客户端执行并且包括:根据以上所述的方法来接收所述封装后的媒体数据;对所接收到的封装后的媒体数据进行解封装;以及处理解封装后的媒体数据。

因此,本发明的方法使得可以从客户端的角度例如从网络带宽和客户端处理能力方面更适当地选择要从服务器发送到客户端的数据,以使数据流传输适应客户端的需求。这通过提供可由客户端在请求媒体数据之前获得的低级别索引信息项来实现。

根据本发明的第三方面,提供一种用于传输封装后的媒体数据的方法,所述封装后的媒体数据包括元数据和与所述元数据相关联的数据,所述元数据描述关联的数据,所述方法由服务器执行并且包括:向客户端传输与数据相关联的元数据;以及响应于从所述客户端接收到的用于接收与所传输的元数据相关联的数据的一部分的请求,对与所传输的元数据相关联的数据的所述部分进行传输,其中,所述数据是独立于与所述数据相关联的所有元数据而传输的。

因此,本发明的方法使得可以从客户端的角度例如从网络带宽和客户端处理能力方面更适当地选择要从服务器发送到客户端的数据,以使数据流传输适应客户端的需求。这通过提供可由客户端在请求媒体数据之前获得的低级别索引信息项来实现。

根据本发明的第四方面,提供一种用于对媒体数据进行封装的方法,封装后的媒体数据包括元数据和与所述元数据相关联的数据,所述元数据描述关联的数据,所述方法由服务器执行并且包括:确定元数据指示;以及根据所确定的元数据指示来对所述元数据和与所述元数据相关联的数据进行封装,使得数据能够独立于与所述数据相关联的所有元数据来传输。

因此,本发明的方法使得可以从客户端的角度例如从网络带宽和客户端处理能力方面更适当地选择要从服务器发送到客户端的数据,以使数据流传输适应客户端的需求。这通过提供可由客户端在请求媒体数据之前获得的低级别索引信息项来实现。

根据实施例,所述元数据指示包括索引信息,所述索引信息包括至少一个索引对,索引对使得客户端能够单独地定位与数据相关联的元数据以及相应数据。

根据实施例,所述元数据指示包括描述信息,所述描述信息包括用于定位与数据相关联的元数据的定位信息,所述元数据和所述数据是独立地定位的。

根据本发明的方法的至少一部分可以通过计算机来实现。因此,本发明可以采用完全硬件实施例、(包括固件、常驻软件、微代码等的)完全软件实施例、或者组合这里通常可全部称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明可以采用以介质中嵌入有计算机可用程序代码的表现的任何有形介质中体现的计算机程序产品的形式。

由于本发明可以以软件来实现,因此本发明可以体现为计算机可读代码以提供至可编程设备的任何适当载体介质上。有形的载体介质可以包括诸如软盘、CD-ROM、硬盘驱动器、磁带装置或固态存储器装置等的存储介质。瞬态载体介质可以包括诸如电气信号、电子信号、光学信号、声学信号、磁信号或者例如微波或RF信号的电磁信号等的信号。

附图说明

现在将仅通过示例的方式并且参考以下附图来说明本发明的实施例,其中:

图1示出从服务器向客户端流传输媒体数据的示例;

图2a示出媒体文件中的数据封装的示例;

图2b示出作为媒体分段或作为分段的数据封装的示例;

图3示出如由ISO/IEC 14496-12以简单模式定义的在图2a和2b中表示的分段索引框“sidx”,其中索引为封装在相应文件或分段中的各片段提供持续时间和大小;

图4示出如利用DASH进行的在服务器和客户端之间的用以获得媒体数据的请求和响应;

图5示出根据本发明实施例的旨在组合数个视频以获得更大视频的应用的示例;

图6示出根据本发明实施例的在服务器和客户端之间的用以获得媒体数据的请求和响应;

图7是示出根据本发明实施例的由服务器为了向客户端传输数据所执行的步骤的示例的框图;

图8是示出根据本发明实施例的由客户端为了从服务器获得数据所执行的步骤的示例的框图;

图9a示出根据本发明实施例的扩展分段索引框“sidx”的第一示例;

图9b示出根据本发明实施例的扩展分段索引框“sidx”的第二示例;

图10a示出根据本发明实施例的空间分段索引框“spix”的示例;

图10b示出根据本发明实施例的分段索引框“sidx”和空间分段索引框“spix”的组合的示例;

图11a示出根据本发明实施例的扩展分段索引框“sidx”的示例,从而使得能够访问不是交错存在的元数据和数据;

图11b示出根据本发明实施例的扩展分段索引框“sidx”的示例,从而使得能够访问元数据和不是交错存在的数据部分;

图12a和图12b是封装有给定分段、片段或子分段的元数据和数据的媒体文件的示例,这些媒体文件各自被分割成自身的(一个或多个)封装媒体文件,其中数据部分分别是连续的和不连续的;

图13a和图13b示出在分段索引框“sidx”中使用菊花链索引以提供元数据和数据这两者的字节范围的两个示例;

图14示出当元数据和实际数据被分割成不同分段时的根据本发明实施例的在服务器和客户端之间的用以获得媒体数据的请求和响应;

图15a是示出根据本发明实施例的由服务器为了向客户端传输数据所执行的步骤的示例的框图;

图15b是示出根据本发明实施例的由客户端为了从服务器获得数据所执行的步骤的示例的框图;

图16示出当考虑例如以不同质量或分辨率的区块化视频和区块轨时分解为“仅元数据”分段和“仅数据”(或“仅媒体数据”)分段的示例;

图17示出针对各分辨率级别将媒体成分分解为一个仅元数据分段和一个仅数据分段的示例;

图18a、图18b和图18c示出仅元数据分段的示例;

图18d和图18e示出“仅媒体数据”或“仅数据”分段的示例;

图19示出MPD的示例,其中Representation(表现)允许两步寻址;

图20示出MPD的示例,其中Representation被描述为提供两步寻址,但也被描述为通过为整个分段提供单个URL来提供向后兼容性;以及

图21示意性示出被配置为实现本发明的至少一个实施例的处理装置。

具体实施方式

根据实施例,本发明使得可以利用区块化视频来进行经由HTTP的自适应流传输,从而向客户端提供考虑到客户端上下文(例如,从可用带宽和客户端处理能力方面)选择和组成视频的空间部分(或区块)以获得和绘制视频的可能性。这是通过向客户端提供(例如,通过对元数据和实际数据使用不同的索引、或者通过使用不同的分段来封装元数据和实际数据)以独立于关联的实际数据(或有效载荷)的方式访问所选择的元数据的可能性来获得的。

为了说明起见,本文描述的许多实施例是基于HEVC标准或其扩展。然而,本发明的实施例还适用于诸如AVC等的已可用的其它编码标准、或者诸如在规范下的MPEG通用视频编码(VVC)等的尚未可用或开发的其它编码标准。在特定实施例中,视频编码器支持区块,并且可以控制编码以生成独立可解码的区块、区块集或区块组(有时也称为运动约束区块集)。

图5示出根据本发明实施例的旨在组合数个视频以获得更大的视频的应用的示例。为了说明起见,假定被表示为500~515的四个视频可用,并且这些视频中的各视频被区块化,分解成空间区域(在给定示例中为四个)。自然地,应当理解,从一个视频到另一视频,分解可能不同(更多或更少的区块、不同的区块网格等)。

根据使用情况,视频500~515可以表示相同的内容(例如,相同场景但具有不同的质量或分辨率的记录)。例如对于如以非常宽的角度(例如,120°或更大角度)记录一个或多个360°视频那样的沉浸式视频的视口相关流传输,将是这种情况。对于这样的使用情况,从视频500~515的一部分的组合产生的视频520通常涉及以空间区域为单位混合质量或分辨率,使得当前用户的视点具有最佳质量。

在其它使用情况中,例如对于视频拼接或视频复合,四个视频500~515可对应于不同的视频内容。例如,视频500和505可对应于相同的内容但具有不同的质量或分辨率,并且视频510和515可对应于也具有不同的质量或分辨率的另一内容。这提供了不同的组合,然后适应于所组成的视频520。该适应是重要的,因为数据可以在带宽和/或延迟可以随时间的经过而变化的不受管理的网络上传输。因此,生成粒度媒介使得可以使如此得到的视频适应网络条件的变化,并且也适应客户端能力(观察到内容数据通常针对许多潜在不同的客户端(诸如PC、TV、平板电脑、智能电话、HMD、具有小屏幕的可穿戴装置等)生成一次)。

媒体解码器可以将不同级别的区块处理、组合或组成为单个位流。当所组成的位流中的区块位置不同于其原始位置时,媒体解码器可以重写该位流的一部分。为此,媒体解码器可以依赖于提供描述原始位置的头部信息的特定视频数据。例如,当区块被编码为HEVC区块轨时,提供条带长度的特定NAL单元可用于获得与区块的原始位置有关的信息。

将不同的索引用于访问元数据并用于封装在同一分段中的实际数据

使用如通过参考图1所描述的封装模块那样的、经略微修改以处理与元数据有关的索引和与实际数据有关的索引的封装模块将视频的空间部分封装到一个或多个媒体文件或媒体分段中。媒体资源的描述(例如,流传输清单)也是媒体文件的一部分。如以下所述,客户端依赖于媒体文件中所包括的媒体资源的描述,以使用与元数据有关的索引和与实际数据有关的索引来选择要传输的数据。

图6示出根据本发明实施例的在服务器和客户端之间的用以获得媒体数据的请求和响应。

为了说明起见,假定数据以ISOBMFF封装,并且媒体成分的描述在DASH媒体呈现描述(MPD)中可用。

如图所示,第一请求和响应(步骤600和605)旨在向客户端提供流传输清单(即,媒体呈现描述)。客户端根据该清单可以确定设置和初始化其(一个或多个)解码器所需的初始化分段。然后,客户端通过HTTP请求来请求根据所选择的媒体成分标识的初始化分段中的一个或多个(步骤610)。服务器用元数据(通常是在ISOBMFF“moov”框及其子框中提供的元数据)回复(步骤615)。客户端进行设置(步骤620)并且可以向服务器请求索引信息(步骤625)。例如在编有索引的媒体分段在使用中的DASH配置文件(例如,实时配置文件)中是这种情况。为了实现这一点,客户端可以依赖于MPD中的提供索引信息的字节范围的指示(例如,indexRange)。当媒体数据被封装为ISOBMFF时,索引信息可对应于SegmentIndex框“sidx”。在媒体数据被封装为MPEG-2TS所依据的情况中,MPD中的指示可以是参考索引分段的特定URL。然后,客户端从服务器接收所请求的索引(步骤630)。

这些步骤类似于通过参考图4所描述的步骤400~430。

根据所接收到的索引,客户端可以计算与客户端感兴趣的片段的元数据相对应的字节范围(步骤635)。客户端可以发出具有所计算出的字节范围的请求,以获得MPD中的所选择的媒体成分的片段元数据(步骤640)。服务器通过发送所请求的“moof”框来回复所请求的动画片段(步骤645)。当客户端选择多个媒体成分时,步骤640和645分别包含针对“moof”框的多个请求以及多个响应。对于基于区块的流传输,步骤640和645可对应于针对给定块的请求/响应,即与特定轨片段框“traf”有关的请求/响应。

接着,使用先前接收的索引和所接收到的元数据,客户端可以计算字节范围(步骤650)以请求给定时间(例如,与给定时间范围相对应)或给定位置(例如,与随机访问点相对应或在客户端正在寻找的情况下)的动画片段。客户端可以发出一个或多个请求以获得MPD中的所选择的媒体成分的一个或多个动画片段(步骤655)。服务器通过发送一个或多个所请求的“mdat”框或“mdat”框中的字节范围来回复所请求的动画片段(步骤660)。观察到,例如当媒体分段被描述为分段模板并且没有索引信息可用时,可以在不请求索引的情况下直接进行对动画片段或轨片段或者更一般地对描述性元数据的请求。

在接收到动画片段时,客户端解码并绘制相应的媒体流,并准备下一时间间隔的请求(步骤665)。这可能涉及获得新索引,甚至有时涉及获得MPD更新,或者简单地请求如在MPD中指示的下一媒体分段(例如,在SegmentList或SegmentTemplate描述之后)。

如虚线箭头所示,客户端可以在请求分段数据之前请求下一分段索引框。

这里观察到,如在通过参考图6和图8所示的序列图上所示,根据本发明实施例的使用数个索引的优点是为客户端提供细化其对数据的请求的机会。与现有技术相比,客户端有机会仅请求元数据部分(没有任何潜在无用的实际数据)。可以根据所接收到的元数据来确定对实际数据的请求。封装了该数据的服务器可以在MPD中设置指示,以让客户端知晓更精细的索引是可用的,从而使得可以仅请求所需的实际数据。

如以下所述,存在服务器在MPD中用信号通知该情况的不同可能性。

图7是示出根据本发明实施例的由服务器为了向客户端传输数据所执行的步骤的示例的框图。

如图所示,第一步骤涉及将媒体内容数据编码为多个部分(有可能作为彼此的替代)(步骤700)。例如,对于区块化视频,一个部分可以是区块或区块集或区块组。各部分可以以不同版本(例如在质量、分辨率等方面)编码。编码步骤产生封装的位流(步骤705)。封装步骤包括生成包含描述媒体数据的放置和定时的元数据的结构化框。如通过参考图9a、9b、10a和10b所述(例如通过使用修改后的“sidx”、修改后的“spix”或其组合),封装步骤(705)还可以包括生成索引以使得可以在不访问相应的实际数据的情况下访问元数据。

接着,在流传输清单中(例如,在MPD中)描述从封装步骤产生的一个或多个媒体文件或媒体分段(步骤710)。取决于索引和使用情况(例如,实时或按需)的该步骤使用以下实施例其中之一来进行DASH信号通知。

接着,将媒体文件或具有其描述的分段发布在流传输服务器上以扩散到客户端(步骤715)。

图8是示出根据本发明实施例的由客户端为了从服务器获得数据所执行的步骤的示例的框图。

如图所示,第一步骤涉及请求和获得媒体呈现描述(步骤800)。然后,客户端通过使用所获得的媒体描述的信息项来初始化其(一个或多个)播放器和/或(一个或多个)解码器(步骤805)。

接着,客户端从媒体描述中选择要播放的一个或多个媒体成分(步骤810),并请求与这些媒体成分有关的信息(例如,索引信息)(步骤815)。然后,使用在步骤820中解析的索引,客户端可以请求进一步的描述信息,例如所选择的媒体成分的一部分(诸如媒体成分的一个或多个片段的元数据等)的描述信息(步骤825)。该描述信息由解封装解析器模块解析(步骤830)以确定要请求的数据的字节范围。

接着,客户端对实际需要的数据发出请求(步骤835)。

如通过参考图6所述,这可以根据在封装期间使用的索引和媒体呈现描述中的描述级别而在客户端和服务器之间的一个或多个请求和响应中进行。

使用来自“sidx”框的索引来访问元数据

根据实施例,可以通过使用从“sidx”框获得的索引来访问元数据。

图9a示出根据本发明实施例的扩展分段索引框“sidx”的第一示例,其中创建了分段索引框(在图9a中表示为900)的新版本(在图9a中表示为905)。根据分段索引框的新版本,可以针对各片段存储两个索引,这两个索引是不同的并且与元数据、实际数据、或者包括元数据和实际数据的集合相关联。这使得客户端可以单独请求元数据和实际数据。

根据图9a的示例,不论分段索引框的版本如何,与包括元数据和实际数据的集合相关联的索引(表示为915)始终按照ISO/IEC 14496-12存储在分段索引框中。另外,如果分段索引框的版本是新版本(即,在给定示例中版本等于2或3),则与元数据相关联的索引(表示为920)存储在分段索引框中。可替代地,在分段索引框的版本是新版本的情况下存储的索引可以是与实际数据相关联的索引。

注意,根据该变形例,扩展分段索引框“sidx”能够处理在32或64位上表示的earliest_presentation_time和first_offset字段。为了说明起见,如由ISO/IEC14496-12定义的,设置为0或1的版本类型分别对应于“sidx”,其中在32或64位上表示earliest_presentation_time和first_offset字段。新版本2和3分别对应于“sidx”,其中新字段920提供编有索引的动画片段的元数据部分的字节范围(虚线箭头)。

reference_type的特定值(例如,“moof_and_mdat”或任何保留值)指示“sidx”框900(通过referenced_size字段915)对元数据“moof”和实际数据“mdat”及其子框的集合进行编索引,并且(通过referenced_metadata_size字段920)对相应的元数据部分进行编索引。这是灵活的,并且允许智能客户端仅获得元数据部分以细化其数据选择请求,而通常的客户端可以使用级联的字节范围作为referenced_size来请求完整的动画片段。

这些新版本的“sidx”框是用于互操作性的更有效的信号通知。实际上,当定义支持更精细索引的ISOBMFF品牌(brand)时,该品牌可能需要存在具有新版本的“sidx”框。在品牌中具有“sidx”框将使客户端知晓它们是否可以在设置时处理文件,并且在解析索引时不处理该文件(这可能导致设置之后的错误)。例如如在ISO/IEC 14496-12中定义的分层索引或菊花链方案中那样,该扩展“sidx”框可以与当前版本的“sidx”框组合。

根据通过参考图9a所描述的实施例的变形例,是不存在参考类型的任何新值的(仍编码在一个位上的)“sidx”框的新版本。当reference_type指示动画片段编索引时,新版本代替提供单个范围,而是提供两个范围,例如用于元数据和实际数据(“moof”和“mdat”部分)的范围和用于元数据(“moof”部分)的范围。因此,客户端可以根据满足其需求的级别来请求一个或另一个或两个部分。当reference_type指示分段索引时,referenced_size可以指示编有索引的片段的大小,并且referenced_data_size可以指示该编有索引的片段的元数据的大小。新版本的“sidx”使客户端可能地通过相应的ISOBMFF品牌从索引方面知晓它们正在处理的内容。例如如在ISO/IEC 14496-12中定义的分层索引或菊花链索引方案中那样,“sidx”框的新版本可以与甚至采用旧版本的当前“sidx”框版本组合。

图9b示出根据本发明实施例的扩展分段索引框“sidx”的第二示例。如图所示,一对索引与各片段相关联并存储在分段索引框950中。根据给定示例,第一索引(表示为955)与所考虑的片段的实际数据相关联,而第二索引(表示为960)与该片段的元数据相关联。可替代地,这两个索引其中之一可以与包括所考虑的片段的元数据和实际数据的集合相关联。由于引入了新字段,因此这里使用“sidx”框的新版本。为了获得给定时间的元数据的片段的字节范围(即,为了获得“moof”框及其子框),解析器读取索引并使referenced_data_size 955和referenced_metadata_size 960递增,直到subsegment_duration保持小于给定时间为止。在到达给定时间时,增量大小提供给定时间的元数据的片段的开始。然后,referenced_metadata_size提供要读取或下载的字节数量,以获得给定时间的片段的描述性元数据(以及仅元数据而无实际数据)

使用(来自“spix”框的)空间索引来访问元数据

图10a示出根据本发明实施例的空间分段索引框“spix”的示例。由于这是与“sidx”框不同的框,因此保留特定的四字符代码以用信号通知和唯一地标识该框。为了说明起见,使用“spix”(其指定空间索引)。

如图所示,“spix”框1000对一个或多个参考轨(其数量由表示为1005的track_count字段指示)的一个或多个动画片段(其数量由表示为1010的reference_count字段指示)编索引。在给定示例中,轨的数量等于3。如由表示为1015的“moof”框中的表示为1020的“traf”框所示,这例如可以对应于三个区块轨。

另外,“spix”框1000针对各参考轨(例如,针对各参考区块轨)提供两个字节范围。根据实施例,如利用箭头示意性示出,由表示为1025的referenced_metadata_size字段指示的第一字节范围是与当前参考轨的元数据部分(即,“traf”框及其子框)相对应的字节范围(可选地,track_ID可以存在于该框中)。第二字节范围由表示为1030的referenced_data_size字段给出。该第二字节范围对应于参考片段的数据部分“mdat”中的连续字节范围的字节范围(如1035表示的字节范围那样)。如利用箭头示意性示出,该字节范围实际上对应于由参考片段的参考轨的“trun”框所描述的连续字节范围。

可选地(在图10a中未示出),“spix”框还可以以轨为单位提供与随机访问点有关的信息,因为其可能没有跨轨对齐。可以分配特定flags(标志)值以根据随机访问的编码来指示随机访问信息的存在。例如,“spix”框可以具有设置为1的标志值RA_info,以指示在该框中存在SAP(流访问点的缩写)的字段。当未设置该标志值时,不存在这些参数,因此,可以假定在其它地方(例如,通过样本组或在“sidx”框中)提供SAP信息。

注意,在默认情况下,按“moof”框内的轨的track_ID的递增顺序对轨编索引。因此,根据实施例,在轨循环中(即,在track_count上)使用明确的track_ID来处理多个轨从一个动画片段改变为另一动画片段的情况(例如,可能不存在通过应用选择、通过在区块是感兴趣的对象时对内容的非检测、或者通过对实时应用的编码延迟而在任何时间均可用的所有区块)。可以通过保留flags值来用信号通知track_ID的存在或不存在。例如,可以保留设置为0x2的值“track_ID_present”。在设置时,该值指示在对轨的循环内,在“spix”框中明确地提供参考轨的track_ID。在未设置时,读者应假定按轨的track_ID的递增顺序参考轨。

如图所示,“spix”框还可以通过表示为1040的subsegment_duration字段提供片段的持续时间(其可以跨区块轨对齐)。

注意,“spix”框可与“sidx”框或提供随机访问和时间信息的任何其它索引框一起使用,其中“spix”框仅关注于空间编索引。

图10b示出时间索引“sidx”与空间索引的组合的示例。如图所示,MediaSegment(媒体分段)(附图标记1050)包含时间索引作为“sidx”框1051。“sidx”框具有利用附图标记1052和1053例示的条目,其中各条目指向作为“spix”框的变体(附图标记1054或1055)的空间索引。

当与sidx组合时,空间索引更简单,其具有对轨的单个循环(附图标记1056)、而不是如图10a上的对片段和轨的嵌套循环。“spix”框(1054或1055)中的各条目仍提供轨片段框及其子框的大小1057以及相应的数据大小1057。这使得客户端能够容易地获得字节范围以仅访问描述区块化视频的区块轨或复合视频的空间部分的视频轨的元数据。这种轨被称为空间轨。

当从一个空间轨到另一空间轨、随机访问点(或流访问点)的位置变化时,在空间索引中给出这些随机访问点(或流访问点)的位置。这可以通过“spix”框中的flags字段的值来控制。例如,“spix”框(1055或1055)可以具有设置为0x000001的标志值RA_info(或不与其它flags的值冲突的任何值),以指示在该框中存在SAP(流访问点的缩写)的字段。当未设置该flags值时(例如,附图标记为1061的测试为假),这些参数不存在,因此,可以假定来自父“sidx”框1051的SAP信息应用于在spix框中描述的所有空间轨。当存在时(测试1061为真),与流访问点有关的字段1064、1065和1066具有与sidx中的相应字段相同的语义。

为了指示sidx参考空间索引,在reference_type中使用新值。除了动画片段的值(reference_type等于0)之外,对于扩展sidx中的分段索引(1)、moof_only(2),可以使用值3来指示referenced_size提供从空间索引1054的第一字节到空间索引1055的第一字节的以字节为单位的距离。当空间动画片段(即,空间轨的动画片段)具有相同的持续时间时,针对sidx中的所有空间轨声明持续时间信息和呈现时间信息。当持续时间从一个空间轨到另一空间轨变化时,可以在spix 1054或1055中而不是sidx中针对各空间轨声明subsegment_duration。

同样地,当随机访问点跨空间分段对齐时,在sidx中提供随机访问信息,并且“spix”框的flags设置有值0x000002以指示随机访问点的对齐。在应用到封装在区块轨中的区块化视频之后,sidx的reference_ID可被设置为区块基轨的track_ID,并且spix中的轨计数可被设置为用区块基轨的TrackReferenceBox(轨参考框)中的“sabt”轨参考类型所参考的区块轨的数量。

根据该索引,客户端可以通过使用大小1062和1063来容易地请求基于区块的元数据或基于区块的数据或空间动画片段。“sidx”和“spix”的该组合为区块轨提供时空索引并且提供IndexedMediaSegment(编有索引的媒体分段),使得可以通过DASH高效地流传输区块化视频。

在变形例中,“spix”框由指派类型设置为2的“ssix”框替代,这意味着针对各区块存在一个级别(在“leva”框中定义)。例如当如在ISO/IEC 14496-15中所规定的所有区块在同一轨中并且经由区块子轨来描述时,这可以用这样的组合来编索引。“sidx”将时间范围映射到字节范围,而“ssix”框进一步提供该时间范围内的各区块到字节范围上的映射。这允许使用这两个索引的客户端构建具有从封装所有区块的轨获得仅一个区块或区块集的字节范围的HTTP请求。

当针对层、针对子图片、或者针对一个或多个区块的轨描述了样本或同一“mdat”框中存储的连续样本集合时,该组合可能是有用的。当将针对一个或多个区块、层或子图片的轨各自独立封装在自身的文件中或自身的“mdat”时,提供“moof”大小和“mdat”大小这两者的扩展“sidx”可能足以允许基于区块的元数据访问或基于区块的数据访问或空间动画片段访问。

当元数据和数据不连续时使用来自“sidx”框的索引来访问元数据

本发明人已注意到,存在这样的情况:将元数据和数据存储为使得元数据和数据在媒体文件中不是连续的、交错存在的或多路复用的(如图9a或9b所示),这可能是有利的。对于非片段化ISO基媒体文件通常是这种情况,而且对于片段化ISO基媒体文件通常也是这种情况,其中如例如在图9a或9b中示出,动画片段的数据部分(例如,(一个或多个)“mdat”框)通常遵循描述该动画片段的元数据(“moof”或“traf”框分层结构)。因此,“sidx”的当前版本(ISO/IEC 14496-12第5版,2015年12月)假定具有相应的(一个或多个)MediaDataBox(媒体数据框)的动画片段框的“自包含式”集合,其中包含由MovieFragmentBox(动画片段框)参考的数据的MediaDataBox应遵循该MovieFragmentBox,并应在包含与相同轨有关的信息的下一MovieFragmentBox之前。

根据实施例,提供新分段索引框(例如,现有“sidx”框的新版本),以支持一个或多个连续动画片段的“非自包含式”集合。连续动画片段的“非自包含式”集合包含一个或多个具有相应的(一个或多个)MediaDataBox或(一个或多个)IdentifiedMediaDataBox(已标识媒体数据框)的一个或多个MovieFragmentBox,其中包含由MovieFragmentBox参考的数据的MediaDataBox或IdentifiedMediaDataBox可以不遵循该MovieFragmentBox,并且可以不在包含与相同轨有关的信息的下一MovieFragmentBox之前。为清楚起见,假定“连续”动画片段是(根据不断增加的编码或解码时间顺序)时间上有序的动画片段序列。对于区块化视频和更一般的空间分割或分区视频的情况,“连续”数据是与相同编码或解码时间间隔(或时间范围)相对应的区块或空间部分的集合的数据。通常,对于后期绑定流传输,数据可对应于TileDataSegment(区块数据分段),而元数据可对应于TileIndexSegment(区块索引分段)。有利地,根据本发明实施例的修改后的分段索引框可以嵌入在TileIndexSegment中,使得客户端可以在减少数量的请求中获得所有的编索引和描述性元数据。如此,与片段或子分段相对应的数据可以包括一个或多个数据块或分块,这些数据块或分块各自对应于单个字节范围。同样地,例如在分区化视频(诸如区块化视频等)的情况下,与片段或子分段相对应的元数据可以包括数个“moof”或“traf”框。在数个moof或traf框与片段或子分段相关联并且数据被分割成数据块的情况下,将一个元数据与一个数据块相关联可能是有用的。这可以例如通过将数据封装在以动画片段的序列号作为标识符的已标识媒体数据框(例如,“imda”框)中来进行。在这种情况下,动画片段的sequence_number不仅在时间上递增,而且针对各分区(例如,针对各区块、子图片或层)也递增。在以下的说明中,数据可以包含在传统的“mdat”框中,或者包含在如“imba”框那样的已标识媒体数据框中。

例如,当根据DASH协议(例如,如参考图16或图17所述)在运行中对媒体进行实时内容编码、封装和分段化以供实时传递时,对非自包含式动画片段进行编索引可能是有用的。然后,通过使仅元数据的分段和仅数据的分段未受影响,例如,如参考图15a中的步骤1515或1520所述,可以对媒体进行进一步编索引并存储以供按需传递。然而,这种编索引要求支持元数据部分(例如,“moof”或“traf”框)不一定与包含媒体数据的(一个或多个)框(例如,“mdat”或“imda”)邻接的片段或分段。该编索引通过避免样本描述框或“trun”框中的样本或分块字节偏移重新计算来节省封装模块的计算时间。

这里可以认为,当考虑非自包含式动画片段时,数据参考框指示媒体数据是否在与元数据相同的文件中。例如,当元数据和数据这两者在同一文件中时,封装模块可以生成(步骤705)包含具有自包含式标志集的DataEntryURLBox(数据条目URL框)的“dref”框,并且该DataEntryURLBox包含空URL(即,空字符串)。当数据不在与元数据相同的文件中时,封装模块可以生成(步骤705)具有未设置自包含式标志的类型URL或URN的至少一个DataEntry(数据条目)并且提供非空URL或URN的数据参考框。该URL或URN向解析器(或解封装模块115)指示在何处获得在元数据部分中描述的轨的媒体数据。

当数据不在与元数据相同的文件中时、以及当封装模块将数据嵌入到已标识媒体数据框中时,封装模块将DataReferenceBox(数据参考框)“dref”(例如,DataEntryImdaBox(数据条目imda框)或DataEntrySeqNumImdaBox(数据条目序列号imda框))中的相应DataEntry的自包含式标志设置为假。此外,为了允许将已标识媒体数据存储在另一文件中,定义这些框的新版本,从而将URL或URN作为附加参数来提供包含数据的该远程文件的位置。作为变形例,当媒体数据在远程文件中但在单个文件中时,这可以由封装模块优选在“dref”框的最后一个条目处用额外的DataEntryURLBox或未设置其自包含式标志的DataEntryURLBox来指示。将该额外的DataEntryURLBox或DataEntryURNBox(数据条目URN框)设置为dref框中的最后一个条目这一情况不会修改支持在与元数据相同的文件中包含的已标识媒体框的任何解析器的处理:这些解析器可以忽略该最后一个条目。知晓该扩展的解析器应将该额外的DataEntryURLBox或DataEntryURNBox作为远程文件的位置来处理,从而提供已标识媒体数据框。为了向解析器通知这种特征以及这些解析器是否应处理这种特征,新品牌值可以用已标识媒体数据框的品牌来定义,或者被定义为已标识媒体数据框的品牌的还包括对已标识媒体数据框的支持的附加品牌。封装模块可以在“ftyp”框或“styp”框中指示该品牌。

为了更容易地解析和处理“sidx”框,定义并使用一些保留的flags值来指示元数据和数据之间的使用中的实际组合(是否交错存在(或分割)、是否在同一文件中、是否连续数据等),这可以是有用的。实际上,尽管可以从“sidx”框的版本编号和“dref”框的解析向解析器(例如,图1中的解析器115)通知这些参数值,但当“sidx”框在ISOBMFF之外使用时,提供这样的flags或自动描述性“sidx”框尤其有用。例如当分段索引框被用于对“dref”框将不可用的MPEG-2TS内容编索引时,可能是这种情况。对分段索引的这些不同配置的结果是:索引中的一个条目实际上可以提供多于一个字节范围(如参考图9a和9b所述),但也可以在所考虑的文件中提供多于一个reference_ID或字节偏移,或者可以提供字节范围作为与数据长度组合的字节偏移(并且不再作为通过参考图9a和9b所述的连续大小的序列)。

通过参考图11a(元数据和数据未交错存在)、图11b(元数据和数据未交错存在且数据组不连续)、图12a(元数据和数据存储在两个不同的文件中)和图12b(元数据和数据存储在两个不同的文件中且数据组不连续(且可以存储在不同的文件中))来更详细地描述一些示例。

可替代地,可以使用通过参考图13a和13b描述的菊花链索引来定义数据结构。

图11a示出根据本发明实施例的扩展分段索引框“sidx”的示例,从而使得能够访问未交错存在的元数据和数据。

如图所示,分段索引框“sidx”1100是标准分段索引框“sidx”,其经修改以使得可以访问未交错存在的元数据和数据(元数据和数据本身是连续的)。因此,分段索引框“sidx”1100可用在封装有给定分段、片段或子分段的元数据和数据的媒体文件中,该给定分段、片段或子分段被分割(未交错存在),但在相同的封装媒体文件(这里为表示为1105的媒体文件)中各自是连续的。如图所示,分段索引使用两个参考,这两个参考指示元数据的referenced_size(表示为1110)和数据的reference_data_size(表示为1115)在媒体文件1105中实际从何处开始。媒体文件1105可以包含整个呈现文件(即,ISO基媒体文件)或者可以是分段文件。

为了说明起见,提供包含元数据的轨的track_ID的表示为1120的通常reference_ID字段可以与first_offset字段组合使用,以提供表示为1125-1的第一编有索引元数据的第一字节的以字节为单位的距离。然后,通过使用编有索引元数据的大小1110,可以在媒体文件1105中访问各编有索引元数据(例如,元数据1125-2)。如图所示,表示为1130的新参考例如可以用作媒体文件1105中的字节偏移,以指示在媒体文件1105中编有索引数据(表示为1135-1、1135-2等)从何处开始。偏移优选是根据文件的第一字节或所考虑的分段文件的第一字节来确定的。然后,通过使用编有索引数据的大小1115,可以在媒体文件1105中访问各个编有索引数据(例如,数据1135-2)。

描述持续时间和流访问点的该新分段索引框的最后字段保持与用于标准“sidx”框的语义相同的语义。

根据图11a所示的示例,当对整个呈现编索引时,分段索引框“sidx”1100可以包括在封装媒体文件1105的开头处。

可替代地,当不对整个呈现编索引而是以分段为单位编索引时,诸如分段索引框“sidx”1100等的数个分段索引框可以在封装媒体文件中在时间上与分段交错存在。

图11b示出根据本发明实施例的扩展分段索引框“sidx”的示例,从而使得能够访问元数据和未交错存在的数据部分。

如图所示,分段索引框“sidx”1140是标准分段索引框“sidx”,其经修改以允许访问未交错存在的元数据和数据,其中数据本身不连续。因此,分段索引框“sidx”1140可用在封装有给定分段、片段或子分段的元数据和数据的媒体文件中,其中给定分段、片段或子分段的数据被分割并且数据范围可能不是连续的。根据该示例,元数据和数据存储在单个文件中(例如,媒体文件1145中)。媒体文件1145可以包含整个呈现文件(即,ISO基媒体文件)或者可以是分段文件。

例如,在给定时间间隔(例如,时间间隔[0,delta_t])上,表示为1150-1和1150-2的两个数据块可以包括两个区块、空间部分或层的编码数据。表示为1155的相应元数据可以包含各自描述数据块1150-1和1150-2中的一个的两个“trun”框(在一个“moof”框内或在两个“moof”框内)。

注意,当在如“imda”框那样的可标识的媒体数据框中提供数据块时,“trun”框中的base_offset字段可由封装模块设置为零。因此,解析器(例如,图1中的解析器115)知晓它们应将该可标识的媒体数据框中的第一字节视为样本大小的开始偏移。当参考类型DataEntryImdaBox或DataEntrySeqNumImdaBox的数据条目时,这也可以由解析器通过查看轨片段头部中的sample_description_index来确定。

如图11b所示,分段索引使用比标准“sidx”框中更多的字段来对这样的封装数据编索引。可以通过定义“sidx”的新版本(如利用测试1160所示)或通过使用该框的flags字段的保留值来定义和用信号通知这些新字段。

根据例示实施例,例如在附图标记为1165的字段中提供多个子部分(或数据部分),并且将reference_type设置为指示媒体内容被编索引的值。元数据(一个或多个动画片段框)和数据(如“mdat”、“imda”那样的一个或多个媒体数据框)这两者的大小是分别使用表示为referenced_size和referenced_data_size且附图标记为1170和1180的两个不同字段来定义的。仍然根据例示示例,referenced_size 1170仍提供从参考项(例如,元数据1155-1)的第一字节到下一参考项(例如,元数据1155-2)的第一字节的以字节为单位的距离。如图所示,分段索引框的新版本包含对子部分的循环,从而针对各子部分来提供封装媒体文件1145、参考的data_reference_offset 1175和数据块的大小referenced_data_size1180方面的以字节为单位的开始偏移。data_reference_offset以字节为单位指示在文件或分段文件中编有索引的数据从何处开始。该偏移是根据文件的第一字节或所考虑的分段文件的第一字节所确定的。使用这样的“sidx”框,解析器可以将与子部分j的数据块相对应的字节范围计算为[data_reference_offset[j],data_reference_offset[j]+referenced_data_size[j]]。如上所述,(在该示例中)包括数据部分1150-1和1150-2的整个数据对应于元数据1155-1并且包括多个字节范围。

根据其它实施例,第一偏移到第一数据块1150-1和1150-2的列表是紧接在子部分1165的数量的声明之后声明的,以描述数据块1175的开始偏移。然后,仅需要在对子部分的循环内提供数据块大小1180。这要求解析器存储数据的开始偏移,并维持各子部分的字节上的位置。数据块N的字节范围是从数据块N-1的最后字节到该最后字节位置+当前referenced_data_size 1180获得的。

如图所示,描述持续时间和流访问点的新分段索引框1140的最后字段可以保持与用于标准“sidx”框的语义相同的语义。

如图11b所示,当对整个呈现编索引时,分段索引框“sidx”1100可以包括在封装媒体文件1145的开头处。

可替代地,当不对整个呈现编索引而是以分段为单位编索引时,诸如分段索引框“sidx”1140等的数个分段索引框可以在封装媒体文件中在时间上与分段交错存在。

根据例示示例,假定不同时间间隔之间的子部分的数量是恒定的。可以通过在对reference_count的第一循环内插入subpart_count字段来处理子部分的不断变化的数量。

观察到,data_reference_offset当其使用时优先被编码在在64位(而不是32位)上,以与巨大文件(例如,与大于4千兆字节的媒体文件)匹配。

图12a是各自分别在表示为1200和1205的自身的封装媒体文件分割的封装有给定分段、片段或子分段的元数据和数据的媒体文件的示例。根据例示示例,元数据和数据在自身的封装媒体文件中是连续的。媒体文件1200和1205优选是具有如根据图18所述的明确分段类型指示的分段文件。例如,文件1205具有指示仅数据分段的分段类型。优选地,分段索引框将嵌入在媒体文件1200中。

标准分段索引框“sidx”的修改版本可用于定义这样的数据结构。

根据特定实施例,如图11a中的分段索引框“sidx”1100那样的单个分段索引框“sidx”用于提供元数据和数据这两者的字节范围。该单个分段索引框“sidx”嵌入在封装元数据的文件中,也就是说,嵌入在根据例示示例的媒体文件1200中。例如,在后期绑定的情况下,该索引可以嵌入在TileIndexSegment中。

根据其它实施例,当以分段为单位而非在整个呈现上对元数据和数据进行编索引时,使用数个分段索引框“sidx”。索引可以在时间上与元数据分段交错存在。根据这些实施例,data_reference_offset(在图11a中表示为1130)提供track_ID,从而标识包含数据的轨,其中从该轨可以确定包含数据的文件的名称或位置。

为了确定与元数据片段或子分段相对应的数据的字节范围,解析器(例如,图1中的解析器115)检查在任何索引或数据请求(如参考图4、6和14中的步骤420、620或1420所述)之前始终下载的媒体文件的初始化分段,以初始化播放器(如参考图15中的步骤1555所述)。该初始化分段包含提供具有URL或URN的数据条目的数据参考框,以定位给定轨或轨片段的数据文件。

图12b是各自分割为自身的(一个或多个)封装媒体文件的封装有给定分段、片段或子分段的元数据和数据的媒体文件的示例,其中数据部分在同一文件中不连续或被分割成多个封装媒体文件。

因此,如图所示,附图标记为1250的第一文件包含元数据以及一个第二文件(其中给定分段、子分段或片段的数据不连续(未示出))或者附图标记为1255-1~1255-n的数个第二文件。

可以使用如图11b中的分段索引框“sidx”1140那样的分段索引框“sidx”。

如前面所述,可以修改data_reference_offset(在图11b中表示为1175)以提供媒体数据框的track_ID或标识符而不是byte_offset,使得解析器(例如,图1中的解析器115)可以首先定位要访问的数据存储于的媒体文件(例如,媒体文件1255-1),然后定位该文件内的数据。对于先前的变形例,解析器依赖于数据参考框来查找提供URL或URN的DataEntry,以定位给定轨或轨片段的数据文件。

使用“sidx”框中的菊花链索引来访问元数据和数据

图13a示出使用分段索引框“sidx”中的菊花链索引来提供元数据和数据这两者的字节范围的示例。根据该示例,假定元数据和数据在同一媒体文件中且交错存在。根据该实施例,如图13a所示,如由ISO/IEC 14492-12第5版定义的现有菊花链索引用附加的reference_type值来扩展,使得针对所有的片段、分段或子分段(即,在对reference_count的循环中)交替地对索引(reference_type=1)、仅元数据(reference_type=2)和仅数据(reference_type=3)编索引。

如图所示,各SegmentIndexBox(分段索引框)定义指向元数据的第一条目、指向数据的第二条目和指向下一SegmentIndexBox的第三条目。例如,表示为1300-1的第一分段索引框“sidx”的表示为1305-11的第一条目指向媒体内容的表示为1310-1的元数据部分。根据实施例,这可以通过使用专用reference_type值(例如,等于2的值)来用信号通知。同样,该分段索引框的表示为1305-12的第二条目指向媒体内容的表示为1315-1的数据部分。再次地,这可以由专用reference_type值(例如,等于3的值)来用信号通知。同样,表示为1305-13的第三条目指向表示为1300-2的下一分段索引框“sidx”。这样的条目对应于等于1的标准reference_type值。

根据该实施例并且如表示为1320的分段索引框“sidx”所示,可能需要两位来进行表示为1325的representation_type的表现,其中可以保留版本值2以指示新类型的分段索引框。根据实施例,可以根据reference_type的值来解释表示为1330的referenced_size字段。

当reference_type设置为1时,referenced_size可以对应于从当前分段索引框“sidx”的第一字节到下一分段索引框“sidx”的第一字节(例如从分段索引框“sidx”1300-1的第一字节到分段索引框“sidx”1300-2的第一字节)的以字节为单位的距离。当reference_type设置为2时,referenced_size可以对应于从参考元数据项的第一字节到下一参考元数据项的第一字节(例如从元数据1310-1的第一字节到元数据1310-2的第一字节(或者在最后一个条目的情况下到参考元数据材料的末尾))的以字节为单位的距离。当reference_type设置为3时,referenced_size可以是从参考数据项的第一字节到下一参考数据项的第一字节(例如从数据1315-1的第一字节到数据1315-2的第一字节(或者在最后一个条目的情况下到参考数据材料的末尾))的以字节为单位的距离。

reference_type等于2或3的各条目的subsegment_duration的值可对应于编有索引的片段、子分段或分段的持续时间。当reference_type设置为1时,subsegment_duration可以在该索引中提供编有索引的片段、子分段或分段的剩余持续时间。

根据其它实施例,图13a中的分段索引框1320被修改以组合标准reference_type值(对于编索引信息为1且对于媒体内容为0),但在对reference_count的循环中包含特定double_index(如参考图9a或9b所述,对于元数据为1且对于数据为1)。在对reference_count的循环中的该双索引允许继续在索引中使用两个条目(e0和e1)、而不是通过参考图13a描述的方法所用的三个条目。该特定分段索引处理单个文件包含交错存在且连续的元数据和数据的封装配置。该特定分段索引允许一些智能客户端如在后期绑定中那样单独请求元数据和数据。该特定分段索引框避免了分段索引中的子分段持续时间和流访问点信息的重复,因为这两者是针对元数据和数据片段、子分段或分段一次提供的。当reference_type设置为1时,如在ISO/IEC 14496-12中定义的,subsegment_duration和流访问点的语义保持相同。该变形例可以用特定版本编号(如图13a所示)或者用一个或多个flags值来用信号通知。用于用信号通知该变形例的替代方案可以是使用指示双编索引(元数据和数据)的reference_type的特定值。下文描述可能的保留值及其含义的列表。

图13b示出在如下封装配置中使用具有三个条目的菊花链索引来提供元数据和数据这两者的字节范围:元数据和数据可能不在同一文件中,或者编有索引的分段的不同片段或子分段的数据块可能不连续。当不连续时,各数据块被单独编索引,然后数据作为字节范围的列表可用。图13b示出具有例如可对应于视频中的两个区块(例如TileDataSegment)的两个数据块的数据的示例。在分段索引框“sidx”1370中,提供编有索引的片段或子分段的数据块(例如,区块)的数量作为例如被称为“subpart_count”的新字段。

在图13b的上部示出的与分段索引框1370相对应的示例包括封装到数据块中(例如,在数个“mdat”或“imda”框中)的片段或子分段的通常附图标记为1361的数据和连续的通常附图标记为1360的相应元数据(例如一个或多个“moof”框)。

分段索引框1380-1中的各条目交替地参考给定片段或子分段(例如,指向“moof”框1360-1的附图标记1350-1)、一个或多个数据块(例如,附图标记1361-1)和下一分段索引框(例如,附图标记1380-2)的元数据。所参考的数据的类型由reference_type值1371指示。当reference_type指示仅数据被编索引(表示为1372的测试的对象)时,分段索引框的对数据块的数量的第二循环用于将给定时间间隔上的这些数据块(例如,1361-1内的数据块)编索引为字节偏移(例如,data_reference_offset 1373)和以字节为单位的大小(例如,referenced_data_size 1374)。

可选地,sub-segment_duration和流访问点的字段也可以由测试1372控制(例如,仅当reference_type指示元数据编索引时才存在,并且当reference_type指示数据编索引时不声明)。这将通过避免索引中的两个连续条目e0和e1之间的重复而节省一些描述字节。

当封装模块创建诸如分段索引框1370等的分段索引框时,解析器可以使用该分段索引框,以通过仅使用分段索引框的第二条目(附图标记1351)获得仅数据的字节范围,通过使用分段索引框的第一条目(附图标记1350)获得仅元数据,或者通过仅使用分段索引框的第三条目(附图标记1352)检查时间。根据图13b所示的示例,假定子部分计数从一个分段到另一分段是恒定的。当子部分计数从一个分段到另一分段变化时,可以在对reference_count的第一循环中并在测试1372之后声明子部分计数。

在图13b所示的数据结构的变形例(未示出)中,修改分段索引框1370以在对reference_count的循环中将标准reference_type值(对于编索引信息为1且对于媒体内容为0)和特定double_index(如通过参考图11b中的附图标记1170和1180所述,对于元数据为1且对于数据为1)组合。该特定分段索引避免了分段索引中的子分段持续时间和流访问点信息的重复,因为这两者是针对元数据和数据片段、子分段或分段一次提供的。当reference_type设置为1时,如在ISOBMFF中定义的,subsegment_duration和流访问点上的语义保持相同。该变形例可以用特定版本编号(如图13b所示)或者用一个或多个flags值来用信号通知。

使用“sidx”来避免“moof”框传递

已观察到,存在如下的情况:高级客户端通过解析所接收到的MediaDataBox的高级句法来省略MovieFragmentBox的下载并在客户端处创建MovieFragmentBox。可以如具有参考类型的特定值的SegmentIndexBox那样用索引针对这些特定客户端来对媒体呈现进行编索引。例如,保留reference_type的特定值以指示referenced_size仅与数据有关。当数据和元数据交错存在时,诸如图11b中的data_reference_offset 1175等的data_reference_offset也可以被包括在对reference_count的循环中以不考虑(或跳过)索引中的元数据,并向当前片段或子分段的数据提供以字节为单位的位置。然后将各数据编索引为字节偏移(data_reference_offset)+以字节为单位的长度(referenced_size)。分段索引可被标记或版本化为“仅数据”索引,或者最终在如SegmentDataIndexBox(“sdix”)那样的新框中定义。该替代分段索引框还将提供:提供诸如最早呈现时间或subsegment_duration等的定时信息的字段、以及提供与流访问点有关的信息的字段。例如在分层或菊花链编索引中,该“sdix”框也可以与“sidx”框组合。

为了支持不同的编索引模式,可以按照如下定义不同的可能reference_type值:

-值1指示参考指向SegmentIndexBox。如果参考不指向SegmentIndexBox,则按照如下指向媒体内容:

-值0指示参考指向包括元数据和媒体数据这两者的内容(这可能例如在包括交错存在的MovieFragmentBox和MediaDataBox的文件的情况下发生)。在指示数据和元数据的单独编索引的sidx的版本中可以禁用该值(例如,大于1);

-值2指示参考指向仅包括元数据的内容(这可能例如在包括给定分段或子分段的一个或多个MovieFragmentBox的文件的情况下发生);这可用在TileIndexSegment中。在这种情况下,referenced_size是从参考元数据项的第一字节到下一参考元数据项(例如,一个或多个连续moof的集合)的第一字节(或者在最后一个条目的情况下到参考元数据材料的末尾)的以字节为单位的距离;

-值3指示参考指向仅包括媒体数据的内容(这可能例如在包括给定分段或子分段的一个或多个MediaDataBox或IdentifiedMediaDataBox的文件的情况下发生);这可用在TileDataSegment中。在这种情况下,编有索引的大小(在存在时为referenced_size或referenced_data_size)是从参考数据项的第一字节到下一参考数据项(例如,一个或多个连续mdat或imda的集合)的第一字节(或者在最后一个条目的情况下到参考元数据材料的末尾)的以字节为单位的距离。

可选地,可以定义使用3位的reference_type的附加值:可用于在单个“moof”或一个或多个连续“moof”之间的编索引粒度(即,referenced_size实际对应于什么)之间区分的值、以及可用于在单个媒体数据框(例如,“mdat”或“imda”)或一个或多个连续媒体数据框(“mdat”或“imda”)之间的编索引粒度之间区分的另一值。

-值4指示参考指向仅包括元数据的内容(这可能例如在包括一个MovieFragmentBox的文件的情况下发生);在这种情况下,referenced_size是从参考元数据项的第一字节到下一参考元数据项(例如,一个moof)的第一字节(或者在最后一个条目的情况下到参考元数据材料的末尾)的以字节为单位的距离;以及

-值5指示参考指向仅包括媒体数据的内容(这可能例如在包括一个MediaDataBox或IdentifiedMediaDataBox的文件的情况下发生)。在这种情况下,编有索引的大小(存在时为referenced_size或referenced_data_size)是从参考数据项的第一字节到下一参考数据项(例如,一个mdat或imda)的第一字节(或者在最后一个条目的情况下到参考元数据材料的末尾)的以字节为单位的距离。

如果使用单独的索引分段,则具有参考类型1、2或4的条目在索引分段中,并且具有参考类型0、3或5的条目在媒体文件中。

可以在DASH MPD中在索引或indexRange属性中或者在描述DASH分段的RepresentationIndex(表现索引)元素中参考分段索引框“sidx”的这些修改。

作为reference_types的列表的变形例,可以有利地使用SegmentIndexBox的flags字段的值的组合来用信号通知由“sidx”框提供的不同类型的编索引。例如,为data_indexing设置flags字段的值(例如0x000001)可以指示:例如当reference_type参考媒体内容时,数据的referenced_size可用(诸如分别为图9b、图11a或图11b中的附图标记955、1115或1180等)。同样,为metadata_indexing设置flags字段的另一值(例如,0x000010)可以指示:例如当reference_type参考媒体内容时,元数据的referenced_size可用。当然,当设置flags的这两个值时,解析器将解释“sidx”框包含双索引(分别为用于元数据的索引和用于数据的索引,诸如图9a或图11a中的“sidx”框950或1100等)。同样,设置flags字段的另一值(例如,0x000100)可以指示数据和元数据交错存在。这向解析器通知data_reference_offset可以在“sidx”框中描述并被考虑以计算字节范围。flags字段的附加值(例如,0x001000)可以指示数据在外部文件中,由此指示要从(从“dref”框中的条目标识的)远程文件计算的data_reference_offset的存在。利用由封装模块在对媒体呈现进行编索引时设置的flags的这种组合,向解析器通知关于可能的双referenced_size、第一和第二偏移等。然后,解析器可以切换到特定解析模式并通知应用和编索引级别(完整片段vs仅元数据或仅数据),使得客户端根据该信息可以选择请求策略(例如,一步或两步寻址或仅数据寻址)。

根据本发明的不同索引模式可以在如DASH媒体呈现描述那样的流传输清单文件中进一步揭示。例如,对整个媒体呈现进行编索引的索引可以在Period(周期)或AdaptationSet(自适应集)级别被声明为RepresentationIndex元素,并且由不同的Representation(例如由描述视频的区块或空间部分的各Representation)继承。该声明可以在包含元数据(“moof”或“traf”框)的封装媒体文件的BaseURL的声明之后。对于以分段(而不是整个序列)为单位编索引的索引,可以在Representation级别的SegmentBase(分段基)元素的indexRange属性内声明索引。该索引在使用相同索引的Representation之间可能是重复的。

当在Preselection(预选)内声明媒体呈现时,可以用新的“indexRange”属性(给出名称作为示例)来扩展Preselection元素,从而为DASH客户端提供字节范围以检索与Preselection有关的编索引信息。当通过URL描述索引时,Preselection可以包含“索引”属性作为如由RFC 3986定义的绝对URI或相对于BaseURL(基URL)的相对URI。当存在时,indexRange或索引属性使父元素中的索引数据的任何先前字节范围或URL过载或者重新定义该字节范围或URL。同样,Preselection可以用该新索引或indexRange属性可以应用于的BaseURL元素来扩展。当不存在时,索引应用于如周期或MPD级别那样的在Preselection的父元素中声明的BaseURL。当通过使Preselection中所包含的不同AdaptationSet和Representation的URL成为共有来将Preselection用于按需流传输时,这可以简化MPD。然而,Preselection中的BaseURL在该Preselection中声明的一个AdaptationSet或Representation中可能过载或被重新定义。这仍允许使除Preselection的一些元素(AdaptationSet或Representation)以外的URL声明成为共有。可选地,当Preselection中存在索引属性时,Preselection还可以包含“indexRangeExact(索引范围准确)”属性,其在设置为“true(真)”时,指定对于Preselection中的所有分段,由@indexRange定义的前缀外的数据从句法和语义上包含访问所有媒体流的所有访问单位所需的数据。该属性当不存在于Preselection元素中时被假定为假。同样,Preselection元素可以具有@init属性,以提供适用于Preselection的所有成分的初始化分段的位置。

然后,可以根据以下的XML架构来指定DASH PreselectionType(预选类型)(新元素或属性用粗体字符来突出显示):

在上述扩展的变形例中,修改Preselection元素以可能地包含SegmentBase、SegmentList和SegmentTemplate元素其中之一。通过这样做,Preselection元素从这些分段元素以及如针对其它AdaptationSet或Representation元素定义的继承和重新定义规则来自动地继承索引和indexRange属性以及初始化属性或元素。

使用不同的分段来对元数据和实际数据进行封装:“两步寻址”

为了便于客户端容易地获得不同媒体成分的描述,将URL与仅元数据信息相关联将是方便的。当内容是实时内容并且在运行中被编码封装以实现低延迟传递时,DASH使用分段模板机制。分段模板由SegmentTemplate元素定义。在这种情况下,特定标识符(例如,分段时间或编号)由指派给分段的动态值替代,以创建分段的列表。

为了允许仅元数据信息的有效寻址(例如用于保存索引的下载以及解析和附加请求),用于传输封装媒体数据的服务器可以使用不同的策略来构建DASH分段。特别地,服务器可以将封装视频轨分割成通过通信网络交换的两个种类的分段:仅包含元数据的分段类型(“仅元数据”分段)和仅包含实际数据的分段类型(“仅媒体数据”分段)。服务器也可以将编码位流直接封装到这两个种类的分段中。“仅元数据”分段可被视为对于客户端得到在何处找到哪些媒体数据的精确想法非常有用的索引分段。如果为了向后兼容性而最好保持单独的索引分段、因为这些索引分段最初是根据新的“仅元数据”分段在DASH中定义的,则可以在“元数据分段”中参考这些“仅元数据”分段。通过参考图14来描述一般的流传输处理,并且通过参考图19和图20来描述用两步寻址的Representation的示例。

图14示出当元数据和实际数据被分割成不同分段时根据本发明实施例的在服务器和客户端之间的用以获得媒体数据的请求和响应。为了说明起见,假定数据是以ISOBMFF封装的,并且媒体成分的描述在DASH媒体呈现描述(MPD)中可用。如图所示,第一请求和响应(步骤1400和1405)旨在向客户端提供流传输清单,即媒体呈现描述。从该清单,客户端可以根据客户端为了流传输和绘制所选择的媒体成分来确定设置和初始化其(一个或多个)解码器所需的初始化分段。

然后,客户端通过HTTP请求来请求所标识的初始化分段中的一个或多个(步骤1410)。服务器用元数据(通常是在ISOBMFF“moov”框及其子框中提供的元数据)回复(步骤1415)。客户端进行设置(步骤1420),并且可以在请求任何实际数据之前从服务器请求索引或描述性元数据信息(步骤1430)。该步骤的目的是获得与在何处找到给定时间分段的媒体成分集合的各样本有关的信息。该信息可被视为所选择的媒体成分的要显示的不同数据的“分布图”。

对于实时内容,客户端还可以通过请求所选择的内容的低级别(例如,质量、带宽、分辨率、帧速率等)的媒体数据以无过多延迟地开始绘制内容的版本来开始(在图14中未示出)。响应于该请求(步骤1430),服务器发送索引或元数据信息(步骤1435)。元数据信息远比由“sidx”框传统地提供的对于通常时间的字节范围更完整。这里,将所选择的媒体成分的框结构或者甚至该选择的超集发送到客户端(步骤1435)。通常,这对应于一个或多个“moof”框及其子框在由分段持续时间覆盖的时间间隔内的内容。对于区块化视频,这可对应于轨片段信息。当存在于封装文件中时,分段索引框(例如,“sidx”或“ssix”框)也可以在相同响应中发送(在图14中未示出)。

根据该信息,客户端可以决定获得整个片段持续时间的一些媒体成分或者一些其它媒体成分的数据,以仅获得媒体数据的子集。根据(以下所述的)清单组织,客户端可能必须标识提供在元数据信息中描述的实际数据的媒体成分,或者可以仅仅完全地或通过具有字节范围的部分HTTP请求来请求分段的数据部分。这些决定在步骤1440中进行。

在实施例中,针对各时间分段提供特定URL以参考IndexSegment,并且提供一个或多个其它URL以参考数据部分(即,“仅数据”分段)。一个或多个其它URL可以在相同的Representation或AdaptationSet中或者在MPD中也描述的关联的Representation或AdaptationSet中。

然后,客户端发出对媒体数据的请求(步骤1450)。这是两步寻址:首先获得元数据,然后从元数据获得精确数据。作为响应,客户端从“mdat”框接收一个或多个“mdat”框或字节(步骤1455)。

在接收到媒体数据时,客户端将所接收到的元数据信息和媒体数据组合。组合信息由ISOBMFF解析器处理以提取由视频解码器处理的编码位流。所获得的由视频解码器生成的图像序列可被存储以供稍后使用或在客户端的用户界面上绘制。要注意,对于基于区块的流传输或视口相关流传输,所接收到的元数据和数据部分可能不会导致完全符合的ISO基媒体文件,而是导致部分ISO基媒体文件。对于希望记录下载数据并随后完成媒体文件的客户端,可以使用部分文件格式(ISO/IEC 23001/14)来存储所接收到的元数据和数据部分。

然后,客户端准备下一个时间间隔的请求(步骤1460)。这可以涉及:如果客户端正在呈现中寻求,则获得新索引;可能获得MPD更新;或者仅仅是在实际请求媒体数据之前请求下一元数据信息以检查下一时间分段。

这里观察到,如在通过参考图14、图15a和图15b所示的序列图上示出,根据本发明实施例的使用两次请求(步骤1430和1440)的优点是为客户端提供细化其对实际数据的请求的机会。与现有技术相比,客户端有机会潜在地从预定的URL(例如,segmentTemplate)和在一个请求中仅请求元数据部分(无任何潜在无用的实际数据)。可以根据所接收到的元数据来确定对实际数据的请求。对数据进行封装的服务器可以在MPD中设置指示,以使客户端知晓请求可以分两步完成,并提供相应的URL。如下文所述,存在服务器在MPD中用信号通知该情况的不同可能性。

图15a是示出根据本发明实施例的由服务器为了将数据传输到客户端所执行的步骤的示例的框图。如图所示,第一步骤涉及将媒体内容数据编码为多个部分(可能彼此替代)(步骤1500)。

编码步骤产生优选封装的位流(步骤1505)。封装步骤可以包括:如通过参考图16至图18所述,生成索引以使得可以(例如通过使用修改后的“sidx”、修改后的“spix”或其组合)在不访问相应实际数据的情况下访问元数据。封装步骤之后是分段或打包步骤,以准备通过网络传输的分段文件。根据本发明的实施例,服务器生成两个种类的分段:“仅元数据”分段和“仅数据”(或“仅媒体数据”)分段(步骤1510和1515)。封装和打包步骤可以在单个步骤中进行,例如以供实时内容传输用,以减少传输延迟和端(服务器侧的捕获)到端(客户端侧的显示)延迟。

接着,在提供向不同种类的分段的直接访问的流传输清单中(例如,在MPD中)描述从封装步骤产生的媒体分段。该步骤使用以下实施例其中之一来进行适合实时后期绑定的DASH信号通知。

接着,将媒体文件或具有其描述的分段发布在流传输服务器上,以供客户端使用(步骤1520)。

图15b是示出根据本发明实施例的由客户端为了从服务器获得数据所执行的步骤的示例的框图。

如图所示,第一步骤涉及请求和获得媒体呈现描述(步骤1550)。然后,客户端通过使用所获得的媒体描述的信息项来初始化其(一个或多个)播放器和/或(一个或多个)解码器(步骤1555)。

接着,客户端从媒体描述中选择要播放的一个或多个媒体成分(步骤1560),并请求与这些媒体成分有关的描述性信息(例如,来自封装的描述性元数据)(步骤1565)。在本发明的实施例中,这涉及获得一个或多个仅元数据分段。接着,该描述性信息由解封装解析器模块解析(步骤1570),并且可选地包含索引的解析后的描述性信息由客户端使用以对实际需要的数据或数据的一部分发出请求(步骤1575)。例如,在区块化视频的情况下,数据的一部分可以涉及获得视频中的一些区块。

如通过参考图14所述,这可以根据媒体呈现描述中的描述级别而在客户端和服务器之间的一个或多个请求和响应中进行。

图16示出在例如考虑不同质量或分辨率的区块化视频和区块轨时、分解为“仅元数据”分段和“仅数据”(或“仅媒体数据”)分段的示例。

如图所示,用给定质量或分辨率级别L1的区块对第一视频进行编码(步骤1600),并且用另一质量或分辨率级别L2的区块对同一视频进行编码(步骤1605)。区块的网格例如当仅量化步长变化时可以跨两个级别对齐,或者例如当分辨率从一个级别改变为另一级别时可能不对齐。例如,与在低分辨率视频中相比,在高分辨率视频中可能存在更多的区块。

接着,将各分辨率级别(L1和L2)封装到轨中(步骤1610和1615)。根据实施例,如图16所示,将各区块封装在自身的轨中。在这样的实施例中,各级别的区块基轨可以是如在ISO/IEC 14496-15中定义的HEVC区块基轨,并且各级别的区块轨可以是如在ISO/IEC14496-15中定义的HEVC区块轨。传统地,当为利用DASH的流传输做准备时,将在AdaptationSet中描述各区块或区块基轨,其中各级别潜在地提供替代Representation。这些Representation各自中的媒体分段使得DASH客户端能够以时间为单位请求给定区块的元数据和相应实际数据。

在后期绑定方法(根据该方法,客户端能够考虑到客户端上下文来选择和组成视频的空间部分(区块)以获得并绘制最佳视频)中,客户端进行两步方法:首先获得元数据(称为TileIndexSegment),然后基于所获得的元数据,请求实际数据(称为TileDataSegment)。然后,组织分段使得可以在最少数量的请求中访问元数据信息,并且以使得客户端能够仅选择和请求该客户端需要的内容的粒度来组织媒体数据,这样更方便。

为此,封装模块针对给定的分辨率级别,创建包含在步骤1610中封装的轨集合中的轨的所有元数据(“moof”+“traf”框)的仅元数据分段(如表示为1620的仅元数据分段那样)、以及仅媒体数据分段(通常为针对各区块为一个且可选地如果包含NAL单元则针对区块基轨为一个)(如表示为1625的仅媒体数据分段那样)。

这可以紧接在编码之后(当在步骤1600和1605中编码的视频仅是内存表现时)或稍后基于第一传统封装之后(在步骤1610和1615中对编码视频进行封装之后)在运行中进行。然而,应注意,在使媒体呈现可用于按需访问的情况下、将从步骤1610和1615产生的封装媒体数据保持为有效的ISO基媒体文件方面存在优点。当初始轨集(1610和1615)的轨在同一文件中时,不论级别的数量如何,都可以使用单个仅元数据分段1620来描述所有轨。分段1650将是可选的。用户数据框可用于指示由可选地具有轨到级别映射(track_Id、level_ID对)的该仅元数据轨所描述的级别。当初始轨集(1610和1615)的轨不在同一ISO基媒体文件中时,这会对原始轨(1610和1615)生成造成更多约束。例如,标识符(例如,track_ID、track_group_id、sub-track_ID、group_ID)应各自共享相同的范围以避免标识符的冲突。

图17示出针对各分辨率级别将媒体成分分解为一个仅元数据分段(在图17中表示为1700)和一个仅数据分段(在图17中表示为1705)的示例。这具有当初始封装在单个“mdat”框中时不会破坏针对样本的偏移的优点。然后,可以简单地将描述性元数据从初始轨片段封装复制到仅元数据分段。此外,对于通过具有字节范围的部分HTTP请求来寻址和请求数据的客户端,只要这些客户端可以获得描述数据组织的元数据,将数据描述为一个大的“mdat”框时就不会有损失。

新的仅元数据分段的定义

图18a、图18和图18c示出仅元数据分段的不同示例。

图18a示出由“temp”框1802标识的仅元数据分段1800的示例。仅元数据分段包含一个或多个“moof”框1806或1808,但不具有“mdat”框。仅元数据分段可以包含分段索引“sidx”框1804或子分段索引框(未示出)。仅元数据分段的“styp”框1802内的品牌可以包括特定品牌,该特定品牌指示对于传输,将动画片段的元数据和媒体数据封装在单独的分段或分割分段中。该特定品牌可能是主要品牌或兼容品牌其中之一。当在仅元数据分段1800中使用时,“sidx”框1804仅从流访问点的持续时间、大小和存在以及类型方面对moof部分进行编索引。为了避免解析器的误解,reference_type可以使用新值来指示moof_only被编索引。

图18b是图18a的变形例,其中为了区别于现有分段,使用新的分段类型标识:“styp”框由指示该分段文件包含仅元数据分段的“mtyp”框1812代替。该框具有与“styp”和“ftyp”相同的语义,其中新的四字符代码指示该分段不封装动画片段,而仅封装其元数据。对于图18a中的变形例,仅元数据分段可以包含“sidx”和“ssix”框、以及至少一个“moof”框而无任何“mdat”框。“styp”框1812可包含专用于将分割方案用信号通知到相同动画片段的单独分段或分割分段中的品牌作为主要品牌。

图18c是所标识的仅元数据分段1820的另一变形例。图18c示出针对分段参考框1822存在新框“sref”1826。建议将该框放在第一个“moof”框1828之前、放在可选的“sidx”框1824之前或之后。分段参考框1822提供由该仅元数据分段参考的仅数据分段的列表。这包括标识符的列表。如通过参考图16的步骤1610和1615所述,这些标识符可以对应于来自关联封装轨的集合的track_ID。要注意,“sref”框1826也可以与变形例1800或1810一起使用。

“sref”框的说明可以如下:

aligned(8)class SegmentReferenceBox extends Box(‘tref’){

unsigned int(32)segment_IDs[];

}

其中:segment_IDs是提供所参考的分段的分段标识符的整数数组。值0不应存在。给定值不应在数组中重复。在segment_IDs数组中应存在与“moof”框内的“traf”框的数量一样多的值。建议当“traf”框的数量从一个“moof”框到另一“moof”框变化时,对仅元数据分段进行分割,使得该分段内的所有“moof”框都具有相同数量的“traf”框。

作为“sref”框1826的替代,仅元数据分段可以经由“tref”框以轨为单位与仅媒体数据分段相关联。仅元数据分段中的各轨与该轨通过其“tref”框中的专用轨参考类型描述的仅媒体数据分段相关联。例如,可以使用四字符代码“ddsc”(任何保留且未使用的四字符代码都适合)来指示“数据描述”。仅元数据分段中的轨的“tref”框包含提供所描述的仅媒体数据分段的track_ID的类型“ddsc”的一个TrackReferenceTypeBox(轨参考类型框)。在仅元数据分段的各轨中的类型为“ddsc”的TrackReferenceTypeBox中应存在仅一个条目。这是因为,仅元数据分段和仅媒体数据分段是时间对齐的。

当在仅元数据分段1800、1810或1820中使用时,“sidx”框从流访问点的持续时间、大小、存在和类型方面仅对moof部分进行编索引。为了避免解析器的误解,“sidx”框中的reference_type可以使用新值来指示moof_only被编索引。同样,变形例1800、1810或1820可包含在上述实施例中描述的空间索引“spix”。当如通过参考图16中的步骤1610和1615所述的初始轨集在针对各片段提供moof和mdat大小这两者的版本中已包含“sidx”框时,可以通过仅仅保持moof大小并忽略mdat大小来获得仅元数据分段的“sidx”。

仅媒体数据分段的定义

图18d示出表示为1830的“仅媒体数据”分段或“仅数据”分段的示例。仅数据分段包含短头部加上“mdat”框的级联。“mdat”框可对应于来自相同轨的连续片段的mdat。这些“mdat”框可对应于来自不同轨的相同时间片段的“mdat”框。仅数据分段的短头部部分包括第一ISOBMFF框1832。该框允许将分段标识为仅数据分段,这归功于特定的保留的四字符代码。

在分段1830的示例中,“dtyp”框用于指示该分段是仅数据分段(数据类型)。该框具有与“ftyp”类型相同的语义,即提供与使用中的品牌以及兼容品牌(例如,指示存在分割分段或单独分段的品牌)的列表有关的信息。另外,“dtyp”框包含例如作为32位字的标识符。该标识符用于将仅数据分段与仅元数据分段相关联,并且更具体地与仅元数据分段中的一个轨或轨片段描述相关联。当仅数据分段包含来自单个轨的数据时,标识符可以是track_ID值。标识符当用在构建分段所根据的封装轨中时,可以是已标识媒体数据框“imda”的标识符。当仅数据分段包含来自数个轨或数个已标识媒体数据框的数据时,标识符可以是可选的,而是在专用索引中或通过已标识媒体数据框进行该标识。

图18e示出由特定框1842(例如,“dtyp”框)标识的“仅媒体数据”分段1840或“仅数据”分段。该仅数据分段包含已标识媒体数据框。这可以促进仅元数据分段中的轨片段描述与它们在一个或多个仅数据分段中的相应数据之间的映射。

在封装步骤1505期间,当应用于基于区块的流传输时,特别是当区块轨各自被封装在自身的轨中并且该打包或分段步骤对所有区块使用一个DataSegment(数据分段)(如利用图17中的附图标记1700所示)时,服务器可以使用将轨片段描述与特定“mdat”框相关联的手段。这可以通过在“imda”中而不是在传统的mdat中或在各自具有专用URL的物理上单独的mdat框中存储区块数据来进行。然后,在元数据部分中,dref框可以通过DataEntryImdaBox“imdt”指示“imda”在使用中,或者向与区块轨的给定轨片段相对应的“mdat”提供明确的URL。对于可以从不同区块重构复合视频的基于区块的流传输的使用情况,“imda”框可以使用uuid值而不是32位字。这确保了当从不同的ISO基媒体文件组合时,在已标识媒体数据框之间不会发生冲突。

MPD中的信号通知改进索引(适合于按需配置文件)

根据实施例,在MPD(属性或描述符)中创建专用句法元素,从而以分段为单位提供用以仅寻址元数据部分的字节范围。例如,如上所述,SegmentBase元素中的用以在DASH级别揭示字节范围的@moofRange属性被编索引在扩展“sidx”框或“spix”框中。这在分段对一个动画片段进行封装时可以是方便的。当分段对多于一个的动画片段进行封装时,该新句法元素应提供字节范围的列表(针对各片段存在一个字节范围)。然后,按照如下修改SegmentBase元素的架构(新属性采用粗体):

注意,“moof”框也可以是面向ISOBMFF的,并且如“metadataRange”那样的通用名称可以是更好的名称。这可以允许除ISOBMFF以外的其它格式在它们允许从媒体数据(例如,Matroska或WebM的MetaSeek、Track、Cue等vs.块结构)分离和标识描述性元数据时从两步寻址中受益。

根据其它实施例,可以使用现有句法,但可以用新值扩展现有句法。例如,属性indexRange可以指示新的“sidx”框或新的“spix”框,并且indexRangeExact属性的值可被修改为比当前值“准确”或“不准确”更明确。索引的实际类型或版本是在解析索引框(例如,“sidx”或“spix”)时确定的,但寻址与索引的实际版本或类型无关。对于indexRangeExact属性的扩展值,可以定义以下新的值集:

-“sidx_only”(对应于以前的“准确”值),

-“sidx_plus_moof_only”(范围是准确的),

-当indexRange直接提供moof的字节范围而不提供sidx的字节范围时为“moof_only”(这里,范围是准确的),

-“sidx_plus”(对应于以前的“不准确”值),以及

-“sidx_plus_moof”(范围可能不准确;即,可以对应于sidx+moof+一些附加字节,但至少包括sidx框+moof框)。

然后修改[email protected]元素的XML架构以支持枚举值而不是布尔值。

可以针对Representation或AdaptationSet来定义DASH描述符以指示使用特殊索引。例如,具有特定和保留方案的SupplementalProperty(补充属性)让客户端知晓:通过检查分段索引框“sidx”,客户端可以找到更精细的编索引,或者空间索引可用。为了分别用信号通知上述两个示例,可以定义保留的scheme_id_uri值(这里的URN值仅仅是示例):分别为“urn:mpeg:dash:advanced_sidx”和“urn:mpeg:dash:spatially_indexed”,具有以下的语义:

-定义URN“urn:mpeg:dash:advanced_sidx”以针对在包含具有该特定方案的描述符的DASH元素中所描述的分段来标识使用中的分段索引的类型。属性值是可选的,并且当存在时,提供与编索引信息是否准确以及被编索引的内容的性质有关的指示(例如,如在indexRangeExact值的变形例中定义的sidx_only、sidx_plus_moof_only等)。使用描述符的值属性而不是修改indexRangeExact,这保留了向后兼容性。

-定义URN“urn:mpeg:dash:spatially_indexed”以指示在包含具有该特定方案的描述符的DASH元素中所描述的分段包含空间索引。例如,该描述符可以设置在还包含SRD描述符(例如,描述区块轨)的AdaptationSet内。该描述符的值属性是可选的,并且当存在时可以包含提供与空间索引有关(例如,与编有索引的空间部分的性质有关)的详细信息的指示:区块、independent_tile、独立位流等。

为了增强向后兼容性并避免破坏传统客户端,可以将这两个描述符作为EssentialProperty写入MPD中。这样做将确保传统客户端在解析其不支持的索引框时不会失败。

揭示DASH级别的重排分段(适用于后期绑定实时配置文件)

DASH两步寻址的其它实施例涉及为仅元数据分段和仅数据分段这两者提供URL。这可以在新的DASH配置文件中(例如,在实际请求数据之前获得与数据有关的描述性信息可能是有用的“后期绑定”配置文件或“基于区块的”配置文件中)使用。这样的配置文件可以通过具有专用URN(例如,“urn:mpeg:dash:profile:late-binding-live:2019”)的MPD元素的配置文件属性来在MPD中用信号通知。例如,这对于优化传输数据量是有用的:可以仅请求有用数据并通过网络发送。在DASH中使用不同的URL(而不是直接或通过索引使用字节范围)是有用的,因为可以用DASH模板机制描述这些URL。特别地,这对于实时流传输可以是有用的。

利用MPD中的这种指示,客户端可以寻址动画片段的元数据部分,从而如图14所示潜在地保存一次往返(例如,索引的请求/响应)。

图19示出表示为1900的MPD的示例,其中表示为1905的Representation允许两步寻址。根据例示示例,在MPD中使用表示为1910的SegmentTemplate机制来描述Representation元素1905。可以认为,SegmentTemplate元素通常为如初始化分段1915、索引分段或媒体分段那样的不同类型的分段提供属性。

根据实施例,用分别提供到仅元数据分段和仅数据分段的URL的构建规则的新属性1920和1925来扩展SegmentTemplate。这需要如通过参考图16或17所述的分段,其中描述性元数据和媒体数据是分开的。提供新属性的名称作为示例。这些属性的语义可以如下:

@metadata指定用于创建元数据(或“仅元数据”)分段列表的模板。如果既不包括$Number$也不包括$Time$标识符,则这向Representation索引提供URL,该Representation索引向动画片段或整个文件的不同描述性元数据(例如,扩展的sidx、spix、这两者的组合)提供偏移和大小。

@data指定用以创建数据(或“仅数据”)分段列表的模板。如果既不包括$Number$也不包括$Time$标识符,则这向Representation提供URL,该Representation向动画片段或整个文件的不同描述性元数据(例如,扩展的sidx、spix、这两者的组合)提供偏移和大小。

对允许两步寻址的Representation或适合于后期绑定的Representation进行组织和描述,使得这两者的初始化分段(例如,初始化分段1950)以及接着的MetadataSegment(元数据分段)(例如,元数据分段1955或1965)和DataSegment(例如,数据分段1960或1970)的一个或多个级联对的级联得到有效的ISO基媒体文件或符合的位流。根据图19所示的示例,初始化分段1950、元数据分段1955、数据分段1960、元数据分段1965和数据分段1970的级联得到符合的位流。

对于给定分段,下载元数据分段的客户端可以决定下载该数据分段的子部分的整个相应数据分段,或者甚至不下载任何数据。当应用到基于区块的流传输时,针对各区块可以存在一个Representation。如果描述区块的Representation包含相同的MetadataSegment(例如,相同的URL或相同的内容)并且被选择为一起播放,则预期MetadataSegment的仅一个实例级联。

应注意,对于基于区块的流传输,MetadataSegment可被称为TileIndexSegment。同样,对于基于区块的流传输,DataSegment可被称为TileDataSegment。当前分段的MetadataSegment的该实例应在所选择的区块的任何DataSegment之前级联。

图20示出表示为2000的MPD的示例,其中表示为2005的Representation被描述为(如通过参考图19所述,通过使用属性2015和2020)提供两步寻址,并且还通过为整个分段提供单个URL(附图标记2030)来提供向后兼容性。

传统客户端或甚至用于后期绑定的智能客户端可以决定使用SegmentTemplate2010的媒体属性中的URL来在单次往返中下载完整分段。这种表现给封装带来了一些约束。分段应以两个版本可用。第一版本是由一个或多个动画片段版本组成的经典分段,其中一个“moof”框紧接在相应的“mdat”框之后。第二版本是具有分割分段的版本,其中一个分段包含moof部分并且第二分段包含实际数据部分。

适合于直接寻址和两步寻址的Representation应满足以下条件。表示为2040的级联和表示为2080的级联将得到等效位流和显示内容。

级联2040涉及初始化分段(在例示示例中为初始化分段2045)的级联以及接着的MetadataSegment(例如,元数据分段2050或2060)和DataSegment(例如,数据分段2055或2065)的对的一个或多个级联。

级联2080涉及初始化分段(在例示示例中为初始化分段2085)与一个或多个媒体分段(例如,媒体分段2090和2095)的级联。

根据通过参考图19和图20所述的实施例,Representation是自包含式的(即,Representation包含所有的初始化、编索引或元数据和数据信息)。

在基于区块的流传输的情况下,封装可以使用如图16或图17所示的区块基轨和区块轨。MPD可以通过提供不是自包含式的Representation来反映该组织。这种Representation可被称为编有索引Representation。在这种情况下,编有索引Representation可以依赖于描述区块基轨的另一Representation来获得初始化信息或编索引或元数据信息。

编有索引Representation可以仅仅描述如何访问数据部分,例如将URL模板关联到地址DataSegment。这种Representation的SegmentTemplate可以包含“数据”属性但不包含“元数据”属性,即不提供URL或URL模板来访问元数据分段。为了使得可以获得元数据分段,编有索引Representation可以包含“indexId”属性。无论名称如何,该新Representation的属性(例如,indexId)都将描述如何访问元数据或编索引信息的Representation指定为空格分隔的值列表。大多数情况下,可能存在仅一个在indexId中声明的Representation。可选地,可以提供indexType属性来指示索引的种类或者在所指示的Representation中存在元数据信息。

例如,indexType可以指示“仅索引”或“完整元数据”。前者指示仅例如sidx、扩展sidx、空间索引那样的编索引信息可用。在这种情况下,所参考的Representation的分段应提供URL或字节范围以访问索引信息。后者指示完整描述性元数据(例如,“moof”框及其子框)可能可用。在这种情况下,所参考的Representation的分段应提供URL或字节范围以访问MetadataSegment。根据在indexType属性中声明的索引的类型,分段的级联可能不同。当所参考的Representation提供对MetadataSegments的访问时,来自所参考的Representation的给定时间的分段应放置在相同给定时间的来自IndexedRepresentation的任何DataSegment之前。

在变形例中,IndexedRepresentation可以仅参考描述MetadataSegment的Representation。在该变形例中,可以不使用indexType属性。然后,级联规则是系统化的:对于给定时间间隔(即,分段持续时间),来自所参考的Representation的MetadataSegment被放置在IndexedRepresentation的DataSegment之前。推荐如下:分段在IndexedRepresentation和其indexId属性中声明的Representation之间进行时间对齐。这种组织的一个优点是:客户端可以根据在MetadataSegment中获得的信息和当前客户端约束或需求,系统地从所参考的Representation下载分段并有条件地从一个或多个IndexedRepresentation请求数据。

在indexId属性中指示的参考Representation可被称为IndexRepresentation(索引表现)或BaseRepresentation(基表现)。该种类或Representation可以不向数据分段提供任何URL,而仅向MetadataSegment提供URL。IndexedRepresentation本身是不可播放的,并且可以由特定属性或描述符这样描述。还应选择相应的BaseRepresentation或IndexRepresentation。MPD可以双重链接IndexedRepresentation和BaseRepresentation。BaseRepresentation可以是向具有在其indexId属性中存在的BaseRepresentation的id的各IndexedRepresentation的associatedRepresentation(关联表现)。为了证明BaseRepresentation与其IndexedRepresentation之间的关联合格,可以在BaseRepresentation的associationType(关联类型)属性中使用特定的未使用和保留的四字符代码。例如,用于“数据描述”的代码“ddsc”,作为潜在地用在“仅元数据”分段的tref框中的代码。如果没有保留专用代码,则可以将BaseRepresentation关联到IndexedRepresentation,并且可以在BaseRepresentation的associationType属性中将关联类型设置为“cdsc”。

在应用于图16所示的打包示例之后,轨1620可以在MPD中被声明为BaseRepresentation或IndexRepresentation,而轨1621~1624和可选轨1625被声明为IndexedRepresentation,所有这些都具有在indexId属性中描述轨1620的BaseRepresentation的id。

在应用于图17所示的打包示例之后,轨1700可以在MPD中被声明为BaseRepresentation或IndexRepresentation,而轨1710可被声明为具有描述轨1700的BaseRepresentation的id作为indexId属性值的IndexedRepresentation。

如果IndexedRepresentation也是依赖表现(将dependencyId设置为另一Representation),则除了索引或元数据信息的级联规则之外,该依赖性的级联规则也适用。如果依赖表现及其(一个或多个)互补Representation共享相同的IndexRepresentation,则对于给定分段,IndexRepresentation的MetadataSegment首先级联一次,接着是来自(一个或多个)互补Representation的DataSegment,接着是dependentRepresentation的DataSegment。

BaseRepresentation或IndexRepresentation的一个使用示例可以是多个级别的区块化视频(如图5中的视频500、505、510或515那样)的元数据信息在单个区块基轨中的情况。可以使用一个BaseRepresentation来描述跨不同级别的所有区块的所有元数据。这对于客户端在单个请求中使用不同质量或分辨率的不同空间区块获得所有可能的时空组合而言可以是方便的。

MPD可以将区块轨的描述与当前Representation和允许两步寻址的Representation混合。例如当必须完全下载低级别、而可以可选地下载高级别或改进级别时,这可以是有用的。仅高级别可以用两步寻址来描述。这使得低级别仍可由不支持具有两步寻址的Representation的较旧客户端使用。要注意,也可以通过向SegmentListType添加URL类型的“元数据”属性和“数据”属性来用SegmentList进行两步寻址。

为了使客户端快速标识MPD中的IndexedRepresentation,可以使用Representation的编解码器属性的特定值:例如,可以使用“hvt2”样本条目来指示仅存在数据(且不存在描述性元数据)。这避免了在SegmentTemplate或SegmentList中检查indexId属性或indexType属性的存在或者数据属性的存在,或者检查任何DASH描述符或角色(Role),该角色指示由于Representation提供仅向数据的访问(即,仅描述DataSegment),因此Representation在某种程度上是部分的。HEVC区块的BaseRepresentation或IndexRepresentation可以使用HEVC区块基轨“hvc2”或“hev2”的样本条目。为了将BaseRepresentation或IndexRepresentation描述为特定轨的描述,可以在BaseRepresentation或IndexRepresentation的编解码器属性(例如,当用HEVC对媒体数据进行编码时的“hvit”(“HEVC索引轨”的缩写))中使用专用样本条目。要注意,该机制可以扩展到例如通用视频编码那样的其它编解码器。在利用服务器的打包或分段步骤期间,可以将该特定样本条目设置为区块基轨中的受限制样本条目。为了保持原始样本条目的记录,可以将用于受限制样本条目的定义的框(“rinf”框)与记录原始样本条目的OriginalFormatBox(原始格式框)(通常对于HEVC区块基轨为“hvt2”或“hev2”)一起使用。

图21是用于实现本发明的一个或多个实施例的计算装置2100的示意框图。计算装置2100可以是诸如微计算机、工作站或轻型便携式装置等的装置。计算装置2100包括通信总线2102,其中该通信总线2102连接至以下组件:

-诸如微处理器等的中央处理单元(CPU)2104;

-随机存取存储器(RAM)2108,用于存储本发明实施例的方法的可执行代码以及寄存器,其中这些寄存器被适配为记录实现用于请求、解封装和/或解码数据的方法所需的变量和参数,其中RAM 2108的存储器容量例如可以利用连接至扩展端口的可选RAM来扩展;

-只读存储器(ROM)2106,用于存储用于实现本发明实施例的计算机程序;

-网络接口2112,其反过来通常连接至进行要处理的数字数据的发送或接收所经由的通信网络2114。网络接口2112可以是单个网络接口、或者包括不同的网络接口(例如,有线接口和无线接口或者不同种类的有线接口或无线接口)的集合。在CPU 2104中所运行的软件应用的控制下,将数据写入网络接口以供发送或者从网络接口读取数据以供接收;

-用户接口(UI)2116,用于从用户接收输入或向用户显示信息;

-硬盘(HD)2110;

-I/O模块2118,用于相对于诸如视频源或显示器等的外部装置接收/发送数据。

可执行代码可以存储在只读存储器2106中、硬盘2110上或者例如盘等的可移除数字介质上。根据变形例,程序的可执行代码可以在执行之前利用通信网络经由网络接口212来接收,从而存储在通信装置2100的诸如硬盘2110等的存储部件其中之一中。

中央处理单元2104被适配为控制和引导根据本发明实施例的一个或多个程序的指令或软件代码的一部分的执行,其中这些指令存储在上述存储部件其中之一中。在通电后,CPU 2104例如能够在从程序ROM 2106或硬盘(HD)2110加载了来自主RAM存储器2108的与软件应用有关的指令之后,执行这些指令。这种软件应用在由CPU 2104执行的情况下,使得进行先前附图所示的流程图的步骤。

在本实施例中,设备是使用软件来实现本发明的可编程设备。然而,可替代地,本发明可以采用硬件(例如,采用专用集成电路或ASIC的形式)来实现。

尽管以上参考具体实施例对本发明进行了描述,但本发明不限于这些具体实施例,并且对本领域技术人员而言,在本发明的范围内的修改将是显而易见的。

许多其它修改和改变在参考仅以示例方式给出的并且并不意图限制本发明的范围的前述例示实施例时向精通本技术的人员表明这些修改和改变仅是由所附权利要求书来确定的。特别地,在适当情况下,可以互换来自不同实施例的不同特征。

在权利要求书中,词语“包括”没有排除其它元件或步骤,并且不定冠词“a”或“an”没有排除多个。在相互不同的从属权利要求中陈述不同的特征的仅有事实并不表明不能有利地使用这些特征的组合。

59页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:信息处理装置和信息处理系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类