对包括所生成的内容的媒体数据进行编码的方法和设备与流程

文档序号:19252002发布日期:2019-11-27 20:22阅读:265来源:国知局
本发明通常涉及如下领域:例如根据如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”框(媒体数据框)中。根据本发明的第一方面,提供一种用于对包括多个样本的媒体数据进行编码的方法,所述方法包括:利用服务器装置,-对所述媒体数据进行编码,以获得编码后的媒体数据;-将编码后的媒体数据封装在至少一个第一轨的集合中;-生成第二轨;其中,-所述第二轨描述表示将至少一个变换算子的集合应用于至少一个第一轨的样本的结果的样本;-所述第二轨包括对所述第一轨至少之一的参考;以及-所述第二轨将所述变换算子的集合的描述包括在元数据部分中。在实施例中,所述方法还包括:-将用于表征至少一个变换算子的一个或多个参数封装在所述第二轨的元数据部分中。在实施例中,所述方法还包括:-将用于表征至少一个变换算子的一个或多个参数封装在所述第二轨的元数据部分的头部部分中。在实施例中,所述方法还包括:-将用于表征至少一个变换算子的一个或多个参数封装在所述第二轨的所述元数据部分的样本表框中。在实施例中,所述方法还包括:-将所述第二轨中描述的特定样本所要使用的用于表征至少一个变换算子的一个或多个特定参数封装在所生成的轨的媒体数据部分中。在实施例中,所述方法还包括:-将所述第二轨中描述的特定样本所要使用的用于表征至少一个变换算子的一个或多个特定参数封装在所述第二轨的元数据部分中;以及在所述第二轨的媒体数据部分中提供对这些特定参数的一些参考。在实施例中,所述方法还包括:-在第三轨中提供用于表征至少一个变换算子的一个或多个参数,所述第二轨还包括对所述第三轨的参考。在实施例中,所述一个或多个参数包括在所述第三轨的媒体数据部分中。在实施例中,所述第二轨还将表示将至少一个变换算子的集合应用于所述至少一个第一轨的样本的结果的样本包括在所述媒体数据中。在实施例中,所述变换算子其中之一允许表示拍摄投影的空间部分。在实施例中,所生成的轨的数据部分被标记为空。根据本发明的另一方面,提供一种用于对包括多个样本的媒体数据进行解码的方法,所述方法包括:利用客户端装置,-接收第一轨,所述第一轨包括对至少一个第二轨的参考和至少一个变换算子的集合的描述;-接收所述至少一个第二轨;以及-通过将所述变换算子的集合应用于在所述至少一个第二轨中所接收到的样本,来生成所述媒体数据的样本。根据本发明的另一方面,提供一种服务器装置,用于对包括多个样本的媒体数据进行编码,所述服务器装置包括处理器,所述处理器被配置为:-对所述媒体数据进行编码,以获得编码后的媒体数据;-将编码后的媒体数据封装在至少一个第一轨的集合中;-生成第二轨;其中,-所述第二轨描述表示将至少一个变换算子的集合应用于至少一个第一轨的样本的结果的样本;-所述第二轨包括对所述第一轨至少之一的参考;以及-所述第二轨将所述变换算子的集合的描述包括在元数据部分中。根据本发明的另一方面,提供一种客户端装置,用于对包括多个样本的媒体数据进行解码,所述客户端装置包括处理器,所述处理器被配置为:-接收第一轨,所述第一轨包括对至少一个第二轨的参考和至少一个变换算子的集合的描述;-接收所述至少一个第二轨;以及-通过将所述变换算子的集合应用于在所述至少一个第二轨中所接收到的样本,来生成所述媒体数据的样本。根据本发明的另一方面,提供一种可编程设备所用的计算机程序产品,所述计算机程序产品包括指令序列,所述指令序列用于在被载入所述可编程设备并由所述可编程设备执行的情况下,实现根据本发明的方法。根据本发明的另一方面,提供一种存储有计算机程序的指令的计算机可读存储介质,所述指令用于实现根据本发明的方法。根据本发明的方法的至少一部分可以通过计算机来实现。因此,本发明可以采用完全硬件实施例、(包括固件、常驻软件、微代码等的)完全软件实施例、或者组合这里通常可全部称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明可以采用以介质中嵌入有计算机可用程序代码的表现的任何有形介质中体现的计算机程序产品的形式。由于本发明可以以软件来实现,因此本发明可以体现为计算机可读代码以提供至可编程设备的任何适当载体介质上。有形的非暂时性载体介质可以包括诸如软盘、cd-rom、硬盘驱动器、磁带装置或固态存储器装置等的存储介质。瞬态载体介质可以包括诸如电气信号、电子信号、光学信号、声学信号、磁信号或者例如微波或rf信号的电磁信号等的信号。附图说明现在将仅通过示例的方式并且参考以下附图来说明本发明的实施例,其中:图1示出可以使用本发明的典型客户端服务器系统;图2示出根据本发明实施例的从视觉轨生成轨的不同方式;图3示出根据本发明实施例的生成视觉轨(generatedvisualtrack)设计;图4示出表示根据本发明实施例的用于对包含一个或多个生成视觉轨的媒体文件进行封装的方法的流程图;图5示出根据本发明实施例的媒体文件或媒体分段的解析;图6示出本发明实施例中的样本的生成;图7表示可以实现一个或多个实施例的步骤的服务器或客户端装置的框图;以及图8示出本发明实施例中的用于与宽视图的场景相对应的视频的封装处理以及该宽视图的场景的提取。具体实施方式图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框:用于生成轨的变换的声明:boxtype:′tpcb′container:trackbox(′trak′),onlyinatrackthatdeclaresatleastonetrackreferencetypeoftype′gtrk′.mandatory(pertrack):noquantity(pertrack):zeroorone该框提供要应用轨生成所用的样本的变换的列表:具有以下语义:该框的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(){transformationparametersparameter;}具有以下语义: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:其中,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(元数据样本条目):球面坐标样本条目sampleentrytype:′spcc′container:sampledescriptionbox(‘stsd′)mandatory:noquantity:oor1球面坐标样本条目提供与在球面坐标系中表示的参考轨有关的空间信息。句法球面坐标样本条目将为如下:语义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描述符。将与部分轨和完整轨相对应的轨全部设置在具有新分组类型的轨组中。完整图片标志可以是用于具体特定track_group_type的标志:其中,full_track指示属于轨组的轨是否对应于完整视频轨。图4、图5和图6所示的算法的任何步骤可以通过由可编程计算机器(诸如pc(“个人计算机”)、dsp(“数字信号处理器”)或微控制器等)执行指令集合或程序来以软件实现;或者由机器或专用组件(诸如fpga(“现场可编程门阵列”)或asic(“专用集成电路”)等)以硬件实现。尽管以上已经参考具体实施例说明了本发明,但本发明不限于这些具体实施例,并且存在于本发明的范围内的变形对于本领域技术人员而言是显而易见的。许多其它修改和改变在参考仅以示例方式给出的并且并不意图限制本发明的范围的前述例示实施例时向精通本技术的人员表明这些修改和改变仅是由所附权利要求书来确定的。特别地,在适当情况下,可以互换来自不同实施例的不同特征。在权利要求书中,词语“包括”没有排除其它元件或步骤,并且不定冠词“a”或“an”没有排除多个。在相互不同的从属权利要求中陈述不同的特征的仅有事实并没有表明不能有利地使用这些特征的组合。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1