引導(dǎo)濾波的軟硬件協(xié)同加速器設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
引導(dǎo)濾波的軟硬件協(xié)同加速器設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
引導(dǎo)濾波的軟硬件協(xié)同加速器設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
引導(dǎo)濾波的軟硬件協(xié)同加速器設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
引導(dǎo)濾波的軟硬件協(xié)同加速器設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

引導(dǎo)濾波的軟硬件協(xié)同加速器設(shè)計(jì)與實(shí)現(xiàn)摘要:引導(dǎo)濾波算法被大量用于圖像處理領(lǐng)域中,在去雨雪、去霧、前景提取、圖像去噪、圖像增強(qiáng)、級(jí)聯(lián)采樣等方面有很好的處理效果。但是對(duì)于實(shí)時(shí)應(yīng)用,軟件實(shí)現(xiàn)難以滿(mǎn)足需要。提出了在SDSoC環(huán)境下利用軟硬件協(xié)同開(kāi)發(fā)策略實(shí)現(xiàn)引導(dǎo)濾波硬件加速。通過(guò)在SDSoC開(kāi)發(fā)環(huán)境中調(diào)試C語(yǔ)言代碼實(shí)現(xiàn)引導(dǎo)濾波算法,并將其中影響性能的函數(shù)用Xilinx公司開(kāi)發(fā)的Zedboard開(kāi)發(fā)版硬件實(shí)現(xiàn)。在設(shè)計(jì)中,采用了流數(shù)據(jù)的方法、PS(ProcessingSystem)端和PL(ProgrammableLogic)端協(xié)同開(kāi)發(fā)策略,以及軟硬件并行、流水線優(yōu)化等優(yōu)化方法,提高了加速器的整體性能。實(shí)驗(yàn)結(jié)果表明,提出的軟硬件協(xié)同的引導(dǎo)濾波加速器加速比可達(dá)16。0引言2010年HEKM等人提出了引導(dǎo)濾波(GuidedFilter)[1]算法。該算法與雙邊濾波最大的相似之處就是同樣具有保持邊緣的特性,不同之處在于它還克服了去偽影的影響。該算法被大量用于圖像處理領(lǐng)域中,在去雨雪[2]、去霧[3]、前景提取[4]、圖像去噪、圖像增強(qiáng)、級(jí)聯(lián)采樣等方面有很好的處理效果。但是,隨著處理圖像的尺寸不斷擴(kuò)大,基于CPU處理的引導(dǎo)濾波算法越來(lái)越不能滿(mǎn)足人們的需求,因此,王新磊等[5]用CUDA實(shí)現(xiàn)了引導(dǎo)濾波GPU加速。為使引導(dǎo)濾波能在嵌入式領(lǐng)域達(dá)到實(shí)時(shí)處理,本文提出了基于FPGA對(duì)引導(dǎo)濾波實(shí)現(xiàn)加速的方法。1引導(dǎo)濾波算法介紹引導(dǎo)濾波理論的基礎(chǔ)是局部線性模型。該模型認(rèn)為:任意函數(shù)上的任意一點(diǎn)與該點(diǎn)鄰近部分的點(diǎn)可以看成是線性關(guān)系,一個(gè)復(fù)雜的函數(shù)可以用很多局部線性函數(shù)來(lái)表示。若需要求出該函數(shù)上某一點(diǎn)的值,只需求出所有包含該點(diǎn)的線性函數(shù)的值,并求出這些線性函數(shù)值的平均值,這個(gè)平均值就是該函數(shù)上所求點(diǎn)的值。2引導(dǎo)濾波加速器設(shè)計(jì)2.1實(shí)驗(yàn)環(huán)境介紹本文采用Zynq-7000系列的Zedboard開(kāi)發(fā)板[6]作為硬件開(kāi)發(fā)環(huán)境,其PS端提供了ARMCortex-A9處理器、512MBDDR3內(nèi)存空間和外部存儲(chǔ)接口。其PL端的XC7Z020CLG481-1EEP芯片提供了可編程邏輯陣列單元,為硬件加速提供了豐富的邏輯資源。本文采用SDSoC[7]作為軟件開(kāi)發(fā)環(huán)境,它是基于Zynq-7000全可編程芯片在嵌入式系統(tǒng)中的IDE(IntegratedDevelopmentEnvironment)。2.2算法結(jié)構(gòu)設(shè)計(jì)本文將單通道的圖像數(shù)據(jù)存儲(chǔ)在PS端的外部存儲(chǔ)中,之后讀取數(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)濾波算法分為兩部分,其中一部分是將對(duì)算法有較大影響的函數(shù)用硬件加速,硬件加速部分將數(shù)據(jù)傳到PL端,PL端將其用硬件邏輯電路實(shí)現(xiàn),對(duì)實(shí)現(xiàn)的硬件再通過(guò)流水線、并行處理和算法重構(gòu)等優(yōu)化方法對(duì)算法進(jìn)行優(yōu)化。處理完數(shù)據(jù)后,再將數(shù)據(jù)寫(xiě)回到PS端。最終PS端將處理好的圖像存儲(chǔ)在外部存儲(chǔ)中。算法結(jié)構(gòu)設(shè)計(jì)如圖1所示。

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

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

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

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

4結(jié)束語(yǔ)本文實(shí)現(xiàn)了引導(dǎo)濾波的軟硬件協(xié)同加速器,并利用開(kāi)發(fā)環(huán)境SDS

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論