深刻认识shift_ram IP core——图像处理学习笔记

  在进行图像处理算法中,往往需要生成图像像素矩阵,这对于C语言来说可以直接用数组表示,但是对于verilog来说便不是那么容易了,硬件描述语言不比软件,它的核心不再算法,而是在于设计思想,加速硬件。在进行图像的滤波算法时,需要生成3x3矩阵,而altera的IP shift_ram 简直就是为矩阵运算而生的。下面便进行shift_ram的学习。

  手册还是尽量看英文原版的比较好,刚开始是会比较痛苦,看习惯了就会发现,就是那么一些熟悉的单词,句子也很好理解,比较手册又不是文章。

  这段话的意思是,这个IP支持一个时钟周期移位一个或多个bit的数据,位宽是可以设置的。

  下面这个图是shift_ram的移位示意图,开始我一直以为是这个IP每存储三个数据就会进行移位到下一行,如果这样想当一行图像数据传过来的时候,显然如果是均值滤波的话,这是将第一行的数据进行了取中值操作,这样显然是不符合滤波的原理的。那么从这个图上所表达的貌似就是这个意思,为什么会出现这种矛盾。这也是一直困惑我的地方,还是手册没有好好看,手册上说的很清楚,图下一幅图所示。

  看Note所表明的,这里设置的行数是4行,每行的distance是3,所以便出现了这样的移位寄存,所以手册还是要仔细阅读的,我刚开始就是因为闲手册太麻烦便草草了事,后来实践证明,还是等弄清楚原理在下手操作,磨刀不误砍柴工。

  当然手册中也给了仿真例程

  数据输入输出宽度为8bit,设置4行,选择每行宽度为3,添加使能和复位

  如上图顺序可以容易看出,shift_ram的工作方式是移位存储,后一个数据将前一个数据往前推,当填满一行的时候,跳到下一行再继续移位存储,相应的第一行的数据填满之后,会填上矩阵的第一行的数据,滤波是同时的,如果进行均值滤波的话显然这样目标像素会是0,以此类推,第二行移位存储完成,刚开始第一行的每一个像素点是目标像素,但是第三行还没有数据,所以第一行的目标像素滤波后显然是不准确的,等到把第三行数据填满后,进行原本第二行的滤波,这时目标像素周围均有数据,所以均值滤波会使图像的边缘不清楚。

  这是将每一行的宽度设置成3,如果将宽度设置为640,800等分辨率的宽度,那么生成3x3矩阵岂不是十分方便。同样的还可以生成5x5、7x7等矩阵用于图像处理的算法研究。

  对于硬件进行图像处理的算法研究只能进行一些简单的算法处理,对于更加复杂的算法处理,还是要在软件上实现。最近了解到卷积神经网络(CNN),在人工智能领域异常火爆,基于大数据的机器学习,深度学习,FPGA最擅长的就是高速处理数据,在后大数据时代,我相信一定会有FPGA的一个重要地位。

  转载请注明出处:NingHeChuan(宁河川)

  原文地址:http://www.cnblogs.com/ninghechuan/p/6789399.html

时间: 2024-09-30 07:05:02

深刻认识shift_ram IP core——图像处理学习笔记的相关文章

【转】TCP/IP详解学习笔记(二)

TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统路由表. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface192.168.11.0    *               255.

TCP/IP详解学习笔记

TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 TCP/IP详解学习笔记(6)-UDP协议 TCP/IP详解学习笔记(7)-广播和多播,IGMP协议 TCP/IP详解学习笔记(8)-DNS域名系统 TCP/IP详解学习笔记(9)-TCP协议概述 TCP

Nani_xiao的图像处理学习笔记:透视变换(二):X,Y方向校正原理

接着上一篇进行,上一篇为: Nani_xiao的图像处理学习笔记:透视变换(一) 这里采用一点透视投影 X 方向校正 图2 是透视投影的灭点原理图.在不考虑其他畸变的情况下,边ab 和边cd 平行于X 轴, 而边ac 和边bd 则和X 轴成一定的夹角.根据a .b .c .d 点的图像坐标,可以求出透视投影的灭点e 的坐标(mx , my)(在图像坐标系下). 然后根据透视缩小效应, 对其进行反运算, 进行X 方向的校正.在X 方向的校正中, 可以选择图像高度(0- H - 1)任意一条水平线的

Nani_xiao的图像处理学习笔记:透视变换(三):校正步骤

接着上两篇进行: Nani_xiao的图像处理学习笔记:透视变换(一) Nani_xiao的图像处理学习笔记:透视变换(二):X,Y方向校正原理 图像透视变换校正步骤为: 1.      选取控制点的坐标: 2.      如果控制点存在倾斜现象, 则进行Y方向和X 方向错切: 3.      计算灭点的坐标(mx ,my ): 4.      进行X 方向的校正, 并输出校正后的图像: 5.      进行Y方向的校正, 并输出校正后的图像. 这里先把步骤列出,以后再根据实际效果补图

Asp.Net Core WebApi学习笔记(四)-- Middleware

Asp.Net Core WebApi学习笔记(四)-- Middleware 本文记录了Asp.Net管道模型和Asp.Net Core的Middleware模型的对比,并在上一篇的基础上增加Middleware功能支持. 在演示Middleware功能之前,先要了解一下Asp.Net管道模型发生了什么样的变化. 第一部分:管道模型 1. Asp.Net管道 在之前的Asp.Net里,主要的管道模型流程如下图所示: 请求进入Asp.Net工作进程后,由进程创建HttpWorkRequest对象

TCP/IP协议组学习笔记

TCP/IP协议族学习笔记: 一.基础概念: (1)TCP(Transmission Control Protocol) 传输控制协议. (2)IP(Internet Protocol)网际协议.IP是一种不可靠的无连接数据协议,一种尽最大努力交付的服务. (3)ISP(Internet Service Provider)因特网服务提供者. (4)ISO 国际标准化组织. (5)IEEE 电气和电子工程学会. (6)W3C 万维网联盟. (7) OMA 开放移动联盟. (8)RFC(Reques

TCP/IP详解学习笔记 这位仁兄写得太好了.(转载)

TCP/IP详解学习笔记   这位仁兄写得太好了 TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/204448.aspx TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器 TCP/IP详解学习笔记(12)-TCP的超时与重传TCP/IP详解学习笔记(11)-TCP交互数据流,成块数据流 TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着

数字图像处理学习笔记之一 DIP绪论与MATLAB基础

写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同时学习过程中会参考网络学习资源.对于数字图像处理的学习不可能仅仅依靠作者所写的这一系列笔记,而是需要花时间和精力学习,本文只可作参考和交流之用.由于涉及此学科不久,在学习过程中难免存在错误,请读者不吝赐教. 数字图像处理绪论 数字图像处理(DIP)的研究目标和处理对象: DIP的研究目标是获取信息,处理对象是

TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

转http://blog.csdn.net/goodboy1881/article/details/668556 —————————————————————————————————————————————————————— 把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息. 1.IP协议 IP协议是TCP/IP协议的核心,所有的TCP,UD