因為工作原因,筆者有幸提前拿到了大朋的工程樣機做研究。同為一體機產品,自然而然地就想到把它與今年5月發布Oculus Go對比作一番技術分析。近日大朋DPVR發布了巨幕影院新品的技術創新思路和參數,這時對照Oculus Go產品參數并配合實際上手體驗,筆者得到了如下結論:大朋在看似孱弱的國產芯片基礎上,做出了能媲美,甚至在觀影上更勝Oculus Go一籌的體驗。 筆者相信數年之內,這款產品都會是國內VR頭顯研究的經典產品。在接下來的文章,筆者將會從VR產品的趨勢,技術創新和優化等方面,從事實和證據出發,客觀地為大家解析大朋DPVR新品 - 全景聲巨幕影院。
VR娛樂正在發生變化:游戲向左,影視向右
今年以來,VR界的焦點再次從PC VR轉到了一體機VR。今年業界領先的Oculus推出了Oculus Go; HTC Vive也推出了Vive Focus高端一體機。換個角度來看,也佐證了這一變化:這兩個品牌自從2016年推出Rift和Vive之后并沒有推出真正意義上的第二代PC VR。 (HTC高達1萬多售價的Vive Pro曲高和寡,并沒有什么革命性的參數升級或者突破,也沒有什么銷量,并不能稱為第二代的PCVR) 。
轉型的原因是顯而易見的,其中Oculus轉向VR一體機的原因在去年和今年的Facebook 8甚至Google I/O大會上都有提到:不管Oculus 平臺還是DayDream平臺,用戶把幾乎80%的時間用在了觀影上。
圖一 來自2018 Facebook8
高達83%的觀影時間占比,真實地代表了消費者的核心訴求。而近兩年來甚囂塵上的VR游戲,從日活及游戲本身內容體驗來看,很可能只是一個較小圈子里硬核玩家的自嗨。因為在現有階段,VR整個產業鏈和技術儲備還不足以滿足這幫挑剔的硬核玩家,而游戲公司也不能從VR游戲的制作中掙到錢(SteamVR平臺上2600款PC VR游戲,即使是排名前10的頭部游戲,也不見得能賺到錢),基本上形成了VR游戲開發商看用戶數決定開發,用戶看游戲體驗再買游戲的“雞生蛋,蛋生雞“ 惡性循環。
基于上述背景,國內的VR一體機廠商迅速意識到了這一問題,并且競爭也迅速轉入白熱化的狀態。為趕時間,小米選擇貼牌了美國頂級技術公司Oculus GO產品,正在這時,VR界老兵大朋VR也攜新品 “全景聲巨幕影院”殺入戰局。在這值得一提的是,大朋VR不管是最高端的支持360°Room-Scale范圍的基于紅外激光定位的Polaris,還是2年前就銷往國內外的一體機M2,都基于大朋的自有技術:從算法理論,硬件制造,頭盔固件,FPGA,到Mobile VR SDK,再到開發工具,都是大朋“攻城獅”們用一行行代碼壘出來的,可以說是代表了中國VR水平的廠商之一。
現有市場上VR一體機多基于美國高通或韓國三星的芯片,大朋最早的一體機M2也不例外,使用的也是三星芯片。但是這次有點不一樣。在今天“聲援”國產芯片的大背景下,早在幾年前,大朋就非常大膽地提前選定了國內全志的VR9。 大朋曾向全志建議把ATW等VR算法操作從GPU中釋放出來,打造專有硬件模塊提高效率。4年磨一劍,現在全志終于為全球VR市場發布了第一款專用芯片VR9,定位非常犀利,就是給用戶提供極致的VR影音體驗。尺有所短寸有所長,VR9的影音解碼是強項,但以此就犧牲了游戲GPU能力。魚與熊掌不可兼得,誰說不是呢。
圖二 VR9框架圖
在VR9國產的芯片設計的基礎上,大朋開始底到高對產品進行優化。下面的核心技術分析摘自大朋DPVR官方解釋,我引用過來分享給大家,看完不保證你對VR的認識產生質的變化,但是滿滿干貨,起碼對大家挑選自己的VR產品,會有重要的參考意義。
VR流水線:從渲染到人眼
要想真正了解VR技術的本質,得先從VR世界中一個物體如何被渲染并最終進入人眼的過程講起。
圖三: VR物體進入用戶眼中的歷程(流水線)
VR系統本質上是一個異構計算系統,內部的CPU, GPU,Display等硬件模塊一直協同并行工作。VR世界中的每一個物體從第一個模塊開始,在整個流水線上一步步推進,最終進入用戶眼中,如何提高流水線的每一步的效率和并行度是VR系統高效運轉的關鍵。
- 巨幕影院渲染算法優化 -
設計時受到功耗和芯片面積的限制,移動端GPU性能參數,不管是FLOP還是內存帶寬都大大低于同級別的PC GPU,比如Nvidia的PC端GPU GTX 650和移動端GPU Tegra K1,雖然都來自于Kepler 架構,出現的時間幾乎相同,但前者的內存帶寬是80G/s,后者的只有18G/s。對于用戶來說,這個差別意味著移動端的VR應用和實現不可能采用和PC系統一樣的方法,而對于VR SDK的提供商來說,只能發揮“螺絲肚里做道場”的精神,想辦法提升移動平臺上GPU的利用率。在這個背景下,能夠擠掉CPU和GPU之間泡沫,提高兩者運行并行度的Adaptive Queue Ahead技術應運而生。
以前的VR世界中,CPU總是在VSync(垂直同步)到來才開始下達渲染命令給GPU(如下圖),對于較重的GPU任務,很可能無法在當前VSync剩余時間中完成,后果就是應用的FPS(Frame Per Second,幀率)下降,最終用戶體驗到應用或者游戲卡頓,顯示“鬼影”以及眩暈。
圖四 :不帶Queue Ahead的渲染
Oculus最早在PC端的Rift上提出所謂的Adaptive Queue Ahead技術,CPU不用傻傻的等待Vsync的到來,而是通過預測,在VSync到來之前幾毫秒內開始下達渲染指令給GPU,讓GPU有更多的時間執行任務,有效提高VR應用的FPS,產生更好的用戶體驗。
圖五:帶Queue Ahead之后的渲染
大朋第一次把來自PC VR端的技術引入到VR一體機的世界,讓以前運行卡頓的應用流暢起來,還給用戶一個平滑,沉浸和畫面精致的VR世界。不過,考慮到PC平臺和一體機平臺之間的計算能力差異,但這一個優化還遠遠不夠,于是大朋又通過叫“Hidden Mesh”的技術進一步提高GPU的渲染效率。
在VR 頭盔的光學視場中,由于鏡杯結構和人眼特點,圖像中某些區域人眼是無法看到的,在VR圖像渲染中被稱為Hidden Area(如下圖中紅色三角覆蓋的地方,人眼其實無法看到)。
圖六: Hidden Mesh技術
大朋巨幕影院的圖形渲染中巧妙的利用了這點,通過利用特殊繪制的Hidden Mesh(隱藏網格),能有效降低GPU的渲染工作量。CPU,GPU并行度提高了,GPU渲染效率也提高了,又進了了一步。懷著好奇心,筆者進一步分析了Oculus Go的系統,也許出于其他的考慮,發現它并沒有采用Hidden Mesh。下圖紅框是Oculus Go Home中用戶能夠看到的部分,紅框之外圓圈之內的內容用戶通過透鏡和鏡杯并不能看到。
接下來要做的,還需要有效減少用戶佩戴時的眩暈感。人類的身體并非是天生為適應VR而設計的。通過VR設備對感官進行人工刺激,我們正在破壞生物機制的運作,這些機制經歷了數億年時間在自然環境中演變而來。我們也向大腦提供與現實體驗不完全一致的信息。在某些情況下,我們的身體可能會適應新的刺激。但在一些情況下,我們的身體會產生眩暈和惡心等癥狀,部分原因是大腦比平常更高速地運轉,以理解這類刺激。已知的產生眩暈的原因除了顯示分辨率/刷新率不足,前庭和視覺系統沖突,虛擬世界中比例失真等,Motion-To- Photons延時過大也是其中的元兇。
Motion-To-Photons延時指的是在運行VR場景的情況下,從用戶的頭部移動開始,一直到這一信號通過VR頭盔輸出的光學信號映射到人眼所需的時間。一般認為,這一延時大于20毫秒會導致用戶體驗到較為明顯的眩暈。
圖七:Motion-To-Phontons
而現有市面上的VR一體機無一例外都是基于Android系統。為了提高手機和平板電腦上顯示的平滑性,傳統的Android系統都是采用了雙顯示緩沖或者三顯示緩沖。但是,這個機制讓VR應用無法知道指定的圖像什么時候能夠顯示在頭盔屏幕上,加大了VR一體機的Motion-To-Phonton延時,讓用戶體驗到更多的眩暈。大朋做了獨有的硬件結構和算法優化,讓Front Buffer Rendering(前屏渲染)成為可能:流水線中只采用了一個顯示緩沖,最大程度上減少了Motion-To-Phonton延時,提供給用戶更好的視覺體驗。
圖八:Front Buffer Rendering
- 顯示優化 -
除了渲染性能,顯示清晰度一直是判斷VR頭盔優劣的另外一個重要指標,不過,沒有所謂顯示優化的“銀彈”能一招制敵,清晰度的提升來自于各個模塊的綜合效果,而大朋在每一個部分都做了不斷的迭代和改進,從而帶來了出色的效果。
首先,GPU渲染出來的畫面得清晰。但是,計算機渲染的場景從三維空間的角度看是連續的,經過光柵化之后最終顯示在屏幕上的二維的圖像本身卻是離散的,這導致非完全垂直或者非完全水平的邊上出現鋸齒。
圖九:SSAA/MSAA減輕鋸齒
抗鋸齒最直接的方法是SSAA(Super Sampling Anti Alias)和MSAA。具體的思想都是先把物體渲染到比屏幕分辨率大(比如4倍)的緩沖區中,然后再降采樣到和屏幕分辨率一樣的顯示緩沖區中最后輸出顯示,這樣更多的信息被保留,而圖像物體邊緣的顏色也因為混合了不同顏色采樣點而消除或者減輕了鋸齒。在大朋巨幕影院的圖形渲染實現中,采用了SSAA和MSAA來抗鋸齒。
不過,事情好像還沒有完,VR用戶常常會抱怨圖片或者文字閃爍。為什么我們在PC或者手機上看不到閃爍而在VR頭盔中容易看到?這主要是用戶改變了VR世界中離物體的距離,圖像或者文字本身縮放造成的,再加上透鏡本身的放大作用,用戶就會觀察到閃爍。
大朋采用了MipMap技術來防止文字和圖片的閃爍。MipMap是指根據距觀看者遠近距離的不同,以不同的分辨率將單一的材質貼圖以多重圖像的形式表現出來:尺寸最大的圖像放在前面顯著的位置,而相對較小的圖像則后退到背景區域。每一個不同的尺寸等級定義成一個Mipmap水平。
圖十: Mipmap防止閃爍
這樣,每次渲染的時候系統會找出相對當前場景最適合的圖像,做最小的縮放操作或者根本無需縮放,讓圖像信息最大程度的保真。
- 70HZ顯示刷新率 -
和Oculus Go一樣,大朋采用了快速響應fast-LCD 屏幕,區別在于,Oculus Go缺省的刷新率是60HZ(某些特殊情況可以到72HZ),而大朋的刷新率則一直是70HZ。
Fast-LCD屏幕上的像素點在每個Vsync過程中并不是完全點亮,屏幕的余輝(Persistence)大概在1-2ms。假設屏幕的余暉是1ms,對于60HZ來說,就是6.25%的時間屏幕上像素點是亮的,而對于70hz刷新率來說,就有7%的時間是亮的,大朋巨幕影院用戶會感覺VR世界更亮。同時,人眼工作在一個更高刷新率的模式,較低刷新率的VR頭盔會讓用戶感到閃爍。
- 顯示芯片中的異步時間扭曲 -
在一個清晰,高刷新率的平穩世界中,常見的VR眩暈依然還有嗎?有可能。帶上頭盔的用戶使用過程中不停的轉動,圖像渲染時采用的姿態信息和圖像上屏顯示時的姿態可能完全不一樣,用戶一樣會暈。
怎么辦?解決之道是在圖像幀掃描到顯示器之前進行再一次的調整:根據最新的預測姿態更新圖像,這被稱為Time Warping(時間扭曲)或者Reprojection(再投影)。如果在實現中渲染的線程和做扭曲的線程是不同線程的話,又被稱為Asynchronous Time Warping(異步時間扭曲)。
一般而言,VR計算過程中重要的環節,異步時間扭曲(包括畸變矯正和色散矯正)在GPU中完成。
圖十一: 傳統的ATW
但是,由于VR游戲或者應用會在渲染環節占用大量的GPU資源和計算能力,會造成GPU不能及時完成以上任務,帶來較差的用戶體驗,這在移動平臺上尤甚。大朋巨幕影院中第一次創造性的把時間扭曲/畸變矯正/色散等處理放在了獨立的顯示芯片中完成,減少了GPU負載,釋放了GPU資源,有效提高了系統性能,也降低了系統功耗。別小看這一步優化,憑借這個,大朋能夠在系統功耗上一下子拉開和同類產品的差距,這將在后面進行進一步解釋。
圖十二: 顯示芯片中的ATW
- 圖像后處理機制 -
在手機的世界中,同樣拍攝的照片,加上不同的濾鏡,馬上鳳姐變鳳凰,老太變少女,在VR的世界中更是如此。而所謂的濾鏡,說白了就是圖像后處理。大朋巨幕影院系統中的圖像后處理系統被稱為SmartColor,能夠帶來更鮮艷的色彩和更好的色溫控制,包括如下的功能:
(1) 自適應的細節和邊緣增強;
(2) 自適應的顏色增強;
(3) 自適應的對比度增強和色調矯正。
體驗一下Oculus Go上和大朋上實拍同一張圖片,大朋的色彩要更加的自然,臉部層次更豐富,頭發處的細節顯示更加細膩。Oculus Go有明顯光暈。
圖十三: 圖像后處理比較(右為大朋巨幕影院)
- 透鏡設計 -
VR頭盔上的透鏡本質上是一個放大鏡,也是VR中很多光學缺陷比如紗窗效應,雜散光等的“元兇”或者 “ 幫兇 ”。在顯示屏幕分辨率大致相同的情況下,VR鏡片看點有兩個:透鏡中心到透鏡邊緣的清晰度下降快慢,菲涅爾雜散光和拖影。
比如,下圖被美國軍方用來檢測鏡片各區域的清晰度。把圖放入頭盔中,你能清晰看到圖像中間水平和垂直紅線的最大刻度是多少?
圖十四:清晰度比較基準圖
答案揭曉,通過把以上圖片導入大朋工程樣機和Oculus Go,左右兩側能看到的最大清晰刻度分別是11.2(大朋),11.2 (Oculus Go)。從清晰度的下降程度看,通過頭顯看以上圖片, 大朋巨幕影院和Oculus Go達到同樣的邊緣清晰度。
和Oculus Go一樣,大朋巨幕影院采用了菲涅爾鏡片。和非球面鏡片相比,菲涅爾鏡片更輕,視場角也能做的更大,長時間試用更保護用戶的眼睛,但是由于其特殊的工藝和形狀,齒間的光漫反射,會造成雜散光和特殊的光暈。
圖十五:菲涅爾透鏡外觀
利用菲涅爾鏡片的優點,補足其缺點,大朋的光學鏡片做了專門的設計優化,有效消除了雜散光和光暈。這種優化效果,在黑暗背景下由亮光形成的圖案中,能夠有效的觀察到。
從Oculus Go頭盔中抓取畫面并放在大朋巨幕影院頭顯內顯示,仔細觀察視野內左下角“未安裝應用”、“環境”白色字體的拖影情況,與Oculus Go頭盔的顯示拖影別無二致。
圖十六:拖影測試圖
另外,在大朋巨幕影院中打開“3D影視”-》 “三少爺的劍”,在影院場景中選擇第7排,然后“關燈”,時間軸定格到00:01:02暫停,畫面顯示下圖內容,仔細觀察虛擬銀幕以外區域的雜光光暈,幾乎難以覺察。
作為對比,Oculus Go也要顯示相似的內容。在 SKYBOX,找到宣傳視頻,時間軸定格到00:00:11暫停,觀影場景選擇“太空”,同樣仔細觀察虛擬銀幕以外區域的雜光光暈會略微差些。
圖十七:光暈測試
全景聲聲場
為強化沉浸感,大朋巨幕影院中加入了獨有的全景聲模擬算法,讓用戶觀看視頻時能體驗到全景聲效果。
圖十八: 全景聲示意圖(圖片來源于網絡)
同時,為了降低周圍環境對用戶的影響,還實現了定向聲場傳播,使用者本人和周圍的旁觀者聽到完全不同的效果。
深度功耗優化
根據CPU自身的狀態,大朋巨幕影院系統能夠進入到3個不同的功耗等級:正常,待機和深度睡眠,實測觀影續航能到4小時。
結合相應的用戶操作和接近開關,大朋巨幕影院系統能夠自動在不同的模式之間切換,達到節電的目的。同時,根據當前CPU、GPU等硬件模塊的負載,大朋巨幕影院能動態調節CPU、GPU的頻點,以滿足不同使用場景的性能需求。比如當CPU使用率大于某一閾值時,會將CPU運行在更高的頻點,以滿足更大的性能需求;當CPU使用率小于某一閾值時,系統會將CPU運行在更低的頻點,以滿足更低功耗的需求。
Oculus Go也有類似的電源管理機制,叫做Dynamic Clock Throttling(動態時鐘調節中文翻譯),不過實測下來觀影時間只有大朋的一半,2小時左右。
最后的話
以上就是大朋巨幕影院技術創新分享的主要內容。筆者期待著像大朋這樣從底到高真正國產的硬科技公司,越來越多,畢竟中國科技的發展,需要越來越多的技術人員堅守冷板凳,解決一個又一個技術問題,扎扎實實的啃下去。
-
vr
+關注
關注
34文章
9638瀏覽量
150207 -
VR一體機
+關注
關注
1文章
152瀏覽量
14994
發布評論請先 登錄
相關推薦
評論