国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Zynq-7000的視頻處理系統(tǒng)框架設(shè)計(jì)

2017-06-05 14:15張索非
關(guān)鍵詞:圖像處理嵌入式總線

李 朗,張索非,楊 浩

(1.南京郵電大學(xué) 電子科學(xué)與工程學(xué)院,江蘇 南京 210003;2.南京郵電大學(xué) 物聯(lián)網(wǎng)學(xué)院,江蘇 南京 210003)

基于Zynq-7000的視頻處理系統(tǒng)框架設(shè)計(jì)

李 朗1,張索非2,楊 浩1

(1.南京郵電大學(xué) 電子科學(xué)與工程學(xué)院,江蘇 南京 210003;2.南京郵電大學(xué) 物聯(lián)網(wǎng)學(xué)院,江蘇 南京 210003)

隨著嵌入式機(jī)器視覺技術(shù)的不斷發(fā)展,對視頻數(shù)據(jù)帶寬、處理速度和數(shù)據(jù)精度的要求越來越高。針對當(dāng)前基于ARM及DSP的嵌入式圖像處理系統(tǒng)存在的采集速度慢、帶寬有限等缺點(diǎn),提出了一個(gè)基于內(nèi)部集成ARM+FPGA結(jié)構(gòu)的Zynq-7000芯片且能夠?qū)崿F(xiàn)軟硬件協(xié)同工作的視頻處理系統(tǒng)框架。該系統(tǒng)框架采用FPGA并行處理算法實(shí)現(xiàn)圖像預(yù)處理環(huán)節(jié),采用ARM處理器進(jìn)行程序流程控制以及實(shí)現(xiàn)復(fù)雜的圖像識別算法,通過DDR緩存以實(shí)現(xiàn)軟件與硬件的協(xié)同工作,在保證處理速度與帶寬的基礎(chǔ)上兼顧了系統(tǒng)功能的靈活性,并且降低了系統(tǒng)功耗。測試驗(yàn)證結(jié)果表明,所提出的系統(tǒng)框架不僅可以提供高速彩色圖像采集和預(yù)處理的方案,同時(shí)還可以實(shí)現(xiàn)高性能的中端圖像處理算法,并能夠?qū)⒔Y(jié)果快速送達(dá)顯示端顯示。

Zynq-7000;圖像采集;圖像處理;軟硬件協(xié)同

0 引 言

視頻采集和處理系統(tǒng)在視頻監(jiān)控、自動(dòng)化生產(chǎn)等領(lǐng)域有著廣泛的應(yīng)用需求。而越來越廣泛的應(yīng)用對視頻流處理的分辨率、清晰度以及實(shí)時(shí)性等指標(biāo)也提出了更高的要求。傳統(tǒng)的數(shù)字信號處理(Digital Signal Process,DSP)加片上處理器芯片(如ARM)構(gòu)成的解決方案[1]逐漸顯現(xiàn)出帶寬過窄、處理性能不足等缺陷。而單純以現(xiàn)場可編程門陣列(Field Programmable Gate Array,FPGA)作為解決方案[2],雖然在處理速度上可以達(dá)到要求,卻無法像傳統(tǒng)的嵌入式開發(fā)一樣以較短的周期進(jìn)行復(fù)雜的圖像算法流程實(shí)現(xiàn),從而使整個(gè)系統(tǒng)的功能受到了限制。以工業(yè)自動(dòng)化生產(chǎn)以及機(jī)器人等視頻處理需求密集的行業(yè)為例,現(xiàn)代視頻采集處理系統(tǒng)通常由視頻采集前端、圖像預(yù)處理以及圖像信息提取三個(gè)部分構(gòu)成。其中視頻采集以及預(yù)處理部分需要系統(tǒng)高速處理視頻流信號以滿足高清視頻格式的要求,而圖像信息提取則要求系統(tǒng)能夠調(diào)用圖像特征提取、匹配等功能,將圖像信號轉(zhuǎn)換為高級語義信息。三部分功能的結(jié)合對于系統(tǒng)的軟硬件性能以及通信帶寬都提出了更高的要求。

