引言
隨著科學技術的發展和社會發展應用需求,人們對視頻圖像采集處理高清化,傳輸實時化和控制智能化的要求越來越高。高清視頻圖像在軍事、科研、安防、工業生產、醫療衛生等領域得到了更為廣泛的應用。
特別在安防行業,現有系統由于技術、成本和傳輸距離的原因,傳輸帶寬都不高,直接實時傳輸高清視頻圖像難以實現,但是某些關鍵時刻或者特殊蜴景卻需要高清晰度、高分辨率的圖像進行細節的分析處理,便于智能化的應用。本文為了解決這一個矛盾的需求,提出了在視頻監控系統的前端——圖像采集和處理將采集到的原始高清圖像數據分成兩路同時進行處理的思想:一路按照傳統的處理方法壓縮處理轉為標清視頻流傳輸,實現監控的實時化;另一路數據由外部擴展SDRAM緩存,DSP實時讀取緩存數據進行智能分析處理,根據分析處理結果決定是否傳輸高清圖像或者結果。基于不同處理芯片在圖像處理各層次應用有不同的針對性,合理分配硬件資源及算法,能夠顯著提離系統整體性能。本文采用FPGA+DSP 技術實現高清圖攥采集和處理,并在硬件層面將數據分路處理。
1 系統結構及原理
本文設計的硬件系統,就是利用FPGA和DSP對高分辨率CMOS數字圖像傳感器OV5642進行圖像采集和處理。系統完成對FPGA,DSP 和OV5642 芯片進行初始化。FPGA 對 OV5642進行全分辨率的數據采集。FPGA將采集到的圖像數據成兩路處理,一路直接原始高清數據傳輸外部SDRAM緩存,由DSP讀取緩存數據進行智能分析處理;另一路由FPGA進行硬件預處理,將原始高清圖像轉換為合適的分辨率,送到DSP片內進行格式轉換、壓縮等處理后傳輸到外部接口。DSP根據分析處理結果和設置閾值條件,決定是否對高清圖像數據進行傳輸。需要傳輸的圖像幀融入數據流中傳輸。外部擴展的輸出接口可以將經過系統處理的數據流傳輸到本地監控或者遠程監控。系統原理框圖如圖1所示。
在高清實時圖像采集處理中,圖像采集的速度高。低層的預處理中要處理的數據量大,對處理速度要求高,但運算結構相對比較簡單,適合用兼顧速度及靈活性的 FPGA進行硬件實現。高層的處理算法的特點是處理的數據量較低層算法少,但算法的結構復雜,適合用運算速度高、尋址方式靈活、通信機制強的 DSP芯片來實現。DSP+FPGA架構的最大特點是結構靈活,有較強的通用性,適合于模塊化設計,從而能夠提高算法效率,同時其開發周期短,系統易于維護和升級,適合于實時視頻圖像處理。
圖1 系統原理框圖
在本設計中充分考慮到FPGA和DSP在圖像采集處理各層次應用有著不同的優勢,采用FPGA+DSP結構,通過合理的硬件資源分配及算法處理,實現了高清圖像采集和實時處理。在FPGA內設計采集模塊和預處理模塊,充分利用FPGA時鐘頻率高,內部延時小,運行速度快,全部控制邏镢由硬件完成的特點,主要完戚圖像數據采集、數據分路和圖像縮放預處理。通過FPGA內模塊間協調,在硬件層面完成數據的分路。在DSP內則是利用DSP運算速度快、尋址方式靈活、通信機制強大等特點,主要完成系統配置、圖像格式轉化、壓縮處理以及圖像的智能分析處理、傳輸接口配置等。
2 系統硬件設計
2.1 圖像采集模塊設計
圖像采集模塊主要包括傳感器工作模式配置、圖像采集控制和數搌傳輸。整個模塊的功能示意圖如圖2所示。FPGA片內模擬I2C控制器,將COMS圖像傳感器OV5642初始化。OV5642在外部時鐘VXCLKI作用下,輸出Bayer RGB格式圖像數據和同步時鐘。FPGA內部設計的采集控制器在PCLK,HREF,VSYNC 同步時鐘作用下,產生相應控制讀寫信號,進行數據傳輸采集。
通過SCCB總線設置OV5642 相關的內部控制寄存器,實現對OV5642 初始化,從而確定輸出分辨率、開窗位置、曝光時間等。SCCB總線是Omni Vision公司特有的一種三線串行攝像控制總線。三線中的SCCB_E)為片選信號線,本文中只有OV5642 一個從設各,所以SCCB_E直接置低,始終選中OV5642。在模擬I2C控制器控制下,第一步,SIO_D線傳輸OV5642的器件地址加上寫操作標識,確定操作的器件和注明是寫操作;第二步,傳輸內部的目標寄存器的地址;第三步,傳輸要設置的數據并寫人到對應的寄存器中,完成寄存器配置。
采集控制器是在FPGA設置的一個時序邏輯控制器.主要產生OV5642需要的外部時鐘XVCLK和根據OV5612輸出的像素時鐘PCLK,行參考時鐘HREF,幀同步時鐘VSYNC產生讀寫控制存儲信號。通過對PCLK。HREF,VSYNC時鐘的計數,可以得到寫滿一行或者一幀信號,為后繼處理提供同步時鐘和使能信號。
2.2 預處理饃塊設計
預處理模塊主要是利用FPGA可編程性和內部豐富的硬件資源。在硬件層面選擇性的傳輸數據,將高清圖像的分辨率降低。FPGA采集到的原始圖像數據格式為Bayer RGB輅式。每個像素點只有一種顏色分量,其余顏色分量可以通過插值算法恢復。如圖3左邊所示就是4×4的BayerRGB格式。為了保持數據格式一致性,需要每隔2行或者每隔2列選擇一個像素傳輸。本設計采用在行方向上每隔2列選擇傳輸一個像素點,在列J方向上每隔2行選擇傳輸一個像素點。這樣能將圖像分辨率降低,達到縮放目的。如圖3所示。
圖像數據是逐個像素逐行串行傳輸的。在縮放處理上,利用PCLK,HREF和VSYNC信號時亨關系產生計數脈沖和使能信號。在行方向上選擇傳琦一個像素點數據后,利用PCLK作為列計數泳沖。每過兩個脈沖(隔兩個像素點)再選擇傳輸一個像素點數據。一直循環選擇,直到處理完一行圖像數據。這時根據HREF信號產生列計數器清零信號.將列計數器清零,暫停數據選通。在列方向上,由行計數器利用HREF信號進行計數,每過兩個計數脈沖,隔兩行圖像數據),重復行方向上的處理方式對當前行進行選擇數據傳輸。如此循環處理,直到一幀圖像數據處理完畢。每幀圖像處理完畢信號是由VSYNC信號產生的。同時,VSYNC信號對行計數和列計數器清零,直到新一幀圖像到達,計數器重新計數,開始新的一幀圖像縮放處理。通過這樣的縮放處理,可以將2592×1944的圖像降為648×486的圖像,數據量得到減少。預處理模塊將縮放后圖像傳輸到DSP中處理。
2.3 SDRAM控制器(MC)的設計
SDRAM控制器模塊是FPGA內部設計的模塊,用于將圖像數據傳輸到外部存儲器暫存。圖4為FPGA設計的頂層模塊示意圖。在MC控制器的內部,采用狀態機來實瑰數據讀寫、設置模式寄存器和刷新等操的命令譯碼,產生輸出給SDRAM芯片的RAS/CAS/WE/CS/DQM 等信號。已經初始化的SDRAM在得到了RAS, CAS,WE的值后開始執行相應的命令。在對SDRAM進行讀、寫操作過程中,要先進行頁激活操作,保證存儲單元是打開的,再通過預充電命令實現來關閉存儲單元。在進行寫操作時,內部的列地址和數據都會被寄存,而進行讀操作時,內部地址被寄存,數據的讀取則發生在CAS 延時時間(通常為1~3個時鐘周期)后。SDRAM順次的進行讀、寫操作后”當達到突發長度或者突發終止指拿出哪時,SDRAM控制器將終止其操作。
通過SDRAM控制器模塊的控制傳輸,可以將采集到圖像數據實時的傳輸到存儲器件暫存。采用控制器模式具有一定的通用性,DSP可以通過控制器模塊直接讀取存儲圖像數據進行分析處理。
2.4 DSP子矯統
DSP接收預處理模塊輸出的降了分辨率的Bayer RGB 格式數據到數據緩存器,再將緩存數據傳到片內prevlew engine 模擬進行格式轉換,將Bayer RGB格式圖像數據轉換為YUV422格式數據。DSP對YUV422 格式數據進行壓縮處理后送到輸出端口輸出。
DSP通過SDRAM控制器讀取SDRAM中的高清原始數據,進行一些智能化分析處理,如識別、驗證等。根據處理結果和系統設定的閾值如光強變化、動靜變化Ht-f決定是否對當前或者前幾幀圖像進行傳輸。高清圖像數據傳輸由DSP通過-定的相關處理結合到輸出數據流中傳輸到后端,由后端提取出高清原始數據,進行各種應用。
3結語
采用了FPGA 和DSP技術,設計了對CMOS圖像傳感器進行圖像采集和處理系統。該系統直接對CMOS傳感器進行原始數據的采集,為后繼處理的靈活性和應用的多樣性做好數據基礎。在FPGA中將數據分成兩路,一路作為原始數據暫存到SDRAM,一路按照傳統的處理、輸出。這樣既能實現傳統圖像采集處理系統的功能,又能保存原始的數搌為進一步的應用開發提供了硬件基礎,能較好地解決網絡傳輸帶寬不足與關鍵時刻或者關鍵場景需要高分辨率圖像進行分析處理的矛靨要求。采用FPGA+DSP的硬件組合具有相當大的靈活性,后期功能開發潛力大,可以根據不同的軟件配置,實現多種功能,具有良好的應用前景。
-
dsp
+關注
關注
554文章
8059瀏覽量
349776 -
FPGA
+關注
關注
1630文章
21786瀏覽量
605053 -
CMOS
+關注
關注
58文章
5733瀏覽量
235865
發布評論請先 登錄
相關推薦
評論