在VR技術(shù)中音頻會是一個較好的切入點(diǎn),給一名VR用帶來更準(zhǔn)確的定位。意味著逼真的音頻是在虛擬現(xiàn)實(shí)中建立臨場感的重要先決條件。對虛擬世界中的聽者而言,聲音位置準(zhǔn)確,也不能創(chuàng)建臨場感。傳統(tǒng)方法不足以創(chuàng)建臨場感的原因是,現(xiàn)實(shí)世界的聲學(xué)要比這種近似估算的范圍更加復(fù)雜。音頻對VR為何重要,AMD又是如何去解決這一難題。
對于虛擬現(xiàn)實(shí)中的音頻處理,我們需要一種新的思考方法。在游戲和視頻的多年發(fā)展歷史中,音頻渲染的逼真度標(biāo)準(zhǔn)相對較低,特別是與同時期的圖形和電影視頻渲染相比時更是如此。盡管聽覺固有地具有立體感,但是平面屏幕游戲和電影/視頻的音頻通常是最小化使用3D和其他先進(jìn)的音頻渲染技術(shù),因?yàn)樗械膱D形和視頻都呈現(xiàn)在你的面前。當(dāng)你對著一個2D屏幕時,如果你聽到背后傳來聲音并轉(zhuǎn)過頭來,你所看到的只是一個揚(yáng)聲器或者公寓的墻壁。除了部分FPS游戲外,平板電腦或電影的音頻如果過于逼真,其有時會令玩家分神,尤其是如果它不符合視覺體驗(yàn)。例如,電影院環(huán)繞聲幾乎普遍使用后置和側(cè)面揚(yáng)聲器來實(shí)現(xiàn)環(huán)境填充效果,但幾乎從不使用重要的聽覺提示,因?yàn)檫@樣做會分散觀眾的注意力。
但現(xiàn)在頭顯改變了一切。用戶可以轉(zhuǎn)向任何方向,并看到一個連續(xù)的視覺場景。另外,隨著技術(shù)的進(jìn)步,用戶已經(jīng)可以在虛擬世界中獨(dú)立行走。先進(jìn)的虛擬現(xiàn)實(shí)系統(tǒng)有望為用戶提供一個接近共識現(xiàn)實(shí)的臨場感。研究顯示,逼真的音頻是在虛擬現(xiàn)實(shí)中建立臨場感的重要先決條件。
1. 逼真音頻的基礎(chǔ)
實(shí)現(xiàn)逼真音頻的“秘方”到底是什么?通常來說,通過頭部相關(guān)傳輸函數(shù)(HRTF)實(shí)現(xiàn)的精確空間和位置音頻渲染足以產(chǎn)生逼真的音頻。如果用戶固定在一個位置或者是置放于“魔毯之旅”上的場景,同時音頻設(shè)計師在每個預(yù)置聲音中都包含混響、遮擋、反射、衍射、吸收和擴(kuò)散等所有環(huán)境效果,這可能是正確的說法,因?yàn)镠RTF負(fù)責(zé)定位每個聲音。但一旦用戶開始在場景中自由移動(即使是有效的區(qū)域內(nèi)),這一過程將變得不夠充分。當(dāng)用戶在運(yùn)動或改變頭部的中心位置時,每個聲音的反射路徑和環(huán)境效果都在不斷變化。預(yù)先烘烤場景中每種聲音的環(huán)境效果已經(jīng)不再實(shí)際可行。所采用的典型快捷近似估算方式是將所有這些效果合并到一個混響插件中,然后在特定情況下為整個場景使用一個混響設(shè)置,或者將多個設(shè)置分配到場景中的不同房間。行業(yè)自20世紀(jì)90年代以來便一直在使用提供這種渲染功能的技術(shù)。
對虛擬世界中的聽者而言,即使聲音的位置非常準(zhǔn)確,這種近似估算也不能創(chuàng)建臨場感。舉一個例子,一名VR用戶沿著走廊前進(jìn),走廊左前方有一個大門敞開的房間,用戶能聽到房間中傳來聲音,用戶走過門口后,聲音也仍在。但在現(xiàn)實(shí)世界中,用戶在聲音環(huán)境效果中則會聽到持續(xù)的變化:
房間墻壁的遮擋;在門口的衍射;墻壁,地板和天花板的表面反射;構(gòu)成建筑物內(nèi)墻/地板/天花板表面的材料及其物體或家具的擴(kuò)散和吸收。
在錄音棚中提取房間混響的傳統(tǒng)音頻設(shè)計和渲染方法,通過對聲源增加簡單衰減和低通濾波,并使用HRTF進(jìn)行定位,可以產(chǎn)生可靠的聲音呈現(xiàn),但無法創(chuàng)建臨場感。即使音頻設(shè)計師努力使用逼真的曲線實(shí)現(xiàn)距離衰減和聲源濾波,并且隨著聽者耳朵或聲源改變位置而不斷更新HRTF位置,結(jié)果也同樣如此。
傳統(tǒng)方法不足以創(chuàng)建臨場感的原因是,現(xiàn)實(shí)世界的聲學(xué)要比這種近似估算的范圍更加復(fù)雜,而且通過大量的接觸和適應(yīng),人類大腦已經(jīng)訓(xùn)練有素,能夠識別真實(shí)世界的聲學(xué)并精確區(qū)分它們。人類聽覺是一個關(guān)鍵的生存進(jìn)化,因?yàn)槁曇敉俏kU出現(xiàn)的第一個信號,而且從嘈雜的環(huán)境中判斷聲音方向和距離的能力是一個關(guān)鍵的生存技能。對于這種能力,一個例子就是所謂的“雞尾酒會效應(yīng)”,亦即人類的一種聽覺選擇能力。當(dāng)人類把注意力集中在某一個人的談話時,其可以忽略背景中其他的對話或噪音。
2. 用物理建模音頻環(huán)境
如果環(huán)境聲音渲染要更接近真實(shí)世界的聲學(xué),我們需要對傳播聲音的物理學(xué)模型進(jìn)行建模,這被稱為可聽化(auralization)。行業(yè)已經(jīng)提出并實(shí)施了多種用于聲傳播建模的方法,而它們在復(fù)雜性和準(zhǔn)確性之間做出了各種平衡。當(dāng)前VR系統(tǒng)的實(shí)時計算能力仍無法滿足完美的建模(為每個聲音傳播事件求解聲波方程),但借助AMD TrueAudio Next所帶來的實(shí)時GPU計算功能,我們可以大幅度提升單憑CPU難以實(shí)現(xiàn)的可聽化能力。一種可以在關(guān)鍵頻段內(nèi)為音頻遮擋和音頻反射顯著提升逼真可聽化的方法是:幾何聲學(xué)。
幾何聲學(xué)一開始的切入點(diǎn)是每個聲源與聽者耳朵位置之間的光線追蹤路徑(通常是采樣子集),并將一組算法應(yīng)用于追蹤路徑的數(shù)據(jù)集和路徑反彈中遇到的材料屬性,以生成每個聲音,每個耳朵的獨(dú)特脈沖響應(yīng)。除了路徑反射、擴(kuò)散和遮擋之外,衍射效果(如有限邊緣衍射)和HRTF濾波器也可以在這個框架內(nèi)建模,并疊加到每個時變脈沖響應(yīng)。在渲染過程中,隨著聲源和聽者改變位置而不斷更新的脈沖響應(yīng)將與相應(yīng)的音頻源信號卷積。然后,這些信號將根據(jù)每個耳朵分別混合,以生成可聽見的輸出音頻波形。這種方法具有可擴(kuò)展性,并已通過AMD TrueAudio Next在CPU上實(shí)現(xiàn)。TrueAudio Next能夠顯著增強(qiáng)可被支持的物理建模聲源的數(shù)量。應(yīng)用程序可以通過“借用”小量的GPU計算單元子集(大約10%-15%)來擴(kuò)展環(huán)境音源,而不是局限于一小部分的主要聲音提示。當(dāng)部署多個GPU或者APU和GPU的組合時,質(zhì)量可以在更大的維度上進(jìn)行擴(kuò)展。
3. 通過TrueAudio Next和FireRays加速音頻物理
幾何聲學(xué)渲染所需的兩個主要算法是時變卷積(位于音頻處理組件)和射線追蹤(位于傳播組件)。對于AMD的Radeon GPU,AMD的開源FireRays庫可以加速光線追蹤;而AMD的TrueAudio Next庫可以加速時變實(shí)時卷積。
AMD TrueAudio Next庫是一種高性能的,基于OpenCL的實(shí)時數(shù)學(xué)音頻加速庫,其特別注重于GPU計算加速。除了低延遲,時變卷積外,TrueAudio Next庫同時還支持高效的FFT和Fast Hartley Transforms(FHT)。
TrueAudio Next支持x86 CPU和AMD Radeon GPU。
4. 綜合所有
上文已經(jīng)說明TrueAudio Next庫是一個關(guān)鍵的解決方案,但我們?nèi)孕杌卮饍蓚€重要的問題:
GPU計算著色器上是否可以支持這種技術(shù),同時不會導(dǎo)致干擾圖形渲染并導(dǎo)致抖動和/或關(guān)鍵幀速率丟失呢?
在VR游戲或高級電影渲染場景中,高性能GPU音頻是否真的能夠?qū)崿F(xiàn)無雜訊,低延遲渲染呢?
雖然傳統(tǒng)的觀點(diǎn)告訴我們說,GPU上的音頻渲染會導(dǎo)致不可接受的延遲,并干擾圖形性能,但上述兩個問題的答案是肯定的,而這指向了AMD TrueAudio Next的另一根重要支柱:基于異步計算的預(yù)留計算單元(Compute Unit Reservation)。
作為LiquidVR Time Warp和Direct-to-GPU渲染功能的關(guān)鍵組件,AMD的異步計算技術(shù)在VR渲染空間中已經(jīng)是眾所周知。在一個有效硬件調(diào)度程序的控制下,異步計算具備可變的執(zhí)行優(yōu)先級,允許多個隊(duì)列的函數(shù)同時使用不同的CU集合,而不是說所有的圖形著色函數(shù)都在單個隊(duì)列中等待,以便在CU的整個數(shù)組中執(zhí)行。
AMD的預(yù)留計算單元(Compute Unit Reservation)功能則進(jìn)一步深化了這一思想:只要啟用的應(yīng)用程序需要,就可以劃分和保留一組有限的CU,并且通過預(yù)留的實(shí)時隊(duì)列訪問。例如,在具有32個CU的GPU中,可以保留4個或8個CU為TrueAudio Next專用,其余的24個到28個CU則可用于圖形。預(yù)留CU可完全在啟用TrueAudio Next的應(yīng)用程序,插件或引擎中執(zhí)行(不是在啟動時),當(dāng)應(yīng)用程序主動釋放它們(CU)或退出時,CU將重獲自由。另外,對于稍低優(yōu)先級的內(nèi)核,可以為預(yù)留的CU分配額外的“中等優(yōu)先級”隊(duì)列。在時變卷積的情況下,對于必須是低延遲,絕對無雜訊的音頻數(shù)據(jù)通道,其可以使用實(shí)時隊(duì)列;而稍不那么關(guān)鍵的脈沖響應(yīng)更新則使用中等優(yōu)先級隊(duì)列。
預(yù)留計算單元(Compute Unit Reservation)提供了一系列支持音頻與圖形共存的關(guān)鍵優(yōu)勢:
在插件的指導(dǎo)和音頻引擎供應(yīng)商的建議下,預(yù)留CU的數(shù)量完全由游戲開發(fā)者自行決定。音頻引擎在使用優(yōu)秀分析工具來擴(kuò)展可用CPU資源上具備豐富的經(jīng)驗(yàn)。AMD TrueAudio Next只是增加了一個更高的維度:一個大型、可靠、可配置的私有沙箱。
避免措手不及??梢栽谟螒蜷_發(fā)的早期階段分配CU預(yù)留值。音設(shè)計頻和圖形設(shè)計可以獨(dú)立進(jìn)行,無需擔(dān)心音頻可能在無意中“偷走”任何圖形計算資源。與運(yùn)行通用OS的多核CPU相比,預(yù)留計算單元實(shí)際上提供了更緊密(但更大)的沙箱。
圖形獨(dú)立于音頻,音頻獨(dú)立于圖形。只有內(nèi)存帶寬為共享資源,而對于這一點(diǎn),音頻占用的比例遠(yuǎn)小于圖形;DMA傳輸延遲則不足以形成影響??梢酝ㄟ^超過2秒的脈沖響應(yīng)實(shí)現(xiàn)低至1.33毫秒(48kHz 64采樣)的無雜訊卷積濾波器延遲,而典型的音頻游戲引擎則需要5到21毫秒的總緩沖延遲。
預(yù)留計算單元是一個提供給NDA合作伙伴的驅(qū)動程序功能。另外,有無預(yù)留計算單元都可使用TrueAudio Next庫。
AMD TrueAudio Next開源庫和由驅(qū)動程序控制的預(yù)留計算單元將能為虛擬現(xiàn)實(shí)帶來更高水平的音頻渲染真實(shí)感。我們十分期待開發(fā)者利用它們所創(chuàng)造的作品。
注:最高的技術(shù)級別一般稱為Fellow,級別上Fellow一般與VP平級。
評論
查看更多