專利名稱:基于p2p的多視點(diǎn)視頻傳輸裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)多媒體技術(shù)領(lǐng)域,特別涉及一種基于P2P(點(diǎn)對點(diǎn))的多視點(diǎn)視
頻傳輸裝置。
背景技術(shù):
多視點(diǎn)視頻是近期開始流行的一種新型視頻,它可以給用戶帶來全新的視覺享受,因此該技術(shù)吸引了越來越多研究機(jī)構(gòu)關(guān)注的目光。多視點(diǎn)視頻由一組平行或者聚焦于 一點(diǎn)的攝像機(jī)拍攝而得,可以提供多種不同的視覺特效,比如多視角觀賞、定格狀態(tài)下全景 掃描和播放中全景掃描等。目前,網(wǎng)絡(luò)中流行有各種各樣的流媒體系統(tǒng)軟件,為成千上萬的用戶提供視頻服 務(wù)。但這些服務(wù)內(nèi)容都是傳統(tǒng)的單視點(diǎn)視頻,隨著網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)技術(shù)的發(fā)展,在網(wǎng)絡(luò)中提 供多視點(diǎn)視頻服務(wù)已成為可能。多視點(diǎn)視頻的視覺享受是以視頻數(shù)據(jù)量的增加為代價的, 視點(diǎn)越多,視頻數(shù)據(jù)也就越多,這給網(wǎng)絡(luò)傳輸提出了很大的挑戰(zhàn)。實(shí)時互動多視點(diǎn)視頻系統(tǒng)由微軟亞洲研究院提出,是一種基于IP多播技術(shù)的視 頻系統(tǒng),支持直播和點(diǎn)播兩種模式。用戶只要安裝一個客戶端就可以觀看多視點(diǎn)的視頻節(jié) 目,除了各視點(diǎn)的視頻之外,觀眾還可以欣賞三種特效視點(diǎn)切換、定格掃描和播放掃描。定格掃描狀態(tài)下,視頻的播放會暫停,靜態(tài)的場景以連續(xù)的視點(diǎn)角度逐個展現(xiàn)在 用戶眼前。播放掃描是在播放狀態(tài)下將動態(tài)的場景以連續(xù)的視點(diǎn)角度展現(xiàn)出來。特效視頻 是作為獨(dú)立的視頻流進(jìn)行處理的,同各視點(diǎn)的視頻流一樣,服務(wù)器根據(jù)各視點(diǎn)視頻數(shù)據(jù)對 特效視頻進(jìn)行編碼。當(dāng)客戶發(fā)出視點(diǎn)切換的指令時,服務(wù)器會停止原來視點(diǎn)視頻數(shù)據(jù)的傳 輸,轉(zhuǎn)而傳輸新視點(diǎn)的視頻數(shù)據(jù)。當(dāng)客戶選擇欣賞特效視頻的時候,服務(wù)器停止當(dāng)前視點(diǎn)視 頻數(shù)據(jù)的傳輸,將特效視頻數(shù)據(jù)傳送到客戶端。這樣做可以減輕客戶端的負(fù)擔(dān),因?yàn)榭蛻舳?的機(jī)器性能是各種各樣的,未必能承受對視頻數(shù)實(shí)時編碼的工作要求。但是帶來的問題就 是會加重服務(wù)器的負(fù)擔(dān),如果對視頻數(shù)據(jù)的每一個時刻都制作定格掃描和播放掃描的特效 視頻,即使服務(wù)器的計算能力高于普通計算機(jī),也是難以承受的。在該系統(tǒng)中,特效視頻是 每隔15幀才制作一次。制作好的特效視頻緩存在服務(wù)器中,以備隨時響應(yīng)客戶端的請求。 當(dāng)客戶端選擇了特效視頻的時候,服務(wù)器從緩存中提取與客戶端發(fā)出命令的時刻最相近的 特效視頻發(fā)送。現(xiàn)有技術(shù)存在的缺點(diǎn)是,該系統(tǒng)的架構(gòu)和視頻的編碼方式使得需要傳輸?shù)臄?shù)據(jù)量 非常大,因此這給該系統(tǒng)在實(shí)際網(wǎng)絡(luò)中的應(yīng)用帶來了很大的難題。
發(fā)明內(nèi)容
本發(fā)明旨在至少解決上述技術(shù)缺陷之一,目的是提出一種基于P2P的多視點(diǎn)視頻 傳輸裝置,從而更好地發(fā)揮多視點(diǎn)視頻的視覺效果優(yōu)勢。為達(dá)到上述目的,本發(fā)明一方面提出一種基于P2P的多視點(diǎn)視頻傳輸裝置,包括 節(jié)點(diǎn)管理模塊,用于對本地的各類成員進(jìn)行管理和維護(hù),并為各個成員的數(shù)據(jù)調(diào)度提供保障;調(diào)度模塊,用于根據(jù)基本層緩沖映射和增強(qiáng)層緩沖映射調(diào)度所述節(jié)點(diǎn)管理模塊,以及根據(jù)數(shù)據(jù)位圖為基本層和增強(qiáng)層的每一個數(shù)據(jù)塊分配源節(jié)點(diǎn),并向分配的源節(jié)點(diǎn)發(fā)送數(shù)據(jù)請 求;同步模塊,用于對基本層數(shù)據(jù)和增強(qiáng)層數(shù)據(jù)進(jìn)行同步,以及對各個視點(diǎn)視頻數(shù)據(jù)進(jìn)行同 步;緩存模塊,用于緩存本地的數(shù)據(jù)位圖和數(shù)據(jù)塊;和播放器,用于根據(jù)用戶選擇的視點(diǎn)播 放對應(yīng)的視頻數(shù)據(jù)。本發(fā)明實(shí)施例面向分層的多視點(diǎn)視頻編碼方案,利用P2P技術(shù)高效的數(shù)據(jù)傳輸能 力,解決了多視點(diǎn)視頻網(wǎng)絡(luò)傳輸所帶來的巨大挑戰(zhàn),能夠達(dá)到穩(wěn)定傳輸視頻數(shù)據(jù)和快速響 應(yīng)互動指令的效果。本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變 得明顯,或通過本發(fā)明的實(shí)踐了解到。
本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對實(shí)施例的描述中將變 得明顯和容易理解,其中圖1為本發(fā)明實(shí)施例的基于P2P的多視點(diǎn)視頻傳輸裝置的原理圖;圖2為本發(fā)明優(yōu)選實(shí)施例的基于P2P的多視點(diǎn)視頻傳輸裝置的結(jié)構(gòu)圖;圖3為本發(fā)明實(shí)施例中一個視點(diǎn)切換中的伙伴管理示意圖;圖4為多視點(diǎn)視頻數(shù)據(jù)位圖的結(jié)構(gòu)。
具體實(shí)施例方式下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終 相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。如圖1所示,為本發(fā)明實(shí)施例的基于P2P的多視點(diǎn)視頻傳輸裝置的原理圖。該裝置 包括節(jié)點(diǎn)管理模塊100、調(diào)度模塊200、同步模塊300、緩存模塊400和播放器500。節(jié)點(diǎn)管 理模塊100用于對本地的各類成員進(jìn)行管理和維護(hù),并為各個成員的數(shù)據(jù)調(diào)度提供保障。 調(diào)度模塊200用于根據(jù)基本層緩沖映射和增強(qiáng)層緩沖映射調(diào)度節(jié)點(diǎn)管理模塊100,以及根 據(jù)數(shù)據(jù)位圖為基本層和增強(qiáng)層的每一個數(shù)據(jù)塊分配源節(jié)點(diǎn),并向分配的源節(jié)點(diǎn)發(fā)送數(shù)據(jù)請 求。同步模塊300用于對基本層數(shù)據(jù)和增強(qiáng)層數(shù)據(jù)進(jìn)行同步,以及對各個視點(diǎn)視頻數(shù)據(jù)進(jìn) 行同步。緩存模塊400用于緩存本地的數(shù)據(jù)位圖和數(shù)據(jù)塊。播放器500用于根據(jù)用戶選擇 的視點(diǎn)播放對應(yīng)的視頻數(shù)據(jù)。以下就將以具體實(shí)施例的方式對本發(fā)明的上述原理圖進(jìn)行詳細(xì)的介紹,但是需要 說明的是以下實(shí)施例僅是本發(fā)明的優(yōu)選實(shí)施例,本領(lǐng)域技術(shù)人員能夠根據(jù)本發(fā)明的上述原 理對以下實(shí)施例進(jìn)行等同的修改和變換,這些等同的修改或變換也均應(yīng)包含在本發(fā)明的保 護(hù)范圍之內(nèi)。如圖2所示,為本發(fā)明優(yōu)選實(shí)施例的基于P2P的多視點(diǎn)視頻傳輸裝置的結(jié)構(gòu)圖,以 下就對該裝置的各個模塊進(jìn)行詳細(xì)的介紹。在本發(fā)明的一個實(shí)施例中,節(jié)點(diǎn)管理模塊100包括成員管理器110、基本層伙伴管 理器120、鄰居伙伴管理器130和增強(qiáng)層伙伴管理器140。為了加以區(qū)分,可為所有與基本層數(shù)據(jù)相關(guān)的名詞都加上一個“B-”的前綴,而為所有與增強(qiáng)層數(shù)據(jù)相關(guān)的名詞都加上“Ε-”的前綴,例如B-Partner表示基本層伙伴、E-Buffer map表示增強(qiáng)層的數(shù)據(jù)位圖。由于播放器500需要兩種數(shù)據(jù)才能播放視頻,即基本層數(shù)據(jù)和增強(qiáng)層數(shù)據(jù),因此 本地節(jié)點(diǎn)需要為兩種數(shù)據(jù)分別維護(hù)不同的伙伴信息,其中,與本地節(jié)點(diǎn)交換基本層數(shù)據(jù)的 伙伴稱為基本層伙伴,交換增強(qiáng)層數(shù)據(jù)的伙伴稱為增強(qiáng)層伙伴。另外,與單視點(diǎn)視頻系統(tǒng)不 同的是,在多視點(diǎn)視頻流媒體系統(tǒng)中,觀看同一節(jié)目的節(jié)點(diǎn)未必選擇同一視點(diǎn),那些選擇與 本地視點(diǎn)觀看的視點(diǎn)不同的伙伴稱為鄰居伙伴,它們是潛在的增強(qiáng)層伙伴,因?yàn)橛脩綦S時 都可能發(fā)出切換視點(diǎn)的指令把當(dāng)前視點(diǎn)切換到某些鄰居伙伴目前正在觀看的視點(diǎn)。下面分別介紹節(jié)點(diǎn)管理模塊100中各個管理器的職能和工作原理其中,成員管理器110用于對成員列表進(jìn)行維護(hù)和管理。例如,新加入的節(jié)點(diǎn)首 先連接系統(tǒng)的管理服務(wù)器,管理服務(wù)器從當(dāng)前系統(tǒng)中隨機(jī)選擇部分節(jié)點(diǎn)的信息發(fā)送給新節(jié) 點(diǎn)。這些節(jié)點(diǎn)將被新節(jié)點(diǎn)的成員管理器110視為最初的成員加入到它所維護(hù)的成員列表 中。其中,在本發(fā)明實(shí)施例中,基本層伙伴、增強(qiáng)層伙伴和鄰居伙伴都是從成員列表中挑選 的,因此,成員列表是所有其它列表的母列表。成員管理器110負(fù)責(zé)實(shí)時維護(hù)成員列表。它 定時與所有成員交換自己的成員列表,當(dāng)本地成員列表中成員數(shù)目偏少時,它會從其他成 員發(fā)來的成員列表中選擇本地沒有的成員加到列表中。另外,在本發(fā)明的另一個實(shí)施例中, 成員管理器110還負(fù)責(zé)定時向所有成員發(fā)送心跳包,并接受其他成員發(fā)來的心跳包,若有 成員超過一定時間沒有發(fā)來心跳包,成員管理器110將認(rèn)為該成員已退出系統(tǒng),從而與其 斷開連接,并從成員列表中將其刪除。簡而言之,在本發(fā)明實(shí)施例中,成員管理器110的責(zé) 任就是為其他管理器提供后備軍并保證所有成員都是可用的。基本層伙伴管理器120用于對基本層伙伴列表進(jìn)行維護(hù)和管理,并定時與所有基 本層伙伴交換數(shù)據(jù)位圖及將收到的數(shù)據(jù)位圖發(fā)送給調(diào)度模塊200,其中,基本層伙伴是從成 員列表中挑選出來用于基本層數(shù)據(jù)傳輸?shù)泥徆?jié)點(diǎn)?;緦踊锇楣芾砥?20負(fù)責(zé)實(shí)時維護(hù)基 本層伙伴列表,例如它定時地將所有基本層伙伴按照他們向本地節(jié)點(diǎn)發(fā)送的基本層數(shù)據(jù)塊 的數(shù)量排序,若排在最后的基本層伙伴發(fā)送的數(shù)據(jù)塊數(shù)目超出了預(yù)先設(shè)置的下限,基本層 伙伴管理器120將把它從列表中刪除然后在成員列表中選出新的基本層伙伴將其代替。在 本發(fā)明的另一個實(shí)施例中,基本層伙伴管理器120還負(fù)責(zé)定時與所有基本層伙伴交換數(shù)據(jù) 位圖,然后將收到的數(shù)據(jù)位圖傳給調(diào)度模塊200。鄰居伙伴管理器130用于對鄰居伙伴列表進(jìn)行維護(hù)和管理,并定時與所有鄰居伙 伴交換數(shù)據(jù)位圖并保存,其中,鄰居伙伴是與本地節(jié)點(diǎn)選擇不同視點(diǎn)的鄰節(jié)點(diǎn)。鄰居伙伴也 是從成員列表中選擇出來的鄰節(jié)點(diǎn),它們雖然被稱為伙伴,卻與本地節(jié)點(diǎn)沒有視頻數(shù)據(jù)的 交互,因?yàn)樗鼈冞x擇的視點(diǎn)與本地節(jié)點(diǎn)不同。鄰居伙伴管理器130將它們添加到鄰居伙伴 列表中并根據(jù)它們選擇的視點(diǎn)進(jìn)行分組管理,所有選擇同一視點(diǎn)的鄰居伙伴被分為一組。 在節(jié)點(diǎn)剛加入系統(tǒng)的時候,用戶無法得知各個視點(diǎn)的內(nèi)容,也無法選擇自己喜歡的視點(diǎn),此 時鄰居伙伴管理器130將自行選擇一個視點(diǎn)并把該組鄰居伙伴交給增強(qiáng)層伙伴管理器140 負(fù)責(zé),自己只負(fù)責(zé)其他組的鄰居伙伴。當(dāng)用戶發(fā)出視點(diǎn)切換的指令時,假設(shè)是從視點(diǎn)A切換 到視點(diǎn)B,鄰居伙伴管理器130將把視點(diǎn)A的那組伙伴從增強(qiáng)層伙伴管理器140那里取回, 并把視點(diǎn)B的那組伙伴交給增強(qiáng)層伙伴管理器140。如圖3所示,為本發(fā)明實(shí)施例中一個視點(diǎn)切換中的伙伴管理示意圖。假設(shè)多視點(diǎn)視頻有4個視點(diǎn),用戶當(dāng)前觀看的是第二個視點(diǎn)。所以第二視點(diǎn)的鄰居伙伴被作為增強(qiáng)層 伙伴由增強(qiáng)層伙伴管理器140維護(hù),而其他三個視點(diǎn)的鄰居伙伴分組維護(hù)在鄰居伙伴管理 器130中。當(dāng)用戶發(fā)出切換到第三視點(diǎn)的指令時,鄰居伙伴管理器130將把第三視點(diǎn)的鄰 居伙伴列表與增強(qiáng)層伙伴管理器140中的增強(qiáng)層伙伴列表互換位置。鄰居伙伴雖然與本地節(jié)點(diǎn)之間并沒有視頻數(shù)據(jù)的交換,但是他們會周期性的與本 地節(jié)點(diǎn)互換增強(qiáng)層數(shù)據(jù)位圖。這些數(shù)據(jù)位圖只是保存在鄰居伙伴管理器130中,而不會轉(zhuǎn) 交給調(diào)度模塊200,因?yàn)檎{(diào)度模塊200目前不需要為本地節(jié)點(diǎn)請求這些增強(qiáng)層數(shù)據(jù)。如果某 個鄰居伙伴長時間沒有發(fā)來數(shù)據(jù)位圖,鄰居伙伴管理器130將把它從列表中刪除,然后從 成員列表中選擇新的代替者。在本發(fā)明實(shí)施例中,鄰居伙伴管理器130可以大大地縮短視點(diǎn)切換的延遲時間, 例如,假如不設(shè)置鄰居伙伴管理器130,當(dāng)視點(diǎn)切換指令發(fā)出之后,節(jié)點(diǎn)要做以下幾件事 情1、從管理服務(wù)器獲取正在傳輸新視點(diǎn)視頻數(shù)據(jù)的節(jié)點(diǎn)信息。這個步驟耗費(fèi)的時間 記為tPo2、等待新的增強(qiáng)層伙伴發(fā)來新視點(diǎn)視頻的數(shù)據(jù)位圖。這個步驟耗費(fèi)的時間記為tW.3、為新視點(diǎn)的增強(qiáng)層視頻數(shù)據(jù)分配數(shù)據(jù)源,并發(fā)送數(shù)據(jù)請求。這個步驟耗費(fèi)的時 間記為tSo4、等待增強(qiáng)層伙伴把所需數(shù)據(jù)發(fā)送到本地。耗費(fèi)時間記為tr。因此,總計延遲時間可以表示為T = tp+tw+ts+tr。然而,如果有了鄰居伙伴管理器130之后,當(dāng)視點(diǎn)切換指令發(fā)出時,只需從鄰居伙 伴列表中提出相應(yīng)視點(diǎn)的鄰居伙伴交給增強(qiáng)層伙伴管理器140。這些新的增強(qiáng)層伙伴的數(shù) 據(jù)位圖也是由鄰居伙伴管理器130 —直保持維護(hù)更新的,因此可以直接交給調(diào)度模塊200 使用。這樣一來,總計延遲時間就變成T = ts+tr,因此視點(diǎn)切換的延遲時間可以大為縮短。增強(qiáng)層伙伴管理器140用于對增強(qiáng)層伙伴列表進(jìn)行維護(hù)和管理,并定時與所有增 強(qiáng)層伙伴交換數(shù)據(jù)位圖及將收到的數(shù)據(jù)位圖發(fā)送給所述調(diào)度模塊,其中,增強(qiáng)層伙伴是從 所述成員列表中挑選出來用于增強(qiáng)層數(shù)據(jù)傳輸?shù)泥徆?jié)點(diǎn),它們是由增強(qiáng)層伙伴管理器140 從鄰居伙伴列表中選出來并實(shí)時維護(hù)的。當(dāng)視點(diǎn)切換指令發(fā)出時,增強(qiáng)層伙伴管理器140 將把它們交回鄰居伙伴列表,新視點(diǎn)的鄰居伙伴將變成增強(qiáng)層伙伴。增強(qiáng)層伙伴管理器140 還定時與列表中所有增強(qiáng)層伙伴交換增強(qiáng)層數(shù)據(jù)位圖,然后把它們轉(zhuǎn)交給調(diào)度模塊200。同 基本層伙伴管理器120 —樣,增強(qiáng)層伙伴管理器140也會實(shí)時監(jiān)督增強(qiáng)層伙伴的傳輸效率 并及時更換不合格的增強(qiáng)層伙伴。另外,在本發(fā)明的實(shí)施例中,是將基本層數(shù)據(jù)和增強(qiáng)層數(shù)據(jù)分開來傳輸?shù)?,雖然各 自的作用不同,但對于傳輸環(huán)節(jié)來說都是無差別的數(shù)據(jù)。本地節(jié)點(diǎn)分別從基本層伙伴和增 強(qiáng)層伙伴那里接收基本層數(shù)據(jù)位圖和增強(qiáng)層數(shù)據(jù)位圖,然后分別把它們交給調(diào)度模塊200。 在本發(fā)明中,多視點(diǎn)視頻的數(shù)據(jù)位圖與傳統(tǒng)單視點(diǎn)視頻的不同,如圖4所示,為多視點(diǎn)視頻 數(shù)據(jù)位圖的結(jié)構(gòu)。其中First Sequence是緩存中所有數(shù)據(jù)塊中的序號最小的數(shù)據(jù)塊的序 號;Video Type是數(shù)據(jù)類型,表示該數(shù)據(jù)位圖是增強(qiáng)層的還是基本層的;Video Sequence 是視點(diǎn)的序號,該字段只對增強(qiáng)層數(shù)據(jù)位圖有意義,在基本層數(shù)據(jù)位圖中該字段設(shè)為0。在這三個字段之后就是所有數(shù)據(jù)塊的位圖,O表示該數(shù)據(jù)塊缺失,1表示已保存在緩存中。基本層數(shù)據(jù)和增強(qiáng)層數(shù)據(jù)的傳輸是各自獨(dú)立進(jìn)行的,基本層或者增強(qiáng)層伙伴列表中所有伙伴的數(shù)據(jù)位圖更新之后,調(diào)度模塊200就為相應(yīng)類別的數(shù)據(jù)塊分配源節(jié)點(diǎn),然后 向其發(fā)送數(shù)據(jù)請求。在本發(fā)明中調(diào)度模塊200采用的調(diào)度算法是,調(diào)度模塊200從緩存模塊 400中提取本地的數(shù)據(jù)位圖,從中得知本地緩存中還缺少哪些數(shù)據(jù)塊,然后查看伙伴的數(shù)據(jù) 位圖,獲悉哪些伙伴有本地缺少的數(shù)據(jù)塊,然后向這些數(shù)據(jù)塊發(fā)送數(shù)據(jù)請求。如果有多個伙 伴擁有同一塊本地缺少的數(shù)據(jù),則調(diào)度模塊200將選擇向能夠在最短時間內(nèi)返回數(shù)據(jù)的伙 伴發(fā)送數(shù)據(jù)請求。在多視點(diǎn)視頻技術(shù)中,其視覺效果是它最大的優(yōu)勢,視點(diǎn)切換的互動操作給了用 戶更大的自由度,隨之而來的一個問題就是各視點(diǎn)視頻在時間上的同步問題。不僅各視點(diǎn) 的視頻數(shù)據(jù)要同步,基本層和增強(qiáng)層的數(shù)據(jù)之間也要保持同步,畢竟播放器需要兩種數(shù)據(jù) 才能較好地播放某個視點(diǎn)的視頻。本發(fā)明通過同步模塊300解決同步問題。本裝置中各個 節(jié)點(diǎn)的播放進(jìn)度是不同的,而節(jié)點(diǎn)要傳輸什么時間段的數(shù)據(jù)是跟播放器500的進(jìn)度密切相 關(guān)的,所以數(shù)據(jù)同步問題要從伙伴的選擇入手。下面是同步算法的偽代碼Input MemberList list of membersB-PartnerList list of B-PartnersFirst_seq[i] the first sequence of the buffer map of B-Partner[i] or Ε-Partner[i]E-PartnerLis[i] list of Ε-Partners with the ith viewpointLenth the lenth of the buffer mapStandardization 1. Rank the B-Partners in B-PartnerList by the first sequence of their buffer maps in increasingorder.2. Standard 一 0, max 一 03. for i = 0 to the size of B-PartnerList4. do η = 05. for j = i to the size of B-PartnerList6.do if First_seq[i] < First_seq[j] < First_seq[i]+Lenth7.then n++8.if η > max9.then Standard 一 Firs_seq[i], max 一 η10. Run the Synchronization functionSynchronization 1. for i = 0 to the size ο fB-PartnerList2. do if First_seq[i] < Standard or First_seq[i] > Standard+Lenth3. then replace B-Partner[i]with a member in MemberList4.whose First_seq e (Standard, Standard+Lenth)
5. for i = 1 to the number of the viewpoints6. do for j = 0 to the size of E-PartnerLis[i]7. do if First—seq[j]] < Standard or First—seq[j] > Standard+Lenth
8.then replace E-Partner[j]with a member in MemberListwhose First_seq[i] ^ (Standard,Standard+Lenth)從上述算法中可以看到同步模塊300必須與基本層伙伴管理器120和鄰居伙伴管 理器130協(xié)同合作。Standardization函數(shù)前9行的作用是選擇最合適的進(jìn)度,所謂最合適 的進(jìn)度,是指參與傳輸這個時間段內(nèi)的視頻數(shù)據(jù)的伙伴最多的進(jìn)度。該函數(shù)的第10行調(diào)用 了 Synchronization函數(shù),這個函數(shù)的作用是保證基本層伙伴和增強(qiáng)層伙伴都是參與到最 合適進(jìn)度的數(shù)據(jù)塊傳輸?shù)墓?jié)點(diǎn)。其中Standardization函數(shù)只在節(jié)點(diǎn)新加入的時候運(yùn)行一 次。而Synchronization函數(shù)則是要周期性的運(yùn)行,以保證所有伙伴的進(jìn)度始終一致。無論 視點(diǎn)切換指令何時發(fā)出,新舊視點(diǎn)的數(shù)據(jù)在時間上都是連續(xù)的,可以保證視點(diǎn)的平滑切換。在本發(fā)明的一個實(shí)施例中,播放器500可以直接調(diào)用微軟的MediaPlayer播放器, 當(dāng)然本領(lǐng)域技術(shù)人員也可選擇其他播放器,其他播放器也可應(yīng)用在本發(fā)明中。本發(fā)明實(shí)施例面向分層的多視點(diǎn)視頻編碼方案,利用P2P技術(shù)高效的數(shù)據(jù)傳輸能 力,解決了多視點(diǎn)視頻網(wǎng)絡(luò)傳輸所帶來的巨大挑戰(zhàn),能夠達(dá)到穩(wěn)定傳輸視頻數(shù)據(jù)和快速響 應(yīng)互動指令的效果。盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,對于本領(lǐng)域的普通技術(shù)人員而言,可以 理解在不脫離本發(fā)明的原理和精神的情況下可以對這些實(shí)施例進(jìn)行多種變化、修改、替換 和變型,本發(fā)明的范圍由所附權(quán)利要求及其等同限定。
權(quán)利要求
一種基于P2P的多視點(diǎn)視頻傳輸裝置,其特征在于,包括節(jié)點(diǎn)管理模塊,用于對本地的各類成員進(jìn)行管理和維護(hù),并為各個成員的數(shù)據(jù)調(diào)度提供保障;調(diào)度模塊,用于根據(jù)基本層緩沖映射和增強(qiáng)層緩沖映射調(diào)度所述節(jié)點(diǎn)管理模塊,以及根據(jù)數(shù)據(jù)位圖為基本層和增強(qiáng)層的每一個數(shù)據(jù)塊分配源節(jié)點(diǎn),并向分配的源節(jié)點(diǎn)發(fā)送數(shù)據(jù)請求;同步模塊,用于對基本層數(shù)據(jù)和增強(qiáng)層數(shù)據(jù)進(jìn)行同步,以及對各個視點(diǎn)視頻數(shù)據(jù)進(jìn)行同步;緩存模塊,用于緩存本地的數(shù)據(jù)位圖和數(shù)據(jù)塊;和播放器,用于根據(jù)用戶選擇的視點(diǎn)播放對應(yīng)的視頻數(shù)據(jù)。
2.如權(quán)利要求1所述的基于P2P的多視點(diǎn)視頻傳輸裝置,其特征在于,所述調(diào)度模塊從 緩存模塊中提取本地的數(shù)據(jù)位圖,并根據(jù)緩存的本地數(shù)據(jù)塊及本地的數(shù)據(jù)位圖確定所缺少 的數(shù)據(jù)塊,之后根據(jù)伙伴的數(shù)據(jù)位圖,確定保存所述所缺少的數(shù)據(jù)塊的伙伴并向所缺少的 數(shù)據(jù)塊發(fā)送數(shù)據(jù)請求。
3.如權(quán)利要求2所述的基于P2P的多視點(diǎn)視頻傳輸裝置,其特征在于,如果所述調(diào)度模 塊判斷多個伙伴擁有同一塊本地所缺少的數(shù)據(jù)塊,則所述調(diào)度模塊選擇向能夠在最短時間 內(nèi)返回數(shù)據(jù)的伙伴發(fā)送數(shù)據(jù)請求。
4.如權(quán)利要求1所述的基于P2P的多視點(diǎn)視頻傳輸裝置,其特征在于,所述同步模塊選 擇最合適進(jìn)度,并保證基本層伙伴和增強(qiáng)層伙伴都參與到所述最合適進(jìn)度的數(shù)據(jù)塊的傳輸 中。
5.如權(quán)利要求1所述的基于P2P的多視點(diǎn)視頻傳輸裝置,其特征在于,所述節(jié)點(diǎn)管理模 塊包括成員管理器,用于對成員列表進(jìn)行維護(hù)和管理;基本層伙伴管理器,用于對基本層伙伴列表進(jìn)行維護(hù)和管理,并定時與所有基本層伙 伴交換數(shù)據(jù)位圖及將收到的數(shù)據(jù)位圖發(fā)送給所述調(diào)度模塊,其中,所述基本層伙伴是從所 述成員列表中挑選出來用于基本層數(shù)據(jù)傳輸?shù)泥徆?jié)點(diǎn);鄰居伙伴管理器,用于對鄰居伙伴列表進(jìn)行維護(hù)和管理,并定時與所有鄰居伙伴交換 數(shù)據(jù)位圖并保存,其中,所述鄰居伙伴是與本地節(jié)點(diǎn)選擇不同視點(diǎn)的鄰節(jié)點(diǎn);增強(qiáng)層伙伴管理器,用于對增強(qiáng)層伙伴列表進(jìn)行維護(hù)和管理,并定時與所有增強(qiáng)層伙 伴交換數(shù)據(jù)位圖及將收到的數(shù)據(jù)位圖發(fā)送給所述調(diào)度模塊,其中,所述增強(qiáng)層伙伴是從所 述成員列表中挑選出來用于增強(qiáng)層數(shù)據(jù)傳輸?shù)泥徆?jié)點(diǎn)。
6.如權(quán)利要求5所述的基于P2P的多視點(diǎn)視頻傳輸裝置,其特征在于,所述成員管理器 對成員列表進(jìn)行維護(hù)和管理包括所述成員管理器定時與其他節(jié)點(diǎn)交換成員列表,并在本地成員列表中的成員數(shù)目偏少 時,從其他成員發(fā)來的成員列表中選擇本地沒有的成員加到列表中;和/或所述成員管理器定時向所有成員發(fā)送心跳包,并接受其他成員發(fā)來的心跳包,若有成 員超過一定時間沒有發(fā)來心跳包,則將其從成員列表中將其刪除。
7.如權(quán)利要求5所述的基于P2P的多視點(diǎn)視頻傳輸裝置,其特征在于,所述基本層伙伴 管理器和增強(qiáng)層伙伴管理器還用于實(shí)時監(jiān)督基本層伙伴和增強(qiáng)層伙伴的傳輸效率,并及時更換不合格的基本層伙伴和增強(qiáng)層伙伴。
8.如權(quán)利要求5所述的基于P2P的多視點(diǎn)視頻傳輸裝置,其特征在于,所述鄰居伙伴管 理器還用于在用戶發(fā)出視點(diǎn)切換指令時,將原視點(diǎn)的鄰居伙伴列表從所述增強(qiáng)層伙伴管理 器取回,并把新視點(diǎn)的鄰居伙伴列表發(fā)送給所述增強(qiáng)層伙伴管理器。
9.如權(quán)利要求5或8所述的基于P2P的多視點(diǎn)視頻傳輸裝置,其特征在于,所述鄰居伙 伴管理器對鄰居伙伴列表進(jìn)行維護(hù)和管理包括如果某個鄰居伙伴長時間沒有發(fā)來數(shù)據(jù)位圖,則所述鄰居伙伴管理器將該鄰居伙伴從 鄰居伙伴列表中刪除,再從所述成員列表中選擇新的替代者。
10.如權(quán)利要求1所述的基于P2P的多視點(diǎn)視頻傳輸裝置,其特征在于,所述播放器直 接調(diào)用微軟的Media Player播放器。
全文摘要
本發(fā)明提出一種基于P2P的多視點(diǎn)視頻傳輸裝置,包括節(jié)點(diǎn)管理模塊,用于對本地的各類成員進(jìn)行管理和維護(hù),并為各個成員的數(shù)據(jù)調(diào)度提供保障;調(diào)度模塊,用于根據(jù)基本層緩沖映射和增強(qiáng)層緩沖映射調(diào)度所述節(jié)點(diǎn)管理模塊,以及根據(jù)數(shù)據(jù)位圖為基本層和增強(qiáng)層的每一個數(shù)據(jù)塊分配源節(jié)點(diǎn),并向分配的源節(jié)點(diǎn)發(fā)送數(shù)據(jù)請求;同步模塊,用于對基本層數(shù)據(jù)和增強(qiáng)層數(shù)據(jù)進(jìn)行同步,以及對各個視點(diǎn)視頻數(shù)據(jù)進(jìn)行同步;緩存模塊,用于緩存本地的數(shù)據(jù)位圖和數(shù)據(jù)塊;和播放器。本發(fā)明實(shí)施例面向分層的多視點(diǎn)視頻編碼方案,利用P2P技術(shù)高效的數(shù)據(jù)傳輸能力,解決了多視點(diǎn)視頻網(wǎng)絡(luò)傳輸所帶來的巨大挑戰(zhàn),能夠達(dá)到穩(wěn)定傳輸視頻數(shù)據(jù)和快速響應(yīng)互動指令的效果。
文檔編號H04L29/06GK101848232SQ20101013371
公開日2010年9月29日 申請日期2010年3月25日 優(yōu)先權(quán)日2010年3月25日
發(fā)明者丁貴廣, 申曉東, 聶榮顯 申請人:清華大學(xué)