徐 凱,錢 燕,魏宗群,蔡 俊,仇 捷
(南京農業大學 電氣工程系,江蘇 南京 210031)
在視頻監控應用中,傳統視頻監控由于圖像清晰度不高,管理和維護諸多線纜難度大,配置眾多設備結構復雜,擴展不便,這些因素嚴重制約了安保管理效能的提升[1],同時也為高清視頻監控的發展帶來了契機。以往的有線圖像視頻傳輸系統往往需要鋪設大量的地上、地下設備線路,因而有成本高,施工周期長等諸多問題。近年來,無線圖像的采集與傳輸以其直觀、方便、信息內容豐富而被應用于各種場合[2]。隨著計算機通信技術和網絡技術的快速發展,3G技術已成為計算機網絡中一個至關重要的組成部分。由此,基于3G的視頻采集傳輸系統應運而生。相比較其他的無線傳輸方式,3G以其不受距離限制,網絡帶寬寬,實時性好而成為研究的重點[3]。3G視頻傳輸技術的發展已對無線移動網絡的架構和協議產生了深遠的影響。
基于達芬奇技術的新型TMS320DM365數字媒體處理器延續了DavinciTM家族DM355處理器的架構[4],集成了一顆ARM926EJ-S內核、一個圖像處理子系統VPSS、一個H.264高清編碼器協處理器HDVICP和一個MPEG-4/JPEG高清編碼器協處理器,支持多格式編解碼器,其中包括符合生產要求的 H.264、MPEG-4、MPEG-2、MJPEG與 VC1編解碼器,可使視頻實現高度的靈活性。
作者設計了一種基于TMS320DM365的3G實時視頻傳輸系統。該系統設計用于農田感知車的視頻采集、傳輸。將采集的視頻信息經過后期的處理(邊緣檢測、運動目標分析等),為機械小車在農田的行走、自主駕駛、自主導航等活動提供農田周圍環境信息。系統將攝像頭采集的視頻信息,經過DM365內嵌硬件壓縮器處理成H.264格式,然后通過RTP以及RTCP編碼后經3G無線路由器發送出去,服務器接收端利用VLC播放器對視頻實時顯示。該系統更可以廣泛應用于現代化農場、智能樓宇、智能交通、醫院校園和生活小區等領域。現將有關結果報道如下。
系統整體框架如圖1所示,由TB-2054BD攝像頭、嵌入式視頻處理器 DMS365、3G無線路由器、客戶端等組成。

