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