《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 引導濾波的軟硬件協同加速器設計與實現
引導濾波的軟硬件協同加速器設計與實現
2016年電子技術應用第11期
劉 聲,韓俊剛,韓 帥
西安郵電大學 計算機學院,陜西 西安710121
摘要: 引導濾波算法被大量用于圖像處理領域中,在去雨雪、去霧、前景提取、圖像去噪、圖像增強、級聯采樣等方面有很好的處理效果。但是對于實時應用,軟件實現難以滿足需要。提出了在SDSoC環境下利用軟硬件協同開發策略實現引導濾波硬件加速。通過在SDSoC開發環境中調試C語言代碼實現引導濾波算法,并將其中影響性能的函數用Xilinx公司開發的Zedboard開發版硬件實現。在設計中,采用了流數據的方法、PS(Processing System)端和PL(Programmable Logic)端協同開發策略,以及軟硬件并行、流水線優化等優化方法,提高了加速器的整體性能。實驗結果表明,提出的軟硬件協同的引導濾波加速器加速比可達16。
中圖分類號: TP391
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.11.010
中文引用格式: 劉聲,韓俊剛,韓帥. 引導濾波的軟硬件協同加速器設計與實現[J].電子技術應用,2016,42(11):44-45,48.
英文引用格式: Liu Sheng,Han Jungang,Han Shuai. The accelerator design and implementation using hardware/software co-design for guided filter[J].Application of Electronic Technique,2016,42(11):44-45,48.
The accelerator design and implementation using hardware/software co-design for guided filter
Liu Sheng,Han Jungang,Han Shuai
School of Computer,Xi′an University of Posts and Telecommunications,Xi′an 710121,China
Abstract: The guided filter is widely used in image processing fields such as removal rain and snow, removal smog, foreground extraction, image denoising, image enhancement, cascade sampling and so on. But it is hard to satisfy real time requirement base on software. In the proposed method, the guided filter is speed up based on SDSoC environment using hardware/software co-design approach. Guided filter algorithm is implemented by debugging C language in SDSoC environment, and then some functions which impact the performance are implemented by hardware using the Zedboard from Xilinx company. The algorithm uses the method of data stream, PS(Processing System) and PL(Programmable Logic) co-design strategy, parallelism of hardware and software, pipeline optimization, reconstruction sequence of algorithm and the combination of line buffer and window buffer. The experimental results show that the accelerator′s speed-up ratio can be 16.
Key words : guided filter;SDSoC;hardware/software co-design;FPGA

0 引言

    2010年HE K M等人提出了引導濾波(Guided Filter)[1]算法。該算法與雙邊濾波最大的相似之處就是同樣具有保持邊緣的特性,不同之處在于它還克服了去偽影的影響。該算法被大量用于圖像處理領域中,在去雨雪[2]、去霧[3]、前景提取[4]、圖像去噪、圖像增強、級聯采樣等方面有很好的處理效果。

    但是,隨著處理圖像的尺寸不斷擴大,基于CPU處理的引導濾波算法越來越不能滿足人們的需求,因此,王新磊等[5]用CUDA實現了引導濾波GPU加速。為使引導濾波能在嵌入式領域達到實時處理,本文提出了基于FPGA對引導濾波實現加速的方法。

1 引導濾波算法介紹

    引導濾波理論的基礎是局部線性模型。該模型認為:任意函數上的任意一點與該點鄰近部分的點可以看成是線性關系,一個復雜的函數可以用很多局部線性函數來表示。若需要求出該函數上某一點的值,只需求出所有包含該點的線性函數的值,并求出這些線性函數值的平均值,這個平均值就是該函數上所求點的值。

2 引導濾波加速器設計

2.1 實驗環境介紹

    本文采用Zynq-7000系列的Zedboard開發板[6]作為硬件開發環境,其PS端提供了ARM Cortex-A9處理器、512 MB DDR3內存空間和外部存儲接口。其PL端的XC7Z020 CLG481-1 EEP芯片提供了可編程邏輯陣列單元,為硬件加速提供了豐富的邏輯資源。本文采用SDSoC[7]作為軟件開發環境,它是基于Zynq-7000全可編程芯片在嵌入式系統中的IDE(Integrated Development Environment)。

2.2 算法結構設計

    本文將單通道的圖像數據存儲在PS端的外部存儲中,之后讀取數據到內存中。為了獲取最大的運算性能,在引導濾波函數調用前分配好算法需要的圖像緩沖空間,將內存空間指針以參數形式傳遞給引導濾波函數,供其使用,之后PS端調用引導濾波函數。本文將引導濾波算法分為兩部分,其中一部分是將對算法有較大影響的函數用硬件加速,硬件加速部分將數據傳到PL端,PL端將其用硬件邏輯電路實現,對實現的硬件再通過流水線、并行處理和算法重構等優化方法對算法進行優化。處理完數據后,再將數據寫回到PS端。最終PS端將處理好的圖像存儲在外部存儲中。算法結構設計如圖1所示。

qrs2-t1.gif

2.3 優化方法

2.3.1 流數據傳輸

    為了獲取PS端和PL端的最大傳輸性能,本文使用SDSoC開發環境中的sds_alloc函數[8]在PS端申請連續的物理地址作為圖像緩沖區,并在硬件函數聲明前插入指導編譯器的參數#pragma SDS dada zero_copy(imgIn[0:rows*cols])和#pragma SDS data access_pattern(imgIn[0:rows*cols])命令來將圖像數據轉化為流數據[8]進行傳輸。

