王培武
(四川大學計算機學院,成都 610065)
2016被看作虛擬現實技術發展元年,傳統媒體與新媒體都熱切關注,伴隨VR技術迅速發展,全景視頻為用戶提供了一種全新的,能夠在沉浸式場景中獲取更加直觀,臨場感很強的視覺體驗。全景視頻支持多角度播放,與傳統視頻內容的被動接收方式不同,觀看者可以主動探索視頻內容,增強臨場參與感,成為虛擬參與者。
為了更好的用戶體驗,保證4K分辨率基本上是全景視頻領域的最低要求,用戶通常使用VR頭戴設備進行觀看,VR頭盔一般支持3D播放模式。在傳輸由H.264/H.265編碼的4K3D全景視頻時,需要至少100Mbps的傳輸帶寬,而根據Akamai于2017年5月發布的全球《2017年第一季度互聯網/連接狀態報告》,中國大陸平均網速為7.6Mbps,顯然這對于當前的在線全景視頻播放存在很大的困難。因此,本文提出一種基于頭盔的,有效降低數據傳輸量的全景視頻播放系統方法。
本文系統是全景視頻播放系統,其中涉及視頻解碼,幀處理,幀播放等功能,具有較強的實時性要求。整個系統基于C/S架構模式,Server端完成視頻解碼,幀處理及視頻流傳輸任務,Client端負責視頻幀渲染與播放、頭盔傳感器數據上報功能。系統架構如圖1所示:

圖1 全景視頻播放系統架構
采用全視角傳輸方案進行全景視頻傳輸并播放時,用戶通過VR頭盔只會選取全景視頻幀中感興趣部分進行觀看,而未被觀看的部分不會被顯示,這樣會造成帶寬資源的浪費。利用頭戴設備所載傳感器的返回參數,計算并預測用戶所觀看的視窗部分進而切割出,丟棄未被看到的部分,只傳輸用戶觀看部分視窗。
實驗中頭戴設備使用了Oculus Rift2。Oculus Rift 2硬件包含如陀螺儀、加速度計、磁力計等微電子機械傳感器,從DK2開始,新增頭戴設備位置跟蹤器,合并傳感器融合過程,用于確定用戶頭部在真實世界中的運動方向,并能實時同步用戶視窗。通過DK2所提供的ovr_GetTrackingState可以獲取由StatusFlags描述的預期頭部姿勢和當前HMD跟蹤狀態,Rift坐標系統如圖2。頭部跟蹤數據可用于預測的特定絕對時間點,通常對應于一幀圖像將要展示在頭盔上的未來時間。

圖2 Rift坐標系統
注視點渲染技術在VR領域中被越來越多地提及,利用人類視覺系統特點,在眼睛容易聚焦的區域顯示高分辨率,在外圍區域顯示低分辨率,這樣,相對于全屏高分辨顯示就可以有效降低GPU的計算,并降低視頻流傳輸的數據量。
由于Oculus Rift2未提供用于確認注視焦點的硬件及軟件(眼球追蹤技術),因此,本文實驗假定注視焦點位于視窗中心的圓形方框。使用OpenCV獲取用戶視窗的中心圓形區域,再將用戶視窗部分的圖像質量整體降低,最后將截取的中心圓形貼回原位置。注釋點渲染后,如圖3:

圖3 用戶視窗的注視點渲染
基于頭盔顯示的紋理渲染方式通常屬于分屏立體渲染,相互獨立地為左右視野進行渲染。使用OpenGL中緩沖區對象(Buffer Object)技術,渲染全景視頻幀。OpenGL基于C/S模式,處理數據時,需要將數據從Cli?ent端(通常為內存)讀取至Server端(通常為顯卡顯存)中,引入緩沖區對象(VBO),可以只傳輸有修改的數據至Server端,引入頂點數組對象(VAO),使得設置頂點狀態更為方便,數據處理效率進一步提升。
等距正圓柱投影是目前使用較為廣泛的水平方向全景圖投影方法,球面與圓柱面相切于球面赤道位置,保持經線長度不變,將經線與緯線投影到圓柱面上,再沿圓柱面的任一母線展平。等距正圓柱投影公式為:

其中,Sm為從赤道到所求點緯度的經線弧長;r為所求點緯線圈半徑,r0為基準緯線圈半徑;m、n為經線與緯線的長度比值;P為面積變形;ω為角度的最大形變。
用戶視窗部分的渲染過程與上述全景圖的生成過程剛好相反,全景圖的渲染是將其作為紋理,渲染到柱面模型的相應位置。用戶視窗部分渲染后,如圖4。

圖4 用戶視窗渲染
本文實驗在CPU為Inter Core i7-3770@3.4Ghz,內存容量8GB,顯卡NVIDIA GeForce GTX 650環境下進行,測試視頻為3D 4096×4096pixels。相關算法使用Ubuntu Linux下QT Creator、OpenCV、OpenGL3.0、SDL2、Oculus Rift DK2及其SDK編程實現。輸入的視頻幀如圖5,Oculus Rift2觀看的用戶視窗如圖6。

圖5 輸入的全景視頻幀
如上圖所示,輸入4K 3D全景視頻,解碼后得到全景視頻幀,利用頭戴設備的返回參數,計算并預測用戶觀看的視窗部分,切割出觀看部分,保留眼睛聚焦區域的高分辨率,降低外圍區域分辨率,最后傳輸數據并渲染播放。經實驗測試,使用頭盔設備播放4K 3D全景視頻時,數據傳輸帶寬平均為2.4Mbps,幀傳輸速率平均為44fps,有效減少數據傳輸量的同時達到預期的身臨現場的觀看體驗。

圖6 輸出的用戶視窗
基于頭盔顯示設備,本文實現了一種有效降低數據傳輸量的全景視頻播放系統,在取得的實驗結果中,降低傳輸帶寬與視頻播放均有較好效果。隨著虛擬現實技術的不斷進步,尤其是眼球追蹤技術的成熟,基于頭盔顯示設備的應用,會讓用戶有更加真實,全面的觀看體驗。
[1]楊帆,宋輝,姜忠鼎.面向頭盔顯示的加密全景視頻播放系統[J].微型電腦應用,2016,32(9):1-4.
[2]呂偉龍,曾憲暉,孫亞旺.360全景視頻渲染與壓縮方法探究[J].網絡新媒體技術,2017,6(1):38-44.
[3]張萍,陳云海,劉曉玲.全景視頻處理技術分析[J].廣東通信技術,2017,2(3):11-13.
[4]江軍,李玥慶.虛擬現實的交互方式分析[J].集成電路應用,2016,33(12):84-86.
[5]肖源源,王子牛.基于VC++的OpenGL紋理映射技術的研究與實現[J].貴州大學學報,2008(02):158-160.