主頁 >  其他 > 阿里云 RTC QoS 螢屏共享弱網優化之若干編碼器相關優化

阿里云 RTC QoS 螢屏共享弱網優化之若干編碼器相關優化

2021-01-24 18:35:34 其他

螢屏共享是視頻會議中使用頻率最高的功能之一,但在實際場景中用戶所處網路環境復雜,常遇到丟包或者擁塞的情況,所以如何優化弱網環境下的用戶體驗也成為了音視頻通信中重要的一環,本文主要分享阿里云 RTC QoS 如何通過若干編碼器相關優化提升弱網環境下的螢屏共享體驗,

作者:長程/田偉峰
審校:泰一

內容說明:

本文介紹以下四個方面的優化:

  • Screen Content Coding Tools
  • Long Term Reference (LTR)
  • Fast QP Rate Control
  • Content Adaptive Frame Rate

對本文中效果測驗的說明:

  1. 為保證視頻質量,螢屏共享的 Codec 設定了最大 QP (Quantization Parameter),在本文后面的測驗中,這個最大 QP 對所有配置都是一樣的,
  2. 為了更好的比較,效果測驗中展示了流暢性和清晰度兩個維度的效果,
  3. 對于流暢性的比較,由于視頻解析度太大,所以對其畫面進行了縮放,使得原始版本和改進版本可以放在同一個視野中播放,以很好的看到卡頓和延遲的改進,畫面模糊是由于上述原因降解析度所致,在清晰度的對比中可以看到原始解析度的畫面,

Screen Content Coding Tools

Codec 中增加并改進了對于螢屏內容(其內容多為如 Word、Excel、PPT 等計算機生成的圖形,文字等,具有重復紋理多,色彩分布較離散,無噪聲等特點)特別適合的 Coding Tools 如 Intra Block Copy (Current Picture Reference),Transform Skip 等,顯著提升了螢屏內容的壓縮效率,可以做到相對于原 Codec,對于螢屏內容視頻相同質量下平均可以節省帶寬 20%+,編碼時間只增加 10%,對某些典型序列場景帶寬可以節省 40%+,由于是非標準的 Coding Tools,實際使用中會根據 SDP 協商,當所有與會方都支持該特性時才會開啟,

SCC Tools 效果

流暢性效果

測驗 SCC Tools 在弱網下的改進效果,

上圖中,上半部分是增加了 Screen Content Coding Tools 編碼出來的碼流,下半部分是原始 Codec 編出的碼流,可以看出使用 Screen Content Coding Tools 之后卡頓和延遲明顯降低了,

清晰度效果

上面的動圖可以看到卡頓情況的改進,下圖展示的是清晰度的對比,左邊是原始版本,右邊是增加了 SCC Tools 版本,可以看到 SCC Tools 版本和原始版本相比清晰度并沒有下降,

Long Term Reference (LTR)

長期參考幀技術是一種網路模塊和編碼器共同配合完成的參考幀選擇技術,在 RTC 場景下一般的編碼參考策略是向前一幀參考(在不考慮 SVC 的情況下),因為參考的距離越近壓縮效果越好,出于實時的考慮編碼只有 I 幀和 P 幀,沒有 B 幀,而長期參考幀是一種可跨幀的參考幀選擇策略,這種策略打破了傳統的向前一幀的限制,可以更加靈活地選擇參考幀,

長期參考幀策略的目的是在有 P 幀丟失的場景下,接收端不需要重新請求 I 幀也能繼續正確的解碼和播放,其相對于 I 幀可以明顯提升編碼效率,節省帶寬,該技術可以繞過丟失的幀,利用丟失幀之前的一個已經接收的長期參考幀作為參考進行編碼 / 解碼顯示,從而提升弱網場景下的視頻流暢性,

根據長期參考幀的特點和目的,實作長期參考幀技術的應用需要有接收端側反饋資訊,編碼器根據接收端反饋的幀資訊選擇參考幀編碼,在有 P 幀丟失的場景下,接收端通過請求長期參考幀恢復將很快恢復畫面,由于存在接收反饋,高 RTT 時反饋延時較大將會導致參考距離變大,所以長期參考幀比較適合低 RTT 場景,在多人會議場景中,下行人數太多也會制約長期參考幀的應用,

綜合來看,長期參考幀更適合 1V1 的通信場景,適合低 RTT 伴隨丟包或者擁塞的弱網場景,這樣的場景下長期參考幀比傳統的向前一幀參考有更好的實時性和流暢性,

LTR 效果

測驗 LTR 以及 SCC Tools 在螢屏共享弱網下的效果,

流暢性效果

