在视频监控系统结构所面临的众多挑战中,上市时间压力、CODEC新标准的出台和需求范围的不断扩大(包括高级目标检测、运动检测、目标跟踪和目标跟踪功能) 还只是其中的一小部分。要应对这些挑战,视频监控系统的实现就必须能根据不同性能要求而进行相应调整。
Xilinx的 FPGA产品是各种视频监控系统理想的解决方案,不论它是低端系统还是高端系统,是独立系统还是PC扩展卡系统。
视频监控与DVR系统
高级数字视频压缩技术在视频监控系统的数字录像机(DVR)中正得到快速普及。随着大多数DVR制造商从MPEG4转为采用H.264 高清(HD) CODEC,对提高分辨率和压缩率的要求也变得更急切。专用标准产品(ASSP) 比较适合量大的应用,但缺乏灵活性,而且开发时间过长,成本也高。大多数高级数字媒体处理器连实现H.264 HD解码都比较困难,何况H.264 HD编码比解码还复杂得多。因此,要满足H.264 HD的性能要求,最佳方案就是采用一块FPGA加一块外部DSP或数字媒体处理器。
采用低成本的Xilinx FPGA产品还能进一步提供运动检测、视频量化、色域转换(color-space conversion)、硬盘接口、DDR2存储器接口等功能,以及将两个27MHz的 ITU-R BT656数据流通过时分复用合为一路54MHz的数据流,同时为DSP处理器提供视频加速。将两个ITU-R BT656数据流复用为一个之后,系统只需单通道的视频端口就能独立传送整个双通道的视频数据。这种实现方式在连接只有一个ITU-R BT656视频输入端口的数字媒体处理器时非常实用。图1所示就是上述推荐系统的结构框图。
图1:利用FPGA和数字媒体处理器搭建的视频监控系统。
对采用只有单个ITU-R BT656视频输入端口的TI达芬奇处理器的DVR设计而言,更高效 的实现方案是在数据流送入达芬奇处理器之前,将两个以上的ITU-R BT656数据流时分复用为单个VLYNQ数据流。这种方案减少了用于视频数据流传输的I/O管脚,因而缩小了器件的封装,降低了系统成本。图2所示为该设计的框图。
图2:利用FPGA和达芬奇处理器搭建的视频监控系统。
PC扩展卡形式的DVR系统
PCI总线在PC机上已成功应用了10余年。但今天的PC扩展卡DVR系统所要求的带宽已远远超出了PCI总线所能提供的极限。
未压缩的视频(在除去空白帧之后)数据率约为165 Mbps。于是,当PCI总带宽为1 Gbps时,一条PCI总线上最多可同时连接6个发送未压缩视频的捕捉或回放设备。为降低总线带宽的占用,可以在扩展卡上采用一块MPEG4或 CODEC芯片组,但这样会提高成本,而且可选器件也局限于现有的MPEG4芯片组。
PCI Express (PCIe)技术在流量上有了很大提高。PCI Express可以细分为多个通道,每个通道在出和入上均包含一对差分对,每对差分对支持2 Gbps的数据流量。一块主板上的每个PCIe插槽都有自己的通道,这些通道是不与其他插槽共享的。每个插槽可配置为16通道(即x16)、8通道(x8) 、4 通道 (x4)或 1通道 (x1)。因此,每块采用PCIe总线的扩展卡可提供的数据流量从2 Gbps(配置为x1通道时)到32 Gbps(配置为x16通道时)。PCIe所支持的高数据流量让我们不再只局限于每卡连接6通道的未压缩视频。
采用图1所示的设计,我们就能用PC机代替数字媒体处理器,并将视频流通过PCIe总线送入PC机,从而快速轻松地实现一套PC扩展卡DVR系统。视频模数转换器产生4个独立的数字ITU-R BT656流,然后将其送入一个低成本的Spartan-3器件进行预处理。这块FPGA将视频数据中的空白和同步去除,并将其打成适合PCIe的数据包,然后将其送入Xilinx PCIe内核。接着由软件接收、显示和处理输入的视频,或将其存储到磁盘中。图3就是这样一个PC扩展卡视频监控系统。
图3:PC扩展卡视频监控系统。
Xilinx的视频和图象处理算法
Xilinx 的FPGA是十分理想的实时数字视频、图象处理和滤波平台,其功能从多相视频转换器、两维FIR滤波器、屏幕显示,到覆盖(overlay)和α混合等简单效果甚至格式和色域转换等。表1列出了一些常用视频IP模块组的应用指南。
表1:视频IP模块组应用指南。
Xilinx FPGA无与伦比的DSP处理能力意味着它可以支持非常高的分辨率(甚至是1080p的图像质量),同时减小大型DSP阵列的尺寸。此外,Xilinx FPGA还是可重复编程的硬件,因此很容易对基于硬件的高性能新视频和图像算法进行试验,从而直接成就最终产品的独特性。
实用的IP资源
为加快视频监控系统中视频和图像处理算法设计、仿真、实现和验证的进程,Xilinx还提供了丰富的视频IP模块组,其中既包括设计DVR所需的基础的简单算法,也包含高级算法。
另外,Xilinx及其合作伙伴还提供了一系列压缩编码、解码和编解码方案,从为需要快速实现设计的客户提供的现货内核,到为希望通过降低比特率来提供更高图像质量、并以此实现产品差异化的客户提供的模块化参考设计和硬件平台。
采用Xilinx 的FPGA来完成某些编解码模块中极高强度的处理任务就意味着,产品不但可支持多通道高清编码、节省宝贵的系统处理器周期,而且可通过减少或消除对DSP处理器阵列的要求而真正做到成本削减,并轻松将更多特性和功能(从接口特性到更强大的视频处理功能)集成进系统。最重要的是,FPGA提供的是一种可扩展方案,因此可在同一个系统中支持不同的系统结构、额外通道或新的编解码方案。
通过增强系统逻辑和实现新外设,Xilinx FPGA还能进一步降低DVR系统的成本。同时,Xilinx及其合作伙伴还为快速开发视频监控系统提供了以下系统接口:高级存储器接口、PCI Express接口、TI的VLYNQ和 EMIF接口、硬盘接口,以及ITU-R BT656接口。
利用Xilinx提供的工具简化设计
Xilinx 提供的System Generator for DSP允许在Simulink下用Xilinx 的视频 IP模块组搭建和调试高性能DVR系统。采用System Generator开发和实现视频处理算法可以完成经过彻底验证而且执行简单的设计。
Xilinx已开发出多种经过预测试的新的视频IP模块组,我们只需在System Generator中拖放模块就能轻松构建起自己的视频/图像系统。这为开发人员节省了宝贵的时间,使他们无需再用HDL语言编写这些基本模块的代码。
为了处理由开发板发往PC机的大量视频数据流,System Generator for DSP还引入了另一种新的高速硬件协同仿真(通过一个以太网接口实现)。该接口可在低延迟下实现高流量,事实证明这在System Generator环境下构建视频/图像系统时非常有用。
Xilinx还推出了另一款基于MATLAB语言的设计工具AccelDSP综合工具,这是用于在Xilinx FPGA上设计DSP模块的高级工具。它可以自动完成浮点到定点的转换,产生可综合的VHDL或Verilog代码,并创建一个测试平台用于验证。我们还可以根据一段MATLAB算法生成一个定点的C++模型或System Generator模块。AccelDSP是Xilinx XtremeDSP方案中的关键组件,而Xilinx XtremeDSP则是一套结合了最先进的FPGA、设计工具、IP核和合作伙伴关系以及设计和培训服务的方案。
本文小结
在一个视频监控系统中,视频信号是通过多台摄像像机产生的。FPGA的作用就是接收来自视频编码器的ITU-R BT656格式数字视频信号并将处理后的视频数据送到监视器上显示和送至数字媒体处理器或DSP中进行压缩,并存储至硬盘。
采用Xilinx的 FPGA,客户就能在其兼容标准的系统中实现与竞争产品的差异性,同时仍能取得针对应用的最佳平衡点。而有了Xilinx提供的视频IP模块组,客户更能轻松构建一个高度灵活和可调整的DVR系统,以便同时满足低端和高端市场的需求。Xilinx FPGA中提供的VLYNQ内核能让客户轻松地将多台摄像机发来的大量视频数据流发送到TI的达芬奇处理器进行处理。
AccelChip与Xilinx System Generator这两种工具的集成则同时兼顾了算法开发人员偏好的基于MATLAB的算法综合开发方式与系统构建师和硬件设计师所偏好的图形化设计流程,因此设计师们可以利用丰富的MATLAB语言和附带的工具箱来创建复杂DSP算法的System Generator IP模块。通过使用这些工具,设计小组就能用最高效的硬件建模方式进行设计实现,并让算法开发人员在FPGA设计过程中就全面参与,从而更快实现更高品质的设计。