论文部分内容阅读
在进行图像处理时,图像的边缘通常更为关键,因为在图像中要提取的最重要的目标通常包含在边缘中,并且在将图像转换为像素后,可以找到边缘信息中最具代表性的点的集合。无论图像的压缩或图像的特征提取如何,都必须在处理下一操作之前检测目标图像的边缘。因此,边缘检测技术的应用非常广泛,并且需要应用在所涉及的图像处理领域中。所有图像区域都需要检测其边缘,这是一种非常常见的技术,因此边缘检测也是实用的。本文通过采用OV5640摄像头对图像数据进行采集,将采集到的图像数据存储到SDRAM DDR3存储器芯片中,通过4个异步FIFO作为数据乒乓操作的缓存器,然后在硬件开发平台FPGA上,实现Sobel算法模块对SDRAM DDR3中缓存的图像数据进行卷积运算,实现了边缘检测处理后的效果,最后通过HDMI显示模块将处理后的图像数据显示到HDMI液晶显示器上,这一系统主要模块包括OV5640、FPGA、SDRAM DDR3和HDMI等模块共同组成了图像边缘检测系统。本文最开始设计的初衷就是为了解决快速处理边缘检测图像算法的问题,但是目前整体上来看无论是利用上位机对图像进行处理,还是利用多CPU对图像进行边缘处理,处理算法的速度不是太快,加上在硬件上对浮点数进行处理比较麻烦,因此为了更好地满足实时性的要求,本文对算法进行了异构设计,对边缘检测算法进行加速,用底层C/C++的代码实现改进的Sobel算法,再对算法进行优化。本文主要从速度方面优化,没有进行面积即资源的优化,采用的方式是流水线的方式,从速度角度上进行优化,通过综合后的报告对比可以看出Latency和Interval比优化前减少了。最后对C/C++和RTL代码协同仿真,生成的新的IP可以被用在Vivado项目中,即封装成一个IP。搭建完整个项目后,用HDMI液晶显示器进行显示,最后达到设计的效果。