基于DCI标准的数字影院系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于DCI标准的数字影院系统
王延生
北京邮电大学,北京 (100876)
E-mail:wangys1982@
摘要:本文针对目前数字电影技术国内外现状,提出了自己的一套真正符合数字影院技术规范的数字影院系统,详细介绍了数据码流的处理过程,并在音视频同步和JPEG2000数据流分解方面提出了自己的研究方案。
关键词:MXF;JPEG2000;数字影院系统.
中图分类号:TP
1.引言
数字影院是采用数字信号而非胶片形式进行电影发行、放映,而重现的图像和声音质量与35mm胶片放映相近的系统[2]。美国迪斯尼、福克斯、米高梅、派拉蒙、索尼图像、环球和华纳兄弟7家制片公司于2002年3月共同出资建立了一个专门起草、制定数字影院技术规范并进行相关测试、评价的机构,称为DCI LLC,并于2005年7月正式公布了DCI 规范。目前,数字电影放映设备市场上,占主导地位的是基于MEPG-2标准的电影服务器,但研究表明,其在高码率条件下的图像质量较基于JPEG2000标准的解码系统差,且DCI 规范中将JPEG2000确定为唯一的解码标准。自2005年7月DCI规范公布后,很多厂商做出积极响应,很快都宣称自己开发完成了符合DCI要求的数字影院设备,但销售价格偏高,实现方法均不公开。同时,以美国影院业主协会(NATO)为代表的机构也对DCI技术规范的实施提出了一些质疑,认为数字影院系统和设备需要检验和认证是否真正符合DCI的规定。因此,在数字影院播放系统领域,有必要打破国外厂商的设备垄断,自主研制符合DCI 规范的数字影院系统。
2.系统介绍
2.1系统总体目标
数字影院系统包括节目源获取的数字化、节目制作发行的数字化、节目传输的数字化、影院节目接收与放映的数字化四个环节 [3]。一般通过影院服务器接收节目片源,并实现片源图像的解包、解密、解码。通过高配置的放映机实现影片放映。这一系列过程都要符合DCI规范。
2.2系统总体设计
系统分为如下几个模块,见图1:
外部通信模块:
该层负责与外部的通信,通过该层音视频媒体模块可以接收到外部发来的消息或数据流。该部分通过文件系统载入或者通过网络传输,接收电影公司发行的数据源,然后交给下层的解包模块。该数据源为JPEG2000数据打成的MXF文件。MXF (Material Exchange Format)是为数据的发送者和接收者建立不同数据格式转换的通用标准。它可在专业广播电视环境下转换媒体文件,本质上是一种外壳格式。音频数据源主要是WAV文件。
DCP解包模块:
该层负责对数字影院音视频DCP解包,并将解包后的音频数据流传输到下一层。该层解析的数据包即为MXF包,把MXF中的数据流(一帧一帧的JPEG2000数据)解析出来,它和下一层的解密模块协同工作:如果是加密的MXF文件,则进行解密操作;如果未加密,则直接解析。一般从安全角度考虑,MXF文件都是经过加密的。
图1 视频流程图2 音频流程
解密模块:
该层负责对解包后的音频数据密文流进行解密。该部分主要调用openssl中的aes128进行解密操作。
模块SDK:
SDK主要负责对底层音视频设备的操作,启动线程,接受上层解包获得的数据帧,并把数据发送给下层的驱动设备。在硬件部分因为有三片ADV202芯片对JPEG2000进行解码,因此该部分需要把一帧JPEG2000数据按不同分量分成三部分(简称JPEG200一分三),分别交给三个ADV202芯片分别解码,最后ADV202把解码后的数据合成输出到放映机上。视频硬件和音频硬件:
视频设备主要是ADV202Decoder,包括三片ADV202芯片,音频部分主要是X-FI声卡,他们分别解析视频流和音频流,送到放映机进行放映。
2.3系统总体工作流程
图3 视频数据处理流程
如图3所示:接收模块接收到打包后的DCP包,该包是由电影公司委托发行的,里面是把JPEG2000的数据源打包成的一系列的MXF文件,同时包括播放列表等其他辅助文件。该接收模块接收到DCP包后分析播放列表,然后按列表顺序载入MXF文件。一个MXF文件一般就十几分钟,因此该包中有几个甚至几十个MXF文件,所有的MXF文件组成一部完整的影片。接收模块按列表顺序载入这些文件,然后分别交给下面的解析模块。解析模块解析MXF文件,按照MXF文件格式进行判断,如果是加密的MXF文件则进行解密解析操作,如果是未加密的MXF文件,则直接解析,从中得到JPEG2000的数据帧,交给SDK模块。SDK模块接收到JPEG2000数据后,需要进行分三操作,将一个JPEG2000数据流分成三部分,启动DMA线程,建立缓存,然后把数据再从缓存中拿出来交给驱动。驱动模块把接收到的数据流分别交给三个ADV202芯片,该芯片负责解码JPEG2000数据,因为JPEG2000文件也是一种压缩格式,因此需要该芯片对压缩后的JPEG2000数据进行处理,解码后交给显示器或者放映机进行放映,该数据流到此结束。
3.系统中关键技术
3.1数字影院的音视频同步问题
因为该系统是把音频和视频分开进行解析和处理,因此在播放过程中涉及到音视频同步的问题,同步的原则是越靠近底层,越靠近输出,同步的效果越精确。但是考虑到实际实现,同步方案按由上层到下层,由易到难的顺序可以分成三种情况进行。
3.1.1基于软件部分的同步
参考图1和图2,在MXF文件解析部分,设置一个计数器,记录MXF解析的帧数,每播放到一定的帧数,例如每十帧,就发送一个信号给音频部分。音频部分也有一个计数器,记录正在解析的音频的帧数,当接收到视频播放的帧数后和音频帧数进行对比,如果音频放快了就等待一段时间,如果视频放快了,则向前跃进相应的帧数,因为音频采用的是WAV 数据流未经过压缩,并且硬件解码过程采用的是Creative公司的X-FI声卡,因此容易控制。
3.1.2基于SDK的同步
SDK同步分两层:上层的接收数据同步,下层的传送数据给驱动部分时的同步。
SDK上层的接收数据同步
该部分同步原理同软件部分的同步类似,但是因为比软件部分更靠近底层,因此更加精确,实现起来也更加困难。同步原理也是在视频SDK中设置计数器,在接收到一定帧数的