偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

基于 RTC 的全景 8K@120fps FoV 實踐

原創(chuàng) 精選
開發(fā) VR/AR
利用 RTC 傳輸這類「富媒體」到 VR 一體機可以較好地解決高畫質和低延時的問題,但也面臨著一些難點。

?作者|高立文

1. 行業(yè)現(xiàn)狀和技術挑戰(zhàn)

VR 眼鏡的出現(xiàn)與快速發(fā)展讓“賽博朋克”、“未來世界”不再遙遠,通過手柄與音視頻畫面的互動,人們可以在娛樂、健身時體會到一種全面超越現(xiàn)有音視頻的“沉浸式”體驗。而在體驗云游戲、大型全景賽事互動等應用時,如果想保持這種“身臨其境”的“沉浸式”體驗,還需要有超高清、高幀率的全景視頻源、強勁的傳輸帶寬和超低頭動延時(MTP)。

視頻源方面,因 VR 眼鏡獨有的 FOV(Field of View,視場角,VR 設備的重要指標之一,反映視野廣度),4K 全景視頻在 VR 眼鏡上看起來也就只相當于 540P,所以 8K 分辨率視頻的分發(fā)也僅僅是超高清畫質體驗的“入門級需求”。另外,一些游戲、體育賽事等內容的視頻對幀率也有很高的要求,達到 120fps 才會有較好的體驗;傳輸方面,要實現(xiàn)對這類「富媒體」的超低延時傳輸則是個很大的挑戰(zhàn),帶寬需達到 150Mbps 以上。

VR 眼鏡方面,最近兩年 VR 一體機技術發(fā)展迅速,它 All-in-one 的設計脫離了外部設備的連線束縛,即開即用,受到了市場的廣泛歡迎,有逐漸代替 VR 頭顯之勢。不過,“便攜”的優(yōu)點也不可避免地會影響它在解碼、渲染、帶寬處理上的性能表現(xiàn),在處理上述 8K@120fps / 150Mbps 的任務時需要進行特殊處理。

當前行業(yè)使用的一些解決方案在視頻質量/幀率/延時/帶寬等各方面做了取舍,導致最終用戶體驗不太理想:要么是無法忍受的圖像質量(低畫質),或者是低幀率帶來的眩暈(低幀率),又或是無法忍受的延時(高延時),以及巨額的帶寬成本(最后一公里全景下發(fā))等,像業(yè)內采用的「直播轉碼」+ 「CDN 分發(fā)鏈路」方案,一方面它的延時較高,無法適用于一些互動性較高的場景;另一方面,由于在云端進行了一次轉碼,對畫質會產生一定的損傷,也會影響用戶的“沉浸式”體驗。

利用 RTC 傳輸這類「富媒體」到 VR 一體機可以較好地解決高畫質和低延時的問題,但也面臨著一些難點。

1.1 8K 和 120 fps 難以兼得

上文已提到,在 VR 場景中,像云游戲、大型展會、賽事等內容的視頻,「高分辨率」和「高幀率」缺一不可。然而我們發(fā)現(xiàn),不管是 GPU 還是 VR 一體機的芯片,其編解碼能力都無法兼顧到「8K」和「120 fps」性能體驗。我們使用了 gpu-z 工具和 Nsight 工具分析了 Nvidia Tesla T4 硬件的編碼能力,分析發(fā)現(xiàn),當視頻源達到 8K 分辨率時,單張 Nvidia Tesla T4 最高只能支持到 8K@60fps,且存在性能波動,一般單張顯卡的性能穩(wěn)定在 8K@50fps。

以下為測試數(shù)據(jù):

圖片

從解碼能力看,目前市場上主流的 VR 一體機(價位1500-2000元)基本都選用 高通 XR2 芯片,該芯片對外宣稱的解碼能力為 8K@60fps 或 4k@120fps,實測下來發(fā)現(xiàn),8K@60fps 也是上限數(shù)值,實際難以穩(wěn)定在 8K@60fps。

以下為測試數(shù)據(jù):

圖片

因此,編解碼的性能成為了支持 8K@120fps 最大的瓶頸。

1.2 全解碼方案引起帶寬性能不足

傳輸 8K@120fps 全景視頻需要 150Mbps 的帶寬,目前 5G 滲透率還不高,寬帶下載網(wǎng)速無法滿足這樣的傳輸條件。

