阿里云 RTC QoS 屏幕共享弱网优化之若干编码器相关优化 (2)

上图中左上部分是没有 LTR 的效果,几乎完全卡死,左下部分是使用了 LTR 的效果,可以看到屏幕有所滚动,比左上的更流畅。同时该场景我们还进一步测试了增加 Screen Content Coding Tools,右边的是同时使用了 LTR 和 SCC 的效果,可以看到明显是三者中最流畅的。

清晰度效果

下图中左边是原始 Codec 效果,中间是增加了 LTR 的效果,右边是同时增加了 LTR 和 SCC 的效果,可以看到三者的清晰度并没有明显差别。由于该例子我们共享的是实时的滚屏 Log,所以三者的内容不是完全一样的,但是总体差别不大。

阿里云 RTC QoS 屏幕共享弱网优化之若干编码器相关优化

Fast QP Rate Control

屏幕共享经常会有这样的场景:演讲者的桌面静止很长时间,然后翻页。对于编码器来说,画面静止一段时间会导致 QP 逐渐降低至最小 QP,然后翻页画面突变,编码器为了控制住码率,会增加 QP。常规的编码器码率控制为了使每帧的视频质量平稳变化,会限制每帧的 QP 调整幅度,相邻两帧的 QP 变化不能太大,以得到平稳的视频观看质量体验,这样翻页时就会有一个码率的突然增加,至码率收敛到目标码率会有一个过程,在网络好的时候没有关系,可以容忍码率的波动,但是在弱网时,该码率突增就会造成卡顿,影响观看体验。

因此,我们增加了另一种编码器码率控制模式,即码率快速收敛模式 Fast QP,主要原理是其可以摆脱相邻帧 QP 不能变化太大的限制,使得实际码率可以快速收敛到目标码率,然后配合网络层的带宽估计技术,在检测到弱网的时候启用这种编码器码率控制模式,使得视频码率非常平稳,观看体验更加流畅,虽然这样可能牺牲了一些相邻帧质量变化的感受,但是此时卡顿率的体验更加明显和重要,这种平衡和取舍是值得的。

Fast QP 效果

下面展示弱网下的 Fast QP 效果。

流畅性效果

阿里云 RTC QoS 屏幕共享弱网优化之若干编码器相关优化

上图中一开始的那个画面(有 Twitch 单词紫色背景)是几乎静止的,只有很小范围的变化,持续了近 10 秒钟,编码器 QP 逐渐下降至很低,然后翻页到一个较复杂纹理的页面(各种分辨率卡条),此时可以看到右下的使用 Fast QP 的画面基本上可以跟得上上方本地预览画面的变化,而左下的没有开 Fast QP 的画面就卡住了,然后又翻了两页,Fast QP 版本均能跟得上变化,而没有开 Fast QP 版本直到最后一页才恢复。

清晰度效果

这里我们只展示了翻页前的清晰度,对于翻页的清晰度,由于原始版本卡住了,所以就没有展示。左边是原始的,右边是加了 Fast QP 的清晰度,由于两者都是 QP 值降到了很低,所以清晰度都很高,没有什么差异。

阿里云 RTC QoS 屏幕共享弱网优化之若干编码器相关优化

Content Adaptive Frame Rate

屏幕共享的时候如果是共享桌面文档,PPT 等内容进行演讲,一般翻页速度是相对较慢的,帧率不用很高 5-10 帧每秒即足够;而有时屏幕共享也会播放电影,动画等视频,这样要求的帧率就比较高了,最好能到 20-30 帧每秒才看起来比较舒服。如下面两图,一个是编辑 PPT 的视频,明显帧率可以比较低,另一个是广告视频,明显帧率应该高一些。

阿里云 RTC QoS 屏幕共享弱网优化之若干编码器相关优化

阿里云 RTC QoS 屏幕共享弱网优化之若干编码器相关优化

如果我们把帧率定死,如 FPS=5,则碰到播放电影的场景就显得卡顿了;而如果我们把帧率直接定成 FPS=30,那在一般共享文档,PPT 的场景又会造成码率的浪费。

视频编码器里的运动矢量 MV 信息可以很好的反应画面的运动状况,如果是共享的文档,PPT 等不怎么动的画面,则大多数 MV 都等于 0 的,而如果是播放电影,动画等运动较多的场景,则 MV 会有一定的数值,所以利用编码器的 MV 信息可以很好的判断当前共享视频的运动状况,选择合适的帧率。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyydwj.html