Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >揭秘:腾讯会议背后的视频编码“神器”

揭秘:腾讯会议背后的视频编码“神器”

作者头像
腾讯多媒体实验室
发布于 2020-12-01 03:10:34
发布于 2020-12-01 03:10:34
2.5K0
举报

导语 | 作为一款实时音视频通信产品,腾讯会议里面有海量的音视频数据需要进行实时传输,比如我们的摄像头画面,屏幕分享的数据等。这些数据量非常庞大,通常需要经过编码压缩再进行传输,那么腾讯会议里有哪些视频编码方面的”神器”呢?本文将一一为大家揭晓。文章作者:张清,腾讯多媒体实验室高级研究员。

一、时域SVC

在视频编码中,有三种帧类型:

  • I帧:只能进行帧内预测,可以独立解码;
  • P帧:单假设参考帧,也就是通常说的前向预测帧,只能使用它之前的帧进行预测;
  • B帧:双假设参考帧, 一般为双向预测帧。

由于B帧会带来不可避免的延迟,因此在实时通信中通常只使用I帧和P帧这两种帧类型。

I帧只使用了本帧的信息进行预测,也就是说I帧的解码不依赖于其他帧,因此可以独立解码,但I帧的编码效率偏低,数据量较大。

P帧使用了帧间预测方法,可以参考之前的一些解码帧信息,能达到较高的压缩效率(帧大小比I帧小很多),但是解码时必须依赖于其他帧。

在实际的应用场景中,为了提升压缩效率,往往会使用IPPP的帧结构,即I帧之后编码N个P帧。但当网络情况不好时(如抖动,丢包,限速等),这种帧结构就会造成长时间的卡顿。

如下图所示,第0帧为I帧,后续7个帧均为P帧,且每个P帧只有一个参考帧(为其前一帧)。当网络发生丢包时,第3帧丢失,由于第4帧参考第3帧进行压缩,因此不能正确解码,5~7帧则类似。

这种情况下,即使丢包只造成个别帧的丢失,但由于接收端很多帧不能正确解码,会造成长时间的卡顿,只能通过申请I帧的机制进行恢复。

IPPP帧结构参考关系

为了解决这一问题,我们加入了时域SVC技术,对参考帧结构进行了调整。

时域SVC帧结构参考关系

我们可以将视频帧分为若干层,上图以3层为例:

  • Layer0的帧只能参考同样为Layer0的帧,不能参考Layer1和Layer2的帧;
  • Layer1的帧可以参考Layer0和Layer1的帧,不能参考Layer2的帧;
  • Layer2的帧可以参考Layer0~2的帧。

越低层级的帧被参考的可能性越大,因此重要性也越大。在网络发生丢包时,只要所丢的帧不是Layer0层,就不需要重新申请I帧,解码端就可以持续成功解码。如上图中第1帧丢失仅会影响2,3帧,其他帧不会受到影响。

此外还可以结合网络层的策略,对低层级的帧多加一些保护(如FEC),降低其丢失的概率,能有效地解决卡死的问题。在参会的下行人数很多时,可能会有小部分下行网络较差,如果采用传统的IPPP结构,则当某个下行损伤时就需要不断的申请I帧来恢复,这样就会影响到其他接收端的视频体验;如果采用时域SVC的结构,在能够保证少数的下行网络存在问题时,其他的下行端不会受到影响。

说了这么多,我们来看一下实际的效果吧!第一个视频示例是IPPP结构在网络损伤时的表现,卡顿感很明显;接下来是采用时域SVC的版本,帧率会有所影响但整体还算流畅。

IPPP帧结构网络损伤效果

时域SVC帧结构网络损伤效果

二、ROI检测以及基于ROI的编码

摄像头内容是腾讯会议中的一个主要视频场景。在此场景中,人眼往往比较关注人脸区域,对背景区域的关注度较低。因此,我们加入了人脸检测算法和基于感兴趣区域(Region of Interest, 简称ROI)的编码算法。

这类算法的主要思路是:实时地检测出当前视频中的ROI区域,将其传入到编码器内部,编码器进行单帧的码率重分配。对ROI区域,增大其码率,能使该区域编码的更好,提升主观质量;对于非ROI区域,降低其码率,则总的码率不会超出目标码率。

