当前位置: 首页 > >

MXF格式浅析

发布时间:

MXF 格式浅析

□ 黄 钰 李建国 黄 元

【 摘 要 】 本 文 描 述 了 MXF( 素 材 交 换 格 式 ) 的 据 结 构 及 元 数 据 方 式 , 对 MXF 标 准 进 行 了 介 绍 , 并 对 MXF 文 件 的 两 种 打 包 方 式 进 行 了 讨 论 , 最 后 阐 释 了 MXF 视 频 帧和音频帧定位的具体方法。 【 关 键 词】 MXF 元 数 据 操 作 模 式
一、引言
江苏省广播电视总台的台内网络化建设, 总体目 标是建立一个以内容产业为主体的数字化网络*台, 实现素材采集、节目制作、资料存储、播出分发等各环 节最优化的生产方式、 最有效的资源整合、 最精细的 流程管理;通过互联互通、信息共享、资源共享,实现 海量的节目生产能力, 实现节目低成本制作, 实现可 控的节目内容市场化运作。 如何使用统一的音视频文 件格式以实现素材在不同板块之间的交换是项目建设 过程中的重点。
由 于 MXF 格 式 可 以 实 现 无 需 对 文 件 主 体 进 行 解 码就可使用元数据和操作模式对素材内容进行识别回 放。 因此使用该格式是解决上述问题的有效途径。 为 了 更 加 清 晰 地 了 解 MXF 格 式 的 封 装 过 程 , 我 们 有 必 要 对 MXF 的 相 关 背 景 知 识 作 深 入 的 了 解 。
二 、MXF 概 述
MXF( Ma te ria l Exc ha ng e Forma t) 为“ 素 材 交 换 格

式 ” , 是 专 业 MPEG 论 坛( Pro- MPEG Forum) 制 定 和 推 广的一个开放的文件格式, 其目标是解决节目制作系 统中不同环节的设备间视 / 音频节目素材和相关数据 及 其 元 数 据 的 交 换 。 MXF 可 以 在 不 同 的 网 络 协 议 和 操 作系统下工作,它也不对压缩格式进行转换,它甚至可 以处理未压缩的视音频, 它拥有多中封装模式灵活的 封装视音频数据。
三 、MXF 标 准
MXF 标 准 是 由 摄 影 与 电 视 工 程 师 协 会 SMPTE ( Society of Motion Picture and Televis ion Eng ineers) 标 准 定 义 。 SMPTE 标 准 化 活 动 服 务 于 移 动 图 像 的 所 有 分 支 , 包 括 电 影 、 录 像 和 多 媒 体 。 SMPTE 标 准 中 关 于 MXF 标准包含四个基本部分:
1 、 基 本 文 档 : 包 括 四 个 标 准 , 涉 及 MXF 的 文 件 格 式 规 范 、 使 用 规 范 、 MXF 元 数 据 使 用 规 范 以 及 MXF 使 用 的 KLV 编 码 规 范 。
2、可选操作模式文档:包括七个标准,共定义了 十种操作模式, 即可以把素材封装成十种不同结构的 MXF 文 件 。
3、通用容器文档:包含十二个标准,针对不同格 式 的 素 材 定 义 了 不 同 的 存 储 到 MXF 文 件 的 方 法 , 例 如 : SMPTE 381M 定 义 了 如 何 把 MPEG 格 式 的 内 容 存 储 到 MXF 文 件 , SMPTE 383M 定 义 了 如 何 把 DV 格 式 的 内 容 存 储 到 MXF 文 件 。
视 频
5

视听界 广播电视技术

4、元数据 / 字典 / 注册文档:包括四个标准,关于 元数据原理、元数据字典及通用标签的注册的标准。
四 个 基 本 部 分 总 共 由 26 个 标 准 组 成 , 如 表 1 。

