-
计算结构设计
把算法转化以产生可用的计算框架:识别算法结构→设计计算结构→系统实现。
【识别算法结构】:1)将尽可能多的操作转化为流水线、流处理从而消除中间的帧缓存器(转化标准:任何可以按照图像窗口扫描的顺序处理数据来实现的操作都可以使用流处理。2)许多循环中的迭代过程可以设计成并行的,通过把输入数据分隔到不同的硬件处理器可以加速计算。3)在一些算法中考虑重新设置操作的顺序,甚至去掉一些步骤来简化处理的复杂性。4)通过对数据编码来降低数据量,从而提高处理速度。eg.数据进行游程编码后将整个游程的像素作为一组进行处理,而非单个像素。5)用一些功能相似的操作来代替一个或多个图像处理操作,最后得到的算法只要功能相似即可,没必要完全等价。
【设计算法结构隐含的计算结构】:进一步转换算法以产生可以有效利用具有并行性的高效利用资源的硬件实现架构。 -
硬件和软件的划分
【硬件】
实现内容:操作数据量大、采用并行结构的低级图像处理。
实现方式:FPGA / 实现定制指令FPGA作为硬件加速模块。
【软件】
实现内容:操作数据量小、控制模式复杂的高级图像处理,具有可变长度循环的任务、需要大量资源的管理复杂的通信协议。
实现方式:独立CPU / 作为硬核集成在FPGA上 / 使用FPGA可编程逻辑作为一个软核 / 在FPGA上实现的可用标准处理器。
无论怎样划分层级,软硬件之间的通信机制和接口是基本的,必要设计同步和数据交换机制来促进数据流的平滑。 -
映射到FPGA资源
无论是算数还是逻辑函数都是使用FPGA中可配置逻辑块作为组合硬件来实现的。
【加减法】用电路实现进位传递,用于行波进位或更高级的前视进位或者进位选择设计(?Hauck,2000)。
eg.https://blog.csdn.net/Mxdon_on/article/details/109601671?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171197243016800215036051%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171197243016800215036051&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-7-109601671-null-null.nonecase&utm_term=%E8%A1%8C%E6%B3%A2%E8%BF%9B%E4%BD%8D&spm=1018.2226.3001.4450
【乘法】用移位和加法来实现。可以使用FPGA专用进位逻辑(?)。并行乘法器可以设计成流水线结构来增加吞吐量。
eg.https://blog.csdn.net/HFUT90S/article/details/129684013?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171197380516800186546200%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=171197380516800186546200&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogbaidu_landing_v2~default-4-129684013-null-null.nonecase&utm_term=%E5%B9%B6%E8%A1%8C%E4%B9%98%E6%B3%95%E5%99%A8&spm=1018.2226.3001.4450
【除法】用移位和减法来产生商的每一位。使用不可恢复除法(?Bailey,2006)可以提高算法的速度
eg.https://blog.csdn.net/lum250/article/details/125111667?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171197386816800222892694%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171197386816800222892694&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-8-125111667-null-null.nonecase&utm_term=%20%E4%B8%8D%E5%8F%AF%E6%81%A2%E5%A4%8D%E9%99%A4%E6%B3%95&spm=1018.2226.3001.4450
一些FPGA内部的特有硬件,例如移位寄存器、DSP块及除法器等,在实际应用时可以例化这些硬件模块来代替用其他资源生成的描述架构
【2024第11周】<基于FPGA的嵌入式图像处理系统设计>-算法映射
于 2024-03-31 18:35:35 首次发布
本文探讨了如何通过识别算法结构、设计计算结构,将算法转化为适合硬件实现的形式,特别关注流水线处理、并行计算、数据编码和FPGA在低级和高级图像处理中的应用,包括乘法、除法等运算的硬件实现方法。
摘要由CSDN通过智能技术生成