《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信与网络 > 业界动态 > 在Internet网上提高传输视频实时性的研究

在Internet网上提高传输视频实时性的研究

2009-02-04
作者:付 良 赵 鹏 戴梅萼 史嘉权

  摘 要: 基于中國(guó)Internet網(wǎng)絡(luò)現(xiàn)狀,對(duì)提高視頻傳輸實(shí)時(shí)性、穩(wěn)定性、連續(xù)性提出了幾點(diǎn)改進(jìn)算法。在視頻會(huì)議、遠(yuǎn)程機(jī)器人控制中得到了具體的應(yīng)用,并取得了良好的效果。
  關(guān)鍵詞: 傳輸協(xié)議 壓縮 視頻

?

  Internet實(shí)時(shí)視頻傳輸在網(wǎng)絡(luò)會(huì)議、遠(yuǎn)程機(jī)器人控制等方面有著廣泛的應(yīng)用。其關(guān)鍵問(wèn)題包括:傳輸?shù)膶?shí)時(shí)性——根據(jù)不同系統(tǒng)的要求,實(shí)時(shí)性是一個(gè)重要的評(píng)價(jià)指標(biāo),例如視頻會(huì)議系統(tǒng),要求傳輸?shù)难舆t不超過(guò)0.5s,否則會(huì)影響參會(huì)者的正常表達(dá);對(duì)于遠(yuǎn)程控制系統(tǒng),要根據(jù)具體要求進(jìn)行調(diào)節(jié)。傳輸協(xié)議的制定——傳統(tǒng)的傳輸協(xié)議應(yīng)用到視頻傳輸中或多或少都存在一些缺陷,因?yàn)樗鼈儾皇菍iT設(shè)計(jì)的,尤其針對(duì)中國(guó)網(wǎng)絡(luò)現(xiàn)狀更要進(jìn)行一些獨(dú)特的設(shè)計(jì)。這包括并發(fā)的TCP協(xié)議,可靠的UDP傳輸協(xié)議。壓縮算法——對(duì)H.263視頻壓縮協(xié)議進(jìn)行增強(qiáng),調(diào)節(jié)關(guān)鍵幀與非關(guān)鍵幀的比例以及質(zhì)量來(lái)適應(yīng)不同的網(wǎng)絡(luò)傳輸率。
1 協(xié)議的設(shè)計(jì)
  傳統(tǒng)的視頻傳輸協(xié)議是建立在TCP/UDP的基礎(chǔ)上進(jìn)行的。他們都是傳輸層協(xié)議,具有較高的效率。TCP協(xié)議則保證了傳輸?shù)目煽啃裕捎眠@種協(xié)議要在視頻接收方建立服務(wù)程序等待來(lái)自發(fā)送方的視頻數(shù)據(jù)。最開始,發(fā)送方與接收方要建立一條穩(wěn)定的通路來(lái)保證傳輸?shù)目煽啃裕@種建立連接的過(guò)程可能是比較長(zhǎng)的,特別是發(fā)送方與接收方中間要經(jīng)過(guò)很多路由的時(shí)候。而一旦這條通路建立之后,數(shù)據(jù)的傳輸是可靠的,不會(huì)出現(xiàn)亂序或丟失數(shù)據(jù)包的現(xiàn)象。如果網(wǎng)絡(luò)的帶寬能穩(wěn)定維持在一定水平,傳輸視頻的效果很好。但由于Internet的現(xiàn)狀,電話線與中間路由器等硬件設(shè)備經(jīng)常出現(xiàn)阻塞,為此,我們提出以下幾種方法,來(lái)提高傳輸效率使視頻可以平滑、小延遲地回放。
