低延時編碼在云手游的應用
云游戲概述
www.topvpu.com原創
云游戲(Cloudgaming)是以云計算為基礎的游戲方式,本質上為交互性的在線視頻流,所有游戲都在服務器端運行,并將渲染完畢后的游戲畫面壓縮后通過網絡傳送給用戶。目前國內云游戲廠商大致分為兩類:這一種是基于X86架構,主要解決PC游戲云化,即端游云游;第二種是基于ARM架構,主要解決移動游戲云化,即手游云游。本方案主要是針對手游云游。
云游戲系統實現框圖:流化、傳輸、渲染交互三大塊組成
流化:在云端邊緣計算節點中實現抓屏、編碼、網絡傳輸、解碼等流化過程。
流化處理主要是采集游戲音視頻數據編碼為音視頻流,為了提高處理效率與降低延時,云游戲視頻處理直接從GPU顯存獲取游戲畫面,然后傳到編碼模塊進行編碼輸出,減少了GPU與CPU之間拷貝導致的性能損失;音頻處理直接從聲卡獲取游戲聲音數據進行編碼輸出
傳輸:通過邊緣網絡來實現,選擇最短的鏈路打通邊緣節點與終端用戶的網絡通道。云游戲為了降低延時,傳輸采用實時流協議,如:常用的RTP/RTSP/RTC等協議,同時根據當前國內的網絡環境,針對云游場景進行了專門的自適應抗抖動優化。
傳輸自適應抗抖動處理:根據網絡狀況與終端渲染播放能力進行綜合判斷,自動調整視頻流的碼率,分辨率, 幀率,實現在弱網、網絡切換以及弱終端的最優體驗。
渲染交互:在用戶終端中實現,完成對游戲數據流的本地渲染呈現以及交互控制。
流化根據實現方式的不同,可分為視頻流與指令流兩種形態。游戲運行在帶有GPU的邊緣計算節點,將GPU生成的游戲圖像轉換為H.264/H265的視頻流以及音頻數據,通過網絡傳到終端,同時終端將操作指令如鼠標,鍵盤,觸控等數據回傳到服務器中。
云游戲三個挑戰及其應對
1. 畫質和成本:畫質要求高,碼率大。云游戲成本主要源于硬件與流量,提高單臺機器的編碼并發數,提升編碼壓縮比降低成本。CPU/GPU虛擬化,將資源利用最大化;針對不同的游戲場景,虛擬出不同的虛擬機,滿足低成本需求。用軟件編碼器,一路H.265視頻編碼就要消耗掉一個CPU核的資源,跑三四路1080P就把CPU資源吃光了,未來趨勢是使用硬件編碼代替軟件編碼
2. 維護:包括功耗,設備空間或者設備密度,設備升級,修復故障設備代價,設備監測工具軟件。U.2盤熱插拔特性避免GPU卡冷復位服務器中斷運營的致命缺陷
3. 延時:云游戲的延時在整個鏈路上由如下幾個部分組成:延時主要來自于輸入、網絡傳輸、編碼、解碼,終端渲染幾個部分;通過對整體鏈路的優化,將總延時控制在了50ms以內,保證一個好的游戲體驗。使用硬件編碼代替軟件編碼大幅降低延時
硬件云游戲編碼卡特點
1. 適用主流X86服務器,華為鯤鵬ARM服務器、AmpereARM服務器,飛騰ARM服務器
2. 物理機,容器/Anbox,SRIOV虛擬機,直通虛擬機等隔離構架的云端芯片硬件編碼
3. U.2卡不占用服務器PCIe槽位,支持熱插播
4. 1U服務器160路720P或者80路1080P并發/2U服務器384路720P或者192路1080P并發
5. 云游戲應用高畫質要求,畫質優于X265/X264,高動態編碼畫質不受CPU負載影響
6. 支持4KP60/1080P240/1080P120/1080P60/720P240/720P120/720P60分辨率和幀率
7. 單卡多路并發編碼延時不受CPU負載影響,720P3毫秒/1080P7毫秒編碼延時
8. 無縫適配英偉達Nvidia/AMD主流顯卡渲染方案
支持虛擬化特性(可選)
1. 安卓容器Docker:Anbox云手游
2. SR-IOV:超低延時,硬件的虛擬化,提高性能和可伸縮性
3. 虛機VM直通虛擬化:提升服務器效率
云游戲展望:原生云游戲
1. 移動,聯通,電信三大電信運營商都頭疼在邊緣云找到應用場景(很多5G邊緣節點關閉),專家預測如果云游戲運營成本降低90%,會引爆云游戲==》加速邊緣云應用早日落地,隨5G技術成熟和云游戲成本的降低,許多專家預言三年內云游戲會有機會取得突破,編碼技術在云游戲產業生態,起至關重要角色。芯片廠家只有芯片/板卡訂貨數量巨大,成本才會平民化。
2. 云原生游戲:打破服務端-客戶端的界線,統一“超級虛擬游戲機”系統。原生云游:免下載,免安裝,隨時隨地進行游戲的特性,讓用戶無需考慮設備配置,通過5G網絡和簡單的外設裝備、轉接設備就可以通過任意終端玩轉各種游戲。 云產品的API標準化就是各個云計算廠商的關鍵
3. 算力越大(并發編碼路數),同時支持在線玩家越多,單路成本越低
4. 元宇宙會成為互聯網的最終形態
總結
1. 游戲音視頻畫面的采集、編碼、傳輸、解碼、渲染等整個流程也是相互聯動和影響的。采集和編碼如何實現pipeline,包括編碼多tile/slice/分層/RPS、RDO/模式選擇快速算法/碼控/編碼參數動態調整、傳輸Pacing、丟包快速重傳以及跳幀等各種優化措施等都要加以考量,從而保障游戲畫面的高質量與實時性。
2. 編碼和傳輸相結合,我們會根據用戶實時網絡情況的BWE(帶寬評估)、NCC(網絡擁塞控制)、Pacing Rate(發送速率)等針對性調優;編碼碼控這方面會根據用戶網絡情況做自適應策略控制調整,對低延遲、流暢度、清晰度等分不同優先級作調整。
3. 云端計算資源是有限的,低延時、高幀率、高清晰度是相互矛盾的,我們根據用戶網絡環境和設備硬件配置情況不同的場景有不同解決方案。資源管理工具:起到負載感知和資源規劃作用,實時監測編碼路數,卡的載荷,并有效監測卡的狀態。
4. 編碼參數:通過視頻場景分類實時識別,根據場景識別結果,不同場景配置不同最優編碼參數,根據視頻源碼率、幀率、分辨率、紋理和運動變化幅度等情況以及綜合機器負載和畫質效果選擇最優編碼參數。比如:對于場景紋理和運動變化幅度大的低延時場景,我們通過設置修改默認來解決場景切換人,草,樹糊掉問題。
5. 通過音頻硬件編碼加速技術,將每幀編碼的時間控制在5ms以內,極大的降低編碼所帶來的延遲。在視頻壓縮技術上,通過與游戲引擎相結合,根據游戲內容動態調整視頻編碼,可以在不降低視頻質量的情況下,降低30%的網絡帶寬占用。
6. 得益于 HEVC ( H.265 )算法高效的視頻編碼能力,使碼率不怎么高也能做到極其清晰的畫面,H.265視頻壓縮技術降低30%的網絡帶寬占用。
7. 維護機制:PCIe總線復位,避免由于單卡故障,復位整個服務器,引起運營中斷
8. 未來云游戲向原生云游戲方向發展,高畫質,高分辨率,高幀率,強交互的低延時需求會逐漸變成現實。元宇宙也會逐漸走進人們的視野。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。
LM317相關文章:LM317中文資料