圖1 系統的整體框架
圖像采集采用的是拓邦電子的TB-2054BD型號CCD攝像機。系統中模擬視頻信號經過視頻解碼芯片TVP5150鉗位、抗混疊濾波、A/D轉換后,按預先的設置,從 TVP5150的 YOUT[0:7]引腳輸出ITU-R BT.6568-bit 4:2:2格式的數字視頻數據到DM365的視頻處理前端,并由其進行縮放和白平衡等預處理后送到視頻處理后端對數字視頻信號進行H.264編碼。
控制系統采用 ARM926EJ-S內核的TMS320DM365處理器 (SEED-DVS365開發板)。DM365高度集成了眾多組件,它內部包含一個ARM926EJ-S精簡指令的 CPU,擁有獨立的16KB的指令緩存和8KB的數據緩存[5],還有圖像處理子系統 (VPSS)[6]等模塊,其工作頻率高達300MHz。DM365處理器的作用是管理和控制整個系統,包括初始化硬件協處理器、圖像處理子系統、大部分的外設以及片外存儲器,并且完成對壓縮后的視頻打包及進行網絡傳輸。
通信模塊采用宏電H7921-RHH3G無線路由器。它采用高性能32位處理器,基于通用基礎平臺,模塊化設計,內置國內外主流工業級無線核心模塊,采用嵌入式操作系統,并針對無線網絡帶寬的不穩定性、延遲較大等特性進行了優化設計,充分保證了設備穩定性和網絡連接的可靠性。它采用標準以太網協議,實現網絡路由,可通過3G網絡或VPDN、APN等運營商專用網絡構建移動數據通信網絡,應用極為廣泛。
客戶端采用 VLC多媒體播放器[7]對音頻與視頻進行解碼與顯示。VLC多媒體播放器 (最初命名為VideoLAN客戶端)是VideoLAN計劃的多媒體播放器。它支持眾多音頻與視頻解碼器及檔案格式,并支持DVD影碟,VCD影碟及各類串流協定。
系統的軟件開發基于MontaVista Linux嵌入式操作系統。MontaVista Linux提供所有開放源碼的開發工具和附加應用,它基于Linux內核,具有高效、實時、穩定、內核可裁減等特點[8],并且能夠支持廣泛的CPU芯片系列,支持多種目標板結構,并提供強大的網絡協議支持,擁有豐富的驅動程序和API。TI針對達芬奇平臺提供了達芬奇多媒體應用程序接口 (Davinci Multimedia Application Interface,DMAI)。DMAI是DSP提供給ARM端應用程序的調用接口,是操作系統和編解碼引擎之上的應用接口,使用它可以方便地編寫出用于達芬奇平臺上的應用程序。
安裝并配置CCStudio v3.3 IDE環境。配置完成后,啟動 CCStudio v3.3,配置 ARM的 GEL文件。基于CCStudio v3.3 IDE環境對NAND FLASH進行ubl、u-boot燒寫操作時,需要對DVS365平臺的硬件部分進行配置。
將仿真器的JTAG連接器與DVS365平臺的J7仿真器插座連接;將DVS365的SW1全部置 “0”;DVS365平臺的S3連接12V電源,給系統上電。
CCStudio v3.3啟動完畢后,選擇ARM端打開,加載GEL,連接ARM端。
在CCS中用 File→Load Program.命令,加載Flash_Writer目錄下的*.out文件運行程序;程序會彈出輸入UBL對話框,輸入UBL所在路徑,進行ubl的燒寫;ubl燒寫完成后,按要求輸入u-boot文件的路徑,進行u-boot的燒寫。等待片刻,在Stdout窗口將會顯示 “NAND boot preparation was successful!”字樣,說明燒寫完成。
當用戶對DVS365下的內核驅動源碼進行調整或者添加新的設備驅動后,需要對內核進行重新配置,生成內核鏡像后,可以通過 TFTP下載到DVS365平臺上啟動,進行測試。Linux內核的使用方法如下。
將SW1所有位置調“0”;使用串口線將SEED-DVS365與 PC機相連:一端接 SEEDDVS365的J3位置,另一端接 PC機的 RS232口;使用網線將SEED-DVS365與3G路由器相連,給平臺的S3連接12V電源。
硬件連接完成后,即可通過TFTP服務下載內核。配置PC機端的超級終端,設置串口參數:波特率115200,數據位8,奇偶校驗無,停止位1,數據流控制無;打開Windows PC機超級終端,SEED-DVS365平臺采用12V電源上電,此時Windows PC機超級終端顯示啟動信息如圖2。至此,基于 TFTP燒寫 uImage完成。
配置啟動參數,在提示符下輸入:

圖2 基于TFTP的uImage燒寫和更新
setenv bootargs mem=80M console=ttyS0,115200n8 root =/dev/nfsnoinitrd rw ip =192.168.1.18:192.168.253.1: 255.255.255.0 nfsroot=192.168.1.100:/opt/nfs/davinci_enc_mngr.ch0_output=TV davinci_capture.device_type=4 dm365_imp.oper_mode=0。
其中rw ip后IP為SEED-DVS365平臺的IP地址,nfsroot后IP為Linux服務器的IP地址;然后,配置bootcmd并保存設置,輸入啟動命令啟動系統,出現如圖3所示信息說明啟動完成。

圖3 系統的啟動完成
系統采用實時傳輸協議 (Real-time Transport Protocol,RTP)以及實時傳輸控制協議 (Real-time Transport Control Protocol,RTCP)作為視頻傳輸的協議。RTP和RTCP連接緊密,RTP實施實際數據的傳輸,RTCP則就服務質量做出反饋。RTP本身并沒有提供按時發送機制或其他服務質量 (QoS)保證,而是依賴于低層服務去實現這一過程。在RTP會話期間,各參與者周期性的傳送 RTCP包,RTCP包中含有已發送的數據包的數據、丟失的數據包的數量等統計資料,因此服務器可以利用這些信息動態的改變傳輸速率,甚至改變有效載荷類型[9]。
RTP利用混合器 (Mixer)和翻譯器(Translator)完成實時數據的傳輸[10]。混合器接收來自一個或多個發送方的RTP數據塊,并把它們組合成一個新的RTP分組繼續轉發。這種組合數據塊將有一個新的SSRC標識。具有新標識的特別發送方被作為特別信源加入到RTP數據塊中。因為來自不同特別發送方的數據塊可以非同步到達(它們可以經不同的路徑經過這個網絡),所以混合器改變了該媒體流的臨時結構。與混合器不同,翻譯器只改變數據塊內容,而不把媒體流組合在一起。翻譯器只是對單個媒體流進行操作。可能進行編碼轉換或者協議翻譯。一個典型的RTP包傳輸流程如圖4。

