一種3G移動視頻監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)
3 軟件方案設(shè)計
本系統(tǒng)選用嵌入式MontaVista Linux操作系統(tǒng)平臺,其具有安全、穩(wěn)定、高效率、高實時性等特點。本文系統(tǒng)軟件采用模塊化設(shè)計,從功能角度,其軟件體系結(jié)構(gòu)主要劃分為以下五部分:采集模塊、編碼模塊、3G 傳輸模塊、GPS 衛(wèi)星定位模塊、設(shè)備監(jiān)測模塊。由于3G無線傳輸受到其帶寬的限制,如何能保證視頻圖像質(zhì)量和實時性尤為關(guān)鍵,因此,3G 傳輸模塊是系統(tǒng)軟件的核心部分。
3.1 采集模塊
本模塊主要完成視頻的采集、圖像格式轉(zhuǎn)換。采用V4L2接口采集攝像頭的視頻數(shù)據(jù),V4L2 是Linux 下開發(fā)視頻采集設(shè)備驅(qū)動程序的一套規(guī)范,這套規(guī)范使用分層的方法給驅(qū)動程序開發(fā)提供了清晰的模型和一致的接口。應(yīng)用程序處于最上層,V4L2 處于中間層,而硬件設(shè)備處于下層,從而通過驅(qū)動程序,應(yīng)用程序?qū)υO(shè)備的操作如同一個文件一樣,屏蔽了硬件設(shè)備的具體操作。
TVP5150 驅(qū)動程序以包含在Linux內(nèi)核中,本設(shè)計是基于該驅(qū)動程序實現(xiàn)視頻采集的,視頻采集程序基本流程如圖3所示。
圖3 視頻采集程序基本流程圖
3.2 編碼模塊
本模塊主要完成了OSD 字幕信息添加及圖像的壓縮編碼。
設(shè)計中充分利用了Davinci 編解碼引擎接口進(jìn)行應(yīng)用程序編程,對采集到的視頻數(shù)據(jù)進(jìn)行YUV 格式轉(zhuǎn)換后,通過自己設(shè)計的OSD 字幕算法加入OSD 字幕信息,采用優(yōu)化的TI 公司H.264 壓縮算法,對完成處理的YUV4:2:0 格式數(shù)據(jù)進(jìn)行幀間編碼壓縮。
OSD 字幕算法實現(xiàn)了在YUV 圖像上面添加中英文字幕信息,并可設(shè)置字體的字和邊界為兩種顏色,以在不同背景色下清晰顯示字體。其基本原理為根據(jù)字符的ASCII 從點陣字庫中讀入其點陣數(shù)據(jù),進(jìn)行一次外圍邊界像素點擴(kuò)展,這樣就可以判斷每位數(shù)據(jù)中為1 的相鄰8 個像素點對應(yīng)位的值,為0則表示該點是字符的邊框,為1 則表示該點是字符邊框內(nèi)的背景色。
3.3 3G傳輸模塊
本部分主要完成視頻數(shù)據(jù)及系統(tǒng)數(shù)據(jù)的3G 無線網(wǎng)絡(luò)傳輸,用于支持視頻監(jiān)控及系統(tǒng)控制通訊等功能。設(shè)計中采用RTP/RTCP 協(xié)議配合使用,由于無線網(wǎng)絡(luò)的不穩(wěn)定性,加入了自適應(yīng)幀碼率處理機(jī)制及QoS 處理機(jī)制,保證了視頻圖像質(zhì)量和實時性要求。其基本過程是壓縮編碼完成后,進(jìn)行視頻預(yù)存緩沖處理,對編碼數(shù)據(jù)進(jìn)行RTP 封包處理,然后經(jīng)過USB總線傳輸?shù)?G 模塊中,通過無線網(wǎng)絡(luò)進(jìn)行發(fā)送;接收數(shù)據(jù)完成后,進(jìn)行命令解析處理,判斷是否有自適應(yīng)或重傳控制命令,實現(xiàn)動態(tài)調(diào)整幀碼率以降低無線網(wǎng)絡(luò)傳輸負(fù)載,或者通過預(yù)存緩沖機(jī)制提取出丟失視頻數(shù)據(jù),完成重傳數(shù)據(jù)傳輸。
評論