新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA视频图像的Canny算法加速器的设计

基于FPGA视频图像的Canny算法加速器的设计

作者:时间:2012-07-25来源:网络收藏

2.2 的地址产生
在系统的连续处理过程当中,没有专门的等待时间用来对数据进行读取和存储,这两类运算都是并行进行的。因此需要具有自动选通的读/写地址电路。对于一幅512×512图像来说,从偏移值0开始计数,一次加1,以便于从内存中读一组4个像素值,把偏移地址和基地址加起来形成前一行的像素地址,把它加上512/4就形成当前行的读地址,再加上1 024/4就形成了下一行的读地址。对于写地址来说,从偏移值512/4开始计数,一次加1形成每次的写地址。地址发生器的部分代码如下:
f.JPG

3 算法加速设计
为了使得整个算法的计算速度得到提高,使算法既满足高速要求也不会耗费大量的硬件资源,本文对高斯滤波和梯度强度计算两个任务模块做了加速设计组合,流程图如图3所示。

本文引用地址:http://www.eepw.com.cn/article/190119.htm

g.JPG


高斯滤波器采用与Sobel加速器相似的设计原理,具有流水线的加速功能。图中RAM是中自带的Block RAM块,其大小配置为仅存储当前被处理图像的三行像素值,对于512×512的8位图像来说RAM应配置为512×3×8 b。因为高斯滤波的存储和Sobel加速器在读取的时候都是每4个像素点即32 b数据来进行,所以配置为32位宽的同时读写操作的双口RAM。
梯度运算之后,进行非极大值的抑制,在非极大值抑制之前需要计算梯度的方向。梯度方向的计算分为四个方向:水平、垂直、45°方向及135°方向,且每个方向上都包含两个45°的范围。通过Ex和Ey的比值及正负可以确定梯度方向落在上面规定的四个方向之一。判断四个方向的具体如下:
h.JPG
中,直接做除法运算是很复杂的过程;为了减少资源的开销,把式(5)~式(8)中的除法变换成乘法,再做比较来判断梯度的方向。对于tan 22.5°和tan 67.5°做如下处理:
i.JPG
非极大值的抑制在系统中通过选择器和比较器来实现。根据输入的梯度值和梯度方向,用非极大值抑制条件(式(5)~(8))和高低阈值条件对输出的数据进行比较选择,强边缘点输出为255,弱边缘点输出为0。由于硬件流水线的特点,边界像素的计算结果是无效的,所以将边界上的行列都置为0。重复以上步骤,直到整幅图像扫描完成,最终得出边缘图像。

fpga相关文章:fpga是什么




评论


相关推荐

技术专区

关闭