專利名稱:一種基于光場渲染的自由視點視頻在ip網(wǎng)傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機多媒體技術(shù)領(lǐng)域,特別涉及流媒體傳輸和自由視點視頻技術(shù)。
背景技術(shù):
Internet上使用的一個關(guān)鍵的底層協(xié)議是網(wǎng)際協(xié)議,通常稱IP協(xié)議。利用一個共同遵守的IP協(xié)議,從而使Internet成為一個允許連接不同類型的計算機和不同操作系統(tǒng)的網(wǎng)絡(luò)。通信協(xié)議正像兩臺計算機交換信息所使用的共同語言,它規(guī)定了通信雙方在通信中所應(yīng)共同遵守的約定。
TCP協(xié)議被稱作一種端對端協(xié)議。這是因為它為兩臺計算機之間的連接起了重要作用當(dāng)一臺計算機需要與另一臺遠(yuǎn)程計算機連接時,TCP協(xié)議會讓它們建立一個連接、發(fā)送和接收數(shù)據(jù)以及終止連接。傳輸控制協(xié)議TCP協(xié)議利用重發(fā)技術(shù)和擁塞控制機制,向應(yīng)用程序提供可靠的通信連接,使它能夠自動適應(yīng)網(wǎng)上的各種變化。即使在Internet暫時出現(xiàn)堵塞的情況下,TCP也能夠保證通信的可靠。
目前網(wǎng)絡(luò)上多媒體實時應(yīng)用的主要控制協(xié)議為RTSP(實時流協(xié)議),它是一個客戶-服務(wù)器多媒體節(jié)目協(xié)議,可以控制流式多媒體數(shù)據(jù)在IP網(wǎng)絡(luò)上的發(fā)送。它提供用于音頻和視頻流的“VCR模式”遠(yuǎn)程控制功能,例如停止、快進(jìn)、快退和定位。數(shù)據(jù)源包括實況數(shù)據(jù)和存儲片斷。RTSP是一個應(yīng)用層協(xié)議,用來與諸如RTP、RSVP等更低層的協(xié)議一起,提供基于Internet的整套流化服務(wù)。它可以選擇發(fā)送通道(例如UDP、組播UDP和TCP)和基于RTP的發(fā)送機制。它可以服務(wù)于多客戶組播和單一觀眾點播。
RTP(實時傳輸協(xié)議)是用于互聯(lián)網(wǎng)上針對多媒體數(shù)據(jù)流的一種傳輸協(xié)議。RTP被定義為在一對一或一對多的傳輸情況下工作,其目的是提供時間信息和實現(xiàn)流同步。
RTP協(xié)議本身包括兩部分RTP和RTCP(實時傳輸控制協(xié)議)。為了可靠,高效的傳送實時數(shù)據(jù),RTP和RTCP必須配合使用,通常,RTCP包的數(shù)量占所有傳輸量的5%。
RTP實時傳輸協(xié)議主要用于負(fù)載多媒體數(shù)據(jù),并通過包頭時間參數(shù)的配置使其具有實時的特征。RTCP傳輸控制協(xié)議主要用于周期的傳送RTCP包,監(jiān)視RTP傳輸?shù)姆?wù)質(zhì)量。在RTCP包中,含有已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量等統(tǒng)計資料,因此,服務(wù)器可以利用這些信息動態(tài)地改變傳輸速率,甚至改變有效載荷類型,實現(xiàn)流量控制和擁塞控制服務(wù)。RTP本身并不能為按順序傳送數(shù)據(jù)包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠RTCP傳輸控制協(xié)議提供這些服務(wù)。
流媒體技術(shù)是近年來興起的一種在線播放技術(shù)。播放器在客戶端的內(nèi)存中開辟出一個緩存區(qū),通常是幾兆字節(jié)的空間,播放器等到緩存區(qū)中有足夠的數(shù)據(jù)后開始解碼播放,這個過程通常需要幾秒鐘的時間,同下載完后再播放相比大大節(jié)省了等待時間,而且由于沒有下載到硬盤上,而是直接存儲到內(nèi)存中,播放完后即被播放器刪除,因此對數(shù)字版權(quán)起到保護(hù)作用。在技術(shù)上在線播放器要比下載播放的播放器更復(fù)雜,它必須支持網(wǎng)絡(luò)播放功能。
“流媒體”不同于傳統(tǒng)的多媒體,它是一種結(jié)構(gòu)化的網(wǎng)絡(luò)媒體流,它的主要特點就是以“視音頻流”(Video-Audio Stream)的形式在網(wǎng)絡(luò)上傳送,播放器可以像播放本地文件一樣播放網(wǎng)絡(luò)流媒體。
自由視點視頻(Ftee Viewpoint Video,以下簡稱FVV)服務(wù)可以允許用戶通過與服務(wù)器交互,在三維場景中進(jìn)行自由瀏覽,用戶可以通過鼠標(biāo)的移動等方法,改變用戶在場景中的觀察視角,從而大大提高了用戶觀看的自由度。尤其是在真實場景中瀏覽時,可以給用戶身臨其境的感覺,這種視覺上的享受是傳統(tǒng)媒體無法比擬的。
FVV通常由多路普通視頻流組成,這些視頻流可能是由多個攝像頭同時拍攝一個場景或物體得到,也有可能是通過計算機圖形學(xué)工具對虛擬場景進(jìn)行采樣得到??蛻舳送ǔMㄟ^基于圖像的渲染(Image Based Rendering,以下簡稱IBR)技術(shù),對圖像進(jìn)行渲染,獲得最終用戶所看到的視圖。
在眾多被用于FVV服務(wù)的IBR技術(shù)中,光場渲染(Light Field Rendering,以下簡稱LFR)技術(shù)是一個重要的方法。該方法利用一個平面上的攝像頭陣列對目標(biāo)場景進(jìn)行拍攝。攝像頭數(shù)量往往達(dá)到數(shù)十甚至數(shù)百,所以基于LFR的FVV通常都包括數(shù)十甚至數(shù)百路普通視頻流。
為了能夠在有限的帶寬上傳輸FVV,需要對采集到的原始視頻進(jìn)行編碼壓縮。其中一種典型的壓縮方法是文章“Yebin Liu,Qionghai Dai,Wenli XuA Real Time InteractiveDynamic Light Field Transmission System.In IEEE international conference on multimediaexpo.2006,Toronto,Canada ICME 2006”所提到的共享I場“Shared I Field”方法。該方法如圖1所示,同一個時間點上所有攝像頭采集的圖像叫做一個場(Field),所有的攝像頭都在同一時刻對后續(xù)視頻的參考幀進(jìn)行編碼,該場稱為共享I場(Shared I Field,以下簡稱SIF),即圖中由多個I幀方塊組成的虛線框所示,其他時刻的場成為P場(P Field,以下簡稱PF),即圖中由多個P幀方塊組成的虛線框所示。每路視頻流中,PF里的幀都參考該路視頻流前一個SIF中的幀進(jìn)行編碼壓縮,在圖1中,箭頭代表參考方向,在解碼時,如果想要解碼PF中的某一幀P,則需要預(yù)先解碼該幀在SIF中的相對應(yīng)的參考幀I。
FVV的視頻采集,編碼和傳輸系統(tǒng)結(jié)構(gòu)為數(shù)臺電腦將從攝像頭采集來的視頻進(jìn)行壓縮,將壓縮后的視頻流發(fā)送給轉(zhuǎn)發(fā)服務(wù)器。每臺用于采集壓縮的電腦(以下簡稱采集PC)。
一般在IP網(wǎng)上傳輸基于光場渲染的自由視點視頻的方法(服務(wù)器端從采集PC處收到視頻流,為用戶完成基于LFR的FVV服務(wù))如下將所有視頻流的SIF中的幀作為一路視頻流,用戶所需要的每路視頻流的PF幀均視為一路FVV(自由視點視頻)視頻流進(jìn)行傳輸;當(dāng)FVV服務(wù)所需要的PF視頻流出現(xiàn)變化,客戶端通過RTSP協(xié)議通信,通知服務(wù)器端需要切換的PF視頻流,服務(wù)器端收到請求后用新的PF視頻流替換原有PF視頻流進(jìn)行RTP打包發(fā)送。
對于每路FVV視頻流的傳輸方法,包括以下步驟1)視頻流緩存服務(wù)器端將要發(fā)送的視頻流先進(jìn)行緩存,緩存區(qū)為環(huán)形緩存區(qū);新來一個幀時,如果緩存區(qū)已滿,將緩存區(qū)隊頭的幀丟棄,將新的幀放入隊尾;2)建立RTSP連接過程包括以下步驟客戶端連接服務(wù)器RTSP協(xié)議監(jiān)聽端口,請求視頻流傳送;服務(wù)器端根據(jù)客戶端的請求,建立與客戶端的RTSP會話;客戶端再次發(fā)送RTSP請求,商定接受端口;服務(wù)器端解析出端口信息,并回應(yīng)請求;客戶端要求開始發(fā)送RTP數(shù)據(jù);服務(wù)器端回應(yīng)請求,并進(jìn)入RTP數(shù)據(jù)傳輸;3)RTP數(shù)據(jù)傳輸過程服務(wù)器端用RTP協(xié)議將視頻流打成RTP數(shù)據(jù)包發(fā)送;4)客戶端收到服務(wù)器端發(fā)送來的RTP數(shù)據(jù)包,進(jìn)行拆包操作得到所需的視頻流數(shù)據(jù);并將所述數(shù)據(jù)放入緩存區(qū)緩存,等待播放;5)結(jié)束發(fā)送過程客戶端向服務(wù)器端發(fā)送RTSP終止發(fā)送請求;服務(wù)器端回復(fù)請求,并終止發(fā)送RTP數(shù)據(jù)。
上面提到的方法中,存在三個缺點首先,此方法中,服務(wù)器端將所有的SIF幀發(fā)送給客戶端,包括客戶端光場渲染不需要的幀,這樣會造成網(wǎng)絡(luò)帶寬的額外開銷;第二,這種方法中,同一用戶的不同視頻流傳輸可能不同步,客戶端需要對接收到的視頻流進(jìn)行緩存和同步;第三,由于一個用戶可能要用到數(shù)個視頻流,如果用戶數(shù)較多,則必然用于發(fā)送視頻流的線程增多。很多線程在進(jìn)行RTP包發(fā)送時,在發(fā)送端有可能出現(xiàn)數(shù)據(jù)擁塞,造成不必要的丟包。
發(fā)明內(nèi)容
本發(fā)明的目的是為克服已有技術(shù)的不足之處,提出一種新的基于LFR的FVV在IP網(wǎng)傳輸方法。該方法解決了發(fā)送全部SIF給網(wǎng)絡(luò)帶寬帶來額外開銷的問題。同樣解決了各路視頻流之間在發(fā)送時的同步問題和發(fā)送端網(wǎng)絡(luò)擁塞問題。
本發(fā)明所述方法為,將每臺電腦從攝像頭采集來的視頻進(jìn)行壓縮后的視頻流作為一路視頻流進(jìn)行緩存;將用戶所需要的多路視頻流作為一路自由視點視頻(FVV)流進(jìn)行傳輸,該自由視點視頻(FVV)流進(jìn)行傳輸方法包括以下步驟1)視頻流緩存;將緩存區(qū)分為多個緩存單元,服務(wù)器端將每一路視頻流緩存在一個單元中;2)建立連接準(zhǔn)備服務(wù),根據(jù)用戶服務(wù)等級將用戶及所需視頻流標(biāo)號(以下簡稱StreamID)放入相應(yīng)的用戶待服務(wù)列表,每個用戶待服務(wù)列表中用戶按照用戶時間戳從早到晚排序;3)根據(jù)用戶時間戳循環(huán)選擇用戶進(jìn)行發(fā)送即依次遍歷用戶待服務(wù)列表,選取所有用戶時間戳最早的用戶按其StreamID進(jìn)行發(fā)送;4)當(dāng)客戶端用戶由于自由瀏覽,進(jìn)行視頻流切換時,服務(wù)器將用戶待服務(wù)列表中用戶的StreamID修改為用戶需要更換的StreamID,然后等待發(fā)送;
5)結(jié)束服務(wù);用戶通過RTSP協(xié)議通知服務(wù)器終止發(fā)送;服務(wù)器端將用戶從用戶待服務(wù)列表中刪除。
本發(fā)明的特點及效果本發(fā)明解決了發(fā)送全部SIF給網(wǎng)絡(luò)帶寬帶來額外開銷的問題。同樣解決了各路視頻流之間在發(fā)送時的同步問題和發(fā)送端網(wǎng)絡(luò)擁塞問題。本發(fā)明運用分組用戶時間戳排序的方法,優(yōu)化了IP網(wǎng)上FVV服務(wù)的用戶服務(wù)性能,為基于SIF壓縮方法的FVV服務(wù)提供了一個確實可行的FVV轉(zhuǎn)發(fā)方法。本發(fā)明中,服務(wù)器端并不將所有的SIF幀發(fā)送給客戶端,不會造成額外的網(wǎng)絡(luò)開銷。并可以為用戶提供幀率可分級的服務(wù)。
圖1為基于SIF的FVV壓縮方法示意圖。
圖2為本發(fā)明中選擇用戶進(jìn)行服務(wù)的方法示意圖。
圖3為本發(fā)明的實施例中,用戶沒有進(jìn)行視頻流切換時的網(wǎng)絡(luò)帶寬情況。
圖4為本發(fā)明的實施例中,用戶進(jìn)行視頻流切換情況下,網(wǎng)絡(luò)帶寬的情況。
具體實施例方式
本發(fā)明提出的一種基于光場渲染的自由視點視頻在IP網(wǎng)傳輸方法,結(jié)合附圖及實施例詳細(xì)說明如下本發(fā)明所述方法為,將每臺電腦從攝像頭采集來的視頻進(jìn)行壓縮后的視頻流作為一路視頻流進(jìn)行緩存;將用戶所需要的多路視頻流作為一路自由視點視頻(FVV)流進(jìn)行傳輸,該自由視點視頻(FVV)流進(jìn)行傳輸方法包括以下步驟1)視頻流緩存;將緩存區(qū)分為多個緩存單元,服務(wù)器端將每一路視頻流緩存在一個單元中;2)建立連接準(zhǔn)備服務(wù),根據(jù)用戶服務(wù)等級將用戶及所需視頻流標(biāo)號(以下簡稱StreamID)放入相應(yīng)的用戶待服務(wù)列表,每個用戶待服務(wù)列表中用戶按照用戶時間戳從早到晚排序;3)根據(jù)用戶時間戳循環(huán)選擇用戶進(jìn)行發(fā)送即依次遍歷用戶待服務(wù)列表,選取所有用戶時間戳最早的用戶按其視頻流標(biāo)號進(jìn)行發(fā)送;4)當(dāng)客戶端用戶由于自由瀏覽,進(jìn)行視頻流切換時,服務(wù)器將用戶待服務(wù)列表中用戶的視頻流標(biāo)號(StreamID)修改為用戶需要更換的視頻流標(biāo)號(StreamID),然后等待發(fā)送;5)結(jié)束服務(wù);用戶通過RTSP協(xié)議通知服務(wù)器終止發(fā)送;服務(wù)器端將用戶從用戶待服務(wù)列表中刪除(本發(fā)明方法對用戶待服務(wù)列表進(jìn)行刪除工作不會影響用戶待服務(wù)列表的有序性)。
上述步驟1)中服務(wù)器端將每一路視頻流緩存在一個單元中的方法為將每一路視頻流中屬于SIF的視頻幀和屬于PF的視頻幀在緩存單元中分開進(jìn)行緩存;SIF視頻幀和PF視頻幀的緩存數(shù)量為緩存每路視頻流的兩個SIF的視頻幀,緩存與兩個SIF之間PF數(shù)量相等的PF幀(這個數(shù)量對所有的視頻流都一樣);當(dāng)緩存單元存滿,接收到新的視頻幀時,將緩存單元中最早的相應(yīng)的SIF幀或PF幀丟棄(上述緩存方法可以保證任何一個緩存單元中的PF幀及其參考幀在SIF都同時存在)。
上述步驟2)中建立連接準(zhǔn)備服務(wù)具體包括以下步驟(21)客戶端通過TCP/IP協(xié)議連接FVV服務(wù)監(jiān)聽端口,請求FVV服務(wù);(22)服務(wù)器端將在FVV視頻流傳送之前通知客戶端以下信息攝像機的空間位置,相機參數(shù)和對應(yīng)的視頻流標(biāo)號(Stream ID),用TCP/IP協(xié)議發(fā)送給客戶端;(23)客戶端將需要的視頻流標(biāo)號(Stream ID),通過RTSP協(xié)議,通知服務(wù)器端建立連接(具體連接過程與普通視頻建立連接的過程相同);(24)服務(wù)器端根據(jù)用戶的服務(wù)級別,將信息加入用戶待服務(wù)列表,準(zhǔn)備為用戶服務(wù)。
本發(fā)明的用戶待服務(wù)列表的內(nèi)容可包括用戶的地址端口信息,所需要的視頻流編號StreamID以及上次對該用戶服務(wù)時發(fā)送的數(shù)據(jù)內(nèi)容。
在本發(fā)明中,用戶可以分為不同的服務(wù)級別,不同的服務(wù)級別的區(qū)別在于為用戶提供不同幀率(每秒單個視頻流發(fā)送的視頻幀數(shù)量)的服務(wù),在開始對用戶服務(wù)時,除非用戶特殊說明,否則都按照最高幀率服務(wù)。
本發(fā)明的用戶待服務(wù)列表的實現(xiàn)方法為每個服務(wù)等級都設(shè)有單獨的用戶待服務(wù)列表,每個用戶待服務(wù)列表中所有的用戶服務(wù)等級相同,這就意味所有在該列表中的用戶兩次服務(wù)之間的間隔是同樣的(同一幀率);每個用戶在用戶待服務(wù)列表中有一個用戶時間戳(User Time Stamp,以下簡稱UTS),該時間戳標(biāo)志著應(yīng)該為用戶服務(wù)的最晚時間;每個用戶待服務(wù)列表中的用戶按照UTS從早到晚排序;當(dāng)用戶新加入時,將該用戶的UTS設(shè)置為列表中已有最后一個用戶的UTS,和第一個用戶下一次服務(wù)的UTS的中間值,然后將該用戶加到隊尾;每當(dāng)用戶接受完服務(wù)時,將該用戶的UTS加上該等級的幀間距,從隊頭移動到隊尾。
上述用戶待服務(wù)列表的優(yōu)點在于,由于同一個等級的用戶的UTS每次服務(wù)結(jié)束后所需要增加的值一定(因為幀率固定),所以剛剛服務(wù)結(jié)束后的用戶自然是隊列中最晚需要下一次服務(wù)的用戶,不需要對隊列進(jìn)行重新排序。
本發(fā)明的步驟3)中根據(jù)用戶時間戳循環(huán)選擇用戶進(jìn)行發(fā)送包括如下步驟(31)查找所有等級的用戶待服務(wù)用戶列表,選擇所有列表中UTS最早的一個用戶(即該列表中最早需要服務(wù)的用戶);(32)查看該用戶的UTS的值,如果該UTS值減去當(dāng)前時間的值大于設(shè)定值(該值應(yīng)與幀間距數(shù)量級相同,取值范圍一般為二分之一到二倍幀間距),則返回步驟1);(33)如果如果該UTS值減去當(dāng)前時間的值小于所述設(shè)定值,用RTP協(xié)議將該用戶所需要的視頻幀打包發(fā)送;(34)服務(wù)結(jié)束,將該用戶移至隊尾,返回步驟1)。
圖2為本發(fā)明中選擇服務(wù)用戶方法的示意圖。其中每個“UTS”代表一個“用戶時間戳(User Time-stamp,UTS)”,A,B,C分別為三個用戶服務(wù)等級的用戶待服務(wù)列表,每個列表中的用戶按用戶時間戳從上到下由早到晚排序。選擇用戶的范圍為每個表的第一個元素,即圖中的虛線框內(nèi)的范圍。這種每個時刻選擇一個用戶進(jìn)行服務(wù)的單線程發(fā)送方法的好處在于,不會因為多個用戶發(fā)送同時爭搶發(fā)送端網(wǎng)絡(luò)資源,產(chǎn)生發(fā)送端丟包。
本發(fā)明中,4)視頻流切換步驟的過程如下(41)戶端利用RTSP協(xié)議通知需要更換的視頻流編號StreamID;(42)服務(wù)器將用戶待服務(wù)列表中用戶的StreamID修改為用戶需要更換的StreamID;(43)如果新更換的視頻流的PF幀所參考的SIF幀沒有發(fā)送,則在為該用戶進(jìn)行發(fā)送的包中加入PF幀所參考的SIF幀。
使用該方法的好處是,用戶在進(jìn)行視頻流切換時,最多需要多解碼一個I幀,即可繼續(xù)進(jìn)行解碼,視頻播放質(zhì)量幾乎不會受到影響。比起背景技術(shù)中的方法,該方法節(jié)省了發(fā)送網(wǎng)絡(luò)帶寬。
本發(fā)明的一種具體實施例說明如下本實施例的服務(wù)器端配置CPU Intel PIV 2.8GHz內(nèi)存 512M操作系統(tǒng) RedHat 4 AS Linux Server控制服務(wù)器BBNC Transfer Server本實施例中采集PC的配置如下CPU Intel PIV duul-3.0GHz內(nèi)存 512M操作系統(tǒng) Windows XP采集程序 BBNC Multicapture本實施例中,每臺采集PC通過1394連接口和1394 HUB連接4個1394攝像頭。共24個攝像頭連接于6臺采集PC之上。24臺PC以每秒30幀的幀率向服務(wù)器端發(fā)送視頻,SIF間隔為每30幀一個SIF。24個攝像頭的視頻流標(biāo)號分別為1-24。
服務(wù)端設(shè)定兩種服務(wù)等級,30幀/秒(等級1)和15幀/秒(等級2),采集圖像大小為320×240。在采集PC和服務(wù)器端之間的網(wǎng)絡(luò)為千兆以太網(wǎng)。
本實施例的傳輸方法(一次為用戶服務(wù)的過程)包括以下步驟1)視頻流緩存;共設(shè)24個緩存單元,將每一路視頻流中屬于SIF的視頻幀和屬于PF的視頻幀在緩存單元中分開進(jìn)行緩存;每個緩存單元中緩存2個SIF視頻幀和29個PF視頻幀;當(dāng)緩存單元存滿,接收到新的視頻幀時,將緩存單元中最早的相應(yīng)的SIF幀或PF幀丟棄;2)建立連接準(zhǔn)備服務(wù),根據(jù)用戶服務(wù)等級將用戶放入相應(yīng)的用戶待服務(wù)列表客戶通過TCP/IP協(xié)議連接FVV服務(wù)監(jiān)聽端口,請求FVV服務(wù);服務(wù)器端將在FVV視頻流傳送之前通知客戶端以下信息24個攝像機的空間位置,相機參數(shù)和對應(yīng)的視頻流標(biāo)號,用TCP/IP協(xié)議發(fā)送給客戶端;客戶端將需要的Stream ID,通過RTSP協(xié)議,通知服務(wù)器端建立連接(普通視頻建立連接過程),客戶端需要的視頻流為9路,視頻流標(biāo)號分別為3,4,5,11,12,13,19,20,21;本實施例中,有兩個用戶待服務(wù)列表(等級1用戶待服務(wù)列表,等級2用戶待服務(wù)列表);兩個列表均使用鏈?zhǔn)酱鎯Ψ椒ù嬗诜?wù)器端內(nèi)存中(也可以用順序存儲方式)。服務(wù)器端根據(jù)用戶的服務(wù)級別,將信息加入用戶待服務(wù)列表,準(zhǔn)備為用戶服務(wù);本實施例中用戶的服務(wù)級別為等級1(30幀/秒),所以將該用戶的UTS設(shè)置為服務(wù)等級1的用戶待服務(wù)列表中已有最后一個用戶的UTS,和第一個用戶下一次服務(wù)的UTS的中間值,然后將該用戶加到隊尾;3)根據(jù)用戶時間戳循環(huán)選擇用戶進(jìn)行發(fā)送(選擇用戶的方法為,依次遍歷用戶待服務(wù)列表中的表頭,選取用戶時間戳最早的用戶進(jìn)行發(fā)送);查找兩個等級的用戶待服務(wù)用戶列表的第一項(即該列表中最早需要服務(wù)的用戶),選擇所有列表第一項當(dāng)中UTS最早的一個用戶;查看該用戶的UTS的值,如果該UTS值減去當(dāng)前時間的值大于20毫秒,即返回步驟3)重新開始;如果如果該UTS值減去當(dāng)前時間的值小于20毫秒,用RTP協(xié)議將該用戶所需要的上述9路視頻流的幀打包發(fā)送;服務(wù)結(jié)束,將該用戶移所處用戶待服務(wù)列表的隊尾,返回步驟3)重新開始;4)當(dāng)客戶端用戶由于自由瀏覽,視頻流切換發(fā)生切換,需要將視頻流標(biāo)號為3,11,19的視頻流分別切換為視頻流標(biāo)號為6,14,22的視頻流,客戶端利用RTSP協(xié)議通知需要更換的視頻流編號;服務(wù)器將用戶待服務(wù)列表中用戶的視頻流編號中的3,11,19三項修改為用戶需要更換的6,14,22三項,然后等待發(fā)送;5)結(jié)束服務(wù);用戶通過RTSP協(xié)議通知服務(wù)器終止發(fā)送;服務(wù)器端將用戶從用戶待服務(wù)列表中刪除。
實驗結(jié)果在本實施例中,利用一臺PC來模擬多個接收端,用戶進(jìn)行周期性的視點切換以檢驗視頻流切換對本方法的影響。本發(fā)明虛擬了20個用戶的連接和發(fā)送過程,每一個用戶為了進(jìn)行自由瀏覽,需要請求9路視頻。圖3和4為某一個用戶不進(jìn)行視頻流切換和進(jìn)行切換時網(wǎng)絡(luò)帶寬的情況;橫軸為時間軸,縱軸為網(wǎng)絡(luò)帶寬利用率,單位為1%。
可以看到,在不進(jìn)行視頻流切換時,用戶的網(wǎng)絡(luò)帶寬在可接受的范圍內(nèi)有較小波動;而視頻流切換會給用戶帶來一定的網(wǎng)絡(luò)抖動,但最大振幅和不進(jìn)行切換時差別不大。
權(quán)利要求
1.一種基于光場渲染的自由視點視頻在IP網(wǎng)傳輸方法,其特征在于,將每臺電腦從攝像頭采集來的視頻進(jìn)行壓縮后的視頻流作為一路視頻流進(jìn)行緩存;將用戶所需要的多路視頻流作為一路自由視點視頻流進(jìn)行傳輸,該自由視點視頻流進(jìn)行傳輸方法包括以下步驟1)視頻流緩存;將緩存區(qū)分為多個緩存單元,服務(wù)器端將每一路視頻流緩存在一個單元中;2)建立連接準(zhǔn)備服務(wù)根據(jù)用戶服務(wù)等級將用戶及所需視頻流標(biāo)號放入相應(yīng)的用戶待服務(wù)列表,每個用戶待服務(wù)列表中用戶按照用戶時間戳從早到晚排序;3)根據(jù)用戶時間戳循環(huán)選擇用戶進(jìn)行發(fā)送依次遍歷用戶待服務(wù)列表,選取所有用戶時間戳最早的用戶按其視頻流標(biāo)號進(jìn)行發(fā)送;4)視頻流切換當(dāng)客戶端用戶由于自由瀏覽,進(jìn)行視頻流切換時,服務(wù)器將用戶待服務(wù)列表中用戶的視頻流標(biāo)號修改為用戶需要更換的視頻流標(biāo)號,然后等待發(fā)送;5)結(jié)束服務(wù)用戶通過RTSP協(xié)議通知服務(wù)器終止發(fā)送;服務(wù)器端將用戶從用戶待服務(wù)列表中刪除。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟1)中所述服務(wù)器端將每一路視頻流緩存在一個單元中的方法為將每一路視頻流中屬于SIF的視頻幀和屬于PF的視頻幀在緩存單元中分開進(jìn)行緩存;SIF視頻幀和PF視頻幀的緩存數(shù)量為緩存每路視頻流的兩個SIF的視頻幀,緩存與兩個SIF之間PF數(shù)量相等的PF幀;當(dāng)緩存單元存滿,接收到新的視頻幀時,將緩存單元中最早的相應(yīng)的SIF幀或PF幀丟棄。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟2)中建立連接準(zhǔn)備服務(wù)具體包括以下步驟(21)客戶端通過TCP/IP協(xié)議連接自由視點視頻服務(wù)監(jiān)聽端口,請求自由視點視頻服務(wù);(22)服務(wù)器端將在自由視點視頻流傳送之前通知客戶端以下信息攝像機的空間位置,相機參數(shù)和對應(yīng)的視頻流標(biāo)號,用TCP/IP協(xié)議發(fā)送給客戶端;(23)客戶端將需要的視頻流標(biāo)號通過RTSP協(xié)議,通知服務(wù)器端建立連接;(24)服務(wù)器端根據(jù)用戶的服務(wù)級別,將信息加入用戶待服務(wù)列表,準(zhǔn)備為用戶服務(wù)。
4.如權(quán)利要求1所述的方法,其特征在于,所述用戶待服務(wù)列表的實現(xiàn)方法為每個服務(wù)等級都設(shè)有單獨的用戶待服務(wù)列表,每個用戶待服務(wù)列表中所有的用戶服務(wù)等級相同,;每個用戶在用戶待服務(wù)列表中有一個用戶時間戳,每個用戶待服務(wù)列表中的用戶按照時間戳從早到晚排序;當(dāng)用戶新加入時,將該用戶的時間戳設(shè)置為列表中已有最后一個用戶的時間戳,和第一個用戶下一次服務(wù)的時間戳的中間值,然后將該用戶加到隊尾;每當(dāng)用戶接受完服務(wù)時,將該用戶的時間戳加上該等級的幀間距,從隊頭移動到隊尾。
5.如權(quán)利要求1所述的方法,其特征在于,所述步驟3)中根據(jù)用戶時間戳循環(huán)選擇用戶進(jìn)行發(fā)送的方法,包括如下步驟(31)查找所有等級的用戶待服務(wù)用戶列表,選擇所有列表中時間戳最早的一個用戶;(32)查看該用戶的時間戳的值,如果該時間戳值減去當(dāng)前時間的值大于設(shè)定值,則返回步驟1);(33)如果如果該UTS值減去當(dāng)前時間的值小于所述設(shè)定值,用RTP協(xié)議將該用戶所需要的視頻幀打包發(fā)送;(34)服務(wù)結(jié)束,將該用戶移至隊尾,返回步驟1)。
6.如權(quán)利要求1所述的方法,其特征在于,所述步驟4)中視頻流切換步驟的方法包括以下步驟(41)戶端利用RTSP協(xié)議通知需要更換的視頻流標(biāo)號;(42)服務(wù)器將用戶待服務(wù)列表中用戶的視頻流標(biāo)號修改為用戶需要更換的視頻流標(biāo)號;(43)如果新更換的視頻流的PF幀所參考的SIF幀沒有發(fā)送,則在為該用戶進(jìn)行發(fā)送的包中加入PF幀所參考的SIF幀。
全文摘要
本發(fā)明涉及一種基于光場渲染的自由視點視頻在IP網(wǎng)傳輸方法,屬于計算機多媒體技術(shù)領(lǐng)域,該方法為將每臺電腦從攝像頭采集來的視頻進(jìn)行壓縮后的視頻流作為一路視頻流進(jìn)行緩存;將用戶所需要的多路視頻流作為一路自由視點視頻視頻流進(jìn)行傳輸,該傳輸方法包括視頻流緩存;建立連接準(zhǔn)備服務(wù),將用戶及所需視頻流標(biāo)號放入相應(yīng)的用戶待服務(wù)列表,每個用戶待服務(wù)列表中用戶按照用戶時間戳從早到晚排序;選取所有用戶時間戳最早的用戶按其視頻流標(biāo)號進(jìn)行發(fā)送;當(dāng)進(jìn)行視頻流切換時,服務(wù)器將用戶待服務(wù)列表中用戶的視頻流標(biāo)號修改為用戶需要更換的視頻流標(biāo)號,然后發(fā)送。本發(fā)明解決了各路視頻流之間在發(fā)送時的同步問題和發(fā)送端網(wǎng)絡(luò)擁塞問題。
文檔編號H04N7/26GK101022537SQ20061016524
公開日2007年8月22日 申請日期2006年12月15日 優(yōu)先權(quán)日2006年12月15日
發(fā)明者戴瓊海, 韓準(zhǔn), 劉燁斌 申請人:清華大學(xué)