從360度視頻到Oculus,通過Facebook 360音頻編碼與渲染都可實現身臨其境的感受,并且使用的聲道更少,小于0.5毫秒的渲染延遲。
? 全新的360度空間音頻編碼和渲染技術,使得空間化的音頻在從編輯者到用戶的整個處理過程中,都能保持高質量。這一技術有望首次實現大規模商用。
?我們支持一種被稱為“hybrid higher-order ambisonics(混合高階立體聲高保真混響)”的技術,使得空間化的聲音在整個處理過程中依舊能保持很高的質量。這是一個具有渲染與優化功能的8聲道音頻處理系統,可借助更少的聲道實現更高的立體聲質量,最終達到節省帶寬的目的。
? 我們的音頻系統同時支持空間化音頻和頭部定向音頻。在空間化音頻中,當聽到來自某種場景的聲音時,系統會根據用戶在360度全景視頻的體驗中,頭部會轉向不同的方向作出不同反應。通過頭部定向音頻,人物對白和背景音樂等音頻在方位上會保持靜止。這是我們在業界第一次實現同時渲染混合高階立體聲和頭部定向音頻。
? 空間音頻渲染系統能夠為開發者帶來延遲小于半毫秒的實時渲染體驗。
? FB360編碼器工具可以將處理后的音頻傳輸至多個平臺。用于音頻渲染的SDK可集成在Facebook和Oculus Video之中,保證了從制作到發布的體驗統一性。這樣可以節省工作時間,并確保開發者在制作中聽到的內容和最終發布的內容一致。
Facebook上的360度全景視頻體驗令人驚嘆,給人帶來身臨其境的非凡體驗。但如果想獲得更加完美的視聽體驗,也可能需要360度空間音頻。當用戶使用360度空間音頻時,每種聲音聽起來像是從空間中對應的方位發出,就像我們在現實生活環境中感知聲音一樣。在攝像機上方飛行的直升機轟鳴聽起來就像是在用戶的上方,在攝像機前方的演員對白聽起來就像是在用戶的前面。當用戶環視整個視頻畫面時,系統需要根據用戶頭部方向的變化作出反應并將每種聲音重新定位到畫面上的相應位置。無論是通過手機,瀏覽器還是VR頭戴顯示器,當用戶每次觀看360度全景視頻時,音頻都需要被重新計算并更新方位以完美還原用戶真實的空間感受。
簡而言之,為了實現這種效果,我們必須開發一種即使不依賴放置了揚聲器的大房間也能為用戶帶來超越影院沉浸感的音頻處理系統。在等待我們解決的一系列問題中,首要的是必須架構能夠反映真實世界環境的音頻環境,并通過耳機以更高的聲音解析度呈現給用戶,同時不斷追蹤用戶的視覺方位。通過頭戴式耳機聽到的常規立體聲可能會幫助用戶了解聲音是在自己的左耳還是右耳播放,但它不會幫助用戶感知環境中聲音的深度或高度,也無法準確感知聲音是源于自己的前方還是在后方。
創造這種空間化聽覺體驗并將其大規模商用化需要許多新技術。盡管空間音頻研究正在學術領域如火如荼地進行,但到目前為止,還沒有出現可靠的端到端的傳輸方式能將這種技術大規模地推向消費市場。最近我們推出了新的用戶工具和渲染方法,這使得我們首次有機會為大規模的消費市場提供高質量的空間音頻技術。這些渲染技術被應用于一個名為“空間音頻工作站”的新型強大工作平臺,使創作者能夠在360度全景視頻中添加空間化音頻。該渲染系統也適用于Facebook應用程序,這樣用戶便可以通過Facebook聽到創作者上傳的同樣生動的全景音頻。
這兩項改進都能幫助視頻制作人在多種設備與平臺上重塑現實。我們在這篇文章中,將探討我們已經探索到的一些技術細節。不過先讓我們了解一下空間音頻的發展歷史與背景。
初識空間音頻
由于頭相關傳輸函數(HRTFs)的存在,通過耳機使用戶聽到具有逼真空間感的聲音是有可能實現的。 HRTFs幫助開發者構建可應用于音頻流的音頻濾波器,使得聲音聽起來像是位于其特定的正確位置 ——在聽者之上、之后或旁邊等等。 HRTFs通常適用于具有人類主體模型或人體頭部和軀干模型的消聲室中,但通過其他方法也可以達到這種效果。
如果想讓用戶在觀看全景視頻時也聽到全景聲,開發者必須將聲音放在正確的位置。換句話說,他們必須設計并傳輸空間音頻。有很多方法可以實現這一點。其中一種方法是基于對象的空間音頻,場景中的每個對象(例如,直升機或演員)單獨發出的聲音會被保存為具有位置元數據的離散流。大多數游戲的聲音環境架構使用的便是這種基于對象的空間音頻渲染系統,因為每個音頻流的位置可根據玩家移動的位置而隨時變化 。
Ambisonics技術是另一種能夠展現整個聲場的空間音頻方法。我們可以將其視為音頻的全景照片。多聲道音頻流可輕松用于展現整個聲場,這使得與基于對象的空間音頻處理技術相比具有更容易進行轉碼和流式傳輸。一個 Ambisonic的流可以通過各種方案來呈現。這些方案最大的區別在于the order of the ambisonic sound field。一階聲場會產生四個聲道數據,而三階聲場則會產生16個聲道數據。通常,較高的聲階意味著更好的音質和更準確的空間定位。我們可以將低階的ambisonic sound field理解為模糊的全景照片。
工作流程與工具
Spatial Workstation空間音頻工作站是我們開發的一套音頻處理工具,可幫助專業音效設計師設計能夠用于360度全景視頻和線性VR體驗的空間音頻。該工作站與現有音頻工作站相比具有更強大的音頻處理能力,開發者借此可以根據360度全景視頻在三維空間中定位聲音,同時通過VR耳機上的聲音輸出端對空間音頻進行預聽。這開創了一套貫穿內容創建到發布整個過程的高質量“端到端”工作流程。
傳統的立體聲音頻只包括兩個音頻通道。我們使用Spatial Workstation開發的系統可實現八個音頻通道的輸出。因為聲場已被優化調整以適應VR和360全景視頻,我們將此稱為混合高階ambisonic系統。這套系統被整合(tuned)到我們的空間音頻渲染器中,這樣能最大限度地提高聲音的質量和位置精度,同時把對性能的要求和延遲時間降至最低。此外,Spatial Workstation還可以輸出兩個頭部定向音頻聲道。此時輸出的,是一個不會對頭部進行追蹤并以旋轉來作出響應的立體聲流,此時聲音將保持被“鎖定”到頭部周圍某個方位的狀態。大多數360度全景體驗使用的是混合的空間化音頻和頭部定向音頻,空間化音頻可用于在360度全景內進行的動作,而頭部定向音頻可用于旁白或背景音樂。
SPATIALIZED / HEAD-LOCKED
非凡的渲染效果
我們的空間音頻渲染器凝萃了我們這幾年開發的一系列技術,可以將空間音頻輕松擴展到廣大不同類型和配置的設備中,同時保持最佳質量。渲染器使用參數化和表示HRTFs的方式,可以衡量HRTFs的各個組成部分來決定在渲染時是側重速度還是質量,或在兩者之中找到一個最佳的均衡點。除此之外,我們的渲染器音頻延遲小于半毫秒,比大多數渲染器低一個數量級,這使得它非常適合用于優化全景音視頻的實時體驗,例如帶頭部追蹤的全景視頻。
這種靈活性有利于全景音視頻在一系列臺式計算機,移動設備和瀏覽器等載體上的傳播。我們的渲染器被調整優化,能為不同平臺的用戶帶來協調統一的工作體驗,并且在這些不同的平臺上都能很好地工作。對于創建高質量的空間音頻而言,這種一致性非常重要。由于對運行性能有不同的要求,音頻可能在不同平臺或設備上呈現出不同的效果,這樣對于整個生態而言顯然是不利的。我們希望在如Facebook這樣的平臺的大規模使用下確保全景音視頻在各種常用設備和生態中都能一致保持優秀的質量。
跨平臺高效工作
渲染器是Audio360音頻引擎的一部分,它可以將混合高階ambisonic和頭部定向音頻流空間化。音頻引擎是用C ++編寫的,這為每個平臺提供了優化的矢量指令。它非常輕量,可通過多線程和Lock-Free system進行列隊(queueing)與空間化(spatialization)工作并混合(mixing)。它還能直接與每個平臺上的音頻系統(Android上的openSL,iOS / macOS上的CoreAudio,Windows上的WASAPI)進行交流協作,以最大限度地減少輸出延遲并盡可能地提高處理效率。這種輕量化設計不僅可以讓開發者時刻保持高效工作,還能通過保持二進制大小(binary size small)來減少應用程序的臃腫。音頻引擎中二進制文件會被編譯為大約100千字節。
對于Web,音頻引擎使用Emscripten編譯為asm.js。這有助于我們在所有平臺上進行維護、優化并使用相同的代碼庫。該代碼只需很少修改就能在瀏覽器中正常工作。渲染器的靈活性和高速性使我們能夠在各種瀏覽器中使用相同的技術來保證音頻質量。這種情況下的音頻引擎被用作WebAudio中的定制處理器節點,其中的音頻流會從Facebook視頻播放器排列至音頻引擎中,同時來自音頻引擎的空間化音頻被傳遞到WebAudio并通過瀏覽器回放。與原生C ++實現相比,JS版本只能在2倍慢速或4倍慢速下運行,這對于實時處理而言還是足夠的。
隨著電子設備和瀏覽器的處理速度一年年變得更快,各種設備和瀏覽器的瀏覽速度都會大幅進化,渲染器和音頻引擎的靈活性和跨平臺特性使我們能夠隨之不斷提升聲音的質量。
從編碼到客戶端
空間音頻編碼和其文件格式的世界正處于迅速發展不斷變革的狀態。我們希望盡可能方便地將使用Spatial Workstation制作的內容編碼并上傳到Facebook,以便在人們能在所用的所有設備上觀看和收聽。Spatial Workstation編碼器能準備好8聲道空間音頻和立體聲頭部定向音頻,與360度全景視頻一起打包至一個文件并上傳到Facebook。
編碼器的選取優化
在尋找可行的文件格式方面我們遇到了一些挑戰。主要面臨幾個約束條件,其中的一些可以先放一放,但迫切需要解決的是盡早提供一種合適的編碼器。主要的限制因素是將視頻轉碼成Facebook的原生視頻格式:H.264編碼的MP4格式視頻時盡可能地減少整個過程中聲音質量的損失,這意味著存在以下實際限制:
?MP4中的AAC支持8個頻道,但不支持10個頻道。
?AAC編碼器將8聲道音頻看作是7.1環繞聲格式,它采用積極的低通濾波器和其他技術來壓縮LFE聲道。這不符合我們致力于呈現的空間音頻。
?MP4元數據,是可擴展的,但會繁瑣地利用工具,如ffmpeg或MP4Box工作。
我們選擇使用MP4文件中包含三條音軌的頻道進行配置。前兩個是沒有LFE的四聲道音軌,共有八個非LFE聲道。第三首曲目是立體聲頭部定向音頻。我們以高比特率進行編碼,以最大限度地減少從WAV轉換到AAC時的質量損失,因為這些音軌將在服務器上再次進行轉碼以準備通過客戶端傳送。
在Facebook,我們擁有核心工程價值(core engineering valve)以實現快速的技術革新。我們認為,隨著用來編輯音頻的工具和相應功能的不斷更新,我們沒能及時考慮清楚可能需要傳達的所有信息。出于這個原因,我們需要一個前向擴展(forward-extensible)且易于使用的元數據解決方案。定義我們自己的MP4盒子類型感覺很脆弱,所以我們決定將元數據放入一個位于元框中的xml框中。 XML可以遵循一種能按照開發者的需求快速進化的模式。 MP4Box工具可用于從MP4文件中讀取和寫入此元數據。我們為每個音軌(在trak框下)存儲元數據,為該音軌定義聲道布局。然后,我們還在文件級(在moov框下)編寫全局元數據。
空間工作站編碼器也會將視頻作為輸入的部分。該視頻被整合到生成的文件中,無需轉碼,并將寫入適當的視頻空間元數據,以便在上傳到Facebook時服務器將其作為360度全景視頻進行處理。
YouTube目前需要四個頻道來支持一階立體聲效果。我們同樣支持這種格式的視頻。
高效便捷的轉碼操作
一旦開發者上傳了具有360度全景視野和360度空間聲音的視頻,這些視頻就已經準備好推送至各種設備的客戶端。音頻以多種格式進行類似的處理。我們提取音頻元數據(無論是YouTube ambiX還是Facebook 360格式)以確定音軌和頻道一一映射,然后將其轉制為各種需要的格式。與其他的所有視頻一樣,有時為了便于比較,我們會使用多個編碼器設置進行轉碼,來獲得最佳的完整體驗;我們還準備了與所有傳統客戶端兼容的立體聲雙耳渲染技術,并在出現任何問題時將其作為備選方案。
音頻與視頻可以分開處理,并通過使用自適應流媒體協議合并傳送給客戶端。
向客戶交付作品
不同的客戶端具有不同的功能并支持不同的視頻容器/編解碼器格式。我們不能強制所有設備都同時支持一種格式,因此我們為iOS,Android和網絡瀏覽器準備了不同的格式。這令用戶可以跨平臺地在這些設備上控制視頻播放器,根據不同需求實現特殊行為,但我們更喜歡經過充分測試并且不需要花費額外時間去執行的現有代碼。出于這個原因,在iOS上我們更喜歡把MP4格式文件作為視頻載體,在Android和Web瀏覽器上我們更喜歡使用WebM。在iOS和Android上,與單聲道或立體聲音軌不同,解碼10聲道AAC音頻不直接受本機支持或單純依賴硬件加速。上述這些有關AAC以及8聲道或10聲道音頻的問題,使我們發現了特別的編解碼器——Opus正在被其他人用于空間音頻,利用Opus編解碼器可實現更好的壓縮。它是一款先進的開源編解碼器,它的軟件解碼速度比AAC更快。這使Opus自然而然成為我們的最佳選擇,特別是對于WebM這種視頻格式。大多數編碼器或解碼器目前不支持MP4下的Opus。但是,這里有一份實現MP4下的Opus的擬定草案,并且我們正在進行一項工作來支持ffmpeg。
當我們將上傳的文件(“4 + 4 + 2”)中的三音軌格式轉換為單個10聲道Opus音軌時遇到了一些挑戰。與AAC一樣,允許的信道映射和LFE信道也是一個問題。然而,Opus允許未定義的頻道映射族(255族),意味著這些頻道并不是已知的布局。這項工作已經足夠完善了,因為我們控制了編碼和解碼,并且我們可以確保兩端的布局具有相同的理解相同。我們在流動的清單文件中傳輸通道布局信息。未來,隨著Opus中的空間音頻技術的成熟,可能會出現一些特定的能實現在大幅減小文件體積的同時顯著提升音頻質量的通道映射和增強編碼技術。這樣,我們的客戶將能以最小或無需更改的方式對空間音頻其進行解碼。
未來的發展方向
我們處于一個不斷拓展和進化的空間音頻先進領域 ——正在改進優化非空間視頻和音頻所采用的格式。我們所做的一切,開創了全新的視聽體驗并將其變成現實。但還有很多的事情需要去做:上下堆疊組件、 從工作站到視頻文件格式等方面都需要進行改進。目前,我們正在研發可以將所有音頻存儲在一個音軌中進行上載的文件格式,并有可能實現無損編碼。同時我們也對Opus中改善空間音頻壓縮的項目十分感興趣。我們期望探索自適應比特率和自適應信道布局技術,以改善那些受帶寬所限的用戶、或是擁有足夠多的帶寬并期待獲得更高質量內容的用戶的使用體驗。這是一個令人興奮的領域,我們期待為整個音視頻生態作出更多卓越貢獻。
LiveVideoStack Meet | 上海
多媒體開發新趨勢
2018年初的視音頻技術生態并不平靜,Codec的爭奪進入群雄逐鹿的時代; WebRTC 1.0版定稿在瀏覽器中,移動端乃至IoT上的多媒體通信; AI,區塊鏈技術的發展,正在與多媒體開發發生在化學反應,將成為推動生態發展的新力量。
2018年,LiveVideoStack將通過“LiveVideoStack Meet:多媒體開發新趨勢”系列沙龍,展現新技術在音視頻領域的探索與實踐,以及新興應用場景和傳統行業的最新最佳實踐。
-
編碼器
+關注
關注
45文章
3663瀏覽量
135029 -
音頻編碼
+關注
關注
0文章
35瀏覽量
12888
發布評論請先 登錄
相關推薦
評論