新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 專題 > 用ARM Mali GPU驅(qū)動(dòng)實(shí)現(xiàn)移動(dòng)VR

用ARM Mali GPU驅(qū)動(dòng)實(shí)現(xiàn)移動(dòng)VR

作者: 時(shí)間:2017-06-08 來(lái)源:電子產(chǎn)品世界 收藏

移動(dòng)的性能要求

本文引用地址:http://butianyuan.cn/article/201706/360265.htm

  不是一個(gè)新話題,早在上世紀(jì)90年代就有提到,那時(shí)設(shè)備還比較貴,性能也不能滿足比較好或者是讓人可以接受的用戶體驗(yàn)。在2014、2015年,重新熱起來(lái),市場(chǎng)上可以看到Oculus Rift、SONY的PlayStation VR以及HTC的Vive等,這些設(shè)備的價(jià)格都超過(guò)500美元。

  基于手機(jī)的VR也不斷出現(xiàn),像三星的Gear VR設(shè)備??梢钥吹诫S著手機(jī)處理器能力的增加,手機(jī)VR已經(jīng)能夠提供較好的用戶體驗(yàn)了,同時(shí)傳感器的技術(shù)也在不斷跟進(jìn),另外,這類設(shè)備對(duì)功耗也有嚴(yán)格要求,需要控制在5W以內(nèi)。

  M認(rèn)為,移動(dòng)產(chǎn)品形態(tài)是更容易被客戶接受的產(chǎn)品形態(tài)。VR包括(增強(qiáng)現(xiàn)實(shí))都能很好地拉動(dòng)高端手機(jī)市場(chǎng)的應(yīng)用場(chǎng)景,這類應(yīng)用對(duì)性能的要求非常高,而且性能不只是來(lái)自于GPU,也來(lái)自于CPU,包括可能還需要攝像頭的參與,所以VR/AR是全系統(tǒng)的運(yùn)算方案。

  如圖1,左側(cè)為VR游戲的例子,可以看到在高端的VR游戲運(yùn)算的情況下,需要很強(qiáng)的GPU、CPU處理能力,以及很強(qiáng)的系統(tǒng)設(shè)計(jì),所以對(duì)整個(gè)硬件的要求是非常高的;右邊是VR的360°視頻播放的應(yīng)用場(chǎng)景,它除了對(duì)GPU有要求以外,對(duì)視頻編/解碼器也有較高的要求,需要高分辨率,配合VR設(shè)備得到一個(gè)沉浸式的體驗(yàn)。

圖1 VR游戲與VR 360°視頻播放的比較

  因此,VR需要幾個(gè)重點(diǎn):

  第一點(diǎn)就是立體顯示是如何實(shí)現(xiàn)的,通過(guò)我們左右眼的渲染,使左眼和右眼的圖像通過(guò)角度的細(xì)微差別去得到這樣一個(gè)立體的視覺(jué)效果(如圖2),這對(duì)處理器的性能要求會(huì)翻番。

圖2 左右眼的立體視覺(jué)效果需要CPU處理速度翻番

  還有一點(diǎn)是對(duì)頭部動(dòng)作的捕捉,這是通過(guò)一些傳感器可以實(shí)現(xiàn)的。從VR的處理流程可以看到我們需要渲染左右眼兩幅圖像,這兩幅圖像通過(guò)人眼的位置對(duì)幾何圖形做了投影,再通過(guò)光學(xué)透鏡看到在屏幕上顯示的左右眼的兩幅圖像,處理過(guò)程中需要兩倍的CPU處理,同時(shí)需要兩倍幾何頂點(diǎn)的處理能力,在最后顯示的像素處理這塊,它的性能要求也是在不斷提升的。

  那么,如何得到一個(gè)好的VR體驗(yàn)?第一點(diǎn)是延時(shí)。延時(shí)可能是從系統(tǒng)來(lái)的,也可能是從傳感器,到你的軟件運(yùn)行,再到硬件的加速……整個(gè)延時(shí)你需要控制得非常小,才可以得到較好的體驗(yàn)。我們現(xiàn)在的設(shè)備需要把延時(shí)控制在16ms,但是實(shí)際上在下一代我們看到的需求是在10ms以下。

  還有一點(diǎn)是高的幀率,現(xiàn)在的設(shè)備可能是在60Hz范圍內(nèi),但是在未來(lái)的設(shè)備需要達(dá)到120Hz。

  在分辨率這塊,高分辨率也是VR非常重要的需求。其實(shí)分辨率也是越高越好,目前我們看到的VR設(shè)備,1080p是一個(gè)門檻,大部分是在2K左右的分辨率,未來(lái)這個(gè)分辨率需要進(jìn)一步的達(dá)到4K的量級(jí)。

  所以延時(shí)的挑戰(zhàn)來(lái)自于VR全通道,可以從圖3看到從一開(kāi)始的傳感器的數(shù)據(jù)處理,再到應(yīng)用層面(注:可能是UI或者是VR的應(yīng)用),再到API的驅(qū)動(dòng),再到你的渲染,到后面的緩存機(jī)制,包括雙緩存到三緩存,以及最后顯示到屏幕頂上。ARM現(xiàn)在要做的就是和GPU相關(guān)的,也就是圖2右側(cè)藍(lán)色框內(nèi)的部分,以把這部分的延遲降到最低。

圖3 可能發(fā)生延遲的部分

用Mali實(shí)現(xiàn)VR/AR體驗(yàn)