圖4 典型RTP包傳輸流程
其中S1,S2,S3,S4數據源的發送端,R1為最終RTP包流的接收端。
H.264是一種高性能的視頻編解碼技術。它是由2大標準化組織聯合組建的聯合視頻組 (JVT)共同制定的新數字視頻編碼標準,所以它既是ITU-T的H.264,又是 ISO/IEC的 MPEG-4高級視頻編碼 (AdvancedVideoCoding,AVC)。在同等圖像質量的條件下,H.264的壓縮比是MPEG-2的2倍以上,是 MPEG-4的1.5~2倍。而且,H.264在具有高壓縮比的同時還擁有高質量流暢的圖像,經過H.264壓縮的視頻數據,在網絡傳輸過程中所需要的帶寬更少,也更加經濟[11]。
進入程序所在目錄,控制臺提示符下執行如下命令:

其中:-r表示輸出分辨率;-i參數后面的IP為PC機服務器的IP地址。為了正確接收RTP協議的數據包,需要手動編寫 SDP(Session Description Protocol)文件,在SDP文件中指定接收端的1P地址,端口號以及待接收的媒體文件負載類型,使用的傳輸協議等信息[12]。通過 SDP,客戶端才可以正確的接收發送端發送的數據。使用VLC播放器,打開video.sdp文件,點擊“播放”按鈕就會看到采集到的圖像。
在終端里看到的視頻采集速率等信息如圖5。視頻采集流程圖如圖6所示。

圖5 視頻采集信息

圖6 視頻采集流程
設計了一種基于TMS320DM365的3G實時視頻傳輸系統。系統利用攝像頭采集視頻信息,經過DM365內嵌硬件壓縮器壓縮成H.264視頻格式,然后通過RTP以及RTCP編碼后經3G無線路由器發送,服務器接收端利用開源播放器VLC對視頻實時顯示。
本系統在實驗室環境下進行了測試,可以將采集的視頻數據通過3G路由器發送給PC上的VLC播放器,實現視頻信息的實時顯示。由于PC上VLC默認緩沖池比較大,觀看時會稍有延遲的現象,可以手動調整VLC上的緩沖池大小,減少延遲。另外,3G網絡的信號質量也會影響視頻的實時顯示效果。本系統經濟適用,在遠程監控、智能樓宇、智能交通、車載監控等領域有廣泛市場前景。
[1]王雄勇.基于DM365的視頻編碼器的硬件設計 [J].電子設計工程,2011,19(8):128-129,136.
[2]柴遠波,郭云飛.3G高速數據無線傳輸技術 [M[.北京:電子工業出版社,2009:20-29.
[3]Hanzo L, Cherriman P. Video compression and communications[M].Beijing:Posts&Telecom Press,2011:276-288.
[4]TMS320DM365:基于達芬奇技術的新型數字媒體處理器[J].世界電子元器件,2009(4):24.
[5]Texas Instruments Incorporated.TMS320DM36x digital media system on Chip DMSoC video processing front end VPFE user s guide[EB/OL]. [2009-03].http://focus.ti.com.cn/cn/lit/ug/sprufg8c/sprufg8c.pdf.
[6]秦臻,曹劍中.基于TMS320DM365的高速網絡攝像機的設計 [J].電子設計工程,2011,19(10):121-124.
[7]許進虎,劉文濤.運用VLC媒體播放器增加HDTV播出頻道的實踐 [J].中國有線電視,2006,15(6):532-534.
[8]宋建勛,劉峰.基于TMS320DM365多平臺實時視頻傳輸系統的設計與實現 [J].電視技術,2011,35(7):32-35,40.
[9]賀貴明.基于內容的視頻編碼與傳輸控制技術 [M].武漢:武漢大學出版社,2005:13-15.
[10]張洪宇.基于 RTP協議流媒體服務器的研究 [G] //成都:2007.
[11]李閃閃,王洪玉.H.264視頻解碼過濾器的設計與實現[G] //殷福亮,陳喆.中國通信學會學術會議文集:2010年通信理論與信號處理學術年會論文集.北京:電子工業出版社,2010:577-584.
[12]李家清,劉峰.基于 TMS320DM365的無線視頻傳輸系統[G] //殷福亮,陳喆.中國通信學會學術會議文集:2010年通信理論與信號處理學術年會論文集.北京:電子工業出版社2010:662-668.