• 152870

      文章

    • 1250

      評論

    • 6

      友鏈

    • 最近新加了換膚功能,大家多來逛逛吧~~~~
    • 喜歡這個網站的朋友可以加一下QQ群,我們一起交流技術。

    將渲染計算搬到云端,開啟低成本、強交互、沉浸式體驗

    云渲染可以解放本地計算需求,這意味著生產力的大幅提升。

    云渲染的基本原理是將3D渲染應用部署到云端,接收本地的控制指令發送到云端,云端啟動游戲引擎并進行畫面渲染,編碼成視頻流傳輸到本地。

    不難看出,云渲染技術的核心在于將計算搬到云端,對渲染出的畫面進行流化的傳輸。而過程中渲染畫面的抓取、編碼、傳輸、顯示等流程被稱為串流。

    串流是云渲染業務用戶體驗的核心,串流延時、畫質、卡頓等都會直接影響到用戶體驗。

    云渲染串流技術框架主要分為兩部分:云端串流引擎串流客戶端。

    云端串流引擎:在云端GPU上,響應客戶端發送過來的控制指令,啟動渲染應用并進行串流視頻的處理與發送。引擎往下適配各種OS和硬件,往上對接調度和業務系統。

    串流客戶端:串流客戶端類似一個播放器,進行串流視頻的接收和編碼,同時發送控制指令來操作云端渲染引擎。云端串流引擎和串流客戶端通常是一對一的。

    基于云渲染串流技術能夠大幅度弱化本地GPU渲染應用壓力,將復雜資源處理過程遷移至云端進行,本地計算需求退化為一個播放器。

    01 云渲染串流的三大技術挑戰

    云渲染的核心技術指標與挑戰主要有以下三方面:延時、畫質與流暢度、成本(包括GPU計算成本和傳輸帶寬成本)。

    首先,延時是云渲染串流技術體驗的基礎,超低延時的需求則帶來了巨大的技術挑戰。云渲染串流過程中的延時主要分為兩方面:

    端到端的延時:音視頻通話250ms以下延時已經難度很大,對于云渲染串流技術而言,想要將端到端延時控制在100ms內更是難上加難。

    Motion to Photo的延時:比如在VR云游戲場景下,使用頭盔進行頭部轉動動作時,畫面上的延時稱作Motion to Photo的延時,為保障用戶體驗需要將該延時控制在20ms以內。

    對于畫質和流暢度來說,云渲染需要輸出視頻流,畫質與流暢度作為用戶直觀的體驗,其技術帶來的挑戰主要在以下三方面:

    1.面臨復雜網絡環境與不穩定的帶寬,能否保障畫面清晰度與流暢度;

    2.畫質、碼率、計算成本三角關系的平衡;

    3.技術先進性和兼容性的平衡,如:更先進的編碼技術H265雖然能夠提升畫質,但其解碼性能和兼容性如何保障?

    在成本方面,目前來看,云游戲、云渲染正在蓬勃發展,但離實現商業化盈利仍然路途遙遠。首先,云渲染GPU資源存在一對一獨占資源的特點,單用戶消耗的計算資源較高。其次,云游戲存在明顯的業務高峰,通常集中在晚間,其他閑時資源如何利用成為了一大問題。最后,如前文提到,云渲染對畫質和幀率有較高要求,如何在保障用戶體驗的同時降低每個渲染進程的資源消耗。

    02 多維度優化云渲染策略

    延時優化

    下圖對全鏈路延時進行拆解,其中如指令傳輸、音視頻流控&QoS等環節的延時波動較小,優化工作主要針對傳輸、編解碼的延時進行。

    傳輸延時優化

    由于云渲染服務與理距離來減少延時,基于高覆蓋的ENS邊緣節點集群進行就近處理與傳輸,通過調度將任務下發至離用戶最近的GPU節點進行處理與串流工作。

    其次可以通過傳輸協議上的優化來減少延時。取代傳統的RTMP、HLS協議,轉向采用RTC協議進行傳輸,同時針對云渲染的場景特點來制定QoS策略,如帶寬估計、擁塞控制等來實現優化效果。

    編/解碼延時優化

    影響編碼延時的主要因素是幀級的線程緩存、lookahead緩存、B幀。優化編解碼延時的核心思路是“進一幀,編一幀,出一幀”,不進行任何緩存,用slice thread 代替 frame threads,關閉lookahead與關閉B幀(在HEVC標準下,可采用GPB編碼方式,將普通B幀用低延時B幀進行替代,既能提升畫質又能降低延時)。

    畫質與流暢度優化

    畫質與流暢度呈現的關系如同蹺蹺板,為了保障用戶體驗往往需要在兩者之間進行平衡。

    在云渲染場景下,編碼需要與網絡進行聯動,通過實現網絡自適應傳輸與編碼來優化流暢度:

    帶寬估計:根據網絡情況動態調整編碼器碼率等參數;

    擁塞控制:采用BBR或是GCC進行擁塞控制,如主動丟幀。BBR策略收斂更快,通常更適合云游戲場景;

    丟包重傳:如前文所述云渲染采取就近傳輸方式,可以根據這個特點實現快速重傳策略;

    抗I幀風暴:由于I幀占用帶寬較大,在I幀過多的情況下對于清晰度與流暢度造成較大影響;

    控制I幀數量和大小

    視頻幀的類型分為I幀、P幀、B幀,其中I幀大小遠大于P幀與B幀,I幀密集容易引起卡頓,Intra refresh策略能夠有效解決此類問題。

    通過將I幀拆分為多個I slice并按順序平鋪到連續的幀中,有效控制I幀的梳理。出現丟幀后可依次排序組合恢復出完整的一幀。

    VBR+VBV碼率控制策略

    CBR碼控策略可以使得碼率平穩,保障流暢度。但考慮到云游戲場景畫面運動劇烈,因此固定碼率會造成部分幀畫質較差的問題。需要在畫質與流暢度間取得平衡,推薦采用VBR算法+VBV參數的方式控制碼率波動,使得碼率能夠在一定范圍內實現“平穩”地波動。

    云端協同的CodeC選擇

    在當前環境下,手機終端大多已經支持H265解碼,云端GPU也大多支持H265編碼。如果云和端都支持H265解碼,通過云與端的協商,在云端優先進行H265編碼,能夠在同等清晰度下使碼率降低20%~40%。

    CPU+GPU混合的窄帶高清編碼

    單獨使用CPU編碼成本高、延遲大;單獨使用GPU編碼靈活性差、畫質差??扇诤螩PU與GPU編碼能力,采用GPU為主、CPU為輔的混合編碼策略。

    阿里云窄帶高清編碼技術,通過視頻增強處理和編碼的聯合優化,能夠在碼率相同時顯著提升畫質?;蛘呤勾a率在降低30%~60%的情況下,視頻畫質仍然持平甚至有所提升。

    但云渲染場景與普通的視頻特點差別較大,且通常需要采用硬件編碼。需要思考如何在低延時、場景快速切換、運動劇烈的情況下優化GPU編碼的畫質與流暢度。后文將結合三星堆云渲染場景,介紹阿里云在云游戲場景的窄帶高清效果。

    成本優化

    解決基礎體驗問題后,成本問題成為云渲染、云游戲商業化面臨的最為突出的挑戰。

    云渲染成本主要可以分為三條線:單任務實際GPU資源消耗, 單機資源利用率, 總資源池利用率。成本優化策略需要圍繞如圖所示的三條線展開。而在實際場景中云渲染成本優化還存在以下四方面的問題:

    1.單進程資源消耗大

    2.CPU<-> GPU 內存拷貝效率低

    3.單機資源利用率低

    4.業務并發時間集中

    從以上四個角度出發,接下來將詳細介紹如何實現云渲染成本優化。

    單任務資源消耗優化

    GPU硬編碼:GPU渲染單元與編解碼單元獨立,在渲染的同時可以應用GPU進行編碼工作,有效降低CPU消耗;

    CPU<-> GPU memory zero copy:由于CPU與GPU的排列方式,處理圖像幀的格式、內存的layout存在差異,因此需要構建全GPU處理的pipeline,減少CPU在過程中的參與度,可顯著提升性能,降低延時;

    CUDA加速:圖像縮放/顏色空間轉換等可用CUDA加速;

    單機資源利用率-虛擬化與多開

    當降低了單進程資源消耗后,通過采用虛擬化與多開技術能夠有效提高單機資源利用率,一張卡上同時運行多個渲染進程。實際上,GPU的虛擬化技術為云游戲、云渲染的大規模商業化落地奠定了基礎。

    集群資源利用率-業務混跑

    實際情況下,僅通過上訴兩種方法依然難以解決成本問題。實現業務混跑,提高集群資源利用率,是云游戲、云渲染技術真正實現普惠的關鍵。其核心在于利用不同的視頻處理高峰時期,對GPU集群進行分時復用。如在白天時段利用GPU集群完成離線AI處理工作,晚上6~8時進行直播轉碼處理工作,在9~11時進行云渲染、云游戲應用處理工作?;跇I務的多樣性,充分利用總GPU資源池,有效降低云渲染成本。所以視頻云業務的多樣性也是降低成本的重要優勢。

    03 云渲染實踐案例一鍵開啟三星堆奇幻之旅

    CCTV《三星堆奇幻之旅》 采用了阿里云的大規模即時云渲染技術,將大型沉浸式體驗需要的圖形算力、存儲需求放在云端,觀眾看到和交互的畫面都是由云端即時渲染計算出來,從而讓觀眾擺脫本地硬件限制,僅通過一個H5頁面,便可低成本地享受高質量的沉浸式體驗。作為高熱度、高并發的云渲染應用,該實踐案例支持5K的并發,預備萬路彈性,最終登上微博熱搜TOP 3,收獲了3300萬播放量。

    這樣熱度和規模的活動,要保證每個用戶的高體驗,對技術上的要求和挑戰都是巨大的,阿里云構建了多個維度的技術體系來提升用戶體驗。

    阿里云視頻云的GRTN(Global Realtime Transport Network)低延時網實現邊緣傳輸,有效降低傳輸方面的延時。GRTN是阿里云各個音視頻通信業務方合力打造的傳輸網,支持HTML5 的信令接入。GRTN采用層級網和對等網相結合的混合網絡架構,媒體傳輸鏈路更短,全鏈路采用延時更低的基于UDP的RTC協議,并利用深度定制的動態路由、傳輸控制、邊緣計算、雙向實時信令網等機制。視頻云云考古機制是基于GRTN設計,可接入視頻云直播、點播和RTC等業務,便于全球實時傳輸,實現業務擴展。

    RMS云渲染引擎也為三星堆項目體驗發揮了非常重要的作用。RMS負責渲染視頻的采集、處理、編碼和傳輸。RMS的處理性能和延時、編碼畫質、QOS的傳輸體驗都直接影響三星堆項目的用戶體驗。

    游戲/渲染引擎輸出的圖像幀一般都是顯存中,如果采用CPU軟編或者ASIC異構編碼的方式,會存在拷貝延遲。因此RMS采用GPU硬件處理為主、CPU處理為輔的方式,達到視頻幀zero-copy的極致延遲體驗,在滿足畫質、流暢度需求的前提下,充分降低性能消耗和計算成本。

    同時,RMS在QOS策略上也做了大量的優化。本次云考古面向的是全國各地的觀眾,為應對復雜多變的網絡環境,我們在RTC網絡的傳輸Qos保障的基礎上,對Jitter Buffer/NetEQ/帶寬估計/可靠傳輸(丟包重傳、亂序重組),以及Qos模塊和編碼模塊的配合上做了專門的調整,包括智能策略組合、智能碼控、丟幀邏輯和FIR處理等方面。同時,在QOS的碼率分配上,我們也做了大量優化,可以在保障抗弱網能力的同時,將有限的帶寬更多地分配到編碼器的碼率上,提升視頻清晰度。

    在視頻編碼算法方面,我們利用云渲染場景深度優化的窄帶高清技術來提升清晰度。通過云端GPU與客戶端CPU的聯動,進行內容自適應的紋理和色彩增強處理,有效提升了視頻畫質,且算法的性能和成本都大幅降低,對全鏈路延時和客戶端功耗的增加都達到可以忽略的程度。而圖像處理算法與編碼算法的有機結合優化,可在保證畫質的同時,顯著降低了視頻碼率大小和碼率波動。

    最終的效果呈現如上圖所示,左側僅僅采用GPU進行編碼,色彩相對暗淡、文字相對模糊,畫面飽和度、對比度相對較差;右側通過我們的GPU+CPU聯合優化的窄帶高清處理,在碼率降低35%的情況下,VMAF提高10%,主觀的畫面紋理細節和色彩效果也有提升。

    面向未來,云渲染串流技術發展方向已經明晰,一方面通過與AR、VR、XR進行結合,打造沉浸式的云渲染體驗。而其中關鍵的20ms以下的Motion to Photo延時,則是突出的技術挑戰,可以考慮采用異步渲染的方式進行延時優化。

    另一方面通過與虛擬社交、音視頻通話與直播進行結合,向交互式、綜合式的應用方向發展。云渲染串流與AI算法、直播技術、RTC音視頻通話技術的結合,是未來技術的演進方向。我們的RMS云渲染引擎支持多種AI特效、直播旁路直播與RTC云合流,為未來云渲染的技術綜合性要求打下了基礎。


    695856371Web網頁設計師②群 | 喜歡本站的朋友可以收藏本站,或者加入我們大家一起來交流技術!

    自定義皮膚 主體內容背景
    打開支付寶掃碼付款購買視頻教程
    遇到問題聯系客服QQ:419400980
    注冊梁鐘霖個人博客
    图片区乱小说区电影区