0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RTC 场景下的屏幕共享优化实践1

jf_78858299 来源:字节跳动技术团队 作者:张耿祥 2023-05-26 17:01 次阅读

背景介绍

需求背景

屏幕共享是视频会议场景使用最广泛的功能之一,在共享一个 PPT 或者文档的情况下,人们对画面清晰度有着极高的要求,“看不清” 是最容易被用户吐槽的事情;而在共享一个视频素材的情况下,大家又对流畅度有着极高的要求,“卡顿” 也是最容易被用户吐槽的点。

为了更好地同时满足用户对清晰度和流畅度的要求,视频会议软件通常会设计两种模式:

  1. 清晰模式:主打清晰度,尽量保持高分辨率(如:最高 4K 原画质),带宽或性能不足的时候,只降低帧率(如:从 30fps -> 5fps),不降低分辨率。
  2. 流畅模式:主打流畅度,尽量提升帧率(如:最高 30fps),带宽或性能不足的时候,优先降低分辨率(如:从 4K -> 720p),最后才考虑降帧率。通常情况下,默认选择“清晰模式”,当用户要共享视频的时候,需要自己 “手动” 点击勾选上 “流畅度优先”按钮。

一般的做法是,让用户在共享屏幕时手动来勾选“清晰模式”还是“流畅模式”。但在实际的产品场景中,用户对这两种模式的感知并不是很强烈,不太可能要求用户在共享屏幕的过程中手动来回切换当前的共享模式,对用户体验影响比较大。

一种简单的方案是根据用户共享内容的文件后缀名来决定是“清晰度优先”还是“流畅度优先”,比如共享 PPT 时自动切换为“清晰模式”,共享视频时自动切换为“流畅模式”,但是这样设计会遇到一些问题:比如用户的 PPT 里嵌入了一段视频,在播放这段视频时理应追求“流畅度优先”;而如果用户视频其实是一段 PPT 的教学录屏,里面有大量的时间在播放静止的文字和画面,这时候“流畅模式”则会导致这些关键内容显得模糊。

RTC 要如何帮助用户及时调整最佳的共享模式呢?

需求分析

需求功能分析

痛点:

用户分享视频内容需要高帧率,而文字/ppt 需要高清晰度,这两种场景的需求是互相矛盾的,如果需要用户手动勾选相应的共享模式,不仅操作繁琐,也容易漏选、错选。

如何解决:

需要研发一个算法自动识别共享内容,进而确定当前是需要高帧率还是需要高清晰度。这样,在用户想要清晰画面的时候,产品就提供清晰的画面,用户想要流畅的视频体验时,产品就尽可能地保障屏幕画面的流畅性,用户在无感知的情况下就能获得当前场景的最佳体验。

屏幕共享场景定义

清晰度优先的场景

以文字为主,用户更需要看清楚画面的边缘特征,而较少关注其运动特征。

流畅度优先的场景

以视频内容为主,用户更需要流畅连贯的动态画面,而较少关注于单帧的清晰度。

技术实现

算法原理

学界相关成果概述

目前我们参考了以下两篇参考文献。第一篇是 Jing, Wang & Xuetao, Guan & Yang, Zhang. (2013). An Adaptive Encoding Application Sharing System Based on Remote Display. 266-269. 10.1109/ISDEA.2012.66.

该论文主要假定视频区域的均会以 24-30FPS 的频率发生变化,用 N*N 的 patch 的形式进行检测,从而发现视频区域。

第二篇参考文献是,侯文慧, 王俊峰. 面向云桌面协议的视频区域侦测算法[J]. 计算机应用, 2018, 038(005):1463-1469,1487.

这篇论文主要通过高变化区域侦测,并利用传统 sobel 算子+膨胀算法的边缘检测发现可能的矩形区域,通过颜色直方图的颜色数量判定文本区域从而确定视频内容区域。

相关算法的介绍

  1. 光流

光流(Optical flow or optic flow)是空间运动物体在成像平面上的像素运动的瞬时速度,是分析像素运动的一种方法。光流法在模式识别、计算机视觉以及其他图像处理领域中用处广泛,可用于运动检测、图像分割、运动补偿编码和立体视差测量等领域。

光流法实际是通过检测图像像素点随时间的变化进而推断出物体移动速度及方向的方法。假设该移动很小,那么可以根据泰勒级数得出:

图片

因此可以推出

图片

最终可得出光流方程:

图片

图片

