将媒体数据封装到媒体文件的方法、装置和计算机程序与流程

文档序号:26013445发布日期:2021-07-23 21:34阅读:76来源:国知局
本发明涉及用于封装和发送媒体数据的方法和装置。
背景技术
::国际标准组织基础媒体文件格式(isobmff,iso/iec14496-12)是一种众所周知的灵活且可扩展的格式,其描述了用于本地存储或者经由网络或经由其它位流递送机制进行传输的编码定时媒体数据位流。扩展的示例是iso/iec14496-15,其描述了基于视频编码格式的各种nal(网络抽象层)单元的封装工具。这种编码格式的示例是avc(高级视频编码)、svc(可分级视频编码)、hevc(高效视频编码)和l-hevc(分层hevc)。文件格式扩展的另一示例是iso/iec23008-12,其描述了用于静态图像或诸如hevc静态图像等的静态图像序列的封装工具。文件格式扩展的另一示例是定义全向媒体应用程序格式(omaf)的iso/iec23090-2。iso基础媒体文件格式是面向对象的。它由被称为框的构造块(或以四字符代码为特征的数据结构)组成,这些构造块被顺序地或分层地组织并且定义编码定时媒体数据位流的参数(诸如定时和结构参数等)。在文件格式中,整体呈现称为动画。动画由在媒体或呈现文件的顶层的动画框(具有四字符代码‘moov’)描述。该动画框表示初始化信息容器,该容器包含描述呈现的各种框的集合。在逻辑上被分割为由轨框表示的轨(具有四字符代码‘trak’)。各个轨(由轨标识符(track_id)唯一标识)表示属于呈现的媒体数据的定时序列(例如视频帧)。在各个轨内,各个定时数据单元称为样本;该轨可能是一帧视频、音频或定时元数据。样本隐含地按顺序编号。实际样本数据存储在与动画框的级别相同的被称为媒体数据框(具有四字符代码‘mdat’)的框中。样本的描述存储在sampletablebox(样本表框)中的文件的元数据部分中。动画可以在时间上被组织为动画框,该动画框包含用于整个呈现的信息,随后是一组动画片段和媒体数据框的列表。在动画片段(具有四字符代码‘moof’的框)内,存在轨片段(具有四字符代码‘traf’的框)的集合(针对每个动画片段为零个以上)。轨片段依次包含零个以上的轨运行框(‘trun’),各个轨运行框记录该轨片段的连续样本运行。isobmff文件可以包含形成多个轨的多个编码定时媒体数据位流或编码定时媒体数据位流的子部分。当子部分与视频源的随着时间推移所拍摄的一个或连续的空间部分(例如,随着时间推移所拍摄的至少一个矩形区域,有时被称为“区块”)相对应时,对应的多个轨可以被称为子图片轨。isobmff及其扩展包含若干分组机制以将轨、静态项或样本分组在一起。组通常共用共同的语义和/或特征。发明人在描述和用信号通知与要发送的媒体数据有关的信息时(特别是对于当一个轨参考另一轨时的多个轨)注意到若干问题。一个示例涉及用信号通知在另一轨中被参考的、从客户端请求特定的解析处理的数据实体,这产生了开销且复杂。另一示例涉及用信号通知要从用于形成复合轨的轨组复制的数据实体,特别是当复合轨取决于这些轨组之间的关系类型时。现有的解决方案要么复杂,要么定义不当,并且不完全符合用于从轨组对轨进行复合的现有机制。技术实现要素:本发明旨在解决一个或多个前述问题。在该上下文中,提供了一种用于例如使用http协议通过ip网络(诸如互联网等)流式传输媒体内容(例如全向媒体内容)的解决方案。根据本发明的第一方面,提供一种用于将媒体数据封装到媒体文件中的方法,所述方法包括:将具有媒体样本的第一轨包括在所述媒体文件中,各媒体样本包含一个或多个nal单元的集合;将具有提取器的第二轨包括在所述媒体文件中,所述提取器是参考所述第一轨中所包含的媒体样本中的数据实体的结构;以及将复制模式属性包括在所述提取器中,所述复制模式属性在所述媒体样本中相对于该媒体样本中所包含的一个或多个nal单元来识别被参考的数据实体。特别地,所述复制模式属性被设置为一个或多个模式的列表中的一个模式。在实施例中,模式的列表包括以下模式中的一个或多个模式:第一模式,其中,所述数据实体包括所述样本中所包含的所有的nal单元的集合;第二模式,其中,所述数据实体包括nal单元的集合中的一个nal单元;第三模式,其中,所述数据实体包括nal单元的集合中的一个nal单元的有效载荷;第四模式,其中,所述数据实体包括nal单元的集合中的指定位置处的nal单元;以及第五模式,其中,所述数据实体包括nal单元的集合中的指定位置处的nal单元的有效载荷。在一个实现中,在所述第二模式或所述第三模式中,所述nal单元是所述样本中的第一个nal单元。在一个实现中,在所述第二模式或所述第三模式中,所述nal单元是所述样本中的最后一个nal单元。根据本发明的第二方面,提供一种用于生成媒体文件的方法,包括:将媒体内容编码到媒体数据中;根据以上公开的封装方法,将所述媒体数据封装到多个轨中;以及生成包括所封装的媒体数据的至少一个媒体文件。根据本发明的第三方面,提供一种发送媒体文件的方法,包括:通过服务器装置根据上述方法来生成媒体文件;以及将所生成的媒体文件发送到客户端装置。根据本发明的第四方面,提供一种用于解析媒体文件以生成媒体数据的方法,所述方法包括:从所述媒体文件获得包括提取器的第一轨,所述提取器是参考第二轨中所包含的媒体样本中的数据实体的结构;从所述媒体文件获得包括媒体样本的所述第二轨,各媒体样本包含一个或多个nal单元的集合;以及从所述第二轨的媒体样本获得所述提取器中所包括的复制模式属性所识别出的数据实体,其中,所述复制模式属性在所述媒体样本中相对于该媒体样本中所包含的一个或多个nal单元来识别被参考的数据实体。本发明的其它方面涉及用于封装媒体数据和解析媒体文件的计算装置以及相应的计算机程序。附图说明本发明的其它优点将在对附图和详细描述的研究时对本领域技术人员变得明显。意图是这里还包含了任何附加优点。下面仅通过示例并参考以下附图描述本发明的实施例,其中:图1示出包括适于体现本发明的实施例的封装/解封装模块的示例性系统;图2a示出nal(网络抽象层)单元的结构示例;图2b示出根据iso基础媒体文件格式的视频媒体样本的结构示例;图3示出根据iso/iec14496-15的示例提取器和聚合器结构;图4a和4b示出根据本发明实施例的封装和解封装处理;图5示出根据本发明实施例的通过从轨组提取数据来封装媒体数据的示例;图6示出用于从服务器到客户端的独立拍摄、处理、封装、发送和渲染编码位流的系统示例;图7示出用于将2d视频封装到多个轨的处理;图8描述了包含用于2d空间关系描述的若干轨组的子图片轨封装的示例;图9a和9b示出根据轨集合或轨组的显式重建的示例;以及图10是用于实现本发明的一个或多个实施例的计算装置的示意性框图。具体实施方式图1示出适于体现本发明的实施例的示例性系统191和195。系统191包括连接到通信网络199的封装模块150。系统195包括连接到通信网络199的解封装模块100。根据实施例,系统191用于处理内容(例如视频和/或音频内容),用于流式传输或存储。系统191获得/接收包括原始图像序列151的内容,使用媒体编码器(例如,视频编码器)将图像序列编码到媒体数据(即,位流)中,并且使用封装模块150将媒体数据封装在媒体文件101中。封装模块150包括写入器或打包器其中之一以封装媒体数据。媒体编码器可以在封装模块150内实现以编码所接收的内容,或者媒体编码器可以与封装模块150分离。因此,封装模块150可以仅专用于封装已经编码的内容(媒体数据)。根据实施例,系统195用于处理用于向用户显示/输出的媒体数据。系统195经由通信网络199获得/接收媒体文件101,使用解封装模块100解封装媒体文件101以检索媒体数据,并且使用媒体解码器将媒体数据解码成音频和/或视频内容(信号)。解封装模块100包括解析器或播放器其中之一。媒体解码器可以在解封装模块100内实现以解码媒体数据(位流),或者媒体解码器可以与解封装模块100分离。媒体文件101以多种方式被传送到模块100的解析器或播放器,例如,其可以由封装模块150的写入器或打包器预先生成并作为数据存储在通信网络199中的存储设备中(例如,在服务器或云存储上),直到用户从存储设备请求其中编码的内容为止。在请求该内容时,将数据从存储设备传送/流式传输到解封装模块100。系统191还可以包括内容提供设备,其用于向用户提供/流式传输存储在存储设备中的内容的内容信息(例如,内容的标题和用于识别、选择和请求内容的其它元/存储位置数据)。内容提供设备还可以适于接收和处理对要从存储设备递送/流式传输到用户终端的内容的用户请求。可选地,当用户请求内容时,封装模块150可以生成媒体文件101并将其直接传送/流式传输到解封装模块100。然后解封装模块100接收媒体文件101并根据本发明的实施例进行媒体数据的解封装和解码以获得/生成视频信号109和/或音频信号,然后该视频信号和/或音频信号由用户终端使用以向用户提供所请求的内容。用户通过包括模块100的用户终端的用户接口或具有与模块100通信的部件的用户终端来访问音频/视频内容(信号)。这种用户终端可以是计算机、移动电话、平板电脑或能够向用户提供/显示内容的任何其它类型的装置。根据一种实现,媒体文件101根据iso基础媒体文件格式(isobmff、iso/iec14496-12和iso/iec14496-15标准)将媒体数据(例如编码音频或视频)封装到框中。媒体文件101可以与一个媒体文件(由filetypebox‘ftyp’表示)或者一个或多个段文件(由segmenttypebox‘styp’表示)相对应。根据isobmff,媒体文件101可以包括两种框;包含媒体数据的“媒体数据框”‘mdat’和包含定义媒体数据的放置和定时的元数据的“元数据框”。视频编码器使用视频标准对视频内容进行编码以生成编码视频位流(媒体数据)。视频编码/解码(编解码器)标准包括itu-th.261、iso/iecmpeg-1visual、itu-th.262(iso/iecmpeg-2visual)、itu-th.263(iso/iecmpeg-4visual)、itu-th.264(iso/iecmpeg-4avc)(包括其可分级视频编码(svc)和多视图视频编码(mvc)扩展)、itu-th.265(hevc)(包括其可分级(shvc)和多视图(mv-hevc)扩展)。这里描述的许多实施例描述了使用hevc标准或其扩展的示例。然而,这里描述的技术和系统也可适用于已经可用的其它编码标准(诸如avc等)或者尚未可用或开发的编码标准(诸如规范下的itu-th.266(vvc)等)。图2a示出在诸如h.264/avc或hevc/h.265等的视频编解码器中使用的nal(网络抽象层)单元200的结构示例。nal单元包含nal单元头部201和nal单元有效载荷202。nal单元头部201具有固定长度并提供与nal单元有关的一般信息。例如,在hevc中,nal单元头部201指示各nal单元的类型、层的标识符和时间子层的标识符。存在两种主要类型的nal单元200:视频编码层nal单元(vcl-nal)和非vclnal单元。vclnal单元通常在其有效载荷中包含编码条带片段205。非vclnal单元通常包含参数集合(即,配置信息)或补充增强信息消息。编码条带片段205在hevc位流中编码为slice_segment_header或“条带头部”206以及之后的slice_segment_data或“条带数据”207。条带片段包含整数个连续(按光栅扫描顺序)的编码树单元(即图片中的块)。条带不一定具有矩形形状(因此,条带与用于空间子部分表示的区块相比较不太合适)。视频压缩格式将访问单元定义为与编码图片相对应的按解码顺序连续的nal单元的集合。图2b示出根据iso基础媒体文件格式的媒体(视频)样本210的结构示例。媒体样本是具有单个时间(例如,音频或视频帧)的音频/视频数据单元。根据iso/iec14496-15,样本是与访问单元或访问单元的一部分相对应的一个或多个nal单元212的集合。各nal单元212前面有nal单元长度字段211。例如,对于单层视频,样本与编码图片相对应。对于分层视频,样本可以与访问单元的一部分相对应,例如与用于基本层的nal单元相对应。样本大小(就字节方面)在样本大小框‘stsz’或‘stsz2’中描述。给定样本大小和nal单元长度,isobmff解析器(例如模块100)可以确定样本中的nal单元的数量。iso/iec14496-15定义了作为嵌入在媒体数据(‘mdat’框)中的isobmff结构的特定nal单元、提取器和聚合器。它们也被称为“流内结构”。图3示出根据iso/iec14496-15的示例提取器和聚合器结构。与媒体流(例如压缩视频位流)相对应的第一(媒体)轨300包括媒体(例如视频)样本301,如图2b所示,各媒体样本包含一个或多个nal单元的集合。样本中的nal单元的数量可能彼此不同。称为例如重建、复合、参考或提取器轨的第二轨320包括将nal单元323和提取器nal单元322混合以如箭头310所示参考来自另一轨(这里为第一轨300)的数据的样本321。然后可以通过从轨300提取数据并将其与来自当前轨320的数据323级联来重建来自当前轨320的样本321。注意,重建轨320的一些样本321可以仅包含提取器或仅包含数据。提取器或nat单元的数量在样本321之间不同。提取器322是能够从除了包含提取器的轨之外的轨有效率地提取nal单元的结构。提取器nal单元由特定的nal单元类型值标识(该特定值可以取决于使用中的编解码器,以不与分配给vlc和非vlcnal单元的类型值冲突)。iso/iec14496-15定义了不同压缩格式的提取器:svc、mvc、hevc……。对于hevc,提取器引入特定构造器,以从参考轨(sampleconstructor)中的数据或从构造器(inlineconstructor)中直接提供的数据重建样本。现有提取器和构造器将数据提取或复制指定为从给定字节位置起的字节数的复制。本发明提出在句法结构方面而不是在字节范围方面在提取器或构造器中指定数据提取或复制。一个优点是复制句法结构允许确保位流中的字节对齐。另一优点是可以减小提取器的描述大小。由于提取器是在样本级别定义的,然后随着时间的推移重复,因此这是有价值的。另一优点是允许从轨替代或轨组中提取。当以字节范围表示提取操作时,后者是不可能的,这是因为从一个轨到另一轨、字节位置可能不与相同的句法结构相对应。又一优点是:写入器或打包器不必关心nal单元的nalunitlength字段的字节的长度来计算和提供提取器或sampleconstructor(样本构造器)中的数据偏移和数据长度字段的位数。对于现有的提取器或sampleconstructor,写入器或打包器可能必须重新格式化所提取的数据,以符合目的地轨的长度字段大小。图4a示出根据本发明的实施例的封装处理。在实现中,该处理由图1所示的封装模块150的写入器或打包器进行以封装媒体数据。在步骤400,初始化封装模块以能够正确地读取媒体数据(位流)。初始化可以由用户通过用户界面进行或由应用进行。初始化可能涉及识别位流的句法结构(对于一般性来说称为数据实体)和配置封装参数。封装的配置可以包括:例如决定生成媒体文件101作为一个媒体文件还是多个媒体段;决定在媒体文件中包括针对所述视频流的一个轨还是多个轨;设置将视频轨拆分为部分、视图或层等。在包括多个轨的情况下,封装模块可以在步骤400期间设置轨之间的参考或定义轨组。因此,通过参考一个或多个其它轨而构建的轨包含对这些一个或多个轨的轨参考。轨参考可以具有不同类型以描述参考轨和被参考轨之间的关系或依赖性的类型。可以使用四字符代码对轨参考类型进行编码。例如,根据iso/iec14496-15,类型代码‘scal’指定包含参考提取数据的其它轨的提取器的轨。一旦封装模块被初始化,在步骤401逐个nal单元读取位流。根据步骤400处的初始化(带内或带外参数集合),可以将与参数集合相对应的第一nal单元嵌入decoderconfigurationrecord(解码器配置记录)结构中。写入器或打包器可以检查这些参数集合以了解有关位流分区的更多信息。例如,可以例如通过检查图片参数集合中的时间运动约束区块集合或区块存在的sei(补充增强信息)消息来判断其是否是区块化hevc位流。当在步骤401读取nal单元时,写入器在步骤402检查其是否与新样本相对应。这可以例如通过解码图片顺序计数或通过检查与nal单元相对应的条带是否是图片中的第一条带来完成。如果是,则在步骤403中通过设置样本描述的参数(大小、媒体数据中的位置、某些样本组中的属性……)来最终确定先前样本。特别地,将样本大小重置为0,将nal单元计数重置为0。然后,在步骤404检查当前的nal单元是否应该包括在轨的媒体部分中,或者应该从其它轨被参考,或者应该部分地被修改和参考。这是根据初始化步骤400期间建立的轨依赖性或关系确定的。如果不参考nal单元,则首先将nal单元的长度插入媒体数据‘mdat’(之后是nal单元头部和有效载荷)框中(步骤405)。然后在步骤406当前样本的大小以这三个结构的字节数递增并且写入器或打包器从视频位流检查下一nal单元。如果这不是最后一个nal单元,则处理迭代到步骤401,直到所有nal单元被处理为止。如果通过参考将nal单元包括在媒体文件中(测试404真),则在步骤407,写入器或打包器包括提取器,并根据本发明的实施例设置提取器的属性。特别地,该处理在‘mdat’框中向nal单元长度字段附加以字节为单位的提取器结构的大小,并创建提取器nal单元。提取器包括复制模式属性‘copy_mode’,该属性在媒体样本中相对于媒体样本中包含的一个或多个nal单元识别被参考的数据实体。复制模式属性可以取不同的值,这取决于在步骤400写入器或打包器是如何被初始化的。在一种实现中,如果在步骤400进行的初始化导致重建轨用于构成来自不同轨的视频样本,则将复制模式属性设置为‘sample’模式。在该模式中,数据实体包括样本中所包含的所有的nal单元集合。在一种实现中,如果在步骤400进行的初始化或位流检查指示视频位流是区块化的(例如,具有运动约束区块集合的hevc),并且用户或应用指示区块重新排列,则复制模式属性被设置为‘nalu’模式。在该模式中,数据实体包括样本中所包含的一个给定nal单元。在一种实现中,如果在步骤400进行的初始化导致区块重新排列需要修改位流中的区块位置,则写入器可以根据区块位置是在条带头部中编码还是在nal单元头部中编码,向重写指令提供内联构造器和将复制模式属性设置为‘slice_data’模式或‘nalu_payload’模式的提取器。在这些模式中,数据实体包括样本中所包括的一个给定nal单元的有效载荷或条带数据。这些模式是有利的,因为它们避免复制将被内联构造器的指令重写的无用数据。当将提取器写入媒体数据部分(‘mdat’框)时,更新样本描述(样本中的样本大小、当前nalu索引等)。然后,在步骤406,写入器或打包器检查下一nal单元。当到达最后一个nal单元时,写入器在步骤408例如通过在媒体上写入最后一个样本的大小、索引表、用户数据或任何元数据来终止媒体文件。注意,当初始化步骤400指示封装成段时,在开始新样本之前进行附加测试(未表示)以检查是否达到段持续时间。当达到段持续时间时,该段将最终确定,并且准备由播放器使用或通过分发网络发送。当未达到段持续时间时,写入器或打包器对样本和nal单元进行迭代。图4b示出根据本发明实施例的解封装处理。在实现中,该处理由图1所示的解封装模块100的解析器或播放器进行以解封装媒体数据。在步骤410,播放器首先接收媒体文件101(作为一个文件或作为连续段)。该文件可以存储在解析器或播放器的存储器中,或者可以从网络套接字读取。首先,在步骤411解析初始化数据(通常是‘moov’框及其子框),以了解媒体文件的参数/设置:轨数量、轨关系和依赖性、样本类型、持续时间、位置和大小等。从在步骤411确定的轨集合中,播放器或解析器在步骤412选择一个或多个要渲染的轨。然后,通过逐个样本解析媒体数据框开始重建。对于相互依赖的轨,根据使用样本位置信息的从被参考轨到参考轨(例如从样本到样本表框中可用的组块框‘stsc’和组块偏移框‘stco’)的轨参考进行媒体数据的解析。解析器或播放器对样本迭代,直到达到文件的末尾为止(测试413假)。在段的情况下,逐个样本地,当一个段被完全读取时解析器读取下一个段。对于给定的样本,处理从组块偏移框再加上针对该组块解析的先前样本的累积大小所指示的位置读取数据。从该位置,解析器找到nal单元长度字段。然后,解析器读取nal单元长度字段给出的字节数,以获得nal单元有效载荷。如果nal单元与提取器相对应(测试415),则解析器在步骤416读取提取器的复制模式属性。如果nal单元不是提取器,则解析器在步骤417将与nal单元有效载荷相对应的字节附加到将被提供给媒体解码器用于解码的重建位流(媒体数据)。在步骤417之后,处理对下一nal单元迭代(转至步骤414),直到达到当前样本的大小为止。根据复制模式属性的值,解析器从被参考轨提取样本、nal单元、nal单元有效载荷或条带数据。实际上,根据本发明的实施例,复制模式属性指示要复制的句法结构或数据实体(代替字节范围)。例如,复制模式可以指示复制样本或访问单元、nal单元、nal单元有效载荷或条带数据。在下面,提供示例以例示根据本发明的实施例提出的新提取器。新提取器实现如上在图4a和4b的封装/解封装处理的步骤407和415中讨论的复制模式属性。复制模式属性的实现既适用于没有构造器的提取器(诸如svc、mvc提取器等),也适用于具有构造器的提取器(诸如hevc或l-hevc提取器等)。对于具有构造器的提取器,新类型的构造器可以被定义如下(由“constructor_type”标识):提供新构造器的名称‘sampleconstructorfromstructure’作为示例。此外,提供保留的‘constructor_type’值‘3’作为示例。新构造器不指示(‘sampleconstructor’)或提供(‘inlineconstructor’)字节范围,而是指示依赖于句法结构的复制模式。可以使用‘constructor_type’的任何保留名称或保留值。如以下例示那样定义新构造器。在优选实施例中,新构造器从被参考轨中的时间对齐样本进行提取。这避免了使用提取器nal单元针对各样本中的‘sample_offset’重复八位:其中,新构造器的参数、字段或属性具有以下语义:-“ref_index”指定‘scal’类型的轨参考的索引,以用于查找用于提取数据的track_id。注意,对isobmff的修改允许对参考轨或轨组进行轨参考。当ref_index解析为track_group_id时,由解析器或播放器根据轨grouping_type在相应轨组中选择最合适的轨。默认行为可以是选择具有指定track_group_id的文件中的第一轨;-“copy_mode”指定解析提取器时要进行的复制操作(即复制模式)。例如,选择以下一个或多个值:-用信号通知‘样本’模式的“0”,即从样本的第一个字节复制直到样本的末尾(包含末尾)为止。样本的第一个字节可以从样本到组块框和组块偏移框来确定;-用信号通知‘nalu’模式的“1”,即从第i个nal单元的第一个字节到该同一nal单元的最后一个字节的复制,其中i与nalu_idc字段相对应。从媒体数据框‘mdat’中的nal单元212之前的长度字段211确定与nal单元相对应的要复制的字节长度;-用信号通知‘nalu_payload’模式的“2”,即从第i个nal单元有效载荷中的第一个字节到该同一nal单元的最后一个字节的复制,其中i与nalu_idc字段相对应;-用信号通知‘slice_data’模式的“3”,即从第i个slice_data的第一个字节到该同一条带的最后一个字节的复制,其中i与nalu_idc字段相对应。解析器或读取器例如通过读取专用于条带头部长度描述的isobmff结构来确定要复制的第一个字节的位置。这可以由提供用于样本的条带头部长度的专用样本组来指示,或者由针对各nal单元提供条带头部长度的流内结构来指示;-‘nalu_idc_field_size’:该字段指示用于编码nalu_idc参数的字节数减一;以及-nalu_idc:当copy_mode是基于nalu时(copy_mode!=0),该字段提供要从其进行提取的nalu的索引(基于1的索引)。保留值0。注意,当进行某些头部(nal单元头部或条带头部)重写时,最后两种复制模式(‘nalu_payload’和‘slice_data’模式)是有用的。在这种情况下,仅需要提取有效载荷并将其与重写的头部组合。头部的重写可以由inlineconstructor处理。在提取器参考聚合器的情况下,在nalu_idc-1个nal单元的聚合器的情况下,通过将由nal单元长度字段大小扩增的nal单元长度字段值和additional_bytes字段相加来计算要复制的第一个字节的偏移。虽然聚合器对样本复制模式有一定益处,但推荐在nal单元或条带级别提取时避免聚合器。当copy_mode设置为nal单元或基于条带的复制时,应忽略聚合器,并处理如nalu_idc参数指示的第i个nal单元。在所有上述复制模式中,当复制整个nal单元时或当复制na单元的一部分(有效载荷/条带)时,相对于样本中所包含的一个或多个nal单元容易地确定要复制的数据实体。从上面的定义中,可以看到新构造器的开销取决于复制模式在2至4字节之间,而现有的“sampleconstructor”的开销取决于nal单元长度(decoderconfigurationinformation中的“lengthsizeminusone”字段)在4至10字节之间。设置为“样本”模式的复制模式将使构造器的大小以至少2的因子进行缩小。上述复制模式列表并非穷尽的,并且可以设想可节省更多字节的其它复制模式。例如,根据一种实现,复制模式属性可以被设置为‘first_nalu’模式,该模式用信号通知解析器以复制当前样本的第一nal单元。在该模式中,不再需要提供‘nalu_idc’参数。因此可以保存一个或两个附加字节。根据另一种实现,复制模式可以以nal单元的范围为目标。例如,将copy_mode设置为‘nalu_range’模式,其中预期将开始nal单元索引和结束nal单元索引作为参数。考虑到保留位,最多可以定义128个复制模式。各复制模式应有一个保留值,以使解析器明确识别媒体文件中由写入器或打包器设置的复制模式。当需要更大的灵活性来进行提取时,特别是从非时间对齐样本中提取时,除了copy_mode参数或属性之外,新构造器可以嵌入sample_offset参数。在替代实施例中,定义了新提取器,该新提取器具有保留的nal单元类型以将在基于句法结构的复制模式上操作的新提取器与现有的基于字节的提取器区分开。新提取器(例如称为“structureextractor”)定义如下:具有与上面公开的新构造器相同的语义。主要区别在于这里存在具体的‘nalunitheader’。‘nalunitheader’是与正在使用的视频编码格式相对应的nal单元头部,但具有尚未针对正在使用的视频编码格式的任何vcl、非vclnal单元或现有提取器或聚合器保留的保留值。在替代实施例中,新提取器总是在时间对齐的样本上操作,使得‘sample_offset’参数不存在于新提取器结构中。两个新提取器(时间对齐或非时间对齐)可以通过其nalu_type的不同特定值(在nal单元头部中)区分开。在替代实施例中,使用保留位之一作为指示存在或不存在样本偏移的标志;这允许使用单个提取器或构造器进行时间对齐或非时间对齐提取。在设置标志时,sample_offset存在并具有与现有提取器或构造器相同的语义,并且允许非时间对齐提取。当未设置标志时,sample_offset不存在,并且仅允许时间对齐提取。下面提供示例。类似的实施例可以应用于提供copy_mode的提取器。根据优选实施例,如下文所述,新定义的提取器或构造器可以有利地在封装多个轨(诸如组、替代物或等效物等)的媒体文件中使用。isobmff文件可以封装多个编码位流或位流的子部分,从而产生多个轨。例如,isobmff文件可以包含几个轨,各轨表示给定质量、分辨率或位率的视频序列并且被封装在同一媒体文件中以为播放器提供选择。isobmff及其扩展包括多个分组机制以将轨、静态项或样本分组在一起。组通常共用共同的语义和/或特征。isobmff还定义了描述轨之间的关系的工具。例如,isobmff包括实体组机制和轨组机制。实体分组机制可以用于指示根据所指示的分组类型或语义对轨和/或静态项进行分组。轨分组机制可以用于指示根据所指示的分组类型或语义对轨进行分组。对于轨组,作为第一个工具,isobmff提供了一个表示为‘trgr’的框,该框位于轨级别(即,在isobmff框层次结构中的“trak”框内)以描述轨组,其中各组共用特定特征或组内的轨具有特定关系。轨组至少包含标识符(“track_group_id”)和grouping_type(“track_group_type”)。具有如下轨组框的所有轨都是相同轨组的一部分:该轨组框有着具有相同track_group_type和track_group_id值的‘trackgrouptypebox’。全向媒体应用程序格式(omaf,iso/iec23091-2)正在考虑一种新的分组类型‘alte’,以指示该类型的轨组中的轨是要用作‘scal’或‘sabt’轨参考的源的替代。它们还将轨参考类型的语义扩展为参考‘tref’框中的轨或轨组两者。最后一点可能会影响媒体解析器或播放器的提取器分辨率。用于定义轨组(特别是备用轨组)的第二个工具是轨头部中的‘alternate_group’参数。该参数提供标识符(作为整数),用于指定轨的组或集合。共用其‘alternate_group’参数的相同值的轨包含彼此的备用数据。伴随着‘alternate_group’标识符并为了区分备用轨组内的轨,媒体文件可以包含可用作区分标准的属性(例如:位率、帧率、编解码器、语言、包大小等)。第三个工具是可以对实体(即项或轨(或这两者))进行分组的‘entitygrouping’。对于轨组,‘entitytogroup’包含标识符和‘grouping_type’。特别地,iso/iec14496-12声明grouping_type‘altr’为彼此的组替代。描述轨之间的关系的另一个工具是轨参考机制。它涉及在轨级别声明的trackreferencebox‘tref’中,其包含一个或多个trackreferencetypebox,各个trackreferencetypebox提供参考的类型以及一个或多个被参考轨的标识符(track_id)。该机制例如用于指示轨集合在分层或可分级视频(‘sbas’)或区块化视频(‘tbas’)中共用相同的“基本轨”。代替使用轨组机制,替代或等效轨可以经由具有特定轨参考类型的轨参考机制来用信号通知。例如,‘eqiv’轨参考类型指示可以明显地使用参考轨和被参考轨进行提取,即它们表示相同的视觉内容,可以组合相应的位流(它们具有相同的参数集合)。可以存在其它的用信号通知的方式指示轨集合是等效的。一旦这样的用信号通知的方式允许唯一地标识轨集合或轨组,它就可以由来自轨组的新的提取器或构造器使用。图5示出根据本发明实施例的通过从轨组提取数据来封装媒体数据的示例。提取器轨500(track_id=100)具有对两个轨组520和530(track_group_id分别为11、22)的类型为‘scal’的轨参考501。这两个轨组可以将它们的track_group_type设置为用信号通知它们的轨是彼此替代的‘alte’,或者具有总是可以做出仅从轨组中选择一个轨的决策的语义的任何其它分组类型。在该示例中,这些轨组各自声明两个替代轨521、522和531、532(分别为track_id为111和112的轨以及track_id为221和222的轨)。例如,轨组内的轨描述相同的但以不同的质量级别编码的视频。在该示例中,提取器轨500中的时间502t处的样本涉及将来自第一轨组520中的一个轨的在时间t处的样本与来自第二轨组530中的一个轨的在时间t处的样本级联。对于各轨组520或530,写入器150指示样本502中的提取器503可以从轨组520内的任何一个替代轨中提取样本,并且样本502中的提取器504可以从轨组530内的任何一个替代轨中提取样本。提取器503和504将它们的copy_mode设置为与“样本”复制模式相对应的值。这种来自轨组的提取器的解决方案需要由100那样的解析器或播放器进行的附加步骤(由550表示)。当在步骤415(图4b)中识别提取器nal单元时,解析器必须检查ref_index是与track_id相对应还是与track_group_id相对应。这可以由文件的品牌、在来自轨组的构造器或提取器仅将track_group_id取为ref_index时由提取器或构造器的类型来确定。当来自轨组的构造器或提取器接受track_id和track_group_id这两者时,解析器将维持具有与轨或轨组相关的指示的id列表。从该列表中,解析器判断来自轨组的提取器或构造器的ref_index是直接解析为track_id还是track_group_id。当ref_index解析为track_group_id时,由解析器或播放器根据轨grouping_type选择相应轨组中的最合适轨。默认行为是选择具有指定track_group_id的文件中的第一个轨。另一种行为是在轨选择框或哪些参数区分替代轨的任何其它轨描述中检查,并且根据应用或上下文(带宽、处理能力)来选择轨组中的最合适轨。为了避免解码伪像,解析器可以仅针对随机访问样本(例如,用于视频的帧内)重新评估被参考轨组中的轨的选择。解析器可以通过检查替代轨的‘rap’样本组来确定随机访问样本的位置。在优选实施例中,与替代轨相对应的位流使其随机访问点对齐,使得解析器仅通过查看一个轨样本组就知道何时重新评估用于提取的轨选择。替代轨的随机访问点的对齐或不对齐可以由特定的‘track_group_type’或轨参考类型或描述轨等效物的任何信令来用信号通知。参考轨组的新构造器或提取器还可以嵌入一个参数(例如,在1位上编码的标志,重复使用保留位),该参数指示轨组内的轨是否使其随机访问点对齐。在对齐时,解析器知道其可以重新评估轨组中的轨的选择的样本。当该新参数设置为false时,这意味着随机访问点在轨组内的轨上不对齐。然后,在解析参考轨组的提取器或构造器时重新评估对一个轨的选择之前,解析器首先必须检查被参考轨组内的至少一个轨具有当前样本(包含提取器的样本)的随机访问点。替代实施例允许避免上述检查。在该替代实施例中,参考轨组的提取器或构造器具有可选参数,该参数与指示随机访问点在轨上对齐或不对齐的标志或参数相组合。当标志设置为false时,新的可选参数存在,并提供被参考轨组内具有当前样本(包含提取器的样本)的随机访问点的轨的列表。轨的列表描述为track_id的列表。从该列表中,解析器针对给定样本确定轨组内要提取的可能候选轨的列表。根据替代实施例,提取器被指定如下:对于先前的实施例,“structureextractor”可以具有两个版本,不存在‘sample_offset’的时间对齐版本和存在‘sample_offset’的非时间对齐版本(如上述结构那样)。各个版本具有特定nal单元类型,使得解析器可以容易地识别提取器的类型。被称为“aligned_raps”的参数(名称仅是示例)与指示被参考轨组内的轨(经由ref_index)是否具有对齐的随机访问点的标志相对应。被称为‘switchable_tracks’的参数(名称仅是示例)是提供可切换轨的列表以供提取器解析的参数。它包含轨组内提供针对给定样本的随机访问点的轨的索引。写入器或打包器150根据在步骤400中获得的如与如何对轨进行分组有关的指示等的初始化信息(例如在‘trgr’框中描述的)在步骤407设置该列表。这里要注意的是,该参数可以是track_id的数组,但是为了有效率地描述,声明轨组内的轨的索引(各自8位)而不是列表track_id(各自32位)。该索引是基于1的索引。索引(在写入器侧和分析器侧这两者)确定如下:对于各个轨组,track_id的有序列表存储在存储器中。顺序是增加track_id的值。例如,如果具有track_id1、12、23的轨是同一轨组的一部分,则索引1提供track_id=1,索引2提供track_id12,等等。当经由特定轨参考类型用信号通知轨的等效物时,这也起作用。索引还基于特定轨参考类型所参考的track_id的有序列表。存在如下场景:将随机访问点(例如,帧内解码刷新-idr-帧)放置在替代轨的不同时间,这为动态内容适配提供了更多的切换点,并且可以减少切换延迟。当然,相同的参数可以应用于参考轨组的新构造器(这里针对构造器的时间对齐版本,即没有sample_offset参数):新参数‘aligned_raps’和可选参数‘switchable_tracks’的含义与上述structureextractor中使用的含义相同。提供上述名称‘sampleconstructorfromstructure’作为示例,也可以称为‘sampleconstructorfromtrackgroup’或与唯一且保留的单个constructor_type值相对应的任何名称。对于具有复制模式的提取器或构造器这两者(通用情况或参考轨组),替代实施例提供了指示要提取的nal单元的索引的不同方式(当copy_mode指示与“样本”复制模式不同的模式时)。该替代实施例引起提取器或构造器的以下新定义。对于hevc或l-hevc提取器,提出了新类型的构造器,这里例如称为sampleconstructorfromtrackgroup,其按照如下扩展了具有从轨集合或轨组进行重建的可能性的hevc和l-hevc提取器(或重复使用提取器内部的构造器的概念的任何压缩格式):extractor::constructor_type的语义更新如下:‘constructor_type’指定后面的构造器。sampleconstructor、inlineconstructor和sampleconstructorfromtrackgroup分别与等于0、2和3的constructor_type相对应。保留constructor_type的其它值。下面给出了constructor_type等于3的示例(但任何其它未使用的值均可接受):具有以下语义:-ref_index指定类型‘scal’的轨参考的索引,以用于查找提取数据的track_group_id。由解析器或播放器根据轨grouping_type选择相应轨组中最合适的轨。默认行为可以是选择具有指定track_group_id的文件中的第一个轨。-属性“copy_mode”指定解析提取器时要进行的复制操作,特别是要复制的句法结构或数据实体(而不是字节范围);copy_mode设置为0:基于样本的复制模式,即从样本的第一个字节起直到样本的末尾(包含末尾)为止的字节的复制。样本的第一个字节可以从样本到组块框和组块偏移框来确定;copy_mode设置为1:基于nal单元的复制模式,即从第i个nal单元的第一个字节起到该同一nal单元的最后一个字节的复制,其中i与nalu_idc字段相对应;在nalu_idc-1个nal单元的聚合器的情况下,通过将由nal单元长度字段大小扩增的nal单元长度字段值和additional_bytes字段相加来计算要复制的第一个字节的偏移。根据媒体数据框‘mdat’中的nal单元212之前的长度字段211来确定与nal单元相对应的要复制的字节长度;copy_mode设置为2:基于nalu有效载荷的复制模式,即从第i个nalu有效载荷中的第一个字节起到该相同nalu的最后一个字节的复制,其中i与nalu_idc字段相对应;copy_mode设置为3:基于slice_data的复制模式,即从第i个slice_data的第一个字节到该相同条带的最后一个字节的复制,其中i与nalu_idc字段相对应。解析器或读取器例如通过读取专用于条带头部长度描述的isobmff结构来确定要复制的第一个字节的位置;-对于属性nalu_idc,当copy_mode是基于nal单元或基于条带(copy_mode!=0)时,nalu_idc属性提供要从其进行提取的nal单元的索引(基于1的索引,意味着从值1开始)。值0被保留以指示存在转义nalu_idc以提取超过第255个nalu(对于罕见的情况,例如样本可能针对每个图片包含多达600个条带的hevclevel6)。-escape_nalu_idc:指示超过要从其开始进行提取的第255个nalu的偏移。当不存在时,假定等于0。当存在时,值0被保留,并且如果需要8位的另一个转义值(未表示)以从第512个nal单元起寻址则可以被使用。然后由nalu_idc+escape_nalu_idc给出要从其进行提取的nal单元。当进行某些头部重写时,基于nalu有效载荷和条带数据的模式是有用的。在这种情况下,仅有效载荷被提取并与重写的头部组合。可以用inlineconstructor描述该重写。在假定重建是从被参考轨组中的某个轨的时间对齐的样本进行的情况下,sample_offset参数不会出现在新的sampleconstructorfromtrackgroup中。在提取中提供更多灵活性的替代实施例涉及保持该新sampleconstructorfromtrackgroup中的sample_offset参数。当存在时,sample_offset的含义与iso/iec14496-15中的含义相同。写入器或打包器150可以在封装步骤407中与特定构造器一起使用这种提取器,特别是当初始化步骤400指示存在原始序列151的替代编码位流或表示时。建议将定义新提取器的新章节包含在iso/iec14496-15中,使得该新构造器变得在文件/段封装部件150(例如mp4写入器)和文件/段解封装部件100(例如mp4读取器)之间可互操作。该sampleconstructorfromtrackgroup还可以嵌入如指示随机访问点是否在轨组内的轨上对齐的参数或标志那样的附加参数与当该参数或标志被设置为false时提供可切换轨的列表的可选参数。svc、3d-avc、mvc的提取器也可以被扩展以支持句法结构或数据实体上的复制模式(而不是字节范围上的复制模式)并且从轨组中提取。保留特定nal单元类型以指示提取器是基于句法结构提取(即包含指示copy_mode的属性或参数),可以参考替代或等效轨的组或集合,并且使用nal单元转义模式以用于nal单元索引指示(这里使用非时间对齐提取模式进行例示,如存在“sample_offset”参数所示):语义与sampleconstructorfromtrackgroup所说明的相同。该新提取器还可以嵌入如指示随机访问点是否在轨组内的轨上对齐的参数或标志那样的附加参数以及当该参数或标志被设置为false时提供可切换轨的列表的可选参数。图6示出实现封装和发送方法的系统60的示例。系统60允许流动媒体内容(例如2d图像)。系统60包括服务器装置601和客户端装置670,所述媒体内容从服务器装置601发送到客户端装置670。如图所示,媒体内容可以是由照相机系统600拍摄并递送到客户端装置670的视频序列6011,以例如由用户显示在2d画面675(电视、平板电脑、智能电话、头戴式显示器……)上。在优选实施例中,形成视频序列的图像6011由拆分装置6012拆分成空间部分6013以由编码装置640独立编码。独立编码意味着一个空间部分不使用来自另一空间部分的任何数据作为差分或预测编码的参考。例如,当编码装置640基于hevc(高效视频编码)压缩格式时,可以将空间部分6013编码为独立的区块。在替代实施例中,空间部分6013可被编码为运动约束区块。编码部件提供与空间部分一样多的位流或具有n个独立子位流的一个位流(例如当hevc用于编码独立区块时)。然后,由文件/段封装部件650(对应于封装模块150)将各个所提供的位流或子位流封装到多个子图片轨6014中。子图片轨是用于图片或图像的子部分(通常是空间部分或矩形区域)的轨嵌入数据。子图片轨可以与其它子图片轨相关,或者与用于描述从其提取子图片的完整图片的轨相关。例如,子图片轨可以是区块轨。它还可以由avc轨、hevc轨、hevc区块轨或封装为样本序列的任何压缩视频位流来表示。可以使用轨组机制对来自同一视频源的子图片轨进行分组。例如,omaf正在考虑‘2dcc’track_group_type来描述视频轨之间的2d关系。650中使用的打包或封装格式例如如mpeg标准化组织所定义的可以根据iso基础媒体文件格式和iso/iec14496-15。得到的文件或段文件可以是单个mp4文件或mp4段。在封装期间,音频流可以被添加到视频位流以及提供与视频序列或所添加的音频流有关的描述信息(元数据)的元数据轨。然后,所封装的文件或段文件例如通过如互联网等的ip网络使用http(超文本传输协议)协议或在诸如盘或usb密钥等的可移动数字介质上经由递送部件660递送到客户端装置670。为了例示,递送部件660实现了经由http的自适应流式传输,诸如来自mpeg标准化委员会(“iso/iec23009-1,经由http的动态自适应流式传输(dash),第1部分:mediapresentationdescriptionandsegmentformats(媒体呈现描述和段格式)”)的经由http的动态自适应流式传输(dash)等。递送部件可以包括流式传输服务器661和流式传输客户端662。媒体呈现描述可以提供与封装包括完整图像的视频序列的轨、或仅子图片轨、或者这两者相对应的媒体段的描述和url。媒体呈现描述可以提供子图片轨的替代组,各个组允许由照相机600拍摄的场景的不同重建级别。替代方案可以是例如在分辨率、质量或位率、不同的拆分(与拆分部件6012相关联的粗网格或细网格)方面。在由流式传输客户端662接收时,由文件/段解封装部件671(对应于解封装模块100)解析所封装的媒体文件或媒体段,以提取一个或多个数据流。通过解码部件672对所提取的数据流进行解码。在由文件/段解封装部件671接收到的isobmff文件或段的情况下,解析通常由mp4读取器或mp4解析器处理。解析器可以从描述性元数据提取所封装的视频位流和/或视频子位流。接着,可选地,由解码部件672提供的视频序列的解码图像或子图像由渲染部件674构成为用于视频渲染的结果图像。所渲染的视频显示在如屏幕那样的显示部件675(用户装置)上。注意,视频渲染取决于若干参数,这些参数包括客户端的显示大小或处理能力。然后,渲染可以涉及仅显示经解析和解码的子图片轨的子集。这可以由渲染部件674控制,或者直接在流式传输客户端662的内容选择中控制。已经观察到vhd(“超高清晰度”)视频流的若干图像的发送和渲染可能导致非常高的位率和非常高的分辨率的媒体数据流。因此,当考虑整个系统时,为了避免浪费带宽并且保持符合客户端播放器的处理能力,需要优化对媒体数据的访问。特别地,利用如投影仪阵列那样的专用显示器,可以使用媒体数据流来显示图像。媒体数据流还可以用于显示所拍摄视频6011中的特定感兴趣区域。图7示出将2d视频(通过部件650)封装到多个轨中的处理。在步骤700,服务器判断编码后的输入位流是否被封装为单个或多个轨。如果单个轨封装启用(测试700为“是”),则将视频封装为单个轨(步骤710),可选地具有指示哪个nal单元与哪个区域相对应的nal单元映射。如果必须生成多个轨(测试700为“否”),例如当通过图6中的部件6012进行拆分时,则在步骤720中,文件的内容创建者可以添加复合或重建轨。复合或重建轨允许为解析器或播放器提供条目点或“主”或“默认”轨。例如,复合或重建轨具有在轨头部中设置的标志值,该标志值指示该轨已启用并且该轨在动画中使用并可选地作为预览。由复合轨参考的轨可能没有设置这些标志值(track_enable标志值除外)来隐藏这些轨以免被客户端、播放器或用户选择。当不存在复合或重建轨时,在步骤730中,将媒体文件和编码后的各位流或子位流封装在其自身轨中。可选步骤可能涉及通过收集位流或子位流以形成比原始拆分区域更大的区域来减少轨的数量。当封装提供复合或重建轨(测试720为“是”)时,样本重建规则可能有两个选项:媒体文件中的隐式或显式重建指示。对于隐式重建(测试740为“真”,分支为“是”),在步骤741中,如iso/iec14496-15所定义的,将复合或重建轨提供为区块基础轨(例如,具有‘hvt1’样本条目的轨)。然后,如iso/iec14496-15中所规定的,在步骤743中根据该区块基础轨将各个子图片轨封装为区块轨。注意,除了区块轨的‘trif’描述符之外,还可以将各个区块轨声明为2d空间关系描述的相同轨组的一部分。如果提供复合或重建轨作为具有用于显式重建的提取器的轨(测试740是“假”,分支“否”),则在步骤742在媒体文件中创建附加轨。该轨主要包含根据本发明实施例的提取器,即允许如样本、nal单元或条带那样的句法结构(数据实体)的复制。该轨还可以允许从替代或等效轨的集合或组(如根据先前实施例的新提取器或构造器)提取。所创建的轨参考在步骤744中创建的各个子图片轨,例如具有‘scal’轨参考类型。如果没有提供复合或重建轨(测试720是“假”,分支“否”),则在步骤730中将媒体的视频部分封装为子图片轨。注意,即使存在复合或重建轨,也可以经由轨组机制对子图片轨进行分组。最后,在步骤750生成对子图片轨之间的空间复合和关系的描述。2d空间关系描述的轨组框被添加到各个子图片轨以描述原始视频源内的各个子图片轨的相对位置和大小。图8描述包含2d空间关系描述的若干轨组的子图片轨封装的示例。该示例适用于2d和全向视频这两者。在该示例中,轨#1至#4属于track_group_id等于10并且source_id800等于1的类型为‘2dcc’的轨组81。轨#5至#8属于track_group_id等于20但相同的source_id800等于1的类型为‘2dcc’的不同轨组82。还存在track_group_id等于30并且不同的source_id801等于2的类型为‘2dcc’的第三轨组83。此外,还存在若干备用组84至87。属于同一备用组的所有轨(即,在其轨头部框‘tkhd’中具有相同的alternate_group标识符的轨,或者这些轨均声明具有相同track_group_type和track_group_id的‘trgr’框)指定包含备用数据的轨的组或集合。备用数据可以与备用位率、编解码器、语言、包大小等相对应。这些差异属性可以在轨选择框中指示。任何时候都只能播放或流式传输备用组中的一个轨。在该示例中,轨#1、#5和#9属于标识符等于100的相同备用组84。例如,轨#1和轨#5是具有不同质量的备用轨,并且轨#9是在编解码器方面而言的轨#1和轨#5的备用轨。轨#2、#6和#10属于标识符等于200的同一个备用组85。例如,轨#2和轨#6是具有不同分辨率的备用轨,并且轨#10是在帧率等方面而言的轨#2和轨#6的备用轨,等等。轨组81和82具有相同的source_id800,并且轨组83具有不同的source_id801,这意味着属于轨组81和82的子图片轨可以组合在一起(相对于其它约束,即,针对每个备用组几乎一个子图片轨)。另一方面,尽管来自轨组83的子图片轨可能属于相同的备用组,但来自轨组83的这些子图片轨并不意图与来自轨组81和82的任何子图片轨组合,因为它们不具有相同的source_id。然后,source_id参数向播放器提供子图片轨可以是同一空间复合的一部分的指示。对于给定空间位置,可以认为一个子图片轨在视觉上等同于相同给定空间位置处的另一子图片轨。这对于当媒体内容被提供到多个轨中时的(子图片)轨选择是有用的。此外,允许动态自适应(在质量/位率或分辨率方面)根据所选择的子图片轨来显示相同的空间复合。图8的配置允许写入器或打包器在650(图6)或150(图1)中构建重建或复合轨,以将不同轨的空间部分布置成更大的图像进行渲染。根据本发明的实施例,重建或复合轨使用所提出的具有不同复制模式的提取器并且能够参考轨组。这对于例如指示与轨#1或轨#5相对应的空间部分可以通过这两个轨中的一个轨来重建是有用的。这是由具有参考等于100的备用组(84)的提取器的写入器或打包器指示的。此外,可以从备用组85的一个轨提取第二空间部分的数据。再一次,重建轨包含copy_mode被设置为“样本”模式并参考轨组的提取器。图9a和9b示出根据轨集合或轨组的显式重建的示例。在图示的示例中,轨组与子图片轨的备用集合相对应。根据本发明的实施例,在如图9a中的900或图9b中的950那样的提取器或重建轨中使用新类型的提取器。图9a和9b示出特定轨参考类型‘esra’901或951,以指示“用替代物进行显式空间重建”。可以代替地使用‘scal’类型的轨参考。步骤“轨选择”902或952与解析器进行的用以选择由901或951表示的被参考轨组中的轨的步骤相对应。图9a与图8上的配置非常相似,即替代轨由‘alte’类型的轨组(903和904)指示,而图9b考虑了例如使用子集(953和954)描述替代轨的替代方式。子集由唯一标识符标识,该唯一标识符也可以在特定sampleconstructorwithalternatives(具有id#100的轨950)中用作ref_index。子集标识符可以声明为‘2dsr’框中的参数。subset_identifier的使用针对每个子图片轨花费四个字节,其中‘alte’轨的声明针对每个子图片轨花费二十四个字节。图10是用于实现本发明的一个或多个实施例的计算装置1000的示意性框图。计算装置1000可以是诸如微计算机、工作站或轻型便携式装置等的装置。计算装置1000包括通信总线,该通信总线连接到:-中央处理单元(cpu)1001,诸如微处理器等;-随机存取存储器(ram)1002,用于存储本发明实施例的方法的可执行代码以及适于记录变量和参数的寄存器,该变量和参数是用于实现读取和写入清单以及/或者编码视频以及/或者在给定文件格式下读取或生成数据的方法所必需的,该随机存取存储器的存储器容量可以通过例如连接到扩展端口的可选ram来扩展;-只读存储器(rom)1003,用于存储用于实施本发明实施例的计算机程序;-网络接口1004,其转而通常连接到通信网络,通过该通信网络发送或接收要处理的数字数据。网络接口1004可以是单个网络接口,或者由一组不同的网络接口(例如有线和无线接口,或者不同种类的有线或无线接口)构成。在cpu1001中运行的软件应用的控制下,将数据写入网络接口以用于发送或从网络接口读取数据以用于接收;-用户界面(ui)1005,用于从用户接收输入或向用户显示信息;-硬盘(hd)1006;-i/o模块1007,用于从/向外部装置(诸如视频源或显示器等)接收/发送数据。可执行代码既可以存储在只读存储器1003中,也可以存储在硬盘1006上,或者可以存储在诸如盘等的可移动数字介质上。根据变型,可以借助于通信网络经由网络接口1004来接收程序的可执行代码,以使程序的可执行代码在被执行之前存储在通信装置1000的存储部件之一(诸如硬盘1006等)中。中央处理单元1001适于控制和指导根据本发明实施例的一个或多个程序的指令或部分软件代码的执行,这些指令被存储在上述存储部件之一中。在接通电源之后,cpu1001能够在例如从程序rom1003或硬盘(hd)1006加载了与软件应用有关的来自主ram存储器1002的指令之后执行这些指令。这样的软件应用在由cpu1001执行时,使得进行前述图中所示的流程图的步骤。在本实施例中,设备是使用软件来实现本发明的可编程设备。然而,可选地,本发明可以以硬件(例如,以专用集成电路或asic的形式)实现。尽管以上已经参照具体实施例描述了本发明,但是本发明不限于具体实施例,并且对本领域技术人员来说,在本发明的范围内的修改将是明显的。例如,本发明可以嵌入在如照相机、智能电话、头戴式显示器或用作tv或多媒体显示器的远程控制器的平板电脑等的装置中,例如以放大到特定感兴趣区域。也可以从相同的装置使用,以通过选择特定感兴趣区域来使多媒体呈现具有个性化浏览体验。用户使用这些装置和方法的另一用途是与其它所连接的装置共用其优选视频的某些选定子部分。如果监视照相机支持根据本发明的用于提供数据的方法,则还可以与智能电话或平板电脑一起用于监视被置于监视下的建筑物的特定区域中发生的情况。许多进一步的修改和变化将在参考前述说明性实施例时向本领域技术人员提出,这些实施例仅作为示例给出并且不旨在限制本发明的范围,该范围仅由所附权利要求确定。特别地,在适当的情况下,可以互换来自不同实施例的不同特征。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1