基于網(wǎng)絡(luò)和H.264的視頻監(jiān)控系統(tǒng)設(shè)計(jì)
隨著公眾安全防護(hù)意識(shí)的越來(lái)越強(qiáng),視頻安全監(jiān)控系統(tǒng)因其直觀,便利,信息內(nèi)容含量豐富等特征而被廣泛應(yīng)用。市面上的監(jiān)控設(shè)施大部分采用網(wǎng)絡(luò)作為傳輸媒介。本文在網(wǎng)絡(luò)通信技術(shù)的基礎(chǔ)上設(shè)計(jì)了一種視頻監(jiān)控系統(tǒng)方案,該系統(tǒng)由前端視頻服務(wù)器終端外加網(wǎng)絡(luò)絡(luò)和視頻監(jiān)控中心3部分組成。視頻服務(wù)器端使用攝像頭記錄視頻數(shù)據(jù),經(jīng)過(guò)DM643 7DSP進(jìn)行H.264硬件編碼壓縮,RTP封包后經(jīng)網(wǎng)絡(luò)傳輸。當(dāng)視頻監(jiān)控中心接收到網(wǎng)絡(luò)傳來(lái)的RTP封包后,將其傳輸給監(jiān)控中心的上位機(jī)進(jìn)行軟件解碼處理,最后實(shí)時(shí)顯示視頻。網(wǎng)絡(luò)視頻監(jiān)控的顯著特征就是具有廣泛的分布范圍,能夠便捷地在居民住宅區(qū),工廠企業(yè),大型商場(chǎng),醫(yī)院等場(chǎng)所設(shè)置,組建網(wǎng)絡(luò)化監(jiān)控系統(tǒng)。
1 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)總體結(jié)構(gòu)如圖1所示。
硬件設(shè)計(jì)部分有包含視頻記錄模塊和DM6437DSP模塊。其中,DM6437 DSP模塊為此硬件系統(tǒng)設(shè)計(jì)的關(guān)鍵,這個(gè)模塊承擔(dān)整個(gè)嵌入式系統(tǒng)的控制與調(diào)度任務(wù)。通電后,DM6437 DSP自動(dòng)引導(dǎo)有關(guān)的外圍硬件設(shè)備驅(qū)動(dòng),用于控制視頻記錄模塊實(shí)時(shí)獲取視頻數(shù)據(jù)流,并對(duì)錄制的視頻數(shù)據(jù)以網(wǎng)絡(luò)抽象層單元的形式進(jìn)行H.264硬件編碼操作,然后對(duì)其進(jìn)行RTP封包操作并通過(guò)RJ45網(wǎng)絡(luò)接口傳送至網(wǎng)絡(luò)進(jìn)行傳輸。軟件設(shè)計(jì)工程可分解為前端視頻服務(wù)器軟件開(kāi)發(fā)和視頻監(jiān)控中心軟件開(kāi)發(fā)兩部分。前端視頻服務(wù)器軟件開(kāi)發(fā)設(shè)計(jì)包括建立CCS開(kāi)發(fā)環(huán)境,在CCS下編寫(xiě)攝像頭和網(wǎng)卡等有關(guān)外圍設(shè)備驅(qū)動(dòng)程序,以及編寫(xiě)視頻數(shù)據(jù)記錄和H.264壓縮編碼代碼,編寫(xiě)通信代碼模塊等。監(jiān)控中心的軟件設(shè)計(jì)工程包含網(wǎng)絡(luò)數(shù)據(jù)的接收和解包模塊代碼,視頻數(shù)據(jù)的解碼模塊代碼以及界面顯示代碼。系統(tǒng)軟件流程如圖2所示。
2 系統(tǒng)硬件設(shè)計(jì)
DM6437 DSP模塊硬件電路設(shè)計(jì)結(jié)構(gòu)如圖3所示。
系統(tǒng)主控芯片采用TT公司基于第三代高性能VelociTI超長(zhǎng)指令字架構(gòu)的DM6437 DSP,這是一種功耗低,性價(jià)比高的定點(diǎn)DSP,擁有內(nèi)部存儲(chǔ)資源和強(qiáng)大的視頻處理能力。DM64 37另外增加了視頻處理模塊以方便視頻前端的預(yù)處理和視頻后端的顯示,同時(shí)也減少了DSP核心的運(yùn)算量。NAND Flash使用存儲(chǔ)空間為512 MB的K9F2G08UOM模塊,用于存儲(chǔ)啟動(dòng)文件、軟件內(nèi)核、根文件系統(tǒng)以及應(yīng)用程序。SDRAM采用兩片存儲(chǔ)空間為128 MB的K4X51163PC芯片,該芯片工作電壓范圍為1.8~3.3 V,用于存儲(chǔ)和讀取系統(tǒng)運(yùn)行時(shí)的程序和程序運(yùn)行時(shí)產(chǎn)生的數(shù)據(jù)。網(wǎng)絡(luò)卡芯片使用Davicom公司設(shè)計(jì)的10/100 Mbit·s-1支持網(wǎng)速自適應(yīng)的網(wǎng)絡(luò)卡芯片DM9000AE,因此網(wǎng)絡(luò)物理層和數(shù)據(jù)鏈路層的通信得以實(shí)現(xiàn)。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)按功能劃分為前端視頻服務(wù)器終端軟件設(shè)計(jì)以及視頻監(jiān)控中心軟件設(shè)計(jì)兩部分。
3.1 視頻服務(wù)器終端軟件設(shè)計(jì)
視頻服務(wù)器終端的軟件系統(tǒng)設(shè)計(jì)主要包含微軟Windows XP系統(tǒng)配置和應(yīng)用程序開(kāi)發(fā)組成。該系統(tǒng)使用Windows XP作為硬件平臺(tái)的操作系統(tǒng),借助對(duì)核心程序的調(diào)整去掉與系統(tǒng)不相關(guān)的外圍硬件驅(qū)動(dòng),并安裝了USB攝像頭驅(qū)動(dòng)程序和DM9000AE網(wǎng)卡驅(qū)動(dòng)程序等,共同組成應(yīng)用程序正常運(yùn)行所需要的軟件操作環(huán)境。應(yīng)用程序的設(shè)計(jì)是軟件模塊設(shè)計(jì)的關(guān)鍵,共包含視頻數(shù)據(jù)的記錄、H.264硬件編碼壓縮和RTP協(xié)議打包發(fā)送3個(gè)模塊。
3.1.1 視頻數(shù)據(jù)采集
在Windows操作系統(tǒng)中,TI公司的DSP軟件開(kāi)發(fā)工具CCS為用戶空間提供了一套完整的接口函數(shù)API,通過(guò)調(diào)用這些接口函數(shù)可對(duì)視頻記錄設(shè)備進(jìn)行打開(kāi)、采集和關(guān)閉等操作,視頻采集流程如圖4所示。在進(jìn)行其他操作前,應(yīng)先調(diào)用接口函數(shù)open()以阻塞方式啟動(dòng)攝像頭設(shè)備,設(shè)備名稱為“video0”。然后借助ioctl()函數(shù)調(diào)整視頻采集參數(shù),包括圖像尺寸、幀率、視頻格式等,例如將視頻格式設(shè)置為YUV422。CCS支持兩類視頻數(shù)據(jù)記錄方式:一種是通過(guò)使用read()函數(shù)直接讀取攝像頭;另一種是通過(guò)調(diào)用內(nèi)存映射函數(shù)mmap()將采集到的視頻數(shù)據(jù)存儲(chǔ)到對(duì)應(yīng)的用戶緩沖區(qū)再進(jìn)行讀取。第二種更加快捷便利,所以本文采用此方式讀取記錄視頻數(shù)據(jù)。記錄到的視頻數(shù)據(jù)為YUV422格式,但H.264編碼器匹配的輸入視頻格式卻為YUV420P,所以為了將已經(jīng)記錄的視頻數(shù)據(jù)傳送至H.264編碼器進(jìn)行編碼,還需將YUV422格式的視頻數(shù)據(jù)轉(zhuǎn)換為YUV420P格式。視頻格式的轉(zhuǎn)換過(guò)程使用FFmpeg開(kāi)源庫(kù)提供的API函數(shù)完成。
3.1.2 H.264編碼
DM6437 DSP內(nèi)部集成有多媒體硬件編解碼模塊,該模塊支持MPEG-4,H.263以及H.264編解碼方案,具備優(yōu)異的編解碼性能。該方案通過(guò)該多媒體硬件編解碼模塊模塊進(jìn)行H.264硬件編碼。當(dāng)操作系統(tǒng)加載了多媒體硬件編解碼模塊驅(qū)動(dòng)后,應(yīng)用程序主進(jìn)程可以調(diào)用多媒體硬件編解碼模塊函數(shù)接口實(shí)現(xiàn)視頻數(shù)據(jù)的H.264硬件編碼。
3.1.3 RTP協(xié)議打包及傳輸
經(jīng)H.264編碼后的視頻數(shù)據(jù)通常分為兩個(gè)不同的層:視頻編碼層(Video Coding Layer,VCL)和網(wǎng)絡(luò)適配層(Network Adaptation Layer,NAL)。這兩個(gè)層各有分工,視頻編碼層主要功能是以H.264規(guī)定的編碼方式表示視頻信息,而網(wǎng)絡(luò)適配層則負(fù)責(zé)根據(jù)網(wǎng)絡(luò)實(shí)際情況對(duì)數(shù)據(jù)進(jìn)行封包,目的是使視頻編碼層數(shù)據(jù)的格式方便網(wǎng)絡(luò)傳輸。根據(jù)RFC3984,H.2 64視頻流的封包模式可有以下3種形式:?jiǎn)我痪W(wǎng)絡(luò)適配層單元模式,組合封包模式以及分片封包模式。(1)對(duì)于長(zhǎng)度
3.2 監(jiān)控中心軟件設(shè)計(jì)
監(jiān)控中心系統(tǒng)主要負(fù)責(zé)H.264編碼后的視頻數(shù)據(jù)流接收,軟件解碼以及界面顯示。解碼后的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)接收,使用UDP Socket編程;而H.264視頻流的軟件解碼使用開(kāi)源的FFmpeg函數(shù)編寫(xiě)實(shí)現(xiàn),界面顯示通過(guò)使用開(kāi)源跨平臺(tái)的多媒體庫(kù),即SDL(Simple DirectMedie Layer)實(shí)現(xiàn)。監(jiān)控中心軟件流程如圖5所示。
4 系統(tǒng)測(cè)試及分析
在實(shí)驗(yàn)室內(nèi)進(jìn)行系統(tǒng)綜合測(cè)試,在視頻監(jiān)控前端采用設(shè)定的視頻服務(wù)器終端,對(duì)應(yīng)的監(jiān)控主機(jī)使用臺(tái)式PC機(jī)。監(jiān)控前端設(shè)置的視頻記錄像素分辨率為1 024×768,視頻傳輸速率為30 Sample·s-1,按順序先后運(yùn)行服務(wù)器端程序以及客戶端程序。記錄到的視頻監(jiān)控系統(tǒng)運(yùn)行效果如圖6所示,截圖畫(huà)面顯示視頻播放流暢、清晰度高,較好地滿足了系統(tǒng)設(shè)計(jì)要求。
5 結(jié)束語(yǔ)
結(jié)合網(wǎng)絡(luò)通信技術(shù)和流媒體技術(shù),基于DM6437DSP和嵌入式Windows操作系統(tǒng),設(shè)計(jì)并實(shí)現(xiàn)了一種可通過(guò)網(wǎng)絡(luò)傳輸?shù)囊曨l監(jiān)控系統(tǒng),并將此方案在實(shí)驗(yàn)室內(nèi)進(jìn)行了網(wǎng)絡(luò)驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,這種方案工作正常,較好地滿足了設(shè)計(jì)要求。