FPGA图像处理之Shift-RAM Core 生成卷积模板(官方手册原理分析)

这篇具有很好参考价值的文章主要介绍了FPGA图像处理之Shift-RAM Core 生成卷积模板(官方手册原理分析)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、引言

        当我们进行图像处理算法时,进行均值滤波、中值滤波等相关的计算操作时,其中的核心部分应该就是矩阵运算了,需要生成图像像素矩阵,在C语言中,我们可以直接用数组表示,但是在使用FPGA进行图像处理时,verilog却无法实现这样的操作。那么在FPGA设计中,如果需要进行3*3的矩阵运算时又该如何处理呢,在理论上可以有以下三种方法使用:

        1、通过2个或者3RAM的存储来实现3*3像素窗口;

        2、通过2个或者3FIFO的存储来实现3*3像素窗口;

        3、通过2行或者3SHIFT-RAM的存储来实现3*3像素窗口;

        在使用RAMFIFO的进行矩阵运算的时候,其中的设计相对较为麻烦,如需要考虑在换行和换帧时的数据怎么处理。对于我们刚入行的新人来说,采用SHIFT-RAM无疑是更好的选择。

二、SHIFT-RAM

        SHIFT-RAM是一个IP核,在AlteraXilinx平台都有提供,下文以Altera平台的IP核为例进行讲解。SHIFT-RAM也就是移位寄存器,quartus中叫做Shift register(RAM based)它和普通的RAM功能比较相似,都可以进行数据缓存,但是通过IP核的配置,它可以实现数据多周期延时的缓存输出。以下以官方示例进行分析:

FPGA图像处理之Shift-RAM Core 生成卷积模板(官方手册原理分析)

         上图是shift_ram的移位示意图,单看这幅图不能清楚的理解其中的原理,下面就按官方给的例程进行分析,在官方手册上提供了一个案例,配置如下表所示:

FPGA图像处理之Shift-RAM Core 生成卷积模板(官方手册原理分析)

         数据输入输出宽度为8bittaps设置4行,选择每行宽度为3,选择使能和复位,按照这个要求进行仿真会得到如下波形:

FPGA图像处理之Shift-RAM Core 生成卷积模板(官方手册原理分析)

        从中可以看出输入shiftin,使能信号与shiftin对齐,最后出来了taps0xtaps1xtaps2xtaps3x四组数据,其中 shiftout taps3x完全一致。

FPGA图像处理之Shift-RAM Core 生成卷积模板(官方手册原理分析)

FPGA图像处理之Shift-RAM Core 生成卷积模板(官方手册原理分析)

 FPGA图像处理之Shift-RAM Core 生成卷积模板(官方手册原理分析)

FPGA图像处理之Shift-RAM Core 生成卷积模板(官方手册原理分析)

FPGA图像处理之Shift-RAM Core 生成卷积模板(官方手册原理分析)         官方通过以上的示意图对shift ip 核的工作原理进行了解释。可以看出shift_ram的工作方式是移位存储,后一个数据将前一个数据往前推,当填满一行的时候,跳到下一行再继续移位存储。通过这样的方式就可以把输入的 1 串数据变成平行输出的 4 串数据,那么再通过寄存器存储这个值,我们就很容易得到卷积矩阵。然后通过改变IP核的配置,我们就可以得到各种大小的卷积矩阵,用于进行图像算法的处理。

        本人也在学习阶段,有兴趣的朋友可以关注一下公众号,一起无限进步。

                                                

        ( 数据手册和后期资料在这里放出)文章来源地址https://www.toymoban.com/news/detail-409191.html

