自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

RTC 場景下的屏幕共享優(yōu)化實(shí)踐

原創(chuàng) 精選
開發(fā)
屏幕共享是視頻會(huì)議場景使用最廣泛的功能之一,在共享一個(gè) PPT 或者文檔的情況下,人們對畫面清晰度有著極高的要求,“看不清” 是最容易被用戶吐槽的事情;而在共享一個(gè)視頻素材的情況下,大家又對流暢度有著極高的要求,“卡頓” 也是最容易被用戶吐槽的點(diǎn)。

背景介紹

需求背景

屏幕共享是視頻會(huì)議場景使用最廣泛的功能之一,在共享一個(gè) PPT 或者文檔的情況下,人們對畫面清晰度有著極高的要求,“看不清” 是最容易被用戶吐槽的事情;而在共享一個(gè)視頻素材的情況下,大家又對流暢度有著極高的要求,“卡頓” 也是最容易被用戶吐槽的點(diǎn)。

為了更好地同時(shí)滿足用戶對清晰度和流暢度的要求,視頻會(huì)議軟件通常會(huì)設(shè)計(jì)兩種模式:

  1. 清晰模式:主打清晰度,盡量保持高分辨率(如:最高 4K 原畫質(zhì)),帶寬或性能不足的時(shí)候,只降低幀率(如:從 30fps -> 5fps),不降低分辨率。
  2. 流暢模式:主打流暢度,盡量提升幀率(如:最高 30fps),帶寬或性能不足的時(shí)候,優(yōu)先降低分辨率(如:從 4K -> 720p),最后才考慮降幀率。通常情況下,默認(rèn)選擇“清晰模式”,當(dāng)用戶要共享視頻的時(shí)候,需要自己 “手動(dòng)” 點(diǎn)擊勾選上 “流暢度優(yōu)先”按鈕。

一般的做法是,讓用戶在共享屏幕時(shí)手動(dòng)來勾選“清晰模式”還是“流暢模式”。但在實(shí)際的產(chǎn)品場景中,用戶對這兩種模式的感知并不是很強(qiáng)烈,不太可能要求用戶在共享屏幕的過程中手動(dòng)來回切換當(dāng)前的共享模式,對用戶體驗(yàn)影響比較大。

一種簡單的方案是根據(jù)用戶共享內(nèi)容的文件后綴名來決定是“清晰度優(yōu)先”還是“流暢度優(yōu)先”,比如共享 PPT 時(shí)自動(dòng)切換為“清晰模式”,共享視頻時(shí)自動(dòng)切換為“流暢模式”,但是這樣設(shè)計(jì)會(huì)遇到一些問題:比如用戶的 PPT 里嵌入了一段視頻,在播放這段視頻時(shí)理應(yīng)追求“流暢度優(yōu)先”;而如果用戶視頻其實(shí)是一段 PPT 的教學(xué)錄屏,里面有大量的時(shí)間在播放靜止的文字和畫面,這時(shí)候“流暢模式”則會(huì)導(dǎo)致這些關(guān)鍵內(nèi)容顯得模糊。

RTC 要如何幫助用戶及時(shí)調(diào)整最佳的共享模式呢?

需求分析

需求功能分析

痛點(diǎn):

用戶分享視頻內(nèi)容需要高幀率,而文字/ppt 需要高清晰度,這兩種場景的需求是互相矛盾的,如果需要用戶手動(dòng)勾選相應(yīng)的共享模式,不僅操作繁瑣,也容易漏選、錯(cuò)選。

如何解決:

需要研發(fā)一個(gè)算法自動(dòng)識(shí)別共享內(nèi)容,進(jìn)而確定當(dāng)前是需要高幀率還是需要高清晰度。這樣,在用戶想要清晰畫面的時(shí)候,產(chǎn)品就提供清晰的畫面,用戶想要流暢的視頻體驗(yàn)時(shí),產(chǎn)品就盡可能地保障屏幕畫面的流暢性,用戶在無感知的情況下就能獲得當(dāng)前場景的最佳體驗(yàn)。

屏幕共享場景定義

清晰度優(yōu)先的場景

以文字為主,用戶更需要看清楚畫面的邊緣特征,而較少關(guān)注其運(yùn)動(dòng)特征。

流暢度優(yōu)先的場景