SMPTE 377M: The MXF File Format Sp ecification( the overall mas ter d ocument) SMPTE EG41: MXF Eng ineering Guid e ( A g uid e ex- 基本文档 p laining how to us e MXF) SMPTE EG42: MXF Des crip tive Metad ata ( A g uid e exp laining how to us e d es crip tive metad ata in MXF)
SMPTE 390M: OP- Atom( a ve ry s imp le a nd hig hly c on- s tra ine d la yout for s imp le MXF file s) SMPTE 378M: OP- 1a ( the la yout op tions for a minima l
可 选 操 作 s imple MXF file)
SMPTE 391M: OP- 1b
模式文档 SMPTE 392M: OP- 2a
SMPTE 393M: OP- 2b SMPTE 407M: OP- 3a ,OP- 3b SMPTE 408M: OP- 1c ,OP- 2c ,OP- 3c

SMPTE 379M: Ge ne ric Conta ine r( the wa y tha t e s s e nc e

is s tore d in MXF file s)

SMPTE 381M: GC- MPEG( how to s tore MPEG e s s e nc e

d a ta in MXF us ing the Ge ne ric Conta ine r)

SMPTE 383M: GC- DV( how to s tore DV e s s e nc e d a ta in

MXF us ing the Ge ne ric Conta ine r)

SMPTE 385M: GC- CP ( how to s tore SDTI- CP e s s e nc e

d a ta in MXF us ing the Ge ne ric Conta ine r)

SMPTE 386M: GC- D10 ( how to s tore SMPTE D10

e s s e nc e d a ta in MXF us ing the Ge ne ric Conta ine r)

SMPTE 387M: GC- D11 ( how to s tore SMPTE D11

e s s e nc e d a ta in MXF us ing the Ge ne ric Conta ine r)
通 用 容 器 SMPTE 382M: GC- AESBWF ( how to s tore AES/EBU

文档

a nd Broa d c a s t Wa ve a ud io e s s e nc e d a ta in MXF us ing the Ge ne ric Conta ine r)

SMPTE 384M: GC- UP ( how to s tore Unc omp re s s e d

Pic ture e s s e nc e d a ta in MXF us ing the Ge ne ric Con-

ta ine r)

SMPTE 388M: GC- AA ( how to s tore A- la w c od e d a u-

d io e s s e nc e d a ta in MXF us ing the Ge ne ric Conta ine r)

SMPTE 389M: Ge ne ric Conta ine r Re ve rs e Pla y Sys te m

Ele me nt

SMPTE 394M: Sys te m Ite m Sc he me - 1 for Ge ne ric Con-

ta ine r

SMPTE 405M: Ele me nts a nd Ind ivid ua l Da ta Ite ms for

the GC SI Sc he me 1

SMPTE 380M: DMS1 ( a s ta nd a rd s e t of d e s c rip tive me ta d a ta to us e with MXF file s)
元 数 据 / SMPTE 436M: MXF Ma p p ing s for VBI Line s a nd Anc il-
la ry Da ta Pa c ke ts
字典 / 注
SMPTE RP210: SMPTE Me ta d a ta Dic tiona ry ( the la te s t
册文档 ve rs ion is a va ila b le he re :http ://www.s mp te - ra .
org /md d /ind e x.html) SMPTE RP224: Re g is try of SMPTE Unive rs a l La b e ls

表 1 MXF 标 准 组 成

6

