本發(fā)明實施例涉及虛擬現(xiàn)實技術領域,特別涉及一種虛擬現(xiàn)實服務器、視頻數(shù)據(jù)傳輸方法及系統(tǒng)。
背景技術:
目前,虛擬現(xiàn)實(Virtual Reality,VR)技術正在不斷發(fā)展和進步,虛擬現(xiàn)實技術是由諸如VR頭盔和VR眼鏡之類的虛擬現(xiàn)實設備,以及為虛擬現(xiàn)實設備提供服務的虛擬現(xiàn)實服務器來共同實現(xiàn)的。虛擬現(xiàn)實設備中通常設置有各類傳感器,傳感器用于感知用戶的行為動作。虛擬現(xiàn)實設備會將在用戶的運動過程中采集到的虛擬現(xiàn)實場景的控制數(shù)據(jù)發(fā)送給虛擬現(xiàn)實服務器,虛擬現(xiàn)實服務器生成虛擬現(xiàn)實場景的視頻渲染指令,根據(jù)接收到的控制數(shù)據(jù)對視頻渲染指令中的視頻幀進行處理,生成與用戶的動作相適應的處理后的視頻渲染指令,并對處理后的視頻渲染指令進行渲染,生成虛擬現(xiàn)實視頻數(shù)據(jù),并將虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給虛擬現(xiàn)實設備進行播放,使得用戶觀看到與用戶的動作相適應的虛擬現(xiàn)實場景。在虛擬現(xiàn)實技術的使用過程中,為了提高虛擬現(xiàn)實服務器的利用率,可以采用分布式的虛擬現(xiàn)實服務器,由分布式的虛擬現(xiàn)實服務器基于網絡將虛擬現(xiàn)實視頻數(shù)據(jù)傳輸給虛擬現(xiàn)實設備。
在相關技術中,為了實現(xiàn)虛擬現(xiàn)實視頻數(shù)據(jù)的長距離無衰減的通信,虛擬現(xiàn)實服務器120需要通過信號延長設備140與虛擬現(xiàn)實設備160相連,信號延長設備140通常是高清晰度多媒體接口(High Definition Multimedia Interface,HDMI)信號延長器,如圖1所示。具體的,虛擬現(xiàn)實服務器120通過HDMI線與HDMI信號延長器的發(fā)送端141相連,虛擬現(xiàn)實設備160通過HDMI線與HDMI信號延長器的接收端142相連,HDMI信號延長器的發(fā)送端141與接收端142之間通過網絡線纜相連。虛擬現(xiàn)實服務器120對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼后發(fā)送給HDMI信號延長器的發(fā)送端141。由于虛擬現(xiàn)實服務器120輸出的數(shù)據(jù)的格式與HDMI信號延長器的發(fā)送端141輸出的數(shù)據(jù)的格式不同,因此,HDMI信號延長器的發(fā)送端141會先對壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)進行解碼,得到原始的虛擬現(xiàn)實視頻數(shù)據(jù),再重新對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼得到壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù),再對壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)進行數(shù)據(jù)封裝生成封裝后的虛擬現(xiàn)實視頻數(shù)據(jù),并通過網絡線纜將封裝后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給HDMI信號延長器的接收端142,HDMI信號延長器的接收端142對封裝后的的虛擬現(xiàn)實視頻數(shù)據(jù)進行解封裝和解碼得到原始的虛擬現(xiàn)實視頻數(shù)據(jù),將原始的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給虛擬現(xiàn)實設備進行展示。
在通過信號延長設備進行長距離通信的過程中,虛擬現(xiàn)實服務器輸出的虛擬現(xiàn)實視頻數(shù)據(jù)需要經過“壓縮編碼-傳輸-解碼-壓縮編碼-傳輸-解碼”的過程才能發(fā)送給虛擬現(xiàn)實設備,虛擬現(xiàn)實視頻數(shù)據(jù)傳輸過程所需的時間較長,用戶執(zhí)行某一動作與用戶在虛擬現(xiàn)實設備中觀看到與該動作相適應的虛擬現(xiàn)實場景中間的時延通常會達到33ms,不符合業(yè)界規(guī)定的時延小于20ms的規(guī)定,容易使用戶在觀看過程中產生眩暈感。
技術實現(xiàn)要素:
本發(fā)明實施例提供了一種虛擬現(xiàn)實服務器、視頻數(shù)據(jù)傳輸方法及系統(tǒng)。以解決虛擬現(xiàn)實服務器通過信號延長設備使用網絡對虛擬現(xiàn)實視頻數(shù)據(jù)進行長距離傳輸時,導致的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸過程中的時延較長的問題,所述技術方案如下:
第一方面,本發(fā)明實施例提供了一種虛擬現(xiàn)實服務器,該虛擬現(xiàn)實服務器包括:中央處理器、與中央處理器相連的圖形處理器、與圖形處理器或中央處理器相連的網絡接口卡;中央處理器,用于接收與虛擬現(xiàn)實場景相應的控制數(shù)據(jù)以及生成虛擬現(xiàn)實場景的視頻渲染指令;圖形處理器,用于根據(jù)視頻渲染指令渲染出虛擬現(xiàn)實視頻數(shù)據(jù);中央處理器和/或網絡接口卡,用于對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù);網絡接口卡,用于向虛擬現(xiàn)實設備發(fā)送處理后的虛擬現(xiàn)實視頻數(shù)據(jù),虛擬現(xiàn)實設備用于播放處理后的虛擬現(xiàn)實視頻數(shù)據(jù)。
在本實施例中,通過在虛擬現(xiàn)實服務器中增加具有數(shù)據(jù)封裝能力和網絡傳輸能力的網絡接口卡,使得虛擬服務器在生成虛擬現(xiàn)實視頻數(shù)據(jù)后,可以直接對虛擬現(xiàn)實視頻數(shù)據(jù)執(zhí)行壓縮編碼和數(shù)據(jù)封裝等數(shù)據(jù)處理,并通過網絡將處理后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給虛擬現(xiàn)實設備進行播放,在通過網絡實現(xiàn)虛擬現(xiàn)實視頻數(shù)據(jù)的長距離傳輸時,不需要經過信號延長設備,避免了信號延長設備對虛擬現(xiàn)實視頻數(shù)據(jù)進行數(shù)據(jù)處理時產生的時延,避免了視頻信號編解碼,縮短了虛擬現(xiàn)實視頻數(shù)據(jù)在通過網絡進行長距離傳輸過程的時延,優(yōu)化了虛擬現(xiàn)實視頻數(shù)據(jù)通過網絡進行長距離傳輸時的傳輸過程。
在第一方面的第一種可能的實現(xiàn)方式中,網絡接口卡與圖形處理器相連;網絡接口卡,用于從圖形處理器中依次獲取圖形處理器渲染出的視頻幀中的每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù);網絡接口卡,還用于對獲取到的顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù)。
在該可能的實現(xiàn)方式中,虛擬現(xiàn)實服務器通過網絡接口卡依次獲取每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,由于網絡接口卡在圖形處理器生成一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)后,就能對該顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,而不需要等待圖形處理器生成整一個視頻幀的虛擬現(xiàn)實視頻數(shù)據(jù)后才進行壓縮編碼,避免了網絡接口卡在等待圖形處理器生成整一個視頻幀的虛擬現(xiàn)實視頻數(shù)據(jù)過程中產生的時延,縮短了虛擬現(xiàn)實視頻數(shù)據(jù)在通過網絡進行長距離傳輸過程的時延。
在第一方面的第二種可能的實現(xiàn)方式中,網絡接口卡與中央處理器相連;中央處理器,用于從圖形處理器中依次獲取圖形處理器渲染出的視頻幀中的每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù);中央處理器,還用于對獲取到的顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù);中央處理器,還用于將壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給網絡接口卡。
在該可能的實現(xiàn)方式中,虛擬現(xiàn)實服務器通過中央處理器依次獲取每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,由于中央處理器在圖形處理器生成一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)后,就能對該顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,而不需要等待圖形處理器生成整一個視頻幀的虛擬現(xiàn)實視頻數(shù)據(jù)后才進行壓縮編碼,避免了中央處理器在等待圖形處理器生成整一個視頻幀的虛擬現(xiàn)實視頻數(shù)據(jù)過程中產生的時延,縮短了虛擬現(xiàn)實視頻數(shù)據(jù)在通過網絡進行長距離傳輸過程的時延。
結合第一方面的第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,中央處理器還與網絡接口卡相連。
結合第一方面、第一方面的第一種可能的實現(xiàn)方式、第一方面的第二種可能的實現(xiàn)方式,以及第一方面的第三種可能的實現(xiàn)方式中的任意一種可能的實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,中央處理器和/或網絡接口卡,還用于按照UDP/IP協(xié)議將壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)封裝在IP報文中;中央處理器和/或網絡接口卡,還用于按照以太網協(xié)議將IP報文封裝在以太網報文中。
第二方面,本發(fā)明實施例提供了一種虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法,該方法用于如上述第一方面所示的虛擬現(xiàn)實服務器中,該方法包括:通過中央處理器接收與虛擬現(xiàn)實場景相應的控制數(shù)據(jù)以及生成虛擬現(xiàn)實場景的視頻渲染指令;通過圖形處理器根據(jù)視頻渲染指令渲染出虛擬現(xiàn)實視頻數(shù)據(jù);通過中央處理器和/或網絡接口卡對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù);通過網絡接口卡向虛擬現(xiàn)實設備發(fā)送處理后的虛擬現(xiàn)實視頻數(shù)據(jù),虛擬現(xiàn)實設備用于播放處理后的虛擬現(xiàn)實視頻數(shù)據(jù)。
在本實施例中,通過在虛擬現(xiàn)實服務器中增加具有數(shù)據(jù)封裝能力和網絡傳輸能力的網絡接口卡,使得虛擬服務器在生成虛擬現(xiàn)實視頻數(shù)據(jù)后,可以直接對虛擬現(xiàn)實視頻數(shù)據(jù)執(zhí)行壓縮編碼和數(shù)據(jù)封裝等數(shù)據(jù)處理,并通過網絡將處理后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給虛擬現(xiàn)實設備進行播放,在通過網絡實現(xiàn)虛擬現(xiàn)實視頻數(shù)據(jù)的長距離傳輸時,不需要經過信號延長設備,避免了信號延長設備對虛擬現(xiàn)實視頻數(shù)據(jù)進行數(shù)據(jù)處理時產生的時延,避免了視頻信號的編解碼,縮短了虛擬現(xiàn)實視頻數(shù)據(jù)在通過網絡進行長距離傳輸過程的時延,優(yōu)化了虛擬現(xiàn)實視頻數(shù)據(jù)通過網絡進行長距離傳輸時的傳輸過程。
在第二方面的第一種可能的實現(xiàn)方式中,網絡接口卡與圖形處理器相連;通過網絡接口卡對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù),包括:通過網絡接口卡從圖形處理器中依次獲取圖形處理器渲染出的視頻幀中的每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù);通過網絡接口卡對獲取到的顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù)。
在該可能的實現(xiàn)方式中,虛擬現(xiàn)實服務器通過網絡接口卡依次獲取每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,由于網絡接口卡在圖形處理器生成一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)后,就能對該顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,而不需要等待圖形處理器生成整一個視頻幀的虛擬現(xiàn)實視頻數(shù)據(jù)后才進行壓縮編碼,避免了網絡接口卡在等待圖形處理器生成整一個視頻幀的虛擬現(xiàn)實視頻數(shù)據(jù)過程中產生的時延,縮短了虛擬現(xiàn)實視頻數(shù)據(jù)在通過網絡進行長距離傳輸過程的時延。
在第二方面的第二種可能的實現(xiàn)方式中,網絡接口卡與中央處理器相連,中央處理器還與網絡接口卡相連;通過中央處理器對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù),包括:通過中央處理器從圖形處理器中依次獲取圖形處理器渲染出的視頻幀中的每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù);通過中央處理器對獲取到的顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù);通過中央處理器將處理后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給網絡接口卡。
在該可能的實現(xiàn)方式中,虛擬現(xiàn)實服務器通過中央處理器依次獲取每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,由于中央處理器在圖形處理器生成一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)后,就能對該顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,而不需要等待圖形處理器生成整一個視頻幀的虛擬現(xiàn)實視頻數(shù)據(jù)后才進行壓縮編碼,避免了中央處理器在等待圖形處理器生成整一個視頻幀的虛擬現(xiàn)實視頻數(shù)據(jù)過程中產生的時延,縮短了虛擬現(xiàn)實視頻數(shù)據(jù)在通過網絡進行長距離傳輸過程的時延。
結合第二方面、第二方面的第一種可能的實現(xiàn)方式,以及第二方面的第二種可能的實現(xiàn)方式中的任意一種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,通過中央處理器和/或網絡接口卡對虛擬現(xiàn)實視頻數(shù)據(jù)進行數(shù)據(jù)封裝,包括:通過中央處理器和/或網絡接口卡按照UDP/IP協(xié)議將壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)封裝在IP報文中;通過中央處理器和/或網絡接口卡按照以太網協(xié)議將IP報文封裝在以太網報文中。
第三方面,本發(fā)明實施例提供了一種虛擬現(xiàn)實視頻數(shù)據(jù)傳輸系統(tǒng),該系統(tǒng)包括:虛擬現(xiàn)實服務器和虛擬現(xiàn)實設備;虛擬現(xiàn)實服務器,用于通過中央處理器接收與虛擬現(xiàn)實場景相應的控制數(shù)據(jù)以及生成虛擬現(xiàn)實場景的視頻渲染指令;通過圖形處理器根據(jù)視頻渲染指令渲染出虛擬現(xiàn)實視頻數(shù)據(jù);通過中央處理器和/或網絡接口卡對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù);通過網絡接口卡向虛擬現(xiàn)實設備發(fā)送處理后的虛擬現(xiàn)實視頻數(shù)據(jù),虛擬現(xiàn)實設備用于播放處理后的虛擬現(xiàn)實視頻數(shù)據(jù);虛擬現(xiàn)實設備,用于接收虛擬現(xiàn)實服務器發(fā)送的處理后的虛擬現(xiàn)實視頻數(shù)據(jù),并播放處理后的虛擬現(xiàn)實視頻數(shù)據(jù)。
在本實施例中,通過在虛擬現(xiàn)實服務器中增加具有數(shù)據(jù)封裝能力和網絡傳輸能力的網絡接口卡,使得虛擬服務器在生成虛擬現(xiàn)實視頻數(shù)據(jù)后,可以直接對虛擬現(xiàn)實視頻數(shù)據(jù)執(zhí)行壓縮編碼和數(shù)據(jù)封裝等數(shù)據(jù)處理,并通過網絡將處理后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給虛擬現(xiàn)實設備進行播放,在通過網絡實現(xiàn)虛擬現(xiàn)實視頻數(shù)據(jù)的長距離傳輸時,不需要經過信號延長設備,避免了信號延長設備對虛擬現(xiàn)實視頻數(shù)據(jù)進行數(shù)據(jù)處理時產生的時延,縮短了虛擬現(xiàn)實視頻數(shù)據(jù)在通過網絡進行長距離傳輸過程的時延,優(yōu)化了虛擬現(xiàn)實視頻數(shù)據(jù)通過網絡進行長距離傳輸時的傳輸過程。
附圖說明
圖1是現(xiàn)有技術中的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸系統(tǒng)的結構示意圖;
圖2是本發(fā)明一個示例性實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸系統(tǒng)的結構示意圖;
圖3是本發(fā)明另一個示例性實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸系統(tǒng)的結構示意圖;
圖4是本發(fā)明一個示例性實施例提供的虛擬現(xiàn)實服務器的結構示意圖;
圖5是本發(fā)明另一個示例性實施例提供的虛擬現(xiàn)實服務器的結構示意圖;
圖6是本發(fā)明一個示例性實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法的流程圖;
圖7是本發(fā)明另一個示例性實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法的流程圖;
圖8是本發(fā)明另一個示例性實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法的交互示意圖;
圖9是本發(fā)明另一個示例性實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法的流程圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施例進行闡述。
請參考圖2,其示出了本發(fā)明一示例性實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸系統(tǒng)的結構示意圖,該系統(tǒng)包括:虛擬現(xiàn)實設備220和虛擬現(xiàn)實服務器240。
虛擬現(xiàn)實設備220是諸如虛擬現(xiàn)實眼鏡和虛擬現(xiàn)實頭盔之類的設備,虛擬現(xiàn)實設備220具有通過播放虛擬現(xiàn)實視頻數(shù)據(jù)以展示虛擬現(xiàn)實場景的能力。在實際實現(xiàn)時,虛擬現(xiàn)實設備220通常作為頭戴式設備穿戴在用戶身上。
可選的,虛擬現(xiàn)實設備220中設置有傳感器260,可選的,傳感器260包括視場角(Field Of View,F(xiàn)OV)深度傳感器、陀螺儀、加速計、磁力計、近距離傳感器、攝像頭和麥克風中的至少一種。傳感器260用于采集用戶對虛擬現(xiàn)實場景進行控制的控制數(shù)據(jù),控制數(shù)據(jù)包括通過感知用戶的行為采集到的用戶的動作數(shù)據(jù),比如,控制數(shù)據(jù)包括采集到的用戶的頭部轉動的數(shù)據(jù),再比如,控制數(shù)據(jù)包括采集到的用戶眼球轉動的數(shù)據(jù)??蛇x的,控制數(shù)據(jù)還包括通過感知用戶所處的環(huán)境采集到的環(huán)境的圖像數(shù)據(jù)和/或音頻數(shù)據(jù),比如,控制數(shù)據(jù)包括用戶在伸手過程中通過攝像頭拍攝到的用戶的手的圖像數(shù)據(jù),再比如,控制數(shù)據(jù)包括用戶說話過程中通過麥克風采集到的音頻數(shù)據(jù)。
虛擬現(xiàn)實設備220通過無線網絡或者有線網絡的方式與虛擬現(xiàn)實服務器240相連。
虛擬現(xiàn)實服務器240是用于為虛擬現(xiàn)實設備220提供后臺服務的服務器,虛擬現(xiàn)實服務器240具有生成虛擬現(xiàn)實視頻數(shù)據(jù)并對虛擬現(xiàn)實視頻數(shù)據(jù)進行處理的能力。虛擬現(xiàn)實服務器240是一臺服務器,或者是由若干臺服務器組成的服務器集群,或者是一個云計算服務中心。
在其他可選的實施例中,圖2所示的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸系統(tǒng)中還可以包括交互設備280,如圖3所示。
交互設備280用于通過感知用戶的行為和/或通過感知用戶所處的環(huán)境來采集用戶對虛擬現(xiàn)實場景進行控制的控制數(shù)據(jù)。交互設備280是諸如按鍵手柄和鍵盤等按鍵類的設備,或者是諸如體感手柄、體感手套和體感腰帶等體感類的設備,體感類的交互設備280中通常設置有傳感器,傳感器的含義可以結合上述傳感器260,本實施例對此不再贅述。在實際實現(xiàn)時,交互設備280通常由用戶進行控制或者穿戴在用戶身上。需要說明的是,在圖3所示的實施例中,虛擬現(xiàn)實設備220中也可以不設置有傳感器260。
交互設備280通過無線網絡或者有線網絡的方式與虛擬現(xiàn)實服務器240相連。
請參考圖4,其示出了圖2或圖3所示的系統(tǒng)中的虛擬現(xiàn)實服務器240的結構示意圖,該虛擬現(xiàn)實服務器240包括:中央處理器(Central Processing Unit,CPU)41、圖形處理器(Graphics Processing Unit,GPU)42和網絡接口卡(Network Information Center,NIC)43。
中央處理器41包括一個或者一個以上處理核心,中央處理器41用于執(zhí)行虛擬現(xiàn)實服務器的各種功能應用以及用于進行數(shù)據(jù)處理,中央處理器41用于輸出與用戶的行為相適應的虛擬現(xiàn)實場景的視頻渲染指令。
中央處理器41與圖形處理器42相連,中央處理器41會將輸出的視頻渲染指令發(fā)送給圖形處理器42。圖形處理器42包括一個或者一個以上處理核心,圖形處理器42用于根據(jù)接收到的視頻渲染指令進行渲染或其他圖像處理操作,從而生成并輸出與用戶的行為相適應的虛擬現(xiàn)實場景的虛擬現(xiàn)實視頻數(shù)據(jù)。
圖形處理器42與網絡接口卡43相連,圖形處理器42會將生成的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給網絡接口卡42。網絡接口卡42具有數(shù)據(jù)封裝能力和數(shù)據(jù)傳輸能力,虛擬現(xiàn)實服務器通過網絡接口卡42與網絡相連??蛇x的,網絡接口卡42還具有對數(shù)據(jù)進行壓縮編碼的能力,網絡接口卡42用于對接收到的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼和數(shù)據(jù)封裝,并對經過壓縮編碼和數(shù)據(jù)封裝后的虛擬現(xiàn)實視頻數(shù)據(jù)進行傳輸。
可選的,虛擬現(xiàn)實服務器240中通常還包括圖形處理器緩存(Buffer)44,則圖形處理器42通常并不是直接與網絡接口卡43相連的,而是通過圖形處理器緩存44與網絡接口卡43相連,如圖4所示。圖形處理器42在生成虛擬現(xiàn)實視頻數(shù)據(jù)后,將虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送至圖形處理器緩存44,圖形處理器緩存44用于對接收到的虛擬現(xiàn)實視頻數(shù)據(jù)進行緩存。網絡接口卡43從圖形處理器緩存44中獲取虛擬現(xiàn)實視頻數(shù)據(jù),并對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼、數(shù)據(jù)封裝以及數(shù)據(jù)傳輸。
可選的,虛擬現(xiàn)實服務器240中還包括現(xiàn)有的視頻傳輸接口45,視頻傳輸接口45與圖形處理器42相連或者與圖形處理器緩存44相連,虛擬現(xiàn)實服務器用于通過視頻傳輸接口45將虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給預定距離范圍內的虛擬現(xiàn)實設備進行播放,預定距離范圍通常是一個距離較短的經驗值。可選的,視頻傳輸接口45包括HDMI接口、數(shù)字視頻接口(Digital Visual Interface,DVI)和顯示接口(DisplayPort,DP)中的至少一種。
在其他可選的實施例中,網絡接口卡42也可以不具備對數(shù)據(jù)進行壓縮編碼的能力,則本實施例的網絡接口卡42是現(xiàn)有的網絡接口卡。則中央處理器41與圖形處理器42相連或者通過圖形處理器緩存44與圖形處理器42相連,如圖5所示。
圖形處理器42在生成虛擬現(xiàn)實視頻數(shù)據(jù)后,將生成的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送至中央處理器41;或者,圖形處理器42將生成的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送至圖形處理器緩存44后,由中央處理器41從圖形處理器緩存44中獲取虛擬現(xiàn)實視頻數(shù)據(jù)。中央處理器41用于對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù)。
中央處理器41還與網絡接口卡43相連,中央處理器41用于將處理后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給網絡接口卡43,由網絡接口卡43對處理后的虛擬現(xiàn)實視頻數(shù)據(jù)進行數(shù)據(jù)傳輸。
請參考圖6,其示出了本發(fā)明一個示例性實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法的流程圖,本實施例以該方法應用于上述圖4或圖5所示的虛擬現(xiàn)實服務器中進行說明,該方法包括:
步驟601,通過中央處理器接收與虛擬現(xiàn)實場景相應的控制數(shù)據(jù)以及生成虛擬現(xiàn)實場景的視頻渲染指令。
可選的,當該方法應用于上述圖2所示的系統(tǒng)中時,虛擬現(xiàn)實服務器通過中央處理器接收虛擬現(xiàn)實設備發(fā)送的控制數(shù)據(jù)??蛇x的,當該方法應用于上述圖3所示的系統(tǒng)中時,虛擬現(xiàn)實服務器通過中央處理器接收虛擬現(xiàn)實設備和/或交互設備發(fā)送的控制數(shù)據(jù)。中央處理器根據(jù)接收到的控制數(shù)據(jù)生成視頻渲染指令。
步驟602,通過圖形處理器根據(jù)視頻渲染指令渲染出虛擬現(xiàn)實視頻數(shù)據(jù)。
可選的,視頻渲染指令中攜帶有控制數(shù)據(jù),圖形處理器接收到視頻渲染指令后,根據(jù)預設渲染模型對控制數(shù)據(jù)進行渲染,生成虛擬現(xiàn)實視頻數(shù)據(jù),預設渲染模型是系統(tǒng)預設的存儲在圖形處理器中的模型?;蛘?,中央處理器向圖形處理器發(fā)送的視頻渲染指令中還攜帶有渲染模型,圖形處理器接收到視頻渲染指令后,根據(jù)視頻渲染指令中的渲染模型對視頻渲染指令中的控制數(shù)據(jù)進行渲染,生成虛擬現(xiàn)實視頻數(shù)據(jù),視頻渲染指令中的渲染模型是系統(tǒng)預設的存儲在中央處理器中的模型。
可選的,虛擬現(xiàn)實服務器根據(jù)接收到的視頻渲染指令依次渲染出每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)。
步驟603,通過中央處理器和/或網絡接口卡對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù)。
可選的,虛擬現(xiàn)實服務器通過中央處理器和/或網絡接口卡按照動態(tài)圖像專家組(Moving Picture Experts Group,MPEG)編碼標準、信源編碼標準(Audio Video coding Standard,AVS)編碼標準、H.26X編碼標準中的至少一種編碼標準對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼??蛇x的,虛擬現(xiàn)實服務器通過中央處理器和/或網絡接口卡依次對每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,生成每一個顯示行對應的壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)。
可選的,虛擬現(xiàn)實服務器通過中央處理器和/或網絡接口卡依次對每一個顯示行對應的壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)進行數(shù)據(jù)封裝,生成每一個顯示行對應的處理后的虛擬現(xiàn)實視頻數(shù)據(jù);或者,虛擬現(xiàn)實服務器在通過中央處理器和/或網絡接口卡生成n個顯示行對應的壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)后,對n個顯示行對應的壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)進行數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù),也即生成攜帶有該n個顯示行的虛擬現(xiàn)實視頻數(shù)據(jù)的數(shù)據(jù)包,n通常是系統(tǒng)預設值或者由壓縮后的虛擬顯示數(shù)據(jù)占用的大小相關,n為大于等于2的正整數(shù),該n個顯示行可以是同一個視頻幀中的顯示行,也可以包括多個不同的視頻幀中的顯示行。
可選的,當該方法應用于上述圖4所示的虛擬現(xiàn)實服務器中時,虛擬現(xiàn)實服務器通過中央處理器對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)??蛇x的,當該方法應用于上述圖5所示的虛擬現(xiàn)實服務器中時,虛擬現(xiàn)實服務器通過網絡接口卡對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)。
步驟604,通過網絡接口卡向虛擬現(xiàn)實設備發(fā)送處理后的虛擬現(xiàn)實視頻數(shù)據(jù),虛擬現(xiàn)實設備用于播放處理后的虛擬現(xiàn)實視頻數(shù)據(jù)。
綜上所述,本發(fā)明實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法,通過在虛擬現(xiàn)實服務器中增加具有數(shù)據(jù)處理能力和網絡傳輸能力的網絡接口卡,使得虛擬服務器在生成虛擬現(xiàn)實視頻數(shù)據(jù)后,可以直接對虛擬現(xiàn)實視頻數(shù)據(jù)執(zhí)行壓縮編碼和數(shù)據(jù)封裝等數(shù)據(jù)處理,并通過網絡將處理后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給虛擬現(xiàn)實設備進行播放,在通過網絡實現(xiàn)虛擬現(xiàn)實視頻數(shù)據(jù)的長距離傳輸時,不需要經過信號延長設備,避免了視頻信號編解碼,避免了信號延長設備對虛擬現(xiàn)實視頻數(shù)據(jù)進行數(shù)據(jù)處理時產生的時延,縮短了虛擬現(xiàn)實視頻數(shù)據(jù)在通過網絡進行長距離傳輸過程的時延,優(yōu)化了虛擬現(xiàn)實視頻數(shù)據(jù)通過網絡進行長距離傳輸時的傳輸過程。
請參考圖7,其示出了本發(fā)明一個示例性實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法的流程圖,本實施例以該方法應用于上述圖4所示的虛擬現(xiàn)實服務器中進行說明,該方法包括:
步驟701,通過中央處理器接收與虛擬現(xiàn)實場景相應的控制數(shù)據(jù)以及生成虛擬現(xiàn)實場景的視頻渲染指令。
步驟702,通過圖形處理器根據(jù)視頻渲染指令渲染出虛擬現(xiàn)實視頻數(shù)據(jù)。
步驟701和步驟702的實現(xiàn)方式可以結合上述步驟601和步驟602,本實施例對此不再贅述。
步驟703,通過網絡接口卡從圖形處理器中依次獲取圖形處理器渲染出的視頻幀中的每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)。
可選的,當虛擬現(xiàn)實服務器中包括圖形處理器緩存時,該步驟實現(xiàn)成為:通過圖形處理器將依次生成的視頻幀中的每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送至圖形處理器緩存,通過網絡接口卡從圖形處理器緩存中依次獲取圖形處理器生成的視頻幀中的每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)。
步驟704,通過網絡接口卡對獲取到的顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù)。
步驟704的具體實現(xiàn)方法可以結合步驟603,本實施例對此不再贅述。
步驟705,通過網絡接口卡按照UDP/IP協(xié)議將處理后的虛擬現(xiàn)實視頻數(shù)據(jù)封裝在IP報文中。
步驟706,通過網絡接口卡按照以太網協(xié)議將IP報文封裝在以太網報文中。
步驟707,通過網絡接口卡向虛擬現(xiàn)實設備發(fā)送以太網報文,以太網報文中攜帶有虛擬現(xiàn)實視頻數(shù)據(jù)。
如圖7所示的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法的交互示意圖可以如圖8所示。
綜上所述,本發(fā)明實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法,通過在虛擬現(xiàn)實服務器中增加具有數(shù)據(jù)封裝能力和網絡傳輸能力的網絡接口卡,使得虛擬服務器在生成虛擬現(xiàn)實視頻數(shù)據(jù)后,可以直接對虛擬現(xiàn)實視頻數(shù)據(jù)執(zhí)行壓縮編碼和數(shù)據(jù)封裝等數(shù)據(jù)處理,并通過網絡將處理后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給虛擬現(xiàn)實設備進行播放,在通過網絡實現(xiàn)虛擬現(xiàn)實視頻數(shù)據(jù)的長距離傳輸時,不需要經過信號延長設備,避免了視頻信號編解碼,避免了信號延長設備對虛擬現(xiàn)實視頻數(shù)據(jù)進行數(shù)據(jù)處理時產生的時延,縮短了虛擬現(xiàn)實視頻數(shù)據(jù)在通過網絡進行長距離傳輸過程的時延,優(yōu)化了虛擬現(xiàn)實視頻數(shù)據(jù)通過網絡進行長距離傳輸時的傳輸過程。
本發(fā)明實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法,虛擬現(xiàn)實服務器通過網絡接口卡依次獲取每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,由于網絡接口卡在圖形處理器生成一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)后,就能對該顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,而不需要等待圖形處理器生成整一個視頻幀的虛擬現(xiàn)實視頻數(shù)據(jù)后才進行壓縮編碼,避免了網絡接口卡在等待圖形處理器生成整一個視頻幀的虛擬現(xiàn)實視頻數(shù)據(jù)過程中產生的時延,縮短了虛擬現(xiàn)實視頻數(shù)據(jù)在通過網絡進行長距離傳輸過程的時延。
請參考圖9,其示出了本發(fā)明一個示例性實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法的流程圖,本實施例以該方法應用于上述圖5所示的虛擬現(xiàn)實服務器中進行說明,該方法包括:
步驟901,通過中央處理器接收與虛擬現(xiàn)實場景相應的控制數(shù)據(jù)以及生成虛擬現(xiàn)實場景的視頻渲染指令。
步驟902,通過圖形處理器根據(jù)視頻渲染指令渲染出虛擬現(xiàn)實視頻數(shù)據(jù)。
步驟901和步驟902的實現(xiàn)方式可以結合上述步驟601和步驟602,本實施例對此不再贅述。
步驟903,通過中央處理器從圖形處理器中依次獲取圖形處理器渲染出的視頻幀中的每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)。
可選的,當虛擬現(xiàn)實服務器中包括圖形處理器緩存時,該步驟實現(xiàn)成為:通過圖形處理器將依次渲染出的視頻幀中的每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送至圖形處理器緩存,通過中央處理器從圖形處理器緩存中依次獲取圖形處理器渲染出的視頻幀中的每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)。
步驟904,通過中央處理器對獲取到的顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼以及數(shù)據(jù)封裝,生成處理后的虛擬現(xiàn)實視頻數(shù)據(jù)。
步驟904的具體實現(xiàn)方法可以結合步驟603,本實施例對此不再贅述。
步驟905,通過中央處理器將處理后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給網絡接口卡。
可選的,虛擬現(xiàn)實服務器依次將渲染出的每一個顯示行對應的處理后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給網絡接口卡;或者,虛擬現(xiàn)實服務器在依次生成m個顯示行對應的壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)后,將m個顯示行對應的壓縮后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給網絡接口卡,m通常是系統(tǒng)預設值,m為大于等于2的正整數(shù),該m個顯示行可以是同一個視頻幀中的顯示行,也可以包括多個不同的視頻幀中的顯示行。
步驟906,通過網絡接口卡按照UDP/IP協(xié)議將處理后的虛擬現(xiàn)實視頻數(shù)據(jù)封裝在IP報文中。
步驟907,通過網絡接口卡按照以太網協(xié)議將IP報文封裝在以太網報文中。
步驟908,通過網絡接口卡向虛擬現(xiàn)實設備發(fā)送以太網報文,以太網報文中攜帶有虛擬現(xiàn)實視頻數(shù)據(jù)。
綜上所述,本發(fā)明實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法,通過在虛擬現(xiàn)實服務器中增加具有數(shù)據(jù)封裝能力和網絡傳輸能力的網絡接口卡,使得虛擬服務器在生成虛擬現(xiàn)實視頻數(shù)據(jù)后,可以直接對虛擬現(xiàn)實視頻數(shù)據(jù)執(zhí)行壓縮編碼和數(shù)據(jù)封裝等數(shù)據(jù)處理,并通過網絡將處理后的虛擬現(xiàn)實視頻數(shù)據(jù)發(fā)送給虛擬現(xiàn)實設備進行播放,在通過網絡實現(xiàn)虛擬現(xiàn)實視頻數(shù)據(jù)的長距離傳輸時,不需要經過信號延長設備,避免了視頻信號編解碼,避免了信號延長設備對虛擬現(xiàn)實視頻數(shù)據(jù)進行數(shù)據(jù)處理時產生的時延,縮短了虛擬現(xiàn)實視頻數(shù)據(jù)在通過網絡進行長距離傳輸過程的時延,優(yōu)化了虛擬現(xiàn)實視頻數(shù)據(jù)通過網絡進行長距離傳輸時的傳輸過程。
本發(fā)明實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法,虛擬現(xiàn)實服務器通過中央處理器依次獲取每一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,由于中央處理器在圖形處理器生成一個顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)后,就能對該顯示行對應的虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,而不需要等待圖形處理器生成整一個視頻幀的虛擬現(xiàn)實視頻數(shù)據(jù)后才進行壓縮編碼,避免了中央處理器在等待圖形處理器生成整一個視頻幀的虛擬現(xiàn)實視頻數(shù)據(jù)過程中產生的時延,縮短了虛擬現(xiàn)實視頻數(shù)據(jù)在通過網絡進行長距離傳輸過程的時延。
本發(fā)明實施例提供的虛擬現(xiàn)實視頻數(shù)據(jù)傳輸方法,由中央處理器對虛擬現(xiàn)實視頻數(shù)據(jù)進行壓縮編碼,使得網絡接口卡可以是不具備壓縮編碼的能力的現(xiàn)有的網絡接口卡,提高了虛擬現(xiàn)實服務器對現(xiàn)有的網絡接口卡的兼容性。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。