《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Vivado HLS嵌入式實時圖像處理系統的構建與實現
Vivado HLS嵌入式實時圖像處理系統的構建與實現
2016年電子技術應用第9期
張艷輝1,郭洺宇2,何 賓1
1.北京化工大學 信息科學與技術學院,北京100029;2.北京衛星環境工程研究所,北京100094
摘要: 傳統的基于CPU、GPU和DSP的處理平臺難以滿足圖像實時處理的要求,而FPGA在并行圖像處理上有著獨一無二的優勢,在性能和成本之間提供更加靈活的選擇。通過Xilinx最新的Vivado HLS工具,設計實現了可變參數的拉普拉斯算子圖像濾波算法,并且在ZYNQ-7000 SoC上構建了可視化的實時嵌入式圖像處理系統。實驗結果表明,系統可以實現不同的圖像處理算法,很好地滿足了圖像處理的實時性、高性能、低成本要求,對未來高性能圖像處理系統的設計和實現提供了很好的借鑒。
中圖分類號: TP368.2
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.09.030
中文引用格式: 張艷輝,郭洺宇,何賓. Vivado HLS嵌入式實時圖像處理系統的構建與實現[J].電子技術應用,2016,42(9):115-117,121.
英文引用格式: Zhang Yanhui,Guo Mingyu,He Bin. Construction and implementation of Vivado HLS embedded real-time image processing system[J].Application of Electronic Technique,2016,42(9):115-117,121.
Construction and implementation of Vivado HLS embedded real-time image processing system
Zhang Yanhui1,Guo Mingyu2,He Bin1
1.College of Information Science and Technology,Beijing University of Chemical Technology,Beijing 100029,China; 2.Beijing Institute of Satellite Environment,Beijing 100094,China
Abstract: Traditional processing platforms which are based on CPU,GPU and DSP cannot meet the requirements in real-time processing. FPGA has unique advantages in parallel image processing and provides a much more flexible option between performance and power consumption. By using Vivado High Level Synthesis(HLS),tool of Xilinx,a variable parameter laplacian image filter algorithm has been implemented. And a kind of real-time and visual embedded image processing system is constructed on the ZYNQ-7000 SoC. The experimental results of this system verify different image processing algorithm can be implemented easily on this platform,requirements of real-time,high performance and low cost can be satisfied well. This design provides reference for further high performance image processing system.
Key words : Vivado HLS;image processing;Laplacian;ZYNQ-7000;embedded Linux;Qt

0 引言

  近年來,由于成像技術的不斷進步以及圖像應用領域的拓寬,數字圖像包含的數據量與日俱增,圖像處理算法也越來越復雜[1]。目前應用普遍的數字信號處理器(Digital Signal Processor,DSP)和圖形處理器(Graphics Processing Unit,GPU)技術雖然在實現圖像處理上有著廉價、易于編程的優點,但是在性能、功耗、實時性方面,它們與FPGA相比仍有巨大的差距,難以滿足嵌入式圖像領域不斷增長的靈活性、高性能、低功耗的要求。大量研究表明,采用FPGA實現圖像處理能夠獲得較高的計算性能。因此,從計算性能、實時性的角度考慮,FPGA是嵌入式圖像處理應用的理想選擇方案[2]。

  Xilinx公司的ZYNQ-7000系列產品集成了最新工藝的ARM Cortex-A9雙核處理器與高性能的FPGA。作為新一代的可編程片上系統,ZYNQ-7000 SoC非常適合于計算密集、功能豐富的嵌入式應用設計。Xilinx公司的Vivado HLS工具將C語言、C++以及系統C語言引入到可編程邏輯設計中,而無須通過傳統的硬件描述語言編寫復雜的程序,大大地加速了IP創建,滿足了處理算法的靈活性[3]。設計利用Vivado HLS工具實現了可變參數的拉普拉斯算子圖像濾波算法,將生成的IP加入到ZYNQ-7000的可編程邏輯部分,用于處理OV7670攝像頭采集到的圖像數據。移植Ubuntu Linux桌面系統到ZYNQ-7000雙核處理器中,利用Qt工具編寫上位機人機交互控制界面與下位機顯示程序,實現了嵌入式Linux可視化實時圖像處理系統。

1 系統總體結構

  ZYNQ-7000嵌入式數字圖像處理系統結構框圖如圖1所示,系統主要由OV7670攝像頭、ZYNQ-7000 SoC、數據存儲單元DDR3、HDMI顯示器以及上位機等組成。ZYNQ-7000 SoC作為整個實時處理系統的核心,包括處理系統(Processing System,PS)和可編程邏輯(Programmable Logic,PL)兩部分,其中PS部分主要包含了雙ARM Cortex-A9核,PL部分包含了傳統意義的DSP資源和FPGA邏輯單元。

