本發(fā)明涉及全景數(shù)據(jù)播放的技術(shù)領(lǐng)域,更具體地,涉及一種基于Stage3D播放全景數(shù)據(jù)的方法及系統(tǒng)。
背景技術(shù):
全景數(shù)據(jù),包括全景視頻,已成為當(dāng)前的熱門研究課題之一。全景視頻,即720度或者360度全景視頻,它是在720度或者360度全景的技術(shù)之上發(fā)展延伸而來,將靜態(tài)的全景圖片轉(zhuǎn)化為動(dòng)態(tài)的視頻圖像,全景視頻可以在拍攝角度上下左右360度范圍內(nèi)任意觀看動(dòng)態(tài)視頻,讓用戶有一種身臨其境的感覺。在制作全景視頻時(shí)使用一組攝像機(jī)在拍攝點(diǎn)周圍同時(shí)拍攝360度(或720度)的畫面,并經(jīng)過后期的圖像拼接縫合后使之能夠在任意時(shí)刻無失真地展現(xiàn)拍攝點(diǎn)周圍畫面的視頻。
現(xiàn)有技術(shù)對全景數(shù)據(jù)是依賴Flash 3d引擎進(jìn)行播放,但是Flash 3d引擎不支持GPU硬件加速,把工作全都留給了CPU,導(dǎo)致播放性能極其低下而只能做出一些很簡單的3D模型,很難支持全景數(shù)據(jù)的播放。而通過開發(fā)的Stage3D(Stage3D,即加速3D渲染引擎)技術(shù),把龐大的3D運(yùn)算交給GPU來處理,只消耗很少的CPU就能做出復(fù)雜的3D模型,現(xiàn)有的Stage3D系統(tǒng)能夠根據(jù)輸入的用戶渲染器版本信息及用戶的CPU版本信息分別判斷出該用戶渲染器是否支持GPU功能及該用戶的CPU是否支持硬件解碼。目前的Flash 3d引擎不是為全景數(shù)據(jù)播放而量身制作的,因此,不能實(shí)現(xiàn)全部的全景數(shù)據(jù)播放,當(dāng)全景數(shù)據(jù)過大、過復(fù)雜,不僅導(dǎo)致利用Flash 3d引擎播放性能低下,甚至?xí)斐刹シ疟罎⒌膯栴};而如果全景數(shù)據(jù)太小,又會出現(xiàn)播放的畫面虛和變形的問題。如果將全景數(shù)據(jù)的3D運(yùn)算交給CPU之外的GPU進(jìn)行處理就能極大地提高全景視頻播放效率,而現(xiàn)有技術(shù)中還沒有基于GPU處理全景數(shù)據(jù)的3D運(yùn)算進(jìn)而播放全景數(shù)據(jù)的技術(shù)。
因此,提供一種基于GPU處理全景數(shù)據(jù)的3D運(yùn)算進(jìn)而播放全景數(shù)據(jù)的方法是本領(lǐng)域亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種基于Stage3D播放全景數(shù)據(jù)的方法及系統(tǒng),解決了現(xiàn)有技術(shù)中不能基于GPU處理全景數(shù)據(jù)的3D運(yùn)算進(jìn)而播放全景數(shù)據(jù)的缺點(diǎn)。
為了解決上述技術(shù)問題,本發(fā)明提出一種基于Stage3D播放全景數(shù)據(jù)的方法,包括:
在Stage3D系統(tǒng)中設(shè)置用于判斷觸發(fā)全景數(shù)據(jù)請求的具有GPU功能的渲染器版本型號庫及支持硬件解碼的CPU版本型號庫;
接收用戶發(fā)送的數(shù)據(jù)播放請求,并從所述數(shù)據(jù)播放請求中解析出用戶的渲染器版本型號及CPU版本型號;
所述用戶的渲染器版本型號在所述具有GPU功能的渲染器版本型號庫內(nèi)且所述用戶的CPU版本型號在所述支持硬件解碼的CPU版本型號庫內(nèi)時(shí),向存儲數(shù)據(jù)的服務(wù)器發(fā)送全景數(shù)據(jù)請求;
接收所述服務(wù)器反饋的全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后制作成Stage3D全景紋理矩形圖片,根據(jù)所述Stage3D全景紋理矩形圖片在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面,并將所述Stage3D全景紋理矩形圖片貼圖到所述全景數(shù)據(jù)映射球面上;
檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景數(shù)據(jù)映射球面上的位置,并獲取所述顯示視窗在所述全景數(shù)據(jù)映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示。
進(jìn)一步地,其中,接收所述服務(wù)器反饋的全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面進(jìn)行播放為:
接收所述服務(wù)器反饋的數(shù)據(jù)信息,所述數(shù)據(jù)信息包括:資源地址、全景數(shù)據(jù)播放時(shí)長、全景數(shù)據(jù)播放寬/高比值;
根據(jù)所述資源地址從所述服務(wù)器下載全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后制作成Stage3D全景紋理矩形圖片,結(jié)合所述全景數(shù)據(jù)播放時(shí)長及所述全景數(shù)據(jù)播放寬/高比值在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面,并將所述Stage3D全景紋理矩形圖片貼圖到所述全景數(shù)據(jù)映射球面上。
進(jìn)一步地,其中,根據(jù)所述資源地址從所述服務(wù)器下載全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后,結(jié)合所述全景數(shù)據(jù)播放時(shí)長及所述全景數(shù)據(jù)播放寬/高比值在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面進(jìn)行播放為:
根據(jù)所述資源地址從所述服務(wù)器下載全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后,結(jié)合所述全景數(shù)據(jù)播放時(shí)長及所述全景數(shù)據(jù)播放寬/高比值在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面;
檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景數(shù)據(jù)映射球面上的位置,并獲取所述顯示視窗在所述全景數(shù)據(jù)映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示。
進(jìn)一步地,其中,檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景數(shù)據(jù)映射球面上的位置,并獲取所述顯示視窗在所述全景數(shù)據(jù)映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示為:
檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景數(shù)據(jù)映射球面上的位置,并獲取所述顯示視窗在所述全景數(shù)據(jù)映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示;
檢測光標(biāo)的移動(dòng)方向和距離,并根據(jù)所述光標(biāo)的移動(dòng)方向和距離控制所述顯示視窗在所述全景數(shù)據(jù)映射球面上的位置移動(dòng);
將所述顯示視窗位置移動(dòng)后在所述全景映射球面上對應(yīng)的全景數(shù)據(jù)內(nèi)容顯示在所述顯示視窗中;
根據(jù)景深控制所述顯示視窗中全景數(shù)據(jù)顯示內(nèi)容的放大和縮小。
進(jìn)一步地,其中,所述用戶的渲染器版本型號在所述具有GPU功能的渲染器版本型號庫內(nèi)且所述用戶的CPU版本型號在所述支持硬件解碼的CPU版本型號庫內(nèi)時(shí),向存儲數(shù)據(jù)的服務(wù)器發(fā)送全景數(shù)據(jù)請求為:
所述用戶的渲染器版本型號不在所述具有GPU功能的渲染器版本型號庫內(nèi)或所述用戶的CPU版本型號不在所述支持硬件解碼的CPU版本型號庫內(nèi)時(shí),向存儲數(shù)據(jù)的服務(wù)器發(fā)送平面數(shù)據(jù)請求;
接收所述服務(wù)器反饋的平面數(shù)據(jù)進(jìn)行播放。
另一方面,本發(fā)明還提供一種基于Stage3D播放全景數(shù)據(jù)的系統(tǒng),包括:全景數(shù)據(jù)播放設(shè)置模塊、全景數(shù)據(jù)播放解析模塊、數(shù)據(jù)播放判定模塊及全景數(shù)據(jù)播放模塊;其中,
所述全景數(shù)據(jù)播放設(shè)置模塊,用于在Stage3D系統(tǒng)中設(shè)置用于判斷觸發(fā)全景數(shù)據(jù)請求的具有GPU功能的渲染器版本型號庫及支持硬件解碼的CPU版本型號庫;
全景數(shù)據(jù)播放解析模塊,用于在所述Stage3D系統(tǒng)中接收用戶發(fā)送的數(shù)據(jù)播放請求,并從所述數(shù)據(jù)播放請求中解析出用戶的渲染器版本型號及CPU版本型號;
數(shù)據(jù)播放判定模塊,用于所述用戶的渲染器版本型號在所述具有GPU功能的渲染器版本型號庫內(nèi)且所述用戶的CPU版本型號在所述支持硬件解碼的CPU版本型號庫內(nèi)時(shí),向存儲數(shù)據(jù)的服務(wù)器發(fā)送全景數(shù)據(jù)請求;
全景數(shù)據(jù)播放模塊,用于接收所述服務(wù)器反饋的全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后制作成Stage3D全景紋理矩形圖片,根據(jù)所述Stage3D全景紋理矩形圖片在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面,并將所述Stage3D全景紋理矩形圖片貼圖到所述全景數(shù)據(jù)映射球面上;
檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景數(shù)據(jù)映射球面上的位置,并獲取所述顯示視窗在所述全景數(shù)據(jù)映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示。
進(jìn)一步地,其中,所述全景數(shù)據(jù)播放模塊用于:
接收所述服務(wù)器反饋的數(shù)據(jù)信息,所述數(shù)據(jù)信息包括:資源地址、全景數(shù)據(jù)播放時(shí)長、全景數(shù)據(jù)播放寬/高比值;
根據(jù)所述資源地址從所述服務(wù)器下載全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后制作成Stage3D全景紋理矩形圖片,結(jié)合所述全景數(shù)據(jù)播放時(shí)長及所述全景數(shù)據(jù)播放寬/高比值在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面,并將所述Stage3D全景紋理矩形圖片貼圖到所述全景數(shù)據(jù)映射球面上。
進(jìn)一步地,其中,所述全景數(shù)據(jù)播放模塊用于:
根據(jù)所述資源地址從所述服務(wù)器下載全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后,結(jié)合所述全景數(shù)據(jù)播放時(shí)長及所述全景數(shù)據(jù)播放寬/高比值在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面;
檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景數(shù)據(jù)映射球面上的位置,并獲取所述顯示視窗在所述全景數(shù)據(jù)映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示。
進(jìn)一步地,其中,所述全景數(shù)據(jù)播放模塊用于:
檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景數(shù)據(jù)映射球面上的位置,并獲取所述顯示視窗在所述全景數(shù)據(jù)映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示;
檢測光標(biāo)的移動(dòng)方向和距離,并根據(jù)所述光標(biāo)的移動(dòng)方向和距離控制所述顯示視窗在所述全景數(shù)據(jù)映射球面上的位置移動(dòng);
將所述顯示視窗位置移動(dòng)后在所述全景映射球面上對應(yīng)的全景數(shù)據(jù)內(nèi)容顯示在所述顯示視窗中;
根據(jù)景深控制所述顯示視窗中全景數(shù)據(jù)顯示內(nèi)容的放大和縮小。
進(jìn)一步地,其中,該系統(tǒng)還包括:數(shù)據(jù)播放判定模塊及平面數(shù)據(jù)播放模塊,其中,所述數(shù)據(jù)播放判定模塊,用于:所述用戶的渲染器版本型號不在所述具有GPU功能的渲染器版本型號庫內(nèi)或所述用戶的CPU版本信息不在所述支持硬件解碼的CPU版本型號庫內(nèi)時(shí),向存儲數(shù)據(jù)的服務(wù)器發(fā)送平面數(shù)據(jù)請求;
所述平面數(shù)據(jù)播放模塊,用于:接收所述服務(wù)器反饋的平面數(shù)據(jù)進(jìn)行播放。
與現(xiàn)有技術(shù)相比,本發(fā)明的基于Stage3D播放全景數(shù)據(jù)的方法及系統(tǒng),實(shí)現(xiàn)了如下的有益效果:
(1)本發(fā)明所述的基于Stage3D播放全景數(shù)據(jù)的方法及系統(tǒng),通過獲取用戶的硬件信息,根據(jù)硬件信息判斷該用戶是否能夠使用全景數(shù)據(jù),對于符合全景數(shù)據(jù)使用條件的用戶群體返回全景數(shù)據(jù),用戶接收返回的全景數(shù)據(jù)進(jìn)行硬件解碼后播放,提升了全景數(shù)據(jù)播放的效率及準(zhǔn)確性。
(2)本發(fā)明所述的基于Stage3D播放全景數(shù)據(jù)的方法及系統(tǒng),通過獲取用戶的硬件信息,根據(jù)硬件信息判斷該用戶是否能夠使用全景數(shù)據(jù),對于符合全景數(shù)據(jù)使用條件的用戶群體返回全景數(shù)據(jù),用戶接收返回的全景數(shù)據(jù)進(jìn)行硬件解碼后播放,對于不符合全景數(shù)據(jù)使用條件的用戶群體返回平面數(shù)據(jù)進(jìn)行播放,避免了向不符合全景數(shù)據(jù)播放條件的用戶推送全景數(shù)據(jù)。
(3)本發(fā)明所述的基于Stage3D播放全景數(shù)據(jù)的方法及系統(tǒng),通過分全景數(shù)據(jù)模塊及平面數(shù)據(jù)模塊拆分播放的方法,可以減少資源的浪費(fèi),并且提升了功能模塊的可移植性。
(4)本發(fā)明所述的基于Stage3D播放全景數(shù)據(jù)的方法及系統(tǒng),還設(shè)置了通過光標(biāo)控制全景數(shù)據(jù)畫面移動(dòng)以及通過調(diào)節(jié)景深控制全景畫面縮放的功能,提升了用戶觀看全景數(shù)據(jù)的體驗(yàn)。
當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品必不特定需要同時(shí)達(dá)到以上所述的所有技術(shù)效果。
通過以下參照附圖對本發(fā)明的示例性實(shí)施例的詳細(xì)描述,本發(fā)明的其它特征及其優(yōu)點(diǎn)將會變得清楚。
附圖說明
被結(jié)合在說明書中并構(gòu)成說明書的一部分的附圖示出了本發(fā)明的實(shí)施例,并且連同其說明一起用于解釋本發(fā)明的原理。
圖1為本發(fā)明實(shí)施例1中所述的基于Stage3D播放全景數(shù)據(jù)的方法的流程示意圖;
圖2為本發(fā)明實(shí)施例2所述的基于Stage3D播放全景數(shù)據(jù)的方法的流程示意圖;
圖3為本發(fā)明實(shí)施例3所述的基于Stage3D播放全景數(shù)據(jù)的方法的流程示意圖;
圖4為本發(fā)明實(shí)施例4所述的基于Stage3D播放全景數(shù)據(jù)的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
現(xiàn)在將參照附圖來詳細(xì)描述本發(fā)明的各種示例性實(shí)施例。應(yīng)注意到:除非另外具體說明,否則在這些實(shí)施例中闡述的部件和步驟的相對布置、數(shù)字表達(dá)式和數(shù)值不限制本發(fā)明的范圍。
以下對至少一個(gè)示例性實(shí)施例的描述實(shí)際上僅僅是說明性的,決不作為對本發(fā)明及其應(yīng)用或使用的任何限制。
對于相關(guān)領(lǐng)域普通技術(shù)人員已知的技術(shù)、方法和設(shè)備可能不作詳細(xì)討論,但在適當(dāng)情況下,所述技術(shù)、方法和設(shè)備應(yīng)當(dāng)被視為說明書的一部分。
在這里示出和討論的所有例子中,任何具體值應(yīng)被解釋為僅僅是示例性的,而不是作為限制。因此,示例性實(shí)施例的其它例子可以具有不同的值。
應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步討論。
實(shí)施例1
如圖1所示,為本實(shí)施例中所述基于Stage3D播放全景數(shù)據(jù)的方法的流程示意圖。在本實(shí)施例中,先基于Stage3D判斷用戶渲染器是否具有GPU功能以及CPU是否支持硬件解碼來判定用戶是否支持全景數(shù)據(jù)播放,進(jìn)而對用戶推送全景數(shù)據(jù),避免了對不能支持全景數(shù)據(jù)播放的用戶推送全景數(shù)據(jù)造成的資源浪費(fèi)。本實(shí)施例中所述的基于Stage3D播放全景數(shù)據(jù)的方法包括以下步驟:
步驟101、在Stage3D系統(tǒng)中設(shè)置用于判斷觸發(fā)全景數(shù)據(jù)請求的具有GPU功能的渲染器版本型號庫及支持硬件解碼的CPU版本型號庫。優(yōu)選地,所述全景數(shù)據(jù)為全景廣告數(shù)據(jù)。
具有GPU功能的渲染器可以在GPU中進(jìn)行全景數(shù)據(jù)的3D運(yùn)算,只消耗很少的CPU就能做出復(fù)雜的3D模型,有利于全景數(shù)據(jù)的高效、準(zhǔn)確播放。如果用戶的CPU版本支持硬件解碼,基于Stage3D將全景數(shù)據(jù)的3D運(yùn)算交給GPU處理,避免了在CPU資源不足時(shí)不能播放全景數(shù)據(jù)的問題。
步驟102、在所述Stage3D系統(tǒng)中接收用戶發(fā)送的數(shù)據(jù)播放請求,并從所述數(shù)據(jù)播放請求中解析出用戶的渲染器版本型號及CPU版本型號。在Stage3D系統(tǒng)中可以調(diào)軟件工具包用訪問獲取CPU的版本型號。
在用戶發(fā)送的數(shù)據(jù)播放請求中包含了用戶的硬件信息,如顯卡、GPU、CPU等硬件的信息,在所述Stage3D系統(tǒng)中解析出用戶的渲染器版本型號及CPU版本型號,并判定是否符合預(yù)先設(shè)定的可支持全景數(shù)據(jù)的渲染器版本型號及CPU版本型號以判斷該用戶是否能夠支持全景數(shù)據(jù)播放。
步驟103、所述用戶的渲染器版本型號在所述具有GPU功能的渲染器版本型號庫內(nèi)且所述用戶的CPU版本型號在所述支持硬件解碼的CPU版本型號庫內(nèi)時(shí),向存儲數(shù)據(jù)的服務(wù)器發(fā)送全景數(shù)據(jù)請求。
將獲取的當(dāng)前系統(tǒng)使用的GPU和CPU版本信息,然后在預(yù)先設(shè)置的所述具有GPU功能的渲染器版本型號庫及所述支持硬件解碼的CPU版本型號庫中的渲染器版本型號及CPU版本型號進(jìn)行逐一匹配,如果匹配到相同的渲染器版本型號和CPU版本型號,則說明當(dāng)前系統(tǒng)使用的GPU和CPU版本能夠支持全景數(shù)據(jù)播放。
判定所述用戶能夠支持全景數(shù)據(jù)播放時(shí),才向存儲數(shù)據(jù)的服務(wù)器發(fā)送全景數(shù)據(jù)請求,以便所述服務(wù)器針對符合全景數(shù)據(jù)播放的用戶群體返回/推送全景類型的數(shù)據(jù)進(jìn)行播放。優(yōu)選地,所述服務(wù)器每天都會更新當(dāng)天需要推送的全景數(shù)據(jù),并推送給符合全景數(shù)據(jù)播放條件的用戶。
步驟104、接收所述服務(wù)器反饋的全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后制作成Stage3D全景紋理矩形圖片,根據(jù)所述Stage3D全景紋理矩形圖片在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面,并將所述Stage3D全景紋理矩形圖片貼圖到所述全景數(shù)據(jù)映射球面上;檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景數(shù)據(jù)映射球面上的位置,并獲取所述顯示視窗在所述全景數(shù)據(jù)映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示。
基于所述Stage3D系統(tǒng)將從服務(wù)器下載的全景數(shù)據(jù)進(jìn)行硬件解碼,并將解碼后的全景數(shù)據(jù)對應(yīng)貼合映射到全景數(shù)據(jù)球面上進(jìn)行播放,因?yàn)槿皵?shù)據(jù)是通過在拍攝點(diǎn)周圍同時(shí)拍攝360度(或720度)的畫面數(shù)據(jù),通過普通的平面數(shù)據(jù)播放形式播放全景數(shù)據(jù)得到的只能是失真的畫面,而通過球面顯示的方式才能得到正常的全景數(shù)據(jù)播放畫面。
本實(shí)施例所述的基于Stage3D播放全景數(shù)據(jù)的方法,基于Stage3D判斷用戶是否支持全景數(shù)據(jù)播放,根據(jù)判定結(jié)果向用戶推送全景數(shù)據(jù),避免了向不支持全景數(shù)據(jù)播放的用戶推送全景數(shù)據(jù),能夠?yàn)橛脩籼峁└玫娜皵?shù)據(jù),例如,為用戶提供更好的全景前貼廣告。
實(shí)施例2
如圖2所示,為本實(shí)施例中所述基于Stage3D播放全景數(shù)據(jù)的方法的流程示意圖。本實(shí)施例在實(shí)施例1的基礎(chǔ)上說明了對全景數(shù)據(jù)進(jìn)行播放的具體內(nèi)容。本實(shí)施例所述的基于Stage3D播放全景數(shù)據(jù)的方法包括如下步驟:
步驟201、在Stage3D系統(tǒng)中設(shè)置用于判斷觸發(fā)全景數(shù)據(jù)請求的具有GPU功能的渲染器版本型號庫及支持硬件解碼的CPU版本型號庫。
步驟202、在所述Stage3D系統(tǒng)中接收用戶發(fā)送的數(shù)據(jù)播放請求,從所述數(shù)據(jù)播放請求中解析出用戶的渲染器版本型號及CPU版本型號,并判斷所述用戶的渲染器版本型號是否在所述具有GPU功能的渲染器版本型號庫內(nèi)且所述用戶的CPU版本型號是否在所述支持硬件解碼的CPU版本型號庫內(nèi)。
步驟203、所述用戶的渲染器版本型號在所述具有GPU功能的渲染器版本型號庫內(nèi)且所述用戶的CPU版本型號在所述支持硬件解碼的CPU版本型號庫內(nèi)時(shí),向存儲數(shù)據(jù)的服務(wù)器發(fā)送全景數(shù)據(jù)請求。
步驟204、接收所述服務(wù)器根據(jù)所述全景數(shù)據(jù)請求反饋的數(shù)據(jù)信息,所述數(shù)據(jù)信息包括:資源地址、全景數(shù)據(jù)播放時(shí)長、全景數(shù)據(jù)播放寬/高比值。
步驟205、根據(jù)所述資源地址從所述服務(wù)器下載全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后制作成Stage3D全景紋理矩形圖片,結(jié)合所述全景數(shù)據(jù)播放時(shí)長及所述全景數(shù)據(jù)播放寬/高比值在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面,并將所述Stage3D全景紋理矩形圖片貼圖到所述全景數(shù)據(jù)映射球面上。
步驟206、檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景數(shù)據(jù)映射球面上的位置,并獲取所述顯示視窗在所述全景數(shù)據(jù)映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示。
步驟207、根據(jù)光標(biāo)的移動(dòng)控制所述顯示視窗在所述全景數(shù)據(jù)映射球面上的位置移動(dòng);將所述顯示視窗位置移動(dòng)后在所述全景映射球面上對應(yīng)的全景數(shù)據(jù)內(nèi)容顯示在所述顯示視窗中。
步驟208、根據(jù)景深控制所述顯示視窗中全景數(shù)據(jù)顯示內(nèi)容的放大和縮小。
步驟209、在所述用戶的渲染器版本型號不在所述具有GPU功能的渲染器版本型號庫內(nèi)或所述用戶的CPU版本型號不在所述支持硬件解碼的CPU版本型號庫內(nèi)時(shí),向存儲數(shù)據(jù)的服務(wù)器發(fā)送平面數(shù)據(jù)請求。
步驟210、接收所述服務(wù)器根據(jù)所述平面數(shù)據(jù)請求反饋的平面數(shù)據(jù)進(jìn)行播放。
本實(shí)施例所述的基于Stage3D播放全景數(shù)據(jù)的方法,檢測到在用戶端有有數(shù)據(jù)(如廣告數(shù)據(jù))需要展現(xiàn)時(shí),加載嵌入到Stage3D系統(tǒng)的客戶端內(nèi)的數(shù)據(jù)播放模塊,再通過進(jìn)一步判斷當(dāng)前用戶是否支持全景數(shù)據(jù)播放,并根據(jù)判斷結(jié)果從服務(wù)器下載全景數(shù)據(jù),且進(jìn)一步判斷當(dāng)前從服務(wù)器下載的數(shù)據(jù)是否為全景數(shù)據(jù),如果是全景數(shù)據(jù)則加載全景數(shù)據(jù)播放模塊播放該全景數(shù)據(jù),如果從服務(wù)器下載的數(shù)據(jù)不是全景數(shù)據(jù),則加載平面數(shù)據(jù)播放模塊進(jìn)行播放。Stage3D系統(tǒng)的客戶端通過模塊拆分的方法,可以減少用戶端CPU資源的浪費(fèi)。
實(shí)施例3
如圖3所示,為本實(shí)施例中所述的基于Stage3D播放全景數(shù)據(jù)的方法的一個(gè)應(yīng)用流程圖,包括如下步驟:
步驟301、在用戶端觸發(fā)廣告播放請求,在所述廣告播放請求中攜帶了用戶的顯卡型號、渲染器版本型號及CPU版本型號。
步驟302、在Stage3D系統(tǒng)中接收用戶端發(fā)送的廣告播放請求,解析出用戶的渲染器版本型號及CPU版本型號,并判斷所述用戶的渲染器版本型號是否在預(yù)先設(shè)定的具有GPU功能的渲染器版本型號庫內(nèi)且所述用戶的CPU版本型號是否在所述支持硬件解碼的CPU版本型號庫內(nèi)。
步驟303、判斷到所述用戶的渲染器版本型號在所述具有GPU功能的渲染器版本型號庫內(nèi)且所述用戶的及CPU版本型號在所述支持硬件解碼的CPU版本型號庫內(nèi)時(shí),向存儲數(shù)據(jù)的服務(wù)器發(fā)送全景廣告請求。
步驟304、所述服務(wù)器接收所述全景廣告請求后,向所述Stage3D系統(tǒng)反饋全景廣告信息,所述廣告信息包括:資源地址、全景廣告播放時(shí)長、全景廣告播放寬/高比值。
步驟305、所述Stage3D系統(tǒng)接收所述服務(wù)器根據(jù)所述全景廣告請求反饋的全景廣告信息。
步驟306、所述Stage3D系統(tǒng)根據(jù)所述資源地址從所述服務(wù)器下載全景廣告,并將所述全景廣告進(jìn)行硬件解碼后,結(jié)合所述全景廣告播放時(shí)長及所述全景廣告播放寬/高比值在播放器中生成對應(yīng)的全景廣告映射球面。
步驟307、檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景廣告映射球面上的位置,并獲取所述顯示視窗在所述全景廣告映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示。
步驟308、根據(jù)光標(biāo)的移動(dòng)控制所述顯示視窗在所述全景廣告映射球面上的位置移動(dòng);將所述顯示視窗位置移動(dòng)后在所述全景映射球面上對應(yīng)的全景廣告內(nèi)容顯示在所述顯示視窗中。
步驟309、根據(jù)景深控制所述顯示視窗中全景廣告顯示內(nèi)容的放大和縮小。根據(jù)景深調(diào)節(jié)所述顯示視窗與球面上對應(yīng)的全景廣告內(nèi)容區(qū)域的距離,從而使得顯示在所述顯示視窗內(nèi)的全景廣告內(nèi)容放大或縮小。
步驟310、所述用戶的渲染器版本型號不在所述具有GPU功能的渲染器版本型號庫內(nèi)或所述用戶的CPU版本型號不在所述支持硬件解碼的CPU版本型號庫內(nèi)時(shí),向存儲廣告的服務(wù)器發(fā)送平面廣告請求。
步驟311、所述服務(wù)器接收所述平面廣告請求后,向所述Stage3D系統(tǒng)反饋平面廣告數(shù)據(jù)。
步驟312、接收所述服務(wù)器根據(jù)所述平面廣告請求反饋的平面廣告數(shù)據(jù)進(jìn)行播放。
實(shí)施例4
如圖4所示,為本實(shí)施中所述基于Stage3D播放全景數(shù)據(jù)的系統(tǒng)結(jié)構(gòu)示意圖,本實(shí)施例所述的基于Stage3D播放全景數(shù)據(jù)的系統(tǒng)包括:全景數(shù)據(jù)播放設(shè)置模塊401、全景數(shù)據(jù)播放解析模塊402、數(shù)據(jù)播放判定模塊403及全景數(shù)據(jù)播放模塊404。
其中,所述全景數(shù)據(jù)播放設(shè)置模塊401與所述全景數(shù)據(jù)播放判定模塊403相藕接,用于在Stage3D系統(tǒng)中設(shè)置用于判斷觸發(fā)全景數(shù)據(jù)請求的具有GPU功能的渲染器版本型號庫及支持硬件解碼的CPU版本型號庫。
全景數(shù)據(jù)播放解析模塊402與所述數(shù)據(jù)播放判定模塊403相藕接,用于在所述Stage3D系統(tǒng)中接收用戶發(fā)送的數(shù)據(jù)播放請求,并從所述數(shù)據(jù)播放請求中解析出用戶的渲染器版本型號及CPU版本型號;
數(shù)據(jù)播放判定模塊403與所述全景數(shù)據(jù)播放設(shè)置模塊401、全景數(shù)據(jù)播放解析模塊402及全景數(shù)據(jù)播放模塊404相藕接,用于在所述用戶的渲染器版本型號在所述具有GPU功能的渲染器版本型號庫內(nèi)且所述用戶的CPU版本型號在所述支持硬件解碼的CPU版本型號庫內(nèi)時(shí),向存儲數(shù)據(jù)的服務(wù)器發(fā)送全景數(shù)據(jù)請求;
全景數(shù)據(jù)播放模塊404與所述數(shù)據(jù)播放判定模塊403相藕接,用于接收所述服務(wù)器反饋的全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后制作成Stage3D全景紋理矩形圖片,根據(jù)所述Stage3D全景紋理矩形圖片在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面,并將所述Stage3D全景紋理矩形圖片貼圖到所述全景數(shù)據(jù)映射球面上;
檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景數(shù)據(jù)映射球面上的位置,并獲取所述顯示視窗在所述全景數(shù)據(jù)映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示。
所述全景數(shù)據(jù)播放模塊404進(jìn)一步用于:
接收所述服務(wù)器反饋的數(shù)據(jù)信息,所述數(shù)據(jù)信息包括:資源地址、全景數(shù)據(jù)播放時(shí)長、全景數(shù)據(jù)播放寬/高比值;
根據(jù)所述資源地址從所述服務(wù)器下載全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后制作成Stage3D全景紋理矩形圖片,結(jié)合所述全景數(shù)據(jù)播放時(shí)長及所述全景數(shù)據(jù)播放寬/高比值在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面,并將所述Stage3D全景紋理矩形圖片貼圖到所述全景數(shù)據(jù)映射球面上。
所述全景數(shù)據(jù)播放模塊404進(jìn)一步用于:
根據(jù)所述資源地址從所述服務(wù)器下載全景數(shù)據(jù),將所述全景數(shù)據(jù)解碼后,結(jié)合所述全景數(shù)據(jù)播放時(shí)長及所述全景數(shù)據(jù)播放寬/高比值在播放器中生成對應(yīng)的全景數(shù)據(jù)映射球面;
檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景數(shù)據(jù)映射球面上的位置,并獲取所述顯示視窗在所述全景數(shù)據(jù)映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示。
所述全景數(shù)據(jù)播放模塊404進(jìn)一步用于:
檢測所述播放器中預(yù)先設(shè)置的顯示視窗在所述全景數(shù)據(jù)映射球面上的位置,并獲取所述顯示視窗在所述全景數(shù)據(jù)映射球面上對應(yīng)的內(nèi)容在所述顯示視窗中顯示;
檢測光標(biāo)的移動(dòng)方向和距離,并根據(jù)所述光標(biāo)的移動(dòng)方向和距離控制所述顯示視窗在所述全景數(shù)據(jù)映射球面上的位置移動(dòng);
將所述顯示視窗位置移動(dòng)后在所述全景映射球面上對應(yīng)的全景數(shù)據(jù)內(nèi)容顯示在所述顯示視窗中;
根據(jù)景深控制所述顯示視窗中全景視頻內(nèi)容的放大和縮小。
進(jìn)一步地,上述基于Stage3D播放全景數(shù)據(jù)的系統(tǒng)包括:全景數(shù)據(jù)播放判定模塊403及平面數(shù)據(jù)播放模塊405,其中,
所述數(shù)據(jù)播放判定模塊403還與所述平面數(shù)據(jù)播放模塊405相藕接,用于在所述用戶的渲染器版本型號不在所述具有GPU功能的渲染器版本型號庫內(nèi)或所述用戶的CPU版本型號不在所述支持硬件解碼的CPU版本型號庫內(nèi)時(shí),向存儲數(shù)據(jù)的服務(wù)器發(fā)送平面數(shù)據(jù)請求;
所述平面數(shù)據(jù)播放模塊405與所述數(shù)據(jù)播放判定模塊403相藕接,用于接收所述服務(wù)器根據(jù)所述平面數(shù)據(jù)請求反饋的平面數(shù)據(jù)進(jìn)行播放。
通過以上各個(gè)實(shí)施例可知,本發(fā)明的基于Stage3D播放全景數(shù)據(jù)的方法及系統(tǒng),存在的有益效果是:
(1)本發(fā)明所述的基于Stage3D播放全景數(shù)據(jù)的方法及系統(tǒng),通過獲取用戶的硬件信息,根據(jù)硬件信息判斷該用戶是否能夠使用全景數(shù)據(jù),對于符合全景數(shù)據(jù)使用條件的用戶群體返回全景數(shù)據(jù),用戶接收返回的全景數(shù)據(jù)進(jìn)行硬件解碼后播放,提升了全景數(shù)據(jù)播放的效率及準(zhǔn)確性。
(2)本發(fā)明所述的基于Stage3D播放全景數(shù)據(jù)的方法及系統(tǒng),通過獲取用戶的硬件信息,根據(jù)硬件信息判斷該用戶是否能夠使用全景數(shù)據(jù),對于符合全景數(shù)據(jù)使用條件的用戶群體返回全景數(shù)據(jù),用戶接收返回的全景數(shù)據(jù)進(jìn)行硬件解碼后播放,對于不符合全景數(shù)據(jù)使用條件的用戶群體返回平面數(shù)據(jù)進(jìn)行播放,避免了向不符合全景數(shù)據(jù)播放條件的用戶推送全景數(shù)據(jù)。
(3)本發(fā)明所述的基于Stage3D播放全景數(shù)據(jù)的方法及系統(tǒng),通過分全景數(shù)據(jù)模塊及平面數(shù)據(jù)模塊拆分播放的方法,可以減少資源的浪費(fèi),并且提升了功能模塊的可移植性。
(4)本發(fā)明所述的基于Stage3D播放全景數(shù)據(jù)的方法及系統(tǒng),還設(shè)置了通過光標(biāo)控制全景數(shù)據(jù)畫面移動(dòng)以及通過調(diào)節(jié)景深控制全景畫面縮放的功能,提升了用戶觀看全景數(shù)據(jù)的體驗(yàn)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、裝置、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
雖然已經(jīng)通過例子對本發(fā)明的一些特定實(shí)施例進(jìn)行了詳細(xì)說明,但是本領(lǐng)域的技術(shù)人員應(yīng)該理解,以上例子僅是為了進(jìn)行說明,而不是為了限制本發(fā)明的范圍。本領(lǐng)域的技術(shù)人員應(yīng)該理解,可在不脫離本發(fā)明的范圍和精神的情況下,對以上實(shí)施例進(jìn)行修改。本發(fā)明的范圍由所附權(quán)利要求來限定。