以下為三大運營商2021年下行速度中值數(shù)據(jù):

數(shù)據(jù)來源:《2021年全國網(wǎng)絡速度和質量報告》

圖片

從合理性上看,VR 眼鏡由于視角問題,觀看端并不需要同時解碼全場景的畫面內容,全解碼方案浪費了大部分的碼流帶寬占用,造成了很大的下行帶寬,給最后一公里帶來了巨大的壓力,不利于互聯(lián)網(wǎng)分發(fā)。

圖片

1.3 頭動延時高易引起眩暈

MTP(Motion To Photons)是 VR 眼鏡的另一個重要指標,指從頭動到顯示出相應畫面的時間,MTP 時延太大容易引起眩暈,目前公認的是,當 MTP 時延低于 20ms 就能大幅減少暈動癥的發(fā)生。

2. 火山引擎 RTC 做了什么

2.1 總體介紹

為了解決上述難題,火山引擎 RTC 引入了 FoV 方案,即讓接收端只接收視角區(qū)域內的高清碼流來解決編解碼性能不足和帶寬不足的問題。另外,我們通過同時傳輸高清的 tile 碼流和低清的全景背景碼流,避免因快速頭動導致視角切換而引起的黑屏。利用火山引擎覆蓋全球的實時音視頻網(wǎng)絡邊緣節(jié)點,最終可實現(xiàn)低清背景 MTP < 20ms,高清 FoV 流 MTP < 100ms。

圖片

如圖所示,首先,編碼端將一路 8K 視頻劃分成若干個 tile(在 HEVC中,從水平和垂直方向將圖像分割為若干個矩形區(qū)域,把這些矩形區(qū)域稱為 tile,每個 tile 都可以獨立編碼解碼),對每個 tile 使用 nvenc 單獨進行編碼;同時編碼一個 2K 的全景圖,它可以在接收端做“兜底”,又不會引入較大的碼率增加導致解碼端性能跟不上;然后,在媒體服務器側,上行通過一個 ssrc 同時接收高清 tile 流和低清背景流,其中下行高清 tile 流按照用戶視場角過濾轉發(fā),下行低清背景流不過濾直接全部轉發(fā);最后,接收端按照 HEVC tile 標準,將所有 tile 按照圖像的位置合并成一路原始大小的編碼視頻,解碼,上屏。

下文詳細介紹火山引擎 RTC FoV 方案的實現(xiàn)與優(yōu)化。

2.2 編碼的實現(xiàn)與優(yōu)化

2.2.1 多 GPU 分布式編碼

上文提到,由于單張 Nvidia Tesla T4 不具備 8K@120fps 的編碼能力,所以需要通過多 GPU 并行編碼來實現(xiàn)?;鹕揭?RTC 在編碼側采用多 Nvidia Tesla T4 顯卡并行,將 8K 視頻切割成 72 個 tile,使用 72 個編碼器進行編碼,然后通過 RTP 打包發(fā)送到網(wǎng)絡。

圖片

這里需要注意的是不是所有的顯卡都能創(chuàng)建多個硬編碼器,個人消費級顯卡對于編碼器的個數(shù)是有限制的,Nvidia 的顯卡可以在官網(wǎng)進行查詢。

2.2.2 碼率控制

碼率的準確性對下行可接入的 VR 一體機數(shù)量比較重要,但測試中我們發(fā)現(xiàn)編碼器碼率控制有時會不準,且單純調節(jié)編碼器的編碼參數(shù)并不能解決這個問題,于是需要在硬編碼器內部定時對編碼器的實際編碼碼率進行監(jiān)控,監(jiān)控頻度設置為 10s,如果實際編碼低于預期碼率則統(tǒng)一調高所有編碼器的碼率,反之則調低,調整粒度為 10%。經測試,增加碼率監(jiān)控后能夠穩(wěn)定碼率為預設碼率。

2.2.3 編碼器復雜度調整

編碼器的復雜度在默認情況下是在創(chuàng)建完成編碼器的時候確認好的,中間不能動態(tài)修改,這樣會存在如下問題:

  • 編碼器計算資源過剩的時候不能充分利用編碼器,如果編碼器的使用率很低是可以提高編碼器的編碼復雜度,從而提高畫質。
  • 編碼器可能會受到整個系統(tǒng)的性能影響而出現(xiàn)性能下降,如系統(tǒng)的時鐘頻率被降頻會影響編碼器的性能,如果此時能夠降低編碼器的復雜度,從而保障整個視頻的流程會對整體體驗有所提高。

