论文部分内容阅读
视频处理在通信、生产管理、多媒体技术、高清晰度电视、医疗、目标跟踪等领域有着越来越重要的地位。传统的视频处理平台普遍采用PC,专用集成电路芯片或者DSP器件,并都要求尽量高的帧率。由于FPGA的并行结构,使得其具有速度上的优势,并且功耗较低,近年来也更多的应用到视频处理领域。然而,单纯地应用FPGA进行视频处理也有其局限性,FPGA实现比较高层次的算法例如机器学习、场景分析时,需要结合硬件电路特性,重新规划算法,这样以来,算法的实现难度就会增大许多,占用片上资源较多,开发周期长。在工业和学术领域,一个比较常见的视频处理通路方案是FPGA进行采集和预处理,然后通过PCIE接口将数据发送给PC,再由PC端进一步处理、分析。但是,这种方案也存在体积大、成本高的缺点,对于热门的汽车电子、安防领域,并不是好的方案。本文采用了基于Zynq芯片的开发板实现了一套视频处理系统。Zynq芯片为Xilinx公司于2011年推出的具有PL-PS架构的芯片。PL为Programmable Logic,即为FPGA;PS为Processing System,即为ARM.在这款小小的芯片上集成了28nm工艺的FPGA和一块双核Cortex-A9系列的ARM,PL-PS之间可以通过AXI总线进行通信,并且PL-PS可以共享一片内存,通过软硬件协同工作,既可以充分发挥FPGA和ARM的优势,又可以形成互补,对于一些场合(例如视频处理)的应用能够带来性能上的提升。本文基于Zynq芯片实现的视频流处理系统,能够实现视频的输入,处理,存储以及输出。鉴于FPGA器件本身的并行特性,系统可以在PL端实现图像的预处理,例如色彩格式转换、去噪等操作,而在PS端,由于其串行特性以及可以嵌操作系统等特点,可以实现较复杂的运算,能够对图像进行高级处理,例如特征分析,分类器等,除此以外,PS也可以进行一些控制操作,例如舵机控制等。通过这种软硬件协同处理的方式,实现对视频应用的加速。本系统除了实现基本的数据流通路,还完成了几个图像算法的FPGA实现,例如摄像头raw图像的去锯齿化算法、Sobel滤波算法、RGB与HSV颜色空间转换算法。该系统的PS部分可以不需要操作系统运行,也可以嵌Linux操作系统运行。系统有几点创新之处:1.在架构上进行了创新,本系统采用的Zynq芯片,集成了FPGA和ARM两种架构的处理器,并且两种架构各有优势。这种FPGA+ARM的架构提升了系统性能;2.本系统的硬件设计中采用了模块化设计,将各个功能模块打包成IP,最后通过鼠标拖动连线将各模块连接成系统,这种方式方便并提高了开发的效率。3.本系统应用了新型的设计工具HLS,对于熟悉C的软件工程师,应用此工具不需熟悉verilog便可进行开发,这样降低了FPGA设计的难度,提高了开发周期。由于Zynq芯片的性能优势,今后在视频领域,其将发挥更重要的角色。本文介绍的视频处理系统,工程内容涉及FPGA和ARM器件,也涉及图像处理算法,涉及知识面较多,因此对于同行业的开发人员有一定参考意义。