圖像 001.png

  1.1 PL部分實現的功能

  可編程邏輯PL部分實現的主要功能如下:

  (1)從OV7670攝像頭中獲取圖像數據,并通過視頻存儲器直接訪問(Video Direct Memory Access,VDMA)傳輸至DDR3存儲芯片中存儲;

  (2)將DDR3中存儲的圖像數據通過VDMA傳輸到可變參數的拉普拉斯濾波算法IP模塊進行圖像處理,并把處理生成的圖像數據通過VDMA重新傳輸到DDR3;

  (3)PL中的顯示模塊配合VDMA構成嵌入式Linux的硬件顯示單元。

  圖像采集采用OV7670攝像頭,OV7670圖像傳感器體積小、工作電壓低,提供單片VGA攝像頭和影像處理器的所有功能。通過SCCB 總線控制,可以輸出整幀、子采樣、取窗口等方式的各種分辨率的8位影像數據。設計選用RGB565、VGA640×480作為輸出格式,將相應的寄存器值通過SCCB控制模塊寫入到寄存器中,并把采集的數據通過AXI4 Stream接口協議寫入到DDR3中。在該設計中,通過硬件描述語言實現SCCB圖像控制與圖像接收模塊的設計。

  1.2 PS部分實現的功能

  處理系統PS部分實現的主要功能如下:

  (1)運行Ubuntu桌面系統,為上層應用提供操作系統支持;

  (2)調用編寫的VDMA、HDMI圖像顯示驅動實現與PL數據交互、桌面系統顯示的功能;

  (3)實現Qt編寫的上層應用程序及網絡編程等。

  如圖1所示,VDMA提供了PL與DDR3存儲器進行高速數據傳輸的機制。VDMA具有兩個數據端口:MM2S和S2MM。MM2S和S2MM的最大數據位寬均為64 bit,緩存區深度為512 B[4]。其中S2MM端口實現圖像數據從PL向DDR3存儲器傳輸,MM2S端口實現圖像數據從DDR3存儲器向PL傳輸。ARM處理器可以通過通用接口AXI_GP對VDMA進行控制。

2 拉普拉斯算子濾波算法的實現

  2.1 拉普拉斯算子濾波算法

  拉普拉斯算子是圖像處理技術中常見的一種增強算子,因為具有旋轉不變性、實現簡單等特點,被廣泛地應用于圖像銳化和高頻增強等算法中。圖像信號中,高頻分量一般對應于圖像的邊緣輪廓,采用拉普拉斯算子的圖像濾波算法能夠實現圖像銳化、增強圖像輪廓清晰度的效果。拉普拉斯算子是最簡單的各向同性微分算子,具有旋轉不變性。一個二維圖像函數的拉普拉斯變換是各向同性的二階導數,定義為:

  QQ圖片20161115100240.png

  該方程的離散形式為:

  QQ圖片20161115100243.png

  拉普拉斯算子可以表示成模板的形式,如圖2(a)所示,圖2(b)表示其擴展模板,圖2(c)和圖2(d)則分別表示其他兩種拉普拉斯的實現模板。

圖像 002.png

  2.2 Vivado HLS實現算法編寫

  Vivado HLS利用C語言、C++語言以及系統C語言提供的高級結構來提高抽象層次,提供數據原語方便使用基礎硬件構建IP模塊。與使用RTL相比,Vivado HLS代碼更加緊湊,可讀性和可維護性更加優良,可以更輕松地實現各種接口協議,從簡單的FIFO接口到完整的AXI4 Stream,滿足不同模塊間的數據通信。

  Vivado HLS實現拉普拉斯算法流程如圖3所示。數據處理按照圖中箭頭依次進行,數據在單個單元中并行運算或在不同單元間并行移動。每個時鐘周期AXI4 Stream接口將24 bit的一個像素數據送入算法模塊中,先經過灰度處理,然后存入2×640的行緩存中,行緩存和新的數據構成3×3的窗口數據,窗口的9個數據和AXI_GP接口傳輸進來的拉普拉斯算子參數進行運算得到一個新的8 bit像素數據送回到DDR3中。

圖像 003.png

  編寫的算法在XC7Z010器件上的資源占用率如表1所示,可以看出,只用了PL很少的資源便實現了圖像濾波算法。

圖像 007.png

  2.3 Qt實現參數控制程序

  良好的人機交互功能是嵌入式系統重要的一部分[5]。設計采用Qt Creator開發工具在PC上實現了控制端應用程序,如圖4所示。PC通過以太網與下位機進行連接,在控制端輸入不同的拉普拉斯算子,系統會產生不同的濾波效果,并將濾波后的圖像顯示在下位機的HDMI顯示器上。

圖像 004.png

