视频监控系统中基于FPGA的视频处理
视频监控系统是火车站、机场、银行、娱乐场所、购物中心甚至家庭保安的重要组件。随着安全风险增加,对视觉监视和记录事件的需求以多种使用模式激增。因此,新架构必须为横跨一整套日渐繁杂的视频监控系统要求的成本效益方案提供可扩展性。
上市时间的压力、新CODEC标准、日益广泛的要求(包括先进的目标探测、运动探测、目标跟踪和目标跟踪特性),这些不过是新型视频监控架构所面临挑战中的几项。伴随挑战而来的是对可扩展为不同性能范围的实现的需求。
对于从低端到高端以及从单机到PC扩展卡的任何视频监控系统,Xilinx FPGA都是理想的解决方案。
视频监控和DVR系统
数字监控系统中的数字视频录像机(DVR)正在迅速采用先进的数字视频压缩。大多数DVR制造商从MPEG4向H.264高清晰度(HD)CODEC转移,对更高分辨率和压缩速度的需求也随之增加。专用芯片(ASSP)对大批量应用很有用,但缺少灵活性,开发成本高,而且开发时间较长;大多数高级数字媒体处理器则只能执行H.264 HD解码(而H.264 HD编码比解码还要复杂得多)。满足H.264 HD性能要求的最佳解决方案是使用一个FPGA加上一个外部DSP或数字媒体处理器。
使用低成本的Xilinx FPGA,可以更进一步提供运动探测、视频缩放、颜色空间转换、硬盘接口和DDR2存储器接口,还可以将两个27-MHz ITU-R BT656数据流时分多路传输到一个54MHz数据流中,同时为DSP处理器提供视频加速。要将两个ITU-R BT656数据流多路传输到一个ITU-R BT656数据流中,仅需要一个通道视频端口来独立地传输完整的二通道视频数据。要为只有一个ITU-R BT656视频输入端口的数字媒体处理器提供接口,这种实现方法非常有用。图1所示就是这样一种建议架构的框图。
对于使用德州仪器公司DaVinci处理器(仅有一个ITU-R BT656视频输入端口)的DVR设计,需要一种更有效的实现方法将两个或更多ITU-R BT656数据流时分多路传输到一个VLYNQ数据流中,然后才能将其输送到DaVinci处理器。使用上述实现方法,您用少得多的I/O引脚就能传输视频流,而且可以降低系统成本,因为器件的封装可以变得更小。图2所示为此设计的框图。
PC扩展卡DVR系统
过去十年来,PCI总线为PC提供了很好的服务。然而,当今的PC扩展卡DVR系统所要求的带宽,已经大大超出了PCI总线力所能及的程度。未经压缩的视频数据(剥除空白帧之后)约为165Mbps。如此,在总体PCI带宽为1Gbps的情况下,您在一条PCI总线上最多只能混用6个未经压缩的视频采集或视频重放设备。您可以在扩展卡上使用MPEG4 CODEC芯片组来缩小总线上的带宽,但这会增加成本,并且使您受到现有MPEG4芯片组的限制。
PCI Express(PCIe)技术使流量大幅度提升。PCI Express分解为多个通道。每通道在每个方向上包含一个差分对,该方向每个差分对的数据流量为2Gbps。主板上的每个PCIe插槽都有自己的通道,这些通道不与其他任何插槽共享。各插槽的配置为16通道(亦称x16)、8通道(x8)、4通道(x4)或1通道(x1)。PCIe允许每卡提供的数据量从x1通道的2Gbps到x16通道的32Gbps不等。有了PCIe数据流量,您就可以摆脱每张PCI卡6个未压缩视频通道的限制。
使用与图1所示同样的设计,可通过用PC替换数字媒体处理器并且经PCIe总线将视频流缓存到PC的方法,轻松快捷地实现PC扩展卡DVR系统。视频模数转换器产生四条独立的数字ITU-R BT656流,然后这些流被送入低成本的Spartan?-3器件进行预处理。在FPGA中,视频数据剥除空白帧并同步,为PCIe适当打包,然后馈入Xilinx PCIe内核。然后,软件就可以读取并播放输入的视频,对其进行处理,或将其储存到磁盘。图3所示为PC扩展卡视频监控系统设计。
Xilinx视频和图像处理算法
从多相视频转换器、二维FIR滤波器和屏幕显示到覆盖和阿尔法混合等简单效果,再到格式和颜色空间转换,Xilinx FPGA都是实时数字视频、图像处理和滤波的理想平台。表1列出了一些常用视频IP模块组的应用指南。
Xilinx FPGA无与伦比的DSP处理能力意味着有可能支持非常高的分辨率(画质高达1080p),并且可以缩小大型DSP阵列的尺寸。Xilinx FPGA是可重新编程的硬件,有了它,您就能够轻松地尝试新颖、高性能、基于硬件的视频和图像算法,收到立杆见影之效,使您的最终产品与众不同。
现成的IP
Xilinx提供了视频IP模块组,以供在视频监控系统中快速设计、仿真、实现和验证视频和图像处理算法。其中包括设计DVR用的基本基元和高级算法。
此外,Xilinx及其合作伙伴提供了一系列压缩编码、解码和编解码解决方案,从为需要快速实现的人提供现成的内核,一直到为希望通过高质量和低比特率使自己的产品与众不同的人提供构造模块参考设计和硬件平台。
将Xilinx FPGA用于某些编解码模块中的极其繁重的处理任务,意味着您可以支持多通道HD编码,节约宝贵的系统处理器周期,通过减少或排除DSP处理器阵列大量节约成本,并轻松地将从接口到进一步视频处理的更多功能和能力集成到系统中。最重要的是,FPGA提供了可扩展的解决方案,从而能在相同的系统中支持不同的配置、额外的通道或新的编解码方案。
Xilinx FPGA可通过强化系统逻辑和实现新外设进一步降低DVR系统成本。Xilinx及其合作伙伴还为视频监控系统的快速发展提供系统接口:先进的存储器接口、PCI Express、德州仪器的VLYNQ和EMIF接口、硬盘接口和ITU-R BT656接口。
Xilinx工具简化设计
Xilinx System Generator for DSP允许使用Xilinx视频IP模块组构建和调试Simulink中的高性能DVR系统。使用System Generator开发并实现视频处理算法,可以获得经过彻底验证和可以轻松执行的设计。
Xilinx已开发出各种经过预测试的新型视频IP模块组。您可以通过在System Generator内拖放模块来轻松构建视频/影像系统,从而省下用HDL语言编写这些基本构建模块的宝贵时间。
为了处理从开发板到PC的庞大的视频数据流,System Generator for DSP引入了另一种新颖的高速硬件协同仿真(通过以太网接口)。这种接口允许低延迟的高流量,事实证明它对于在System Generator环境中构建视频/影像系统极其有用。
另一种基于MATLAB语言的设计工具是Xilinx开发的AccelDSP综合工具,这是基于高级MATLAB语言的工具,用于为Xilinx FPGA设计DSP模块。此工具可实现浮点到定点的自动转换,能生成可综合的VHDL或Verilog语言,并且可以为验证创建测试平台。您还可以用MATLAB算法生成定点C++模型或System Generator模块。AccelDSP是Xilinx XtremeDSP?解决方案的一个关键组件,它集最先进的FPGA、设计工具、知识产权内核、合作伙伴关系以及设计和教育服务于一体。
结论
在视频监控系统中,视频信号由多个摄像机生成。FPGA从视频解码器接收ITU-R BT656格式的数字视频,然后将经过处理的视频输出到监视器进行显示,同时将其输出到数字媒体处理器或DSP进行压缩后存入硬盘。
利用Xilinx FPGA,您可以使自己的符合标准的系统有别于竞争对手的产品,同时仍然为您的应用获得最佳平衡。利用Xilinx的视频IP模块组,您可以轻松构建具有高度灵活性和可扩展性的DVR系统,从而既满足低端市场又满足高端市场。通过将PCIe内核与视频IP模块组集成到一起,您可以开发低成本的PC扩展卡视频监控系统。使用Xilinx FPGA中的VLYNQ内核,您可以通过Xilinx FPGA将来自多部摄像机的众多视频流轻松地连接到TI的DaVinci处理器。
AccelChip与Xilinx System Generator的集成将算法开发者青睐的基于MATLAB的算法综合与系统工程师和硬件设计者使用的图形设计流程结合起来。它使用丰富的MATLAB语言及其附带的工具箱创建复杂DSP算法的System Generator IP模块。通过合并使用这些工具,设计团队可以为实现而利用硬件建模这一最有效的手段,从而让算法开发者完全参与FPGA的设计过程,并且更快地完成更优质的设计。
评论