首頁(yè)>>>技術(shù)>>>視像通信  視像通信產(chǎn)品

基于WinCE的ARM視頻監控系統解析

2008/02/26

  設計一種嵌入式系統,以WinCE操作系統和ARM硬件平臺為核心實(shí)現對現場(chǎng)的實(shí)時(shí)監控;通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò )把視頻圖像傳輸到主機端,以實(shí)現分析、存儲及顯示等功能。

  數字視頻監控系統是以計算機或嵌入式系統為中心、視頻處理技術(shù)為基礎組建的的一種新型監控系統,系統采用符合圖像數據壓縮的國際標準,綜合利用圖像傳感器、計算機網(wǎng)絡(luò )、自動(dòng)控制和人工智能等技術(shù)。由于數字視頻監控系統對視頻圖像進(jìn)行了數字化,所以與傳統的模擬監控系統相比,數字監控具有許多優(yōu)點(diǎn)。數字化的視頻系統可以充分利用計算機的快速處理能力,對其進(jìn)行壓縮、分析、存儲和顯示。

  數字化視頻處理技術(shù)提高了圖像的質(zhì)量與監控效率,使系統易于管理和維護。整個(gè)系統是模塊化結構,體積小,易于安裝、使用和維護。正是由于數字視頻監控技術(shù)具有傳統模擬監控技術(shù)無(wú)法比擬的優(yōu)點(diǎn),而且符合當前信息社會(huì )中數字化、網(wǎng)絡(luò )化和智能化的發(fā)展趨勢,所以數字視頻監控技術(shù)正在逐步取代模擬監控技術(shù),廣泛應用于各行各業(yè)。嵌入式系統以體積小、實(shí)時(shí)性強、性?xún)r(jià)比高、穩定性好等特點(diǎn)在社會(huì )的各個(gè)領(lǐng)域中得到了廣泛應用。筆者設計的一種嵌入式系統,以WinCE操作系統和ARM硬件平臺為核心實(shí)現了對

  現場(chǎng)的實(shí)時(shí)監控,并通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò )把視頻圖像傳輸到主機端,以實(shí)現分析、存儲和顯示等功能。

1.系統設計

  本系統主要由操作系統定制、視頻圖像采集、視頻圖像無(wú)線(xiàn)傳輸三部分組成。系統的核心芯片選用基于A(yíng)RM920T內核的S3C2410嵌入式微處理器,軟件環(huán)境選用Microsoft Windows CE操作系統。系統首先通過(guò)USB攝像頭采集現場(chǎng)實(shí)時(shí)視頻信息,并對其進(jìn)行壓縮。然后,使用兩塊無(wú)線(xiàn)網(wǎng)卡在A(yíng)RM開(kāi)發(fā)板與上位機之間構建一個(gè)無(wú)線(xiàn)局域網(wǎng)絡(luò ),從而將壓縮的視頻數據傳輸到主機端,終端用戶(hù)即可在主機端通過(guò)流媒體播放程序查看遠程視頻影像。視頻監控系統總體結構框圖如圖l所示。

圖l、視頻監控系統總體結構框圖

2.操作系統的定制

  系統硬件平臺的核心芯片選用了S3C2410處理器,最高頻率可達203 MHz。S3C2410處理器是Samsung公司基于A(yíng)RM公司的ARM920T處理器核,采用O.18μm制造工藝的32位微控制器。該處理器具有較高的集成度,簡(jiǎn)化了應用系統的硬件設計,提高了系統的可靠性。開(kāi)發(fā)扳上還擴展了4MB的NOR Flash、64 MB的NAND Flash和64 MB的DRAM。

  系統選用了Microsoft Willdows CE(簡(jiǎn)稱(chēng)“WinCE”)操作系統。WinCE是一個(gè)緊湊的、高效且可擴展的32位操作系統,適用于各種嵌入式系統和產(chǎn)品。它擁有多線(xiàn)程、多任務(wù)和確定性的實(shí)時(shí)、完全搶占式優(yōu)先級的操作系統環(huán)境,專(zhuān)門(mén)面向只有有限資源的硬件系統;同時(shí),它的模塊化設計方式使得系統開(kāi)發(fā)人員和應用開(kāi)發(fā)人員能夠為多種多樣的產(chǎn)品來(lái)定制它,可以選擇、組合和配置WinCE的模塊和組件來(lái)創(chuàng )建用戶(hù)版的操作系統。

  在WinCE產(chǎn)品開(kāi)發(fā)中,主要有內核定制和應用程序開(kāi)發(fā)兩項非常重要的工作。微軟在兩方面都提供了良好的開(kāi)發(fā)工具,即內核定制工具Platform Builder(簡(jiǎn)稱(chēng)“PB”)和應用程序開(kāi)發(fā)工具Embedded Visual C++(簡(jiǎn)稱(chēng)“EVC”)。

  在系統定制過(guò)程中,各部分的關(guān)系如圖2所示。