以視頻內(nèi)容為主,用戶更需要流暢連貫的動(dòng)態(tài)畫面,而較少關(guān)注于單幀的清晰度。

技術(shù)實(shí)現(xiàn)

算法原理

學(xué)界相關(guān)成果概述

目前我們參考了以下兩篇參考文獻(xiàn)。第一篇是 Jing, Wang & Xuetao, Guan & Yang, Zhang. (2013). An Adaptive Encoding Application Sharing System Based on Remote Display. 266-269. 10.1109/ISDEA.2012.66.

該論文主要假定視頻區(qū)域的均會(huì)以 24-30FPS 的頻率發(fā)生變化,用 N*N 的 patch 的形式進(jìn)行檢測,從而發(fā)現(xiàn)視頻區(qū)域。

第二篇參考文獻(xiàn)是,侯文慧, 王俊峰. 面向云桌面協(xié)議的視頻區(qū)域偵測算法[J]. 計(jì)算機(jī)應(yīng)用, 2018, 038(005):1463-1469,1487.

這篇論文主要通過高變化區(qū)域偵測,并利用傳統(tǒng) sobel 算子+膨脹算法的邊緣檢測發(fā)現(xiàn)可能的矩形區(qū)域,通過顏色直方圖的顏色數(shù)量判定文本區(qū)域從而確定視頻內(nèi)容區(qū)域。

相關(guān)算法的介紹

1、光流

光流(Optical flow or optic flow)是空間運(yùn)動(dòng)物體在成像平面上的像素運(yùn)動(dòng)的瞬時(shí)速度,是分析像素運(yùn)動(dòng)的一種方法。光流法在模式識(shí)別、計(jì)算機(jī)視覺以及其他圖像處理領(lǐng)域中用處廣泛,可用于運(yùn)動(dòng)檢測、圖像分割、運(yùn)動(dòng)補(bǔ)償編碼和立體視差測量等領(lǐng)域。

光流法實(shí)際是通過檢測圖像像素點(diǎn)隨時(shí)間的變化進(jìn)而推斷出物體移動(dòng)速度及方向的方法。假設(shè)該移動(dòng)很小,那么可以根據(jù)泰勒級數(shù)得出:

圖片

因此可以推出

圖片

最終可得出光流方程:

圖片

圖片

這個(gè)方程有兩個(gè)未知數(shù),不能直接進(jìn)行求解,這被稱為光流算法的孔徑問題。為了求解光流方程,還需要另一組方程,這個(gè)方程由附加的約束給出。(以上內(nèi)容引用自 wikipedia)

圖片

孔徑問題

(孔徑問題示意,引用自:https://zhuanlan.zhihu.com/p/74460341)

假設(shè):

  • 相鄰幀之間的亮度恒定;
  • 相鄰視頻幀的取幀時(shí)間連續(xù),或者,相鄰幀之間物體的運(yùn)動(dòng)比較“微小”;

2、決策樹

決策樹是一種邏輯簡單的機(jī)器學(xué)習(xí)算法,它是一種樹形結(jié)構(gòu),所以叫決策樹。這是一種基于 if-then-else 規(guī)則的有監(jiān)督學(xué)習(xí)算法,決策樹的這些規(guī)則通過訓(xùn)練得到,而不是人工制定的。

圖片

  • 決策樹易于理解和解釋,可以可視化分析,容易提取出規(guī)則;
  • 可以同時(shí)處理標(biāo)稱型和數(shù)值型數(shù)據(jù);
  • 比較適合處理有缺失屬性的樣本;
  • 能夠處理不相關(guān)的特征;
  • 測試數(shù)據(jù)集時(shí),運(yùn)行速度比較快;
  • 在相對短的時(shí)間內(nèi)能夠?qū)Υ笮蛿?shù)據(jù)源做出可行且效果良好的結(jié)果。(引用自 wikipedia)

3、顏色直方圖

顏色直方圖是許多圖像檢索系統(tǒng)中被廣泛采用的顏色特征。它所描述的是不同色彩在整幅圖像中所占的比例,而并不關(guān)心每種色彩所處的空間位置,即無法描述圖像中的對象或物體。(引用自 wikipedia)

圖片

4、方向統(tǒng)計(jì)(Directional Statistics)

