基于3G無線網(wǎng)絡的視頻監(jiān)控系統(tǒng)前端設計
每個NAL單元由整數(shù)個字節(jié)大小的包構成,其中第一個字節(jié)包含數(shù)據(jù)類型的標志,其他字節(jié)是凈荷。NAL單元被劃分為VCL NAL單元和非VCL NAL單元兩種。VCL NAL單元包含視頻圖片中采集點的值的表示;非VCL NAL單元包含一切相關的附加信息,例如參數(shù)設置(可被應用到大量VCL NAL單元的頭數(shù)據(jù))和附加的增強信息(時刻信息和其他附加數(shù)據(jù),這些數(shù)據(jù)可能會增強對已解碼視頻信號的利用,但是又不是在解碼視頻圖像的采樣點值必須用到的)。視頻壓縮編碼的工作流程如圖5所示。本文引用地址:http://www.ex-cimer.com/article/154425.htm
2.3 視頻信號發(fā)送模塊
由于TCP協(xié)議丟包重傳造成巨大時延,UDP雖然傳輸速度比TCP快,但UDP是一種不可靠的傳輸協(xié)議。所以在應用層采用RTP作為實時傳輸協(xié)議。
RTP本身只保證實時數(shù)據(jù)的傳輸,不能為按順序傳送數(shù)據(jù)包提供可靠的傳送機制,也不能提供流量控制或擁塞控制。它需要依靠RTCP協(xié)議提供周期性的反饋與信道參數(shù)有關的信息,動態(tài)地改變傳輸速率,使發(fā)送速率適應信道帶寬,減少信道中的丟包,從而實現(xiàn)媒體同步、丟包統(tǒng)計、傳輸檢測和傳輸復用等手段。從而使得視頻流高效、快速地傳輸。
RTP協(xié)議的實現(xiàn)采用開源的RTP庫JRTPLIB。用戶只需通過使用JRTPLIB庫相應地發(fā)送和接收RTP數(shù)據(jù)包,而不用關心RTCP數(shù)據(jù)報是如何被發(fā)送和接收的,JRTPLIB自動對到達的RTCP數(shù)據(jù)報進行處理,并在適當?shù)臅r候發(fā)送RTCP數(shù)據(jù)報。采用H.264視頻流的RTP打包方式對單獨的NAL單元進行操作。通過ARM926-EJS內(nèi)置的硬件編碼單元應用程序中H.264視頻編碼的參數(shù)設置,每幀為一個NAL單元。為了避免視頻數(shù)據(jù)在網(wǎng)絡層被分割,需要將一幀H.264視頻數(shù)據(jù)分割成一定大小的RTP數(shù)據(jù)包,由發(fā)送端分別封裝上RTP報頭、UDP報頭、IP報頭,按照RTP數(shù)據(jù)包的格式,并配置RTP報頭的時間戳以及序列號等參數(shù),最后形成IP數(shù)據(jù)包,通過無線模塊發(fā)送。ARM926-EJS內(nèi)置的硬件編碼模塊所輸出的H.264視頻流的RTP封裝及傳輸流程如圖6所示。
3 結(jié)語
采用ARM926-EJS為微處理器的視頻監(jiān)控系統(tǒng)前端具有功耗低、速度快的特點,同時結(jié)合Linux的Video4Linux視頻接口技術和內(nèi)置硬件H.264視頻編碼和RTP/RTCP傳輸協(xié)議,實現(xiàn)了快速視頻采集和傳輸。實驗證明,采用內(nèi)置硬件編碼單元的ARM926-EJS微處理器和嵌入式Linux操作系統(tǒng),使視頻監(jiān)控系統(tǒng)前端的視頻畫面清晰流暢,其性能優(yōu)越、穩(wěn)定而且構建成本低。該視頻監(jiān)控系統(tǒng)前端在森林火災場合具有廣闊的應用前景。
評論