【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

fpga在很多人看来,是一个异类。说它是硬件,却需要编写RTL代码、综合和下载;说它是软件,还需要专门的fpga芯片,综合出来的也是门电路,还会涉及到时序、信号完整性的问题。但是,不管怎么说,fpga在很多领域扮演非常重要的角色。图像处理就是很重要的一个环节。这个时候,有些同学可能就会有疑问,fpga的时钟频率没有比cpu高,为什么可以做到高效率又省电呢?我想可能有这么几个原因。

1、数据并发处理

大家都知道cpu是一个数据、一个数据处理的。但是对于fpga来说, 它可以一个时钟内,并发处理多个数据,而且这个数据同时可以做很多个运算,比如乘加、比较等等,只要没有clock vilation,这一点相信很多朋友都知道。

2、流水线技术

fpga里面处理数据,很多时候需要很多算法一起参与运行,这个时候就需要用到流水线机制。fpga里面的数据都是按行计算的。所以,每一个像素在输出前,可能经历好几个算法,比如灰化、算子、二值化、膨胀、腐蚀等多个运算。这个时候,流水线技术就派上了用场。前一行数据处理算子的时候,后一行数据可以处理灰化,整个过程是并行的,彼此之间没有打扰。

3、边接收边处理

   这一点是最容易被忽略的。传统的软件操作都是数据都准备好了,才能开始处理。而fpga,可以一边从sensor接收数据,一边处理,这部分其实效率非常高。利用数据传输的空隙就可以处理数据,这部分节省的时间非常多,外部传输数据是很浪费时间的。

4、fpga和cpu流水线作业

cpu和fpga擅长的领域不同,fpga擅长简单重复的算法,cpu擅长复杂的算法。因此一幅图片,可以让fpga处理上半部分,cpu处理下半部分,这样也是一个小的流水线,增加图片的处理速度,节约时间。

5、缓存

fpga里面有一些缓存空间,比如可以保存若干行图像数据,这个可以在处理一些算子的时候使用,也可以帮助提高效率。

上面说的都是fpga的优点,其实fpga也有一些缺点的,

1、学习成本高

fpga需要了解数字电路、vivado或者quartus软件很多知识,软件工作者无法享受到fpga带来的好处,这一点影响了fpga的推广。虽然现在学hls的人很多,但是很多人并不会使用。

2、价格

相比较stm32或者其他arm soc,fpga的价格还是略高些,特别是xilinx里面的mpsoc系列,那个价格基本是arm的好几倍。

3、难度

和软件不同,只要有一点c语言基础就可以做,但要做好fpga需要坐很长时间冷板凳的。不管是test bench、system verilog,或者在线的chip scope调试,这些都不是短时间能够解决的。

4、市场供给人少

一个不争的事实时,相比较大量的java工程师,c、c++工程师要少很多。相比较c工程师、嵌入式工程师,fpga的工程师就更少了。要从不多的fpga工程师里面,找到优秀的、合格的候选者,更是难上加难了。

当然,对于特定的算法加速场景,用fpga还是比较适合的。不需要很高的速率,只要选择好了策略,用好传输时间、并发机制和流水线方法,fpga常常会达到很不错的使用效果。有兴趣的同学可以试一试。