針對新興的應(yīng)用需求,基于Xilinx公司推出的Zynq-7000[3]平臺來構(gòu)建彩色視頻采集和顯示系統(tǒng)。Zynq基于可擴(kuò)展處理平臺(Embedded Processing Platform,EPP)結(jié)構(gòu),將雙精度浮點(diǎn)引擎的ARM Cortex-A9雙核處理器與低功耗可編程邏輯緊密結(jié)合,提供了強(qiáng)大的靈活性、可配置性和系統(tǒng)性能。平臺主要由處理系統(tǒng)(Processing System,PS)和可編程邏輯(Programmable Logic,PL)兩大功能模塊構(gòu)成。其中,PS主要包括應(yīng)用處理單元(Application Processing Unit,APU)、存儲器接口、I/O外設(shè);PL則采用FPGA技術(shù)實(shí)現(xiàn)擴(kuò)展功能以滿足特定的功能要求。兩部分以高速片上總線AXI(Advanced eXtensible Interface)互聯(lián),保證整個(gè)系統(tǒng)的處理帶寬。鑒于以上優(yōu)點(diǎn),Zynq解決方案在工業(yè)視覺以及視頻監(jiān)控領(lǐng)域獲得了越來越多的關(guān)注[4-6]。以Zynq平臺為基礎(chǔ),以DDR3內(nèi)存為圖像緩存設(shè)計(jì)視頻采集、硬件預(yù)處理、軟件處理的程序流程,實(shí)現(xiàn)了軟硬件協(xié)同的視頻信號采集、處理以及顯示功能。

1 系統(tǒng)硬件總體框架

系統(tǒng)硬件框圖如圖1所示,包含采集、緩存、處理以及顯示四個(gè)模塊,分別由PS和PL部分協(xié)同完成,而各部分通過AXI總線內(nèi)部互聯(lián)[7]。

圖1 系統(tǒng)硬件結(jié)構(gòu)框圖

(1)圖像采集部分在PL端完成,OV7725 CMOS攝像頭使用排線和ZYNQ-7000相連,信號通過Verilog HDL描述的控制器進(jìn)入系統(tǒng)。PS通過IIC協(xié)議來配置和初始化OV7725攝像頭,采集到的圖像數(shù)據(jù)轉(zhuǎn)化為AXI-Stream總線型數(shù)據(jù)以便使用Xilinx的Video IP核進(jìn)行圖像校正增強(qiáng)的預(yù)處理。OV7725攝像頭采用常見的30萬像素格式采集圖片(640×480),幀率為60 fps/s,每像素通信帶寬32 bit,理論上所需的最小IO吞吐量為562.5 Mbit/s,而系統(tǒng)的高速IO接口最高達(dá)到10 G/s帶寬,完全滿足了系統(tǒng)的要求。

(2)PL部分采集圖像通過AXI-VDMA(視頻直接內(nèi)存訪問接口)存入DDR3進(jìn)行緩存,AXI總線協(xié)議包括9個(gè)物理接口,分別為AXI-GP0~AXI-GP3,AXI-HP0~AXI-HP3,AXI-ACP。其中兩個(gè)AXI-GP為主機(jī)接口,雖然寬帶性能較低,卻具有發(fā)起讀寫的權(quán)限。通過把PL映射到DDR3中的相應(yīng)地址,ARM就可以利用該接口訪問PL,如同讀寫自己的內(nèi)部存儲器。其余接口則為被動(dòng)接口,允許PL部分以高速主動(dòng)讀寫。

(3)圖像處理功能由PL和PS協(xié)作完成,PL使用一系列IP核對原始圖像進(jìn)行預(yù)處理,經(jīng)過Video Pipeline轉(zhuǎn)化為32位ARGB格式的數(shù)據(jù)流。數(shù)據(jù)流通過雙端口AXI VDMA存入DDR,PS調(diào)用該緩存地址圖片并使用軟件算法進(jìn)行信息提取,實(shí)現(xiàn)軟硬件協(xié)同處理功能。

