1系統(tǒng)設(shè)計
本系統(tǒng)主要由操作系統(tǒng)定制、視頻圖像采集、視頻圖像無線傳輸三部分組成。系統(tǒng)的核心芯片選用基于ARM920T內(nèi)核的S3C2410嵌入式微處理器,軟件環(huán)境選用MicrosoftWindowsCE操作系統(tǒng)。系統(tǒng)首先通過USB攝像頭采集現(xiàn)場實時視頻信息,并對其進行壓縮。然后,使用兩塊無線網(wǎng)卡在ARM開發(fā)板與上位機之間構(gòu)建一個無線局域網(wǎng)絡(luò),從而將壓縮的視頻數(shù)據(jù)傳輸?shù)街鳈C端,終端用戶即可在主機端通過流媒體播放程序查看遠程視頻影像。視頻監(jiān)控系統(tǒng)總體結(jié)構(gòu)框圖如圖l所示。
圖l、視頻監(jiān)控系統(tǒng)總體結(jié)構(gòu)框圖
2操作系統(tǒng)的定制
系統(tǒng)硬件平臺的核心芯片選用了S3C2410處理器,最高頻率可達203MHz。S3C2410處理器是Samsung公司基于ARM公司的ARM920T處理器核,采用O.18μm制造工藝的32位微控制器。該處理器具有較高的集成度,簡化了應(yīng)用系統(tǒng)的硬件設(shè)計,提高了系統(tǒng)的可靠性。開發(fā)扳上還擴展了4MB的NORFlash、64MB的NANDFlash和64MB的DRAM。
系統(tǒng)選用了MicrosoftWilldowsCE(簡稱“WinCE”)操作系統(tǒng)。WinCE是一個緊湊的、高效且可擴展的32位操作系統(tǒng),適用于各種嵌入式系統(tǒng)和產(chǎn)品。它擁有多線程、多任務(wù)和確定性的實時、完全搶占式優(yōu)先級的操作系統(tǒng)環(huán)境,專門面向只有有限資源的硬件系統(tǒng);同時,它的模塊化設(shè)計方式使得系統(tǒng)開發(fā)人員和應(yīng)用開發(fā)人員能夠為多種多樣的產(chǎn)品來定制它,可以選擇、組合和配置WinCE的模塊和組件來創(chuàng)建用戶版的操作系統(tǒng)。
在WinCE產(chǎn)品開發(fā)中,主要有內(nèi)核定制和應(yīng)用程序開發(fā)兩項非常重要的工作。微軟在兩方面都提供了良好的開發(fā)工具,即內(nèi)核定制工具PlatformBuilder(簡稱“PB”)和應(yīng)用程序開發(fā)工具EmbeddedVisualC++(簡稱“EVC”)。
在系統(tǒng)定制過程中,各部分的關(guān)系如圖2所示。
3視頻圖像采集
3.1攝像頭驅(qū)動
圖像采集模塊的硬件資源選用了當(dāng)前市面上應(yīng)用最廣泛的USB接口的中星微攝像頭。該款攝像頭造價低廉,成像效果好,用于本系統(tǒng)中體現(xiàn)出了較高的性價比。系統(tǒng)在進行視頻采集前,首先要檢測設(shè)定視頻源。系統(tǒng)啟動后,WinCE操作系統(tǒng)會自動檢測攝像頭是否連接好。本系統(tǒng)在定制WinCE操作系統(tǒng)時,通過修改操作系統(tǒng)配置和注冊表??梢允瓜到y(tǒng)自動加載攝像頭在WinCE下的驅(qū)動程序ZC030x.dll。
系統(tǒng)自動加載驅(qū)動程序時,首先要將驅(qū)動程序復(fù)制到\WINDOWS文件夾下,然后向注冊表中寫入攝像頭的驅(qū)動信息:
其中,prefix為設(shè)備文件名,D11為驅(qū)動的文件名,Order為設(shè)備文件名索引。硬件配置完成后啟動操作系統(tǒng),就可以自動加載驅(qū)動,運行應(yīng)用程序進行圖像采集了。
3.2圖像采集程序
中星微攝像頭采用了中星微301PLUS快速主控芯片。該芯片是一款高性能圖像壓縮芯片,輸出MIPEG視頻流數(shù)據(jù)。MIPEG(MotionJPEG)主要是基于靜態(tài)視頻壓縮發(fā)展起來的技術(shù),特點是基本不考慮視頻流中不同幀之間的變化,只單獨對某一幀進行壓縮,通??蛇_到6:1的壓縮率。它的誤差穩(wěn)定性非常好,可以獲取清晰度很高的視頻圖像,而且還可以靈活設(shè)置各路視頻清晰度,壓縮幀數(shù)。
本系統(tǒng)直接從攝像頭驅(qū)動中獲取MJPEG視頻流數(shù)據(jù),圖像采集流程如圖3所示。
圖像采集模塊用到的主要函數(shù)有:
capInitCamera()用來初始化視頻設(shè)備,并獲取當(dāng)前可用的視頻設(shè)備數(shù)目;
capSetVideoFormat()設(shè)置視頻格式和分辨率。本系統(tǒng)使用的視頻格式為RGB24,分辨率為320×240像素;
capGrabFrsme()從驅(qū)動中抓取1幀圖像,并存儲在緩存lpFrameBuffer中;
capGetLastJpeg()將抓取的MJPEG格式的圖像轉(zhuǎn)換成JPEG格式,送到無線發(fā)送模塊。
capCloseCamera()關(guān)閉視頻設(shè)備;
視頻采集部分還有查詢視