四 、MXF 文 件 中 的 元 数 据( me ta d a ta)
MXF 文 件 中 的 元 数 据 比 较 丰 富 , 在 MXF 文 件 的 头 部 和 文 件 体 内 都 可 以 包 含 文 件 的 元 数 据 。 除 了 He a d - er Partition Pack , Bod y Partition Pack , Footer Parti- tion Pack , Ind ex Tab le , Rand om Ind ex Tab le 外 , 最 重 要 的 元 数 据 就 是 He a d e r Me ta d a ta 了 , 如 图 1 所 示 。
He a d e r Me ta d a ta 其 实 只 是 对 一 组 元 数 据 的 总 称 , 它 又 分 为 Struc tura l Me ta d a ta 和 De s c rip tive Me ta d a ta 两 部 分 , 前 者 必 须 有 , 后 者 为 可 选 。
图 1 头部元数据 Struc ture Me ta d a ta 依 次 包 含 如 下 几 个 部 分 : 1) Primer Pack [ 1 个 ] 2) Preface Set [ 1 个 ] 3) Id entification Set [ >=1 个 ] 4) Content Storag e Set [ 1 个 ] 5) Es s ence Container Data Set [ 1 个 ] 6) Material Packag e Set [ 1 个 ] 7) Source Packag e( Top - level File Packag e) Set [1 个] Prime r Pa c k 相 当 于 一 个 查 询 表 , 里 面 存 储 了 所 有 该 MXF 文 件 用 到 的 元 数 据 的 UID( Uniq ue Id e ntifi- er) , 通 过 这 张 表 , 可 以 确 定 是 否 有 不 同 的 元 数 据 使 用 了 相 同 的 UID 。 由 于 MXF 的 元 数 据 之 间 主 要 通 过 UID 进行链接、 查找和关联, 从而把线性的物理存储关系 变成复杂的树状或网状逻辑关系, 所以保证每个元数 据 只 有 唯 一 的 UID 非 常 重 要 。 Pre fa c e Se t 中 主 要 包 含 操 作 模 式 标 识( Op e ra tiona l Pattern UL) ,DMS ( Des crip tive Metad ata Schemes) 标 识和视音频数据标识。 通过它,可以大概知道文件中存储 的 视 音 频 数 据 格 式( 比 如 DV 还 是 MPEG) , 并 预 先 判 断 出 文 件 结 构 的 复 杂 度( 比 如 OP1a 还 是 Atom) 。 Id e ntific a tion 中 包 含 公 司 名 称 , 产 品 名 称 , 版 本 号 , 修 改 时 间 等 信 息 , 每 次 修 改 MXF 文 件 后 , 都 会 加 入 新 的 Id e ntific a tion , 用 以 记 录 修 改 的 内 容 。 Conte nt Stora g e 中 主 要 包 含 了 文 件 中 用 到 的 各 种 Pa c ka g e( Ma te ria l Pa c ka g e , Sourc e Pa c ka g e 等 ) 的

标 识 和 Es s e nc e Conta ine r Da ta 的 标 识 。 Material Packag e 和 Source Packag e/File
Pa c ka g e 数 据 结 构 相 同 , 都 是 Ge ne ric Pa c ka g e 的 实 例。 从逻辑上来说, 它们都各自包含了三种轨道 ( Tra c k) , 分 别 是 时 码 轨 ( Time c od e Tra c k) , 视 轨 ( Pic ture Tra c k) 和 音 轨( Sound Tra c k) 。 视 轨 和 音 轨 上 可 能 又 会 有 多 个 视 频 或 音 频 序 列( Se q ue nc e ) , 这 些 序 列 对 应 了 实 际 的 源 素 材( Sourc e Clip ) 。
Ma te ria l Pa c ka g e 主 要 用 来 描 述 用 于 显 示 或 输 出 的 故 事 板 素 材 , 而 Sourc e Pa c ka g e /File Pa c ka g e 主 要用来描述文件中实际含有的源素材。 可以用一个例 子 来 说 明 这 两 种 Pa c ka g e 的 差 别 : 由 于 不 同 的 国 家 和 地区对影片的限制程度不同, 可能希望在不同的国家 和地区发行不同的影片版本, 而这些影片版本的主要 差别在于有些片断不能在特定的国家或地区播出。 专 门为这些国家和地区制作、 发行删节的影片版本可能 耗 资 巨 大 。 这 时 , Ma te ria l Pa c ka g e 的 作 用 就 显 现 出 来 了 , 我 们 只 需 修 改 Ma te ria l Pa c ka g e 中 的 相 应 信 息 , 告 诉 MXF 解 码 器 只 播 放 Sourc e Pa c ka g e 中 源 素 材 的 特 定 部 分 , 完 全 不 需 要 修 改 Sourc e Pa c ka g e 和 实 际 的 源 素材版本,就可以到达同样的目的了。
产 品 信 息 对 MXF 文 件 做 整 体 性 描 述 , 包 括 Prima ry Sp oken Lang uag e Cod e ,Second ary Sp oken Lang uag e Cod e ,Orig inal Sp oken Lang uag e Cod e ,URL to ad d itional Metad ata Server,Id entification Sets ,Title Sets , Event Sets ,Ep is od e Sets ,Brand ing Sets ,Annotation Sets ,Contracts Sets ,Award s Sets ,Particip ant Sets , Org a niza tion Se ts 等 ; 素 材 信 息 描 述 来 自 素 材 采 集 和 创 建 的 信 息 , 包 括 Clip Kind( 静 止 图 像 , 图 形 , 视 频 , 声 音 等) , Clip Numb er,Project Numb er,Track IDs ,Bas ic UMID, Log o Flag ,Proces s Step s ,Cop y Numb er,Clone Numb e r,Loc a tion Se ts ,De vic e Pa ra me te rs Se ts 等 ; 场 景 信 息 描 述 场 景 的 情 节 ,事 件 等 信 息 ,包 括 La ng ua g e Cod e , Scene Numb er,Title Sets ,Location Sets ,Annotations Se ts 等 。 上 述 的 每 一 种 子 信 息 又 分 别 有 更 详 细 的 数 据 结 构描述。
MXF 文 件 的 元 数 据 解 析 分 为 一 下 四 个 步 骤 : 第 一 步 , 一 般 先 要 判 断 所 读 取 的 文 件 是 否 为 MXF 文 件 , 这 可 以 通 过 读 取 文 件 头 , 看 其 是 否 为 He a d e r Pa rtition Pa c k 来 判 断 , 需 要 注 意 的 是 , MXF 标 准 允 许 最 大 65536 个 字 节 的 任 意 数 据 的 Run- In 存 在 , 因 此 ,