(4)處于PL中的視頻顯示部分通過一個(gè)雙端口的AXI-VDMA從DDR中讀取含有軟件處理結(jié)果的渲染后圖片,并將圖片送入HDMI輸出控制器以實(shí)現(xiàn)圖像顯示。

2 系統(tǒng)數(shù)據(jù)處理流程

視頻流數(shù)據(jù)經(jīng)過系統(tǒng)各環(huán)節(jié)處理的流程如圖2所示。采集圖像首先通過陣列插值、顏色校正以及亮度校正等一系列基礎(chǔ)預(yù)處理模塊獲得比較理想的顯示質(zhì)量,然后通過高層次綜合(High-Level Synthesis,HLS)的IP模塊進(jìn)行處理。HLS為Xilinx推出的新型開發(fā)工具,可以由C/C++標(biāo)準(zhǔn)規(guī)范直接綜合至寄存器傳輸級別(Register Transfer Level,RTL)模型,以較短的周期實(shí)現(xiàn)硬件開發(fā)。通常一些并行化程度高的像素級算法操作可以放入該模塊進(jìn)行高速實(shí)現(xiàn)。

經(jīng)過圖像預(yù)處理后,圖片被緩存于Buffer1中,PS部分從緩存中讀取圖片并進(jìn)行軟件算法處理,在輸出結(jié)果的同時(shí)將渲染后的結(jié)果圖像送至Buffer2進(jìn)行緩存。而顯示部分讀取圖片以后將RGB通道圖片轉(zhuǎn)為YUV通道圖片,最終送至HDMI顯示控制器進(jìn)行顯示。圖像的采集和顯示都由PL部分實(shí)現(xiàn),保證了整個(gè)流程的處理速度。而圖像算法一方面由HLS通過硬件實(shí)現(xiàn)預(yù)處理,另一方面通過PS軟件實(shí)現(xiàn)后續(xù)算法。其中軟件實(shí)現(xiàn)部分可以使用OpenCV[8]等開源庫構(gòu)建標(biāo)準(zhǔn)C/C++規(guī)范流程,在保證系統(tǒng)靈活性和功能的同時(shí),兼顧了執(zhí)行效率和開發(fā)周期。

圖2 系統(tǒng)處理流程圖

3 驅(qū)動(dòng)設(shè)計(jì)及系統(tǒng)移植

3.1 嵌入式Linux系統(tǒng)搭建

嵌入式Linux是將Linux內(nèi)核進(jìn)行剪裁和修改,使之能夠運(yùn)行在嵌入式系統(tǒng)上的一個(gè)小型系統(tǒng)。Xilinx公司提供了一個(gè)Linux平臺的嵌入式Linux開發(fā)環(huán)境Petalinux[9]。Petalinux工具不僅提供了Linux內(nèi)核(Kernel)、U-boot、文件系統(tǒng)以及嵌入式應(yīng)用程序的配置和編譯方法,還整合了同步Vivado FPGA硬件設(shè)計(jì)工程到Petalinux中的方法,方便了軟硬件協(xié)同設(shè)計(jì)。在以Zynq為核心的硬件系統(tǒng)中,U-boot、Linux內(nèi)核、驅(qū)動(dòng)程序以及應(yīng)用程序的編譯工作都要借助整合在Petalinux中的arm-xilinx-linux-gnueabi-gcc交叉編譯器來完成。該交叉編譯器可將各系統(tǒng)組件程序進(jìn)行預(yù)處理、編譯、匯編和鏈接,最終生成能夠運(yùn)行在Zynq體系結(jié)構(gòu)中的二進(jìn)制可執(zhí)行文件。

3.2 驅(qū)動(dòng)程序設(shè)計(jì)

