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