新四季網

P2p流媒體系統中緩存消息的編碼方法及系統的製作方法

2023-04-28 11:03:21

專利名稱:P2p流媒體系統中緩存消息的編碼方法及系統的製作方法
技術領域:
本發明涉及P2P流媒體領域,尤其涉及一種P2P流媒體系統中緩存消息的編碼方 法及系統。
背景技術:
在現有I^eer to Peer (P2P)流媒體系統中,流媒體內容被切割成以數據塊(chunk) 為單位的連續的數據流在節點(Peer)間傳輸,每個chunk由唯一的chunk id標識。節 目內容的共享和交換都依賴於節點間交換的描述節點緩存狀態的緩存消息(簡稱BM)來 完成。在某一時刻t,節點下載到從chunk Idn^ljchimk 之間的部分數據,與之相對 應,一個緩存消息(BM)通常包括兩部分重要信息緩存節目數據塊的起始位置(簡稱偏 移量或Offset),以及從這個起始位置開始,數據塊的本地下載完成情況(簡稱比特圖或 bitmap)——由0/1比特序列構成(0/1分別代表未下載/已下載)。其中bitmap的長度標 志了節點緩存的長度。緩存越大,抵抗網絡攪動的能力越強,連續播放的能力越好。現有大 多數系統為了取得好的觀看效果而採用大緩存,但犧牲了播放時延,因此描述緩存狀態的 BM 一般有較大的長度,如UUke的BM描述大約400多個數據塊,PPLive則長達2000個數 據塊。如此長的BM給系統帶來較大的協議開銷。
BM在Peer間的交換頻率影響了數據塊的擴散速度和網絡共享環境。為了方便數 據塊在Peer間的共享,Peer間需要不斷地快速的交換BM,速度越快,越有利於數據塊的快 速分發。根據測量UUSee是5秒交換一次,PPLive是4秒。
BM的長度和交換頻率決定了這部分信息在P2P流媒體系統中的開銷。現有系統 的這一開銷比較大;若要通過提高BM交互頻率來提高系統性能,則會進一步增大這部分開 銷,因此現有的BM交互方法也限制了通過這一途徑提高系統質量的餘地。
傳統方法直接在Peer間交互原始的BM消息。為了壓縮原始BM長度,一些系統採 用了不同的壓縮方法對原始BM進行壓縮,如Huffman壓縮、遊程編碼和字典壓縮等,這些方 法建立在對原始的BM的0、1序列的簡單特徵統計規律上,採用了通用的數據壓縮手段,使 得傳送BM所需的信息長度有所減少;但是,這種壓縮由於沒有考慮到不同BM序列之間的相 關性,因此系統開銷不能得到很好的降低。發明內容
本發明的目的在於提供一種P2P流媒體系統中緩存消息的編碼方法及系統,基於 本發明能夠大幅度降低緩存消息間交互信息的長度,進一步降低系統開銷。
本發明利用了 peer間交互的BM的相關性,其基本原則是第一、一個Peer無需向 對方發送(根據對方的BM確認的)那些對方已經下載到的chunk的信息;第二、一個Peer 無需再向對方報告那些曾經在上次BM報告中已經下載到的chunk信息。
一方面,本發明一種P2P流媒體系統中緩存消息的編碼方法,包括如下步驟緩存 消息準備步驟,獲取對端最新確認收到的第一緩存消息;讀取所述對端最新發送的第二緩存消息,獲取待發送給所述對端的第三緩存消息;最大偏移量值計算步驟,計算所述第二緩 存消息和所述第三緩存消息的最大偏移量值;按需增量序列生成步驟,參照所述第二緩存 消息中所有大於所述最大偏移量值的比特信息,確定對端的已知信息;並剔除所述第三緩 存消息中的所述已知信息,生成按需增量序列;按需增量緩存消息生成步驟,基於所述按需 增量序列,添加第三緩存消息和所述第二緩存消息的偏移量標識符,生成按需增量緩存消 息;發送步驟,將該按需增量緩存消息發送至對端。
上述編碼方法,優選所述按需增量序列生成步驟中,所述對端的已知信息進一步 通過參照所述第一緩存消息和所述第二緩存消息中所有大於所述最大偏移量值的比特信 息來確定;並且所述按需增量緩存消息發送步驟中,所述按需增量緩存消息進一步通過如 下方式確定基於所述按需增量序列,添加第三緩存消息、第二緩存消息和第一緩存消息的 偏移量標識符。
上述編碼方法,優選所述按需增量序列生成步驟中,所述按需增量序列通過如下 方式確定將第一緩存消息和第二緩存消息中所有大於最大的偏移量值的比特位置進行 「或」運算,空位置按0計算,得到參照序列;依據所述參照序列中值為0的比特位置,順序提 取第三緩存消息中對應位置的比特值,該比特值所組成的序列給即為按需增量序列。
上述編碼方法,優選所述按需增量序列生成步驟和所述按需增量緩存消息發送步 驟之間,還設置有壓縮步驟,對所述按需增量序列進行壓縮,獲取壓縮的按需增量序列; 並且,所述按需增量緩存消息發送步驟中,基於所述壓縮的按需增量序列添加所述偏移量 標識符以生成所述按需增量緩存消息。
上述編碼方法,優選在所述按需增量緩存消息生成步驟和所述發送步驟之間,還 設置有壓縮步驟,對所述按需增量緩存消息進行壓縮處理。
另一方面,本發明還公開了一種P2P流媒體系統中緩存消息的編碼系統,包括緩 存消息準備模塊,獲取對端最新確認收到的第一緩存消息;讀取所述對端最新發送的第二 緩存消息,獲取待發送給所述對端的第三緩存消息;最大偏移量值計算模塊,用於計算所述 第二緩存消息和所述第三緩存消息的最大偏移量值;按需增量序列生成模塊,用於參照所 述第二緩存消息中所有大於所述最大偏移量值的比特信息,確定對端的已知信息;並剔除 所述第三緩存消息中的所述已知信息,生成按需增量序列;按需增量緩存消息生成模塊,用 於基於所述按需增量序列,添加第三緩存消息和所述第二緩存消息的偏移量標識符,生成 按需增量緩存消息;發送模塊,用於將該按需增量緩存消息發送至對端。
上述編碼系統,優選所述按需增量序列生成模塊中,所述對端的已知信息進一步 通過參照所述第一緩存消息和所述第二緩存消息中所有大於所述最大偏移量值的比特信 息來確定;並且所述按需增量緩存消息發送模塊中,所述按需增量緩存消息進一步通過如 下方式確定基於所述按需增量序列,添加第三緩存消息、第二緩存消息和第一緩存消息的 偏移量標識符。
上述編碼系統,優選所述按需增量序列生成模塊中,所述按需增量序列通過如下 方式確定將第一緩存消息和第二緩存消息中所有大於最大的偏移量值的比特位置進行 「或」運算,空位置按0計算,得到參照序列;依據所述參照序列中值為0的比特位置,順序提 取第三緩存消息中對應位置的比特值,該比特值所組成的序列給即為按需增量序列。
上述編碼系統,優選所述按需增量序列生成模塊和所述按需增量緩存消息發送模塊之間,還設置有第一壓縮模塊,用於對所述按需增量序列進行壓縮,獲取壓縮的按需增 量序列;並且,所述按需增量緩存消息發送模塊中,基於所述壓縮的按需增量序列添加所述 偏移量標識符以生成所述按需增量緩存消息。
上述編碼系統,優選在所述按需增量緩存消息生成模塊和所述發送模塊之間,還 設置有第二壓縮模塊,對所述按需增量緩存消息進行壓縮處理。
相對於現有技術而言,本發明不僅利用一個peer產生的連續的BM序列之間的相 關性,而且充分利用了 peer間交互的BM的相關性,從而能夠大幅度降低交互信息的長度, 降低開銷;並且交互間隔越短、交互頻率越快,由於相關性越強而使編碼越短。