Directional statistics (also circular statistics or spherical statistics) is the subdiscipline of statistics that deals with directions (unit vectors in R(n)), axes (lines through the origin in R(n)) or rotations in R(n). More generally, directional statistics deals with observations on compact Riemannian manifolds including the Stiefel manifold. The fact that 0 degrees and 360 degrees are identical angles, so that for example 180 degrees is not a sensible mean of 2 degrees and 358 degrees, provides one illustration that special statistical methods are required for the analysis of some types of data (in this case, angular data). Other examples of data that may be regarded as directional include statistics involving temporal periods (e.g. time of day, week, month, year, etc.), compass directions, dihedral angles in molecules, orientations, rotations and so on. (引用自 wikipedia)

利用方向統(tǒng)計(jì)方法,能夠準(zhǔn)確地統(tǒng)計(jì)出向量樣本的方向均值,以及方向的離散程度,也避免了傳統(tǒng)統(tǒng)計(jì)方法在角度值統(tǒng)計(jì)計(jì)算上的誤差。

舉個(gè)簡單的例子,如下圖所示,7/4π 和 1/4π 統(tǒng)計(jì)均值,以傳統(tǒng)方法計(jì)算為 π,而利用方向統(tǒng)計(jì)就可以得到出均值為 0 的結(jié)果。

圖片

算法總流程設(shè)計(jì)

視頻的定義就是運(yùn)動(dòng)的畫面,但在屏幕共享當(dāng)中,并不能夠?qū)⑦\(yùn)動(dòng)的畫面都當(dāng)作視頻內(nèi)容來處理。實(shí)際使用中,需要將部分運(yùn)動(dòng)的畫面識(shí)別為需要高清優(yōu)先、流暢度其次的屏幕內(nèi)容,保證用戶在此時(shí)獲得清晰的觀看體驗(yàn)。

1、探索性數(shù)據(jù)分析(EDA)

在正式進(jìn)行算法開發(fā)之前,先進(jìn)行了探索性數(shù)據(jù)分析,分析發(fā)現(xiàn)屏幕的運(yùn)動(dòng)特征具有較高的區(qū)分度,從而大致判定利用光流法來完成該任務(wù)的特征提取是可行的。

圖片

圖片

2、算法流程圖

該檢測算法分成三個(gè)模塊,五個(gè)步驟。

三個(gè)模塊分別是:

  • 運(yùn)動(dòng)幅度分析:主要進(jìn)行運(yùn)動(dòng)幅度相關(guān)特征的提取,能夠統(tǒng)計(jì)運(yùn)動(dòng)畫面比例,去除一些噪音。
  • 運(yùn)動(dòng)角度分析:主要進(jìn)行運(yùn)動(dòng)角度相關(guān)特征的提取,能夠統(tǒng)計(jì)畫面運(yùn)動(dòng)的方向,以及運(yùn)動(dòng)方向的分散程度等
  • 紋理特征分析:主要提取一些紋理相關(guān)的特征,判定當(dāng)前區(qū)域是否為文字區(qū)域。

具體分為五個(gè)步驟:

  • 采樣:光流算法需要前后兩幀數(shù)據(jù)進(jìn)行計(jì)算,需要對視頻流進(jìn)行采樣,得到兩幀數(shù)據(jù)
  • 光流計(jì)算:計(jì)算出全圖的稠密光流
  • 特征提取:提取運(yùn)動(dòng)和紋理特征
  • 狀態(tài)轉(zhuǎn)移:通過一系列模式和規(guī)則進(jìn)行狀態(tài)轉(zhuǎn)移
  • 輸出結(jié)果:根據(jù)內(nèi)部狀態(tài)信息輸出檢測結(jié)果

圖片

算法參數(shù)優(yōu)化與評價(jià)

數(shù)據(jù)采集和標(biāo)注

由于數(shù)據(jù)集非常匱乏,需要我們自己高效地獲取一批人工標(biāo)注數(shù)據(jù),進(jìn)行參數(shù)的優(yōu)化和算法的測試。我們自己錄了一些數(shù)據(jù),并開發(fā)了一個(gè)小型的標(biāo)注軟件,進(jìn)行了數(shù)據(jù)標(biāo)注工作。

算法評價(jià)指標(biāo)

圖片