MXF 解 码 器 应 该 有 相 应 的 容 错 机 制 ; 第 二 步 , 对 于 有 多 个 Bod y Pa rtition 的 MXF 文 件 ,
首 先 要 到 文 件 尾 读 取 Ra nd om Ind e x Pa c k , 由 其 中 的 信 息 得 到 每 个 Pa rtition Pa c k 的 起 始 位 置 ; 对 于 只 有 一 个 Bod y Pa rtition 的 MXF 文 件 , 从 He a d e r Pa rtition 开 始,顺次解析即可;
第 三 步 , 从 He a d e r Pa rtition 开 始 , 依 次 解 析 每 个 Pa rtition 中 的 可 能 含 有 的 He a d e r Me ta d a ta , Ind e x Ta b le , 如 果 Pa rtition 中 含 有 Es s e nc e Conta ine r , 还 要 确 定 Es s e nc e Conta ine r 在 文 件 中 的 偏 移 位 置 ;
第 四 步 , 根 据 He a d e r Me ta d a ta 中 的 信 息 , 确 定 视 音频数据的格式, 生成方式以及素材输出时间线的信 息。
五 、 操 作 模 式( Op e ra tiona l Pa tte rn)
操 作 模 式 用 来 规 定 MXF 的 应 用 环 境 。 MXF 文 件 中 数据的存取、回放、编辑均由操作模式控制。 如果不考 虑 格 式 内 容 和 数 据 体 的 数 据 压 缩 方 式 , 在 MXF 程 序 文 件中一个或一些有普遍特点的程序,称为操作模式。
图 2 MXF 的 操 作 模 式 图 2 中 的 MP 即 Ma te ria l Pa c ka g e , 是 实 际 输 出 时的素材包,里面包含了时码轨,视频轨,音频轨等的 描 述 信 息 , FP 即 Sourc e File Pa c ka g e , 是 MP 引 用 的 素材源的文件包, 也是以轨道的方式描述了素材源的 信息。 先 从 水 * 方 向 看 , Sing le Ite m 指 的 是 只 有 一 个 素 材 源 ; Pla y- lis t Ite ms 指 的 是 有 多 个 素 材 源 , 且 这 些 源 是首位相接, 没有重叠的摆放在故事板上的, 也就是 说 每 个 素 材 源 都 被 整 体 引 用 了 ; Ed it Ite ms 又 被 称 为 Cut- lis t Ite ms , 指 的 是 每 个 素 材 源 可 能 只 有 部 分 被 用
视 频
7

