圖像采集壓縮和高清分析并行處理的硬件系統(tǒng)設(shè)計(jì)
通過SCCB總線設(shè)置OV5642相關(guān)的內(nèi)部控制寄存器,實(shí)現(xiàn)對(duì)OV5642初始化,從而確定輸出分辨率、開窗位置、曝光時(shí)間等。SCCB總線是Omni Vision公司特有的一種三線串行攝像控制總線。三線中的SCCB_E為片選信號(hào)線,本文中只有OV5642一個(gè)從設(shè)備,所以SCCB_E直接置低,始終選中OV5642。在模擬I2C控制器控制下,第一步,SIO_D線傳輸OV5642的器件地址加上寫操作標(biāo)識(shí),確定操作的器件和注明是寫操作;第二步,傳輸內(nèi)部的目標(biāo)寄存器的地址;第三步,傳輸要設(shè)置的數(shù)據(jù)并寫入到對(duì)應(yīng)的寄存器中,完成寄存器配置。
采集控制器是在FPGA設(shè)置的一個(gè)時(shí)序邏輯控制器,主要產(chǎn)生OV5642需要的外部時(shí)鐘XVCLK和根據(jù)OV5642輸出的像素時(shí)鐘PCLK,行參考時(shí)鐘 HREF,幀同步時(shí)鐘VSYNC產(chǎn)生讀寫控制存儲(chǔ)信號(hào)。通過對(duì)PCLK,HREF,VSYNC時(shí)鐘的計(jì)數(shù),可以得到寫滿一行或者一幀信號(hào),為后繼處理提供同步時(shí)鐘和使能信號(hào)。
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ù)模诳s放處理上,利用PCLK,HREF和VSYNC信號(hào)時(shí)序關(guān)系產(chǎn)生計(jì)數(shù)脈沖和使能信號(hào)。在行方向上,選擇傳輸一個(gè)像素點(diǎn)數(shù)據(jù)后,利用PCLK作為列計(jì)數(shù)脈沖,每過兩個(gè)脈沖(隔兩個(gè)像素點(diǎn))再選擇傳輸一個(gè)像素點(diǎn)數(shù)據(jù),一直循環(huán)選擇,直到處理完一行圖像數(shù)據(jù)。這時(shí)根據(jù) HREF信號(hào)產(chǎn)生列計(jì)數(shù)器清零信號(hào),將列計(jì)數(shù)器清零,暫停數(shù)據(jù)選通。在列方向上,由行計(jì)數(shù)器利用HREF信號(hào)進(jìn)行計(jì)數(shù),每過兩個(gè)計(jì)數(shù)脈沖(隔兩行圖像數(shù)據(jù)),重復(fù)行方向上的處理方式對(duì)當(dāng)前行進(jìn)行選擇數(shù)據(jù)傳輸。如此循環(huán)處理,直到一幀圖像數(shù)據(jù)處理完畢。每幀圖像處理完畢信號(hào)是由VSYNC信號(hào)產(chǎn)生的。同時(shí),VSYNC信號(hào)對(duì)行計(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ù)酵獠看鎯?chǔ)器暫存。圖4為FPGA設(shè)計(jì)的頂層模塊示意圖。在MC控制器的內(nèi)部,采用狀態(tài)機(jī)來實(shí)現(xiàn)數(shù)據(jù)讀寫、設(shè)置模式寄存器和刷新等操作的命令譯碼,產(chǎn)生輸出給SDRlAM芯片的RAS/CAS/WE/CS/DQM等信號(hào)。已經(jīng)初始化的SDRAM在得到了RAS,CAS,WE的值后開始執(zhí)行相應(yīng)的命令。在對(duì)SDRAM進(jìn)行讀、寫操作過程中,要先進(jìn)行頁(yè)激活操作,保證存儲(chǔ)單元是打開的,再通過預(yù)充電命令實(shí)現(xiàn)來關(guān)閉存儲(chǔ)單元。在進(jìn)行寫操作時(shí),內(nèi)部的列地址和數(shù)據(jù)都會(huì)被寄存,而進(jìn)行讀操作時(shí),內(nèi)部地址被寄存,數(shù)據(jù)的讀取則發(fā)生在CAS延遲時(shí)間(通常為1~3個(gè)時(shí)鐘周期)后。SDRAM順次的進(jìn)行讀、寫操作后,當(dāng)達(dá)到突發(fā)長(zhǎng)度或者突發(fā)終止指令出現(xiàn)時(shí),SDRAM控制器將終止其操作。
通過SDRAM控制器模塊的控制傳輸,可以將采集到圖像數(shù)據(jù)實(shí)時(shí)的傳輸?shù)酱鎯?chǔ)器件暫存。采用控制器模式具有一定的通用性,DSP可以通過控制器模塊直接讀取存儲(chǔ)圖像數(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對(duì)YUV422格式數(shù)據(jù)進(jìn)行壓縮處理后送到輸出端口輸出。
DSP通過SDRAM控制器讀取SDRAM中的高清原始數(shù)據(jù),進(jìn)行一些智能化分析處理,如識(shí)別、驗(yàn)證等。根據(jù)處理結(jié)果和系統(tǒng)設(shè)定的閾值如光強(qiáng)變化、動(dòng)靜變化等,決定是否對(duì)當(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ì)了對(duì)CMOS圖像傳感器進(jìn)行圖像采集和處理系統(tǒng)。該系統(tǒng)直接對(duì)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)鍵場(chǎng)景需要高分辨率圖像進(jìn)行分析處理的矛盾要求。采用FPGA+DSP的硬件組合具有相當(dāng)大的靈活性,后期功能開發(fā)潛力大,可以根據(jù)不同的軟件配置,實(shí)現(xiàn)多種功能,具有良好的應(yīng)用前景。
評(píng)論