(圖片來源:https://en.wikipedia.org/wiki/Sensitivity_and_specificity)

1、準(zhǔn)確率 (precision)

精確率是針對預(yù)測結(jié)果而言的,它表示的是預(yù)測為正的樣本中有多少是真正的正樣本。那么預(yù)測為正就有兩種可能,一種就是把正類預(yù)測為正類(TP),另一種就是把負(fù)類預(yù)測為正類(FP)

圖片

2、召回率(recall)

召回率是針對原來的樣本而言的,它表示的是樣本中的正例有多少被預(yù)測正確了。那也有兩種可能,一種是把原來的正類預(yù)測成正類(TP),另一種就是把原來的正類預(yù)測為負(fù)類(FN)。

圖片

內(nèi)容識(shí)別算法需要在準(zhǔn)確率和召回率之間進(jìn)行權(quán)衡,根據(jù)業(yè)務(wù)場景調(diào)整檢測結(jié)果偏好。

算法實(shí)現(xiàn)與優(yōu)化

算法實(shí)現(xiàn)

光流計(jì)算

稠密光流的計(jì)算目前有兩種常見算法,HS 光流,DIS 光流 在實(shí)現(xiàn)上,選用了 DIS 光流估計(jì)的方法,兩種方法在相同機(jī)器上運(yùn)行時(shí)間如下表所示。

算法

分辨率

計(jì)算時(shí)間

DIS 光流

320x180

7ms

HS 光流

320x180

13ms

更為具體的計(jì)算開銷和算法準(zhǔn)確程度的數(shù)據(jù)可以參考下圖

圖片

(DIS 光流法計(jì)算準(zhǔn)確度與運(yùn)算時(shí)長相較其他算法比較,引用自 Kroeger, Till & Timofte, Radu & Dai, Dengxin & Van Gool, Luc. (2016). Fast Optical Flow Using Dense Inverse Search. LNCS. 9908. 471-488. 10.1007/978-3-319-46493-0_29. )

特征提取

在計(jì)算光流之后,我們需要提取運(yùn)動(dòng)幅度,運(yùn)動(dòng)角度以及紋理相關(guān)的特征。

在計(jì)算光流之后,提取運(yùn)動(dòng)幅度、運(yùn)動(dòng)角度以及紋理相關(guān)的特征。

1、坐標(biāo)系轉(zhuǎn)化:笛卡爾系->極坐標(biāo)系

光流估計(jì)得到的結(jié)果是每一個(gè)像素的(x,y)偏移,所以需要將這個(gè)笛卡爾坐標(biāo)系的值轉(zhuǎn)化為極坐標(biāo)系,從而得到光流的運(yùn)動(dòng)幅度和方向信息,即(x,y) ->(ρ,θ)

2、紋理計(jì)算

參考了前文提到的兩篇文獻(xiàn)的相關(guān)工作,在 4x4 的 patch 內(nèi)統(tǒng)計(jì) Y 通道上的直方圖特征,將 bin 的大小設(shè)為 1,統(tǒng)計(jì) bin 的數(shù)量作為一個(gè)強(qiáng)特征。(這樣實(shí)質(zhì)就變成了統(tǒng)計(jì)有多少個(gè) unique 值的問題),然后利用一個(gè) hash 表進(jìn)行映射與統(tǒng)計(jì)。隨后與運(yùn)動(dòng)信息進(jìn)行加權(quán)求和,可以獲得一個(gè)全局的與運(yùn)動(dòng)相關(guān)的紋理特征值。

3、角度特征的提取

角度特征的提取使用了方向統(tǒng)計(jì)的方法,計(jì)算得到當(dāng)前內(nèi)容運(yùn)動(dòng)角度的均值、加權(quán)均值、離散程度、加權(quán)離散程度等特征,這些特征可以描述當(dāng)前畫面內(nèi)容的運(yùn)動(dòng)信息。

狀態(tài)轉(zhuǎn)移

利用決策樹,經(jīng)過一些剪枝處理后,獲得了一些強(qiáng)特征的閾值,比如運(yùn)動(dòng)的角度均值,運(yùn)動(dòng)的角度離散度等,這些閾值都具有非常顯著的可解釋性。在狀態(tài)轉(zhuǎn)移模塊中,使用內(nèi)置的一個(gè)概率值記錄狀態(tài),然后根據(jù)上述基于機(jī)器學(xué)習(xí)的規(guī)則對概率值進(jìn)行調(diào)整,再結(jié)合業(yè)務(wù)融合一些人工特征,最終根據(jù)概率值的變化轉(zhuǎn)移模塊的狀態(tài)。

計(jì)算開銷優(yōu)化

雖然該算法能夠以較快的速度對視頻幀進(jìn)行處理,但實(shí)際的屏幕共享中,對計(jì)算機(jī)資源的消耗也有更加嚴(yán)格的要求。那么就需要對檢測的的策略進(jìn)行細(xì)致的優(yōu)化,夠進(jìn)一步降低 CPU 占用和耗電量。

1、計(jì)算量與運(yùn)算速度

算法的運(yùn)算量熱點(diǎn)都在光流計(jì)算上,而光流的計(jì)算開銷與選用的算法、圖像大小以及算法具體參數(shù)有關(guān)。

算法

分辨率

運(yùn)行時(shí)間

DIS(MEDIUM)

320x180

7ms

DIS(FAST)

320x180

4ms

DIS(ULTRA FAST)

320x180

1 ms

在算法應(yīng)用了 Ultra fast 模式后,檢測的 precision 和 recall 均出現(xiàn)了比較顯著的下滑,而 Fast 和 Medium 差別不大。所以最終選擇了 Fast 模式,在測試數(shù)據(jù)集上得到的結(jié)果也令人滿意。

Accuracy

Recall

Precision

0.9524

0.9608

0.9756

2、計(jì)算頻率優(yōu)化與靜默模式

在計(jì)算量優(yōu)化之后,算法能夠以 150fps-200fps 的速度進(jìn)行檢測。在實(shí)際的屏幕共享場景,輸入的幀率可以達(dá)到 30fps,如果檢測頻率為 30fps 仍然會(huì)帶來顯著的 CPU 占用,還需要進(jìn)一步降低檢測頻率。

在權(quán)衡響應(yīng)時(shí)間和 CPU 占用后,直接大幅度降低檢測頻率,比如每隔 5 幀檢測一次,在這種策略下,響應(yīng)時(shí)間和 CPU 占用都處于一種比較好的狀態(tài)。

但是,這種較低的檢測速度依舊會(huì)帶來可察覺的 CPU 增量,能不能再極致一點(diǎn)呢?

考慮到常見的辦公場景,用戶在屏幕共享時(shí),其內(nèi)容類型在較長的時(shí)間內(nèi)是保持不變的,所以檢測的結(jié)果也應(yīng)該是長時(shí)間保持不變。假如是我們?nèi)祟愒谶@種情況下,在做這樣的分類結(jié)果一直不變的任務(wù)時(shí),可不可以稍稍偷偷懶呢?答案是肯定的,那么計(jì)算機(jī)應(yīng)該也可以在這種情況下“偷一下懶”。這樣就可以在算法中引入了靜默的概念,當(dāng)檢測的結(jié)果基本不變時(shí),檢測算法模塊開始進(jìn)入靜默狀態(tài),此時(shí)檢測降低到更低的頻率,這樣 CPU 占用增長基本就察覺不到了。