設(shè)備驅(qū)動(dòng)程序是建立在硬件與軟件之間互聯(lián)的一種接口程序。Linux系統(tǒng)將存儲器和外設(shè)大致分為三類,分別為字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。在PL中實(shí)現(xiàn)了視頻采集和視頻顯示的各個(gè)IP核模塊,在驅(qū)動(dòng)中則要為每一個(gè)IP核添加對應(yīng)的驅(qū)動(dòng)程序。PS與該模塊交互的方式主要有三種[10]:通過PS部分的專用串行接口直接訪問,作為AXI總線外設(shè)供PS部分訪問,作為IP核虛擬成獨(dú)立的邏輯器件單獨(dú)訪問。該系統(tǒng)采用第二種方式訪問,打開IP核的AXI Lite總線接口,使得PS能通過AXI Lite總線接口來配置IP核寄存器。

由于OV7725攝像頭采集的圖像格式為Bayer,圖像數(shù)據(jù)中每一個(gè)像素點(diǎn)只有R、G、B中的一個(gè)顏色分量,還需要通過彩色濾波陣列(ColorFilterArray,CFA)插值算法對信號進(jìn)行插值處理,即在每個(gè)通道上使用相鄰像素點(diǎn)的對應(yīng)值對當(dāng)前像素進(jìn)行估計(jì)?,F(xiàn)以CFAIP核為例說明驅(qū)動(dòng)程序的設(shè)計(jì)方法。

由于Linux內(nèi)核中的V4L2驅(qū)動(dòng)框架為視頻設(shè)備提供了供上層訪問的統(tǒng)一接口[11],對于CFAIP核的驅(qū)動(dòng)設(shè)計(jì)的主要思路是將CFA作為一個(gè)視頻處理模塊整合進(jìn)V4L2的框架之下。V4L2驅(qū)動(dòng)框架支持視頻輸入輸出設(shè)備、VBI設(shè)備以及Audio設(shè)備等,通常這些設(shè)備要通過多個(gè)I2C總線或SPI總線實(shí)現(xiàn)和CPU的通訊。將設(shè)備掛載至總線作為子設(shè)備(Sub-devices)即可使用V4l2框架,將CFA模塊掛載為V4l2_Subdev并驅(qū)動(dòng)設(shè)備的工作流程如圖3所示。

圖3 CFA驅(qū)動(dòng)工作流程圖

具體設(shè)計(jì)流程如下:

(1)構(gòu)建CFADevice結(jié)構(gòu)體。

(2)基于Platform虛擬總線設(shè)計(jì)設(shè)備初始化和退出函數(shù),并關(guān)聯(lián)相應(yīng)設(shè)備樹資源。

(3)構(gòu)建CFA的視頻操作函數(shù)、V4L2內(nèi)部處理函數(shù)、Media操作函數(shù)。

(4)根據(jù)Sysfs文件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)設(shè)備屬性讀寫函數(shù),創(chuàng)建屬性組并注冊相應(yīng)的V4L2-Subdev設(shè)備。

(5)驅(qū)動(dòng)完成調(diào)試后加入Linux內(nèi)核編譯,以內(nèi)嵌模式加入內(nèi)核,并最終生成系統(tǒng)鏡像uImage。

4 測試結(jié)果分析

平臺基于OV7725攝像頭運(yùn)行測試并進(jìn)行性能分析,每一幀640×480分辨率圖像通過PL進(jìn)行預(yù)處理存入DDR,應(yīng)用層軟件通過V4L2驅(qū)動(dòng)框架調(diào)出圖片進(jìn)行軟件處理,處理后結(jié)果圖片經(jīng)過顏色空間轉(zhuǎn)換變?yōu)閅UV格式送至HDMI顯示,圖4為整個(gè)系統(tǒng)的實(shí)物圖及運(yùn)行示例。

圖4 視頻處理系統(tǒng)平臺實(shí)物圖

