夏彬
摘 要 視頻監(jiān)控系統(tǒng)越來越受重視,現(xiàn)提出一種基于嵌入式技術(shù)的視頻監(jiān)控系統(tǒng)方案,與傳統(tǒng)方案相比具有體積小、實時性高、穩(wěn)定性好的優(yōu)點。選用S3C2410硬件平臺,Linux 操作系統(tǒng)和B/S架構(gòu)。整個系統(tǒng)既能滿足視頻監(jiān)控對網(wǎng)絡(luò)化、實時性的要求。
關(guān)鍵詞 S3C2410 Linux 操作系統(tǒng) B/S架構(gòu)
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A
視頻監(jiān)控系統(tǒng)主要用于現(xiàn)場的數(shù)據(jù)采集、處理、實時監(jiān)控。國內(nèi)外市場上主要推出的是數(shù)字控制的模擬視頻監(jiān)控和數(shù)字視頻監(jiān)控,采用的主要是自控技術(shù)、計算機技術(shù),傳統(tǒng)視頻監(jiān)控系統(tǒng)在大數(shù)據(jù)遠(yuǎn)程通信等問題上受到限制,并且體積大、電源依賴性強、操作復(fù)雜。本文提供的方案更方便客戶使用。
1嵌入式視頻監(jiān)控系統(tǒng)方案
整個系統(tǒng)分為:視頻數(shù)據(jù)采集及壓縮模塊和網(wǎng)絡(luò)數(shù)據(jù)傳輸模塊。其中視頻數(shù)據(jù)采集及壓縮模塊負(fù)責(zé)對說監(jiān)控的視頻進(jìn)行數(shù)據(jù)采集、處理、傳輸,以Linux系統(tǒng)和S3C2410為核心平臺,建立應(yīng)用程序,把USB數(shù)字?jǐn)z像頭采集到的圖像運用H.264高效壓縮算法將數(shù)據(jù)進(jìn)行壓縮。網(wǎng)絡(luò)數(shù)據(jù)傳輸模塊負(fù)責(zé)回應(yīng)客戶端發(fā)來的請求并且為客戶提供實時監(jiān)控的數(shù)據(jù);它建立Web服務(wù)器端和Web客戶端,利用TCP/IP協(xié)議,讓前臺和后臺進(jìn)行相互交互。系統(tǒng)整體方案如圖1:
1
2視頻數(shù)據(jù)采集及壓縮模塊的實現(xiàn)
2.1軟硬件平臺的搭建
本系統(tǒng)采用的 S3C2410處理器是基于ARM公司的ARM920T處理器核,支持NAND閃存控制器,包含有UART,SPI等多個接口。其中所移植的Bootloader為U-Boot-1.16,它直接支持S3C2410處理器,因此移植過程中只需要做一些簡單處理:下載U-Boot并修改使其支持Nand Flash啟動。新建“u-boot-1.3.2/ board/smdk2410/nand.c”文件,修改“board/smdk2410/Makefile”文件,修改“u-boot-1.3.2/Include/configs/smdk2410.h”文件。完成Bootloader的移植后,則需進(jìn)行Linux的移植,主要是移植其內(nèi)核并添加USB、網(wǎng)卡等等的驅(qū)動程序。
2.2數(shù)據(jù)采集系統(tǒng)的建立
數(shù)據(jù)采集系統(tǒng)中采用微軟LifeCamHD系列的攝像頭,通過USB串口鏈接到S3C2410處理器,視頻設(shè)備內(nèi)部驅(qū)動采用Video4linux2,它的視頻設(shè)備可以想普通設(shè)備文件一樣進(jìn)行訪問與讀寫。一般操作如下:(1)打開設(shè)備文件并取得設(shè)備的capability。(2)選擇視頻輸入,設(shè)置視頻的制式和幀格式及幀的寬度和高度。(3)申請幀緩沖,將申請到的幀緩沖映射到用戶空間,將申請到的幀緩沖全部入列,采集視頻數(shù)據(jù),通過出隊列得到原始數(shù)據(jù),VIDIOC_QBUF,struct v4l2_buffer。(4)將緩沖重入對列尾,形成循環(huán)。
2.3數(shù)據(jù)壓縮系統(tǒng)
本方案采用H.264編碼技術(shù)壓縮視頻文件,它由視頻編碼層(VCL)和網(wǎng)絡(luò)適配層(NAL)組成,其中VCL主要包括核心壓縮引擎和塊、宏和片的語法句法定義。網(wǎng)絡(luò)提取層主要功能是定義數(shù)據(jù)的封裝格式,把VCL產(chǎn)生的字符串適配到各網(wǎng)絡(luò)來。其核心編碼技術(shù)有幀內(nèi)預(yù)測編碼、幀間預(yù)測編碼和整數(shù)變換等。幀內(nèi)編碼指利用幀相鄰宏塊的空間相關(guān)性,對周圍宏塊的預(yù)測值和實際值差值編碼。幀間預(yù)測碼是利用連續(xù)幀的時間冗余啦進(jìn)行運動估計和補償。整數(shù)變換是使用基于4?像素塊的類似于DCT的變換,而且是以整數(shù)為基礎(chǔ)的空間變換。
3網(wǎng)絡(luò)數(shù)據(jù)傳輸模塊的實現(xiàn)
3.1 Web服務(wù)器的設(shè)計
網(wǎng)絡(luò)數(shù)據(jù)傳輸模塊由Web服務(wù)器部分和客戶端部分組成,Web服務(wù)器采用B/S模式,B/S即瀏覽器/服務(wù)器模式,將系統(tǒng)功能實現(xiàn)的核心部分集中到了服務(wù)器,客戶端統(tǒng)一用瀏覽器,簡化了系統(tǒng)開發(fā)、維護(hù)。本方案用boa-0.94.13服務(wù)器,它移植到ARM里需要將做如下改動:將#define TIMEZONE_OFFSET(foo)(foo)->tm_gmtoff改成#define TIMEZONE_OFFSET(foo)(foo)->tm_gmtoff. 將boa.c文件中 if(setuid(0)!=1){DIE(“icky Linux kernel bug!”);}注釋掉。修改生成的Makefile為針對嵌入式平臺。
3.2客戶端應(yīng)用程序的設(shè)計
本方案采用Java Applet為用戶開發(fā)一個顯示界面,并為管理員開發(fā)管理窗口,設(shè)置不同的權(quán)限。本系統(tǒng)在顯示頁面中嵌入播放器播放監(jiān)控視頻。整個系統(tǒng)的關(guān)鍵是建立Applet 與Servlet通信,具體過程如下:(1)創(chuàng)建URL對象。(2)與URL地址建立連接,可以調(diào)用openConnection( )函數(shù)來建立連接open Connection( )函數(shù)除了建立連接之外還進(jìn)行通信初始化。(3)利用URLCOnne ction對象進(jìn)行讀寫操作,本方案提出的基于嵌入式的視頻監(jiān)控系統(tǒng)設(shè)計方案,采用簡單方便的ARM處理器和Linux操作系統(tǒng),并基于B/S模式實現(xiàn)網(wǎng)絡(luò)傳輸,具有智能化、集成化、網(wǎng)絡(luò)化的特點,可廣泛應(yīng)用很多場合。
參考文獻(xiàn)
[1] 曹少坤.一種嵌入式攝像機設(shè)計[J].微型接收機應(yīng)用,2008(29).
[2] 張威.Linux網(wǎng)絡(luò)編程[M].北京:首都師范大學(xué)出版社,2002:143.