在ROI检测方面,因为腾讯会议是一个实时性要求很高的场景,对算法复杂度很敏感,我们使用一些传统的算法,结合编码器的一些预分析结果,确定最终的ROI-map,对于1080p的视频,单帧检测耗时在0.3ms以内,完全满足了实时性的要求。

基于ROI的检测和码率调整算法的优点在于:在低码率的情况下,能极大地提升主观质量;在高码率的场景下,可以保持主观质量基本不变,码率节省20%~30%,以下是一些对比效果:

低码率效果对比 (左)关闭ROI  (右)开启ROI

高码率效果对比 (左) 300kbps, 关闭ROI  (右) 210kbps, 开启ROI

三、屏幕内容编码技术

屏幕分享/白板等屏幕类内容是腾讯会议中另一类视频场景。屏幕生成的视频与摄像头采集的视频存在很大的不同:屏幕视频通常没有噪声,色调离散,线条细腻,边缘锐利;相反的,摄像机拍摄的视频通常存在噪声,色调连续且丰富,纹理比较复杂。

传统的H.264和H.265编码器采用的是基于块的混合编码框架,包含预测,变换,量化以及熵编码。其中变换模块主要的目的是将残差信号从空域变换到频域,使信号能量更集中,也方便基于不同的频率分量做不同的处理,减小编码所需的比特数。

但是,对屏幕分享的内容,采用基于变换的编码方法,会损失其高频细节,导致用户观看的视频变得不清晰

基于上述原因,我们在H.265编码器中加入了一些有效的屏幕内容编码技术(Screen Content Coding,简称SCC),包括帧内块拷贝和调色板编码。

我们在前面的介绍中也提到过,一般情况下I帧编码效率要比P帧差,主要原因是P帧可以利用时域上的信息进行预测,预测精确度往往很高,这样编码的信息量就变少了。

如下图所示,第N帧与第N-1帧之间只有很少量的运动,所以用第N-1帧的信息来预测第N帧相对来说会很准确。

帧间预测示例图

所谓的帧内块拷贝,是指借鉴了帧间预测的方法,在I帧中引入基于运动矢量(Motion Vector, 简称MV)的预测,提升其预测精确度,极大地提升了I帧的压缩效率。

该方法之所以在屏幕类场景效果显著,是由于屏幕序列相比于摄像头采集序列有很多重复性的图案,用这个方法效果更好。

屏幕序列重复图案示例

在屏幕内容中,像素点的选择通常集中在某一些色彩上,所以我们引入了调色板模式。该模式彻底抛弃了传统的变换编码的方法,直接依据像素点的“颜色值”生成调色板。

对每个像素点,传输其在调色板中的“索引”(“index”)即可。该算法可以达到很高的编码效率提升,同时这种方法由于不使用变换,且大多数的点可以在颜色表中找到对应的项,主观质量也有明显的提升。

四、YUV444编码

在视频编码中,基本的数据格式为YUV,根据采样格式的不同可以分为YUV444, YUV422以及YUV420,这三种格式的区别见下图(O表示Y分量,X表示U/V分量):

YUV采样格式 (左)YUV444  (中)YUV422  (右)YUV420

YUV444采样格式中Y、U、V 三个分量的比例相同,每个像素的三个分量信息完整,都是一个字节。YUV422采样格式中Y 分量和 UV 分量则按照 2 : 1 的比例采样。如图所示,水平方向有4个像素点,那么就采样4个Y分量,2个UV 分量。

YUV420采样格式中,每一行扫描时只扫描一种色度分量(U 或者 V)且该色度分量与Y分量按照 2 : 1 的方式采样。如图所示,为了直观的理解,我们认为4个Y分量对应1个UV分量,因此将X放在了四个O中间。

一般来说,大多数的视频类应用都采样YUV420的格式进行编码,一方面这种格式数据量较少,另一方面色度分量的重要程度明显低于亮度分量,对色度降采样后人眼主观感受降低不明显。

