Zedboard实现了算法的硬件化及脱机处理
扫描二维码
随时随地手机看文章
摘 要:本文选择了一种新颖的图像缩放算法进行FPGA硬件实现。该算法基于奇偶分解的思想,具有复杂度低、硬件需求小和缩放效果良好等突出优点。首先利用MATLAB对该算法进行了功能验证,然后用缩放耗时、PSNR、边缘模糊等级和脉冲噪声等指标评估基于该算法图像处理效果。与传统时域算法作对比,对比结果表明该算法在处理效果和运算速度上的优异性。基于Zedboard开发板,运用Vivado HLS高级综合工具将算法的C程序综合成硬件IP,并搭建了包含ARM处理器和VGA等模块的软硬协同验证系统。实验验证了图像缩放算法硬件设计的正确性和实用性。
1. 引言
数字图像处理因其广泛应用于社会生活的各个领域,而成为了研究的热点。图像缩放是数字图像处理中的一项基本而又关键的操作,多数图像与视频帧都是以压缩的格式进行存储和传送,以降低存储资源的占用,提高数据传输的效率。针对不同的应用,用户通常需要不同分辨率的图像。例如,在图像数据传输过程中为节省带宽,则通常需要发送低分辨率的图像,而当接收到图像后,进行显示时又很希望看到高分辨率的图像。尽管存在各种数据压缩软件,但数据的压缩仍是有限的,而且数据的压缩很可能已经对图片造成了一定的损坏,并不能确保图片关键信息的保留。图像缩放算法有很多,总体可分为基于时域和频域两大类算法,在时域图像缩放方法中,主要有最近邻域算法、双线性插值算法和双三次线性插值等。虽然它们在改善图像缩放处理后的失真度上逐渐增强,但其不断下降的运算速度也成为了不容忽视的问题(特别在视频帧放大中,图片的切换频率限制了缩放算法的可执行时间)。
这些算法中,有的通过PC机上的MATLAB、C等高级语言实现,有的基于ARM等嵌入式处理器实现,而有的则是基于FPGA这类芯片进行硬件的实现。由于PC机和ARM属于多任务的操作系统,通过软件编程实现缩放算法是其常用的图像缩放处理手段。系统代码解析和串行执行,以及多任务的切换等因素会严重降低图像缩放效率和实时数据显示,频繁的图像缩放会给系统的正常运行造成相当大的负担。因此,本文重点研究第三种图像缩放实现方法,充分利用FPGA的并行运算、高集成度、可编程和低成本特性,编程实现缩放算法的硬件结构和IP生成,为进一步实现专用图像缩放处理芯片的开发和应用提供帮助,以释放处理器,提高图像缩放质量和效率。
在综合考虑图片处理效果、运算速度和硬件资源需求后,本文选择了由Hoon Yoo和Byong-Deok Choi共同提出的算法[1] ——基于奇偶分解的分段加权插值的图像缩放算法(简称WLI算法)进行硬件实现。
WLI算法借助于奇偶分解的理论,基于16个相关点实现了图像中新点值的确立。本课题基于Xilinx的全可编程器件Zedboard,利用vivado hls高级综合工具编写可综合的c程序,实现了WLI缩放算法的硬件IP设计,利用开发板实际缩放操作验证了硬件缩放的高效率和低时间耗用特征,并通过图像缩放的VGA对比显示实验对设计进行了验证。同时,设计实现的IP也可以为图像处理的SoC复用,降低SoC的开发难度。
2. 图像插值算法及MATLAB仿真 2.1. 传统插值算法本文分别选取了最简单的、基于四个相关点的最近邻插值算法;有二阶线性运算参与的双线性插值算法;以及最复杂多浮点运算的双三次插值运算作为对比算法,通过多种图像质量和效率评价方法,来评估WLI算法的优劣性(具体算法实现参考 [2] 相关内容)。
2.2. WLI算法WLI算法应用奇偶分解的思想,将一维缩放中相关的四个点进行奇偶分解(奇部和偶部的相关点值分解后的关系示例见图1)。从定义上分析,奇部向量在频域图像数据处理中是一个高通滤波结构,相比于偶部向量,它具有更强的噪声。而噪声和高频信号对该部分的影响往往会掩盖该部分对正确缩放的像素点取值的贡献,所以为尽量避免奇部向量中携带的噪声等参量对缩放质量造成损害,对它进行简单的线性化操作,得出公式(1)的处理方案。
因为偶部向量对称的特性,其对缩放点的最终取值具有很大的影响度。直接的线性拟合虽然具有运算简单的特点,但正如图2所示,这会使得图片点值的变化太快,影响视觉效果。为使该部分的取值具有缓慢变化的特征,基于平滑曲线的原型方程是一个很好的选择,但曲线的复杂运算带来的资源耗用往往使算法缩放得不偿失。因此,引文对此部分的曲线公式进行分析讨论,巧妙的引入w参数完成了运算方法的降次和近似,如图2所示,最终得出同样是一次方程的拟合曲线图像插值计算公式(2)。