如何確定何時(shí)需要進(jìn)入靜默呢?算法利用時(shí)域上的積分求得一個(gè)分?jǐn)?shù),當(dāng)該分?jǐn)?shù)達(dá)到一定閾值的時(shí)候,并且滿足一些其它的限制條件的時(shí)候,就可以認(rèn)為檢測到的為同一種類型了,就可以開始降低檢測頻率。這樣就保證了大多數(shù)情況下 CPU 的極低開銷,并且也盡可能保留了算法快速響應(yīng)的特性。

功能實(shí)現(xiàn)

決策邏輯

在共享模式的決策邏輯的設(shè)計(jì)上,需要明確兩點(diǎn):

  • 盡可能保持穩(wěn)定的分辨率與編碼策略,減少編解碼器重啟帶來的開銷
  • 適當(dāng)?shù)那袚Q速度

1. 幀率決策與分辨率決策

由于視頻流傳輸?shù)倪^程中,在有限的帶寬下,往往需要將幀率和分辨率相匹配以獲得合適的帶寬消耗。

所以自動(dòng)模式預(yù)設(shè)了若干個(gè)幀率和分辨率相匹配的檔位,在每次獲得檢測算法的檢測結(jié)果后對幀率進(jìn)行增減,再根據(jù)幀率的大小匹配相應(yīng)的分辨率。在幀率下降的時(shí)候,就可以根據(jù)內(nèi)外部條件的限制升高傳輸分辨率;相反,在幀率上升的時(shí)候,就可以用適當(dāng)?shù)倪壿媽Ψ直媛蔬M(jìn)行降級操作。

