專利名稱:一種對等網(wǎng)絡流媒體網(wǎng)絡編碼方法
技術領域:
本發(fā)明涉及網(wǎng)絡編碼技術領域,具體而言,本發(fā)明涉及一種對等網(wǎng)絡流媒體網(wǎng)絡 編碼方法。
背景技術:
流媒體是指在網(wǎng)絡上按時間先后次序傳輸和播放的連續(xù)音、視頻數(shù)據(jù)流,具有數(shù) 據(jù)量大、邊下載邊播放等特點,逐漸成為互聯(lián)網(wǎng)上音視頻服務的主要形式。然而,流媒體具 有嚴格的時序關系,播放要求嚴格的實時連續(xù)性。針對IP網(wǎng)絡,P2P(Peer to Peer,對等) 技術通過用戶間的數(shù)據(jù)共享和對等傳輸能夠有效提高視頻播放質(zhì)量、網(wǎng)絡吞吐量等系統(tǒng)性 能,是一種有效的應用層協(xié)作傳輸技術。然而,由于用戶群分裂、網(wǎng)絡結(jié)構(gòu)動態(tài)變化等因素, P2P流媒體分發(fā)仍存在數(shù)據(jù)“饑餓”現(xiàn)象,導致視頻播放中斷或質(zhì)量降低,因此,極端條件下 P2P流媒體分發(fā)的性能改善技術仍是其重點研究方向。在實用化網(wǎng)絡編碼應用中,特別在流媒體分發(fā)系統(tǒng)中,最基本的工作是完成視頻 數(shù)據(jù)的分段,以實現(xiàn)段內(nèi)網(wǎng)絡編碼,在提高系統(tǒng)傳輸性能的同時保持流媒體的實時播放特 性。在已有的研究成果中,針對流媒體分發(fā)中視頻的幀播放特點,網(wǎng)絡編碼通常采用時間分 段方式以GoP (Group of Picture,畫面組)為單位分段和以秒為單位分段,這種分段方式 有利于滿足視頻播放要求,但視頻VBR(Variable-Bit-Rate,變比特率)特性使該方式下的 數(shù)據(jù)段大小隨機波動,不便于緩沖區(qū)管理和數(shù)據(jù)調(diào)度。因此,本發(fā)明采用數(shù)據(jù)分段方式,即 每個段具有相同的分段長度。實際上,網(wǎng)絡編碼的分段長度與節(jié)點緩沖區(qū)、帶寬等多種因素有關,并直接影響播 放起始時延、視頻播放質(zhì)量和帶寬有效負載率。因此,在滿足資源約束和視頻播放要求的綜 合條件下,最大化網(wǎng)絡編碼的分段長度可有效提高編碼數(shù)據(jù)的有效負載率,從而提高帶寬 利用率??紤]實際的P2P系統(tǒng),各節(jié)點提供的緩沖區(qū)等資源不同,因此它們允許的最大分段 長度,即分段長度約束是不同的。若系統(tǒng)中所有節(jié)點采用相同的分段長度,其最大分段長度 只能為所有節(jié)點分段長度約束的最小值,造成具有大緩沖區(qū)節(jié)點的資源浪費,降低帶寬利 用率。然而,目前針對P2P流媒體分發(fā)的網(wǎng)絡編碼設計中,還沒有實現(xiàn)對不同緩沖區(qū)的處 理,影響了 P2P系統(tǒng)性能。
發(fā)明內(nèi)容
本發(fā)明的目的旨在至少解決上述技術缺陷之一,特別針對P2P系統(tǒng)中通過將分段 長度約束按大小順序劃分為多個等級,并在同級內(nèi)使用相同的分段長度,使各節(jié)點能夠根 據(jù)提供的資源使用不同的分段長度,提出了一種對等網(wǎng)絡流媒體網(wǎng)絡編碼方法。為實現(xiàn)上述目的,本發(fā)明的實施例提出了一種對等網(wǎng)絡流媒體網(wǎng)絡編碼方法,包 括如下步驟基于分段長度約束對節(jié)點分級,所述分段長度約束為每個節(jié)點所能采用的可行最大分段長度,將所述節(jié)點分為L級,各級的節(jié)點數(shù)分別為k1;k2. ..kL,n = ki+k2+. . . +K,n為節(jié)點數(shù);根據(jù)所述節(jié)點分級L,確定各級節(jié)點不同的分段長度gi,i = 1,2,…,L ;根據(jù)所述節(jié)點分級L和各級的分段長度gi,對段內(nèi)數(shù)據(jù)采用隨機網(wǎng)絡編碼實現(xiàn)段內(nèi)編碼;根據(jù)所述段內(nèi)編碼得到的編碼數(shù)據(jù)塊,各級節(jié)點之間協(xié)同工作,低級別節(jié)點向同 級或高級別節(jié)點發(fā)送數(shù)據(jù)請求,所述被請求的同級別或高級別節(jié)點接收所述數(shù)據(jù)請求,并 向請求節(jié)點發(fā)送數(shù)據(jù)。根據(jù)本發(fā)明實施例的方法,針對P2P系統(tǒng)中各節(jié)點具有的不同分段長度約束,以 隨機網(wǎng)絡編碼為基礎,通過將分段長度約束按大小順序劃分為多個等級,并在同級內(nèi)使用 相同的分段長度,使各節(jié)點能夠根據(jù)提供的資源使用不同的分段長度。同時,通過設計相同 長度的編碼向量和分段長度的整數(shù)倍關系等,使采用不同等級分段長度的節(jié)點能夠協(xié)同工 作,低級別節(jié)點可使用同級別或高級別節(jié)點的編碼數(shù)據(jù),具有較高的解碼概率。因此,本發(fā) 明內(nèi)容可用于實際P2P流媒體系統(tǒng)中的網(wǎng)絡編碼設計,以充分利用節(jié)點緩沖區(qū)等資源,提 高網(wǎng)絡編碼數(shù)據(jù)的有效負載率。本發(fā)明提出的上述方案,對現(xiàn)有系統(tǒng)的改動很小,不會影響系統(tǒng)的兼容性,而且實 現(xiàn)簡單、高效。本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變 得明顯,或通過本發(fā)明的實踐了解到。
本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變 得明顯和容易理解,其中圖1為根據(jù)本發(fā)明實施例的對等網(wǎng)絡流媒體網(wǎng)絡編碼的流程框圖;圖2為根據(jù)本發(fā)明實施例的基于分段長度約束的節(jié)點分級,L = 3的示意圖;圖3為根據(jù)本發(fā)明實施例的視頻數(shù)據(jù)的分級分段,L = 3的示意圖;圖4為根據(jù)本發(fā)明實施例的一級分段的段內(nèi)分塊及編碼示意圖;圖5為根據(jù)本發(fā)明實施例的二級分段的段內(nèi)分塊及編碼示意圖;圖6為根據(jù)本發(fā)明實施例的節(jié)點主動請求編碼數(shù)據(jù)塊的流程圖;圖7為根據(jù)本發(fā)明實施例的節(jié)點處理編碼數(shù)據(jù)塊請求的流程圖。
具體實施例方式下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終 相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。為實現(xiàn)本發(fā)明之目的,本發(fā)明實施例公開了一種對等網(wǎng)絡流媒體網(wǎng)絡編碼方法, 結(jié)合圖1所示,該方法包括如下步驟SlOl 基于分段長度約束對節(jié)點分級,分段長度約束為每個節(jié)點上的最大分段長 度,將節(jié)點分為L級,各級的節(jié)點數(shù)分別為k1; k2. . . kL, η = ki+k2+. . . +kL, η為節(jié)點數(shù)。具體的說,基于分段長度約束對所有節(jié)點分級包括首先,確定各節(jié)點的分段長度約束<,j = l,2,…,η。分段長度約束<為每個節(jié)點所能采用的可行最大分段長度。其 中,分段長度約束4是由各Peer節(jié)點提供的緩沖區(qū)、接入帶寬、播放時延約束等因素決定。 然后將上述各節(jié)點的分段長度約束<按從小到大進行排序,即· S…《乂。根據(jù)Ρ2Ρ流 媒體系統(tǒng)結(jié)構(gòu)和解碼概率需求,估計節(jié)點數(shù)閾值λ。閾值λ可以保障所有節(jié)點在網(wǎng)絡編碼 系統(tǒng)中都能夠盡可能的解碼,即具有較高的解碼概率。其影響該閾值的因素包括網(wǎng)絡拓撲 結(jié)構(gòu)和需求的解碼概率,在固定其他條件下,閾值越大,解碼概率越高,反之越低。根據(jù)節(jié)點數(shù)閾值λ,將各節(jié)點分為L級,各級的節(jié)點數(shù)分別為
ki+k2+. . . +kL,即確定每一級的節(jié)點數(shù)和該級可使用的最大分段長度^nax。其中,最高級節(jié)點數(shù)必須大于節(jié)點數(shù)閾值,即& > λ,由此可以保障解碼概率。下面以節(jié)點分級L = 3時的分級方法為例,結(jié)合圖2詳細說明。 圖2為基于分段長度約束的節(jié)點分級L = 3時的示意圖,如圖2中所示,基于分段 長度約束¥將所有節(jié)點劃分為三個等級,即L = 3。具體的說,首先確定各節(jié)點的分段長度約束¥,然后對節(jié)點的分段長度約束按從 小到大進行排序,即i ^·、《。根據(jù)P2P流媒體系統(tǒng)結(jié)構(gòu)和解碼概率需求,估計節(jié)點 數(shù)閾值λ,依據(jù)該閾值,對系統(tǒng)中所有節(jié)點進行分級,即確定每一級的節(jié)點數(shù)和該級可使用 的最大分段長度^max。在本實施例中,將N個節(jié)點劃分為三級,每級節(jié)點數(shù)為ki;i = 1,2,3。 其中,第一級節(jié)點的節(jié)點數(shù)為h,第二級節(jié)點的節(jié)點數(shù)為k2,第三級節(jié)點的節(jié)點數(shù)為k3,且 本實施例提供的網(wǎng)絡編碼分段采用數(shù)據(jù)分段方式,克服了時間分段方式造成的數(shù) 據(jù)塊大小波動的缺點,便于緩沖區(qū)管理和數(shù)據(jù)調(diào)度。針對給定視頻,網(wǎng)絡編碼分段長度的確 定需要綜合考慮了以下因素節(jié)點緩沖區(qū)、動態(tài)帶寬變化范圍、播放起始時延等。S102 根據(jù)節(jié)點分級L,確定各級節(jié)點不同的分段長度gi,i = 1,2,…,L。在上述步驟中給定的節(jié)點分級下,確定每一級使用的分段長度gi,i = 1,2,…,L。 其中,一級以上的分段長度gi(i ^ 2)為一級分段長度&的整數(shù)倍。設視頻數(shù)據(jù)總長度為S,則分段長度gl把該視頻數(shù)據(jù)等分成m段,即S = mXgl。 若節(jié)點共分為L級,則m可分解為L-I個正整數(shù),即
,其中κ i = 1, 2,…,L-I為第i+1級的分段長度乘子。高級分段的分段長度gi,i > 2是次高級分段的分段長度的整數(shù)倍,即 Si =^l-Igi-! =^1Kjgl,則最高級分段長度為& 二!!口/^免。即所有級別分段長度的最小公
倍數(shù)為做高級別分段長度,能夠整除視頻總數(shù)據(jù)長度S。在本實施例中,相同級別的節(jié)點具有相同的分段長度。各級分段長度gi除滿足上述整數(shù)化關系外,還要滿足每一級的分段長度gi,i = 1,2...L要不大于該級中各節(jié)點最大分段長度的最小值,結(jié)合圖2所示,即 …
在實際計算中,可采用整數(shù)規(guī)劃計算各級分段長度參數(shù),并實現(xiàn)分段長度的最大 化。圖3示出了視頻數(shù)據(jù)的分級分段,L = 3的示意圖。結(jié)合圖2和圖3所示,將視頻 內(nèi)容劃分為三級,各級分段長度分別為gl、&和g3,其中,& = 2gl、g3 = 4gl,即K1=K2 = 2。如圖3中所示,分段后,一級節(jié)點將視頻內(nèi)容分段為S11, S12,…,Sm,二級節(jié)點分段 為S21,S22,…,^f,三級節(jié)點分段為S41,S42,…,&寧。其中,高級分段的每一段包含低級分 段的多個分段,如S21由S11和S12構(gòu)成,J2f由Snri和Sm構(gòu)成;S41由Sn、S12, S13和S14構(gòu)成,
4 學甶 Sm—3、Sm—2、 Snri和Sm構(gòu)成。優(yōu)選的,通過設計節(jié)點分段,可使K i = 2,i = 1,2,…,L-1,形成二分分段。S103:根據(jù)節(jié)點分級L和各級的分段長度gi,對段內(nèi)數(shù)據(jù)采用隨機網(wǎng)絡編碼實現(xiàn) 段內(nèi)編碼。根據(jù)步驟101和102中確定的節(jié)點分級L和各級的分段長度gi,對段內(nèi)數(shù)據(jù)進行 網(wǎng)絡編碼,本實施例采用隨機網(wǎng)絡編碼實現(xiàn)段內(nèi)編碼。圖4示出了一級分段的段內(nèi)分塊及編碼示意圖。如圖4中所示,一級分 段的段數(shù)據(jù)等分為N塊,每個數(shù)據(jù)塊長度為gl/N。然后由節(jié)點隨機生成編碼向量 di = ^iel + ai2e2 + · ·. + o^e》,其中’司為已有數(shù)據(jù)塊的編碼向量。若為編碼數(shù)據(jù)塊, 貝阮為該塊的編碼向量;若為原始數(shù)據(jù)塊,則《為單位向量。在此編碼向量下,新編碼數(shù)據(jù)塊 Ei 為已有數(shù)據(jù)塊 Bil,Bi2,…,BiN 的線性組合 Ei = anBn+ai2Bi2+- + aiNBiN, 如圖4所示,編碼數(shù)據(jù)包由編碼向量和編碼數(shù)據(jù)構(gòu)成的有效負載組成,增大編碼 數(shù)據(jù)長度可提高數(shù)據(jù)有效負載率,進而提高帶寬利用率。在段內(nèi)編碼中,所有級別的分段采用相同的分塊方式,即編碼塊數(shù)相同,各級別的 分段的編碼塊數(shù)相同,同一級別的分段中每塊數(shù)據(jù)塊長度大小相同,因此,每一塊數(shù)據(jù)塊長 度與分段長度成正比。高級別節(jié)點在實施段內(nèi)編碼前,進行數(shù)據(jù)重組,包括如下步驟將該級的每段數(shù)據(jù)劃分為若干子段,其中,子段長度為最低一級的分段長度gl,然 后以子段為單位對編碼數(shù)據(jù)進行重組。如圖3所示,各子段按順序從橫向排列轉(zhuǎn)換為縱向排列,然后在分塊時以重組后 的數(shù)據(jù)進行分塊。結(jié)合圖3和圖5所示,二級分段S21劃分為兩個子段S11和S12,對上述子 段進行重組;三級分段S41對子段Sn、S12, S13, S14進行重組。重組后數(shù)據(jù)采用相同分塊數(shù), 如此以來,每個子段的分塊方式與一級分段的分塊方式完全相同,在編碼數(shù)據(jù)請求中可以 復用。即由節(jié)點隨機生成編碼向量碗=anel + ai2e2 + ··· +,其中 ,為已有數(shù) 據(jù)塊的編碼向量。若為編碼數(shù)據(jù)塊,則€為該塊的編碼向量;若為原始數(shù)據(jù)塊,則《·為單位 向量。在此編碼向量下,新編碼數(shù)據(jù)塊Ei為已有數(shù)據(jù)塊Bil,Bi2,…,BiN的線性組合Ei =α ηΒη+α i2Bi2+…+ α iNBiN。在本實施例中,以二級分段實施段內(nèi)編碼為例, 即 其中,對二級分段數(shù)據(jù)也等分為N塊,每個數(shù)據(jù)塊長度為2gl/N。S104:根據(jù)段內(nèi)編碼得到的編碼數(shù)據(jù)塊,各級節(jié)點之間協(xié)同工作,低級別的節(jié)點向 同級別或高級別節(jié)點發(fā)送數(shù)據(jù)請求,被請求節(jié)點接收數(shù)據(jù)請求,并向請求節(jié)點發(fā)送數(shù)據(jù)。在上述分級分段和段內(nèi)編碼方式下,不同級別分段長度的節(jié)點之間能夠協(xié)同工 作,低級別的節(jié)點可以向同級別或高級別的節(jié)點請求數(shù)據(jù),同級別或高級別節(jié)點根據(jù)請求 節(jié)點的分級參數(shù)和所請求的段號,定位到所請求的數(shù)據(jù)的位置,針對定位到的內(nèi)容進行隨 機網(wǎng)絡編碼,并傳輸該子段的編碼數(shù)據(jù)。然而,高級別的節(jié)點不能使用低級別節(jié)點的網(wǎng)絡編 碼數(shù)據(jù),只能使用同級別或更高級別節(jié)點的編碼數(shù)據(jù)。具體的說,結(jié)合圖6所示,低級別節(jié)點向同級別或高級別節(jié)點請求編碼數(shù)據(jù)塊包 括以下步驟,下面以節(jié)點A表示低級別節(jié)點,節(jié)點S表示同級別或高級別節(jié)點。Sl 節(jié)點A請求指定段的編碼數(shù)據(jù)塊,向節(jié)點S發(fā)送本節(jié)點的分級參數(shù)及指定段的 段號。在本實施例中,節(jié)點A為一級分段節(jié)點,節(jié)點S為二級分段節(jié)點,指定段的段號為S11.S2:節(jié)點A接收來自節(jié)點S發(fā)送的編碼向量,判斷本次編碼向量Cii和已接收的向 量α 是否線性相關,若線性相關,則丟棄該編碼向量,執(zhí)行步驟Sl ;否則執(zhí)行步驟S3 ;S3 節(jié)點S根據(jù)節(jié)點A的分級參數(shù)和所請求的段號,向節(jié)點A傳輸該子段的編碼數(shù) 據(jù);S4 節(jié)點A判斷是否接收到能夠解碼的最少線性無關塊,若已接收到,則從解碼塊 中產(chǎn)生可以播放的流媒體數(shù)據(jù);否則,判斷向被請求節(jié)點請求數(shù)據(jù)塊的次數(shù),若超過了設定的請求次數(shù)閾值,則該段編碼塊請求結(jié)束;若未超過設定的請求次 數(shù)閾值,重新定位被請求節(jié)點,執(zhí)行步驟Si,再次發(fā)送數(shù)據(jù)請求。其中,在步驟S3中,被請求節(jié)點即節(jié)點S根據(jù)請求節(jié)點即節(jié)點A的分級參數(shù)和所 請求的段號,向請求節(jié)點傳輸該子段的編碼數(shù)據(jù),結(jié)合圖7所示,包括如下步驟S31 節(jié)點S接收節(jié)點A的分級參數(shù)及所請求的編碼數(shù)據(jù)塊的段號,根據(jù)請求參數(shù) 定位請求內(nèi)容在本節(jié)點上的段號和位置;S32:節(jié)點S隨機產(chǎn)生N個隨機數(shù)Ciil,α i2,…,α iN,并組成一個N維編碼向量
,并將該向量發(fā)送給節(jié)點A ;S33 節(jié)點S接收節(jié)點A的反饋信息,若節(jié)點A重新請求編碼向量,則執(zhí)行步驟S32 ; 若可用則執(zhí)行步驟S34 ;否則不做任何響應,結(jié)束本次請求;S34 將定位的數(shù)據(jù)塊等分為N塊,N > 1,根據(jù)編碼向量和數(shù)據(jù)塊Bil,Bi2,…,BiN, 生成新的編碼數(shù)據(jù)塊Ei = α ηΒη+ α i2Bi2+…+ α iNBiN ;優(yōu)選的,節(jié)點S組合對應位置的已有編碼數(shù)據(jù)塊,生成新的編碼數(shù)據(jù)塊。S35:節(jié)點S向節(jié)點A發(fā)送編碼向量αi和數(shù)據(jù)塊Ei。
根據(jù)本發(fā)明實施例提供的方法,結(jié)合圖4和圖5所示,二級分段節(jié)點定位編碼數(shù)據(jù) 段S11在數(shù)據(jù)塊E21中的位置,即編碼塊E21的上半部分。該二級分段節(jié)點生成新的編碼向量和編碼數(shù)據(jù)塊
并發(fā)送給請求的一級分段節(jié) 點。類似地,若一級分段節(jié)點向二級分段節(jié)點請求編碼數(shù)據(jù)段S12,二級分段節(jié)點發(fā)送編碼 數(shù)據(jù)
給請求節(jié)點。如此以來,低
級別節(jié)點可以任意使用高級別節(jié)點的網(wǎng)絡編碼數(shù)據(jù)。若二級分段節(jié)點向二級分段節(jié)點請求編碼數(shù)據(jù)段S21,服務節(jié)點發(fā)送編碼數(shù)據(jù)
給請求節(jié)點。根據(jù)本發(fā)明實施例提供的對等網(wǎng)絡流媒體網(wǎng)絡編碼方法,采用分級分段方式,能 夠有效處理P2P網(wǎng)絡中節(jié)點緩沖區(qū)差異等因素引起的不同分段長度約束。該編碼方法以隨 機網(wǎng)絡編碼為基礎,可應用于實際分布式的P2P流媒體系統(tǒng)中,具有較高的實用性。對不同 級別的節(jié)點傳送大小不同的編碼塊,解決了同等分段方式對大緩沖區(qū)節(jié)點的資源浪費。低級別的節(jié)點可以向同級別或更高級別節(jié)點請求數(shù)據(jù)塊,提高了解碼概率,支持 節(jié)點間的協(xié)同工作。針對視頻數(shù)據(jù)總長度進行設計,能夠處理視頻最后分段的網(wǎng)絡編碼???之,本發(fā)明實施例提供的方法充分利用不同節(jié)點提供的緩沖區(qū)等資源,并保持了網(wǎng)絡編碼 的優(yōu)勢,通過提高編碼數(shù)據(jù)有效負載率可改善網(wǎng)絡帶寬利用率和視頻播放質(zhì)量,并具有較 高的實用價值。本領域普通技術人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可 以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中, 該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以 是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模 塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如 果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機 可讀取存儲介質(zhì)中。上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應 視為本發(fā)明的保護范圍。
權利要求
一種對等網(wǎng)絡流媒體網(wǎng)絡編碼方法,其特征在于,該方法包括如下步驟基于分段長度約束對節(jié)點分級,所述分段長度約束為每個節(jié)點所能采用的可行最大分段長度,將所述節(jié)點分為L級,各級的節(jié)點數(shù)分別為k1,k2...kL,n=k1+k2+...+kL,n為節(jié)點數(shù);根據(jù)所述節(jié)點分級L,確定各級節(jié)點不同的分段長度gi,i=1,2,…,L;根據(jù)所述節(jié)點分級L和各級的分段長度gi,對段內(nèi)數(shù)據(jù)采用隨機網(wǎng)絡編碼實現(xiàn)段內(nèi)編碼;根據(jù)所述段內(nèi)編碼得到的編碼數(shù)據(jù)塊,各級節(jié)點之間協(xié)同工作,低級別節(jié)點向同級或高級別節(jié)點發(fā)送數(shù)據(jù)請求,所述被請求的同級別或高級別節(jié)點接收所述數(shù)據(jù)請求,并向請求節(jié)點發(fā)送數(shù)據(jù)。
2.如權利要求1所述的方法,其特征在于,基于分段長度約束對所有節(jié)點分級包括如 下步驟確定各節(jié)點的分段長度約束^ , j = 1,2,…,η ;將所述各節(jié)點的分段長度約束<按從小到大進行排序,即 估計節(jié)點數(shù)閾值入;根據(jù)所述節(jié)點數(shù)閾值λ,將所述節(jié)點分為L級,各級的節(jié)點數(shù)分別為k1; k2. . . kL, η = ki+k2+. . . +&,確定每一級的節(jié)點數(shù)和該級可使用的最大分段長度g,max,其中,& > λ,
3.如權利要求1所述的方法,其特征在于,確定各級節(jié)點不同的分段長度gi包括如下 步驟除一級以外的其他級別的分段長度gi,i > 2為一級分段長度為gl的整數(shù)倍,分段長度 gl將視頻數(shù)據(jù)等分為m段,S卩S = mXgl,其中,S為視頻數(shù)據(jù)總長度,gl為一級分段長度, 為第i+Ι級的分段長度乘子,i = 1,2,…,L-1,高級分段的分段長度gi,i > 2為次高級分段的分段長度的整數(shù)倍,即 ,則最高級分段長度為
4.如權利要求3所述的方法,其特征在于,所述最高級分段長度&能夠整除視頻總數(shù) 據(jù)長度S,同級別節(jié)點具有相同的分段長度。
5.如權利要求2或3所述的方法,其特征在于,各級別的分段長度為gi,i= 1,2...L, 則每一級的分段長度小于或等于該分級中各節(jié)點最大分段長度的最小值,即
6.如權利要求1所述的方法,其特征在于,對段內(nèi)數(shù)據(jù)采用隨機網(wǎng)絡編碼實現(xiàn)段內(nèi)編 碼,包括如下步驟將各級分段的段數(shù)據(jù)等分為N塊,則每塊數(shù)據(jù)塊長度為gi/N ;由節(jié)點隨機生成編碼向量 ;則新編碼數(shù)據(jù)塊Ei為已有數(shù)據(jù)塊Bil,Bi2,…,BiN的線性組合Ei = α nBn+Qi2Bi2+-+ Q iNBiN。
7.如權利要求6所述的方法,其特征在于,對高級別分段的段內(nèi)數(shù)據(jù)采用隨機網(wǎng)絡編 碼實現(xiàn)段內(nèi)編碼前,進行數(shù)據(jù)重組,包括如下步驟將所述高級別分段的每段數(shù)據(jù)劃分為子段,所述子段長度為一級分段長度gl,然后以 子段為單位對編碼數(shù)據(jù)進行重組;對重組后的數(shù)據(jù)等分為N塊,則每塊數(shù)據(jù)塊長度為gi/N。
8.如權利要求6所述的方法,其特征在于,各級別的分段的編碼塊數(shù)相同,同一級別的 分段中每塊數(shù)據(jù)塊長度大小相等,所述每塊數(shù)據(jù)塊長度與其所在級別的分段長度成正比。
9.如權利要求1所述的方法,其特征在于,各級別分段長度的節(jié)點之間協(xié)同工作包括 如下步驟51低級別節(jié)點請求指定段的編碼數(shù)據(jù)塊,向同級別或高級別節(jié)點發(fā)送本節(jié)點的分級 參數(shù)及所述指定段的段號;52所述低級別節(jié)點接收所述同級別或高級別節(jié)點發(fā)送的編碼向量,判斷本次編碼向 量α 已接收的向量α"是否線性相關,若線性相關,則丟棄該編碼向量,執(zhí)行步驟Sl ; 否則執(zhí)行步驟S3 ;53所述同級別或高級別節(jié)點根據(jù)所述低級別節(jié)點的分級參數(shù)和所請求的段號,向所 述低級別節(jié)點傳輸該子段的編碼數(shù)據(jù);S4:所述低級別節(jié)點判斷是否接收到能夠解碼的最少線性無關塊,若已接收到,則從解 碼塊中產(chǎn)生流媒體數(shù)據(jù);否則,判斷向被請求的同級別或高級別節(jié)點請求數(shù)據(jù)塊的次數(shù);若超過請求次數(shù)閾值,則該段編碼塊請求結(jié)束;若未超過請求次數(shù)閾值,重新定位高級 別節(jié)點,執(zhí)行步驟Si,再次發(fā)送數(shù)據(jù)請求。
10.如權利要求9所述的方法,其特征在于,所述同級別或高級別節(jié)點根據(jù)所述低級 別節(jié)點的分級參數(shù)和所請求的段號,向所述低級別節(jié)點傳輸該子段的編碼數(shù)據(jù)包括如下步 驟S31 所述同級別或高級別節(jié)點接收所述低級別節(jié)點的分級參數(shù)及所請求的編碼數(shù)據(jù) 塊的段號,根據(jù)請求參數(shù)定位請求內(nèi)容在本節(jié)點上的段號和位置;S32:所述同級別或高級別節(jié)點隨機產(chǎn)生N個隨機數(shù)Ciil,Cii2,…,α ,并組成一個N 維編碼向量 ,并將該向量發(fā)送給所述低級別節(jié)點;S33 所述同級別或高級別節(jié)點接收所述低級別節(jié)點的反饋信息,若所述低級別節(jié)點重 新請求編碼向量,則執(zhí)行步驟S32 ;若可用則執(zhí)行步驟S34 ;否則不做任何響應,結(jié)束本次請 求;S34通過以下兩種方式之一生成新的編碼數(shù)據(jù)塊1)將定位的數(shù)據(jù)塊等分為N塊,根據(jù)編碼向量和數(shù)據(jù)塊Bil,Bi2,…,BiN,生成新的編碼 數(shù)據(jù)塊 Ei = αi1Βi1+ αi2Bi2+…+ αiNBiN, Ν> 1 ;2)所述同級別或高級別被請求節(jié)點組合對應位置的已有編碼數(shù)據(jù)塊,生成新的編碼數(shù)據(jù)塊;S35所述同級別或高級別節(jié)點向所述低級別節(jié)點發(fā)送編碼向量αi和數(shù)據(jù)塊Ei。
全文摘要
本發(fā)明的實施例公開了一種對等網(wǎng)絡流媒體網(wǎng)絡編碼方法,該方法包括基于分段長度約束對節(jié)點分級,分段長度約束為每個節(jié)點所能采用的可行最大分段長度,將節(jié)點分為L級,各級的節(jié)點數(shù)分別為k1,k2...kL,n=k1+k2+...+kL,n為節(jié)點數(shù);根據(jù)節(jié)點分級L,確定各級節(jié)點不同的分段長度gi,i=1,2,…,L;根據(jù)節(jié)點分級L和各級的分段長度gi,對段內(nèi)數(shù)據(jù)采用隨機網(wǎng)絡編碼實現(xiàn)段內(nèi)編碼;各級別分段長度的節(jié)點之間協(xié)同工作,高級別節(jié)點接收同級別或低級別節(jié)點的數(shù)據(jù)請求,并向該請求節(jié)點發(fā)送數(shù)據(jù)。根據(jù)本發(fā)明實施例提供的方法,充分利用了不同節(jié)點提供的緩沖區(qū)等資源,并保持了網(wǎng)絡編碼的優(yōu)勢,通過提高編碼數(shù)據(jù)有效負載率可改善網(wǎng)絡帶寬利用率,并具有較高的實用價值。
文檔編號H04L29/06GK101848224SQ201010186909
公開日2010年9月29日 申請日期2010年5月26日 優(yōu)先權日2010年5月26日
發(fā)明者于敬敬, 奚宏生, 王子磊 申請人:中國科學技術大學