用于生成媒体数据的方法与流程

文档序号:19160826发布日期:2019-11-16 01:20阅读:404来源:国知局
本发明通常涉及如下领域:例如根据如mpeg标准化组织所定义的iso基媒体文件格式来对定时媒体数据进行封装和解析,以提供便于媒体数据的互换、管理、编辑和呈现的灵活且可扩展的格式并且改善流管理。
背景技术
::国际标准化组织基媒体文件格式(isobmff,iso/iec14496-12)是描述供本地存储或者供经由网络或经由另一位流传递机制进行传输的编码定时媒体数据位流的众所周知的灵活且可扩展的格式。该文件格式是面向对象的。该文件格式包括被称为框(box)的构建块,其中这些框是顺次或层级组织的,并且定义编码定时媒体数据位流的诸如定时参数和结构参数等的参数。在该文件格式中,整个呈现被称为动画(movie)。动画在逻辑上被分割成轨。各轨表示媒体数据(例如,视频的帧)的定时序列。在各轨内,数据的各定时单元被称为样本;这可以是视频或音频的帧。样本按顺序隐含地编号。动画可被组织为动画和轨片段(trackfragment)的列表。动画片段在时间上扩展了呈现。这些动画片段提供先前已存在于被称为moviebox(动画框)的框中的信息。实际样本在被称为mediadatabox(媒体数据框)的框中。在动画片段内,存在轨片段的集合(针对各轨存在零个或多个轨片段)。而轨片段包含零个或多个轨运行(trackrun),各轨运行记录该轨的样本的连续运行。文件格式具有描述用于各种基于nal(网络抽象层)单元的视频编码格式的封装工具的另一部分(part-5,iso/iec14496-15)。这种编码格式的示例是avc(高级视频编码)、svc(可分级视频编码)、hevc(高效率视频编码)或l-hevc(分层hevc)。hevc和类似的视频编码格式定义样本(例如,图片)的不同空间细分:区块(tile)、条带(slice)和条带分段(slicesegment)。区块定义包含整数个编码树单元(ctu)或编码块(以下全部称为编码单元)的图片的矩形区域。如此,区块是表示关注区域(roi)的良好候选。然而,在句法方面的编码视频数据(位流)组织及其到nal单元(或nalu)中的封装是基于条带和条带分段(如在avc中那样)。hevc中的条带是条带分段的集合,其中至少第一条带分段是独立条带分段,其它条带分段(在存在的情况下)是依赖条带分段。条带分段包含整数个连续(按光栅扫描顺序)ctu。条带不必一定具有矩形形状(因而,对于roi表现不如区块适合)。将条带分段作为以下编码在hevc位流中:slice_segment_header,之后是slice_segment_data。独立条带分段(iss)和依赖条带分段(dss)的不同之处在于这两者的头部:依赖条带分段由于重复使用来自独立条带分段的头部的信息,因而具有较短的头部。独立条带分段和依赖条带分段这两者都包含位流中的进入点的列表。在利用区块对视频位流进行编码时,在mpeg文件格式的第15部分中存在描述工具以描述nal单元到区块的映射。该第15部分描述用以将区块封装为如下的工具:·单个视频轨中的所有区块;或者·区块基轨内所存储的区块轨中的具有公共信息的区块轨中的各hevc区块;或者·区块基轨内所存储的区块轨中的具有公共信息的区块轨中的形成矩形区域的hevc区块的集合。媒体内容创建者想要提供不同版本的视频,即通过应用于所记录视频样本的复合、图像特效或操作而从同一原始视频生成的数个视频。问题是在不会使如此得到的媒体文件的大小增加得过大的情况下提供媒体内容的这些不同呈现。技术实现要素:设计了本发明以解决上述问题中的一个或多个。所提出的方案进行媒体轨的标准封装,并且进一步根据所输入的媒体轨来构建仅包含生成规则和参数的被称为生成轨(generatedtrack)的一个或多个特定轨。因而,媒体数据被存储一次并在生成轨中被引用。各生成轨在于其轨头部中描述的变换算子和参数的集合,其中指针在所使用的原始轨上。根据变换参数是静态的(对于所有样本都相同)还是动态的(基于样本而改变),存在变换参数的替代描述和存储。例如,一个可能性是将算子或变换参数在样本级别存储在“mdat”框(媒体数据框)中。根据本发明的第一方面,提供一种用于对包括多个样本的媒体数据进行编码的方法,所述方法包括:利用服务器装置,-对所述媒体数据进行编码,以获得编码后的媒体数据;-将编码后的媒体数据封装在至少一个第一轨的集合中;-生成第二轨;其中,-所述第二轨描述表示将至少一个变换算子的集合应用于至少一个第一轨的样本的结果的样本;-所述第二轨包括对所述第一轨至少之一的参考;以及-所述第二轨将所述变换算子的集合的描述包括在元数据部分中。在实施例中,所述方法还包括:-将用于表征至少一个变换算子的一个或多个参数封装在所述第二轨的元数据部分中。根据本发明的另一方面,提供一种用于对包括多个样本的媒体数据进行解码的方法,所述方法包括:利用客户端装置,-接收第一轨,所述第一轨包括对至少一个第二轨的参考和至少一个变换算子的集合的描述;-接收所述至少一个第二轨;以及-通过将所述变换算子的集合应用于在所述至少一个第二轨中所接收到的样本,来生成所述媒体数据的样本。根据本发明的另一方面,提供一种服务器装置,用于对包括多个样本的媒体数据进行编码,所述服务器装置包括处理器,所述处理器被配置为:-对所述媒体数据进行编码,以获得编码后的媒体数据;-将编码后的媒体数据封装在至少一个第一轨的集合中;-生成第二轨;其中,-所述第二轨描述表示将至少一个变换算子的集合应用于至少一个第一轨的样本的结果的样本;-所述第二轨包括对所述第一轨至少之一的参考;以及-所述第二轨将所述变换算子的集合的描述包括在元数据部分中。根据本发明的另一方面,提供一种客户端装置,用于对包括多个样本的媒体数据进行解码,所述客户端装置包括处理器,所述处理器被配置为:-接收第一轨,所述第一轨包括对至少一个第二轨的参考和至少一个变换算子的集合的描述;-接收所述至少一个第二轨;以及-通过将所述变换算子的集合应用于在所述至少一个第二轨中所接收到的样本,来生成所述媒体数据的样本。根据本发明的另一方面,提供一种可编程设备所用的计算机程序产品,所述计算机程序产品包括指令序列,所述指令序列用于在被载入所述可编程设备并由所述可编程设备执行的情况下,实现根据本发明的方法。根据本发明的另一方面,提供一种存储有计算机程序的指令的计算机可读存储介质,所述指令用于实现根据本发明的方法。如前面所述,hevc和类似的视频编码格式定义了样本(例如,图片)的不同空间细分:区块、条带和条带分段。hevc提供用于构成客户端想要显示的区块的隐式规则。其它类似的视频编码格式(如avc或omaf那样)不受益于这些隐式规则,并且需要提供复合信息,以使得客户端可以显示由子部分构成的视频。复合信息与同要进行构成的子部分有关的空间信息(位置和大小)耦合。然而,现有技术中所提供的方法和装置是静态的,并且不允许根据需要经常随着时间调整空间信息。在视频部分的位置和大小改变时(例如,在跟踪视频序列中的移动对象时),对于一些应用(特别是允许空间视频部分的合成的应用)而言,这可能是相当成问题的。本发明也是为了解决上述担忧而设计的。根据本发明的另一方面,提供一种用于从视频序列生成媒体文件的方法,所述方法包括:利用服务器,-从所述视频序列获得包括多个样本的视频数据;-基于所获得的视频数据来生成视频轨,各视频轨包括视频序列的样本,并且所述视频轨与描述性元数据相关联,所述描述性元数据包括:空间信息,其与关联的视频轨中的一个或多个样本有关;以及复合信息,用于组织所生成的视频轨,以在由客户端显示时获得完整图片;以及-生成包括所生成的视频轨的媒体文件。换句话说,本发明提出了实现空间信息,使得这些空间信息可以与一个或多个样本相关联。所关注的样本的数量可以适应于该情形,从而提供更大的灵活性。此外,在编码格式已提供了与一个或多个样本相关联的空间信息的情况下,本发明使得能够通过重复使用该空间信息以构成视频子部分,来避免该空间信息的复制。根据本发明的另一方面,提供一种用于解析媒体文件的方法,所述媒体文件包括与视频序列相对应的视频数据,所述视频数据包括多个样本,所述方法包括:利用客户端,-从所述视频数据获得视频轨,各视频轨包括视频序列的样本,并且所述视频轨与描述性元数据相关联,所述描述性元数据包括:空间信息,其与关联的视频轨中的一个或多个样本有关;以及复合信息,用于组织所生成的视频轨,以在由客户端显示时获得完整图片。根据本发明的另一方面,提供一种程序,所述程序在由计算机或处理器执行时,使得所述计算机或处理器执行以上所述的方法。根据本发明的另一方面,提供一种存储有以上所述的程序的计算机可读存储介质。根据本发明的另一方面,提供一种用于从视频序列生成媒体文件的装置,所述装置包括:-用于从所述视频序列获得包括多个样本的视频数据的部件;-用于基于所获得的视频数据来生成视频轨的部件,各视频轨包括视频序列的样本,并且所述视频轨与描述性元数据相关联,所述描述性元数据包括:空间信息,其与关联的视频轨中的一个或多个样本有关;以及复合信息,用于组织所生成的视频轨,以在由客户端显示时获得完整图片;以及-用于生成包括所生成的视频轨的媒体文件的部件。根据本发明的另一方面,提供一种用于解析媒体文件的装置,所述媒体文件包括与视频序列相对应的视频数据,所述视频数据包括多个样本,所述装置包括:-用于从所述视频数据获得视频轨的部件,各视频轨包括视频序列的样本,并且所述视频轨与描述性元数据相关联,所述描述性元数据包括:空间信息,其与关联的视频轨中的一个或多个样本有关;以及复合信息,用于组织所生成的视频轨,以在由客户端显示时获得完整图片。根据本发明的方法的至少一部分可以通过计算机来实现。因此,本发明可以采用完全硬件实施例、(包括固件、常驻软件、微代码等的)完全软件实施例、或者组合这里通常可全部称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明可以采用以介质中嵌入有计算机可用程序代码的表现的任何有形介质中体现的计算机程序产品的形式。由于本发明可以以软件来实现,因此本发明可以体现为计算机可读代码以提供至可编程设备的任何适当载体介质上。有形的非暂时性载体介质可以包括诸如软盘、cd-rom、硬盘驱动器、磁带装置或固态存储器装置等的存储介质。瞬态载体介质可以包括诸如电气信号、电子信号、光学信号、声学信号、磁信号或者例如微波或rf信号的电磁信号等的信号。附图说明现在将仅通过示例的方式并且参考以下附图来说明本发明的实施例,其中:图1示出可以使用本发明的典型客户端服务器系统;图2示出根据本发明实施例的从视觉轨生成轨的不同方式;图3示出根据本发明实施例的生成视觉轨(generatedvisualtrack)设计;图4示出表示根据本发明实施例的用于对包含一个或多个生成视觉轨的媒体文件进行封装的方法的流程图;图5示出根据本发明实施例的媒体文件或媒体分段的解析;图6示出本发明实施例中的样本的生成;图7表示可以实现一个或多个实施例的步骤的服务器或客户端装置的框图;图8和图8b示出本发明实施例中的用于与宽视图的场景相对应的视频的封装处理以及该宽视图的场景的提取;图9示出根据本发明的形成轨组的子图片轨的封装;图10示出空间复合所用的不同类型的轨组;图11示出隐式和显式复合;图12示出用于利用隐式复合的媒体文件的解析处理;以及图13示出根据本发明的轨组中的子集以及重叠轨组。具体实施方式图1示出可以使用本发明的典型客户端服务器系统。本发明不限于这样的系统,因为本发明可以涉及可以以任何方式分发(而不仅仅是通过通信网络上的流传输)的媒体文件的生成。该系统在服务器侧包括:媒体编码器100(特别是视频编码器)、媒体打包器110和媒体服务器120。媒体打包器110包括nalu解析器111、存储器112和isobmff(isobmff)写入器113。媒体服务器120可以生成清单文件(mpd)121和媒体分段122。该系统在客户端侧还包括具有如下的不同模块的媒体客户端150:isombff解析器152;媒体解码器153(特别是视频解码器);显示器154;以及http客户端151,用于支持自适应http流传输,特别是流式清单159的解析,以控制媒体分段190的流传输。该系统还包含能够对编码位流和/或解码图片进行操作的模块:变换模块155。通常,媒体客户端150请求清单文件121,以便获得在媒体服务器120上可用的不同媒体表现的描述。因此,媒体客户端150然后请求其感兴趣的媒体分段122。这些请求经由http模块151进行。然后,所接收到的媒体分段由isobmff解析器152解析,由视频解码器153解码,可选地通过变换单元155变换以在显示器154上播放。视频序列通常由视频编码器100编码,以便由媒体打包器110封装到一个或数个文件中。媒体服务器120使所生成的文件对客户端可用。根据本发明的一些实施例,另一模块作为媒体打包器的一部分或在媒体打包器的外部包括在系统中:生成单元130。该单元允许用户观看封装后的媒体轨,并且通过对样本应用各种图像操作来编辑和修改。在用户想要将他的复合结果作为附加轨插入isobmff写入器所产生的媒体文件中时,该生成单元与媒体打包器交互。媒体服务器在本发明主要应对通过对一个或多个媒体轨的复合、派生、合成、变换或聚合而产生的轨的媒体封装和构建/描述的意义上是可选的。对于媒体服务器,传输部分(http模块和清单解析器)在本发明也适用于包括简单媒体播放器的媒体客户端的意义上是可选的,其中向该简单媒体播放器提供了封装后的媒体文件以供渲染。媒体文件可以通过完全下载、通过渐进式下载、通过自适应流传输、或者仅通过在盘上或从存储器读取媒体文件来提供。根据本发明的方法由媒体打包器模块110进行,并且更具体地由isobmff写入器模块113与复合单元130协作地进行,其中该方法在由如图7所示的服务器设备的cpu704执行时包括软件代码。通常,封装模块负责读取包括压缩视频的视频位流的高级句法,以提取和识别不同的nal单元,并且根据isobmff框层级结构将包含视频位流的isobmff文件或isobmff分段122中的编码数据组织为具有描述性元数据的一个或多个轨。isobmff文件或isobmff分段122可能还包含一个或多个其它同步媒体轨,例如音频、字幕、文本、元数据…。根据本发明的一方面,isobmff写入器对媒体轨生成附加轨,这些附加轨是通过复合单元130对媒体轨应用复合或变换或派生或特效而产生的。为了避免复制数据(即,原始数据+所生成的数据),isobmff写入器113构建被称为生成轨的一个或多个特定轨,这些特定轨代替提供变换的结果,而是描述变换规则和参数以构建生成轨。针对各复合或派生创建一个生成轨。这具有将原始轨和变换轨这两者都保持在同一媒体文件中的优点。参考图4来进一步详述封装处理。参考图5和图6来详述媒体文件或媒体分段的解析处理、读取和渲染。图2示出从视觉轨生成轨的不同方式。生成视觉轨可以是通过对一个或多个视频轨应用一个或多个操作而产生的。图2的(a)描述通过单个变换算子201从单个输入视频轨200获得的生成视觉轨202。图2的(b)描述通过多个变换算子211从单个输入视频轨210获得的生成视觉轨212。图2的(c)描述通过单个操作221从多个视频轨220获得的生成视觉轨222。图2的(d)描述通过多个操作231从多个视频轨230获得的生成视觉轨232。存在如下的情况:对于所有样本,利用相同的变换算子和相同的变换算子参数来计算生成轨的样本。将这种变换称为静态变换。相反,存在各样本可以具有彼此不同的变换算子参数的情况。在这种情况下,讨论动态变换。尽管生成视觉轨的当前设计适用于动态变换,但该设计对于静态变换而言产生一些描述开销(在各生成样本中重复变换算子和参数)。此外,当前设计暗示了在媒体数据框中描述变换。这可能对轨编辑敏感,例如在从媒体文件添加或移除轨时,对生成样本的偏移可能受到影响。本发明尽最大可能提出在元数据框中描述变换,从而避免与媒体数据混合。为此,图3所示的设计建议:在所生成的轨的元数据中定义变换规则,并且在可能的情况下至少针对静态变换也在轨的元数据中声明参数。对于动态变换,变换参数可以存储在外部轨(例如,定时元数据轨)中、或者存储在生成样本中。外部轨可以在封装后的媒体文件中,但也可以包含在另一媒体文件中。根据本发明的设计支持静态和动态的变换参数声明这两者。图3示出根据本发明实施例的生成视觉轨设计。将生成视觉轨(gvt)(或派生视觉轨(dvt))作为视频轨进行描述。gvt的处理程序被设置为保留的四字符代码:“vide”。经由从gvt310开始并且指向各个输入视频轨的具有值“gtrk”或(“dtrk”)的轨参考类型来参考生成该gvt的轨。例如,gvt310是从输入视频轨301和309生成的,轨305未用在生成处理中。关于任何轨,gvt310包含指示数据是在该文件中还是在远程文件中的数据参考框312。在图3的示例中,与gvt相关的意味着样本的数据在媒体数据框“mdat”320中。数据参考框312也可以用于参考例如提供存储在其它媒体文件中的变换参数的元数据轨。gvt310包含描述样本的sampletablebox(样本表框)“stbl”313。生成视觉轨在其描述性元数据框中包含transformpropertycontainer(变换属性容器)314,该transformpropertycontainer314包含变换或操作341~344的列表以从输入轨派生生成视觉轨。这些变换或操作各自利用指示该变换或操作是静态变换还是动态变换的参数来声明。该变换或操作还包含指示该变换或操作是应用于单个输入媒体轨还是应用于输入媒体轨的列表的参数。transformproperty(变换属性)的另一参数指示该操作或变换在输入样本的解码之后还是之前应用。例如,参考图2的(a),生成视觉轨310通过轨参考类型311参考仅一个视频轨。然后,transformpropertycontainer314包含单个transformproperty类型。参考图2的(b),生成视觉轨310通过轨参考类型311参考单个视频轨。然后,transformpropertycontainer314包含transformproperty类型的列表。参考图2的(c),生成视觉轨310通过轨参考类型311参考多个视频轨。transformpropertycontainer314包含单个transformproperty类型。参考图2的(d),生成视觉轨310通过轨参考类型311来参考多个视频轨。然后,transformpropertycontainer314包含transformproperty类型的列表。transformproperty框可被专门化为单个输入轨transformproperty框和多轨transformproperty框。在优选实施例中,这通过指定transformproperty框的“version(版本)”参数的不同值来进行。在transformproperty框的“version”参数取值1时,这意味着提供单个输入轨作为变换操作数。在transformproperty框的“version”参数取值2时,这意味着将多个输入轨视为变换操作数;即,从许多输入视频样本计算生成样本。然后,提出生成视觉轨设计,从而按照如下引入变换容器框314并定义transformproperty框:用于生成轨的变换的声明:该框提供要应用轨生成所用的样本的变换的列表:具有以下语义:该框的flags(标志)参数用于描述变换的种类。该参数还提供与这些变换的复杂度有关的指示。标志值(具有以下提供的名称和值作为示例)允许在图2所示的不同配置的文件中的高级描述。如此,isobmff解析器或读取器可以容易地检查该isobmff解析器或读取器是否可以处理生成轨。all_static:表示所有包含的transformproperty框都对应于静态变换。标志值是0x000001。这意味着生成轨不包含生成样本,因为样本可以是全部从transformproperty指示生成的。all_single_input:表示所有包含的transformproperty框都涉及单个输入轨。标志值是0x000002。在设置了all_single标志值时,transformpropertycontainer仅包含version=1的transformproperty框。在未设置all_single标志值时,不能得出与所包含的transformproperty框的类型有关的结论。可以是所有动态transformproperty框(具有version=2)或者静态和动态变换的混合。num_entries参数指示应用于输入轨样本以构建生成轨的生成样本的连续变换的数量。在替代实施例中,transformpropertycontainer的版本参数可用于指示与图2不同的配置。例如:在version=1时,transformpropertycontainer框仅声明一个transformproperty框。如此,无需提供条目的数量。将version=1与all_single_input标志组合表示来自图2的配置(a)处于使用中。在未设置all_single_input标志时,该信令指示图2上的配置(a)或(c)。在version=2时,transformpropertycontainer框声明多于一个的transformproperty框。这样,应提供条目的数量(用于构建生成轨的transformproperty的数量)。在与标志的值all_single_input组合时,这指示图2上的配置(b)。在未设置all_single_input标志时,该信令指示图2上的配置(a)或(c)。然后,该框重写为:在替代实施例中,可以将标志值“all_static”中所包含的信息作为表示该轨的样本实际是空样本的生成轨的sampletablebox中的特定visualsampleentry(视觉样本条目)来给出。例如,使用保留代码:“gtse”即生成轨样本空。应用于媒体样本的各变换由transformproperty框按照如下描述(transformproperty是用于声明所有特定种类的变换的公共参数的通用框(扩展该通用transformproperty框的其它transformproperty框可以提供变换参数))。对于在transformproperty具有在样本中声明的动态参数(transformproperty框中的专用参数“params_in_samples”设置为1)的情况,在所生成的样本中声明变换参数并将这些变换参数存储在媒体数据框中:aligned(8)classgeneratedsample(){transformationearametersparameter;}具有以下语义:num_inputs指定向着变换的输入样本的数量。input_trackid指示向着变换的输入样本来自于的源轨的track_id。在设置为0时,指示前一变换或操作的输出。params_in_samples指示变换参数是否在派生样本中声明。可选地,附加标志可以指示:在params_in_samples=0时,变换参数是在同一媒体文件的另一轨中还是在远程媒体文件的另一轨中。在后者情况下,例如可以通过生成视觉轨的dataentrybox(数据输入框)中的数据url框到达该轨。param_track_id指示声明变换参数的轨(示例参数轨340)的track_id。该轨可以由生成视觉轨经由具有特定值的轨参考类型(例如:“dtrp”即派生轨参数)来参考。(这里的名称和代码仅仅是示例,不与其它轨参考类型冲突的任何保留代码都是方便的)。在替代实施例中,代替直接参考track_id,可以使用track_ref_index_or_zero参数:该参数是向类型“gtrk”的trackreferencetypebox(轨参考类型框)的基于1的索引,或者是值0以指示前一imageoperation(图像操作)的输出。在使用这种参考输入轨的方式时,具有version=1的通用transformproperty甚至可以是空的,因为对于version=1,存在仅一个输入轨,并且可以容易地从生成轨的轨参考框中检索到该轨。然后,transformproperty框按照如下重写:同样,param_track_id参数可以是参考提供变换参数的轨的具有值“dtrp”的轨参考类型341的索引。使用编码在8位上的轨参考类型将得到比track_id短的描述。track_id的一个优点是当轨包含在外部或远程媒体文件中时带来的。transfo_id是所有变换中的可用于参考所声明的transformproperty的唯一标识符。另外,仍根据本发明实施例,transformproperty的标志可以取以下值以给出与变换有关的更多信息来构建生成视觉轨:transform_is_static:表示transformproperty针对给定的轨或轨片段具有固定参数。标志值是0x000001。静态transformproperty包含要应用于输入样本的变换的参数的值。这些由被称为transformationparameter(变换参数)的特定transformproperty框其中之一指定。在标志值未设置有该值时,transformproperty框将指示在何处定义变换参数:在生成样本中、在媒体文件内的轨中、还是在媒体文件外的轨中。transform_post_decoding:表示transformproperty在为了进行生成而对样本进行解码之后应用。标志值是0x000002。后解码transformproperty要求在应用变换之前对输入样本进行解码。在未设置该标志时,transformproperty应用于压缩样本。transform_preserve_samples:表示(在应用transformproperty之后)在生成轨中获得的样本的数量将与输入轨中的数量相同。标志值是0x000004。在未设置该标志时,生成轨将包含与输入轨中的样本数量不同的样本数量。在使用“version”参数的替代实施例中,定义了从抽象transformproperty框继承的多种transformproperty框。例如,statictransformproperty(静态变换属性)框和dynamictransformproperty(动态变换属性)框,其针对变换操作数分别定义一个trackid(在track_id用于参考输入轨时)或什么也未定义(在通过生成轨的轨参考框隐含地参考输入轨时),并且针对多个变换操作数定义trackid的有序列表(分别为向类型“gtrk”的trackreferencetypebox的基于1的索引、或者值0以指示在使用track_reference框时的前一imageoperation的输出)。在用于生成视觉轨的变换是静态变换时,生成视觉轨可以不包含生成样本、或者至少包含空样本。对于这种情况,sampletablebox“stbl”313于是变为可选的,并且生成视觉轨具有元数据框的最小集合,由此变得更加紧凑。在优选实施例中,生成视觉轨仅包含moov和轨框中的初始化数据而不包含其它数据,其中变换是在这些框中描述的。在该优选实施例中,轨头部包含“flags”参数的特定值,以表示轨是空轨(无样本数据)。该信息也可以由轨头部框或子框中的任何专用参数提供,例如用transformproperty框的语义解释的all_static值。替代实施例是定义轨头部框的更明确且专用的标志值,例如:empty_samples:表示该轨在媒体数据框中不包含样本数据。标志值在标志参数的24位中的未使用位上表示(不与现有标志值冲突)。例如,标志值可以是0x000016。在该未使用位设置为1时,这意味着轨在媒体数据框中不包含样本数据。该位的默认值是0。在设置了该值时,轨可以在其sampletablebox中声明表示样本实际上为空的特定visualsampleentry。可能存在如下情况:例如,在生成轨不考虑来自输入媒体轨的所有样本时,或者在传输期间一个或多个样本丢失或损坏、然后对于这些样本没有存储数据时,轨(无论是什么轨,而不仅仅是生成轨)具有空(并非全部为空)的一些样本。为了在轨头部级别表示这种配置,定义了以下的标志值(值的名称仅仅是示例):partial_samples:表示轨的一些样本可能为空或被损坏。标志值在标志参数的24位中的未使用位上表示(不与现有标志值冲突)。例如,标志值可以是0x000032。在该未使用位设置为1时,这意味着轨包含媒体数据框中无数据的样本。该位的默认值是0。在轨级别表示该信息对于媒体播放器而言是有用的:为了正确地处理包括具有该标志值的轨的媒体文件,对于一些样本,轨对于丢失的数据必须是稳健的。这些标志不限于生成轨。在轨的配置随着时间而改变时,也可以在轨片段中(例如在trackfragmentheaderbox(轨片段头部框)“tfhd”的tf_flags值)中重新定义这些标志。这向媒体播放器通知transformationpropertycontainer314及其transformproperty框的列表(341~344)足以构建生成样本。于是,在图3上,媒体数据框320不具有生成样本的数据。在替代实施例中,具有静态变换的生成视觉轨310仍具有“stbl”框313。该“stbl”框可以包含表示样本为空的visualsampleentry,即样本在媒体数据框320中不具有任何数据。在该实施例中,stbl框还包含解码器配置记录。在另一替代实施例中,生成视觉轨310包含所有强制框都是针对样本描述而存在的stbl框313(这是为了符合对于丢失的强制框而言不稳健的播放器)。在这种情况下,生成样本被声明为参考特定visualsampleentry。具有自身的四字符代码的各特定visualsampleentry表示生成样本实际上是空样本(“dtre”),在其数据中包含变换参数(“dtrf”)样本的完整样本,在另一轨、而不是媒体文件(“dtri”)或远程轨(“dtro”)中的输入媒体文件中声明了变换参数的样本。在生成视觉轨包含具有“dtre”visualsampleentry的sampledescription(样本描述)框时,这意味着不存在派生样本的数据,即所有参数都是静态的并且在所派生或所生成的视觉轨的元数据框中声明。如此,这些样本的大小被设置为0。如果transform_preserve_samples标志值被设置为1,则解码和复合时间戳是来自输入轨的时间戳。按照如下声明该特定visualsampleentry:aligned(8)classderivedemptysampleentryextendsvisualsampleentry(′dtre′){emptyderivedtrackconfigrecordderived_config_rec;//mandatory}其中,derived_config_rec参数是以下框:其中,transfo_list是声明具有类型和参数的静态transformproperty框的列表的transformpropertycontainer框。使用在该emptyderivedtrackconfigrecord(空派生轨配置记录)中声明的变换列表来构建参考该visualsampleentry的样本。可选地,在无任何中间的emptyderivedtrackconfigrecord的情况下,可以在视觉样本条目级别直接声明transfo_list。当在visualsampleentry级别声明transformpropertycontainer框时,不再需要在媒体处理程序或轨头部级别声明transformpropertycontainer框。在所生成的视觉轨包含具有“dtrf”的sampledescription框(visualsampleentry)时,这意味着该轨的样本在其本体或数据中包含要应用于输入样本以生成这些样本的所有变换参数的声明。将这些样本数据存储在轨的媒体数据框中。将样本到字节的偏移和样本到块的偏移适当地设置在sampletablebox的适当框中。按照如下声明该特定visualsampleentry:aligned(8)classderivedfullsampleentryextendsvisualsampleentry(′dtrf′){fullderivedtrackconfigrecordconfig_record;//mandatory}其中,config_record参数是以下框:其中,transfo_list是具有类型而没有参数的transformproperty框的阵列,因为框是动态的。这些transformproperty框至少之一是动态的。静态的transformproperty框嵌入变换参数,而动态的transformproperty框使变换参数在样本数据中,然后存储在媒体数据框中:aligned(8)classderivedsample(){transformationparameterparams[];}使用在该fullderivedtrackconfigrecord(完整派生轨配置记录)中声明的变换列表、还使用在样本本体中声明的变换参数,来构建参考该visualsampleentry的样本。要注意,在这种情况下,派生样本可以混合静态变换和动态变换。静态变换可以通过唯一的transform_id来参考,并且动态变换之后是要应用的适当参数。在生成视觉轨包含具有“dtri”visualsampleentry的sampledescription框时,这意味着要构建、派生或生成该轨的这些样本的变换参数包含在媒体文件内所存在的轨中。对于要构建的各样本,可以(通过指示变换参数的轨参考的轨参考类型341中的轨的track_id或索引)在所指示的轨中的相应样本中找到变换参数。按照如下声明该特定visualsampleentry:其中,config_record参数参数是以下框:其中,transfo_list是具有类型并最终具有一些参数(由于为动态)的transformproperty框的阵列。这些transformproperty框至少之一是动态的,并且表示参数在样本中的参数始终为假,这意味着应当从媒体文件中的轨中检索变换参数。该轨的id可以包含在transformproperty中。这意味着,为了生成或派生样本,利用参数轨中的相应样本的变换参数(相同解码时间)来对输入样本进行变换。在生成视觉轨包含具有“dtro”visualsampleentry的sampledescription框时,这意味着要构建、派生或生成该轨的这些样本的变换参数包含在远程文件内所存在的带外轨中。对于要构建的各样本,可以(通过远程媒体文件中的track_id)在所指示的轨的相应样本中找到变换参数。可选地,在具有标识符的媒体数据框可用时,该标识符可用在样本数据中以参考远程轨中的变换参数值。按照如下声明该特定visualsampleentry:其中,config_record参数是以下框:其中,transfo_list是具有类型并最终具有一些参数的transformproperty框的阵列。这些transformproperty框至少之一是动态的,并且表示参数在样本中的参数始终为假,这意味着应当从媒体文件的外部的轨检索变换参数。该轨的id可以包含在transformproperty中。这意味着,为了生成或派生样本,利用外部参数轨中的相应样本的变换参数(相同解码时间)来对输入样本进行变换。最后一个方法具有支持静态变换和动态变换这两者的优点,尤其是对于一些生成样本为空的情况的动态变换,即生成视觉轨不具有与输入样本的一对一映射(生成视觉轨可能仅具有变换后的输入样本的子集)的情况。在这种情况下,生成视觉轨310具有定义至少两个不同visualsampleentry的sampletablebox313:一个visualsampleentry用于声明例如具有保留的“gtrk”代码的生成样本,并且一个visualsampleentry用于声明如上所述的空样本。然后,通过参考这至少两个不同visualsampleentry其中之一,将各生成样本声明为将数据包含在320中或者声明为空。这种配置可以由transformproperty框的标志值表示:transform_preserve_samples。为了跳过生成视觉样本中的样本,定义了简单地涉及在给定时间放置空样本的特定transformationparameter“no-op”(无操作)。“无操作变换类型”boxtype:′nopt′mandatory(persample):noquantity(persample):zeroorone“无操作”变换涉及生成空样本。在无操作变换属性存在于样本中时,忽略其它的变换属性。句法:aligned(8)classnooptransformextendstransformproperty(′nopt′){}最后,对于动态变换,在与静态变换结合或不与静态变换结合的情况下,具有以下的对于变换描述的部分相互化的替代:-所有的变换规则和参数在轨的元数据框中都是静态的,并且轨不具有生成样本(然后将轨标记为具有空样本)。-将变换参数反映在sampletablebox313内所列出的特定visualsampleentry中,各生成样本参考这些visualsampleentry其中之一。-在放置在媒体数据框320的样本中简单地声明变换参数。-在外部轨(例如,定时元数据轨)中声明变换参数。图3所示的和以上揭示的设计的灵活性允许组合各种描述可能性,并且允许覆盖静态变换和动态变换这两者以及将这两者混合在同一生成视觉轨中。transformproperty“flags”参数的transform_post_decoding值的目标是减少解码操作的数量。在对内容进行封装时,编辑者知道该内容应用哪个变换以及该内容如何构建样本:利用这种标志,内容编辑者可以在压缩域中进行尽可能多的变换,然后对尽可能最新的生成样本进行解码,以避免在像素域中的复合,并且具有中间样本的多次解码和存储。取决于在媒体文件中声明的轨变换的复杂度,例如通过transformproperty或transformpropertycontainer框的“version”参数,媒体文件的开头处(例如,在ftyp框中)的brand(分支)或兼容brand可以向媒体播放器快速地指示该文件中的生成轨的复杂程度。例如,可以将两个brand定义为分别用于单个轨生成或变换和用于高级(即,多轨)生成或变换的“dtrs”和“dtra”。前者对应于仅包含具有version=1或任何等效参数的transformproperty框的媒体文件(或分段),该等效参数表示用于派生样本的变换或操作仅采用一个单轨作为输入。后者对应于包含具有version=2或任何等效参数的transformproperty框的媒体文件(或分段),该等效参数表示用于派生样本的变换或操作可以包含多于一个的输入轨(即,多轨变换)。brand的替代定义可以是图2的针对各配置的一个brand。例如,brand“dtr1”指示包含根据涉及单个操作(配置2(a))的单个输入轨所计算出的简单派生轨的媒体文件。这意味着,根据先前实施例,transformationpropertycontainer框是version=1框(或者表示该框包含单个变换或操作的任何参数)。遵循相同的原理,可以根据输入轨的数量以及应用于输入轨的操作或变换的数量来定义其它brand。根据能力,客户端然后可以决定仅处理媒体轨(无生成轨)、生成轨中的一部分(例如,具有简单操作的生成轨)、或者可以支持所有的生成轨。客户端的处理可以涉及在解析媒体文件的同时过滤轨,或者涉及对场景进行流传输而从不选择这种复杂的或不支持的生成轨。在不同的变换应用于不同的样本时特别相关、但通常在未设置生成轨的transform_preserve_samples标志的值时尊重给定样本模式的替代实施例使用样本组并且将各样本组与变换或变换集合相关联。定义样本的模式(或样本组),并且将不同的变换属性(visualsampletransfoentry(视觉样本变换条目))应用于这些样本组或样本模式。用transformation_type定义sampletotransformbox(样本到变换框)。sampletotransformbox和sampletransfodescriptionbox(样本变换描述框)通过该transformation_type相关联。然后,visualsampletransfoentry至少包含算子和该算子的参数。例如:算子=旋转和参数(角度)=90°。换句话说,visualsampletransfoentry可以对应于特定transformproperty框其中之一。图4示出表示根据本发明实施例的用于对包含一个或多个生成视觉轨的媒体文件进行封装的方法的流程图。这涉及对由图1的媒体编码器100(特别是由一个视频编码器)根据iso基媒体文件格式产生的媒体流的封装。在步骤400期间,所输入的媒体流由媒体打包器101接收到。在步骤401期间,媒体打包器110将各媒体流封装到一个或多个isobmff轨或轨片段中。作为步骤401的结果,产生了媒体文件、片段式媒体文件或媒体分段集合。然后,用户或内容创建者自己可以检查所产生的媒体,并且创建表示媒体内容的替代或修改视图的附加轨。该步骤被概括为复合步骤402。该步骤涉及从封装后的媒体轨中选择一个或多个输入轨,并定义要应用到所选择的轨上的特效、变换或操作,以便产生、生成不同的轨。在复合期间,用户在对媒体轨进行变换时具有许多可能性和选择,例如:-从一个或多个媒体轨选择输入样本-选择要应用于输入样本的一个或多个操作-将相同或不同的变换参数应用于所选择的输入样本-对各选择样本或选择样本的子集进行变换。在用户完成了复合时,他可以决定将他的复合结果记录在与输入媒体轨相同的文件中。要注意,复合单元130和复合构建步骤402也可以集成在媒体打包器110中,并被预先记录为要应用于记录媒体流的自动变换:例如,视频轨的旋转、视频的预定义裁剪或调整大小、或者预先计划或由打包装置提供的任何操作。在用户决定记录时、或者在媒体打包器被配置为自动创建生成轨的情况下,在步骤404中,isobmff写入器113通过在主“moov”框的下方插入“trak”框来发起媒体文件中的新轨。该轨框将包含表示复合的生成轨的描述。利用为该新轨分配的新的track_id来创建轨头部框“tkhd”。然后,isobmff写入器在该轨头部框中描述创建时间和生成轨的尺寸(宽度和高度)。该信息可以从复合单元获得并且/或者由用户参数化。然后,在步骤405中创建轨参考框“tref”,以将生成轨链接至生成该生成轨的轨参考类型等于“gtrk”的一个或多个输入媒体轨,以表示轨“是从”参考轨“生成的”。可选地,在同一步骤405中,生成轨和输入媒体轨也通过具有特定分组类型值的trackgroupbox(轨组框)“trgr”与同一轨组相关联,该特定分组类型值表示该组的各轨是原始媒体轨的变体。然后,在步骤406中,isobmff写入器描述媒体数据以及如何处理生成轨。这在轨媒体“mdia”框中、并且特别是在handlerbox(处理程序框)“hdlr”子框中进行。handler_type在生成轨从视觉轨生成的情况下被设置为“vide”,或者在生成轨从音频输入轨生成的情况下被设置为“soun”。handler_type甚至可以扩展到其它媒体类型,然后处理程序应设置为生成所用的输入轨的处理程序类型。可选地,在handlerbox中,名称被设置为“生成”,使得检查轨的人可以清楚地看到该轨的目的。根据handler_type值,在同一步骤406期间设置媒体特定处理程序信息。在生成轨从输入视频轨生成时,将特定videomediaheaderbox(视频媒体头部框)“vmhd”添加到轨描述并且进行扩展,以便声明轨生成中所涉及的变换的列表。为了区别于现有的videomediaheaderbox并且保持向后兼容性,生成轨的videomediaheaderbox使用version=“1”:特定videomediaheaderbox实际需要两个参数:关于该特定videomediaheaderbox不是通常的videomediaheaderbox(以上的version=1值的示例)的指示、以及(声明轨的生成所使用的变换列表的)transformpropertycontainer框。根据用户的与复合构建有关的选择,根据与图3有关的说明来设置transformpropertycontainer框以及transformpropertycontainer框的列表的标志和版本值。这在步骤407中进行。在步骤408中测试的all_static变换的情况下,在步骤415中生成轨的描述在这里结束,这意味着没有声明sampletablebox。如果用于生成轨的变换至少之一不是静态的,则创建sampletablebox以在步骤409中描述可以如何计算生成样本。这涉及:在动态参数的情况下,将适当的visualsampleentry设置在样本描述框中,并且在将变换参数存储在生成样本中时,在步骤410中,计算生成样本的数据(给定样本的变换参数)并将该数据存储在媒体打包器的存储器中。在测试步骤411中,isobmff写入器迭代在生成轨中声明的操作或变换的列表。每当下一操作或变换是动态变换时(对应于测试412为假),利用当前操作参数更新生成样本。为了支持静态参数和动态参数这两者,每当遇到静态操作时,在步骤413中,利用要应用的静态变换的标识符来更新生成样本的有效载荷。一旦对于样本达到操作列表,在步骤414中,在适当的样本描述相关框中更新样本描述(数据框中的大小、字节和/或块偏移、解码和/或复合时间)。对于针对由轨头部的变换矩阵可以处理的单个输入轨的真正简单的静态变换,生成轨用empty_samples声明,并将身份transformproperty“idtt”定义为单个操作。然后在生成轨的轨头部框的变换矩阵中声明变换参数。建议首先从预解码变换开始按操作的顺序声明变换,使得解码操作的数量和中间样本的存储保持尽可能有限。所产生的文件或分段可以进一步放置在流式服务器上,以便例如利用经由http的自适应流传输来分发。在为http上的自适应流传输准备内容时,可以在流式清单中揭示生成视觉轨的一部分或全部。例如,在映射到mpegdash流式协议的清单(媒体呈现描述)时,生成视觉轨被揭示为具有参考所有输入轨的属性dependencyid(依赖性id)的表现,以指示对生成轨进行解码和重建所需的表现。可选地,可以利用“gtrk”参考类型来限定生成视觉轨的表现与其输入视频轨的表现之间的关系。这可以使用dependencytype(依赖性类型)属性或者声明这些表现之间的associationid(关联id)和associationtype(关联类型)来进行。这允许媒体流式客户端选择与生成视觉轨相对应的表现以供渲染,以便被通知还应流传输输入轨的分段。图5示出根据本发明实施例的媒体文件或媒体分段的解析。该描述在文件完全可用于媒体客户端150时或者在文件被流传输至媒体客户端150时都适用。媒体文件的处理开始于步骤500中媒体文件的初始化数据的接收。根据该初始化数据,isobmff解析器152解析moov框,并在步骤501中确定具有类型(视频、音频、元数据、文本…)的文件中所包含的轨的数量。然后,在步骤502中,isobmff解析器152解析所有这些轨之间的关系:如果至少一个轨参考包含向另一轨的至少一个“gtrk”轨参考类型,则文件不仅包含媒体数据轨,而且还包含生成轨。然后,解析器需要判断是否向用户揭示这些生成轨。要注意,例如在用作复杂生成的中间步骤时,一些生成轨可被指示为不打算被显示(例如,在轨头部的标志值不具有所设置的track_in_movie值时)。在这种情况下,这些生成轨未被揭示给客户端以供选择和重放。为了确定向用户揭示哪些轨,解析器查看为生成轨声明的transformproperty框的列表。仅通过在步骤504中解析变换的类型,解析器可以在步骤505中判断解析器是否将能够重建生成轨。一旦在一个变换类型在媒体客户端中得不到支持或不可用时,不处理生成轨。可以经由图形用户接口向用户显示警告,或者使用媒体解析器将警告发送到应用,例如然后决定选择或切换到支持轨的流式应用。要注意,在片段式轨的情况下,可以在moof框中更新初始化数据,然后再次进行这些初期步骤。要注意,在例如dashmpd那样的流式清单中描述媒体文件时,通过isobmff特定brand或流式简档或通知变换的存在的任何描述符,也可以获得是否支持生成轨。在媒体播放器或媒体客户端支持在生成轨中声明的变换时,在步骤507中解析器152检查所有变换是否是静态的。该信息可以通过解析生成轨的轨头部框中的标志值、或者通过查看transformpropertycontainer框的版本或标志值、或者通过遍历生成轨的所声明的transformproperty框的列表并检查它们的标志和版本值来获得。对于静态变换,在步骤510中,解析器将算子和变换参数存储在客户端存储器中。在所有变换都是静态的并且生成轨被标记为empty_samples时,在步骤511中,解析器可以通过将使用参数的变换算子相继应用于输入样本来开始构建生成样本。输入样本是通过解析生成轨的transformproperty框确定的。在至少一些变换是动态的、这意味着测试步骤507为假的情况下,解析器检查变换参数在生成样本中、在媒体文件内所包含的另一轨中还是在外部轨中。然后,解析器在步骤521中开始逐一构建样本,直到在步骤522中测试的要处理的最后一个输入样本为止。图6示出本发明实施例中的样本的生成。该方法假定已识别出输入轨并且已读取了变换算子的集合。该处理被假定为在要生成的连续样本上循环,并且集中于对给定样本的处理。在步骤600中,在该处理的开始时读取并存储输入样本。值得注意的是,在使用复数时,可能存在仅一个输入轨,因此存在一个输入样本。在步骤601中,读取第一变换算子。在步骤602中,测试当前变换算子是静态的还是动态的。在变换算子是动态的情况下,在步骤603中必须获得算子的参数。这些参数可以从生成轨中或参考参数轨(本地或远程)中的关联样本获得。在变换算子是静态的情况下,变换算子的参数对于所有样本都是相同的,并且被假定为在处理的该阶段是已知的。在步骤604中,测试变换算子被假定应用于编码样本还是解码样本。这里假设变换算子的列表可以仅包含“预解码”算子、仅包含“后解码”算子、或者包含这两者。在这两者都包含在列表中时,有利地,列表首先包含的仅是“预解码”变换算子,之后仅是“后解码”变换算子。因此,将对输入样本仅进行一次解码。在当前变换算子是“预解码”算子的情况下,在步骤605中读取输入编码样本。对于要应用的第二个和更多的“预解码”变换算子,输入编码样本实际上是通过应用先前的变换算子所存储的生成编码样本。然后,在步骤606中将当前变换算子应用于输入编码样本以获得在步骤607中所存储的生成编码样本。在当前变换算子是“后解码”算子的情况下,在步骤608中读取输入样本。对于要应用的第二个和更多的“预解码”变换算子,输入解码样本实际上是通过应用先前变换算子所存储的生成解码样本。然后,仅对于第一个“后解码”变换算子,对输入样本进行编码并且在步骤609中必须进行解码。这是因为,根据定义,“后解码”变换算子必须应用于解码样本。在随后的循环中,不执行解码步骤609。然后,在步骤610中,将当前变换算子应用于输入解码样本,以获得步骤611中所存储的生成解码样本。在步骤612中,测试是否到达变换算子的列表的末尾。如果未到达变换算子的列表的末尾,则处理在步骤601中循环回到下一算子。在应用了所有的变换算子时,在步骤613中测试是否仅存在“预解码”算子。在这种情况下,对当前生成样本进行编码,并且在步骤615中准备好输出之前,需要在步骤614中进行解码。在向变换算子的输入媒体轨例如通过提取器(显式重建)或对于其样本的隐式重建而具有对其它轨的依赖性时,提供给变换的输入样本涉及重建之后的重建样本。这适用于后解码操作或变换。对于预解码操作,输入样本是通过包括样本本身的样本数据加上从重建规则分辨率得到的数据的级联而形成的。例如,在具有增强层样本与基本层样本的依赖性的可分级视频的情况下,在变换是预解码变换时,输入样本将涉及增强样本数据加上基本样本数据的级联。同样,后解码变换的输入样本将是由基本样本加上增强样本构成的重建/解码输入样本。图7表示可以实现一个或多个实施例的步骤的服务器或客户端装置700的框图。优选地,装置700包括:通信总线702;中央处理单元(cpu)704,其能够执行在对装置通电时来自程序rom706的指令、以及与通电之后来自主存储器708的软件应用程序有关的指令。主存储器708例如是经由通信总线702用作cpu704的工作区域的随机存取存储器(ram)型,并且其存储容量可以利用连接至扩展端口(未示出)的可选ram来扩展。例如可以从硬盘(hd)710或程序rom706将与软件应用程序有关的指令加载至主存储器708。这种软件应用程序在由cpu704执行的情况下,使得在服务器中进行参考图4~图6所述的封装步骤。附图标记712是网络接口,其中该网络接口712使得能够将装置700连接至通信网络714。软件应用程序在由cpu704执行的情况下,被配置为对经由网络接口所接收到的请求作出反应,并且将数据流和请求经由网络提供至其它装置。附图标记716表示用以向用户显示信息和/或从用户接收输入的用户接口。这里,应当指出,作为变形,用于管理多媒体位流的接收或发送的装置700可以包括能够实现如参考图4~图6所述的方法的一个或多个专用集成电路(asic)。这些集成电路例如且非限制性地集成于用于生成或显示视频序列以及/或者用于收听音频序列的设备中。图8示出本发明实施例中的用于与宽视图的场景相对应的视频的封装处理以及该宽视图的场景的提取。宽视图的场景通常是球形360°媒体内容。宽视图的场景将被编码并封装在至少一个轨801中。表示从该宽视图的提取的视频被编码并封装在特定轨802中,该特定轨802包含对宽视图轨的参考803和宽视图视频中的所提取部分的描述符804。该描述符可以用作允许表示拍摄投影的空间部分的变换算子其中之一。描述符804通常给出用以识别宽视角视频805中的提取部分806的位置参数。通常,这些参数与横摆、俯仰和侧倾参数有关。例如,描述符804可以采用以下句法作为特定visualsamplegroupentry(视觉样本组条目):其具有以下语义:yaw_center以0.01度的增量指定与投影图像的中心相对应的横摆值。yaw_center的值应在-18000~17999的范围内。在不存在的情况下,yaw_center的值应被推断为等于0。pitch_center以0.01度的增量指定与投影图像的中心相对应的俯仰值。pitch_center的值应在-9000~9000的范围内。在不存在的情况下,pitch_center的值应被推断为等于0。roll_center以0.01度的增量指定与投影图像的中心相对应的侧倾值。roll_center的值应在-18000~18000的范围内。在不存在的情况下,roll_center的值应被推断为等于0。yaw_range以0.01度的增量指定投影图像中所存在的横摆值的范围。yaw_range的值应在1~36000的范围内。在不存在的情况下,yaw_range的值应被推断为等于36000。pitch_range以0.01度的增量指定投影图像中所存在的俯仰值的范围。pitch_range的值应在1~18000的范围内。在不存在的情况下,俯仰范围的值应被推断为等于18000。在轨是另一轨的视口时,该轨包含具有对表示整个球体的完整轨的一个“区块”参考类型的“tref”框。在优选实施例中,描述符804包含更多的描述性参数:其具有以下语义(与hevc中的全向投影指示sei消息中的语义匹配):region_id是与相同视觉源有关的所有球形区域样本组描述的唯一标识符。具有相同region_id的所有球形区域样本组描述共享相同的参考球形空间。full_picture在设置时表示该球形区域样本组描述实际上表示完整球形图片,该完整球形图片表现至少由具有相同region_id的类型“srif”的所有样本组描述的并集所形成的相同视觉内容。dynamic_viewport在设置时表示经由由track_id标识的元数据轨来提供球形区域的坐标。否则,矩形区域的坐标由yaw_center、pitch_center、roll_center、yaw_range和pitch_range提供。track_id指示包含定时球面坐标的元数据轨,所述定时球面坐标描述由球形区域样本组描述表示的球形区域的各样本的坐标。yaw_center以0.01度的增量指定与投影图像的中心相对应的横摆值。yaw_center的值应在-18000~17999的范围内。pitch_center以0.01度的增量指定与投影图像的中心相对应的俯仰值。pitch_center的值应在-9000~9000的范围内。roll_center以0.01度的增量指定与投影图像的中心相对应的侧倾值。roll_center的值应在-18000~18000的范围内。yaw_range以0.01度的增量指定投影图像中所存在的横摆值的范围。yaw_range的值应在范围1~36000的范围内。pitch_range以0.01度的增量指定投影图像中所存在的俯仰值的范围。pitch_range的值应在1~18000的范围内。要注意,按照如下将球面坐标定时元数据轨的格式重新定义为特定metadatasampleentry(元数据样本条目):球面坐标样本条目球面坐标样本条目提供与在球面坐标系中表示的参考轨有关的空间信息。句法球面坐标样本条目将为如下:语义projection_type指示矩形解码器图片输出样本向坐标系上的特定映射。球面坐标样本格式句法球面坐标样本应符合以下句法:roi元数据轨的同步样本是interpolate值为0的样本。语义yaw_center以0.01度的增量指定与投影图像的中心相对应的横摆值。yaw_center的值应在-18000~17999的范围内。pitch_center以0.01度的增量指定与投影图像的中心相对应的俯仰值。pitch_center的值应在-9000~9000的范围内。roll_center以0.01度的增量指定与投影图像的中心相对应的侧倾值。roll_center的值应在-18000~18000的范围内。yaw_range以0.01度的增量指定投影图像中所存在的横摆值的范围。yaw_range的值应在1~36000的范围内。pitch_range以0.01度的增量指定投影图像中所存在的俯仰值的范围。pitch_range的值应在1~18000的范围内。interpolate指示连续样本的时间连续性。在为true(真)的情况下,应用可以对先前样本和当前样本之间的roi坐标的值进行线性插值。在为false(假)的情况下,在先前样本和当前样本之间不应存在值的任何插值。同样,对于2d图像,定义了作为rectregionsamplegroupentry(矩形区域样本组条目)(“rrif”)的矩形区域的描述符。(名称和代码这里仅仅是示例,也可以是“区块”或“部分”,任何保留的4字符代码)。该描述符由特定保留代码(例如,“rrif”)来标识。矩形区域样本组描述用来描述视频或图像媒体轨之间的空间关系。允许识别出轨的解码样本在空间上对应于另一轨中的给定矩形区域。具有以下语义:region_id是与相同视觉源有关的所有矩形区域样本组描述的唯一标识符。具有相同region_id的所有矩形区域样本组描述共享相同的参考矩形空间。full_picture在设置时表示该矩形区域实际上是表示至少由具有相同region_id的类型“rrif”的所有样本组描述的并集所形成的相同视觉内容的完整图片,在这种情况下,region_width和region_height应被设置为参考区域的宽度和高度。dynamic_roi在设置时表示矩形区域的坐标经由由track_id所标识的元数据轨提供。应使用如在iso/iec23001-10的第6款中规定的2d笛卡尔坐标定时元数据轨的格式,在这种情况下,region_width和region_height应被设置为如在2d笛卡尔坐标样本条目中所提供的reference_width和reference_height。否则,矩形区域的坐标由horizontal_offset、vertical_offset、region_width和region_height提供。track_id指示包含定时2d笛卡尔坐标的元数据轨,该定时2d笛卡尔坐标描述由矩形区域样本组描述所表示的矩形区域的各样本的坐标。horizontal_offset和vertical_offset分别给出由矩形区域样本组描述所表示的矩形区域的左上坐标相对于参考区域的左上坐标的水平偏移和垂直偏移。参考区域是由具有相同region_id的类型“rrif”的所有样本组描述的并集所形成的区域。region_width和region_height分别以整数坐标给出由矩形区域样本组描述所表示的矩形区域的宽度和高度,或者分别给出在设置full_picture或dynamic_roi时的参考矩形空间的宽度和高度。要注意,用于描述区域大小的单位是任意单位,并且可以对应于视频像素分辨率,但不是必须的。在替代实施例中,“srif’和“rrif”描述符还包含唯一标识符作为附加参数。该标识符允许应用经由标识符的值来参考描述符。标识符可以是以下定义的group_id。然后,除简单裁剪或旋转操作之外,在新的特定transformproperty中还可以使用iso/iec14496_15中的这些新描述符和现有的区块描述符“trif”。这对于roi或者视口选择或提取而言可以是有用的。例如,提出特定transformproperty以使用trif描述符来从封装hevc轨进行静态roi提取:静态roi选择boxtype:′sroi′mandatory(persample):noquantity(persample):any静态roi选择是定义roi提取的变换属性。该变换被声明为应用于单个输入轨的静态transformproperty。参数tileregion_id指示解析器提取与具有该tileregion_id的区块区域描述符相关联的nal单元或样本。这同样适用于球形内容中的静态视口。根据预解码或后解码标志值,操作涉及来自输入轨的子位流提取、或者解码和裁剪操作。这取决于利用trif描述的封装区块区域的独立性。在独立的情况下,transformproperty可被设置为预解码变换,否则被设置为后解码。可以给出其它参数,例如x、y、w、h来代替tileregion_id值。然而,这对于必须将参数与不同trif样本组中的参数进行匹配的解析器来说不太方便。对于多轨transformproperty,参数可以存在于tileregionid的列表中。例如:为了概括这些种类的变换,可以按照如下定义选择算子:其中,grouping_type指示用以从一个或多个输入轨选择nal单元或样本的标准。这可以是rrif、srif、trif、rap(以在轨中的随机存取样本上选择)…,并且group_id提供从中提取的准确groupid。应由内容创建者在复合单元130内的复合步骤期间适当地设置静态/动态信息和单/多轨以及预解码/后解码参数。换句话说,提出了一种用于利用第一装置提供包括样本的封装后的媒体数据的方法,所述媒体数据包括表示宽视图的场景的拍摄投影的第一媒体数据、以及与所述拍摄投影的空间部分相对应的第二媒体数据,所述方法包括:对所述第一媒体数据和所述第二媒体数据进行编码;将编码后的第一媒体数据封装在一个第一轨中;将编码后的第二媒体数据封装在一个第二轨中,所述第二轨包括第二头部;在所述第二头部中提供用于参考所述第一轨的一个参数。该参数可以与表示空间部分(例如,区块)的类型相关联。该参数可以包括在类型是“区块”参考类型的框中。该参数可以是描述符,例如,如sphericalregiongroupentry(球形区域组条目)或rectregiongroupentry(矩形区域组条目)那样的visualsamplegroupentry描述符。将与部分图片轨和完整图片轨相对应的轨全部设置并定义在例如具有新的轨分组类型的(与“轨组”有关的)轨组框“trackgrouptypebox(轨组类型框)”中。用于表示完整图片的标志可以是与具体特定track_group_type相关联的标志:其中,full_track指示属于轨组的轨是否对应于完整视频轨,并且“part(部分)”是轨分组类型(这里的名称仅仅是示例,可以使用为此目的保留的任何4字符代码)。“part”(或任何其它保留的4字符代码)表示在“trak”框中具有该轨组框的轨属于由数个轨构成的复合(多轨复合)。track_group_type“part”的trackgrouptypebox内的具有相同值的track_group_id的轨被映射为空间部分、或者来自相同源的子图片。例如,视频的超高清记录可以具有高清晰度的数个视频轨,各视频轨针对要编码的超高分辨率视频的不同空间部分。然后,具有track_grouping_type=“part”的视频轨将具有相同值的track_group_id。更一般地,可以使用轨组描述的新元数据或者新轨分组类型来描述打算一起构成、渲染或显示的轨的集合。根据本发明的实施例,提出了根据内容创建者是否将视频轨打包到媒体文件中来提供不同种类的轨组信令,这使得媒体播放器能够:-在属于该组的轨的原始位置处按这些轨的原始大小渲染这些轨(如在图11中的1161上):隐式复合(1141)。隐式复合是隐含的,因为复合参数(主要是位置和大小)是已存储在轨的描述性元数据1142中(例如在轨头部、样本条目、样本组描述…中)的值。轨组描述的目的是描述不同轨在它们的原始上下文中的关系。参考图10中的1001来描述这种轨组的示例。在任何位置处渲染轨,从而潜在地改变这些轨的位置和/或大小(如在图11中的1162上):显式复合(1151)。然后,轨组描述的目的是(通过track_grouping_type)描述轨组的用途并且还描述复合参数1152。参考图10中的1002来描述这种轨组的示例。这可被视为派生轨的替代。与派生轨的区别在于,生成视觉轨不是物理上存在于封装文件中,而是仅存在于与如何构建该生成视觉轨有关的指令(1152)中。在图8描述宽视图区域的封装时,图8b详述在360°全景视频的上下文中表示几何投影(2d投影图像)的一部分的视频轨的生成和封装。(从球体起的360°内容850,无极点)。通常,这种内容由为记录场景提供360°视场的照相机装置记录。然后将各记录视图拼接成单个图像:有时称为全景的2d投影图像851。投影通常是等矩柱状投影,但也可以是向立方体或其它正多面体的面上的投影,其中各面被投影成2d图片。例如,将所选择的球体区域850分割成各自被照相机记录的三个区域、部分或空间部分。该操作可以产生非常高分辨率的视频、通常大于8k的宽视频。可以如852那样将各全景图像重排(或“打包”)到2d全景上的区域中。例如,区域对应于或包含来自球体850的投影球形视口,或者区域对应于用作投影类型时的立方体的一个面。这些区域可以匹配或可以不匹配照相机视图。这些打包或重排图像852中的每一个各自可被编码/压缩成一个或多个视频位流(未示出)并被封装在isobmff文件860中。编码可以以hevc或avc或任何等同的压缩方案进行。封装文件包含如853、854、855那样的一个或多个轨。例如,在图8b上,与区域“1”和“3”相比,重点放在区域“2”上。这可以是针对具有高细节的区域的情况,或者因为这是内容编辑者或任何其它标准的推荐视点。各轨853~855可以包含描述性元数据,该描述性元数据提供2d投影图片中的相关区域的位置和大小、以及/或者与宽视图或360°场景850相关联的3d参考中的位置。这些位置和大小信息可以分别在具有以下所述的特定描述符的样本描述组中描述:visualsamplegroupentry:rectregiongroupentry(“rrif”)和sphericalregiongroupentry(“srif”)。在从全景851生成打包帧852时,轨853~855的样本描述表包含2d投影图片中的区域到这些区域在打包图像中的对应区域之间的映射。在得到全景构造851的拼接之后不进行打包时,轨853~855在特定描述符visualsamplegroupentry中包含这些轨在2d投影图片851中的位置和大小。在生成isobmff文件860时设置这些信息是mp4写入器的作用。分割成区域和最终打包通过用户控制媒体记录来提供,或者被预编程在控制照相机装置的应用中,或者甚至是在设置照相机装置时定义的。该信息可以在媒体轨的封装期间使用,或者甚至作为描述性元数据存储在用户数据框中。图9提供要一起构成、渲染或显示的轨的集合(901~904)的示例。输入轨的集合可以包含使用这些输入轨的零个、一个或多个派生轨。输入轨的集合还可以是不同于视频的媒体类型的轨,并且可以混合不同媒体类型的轨。对于描述输入轨的空间复合的轨组的特定情况,输入轨也可被称为子图片轨。这是各子图片轨覆盖(更大)图片的空间部分或空间区域的情况。这里的术语图片应被解释为视频序列中的各图片;即子图片轨包含各自表示完整视频的子部分或空间区域或子图片的样本。在图9的示例中,轨分组描述可被同时构成、渲染或显示为更高分辨率视频900的四个输入轨901~904(在该示例中为视频轨)。这可以用于虚拟现实的全景(如在851或852上将作为850的宽/360°视图投影在2d图片上)或者用于超高分辨率视频。在实施例中,例如使用如h.264/avc或h.265/hevc那样的视频压缩方案或者任何其它视频压缩方法,将视频轨901~904中的每一个编码在独立位流中。各轨901~904例如被进一步封装在isobmff轨(即,包含媒体样本的描述性元数据)中,例如被进一步封装在如905那样的“trak”框中。样本的描述通常在如可以包含一个或多个样本组的910那样的样本表框、以及样本组描述框(概括为911)中发生。例如,各输入轨在其样本组描述框(通常为“sgpd”和“sbgp”)中传送其(二维的)位置和大小912。位置和大小可以在如rectregiongroupentry(“rrif”)或tileregiongroupentry(在hevc格式的情况下为“trif”)那样的visualsamplegroupentry912、或者样本表框中的任何专用描述符中声明。这些位置和大小也可以作为样本描述913的一部分在视觉样本条目中声明。这是例如通过将360°视频场景投影到2d全景上、在编码之前进一步分割、重组或打包到另一2d图片上的区域914中(例如在mpeg全向媒体应用格式的regionwisepackingstruct(区域级打包构造)中那样)得到的“打包帧”的情况。当轨的所有样本共享相同的位置和大小时,在被表示为“sgpd”框中的默认样本描述索引的visualsamplegroupentry中声明位置和大小。这允许具有更紧凑的描述,由此避免样本组的声明。当按照如下在类型“rrif”的visualsamplegroupentry中或在简化版本中声明位置和大小时(如上所述语义相同);按照如下设置相应的轨组类型框952:其中:composition_width以亮度样本为单位指定复合图片的宽度。composition_height以亮度样本为单位指定复合图片的高度。从trackgrouptypebox951继承的track_group_id提供了一组轨的唯一标识符。track_group_type值(在该示例中为“spco”)表示轨是空间相关的一组轨。上述实施例与初始实施例的不同之处在于“rrif”,因为现在代替在样本或样本组描述框中而是在轨组类型框(track_group_id)中描述复合标识符(“rrif”中的在前region_id)。这允许一个轨是零个、一个或多个复合的一部分。要注意,“完整图片”(在以上的“part”轨组示例中也称为“full_track”)的指示也可放置在轨分组类型框中。然后,rectregiongroupentry变得甚至更简单:轨组950和轨组类型框951~953表示输入轨901~904的组具有特定关系。这里,(“轨复合组”952的)特定分组类型“spco”表示可以将这四个输入轨隐含地复合在一起以如900那样同时显示和渲染。相应的轨组类型框952仍可以如上所述写入。可选地,当内容创建者将完整视频作为子图片轨的替代轨封装在相同的媒体文件中时,轨组类型框952可以包含指示当前轨是“完整视频”轨还是“完整图片”轨还是完整轨的标志。在这种情况下,仅完整视频轨表示子图片轨的复合的宽度和高度。在空间复合所用的轨组类型的替代实施例中,“full_picture”标志系统地存在。这在信令方面无附加成本(仍为1字节),并且允许解析器推断出视频轨是子图片轨(“full_picture”标志设置为0)或完整图片轨(“full_picture”标志设置为1)。可以推断出该轨不打算单独显示(与“full_picture”轨相反):为了使媒体播放器容易地判断轨组中的一个轨是否打算显示,轨组类型框可以包含例如被称为“output_track”的参数,该参数在被设置为1时,表示可以选择该轨以呈现给用户,并且在被设置为0时,表示该轨在这里仅用于与轨组中的其它轨组合并且不打算单独渲染或显示。指示该轨属性的另一可能性是在轨头部框中定义特定标志,例如“track_non_displayable”:=0x000010表示轨启用、用在呈现中、但不被允许作为预览并且本身不足以单独渲染。在替代实施例中,轨组(“trackgroupbox”)包含一个输入轨对应于关注区域(例如,360°内容中的特定视点或2d视频中的特定对象)的输入轨的集合。对于这种情况,轨组类型框(“trackgrouptypebox”)可以包含附加标志来代替,或者与来自先前实施例的用于“spco”的full_picture标志组合:再次地,该roi指示特征在信令方面无附加成本(使用所保留的位其中之一),并且使得解析器能够推断出视频轨是与roi相对应的子图片轨(“roi_picture”标志设置为1)。可以推断出:可以通过经由图形用户界面向用户揭示该子图片轨来单独渲染该轨。当用在流传输中或在网络上传输时,该轨可以被标记或表示为相对于其它子图片轨具有某种优先级。在另一替代实施例中,在subpicturecompositionbox(子图片复合框)中使用另一标志,以按照如下将具有静态位置和大小的轨或子图片轨以及具有动态位置和大小的轨或子图片轨混入轨组中:注意,被称为dynamic_coordinates的该附加标志可以与各种实施例中的用于空间复合轨组的其它标志组合。在轨组中的轨或子图片轨具有静态位置和大小时,该标志被设置为0或假值。相反,在一个轨或子图片轨在另一轨(通常是定时元数据轨)中具有动态位置和大小时,该标志被设置为1或真,并且在track_id参数中指示该另一轨的轨标识符。图10示出与轨组中所包含的轨有关的或多或少为描述性和规定性的不同种类的轨组类型框(“trackgrouptypebox”)。图10中的轨组类型框950是如在iso/iec14496-12(isobmff)中标准化的轨组类型框。本发明定义了不同种类的轨组类型框(“trackgrouptypebox”)来处理子图片轨。第一种轨组类型框(“trackcompositiongroupbox(轨复合组框)”)是在1001上描述的轨组类型框。该轨组类型框从框951继承track_group_id并声明特定track_grouping_type:“隐式compo_type”。注意,为了遵守isobmff规则,应当保留4字符代码以表示该“隐式compo_type”,例如:对于“空间复合隐式”为“spci”。这意味着该轨组1001依赖于在各子图片轨中(在905的轨头部部分中、在样本条目913中或在样本组描述911…中)已可用的信息,以渲染或显示这些子图片轨,因为这些子图片轨在空间上布置在编码并封装到该轨集合内的源中。该框1001还包含如此得到的子图片轨的复合的大小。可选地,该框1001还可以包含在“spco”轨组类型框的替代中描述的一个或所有标志。如图9所示,这种轨分组类型框不包含各子图片轨的位置和大小。相反,该轨分组类型框隐含地参考(链接920到)描述轨或已存在于各轨中的样本的描述性元数据。使得能够避免描述性元数据的复制。此外,使得子图片轨的位置和大小以及空间排列能够随着时间而改变。由于使用了样本分组机制,因此该轨分组类型框可以在轨片段粒度上改变。这不是在轨组类型框952自身中声明各子图片轨的位置和大小的情况。根据图12来说明952和920的处理。另一种轨组类型框1002定义用于“显式复合类型”的另一track_grouping_type。如上所述,应当针对该轨分组类型保留4字符代码,例如对于“空间复合显式”为“spce”。该框1002除了声明复合宽度和高度(最终与针对“spco”提到的一个或所有标志组合)之外,还声明子图片轨的新的空间布置。这可被视为派生轨的变体。特别地,新框1002声明子图片轨的2d平移参数,以改变该子图片轨在如此得到的呈现中的位置。声明是可选的,并且作为代替可被设置为(0,0)。同样,可以声明可选的旋转和缩放因子以改变子图片轨在如此得到的复合或呈现中的布置和/或大小。要注意,可以为此目的声明如在轨或动画头部中定义的复合矩阵。遇到这种轨分组类型框的播放器具有定位、变换信息以根据媒体编辑者规范来渲染各子图片轨。将显式复合1002的替代实施例描绘为1004和1005。另一种track_grouping_type框1004指示基于网格的复合(“grid_compo_type”)。关于其它,应当为此目的保留并声明特定的4字符,例如:对于“空间复合网格”为“spcg”。该新种类的框1004中所包含的参数是如在1005上的网格算子。该参数声明可以放置轨组的的各子图片轨以渲染一种镶嵌视频的网格。该镶嵌视频中的子图片轨的位置由最后一个grid_idc参数给出。对于其它变体,可用于“spco”的一个或所有标志也可包含在框1005中。在播放器侧处理这样的轨组框按照如下所述:将各子图片轨的输入图像按行优先顺序(从顶行开始从左向右)插入网格的基于1的索引中。在子图片轨的大小与网格的单元格的大小不匹配的情况下,隐含地进行缩放以适合单元格的大小。可以设置可选标志以指示是否应保留像素高宽比。另一可选标志可以指示是否期望拼接。通过将来自子图片轨的解码输入图片构成到网格中来形成重建图像。网格在无间隙或无重叠的情况下,具有以等于将output_width除以num_of_columns的亮度像素为单位的列宽,并且具有以等于将output_height除以num_of_rows的亮度像素为单位的行高。在不期望拼接时,在右方和底部进行裁切直到所指示的output_width和output_height为止。该网格算子1005还可用作派生轨的transformproperty或变换算子。在使用时,该网格算子1005存储在transformpropertycontainer314中,并且可能不需要track_idc。实际上,网格可以将由轨参考类型“dtrp”341指示的输入轨视为输入。在这种情况下,这些参考的顺序指示网格中的位置。空间复合所用的轨组的另一实施例是新的框1003。该框具有表示复合是动态的特定track_grouping_type值。(也应为此目的定义和保留4字符代码)。在外部元数据轨(例如,如在iso/iec23001-10的修改1中的定时元数据轨)中提供复合参数(主要是位置和大小)的意义上,是特定种类的显式复合。在该轨组中提供特定参数:针对提供复合参数的元数据轨的轨标识符。这对于将视频轨与元数据轨相关是有用的,因为将元数据轨链接到视频轨的轨参考是单向的(对视频轨的“cdsc”轨参考类型或对组中的轨的“cdtg”轨参考类型)。在轨组中直接具有track_id使得媒体播放器更容易获取到复合参数。关于其它种类的空间复合轨组,框1003包含如此得到的复合宽度和高度。可选地,框1003还可以包含“spco”轨组类型框的变体中所声明的一个或所有标志。尽管图10示出空间复合所用的不同种类的轨组类型框(因为不同的框由特定的track_grouping_type标识并被保留了4字符代码),但要注意,也可以以其它方式表示这些不同种类。一个可能方式是使用单个4字符代码(例如,“spco”代码和框的“version”参数)。代替如在951中那样从具有version=0的轨组类型框继承,version参数可以改变。例如,version=0对应于隐式复合1001,而version=1指示显式复合1002并且version=2对应于动态复合1003。version=3可以指示基于网格的复合1004。各框的特定参数仅是针对version参数的特定值而包括的。例如:在替代实施例中,(代替上述的version参数)用flags参数表示不同种类的轨组类型框。这样,使用单个track_grouping_type,例如“spco”。具有类型“spco”的特定空间复合轨组类型框如在951中那样从flags未设置为0的trackgrouptypebox继承,但可能地采用如tg_explicit_composition=0x000001那样的不同的预定义值,以表示该复合是显式复合(类似于先前实施例中的version=1)。在默认情况下,复合被认为是隐式的(version=0并且flags=0)。可以如tg_dynamic_composition=0x000002和tg_grid_composition=0x000004那样定义其它flags。这些可用作如以上实施例中所述的version参数的不同值。关于轨组类型框的过载的另一方面是定义不限于如当前在isobmff中的情况那样的整数的轨组标识符的可能性。这对于声明包含不必包含在相同媒体文件中的轨的轨组而言是有用的。这使得能够将媒体文件中的轨与其它文件中或位于不同服务器上的远程轨相关联。这可以通过“flags”或“version”参数的特定值来进行。然后,可以按照如下(这里使用version参数)来重新定义轨组类型框:其中,global_track_group_id是urn条目,例如在isobmff中定义的dataentryurnbox(数据条目urn框)。需要dataentryurnbox中的参数“name”。参数“location”是可选的。各“name”和“location”参数是使用utf-8字符的空终止字符串。图13示出轨组的另一特征:子集的概念。在1300中,提供包含四个输入轨的轨组。实际上,存在两个子图片轨(视频1和视频2),但各自采用不同的分辨率。然后,这些轨可被聚集为两个子集,其中各子集具有不同的分辨率:例如,子集1310包含高清(hd)视频,而子集1320包含简单清晰度(sd)视频。这意味着,隐含地,轨1311和1312可以在空间上组合成更大的视频(2倍的hd分辨率),并且此外,轨1321和1322也可以组合成更大的视频(2个区块的sd分辨率)。为了允许轨组中的子集描述,按照如下修改trackgrouptypebox。首先,trackgrouptypebox是该框的新version(不与上述的复合种类冲突的version号)或新的flags值(例如:contains_subset=0x000008)。以下的示例是在version号设置为1的情况下示出的。这可以使用任何种类的分组,而不限于空间复合。其中,按照如下定义trackgroupsubsetbox(轨组子集框):aligned(8)classtrackgroupsubsetboxextendsfullbox(′trgs′,version,flags){unsignedint(8)subset_idc;//parametersdescribingthesubset//forexamplein1310,1320,thecompositionsizes}其中,subset_idc指示轨组中的子集的索引。subset_idc是基于1的数字,其范围局限于所包含的轨组。在轨组中可以定义不超过256个子集。属于轨组和特定子集的各轨传送该轨对应于的子集的索引。例如,在1300中,轨1311和1312将具有subset_idc=1(该轨中所包含的轨组子集的数量)的trackgroupsubsetbox,而轨1321和1322将具有subset_idc=2的trackgroupsubsetbox。各子集将声明自身的复合大小(不再是轨组的属性)。这允许通过将整个组的参数放置在trackgrouptypebox中并将子集特定信息放置在trackgroupsubsetbox中来更精细地描述轨组。子集参数甚至可能使trackgrouptypebox中所声明的参数过载。这允许针对轨组内的所有轨定义默认参数值,并且允许仅针对属于特定子集的轨的子集指定默认参数值。为了允许轨成为多于一个子集的一部分,trackgrouptypebox可以使用version号来提供子集的阵列而不是仅一个实例。指定子集数量的参数也存在于trackgrouptypebox中,如下:该子集也可用于定义一些复合限制:例如,hd轨仅与其它hd轨组合,而不与sd轨组合。子集也可用于描述轨组中的轨的另一复合,该另一复合得到也可用于渲染或显示的视频。在替代实施例中,可以按照相同的原理在trackgroupbox本身而不是trackgrouptypebox中指定子集特征:version或flags值。该子集特征的另一关注是用于描述流式清单中的媒体文件。例如,mpegdash标准支持在其mpd清单中的空间关系描述(srd)。srd具有提供一组空间对象的标识符的被称为spatial_set_id的参数。然后,可以在dashmpd中利用具有subset_idc参数的值作为spatial_set_id值的srd描述符来描述如1300那样的具有相同subset_idc的子图片轨。对于无trackgroupsubsetbox的轨组类型框(“trackgrouptypebox”)的版本,可以直接包括subset_idc或spatial_set_id参数作为轨组类型框(“trackgrouptypebox”)的参数。该subset_idc或spatial_set_id参数可以包括在空间复合所用的隐式和显式轨组框这两者中,即该参数可以与如位置和大小以及可选的变换参数那样的复合信息组合。仍然在图13中,将视频1350分割成各自由视频轨(子图片轨)表示的6个空间区域。尽管视频1350是可能超出可用视频编解码器的简档和级别(最大允许大小)的非常高清晰度的视频,但各子图片轨或子图片轨的子集符合给定简档或级别。然后,向媒体播放器提供与视频序列1350中的空间访问有关的一些粒度可能是有利的。轨组可用于通过定义处理一个或多个区域所需的简档和级别来表示。例如,在1350中,定义对三个子图片轨进行分组的数个轨组。然后,各轨组除复合参数之外,还传送从3个子画面轨的空间复合产生的profile_tier_level信息。此外,通过发送轨组的轨而不是完整视频1350,该组织可以用于导航到如360内容或虚拟现实内容那样的沉浸式内容中。此外,处理轨组之间的重叠是避免定义各自封装3个子图片轨的视频轨的好方法,因为它避免了数据复制。隐式复合轨组1141的一个优点在于隐式复合轨组1141参考并使用(如根据图9所示和所述的)样本描述中所存储的参数。这在子图片组织中带来了一些灵活性,因为可以例如以轨片段为单位随着时间更新样本条目和样本组描述。这允许独立于轨属性(例如位置、大小)来定义轨组。这对于区块化结构随着时间而改变的基于区块的编码特别感兴趣(这可以通过沿着视频序列更新图片参数集来在hevc中进行)。例如,在视频监视应用中,区块化结构可以适于匹配正被跟踪的视频序列中的一个关注对象。使一个区块包围该对象使得能够进行基于roi的流式传输并节省传输字节。这由trif或rrifvisualsamplegroupentry和样本分组机制来处理。这对于轨组是不可能的。为了允许这一点,本发明还提出扩展轨组以便允许轨片段组。这对于轨组或轨片段组包含复合参数的显式复合是有用的。利用轨片段组框,可以随着时间更新这些参数。组中的轨的数量也可以随着时间改变。可以按照如下声明该新框:该框使得能够指示对于轨片段有效的轨组,其中各组共享特定特性或者组内的轨具有特定关系。该框包含零个或多个框,并且特定特性或关系由所包含的框的框类型指示。所包含的框包括标识符,该标识符可用于推断属于相同轨片段组的轨。在trackfragmentgroupbox内包含相同类型的包含框并且在这些包含框内具有相同标识符值的轨属于相同的轨片段组。轨片段组不应被用于指示轨片段之间的依赖关系。track_fragment_group_type指示分组类型,并且应将已注册的值或者来自派生规范或注册的值设置为1。track_fragment_group_type例如可以是本发明为了描述子图片轨的空间组织所定义的“part”值。track_fragment_group_id是整个媒体文件中的唯一标识符。在track_fragment_group_id的值针对相同轨的各片段相同时,该值对应于相同轨组。在轨片段组中的轨针对各片段改变时,track_fragment_group_id也应改变以通知媒体播放器。在使用轨片段组时,推荐片段在属于轨片段组的轨之间(在时间上)对齐。可选地,可以用参数表示trak级别的“trgr”框,以表示该框在一些片段中过载或者该框将沿着整个媒体持续时间保持恒定。这可以利用“trgr”框的特定flags值来进行。图12说明根据本发明的一个方面的媒体播放器或isobmff解析器对媒体文件的处理:轨组描述轨或子图片轨的空间复合的情况。图12中未示出的第一步骤是解析媒体文件中所存在的轨的各trak框。在解析期间,建立包含轨组框“trgr”的轨列表,并且针对各组建立该组中所包含的轨列表。图12说明从1200开始的对与隐式空间复合轨组相对应的一个轨组的轨的处理。首先,在步骤1201中,将当前轨的位置默认设置为(x=0,y=0),并且将其大小设置为在轨头部框中所声明的宽度和高度。然后,在1202中,解析样本表框,以寻找在轨中声明的样本条目。如果样本条目具有值“resv”(测试1203),则在步骤1204中解析器查找schemetypebox(方案类型框)。如果方案类型被设置为表示轨包含投影全向视频的值(测试1305为真),则在1206中解析器寻找区域级的打包信息,通常寻找regionwisepackingbox。如果什么也找不到,则在步骤1207中,解析器在用户数据框中寻找拼接或设置信息。如果什么也找不到(测试1207为假),则在1210中,将轨的大小设置为在轨的原始样本条目中或在projected_picture宽度和高度中所设置的宽度和高度,并且与这些位置和大小复合。如果用户数据框提供了照相机设置信息的拼接信息、从而提供轨的位置和大小,则在步骤1208中使用该拼接信息来设置适当的位置和大小,然后在1210中对轨进行复合。在步骤1206中存在打包信息时,在步骤1209中使用该信息来获得轨的打包位置和大小,并且在1210中利用这些值来对轨进行复合。在方案类型未知、或者不对应于全向内容或复合所用的候选媒体内容时,在1210中使用默认位置和大小。在测试1203返回假时,针对“hvt1”、“lht1”或表示当前轨是区块轨的任何样本条目值测试样本条目值(步骤1211)。如果是这种情况,则在1212中从“trif”框解析位置和大小。否则,在1213中解析器查找例如“rrif”那样的通用区域描述符。如果找到一个通用区域描述符,则在1214中,使用该“rrif”或等效描述符中的参数来设置轨的位置和大小。该处理迭代,直到处理了轨组的所有轨为止。步骤1210涉及:在属于轨组的轨列表中关联这些轨各自的位置和大小,以在相应位流的解码期间应用于复合和渲染。图12的处理是播放器初始化步骤的一部分。如果轨片段组在使用中,则在解码期间也可能发生这种情况。然后,可以通过每当发生新的轨片段时进行从1200起的处理来周期性地更新复合参数。空间复合所用的轨组还应用于被编码为独立hevc区块的输入轨,这些独立hevc区块根据iso/iec14496-15第4版被进一步封装到区块轨中。在这种情况下,属于轨组的轨或子图片轨是区块轨。这些区块轨的区块基础轨也应是相同轨组的一部分。如参考图12所述,隐式复合使用在“trif”框中给出的位置和大小。“trif”描述符传送区块在其原始序列中的位置和大小。区块基础轨和各区块轨全部关联至相同的轨组(区块基础轨和各区块轨的“trak”框包含“trgr”框)。将区块轨用在隐式空间复合中、或者将网格算子用于派生轨或用在空间复合轨组中的一个优点是,可以在压缩域中(通过例如位流级联或者通过条带位置的光转码)进行复合。在用在派生轨和网格算子中时,将派生轨中的transform_post_decoding标志或任何等效手段设置为0,以表示该操作不需要对各轨的解码。这是用于利用运动约束和/或独立的区块编码后的hevc位流的情况。通常,在网格或空间复合使用独立的视频位流时,在解码之后进行该操作。另一实施例涉及直接在“moov”框而不再在各“trak”框中声明媒体文件的最高级的轨关联。然后,定义新的结构,该新的结构提供了用于轨的关联的唯一标识符、提供与该关联或该关联的用途有关的信息的类型、以及包含到该关联中的轨列表(track_id)。这种声明具有避免作为轨关联的一部分的各轨中的信息的重复的益处。这种轨关联例如可以在文件格式级别反映mpegdash的预选或捆绑概念:在一起播放时改善了用户体验的轨集合。可选地,例如以与轨选择框相同的方式但针对互补或关联的轨,可以将该新框在“udat”框中声明为用户数据的一部分。提供轨关联中的轨的公共参数作为属性列表。boxtype:′tass′container:userdatabox(′udta′)ormoviebox(′moov′)mandatory:noquantity:zero,oneormore轨关联框包含在用户数据框中或者直接包含在该轨关联框描述的媒体文件的动画框中。具有以下语义:track_association_id是提供用于指定轨的组或集合的轨关联的唯一标识符的整数。track_association_type是初始地在isobmff中针对轨所定义的但扩展到动画或媒体文件的任何部分的描述的kindbox的概括。track_id_list提供与该轨关联有关的轨列表。attribute_list是属性的直到框的末尾为止的列表。该列表中的属性是应用于轨关联的所有轨的公共属性。图4、图5和图6所示的算法的任何步骤可以通过由可编程计算机器(诸如pc(“个人计算机”)、dsp(“数字信号处理器”)或微控制器等)执行指令集合或程序来以软件实现;或者由机器或专用组件(诸如fpga(“现场可编程门阵列”)或asic(“专用集成电路”)等)以硬件实现。尽管以上已经参考具体实施例说明了本发明,但本发明不限于这些具体实施例,并且存在于本发明的范围内的变形对于本领域技术人员而言是显而易见的。许多其它修改和改变在参考仅以示例方式给出的并且并不意图限制本发明的范围的前述例示实施例时向精通本技术的人员表明这些修改和改变仅是由所附权利要求书来确定的。特别地,在适当情况下,可以互换来自不同实施例的不同特征。在权利要求书中,词语“包括”没有排除其它元件或步骤,并且不定冠词“a”或“an”没有排除多个。在相互不同的从属权利要求中陈述不同的特征的仅有事实并没有表明不能有利地使用这些特征的组合。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1