书城社会科学数字媒体资产管理系统
19695800000024

第24章 文件格式(1)

在内容生产中,我们能看到这样一种趋势:大量IT设备对集成生产的支持越来越多了。在这种情况下,文件对于内容的存储和交换就变得越来越重要了。文件比流媒体更便于访问和传输。因此在这种情况下,所使用的文件格式结构、特征和属性就更加重要了。对于内容管理系统来说,能够处理和管理与元数据和素材相关的格式是非常关键的。

文件格式规定了如何对素材和元数据进行存储和交换。人们已定义过许多专门的文件格式。在内容管理系统中,文件是系统中被处理、管理和存储的项目。内容管理系统应该能够管理各种文件(即它应该是与格式无关的)。然而,实际情况是:当内容管理系统要处理文件、从某个文件中检索信息或者对文件执行其他的操作时,它就需要知道它所处理的文件格式。

人们将素材和元数据封装起来而设计成文件格式。文件中的素材是由最基本的部分构成的,例如由视频片段、音频(声道)、图像或文本构成的。这些成分可能是结构化的和按层次排序的。元数据出现在文件头,并且可能会在整个文件中重复出现。根据文件结构的不同,元数据也可能与素材放在一块。

一个文件可能是由多个不同成分(如视频和多个外语声道)构成的一个单独的节目;也可能包含一个更为复杂的结构,如一个节目系列或层次结构的媒体。

总的来说,文件格式专门用于支持不同的素材格式(如MPEG-1、MPEG-2和基于DV的视频格式、非压缩的PCM编码音频、MP3以及JPEG、GIF、TIFF等格式)。元数据也能根据不同的元数据标准来进行结构化。

根据存储在内容管理系统中的媒体的目的和类型的不同,其文件格式也相应有所不同。例如,在创作系统中,文件格式必须支持创建过程;而在传送系统中,文件格式的特点是必须支持多媒体节目的传输和发送。除了某些公司所提出的专门格式,许多标准化组织和兴趣小组也规定了一些文件格式。在下文中,我们将回顾一些公开的文件格式,这些格式都是应内容产业(尤其是广播电视行业)的特殊要求而专门制定的。

5.1媒体交换文件格式

媒体交换文件格式(Media eXchange Format, MXF)是行业内的一项创新性工作,开发出该文件格式的目的是用于节目资料的交换。MXF是一些主要的标准化组织和兴趣小组共同开发的,即Pro-MPEG论坛和AAF协会。而且,EBU P/PITV(完成了电视制作打包接口的PMC项目)组和G-FORS成员也主动地参与到了MXF的开发中。

MXF规定了用于存储不同素材格式的多媒体容器的封装(如MPEG-2格式、基于DV的格式或ITU 601.5非压缩视频格式)。它支持在服务器之间进行内容(即素材和元数据)的交换,也包括支持磁带流和文档操作。MXF允许对部分文件进行传送,支持对素材的随机访问,而且它也允许对在传输过程中可能发生的中断进行恢复。因此,MXF规定了一种文件格式,这种格式在许多情况下都可以使用,而不仅仅只是用在某个特定的场合。

一个MXF文件的素材库可以是结构化的,它们可以包含一个完整的资料序列或其中的片段,也可以包含相同的或不同的素材类型的片段。MXF完全遵循SMPTE 336M键-长度-值(Key-Length-Value, KLV)数据编码方式(见4.5.1)。MXF文件中的所有数据(即元数据和素材)都必须是KLV编码的。MXF和AAF(见5.2)可交互操作,对AAF导出到MXF和MXF导入到AAF的操作也进行了定义。

5.1.1MXF文件结构

一个MXF文件是一个结构化的文件,由文件头、文件体和文件尾组成示。元数据可被放置在文件头、文件尾和作为分区元素(也可以是文件体的一部分)。

MXF文件必须包含有文件头,文件头有一个可选的插入部分、文件头分区包、文件头元数据和可选择的索引表。SMPTE通用标签形式的唯一标识符被用于文件头和整个文件中,以方便在文件库中识别MXF操作模式、描述性元数据和素材体。

文件体由存储在MXF文件中的素材元素组成。在文件体中,可以有一个或多个素材体。如果有一个以上的素材体,那就使用分区元素来对它们进行划分。除了实际的素材外,素材体中也包含相关的元数据。文件体不是必选的,例如只含有元数据的MXF文件就可以没有文件体。

文件尾放在文件的结束部分。文件尾必须有的部分是尾分区包。在文件尾中,会再次重复文件头的元数据,并且用于随机访问的索引信息也会被保留。

除了基本的文件结构,MXF定义了5种结构元素:

·扇区:是一个位对齐的存储块。

·分区:定义了头部、尾部和文件体的区分。

·容器:规定了不同素材类型的封装。

·磁道:表示了顺序和它们的临时关系。

·包:定义了相关磁道的一个容器(定义成作品、材料、文件和源包)。

通过对MXF文件的分区可以构成不同复杂程度的文件。例如,具有多个分区的文件能被用于对素材流的交叉存取或允许部分文件的恢复。

索引表用于对素材快速和非顺序的访问。这种访问是利用字节偏移量从指定地址到达素材流内的任何一点,这就方便了部分文件的检索。被参照的素材就可以被交叉访问或者成为一个单独素材要素的一部分。一个索引表只能为一个素材容器编索引。不同的素材类型,如图片、声音、区域码、交叉访问的帧编码和位速率可变的素材,都能通过MXF索引表描述。索引表可以放在MXF文件的不同的部分(即头部、文件体和尾部)。如果索引表是在不工作的状态下创建的,它就会被放在文件的尾部。索引表也允许对内容进行临时重排序,正如在Long GoP MPEG中所使用的那样。