然而,在屏幕分享场景中,相比于摄像头采集序列,U/V分量信息更丰富,下采样会严重的丢失这部分信息,且在后续的后处理等环节无法补回,所以我们加入了YUV444编码的支持。

大家可以看下下面这两张图,我们人为生成了一张U/V分量信息很丰富的图片,在发送端可以看到是有色彩的,但是经过YUV420采集编码传输后,到接收端看到的却是一幅灰度图像,失真非常严重。

测试图片

YUV420传输效果(U/V分量严重失真)

在屏幕分享场景下,有些时候可能会对色彩的保真度/还原度要求较高,如一些设计图像等,那么加入YUV444的支持就是为了在这些场景下达到不错的用户体验。下面是我们实际测试到的YUV420/YUV444编码下的对比图:

原图

YUV420编码图像

YUV444编码图像

五、业界领先的编码器

我们对H.264和H.265编码器进行了深度优化,一方面加入了很多快速算法,提升其编码速度;另一方面加入了一些新的编码工具集,提升其压缩效率。

与业界最著名的x264开源编码器相比,我们的H.264编码器针对屏幕分享内容做了大量的优化,达到了40%以上压缩效率的提升,编码速度仅损失11%左右。

我们的H.265编码器无论在屏幕分享场景还是摄像头场景,都远远优于开源的x265编码器。与x265相比,在屏幕分享场景下,压缩效率提升多达83.7%,速度提升210%;在摄像头场景下,压缩效率提升24.7%的同时速度可以提升140%左右。

结语