视听界 广播电视技术

到了,所以在图上看来是有重叠的部分。 再 从 垂 直 方 向 看 , Sing le Pa c ka g e 就 是 只 有 一 个
MP 和 一 个 FP ; Ga ng e d Pa c ka g e s 就 是 只 有 一 个 MP , 但 可 以 有 多 个 FP , 且 这 多 个 FP 都 和 这 一 个 MP 绑 定 ( Ga ng e d ) ; Alte rna te Pa c ka g e s 则 是 可 以 有 2 个 或 更 多 个 MP 了 , 这 样 输 出 的 时 候 , 虽 然 引 用 的 FP 都 一 样 , 但可以有多个故事板输出。
目 前 Sony MXF 和 Pa na s onic MXF 都 采 用 的 是 图 中 的 Sing le Ite m & Sing le Pa c ka g e 的 模 式 , 即 OP1A( Op e ra tiona l Pa tte rn 1&a ) , 这 也 是 最 简 单 的 操 作 模 式 。 OP1A 连 续 编 码 把 视 音 频 内 容 作 为 一 个 单 一 实体封装到一个内容容器中产生一个可以播放的容 器。 它的素材包和文件包都只有一个。
OP1A 操 作 模 式 下 MXF 封 装 的 限 制 有 : ● 素 材 包 中 每 个 轨 迹 有 一 个 Sourc e Clip 。 ● 在内容容器中,每个内容元素,文件包都有 一个轨迹。 ● 文件包和素材包中所有轨迹或序列都是相 同的间隔。 ● 素材包可以通过定义一个与文件包轨迹不 同 的 开 始 时 间 来 允 许 在 Pla y Out 上 初 始 化 时 间 码 。 但是素材包和文件包的时间间隔必须保持一致。 ● 素材包应该用来确定编辑的历史上下文。 ● 该操作模式支持单一内容容器带一个或多 个内容轨迹。 一个素材包包括: ● 确定的时间码轨迹。 ● 通过内容容器确定每一个图像轨迹。 ● 通过内容容器确定每一个声音轨迹。 ● 通过内容容器确定每一个数据轨迹。
六 、MXF 文 件 结 构
1、总体结构
MXF 文 件 大 体 分 为 文 件 头( File He a d e r) , 文 件 体 ( File Bod y) 和 文 件 尾( File Foote r) 三 部 分 。 文 件 体 中 对 应 于 不 同 的 应 用 情 况 , 可 以 有 一 个 或 者 多 个 Bod y Pa rtition , 图 3 和 图 4 分 别 显 示 了 这 两 种 情 况 下 , MXF 文件的总体结构。