2. 編碼方式?jīng)Q策 

在共享文字場景為主的屏幕內(nèi)容時(shí),編碼策略也會(huì)與流暢度優(yōu)先的視頻編碼方式不同,這時(shí)會(huì)使用專門的針對屏幕內(nèi)容的編碼器,并開啟重復(fù)幀檢測等策略,同時(shí)也會(huì)對碼控策略進(jìn)行場景化的調(diào)整,從而使畫面更符合用戶需求。

3. 抗抖動(dòng) 

策略的切換一般是需要需要響應(yīng)時(shí)間的,比如分辨率的切換和編碼策略的切換都會(huì)有一定的響應(yīng)時(shí)間,如果頻繁的切換就會(huì)造成卡頓。

為了在發(fā)生抖動(dòng)的情況下,依舊能夠保證良好的共享體驗(yàn),需要引入一些抗抖動(dòng)的機(jī)制。

抖動(dòng)主要來自于兩個(gè)方面

  • 誤檢測造成抖動(dòng)
  • ?真實(shí)的共享內(nèi)容頻繁切換導(dǎo)致抖動(dòng)??

對于第一點(diǎn),通過兩種機(jī)制來減少抖動(dòng)影響。

  • 在整個(gè) pipeline 的設(shè)計(jì)上,設(shè)計(jì)一種負(fù)反饋的調(diào)節(jié)機(jī)制。如前文所述,在幀率越高時(shí),光流估計(jì)越準(zhǔn)確,而幀率低時(shí),不準(zhǔn)確的光流估計(jì)容易將一般的文檔場景誤檢測成視頻播放的場景。當(dāng)檢測出一次內(nèi)容變化時(shí),如果是因?yàn)檩斎霂实蛯?dǎo)致誤檢,這個(gè)時(shí)候及時(shí)提高幀率又能夠降低誤檢概率,這樣就可以避免由于誤檢導(dǎo)致的共享模式的切換,促成檢測速度和準(zhǔn)確度的穩(wěn)態(tài)。
  • 通過控制決策頻率來抑制抖動(dòng)的現(xiàn)象。

對于第二點(diǎn)所提到的抖動(dòng),最影響體驗(yàn)的場景是在內(nèi)容變化或者其他原因,幀率反復(fù)在決策點(diǎn)附近上下波動(dòng),導(dǎo)致分辨率反復(fù)切換。因此,在控制決策頻率的基礎(chǔ)上增加了 dead zone 機(jī)制,在該機(jī)制下,分辨率切換在提升和下降兩個(gè)變化方向的決策點(diǎn)并不一樣,留有一定的間隔,避免了內(nèi)容頻繁切換或者其他原因造成的分辨率的抖動(dòng)現(xiàn)象。

圖片

在這種機(jī)制下,分辨率就不會(huì)隨著幀率進(jìn)行頻繁地切換,能夠更好地保證用戶體驗(yàn)。

功能特色

業(yè)務(wù)實(shí)踐

在飛書屏幕共享的流暢度優(yōu)先模式中率先啟用了該功能,在業(yè)務(wù)上稱為智能流暢模式,這樣在用戶就能夠在播放視頻時(shí)達(dá)到 30fps 的流暢度,在共享文檔/ppt 內(nèi)容時(shí),又能保持較高的清晰度。這個(gè)功能基本解決了用戶錯(cuò)選流暢度優(yōu)先造成的清晰度不符合需求的問題,同時(shí)又保證了在用戶在真正需要流暢度體驗(yàn)的時(shí)候,得到高幀率的體驗(yàn)。

落地效果

經(jīng)過大范圍的線上測試之后,通過統(tǒng)計(jì)數(shù)據(jù)可以發(fā)現(xiàn),采用“屏幕共享自動(dòng)模式”后,一些原本采用“流暢模式”的共享場景被算法模塊糾正為了“清晰模式”,同時(shí)通過下圖可以發(fā)現(xiàn),用戶的屏幕分享分辨率有了極大地提升,得到了顯著的清晰度提升。在線上算法的判定的準(zhǔn)確程度上,通過對用戶反饋的統(tǒng)計(jì),該功能也有著比較好的評價(jià)。

圖片