3.視頻圖像采集

  3.1 攝像頭驅動(dòng)

  圖像采集模塊的硬件資源選用了當前市面上應用最廣泛的USB接口的中星微攝像頭。該款攝像頭造價(jià)低廉,成像效果好,用于本系統中體現出了較高的性?xún)r(jià)比。系統在進(jìn)行視頻采集前,首先要檢測設定視頻源。系統啟動(dòng)后,WinCE操作系統會(huì )自動(dòng)檢測攝像頭是否連接好。本系統在定制WinCE操作系統時(shí),通過(guò)修改操作系統配置和注冊表。可以使系統自動(dòng)加載攝像頭在WinCE下的驅動(dòng)程序ZC030x.dll。

  系統自動(dòng)加載驅動(dòng)程序時(shí),首先要將驅動(dòng)程序復制到\WINDOWS文件夾下,然后向注冊表中寫(xiě)入攝像頭的驅動(dòng)信息:


  其中,prefix為設備文件名,D11為驅動(dòng)的文件名,Order為設備文件名索引。硬件配置完成后啟動(dòng)操作系統,就可以自動(dòng)加載驅動(dòng),運行應用程序進(jìn)行圖像采集了。

  3.2 圖像采集程序

  中星微攝像頭采用了中星微301PLUS快速主控芯片。該芯片是一款高性能圖像壓縮芯片,輸出MIPEG視頻流數據。MIPEG(Motion JPEG)主要是基于靜態(tài)視頻壓縮發(fā)展起來(lái)的技術(shù),特點(diǎn)是基本不考慮視頻流中不同幀之間的變化,只單獨對某一幀進(jìn)行壓縮,通常可達到6:1的壓縮率。它的誤差穩定性非常好,可以獲取清晰度很高的視頻圖像,而且還可以靈活設置各路視頻清晰度,壓縮幀數。

  本系統直接從攝像頭驅動(dòng)中獲取MJPEG視頻流數據,圖像采集流程如圖3所示。

  圖像采集模塊用到的主要函數有:      視頻采集部分還有查詢(xún)視頻采集格式、設置明暗度、設置對比度等相關(guān)函數,不再詳述。

