3G視頻監(jiān)控系統(tǒng)中關(guān)鍵技術(shù)的研究與實(shí)現(xiàn)
摘要:描述了基于3G標(biāo)準(zhǔn)的無線視頻監(jiān)控系統(tǒng)關(guān)鍵技術(shù)的研究與實(shí)現(xiàn)方案,主要包括基于H.264的雙碼流模塊、多線程、RTP打包等,它不僅具有傳統(tǒng)監(jiān)控系統(tǒng)穩(wěn)定性高、實(shí)時(shí)性好、免布線等優(yōu)點(diǎn),而且用戶可以隨時(shí)隨地通過3G網(wǎng)絡(luò)進(jìn)行視頻監(jiān)控和視頻圖像錄制。測試結(jié)果表明,各模塊都達(dá)到預(yù)期指標(biāo),3G無線環(huán)境下可進(jìn)行實(shí)時(shí)視頻瀏覽,視頻質(zhì)量與有線局域網(wǎng)相比相差不大。
關(guān)鍵詞:視頻監(jiān)控;3G網(wǎng)絡(luò);雙碼流;RTP
0 引言
經(jīng)過多年的發(fā)展,視頻監(jiān)控技術(shù)已由早期模擬設(shè)備為主的第一代視頻監(jiān)控系統(tǒng)發(fā)展到目前的數(shù)字視頻監(jiān)控,人們已不再滿足于傳統(tǒng)的監(jiān)控系統(tǒng)。隨著3G技術(shù)難點(diǎn)的突破以及3G網(wǎng)絡(luò)的發(fā)展,使3G無線視頻監(jiān)控的實(shí)現(xiàn)成為了可能。在此背景下提出了一個(gè)基于3G標(biāo)準(zhǔn)的無線視頻監(jiān)控系統(tǒng)的設(shè)計(jì)方案并實(shí)現(xiàn)了基本功能,本文著重介紹該系統(tǒng)關(guān)鍵技術(shù)的實(shí)現(xiàn)方法,包括雙碼流模塊、多線程通信、RTP封裝及改進(jìn),最后討論了無線網(wǎng)絡(luò)視頻傳輸健壯性的問題以及解決方案。
1 雙碼流技術(shù)的實(shí)現(xiàn)
目前,困擾中國網(wǎng)絡(luò)視頻監(jiān)控市場發(fā)展的主要因素就是缺乏良好的網(wǎng)絡(luò)基礎(chǔ)環(huán)境,而雙碼流正是針對(duì)這一問題提出的解決方案,它是對(duì)安防行業(yè)的一次提速。
雙碼流,即在視頻編碼端中同時(shí)存在兩種碼流。雙碼流是通過在編碼端采用兩種格式或兩個(gè)不同的分辨率分別進(jìn)行編碼來實(shí)現(xiàn)的。該監(jiān)控系統(tǒng)基于DM365硬件開發(fā)平臺(tái),由于DM365開發(fā)板屬于DAVINCI系列,必須深入研究DM365應(yīng)用層調(diào)用具體算法的結(jié)構(gòu),如圖1所示。由圖中可知,應(yīng)用層調(diào)用的接口是DMAI(DaVinci Multimedia Application Interface),它是DSP提供給ARM端應(yīng)用程序的調(diào)用接口。DMAI是各種模塊集合,應(yīng)用程序可以從中選擇模塊來使用。此外DMAI提供了源碼,便于修改使用,以滿足應(yīng)用要求。DMAI里面有各種接口實(shí)現(xiàn)方式,修改DMAI接口具體實(shí)現(xiàn)使其滿足雙碼流。
首先將DM365中兩個(gè)編碼通道全部使能,保證了開發(fā)板對(duì)雙碼流的支持,然后,在應(yīng)用程序中采集兩路的數(shù)據(jù),分別調(diào)用DMAI中的編碼函數(shù)Vencl_create,進(jìn)而對(duì)兩路數(shù)據(jù)進(jìn)行兩次編碼,這樣就得到兩路不同分辨率大小的編碼數(shù)據(jù)流。本文實(shí)現(xiàn)了一路D1,一路是CIF大小(用于傳輸)的碼流,并且都達(dá)到20幀的速率,可以保證視頻流質(zhì)量。它在現(xiàn)有網(wǎng)絡(luò)瓶頸下兼顧了圖像質(zhì)量和傳輸實(shí)時(shí)性,可以突破網(wǎng)絡(luò)瓶頸,根據(jù)網(wǎng)絡(luò)帶寬靈活選擇碼流格式,達(dá)到本地高清存儲(chǔ),同時(shí)保證一定遠(yuǎn)程監(jiān)控質(zhì)量的低碼流網(wǎng)絡(luò)傳輸。
2 多線程技術(shù)在3G無線視頻監(jiān)控中的應(yīng)用
由于視頻圖像傳輸需要做到實(shí)時(shí)性和良好的傳輸質(zhì)量,而系統(tǒng)需求的功能又比較復(fù)雜,包括視頻數(shù)據(jù)采集、視頻編碼、RTP打包發(fā)送、視頻數(shù)據(jù)流保存等工作,而它們的流程又不是簡單的順序執(zhí)行,所以這里引入了多線程。
本論文提出的方案中包括Capture,Video和Writer三個(gè)主要線程,分別完成原始數(shù)據(jù)YUV數(shù)據(jù)的采集、H.264數(shù)據(jù)壓縮、視頻數(shù)據(jù)的寫文件,而在視頻采集線程中加入了異常檢測模塊(該模塊利用原始數(shù)據(jù)進(jìn)行檢測異常),在視頻數(shù)據(jù)壓縮線程中采用了雙碼流技術(shù),并將CIF分辨率的壓縮數(shù)據(jù)進(jìn)行RTP協(xié)議封裝,在Writer線程中實(shí)現(xiàn)了以時(shí)間為文件名的保存方式并將其保存到SD卡中。在此基礎(chǔ)上實(shí)現(xiàn)設(shè)防、拆防、異常檢測、客戶端與監(jiān)控端通信,又引入了兩個(gè)線程,分別完成等待電話、客戶端與監(jiān)控端的SOCKET通信完成命令傳輸功能。整個(gè)線程結(jié)構(gòu)與通信方式如圖2所示。
采用了pipe管道進(jìn)行線程間通信,且設(shè)置為阻塞模式,整個(gè)流程即Capture線程得到數(shù)據(jù),將地址送給Video線程,Video線程經(jīng)過H.264視頻壓縮把DI分辨率的地址送給Writer,而CIF分辨率根據(jù)發(fā)送標(biāo)記來確定是否發(fā)送,Writer線程完成寫文件操作后,將buffer指針返回,完成一幀采集、編碼、發(fā)送、保存等工作,如此反復(fù)循環(huán)。而其他線程通信則采用全局變量來進(jìn)行傳輸標(biāo)記位,而無需使用FIFO,降低了實(shí)現(xiàn)復(fù)雜度。
評(píng)論