网站首页 > 技术文章 正文
将图像处理的算法转换为FPGA系统设计的过程称为算法映射。映射过程中首目标便是确定系统设计的结构,在图像处理中常用的两中系统设计结构:流水线结构;并行阵列结构。
流水线设计基本概念
流水线处理源自现代工业生产装配线上的流水作业,是指将待处理的任务分解为相对独立的、可以顺序执行的而又相互关联的一个个子任务。流水线处理是高速设计中的一个常用设计手段,如果某个设计的处理流程分为若干步骤,并且整个数据处理是“单流向”的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,那么可以考虑采用流水线设计方法来提高系统频率。流水线设计结构如图所示。
其基本结构是将适当划分的n个操作步骤单流向串联起来。流水线操作的最大特点是数据流在各个步骤的处理从时间上看是连续的顺序操作,与此同时各个步骤又是同时并行的在运作。
在处理器架构上,一个单核处理器只能一次处理一个任务,是顺序的执行,如要实现并行操作需要多个处理器来执行。
FPGA中典型的流水线设计
流水线处理采用面积换取速度的思想,可以大大提高电路的工作频率,尤其对于图像处理任务中的二维卷积运算、FIR及FFT滤波器等,采用流水线设计可以保证一个时钟输出一个像素,相对于全并行处理电路占用资源又不会太多。对于大部分的图像处理任务而言,处理过程基本上也是一个“串行”的处理思路。因此,流水线设计无疑是最好的设计方式。如下图所示是一个典型的图像处理任务流程图与图像处理中的典型流水线结构。
本处理任务也是一个典型的图像处理任务。首先,我们从CCD或CMOS传感器得到需要处理的视频流输入Video Input,并通过视频捕获模块Video Capture将输入视频同步为本地视频流。这些视频流“无等待”地流入下一个处理单元Chroma Resample进行色度重采样和空间变换,经过预处理Pre Filter和指定的处理算法Image Process后(例如预滤波、分割、目标识别、Alpha混合等),转换为视频流输出Video Output。
在这个过程中,输入视频流和输出视频流是连续的,流水线结构也保留了这种可能性。每一个处理单元独立为一块单独的电路,与其它处理单元同时运行,提高了速度也降低了设计的复杂度。
并行阵列
在并行阵列型电路中,多组并行排列的子电路同时接收整体数据的多个部分进行并行计算。并行阵列型电路中的子电路本身可以是简单的组合电路,也可以是复杂的时序电路例如上面提到的流水线型电路。如果受逻辑资源限制,无法同时处理全部数据,那么也可以依次处理部分数据直到完成全部数据的处理,如图所示。
和流水线共享电路的思路不同,并行阵列电路对于每个处理数据都生成一个处理电路,这无疑更大地提高了电路的处理速度,但是也带来了更大的资源消耗,是用面积换取速度原则的又一体现。如果系统设计对资源消耗相对不敏感,但是又需要较快的处理速度时,那么我们会选择并行结构来完成。
并行阵列的一个典型应用是多通道像素同时进行处理,对一个串行输入的RGB通道或是YCbCr通道的视频流,首先做一个串并转换,接着复制处理逻辑对三个通道同时做处理。这样理论上可以得到3倍的速度提升。
精彩推荐
至芯科技FPGA就业培训班、开启你的高薪就业之旅!9月1号北京开课、选择至芯、成就未来!欢迎咨询试听!
RISC CPU设计与验证
MIPI、LVDS、RGB、HDMI等接口对比
扫码加微信邀请您加入FPGA学习交流群
欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!
点个在看你最好看
- 上一篇: FSP7二手频谱仪RS FSP13 fsp40频谱仪
- 下一篇: 示波器FFT查看信号频谱和设置的方法
猜你喜欢
- 2024-11-03 正点原子开拓者FPGA开发板资料连载第五十二章 低通滤波器实验
- 2024-11-03 图像频域及滤波处理 图像频域滤波变换的实验报告
- 2024-11-03 低通滤波和高通滤波的截止频率设定思路
- 2024-11-03 「科唛小课堂」如何解决录制的爆音、喷麦声?
- 2024-11-03 「正点原子NANO STM32开发板资料连载」第三十二章 DSP 测试实验
- 2024-11-03 最好的频谱分析仪基础知识 频谱分析仪的作用与性能
- 2024-11-03 OER的几何重构 几何分解重构图
- 2024-11-03 关于分频音箱问题的非专业理想解决方案
- 2024-11-03 STM32单片机从零开始使用教程(八) FIR滤波器
- 2024-11-03 深入剖析C++音频信号处理:ASL库的高级应用与实践
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)