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