涂繼輝,余厚全,佘新平 (長江大學(xué)電子信息學(xué)院,湖北荊州434023)
近年來,遠(yuǎn)程監(jiān)控技術(shù)在環(huán)境監(jiān)測、工業(yè)控制等領(lǐng)域應(yīng)用越來越廣泛。嵌入式的視頻采集以其小巧靈活、低成本和高性能的特點(diǎn)而獨(dú)具優(yōu)勢,在視頻監(jiān)控領(lǐng)域發(fā)揮越來越重要的作用。目前采用嵌入式監(jiān)控系統(tǒng)的設(shè)計(jì)方案有2種:①以嵌入式視頻采集為服務(wù)端,把采集好的圖像通過網(wǎng)絡(luò)傳送給上位機(jī)進(jìn)行顯示或者保存[1,2]。該方案不但結(jié)構(gòu)復(fù)雜、成本較高,而且實(shí)施起來比較麻煩;②在嵌入式系統(tǒng)中加入存儲芯片,把采集的圖像直接保存在存儲芯片中[3],該方案結(jié)構(gòu)簡單、成本較低,但由于存儲芯片固定,因此不利于存儲容量的擴(kuò)展和數(shù)據(jù)轉(zhuǎn)存。針對上述視頻監(jiān)控系統(tǒng)的不足,筆者提出一種新的視頻監(jiān)控系統(tǒng)。該系統(tǒng)使用高性能的ARM9芯片作為微處理器控制USB攝像頭視頻數(shù)據(jù)的采集和顯示,并把采集到的視頻數(shù)據(jù)通過USB接口保存到U盤中,以達(dá)到對特定環(huán)境進(jìn)行實(shí)時(shí)監(jiān)測的目的。
視頻監(jiān)控系統(tǒng)的設(shè)計(jì)原理是在嵌入式Linux操作系統(tǒng)中,視頻監(jiān)控系統(tǒng)控制video41inux實(shí)現(xiàn)USB攝像頭視頻數(shù)據(jù)采集,經(jīng)MPEG-4壓縮后,通過USB傳送到外置的U盤保存。由于嵌入式視頻監(jiān)控系統(tǒng)存儲的是標(biāo)準(zhǔn)的視頻格式文件,因此,用戶可以通過PC機(jī)瀏覽U盤中的視頻監(jiān)控錄像,以達(dá)到對特定環(huán)境進(jìn)行監(jiān)控的目的。整個(gè)系統(tǒng)的結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)圖
由CMOS和DSP集成一體的攝像頭通過USB控制器接入到S3C2410(ARM開發(fā)板型號),S3C2410在外圍電路的配合下共同把圖像信息采集回來,然后把信息交給后臺程序處理,后臺程序在主控界面的控制下再把經(jīng)過處理的圖像存儲到U盤或者在液晶屏上實(shí)時(shí)顯示出來,最終實(shí)現(xiàn)視頻監(jiān)控功能。使用設(shè)備如下:ARM S3C2410;基于Z301芯片攝像頭;任意型號的U盤;10.4″TFT LCD顯示屏,高亮度。
由視頻采集、視頻顯示、視頻壓縮、視頻保存和系統(tǒng)操作控制的GUI模塊組成,用戶通過觸摸屏操作GUI模塊來控制整個(gè)系統(tǒng)。模塊框圖如圖2所示。
圖2 系統(tǒng)模塊框圖
視頻采集主要以ARM S3C2410為核心的處理器控制通過USB接口連接的攝像頭采集視頻數(shù)據(jù),然后把這部分采集的數(shù)據(jù)進(jìn)行視頻的顯示和保存。視頻采集數(shù)據(jù)的方式主要有2種[4]:①直接讀取設(shè)備中的視頻數(shù)據(jù);②處理器把采集的數(shù)據(jù)先保存在內(nèi)存中,然后通過內(nèi)存映射的方式讀取視頻數(shù)據(jù)。由于方式②的I/O讀取速度較快,而且能夠很好的實(shí)現(xiàn)內(nèi)存數(shù)據(jù)共享,因此該系統(tǒng)設(shè)計(jì)采用方式②進(jìn)行視頻數(shù)據(jù)的采集。
視頻采集終端是該系統(tǒng)的核心模塊。Video4Linux是Linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動,其為針對視頻設(shè)備的應(yīng)用程序編程提供一系列接口函數(shù),這些視頻設(shè)備包括現(xiàn)今市場上流行的TV卡、視頻捕捉卡和 USB攝像頭等。視頻采集是通過嵌入式Linux操作系統(tǒng)調(diào)度video41inux和影像設(shè)備驅(qū)動程序來完成視頻捕獲。在Linux操作系統(tǒng)中,外部設(shè)備都作為設(shè)備文件來管理,因此,對外部設(shè)備的操作就轉(zhuǎn)變成對設(shè)備文件的操作。視頻設(shè)備文件位于/dev/目錄下,一般情況下為video0。當(dāng)攝像頭通過USB接口連接到視頻采集終端后,在程序中調(diào)用V4LAPIs對設(shè)備文件video0作讀操作即可實(shí)現(xiàn)攝像頭視頻數(shù)據(jù)采集。其主要過程如圖3所示。
通過上述過程,該系統(tǒng)可以將采集的視頻數(shù)據(jù)存放在內(nèi)存中。這部分?jǐn)?shù)據(jù)既可以壓縮后保存為視頻文件,也可以通過映射到顯存后顯示在畫布上。因此這個(gè)過程為后面的視頻顯示和保存提供數(shù)據(jù)支持。
圖3 視頻采集流程圖
視頻顯示模塊的過程是先把采集到的視頻數(shù)據(jù)從內(nèi)存中映射到顯存中,然后初始化畫布,設(shè)置顯示模式,再鎖定顯卡,把顯存中的數(shù)據(jù)顯示到畫布上,最后給顯卡解鎖,從而完成一幀圖像的繪制。連續(xù)的視頻就是多幀圖像不停的循環(huán)繪制。
由于視頻采集模塊采集的視頻數(shù)據(jù)信息量較大,如果直接通過保存,則導(dǎo)致保存的視頻文件非常大。MPEG-4編碼具有高效的壓縮性、可交互性和可擴(kuò)展性,已成為多媒體通信領(lǐng)域的1種標(biāo)準(zhǔn)算法。基于以上優(yōu)點(diǎn),該系統(tǒng)選用MPEG-4視頻壓縮編碼方式。其主要步驟如下:①對原始視頻數(shù)據(jù)進(jìn)行簡化以利于分割,可通過低通濾波、中值濾波和形態(tài)濾波來完成;②對視頻數(shù)據(jù)進(jìn)行特征 (如顏色、紋理、運(yùn)動、幀差、位移幀差乃至語義等)提取;③基于某種均勻性標(biāo)準(zhǔn)來確定分割決策。根據(jù)所提取特征將視頻數(shù)據(jù)歸類成不同的對象,針對不用的視頻對象Vo采用不同的編碼策略,利用VOP視頻編碼技術(shù)對視頻對象進(jìn)行編碼。最后各個(gè)視頻對象的碼流進(jìn)行復(fù)合后輸出。試驗(yàn)表明,MPEG-4的壓縮率可高達(dá)200∶1,一幀畫面的容量只有1~2KB。如此高的壓縮率,解決了存儲容量的瓶頸,從而能儲存更長時(shí)間的錄像文件。
1)當(dāng)U盤插入時(shí),把U盤加入到系統(tǒng)中,命令如下:
2)準(zhǔn)備拔出U盤時(shí),先從系統(tǒng)中卸載U盤,命令如下:
利用Qt4[5]完成該系統(tǒng)的可視化用戶界面GUI。由于Qt4中可以加載觸摸屏的驅(qū)動,因此整個(gè)系統(tǒng)可以通過觸摸屏來操控。Qt4中的進(jìn)程可以啟動視頻采集和顯示模塊來觀測視頻監(jiān)控的位置,然后停止顯示模塊的進(jìn)程,啟動視頻采集、壓縮和保存模塊,把監(jiān)控到的視頻數(shù)據(jù)保存到U盤中。Qt4還可以通過調(diào)用U盤控制命令來控制U盤的插拔。
實(shí)時(shí)采集顯示的測試結(jié)果如圖4所示;U盤保存視頻文件回放結(jié)果如圖5所示。
圖4 系統(tǒng)視頻監(jiān)控實(shí)時(shí)顯示圖
圖5 U盤保存視頻文件回放圖
視頻采集程序運(yùn)行效率測試結(jié)果如圖6所示。從圖6中可以看出,測試過程中的CPU最高占有率為7.6%,CPU平均占用率是4.0%,說明該系統(tǒng)運(yùn)行效率較高。該系統(tǒng)經(jīng)過調(diào)試后運(yùn)行良好,采集圖像清晰,硬件電路可靠,能很好地對特定環(huán)境進(jìn)行實(shí)時(shí)視頻監(jiān)控。
圖6 系統(tǒng) CPU占用率圖
提出一種基于ARM S3C2410和Linux嵌入式實(shí)時(shí)監(jiān)控系統(tǒng)的設(shè)計(jì)方案,采用嵌入式Linux操作系統(tǒng)進(jìn)行視頻采集、壓縮和實(shí)時(shí)的顯示視頻,最后保存在用戶的U盤中,整個(gè)系統(tǒng)的控制通過觸摸屏操作。該系統(tǒng)把視頻監(jiān)控存儲模式從傳統(tǒng)的內(nèi)置存儲器擴(kuò)展到使用目前流行的閃存設(shè)備,既使系統(tǒng)的存儲容量得到擴(kuò)大,又使存儲方式得到擴(kuò)展。另外,該系統(tǒng)采用觸摸屏的控制模式,操作起來簡單方便。因此,該系統(tǒng)具有結(jié)構(gòu)簡單、操作方便、成本較低的特點(diǎn)。在油田、油氣井現(xiàn)場、智能小區(qū)、交通監(jiān)控和醫(yī)院病房監(jiān)護(hù)室等領(lǐng)域具有廣闊的應(yīng)用前景。
[1]張曉東,李秀娟,張杰.基于ARM的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì) [J].現(xiàn)代電子技術(shù),2008,31(6):22~23.
[2]梅大成,楊大千,周勇,等.嵌入式無線視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007,(3):19~25.
[3]李霏,王讓定,徐霽.基于嵌入式Linux的多路視頻監(jiān)控系統(tǒng)的設(shè)計(jì) [J].寧波大學(xué)學(xué)報(bào),2007,20(2):151~154.
[4]孫天澤,袁文菊,張海峰.嵌入式設(shè)計(jì)及Linux驅(qū)動開發(fā)指南——基于ARM9處理器 [M].北京:電子工業(yè)出版社,2005.
[5]陳冬,楊兆選.一種嵌入式視頻交通監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量和控制,2006,14(9):1200~1203.