国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種網(wǎng)絡(luò)帶寬自適應(yīng)的流媒體傳輸選擇性丟幀方法

      文檔序號:7967084閱讀:331來源:國知局
      專利名稱:一種網(wǎng)絡(luò)帶寬自適應(yīng)的流媒體傳輸選擇性丟幀方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及互聯(lián)網(wǎng)流媒體傳輸領(lǐng)域,特別是關(guān)于一種流媒體服務(wù)器和網(wǎng)絡(luò)中間應(yīng)用層節(jié)點處的網(wǎng)絡(luò)帶寬自適應(yīng)的流媒體傳輸選擇性丟幀方法。
      背景技術(shù)
      近年來,隨著互聯(lián)網(wǎng)與多媒體壓縮等技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)流媒體應(yīng)運而生。流媒體技術(shù)使得音視頻等媒體數(shù)據(jù)可以在基于IP協(xié)議的互聯(lián)網(wǎng)中以一種“流”的形式實時、連續(xù)和穩(wěn)定地傳播,即接收方幾乎可以在發(fā)送方發(fā)送數(shù)據(jù)的同時便立即開始一邊接收數(shù)據(jù)一邊進(jìn)行播放,而不必等待所有數(shù)據(jù)全部下載到本地存儲介質(zhì)之后再從頭開始播放。
      典型的流媒體系統(tǒng)由一個流媒體服務(wù)器,一個IP互聯(lián)網(wǎng)絡(luò)和一個流媒體客戶端所組成,并允許在傳輸鏈中添加其它的中間應(yīng)用層節(jié)點,例如代理服務(wù)器或P2P(對等網(wǎng)絡(luò))中間節(jié)點等。如圖1所示,在一個典型的流媒體服務(wù)器中,接收(讀)線程從實時視頻編碼器或預(yù)編碼存儲好的視頻文件中,接收/讀取媒體數(shù)據(jù)并打包成RTP(實時傳輸協(xié)議)格式的數(shù)據(jù)包后,放入RTP循環(huán)緩沖區(qū);發(fā)送線程從RTP循環(huán)緩沖區(qū)中讀取RTP包,并通過互聯(lián)網(wǎng)將其發(fā)送至客戶端(或中間節(jié)點)。在一個典型的網(wǎng)絡(luò)中間應(yīng)用層節(jié)點中,發(fā)送線程從上游流媒體服務(wù)器(或其它中間節(jié)點)接收RTP包并放入RTP循環(huán)緩沖區(qū);發(fā)送線程從RTP循環(huán)緩沖區(qū)中讀取RTP包并通過互聯(lián)網(wǎng)將其發(fā)送至客戶端(或其它中間節(jié)點)。
      流媒體傳輸具有實時性、連續(xù)性和數(shù)據(jù)依賴性等特點。實時性要求網(wǎng)絡(luò)中傳輸?shù)母饕曨l幀數(shù)據(jù)必須在特定的播放時限之前到達(dá)接收方;連續(xù)性要求各視頻幀數(shù)據(jù)必須按照一定的順序進(jìn)行播放。壓縮的視頻數(shù)據(jù)具有兩種類型的數(shù)據(jù)依賴性幀間依賴要求接收方在解碼一個優(yōu)先級較低的視頻幀之前必須已解碼它所依賴的其它優(yōu)先級較高的視頻幀;幀內(nèi)依賴要求接收方最好在全部接收到組成一幀的所有數(shù)據(jù)包之后再進(jìn)行解碼,否則會引起解碼錯誤從而導(dǎo)致顯示畫面圖像破碎等現(xiàn)象,甚至可能引起解碼器程序崩潰。
      一個好的流媒體傳輸系統(tǒng)應(yīng)能夠滿足上述這些特性所帶來的相應(yīng)要求。然而目前的互聯(lián)網(wǎng)還主要是一個“盡力而為”的網(wǎng)絡(luò),其信道行為如帶寬、時延和丟包率等具有一定的動態(tài)性和不可預(yù)測性,無法提供流媒體傳輸所需要的服務(wù)質(zhì)量(QoS)保證。其中一個突出的問題就是存在于流媒體服務(wù)器和網(wǎng)絡(luò)中間應(yīng)用層節(jié)點的RTP循環(huán)緩沖區(qū)處的上下兩側(cè)帶寬(碼率)不匹配。由于互聯(lián)網(wǎng)中不同子網(wǎng)帶寬的異構(gòu)性以及網(wǎng)絡(luò)帶寬的動態(tài)波動,當(dāng)流媒體服務(wù)器或中間節(jié)點處的接收線程向RTP循環(huán)緩沖區(qū)中寫入數(shù)據(jù)的碼率大于發(fā)送線程向下游節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)的碼率時,可能會導(dǎo)致在該節(jié)點處隨機性的RTP數(shù)據(jù)包丟失。如圖2所示,當(dāng)開始向下游節(jié)點發(fā)送第25號RTP包時,當(dāng)前節(jié)點正在接收從上游節(jié)點發(fā)來的第34號RTP包;如圖3所示,當(dāng)向下游節(jié)點發(fā)送第25號RTP包結(jié)束時,從上游節(jié)點接收到的RTP包已經(jīng)循環(huán)一圈后開始接收第44號RTP包,將緊隨當(dāng)前RTP包之后尚未發(fā)送的第26號和第27號RTP包覆蓋,從而導(dǎo)致這兩個RTP包無法正確發(fā)送至下游節(jié)點。此時如何選擇下一個需要發(fā)送的分組有兩種方案一是直接遞增循環(huán)緩沖隊列的指針并發(fā)送新近接收到的第42號RTP分組;二是向后搜索并找到當(dāng)前尚未被覆蓋的最小序號(第28號)RTP分組進(jìn)行發(fā)送。然而無論采用哪種方案,都會導(dǎo)致下游節(jié)點接收到的分組序列號不再連續(xù),在方案一中丟失了第26-41號分組,在方案二中丟失了第26號和第27號分組,即出現(xiàn)隨機性的RTP數(shù)據(jù)包丟失。
      上述隨機性的RTP數(shù)據(jù)包丟失會給客戶端解碼器帶來嚴(yán)重后果。例如一個I幀或P幀中若干RTP包數(shù)據(jù)的丟失不僅會使得當(dāng)前幀解碼后的畫面中出現(xiàn)馬賽克、圖像破碎等現(xiàn)象,而且會導(dǎo)致當(dāng)前GOP(幀組)中后續(xù)所有P幀和B幀的解碼都出現(xiàn)類似情況,甚至可能導(dǎo)致解碼器進(jìn)程崩潰。為了解決這個問題,需要引入適當(dāng)?shù)倪m應(yīng)性傳輸控制機制。
      常見的針對帶寬不匹配問題的適應(yīng)性傳輸控制機制主要有聯(lián)播、轉(zhuǎn)碼和可伸縮編碼等。然而聯(lián)播僅適用于服務(wù)器而無法用于中間節(jié)點,且無法實現(xiàn)任意碼率的切換;實時轉(zhuǎn)碼的計算復(fù)雜度較高,且涉及到對RTP包的重新組包和拆包等,大大增加了應(yīng)用程序管理的復(fù)雜性;可伸縮編碼需要采用新的編碼技術(shù)和標(biāo)準(zhǔn),無法適用于現(xiàn)有大量存在的非可伸縮性編碼標(biāo)準(zhǔn)。

      發(fā)明內(nèi)容
      針對上述問題,本發(fā)明的目的是提供一種網(wǎng)絡(luò)帶寬自適應(yīng)的流媒體傳輸選擇性丟幀方法,使用本發(fā)明方法,實時性好且簡單易行,即使在網(wǎng)絡(luò)帶寬不匹配且隨時間動態(tài)變化的情況下,客戶端也能夠取得連貫、流暢和完整清晰畫面的播放效果。
      為實現(xiàn)上述目的,本發(fā)明采取以下技術(shù)方案一種網(wǎng)絡(luò)帶寬自適應(yīng)的流媒體傳輸選擇性丟幀方法,其特征在于在流媒體服務(wù)器或網(wǎng)絡(luò)中間應(yīng)用層節(jié)點中發(fā)送一個視頻序列的每一個GOP之前,根據(jù)GOP的播放時間間隔為其計算一個固定的發(fā)送時間窗口,每個GOP時間窗口由一個起始點和一個結(jié)束點所確定;采用TCP傳輸協(xié)議在一個GOP時間窗口內(nèi)有選擇地僅可靠傳輸該GOP所包含的部分或全部視頻幀數(shù)據(jù),其中被選擇的視頻幀的所有RTP包全部被傳輸,而未被選擇的視頻幀RTP包全部被丟棄。
      在準(zhǔn)備發(fā)送當(dāng)前的GOP的第一個RTP包之前,首先根據(jù)上一個GOP的發(fā)送情況來預(yù)測并初步確定當(dāng)前GOP的選擇性丟幀策略,如果當(dāng)前時間未超過當(dāng)前GOP時間窗口的起始點,則設(shè)置不丟棄當(dāng)前GOP中的任一視頻幀;如果當(dāng)前時間超過了當(dāng)前GOP時間窗口的起始點,且剛剛發(fā)送完畢的視頻幀是一個I幀,則設(shè)置丟棄當(dāng)前GOP中的所有視頻幀,如果當(dāng)前時間超過了當(dāng)前GOP時間窗口的起始點且剛剛發(fā)送完畢的視頻幀不是I幀,則設(shè)置丟棄當(dāng)前GOP中的所有B幀。
      當(dāng)使用TCP協(xié)議可靠發(fā)送當(dāng)前GOP中每一個被選擇視頻幀的所有RTP包完成之后,根據(jù)當(dāng)前時間決定是否對當(dāng)前GOP的選擇性丟幀策略進(jìn)行調(diào)整,如果當(dāng)前時間未超過當(dāng)前GOP時間窗口的結(jié)束點,則不調(diào)整丟幀策略并按原定丟幀策略繼續(xù)發(fā)送下一個視頻幀;如果當(dāng)前時間超過了當(dāng)前GOP時間窗口的結(jié)束點,則設(shè)置丟棄當(dāng)前GOP中后續(xù)所有的P幀和B幀,直接轉(zhuǎn)入對下一個GOP中視頻幀數(shù)據(jù)包的發(fā)送。
      本發(fā)明由于采取以上技術(shù)方案,因此其與其它解決網(wǎng)絡(luò)帶寬不匹配的流媒體傳輸適應(yīng)性控制機制相比,具有以下優(yōu)點1、本發(fā)明所提出的網(wǎng)絡(luò)帶寬自適應(yīng)選擇性丟幀方法復(fù)雜度低,實時性好,可以實現(xiàn)任意碼率的切換,且不需要改變流媒體服務(wù)器和網(wǎng)絡(luò)中間應(yīng)用層節(jié)點中原有的緩沖區(qū)數(shù)據(jù)結(jié)構(gòu),簡單易行,便于推廣使用。2、本發(fā)明由于按照GOP的播放時間約束和GOP內(nèi)各視頻幀的優(yōu)先級進(jìn)行選擇性丟幀,因此能夠保證每一個視頻幀所包含的所有RTP包要么全部安全送達(dá)接收端要么全部被丟棄,且客戶端所接收到的每一個視頻幀都完整且能夠正確解碼,而不需要依賴于任何已被選擇丟棄的幀。3、本發(fā)明可以確保在帶寬不匹配的情況下,雖然客戶端所觀察到的播放幀率可能有所下降,但仍可以連續(xù)、流暢地繼續(xù)播放,且每一幀畫面都仍然完整無損。本發(fā)明方法適用于MPEG系列和AVS等視頻編碼標(biāo)準(zhǔn),可以廣泛用于各種互聯(lián)網(wǎng)流媒體服務(wù)器或網(wǎng)絡(luò)中間應(yīng)用層節(jié)點處的數(shù)據(jù)傳輸中。


      圖1是典型的流媒體系統(tǒng)結(jié)構(gòu)示意2是流媒體服務(wù)器或網(wǎng)絡(luò)中間應(yīng)用層節(jié)點發(fā)送和接收RTP包示意3是流媒體服務(wù)器或網(wǎng)絡(luò)中間應(yīng)用層節(jié)點RTP包隨機丟失示意4是本發(fā)明提供的網(wǎng)絡(luò)帶寬自適應(yīng)選擇性丟幀方法的流程圖具體實施方式
      下面結(jié)合附圖和實施例,對本發(fā)明進(jìn)行詳細(xì)的描述。
      本發(fā)明方法包括以下內(nèi)容當(dāng)上下游網(wǎng)絡(luò)帶寬(碼率)不匹配時,發(fā)送線程可以有選擇地丟棄部分優(yōu)先級較低的視頻幀不發(fā)送,從而保證能夠利用有限的帶寬資源將其它具有較高優(yōu)先級的視頻幀在規(guī)定的時間內(nèi)順利發(fā)送至下游節(jié)點。被選擇丟棄的數(shù)據(jù)應(yīng)該對已發(fā)送數(shù)據(jù)的正確解碼不構(gòu)成任何影響,從而使得客戶端在僅接收到部分?jǐn)?shù)據(jù)的情況下也能夠連續(xù)、順暢地以完整、清晰的畫面進(jìn)行播放,雖然在部分時間段幀率可能會有所下降。
      本發(fā)明適用于以GOP(幀組)結(jié)構(gòu)編碼的視頻編碼標(biāo)準(zhǔn),例如MPEG1、MPEG2、MPEG4、H.264和AVS等。在基于GOP結(jié)構(gòu)的視頻編碼標(biāo)準(zhǔn)中,每個GOP必須以一個I幀開始,其后緊隨一系列P幀和B幀。I幀為幀內(nèi)編碼,解碼時不需要參考其它任何幀;P幀為前向預(yù)測編碼,解碼時需要參考位于它之前的I幀或P幀;B幀為雙向預(yù)測編碼,解碼時需要參考位于它前后兩側(cè)的I幀或P幀。對于顯示順序為“IBBPBBP…”形式的GOP,其傳輸和解碼順序為“IPBBPBB…”。當(dāng)決定丟棄某個幀時,該GOP中所有直接或間接依賴于該幀的其它幀也都必須被丟棄,否則會導(dǎo)致解碼器錯誤或失敗。根據(jù)上述丟幀原則和幀間依賴關(guān)系,每一個B幀都可以隨時丟棄;當(dāng)丟棄一個P幀時,當(dāng)前GOP中按解碼順序位于該P幀之后的所有其它P幀和B幀都應(yīng)該丟棄;當(dāng)丟棄一個I幀時,當(dāng)前GOP中的所有其它幀也都應(yīng)該丟棄。
      在一個流媒體傳輸系統(tǒng)中,媒體數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸碼率應(yīng)盡可能與播放器消耗這些數(shù)據(jù)的速率相一致。由于在流媒體系統(tǒng)中當(dāng)客戶端啟動播放之后每一個視頻幀都必須在一個固定的時間點完成播放,因此播放器消耗(播放)一個GOP的時間間隔是可以確定的。為此本發(fā)明選擇讓網(wǎng)絡(luò)在一個GOP播放時間間隔內(nèi)完成對該GOP中所有視頻幀數(shù)據(jù)的傳輸。如果由于帶寬限制在規(guī)定時間內(nèi)無法完成所有這些幀的傳輸,則應(yīng)選擇丟棄部分幀,并在規(guī)定期限到達(dá)之后跳過當(dāng)前GOP而直接進(jìn)入對下一個GOP的傳輸。
      為了保證所有被選擇發(fā)送的RTP包能夠按順序安全可靠到達(dá)接收端,本發(fā)明選擇采用TCP協(xié)議(傳輸控制協(xié)議)來發(fā)送這些分組。
      本發(fā)明所提基于TCP傳輸協(xié)議和GOP時間窗口約束的網(wǎng)絡(luò)自適應(yīng)選擇性丟幀方法主要根據(jù)上一GOP的發(fā)送情況來預(yù)測當(dāng)前GOP中的丟幀策略,并在發(fā)送當(dāng)前GOP中的每一幀之后再根據(jù)實際網(wǎng)絡(luò)帶寬吞吐量情況對當(dāng)前GOP的丟幀策略進(jìn)行適當(dāng)調(diào)整。如圖3所示,該選擇性丟幀方法的具體實施步驟如下S1.通過帶外信號指令或檢查相鄰兩個I幀的時間戳等方式來獲取當(dāng)前視頻碼流的GOP播放時間間隔值。
      S2.以當(dāng)前時間為基準(zhǔn)點,根據(jù)GOP播放時間間隔值計算后續(xù)各個GOP的發(fā)送時間窗口的起始點和結(jié)束點。
      S3.在準(zhǔn)備發(fā)送一個GOP的I幀的第一個RTP分組之前,判斷當(dāng)前時間是否已超過該GOP的時間窗口起始點S3.1.如果未超過,則采用TCP協(xié)議依次發(fā)送該GOP中的所有幀,包括I幀、P幀和B幀的各個RTP包;S3.2.否則進(jìn)一步判斷上一次剛發(fā)送完畢的幀是否I幀S3.2.1.如果是,則設(shè)置丟棄本GOP中所有幀,包括I幀、P幀和B幀;S3.2.2.否則設(shè)置丟棄該GOP中所有B幀,采用TCP協(xié)議僅依次發(fā)送該GOP中的I幀和后續(xù)所有P幀。
      S4.在發(fā)送當(dāng)前GOP中每一視頻幀的所有RTP包結(jié)束之后,判斷當(dāng)前時間是否已經(jīng)超過該GOP的時間窗口結(jié)束點S4.1.如果未超過,則繼續(xù)按步驟S3中所確定的丟幀策略采用TCP協(xié)議依次發(fā)送下一個應(yīng)該發(fā)送的視頻幀;S4.2.否則丟棄該GOP中后續(xù)所有的P幀和B幀,直接進(jìn)入對下一個GOP的發(fā)送。
      權(quán)利要求
      1.一種網(wǎng)絡(luò)帶寬自適應(yīng)的流媒體傳輸選擇性丟幀方法,其特征在于在流媒體服務(wù)器或網(wǎng)絡(luò)中間應(yīng)用層節(jié)點中發(fā)送一個視頻序列的每一個GOP之前,根據(jù)GOP的播放時間間隔為其計算一個固定的發(fā)送時間窗口,每個GOP時間窗口由一個起始點和一個結(jié)束點所確定;采用TCP傳輸協(xié)議在一個GOP時間窗口內(nèi)有選擇地僅可靠傳輸該GOP所包含的部分或全部視頻幀數(shù)據(jù),其中被選擇的視頻幀的所有RTP包全部被傳輸,而未被選擇的視頻幀RTP包全部被丟棄。
      2.如權(quán)利要求1所述的網(wǎng)絡(luò)帶寬自適應(yīng)的流媒體傳輸選擇性丟幀方法,其特征在于在準(zhǔn)備發(fā)送當(dāng)前的GOP的第一個RTP包之前,首先根據(jù)上一個GOP的發(fā)送情況來預(yù)測并初步確定當(dāng)前GOP的選擇性丟幀策略,如果當(dāng)前時間未超過當(dāng)前GOP時間窗口的起始點,則設(shè)置不丟棄當(dāng)前GOP中的任一視頻幀;如果當(dāng)前時間超過了當(dāng)前GOP時間窗口的起始點,且剛剛發(fā)送完畢的視頻幀是一個I幀,則設(shè)置丟棄當(dāng)前GOP中的所有視頻幀,如果當(dāng)前時間超過了當(dāng)前GOP時間窗口的起始點且剛剛發(fā)送完畢的視頻幀不是I幀,則設(shè)置丟棄當(dāng)前GOP中的所有B幀。
      3.按權(quán)利要求1或2所述的網(wǎng)絡(luò)帶寬自適應(yīng)的流媒體傳輸選擇性丟幀方法,其特征在于當(dāng)使用TCP協(xié)議可靠發(fā)送當(dāng)前GOP中每一個被選擇視頻幀的所有RTP包完成之后,根據(jù)當(dāng)前時間決定是否對當(dāng)前GOP的選擇性丟幀策略進(jìn)行調(diào)整,如果當(dāng)前時間未超過當(dāng)前GOP時間窗口的結(jié)束點,則不調(diào)整丟幀策略并按原定丟幀策略繼續(xù)發(fā)送下一個視頻幀;如果當(dāng)前時間超過了當(dāng)前GOP時間窗口的結(jié)束點,則設(shè)置丟棄當(dāng)前GOP中后續(xù)所有的P幀和B幀,直接轉(zhuǎn)入對下一個GOP中視頻幀數(shù)據(jù)包的發(fā)送。
      全文摘要
      本發(fā)明涉及一種網(wǎng)絡(luò)帶寬自適應(yīng)的流媒體傳輸選擇性丟幀方法,其特征在于在流媒體服務(wù)器或網(wǎng)絡(luò)中間應(yīng)用層節(jié)點中發(fā)送一個視頻序列的每一個GOP之前,根據(jù)GOP的播放時間間隔為其計算一個固定的發(fā)送時間窗口,每個GOP時間窗口由一個起始點和一個結(jié)束點所確定;采用TCP傳輸協(xié)議在一個GOP時間窗口內(nèi)有選擇地僅可靠傳輸該GOP所包含的部分或全部視頻幀數(shù)據(jù),其中被選擇的視頻幀的所有RTP包全部被傳輸,而未被選擇的視頻幀RTP包全部被丟棄。本發(fā)明方法復(fù)雜度低,實時性好,即使在網(wǎng)絡(luò)帶寬不匹配且隨時間動態(tài)變化的情況下客戶端也能夠取得連貫、流暢和完整清晰畫面的播放效果。本發(fā)明方法適用于MPEG系列和AVS等視頻編碼標(biāo)準(zhǔn),可以廣泛用于各種互聯(lián)網(wǎng)流媒體服務(wù)器或網(wǎng)絡(luò)中間應(yīng)用層節(jié)點處的數(shù)據(jù)傳輸中。
      文檔編號H04L29/02GK1946079SQ20061011423
      公開日2007年4月11日 申請日期2006年11月2日 優(yōu)先權(quán)日2006年11月2日
      發(fā)明者霍龍社, 高文 申請人:北京大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1