背景介紹
需求背景
屏幕共享是視頻會議場景使用最廣泛的功能之一,在共享一個 PPT 或者文檔的情況下,人們對畫面清晰度有著極高的要求,“看不清” 是最容易被用戶吐槽的事情;而在共享一個視頻素材的情況下,大家又對流暢度有著極高的要求,“卡頓” 也是最容易被用戶吐槽的點。
為了更好地同時滿足用戶對清晰度和流暢度的要求,視頻會議軟件通常會設(shè)計兩種模式:
- 清晰模式:主打清晰度,盡量保持高分辨率(如:最高 4K 原畫質(zhì)),帶寬或性能不足的時候,只降低幀率(如:從 30fps -> 5fps),不降低分辨率。
- 流暢模式:主打流暢度,盡量提升幀率(如:最高 30fps),帶寬或性能不足的時候,優(yōu)先降低分辨率(如:從 4K -> 720p),最后才考慮降幀率。通常情況下,默認(rèn)選擇“清晰模式”,當(dāng)用戶要共享視頻的時候,需要自己 “手動” 點擊勾選上 “流暢度優(yōu)先”按鈕。
一般的做法是,讓用戶在共享屏幕時手動來勾選“清晰模式”還是“流暢模式”。但在實際的產(chǎn)品場景中,用戶對這兩種模式的感知并不是很強烈,不太可能要求用戶在共享屏幕的過程中手動來回切換當(dāng)前的共享模式,對用戶體驗影響比較大。
一種簡單的方案是根據(jù)用戶共享內(nèi)容的文件后綴名來決定是“清晰度優(yōu)先”還是“流暢度優(yōu)先”,比如共享 PPT 時自動切換為“清晰模式”,共享視頻時自動切換為“流暢模式”,但是這樣設(shè)計會遇到一些問題:比如用戶的 PPT 里嵌入了一段視頻,在播放這段視頻時理應(yīng)追求“流暢度優(yōu)先”;而如果用戶視頻其實是一段 PPT 的教學(xué)錄屏,里面有大量的時間在播放靜止的文字和畫面,這時候“流暢模式”則會導(dǎo)致這些關(guān)鍵內(nèi)容顯得模糊。
RTC 要如何幫助用戶及時調(diào)整最佳的共享模式呢?
需求分析
需求功能分析
痛點:
用戶分享視頻內(nèi)容需要高幀率,而文字/ppt 需要高清晰度,這兩種場景的需求是互相矛盾的,如果需要用戶手動勾選相應(yīng)的共享模式,不僅操作繁瑣,也容易漏選、錯選。
如何解決:
需要研發(fā)一個算法自動識別共享內(nèi)容,進(jìn)而確定當(dāng)前是需要高幀率還是需要高清晰度。這樣,在用戶想要清晰畫面的時候,產(chǎn)品就提供清晰的畫面,用戶想要流暢的視頻體驗時,產(chǎn)品就盡可能地保障屏幕畫面的流暢性,用戶在無感知的情況下就能獲得當(dāng)前場景的最佳體驗。
屏幕共享場景定義
清晰度優(yōu)先的場景
以文字為主,用戶更需要看清楚畫面的邊緣特征,而較少關(guān)注其運動特征。
流暢度優(yōu)先的場景
以視頻內(nèi)容為主,用戶更需要流暢連貫的動態(tài)畫面,而較少關(guān)注于單幀的清晰度。
技術(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ū)域的均會以 24-30FPS 的頻率發(fā)生變化,用 N*N 的 patch 的形式進(jìn)行檢測,從而發(fā)現(xiàn)視頻區(qū)域。
第二篇參考文獻(xiàn)是,侯文慧, 王俊峰. 面向云桌面協(xié)議的視頻區(qū)域偵測算法[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)算法的介紹
- 光流
光流(Optical flow or optic flow)是空間運動物體在成像平面上的像素運動的瞬時速度,是分析像素運動的一種方法。光流法在模式識別、計算機(jī)視覺以及其他圖像處理領(lǐng)域中用處廣泛,可用于運動檢測、圖像分割、運動補償編碼和立體視差測量等領(lǐng)域。
光流法實際是通過檢測圖像像素點隨時間的變化進(jìn)而推斷出物體移動速度及方向的方法。假設(shè)該移動很小,那么可以根據(jù)泰勒級數(shù)得出:
因此可以推出
最終可得出光流方程:
這個方程有兩個未知數(shù),不能直接進(jìn)行求解,這被稱為光流算法的孔徑問題。為了求解光流方程,還需要另一組方程,這個方程由附加的約束給出。(以上內(nèi)容引用自 wikipedia)
孔徑問題
(孔徑問題示意,引用自:https://zhuanlan.zhihu.com/p/74460341)
假設(shè):
- 相鄰幀之間的亮度恒定;
- 相鄰視頻幀的取幀時間連續(xù),或者,相鄰幀之間物體的運動比較“微小”;
- 決策樹
決策樹是一種邏輯簡單的機(jī)器學(xué)習(xí)算法,它是一種樹形結(jié)構(gòu),所以叫決策樹。這是一種基于 if-then-else 規(guī)則的有監(jiān)督學(xué)習(xí)算法,決策樹的這些規(guī)則通過訓(xùn)練得到,而不是人工制定的。
- 決策樹易于理解和解釋,可以可視化分析,容易提取出規(guī)則;
- 可以同時處理標(biāo)稱型和數(shù)值型數(shù)據(jù);
- 比較適合處理有缺失屬性的樣本;
- 能夠處理不相關(guān)的特征;
- 測試數(shù)據(jù)集時,運行速度比較快;
- 在相對短的時間內(nèi)能夠?qū)Υ笮蛿?shù)據(jù)源做出可行且效果良好的結(jié)果。(引用自 wikipedia)
- 顏色直方圖
顏色直方圖是許多圖像檢索系統(tǒng)中被廣泛采用的顏色特征。它所描述的是不同色彩在整幅圖像中所占的比例,而并不關(guān)心每種色彩所處的空間位置,即無法描述圖像中的對象或物體。(引用自 wikipedia)
- 方向統(tǒng)計(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)計方法,能夠準(zhǔn)確地統(tǒng)計出向量樣本的方向均值,以及方向的離散程度,也避免了傳統(tǒng)統(tǒng)計方法在角度值統(tǒng)計計算上的誤差。
舉個簡單的例子,如下圖所示,7/4π 和 1/4π 統(tǒng)計均值,以傳統(tǒng)方法計算為 π,而利用方向統(tǒng)計就可以得到出均值為 0 的結(jié)果。
算法總流程設(shè)計
視頻的定義就是運動的畫面,但在屏幕共享當(dāng)中,并不能夠?qū)⑦\動的畫面都當(dāng)作視頻內(nèi)容來處理。實際使用中,需要將部分運動的畫面識別為需要高清優(yōu)先、流暢度其次的屏幕內(nèi)容,保證用戶在此時獲得清晰的觀看體驗。
- 探索性數(shù)據(jù)分析(EDA)
在正式進(jìn)行算法開發(fā)之前,先進(jìn)行了探索性數(shù)據(jù)分析,分析發(fā)現(xiàn)屏幕的運動特征具有較高的區(qū)分度,從而大致判定利用光流法來完成該任務(wù)的特征提取是可行的。
- 算法流程圖
該檢測算法分成三個模塊,五個步驟。
三個模塊分別是:
- 運動幅度分析:主要進(jìn)行運動幅度相關(guān)特征的提取,能夠統(tǒng)計運動畫面比例,去除一些噪音。
- 運動角度分析:主要進(jìn)行運動角度相關(guān)特征的提取,能夠統(tǒng)計畫面運動的方向,以及運動方向的分散程度等
- 紋理特征分析:主要提取一些紋理相關(guān)的特征,判定當(dāng)前區(qū)域是否為文字區(qū)域。
具體分為五個步驟:
- 采樣:光流算法需要前后兩幀數(shù)據(jù)進(jìn)行計算,需要對視頻流進(jìn)行采樣,得到兩幀數(shù)據(jù)
- 光流計算:計算出全圖的稠密光流
- 特征提取:提取運動和紋理特征
- 狀態(tài)轉(zhuǎn)移:通過一系列模式和規(guī)則進(jìn)行狀態(tài)轉(zhuǎn)移
- 輸出結(jié)果:根據(jù)內(nèi)部狀態(tài)信息輸出檢測結(jié)果
-
視頻會議
+關(guān)注
關(guān)注
4文章
158瀏覽量
30150 -
RTC
+關(guān)注
關(guān)注
2文章
515瀏覽量
66126
發(fā)布評論請先 登錄
相關(guān)推薦
評論