趙 娟, 李 鑫
(1.中國地質大學(武漢)信息技術教學實驗中心,湖北 武漢 430074;2.中國地質大學(武漢)機械與電子信息學院,湖北 武漢 430074)
現有CDMA2000 EVDO網絡的帶寬完全可以滿足經過壓縮編碼后的實時視頻數據的傳輸[1],但由于視頻監控領域實時性的要求,須采用UDP/IP協議,它是面向非連接的,不可靠的傳輸服務;同時,CDMA2000 EVDO網絡自身具有波動性比較大、誤碼率高、傳輸延遲等諸多特點;經過傳輸的視頻通常會出現延遲大,出現馬賽克等質量問題。因此,有必要對CDMA2000 EVDO網絡的特性進行有效評估,來指導視頻編碼發送端視頻流的動態調節,從而達到降低丟包率,實現視頻流暢播放的目的。
筆者依據CDMA2000 EVDO網絡的諸多特點和參考RTP協議來制定出評估CDMA2000 EVDO網絡特性的相關參數,再經過大量的實驗數據統計、分析和論證,得出該網絡的特性。提出了在視頻編碼發送端進行速率整形以匹配網絡帶寬的策略,并利用TMS320DM365的開發平臺,對經過H.264編碼的視頻流進行了實時傳輸的測試。
相比有線網路,CDMA2000 EVDO網絡具有一定的特殊性,因此衡量其網絡特性也就相對比較復雜。這里主要依據RTP(real-time protocol)協議 RFC3550[2]給出部分參數,諸如丟包率、時間抖動;同時,從視頻傳輸的角度定義部分與網絡特性相關的參數,以下給出解釋。
1)丟包間隔
丟包間隔=當前包序列號 -前一次包的序列號
丟包的間隔用來衡量網絡實時的狀態,正常情況下丟包間隔應該為1,而丟包間隔越大,也就說明數據包丟失的越厲害。
2)數據流量
數據流量=收到的包個數/收到的時間間隔
對于數據流量的統計可以說明網絡的帶寬狀況,實時反映了傳輸速率。這里,可以把時間間隔作為恒定參量,來統計收到的數據包數,或者把收到的數據包數作為恒定參量,來統計時間間隔,而該文主要采用了后一種辦法。
對于網絡特性參數的測試,可以利用依據RTP協議編寫的函數庫jrtplib-3.7.1[3]和jrtpthread-1.2.1[4],該函數庫具有很好的兼容性,可以在多種操作系統中應用。這里主要將其應用在基于達芬奇架構的TMS320DM365開發平臺上和VC2008開發軟件中。
客戶端:TMS320DM365開發平臺+CDMA2000 EVDO模塊(MC8630)
服務器:VC2008開發軟件和有線網絡
測試條件:在同一時間段內進行連續測量,數據流量為每收到100個數據包計算一次,時間抖動為每兩個數據包計算一次,丟包率為收到數據包后每5 s計算一次,數據包大小為1 kB。
1)網絡傳輸數據的實時統計分析,如圖1至圖4所示。其中圖1和圖2是在平均數據流量為86.3 kB/s的條件下測試所得,圖3和圖4是在平均數據流量為32.6 kB/s的條件下測試所得。
從圖1和圖2可以看出,時間抖動和丟包間隔是同步變化的,而且時間抖動比較劇烈,數據包丟失的也較多。
從圖3和圖4可以看出,時間抖動變化比較緩和,丟失的數據包也相對較少。
2)網絡傳輸數據的整體對比,如表1所示。
從表1中可以看出,網絡傳輸過程中的平均數據流量越高,平均時間抖動就越大,平均丟包率也越高。而當平均數據流量降至32.6 kB/s時,平均丟包率已經降至1%以下。
圖1 時間抖動Fig.1 Time jitter
圖2 丟包間隔Fig.2 The interval of package lost
圖3 時間抖動Fig.3 Time jitter
圖4 丟包間隔Fig.4 The interval of package lost
表1.實驗測量數據Tab.1 Test data from experiment
綜合以上實驗數據,可以得出如下結論:發送數據速率(即數據流量)是決定CDMA2000 EVDO網絡傳輸特性的關鍵因素。而且,當前網絡帶寬一定的前提下,發送數據速率越高,時間抖動就越大,丟包率就越高;反之亦然。
TMS320DM365是TI的DaVinci系列的雙核處理器,采用DSP進行硬件視頻編碼,將輸入的BT.656格式的視頻流編碼為標準的H.264碼流輸出,該碼流會伴隨著I幀或P幀的產生而出現頻繁的數據抖動[5]。而根據以上實驗總結的CDMA2000 EVDO網絡的傳輸特性,當這種抖動的碼流直接通過網絡傳輸的時候,一旦瞬時碼流超過網絡所能承受的帶寬,將會面臨很高的丟包率。實驗證明,這種情況下,碼流的丟包會達到60%以上,時間抖動也會超過10000(單位是RTP時間戳單位)。因此,有必要對該碼流進行速率整形,使其平滑后再通過CDMA2000 EVDO網絡傳輸。
TMS320DM365開發平臺上控制輸出碼流大小的參數主要有幀率、GOP、圖像質量和圖像格式[6]。其中,對碼流速率整形起著重要作用的參數是幀率和GOP。幀率,決定著視頻圖像的播放速率。幀率越高,其圖像幀之間的間隔就越小,編碼后的數據速率就越大。GOP,是指圖像組,即每組圖像中包含多少個P幀和I幀。這兩個參數共同決定了編碼后輸出的H.264碼流的數據速率和I幀的時間間隔。于是,可以應用這組參數對需要傳輸的碼流予以速率整形[7]。
該過程如圖5所示,其主要實現兩個部分的功能。
圖5 速率整形過程Fig.5 The procedure of data rate re-shaping
1)發送時間間隔的初步估計,主要是利用兩個或多個I幀之間的時間間隔除以統計的包數,得到平均時間來作為發送的時間間隔。但是,考慮到在不同視頻模式切換的過程中,會產生時間突變,這樣,得到的時間間隔就不夠精確,從而引起發送數據量的突變,使得模式切換時過度不夠平滑。所以,需要進一步修正時間間隔。
2)修正時間間隔主要依賴于發送緩沖區中暫存的數據量。首先為發送緩沖區中的暫存數據量設定上下限Min_buf和Max_buf;然后對該數據量進行判斷,當數據量處于Min_buf和Max_buf之間時,說明發送數據正常,就可以使用初步估計的時間間隔;當數據量低于下限Min_buf時,說明發送數據的速率過快,就需要將初步估計的時間延時,以降低發送速率,從而使緩沖區里的數據量恢復到正常范圍,反之,當數據量高于上限Max_buf時,則需要縮短初步估計的時間。
經過初步速率整形之后,對視頻編碼發送端的數據速率進行測試。
測試條件為:圖像格式 CIF,幀率 15 f/s,GOP=15,圖像質量為A。
測試結果如圖6所示。
圖6 發送端數據流量統計Fig.6 The data stream statistics from sender
從中可以發現,該速率基本維持在55 kB/s左右,但同時也發現,每8個數據流間隔之間就會出現一個速率在100 kB/s左右的數據流,這是一個非常嚴重的問題。此后,經過大量的實驗測試和分析,針對TMS320DM365開發平臺來說,這個抖動的數據流是伴隨著幀率和GOP這兩個參數的變化而變化的。于是,為了獲得更加平滑的數據速率,就需要對該數據進行再次整形。
針對初次速率整形中所產生的問題,筆者通過對視頻編碼后的碼流進行分析,查找出抖動視頻流發生的規律,并以此作為計算初步發送時間間隔的邊界,這樣,就可以將之前平穩的碼流與其中抖動的碼流一起再次進行整形。但是,速率得到整形的同時,數據發送緩沖區就需要進一步進行細分以滿足數據突變時更多不同的情況。緩沖區調整算法如圖7所示。則以最快的速率發送數據,防止系統崩潰。
經過第二次速率整形以及發送緩沖區優化后,再對視頻編碼發送端的數據速率進行測試。實驗結果表明:數據流量已基本穩定在60 kB/s(測試條件與3.3節相同)。這說明抖動的視頻流也得到了一個有效的平滑緩沖。此外,經過服務器端的測試,當發送的碼流在CDMA2000 EVDO網絡帶寬范圍內時,數據的丟包率降低到10%以下,時間抖動也基本能穩定在5 000(單位是RTP時間戳單位)以下,更重要的是,通過該網絡實時傳輸的視頻數據可以實現比較流暢的播放。
圖7 緩沖區調整算法Fig.7 The tuning algorithm for buffe
該算法中先根據幾個I幀 (其中包括數據流抖動的I幀)進行統計,計算出理論發送數據的速率Ns以及這段時間編碼所產生的數據包數N,隨后利用緩沖區未發送數據的包數n與N的比值來將緩沖區分為6個小部分,每個部分對應一個統計得出的乘積系數kn,最后就可以利用kn計算出實際發送數據的速率。這6個小部分,可以這樣劃分:部分Ⅰ表示以正常的速率發送數據;部分Ⅱ表示當緩沖區里是數據累計較多時,以一定的比例加速發送數據;部分Ⅲ表示當編碼完成時,瞬時產生的大量數據包累積在緩沖區時,以比Ⅱ更快的速率發送數據;部分Ⅳ和部分Ⅴ處理的是在進行視頻模式向高碼率切換時,會產生大量的數據包,這時發送數據的速率需要更加快速;最后的部分Ⅵ是當有異常產生時,緩沖區內的數據包會超過理論單次編碼生成數據包的2倍以上,
在現有的CDMA2000 EVDO網絡中,采用速率整形的方法來傳輸經過H.264編碼壓縮的實時視頻數據,可以有效提高視頻的質量,減小視頻信號的時延,減弱視頻中的馬賽克現象[8]。但是,考慮一點,經過硬件編碼器編碼的視頻流,其碼流量是一定的,而這種碼流整形的方法只能是將抖動的碼流變得更加均勻,更適合于無線網絡傳輸,其并沒有有效的降低碼流。所以,在網絡狀況一旦變得比較差的情況下,即使經過平滑的碼流也同樣面臨著丟包率很高的危險,從而導致視頻質量降低。因此,更好的解決方法就是通過對3G無線網絡的動態評估和監測,來實時調整視頻編碼參數而有效地降低碼流,保證平穩的碼流能夠適應網絡帶寬的變化,以達到更加理想的效果。
[1]田霞.基于3G網絡的新型無線監控系統 [J].價值工程,2010,29(36):154-155.TIAN Xia.The new wirelessmonitoring system based on 3G network[J].Value Engineering,2010,29(36):154-155.
[2]Schulzrinne H,Casner S,Frederick R,et al.RTP:A Transport Protocol for Real-Time Applications[S].RFC3550.[S.l.]2003.
[3]Jori Liesenborgs.JRTPLIB 3.4.0[EB/OL].[2006-1-19].http:w ww.edm.uhasselt.be/
[4]Jori Liesenborgs.JThreadmanual(v1.2.1)[EB/OL].[2006-06-20].http://www.edm.uhasselt.be/
[5]Sejal Barot,Karimulla Shaik,Naveen Srinivasamurthy,Yashwant Dutt.Application Parameter Settings for TMS320D M365 H.264 Encoder[EB/OL].[2010-5-20].http:/www.ti.com/apps/docs/mrktgenpage.tsp contentId=54260&app Id=79.
[6]DM365-DVRReference Design User Guide Document Version1.1[EB/OL].[2009-8-21].http://www.ti.com/tool/dvrrd.
[7]盛先剛.基于RTP的H.264視頻傳輸系統研究 [D].西安:西安電子科技大學,2006.
[8]朱孟祥,唐普英,黃自立,等.基于DSP和FPGA的多通道CMOS圖像監控系統[J].電子設計工程,2011,19(14):178-180.ZHU Meng-xiang,TANG Pu-ying,HUANG Zi-li,et al.Monitoring system ofmultiple video channels based on DSP and FPGA[J].Electronic Design Engineering,2011,19(14):178-180.