引導(dǎo)濾波的軟硬件協(xié)同加速器設(shè)計與實現(xiàn)
出處:電子技術(shù)應(yīng)用 發(fā)布于:2017-11-16 15:20:42
摘 要:引導(dǎo)濾波算法被大量用于圖像處理領(lǐng)域中,在去雨雪、去霧、前景提取、圖像去噪、圖像增強(qiáng)、級聯(lián)采樣等方面有很好的處理效果。但是對于實時應(yīng)用,軟件實現(xiàn)難以滿足需要。提出了在SDSoC環(huán)境下利用軟硬件協(xié)同開發(fā)策略實現(xiàn)引導(dǎo)濾波硬件加速。通過在SDSoC開發(fā)環(huán)境中調(diào)試C語言代碼實現(xiàn)引導(dǎo)濾波算法,并將其中影響性能的函數(shù)用Xilinx公司開發(fā)的Zedboard開發(fā)版硬件實現(xiàn)。在設(shè)計中,采用了流數(shù)據(jù)的方法、PS(Processing System)端和PL(Programmable Logic)端協(xié)同開發(fā)策略,以及軟硬件并行、流水線優(yōu)化等優(yōu)化方法,提高了加速器的整體性能。實驗結(jié)果表明,提出的軟硬件協(xié)同的引導(dǎo)濾波加速器加速比可達(dá)16。
0 引言
2010年HE K M等人提出了引導(dǎo)濾波(Guided Filter)[1]算法。該算法與雙邊濾波的相似之處就是同樣具有保持邊緣的特性,不同之處在于它還克服了去偽影的影響。該算法被大量用于圖像處理領(lǐng)域中,在去雨雪[2]、去霧[3]、前景提取[4]、圖像去噪、圖像增強(qiáng)、級聯(lián)采樣等方面有很好的處理效果。
但是,隨著處理圖像的尺寸不斷擴(kuò)大,基于CPU處理的引導(dǎo)濾波算法越來越不能滿足人們的需求,因此,王新磊等[5]用CUDA實現(xiàn)了引導(dǎo)濾波GPU加速。為使引導(dǎo)濾波能在嵌入式領(lǐng)域達(dá)到實時處理,本文提出了基于FPGA對引導(dǎo)濾波實現(xiàn)加速的方法。

1 引導(dǎo)濾波算法介紹
引導(dǎo)濾波理論的基礎(chǔ)是局部線性模型。該模型認(rèn)為:任意函數(shù)上的任意一點與該點鄰近部分的點可以看成是線性關(guān)系,一個復(fù)雜的函數(shù)可以用很多局部線性函數(shù)來表示。若需要求出該函數(shù)上某一點的值,只需求出所有包含該點的線性函數(shù)的值,并求出這些線性函數(shù)值的平均值,這個平均值就是該函數(shù)上所求點的值。
2 引導(dǎo)濾波加速器設(shè)計
2.1 實驗環(huán)境介紹
本文采用Zynq-7000系列的Zedboard開發(fā)板[6]作為硬件開發(fā)環(huán)境,其PS端提供了ARM Cortex-A9處理器、512 MB DDR3內(nèi)存空間和外部存儲接口。其PL端的XC7Z020 CLG481-1 EEP芯片提供了可編程邏輯陣列單元,為硬件加速提供了豐富的邏輯資源。本文采用SDSoC[7]作為軟件開發(fā)環(huán)境,它是基于Zynq-7000全可編程芯片在嵌入式系統(tǒng)中的IDE(Integrated Development Environment)。
2.2 算法結(jié)構(gòu)設(shè)計
本文將單通道的圖像數(shù)據(jù)存儲在PS端的外部存儲中,之后讀取數(shù)據(jù)到內(nèi)存中。為了獲取的運(yùn)算性能,在引導(dǎo)濾波函數(shù)調(diào)用前分配好算法需要的圖像緩沖空間,將內(nèi)存空間指針以參數(shù)形式傳遞給引導(dǎo)濾波函數(shù),供其使用,之后PS端調(diào)用引導(dǎo)濾波函數(shù)。本文將引導(dǎo)濾波算法分為兩部分,其中一部分是將對算法有較大影響的函數(shù)用硬件加速,硬件加速部分將數(shù)據(jù)傳到PL端,PL端將其用硬件邏輯電路實現(xiàn),對實現(xiàn)的硬件再通過流水線、并行處理和算法重構(gòu)等優(yōu)化方法對算法進(jìn)行優(yōu)化。處理完數(shù)據(jù)后,再將數(shù)據(jù)寫回到PS端。終PS端將處理好的圖像存儲在外部存儲中。算法結(jié)構(gòu)設(shè)計如圖1所示。

