如果說,在以音視頻為載體傳輸信息、進行交互的技術(shù)領域,始終飄著一朵“烏云”,那么這朵“烏云”的名字,很可能既不是低延時,也不是高可靠,而是不斷變化的應用場景。
從Web 2.0到移動端基礎設施全面建成,我們完成了文字信息的全面數(shù)字化;而從 2016“直播元年”至今,圖像、語音信息的全面數(shù)字化則仍在推進中。最簡單的例證是,對于早期的流媒體直播而言,1080P是完全可接受的高清直播;但對于今天的流媒體而言,在冬奧會這樣的直播場景下,8k可能是個剛性需求,相比于 1080P,像素數(shù)量增長 16倍。
而且,今天的流媒體業(yè)務,對視頻流的要求不僅停留在分辨率上,也表現(xiàn)在幀率上。以阿里文娛 2019年底推出的“幀享”解決方案為例,它將畫面幀率推至 120 FPS,同時對動態(tài)渲染的要求也很高。過往人們總說,幀率超過 24 FPS,人眼就無法識別,因此高幀率沒有實際意義。但高幀率是否能提升觀看效果,與每幀信息量密切相關(guān),近幾年游戲開發(fā)技術(shù)的進步,以及以李安為代表的一眾電影導演,已經(jīng)徹底打破這一誤解。
對于 RTC來說,問題情境和對應的軟件架構(gòu)又截然不同。早期大家看賽事直播,20s的延遲完全可以接受。但在 RTC場景下,人與人的即時互動讓使用者對延遲的忍耐度急劇降低,從 WebRTC方案到自研傳輸協(xié)議,相關(guān)嘗試從未停止。
當我們以為,所謂的場景問題,終于可以被抽象為有限的幾個技術(shù)問題,并將延遲壓入 100ms以內(nèi),可靠性提升至 99.99%,新的場景又出現(xiàn)了。全景直播、VR全球直播,云游戲……其中又以云游戲最為典型——云游戲簡直是過去那些音視頻場景性能要求的集大成者:有的游戲要求延時低至 50ms以內(nèi);有的要求 FPS 60以上;分辨率不消說,肯定是越高越好。同時云游戲場景夾雜著大量的動態(tài)渲染任務,無一不在消耗著服務器資源,增大著全鏈路的傳輸延時。
那么,如果從云游戲場景的性能要求出發(fā),進而擴展至整個超視頻時代的架構(gòu)體系,該以怎樣的思路來進行架構(gòu)設計呢?只關(guān)注軟件,可能不太行的通;硬件成為必須納入考慮的一環(huán)。
以軟件為中心并非最佳選擇
要解釋這個問題,必須重新回顧下常規(guī)的云游戲技術(shù)架構(gòu)。下圖主要參考自英特爾音視頻白皮書、華為云游戲白皮書,并做了相應調(diào)整,基本與當前環(huán)境下,大部分云游戲架構(gòu)的設計相符。
在這一架構(gòu)內(nèi),至云游戲終端前,所有服務都在云端、公共網(wǎng)絡上完成,保證用戶無需下載游戲或是為了玩游戲購置高性能終端。游戲玩家的終端,主要負責對網(wǎng)絡包進行處理、對渲染后的游戲畫面進行解碼、顯示,并相應地輸入指令,回傳給服務器。
而在服務器端,鏈路相對復雜。云游戲管理平臺是服務的起點,上下兩條鏈路,都是云游戲的周邊技術(shù)服務,與業(yè)務場景強相關(guān),包括云游戲的直播錄制、游戲日志 /記錄存儲等。前者對時延忍耐度較高,可以走正常的流媒體服務體系,使用 CDN分發(fā)音視頻內(nèi)容;后者屬于正常的游戲服務器設計范疇,正常提供服務即可。
關(guān)鍵在于中間一層,也就是云游戲容器集群。這一部分要實現(xiàn)的設計基礎目標是保障 1s至少完成 24張游戲畫面(24幀)的計算、動態(tài)渲染和編碼傳輸,部分高要求場景需要幀率達到 60 FPS,同時保證時延盡可能得低。
這部分的技術(shù)挑戰(zhàn)非常大,以至于若僅以軟件為中心思考,很難做出真正突破。從相關(guān)指標的演進歷史來看,僅僅在 4年前,移動端游戲本地渲染的基礎目標還是 30 FPS,如今雖然能實現(xiàn) 60 FPS甚至更高,但討論的場景也從本地渲染切換成了云端渲染。在軟件上,除非出現(xiàn)學術(shù)層面的突破,否則很難保證性能始終保持這樣跨度的飛躍。
此外,渲染本來就是嚴重倚仗硬件的工作,渲染速度和質(zhì)量的提升,主要依賴于 GPU工藝、性能以及配套軟件的提升。
3D游戲渲染畫面
而更為復雜的游戲性能以及整體時延的控制,則對整個處理、傳輸鏈路提出了要求。僅以時延為例,它要求在編碼、計算、渲染、傳輸?shù)热魏我粋€環(huán)節(jié)的處理時間都控制在較低范圍內(nèi)。同樣是在 3—4年前,有業(yè)界專家分享,他們對 RPG類云游戲的傳輸時延容忍度是 1000 ms,但事實證明,玩家并不能忍受長達 1s的輸入延遲。反觀今日,無論是通過公有云 + GA方案,還是通過自建實時傳輸網(wǎng)絡方案,即便是傳輸普通音視頻流的 RTC服務也只能保證延時 100ms以內(nèi),而云游戲的計算量和帶寬需求數(shù)倍于普通音視頻服務。
以上僅僅是冰山一角。對于架構(gòu)設計而言,除了高性能、高可用、可擴展性三類設計目標外,成本也是必須要考慮的平衡點——需要 1000臺服務器的架構(gòu),和需要 100臺服務器的架構(gòu),壓根不是一個概念。2010年前后,云游戲基本不存在 C端商業(yè)化可能,雖然整體時延和性能指標可以滿足當時的要求,但代價是一臺服務器只能服務一個玩家,單個玩家服務成本上萬。云游戲“元老” Onlive公司的失敗,在當時非常能說明問題。
而到了 2020年,行業(yè)硬件的整體性能提升后,一臺服務器可支持 20 - 50路并發(fā),性能提升了幾十倍。
那么,如果我們將硬件變成架構(gòu)設計的核心考慮要素,會是什么樣的呢?大致如下圖所示(為了不讓圖示過于復雜,我們只保留了云游戲核心服務鏈路,以作代表)。
可以看到,僅在云服務器部分,就有大量的硬件和配套軟件需要參與進來,要關(guān)注的性能點也相對復雜。而這僅僅是云游戲一個應用場景下的音視頻架構(gòu),當我們將場景抽象并擴展,最終覆蓋到整個超視頻時代的時候,以下這張來自英特爾技術(shù)團隊的架構(gòu)圖,可能更加符合實際。英特爾將音視頻體系架構(gòu)在軟件和硬件層面分別進行了展示:一部分叫做 Infrastructure(基礎設施層),如圖一所示;另一部分則稱其為 Infrastructure Readiness (基礎設施就緒),指的是基礎設施就緒后,建立在其上的工作負載,如圖二所示。兩張圖的首尾有一定重合,表示其頭尾相接。
圖一:基礎設施層
圖二:基礎設施就緒后的工作負載
可以看到,基礎設施層主要包括硬件、配套云服務、云原生中間件以及各類開源基礎軟件。而在工作負載層面,是大量的軟件工作,包括核心的框架、SDK以及開源軟件貢獻(UpStream)。這也是為什么英特爾以硬件聞名,卻維持著超過一萬人的軟件研發(fā)團隊。
拆解軟硬一體的音視頻架構(gòu)方案
基礎設施層
在基礎設施層,我們的首要關(guān)注對象就是硬件,尤其是對于音視頻服務來說,硬件提升對業(yè)務帶來的增益相當直接。
但相比于十年前,當前的硬件產(chǎn)品家族的復雜度和豐富度都直線上升,其核心原因無外乎多變的場景帶來了新的計算需求,靠 CPU吃遍天下的日子已經(jīng)一去不復返了。以前面展示的英特爾硬件矩陣為例,在音視頻場景下,我們主要關(guān)注 CPU、GPU、IPU,受限于文章篇幅,網(wǎng)卡一類的其他硬件不在重點討論范圍內(nèi)。
在 CPU方面,英特爾已更新至強?第三代可擴展處理器,相比第二代內(nèi)存帶寬提升 1.60倍,內(nèi)存容量提升 2.66倍,采用 PCIe Gen 4,PCI Express通道數(shù)量至多增加 1.33倍。其中,英特爾?至強?Platinum 8380處理器可以達到 8通道、 40個內(nèi)核,主頻 2.30 GHz,英特爾支持冬奧會轉(zhuǎn)播 8k轉(zhuǎn)播時,CPU側(cè)的主要方案即是 Platinum 8380。
英特爾 CPU另外一個值得關(guān)注的特點,在于其配套軟件層面,主要是 AVX-512指令集。AVX-512指令集發(fā)布于 2013年,屬于擴展指令集。老的指令集只支持一條指令操作一個數(shù)據(jù),但隨著場景需求的變化,單指令多數(shù)據(jù)操作成為必選項,AVX系列逐漸成為主流。目前,AVX-512指令集的主要使用意義在于使程序可同時執(zhí)行 32次雙精度、64次單精度浮點運算,或操作八個 64位和十六個 32位整數(shù)。理論上可以使浮點性能翻倍,整數(shù)計算性能增加約 33%,且目前只在 Skylake、 Ice Lake等三代 CPU上提供支持,因此也較為獨特。
在視頻編解碼、轉(zhuǎn)碼等流程中,因為應用程序需要執(zhí)行大規(guī)模的整型和浮點計算,所以對 AVX-512指令集的使用也相當關(guān)鍵。
而 GPU方案在云游戲場景中,通常更加引人矚目,英特爾?服務器 GPU是基于英特爾 Xe架構(gòu)的數(shù)據(jù)中心的第一款獨立顯卡處理單元。英特爾?服務器 GPU基于 23W獨立片上系統(tǒng)(SoC)設計,有 96個獨立執(zhí)行單元、128位寬流水線、8G低功耗內(nèi)存。
所謂片上系統(tǒng) SoC,英文全稱是 System on Chip,也就是系統(tǒng)級芯片,SoC包括但不僅限于 CPU、GPU。就在今年,前 Mac系統(tǒng)架構(gòu)團隊負責人、蘋果 M1芯片的“功臣” Jeff Wilcox宣布離開蘋果,擔任英特爾院士(Intel Fellow)、設計工程事業(yè)群(Design Engineering Group)CTO,并負責客戶端 SoC架構(gòu)設計,也在行業(yè)內(nèi)引起了眾多關(guān)注。
當然,只有 GPU硬件本身是不夠的,英特爾?Media SDK幾乎是搭配 GPU的必選項。英特爾?Media SDK提供的是高性能軟件開發(fā)工具、庫和基礎設施,以便基于英特爾?架構(gòu)的硬件基礎設施上創(chuàng)建、開發(fā)、調(diào)試、測試和部署企業(yè)級媒體解決方案。
其構(gòu)成可參考下圖:
IPU是為了分擔 CPU工作負載而誕生的專用芯片,2021年 6月,英特爾數(shù)據(jù)平臺事業(yè)部首席技術(shù)官 Guido Appenzeller表示:“IPU是一種全新的技術(shù)類別,是英特爾云戰(zhàn)略的重要支柱之一。它擴展了我們的智能網(wǎng)卡功能,旨在應對當下復雜的數(shù)據(jù)中心,并提升效率?!?/p>
具體落地在音視頻場景里,IPU要負責處理編碼后的音視頻流的傳輸,從而解放 CPU去更多關(guān)注業(yè)務邏輯。所以,CPU + GPU + IPU的組合,不僅是在關(guān)注不同場景下的需求滿足問題,實際上也在關(guān)注架構(gòu)成本問題。
工作負載層
從基礎設施過渡到工作負載,實際上有一張架構(gòu)圖,更詳細的展示了相關(guān)技術(shù)棧的構(gòu)成:
在這張架構(gòu)圖中,橫向是從源碼流輸入到分發(fā)的整個流程,期間包含了編碼、分析等處理動作;而縱向則展示了要服務于這條音視頻處理流程,需要搭配的硬件和軟件體系。
OneAPI作為異構(gòu)算力編程模型,是橋接基礎設施和上層負載的關(guān)鍵一層,這不必多言。而到了負載層,軟件則分成了藍色和紫色兩個色塊。藍色代表直接開源軟件,紫色則代表經(jīng)過英特爾深度優(yōu)化,再回饋(Upstream)給開源社區(qū)的開源軟件。
在藍色部分,OpenVino是個很有意思的工具套件,它圍繞深度學習推理做了大量的性能優(yōu)化,并且可以兼容 TensorFlow、Caffe、MXNet和 Kaldi等深度學習模型訓練框架。當音視頻體系需要加入 AI技術(shù)棧以服務超分辨率等關(guān)鍵需求時,OpenVino會起到關(guān)鍵作用。
紫色部分的 x.264/x.265是一個典型。作為音視頻行業(yè)最主流的編碼標準,英特爾使其開源的主要貢獻者,而且 AVX-512指令集也專門圍繞 x.264/x.265做了優(yōu)化和性能測試。
另一個值得關(guān)注的核心是編碼器,它橫跨了藍色區(qū)域和紫色區(qū)域,既有行業(yè)通用的 ffmpeg,也有英特爾自研的 SVT,二者同樣引人關(guān)注。
關(guān)于編解碼器的選型思考
在流媒體時代,著名開源多媒體框架 ffmpeg是業(yè)界在做編解碼處理時,絕對的參考對象。說白了,很多編解碼器就是 ffmpeg的深度定制版本。到了 RTC時代,出于更加嚴苛的及時交互需求,自研編解碼器盡管難度頗高,但也在研發(fā)能力過硬的企業(yè)中形成了不小的趨勢。
可歸根結(jié)底,在推進以上工作時,軟件始終是思考的出發(fā)點,從業(yè)者們多少有些忽略對硬件的適配。
SVT的全稱是 Scalable Video Technology,是開源項目 Open Visual Cloud的重要組成部分,針對英特爾多個 CPU進行了高度優(yōu)化,因此在英特爾硬件體系上,性能表現(xiàn)非常突出。SVT設計最樸素的初衷,是針對現(xiàn)代 CPU的多個核進行利用率方面的提升,比如依仗硬件上的多核設計并行對多個幀同時處理,或?qū)σ粡垐D像分塊進而并行處理,大大加快處理速度,避免多核 CPU空轉(zhuǎn)。
更為人所熟知的可能是后來這個叫做 SVT-AV1的開源項目,AV1開源視頻編碼,由英特爾、谷歌、亞馬遜、思科、蘋果、微軟等共同研發(fā),目的是提供相比 H.265更高效的壓縮率,降低數(shù)據(jù)存儲和網(wǎng)絡傳輸?shù)某杀尽?/p>
而就在今年上半年,英特爾發(fā)布了其用于 CPU的開源編解碼器 SVT-AV1的 1.0版,相比 0.8版本,性能上有著巨大提升。
結(jié)束語
歸根結(jié)底,盡管“摩爾定律”還在繼續(xù),但當下已過了靠吃“硬件紅利”就能搞定新應用場景的“甜蜜期”。
今天,我們需要了解的是以 CPU、GPU、加速器和 FPGA等硬件為核心的復合架構(gòu),也被稱之為由標量、矢量、矩陣、空間組成的 SVMS架構(gòu)。這一概念由英特爾率先提出,并迅速成為業(yè)內(nèi)最主要的硬件架構(gòu)策略。
位于硬件之上的開發(fā)者工具也存在同樣的趨勢,英特爾的 oneAPI就是一個典型作品。只是對于開發(fā)者工具來說,目前最主要的工作不是性能提升,而是生態(tài)和整合。
從硬件到基礎軟件,再到開發(fā)者工具,整個基礎設施層呈現(xiàn)高度復雜化的架構(gòu)演進趨勢,既是對架構(gòu)師工作的嚴峻挑戰(zhàn),也給了所有架構(gòu)師更大的發(fā)揮空間。對于架構(gòu)師來說,如何為自己的企業(yè)算清楚成本,在追求高性能、高可用的同時,將硬件一并納入考慮并高度重視,才是重中之重。
更多詳情可以前往英特爾官網(wǎng)獲取《英特爾互聯(lián)網(wǎng)行業(yè)音視頻創(chuàng)新實踐》白皮書!
免責聲明:以上內(nèi)容為本網(wǎng)站轉(zhuǎn)自其它媒體,相關(guān)信息僅為傳遞更多信息之目的,不代表本網(wǎng)觀點,亦不代表本網(wǎng)站贊同其觀點或證實其內(nèi)容的真實性。如稿件版權(quán)單位或個人不想在本網(wǎng)發(fā)布,可與本網(wǎng)聯(lián)系,本網(wǎng)視情況可立即將其撤除。
互聯(lián)網(wǎng)新聞信息服務許可證10120230012 信息網(wǎng)絡傳播視聽節(jié)目許可證0121673 增值電信業(yè)務經(jīng)營許可證京B2-20171219 廣播電視節(jié)目制作經(jīng)營許可證(京)字第10250號
關(guān)于我們 中宏網(wǎng)動態(tài) 廣告服務 中宏網(wǎng)版權(quán)所有 京ICP備2023030128號-1 舉報電話:010-63359623
Copyright ? 2016-2025 by www.uokii.com. all rights reserved 運營管理:國家發(fā)展和改革委員會宏觀經(jīng)濟雜志社