




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
引导滤波的软硬件协同加速器设计与实现摘要:引导滤波算法被大量用于图像处理领域中,在去雨雪、去雾、前景提取、图像去噪、图像增强、级联采样等方面有很好的处理效果。但是对于实时应用,软件实现难以满足需要。提出了在SDSoC环境下利用软硬件协同开发策略实现引导滤波硬件加速。通过在SDSoC开发环境中调试C语言代码实现引导滤波算法,并将其中影响性能的函数用Xilinx公司开发的Zedboard开发版硬件实现。在设计中,采用了流数据的方法、PS(ProcessingSystem)端和PL(ProgrammableLogic)端协同开发策略,以及软硬件并行、流水线优化等优化方法,提高了加速器的整体性能。实验结果表明,提出的软硬件协同的引导滤波加速器加速比可达16。0引言2010年HEKM等人提出了引导滤波(GuidedFilter)[1]算法。该算法与双边滤波最大的相似之处就是同样具有保持边缘的特性,不同之处在于它还克服了去伪影的影响。该算法被大量用于图像处理领域中,在去雨雪[2]、去雾[3]、前景提取[4]、图像去噪、图像增强、级联采样等方面有很好的处理效果。但是,随着处理图像的尺寸不断扩大,基于CPU处理的引导滤波算法越来越不能满足人们的需求,因此,王新磊等[5]用CUDA实现了引导滤波GPU加速。为使引导滤波能在嵌入式领域达到实时处理,本文提出了基于FPGA对引导滤波实现加速的方法。1引导滤波算法介绍引导滤波理论的基础是局部线性模型。该模型认为:任意函数上的任意一点与该点邻近部分的点可以看成是线性关系,一个复杂的函数可以用很多局部线性函数来表示。若需要求出该函数上某一点的值,只需求出所有包含该点的线性函数的值,并求出这些线性函数值的平均值,这个平均值就是该函数上所求点的值。2引导滤波加速器设计2.1实验环境介绍本文采用Zynq-7000系列的Zedboard开发板[6]作为硬件开发环境,其PS端提供了ARMCortex-A9处理器、512MBDDR3内存空间和外部存储接口。其PL端的XC7Z020CLG481-1EEP芯片提供了可编程逻辑阵列单元,为硬件加速提供了丰富的逻辑资源。本文采用SDSoC[7]作为软件开发环境,它是基于Zynq-7000全可编程芯片在嵌入式系统中的IDE(IntegratedDevelopmentEnvironment)。2.2算法结构设计本文将单通道的图像数据存储在PS端的外部存储中,之后读取数据到内存中。为了获取最大的运算性能,在引导滤波函数调用前分配好算法需要的图像缓冲空间,将内存空间指针以参数形式传递给引导滤波函数,供其使用,之后PS端调用引导滤波函数。本文将引导滤波算法分为两部分,其中一部分是将对算法有较大影响的函数用硬件加速,硬件加速部分将数据传到PL端,PL端将其用硬件逻辑电路实现,对实现的硬件再通过流水线、并行处理和算法重构等优化方法对算法进行优化。处理完数据后,再将数据写回到PS端。最终PS端将处理好的图像存储在外部存储中。算法结构设计如图1所示。
2.3优化方法2.3.1流数据传输为了获取PS端和PL端的最大传输性能,本文使用SDSoC开发环境中的sds_alloc函数[8]在PS端申请连续的物理地址作为图像缓冲区,并在硬件函数声明前插入指导编译器的参数#pragmaSDSdadazero_copy(imgIn[0:rows*cols])和#pragmaSDSdataaccess_pattern(imgIn[0:rows*cols])命令来将图像数据转化为流数据[8]进行传输。2.3.2流水线优化为了增加程序的并发性,流水线优化可以使当前操作没有完成之前就开始执行下一个操作。环境SDSoC的PIPELINE[8,10]优化指令可以对函数及循环进行优化。下面分别对函数的流水线和循环的流水线优化进行说明。(1)函数的流水线操作从图2可以看出,func函数需要3个时钟完成一组操作。若进行两组操作,在没有进行流水线优化的情况下,每次操作顺序执行,最后一次输出需要6个时钟;而经过流水线优化的func函数,每经过1个时钟就可以读取下一组数据,两组操作完成后只需要4个时钟周期就能够输出结果。由此可见,流水线优化可以提高函数的并发性,增加算法的效率。
(2)循环的流水线优化从图3可看出,用循环来对图像像素进行处理,假设每个像素处理时间为30个时钟周期,若处理图像大小为512×512,则未流水线优化前,需要的总时钟个数为7864320个时钟周期;流水线优化后,需要的总时钟个数为262174个时钟周期,性能有了近30倍的提升。
2.3.3并行处理SDSoC环境提供了async和wait指令,使得程序员能够对硬件函数的同步方式进行控制。硬件开始工作后,PS端的async指令会交还CPU的控制权,继续执行PS端的任务,实现软硬件函数并行处理。通过这种方法,可以增加系统的并行性,提高算法的效率。wait命令用来同步数据,使得下一个函数能够成功应用上一个硬件函数的输出结果,防止程序死锁。3实验结果分析本文输入单通道的.bmp格式文件为待处理图像,模板大小选择3×3,引导图像和待处理图像为同一张图像,实验效果如图4所示。
其中,图4(a)为待处理图像和引导图像,图4(b)为经过软硬件协同加速器实现的引导滤波效果图,图4(c)为在PC上用OpenCV库纯软件实现的引导滤波效果图。通过对比可看出,经过软硬件协同加速器实现的引导滤波和在PC上纯软件实现的引导滤波在效果上基本相同。为了比较本文提出的软硬件协同加速器的加速效果,分别测出了在PS端对不同大小图像实现引导滤波算法的帧率值和软硬件协同加速器对不同大小图像实现引导滤波算法的频率值。实验数据如表1所示。
4结束语本文实现了引导滤波的软硬件协同加速器,并利用开发环境SDS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字货币交易所安全审计服务企业制定与实施新质生产力项目商业计划书
- 高清电子相框行业跨境出海项目商业计划书
- 电子钱包企业制定与实施新质生产力项目商业计划书
- 铁路行车规章25课件
- 铁路劳动安全17课件
- 经济法(第五版)教案 第10章 消费者权益保护法律制度
- 八年级上学期物理科技创新计划
- 2025年秋季高校文艺汇演筹备计划
- 《语文》课件-5.2我的母亲
- 汽车设计专业实习成果展示
- 江苏省南京市秦淮区2023-2024学年七年级下学期期末考试语文试题
- DL-T5190.1-2022电力建设施工技术规范第1部分:土建结构工程
- 教师语言与沟通艺术智慧树知到期末考试答案章节答案2024年温州大学
- 新人教版七年级数学上册期末测试卷及答案【全面】
- 施工现场火灾应急处置方案
- 2024中国医药行业人才发展报告-智联招聘-202404
- 企业采购管理手册(大全)
- 课题研究成效公告模板
- 马克思主义与社会科学方法论(研究生政治课程)复习重点
- 《行政监督》课件
- 2023年东南大学健美操理论考试答案
评论
0/150
提交评论