图 3 单 Bod y Pa rtition 结 构
图 4 多 Bod y Pa rtition 结 构 多 个 Bod y Pa rtition 的 情 况 主 要 由 以 下 几 个 原 因 造成: 1) 在 打 包 生 成 MXF 文 件 时 , 往 往 要 对 视 音 频 数 据 的 可 编 辑 单 元 建 立 索 引 表 , 以 方 便 对 MXF 素 材 的 视频帧和音频采样的随机定位。 但是有些硬件设备, 比如摄像机, 没有足够的缓存来存储非常大的索引 表 , 这 就 需 要 每 隔 一 段 时 间( 比 如 10 秒 或 1 个 GOP) 把 缓 存 中 的 索 引 表 存 入 文 件 中 , 于 是 整 个 Es s e nc e Conta ine r 被 相 应 的 切 分 成 多 个 部 分 , 依 次 存 放 在 多 个 Bod y Pa rtition 中 。 当 然 , 对 于 固 定 长 度 的 编 辑 单 元 , 由于不需要索引表就能进行随机定位, 这时只用一个 Bod y Pa rtition 就 可 以 了 ; 2) Ind e x Ta b le 本 身 能 够 索 引 的 帧 数 也 是 有 限 的 , 由 于 用 来 表 示 Ind e x Entry( 索 引 每 个 视 频 帧 的 数 据 结 构 ) 数 量 的 类 型 为 UINT32( 4 字 节 无 符 号 数 ) , 所 以 一 个 Ind e x Ta b le 最 多 可 以 索 引 4G 帧 视 频 数 据 。 对 于 有 多 个 Bod y Pa rtition 的 情 况 , 可 以 通 过 Ra nd om Ind e x Pa c k 来 定 位 每 个 Bod y Pa rtition 在 文 件 中 的 起 始 位 置 。 而 对 于 只 有 一 个 Bod y Pa rtition 的 情 况 , 因 为 可 以 在 读 取 完 He a d e r Me ta d a ta 后 直 接 找 到 , 所 以 不 需 要 有 专 门 的 Ra nd om Ind e x Pa c k 说 明 其 位 置 , 这 时 , Ra nd om Ind e x Pa c k 是 可 选 的 。 MXF 文 件 一 般 以 一 个 HPP ( He a d e r Pa rtition Pa c k) 开 头 , 其 后 紧 跟 He a d e r Me ta d a ta , 然 后 是 BPP ( Bod y Pa rtition Pa c k) 和 一 个 可 选 的 Ind e x Ta b le( 一 般 Ind e x Ta b le 都 是 视 频 数 据 写 完 后 才 能 建 立 , 因 此 大 都 放 在 Foote r Pa rtition 或 下 一 个 Bod y Pa rtition 中 , 但是也有可能由于待索引的每个视频帧的大小固定, 或 者 每 个 Ed it Unit 的 大 小 固 定 , 不 需 要 Ind e x Ta b le 索 引 每 一 帧 , 这 时 可 以 把 没 有 Ind e x Entry 和 De lta Entry 的 Ind e x Ta b le 放 在 He a d e r Pa rtition 中 ) , 视 音

8

频 数 据 和 字 幕 数 据 放 在 Es s e nc e Conta ine r 中 , 根 据 不 同 的 生 成 方 式 , 可 以 Clip Wra p p ing 方 式 存 放 , 也 可 以 Fra me Wra p p ing 方 式 存 放 。 文 件 的 最 后 , 是 一 个 FPP ( Foote r Pa rtition Pa c k) , 其 后 的 Ind e x Ta b le 和 Ra n- d om Ind e x Ta b le 也 是 可 选 的( 这 里 的 Ind e x Ta b le 或 者 用 来 索 引 最 后 一 个 Bod y Pa rtition 中 的 视 频 数 据 , 或 者 不 需 要) 。
MXF 标 准 允 许 在 MXF 文 件 的 起 始 部 分 有 一 个 不 超 过 65536 个 字 节 的 Run- In , 这 个 Run- In 中 可 存 放 任 何 数 据 , 比 如 一 段 WAV 格 式 的 数 据 。 这 样 , 对 于 无 法 识 别 MXF 数 据 格 式 的 设 备 仍 能 把 该 文 件 当 成 一 个 WAV 文 件 来 处 理 , 而 能 够 识 别 MXF 数 据 格 式 的 设 备 则 可 以 略 过 Run- In , 直 接 读 取 其 后 的 MXF 格 式 的 数 据。
2 、 通 用 容 器( Ge ne ric Conta ine r)
MXF 采 用 通 用 容 器( Ge ne ric Conta ine r , GC) 作 为 文件本体的中间容器, 所有视 / 音频流和元数据都装 入 GC 中 。 每 个 通 用 容 器 都 是 由 一 系 列 邻 * 的 一 个 或 多 个 内 容 包( Conte nt Pa c ka g e , CP) 组 成 , 内 容 包 可 能 是不变的, 或是根据应用来改变长度。 图 5 中的例子 表示了一个有可变长度内容包的通用容器。
图 5 一个包含内容包连续队列的通用容器 每个内容包包含系统数据、视频数据、音频数据 和数据元素。 在任何的内容容器中的所有内容包都应 该有相同的数字和元素序号。 图 6 显示了每个通用容 器这种的内容包的结构层。