2.3 優(yōu)化方法
2.3.1 流數(shù)據(jù)傳輸
為了獲取PS端和PL端的傳輸性能,本文使用SDSoC開發(fā)環(huán)境中的sds_alloc函數(shù)[8]在PS端申請連續(xù)的物理地址作為圖像緩沖區(qū),并在硬件函數(shù)聲明前插入指導(dǎo)編譯器的參數(shù)#pragma SDS dada zero_copy(imgIn[0:rows*cols])和#pragma SDS data access_pattern(imgIn[0:rows*cols])命令來將圖像數(shù)據(jù)轉(zhuǎn)化為流數(shù)據(jù)[8]進(jìn)行傳輸。
2.3.2 流水線優(yōu)化
為了增加程序的并發(fā)性,流水線優(yōu)化可以使當(dāng)前操作沒有完成之前就開始執(zhí)行下一個操作。環(huán)境SDSoC的PIPELINE[8,10]優(yōu)化指令可以對函數(shù)及循環(huán)進(jìn)行優(yōu)化。下面分別對函數(shù)的流水線和循環(huán)的流水線優(yōu)化進(jìn)行說明。
(1)函數(shù)的流水線操作
從圖2可以看出,func函數(shù)需要3個時鐘完成一組操作。若進(jìn)行兩組操作,在沒有進(jìn)行流水線優(yōu)化的情況下,每次操作順序執(zhí)行,輸出需要6個時鐘;而經(jīng)過流水線優(yōu)化的func函數(shù),每經(jīng)過1個時鐘就可以讀取下一組數(shù)據(jù),兩組操作完成后只需要4個時鐘周期就能夠輸出結(jié)果。由此可見,流水線優(yōu)化可以提高函數(shù)的并發(fā)性,增加算法的效率。

(2)循環(huán)的流水線優(yōu)化
從圖3可看出,用循環(huán)來對圖像像素進(jìn)行處理,假設(shè)每個像素處理時間為30個時鐘周期,若處理圖像大小為512&mes;512,則未流水線優(yōu)化前,需要的總時鐘個數(shù)為7 864 320個時鐘周期;流水線優(yōu)化后,需要的總時鐘個數(shù)為262 174個時鐘周期,性能有了近30倍的提升。

2.3.3 并行處理
SDSoC環(huán)境提供了async和wait指令,使得程序員能夠?qū)τ布瘮?shù)的同步方式進(jìn)行控制。硬件開始工作后,PS端的async指令會交還CPU的控制權(quán),繼續(xù)執(zhí)行PS端的任務(wù),實現(xiàn)軟硬件函數(shù)并行處理。通過這種方法,可以增加系統(tǒng)的并行性,提高算法的效率。wait命令用來同步數(shù)據(jù),使得下一個函數(shù)能夠成功應(yīng)用上一個硬件函數(shù)的輸出結(jié)果,防止程序死鎖。
3 實驗結(jié)果分析
本文輸入單通道的.bmp格式文件為待處理圖像,模板大小選擇3&mes;3,引導(dǎo)圖像和待處理圖像為同一張圖像,實驗效果如圖4所示。

其中,圖4(a)為待處理圖像和引導(dǎo)圖像,圖4(b)為經(jīng)過軟硬件協(xié)同加速器實現(xiàn)的引導(dǎo)濾波效果圖,圖4(c)為在PC上用OpenCV庫純軟件實現(xiàn)的引導(dǎo)濾波效果圖。通過對比可看出,經(jīng)過軟硬件協(xié)同加速器實現(xiàn)的引導(dǎo)濾波和在PC上純軟件實現(xiàn)的引導(dǎo)濾波在效果上基本相同。
為了比較本文提出的軟硬件協(xié)同加速器的加速效果,分別測出了在PS端對不同大小圖像實現(xiàn)引導(dǎo)濾波算法的幀率值和軟硬件協(xié)同加速器對不同大小圖像實現(xiàn)引導(dǎo)濾波算法的頻率值。實驗數(shù)據(jù)如表1所示。

4 結(jié)束語
本文實現(xiàn)了引導(dǎo)濾波的軟硬件協(xié)同加速器,并利用開發(fā)環(huán)境SDSoC所提供的優(yōu)化指令對硬件進(jìn)行了性能優(yōu)化。與CUDA實現(xiàn)的引導(dǎo)濾波相比,性能雖有所不及,但加速效果明顯,并在低功耗及開發(fā)周期上優(yōu)勢大于CUDA。本文提出的軟硬件協(xié)同加速器可直接用于內(nèi)置CPU和FPGA的嵌入式系統(tǒng)中,縮短了嵌入式工程師開發(fā)周期,提高了系統(tǒng)整體性能。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 信號處理經(jīng)典問題:如何設(shè)計和實現(xiàn)自適應(yīng)濾波器?2026/3/12 10:26:58
- 諧波治理與電能質(zhì)量:有源電力濾波器(APF)原理與應(yīng)用2026/3/11 10:18:23
- 音頻D類功放的關(guān)鍵:輸出LC濾波器設(shè)計與電磁兼容2026/3/9 14:34:32
- 集成無源器件(IPD)技術(shù):如何實現(xiàn)超小型化濾波器2026/3/2 11:15:29
- 微波濾波器設(shè)計入門:從耦合諧振器理論到仿真建模2026/2/27 11:18:25