到了这里,关于FPGA图像处理之Shift-RAM Core 生成卷积模板(官方手册原理分析)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于FPGA的图像灰度处理

            对于图像的灰度处理,原理与基于FPGA的图像反转相同,但算法不同。相交于基于FPGA的图像反转,基于FPGA的图像灰度处理操作时间由于FPGA的并行性,其处理时间与前者相同。虽然工作量大了4倍左右,但处理时间基本相同,在仿真中,仍在5.2ms完成了处理。凸显出

    2024年02月04日
    浏览(39)
  • 【FPGA】分享一些FPGA视频图像处理相关的书籍

      在做FPGA工程师的这些年,买过好多书,也看过好多书,分享一下。         后续会慢慢的补充书评。   【FPGA】分享一些FPGA入门学习的书籍 【FPGA】分享一些FPGA协同MATLAB开发的书籍  【FPGA】分享一些FPGA视频图像处理相关的书籍  【FPGA】分享一些FPGA高速信号处理相关的书

    2024年02月04日
    浏览(39)
  • Matlab+FPGA进行灰度图像处理

    …# Matlab+FPGA进行灰度图像处理(两种方式) * MATLAB主要用于思路验证,转到FPGA的话需要对底层函数逻辑清楚才行,python也能进行matlab在这里做的所有操作,有兴趣可以深入。 1.matlab读取图片显示: 2.matlab灰度反显 3.matlab二值化,将灰度进行黑白划分 matlab把图片转到txt格式,文

    2024年02月08日
    浏览(51)
  • 基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)

    微信公众号上线,搜索公众号 小灰灰的FPGA ,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 源码工程链接 https://download.csdn.net/download/m0_50111463/88529260

    2024年02月10日
    浏览(58)
  • FPGA图像处理仿真实验——sobel算子

            sobel算子是一个离散的一阶差分算子,广泛应用于边缘检测等领域。算法的 应用原理比较简单,可以完成对水平方向和垂直方向的边缘检测。分别用图中的两个卷积模板对图像进行滑动窗口的卷积计算,将卷积模板和图像3*3窗口对应的数据相乘,相乘的结果相加得

    2024年02月17日
    浏览(45)
  • FPGA 上使用 SVM 进行图像处理

    面部识别是一个经常讨论的计算机科学话题,并且由于计算机处理能力的指数级增长而成为人们高度关注的话题。面部识别在机器人、生物安全和汽车工业等许多领域都有广泛的应用,涉及对输入图像应用数学算法,提取不同的特征,表明所提供的图片中是否存在人脸。方向

    2024年03月22日
    浏览(45)
  • 基于FPGA的数字图像处理【1.0】

            最近几年图像处理与机器视觉的发展非常迅速,图像处理领域也被认为是未来几十年最有前途的领域之一。         随着现代图像及视频处理技术的不断发展,人们对图像处理提出了新的要求,图像处理系统的硬件体积越来越小,实时性也越来越好。特别是最

    2024年04月14日
    浏览(35)
  • FPGA图像处理_中值滤波实现(含源码)

    非线性滤波器在通常情况下没有特定的转移函数。一类比较重要的非线性滤波就是统计排序滤波器,统计排序滤波器即对窗口内的像素值进行排序并通过多路选择器选择使用排序后的值,例如中值滤波、最大/最小值滤波等。排序滤波器或者其组合,可以在很多图像处理的场合

    2023年04月15日
    浏览(39)
  • FPGA图像处理仿真实验——均值滤波(FIFO)

            之前的博客中用shift ram做的均值滤波,那篇文章里讲了原理,在这里不进行重复。考虑到shift ram的深度有限,在处理高分辨率图片时可能会收到限制,所以这次采用FIFO来进行均值滤波。FIFO可以看成是一个先进先出的堆栈,有两个独立的读使能信号和写使能信号,

    2024年02月13日
    浏览(39)
  • FPGA|数字图像处理实现口罩识别——二值化

    【写在前面】刚入门小菜鸟,记录一下口罩识别学习过程。参考文件和网址会在文末注明。有错误欢迎指出,也欢迎进行补充~ 原理图如下,二值化对应为红框里的部分 使用的二值化方法是 手动指定一个 阈值 ,通过阈值来进行二值化处理 。(还有一种方法是一个自适应阈值

    2023年04月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包