1.1 多路TCP并發(fā)傳輸
  TCP協(xié)議建立連接的過(guò)程也是一個(gè)尋找通路的過(guò)程,它通過(guò)網(wǎng)絡(luò)層、物理層協(xié)議來(lái)建立從數(shù)據(jù)發(fā)送源到目的地的最佳通路。由于當(dāng)時(shí)網(wǎng)絡(luò)環(huán)境的不同,每次建立連接所選擇的通路就有可能不同,這些不同的通路同時(shí)阻塞的機(jī)會(huì)顯然比一條通路阻塞要小得多。這就是多路并發(fā)TCP傳輸協(xié)議的原理。
  具體的設(shè)計(jì)步驟如下:
  (1)設(shè)定同時(shí)連接進(jìn)行數(shù)據(jù)傳輸?shù)倪B接數(shù)目為5個(gè),每個(gè)連接都有一個(gè)線程來(lái)控制,每個(gè)線程可以獨(dú)立地運(yùn)作。他們之間又可以相互通信,使得在同一時(shí)刻進(jìn)行數(shù)據(jù)傳輸?shù)耐分挥幸粋€(gè)。并且這個(gè)數(shù)據(jù)通路的傳輸速度相對(duì)于其他通路是更快的。其他的通路反復(fù)地進(jìn)行數(shù)據(jù)傳輸速度的測(cè)試,稱為測(cè)試通路,在當(dāng)前數(shù)據(jù)通路發(fā)生阻塞的時(shí)候則斷掉這條通路,而啟用在測(cè)試通路中速度最快的那一個(gè),并將其切換為數(shù)據(jù)通路進(jìn)行傳輸。簡(jiǎn)言之,就是一個(gè)數(shù)據(jù)通路,多個(gè)測(cè)試通路同時(shí)并存,盡量選擇速度最快的通路作為數(shù)據(jù)通路見圖1。


  (2) 鑒于建立連接的過(guò)程相對(duì)較慢,所以采用交錯(cuò)的方式進(jìn)行。即不是在一開始將5個(gè)通路的連接全部建立起來(lái),而是先建立一個(gè)連接并作為數(shù)據(jù)通路傳輸,與此同時(shí)再逐步建立其他通路的連接,由于每條通路都是采用線程來(lái)控制的,它們之間不會(huì)相互影響,見圖2。


  (3) 如果經(jīng)過(guò)步驟(1)選擇了最佳的數(shù)據(jù)通路之后數(shù)據(jù)仍然不能傳出去,說(shuō)明現(xiàn)在的網(wǎng)絡(luò)帶寬不足以傳輸視頻數(shù)據(jù)流,因此傳輸模塊會(huì)將這一信息反饋給壓縮模塊,由壓縮模塊根據(jù)當(dāng)前的網(wǎng)絡(luò)速度重新調(diào)整參數(shù),形成新的數(shù)據(jù)量較小的視頻流。與此同時(shí)在發(fā)送方設(shè)有一個(gè)1秒鐘的cache,將由于阻塞而沒有發(fā)出去的數(shù)據(jù)包暫時(shí)存在cache中,無(wú)法存入cache中的數(shù)據(jù)包被發(fā)送方丟掉,這是對(duì)傳輸?shù)膶?shí)時(shí)性和連續(xù)性的一個(gè)折衷。
1.2 可靠的UDP傳輸
  用UDP協(xié)議進(jìn)行數(shù)據(jù)傳輸?shù)膬?yōu)點(diǎn)是不需要建立連接,傳輸速度快。缺點(diǎn)是容易丟失數(shù)據(jù)包和數(shù)據(jù)包的順序發(fā)生混亂。為此我們?cè)O(shè)計(jì)了一種方法來(lái)保證數(shù)據(jù)的可靠性。
  (1) 建立一條以UDP作為傳輸協(xié)議的數(shù)據(jù)通路,在傳輸時(shí)要把壓縮后的視頻流打包,這時(shí)不能簡(jiǎn)單地采用以視頻幀為打包的單位。因?yàn)椋谝?、某些壓縮的關(guān)鍵幀會(huì)很大以致超過(guò)了UDP協(xié)議所規(guī)定的最大值;第二、關(guān)鍵幀與非關(guān)鍵幀數(shù)據(jù)量相差很遠(yuǎn),有可能使數(shù)據(jù)量較小的非關(guān)鍵幀比它前面的數(shù)據(jù)量大的關(guān)鍵幀更早地到達(dá)接收方,而導(dǎo)致亂序。因此我們采用將數(shù)據(jù)流劃分成等量的小包,并在包頭標(biāo)上序號(hào)進(jìn)行順序傳輸,在包頭標(biāo)序號(hào)是為了防止由于UDP本身帶來(lái)的傳輸亂序問(wèn)題。
  (2) 建立一條以TCP為傳輸協(xié)議的控制通路,它的作用是反饋一些控制命令給發(fā)送方,以最小限度地防止傳輸中的錯(cuò)誤。接收方要從數(shù)據(jù)通路得到視頻數(shù)據(jù)流,并把這個(gè)數(shù)據(jù)流存儲(chǔ)在一個(gè)0.3s~0.8s的緩沖區(qū)中,按照數(shù)據(jù)包頭的編號(hào)將數(shù)據(jù)流重構(gòu)出來(lái)。如果數(shù)據(jù)包編號(hào)出現(xiàn)不連續(xù),說(shuō)明發(fā)生了丟包或亂序,則接收方立即通過(guò)控制通路發(fā)送要求重發(fā)所丟失的數(shù)據(jù)包的命令。采用TCP作為控制通路的協(xié)議是因?yàn)榭梢员WC控制命令的準(zhǔn)確性,而且控制命令的數(shù)據(jù)量很小,發(fā)生阻塞的情況不大。
  (3) 為了保證傳輸?shù)臅r(shí)實(shí)性,不能無(wú)限制地發(fā)送控制命令,接收方以緩沖區(qū)為限制,當(dāng)緩沖區(qū)已經(jīng)用完,而仍然存在丟失數(shù)據(jù)包的現(xiàn)象,則只有丟掉一些數(shù)據(jù)來(lái)保證實(shí)時(shí)性,見圖3。