上圖中左上部分是沒有 LTR 的效果,幾乎完全卡死,左下部分是使用了 LTR 的效果,可以看到螢屏有所滾動,比左上的更流暢,同時該場景我們還進一步測驗了增加 Screen Content Coding Tools,右邊的是同時使用了 LTR 和 SCC 的效果,可以看到明顯是三者中最流暢的,

清晰度效果

下圖中左邊是原始 Codec 效果,中間是增加了 LTR 的效果,右邊是同時增加了 LTR 和 SCC 的效果,可以看到三者的清晰度并沒有明顯差別,由于該例子我們共享的是實時的滾屏 Log,所以三者的內容不是完全一樣的,但是總體差別不大,

Fast QP Rate Control

螢屏共享經常會有這樣的場景:演講者的桌面靜止很長時間,然后翻頁,對于編碼器來說,畫面靜止一段時間會導致 QP 逐漸降低至最小 QP,然后翻頁畫面突變,編碼器為了控制住碼率,會增加 QP,常規的編碼器碼率控制為了使每幀的視頻質量平穩變化,會限制每幀的 QP 調整幅度,相鄰兩幀的 QP 變化不能太大,以得到平穩的視頻觀看質量體驗,這樣翻頁時就會有一個碼率的突然增加,至碼率收斂到目標碼率會有一個程序,在網路好的時候沒有關系,可以容忍碼率的波動,但是在弱網時,該碼率突增就會造成卡頓,影響觀看體驗,

因此,我們增加了另一種編碼器碼率控制模式,即碼率快速收斂模式 Fast QP,主要原理是其可以擺脫相鄰幀 QP 不能變化太大的限制,使得實際碼率可以快速收斂到目標碼率,然后配合網路層的帶寬估計技術,在檢測到弱網的時候啟用這種編碼器碼率控制模式,使得視頻碼率非常平穩,觀看體驗更加流暢,雖然這樣可能犧牲了一些相鄰幀質量變化的感受,但是此時卡頓率的體驗更加明顯和重要,這種平衡和取舍是值得的,

Fast QP 效果

下面展示弱網下的 Fast QP 效果,

流暢性效果

上圖中一開始的那個畫面(有 Twitch 單詞紫色背景)是幾乎靜止的,只有很小范圍的變化,持續了近 10 秒鐘,編碼器 QP 逐漸下降至很低,然后翻頁到一個較復雜紋理的頁面(各種解析度卡條),此時可以看到右下的使用 Fast QP 的畫面基本上可以跟得上上方本地預覽畫面的變化,而左下的沒有開 Fast QP 的畫面就卡住了,然后又翻了兩頁,Fast QP 版本均能跟得上變化,而沒有開 Fast QP 版本直到最后一頁才恢復,

清晰度效果

這里我們只展示了翻頁前的清晰度,對于翻頁的清晰度,由于原始版本卡住了,所以就沒有展示,左邊是原始的,右邊是加了 Fast QP 的清晰度,由于兩者都是 QP 值降到了很低,所以清晰度都很高,沒有什么差異,

Content Adaptive Frame Rate

螢屏共享的時候如果是共享桌面檔案,PPT 等內容進行演講,一般翻頁速度是相對較慢的,幀率不用很高 5-10 幀每秒即足夠;而有時螢屏共享也會播放電影,影片等視頻,這樣要求的幀率就比較高了,最好能到 20-30 幀每秒才看起來比較舒服,如下面兩圖,一個是編輯 PPT 的視頻,明顯幀率可以比較低,另一個是廣告視頻,明顯幀率應該高一些,

如果我們把幀率定死,如 FPS=5,則碰到播放電影的場景就顯得卡頓了;而如果我們把幀率直接定成 FPS=30,那在一般共享檔案,PPT 的場景又會造成碼率的浪費,

視頻編碼器里的運動矢量 MV 資訊可以很好的反應畫面的運動狀況,如果是共享的檔案,PPT 等不怎么動的畫面,則大多數 MV 都等于 0 的,而如果是播放電影,影片等運動較多的場景,則 MV 會有一定的數值,所以利用編碼器的 MV 資訊可以很好的判斷當前共享視頻的運動狀況,選擇合適的幀率,

由于編碼器是本來就在那里的,所以不會增加額外的運動檢測模塊開銷,本改進就是針對這種需求,根據螢屏共享的內容,利用編碼器輸出的 MV 資訊,自適應的調整幀率,對于共享檔案等不怎么動的畫面,則放低幀率,對于共享電影影片等,則調高幀率,以達到既不浪費帶寬,也可以有流暢的視頻觀看體驗的目的,

「視頻云技術」你最值得關注的音視頻技術公眾號,每周推送來自阿里云一線的實踐技術文章,在這里與音視頻領域一流工程師交流切磋,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/251511.html

標籤:其他

上一篇:APM:實質提升 Serverless 可觀察性

下一篇:五、部署 k8s Cluster(上)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more