圖1為本發明一種P2P流媒體系統中緩存消息的編碼方法實施例的步驟流程圖2為按需增量BM編碼示意圖3為本發明一種P2P流媒體系統中緩存消息的編碼方法實施例的初始化過程的 流程圖4為本發明一種P2P流媒體系統中緩存消息的編碼方法實施例的發送過程流程 圖5為與本發明P2P流媒體系統中緩存消息的編碼方法實施例的相對應的接收過 程流程圖6為本發明P2P流媒體系統中緩存消息的編碼系統實施例的結構框圖。
具體實施方式
為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實 施方式對本發明作進一步詳細的說明。
本發明提出了一種全新的BM壓縮編碼和互動設計,定義為按需增量BM的設計,這 種方法建立在深入分析BM序列相關性的基礎之上;並且普遍適用於現有的基於P2P技術的 流媒體系統。本發明基於如下思想在P2P流媒體系統中,BM的主要作用是在peer之間交 互數據塊的有無信息,從而使peer可以確認對方有哪些數據可供下載。現有P2P流媒體系 統中,peer間須通報各自完整的BM序列,而沒有考慮對方的需要。實際上,對於一個給定的 peer x,他只需要其鄰居peer y告訴他那些自己沒有而鄰居y有的數據塊信息就夠了,這 樣可以在很大程度上減小BM的冗餘信息。這正是我們設計按需增量BM的基本出發點一 個peer根據自己最新發送過的且已得到對方確認的BM(稱為本地參照BM)和最新接收到 的對方的BM(稱為對方參照BM),去除下一個待發送的BM的冗餘信息。因為這一壓縮過程 的主要特點是針對對方的需求而生成的,因此我們稱以上過程為按需增量BM的編碼過程。 基於類似的過程可以進行解碼。
需要注意的是,peer間通過交換按需增量BM而獲得的對對方緩存的認知可能並 不完整,換句話說,peer χ的BMi與peer y根據接收到的peer χ的對應的按需增量解碼 後得到的BMi並不完全相同。但是這些不同之處對雙方的共享信息的可用性不會造成任何 影響,因為那些不同之處一定會發生在以下這些比特位置這些比特位置對應的chunk至 少存在於雙方中的一個peer上;或相應比特位置已經過期和無效。因此按需增量BM的設計是可行的。在明確上述區別之後,為了方便描述,在後面的敘述中,我們在收發雙方用相 同的符號描述一個對應的BM。
P2P流媒體系統中緩存消息的編碼方法實施例
參照圖1,圖1為本發明一種P2P流媒體系統中緩存消息的編碼方法實施例的步驟 流程圖,包括如下步驟
S110,獲取對端最新確認收到的第一緩存消息;讀取所述對端最新發送的第二緩 存消息,獲取待發送給所述對端的第三緩存消息;也就是說,該步驟緩存以往發送過的若干 個(定義得到對方確認的最新的為第一緩存消息BM1)BM ;緩存以往已解壓縮的接收到的最 近若干個(定義接收到的最新的為第二緩存消息BM2)BM ;從高層模塊接收待發送的第三緩 存消息BM3 ;S120,計算出BM2和BM3的最大偏移量值max_offset ;S130,參照BM1和BM2所 有大於最大偏移量值max_0ffSet的比特信息,剔除BM3中對端已知的信息,保留對端未知 的信息和新增信息,生成按需增量序列ABMxy ;S140,在所述按需增量序列的基礎上,添加 BM3、BM2和BM1的偏移量標識符,生成按需增量BM ;S150,將按需增量發送到對端。
事實上,BM1, BM2和BM3是為了便於描述方法的過程才定義的。設通信雙方為A和 B,那麼A會按一定周期向B發送BM,B也會以同樣的周期發送BM給A。那麼從A端看所有 交互的 BM 序列將是(假定 A 先發送):BMa1-BMb1-BMA2-BMB2-BMA3-BMB3...
在本發明中,我們站在某個(假定A的)角度,描述A向B發送BM的過程,那麼A 在壓縮BMai時,須參照的過去的BM(Α的和B的)都是0,因此此時第一緩存BM1為空,BM2也 為空,BM3指的是BMai ;A在壓縮BMa2時,須參照的過去的BM分別是BMai的和BMbi,因此此時 第一緩存BM1指的是BMA1,BM2指的是BMB2, BM3指的是ΒΜΑ2。依次類推。
或者換個說法描述=BM1定義為本端已發送過的,並且已得到對端確認的最新的 BM ;BM2定義為本端接收到的,對端發送的最新的BM ;BM3定義為本端待壓縮和發送(給對 端)的BM ;BM3的壓縮需要參照BM1和BM2的信息。如果不考慮網絡丟包和時延,那麼按時 間順序觀察到的2個發送的BM(BM1和BM3)之間收到的為ΒΜ2。
按需增量編解碼包含3個處理過程,分別是按需增量編解碼器的初始化、按需增 量的編碼和發送、按需增量的接收和解碼。下面分步描述不同處理過程。
參照圖2至圖4,進一步對本發明所涉及的說明按需增量的BM的編碼過程進行詳 細的說明。
按需增量編解碼器的初始化過程
對按需增量編解碼過程涉及到的必須的內存、變量和指針等參數進行初始化。包 括
步驟1 為本地參照BM和對方參照BM分配2個循環緩存區,總大小至少為 (1^+1 ) XBM最大長度。其中Ic1和1 分別是預設的本地和對方參照BM的個數,通常可取Ic1 =1 °
步驟2 初始化「本地參照BM緩存表"BT1,用於存貯最新Ic1個發送過的原始BM ;初 始化BT1的寫指針WptrjDt1,指向BT1的第一個BM入口位置;初始化BT1的確認指針acked_ Ptr為空,用於記錄來自對方的對最近發送的BM的確認;
步驟3 初始化「對方參照BM緩存表」 BT2,用於存貯最新1 個接收到的已解碼的 BM ;初始化BT2的寫指針wptr_bt2,指向BT2的第一個BM入口位置;初始化BT2的讀指針curr_ptr為空,用於標明報告的最新BM。
桉需增量的編碼和發送
以peer χ向peer y發送按需增量BM的編碼過程來說明處理過程。設peer χ新 產生待發送的ΒΜ3。
步驟1 分配並初始化按需增量序列bit_seq的緩存;讀入待發送的BM3,按照 BT1的寫指針WptrjDt1存入BT1,然後WptrjDt1指向BT1的下一入口 ;根據BT1的確認指針 acked_ptr,讀入peer χ的本地參照ΒΜ,設為BM1 (這是經peer y確認已經接收到的peer χ的最新發送的BM),若acked_ptr為空,則設置BM1的offset遠遠小於BM3的offset且 bitmap長度為0 ;根據BT2的讀指針curr_ptr讀取對方參照BM,設為BM2 (即對方y發送到 χ的最新BM),如curr_ptr為空,則設置BM2的offset遠遠小於BM3的offset且bitmap長 度為0 ;
步驟2 計算出BM2和BM3中最大的偏移量值,設為maxjffset (圖1所示的例子 中為O3)。對peer y而言,只有chunk_id大於該值的數據塊才有意義;
步驟3 從chunk id = offset_max開始遞增到BM3標識的最大chunk id範圍內, 按位對BM1和BM2相應的chunk id位置的值進行或操作,若BM1或BM2在相應位置上沒有數 據,則按0值計,最後得到編碼前的參照序列,設為ref_seq。在這個序列中,1的位置說明 對應的chunk本地已經擁有或/和對方已經擁有,對方y —定也有相同的認知,因此,這些 值為1的位置不需再次告知對方y ;而0的位置說明相應數據塊雙方過去都沒有,因此,BM3 中對應這些0的chunk位置的所有比特值形成的序列就是所需的按需增量序列ABMxy,。
步驟4 根據ref_Seq對應的每個Chunk ID位置i,從左向右,依次檢查ref_Seq 的比特值,如為1則跳過;如為0則取BM3中對應數據塊位置i的比特值,依次順序存入按 需增量序列bit_seq。
步驟5 在按需增量序列bit_seq的基礎上,附加上BM1, BM2和BM3的offet標識 信息0」03和02,最終形成按需增量BM——Δ BMxy,發送給對方。需要說明的是,現有Ρ2Ρ流 媒體系統中offset所佔長度一般為4個字節,以上3個offset合計共佔用12個字節,為 進一步降低開銷,考慮到3個offset間的關係,可採用相對offset來編碼,如可用BM3的 Offset^BM1和BM2相對BM3Offset的值進行編碼,通常可以使這部分開銷進一步降低到8個 字節或更小。
需要指出的是,雖然按需增量序列ABMxy本身已經很短,一般情況下可直接用 於發送,但是在必要的時候,可以進一步採用壓縮算法進行壓縮處理,如rim-length、 huffman、算術編碼或字典壓縮等。根據具體協議設計不同,進一步的算法壓縮可以發生步 驟4或步驟5之後。
下面對與本發明P2P流媒體系統中緩存消息的編碼方法實施例的相對應的接收 過程進行詳細的說明。參照圖5,按需增量BM的接收與解碼過程如下。
下面以peer y接收收到peer χ發送的按需增量BM的解碼過程。設peer y接收 到來自peer χ的Δ BMxy。
步驟1 讀入接收到的ABMxy,解析其中的4個重要欄位該增量BM信息對應的 BM3、BM2, BM1的偏移量標識信息02,O3, O1,以及按需增量0/1序列bit_seq ;初始化變量BM1 處理出錯標識和BM2處理出錯標識為否。peer y的所知的BM3Z^BM2ZiBM1與χ的可能不完全一致,但是對信息的可用性沒有任何影響。
步驟2 如果O3標識的offset遠遠小於仏標識的offset (即BM2的offset遠遠 小於BM3的offset),說明BM2為空,設置BM2的offset遠遠小於BM3的offset且bitmap 長度為0 ;如果根據O3在本地緩存表BT1中查找到本次接收到的按需增量的參照BM—— BM2 (Peer y的BM),則取出BM2,它將用於後續解碼過程,須強調指出的是,O3同時也是χ對 y發送過的BM2的證實,說明χ已經了解y的標誌為O3的BM,因此須設置aCked_ptr為BT1 的BM2入口其為本地編碼器的本地參照BM ;如果沒有在表中找到O3唯一標識的BM2,則設置 BM2處理出錯標識為真,並將aCked_ptr指向空;
步驟3 如果O1標識的offset遠遠小於O2標識的offset (即BM1的offset遠遠小 於BM3的offset),說明BM1為空,設置BM1的offset遠遠小於BM3的offset且bitmap長度 為0 ;如果根據O1在本地緩存表BT2中查找到本次接收到的按需增量的參照BM——BM1 (Peer X的BM),則取出BM1,它將用於後續解碼過程;如果沒有在表中找到O1唯一標識的BM1,則設 置BM1處理出錯標識為真;
步驟4 如果8112或81^的處理出錯標識為真,則解碼失敗,結束解碼過程;否則,進 入以下解碼過程;
步驟5 計算出BM3和BM2偏移量中的最大值,記為max_offset ;計算出BM3和BM2 偏移量中的最大值,記為max_id ;
步驟6 從chunk id = offset_max開始遞增到max_id範圍內,按位對BM1和BM2 相應的chunk id位置的值進行或操作,若BM1或BM2在相應位置上沒有數據,則按0值計, 最後得到解碼的參照序列,記為ref_Seq。在這個序列中,1的位置說明對應的chunk本地 已經擁有或/和對方已經擁有;而0的位置說明相應數據塊雙方過去都沒有,因此,按需增 量序列bit_seq正是對應這些0的chunk位置的比特序列。需要注意的是,按需增量序列 bit_seq中超出這些0的位置的部分全部是BM3中的新增位置。
步驟7 若BM1為空,則初始化預處理bitmap序列preBM3,起始比特位置為BM3的 offset (O2);若BM1不為空,則PreBM3為由BM1的bitmap的O2的位置開始到最後一個比特 結束的全部比特序列。
按照ref_Seq序列中從左到右的每個0的比特位置,按順序將收到的按需增量序 列bit_seq的比特值逐個插入到預處理bitmap序列preBM3的相應的bitmap位置上,如果 PreBM3的序列長度不夠,須增加其長度;其次將bit_seq中超出ref_Seq的部分直接添加到 PreBM3序列後面。
最後在BM3的bitmap基礎上增加BM3的offset 02,得到最終的解碼後的BM3信息。
步驟8 將解碼後的BM3根據寫指針wptr_bt2存入本地緩存BT2,將wptr_bt2指向 下一個入口,並設置CUrr_ptr指向BM3的該緩存入口(為本地下一次發送按需增量BM的 對方參考BM)。此時y解碼的BM3與χ的BM3可能不完全一致,但是對信息的可用性沒有任 何影響。
以上是按需增量的接收和解碼過程。是需要指出的是,如果按需增量序列ABMxy 採用了其他算法如Run-LengtKHufTman編碼、算術編碼或字典壓縮,則須在步驟1中,先按 相應流程解碼。
在本發明的另一實施例中,在上述過程的編碼方法也可以簡化為生成BM1並發送9到對端;接收對端發送的BM2 ;產生待發送給對端的BM3 ;計算出BM2和BM3的最大偏移量值 max_offset ;只參照BM1所有大於最大偏移量值maX_offset的比特信息,剔除BM3中對端已 知的信息,保留對端未知的信息和新增信息,生成按需增量序列ABMxy ;在所述按需增量序 列的基礎上,添加BM3和Ml2的偏移量標識符,生成按需增量BM並發送到對端。
由上述兩個實施例可以看出,本發明提出的提出按需增量編碼方法,不僅利用一 個peer產生的連續的BM序列之間的相關性,而且充分利用了 peer間交互的BM的相關性, 從而能夠大幅度降低交互信息的長度,降低開銷;並且交互間隔越短、交互頻率越快,由於 相關性越強而使編碼越短。
參照圖6,圖6為P2P流媒體系統中緩存消息的編碼系統實施例的結構框圖。該系 統包括緩存消息生成模塊60、最大偏移量值計算模塊62、按需增量序列生成模塊64、按需 增量緩存消息生成模塊66和發送模塊68。其中
緩存消息生成模塊60用於獲取對端最新確認收到的第一緩存消息;讀取所述對 端最新發送的第二緩存消息,獲取待發送給所述對端的第三緩存消息。也就是說,緩存消 息準備模塊60用於緩存以往發送過的若干個(定義得到對方確認的最新的為第一緩存消 息BM1)BM ;緩存以往已解壓縮的接收到的最近若干個(定義接收到的最新的為第二緩存消 息BM2)BM ;從高層模塊接收待發送的第三緩存消息BM3 ;最大偏移量值計算模塊62用於計 算所述第二緩存消息BM2和所述第三緩存消息BM3的最大偏移量值;按需增量序列生成模 塊64用於參照所述第二緩存消息BM2中所有大於最大偏移量值max_0ffSet的比特信息, 確定對端的已知信息;並剔除所述第三緩存消息BM3中的所述已知信息,生成按需增量序列 Δ BMxy ;按需增量緩存消息BM生成模塊66用於基於所述按需增量序列△ BMxy,添加第三緩 存消息BM3和所述第二緩存消息BM2的偏移量標識符,生成按需增量緩存消息BM ;發送模塊 68用於將該按需增量緩存消息BM發送至對端。
優選的一個實施例是,按需增量序列生成模塊64中,參照第一緩存消息BM1和第 二緩存消息BM2中所有大於最大偏移量值max_0ffSet的比特信息,剔除第三緩存消息BM3 中對端早先已知的信息,保留對端還未知的信息和新增信息,生成按需增量序列;相對應 地,按需增量緩存消息生成模塊66中,在按需增量序列Δ BMxy的基礎上,添加第三緩存消息 BM3、第二緩存消息BM2和第一緩存消息BM1的偏移量標識符,生成按需增量緩存消息
進一步地,在一個實施例中,增量序列還可以按照下述方式獲取將第一緩存消息 BM1和第二緩存消息BM2中所有大於最大的偏移量值max_0ffSet的比特位置進行「或」運 算,空位置按0計算,得到參照序列ref_seq ;依據所述參照序列ref_seq中值為0的比特 位置,順序提取第三緩存消息BM3中對應位置的比特值,該比特值所組成的序列給即為按需 增量序列。
另外,在一個實施例中,按需增量序列生成模塊64與按需增量緩存消息BM生成模 塊66之間還包括對按需增量序列△ BMxy進行壓縮處理的第一壓縮模塊,按需增量緩存消息 BM生成模塊66基於壓縮之後的按需增量序列Δ ΒΜΧ。
在另外一個實施例中,按需增量緩存消息BM生成模塊66與發送模塊68之間還包 括第二壓縮模塊,該模塊對按需增量BM進行壓縮處理。
上述系統實施例與方法實施例原理相同,本發明在此不再贅述,相同之處互相參 照即可。
綜上,本發明具有如下特點
(1)建立在深入認識BM序列特徵基礎之上。不僅利用一個Peer產生的連續的BM 序列之間的相關性,更重要的是,充分利用了 Peer間要交互的BM的相關性,換句話說,利 用Peer間對相同Chunk下載狀態信息的相關性進行壓縮,從而能大幅度降低交互信息的長 度,降低開銷;
(2)交互間隔越短(交互頻率越快),編碼越短(因為相關性越強);
(3)普遍適用於現有的基於P2P技術的流媒體系統。
以上對本發明所提供的一種P2P流媒體系統中緩存消息的編碼方法及系統進行 詳細介紹,本文中應用了具體實施例對本發明的原理及實施方式進行了闡述,以上實施例 的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員, 依據本發明的思想,在具體實施方式
及應用範圍上均會有改變之處。綜上所述,本說明書內 容不應理解為對本發明的限制。
權利要求
1.一種P2P流媒體系統中緩存消息的編碼方法,其特徵在於,包括如下步驟緩存消息準備步驟,獲取對端最新確認收到的第一緩存消息;讀取所述對端最新發送 的第二緩存消息,獲取待發送給所述對端的第三緩存消息;最大偏移量值計算步驟,計算所述第二緩存消息和所述第三緩存消息的最大偏移量值;按需增量序列生成步驟,參照所述第二緩存消息中所有大於所述最大偏移量值的比特 信息,確定對端的已知信息;並剔除所述第三緩存消息中的所述已知信息,生成按需增量序 列;按需增量緩存消息生成步驟,基於所述按需增量序列,添加第三緩存消息和所述第二 緩存消息的偏移量標識符,生成按需增量緩存消息;發送步驟,將該按需增量緩存消息發送至對端。
2.根據權利要求1所述的編碼方法,其特徵在於,所述按需增量序列生成步驟中,所述對端的已知信息進一步通過參照所述第一緩存消 息和所述第二緩存消息中所有大於所述最大偏移量值的比特信息來確定;並且所述按需增量緩存消息發送步驟中,所述按需增量緩存消息進一步通過如下方式確 定基於所述按需增量序列,添加第三緩存消息、第二緩存消息和第一緩存消息的偏移量標 識符。
3.根據權利要求2所述的編碼方法,其特徵在於,所述按需增量序列生成步驟中,所述 按需增量序列通過如下方式確定將第一緩存消息和第二緩存消息中所有大於最大的偏移量值的比特位置進行「或」運 算,空位置按0計算,得到參照序列;依據所述參照序列中值為0的比特位置,順序提取第三緩存消息中對應位置的比特 值,該比特值所組成的序列給即為按需增量序列。
4.根據權利要求1至3中任一項所述的編碼方法,其特徵在於,所述按需增量序列生成 步驟和所述按需增量緩存消息發送步驟之間,還設置有壓縮步驟,對所述按需增量序列進行壓縮,獲取壓縮的按需增量序列;並且,所述按需增量緩存消息發送步驟中,基於所述壓縮的按需增量序列添加所述偏移量標 識符以生成所述按需增量緩存消息。
5.根據權利要求4所述的編碼方法,其特徵在於,在所述按需增量緩存消息生成步驟 和所述發送步驟之間,還設置有壓縮步驟,對所述按需增量緩存消息進行壓縮處理。
6.一種P2P流媒體系統中緩存消息的編碼系統,其特徵在於,包括緩存消息準備模塊,獲取對端最新確認收到的第一緩存消息;讀取所述對端最新發送 的第二緩存消息,獲取待發送給所述對端的第三緩存消息;最大偏移量值計算模塊,用於計算所述第二緩存消息和所述第三緩存消息的最大偏移 量值;按需增量序列生成模塊,用於參照所述第二緩存消息中所有大於所述最大偏移量值的 比特信息,確定對端的已知信息;並剔除所述第三緩存消息中的所述已知信息,生成按需增 量序列;按需增量緩存消息生成模塊,用於基於所述按需增量序列,添加第三緩存消息和所述 第二緩存消息的偏移量標識符,生成按需增量緩存消息;發送模塊,用於將該按需增量緩存消息發送至對端。
7.根據權利要求6所述的編碼系統,其特徵在於,所述按需增量序列生成模塊中,所述對端的已知信息進一步通過參照所述第一緩存消 息和所述第二緩存消息中所有大於所述最大偏移量值的比特信息來確定;並且所述按需增量緩存消息發送模塊中,所述按需增量緩存消息進一步通過如下方式確 定基於所述按需增量序列,添加第三緩存消息、第二緩存消息和第一緩存消息的偏移量標 識符。
8.根據權利要求7所述的編碼系統,其特徵在於,所述按需增量序列生成模塊中,所述 按需增量序列通過如下方式確定將第一緩存消息和第二緩存消息中所有大於最大的偏移量值的比特位置進行「或」運 算,空位置按0計算,得到參照序列;依據所述參照序列中值為0的比特位置,順序提取第三緩存消息中對應位置的比特 值,該比特值所組成的序列給即為按需增量序列。
9.根據權利要求6至8中任一項所述的編碼系統,其特徵在於,所述按需增量序列生成 模塊和所述按需增量緩存消息發送模塊之間,還設置有第一壓縮模塊,用於對所述按需增量序列進行壓縮,獲取壓縮的按需增量序列;並且,所述按需增量緩存消息發送模塊中,基於所述壓縮的按需增量序列添加所述偏移量標 識符以生成所述按需增量緩存消息。
10.根據權利要求9所述的編碼系統,其特徵在於,在所述按需增量緩存消息生成模塊 和所述發送模塊之間,還設置有第二壓縮模塊,對所述按需增量緩存消息進行壓縮處理。
全文摘要
本發明公開了一種P2P流媒體系統中緩存消息的編碼方法及系統。其中,該方法包括獲取對端最新確認收到的第一緩存消息(BM1);讀取對端最新發送的第二緩存消息(BM2),獲取待發送給對端的第三緩存消息(BM3);計算出BM2和BM3的最大偏移量值max_offset;參照BM1和BM2所有大於最大偏移量值max_offset的比特信息,剔除BM3中對端已知的信息,保留對端未知的信息和新增信息,生成按需增量序列ΔBMxy;在按需增量序列的基礎上,添加BM3、BM2和BM1的偏移量標識符,生成按需增量BM;將按需增量發送到對端。本發明利用一個peer產生的連續的BM序列之間的相關性和peer間交互的BM的相關性,大幅度降低交互信息的長度,降低系統開銷。
文檔編號H04L29/06GK102035836SQ20101058596
公開日2011年4月27日 申請日期2010年12月13日 優先權日2010年12月13日
發明者李純喜, 趙永祥, 陳一帥, 陳常嘉 申請人:北京交通大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