一種全景視頻播放方法及播放器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻播放領(lǐng)域,尤其涉及一種全景視頻播放方法及播放器。
【背景技術(shù)】
[0002]隨著近年來視頻拍攝技術(shù)的發(fā)展,全景圖片、全景視頻已經(jīng)慢慢走入大眾視野,全景視頻是指用全景相機(jī)或2-6個相機(jī)組成的相機(jī)組隊同一空間進(jìn)行拍攝,使得拍攝場景能覆蓋整個空間場景,拍攝出來的視頻具有360度視角。
[0003]該種視頻在傳統(tǒng)PC上播放時,將360°視頻以平面窗口形式展現(xiàn)給用戶看,雖然視角很大,但是感受不到身臨其境的感覺。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提供一種視頻播放方法及視頻播放器,應(yīng)用于頭戴顯示設(shè)備上,用一種全新的方式播放360°全景視頻,讓用戶感受身臨其境的感覺。
[0005]為了實現(xiàn)上述發(fā)明目的,本發(fā)明提供了一種全景視頻播放方法,應(yīng)用于頭戴顯示設(shè)備上,包括:對全景視頻文件進(jìn)行音視頻分離和解碼,得到二維視頻幀圖像序列和音頻數(shù)據(jù);根據(jù)預(yù)先建立的二維視頻幀圖像的點坐標(biāo)和預(yù)先設(shè)定的三維幾何模型的點坐標(biāo)的映射關(guān)系,將所述二維視頻幀圖像序列作為紋理,依次逐幀映射到預(yù)先設(shè)定的三維幾何模型上;根據(jù)預(yù)設(shè)視點位置或經(jīng)用戶調(diào)整后的視點位置,實時計算顯示到窗口的圖像范圍,并同步輸出音頻數(shù)據(jù)。
[0006]其中,所述視點位置包括觀察點位置和觀察方向。
[0007]優(yōu)選的,所述預(yù)先設(shè)定的三維幾何模型包括球模型、橢球型、圓柱體、圓錐體、立方體中的一種。
[0008]其中,當(dāng)預(yù)設(shè)的三維幾何模型為球模型時,二維視頻幀圖像的點坐標(biāo)和預(yù)先設(shè)定的三維幾何模型的點坐標(biāo)的映射關(guān)系為:
[0009]P (X,,y,,z,)
[0010]P (x, y)
[0011]X= (1.0+arctan (y,/x,) / π ) *0.5
[0012]y = (1.0—arcsin (z,) *2.0/π ) *0.5
[0013]其中,p(x',y',z')為三幾何模型上的三維坐標(biāo),p (x, y)為二維視頻幀圖像上的二維坐標(biāo)。
[0014]優(yōu)選的,所述預(yù)先建立的二維視頻幀圖像的點坐標(biāo)和預(yù)先設(shè)定的三維幾何模型的點坐標(biāo)的映射關(guān)系,其建立過程包括:對三維幾何模型表面進(jìn)行三角形劃分,記錄每個三角面的頂點及頂點三維坐標(biāo);根據(jù)三維幾何模型類型及所述頂點三維坐標(biāo),計算對應(yīng)頂點在視頻幀圖像上的二維坐標(biāo);記錄每個三角面的頂點序號、每個頂點的三維坐標(biāo)和二維坐標(biāo),建立映射關(guān)系。
[0015]其中,當(dāng)所述三維幾何模型為球模型時,所述對三維幾何模型表面進(jìn)行三角形劃分,具體為:對球模型進(jìn)行表面坐標(biāo)點米樣,根據(jù)米樣點對球模型表面進(jìn)行三角形劃分。
[0016]優(yōu)選的,所述方法還包括:檢測球模型上的三維坐標(biāo)點在轉(zhuǎn)換為視頻幀圖像上的二維左邊點過程中,已劃分好的三角形是否被切分,若是,則對被切分的三角形部分進(jìn)行新的三角形劃分。
[0017]其中,當(dāng)所述三維幾何模型為球模型時:設(shè)二維視頻幀圖像的x、y坐標(biāo)取值為[0,I];設(shè)球模型球心位于原點,半徑為I ;在建立映射關(guān)系時,保證二維視頻幀圖像二維坐標(biāo)點[0.5,α ]和[0.5,l-α ]在對應(yīng)的三維模型上被采樣到,同時保證球模型表面的三維坐標(biāo)點(O, O, I)和(O, 0,-1)被采樣到,其中α取值范圍為0.65?0.95。
[0018]其中,當(dāng)所述全景視頻播放方法應(yīng)用于雙目頭戴顯示設(shè)備上時,所述全景視頻播放方法還包括:對顯示到窗口的圖像進(jìn)行左右分屏處理。
[0019]相應(yīng)的,本發(fā)明還提供一種全景視頻播放器,安裝于頭戴顯示設(shè)備上,包括:
[0020]存儲模塊,用于預(yù)先建立的二維視頻幀圖像的點坐標(biāo)和預(yù)先設(shè)定的三維幾何模型的點坐標(biāo)的映射關(guān)系維幾何模型的點坐標(biāo)的映射關(guān)系;
[0021]解碼模塊,用于對全景視頻文件進(jìn)行音視頻分離和解碼,得到二維視頻幀圖像序列和音頻數(shù)據(jù);
[0022]映射模塊,用于根據(jù)所述存儲模塊中存儲的映射關(guān)系,將所述二維視頻幀圖像序列作為紋理,依次逐幀映射到預(yù)先設(shè)定的三維幾何模型上;
[0023]視窗范圍調(diào)整模塊,用于根據(jù)預(yù)設(shè)視點位置或經(jīng)用戶調(diào)整后的視點位置,實時計算并調(diào)整顯示到窗口的圖像范圍;
[0024]音頻輸出模塊,用于在映射模塊映射紋理的同時,同步輸出音頻數(shù)據(jù)。
[0025]其中,當(dāng)所述全景視頻播放器安裝于雙目頭戴顯示設(shè)備上時,所述播放器還包括分屏模塊,用于對顯示到窗口的圖像進(jìn)行左右分屏處理。
[0026]本發(fā)明能解決全景視頻在頭戴顯示設(shè)備上播放的問題,讓用戶體驗真正的360度視頻,而不是在平面視角去體驗,本發(fā)明視頻播放方法及播放器,能為用戶構(gòu)建一個包圍空間,將全景視頻幀圖像作為紋理360度映射于包圍空間,用戶戴上頭戴顯示設(shè)備,感覺上處于包圍空間內(nèi)部,可通過旋轉(zhuǎn)頭部等方式切換觀看角度,真正感受全景視頻帶來的魅力。
【附圖說明】
[0027]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖:
[0028]圖1為本發(fā)明全景視頻播放方法一種較佳實施方式的流程示意圖;
[0029]圖2為本發(fā)明實施例中,球模型三角劃分采樣結(jié)果示意圖;
[0030]圖3為圖2球模型剖線及示例三角形示意圖;
[0031]圖4為圖3展開后示例三角形被分離示意圖;
[0032]圖5為圖3展開后,示例三角形頂點錯誤的組合示意圖;
[0033]圖6為圖3展開后,示例三角形頂點處理后的三角形劃分示意圖;
[0034]圖7為本發(fā)明全景視頻播放器一種較佳實施方式的結(jié)構(gòu)示意圖;
[0035]圖8為本發(fā)明全景視頻播放器另一種較佳實施方式的結(jié)構(gòu)示意圖。
【具體實施方式】
[0036]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0037]本發(fā)明涉及全景視頻文件的播放方法,所述的全景視頻文件可以是通過全景相機(jī)拍攝而成;也可以是采用η個(通常采用2?6個)攝像機(jī)組成的攝像機(jī)組對同一空間進(jìn)行拍攝,使得拍攝場景能覆蓋整個空間場景,然后對各相攝像機(jī)拍攝的視頻幀進(jìn)行一系列處理,如畸變處理、重疊剪裁處理等,使相鄰攝像機(jī)拍攝的視頻幀能很好的拼接在一起并覆蓋整個空間場景。
[0038]參見圖1,為本發(fā)明全景視頻播放方法一種較佳實施方式的流程示意圖,本實施例全景視頻播放方法,應(yīng)用于頭戴顯示設(shè)備上,包括如下步驟:
[0039]SlOl:對全景視頻文件進(jìn)行音視頻分離和解碼,得到二維視頻幀圖像序列和音頻數(shù)據(jù);
[0040]S102:根據(jù)預(yù)先建立的二維視頻幀圖像的點坐標(biāo)和預(yù)先設(shè)定的三維幾何模型的點坐標(biāo)的映射關(guān)系,將所述二維視頻幀圖像序列作為紋理,依次逐幀映射到預(yù)先設(shè)定的三維幾何模型上。所述預(yù)先設(shè)定的三維幾何模型包括球模型、橢球型、圓柱體、圓錐體、立方體中的一種。
[0041]S103:根據(jù)預(yù)設(shè)視點位置或經(jīng)用戶調(diào)整后的視點位置,實時計算顯示到窗口的圖像范圍,并同步輸出音頻數(shù)據(jù)。根據(jù)視點位置計算顯示到窗口的圖像范圍,具體為調(diào)用openGL中的glLookAt函數(shù)進(jìn)行,其計算過程中需結(jié)合三維幾何模型的中心位置進(jìn)行,一般三維幾何模型中心位置只要模型設(shè)定好,中心位置隨即固定,因此變量只有視點位置這一參數(shù)。
[0042]所述視點位置包括觀察點位置和觀察方向,在本發(fā)明實施中,會預(yù)先設(shè)置一個初始視點位置,如果用戶不進(jìn)行調(diào)整,則根據(jù)初始視點位置計算顯示到窗口的圖像范圍;用戶如果覺得視點過近或過遠(yuǎn),可以通過頭戴顯示設(shè)備所支持的用戶指令,對視點位置進(jìn)行調(diào)整。所述用戶指令可以包括手勢指令、觸摸指令、頭部擺動指令、語音指令中的一種或多種。其中頭部擺動指令可以通過頭戴顯示設(shè)備內(nèi)置傳感器采集頭部擺動數(shù)據(jù),進(jìn)而轉(zhuǎn)換為視點位置調(diào)整指令,特別是觀察方向,用頭部轉(zhuǎn)動來控制,會比較符合用戶使用習(xí)慣。
[0043]在步驟S102中所提及的“預(yù)先建立的二維視頻幀圖像的點坐標(biāo)和預(yù)先設(shè)定的三維幾何模型的點坐標(biāo)的映射關(guān)系”,其建立過程包括:
[0044]A:對三維幾何模型表面進(jìn)行三角形劃分,記錄每個三角面的頂點及頂點三維坐標(biāo);
[0045]B:根據(jù)三維幾何模型類型及所述頂點三維坐標(biāo),計算對應(yīng)頂點在視頻幀圖像上的二維坐標(biāo);
[0046]C:記錄每個三角面的頂點序號、每個頂點的三維坐標(biāo)和二維坐標(biāo),建立映射關(guān)系。
[0047]值得注意的是,三角劃分方式有多種方法,在立方體這種由平面組成的三維模型中,三角劃分以立方體頂點為三角形頂點即可;而在包含曲面的三維模型中(如球模型),由于三維紋理的組織方式是用大量的小三角面模擬曲面紋理,三角面越多,包含曲面的三維模型精度越高,因此在顯示時,對應(yīng)的顯示三角面越多,越容易還原用來表征三維場景的三維模型,進(jìn)而失真度越低。
[0048]過程B中,相當(dāng)于將三維幾何模型表面沿一剖線剖開,進(jìn)行局部拉伸等處理方式,展開成為一個平面二維圖像。
[0049]本發(fā)明實施例全景視頻播放方法應(yīng)用于雙目頭戴顯示設(shè)備上時,所述全景視頻播放方法還包括:對顯示到窗口的圖像進(jìn)行左右分屏處理,使得用戶使用雙目頭戴顯示設(shè)備時,左右眼同時看見同樣的畫面。
[0050]下面以三維幾何模型為球模型為例,詳細(xì)說明如何為全景視頻文件建立基于球模型的映射關(guān)系。
[0051]首先需要對球模型進(jìn)行表面坐標(biāo)點采樣,根據(jù)采