4.視頻傳輸部分

  4.1 配置無(wú)線(xiàn)網(wǎng)卡

  圖像傳輸模塊主要是通過(guò)USB接口的無(wú)線(xiàn)網(wǎng)卡來(lái)實(shí)現的。該無(wú)線(xiàn)網(wǎng)卡可與S3C2410集成的USB主機接口直接相連,工作在2.4 GHz的ISM頻段,采用直接序列擴頻通信方式,遵從802.11g協(xié)議,傳輸速度可達54Mbps,室內有效距離為100 m,能夠滿(mǎn)足局域網(wǎng)內視頻傳輸的要求。本系統通過(guò)開(kāi)發(fā)板和主機之間的無(wú)線(xiàn)網(wǎng)卡構建無(wú)線(xiàn)局域網(wǎng)絡(luò ),能夠實(shí)現點(diǎn)對點(diǎn)的無(wú)縫連接,用戶(hù)通過(guò)此無(wú)線(xiàn)網(wǎng)絡(luò )可以實(shí)現文件傳輸、視頻通信等應用。

  開(kāi)發(fā)板端的無(wú)線(xiàn)網(wǎng)卡也需要加載驅動(dòng)才能運行。本系統在定制WinCE操作系統時(shí),首先將無(wú)線(xiàn)網(wǎng)卡的驅動(dòng)程序復制到\WINDOWS文件夾下,然后向注冊表中寫(xiě)入無(wú)線(xiàn)網(wǎng)卡的驅動(dòng)信息。WinCE操作系統啟動(dòng)后會(huì )自動(dòng)檢測無(wú)線(xiàn)網(wǎng)卡是否連接好,并加載驅動(dòng)程序,此時(shí),就可以通過(guò)應用程序調用此無(wú)線(xiàn)網(wǎng)卡了。在無(wú)線(xiàn)傳輸時(shí),注意要把開(kāi)發(fā)板和主機設置在同一IP網(wǎng)段。

  4.2 傳輸視頻數據

  實(shí)時(shí)傳輸協(xié)議RTP(Real time Transport Protocol)是一種實(shí)時(shí)流式傳輸協(xié)議,能夠保證媒體信號帶寬與當前網(wǎng)絡(luò )狀況相匹配,在一對一(umcast,單播)或者一對多 (multicast,多播)的網(wǎng)絡(luò )環(huán)境中實(shí)現流媒體數據的實(shí)時(shí)傳輸。RTP通常使用UDP來(lái)進(jìn)行多媒體數據的傳輸。整個(gè)RTP協(xié)議由兩個(gè)密切相關(guān)的部分組成:RTP數據協(xié)議和RTCP控制協(xié)議。

  針對系統數據的收發(fā)要求,采用了開(kāi)源代碼JRT-PLIB提供的RTP協(xié)議棧。JRTPLIB是一個(gè)面向對象的RTP庫,完全遵循RFC1889設計。開(kāi)發(fā)人員只要初步了解RTP協(xié)議就可以開(kāi)發(fā)出高質(zhì)量的音/視頻傳輸程序。把它移植到EVC上,稍作修改就可以應用在WinCE操作系統的ARM開(kāi)發(fā)板上了。

  4.2.1 建立RTP的數據發(fā)送和接收

  JRTPLIB 提供的RTPSession類(lèi)可以實(shí)現RTP的數據發(fā)送和接收。RTP數據發(fā)送和接收的初始化步驟基本相同。首先設置時(shí)間戳、最大的RTP包尺寸、數據超時(shí)等會(huì )話(huà)參數,然后設置基端口(注意這個(gè)端口必須是偶數,默認值為5000)。在設置好這些參數之后,就可以使用RTPSession的Create方法建立RTP數據接收和發(fā)送了。

  數據發(fā)送端使用RTPIPv4Address(intIP,PORT_DATA)建立一個(gè)新的地址,再使用AddDestination將這個(gè)地址增加到發(fā)送的地址列表中。然后,調用SendPacket函數發(fā)送RTP數據。

  在數據接收端建立RTP會(huì )話(huà)并且增加了目標地址后,就可以從目標地址接收數據了。此時(shí)將調用OnRtpPacket函數接收RTP數據,在這個(gè)函數里取得裝載數據并使用。在OnRTPPacket函數中,調用函數zc030x_OutPicture(&m_pDlg->frame),對接收到的數據進(jìn)行解碼。最后,調用函數StretchDIBits(),在當前窗口中顯示視頻圖像。

  4.2.2 RTP的控制協(xié)議——RTCP

  RTCP(Real-time Transport Control Protocol)和RTP一起提供流量控制和擁塞控制服務(wù)。在RTP會(huì )話(huà)期間,各參與者周期性地傳送RTCP包。RTCP包中含有已發(fā)送的數據包的數量、丟失的數據包的數量等統計資料,因此,服務(wù)器可以利用這砦信息動(dòng)態(tài)地改變傳輸速率,甚至改變有效載荷類(lèi)型。RTP和RTCP配合使用,以有效的反饋和最小的開(kāi)銷(xiāo)使傳輸效率達到最佳效果。

  JRTPLIB是一個(gè)高度封裝的RTP庫,調用PollData()或者SendPacket()方法后,JRTPLIB能夠自動(dòng)對到達的RTCP數據報進(jìn)行處理,并在需要時(shí)發(fā)送RTCP數據報,從而確保整個(gè)RTP會(huì )話(huà)過(guò)程的正確性。在RTP數據收發(fā)中,也可以通過(guò)調用RTPSession類(lèi)提供的方法選擇當前RTP會(huì )話(huà)需要發(fā)送的控制信息,并對控制信息進(jìn)行設置。

結語(yǔ)

  本系統基于S3C2410平臺和WinCE操作系統,通過(guò)USB攝像頭采集現場(chǎng)實(shí)時(shí)視頻信息,并對其進(jìn)行壓縮。然后,用兩塊無(wú)線(xiàn)網(wǎng)卡在開(kāi)發(fā)板與上位機之間構建無(wú)線(xiàn)局域網(wǎng)絡(luò ),使用實(shí)時(shí)流式傳輸方式實(shí)現了視頻數據的無(wú)線(xiàn)傳輸。整個(gè)系統具有穩定可靠、安裝簡(jiǎn)便、成本低廉等特點(diǎn),可以應用在遠程監控、工業(yè)控制、視頻會(huì )議、可視電活等諸多領(lǐng)域。

電子產(chǎn)品世界



相關(guān)鏈接:
流媒體廣告插播技術(shù)走俏2008 2008-02-26
從中國南方雪災談可視化指揮調度的應用 2008-02-26
醫藥制造視頻會(huì )議助力行業(yè)信息化 2008-02-26
如何充分發(fā)揮COOCO視頻會(huì )議系統作用 2008-02-22
淺析移動(dòng)多媒體的貨幣化進(jìn)程 2008-02-21

分類(lèi)信息:        
亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 益阳市| 蓬安县| 哈密市| 昂仁县| 清新县| 庐江县| 界首市| 永嘉县| 成武县| 和硕县| 高碑店市| 张家港市| 巴林左旗| 六枝特区| 衡阳市| 茌平县| 舟山市| 峨边| 兖州市| 明溪县| 麦盖提县| 宜川县| 余干县| 车险| 通海县| 威宁| 肇东市| 丰原市| 忻州市| 于都县| 阿克苏市| 苗栗县| 北川| 贵南县| 吴堡县| 高碑店市| 景谷| 永善县| 桂平市| 宁陵县| 德化县| http://444 http://444 http://444 http://444 http://444 http://444