編碼器的復雜度可以通過 preset 來劃分,不同的 preset 表示了不同的復雜度(對于 preset 的詳細說明可參考 Nvidia 官網(wǎng)的資料),我們實測數(shù)據(jù)如下:

圖片

通過測試數(shù)據(jù),我們發(fā)現(xiàn) preset p1 和 p4 是兩個性能臨界,可以通過動態(tài)調整 preset 來提升編碼復雜度,進而提升編碼的畫質(preset 的動態(tài)設置耗時不大,不會導致畫面卡頓)。因此,我們將當前默認設置的 preset 調整為 p4,如果 p4 性能不能保障實時性,則回退到 p1。

2.3 解碼的實現(xiàn)與優(yōu)化

2.3.1 按 FoV 視場角下發(fā)視頻

一些直播場景中已經開始使用 FoV 方案,但目前還沒有 RTC 廠商來按視場角下發(fā)視頻內容。

為什么不用 SVC 或 Simulcast 做視頻下發(fā)?SVC 和 Simulcast 只能針對視頻全畫幅進行接收和解碼,會引起帶寬的增加或畫質的損失。而火山引擎的 FoV 方案中,一路高清視頻流按視角場異步下發(fā)和渲染,一路低清視頻流全量下發(fā),既可以節(jié)省帶寬,也沒有降低畫質,還能避免因視角快速切換、高清視頻來不及傳輸導致看不到畫面。

2.3.2 投影方式的選擇

球面和平面之間圖像的映射問題,是一個從古時候起就一直困擾著地圖測繪員的問題。今天,隨著 VR 全景視頻的發(fā)展,又將這一問題擺在了開發(fā)者面前。VR 全景視頻需要傳輸,涉及到帶寬占用和畫質損傷的問題, 不同的投影方式會對畫質及碼率造成較大的影響。

引用自:https://leohope.com/%E8%A7%A3%E9%97%AE%E9%A2%98/2019/07/15/VR-mapping/

圖片

我們使用了 EAC 的投影方式,相對于簡單直觀的 ERP 投影,EAC 投影比 ERP 投影節(jié)省了 25% 的面積,接收端降低約 15% 的數(shù)據(jù)接收,且更利于視頻編碼器做畫質優(yōu)化。

下面兩組照片中,上圖為 ERP 投影,像素為 7680x3840 ;下圖為 EAC 投影,像素僅為 5760x3840。

圖片

圖片

2.3.3 從姿態(tài)信息計算視場角范圍內 tile

圖片

定義正前方是零點向量,視場角邊界是 tile 向量,零點向量和 tile 向量夾角小于 X° 范圍內的 tile,都是視場角范圍內的 tile。

如上圖所示,粉色+黃色是全景的視頻,劃分成了 72 個 640x640 的區(qū)域,黃色區(qū)域是根據(jù)向量夾角計算出來的視場角范圍內的 tile,然后接收端向 RTC 邊緣媒體服務器請求,下發(fā)這些 tile。

2.3.4 合成

接收端按照 HEVC tile 標準,將所有 tile 按照圖像的位置合并成一路原始大小的編碼視頻;同時,將 2K 低清流進行放大,并將高清 FoV 流在渲染前貼到對應的坐標位置。

圖片

放大后效果如上圖,橙色部分為低清流,放大成為 8K;綠色部分為高清 FoV 流,為原始的 8K。

如果頭動較慢,VR 頭顯中看到的都是高清的視野范圍,所以不會對實際體驗造成影響;如果產生快速的頭動,那就無法避免在視野范圍內看到一些低清的圖像,此時播放端會根據(jù)頭動范圍重新請求高清 FoV 碼流,此時會有短暫的時間看到低清圖像,等到高清 FoV 范圍的碼流下發(fā)下來之后,畫面就會恢復高清 8K 效果。

2.4 頭動延時優(yōu)化

2.4.1 頭動延時

頭動延時 = 最后一公里網(wǎng)絡rtt + GOP/2 + jitter_buffer + 解碼 + 上屏

2.4.2 視場角預測

下圖說明了“視場角預測”的流程,即,用戶當前 FoV -> 轉頭 -> 控制信令(攜帶預測結果) -> RTC 邊緣媒體服務器 -> 下發(fā)新的 tile -> 更新 FoV 內容。