系統(tǒng)實(shí)現(xiàn)了一種經(jīng)典的Harris角點(diǎn)檢測算法[12]。首先將輸入圖像轉(zhuǎn)換為單通道灰度圖像,后使用Harris方法檢測角點(diǎn),最終檢測結(jié)果渲染至原彩色圖像進(jìn)行顯示,檢測結(jié)果參見圖5。其中圖5(b)是在PS部分與應(yīng)用層以O(shè)penCV方案實(shí)現(xiàn)角點(diǎn)檢測,而圖5(c)則是在PL部分使用HLS[13-14]方案實(shí)現(xiàn)檢測??梢园l(fā)現(xiàn)兩種方法最終的檢測結(jié)果基本一致。而從表1中的算法執(zhí)行效率對比中可以發(fā)現(xiàn),軟硬件協(xié)同處理一幀圖像只需要3 458μs,與純ARM實(shí)現(xiàn)角點(diǎn)檢測算法相比效率提高了15.2倍。

(a)原始采集圖像 (b)軟件實(shí)現(xiàn)角點(diǎn)檢測結(jié)果圖像 (c)硬件實(shí)現(xiàn)角點(diǎn)檢測結(jié)果圖像

圖5 檢測結(jié)果

表1 圖像處理算法的執(zhí)行速度比較

5 結(jié)束語

針對高分辨率、高帶寬下ARM及DSP芯片處理視頻數(shù)據(jù)效率低的問題,提出了一套基于Zynq-7000平臺使用軟硬件協(xié)同處理的視頻采集、處理及顯示方法,并結(jié)合CMOS攝像頭有效地驗(yàn)證了設(shè)計(jì)的正確性。實(shí)驗(yàn)結(jié)果表明,所設(shè)計(jì)的基于Zynq-7000的視頻采集處理框架具備了完整的圖像采集、存儲、處理和顯示功能。同時(shí),平臺可以根據(jù)實(shí)際需求在PL及PS部分繼續(xù)添加各種圖像處理環(huán)節(jié),實(shí)現(xiàn)更為復(fù)雜的功能,為后續(xù)的視頻處理系統(tǒng)實(shí)現(xiàn)提供了基礎(chǔ)。

[1] 肖政宏,韓秋鳳,朱麗群.基于ARM和DSP的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2006,28(9):53-55.

[2] 祝長鋒,肖鐵軍.基于FPGA的視頻圖像采集系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(17):4404-4407.

[3] 何 賓.XilinxAllProgrammableZynq-7000SoC設(shè)計(jì)指南[M].北京:清華大學(xué)出版社,2013.

[4] 劉 宏,符意德.基于Zynq芯片的圖像處理系統(tǒng)平臺設(shè)計(jì)[J].計(jì)算機(jī)與現(xiàn)代化,2015(8):43-47.

[5] 楊曉安,羅 杰,蘇 豪,等.基于Zynq-7000高速圖像采集與實(shí)時(shí)處理系統(tǒng)[J].電子科技,2014,27(7):151-154.

[6] 孟繁星.基于ZYNQ-7000的視頻圖像處理系統(tǒng)設(shè)計(jì)[J].信息通信,2015(8):60-62.

[7] 陸佳華,潘祖龍,彭競宇.嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計(jì)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2014.

[8]BradskiG,KaehlerA.LearningOpenCV:computervisioninC++withtheOpenCVlibrary[M].[s.l.]:O'ReillyMedia,Inc.,2013.

[9]XilinxInc.XilinxPetaLinuxSDKuserguide:gettingstartedguide[EB/OL].2013-04-22.http://www.xilinx.com/support/documentation/sw_manuals/petalinux2013_04/ug977-petalinux-getting-started.pdf.

[10] 葉 棽,謝捷如.基于SoC和嵌入式Linux的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(8):203-207.

[11] 張 輝.基于V4L2的嵌入式視頻驅(qū)動(dòng)程序開發(fā)與實(shí)現(xiàn)[D].合肥:安徽大學(xué),2010.

[12]HarrisC.Acombinedcornerandedgedetector[C]//Alveyvisionconference.[s.l.]:[s.n.],1988:147-151.