2 數(shù)據(jù)壓縮
  視頻數(shù)據(jù)的壓縮比和質(zhì)量的好壞是Internet視頻傳輸是否成功的前提。為了適應(yīng)現(xiàn)有Internet的傳輸率低、傳輸性能不穩(wěn)定的特點(diǎn),我們采用國(guó)際上比較先進(jìn)的H.263壓縮標(biāo)準(zhǔn)。H.263是一種中等質(zhì)量的壓縮方法,它不象MPEG等高質(zhì)量的壓縮方法那樣有很高的圖象清晰度。但是,H.263標(biāo)準(zhǔn)有壓縮算法簡(jiǎn)單、壓縮快速和壓縮比高等特性,這使得它非常適合象“機(jī)器人遠(yuǎn)程控制”等要求實(shí)時(shí)傳輸圖像,但對(duì)圖像質(zhì)量的要求不高的情況,見圖4。


  為了適應(yīng)Internet的不穩(wěn)定性,需要在原有的壓縮算法上做一些改進(jìn)。通過(guò)傳輸模塊反饋回來(lái)的信息,可以得知當(dāng)前網(wǎng)絡(luò)的傳輸速率,以此來(lái)調(diào)整壓縮算法的各個(gè)參數(shù),來(lái)獲得最好的幀率和質(zhì)量。其中,一種方法是對(duì)幀內(nèi)壓縮方法的改進(jìn),另一種方法是對(duì)幀間壓縮方法的改進(jìn)。對(duì)幀內(nèi)壓縮方法的改進(jìn):主要是通過(guò)改變壓縮質(zhì)量的參數(shù)來(lái)調(diào)節(jié)圖像質(zhì)量和壓縮比,見圖5。


  對(duì)幀間壓縮方法的改進(jìn):可以通過(guò)改變幀率、關(guān)鍵幀間的距離來(lái)調(diào)節(jié)傳輸數(shù)率。改變每秒采集和傳輸?shù)膱D像數(shù)目,可以改變傳輸數(shù)據(jù)的大小,見圖6。

  運(yùn)動(dòng)壓縮的關(guān)鍵是在于兩幀之間的差別大小。如果圖象只有微小的變化,那么經(jīng)過(guò)作差后壓縮效果就好;如果圖像變化很大,那么經(jīng)過(guò)作差后壓縮效果就很差。為了充分利用運(yùn)動(dòng)壓縮的特點(diǎn),我們根據(jù)圖像的性質(zhì)來(lái)調(diào)節(jié)關(guān)鍵幀間的距離。在圖像變化不大的情況下,非關(guān)鍵幀數(shù)據(jù)較少,此時(shí)拉長(zhǎng)關(guān)鍵幀間的距離可以降低傳輸率;在圖像變化較大的情況下,非關(guān)鍵幀數(shù)據(jù)較多,此時(shí)縮短關(guān)鍵幀間的距離增加運(yùn)動(dòng)補(bǔ)償?shù)男Ч?BR>參考文獻(xiàn)
1 Microsoft著,曹 康譯. 使用 TCP/IP 協(xié)議的網(wǎng)絡(luò)互連
2 張明德,王永東.視頻會(huì)議系統(tǒng)原理與應(yīng)用
3 余崇智等編譯.運(yùn)動(dòng)圖像及其伴音的壓縮與編碼.MPEG? 1

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。