VR體驗(yàn)

  ARM很早就在參與VR產(chǎn)業(yè)了,ARM GPU是在2013年,也就是三星的Gear就已經(jīng)作為硬件的加速單元做了這樣的產(chǎn)品。

  第二點(diǎn)就是ARM基于VR技術(shù)也做了很多的貢獻(xiàn),第一就是之前提到的ARM GPU的多核的可擴(kuò)展的設(shè)計(jì),能夠更好地支持不同的VR運(yùn)算的要求。第二點(diǎn)是在OpenGL ES和OpenEGL這塊有很多的擴(kuò)展,去減小延時(shí)。

  第三是之前提到的4倍全屏抗鋸齒或者是全屏反走樣功能,可以更好地減少體驗(yàn)上的不足。

  第四點(diǎn)就是AFBC(ARM Frame Buffer Compression)的技術(shù),該技術(shù)是在全系統(tǒng)減少系統(tǒng)帶寬,可以節(jié)省功耗,同時(shí)也能夠增加整體的性能表現(xiàn)。

  ARM和Google在Daydream platform也有非常近的合作。

  這里再?gòu)?qiáng)調(diào)ARM AFBC技術(shù)。UI的帶寬節(jié)省可以到50%。GFXBench的帶寬節(jié)省可以達(dá)到46%的量級(jí)。

  VR在應(yīng)用場(chǎng)景里面也是要求各種各樣IP的支持,在video這一塊,在VR這個(gè)場(chǎng)景底下也是有很多應(yīng)用的方式,比如360°的VR場(chǎng)景的視頻應(yīng)用。ARM video IP也是可以支持多種編碼以及解碼的功能的,可以支持2K到4K高清的內(nèi)容的解碼。

AR體驗(yàn)

  回到AR的應(yīng)用場(chǎng)景,其實(shí)AR的應(yīng)用場(chǎng)景的計(jì)算要求和VR非常像,無(wú)論從性能上,還是從低延遲的要求來(lái)看,但是AR應(yīng)用是需要非常強(qiáng)的各種處理模塊的互動(dòng)的,包括CPU、GPU以及display的IP在里面的。ARM是通過(guò)異構(gòu)運(yùn)算(圖4),通過(guò)內(nèi)存的一致性,能夠把所有的運(yùn)算單元組合在一起,能夠提供一個(gè)最好的對(duì)AR加速的計(jì)算平臺(tái)。

圖4 通過(guò)異構(gòu)運(yùn)算實(shí)現(xiàn)AR

Mali VR的外部支持

  第一個(gè)是multiview(多畫面)的渲染的能力。首先VR是需要左右眼兩個(gè)畫面做渲染的,可能需要兩個(gè)draw-call實(shí)現(xiàn)這樣的功能,通過(guò)multiview這樣一個(gè)擴(kuò)展的支持,我們可以通過(guò)單個(gè)的draw-call實(shí)現(xiàn)這兩個(gè)應(yīng)用場(chǎng)景的渲染,可以極大程度上降低CPU的應(yīng)用負(fù)載。

  第二個(gè)擴(kuò)展是Context Priority(內(nèi)容上下文優(yōu)先)的擴(kuò)展。它的功能主要是現(xiàn)在我們?cè)赩R處理的時(shí)候需要60幀、90幀甚至120幀這樣一個(gè)高的屏幕刷新率,在處理的時(shí)候,如果這個(gè)場(chǎng)景過(guò)于復(fù)雜,我沒(méi)有辦法滿足這樣一個(gè)刷新率的情況下,我可以通過(guò)對(duì)前一幀的后處理,去補(bǔ)足當(dāng)前沒(méi)有處理到的這一幀,能夠得到更好的體驗(yàn)效果。

  ARM這個(gè)地方是我們的一個(gè)技術(shù)貢獻(xiàn),它叫視網(wǎng)膜中央凹渲染。它可以用到前文提到的multiview(多畫面)渲染技術(shù)。如圖5,中間部分是人最關(guān)注的,我們?nèi)搜墼诳吹臅r(shí)候最關(guān)注的是一個(gè)場(chǎng)景中間的,或者是你眼球中心這塊,視網(wǎng)膜也是分辨率最高的部分,因此我們可以把這部分渲染得更精細(xì),但是它周圍的人眼不關(guān)注的地方,可以把它渲染得沒(méi)有那么精細(xì),這樣可以把性能完全發(fā)揮出來(lái),得到一個(gè)更好的VR性能表現(xiàn),因?yàn)檎w的負(fù)載相比你全渲染整幅圖而言,你是有一個(gè)節(jié)省的,這部分節(jié)省就可以體現(xiàn)在你的VR的性能上。

圖5 視網(wǎng)膜中央凹渲染示例

  Mali VR SDK是免費(fèi)的,之前ARM提到的很多技術(shù),包括擴(kuò)展及其實(shí)現(xiàn),都可以從這個(gè)SDK里面找到,這樣可以使我們開(kāi)發(fā)者很容易在開(kāi)發(fā)者項(xiàng)應(yīng)用的時(shí)候用到這樣一些新的技術(shù)。

  另外,Enlighten(全局光照)技術(shù)對(duì)于VR的用戶體驗(yàn)來(lái)講是一個(gè)非常重要的技術(shù)。Enlighten是一個(gè)非常好的能夠?qū)崿F(xiàn)高效的全局光照的技術(shù)實(shí)現(xiàn),前面提到我們VR在挑戰(zhàn)上是非常多的,比如刷新率低延時(shí)以及GPU這塊很重的負(fù)載,從光照這個(gè)角度來(lái)看,通過(guò)引入Enlighten,我們可以只計(jì)算一次,去渲染兩次,這樣可以很大程度上降低這樣一個(gè)負(fù)載。



關(guān)鍵詞: VR AR

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