[13]LiC,ChengWS,FanJZ,etal.Parallelimageprocessingtechnologyofsurfacedetectionsystem[J].SemiconductorPhotonicsandTechnology,2008,14(4):217-223.

[14]Colodro-CondeC,Toledo-MoreoFJ,Toledo-MoreoR,etal.ApracticalevaluationoftheperformanceoftheimpulseCoDeveloperHLStoolforimplementinglarge-kernel2-Dfilters[J].JournalofReal-TimeImageProcessing,2014,9(1):79-83.

Design of Video Processing System Framework with Zynq-7000

LI Lang1,ZHANG Suo-fei2,YANG Hao1

(1.College of Electronic Science and Engineering,Nanjing University of Posts and Telecommunications,Nanjing 210003,China;2.College of Internet of Things,Nanjing University of Posts and Telecommunications,Nanjing 210003,China)

With the continuous development of embedded machine vision technology,the requirement of video data bandwidth,processing speed and data accuracy has become higher and higher.Current embedded image processing system are mainly based on ARM with DSP framework.Such designs normally come with deficiencies as low acquisition speed and limited processing bandwidth.To address this problem,Zynq-7000 has been adopted to realize a video processing framework by synergy of FPGA as hardware and ARM as software.FPGA acts as an implementation of parallelized image preprocessing algorithm as well as ARM processing unit to control the program flow and to implement the complex image processing algorithms are integrated in this framework.A DDR buffer has been exploited to coordinate the hardware and software.Such synergy ensures the processing efficiency and bandwidth of system,while considering the flexibility of system simultaneously.The experimental results show that not only can the design provide a high speed color image acquisition and preprocessing,but also can implement a high performance image processing algorithm with video display of graphic results.

Zynq-7000;image acquisition;image processing;synergy of software and hardware

2016-05-26

2016-09-09 網(wǎng)絡(luò)出版時(shí)間:2017-03-13

國家自然科學(xué)基金面上項(xiàng)目(41471329)

李 朗(1990-),男,碩士研究生,研究方向?yàn)榍度胧较到y(tǒng)、圖像處理;楊 浩,博士,副教授,研究方向?yàn)槲锫?lián)網(wǎng)、機(jī)器視覺。

http://kns.cnki.net/kcms/detail/61.1450.TP.20170313.1546.062.html

TP302

A

1673-629X(2017)05-0192-04

10.3969/j.issn.1673-629X.2017.05.040

猜你喜歡
圖像處理嵌入式總線
人工智能輔助冠狀動(dòng)脈CTA圖像處理和診斷的研究進(jìn)展
Focal&Naim同框發(fā)布1000系列嵌入式揚(yáng)聲器及全新Uniti Atmos流媒體一體機(jī)
基于ARM嵌入式的關(guān)于圖像處理的交通信號燈識別
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
基于圖像處理的機(jī)器人精確抓取的設(shè)計(jì)與實(shí)現(xiàn)
機(jī)器學(xué)習(xí)在圖像處理中的應(yīng)用
一種基于CAN總線的誤碼測試方法
搭建基于Qt的嵌入式開發(fā)平臺
CAN總線并發(fā)通信時(shí)下位機(jī)應(yīng)用軟件設(shè)計(jì)
基于CAN總線的水下通信系統(tǒng)設(shè)計(jì)
泰兴市| 平利县| 阿尔山市| 临泉县| 固安县| 黔西县| 平泉县| 抚州市| 平山县| 西丰县| 虹口区| 汝南县| 巧家县| 星座| 平乡县| 汾西县| 广平县| 桃园县| 温泉县| 宣威市| 阆中市| 江北区| 连平县| 温州市| 日土县| 尤溪县| 疏附县| 郸城县| 六安市| 保康县| 廊坊市| 会昌县| 奇台县| 哈密市| 庆安县| 上犹县| 林州市| 老河口市| 阿坝县| 耒阳市| 霍邱县|