3 設計仿真與系統測試

  3.1 Vivado HLS仿真

  Vivado HLS除了將高效的編程代碼轉換為IP以外,還提供了另一項重要功能:C語言仿真和C/RTL協同仿真。C語言仿真中C/C++的編譯和執行與常見的C/C++程序相同,具有良好的可讀性和高效性。C/RTL協同仿真會根據C/C++測試平臺自動生成RTL測試平臺,設置并執行RTL仿真,檢查實現方案的正確性。C語言仿真測試代碼如下:

  IplImage* src=cvLoadImage("lena.jpg");//加載測試圖片

  AXI_STREAM  src_axi, dst_axi;//定義流數據類型變量

  IplImage2AXIvideo(src, src_axi);

  //圖片轉換為流數據類型

  Laplasian_fil(&lap00,&lap01,&lap02,&lap10,&lap11,

  &lap12,&lap20,&lap21,&lap22,src_axi, dst_axi);

  //濾波算法主函數

  AXIvideo2IplImage(dst_axi, dst);

  //流數據類型轉換為圖片

  cvSaveImage("lena_result.jpg", dst);//保存圖片

  測試程序首先將本地用于測試的圖片轉換為AXI4 Stream接口協議數據,并設置拉普拉斯算子的值,然后將圖片數據和拉普拉斯算子以參數的形式送入到圖像濾波算法中,濾波后的圖片會以jpg的形式存入本地。測試原圖片及生成圖片如圖5所示。

圖像 005.png

  3.2 系統測試

  測試系統采用Xilinx公司提供的ZyBo開發板,該開發板搭載了XC7Z010主芯片,擴展外設通過PMOD接口與OV7670攝像頭進行連接,PC通過板載以太網接口和串行接口與ZyBo通信,HDMI顯示運行的Ubuntu桌面系統。

  控制端輸入圖2中不同的拉普拉斯算子得到的處理結果如圖6所示,結果完全滿足每秒30幀、RGB640×480格式圖像實時濾波的要求。

圖像 006.png

4 結論

  基于ZYNQ-7000異構架構的圖像處理系統不但可以實現嵌入式操作系統相關的任務,如圖形界面、用戶輸入、網絡、DDR3控制等,還可以提供高性能實時圖像處理的功能[6]。采用Xilinx最新的Vivado HLS工具進行FPGA高層次設計對圖像算法進行加速,能夠有效提高設計效率,并且能夠快速生成工業標準的IP核,有利于進一步實現系統集成。設計的實驗和驗證結果表明了基于ZYNQ-7000異構架構和Vivado HLS工具的實時圖像處理系統易于移植,便于針對特定應用定制,為未來的高性能圖像處理提供了較高的工程應用與參考價值。

  參考文獻

  [1] 何賓.Xilinx FPGA設計權威指南[M].北京:清華大學出版社,2014.

  [2] 陸佳華,江舟.嵌入式系統軟硬件協同設計實戰指南[M].北京:機械工業出版社,2013.

  [3] 陸啟帥,陸彥婷,王地.Xilinx Zynq SoC與嵌入式Linux設計實戰指南[M].北京:清華大學出版社,2014.

  [4] KARRAS K,HRICA J.Vivado HLS推動協議處理系統蓬勃發展[DB/OL].(2014-09-16)[2016-03-01].http://xilinx.eetrend.com/article/7676.

  [5] 梁柱華,顧新.嵌入式Linux實時性的研究[J].電子科技,2005(11):57-60,64.

  [6] 焦再強.基于Zynq-7000的嵌入式數字圖像處理系統設計與實現[D].太原:太原理工大學,2015.

  


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日本黄色大片在线播放视频免费观看 | 国产成人在线综合 | 小屁孩cao大人免费网站 | 在线视频精品视频 | 亚洲国产精品线在线观看 | 国产嫩草影院在线观看 | 国产在线综合一区二区三区 | 国产成人久久精品推最新 | 成人高清无遮挡免费视频软件 | 日本高清精品 | 国产欧美日韩精品一区二区三区 | 久久久久99精品成人片三人毛片 | 欧美日本俄罗斯一级毛片 | 国产黄色自拍 | 久久午夜精品视频 | 亚州一级毛片 | 久久午夜精品视频 | 日本一级毛片高清免费观看视频 | 久久频这里精品99香蕉久网址 | 精品视频一区二区三三区四区 | 日本精品夜色视频一区二区 | 成人影院vs一区二区 | 美国一级毛片免费 | 国产乱码精品一区二区三区卡 | 99久久精品免费观看国产 | 国产精品亚洲高清一区二区 | 国产福利片在线 易阳 | 玖草在线播放 | 日本免费大黄在线观看 | 日本三级香港三级人妇 m | 亚洲成人高清在线 | 久久国产精品女 | 亚洲天堂2015 | 欧美亚洲激情视频 | 国产三级在线免费观看 | 欧美毛片在线观看 | 欧美成年人视频 | 国产午夜精品理论片免费观看 | 国产成人综合久久精品亚洲 | 波多野结衣中文无毒不卡 | 狠狠色噜狠狠狠狠色综合久 |