圖片

行業(yè)中已經有一些比較成熟的視角預測方案,當用戶頭部旋轉時,可以根據(jù)旋轉加速度進行預測未來旋轉的角度位置,甚至可以根據(jù)用戶的動作預測轉動角度和方向,再根據(jù)預測進行拉取相應數(shù)據(jù),可以達到很好的預判以及降低延時效果。

首先,這里僅采用本用戶自身的歷史數(shù)據(jù)來預測其未來視角,其次,為了適應用戶的較快速頭動模式,選擇了速度較快的 ML 算法來預測。

3. 方案落地體驗

上述方案在實際落地中的表現(xiàn)如下:

在 GOP=15 的情況下,8K 高清頭動延時在 100ms,端到端延時為 130ms+,下行碼率約 20Mbps,數(shù)據(jù)表現(xiàn)理想。

圖片

實際體驗效果如下:

注:

1、為了表現(xiàn)高清 FoV 視頻和低清背景視頻的區(qū)別,我們給低清視頻添加了綠色濾鏡

2、視頻來源:https://www.youtube.com/watch?v=L_tqK4eqelA

當頭動速度較慢時,視場角范圍內只能看到高清的圖,看不到綠色的低清圖。

當頭動速到較快時,才會偶爾有綠色的低清 tile 塊進入到視場角范圍內(想象一下,如果沒有低清視頻流兜底,用戶看到的將是缺失的畫面)。

4. 總結與展望

4.1 總結

火山引擎 RTC FoV 方案通過如下的技術優(yōu)化,實現(xiàn)了 8K@120fps 全景視頻的實時傳輸:

  1. 對 8k 高清視頻進行分片,支持多 GPU 分布式并行編碼;
  2. 按需下發(fā)和解碼視場角范圍的視頻分片,極大程度降低了下行帶寬要求,并且實現(xiàn)基于 4K 解碼器能力達到全景 8K 的畫質體驗;
  3. 通過視角預測,極大地降低了高清視頻的頭動延時(MTP)< 100ms;

4.2 后續(xù)優(yōu)化

當前方案仍有不少優(yōu)化空間。

比如當前在解碼端將 2K 低清背景流到放大到 8K 高清流的采用的是傳統(tǒng)的縮放算法,會對畫質造成一定的損失,使用超分算法會極大的提高低清背景的優(yōu)化體驗。

AI 頭動預測,利用多個用戶的頭動數(shù)據(jù)學習得到具有群體共性的頭動模式,從而能在未來一段時間內加快內容預取,進行預測。

另外,目前 Nvidia 和高通主流芯片平臺均已支持 HDR 10 的編碼和解碼 (High-Dynamic Range,是一種提高影像亮度和對比度的處理技術,它可以將每個暗部的細節(jié)變亮,暗的地方更暗,豐富更多細節(jié)色彩) ,我們后續(xù)也將引入 HDR 10 技術來進一步提升畫質體驗,讓用戶更接近真實環(huán)境中的視覺感受。

責任編輯:未麗燕 來源: 字節(jié)跳動技術團隊
相關推薦

2023-12-25 07:35:40

數(shù)據(jù)集成FlinkK8s

2022-08-04 18:23:28

屏幕共享卡頓流暢度

2023-11-02 08:01:22

2017-11-21 10:11:19

陌陌K8sDocker

2022-08-19 18:15:04

視頻會議音頻質量噪聲

2024-07-18 21:26:44

2022-05-27 14:55:34

canvas畫布鴻蒙

2022-04-02 09:57:51

技術京東實踐

2021-11-04 07:49:58

K8SStatefulSetMySQL

2020-12-28 09:56:45

K8sDevOps容器技術

2022-07-22 14:45:46

SDKVolcRTC內存優(yōu)化

2023-05-31 14:54:32

2023-12-26 16:33:57

k8s私有化云服務

2023-09-27 23:23:09

云原生K8sGPT

2023-09-07 08:58:36

K8s多集群

2022-08-08 07:05:36

KubeSphere分級管理

2015-07-17 10:25:43

kubernetesDocker集群系統(tǒng)

2024-02-01 09:48:17

2022-09-13 09:04:20

云計算移動辦公大數(shù)據(jù)

2022-09-30 15:15:03

OpusRTC 領域音頻編碼器
點贊
收藏

51CTO技術棧公眾號