放在文件尾部的随机索引包用于查找分布在MXF文件中的各个部分。它给出各个部分关键字的第一个字节,通过解码器访问索引表来找出索引表所指向的部分。随机索引包是MXF文件中的一个可选项目。

5.1.2MXF中的元数据

在MXF文件头部指明的元数据,被分为结构化元数据和描述性元数据2类。结构化元数据是由MXF标准定义的,而描述性元数据是为了能够兼容不同的描述性元数据方案,作为插件定义的。

头部元数据能在文件体和文件尾部重复。元数据的重复支持了重要元数据的恢复,例如当传输被中断或在传输中途加入应用程序时。MXF的KLV编码使得在整个文件中重复元数据要素更为容易。在不同部分重复的元数据通常与头部的元数据是一致的。然而,在开放头部的情况下(如当MXF文件是在录音过程中创建的时候),头部元数据的每一次重复都是一次更新的复制,它由一个更高的生成号来标识。文件中最高的生成号代表了主版本号。

5.1.2.1结构化元数据

结构化元数据部分总是位于头部元数据的第一部分。结构化元数据定义了MXF文件的性能和它是如何构建的。除了必须让所有的解码器知道的那部分结构化元数据之外,也可以将本应放在MXF外的元数据放在MXF文件内。这种元数据被称为暗元数据,它不需要被所有与MXF相容的解码器解释。那些不能识别它的解码器将忽略这些暗元数据。

结构化元数据集的不同组成部分被顺序地放入头部元数据中,并通过使用强参照(即一对一的关系)或弱参照(即一对多的关系)进行连接来构建一个逻辑数据模型。

MXF文件的结构化元素被反映在结构化元数据中。结构化元数据对资料、文件和源包进行区别。这些结构允许由现有的部分灵活地创建一个内容项,或使用不同的素材部分来合编一个内容对象。资料包是通过定义文件的输出时间线来表示实际项目的一个要素的。它拥有一个定义来源的磁道(该来源指明了开始和所谓的输出编辑单元率)和一个规定输出持续时间的序列。一个序列有一个或多个与之相关的源片段。源片段将包链接到实际的源资料。它们参考其他的包、素材描述符和素材容器(即实际的素材)。文件包和源包的结构形式大致相同(即它们都有磁道、序列和相关的源片段)。这种包的层次思想使之能够通过现有的内容要素去创建内容。下面以定义的广播电视公司促销节目输出的资料包为例来说明。资料包表示了全部促销的片断、控制同步和由源包定义的源片段的放演顺序。资料包参考文件包,文件包表示了来自于不同节目的资料,这些节目形成了促销节目的一部分。源包最后描述了最初用于不同电视节目的MXF文件。源包不仅参考素材容器,也用于存储关于节目是如何被获得的信息,如用于最初记录项目的磁带格式。

某些元数据要素能在不同的包中出现,除了实际值之外,还必须考虑出现的环境。例如,资料包中的时码是连续的,它是专为文件的播放定义的时码。相比较而言,文件包中的时码磁道表示了相关素材容器中的时码。

源片段是包中的基本实体。顺序的源片段是邻接的,因为MXF只支持剪辑编辑模式(MXF不包括视频和音频效果的元数据描述)。因此,当序列组参考多于一个源片段时,源片段的访问顺序就变得非常重要了。

5.1.2.2描述性元数据

描述性元数据主要载有与内容相关的面向用户的元数据。一个MXF文件可以包含一个以上的描述性元数据方案。这些元数据方案被定义为插件,因此其可以支持MXF标准过程之外的各种不同的描述方案。

在日内瓦MXF方案中,定义了一组描述性元数据。特别是这些描述性元数据包括一组产品描述性元数据(包含描述性元数据集合,提供识别和标注信息的项目)、一组场景描述性元数据(描述内容资料中的事件和活动,这些资料是面向片段的)和一组样片描述性元数据(与内容生产相关的元数据,如拍板或场记板信息)。

5.1.3操作模式

MXF能对任意复杂程度的内容文件进行组合。根据各种其他文件组件的组成,这种方式能够适应对内容文件的所有要求。然而,这将会产生非常复杂的文件。为了处理这种复杂性,可通过定义操作模式来表示某一个复杂类。实际的操作模式不是根据标准定义的,而是当需要时在各自的文档中定义的。

标准只定义了包含2个组件的通用操作模式,即操作模式轴和操作模式限定词。前者有2个维度,即项目复杂性和包复杂性。后者定义了对所有操作模式都相同的文件参数。

用于给操作模式分类的二维轴有3个复杂性等级。项目复杂性的不同种类定义如下:

·单个项目:只包含一个资料包源片段的文件,其资料包源片段的持续时间与文件包中源片段的持续时间相同。

·放映表项目:含有多个相互排斥项目(带有可选的音频淡出/淡入)的文件,不同的资料包源片段的持续时间和各自的文件包的持续时间有一对一的关系。

·编辑项目:带有一个或多个剪辑编辑的若干项目的文件,除了各自的文件包,资料包源片段可以来自任何地方。

还有3种不同的包复杂性等级定义如下:

·由单个资料包所表示的单包,用于在某一时间访问单个源包。

·由单个资料包所表示的组包,可以在某个时间访问一个或多个源包,这些源包共享一个公共同步时间线。

·由2个或多个资料包所表示的可替换包,它们每个都能够在某一时间访问一个或多个文件包。例如对不同语言版本有不同的资料包。

项目和包复杂性的组合构成了一个复杂性矩阵,该矩阵给出了依据标准定义的表示通用操作模式特征的各种可能情况。