本文较为详细的介绍了一些腾讯会议中的视频编码“神器”,为了不断地提升产品体验,我们会根据不同的场景持续优化我们的编码器,增加适合的编码技术,欢迎大家咨询体验!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯音视频实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
腾讯技术开放日 | 保障视频连线画质清晰且流畅,腾讯会议有这些优化实践
导读 | 腾讯会议自去年12月底推出,在疫情期间极速扩容,日活跃用户超过1000万。面对数量庞大的用户,以及他们背后网络、设备的多样性,该如何针对各个场景进行优化以提升用户体验?在【腾讯技术开放日 · 云视频会议专场】中,腾讯多媒体实验室视频技术专家王诗涛针对视频编码技术优化实践进行了分享,讲述如何利用视频技术达到清晰流畅,低延时的用户体验。 点击视频,查看直播回放 一、屏幕分享场景编码技术优化实践 在视频会议中,视频的应用场景分两部分:屏幕分享和摄像头视频。屏幕内容是由电子设备生成的图像,摄像头内容是
腾讯多媒体实验室
2020/05/28
2.5K0
O264RT,实时通信的不二之选
前言 随着互联网的发展以及智能终端的普及,视频已成为用户获取信息、休闲娱乐的重要媒体渠道。原始视频的信息数据量往往很大,对网络传输及本地存储都带来了很大的挑战,可以通过视频编解码器对原始视频进行压缩和解压处理,达到快速的传输和存储的效果。 目前广泛应用的H.264视频编码标准于2003年发布,并在之后的十年内得到了极大的普及,随后,H.265视频编码标准也于2013年首推,但它的普及却是困难重重,主要原因是专利收费主体不明及标准太高。直到现在,市面上仍有很多视频类应用采用H.264来进行压缩,可以说,
腾讯多媒体实验室
2021/11/01
2K0
视频编码(3):H.266 编码性能比 H.265 再提升 49% 的关键丨音视频基础
我们在前文《视频编码(1)》和《视频编码(2)》中探讨了 H.264 视频编码的基本概念、编码工具、编码流程及码流结构等基础知识,以及在 H.264 基础上迭代而生的 H.265 有哪些改进。接下来我们再来聊聊更新一代编码技术 H.266 的改进。
关键帧
2022/06/13
4.1K0
视频编码(3):H.266 编码性能比 H.265 再提升 49% 的关键丨音视频基础
腾讯V265编码器:给用户以完备的265体验
大家好,我是张贤国,毕业后长期从事于视频编码标准制定(HEVC、VVC),以及视频编码器(H.265)研发工作,2017年加入腾讯,主要负责视频编码研发相关工作。本次分享将重点介绍V265编码器的业务体验优化,包括码率控制优化以及业务适配相关的优化。主要内容可以分为三个部分,首先简单介绍V265的最新情况,然后重点讲解V265在码率控制方面所做的一些优化,最后会介绍V265编码器在业务落地过程中遇到的一些问题与解决方案。
LiveVideoStack
2019/09/17
4.9K0
腾讯V265编码器:给用户以完备的265体验
从.JPG到.AVI,这篇视频编码的最强入门科普,你值得拥有!
剧里主要讲述的,是一群美国硅谷年轻人的创业故事。我觉得挺好看的,一口气追完了(貌似后面还会更新)。同为创业者,对里面的剧情非常有感触。
鲜枣课堂
2019/07/22
8530
从.JPG到.AVI,这篇视频编码的最强入门科普,你值得拥有!
音视频面试题集锦 2022.10
我们在知识星球上创建的音视频技术社群关键帧的音视频开发圈已经运营了一段时间了,在这里群友们会一起做一些打卡任务。比如:周期性地整理音视频相关的面试题,汇集一份音视频面试题集锦,你可以看看这个合集:音视频面试题集锦。再比如:循序渐进地归纳总结音视频技术知识,绘制一幅音视频知识图谱,你可以看看这个合集:音视频知识图谱。
关键帧
2022/11/29
1.6K0
IBC+Palette 实现屏幕内容编码优化
在屏幕内容编码中采用IBC+Palette编码技术可显著提升其压缩效率。本文主要介绍了腾讯屏幕内容编码优化技术探索与实践:加入IBC+Palette编码工具集,并针对屏幕内容优化ME模块等。本文由腾讯
LiveVideoStack
2019/07/01
3.1K0
IBC+Palette 实现屏幕内容编码优化
视频编码(1):可能是最详尽的 H.264 编码相关概念介绍丨音视频基础
(本文基本逻辑:视频编码的理论基础是什么 → H.264 视频编码的基本概念、编码工具、编码流程及码流结构 → H.265 的编码工具及改进 → H.266 的编码工具及改进)
关键帧
2022/06/13
9.2K0
视频编码(1):可能是最详尽的 H.264 编码相关概念介绍丨音视频基础
腾讯云V265/TXAV1直播场景下的编码优化和应用
随着视频直播不断向着超高清、低延时、高码率的方向发展, Apple Vision的出现又进一步拓展了对3D, 8K 120FPS的视频编码需求,视频的编码优化也变得越来越具有挑战性。在LiveVideoStackCon 2023上海站,腾讯云专家工程师姜骜杰老师为我们分享了腾讯云V265/TXAV1直播场景下的编码优化和应用,带领我们探索音视频技术的无限可能性。
腾讯云音视频
2023/08/28
1.1K0
腾讯云V265/TXAV1直播场景下的编码优化和应用
音视频开发基础知识(2)——最通俗易懂的视频编解码理论知识
音视频学习项目:LearnVideo AndroidMediaCodecDem
老马的编程之旅
2022/06/23
1K0
音视频开发基础知识(2)——最通俗易懂的视频编解码理论知识
助力Vision Pro等3D应用,腾讯V265新增对MV-HEVC标准的编码支持
2023年6月6日,备受全球科技圈瞩目的Apple Vision Pro在苹果全球开发者大会(WWDC)上正式发布,宣称通过对MV-HEVC编码标准的硬件编解码支持,显著提升了3D视频主客观体验。一时间,很多开发者都在搜索,MV-HEVC又是什么,跟传统的基于HEVC的3D编码有什么区别?
腾讯云音视频
2023/08/03
1.8K0
助力Vision Pro等3D应用,腾讯V265新增对MV-HEVC标准的编码支持
压缩效率比H.265更高,揭秘腾讯无线投屏背后的屏幕编码技术
腾讯无线投屏是腾讯音视频实验室为解决会议室高频场景痛点而研发的一款会议类产品。无线投屏提高了会议效率,简化了会议流程。自上线以来得到了广泛的应用。无线投屏涉及技术面广,技术难度大,为了提升用户体验,腾讯无线投屏在网络适应性,鼠标优化,扩展屏及视频编解码技术等方面做了大量攻坚,使我们的产品在各个方面处于业界领先水平。本文将给大家揭秘腾讯无线投屏背后的屏幕编码技术(Tencent Screen Encoder,以下简称TSE),对于屏幕内容图像,TSE相比x265(normal模式),压缩效率提升55%。
腾讯多媒体实验室
2019/05/16
10.5K1
压缩效率比H.265更高,揭秘腾讯无线投屏背后的屏幕编码技术
音视频&流媒体的原理以及基础入门知识
当下,音视频、流媒体已经无处不在,直播已经火了几年,在后续的时间里面,人们聊天已经不仅仅满足与文字、而是更多的在于“类面对面”交流,能够实时感知对方的表情、动作。为此,有必要跟紧时代潮流,好好梳理梳理流媒体这门功课。
嵌入式音视频
2022/09/24
1.8K0
音视频&流媒体的原理以及基础入门知识
WWDC 21 - 探索使用 VideoToolbox 进行低延迟视频编码
低延迟编码对于很多视频app来说都很重要,特别是对实时音视频场景。苹果在 WWDC 2021 在 VideoToolbox 里推出了一种新的低延迟编码模式。低延迟编码模式的主要目的是为实时通讯场景优化现有的编码流程。
JoeyBlue
2021/09/07
2.8K0
端到端视频压缩中的双向预测
设计双向预测压缩模型的动机在于,现有的端到端视频压缩框架都是采用的 low delay P 的 GOP 结构,只是简单的前向单帧参考。而双向预测在传统的混合编码框架中是很常见的。并且,对于端到端的视频压缩框架来说,从一组图像中捕获运动信息时较为困难的,因此这篇论文提出了一种调整现有的以自编码器为主的帧内预测架构的方法,使得其能够采用更复杂的时域预测结构。
用户1324186
2021/11/23
1.1K0
微信 Android 视频编码爬过的那些坑
本文主要介绍了如何在移动端GPU上对视频进行高效的编码与解码,通过对比多种编码方式、使用GPU对视频进行硬件加速、利用GPU对视频进行实时处理、以及对视频进行高效压缩与解码,最终实现了在移动端GPU上对视频进行高效编码与解码的解决方案。
微信终端开发团队
2017/10/30
9.8K2
微信 Android 视频编码爬过的那些坑
浅入浅出谈“视频压缩”
1 我们为什么要进行压缩? 2 视频信息为什么可以被压缩? 3 视频压缩算法概述 (一)我们为什么要进行压缩? 原始的视频数据YUV(RGB)很大,举个例子: 1080p@60fps,2h的电影,其
腾讯多媒体实验室
2022/07/27
2K0
浅入浅出谈“视频压缩”
音视频基础
采样精度(采样深度):每个“样本点”的大小, 常用的大小为8bit, 16bit,24bit。
vitofliu
2021/07/05
2.5K0
【Android 音视频开发打怪升级:音视频硬解码篇】一、音视频基础知识
不知道大家小时候是否玩过一种动画小人书,连续翻动的时候,小人书的画面就会变成一个动画,类似现在的gif格式图片。
开发的猫
2020/04/01
1.7K0
【Android 音视频开发打怪升级:音视频硬解码篇】一、音视频基础知识
Shopee 视频处理技术后台应用
 点击上方“LiveVideoStack”关注我们 ▲扫描图中二维码或点击阅读原文▲ 了解音视频技术大会更多信息 目录 1. 背景 2. Shopee 视频技术落地产品 3. Shopee 视频相关后台服务     3.1 直播/点播转码     3.2 直播连麦     3.3 多人会议混流     3.4 视频后台编辑 4. 高清低码     4.1 视频处理的一般流程     4.2 Shopee 高清低码优化方案 5. 性能优化     5.1 编码器端上优化     5.2 一入多出编码 东
LiveVideoStack
2023/04/04
6320
Shopee 视频处理技术后台应用
推荐阅读
相关推荐
腾讯技术开放日 | 保障视频连线画质清晰且流畅,腾讯会议有这些优化实践
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档