Vivado HLS嵌入式实时图像处理系统的构建与实现嵌入式实时图像处理系统的构建与实现
传统的基于CPU、GPU和DSP的处理平台难以满足图像实时处理的要求,而FPGA在并行图像处理上有着独一
无二的优势,在性能和成本之间提供更加灵活的选择。通过Xilinx最新的Vivado HLS工具,设计实现了可变参数
的拉普拉斯算子图像滤波算法,并且在ZYNQ-7000 SoC上构建了可视化的实时嵌入式图像处理系统。实验结果
表明,系统可以实现不同的图像处理算法,很好地满足了图像处理的实时性、高性能、低成本要求,对未来高
性能图像处理系统的设计和实现提供了很好的借鉴。
0 引言引言
近年来,由于成像技术的不断进步以及图像应用领域的拓宽,数字图像包含的数据量与日俱增,
Xilinx公司的
1 系统总体结构系统总体结构
ZYNQ-7000嵌入式数字图像处理系统结构框图如图1所示,系统主要由OV7670摄像头、ZYNQ-7000 SoC、数据存储单
元DDR3、HDMI显示器以及上位机等组成。ZYNQ-7000 SoC作为整个实时处理系统的核心,包括处理系统(Processing
System,PS)和可编程逻辑(Programmable Logic,PL)两部分,其中PS部分主要包含了双ARM Cortex-A9核,PL部分包含了
传统意义的DSP资源和FPGA逻辑单元。
1.1 PL部分实现的功能部分实现的功能
可编程逻辑PL部分实现的主要功能如下:
(1)从OV7670摄像头中获取图像数据,并通过视频存储器直接访问(Video Direct Memory Access,VDMA)传输至
DDR3存储芯片中存储;
(2)将DDR3中存储的图像数据通过VDMA传输到可变参数的拉普拉斯滤波算法IP模块进行图像处理,并把处理生成的图像
数据通过VDMA重新传输到DDR3;
(3)PL中的显示模块配合VDMA构成嵌入式Linux的硬件显示单元。
图像采集采用OV7670摄像头,OV7670图像传感器体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功
能。通过SCCB 总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率的8位影像数据。设计选用RGB565、
VGA640×480作为输出格式,将相应的寄存器值通过SCCB控制模块写入到寄存器中,并把采集的数据通过AXI4 Stream接口
协议写入到DDR3中。在该设计中,通过硬件描述语言实现SCCB图像控制与图像接收模块的设计。
1.2 PS部分实现的功能部分实现的功能
处理系统PS部分实现的主要功能如下:
(1)运行Ubuntu桌面系统,为上层应用提供操作系统支持;
(2)调用编写的VDMA、HDMI图像显示驱动实现与PL数据交互、桌面系统显示的功能;
(3)实现Qt编写的上层应用程序及网络编程等。
如图1所示,VDMA提供了PL与DDR3存储器进行高速数据传输的机制。VDMA具有两个数据端口:MM2S和S2MM。
MM2S和S2MM的最大数据位宽均为64 bit,缓存区深度为512 B[4]。其中S2MM端口实现图像数据从PL向DDR3存储器传
输,MM2S端口实现图像数据从DDR3存储器向PL传输。ARM处理器可以通过通用接口AXI_GP对VDMA进行控制。
2 拉普拉斯算子滤波算法的实现拉普拉斯算子滤波算法的实现
2.1 拉普拉斯算子滤波算法拉普拉斯算子滤波算法
拉普拉斯算子是图像处理技术中常见的一种增强算子,因为具有旋转不变性、实现简单等特点,被广泛地应用于图像锐化
和高频增强等算法中。图像信号中,高频分量一般对应于图像的边缘轮廓,采用拉普拉斯算子的图像滤波算法能够实现图像锐
评论0