摘要:本文结合实际开发经验,系统阐述了基于PHILIPS公司TRIMEDIA平台开发多通道数字监控DVR的硬件系统设计及关键技术,并对开发过程中难点问题的处理提出了一些建议。
关键词:嵌入式系统;DVR TRIMEDIA;MPEG-4;代码优化;运动估计;网络协议栈
概述
随着数字化时代的到来,在安防监控领域,集成了多媒体技术、数字图像处理及远程网络传输等最新技术的数字监控系统正在逐步取代传统的模拟监控系统。采用最新的嵌入式系统设计技术和MPEG-4压缩编码技术的嵌入式DVR产品正在逐渐引起业内的广泛关注。
本文介绍的针对市场客户需求,利用PHILIPS公司TRIMEDIA技术平台成功开发的基于MPEG-4编解码技术的长虹“锐眼王”系列嵌入式数字硬盘录象机,在国内居于行业领先水平,取得了较好的社会及经济效益。
图1 硬件的系统结构图
硬件系统设计(以4路机为例)
如图1所示,系统主要由以下几个模块组成:视音频编码器、主处理器、硬盘控制器、网络控制器、PCI桥、PCI总线仲裁器、系统存储器、外围控制器和其他系统模块。
视音频编码器
该模块主要由视频解码器、音频CODEC和DSP处理器组成。其中视频解码器将模拟视频转化为数字视频,音频CODEC将模拟音频转化为数字音频,并通过专用接口传输给DSP处理器进行编码。DSP编码后的数据通过PCI总线传输给主处理器,用于本地存储和网络传输。
主处理器
主处理器完成的工作包括:
从PCI总线上获得编码视频、音频数据;
将编码后的视频、音频数据进行网络传输;
将编码后的视频、音频数据进行本地存储;
实现视频预览及音频监听;
接收外围控制器的命令,并将相关操作通知相关设备;
从硬盘中读出存储的数据,并进行本地播放及与播放相关的各项操作;
在系统启动时,给其他DSP处理器加载程序代码;
运行嵌入式操作系统,进行系统管理和进程调度。
硬盘控制器
该控制器负责从PCI总线上获得数据流,并将数据流以特定的格式存储到硬盘中。
网络控制器
该控制器负责从PCI总线上获得数据流,并将数据流以特定的格式实现网络传输。
PCI桥
负责PCI桥编码器之间的总线仲裁以及硬盘控制器和网络控制器之间的总线仲裁。
PCI总线仲裁器
负责两个PCI桥和主DSP之间的总线仲裁,使主DSP获得相应较高的优先级,进行有效的非PCI总线操作,以便和外围控制器之间进行有效数据传输。
系统存储器
系统存储器由系统启动代码存储器、子系统启动代码存储器、程序存储器和双端口RAM组成。其中系统启动代码存储器存储主处理器的BootLoader代码,主处理器的程序代码存储在程序存储器中。双端口RAM负责外围控制器和主处理器之间的数据交换。子系统启动代码存储器存储4路编码处理器的启动代码。编码处理器的主代码由主处理器在运行时进行加载,程序可以放于程序存储器中,也可放于硬盘中。
外围控制器
主要负责外围的一些操作控制,例如按键输入、遥控器输入、报警器输入和输出等。
其他系统模块
包括电源管理等其他系统设备。
项目开发过程中的难点及关键技术
高速数字电路设计
TRIMEDIA方案中处理器主频往往超过100MHz,对信号完整性及EMC性能构成极大挑战。电路板设计应按4~6层板考虑。在元器件布局及布线过程中严格遵守高速电路设计原则,确保系统功能的实现以及整机性能指标达到检测标准。
CODEC设计实现
评价嵌入式DVR最重要的指标是CODEC实现的质量,直接体现在同等码率条件下,音视频编解码算法及代码执行的效率。设计优良的CODEC应具有如下特征:
·高性能的运动估计
MPEG-4编码的运算量主要集中在运动估计部分,运动估计的好坏直接影响编码的质量和效率。运动估计可采用多种算法:一是基于码率失真模型的运动估计;二是码率受限的模式选择;三是基于时域和空域相关的自适应预测;四是大搜索范围预测;五是无限制的运动估计。算法在保证较高的计算效率基础上,估计的精度应接近全局运动估计。
·高精度的DCT/IDCT变换
在Trimedia定点处理器上,实现的DCT/IDCT变换算法在保证高的计算效率基础上,也要保证运算精度符合IEEE 1180-1900标准。
·支持差错掩盖和自动恢复功能,即使在较差的传输信道上,也能有较好的图像重建质量。
·支持多种GOP结构,可设定M,N,以支持IBBP,IBP,IP,I等多种GOB结构。
·С值耐枷穹直媛饰猀CIF-D1,在垂直和水平方向上能以步长的倍数递增。
·自适应的帧场DCT变换,支持帧场运动估计。自适应Inter/Intra选择。
·精确和灵活的码率控制,支持VBR,CBR和Hybrid 等多种码率控制方法。
·码流完全兼容ISO/IEC-14496-2,MPEG4 ASP@LEVEL3规范。
·解码器根据编码器引入的噪声类型,自动选择自适应的滤波器,具有多重去噪的能力。
·具有良好的可移植性。
基于TRIMEDIA平台的CODEC既可自行开发,也可购买成熟的第三方软件库。
BSP设计与调试
首先是最小系统的调试。由于最小系统的调试手段有限,建议使用与DEMO板相同或相近的硬件结构,这样只需对DEMO板BSP相关的文件进行修改,以适应于自己的目标板。另外,这一阶段可能有许多硬件问题尚未完全解决,会很难定位各种故障。除非有硬件调试器的支持,否则不建议在最小系统中使用过多未曾用过的硬件芯片。
接下来是外围设备驱动程序的调试。可以分为两步来进行:首先通过一些简单的配置及测试程序进行硬件调试,这一阶段尽可能排除各种硬件故障。接着就是调试驱动程序本身,由于通常各种外设驱动程序都会与操作系统交互信息,而且随着信息量的增大,使得驱动程序的运行频率会变得非常高。因此,设计驱动程序时,一定要注意程序的稳定性及效率,它将直接影响到整个系统的性能及稳定性。大部分通用设备的驱动程序都可以由两部分来实现,一部分是与CPU相关的代码,这部分主要是一些配置参数,以及一些代码功能,这些程序很少。另一部分就是与CPU不相关的驱动程序代码,它实现了与OS的绝大部分接口。
BSP的调试方法有如下几种:硬件仿真器调试、纯软件方法调试、软件调试器调试。
网络协议栈的实现
网络远程监控的效果与网络协议栈的性能直接相关,目前使用得最多的就是TCP/IP协议栈。在TriMedia软件架构中,可以将网络驱动设计成pSOS网络部件pNA+访问网络接口。这样设计的优点是:上层软件可以使用pSOS系统的pNA+软件部件丰富的系统调用函数,这些函数不但可以操作网络接口,而且可以操作套节字(Socket)进行高级TCP/IP网络编程,而不需用软件来实现TCP/IP协议栈。尽管如此,但往往实际效果最好的当属专用商用网络协议栈,如FUSION公司提供的产品。
一般而言,网络接口底层的通信协议由专用芯片硬件实现,而上层的通信协议才需软件编程实现。TRIMEDIA方案中网络接口的实现可在PCI总线或同步串行口(SSI)挂上不同的专用网络接口芯片,接入不同的通信网络环境中。
当然,如果设计成本许可,也可直接使用自带网络协议栈的网络接口控制芯片(如RABBIT公司的产品),减小开发工作量。
文件系统的实现
在嵌入式DVR设计中,文件系统的实现非常复杂,技术含量相当高。与通常PC机使用的文件系统不同的是,嵌入式DVR中通常采用音视频交叉存储文件格式,为有效解决大量文件索引占用CPU资源过多、断电损伤、TIME-SHIFTING等问题,需要建立特别的AV文件系统,在不增加冗余的同时仍能快速索引定位。该文件系统实现效率高低将直接影响到整机性能及可靠性。其中纯音频的保存、快速定位、音视频同步问题值得重点关注。由于该问题足可构成专题论述,本文不作深入讨论。
网络客户端软件的实现
目前几乎所有的嵌入式DVR均提供网络客户端软件以进行远程网络监控。主要分为内嵌于通用 WEB浏览器以及专用软件两种类型。开发难点集中在远端DVR设备的地址自动解析识别、针对不同网络带宽情况下的码率/帧率自适应调整、多通道监控。