來源:映維網(wǎng) 作者 映華
你或許沒有注意到,但全息圖早已存在于我們的日常生活之中。由于難以復(fù)制,模擬全息圖被廣泛用作信用卡、銀行票據(jù)、駕照和眾多應(yīng)用的防偽措施(見圖1)。
隨著計(jì)算能力的提高和增強(qiáng)現(xiàn)實(shí)等新用例的出現(xiàn),數(shù)字全息顯示的研究和開發(fā)同樣在不斷地進(jìn)行。在展示先進(jìn)視覺化未來的時(shí)候,一眾熱門的科幻電影和電視都有受到全息顯示的啟發(fā),例如《星球大戰(zhàn)》、《少數(shù)派報(bào)告》和《星際迷航》等。但全息顯示真的是一個(gè)遙遠(yuǎn)的未來嗎?在這篇博文中,Arm的軟件工程師主任羅伯托·洛佩茲·門德斯(Roberto Lopez Mendez)介紹了有助于移動(dòng)處理器支持全息顯示的算法與計(jì)算進(jìn)步。下面是映維網(wǎng)的具體整理:
圖1:鈔票(左)和信用卡(右)都有使用全息圖作為防偽手段。
我們首先來看看經(jīng)典全息圖的產(chǎn)生過程:
1. 記錄和再現(xiàn)全息圖的起源
在計(jì)算機(jī)時(shí)代以前,模擬全息圖的記錄和再現(xiàn)方式與黑膠唱片相似。在這個(gè)過程中,兩束激光束照射目標(biāo)對(duì)象(圖2)。由此產(chǎn)生的干涉圖(全息圖)編碼了對(duì)象的整體(“全息”)相位信息,并以極高的分辨率記錄在感光膠片上。當(dāng)用激光照射膠片時(shí)(圖2),發(fā)生的衍射會(huì)再現(xiàn)一個(gè)播放場(chǎng),而它在眼睛看來是一個(gè)三維圖像。這個(gè)圖像完美地再現(xiàn)了所記錄的對(duì)象,因?yàn)樗A袅嗽紙?chǎng)景的深度、視差和其他屬性。作為一名物理學(xué)家,這是我在大學(xué)學(xué)習(xí)全息術(shù)時(shí)所熟知的過程。
圖2:經(jīng)典全息圖的創(chuàng)建(左)與播放(右)。圖源:VividQ。
在上一篇博文中,我們介紹了Arm與英國初創(chuàng)企業(yè)VividQ達(dá)成合作,共同致力于幫助消費(fèi)電子產(chǎn)品實(shí)現(xiàn)數(shù)字全息顯示。在計(jì)算全息(Computer-Generated Holography;CGH)中,干涉圖案是根據(jù)各種數(shù)據(jù)源(從游戲引擎到深度感應(yīng)攝像頭)并以數(shù)字方式生成,然后再通過一個(gè)微型顯示器進(jìn)行顯示。其中,所述顯示器相當(dāng)于經(jīng)典全息圖中的感光膠片,并且在用激光照射時(shí)可以同樣地再現(xiàn)三維圖像。但CGH的計(jì)算量非常巨大,在過去一副數(shù)字全息圖像的生成需要耗費(fèi)數(shù)天時(shí)間。當(dāng)?shù)谝淮卧L問離Arm劍橋總部不遠(yuǎn)的VividQ時(shí),我簡直不敢相信眼前的一切。采用VividQ軟件實(shí)現(xiàn)的全息顯示器原型能夠在我面前實(shí)時(shí)地投射出一個(gè)Unity動(dòng)畫場(chǎng)景的3D全息視頻。我感到非常不可思議。下面我們來看看這一切是如何實(shí)現(xiàn)的。
延伸閱讀:Arm與VividQ合作,在Mali GPU中兼容全息顯示技術(shù),提升AR體驗(yàn)
2. 數(shù)字全息術(shù)的革命:基于快速傅里葉變換(Fast Fourier Transform;FFT)的全息圖生成
傳統(tǒng)的計(jì)算全息術(shù)是用基點(diǎn)計(jì)算(Point-Based Compute;PBC)來實(shí)現(xiàn)。三維虛擬對(duì)象可以表示為點(diǎn)云,點(diǎn)云攜帶顏色和深度信息。在PBC中,計(jì)算虛擬對(duì)象的每個(gè)點(diǎn)到顯示器的每個(gè)像素的光線,并將相關(guān)值相加。這一過程所需的計(jì)算能力非常巨大,并且會(huì)隨著分辨率的增大而急劇擴(kuò)展:大約需要O(N4)運(yùn)算,其中N是顯示器的邊長。
業(yè)界直到數(shù)年前才真正提出了實(shí)際的解決方案,而這個(gè)突破就像是從模擬音頻處理到數(shù)字音頻處理的轉(zhuǎn)變。對(duì)于音樂,數(shù)字化過程以固定的時(shí)間間隔對(duì)音頻信號(hào)進(jìn)行采樣。相比之下,全息領(lǐng)域的新舉措是對(duì)三維虛擬對(duì)象的深度切片進(jìn)行采樣。圖3總結(jié)了用于全息投影的切片過程和干涉圖(全息圖)的生成。
圖3:基于FFT的CGH管道
在切片過程中,點(diǎn)云的每個(gè)點(diǎn)被劃分為深度層。在下一步中,深度層將重新采樣并柵格化為深度網(wǎng)格。在這個(gè)階段,每個(gè)深度柵格包含處于相同深度的點(diǎn)。在實(shí)際應(yīng)用中,每個(gè)深度網(wǎng)格可以看作是一個(gè)二維圖像,而每個(gè)深度層的點(diǎn)可以有效地視為像素。這種分層方法允許我們將計(jì)算全息問題簡化為具有O(N2 log N)時(shí)間復(fù)雜度的快速傅立葉變換問題(其中N是顯示器的邊長)。接下來,我們進(jìn)行色度網(wǎng)格劃分,將深度網(wǎng)格劃分為RGB通道。然后利用FFT對(duì)深度網(wǎng)格進(jìn)行衍射計(jì)算,并且生成全息圖。每個(gè)RGB通道都需要自己的FFT計(jì)算,因?yàn)檠苌渌俾嗜Q于每個(gè)顏色波長。最后,將RGB通道全息圖合并成單色全息圖。
當(dāng)生成全息圖(干涉圖)后,我們應(yīng)該在哪里記錄或打印并用激光束重建及產(chǎn)生全息投影呢?數(shù)字技術(shù)已經(jīng)在這一領(lǐng)域獲得長足的進(jìn)步,所謂的空間光調(diào)制器(SLM)取代了模擬膠片。SLM可以動(dòng)態(tài)顯示計(jì)算出的衍射圖樣,并在用紅綠藍(lán)三種激光二極管照明時(shí)產(chǎn)生全息投影。
顯然,這是全息圖生成過程的一個(gè)簡略版本,我們?cè)谶@里沒有考慮與顯示器本身相關(guān)的技術(shù)挑戰(zhàn)。然而,我們可以看到所需的計(jì)算能力將隨深度層的數(shù)量和深度網(wǎng)格的分辨率提升而增加。隨著層數(shù)的增加,我們可以預(yù)期FFT計(jì)算的權(quán)重將更加顯著。GPU在并行計(jì)算方面非常出色。它們可以充分利用運(yùn)算能力,而高端GPU的運(yùn)算能力通常更為強(qiáng)大。這就是為什么今天全息圖生成過程的推薦計(jì)算單元是GPU的原因。
在訪問VividQ期間,我嘗試了團(tuán)隊(duì)研發(fā)的全息頭顯原型(圖4)。這家公司已經(jīng)為相關(guān)的軟件和參考設(shè)計(jì)申請(qǐng)了專利,并希望加速全息顯示在AR頭顯和智能眼鏡、汽車平視顯示器和消費(fèi)電子產(chǎn)品領(lǐng)域的大規(guī)模采用。
圖4:VividQ的雙目全息頭顯原型,頭顯上方是一個(gè)深度傳感器。
如今,VividQ的全息頭顯原型會(huì)接入到一臺(tái)PC,而后者運(yùn)行的相關(guān)程序可以渲染來自Unity或Unreal等游戲引擎的虛擬內(nèi)容。虛擬內(nèi)容的顏色和深度信息會(huì)發(fā)送到CGH管道(圖3)。當(dāng)在環(huán)境中投射全息圖時(shí),所述設(shè)備同時(shí)會(huì)使用深度傳感攝像頭的信息來實(shí)現(xiàn)虛擬與真實(shí)和真實(shí)與虛擬的遮擋(圖5)。FFT計(jì)算在GPU中進(jìn)行。
圖5:在不同距離捕獲的三維全息投影。
嘗試VividQ的全息頭顯是一次令人大開眼界的經(jīng)歷,因?yàn)楫?dāng)CGH只存在于科幻作品描述的的未來時(shí),我的全息知識(shí)就隨著我的大學(xué)畢業(yè)而終止。這一次訪問令我意識(shí)到全息技術(shù)自80年代以來已經(jīng)發(fā)展到什么程度,但還有更多的驚喜在等著我。
3. 移動(dòng)端的實(shí)時(shí)CGH:是科幻還是現(xiàn)實(shí)?
將CGH從桌面端帶到移動(dòng)端似乎是一項(xiàng)艱巨的任務(wù)。如果在擁有強(qiáng)大CPU和GPU的桌面端實(shí)現(xiàn)CGH已經(jīng)是一個(gè)巨大挑戰(zhàn),將全息圖生成轉(zhuǎn)移到移動(dòng)設(shè)備還有意義嗎?然而,如果我們仔細(xì)思考,如果我們希望看到實(shí)時(shí)全息顯示器的廣泛采用,轉(zhuǎn)向移動(dòng)端顯然是下一個(gè)自然而然的步驟。
類似的過程已經(jīng)在虛擬現(xiàn)實(shí)發(fā)生。如果你關(guān)注這個(gè)行業(yè)的發(fā)展,你應(yīng)該會(huì)知道于2016年面世的Oculus Rift和HTC Vive。這種系留頭顯需要接入一臺(tái)功能強(qiáng)大的PC,然后才能夠以每秒幀數(shù)(FPS)的高分辨率為每只眼睛渲染虛擬場(chǎng)景。但我們?cè)?018年看到了第一代VR一體機(jī)Oculus Go,并在后來見證了非常成功的Oculus Quest。一體機(jī)的形式意味著它包含了提供虛擬現(xiàn)實(shí)體驗(yàn)所需的一切組件,不再需要外接設(shè)備。這一形態(tài)的設(shè)備優(yōu)勢(shì)非常明顯:不再需要線纜,設(shè)備可以隨身攜帶,功耗更低。所有這一切都是通過移動(dòng)SoC實(shí)現(xiàn)。將CGH移植到移動(dòng)SoC可以為我們帶來同樣的好處,并把這項(xiàng)技術(shù)帶到AR的真正未來。在這個(gè)未來里,一款形狀緊湊的低功耗全息顯示器將是必要事項(xiàng)。對(duì)于這一點(diǎn),Arm的Total Compute(全面計(jì)算)策略將能發(fā)揮重要的作用。
4. Arm的全面計(jì)算和ViviQ將如何塑造全息術(shù)的未來?
圖6:未來的全面計(jì)算解決方案的不同要素
為了滿足在計(jì)算能力和功耗方面不斷增長的需求,Arm正在通過全面計(jì)算來實(shí)現(xiàn)戰(zhàn)略轉(zhuǎn)變:從優(yōu)化單個(gè)IP到采用整個(gè)SoC設(shè)計(jì)的系統(tǒng)級(jí)解決方案視圖(圖6)。這意味著整個(gè)系統(tǒng)應(yīng)該無縫協(xié)作,為低功耗SoC封裝的計(jì)算密集型工作負(fù)載提供最大性能。這種新方法將分析如何在不同的IP塊和計(jì)算域之間最好地部署互連的數(shù)據(jù)和計(jì)算。它不僅包括主要的計(jì)算域(CPU、GPU和NPU),而且會(huì)納入軟件框架和計(jì)算庫來提高它們的性能。同時(shí),諸如Performance Advisor這樣的新工具可以識(shí)別瓶頸并幫助實(shí)現(xiàn)整個(gè)系統(tǒng)的最佳性能。
這種方法特別適用于高性能計(jì)算,如CGH的核心要素FFT。最新的Mali Premium GPU(Mali-G78和Mali-G77),以及主流的Mali-G57都利用了Arm Compute Library(ACL)。這是一個(gè)高度優(yōu)化的底層函數(shù)集合,包括一個(gè)通過OpenCL加速的高效FFT計(jì)算實(shí)現(xiàn)。FFT在復(fù)雜域中運(yùn)行,而我們可以使用FP32和FP16浮點(diǎn)精度。硬件后端性能的每一次改進(jìn)都直接轉(zhuǎn)化為每秒乘法累加運(yùn)算(MAC/s)的增加,從而轉(zhuǎn)化為FFT計(jì)算性能的提高。這一點(diǎn)尤其重要,因?yàn)榧词箍紤]到預(yù)處理和后處理操作,F(xiàn)FT計(jì)算都占全息顯示所需總計(jì)算量的60%-90%。
在2019光場(chǎng)和全息顯示峰會(huì)(2019 Light Field and Holographic Display Summit),VividQ首席執(zhí)行官達(dá)倫·米爾恩(Darran Milne)分享了在2048×1536顯示器為指定數(shù)量目標(biāo)層生成單幀全息圖像的浮點(diǎn)運(yùn)算要求要求(表1)。
表1:使用ViviQ實(shí)時(shí)算法生成單個(gè)2048×1536幀的浮點(diǎn)運(yùn)算要求。
即使是1280×720顯示器,對(duì)于傳統(tǒng)的基點(diǎn)計(jì)算而言,每幀的計(jì)算需求大約為7000 GFLOP。對(duì)于計(jì)算需求減少了1000倍,這說明了利用FFT和相關(guān)Arm庫的ViVidQ方法更加高效。重要的是,VividQ的解決方案不僅優(yōu)化了計(jì)算要求,而且提高了圖像質(zhì)量。VividQ SDK所提供的算法針對(duì)不同的顯示類型、大小和位深、以及各種圖像特性(如高對(duì)比度)進(jìn)行了優(yōu)化。由于用戶或調(diào)用程序可以請(qǐng)求特定數(shù)量的輸出層,所以對(duì)于給定的光學(xué)系統(tǒng)和輸入場(chǎng)景,你只能使用所需的計(jì)算量。但值得注意的是,簡單場(chǎng)景可能只包含幾個(gè)位深的數(shù)據(jù)。這一巨大的靈活性允許運(yùn)行VividQ軟件的Arm-Mali GPU實(shí)時(shí)交付各種應(yīng)用的全息圖。
下面我們來詳細(xì)談?wù)凙rm Mali-G76 GPU的計(jì)算能力。一個(gè)Mali-G76內(nèi)核中包含3個(gè)執(zhí)行引擎,各自具有8個(gè)線程,并且每個(gè)時(shí)鐘周期(3x8x3=72個(gè)浮點(diǎn)/周期/核心)能夠傳送大約3個(gè)FP32指令(MUL+ADD)。這意味著三星Galaxy S10中以720 MHz運(yùn)行的10核G76顯卡將提供720x106x72x10浮點(diǎn)或大約518 GFLOP/s。對(duì)于FP16精度,這一數(shù)字將翻倍至1.04 TFLOP/s。這是理論上的最大值。在實(shí)踐中,實(shí)際數(shù)字會(huì)受到帶寬限制的影響,并最終受限于功耗。對(duì)于諸如FFT這樣的高負(fù)載算法而言,我們依然有望獲得理論最大值的相當(dāng)一部分。即使我們只計(jì)算每線程每周期單個(gè)FLOP,利用率為60%,我們都可以達(dá)到100 GFLOP/s。
正如我們所見,原則上帶寬不應(yīng)該是個(gè)問題,但實(shí)際上它可能會(huì)成為一個(gè)問題。使用GPU時(shí),如果不進(jìn)入熱節(jié)流和出現(xiàn)快速電池消耗,我們就不可能維持高分辨率和復(fù)雜用例所需的處理強(qiáng)度。但我們有一些簡單的應(yīng)用程序,例如增強(qiáng)現(xiàn)實(shí)設(shè)備中的文本和圖標(biāo)投影,我們可以限制層的數(shù)量,并依然能夠?yàn)楫?dāng)今的AR顯示提供顯著的優(yōu)勢(shì)。根據(jù)Arm支持團(tuán)隊(duì)的評(píng)估,三星Galaxy S10的一個(gè)切片計(jì)算需要8ms,分辨率為720×1280。這意味著一個(gè)全彩色的單層需要24毫秒,而且系統(tǒng)理論上將以40幀/秒的速度運(yùn)行。這是移動(dòng)GPU實(shí)時(shí)運(yùn)行CGH的首次演示。VividQ最近展示了他們的全息操作系統(tǒng)概念(圖7)。所述操作系統(tǒng)具有圖標(biāo)、文本和社交媒體等我們熟悉的應(yīng)用程序,而它們通常只需要2個(gè)深度層。
圖7:VividQ的全息操作系統(tǒng)概念。
但全息顯示遠(yuǎn)不止FFT計(jì)算。CPU在內(nèi)容生成和其他計(jì)算任務(wù)中起著關(guān)鍵作用。為了避免瓶頸并實(shí)現(xiàn)全息圖像的高分辨率,諸如顯示器和激光驅(qū)動(dòng)器等不同部分必須有效地協(xié)作。全面計(jì)算旨在作為Arm系統(tǒng)范圍內(nèi)設(shè)計(jì)方法的一部分以滿足所述要求,并將幫助數(shù)字沉浸的下一波浪潮成為可能。同時(shí),VividQ團(tuán)隊(duì)將繼續(xù)相關(guān)的算法研究,從而實(shí)現(xiàn)比AR可穿戴設(shè)備更高質(zhì)量的全息圖與全息應(yīng)用。VividQ的專有全息圖模擬工具(由GPU運(yùn)行)允許不同的光學(xué)設(shè)置以實(shí)現(xiàn)高精度模擬。這使得新光學(xué)系統(tǒng)的快速原型化不再需要硬件實(shí)驗(yàn),并最終帶來速度更快畫質(zhì)更優(yōu)的全息圖像(圖8)。令人高興的是,所需的算法變化不會(huì)顯著影響計(jì)算量,所以這種新型顯示器依然與Arm的全面計(jì)算架構(gòu)兼容,并在移動(dòng)處理器實(shí)現(xiàn)實(shí)時(shí)性能。
圖8:目標(biāo)圖像(a);使用VividQ SDK 4.2.0和標(biāo)準(zhǔn)生成算法創(chuàng)建的全息圖像(b);正在開發(fā)的高黑電平程序(c)。
5. 總結(jié)
計(jì)算機(jī)全息的最新發(fā)展使得全息顯示從科幻變成了現(xiàn)實(shí)。全息術(shù)和全息顯示與當(dāng)今的三維顯示相比具有很大的優(yōu)勢(shì)。從智能眼鏡到汽車平視顯示器和新的消費(fèi)電子產(chǎn)品,隨著計(jì)算方法的發(fā)展,全息顯示可以成為AR商業(yè)應(yīng)用的一個(gè)可行替代品。為了實(shí)現(xiàn)其真正的潛力,全息顯示必須從基于桌面的計(jì)算轉(zhuǎn)移到移動(dòng)端SOC。Arm和VividQ的合作旨在幫助移動(dòng)處理器實(shí)現(xiàn)CGH。在這里,我們可以結(jié)合VividQ在全息攝影方面的深厚軟件專業(yè)知識(shí),以及低功耗、高性能的Arm IP。VividQ SDK允許跨不同終端支持實(shí)時(shí)的高質(zhì)量CGH,而用于沉浸式計(jì)算的全面計(jì)算方法致力于在性能和功耗方面實(shí)現(xiàn)整體系統(tǒng)改進(jìn),從而幫助未來的全息顯示成為現(xiàn)實(shí)。
原文鏈接:https://yivian.com/news/79680.html