随想录(fpga处理图像的优缺点)相关推荐

  1. 基于FPGA的图像浮雕效果实现

    基于FPGA的图像浮雕效果实现 项目简述 算法原理及MATLAB实现 浮雕效果的FPGA实现 FPGA工程代码 下板效果 参考文献 总结 项目简述 为什么要做这个小项目,因为最近正在在学习FPGA开源 ...

  2. 基于FPGA的图像中值滤波原理与实现

    图像中值滤波的FPGA实现 项目简述 中值滤波器原理 中值滤波器的实现 测试模块的代码 仿真结果 下板结果 总结 项目简述 中值滤波器在去除尖端噪声中非常重要,是信号处理中最长用到的滤波器.图像中的一 ...

  3. verilog 算法加速模块设计流程_基于FPGA的图像加速器的设计

    基于 FPGA 的图像加速器的设计 摘 要 介绍了一种基于 FPGA 的图像加速器的设计.本文硬件加速器的实质是通过流水线 设计来减少多余的操作达到加速的目的的, 内存是由 DMA 控制器访问, 之后 ...

  4. 基于FPGA 的图像缩放算法设计

    介绍双线性插值算法来实现图像缩放,FPGA 硬件实现方法,包括图像数据缓冲单元.插值系数生成单元以及插值计算单元等. 图像是人类感知世界的视觉基础,是人类获取信息.表达信息的重要手段.现在研究较多的是 ...

  5. halcon旋转后坐标_基于FPGA的图像旋转设计

    该项目是参加2019届全国大学生FPGA大赛的作品,系统主要实现视频任意角度旋转.利用国产的紫光同创公司的FPGA芯片作为开发平台,视频图像从摄像头实时采集,经过算法旋转后,通过hdmi接口显示.该项 ...

  6. 基于FPGA的图像边缘检测系统设计

    边缘检测算法的实现 Sobel和Prewitt算子都是基于3*3模板的,所以我们再进行边缘检测的时候,也需要产生一个3*3的模板.本次毕业设计产生3*3的模板的办法是,用RAM来存储图像的前两行数据, ...

  7. 【FPGA教程案例44】图像案例4——基于FPGA的图像中值滤波verilog实现,通过MATLAB进行辅助验证

    FPGA教程目录 MATLAB教程目录 -------------------------------------------------------------------------------- ...

  8. FPGA实现图像二值形态学滤波——腐蚀膨胀

    一.二值图像 二值图像(Binary Image)是指图像上的每一个像素只有两种可能的取值或灰度等级状态.简言之,在图像中灰度等级只有两种0或255(黑或白). 二.形态学 形态学,即数学形态学(Ma ...

  9. 基于FPGA的图像均衡处理

    通过对你的MATLAB的程序的仿真,得到了如下的效果: 二.FPGA部分的设计实现注意点 在进行FPGA设计的时候,我们需要主要以下几个方面: 第一:关于图片大小的统一 这里,我们主要对你的直方图均衡 ...

最新文章

  1. 1.IocDI和Spring
  2. SAP PM模块实施难点与重点
  3. 动态规划——最长公共子序列(LCS)
  4. 关于伪静态网站的好处
  5. c++:结构体的应用
  6. 数据库设计的第三范式
  7. 前端学习(2730):重读vue电商网站40之使用vue-table-with-tree-grid
  8. MySQL数据库中的Date,DateTime,int,TimeStamp和Time类型的对比
  9. 电脑无限重启rpc服务器不可用,StarUML启动时候出现System Error. Code:1722. RPC服务器不可用.错误的解决办法...
  10. 我和老公清北毕业,我能接受自己的孩子读三流学校吗?
  11. 成人高考想学计算机专业,成人高考计算机类专业有哪些?
  12. Google Chrome谷歌浏览器清理缓存的常用方法
  13. 知网计算机论文查重查代码,知网查重会查代码么?
  14. 我的博客转到http://wangxin19871010.blog.163.com/
  15. 用 python 写了一个日记本
  16. R语言︱函数使用技巧(循环、if族/for、switch、repeat、ifelse、stopifnot)
  17. 计算机专业开题报告这么写,有效有用还能过
  18. Python实现智能语音播报功能
  19. 禁用服务器网络协议怎么设置,如何在Windows操作系统中启用和禁用DHCP?
  20. 基于51单片机的智能自动晾衣架proteus仿真原理图程序设计

热门文章

  1. 20151217jqueryUI--自动补全工具
  2. Android View.onMeasure方法的理解
  3. 发现凌晨醒来,可以写出平时写不出来的代码
  4. SQL存储过程中QUOTED_IDENTIFIER和ANSI_NULLS
  5. 一款强大的cisco模拟配置、拓扑制作工具
  6. 【小白问题】appendTo()
  7. MVC之LayOut布局页
  8. 《Android深度探索》第一章心得体会
  9. poj3463 最短路和次短路 计数
  10. Js自定义提示框(dialog版本)