数字电影系统的体系结构及相关的工作
详细内容
为了概念上的完整,本小节介绍符合 DCI 规范的整个数字系统并指出数字电影视频解码系统在其中的位置。
其中,媒体模块是数字电影播放环节的重要组成部分,它的主要功能是将打包、压缩和加密的数据转换成原始图像、声音、字幕和辅助数据。而数字电影视频解压卡是媒体模块的关键部分,也是我们在数字电影项目中承担的主要任务。
下面两小节将介绍数字电影视频解压卡的硬件部分和软件部分。
该数字电影视频解压卡的硬件部分包括视频处理板卡及其它必要接口,例如,PCI接口、HD-SDI接口等,视频处理板卡对JPEG2000 压缩的码流进行实时解码。
为了便于开发和维护,需要将JPEG2000解码的软件划分成若干层次模块。
我们根据如下原则划分软件模块:模块内高内聚、模块间低耦合、并考虑程序的物理分布需要以及操作系统和软件开发包的软件架构。
在数字电影视频解压卡的可编程器件上,我们可以编写硬件程序。硬件程序需要完成两方面的功能:一是在驱动程序和下层专用芯片之间传递信息,即将驱动的控制信号传递给其他下层专用芯片,同时将下层的状态、数据传递给驱动程序;二是在数据、控制信号传输的过程中进行仲裁,比如Local Bus是不能同时传输来自两个芯片的数据的,在某一时刻只能选通其中一个芯片。所以,硬件程序是JPEG解码软件的最底层。
除硬件程序之外,还需要开发设备驱动程序。设备驱动程序必须与应用程序分离,这是系统可靠性和可移植性的需要。应用程序运行在 CPU 普通模式,不能执行特权指令,必须将指令发送给运行在 CPU 特权态的驱动程序,由后者转换成数字电影视频解压卡需要的硬件指令,必要时后者向应用层软件返回结果。
将整个解码软件移植到另一个操作系统下时,由于驱动程序对应用程序屏蔽了操作系统外设操作的细节,只需要对驱动程序做一定修改,而应用程序几乎不用修改,整个解码软件就可以在新的操作系统上运行。而在支持 WDM 模型的操作系统之间,WDM模型的驱动程序代码也有很好的可移植性,只需要重新编译链接驱动程序,就能得到不同操作系统下可用的驱动软件。
在应用层,为了便于开发调试数字电影视频解压卡,还需要应用测试软件。
该软件可以供用户设置和管理数字电影视频解压卡,并能循环读取视频序列中的待解码JPEG2000图像分量,通过驱动程序送到解压卡上解压。而在完整的数字电影系统中,也需要对数字电影视频解压卡进行类似的操作(当然,除此之外还有对解包、解密、音频等模块的调用)。