论文部分内容阅读
随着科学技术的发展与经济水平的提高,图像处理在计算机领域发挥着越来越重要的作用。然而随着图像处理算法的时间与空间复杂度的提高,需要耗费的资源相应越来越多,这使得在软件上实现的算法效率低下,而且导致在采用软件实现图像算法时速度过慢。经测试,SIFT算法在Core(TM)i5-4210H处理器下运行速度只有0.4f/s(帧/秒)左右。因此提升算法速度显得尤为迫切,尤其在嵌入式领域中,随着图像处理应用的商业化,单纯用软件实现算法,已不能在实时性上满足企业要求。FPGA以其出色的并行处理能力被应用在各行业中,并且具有高适应性、低功耗与低成本等诸多优点。因此,异构多核架构平台应运而生,例如赛灵思公司研发的Zynq-7000系列平台,该平台将ARM处理器与并行计算能力较强的FPGA逻辑器件组合在一起,尤为适用于功能丰富、复杂度高的图像算法。该平台还具有较高的灵活性,其既能在灵活开发上体现出较大优势,又能加快嵌入式开发流程,这对图像的嵌入式应用建立了良好的基础。通过Zynq平台还可构建出一套完整的图像处理系统,既可以通过FPGA逻辑资源带来较快的计算速度,又能利用ARM处理器来兼顾多样化的功能,这将对嵌入式平台下高级图像处理系统带来更大的性能提升。本文以SIFT(Scale-invariant feature transform)算法与Sobel算法为例,分析了算法的计算量与I/O量,结合Zynq平台的特性合理规划了软、硬件的计算任务。通过定位算法的瓶颈环节,运用了流水化、并行化、滑窗思想、重构函数等方法进行加速优化,提升了关键模块的运行速度;同时通过Vivado搭建了适用于SDSoC的硬件平台;并且通过使用SDSoC开发环境实现了ARM与FPGA之间的高速数据通路以及两种算法的硬件加速,构建了一套完整的图像处理系统。最终,实现了SIFT算法相比于软件方式15倍以上的加速,Sobel算法相比于软件方式11倍以上的加速,这使得本系统不仅可以作为加速图像处理的通用平台,还可以借助于PS与PL端之间的高速数据通路广泛的应用于各个领域,甚至实现商业化用途。