夏振華
(長江大學(xué)電子信息學(xué)院,湖北荊州434023)
王曉爽
(長江大學(xué)工程技術(shù)學(xué)院,湖北荊州434023)
20世紀(jì)90年代末,隨著網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)以及嵌入式系統(tǒng)的飛速發(fā)展,產(chǎn)生了嵌入式網(wǎng)絡(luò)數(shù)字圖像監(jiān)控技術(shù)。這種監(jiān)控系統(tǒng)的監(jiān)控終端部分內(nèi)置了提供Web服務(wù)的圖像服務(wù)器程序,以此來完成監(jiān)控圖像的采集、壓縮編碼和動作控制等任務(wù),將壓縮編碼后的視頻數(shù)據(jù)通過B/S(Browser/Server)模式進(jìn)行網(wǎng)絡(luò)傳輸,局域網(wǎng)或者Internet上的其他的用戶可以通過網(wǎng)絡(luò)瀏覽器查看Web服務(wù)器上的監(jiān)控圖像。這種監(jiān)控系統(tǒng)如果再配合目前覆蓋面非常廣泛的移動或者聯(lián)通的GPRS網(wǎng)絡(luò)[1],可以實(shí)現(xiàn)遠(yuǎn)程無線圖像甚至視頻傳輸,可以大大的拓寬圖像監(jiān)控的地理范圍和應(yīng)用領(lǐng)域。筆者提出了一種基于GPRS無線傳輸?shù)那度胧奖O(jiān)控系統(tǒng)的設(shè)計方案,該系統(tǒng)以ARM9芯片為核心,充分利用GPRS網(wǎng)絡(luò)的優(yōu)勢,實(shí)現(xiàn)了監(jiān)控圖像的遠(yuǎn)距離無線傳輸。
系統(tǒng)由圖像監(jiān)控終端和監(jiān)控中心2部分組成,圖像監(jiān)控終端使用嵌入式系統(tǒng)加上USB攝像頭,從USB攝像頭采集得到監(jiān)控畫面,進(jìn)行壓縮編碼處理后,通過GPRS撥號的方式連入互聯(lián)網(wǎng),將壓縮的碼流經(jīng)過互聯(lián)網(wǎng)傳輸?shù)奖O(jiān)控中心,監(jiān)控中心利用操作系統(tǒng)自帶的網(wǎng)絡(luò)瀏覽器查看監(jiān)控畫面,系統(tǒng)組成框圖如圖1所示。
圖1 嵌入式視頻監(jiān)控系統(tǒng)組成框圖
在圖1中,監(jiān)控終端由帶USB攝像頭的ARM板和GPRS MODEM組成[2],ARM板端的軟件負(fù)責(zé)采集圖像,并控制GPRSMODEM實(shí)現(xiàn)互聯(lián)網(wǎng)的接入[3];監(jiān)控中心是一臺聯(lián)入互聯(lián)網(wǎng)的PC機(jī),它負(fù)責(zé)數(shù)據(jù)的接收和圖像的顯示。整個系統(tǒng)工作在B/S模式,監(jiān)控中心工作在Browser模式,監(jiān)控終端工作在Server模式。監(jiān)控中心直接采用IE瀏覽器來查看監(jiān)控畫面,不需要在PC機(jī)上運(yùn)行其他的軟件,整個系統(tǒng)的主要設(shè)計工作是嵌入式監(jiān)控終端的硬件和軟件設(shè)計。監(jiān)控終端的設(shè)計核心任務(wù)就是進(jìn)行基于Linux操作系統(tǒng)的視頻采集、傳輸?shù)能浖O(shè)計。
監(jiān)控終端采用三星公司的S3C2410嵌入式芯片為核心,其主要硬件電路由系統(tǒng)存儲電路、外圍接口電路、電源、復(fù)位電路和GPRSMODEM[4]等幾個部分組成,系統(tǒng)硬件總體結(jié)構(gòu)如圖2所示。
圖2中各硬件模塊的功能可以從圖中很方便的了解,這里不再詳述。需要注意的是USB攝像頭控制器的選擇直接關(guān)系到攝像頭驅(qū)動程序的設(shè)計[5]。目前用于攝像頭的控制器主要有中國中芯微公司的ZC030x系列芯片和美國OV公司的OV 511+芯片。中芯微公司的主流控制芯片都帶有硬件JPEG編碼模塊,利用這個特性可以直接從攝像頭得到經(jīng)過壓縮的圖片格式,大大簡化監(jiān)控終端應(yīng)用軟件的設(shè)計,筆者選用了ZC301P芯片的130萬像素的USB攝像頭。
圖2 監(jiān)控終端硬件總體結(jié)構(gòu)
圖3 視頻采集流程圖
嵌入式操作系統(tǒng)的種類很多,目前比較流行的Windows Mobile、Linux、ucOS,考慮到成本控制的問題,筆者選擇Linux為嵌入式操作系統(tǒng)。Linux操作系統(tǒng)可以運(yùn)行在包括ARM等多種嵌入式芯片上。與Windows下的程序一樣,要想利用USB攝像頭進(jìn)行圖像采集,軟件系統(tǒng)需要包含驅(qū)動程序和應(yīng)用程序兩部分。驅(qū)動程序運(yùn)行在系統(tǒng)的底層,它提供USB攝像頭的初始化、參數(shù)調(diào)節(jié)、圖像數(shù)據(jù)讀取等API函數(shù),Linux系統(tǒng)自帶了包括ZC301在內(nèi)的多種攝像頭的驅(qū)動,在移植Linux內(nèi)核時,只需將ZC301相關(guān)的驅(qū)動程序選項予以選中,進(jìn)行內(nèi)核編譯后,就可以直接使用。圖像的采集應(yīng)用程序可以利用Linux自帶的視頻函數(shù)庫 (Video For Linux,V4L)所提供的API函數(shù)來實(shí)現(xiàn)。在Linux中,視頻設(shè)備是設(shè)備文件,可以像訪問普通文件一樣對其進(jìn)行讀寫,以便對攝像頭的參數(shù)進(jìn)行設(shè)置和讀取攝像頭的狀態(tài)及圖像數(shù)據(jù),攝像頭一般掛載在/dev/video0下[6]。下面介紹利用V4L和Socket API編寫圖像監(jiān)控系統(tǒng)的應(yīng)用程序的方法。
V4L為應(yīng)用程序提供了一系列的接口函數(shù),通過這些函數(shù),可以執(zhí)行打開、讀寫、關(guān)閉等基本操作。設(shè)備驅(qū)動提供了read、write、open、close等函數(shù)的具體實(shí)現(xiàn),在編寫應(yīng)用程序時直接調(diào)用驅(qū)動提供的接口函數(shù)就能實(shí)現(xiàn) JPEG格式的圖像數(shù)據(jù)的采集。JPEG圖像數(shù)據(jù)已經(jīng)經(jīng)過了壓縮編碼,利用Linux Socket提供的TCP/IP協(xié)議棧的API函數(shù)進(jìn)行網(wǎng)絡(luò)傳輸。視頻采集和網(wǎng)絡(luò)傳輸程序的流程如圖3所示。從圖3可以看出,應(yīng)用程序先要打開已經(jīng)正確驅(qū)動的視頻設(shè)備,接著讀取設(shè)備的一些信息,如視頻設(shè)備的緩沖大小、當(dāng)前采集圖像的分辨率、圖像的色階等,然后選擇圖像格式為BMP或者JPEG,此時準(zhǔn)備工作完成,進(jìn)入圖像采集。在采集圖像時,需要判斷緩沖區(qū)是否滿,緩沖區(qū)滿就可以讀取緩沖區(qū)內(nèi)的圖像數(shù)據(jù),讀到圖像數(shù)據(jù)后,通過PPP方式撥號聯(lián)入互聯(lián)網(wǎng),再利用UDP協(xié)議將圖像數(shù)據(jù)傳送到網(wǎng)絡(luò)中,當(dāng)一幀圖像傳輸結(jié)束,并且沒有收到停止監(jiān)控指令,就繼續(xù)循環(huán)上述讀取和傳送操作,否則,停止監(jiān)控并關(guān)閉視頻設(shè)備。
圖4 監(jiān)控畫面
該系統(tǒng)最后運(yùn)行的效果如圖4所示。該圖是監(jiān)控中心通過IE瀏覽器查看到的監(jiān)控終端提供的監(jiān)控畫面的截圖。
從圖4中可以看出該系統(tǒng)所提供的監(jiān)控畫面圖像質(zhì)量較好,完全可以滿足實(shí)際應(yīng)用中對監(jiān)控畫面質(zhì)量的要求。另外,通過抓包軟件 (sniffer)分析,監(jiān)控終端傳輸一幅352×288大小的全彩畫面需要的網(wǎng)絡(luò)流量約為17Kb,按照1min傳輸5幅畫面計算,1min所需要的流量為85Kb,單個監(jiān)控終端1d的流量約為12.3Mb,1mon約為360Mb,從上面的流量分析可以看出,該系統(tǒng)對網(wǎng)絡(luò)流量要求較低,能在較低的流量費(fèi)用下提供較好質(zhì)量的監(jiān)控畫面,有較大的實(shí)用價值。
筆者提出的基于GPRS技術(shù)的嵌入式圖像監(jiān)控系統(tǒng)設(shè)計方案具有穩(wěn)定性高、圖像質(zhì)量較好、網(wǎng)絡(luò)傳輸性能好等特點(diǎn)。該系統(tǒng)操作簡單,只需用戶配置IP地址就可以運(yùn)行,系統(tǒng)的監(jiān)控圖像質(zhì)量能滿足大多數(shù)用戶對畫面質(zhì)量的要求[7],另外,該圖像監(jiān)控終端對網(wǎng)絡(luò)流量的需求較低,非常適合利用按流量收費(fèi)的GPRS傳輸。
[1]趙霞,張凱.基于ARM的GPRS的污水遠(yuǎn)程監(jiān)控系統(tǒng)[J].微計算機(jī)信息,2008,(2):169~173.
[2]周云輝,范立志.基于GPRS的無線監(jiān)控管理系統(tǒng)中遠(yuǎn)程終端撥號接入技術(shù)的實(shí)現(xiàn)[J].湖南理工學(xué)院學(xué)報(自然科學(xué)版),2004,(3):37~39.
[3]黃俊飛,廖建新.一種基于GGSN觸發(fā)的GPRS智能網(wǎng)[J].北京郵電大學(xué)學(xué)報,2005,(1):25~28.
[4]藺偉,沈京川,蔣韻.移動智能網(wǎng)在中國鐵路的應(yīng)用與發(fā)展[J].鐵道通信信號,2006,(5):56~58.
[5]梅曉蘭,張連發(fā),梅啟斌.基于OMAPl510雙核架構(gòu)的移動多媒體通信終端的設(shè)計與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2004,(7):30~33.
[6]馬計,張睿.便攜式終端上AVS-TS播放的軟件實(shí)現(xiàn)[J].計算機(jī)應(yīng)用與軟件,2009,(11):41~44.
[7]王鵬,呂志剛,黃建.基于Linux的嵌入式無線圖像監(jiān)控系統(tǒng)[J].安防科技,2009,(1):51~54.