摘要:將DSP與FPGA結(jié)合,設(shè)計(jì)一種對CMOS圖像傳感器進(jìn)行圖像采集和處理的硬件系統(tǒng)。該系統(tǒng)能夠在硬件層面把圖像分路處理,一路直接壓縮后傳輸,另一路循環(huán)存儲到多幀高清圖像存儲區(qū),便于軟件分析,較好地解決了傳輸帶寬不足與智能監(jiān)控需要高分辨率圖像進(jìn)行分析處理的矛盾需求。該系統(tǒng)具有高清圖像實(shí)時(shí)采集處理的優(yōu)點(diǎn)和硬件平臺通用性,可用不同軟件實(shí)現(xiàn)不同的圖像分析處理。
關(guān)鍵詞:FPGA;DSP圖像采集;圖像處理;分路處理
0 引言
隨著科學(xué)技術(shù)的發(fā)展和社會發(fā)展應(yīng)用需求,人們對視頻圖像采集處理高清化,傳輸實(shí)時(shí)化和控制智能化的要求越來越高。高清視頻圖像在軍事、科研、安防、工業(yè)生產(chǎn)、醫(yī)療衛(wèi)生等領(lǐng)域得到了更為廣泛的應(yīng)用。
特別在安防行業(yè),現(xiàn)有系統(tǒng)由于技術(shù)、成本和傳輸距離的原因,傳輸帶寬都不高,直接實(shí)時(shí)傳輸高清視頻圖像難以實(shí)現(xiàn),但是某些關(guān)鍵時(shí)刻或者特殊場景卻需要高清晰度、高分辨率的圖像進(jìn)行細(xì)節(jié)的分析處理,便于智能化的應(yīng)用。本文為了解決這一個(gè)矛盾的需求,提出了在視頻監(jiān)控系統(tǒng)的前端——圖像采集和處理將采集到的原始高清圖像數(shù)據(jù)分成兩路同時(shí)進(jìn)行處理的思想:一路按照傳統(tǒng)的處理方法壓縮處理轉(zhuǎn)為標(biāo)清視頻流傳輸,實(shí)現(xiàn)監(jiān)控的實(shí)時(shí)化;另一路數(shù)據(jù)由外部擴(kuò)展SDRAM緩存,DSP實(shí)時(shí)讀取緩存數(shù)據(jù)進(jìn)行智能分析處理,根據(jù)分析處理結(jié)果決定是否傳輸高清圖像或者結(jié)果?;诓煌幚硇酒趫D像處理各層次應(yīng)用有不同的針對性,合理分配硬件資源及算法,能夠顯著提高系統(tǒng)整體性能。本文采用FPGA+DSP技術(shù)實(shí)現(xiàn)高清圖像采集和處理,并在硬件層面將數(shù)據(jù)分路處理。
1 系統(tǒng)結(jié)構(gòu)及原理
本文設(shè)計(jì)的硬件系統(tǒng),就是利用FPGA和DSP對高分辨率CMOS數(shù)字圖像傳感器OV5642進(jìn)行圖像采集和處理。系統(tǒng)完成對 FPGA,DSP和OV5642芯片進(jìn)行初始化。FPGA對OV5642進(jìn)行全分辨率的數(shù)據(jù)采集。FPGA將采集到的圖像數(shù)據(jù)成兩路處理,一路直接原始高清數(shù)據(jù)傳輸外部SDRAM緩存,由DSP讀取緩存數(shù)據(jù)進(jìn)行智能分析處理;另一路由FPGA進(jìn)行硬件預(yù)處理,將原始高清圖像轉(zhuǎn)換為合適的分辨率,送到DSP 片內(nèi)進(jìn)行格式轉(zhuǎn)換、壓縮等處理后傳輸?shù)酵獠拷涌?。DSP根據(jù)分析處理結(jié)果和設(shè)置閾值條件,決定是否對高清圖像數(shù)據(jù)進(jìn)行傳輸。需要傳輸?shù)膱D像幀融入數(shù)據(jù)流中傳輸。外部擴(kuò)展的輸出接口可以將經(jīng)過系統(tǒng)處理的數(shù)據(jù)流傳輸?shù)奖镜乇O(jiān)控或者遠(yuǎn)程監(jiān)控。系統(tǒng)原理框圖如圖1所示。
在高清實(shí)時(shí)圖像采集處理中,圖像采集的速度高,低層的預(yù)處理中要處理的數(shù)據(jù)量大,對處理速度要求高,但運(yùn)算結(jié)構(gòu)相對比較簡單,適合用兼顧速度及靈活性的 FPGA進(jìn)行硬件實(shí)現(xiàn)。高層的處理算法的特點(diǎn)是處理的數(shù)據(jù)量較低層算法少,但算法的結(jié)構(gòu)復(fù)雜,適合用運(yùn)算速度高、尋址方式靈活、通信機(jī)制強(qiáng)的DSP芯片來實(shí)現(xiàn)。DSP+FPGA架構(gòu)的最大特點(diǎn)是結(jié)構(gòu)靈活,有較強(qiáng)的通用性,適合于模塊化設(shè)計(jì),從而能夠提高算法效率,同時(shí)其開發(fā)周期短,系統(tǒng)易于維護(hù)和升級,適合于實(shí)時(shí)視頻圖像處理。
在本設(shè)計(jì)中充分考慮到FPGA和DSP在圖像采集處理各層次應(yīng)用有著不同的優(yōu)勢,采用FPGA+DSP結(jié)構(gòu),通過合理的硬件資源分配及算法處理,實(shí)現(xiàn)了高清圖像采集和實(shí)時(shí)處理。在FPGA內(nèi)設(shè)計(jì)采集模塊和預(yù)處理模塊,充分利用FPGA時(shí)鐘頻率高,內(nèi)部延時(shí)小,運(yùn)行速度快,全部控制邏輯由硬件完成的特點(diǎn),主要完成圖像數(shù)據(jù)采集、數(shù)據(jù)分路和圖像縮放預(yù)處理。通過FPGA內(nèi)模塊間協(xié)調(diào),在硬件層面完成數(shù)據(jù)的分路。在
DSP內(nèi)則是利用DSP運(yùn)算速度快、尋址方式靈活、通信機(jī)制強(qiáng)大等特點(diǎn),主要完成系統(tǒng)配置、圖像格式轉(zhuǎn)化、壓縮處理以及圖像的智能分析處理、傳輸接口配置等。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 圖像采集模塊設(shè)計(jì)
圖像采集模塊主要包括傳感器工作模式配置、圖像采集控制和數(shù)據(jù)傳輸。整個(gè)模塊的功能示意圖如圖2所示。FPGA片內(nèi)模擬I2C控制器,將COMS圖像傳感器OV5642初始化。OV5642在外部時(shí)鐘VXCLK作用下,輸出Bayer RGB格式圖像數(shù)據(jù)和同步時(shí)鐘。FPGA內(nèi)部設(shè)計(jì)的采集控制器在PCLK,HREF,VSYNC同步時(shí)鐘作用下,產(chǎn)生相應(yīng)控制讀寫信號,進(jìn)行數(shù)據(jù)傳輸采集。
通過SCCB總線設(shè)置OV5642相關(guān)的內(nèi)部控制寄存器,實(shí)現(xiàn)對OV5642初始化,從而確定輸出分辨率、開窗位置、曝光時(shí)間等。SCCB總線是Omni Vision公司特有的一種三線串行攝像控制總線。三線中的SCCB_E為片選信號線,本文中只有OV5642一個(gè)從設(shè)備,所以SCCB_E直接置低,始終選中OV5642。在模擬I2C控制器控制下,第一步,SIO_D線傳輸OV5642的器件地址加上寫操作標(biāo)識,確定操作的器件和注明是寫操作;第二步,傳輸內(nèi)部的目標(biāo)寄存器的地址;第三步,傳輸要設(shè)置的數(shù)據(jù)并寫入到對應(yīng)的寄存器中,完成寄存器配置。
采集控制器是在FPGA設(shè)置的一個(gè)時(shí)序邏輯控制器,主要產(chǎn)生OV5642需要的外部時(shí)鐘XVCLK和根據(jù)OV5642輸出的像素時(shí)鐘PCLK,行參考時(shí)鐘 HREF,幀同步時(shí)鐘VSYNC產(chǎn)生讀寫控制存儲信號。通過對PCLK,HREF,VSYNC時(shí)鐘的計(jì)數(shù),可以得到寫滿一行或者一幀信號,為后繼處理提供同步時(shí)鐘和使能信號。
2.2 預(yù)處理模塊設(shè)計(jì)
預(yù)處理模塊主要是利用FPGA可編程性和內(nèi)部豐富的硬件資源,在硬件層面選擇性的傳輸數(shù)據(jù),將高清圖像的分辨率降低。FPGA采集到的原始圖像數(shù)據(jù)格式為Bayer RGB格式,每個(gè)像素點(diǎn)只有一種顏色分量,其余顏色分量可以通過插值算法恢復(fù)。如圖3左邊所示就是4×4的Bayer RGB格式。為了保持?jǐn)?shù)據(jù)格式一致性,需要每隔2行或者每隔2列選擇一個(gè)像素傳輸。本設(shè)計(jì)采用在行方向上每隔2列選擇傳輸一個(gè)像素點(diǎn),在列方向上每隔2行選擇傳輸一個(gè)像素點(diǎn)。這樣能將圖像分辨率降低,達(dá)到縮放目的,如圖3所示。
圖像數(shù)據(jù)是逐個(gè)像素逐行串行傳輸?shù)?,在縮放處理上,利用PCLK,HREF和VSYNC信號時(shí)序關(guān)系產(chǎn)生計(jì)數(shù)脈沖和使能信號。在行方向上,選擇傳輸一個(gè)像素點(diǎn)數(shù)據(jù)后,利用PCLK作為列計(jì)數(shù)脈沖,每過兩個(gè)脈沖(隔兩個(gè)像素點(diǎn))再選擇傳輸一個(gè)像素點(diǎn)數(shù)據(jù),一直循環(huán)選擇,直到處理完一行圖像數(shù)據(jù)。這時(shí)根據(jù) HREF信號產(chǎn)生列計(jì)數(shù)器清零信號,將列計(jì)數(shù)器清零,暫停數(shù)據(jù)選通。在列方向上,由行計(jì)數(shù)器利用HREF信號進(jìn)行計(jì)數(shù),每過兩個(gè)計(jì)數(shù)脈沖(隔兩行圖像數(shù)據(jù)),重復(fù)行方向上的處理方式對當(dāng)前行進(jìn)行選擇數(shù)據(jù)傳輸。如此循環(huán)處理,直到一幀圖像數(shù)據(jù)處理完畢。每幀圖像處理完畢信號是由VSYNC信號產(chǎn)生的。同時(shí),VSYNC信號對行計(jì)數(shù)和列計(jì)數(shù)器清零,直到新一幀圖像到達(dá),計(jì)數(shù)器重新計(jì)數(shù),開始新的一幀圖像縮放處理。通過這樣的縮放處理,可以將2 592×1 944的圖像降為648×486的圖像,數(shù)據(jù)量得到減少。預(yù)處理模塊將縮放后圖像傳輸?shù)紻SP中處理。
2.3 SDRAM控制器(MC)的設(shè)計(jì)
SDRAM控制器模塊是FPGA內(nèi)部設(shè)計(jì)的模塊,用于將圖像數(shù)據(jù)傳輸?shù)酵獠看鎯ζ鲿捍妗D4為FPGA設(shè)計(jì)的頂層模塊示意圖。在MC控制器的內(nèi)部,采用狀態(tài)機(jī)來實(shí)現(xiàn)數(shù)據(jù)讀寫、設(shè)置模式寄存器和刷新等操作的命令譯碼,產(chǎn)生輸出給SDRlAM芯片的RAS/CAS/WE/CS/DQM等信號。已經(jīng)初始化的SDRAM在得到了RAS,CAS,WE的值后開始執(zhí)行相應(yīng)的命令。在對SDRAM進(jìn)行讀、寫操作過程中,要先進(jìn)行頁激活操作,保證存儲單元是打開的,再通過預(yù)充電命令實(shí)現(xiàn)來關(guān)閉存儲單元。在進(jìn)行寫操作時(shí),內(nèi)部的列地址和數(shù)據(jù)都會被寄存,而進(jìn)行讀操作時(shí),內(nèi)部地址被寄存,數(shù)據(jù)的讀取則發(fā)生在CAS延遲時(shí)間(通常為1~3個(gè)時(shí)鐘周期)后。SDRAM順次的進(jìn)行讀、寫操作后,當(dāng)達(dá)到突發(fā)長度或者突發(fā)終止指令出現(xiàn)時(shí),SDRAM控制器將終止其操作。
通過SDRAM控制器模塊的控制傳輸,可以將采集到圖像數(shù)據(jù)實(shí)時(shí)的傳輸?shù)酱鎯ζ骷捍?。采用控制器模式具有一定的通用性,DSP可以通過控制器模塊直接讀取存儲圖像數(shù)據(jù)進(jìn)行分析處理。
2.4 DSP子系統(tǒng)
DSP接收預(yù)處理模塊輸出的降了分辨率的Bayer RGB格式數(shù)據(jù)到數(shù)據(jù)緩存器,再將緩存數(shù)據(jù)傳到片內(nèi)preview engine模塊進(jìn)行格式轉(zhuǎn)換,將Bayer RGB格式圖像數(shù)據(jù)轉(zhuǎn)換為YUV422格式數(shù)據(jù)。DSP對YUV422格式數(shù)據(jù)進(jìn)行壓縮處理后送到輸出端口輸出。
DSP通過SDRAM控制器讀取SDRAM中的高清原始數(shù)據(jù),進(jìn)行一些智能化分析處理,如識別、驗(yàn)證等。根據(jù)處理結(jié)果和系統(tǒng)設(shè)定的閾值如光強(qiáng)變化、動靜變化等,決定是否對當(dāng)前或者前幾幀圖像進(jìn)行傳輸。高清圖像數(shù)據(jù)傳輸由DSP通過一定的相關(guān)處理結(jié)合到輸出數(shù)據(jù)流中傳輸?shù)胶蠖?,由后端提取出高清原始?shù)據(jù),進(jìn)行各種應(yīng)用。
3 結(jié)語
采用了FPGA和DSP技術(shù),設(shè)計(jì)了對CMOS圖像傳感器進(jìn)行圖像采集和處理系統(tǒng)。該系統(tǒng)直接對CMOS傳感器進(jìn)行原始數(shù)據(jù)的采集,為后繼處理的靈活性和應(yīng)用的多樣性做好數(shù)據(jù)基礎(chǔ)。在FPGA中將數(shù)據(jù)分成兩路,一路作為原始數(shù)據(jù)暫存到SDRAM,一路按照傳統(tǒng)的處理、輸出。這樣既能實(shí)現(xiàn)了傳統(tǒng)圖像采集處理系統(tǒng)的功能,又能保存原始的數(shù)據(jù)為進(jìn)一步的應(yīng)用開發(fā)提供了硬件基礎(chǔ),能較好地解決網(wǎng)絡(luò)傳輸帶寬不足與關(guān)鍵時(shí)刻或者關(guān)鍵場景需要高分辨率圖像進(jìn)行分析處理的矛盾要求。采用FPGA+DSP的硬件組合具有相當(dāng)大的靈活性,后期功能開發(fā)潛力大,可以根據(jù)不同的軟件配置,實(shí)現(xiàn)多種功能,具有良好的應(yīng)用前景。