同時(shí)通過統(tǒng)計(jì)數(shù)據(jù)可以發(fā)現(xiàn),得益于采集和編碼幀率的下降,CPU 占用不僅沒有上升反而得到了一定的優(yōu)化,如下圖所示,開啟自動(dòng)模式的功能之后,最高可以得到 CPU 占用降低 20%的收益。

圖片

與其他候選方案的比較

在研發(fā)之初,我們也調(diào)研了一些候選方案,一種技術(shù)方案是使用像素差異與變化的占比作為切換依據(jù),這樣最大的問題是,在部分教學(xué)視頻或說明類內(nèi)容中,在視頻內(nèi)容中展示 ppt 場景時(shí),算法會(huì)出現(xiàn)誤判,將肉眼感知到的靜態(tài)場景檢測為視頻場景,畫面清晰度下降,不符合用戶使用的直覺;此外還有一種方案是針對應(yīng)用類型進(jìn)行適配,比如根據(jù)進(jìn)程名稱和窗口大小進(jìn)行策略調(diào)整,這樣雖然能夠解決用戶場景化的需求差異,但是對于算法與策略的通用性會(huì)有較大的挑戰(zhàn)。本文使用的這套算法就能夠避開了上述的問題,體驗(yàn)更加友好。

未來的演進(jìn)與規(guī)劃

算法演進(jìn)

雖然由于數(shù)據(jù)集的相對缺乏,在設(shè)計(jì)之初排除了深度學(xué)習(xí)模型的應(yīng)用。在研發(fā)過程中,對算法流程與模塊進(jìn)行拆分,其中獨(dú)立出的紋理分析等模塊,這樣就可以通過人工數(shù)據(jù)集的方式,在部分算法模塊嘗試應(yīng)用深度學(xué)習(xí)模型,以期能夠獲得更好的算法表現(xiàn)。同時(shí),考慮到當(dāng)前的算法還是針對全局畫面的分類,未來會(huì)推出視頻區(qū)域的 ROI 檢測,這樣能夠讓下游應(yīng)用具有更強(qiáng)的靈活性和對業(yè)務(wù)的適應(yīng)能力。

業(yè)務(wù)演進(jìn)

當(dāng)前屏幕內(nèi)容檢測算法支持了共享模式的切換,此外,利用屏幕內(nèi)容檢測算法,還可以對發(fā)送端和接收端的網(wǎng)絡(luò)策略進(jìn)行更智能的調(diào)優(yōu),以期在文檔、ppt 場景下,進(jìn)一步減少屏幕共享的延時(shí)與卡頓,讓投屏與屏幕共享響應(yīng)更高清、更流暢、延時(shí)更低,給用戶提供更好的沉浸式體驗(yàn),帶來更顯著的生產(chǎn)力的飛躍。

責(zé)任編輯:未麗燕 來源: 字節(jié)跳動(dòng)技術(shù)團(tuán)隊(duì)
相關(guān)推薦

2022-07-22 14:45:46

SDKVolcRTC內(nèi)存優(yōu)化

2023-10-18 07:09:31

AIGC瀏覽器

2022-02-02 21:50:25

底層偽共享CPU

2016-11-09 21:09:54

mysqlmysql優(yōu)化

2020-09-03 06:33:35

高并發(fā)場景分布式鎖

2024-09-11 19:36:24

2023-11-08 07:39:42

2023-02-20 13:45:31

數(shù)據(jù)分析騰訊 Alluxio

2024-01-05 08:23:55

HttpClientQPS高并發(fā)

2022-08-19 18:15:04

視頻會(huì)議音頻質(zhì)量噪聲

2021-04-21 14:56:28

負(fù)載均衡高并發(fā)優(yōu)化技術(shù)架構(gòu)

2022-08-06 08:23:47

云計(jì)算公有云廠商成本

2024-07-18 21:26:44

2022-03-25 10:47:59

架構(gòu)實(shí)踐美團(tuán)

2024-03-19 09:24:00

大數(shù)據(jù)數(shù)據(jù)分析性能優(yōu)化

2024-06-12 07:30:08

2023-11-02 09:42:21

iOS屏幕旋轉(zhuǎn)

2022-09-06 11:57:32

ClickHouse火山引擎數(shù)據(jù)

2021-01-13 05:27:02

服務(wù)器性能高并發(fā)

2024-10-23 20:09:47

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號