KLV 编 码 使 得 解 码 器 通 过 16 比 特 的 通 用 标 记“ ke y ” 来 识别每个组成。
KLV 的 数 据 结 构 如 图 7 所 示 。
图 7 KVM 的 数 据 结 构 KLV( Ke y , Le ng th , Va lue ) 源 于 基 本 的 规 划 概 念 , 它 作 为 一 种 将 信 息 包 ( 由 一 些 连 续 的 数 据 组 成) 分 段 的 方 法 已 被 沿 用 了 许 多 年 。 因 此 , KLV 包 提 供 了 一 种 方 法 , 既 可 以 分 离 用 户 数 据 域 , 又 可 以 指 明( Ke y) 用 户 数 据 的 类 型 。 Le ng th 域 以 b yte 为 单 位 指 明 了 用 户 数 据 的 实 际 长 度 。 SMPTE 标 准 336M 定 义 了 如 何 实 现 KLV。 Ke y 通 常 是 SMPTE 的 一 个 通 用 标 签( Unive rs a l La b e l, 298M) 。 MXF 由 一 串 各 种 类 型 的 连 续 的 KLV 包 序 列 组 成,这些包可以是音频、视频、索引表、分区标题及各 种类型的元数据。
七 、MXF 文 件 的 两 种 打 包 方 式
MXF 的 通 用 容 器 提 供 两 种 内 容 封 装 形 式 : 基 于 帧 ( fra me ) 为 封 装 方 式 和 基 于 Clip 的 封 装 映 射 方 式 。 以 Clip Wra p p ing 方 式 打 包 时 , 一 个 Pic ture Ite m 中 可 以 有 多 个 视 频 帧 , 如 图 8 所 示 。 而 以 Fra me Wra p p ing 方 式 打 包 时 , 一 个 Pic ture Ite m 中 只 有 一 帧 视 频 。 如 图 9 所示。
图 8 基于帧的封装方式

图 6 内容包中条目和元素的逻辑结构
3 、 KLV 编 码 结 构
MXF 采 用 KLV( Ke y Le ng th Va lue ) 编 码( SMPTE 336M 标 准) 对 元 数 据 和 视 频 , 音 频 , 数 据 内 容 等 打 包 。

图 9 基 于 Clip 的 封 装 方 式 以 Clip Wra p p ing 方 式 打 包 时 , 视 、 音 频 数 据 分 布 更加紧凑,既节省空间,读取的时候也比较方便,但是 打包的时候比较麻烦, 需要先打包若干帧视频数据后 再打包音频数据,难以做到同步采集。 以 Fra me Wra p p ing 方 式 打 包 时 , 每 一 帧 视 频 都
视 频
9

视听界 广播电视技术

要 被 打 包 在 KLV 包 中 , 音 频 数 据 也 要 被 拆 分 成 同 步 的 数 据 块 打 包 在 另 外 的 KLV 包 中 。 既 需 要 冗 余 的 空 间 , 也不方便音频数据的读取。 但是, 这种方式能够满足 同步采集的要求。
目 前 , Sony 公 司 的 D10 MXF 文 件 , MPEG HD MXF 文 件 和 DV MXF 文 件 都 采 取 的 是 Fra me Wra p - p ing 方 式 , 而 Pa na s onic 公 司 的 P2 MXF 文 件 则 采 取 的 是 Clip Wra p p ing 方 式 。 D10 格 式 其 实 就 是 每 帧 都 为 MPEG2 I 帧 的 ES 流 , MPEG HD 则 是 MPEG IBP 的 高 清 视 频 格 式 , DV 则 是 SMPTE 314M 和 IEC61834 所 定 义 的 视 频 压 缩 标 准 , 相 同 码 率 的 DV 数 据 其 每 帧 的大小都是固定的,且都是帧内压缩。

