谷歌等角立方投影技術解決帶寬限制,高質量VR直播有望了
立體視頻的數據流會以幾何倍數不斷放大對數據的要求,因此讓 VR 視頻進入商用的最核心關鍵就是提升帶寬。
自古以來測繪師的奮斗目標就是,繪制出能夠精準映射現實世界的地圖。而這門偉大藝術所面臨的核心挑戰在于,如何在平面的紙張和屏幕上精準的展現弧形完全的地球。在過去的幾個世紀中,人類智慧的花火碰撞出了諸多卓有成效的方法,但至今仍沒有出現被大部分人類公認的一個最佳答案,因為每種方法都是權衡預期用途的產物,只能解決某種情境需求而已。
以 Google Maps 為代表的各種新型地圖服務以及 VR 視頻的豐富應用,依然在尋找如何在 2D 屏幕上提供精準且富有意義的弧形 3D 世界的的方法,即使在現在也是不小的挑戰。
傳統繪圖技術必須要解決如何在 2D 平面上映射現實世界的根本挑戰同時,視頻流媒體也面臨前期制圖者不會存在的煩惱————如何更高效的利用帶寬。高質量視頻流的顯示效果極大程度上受到網絡帶寬的限制,尤其對于移動網絡來說。
傳統頻流讓我們通過小窗口去觀察世界,而 VR 視頻流必須要從球狀世界中渲染弧形圖像,必然對帶寬提出了更嚴苛的要求。立體視頻的數據流會以幾何倍數不斷放大對數據的要求,因此讓 VR 視頻進入商用的最核心關鍵就是提升帶寬。
鑒于這些技術帶來的各種優勢,Google 團隊已經考慮應用到 YouTube 的內容上。而且 EACs 還能延伸擴展至其他領域,因此在這里我們非常期盼這項技術的更多應用。
等距柱狀投影圖(Equirectangular Projection)
對于普通用戶來說地球最熟悉的呈現方式,就是用經度和緯度劃分而成的矩形空間,而這也被稱之為等距柱狀投影圖(Equirectangular Projection)。
Tissot Indicatrix的等距柱狀投影圖
其次,這種視頻傳輸必然存在非常高的失真,現有的視頻壓縮技術很難完全駕馭。綜合以上兩點問題表明球面視頻投影的根本挑戰在于,在球狀屏幕上均勻分布視頻像素。
傳統的立方體貼圖(Cube Maps):
在游戲行業中還廣泛應用一種升級版等距柱狀投影圖,那就是立方體貼圖。這個概念非常的簡單:將球形變形成為立方體,然后展開立方體的六個面然后平鋪。
游戲行業目前最直觀最簡單的做法就是放射型投影(Radial Projection),在一個立方體中嵌入球體,然后將球體表面的圖像向外投影到立方體表面。
立方體貼圖的效果要明顯優于等距柱狀投影圖,但是在像素密度上依然會導致根本性變動。這個問題是由于立方體的中心位置距離球體最近,但是立方體的邊角離球體則比較遠。
正如上方圖片中所展示的橫截面,這些射線都以相同的角度從圓中心向外射出,但是投影到立方體上間隔距離則出現了偏差。這樣所導致的結果是,相比較中心位置邊緣部分會獲得更多的視頻像素,因為在立方體邊緣上藍色射線要比紅色射線具備更多的像素。而且在完整的三維情況下,這個問題會更加明顯。
Equi-Angular Cubemap(EAC):
通過更改提取視頻像素樣本的位置,糾正這種變形。
EAC 解決方案在 2D 空間中不失為精密算法,但是擴展到 3D 空間依然會存在偏差,只能形成接近于等角度像素分布的空間,但少量的失真已經非常接近于完美狀態。
均勻性比較
在飽和度圖譜上通過增加視頻的分辨率能夠調整整體顏色表現。但是對于那些飽和度圖譜存在巨大差異的投影,提升分辨率固然增加了中心區域的綠色范圍,但是同時也增加了被浪費的像素資源。因此,最理想的投影是色彩均勻的飽和度圖譜,這樣就能通過提升分辨率使其變成均勻的綠色。
飽和度極大程度上取決于圖像的尺寸和輸出設備的分辨率。選擇不同分辨率會導致飽和度圖譜偏綠或者偏黃。下面的飽和度圖譜來自一個具體的案例研究,能夠最大限度的提高飽和度變化。
等距柱狀投影圖(左);標準立方體貼圖(中);Equi-Angular Cubemap (右)
毫不奇怪的是,等距柱狀投影圖在南北極是藍色的(浪費像素,太多的視頻像素)的,而其他部分則都是桔色的(糟糕的視頻質量,太少的視頻像素)。
作為比較,標準的立方體貼圖將最佳綠色區域從南北極移動到中間位置。南北極的浪費的藍色區域也已經消失了。另一方面,立方體貼圖的邊緣部分要比中心區域要更優秀。更為重要的是,色彩的變化主要集中在赤道附近,而且這些圓形表面具備比等距柱狀投影圖更糟糕的質量。
最后 EAC 投影的保護度明顯要比其他兩個更加均勻,而且赤道區域明顯可以進一步提高。這種均勻性能夠最大化的利用帶寬,從而能夠根據當前設備所使用的網絡,來選擇傳輸最佳的像素密度。
實踐才是最佳的檢驗
最可怕的是細節:
在前文的描述中基本上介紹了 EAC 投影的工作原理,但是還需要解決立方體的六個面在視頻矩形邊界和實際算法中的難題。立方體表面的一個點方程投影到視頻像素采樣是非常明確的。
類似的操作需要在立方體的每個面上進行。
現在,所有六套【0,1】紋理坐標都需要包裹在一個單獨的視頻紋理中。如果視頻分辨率和尺寸受到硬件或者流媒體傳輸的限制,那么這些布局是可以不是固定的,而且它們有權利自己進行分析。
目前有很多方法將立方體的六個面整合成為一段視頻矩形。此外,在組合過程中可能會導致不相連的面碰在一起,這可能在渲染過程中進行視頻編碼和像素插值(Pixel Interpolation)操作的時候出現問題。
在游戲領域中所使用的紋理地圖集也存在相似的問題,目前常見的解決手段是在不連續面處增加填充物。一旦選擇部署 EAC 概念,那么必然意味著需要在這些細節上做出取舍。
對于那些熟悉 OpenGL 的用戶來說,完全可以通過立方體映射紋理和片段著色器來計算出最終的紋理外觀。如果你對此感興趣,那么就當作是給讀者的一次練習吧。
對于 VR 來說圖像質量代表著很多含義,而 EAS 也是當前帶寬束縛下平衡精準投影的重要突破。鑒于目前等距柱狀投影圖和傳統立方體貼圖方案所面臨的挑戰,很明顯 Equi-Angular Cubemaps 提供了更優秀的結果和更高效的資源利用。
我們堅信通過深入了解 EAC 投影,那么用戶在較窄的帶寬網絡環境中也能訪問 YouTube 上的高質量視頻直播。未來,我們非常期待能夠看到這項投影技術運用到其他方面。
【編者按】:本文轉載自雷鋒網;作者:蕾娜塔•薩洛
最后,記得關注微信公眾號:鎂客網(im2maker),更多干貨在等你!
硬科技產業媒體
關注技術驅動創新
