- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MXF素材文件交换格式深入研究
?
2012-09-03 | 访问次数:262 | 新闻来源:电科网
?
?????
????? 【摘要】DCI规定数字电影需采用MXF封装音视频等节目素材内容。为了深入理解MXF基础原理,本文研究了MXF素材文件交换格式,详细介绍了MXF文件的物理结构和逻辑结构,并介绍了MXF中如头部元数据、索引表、操作模式、字节对齐等重要概念。
?
????? 【关键字】MXF分区索引表随机索引包头部元数据操作模式KAG
????? 前言
?
根据DCI 规范,数字电影数据包(Digital Cinema Package,DCP)中音视频等素材数据采用素材文件交换格式(Material Exchange Format,MXF)进行封装[1]。素材文件交换格式主要用于音视频素材的交换。音视频节目通常是由在时间线上同步的流式音视频素材组成的,为了交换和存储的方便,需要将这些素材用数据文件的形式进行表示,基于此目的,SMPTE 377M标准定义了素材文件交换格式(MXF)[2]。
?
由于MXF技术是数字电影技术中的一项重要技术,有必要深入理解MXF的基础原理。MXF文件的基础单元KLV结构及装载节目内容的通用容器已经在《KLV编码协议及通用容器——MXF基础原理详解之一》文中进行了介绍,在此基础之上,本文将详细介绍MXF文件的物理结构和逻辑结构,并深入研究MXF中如头部元数据、索引表、操作模式、字节对齐等重要概念。
?
????? 1、MXF文件的物理结构(码流结构)
?
MXF文件根据所含内容可分为3个部分:文件头(File Header)、文件体(File Body)和文件尾(File Footer)。包含素材数据(Essence Data)的素材容器(Essence Container)全都存放于文件体(File Body)中。在文件体中可含1个或多个素材容器。文件头是对整个MXF文件的综合描述,包括对文件体内的素材及其容器以及素材之间的同步和播放关系等的描述和控制。文件尾是MXF文件的终止部分,可包含索引表、控制信息和元数据。这种分类方法将控制信息及元数据与素材内容区分开,而文件头通常比较小,单独分析其中的参数,就可了解MXF文件中所含节目内容的各项特征。简单的MXF文件基本结构如图1所示。
?
图1 简单MXF文件的数据结构
若MXF文件中有多个素材容器,需将各个素材容器进行分隔。另外,为了随机索引、访问及文件的部分存储、恢复的方便,有时需将素材容器分割成不同的小块。这些小块在内容上逻辑连续,但是物理存放位置上不一定连续。
?
为此,可将MXF文件划分成多个分区(partition),共有三类分区:头部分区(Header Partition)、主体分区(Body Partition)和尾部分区(Footer Partition)。1个MXF文件可含1个头部分区、0个或多个主体分区、0个或1个尾部分区。头部分区是在MXF文件中唯一必须要出现的分区。
?
每个分区都是由分区包(partition pack)开头,紧随其后可能有头部元数据(Header Metadata)、1个索引表(Index Table)的部分或全部、1个素材容器的部分或全部。分区包是1个KLV包,说明分区包本身的信息及整个分区的信息,包括分区类型、该分区在文件中的位置,以及所包含的头部元数据、索引表、素材容器、操作模式(Operational Pattern)等信息。其中操作模式限定文件的复杂程度。
?
在头部分区内必须包含头部元数据,在尾部分区内不得包含素材容器,从尾部分区开始表明MXF文件内没有素材内容。在头部分区之前,有的MXF文件可能会有Runin部分用于伪装MXF文件为别的文件类型。尾部分区之后,可能会有随机索引包(Random Index Pack,RIP)用于对各个分区的索引。除Runin部分外,MXF文件是由一系列KLV包组成的。
?
各分区的结构如图2所示。
?
图2 各个分区(partition)的结构
?
?
图3 含两个素材容器的MXF文件
1个MXF文件中可含有1个或多个素材容器,并可分割成多个小块,分别存放于除尾部分区外的头部分区或主体分区内,每个素材容器都有1个唯一标识符BodySID。每个素材容器又可创建相应的索引表,每个索引表也有相应的唯一标识符IndexSID,索引表也可分割成小块存放。在素材容器元数据(EssenceContainerData)中,将素材容器的BodySID和相应索引表的IndexSID相互关联起来。图3所示即为含有两个素材容器及相应索引表的MXF文件,其中素材容器1还被分割成a、b两个部分,分别存放于头部分区和1个主体分区内,另外2个主体分
文档评论(0)