2.3.2 流水線優化

    為了增加程序的并發性,流水線優化可以使當前操作沒有完成之前就開始執行下一個操作。環境SDSoC的PIPELINE[8,10]優化指令可以對函數及循環進行優化。下面分別對函數的流水線和循環的流水線優化進行說明。

    (1)函數的流水線操作

    從圖2可以看出,func函數需要3個時鐘完成一組操作。若進行兩組操作,在沒有進行流水線優化的情況下,每次操作順序執行,最后一次輸出需要6個時鐘;而經過流水線優化的func函數,每經過1個時鐘就可以讀取下一組數據,兩組操作完成后只需要4個時鐘周期就能夠輸出結果。由此可見,流水線優化可以提高函數的并發性,增加算法的效率。

qrs2-t2.gif

    (2)循環的流水線優化

    從圖3可看出,用循環來對圖像像素進行處理,假設每個像素處理時間為30個時鐘周期,若處理圖像大小為512×512,則未流水線優化前,需要的總時鐘個數為7 864 320個時鐘周期;流水線優化后,需要的總時鐘個數為262 174個時鐘周期,性能有了近30倍的提升。

qrs2-t3.gif

2.3.3 并行處理

    SDSoC環境提供了async和wait指令,使得程序員能夠對硬件函數的同步方式進行控制。硬件開始工作后,PS端的async指令會交還CPU的控制權,繼續執行PS端的任務,實現軟硬件函數并行處理。通過這種方法,可以增加系統的并行性,提高算法的效率。wait命令用來同步數據,使得下一個函數能夠成功應用上一個硬件函數的輸出結果,防止程序死鎖。

3 實驗結果分析

    本文輸入單通道的.bmp格式文件為待處理圖像,模板大小選擇3×3,引導圖像和待處理圖像為同一張圖像,實驗效果如圖4所示。

qrs2-t4.gif

    其中,圖4(a)為待處理圖像和引導圖像,圖4(b)為經過軟硬件協同加速器實現的引導濾波效果圖,圖4(c)為在PC上用OpenCV庫純軟件實現的引導濾波效果圖。通過對比可看出,經過軟硬件協同加速器實現的引導濾波和在PC上純軟件實現的引導濾波在效果上基本相同。

    為了比較本文提出的軟硬件協同加速器的加速效果,分別測出了在PS端對不同大小圖像實現引導濾波算法的幀率值和軟硬件協同加速器對不同大小圖像實現引導濾波算法的頻率值。實驗數據如表1所示。

qrs2-b1.gif

4 結束語

    本文實現了引導濾波的軟硬件協同加速器,并利用開發環境SDSoC所提供的優化指令對硬件進行了性能優化。與CUDA實現的引導濾波相比,性能雖有所不及,但加速效果明顯,并在低功耗及開發周期上優勢大于CUDA。本文提出的軟硬件協同加速器可直接用于內置CPU和FPGA的嵌入式系統中,縮短了嵌入式工程師開發周期,提高了系統整體性能。

參考文獻

[1] HE K M,SUN J,TANG X O.Guided image filtering[C].Proceddings of the 11th European Conference on Computer Vision.Heraklion,Crete,Greece:Lecture Notes in computer Science,2010:1-14.

[2] 鄭賢輝.單幅圖像去雨雪的算法研究[D].廈門:廈門大學,2014.

[3] 楊燕,白海平,王帆.基于引導濾波的單幅圖像自適應去霧算法[J].計算機工程,2016,42(1):265-271.

[4] 漆琳智,張超,吳向陽.引導濾波的單幅圖像前景精確提取[J].杭州電子科技大學學報,2013,33(5).

[5] 王新磊,何凱,王曉文.引導濾波算法的CUDA加速實現[J].吉林大學學報,2016,34(1).

[6] Xilinx.Zynq architecture[Z].2016.

[7] Xilinx.SDSoC development environment[Z].2016.

[8] Xilinx.SDSoC environment user guide[Z].2016.

[9] CHATI H D,MUHLBAUER F,BRAUN T,et al.Hardward/software co-design of a key point detector on FPGA[C].IEEE Computer Society,2007:355-356.

[10] Xilinx.Vivado design suite user guide:High-level synthesis[EB/OL].[2016-02].http:www.xilinx.com.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 午夜国产福利 | 欧美a欧美| 日韩区在线 | 免费羞羞网站视频 | 日本中文字幕在线观看 | 91精品国产自产91精品 | 国产成人lu在线视频 | 久青草国产高清在线视频 | 非洲特黄一级毛片高清视频 | 人阁色第四影院在线电影 | 婷婷丁香啪啪 | 狠狠综合久久久久综合 | 色婷婷.com| 国产99小视频 | 免费精品视频 | 女大学生的沙龙室2中文版电影 | 久久精品欧美日韩精品 | 久久精品a一国产成人免费网站 | 婷婷综合丁香 | 天天爽夜夜爽精品视频一 | 国产ww久久久久久久久久 | 永久国产 | 日韩视频在线观看 | 免费看电影视频网站 | 九月丁香激情综合婷婷玉立 | 国内亚州视频在线观看 | 你懂的免费视频 | 欧美一级片在线观看 | 成人免费网站久久久 | 男人私人影院免费看视频 | 欧美高清国产 | 好吊色青青青国产综合在线观看 | 国产一级一级一级成人毛片 | 善良的嫂子3电影 | 国产高清在线精品一区αpp | 男人天堂导航 | 国产免费一区二区三区在线 | 97中文字幕在线观看 | 免费国产小视频 | 免费激情视频网站 | 五月婷婷中文字幕 |