这个方程有两个未知数,不能直接进行求解,这被称为光流算法的孔径问题。为了求解光流方程,还需要另一组方程,这个方程由附加的约束给出。(以上内容引用自 wikipedia)

图片

孔径问题

(孔径问题示意,引用自:https://zhuanlan.zhihu.com/p/74460341)

假设:

  • 相邻帧之间的亮度恒定;
  • 相邻视频帧的取帧时间连续,或者,相邻帧之间物体的运动比较“微小”;
  1. 决策树

决策树是一种逻辑简单的机器学习算法,它是一种树形结构,所以叫决策树。这是一种基于 if-then-else 规则的有监督学习算法,决策树的这些规则通过训练得到,而不是人工制定的。

图片

  • 决策树易于理解和解释,可以可视化分析,容易提取出规则;
  • 可以同时处理标称型和数值型数据;
  • 比较适合处理有缺失属性的样本;
  • 能够处理不相关的特征;
  • 测试数据集时,运行速度比较快;
  • 在相对短的时间内能够对大型数据源做出可行且效果良好的结果。(引用自 wikipedia)
  1. 颜色直方图

颜色直方图是许多图像检索系统中被广泛采用的颜色特征。它所描述的是不同色彩在整幅图像中所占的比例,而并不关心每种色彩所处的空间位置,即无法描述图像中的对象或物体。(引用自 wikipedia)

图片

  1. 方向统计(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)

利用方向统计方法,能够准确地统计出向量样本的方向均值,以及方向的离散程度,也避免了传统统计方法在角度值统计计算上的误差。

举个简单的例子,如下图所示,7/4π 和 1/4π 统计均值,以传统方法计算为 π,而利用方向统计就可以得到出均值为 0 的结果。

图片

算法总流程设计

视频的定义就是运动的画面,但在屏幕共享当中,并不能够将运动的画面都当作视频内容来处理。实际使用中,需要将部分运动的画面识别为需要高清优先、流畅度其次的屏幕内容,保证用户在此时获得清晰的观看体验。

  1. 探索性数据分析(EDA

在正式进行算法开发之前,先进行了探索性数据分析,分析发现屏幕的运动特征具有较高的区分度,从而大致判定利用光流法来完成该任务的特征提取是可行的。

图片

图片

  1. 算法流程图

该检测算法分成三个模块,五个步骤。

三个模块分别是:

  • 运动幅度分析:主要进行运动幅度相关特征的提取,能够统计运动画面比例,去除一些噪音。
  • 运动角度分析:主要进行运动角度相关特征的提取,能够统计画面运动的方向,以及运动方向的分散程度等
  • 纹理特征分析:主要提取一些纹理相关的特征,判定当前区域是否为文字区域。

具体分为五个步骤:

  • 采样:光流算法需要前后两帧数据进行计算,需要对视频流进行采样,得到两帧数据
  • 光流计算:计算出全图的稠密光流
  • 特征提取:提取运动和纹理特征
  • 状态转移:通过一系列模式和规则进行状态转移
  • 输出结果:根据内部状态信息输出检测结果

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 视频会议
    +关注

    关注

    4

    文章

    158

    浏览量

    30160
  • RTC
    RTC
    +关注

    关注

    2

    文章

    528

    浏览量

    66310
收藏 人收藏

    评论

    相关推荐

    HarmonyOS实践之应用状态变量共享

    平时在开发的过程中,我们会在应用中共享数据,在不同的页面间共享信息。虽然常用的共享信息,也可以通过不同页面中组件间信息共享的方式,但有时使用应用级别的状态管理会让开发工作变得简单。 根
    发表于 12-27 09:48

    怎么共享屏幕给对方,可以选择不同的屏幕共享软件?

    屏幕共享应用场景屏幕共享使用的场景一般是多台电脑(或平板、手机)协同办公。比如会议室内做培
    发表于 05-17 21:47

    高原环境TD-SCDMA网络的优化实践,不看肯定后悔

    高原环境TD-SCDMA网络的优化实践,不看肯定后悔
    发表于 05-28 06:57

    volatile关键字应用场景及示例

    volatile关键字1.应用场景2.示例1.应用场景volatile关键字分析,往往应用在三种场合1)多线程编程
    发表于 08-24 07:21

    MySql5.6性能优化最佳实践

    MySql5.6性能优化最佳实践
    发表于 09-08 08:47 13次下载
    MySql5.6性能<b class='flag-5'>优化</b>最佳<b class='flag-5'>实践</b>

    华为云在Kubernetes大规模场景的Service性能优化实践

    本文档的主要内容详细介绍的是华为云在Kubernetes大规模场景的Service性能优化实践包括了:1.Kubernetes的Servi
    发表于 06-21 08:00 0次下载
    华为云在Kubernetes大规模<b class='flag-5'>场景</b><b class='flag-5'>下</b>的Service性能<b class='flag-5'>优化</b><b class='flag-5'>实践</b>

    体验共享含义及其与RTC技术的关系

    ,以及该如何应对这些挑战。 大家好,我是邱国钦,本次与大家分享的是“体验共享”。首先做一个人介绍,我大学毕业于通信专业,而后进入腾讯从事互联网软件、QQ相关的工作,2015年进入即构科技负责SDK研发,目前专注于整体解
    的头像 发表于 04-29 17:34 1919次阅读

    STM32F030低温RTC不工作

    STM32F030低温RTC不工作
    发表于 12-09 09:21 19次下载
    STM32F030低温<b class='flag-5'>下</b><b class='flag-5'>RTC</b>不工作

    RTC互动语聊方案

    为了保证所有用户“边看边聊、精彩共享”的核心体验,“边看边聊”玩法选择了“ RTC 互动语聊”的方案,即所有用户都加入 RTC 房间,使用火山引擎 RTC 为支持超大型视频会议、在线教
    的头像 发表于 12-09 14:33 1142次阅读

    浅析RTC技术及应用实践

    RTC(Real-Time Communication)意为实时通信,是一项已发展十余年的技术,主要是以语音、视频、网络电话作为通信主体,通常不要求完全必达,以RTP/RTCP、UDP作为
    的头像 发表于 05-26 16:38 2848次阅读
    浅析<b class='flag-5'>RTC</b>技术及应用<b class='flag-5'>实践</b>

    RTC 场景屏幕共享优化实践2

    屏幕共享是视频会议场景使用最广泛的功能之一,在共享一个 PPT 或者文档的情况,人们对画面清晰度有着极高的要求,“看不清” 是最容易被用户
    的头像 发表于 05-26 17:01 830次阅读
    <b class='flag-5'>RTC</b> <b class='flag-5'>场景</b><b class='flag-5'>下</b>的<b class='flag-5'>屏幕</b><b class='flag-5'>共享</b><b class='flag-5'>优化</b><b class='flag-5'>实践</b>2

    屏幕共享诈骗怎么防?芯盾时代智能风控决策平台(IRD)了解一

    近期,屏幕共享诈骗在全国呈现爆发态势。虽然各地警方接连不断发布预警,各路媒体持续曝光宣传,屏幕共享诈骗仍旧此起彼伏。随便在搜索引擎、社交媒体上一搜,就会出现大批案例,让人应接不暇。
    的头像 发表于 10-08 15:55 639次阅读
    <b class='flag-5'>屏幕</b><b class='flag-5'>共享</b>诈骗怎么防?芯盾时代智能风控决策平台(IRD)了解一<b class='flag-5'>下</b>?

    谷歌发布Pixel手机3月功能更新,优化应用屏幕共享和快速配对功能

    除对先前阶段不足之处进行修复和增强系统稳定性外,谷歌还将重点放在了扩大“圈选即搜”(Circle to Search)功能的覆盖范围、优化应用屏幕共享和Fast Pair等功能上。
    的头像 发表于 03-05 10:10 642次阅读

    RTC时钟芯片的特性及应用场景

    和应用场景: 主要特性 1 . 高精度时钟与日历功能 :FRTC8563基于稳定的晶振工作,能够提供准确的时钟和日历信息,包括年、月、日、星期、小时、分钟和秒等。 2. 低功耗设计 :该芯片采用低功耗技术,使得在待机状态功耗极
    的头像 发表于 09-09 14:24 422次阅读
    <b class='flag-5'>RTC</b>时钟芯片的特性及应用<b class='flag-5'>场景</b>

    本源量子荣获2024金融科技场景应用大赛“探索实践奖”

    近期,在被誉为“中国金融改革发展风向标”的2024金融街论坛年会上,本源量子与中国邮政储蓄银行股份有限公司联合申报的“真实量子计算环境,基于量子变分网络的组合优化方案”荣获2024金融科技场景
    的头像 发表于 10-23 08:05 257次阅读
    本源量子荣获2024金融科技<b class='flag-5'>场景</b>应用大赛“探索<b class='flag-5'>实践</b>奖”