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