利用FPGA协处理器优化高性能数字摄像监控系统
扫描二维码
随时随地手机看文章
商用摄像监视系统的一般需求是支持一至八个摄像机,先进的视频压缩如MPEG-4,Windows Media 9 H.264,低延迟编码(1-3帧)和不同帧速率下的同步查看和记录。编码分辨率从CIF(大概是VCR分辨率)到D1(大概是DVD分辨率)。视频速率从每秒2帧(家用安全)到赌场和其它高级系统中高达每秒30帧。
增强摄像监视的质量
在固定带宽情况下,可以采用不同的方式包括先进的CODEC、定义兴趣区域,图像稳定和全景摄影来改进视频质量。
最常用的先进视频压缩技术是MPEG-4。然而,设计者正在检测H.264的基本性能,经比较它可以将视频质量提高33%(图1),大大地增强摄像监视系统的检测能力。
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window CTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('upload/2008_04/080430112072641.gif');}" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window CTRL+Mouse wheel to zoom in/out';}">
因此,视频质量和检测能力可以通过监视情况定义更感兴趣区域来增强。在不感兴趣的区域即天空、天花板和风中摇摆的树冠等,系统能够增加视频压缩等级,从而减小那些区域的视频带宽和处理负荷,因为这些地方出现安全漏洞的危险性是很低的。反之,这让系统更关注感兴趣的区域,如外门、窗户、高安全区域的内部和会有或已有移动的区域。本质上,通过定义兴趣区域和关注更关心的那些区域,系统能够减小虚警数量,同时增加检测到真正安全漏洞的可能性。
摄像机移动和/或摄像机抖动也会降低摄像监视的质量。当然,摄像机移动对确保覆盖整个监视区域是必须的,而抖动可能是有环境因素如风或过往车辆造成的。然而,这两种因素会降低压缩质量,可能会到造成丢帧,因此降低摄像监视系统的质量。在最糟糕的情况下,这些因素会造成系统处理超负荷。数字摄像监视系统稳定技术现在能够用来解决摄像机的物理抖动。在这方面现在有几种算法类型,但是都遵循同样的原则。图像的某些部分和以前的图像比较。图片偏移不同的矢量,用搜索来寻找图像间相关性最大的点。然后把偏移矢量应用在整个图像上,边缘上进行一些剪裁,但是大部分的图像仍然是稳定的。
FPGA可以作为搜索和相关的评估。30fps D1分辨率单通道的一般需求是大约3,000-5,000个FPGA逻辑单元——等效于大容量器件如Altera Stratix II FPGA大约4-7%的逻辑面积。
提供全景图的那里也是集成了旋转摄像机的摄像监视系统的一个关键特性。这个特性使得覆盖特定场所所需的摄像机数目最少,让安全部门监视系统很快地查看更大的区域或关注已经检查到潜在安全问题的特定区域。当全景算法结合选择摄像机(PTZF),系统能够跟踪视频图像的移动。不是将图像移回中心,而是图像放大为更大分辨率的图片。新的图像“缝在”老图像上,覆盖部分被更新。用于图像稳定的同样的FPGA机制用于全景摄影,具有增加最小计算量的缝合。
视频移动检测在室内和室外,无论白天黑夜都很有效,能够大大地增强摄像监视系统的能力。这个特性使用跟踪算法,接收来自监视摄像机的噪声检测,提取出由图像噪声、如风等环境因素造成摄像机移动和由云或移动的树枝造成的错误图像等引起的不重要的移动。它简化了跟踪入侵者的算法,可以和传统的移动检测相结合,让错误识别降至最低。移动检测算法从用几百个逻辑单元实现的非常简单的高通或边缘检测滤波器到能够克服雨、风干扰及人、小动物和车辆等的差异的非常复杂的算法。先进的算法一般采用移动跟踪,和MPEG压缩中的运行估计模块类似。图像不同部分的移动在时间上进行跟踪,如果移动显示始终如一,检测和跟踪到一个入侵者。这允许系统忽略雨、灰尘和灯光的变化。实现先进的移动检测算法需要只需要1,000-3,000 FPGA逻辑单元。
视频存档
在最现代的摄像监视系统中视频存档是必须的功能,它让安全部门保存可能的侵入和维护,用于识别入侵者的视频。它或者在创建图像的本地完成,或者在更安全的远程地点完成。IP摄像机或视频服务器把所有的压缩视频发送给后台部门,在那里中央记录单元收集所有的视频流并进行归档。这种配置不需要昂贵的终端单元,容易进行视频管理,但是需要非常可靠的具有高带宽的网络,一次支持所有摄像机的传送。另一种配置使用本地硬盘记录,让后台部门一次只能查看一台摄像机,或访问任何单元的任意存档视频。
实现
DSP处理器和FPGA协处理器的组合具有数字摄像监视系统所需的非常高的性能和高度灵活的信号处理能力。DSP处理器优势包括高时钟速率(高度1GHz),基于C/C++的开发,内建的存储器管理和内建的I/O接口。同时,DSP处理器有有限数量的指令/时钟和乘法器,以及固定的字长和I/O接口。另外,大部分DSP允许非常有限的处理器间通信,采用低速总线如PCI和其它DSP相连。
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window CTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('upload/2008_04/080430112072642.gif');}" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window CTRL+Mouse wheel to zoom in/out';}">
另一方面,FPGA包括大量的指令/周期,比DSP多一至两个数量级的乘法器和灵活的字长。例如,Stratix II FPGA每个器件有多达384个18×18乘法器/累加器,每个能够运行在370MHz,及将近180K个标准逻辑单元。FPGA也容许访问先进的存储器件如DDR,DDR II,RLDRAM和QDR。先进FPGA的其它优点是能够通过高速LVDS和数千兆SERDES总线和其它FPGA或其它器件相连,如DSP。它们的驱动包括更长的开发时间,更大的器件功率(尽管不是根据计算量)和1/3 DSP峰值处理速率的时钟速率。
这两类器件显然可能互相补充。虽然DSP能够快速地开发新的和复杂的算法,但是它们一次只能完成两至四个计算。另一方面,FPGA能够一次对整个矢量甚至矩阵进行算术操作。而且,FPGA在连接多个处理点上非常出众,在DSP间分配数据,把收集并把分支计算组合成单个输出流。
尤其在摄像监视应用中,FPGA可以用来预处理视频、完成视频稳定、滤波和移动检测。然后将稳定的视频及移动检测信息送给DSP进行视频压缩和协议栈处理。
结论
摄像监视只是一些视频影像系统的一种,它们日益需要非常高的信号处理和存储带宽以及多处理单元间通信的能力,以完成所需分辨率和实时视频观看要求。其它应用包括医疗影像、光学检测、视频广播、科学计算和军事应用。设计这些系统的工程师将不断地利用DSP处理器和高性能FPGA的组合来实现所需的视频影像质量,这是完全可能的。