样 适 用 于 只 有 一 个 Bod y Pa rtition 的 情 况 , 在 单 Bod y Pa rtition 的 情 况 将 更 为 简 单 。
2 、 Clip 打 包 方 式 下 的 视 频 帧 定 位
当 读 取 以 Clip Wra p p ing 方 式 打 包 的 视 频 数 据 时 , 所 有的视频帧数据是一帧接一帧的紧靠在一起, 整个作 为 一 个 Pic ture Ite m , 放 在 通 用 容 器 中 的 。 这 时 定 位 视 频 帧 的 基 本 方 法 是 先 定 位 其 所 在 的 Bod y Pa rtition , 然 后 定 位 该 Bod y Pa rtition 中 Pic ture Ite m 的 位 置 , 最 后 找 到 所 需 的 视 频 帧 在 该 Pic ture Ite m 中 的 位 置 , 取 出 即 可 。 如 图 11 所 示 。

八 、MXF 视 频 帧 定 位
1 、 Fra me Wra p p ing 方 式 下 的 视 频 帧 定 位
在基于帧的打包方式的情况下,每个视频帧都被 打 包 成 了 一 个 Pic ture Ite m , 它 和 包 含 对 应 时 间 长 度 音 频 数 据 的 Sound Ite m , 以 及 Sys te m Ite m , Da ta Ite m 一 起 组 成 一 个 Ed it Unit 。 因 此 , 定 位 视 频 帧 的 基 本 方 法 就 是 先 定 位 其 所 在 的 Ed it Unit , 然 后 再 在 该 Ed it Unit 中 找 到 Pic ture Ite m , 最 后 取 出 Pic ture Ite m 中 打 包 的 视 频 帧 数 据 即 可 。 如 图 10 所 示 。
图 10 Fra me Wra p p ing 方 式 下 的 视 频 帧 定 位 具 体 来 说 , 通 过 Ind e x Ta b le 中 的 Ind e x Entry Arra y 可 以 直 接 定 位 每 个 Ed it Unit 。 为 了 方 便 定 位 Ed it Unit 中 的 每 个 Ite m , 每 个 Ed it Unit 被 划 分 成 了 若 干 个 Slic e , 一 个 Slic e 表 示 以 0 个 或 多 个 定 长 基 本 单 元( CBE , Cons t Byte Ele me nt) 开 始 , 以 1 个 不 定 长 的 基 本 单 元 ( VBE , Va ria b le Byte Ele me nt) 或 Ed it Unit 的结束为终止的一段数据。 上 述 讨 论 没 有 区 分 单 和 多 个 Bod y Pa rtition 的 情 况 , 虽 然 图 示 都 是 针 对 多 个 Bod y Pa rtition 所 画 , 但 同

图 11 Clip 打 包 方 式 下 的 视 频 帧 定 位
九 、MXF 音 频 采 样 定 位
音 频 数 据 都 放 在 Sound Ite m 中 , 读 取 的 方 式 与 视频数据类似。 不同之处在于,读取音频数据时,往往 需要一次性读入 1 秒或数秒的采样数据, 因此对以 Fra me Wra p p ing 方 式 打 包 的 音 频 数 据 , 一 个 Sound Ite m 中 的 数 据 量 往 往 不 够 ( 比 如 25fra me /s 的 情 况 , 一 个 Sound Ite m 中 只 有 1920 个 采 样 的 音 频 数 据 ) , 这 时 , 需 要 多 次 定 位 并 读 取 多 个 Sound Ite m 中 的 音 频 数 据,拼接成一个大的数据缓冲。
另 外 , 对 于 多 个 Bod y Pa rtition 的 情 况 , 出 于 同 样 的 原 因 , 如 果 某 个 Bod y Pa rtition 中 存 储 的 音 频 数 据 不 足 , 可 能 需 要 把 若 干 Pa rtition 中 的 音 频 数 据 做 一 次 拼 接。
( 作 者 单 位 :江 苏 省 广 播 电 视 总 台)

10




友情链接: 时尚网 总结汇报 幼儿教育 小学教育 初中学习资料网