摘 要 網絡多媒體通信逐漸成為人們生活、工作以及其他應用中方便簡潔的一種技術。網絡音視頻數據量相對于傳統的信息(如文本,圖片等)有更大的數據量,在網絡傳輸中因網絡硬件及其它因素造成的數據傳輸的不穩定。為了保證數據的實時可靠的傳輸,根據長時間開發音視頻通信的經驗,采用了一種從采集、編解碼,到網絡傳輸的相互配合的保證數據的實時可靠的傳輸的方法,稱之為自適應多碼流傳輸技術。
關鍵字 音視頻 ;流媒體 ;緩沖 ;多碼流
中圖分類號: TP393.09 文獻標識碼:A文章編號:1671-489X(2007)07-0054-02
Adaptive Multi-Stream Web Transport and Control Technique in Multimedia Communication//He Yuhu, Zhou Shuyi
Abstract The internetmultimedia communication gradually becomes a convenient and concise technique in human’s life,work and other application.Because the audio-video multimedia data generallyis larger than traditional data such as text and picture , the data transmission on web mustn’t steady for net hardware unstable working and other fluctuate.To ensure multimedia data transmission on the real time and reliable way, a method could be adapt which comes my programming experience of the web audio-video communication, that is named self-adapt multi-rate transmission technique which ensures data’s real time and steady operating in coordination in the data collecting , encode-decode and net transmission .
Key wordAV, multimedia , buffer , multi-rate
Author’s address Beijing University of Technology, Beijing 100022
當前網絡上應用到音視頻媒體技術的軟件數不勝數:如QQ視頻聊天,MSN視頻會議,Windows Media流媒體發布,還有其他的一些如flash流的網絡音視頻插件。正是因為音視頻媒體給人以直觀生動感覺信息,可以預言在將來的網絡信息傳播中音視頻數據信息將占極大的一個比重。音視頻信息不同于其他媒體信息,具有實時、可容錯性的特點,因此面向非連接的UDP/IP協議成為網絡傳輸中的首選。但是由于UDP/IP協議天生的不可靠性,以及目前網絡通信條件的限制,在實際應用中常出現音視頻不同步,視頻不流暢,花頻,音頻噪音(如有規律的“嘟嘟”)等。針對這些問題,作者通過應用多碼流與網絡緩沖結合,并采用自適應負反饋調節,基本解決了以上問題,包括在網絡狀況比較差的64kb/s的modem上實現音視頻數據的比較流暢的傳輸。
1 網絡狀況分析
在多媒體數據傳輸中,網絡狀況大致可以通過網絡平均帶寬、網絡帶寬抖動和網絡噪聲3方面來進行描述。網絡平均帶寬反映的是網絡傳輸數據的最大承載量,無論是單點對單點,單點對多點,多點對多點的通信,其最終可簡化到單點對單點的數據通信,兩點間的平均帶寬取決于網絡線路及中間環節(路由器,交換機等)。平均帶寬是一個相對恒定的數值。網絡帶寬抖動是由于中間環節在處理中轉數據過程中造成的網絡實際帶寬隨時間變化而不斷變化的程度,此抖動往往與網絡的跳數(中間的路由器和交換機的個數)成比例變化。而網絡噪聲是由多方面因素造成的,相對于網絡帶寬抖動,網絡噪聲沒有規律且變化較快,波動也比較大。網絡狀況分析的這3個方面中,平均帶寬是一個可測量(測兩點間的帶寬,可用不斷增加的發送速率發送打戳的UDP包,接收方給出反饋即可測出),而其他兩個量不可能測出,帶寬抖動相對比較穩定,可以根據前面的數據估計,網絡噪聲隨機性比較大。
根據網絡狀況分析的3方面的特點,給出相應的解決策略。
(1)如果平均帶寬構成對多媒體數據傳輸的限制(平均帶寬小于或者大致接近多媒體碼流),則必須對音視頻數據的碼流進行調整。
(2) 根據網絡抖動的情況,開辟適當大小的音視頻接收緩沖區。
(3)對于網絡噪聲,采用立即增加緩沖和按需求申請重新發送的策略。
對于前兩條,并非始終不變,而需要自適應變化。
2 自適應多碼流
在通信前,對音視頻碼流進行一次估計:例如320×200采集大小,24位真彩,25幀/秒,H263壓縮的視頻(壓縮比約50:1),8000Hz/秒,兩字節采樣點,雙聲道,G729壓縮(壓縮比16:1)。則音視頻碼流:L1=320*200*24*25/50+8000*16*2/16=784 kb/s 。
根據此數值對網絡進行網速估計Vnet:分3步。
(1) 在1秒中發送784×1.2 /2=470 kb的UDP包群(乘1.2是安全系數),如果包群接近完全到達進行下一步;否則Vnet=470 kb/s , 跳出網速估計。
(2)在1秒中發送784×1.2 =940 kb的UDP包群(乘1.2是安全系數),如果包群接近完全到達進行下一步;否則Vnet=940 kb/s , 跳出網速估計。
(3)在1秒中發送784×1.2*2=1980 kb的UDP包群(乘1.2是安全系數),如果包群接近完全到達Vnet=1980 kb/s, 否則Vnet=784*1.2*1.5=1510 kb/s , 跳出網速估計。
跳出網速估計后,假如估計網速Vnet < 音視頻碼流L1, 根據實際情況降低音視頻碼流。有兩種方法:①降低采集幀率 ;②提高壓縮比。兩種方法協同進行。如果對視頻清晰程度有較高的要求,而視頻晃動較小的情況下可以考慮著重降低采集幀率的方法,具體做法是在采集后的圖像幀送到壓縮器時丟棄。如果圖像運動頻繁,清晰度要求不太嚴格的情況下,著重考慮提高壓縮比的方法,一般采用動態量化系數或者動態量化表的方法,去掉更多的圖像細節以達到提高壓縮比的目的。如果網速過低,這兩種方法不足以達到要求時,沒有辦法,只要像Windows Media 流那樣真正的多碼流了:降低采樣的個數,如176×144。
前面所說的估計網速Vnet并不是真實的網速,因此在實際傳輸過程中必須對Vnet進行修正,由于平均帶寬是比較恒定數值,對Vnet的修正可以在比較長的時間段做分析。具體的做法是設置一個變量P代表前一分鐘的丟包率,每一分鐘對P檢測,如果P大于某個數值則向發送方發送申請降低碼流的控制信息,發送方根據實際情況降低碼流;如果P小于某個數值,則發送網絡狀況良好,可以增加碼流的控制信息,發送方根據實際情況增加或者不改變碼流。P的值的算法在后面會介紹。
3 網絡緩沖處理
由于網絡抖動的存在,必須開辟網絡接收緩沖區來減弱網絡抖動造成的媒體數據信息傳輸的丟包現象。網絡抖動一般呈波浪型,設網絡帶寬抖動由T表示,由實踐觀察得知,網絡抖動一般在數秒鐘的數量級出現,因此以5秒為一個觀察間隔。在初始狀態時不能預測網絡抖動T的大小,就以估計網速Vnet的20%為初始值,以后在一定時間內自動調整。實際檢測中,設置兩個60×5=300長度的整型數組,分別表示音頻和視頻最近300秒的每秒鐘的丟包數:L[300](下標從0到299),同時設置一個隊頭指針,指向最新點,當網絡接收丟了若干包后在這個最新點的數值加上丟包數,隊頭指針由1秒定時器控制,每秒加一。每5秒設置一個網絡抖動計時器,用來記錄網絡抖動的評估,取一個5秒鐘的變量Lf表示5秒鐘的丟包數,如果Lf大于某個數值,則網絡帶寬抖動由T需要增加,如果小于某個數值則網絡帶寬抖動由T需要減小。相應的,前面所說的估計網速Vnet也需要隨時進行調整,設置一個一分鐘的定時器,取變量Lm表示前一分鐘的丟包數,根據Lm的取值對Vnet進行適當的調整。
4 網絡噪聲的處理
網絡噪聲出現比較隨機,基本上沒有比較好的理論上的評估方案,實際上對網絡噪音的觀察是通過臨界帶寬通信觀察的數據。在網通512 kb/s的ADSL上做了一個實驗:建立一個流量為500 kb/s的UDP連接,發送方每秒發送64個1 KB大小的包(即512kb),接收方設置1秒定時器,進行長時間的觀察,記錄如圖:

如圖,可以看到明顯突起的部分是由網絡噪聲造成的丟包波動,時間維持長度大約在10秒的時間段。實際處理時,設置一個10秒的定時器,觀察一秒前的丟包數,若丟包數大于某個數值,則認為有網絡噪聲,增加緩沖區到某個數值,如果丟包數小于某個數值則認為網絡噪聲停止,減小緩沖區個數。
5 結束語
對音視頻網絡數據的傳輸控制,有很多種方法,以上是作者在研究中分析總結自己實踐中的一些經驗,當然會有不足之處,希望以后的研究能夠給予補充。