视频会议中的视频编码技术解析

如今,视频会议已经成为企业、组织以及个人之间进行远程沟通和协作的重要工具。而在视频会议背后,支撑其流畅运行和高质量体验的关键技术之一,便是视频编码技术。

视频编码技术的核心目标是在保证视频质量的前提下,尽可能地减少视频数据的大小,以便在有限的网络带宽下实现高效传输。随着视频会议应用场景的不断拓展,对视频编码技术的要求也越来越高,不仅需要具备高压缩效率,还需要适应不同的网络环境和终端设备。

常见视频编码技术

可伸缩视频编码(SVC)

可扩展视频编码(Scalable Video Coding,简称 SVC)是 H.264 标准的一个扩展。与传统的视频编码方式不同,SVC 将视频流分为多个层,包括基础层和增强层。基础层提供了最低限度的图像质量,确保即使在网络条件极差的情况下,视频会议也能保持基本的流畅性,参会者能够看到和听到会议的基本内容。而增强层则像是为视频添加的各种 “升级包”,可以根据网络状况和接收设备的能力进行选择性传输。

当网络带宽充足时,接收端可以接收基础层和多个增强层,从而获得高分辨率、高帧率、高质量的视频画面;当网络带宽受限或者接收设备性能较弱时,接收端可以只接收基础层,保证视频流的连续性,避免出现卡顿或中断的情况。这种分层编码的方式,就好比给视频会议穿上了一件 “智能自适应外套”,能够根据不同的网络环境和终端设备,自动调整视频质量,以实现最佳的会议体验。

例如,在跨国公司的全球视频会议中,由于参会人员分布在不同地区,网络状况差异较大。使用 SVC 技术,网络条件好的地区可以接收完整的视频层,获得高清流畅的会议画面;而网络较差的地区则可以仅接收基础层,保证基本的会议参与。

高级视频编码(AVC/H.264)

高级视频编码(Advanced Video Coding,简称 AVC),也被称为 H.264 或 MPEG – 4 Part 10,是由国际电信联盟(ITU – T)和国际标准化组织(ISO)联合制定的视频压缩标准。它在视频编码领域有着广泛的应用,旨在提高视频传输和存储的效率。

AVC 采用了一系列先进的编码技术,如运动补偿、变换编码、量化和熵编码等,以实现更高的压缩比和更好的视觉质量。在运动补偿方面,AVC 通过对之前帧的信息进行预测,根据画面中的运动信息,对当前帧的每个宏块进行预测,然后将预测误差进行编码,从而有效地减少编码数据量。例如,在一段人物走动的视频中,AVC 能够准确地捕捉人物的运动轨迹,通过预测减少对人物重复部分的编码,提高编码效率。变换编码则将视频信号从空间域转换到频率域,以便对信号进行更有效的压缩;量化是将变换后的信号值转换成离散的量化值,进一步减少数据量;熵编码采用统计编码方法,对量化后的数据进行概率分析,利用数据出现的概率分布来进行压缩,从而达到高效的数据压缩目的。

与 SVC 技术相比,AVC 主要侧重于提高视频编码的效率和质量,它以固定的编码参数对视频进行编码,在相同的码率下,AVC 能够提供比以往标准更好的视频质量。然而,AVC 缺乏 SVC 那种可伸缩性的特性。SVC 可以根据网络状况和接收设备的能力,将视频流分为多个层进行传输,以适应不同的网络环境和终端设备;而 AVC 在面对复杂网络环境和不同能力终端时,缺乏这种自适应调整的能力。例如,当网络带宽突然下降时,AVC 编码的视频可能会出现卡顿或画面质量下降的情况,而 SVC 则可以通过减少传输的增强层来保证视频的流畅播放。

从应用场景来看,AVC 更适用于网络环境稳定、对兼容性要求极高的场景,如企业内部相对固定网络环境下的日常会议、大型会议中心的视频会议等。

HEVC(H.265)及其针对屏幕内容的扩展(HEVC – SCC)

高效视频编码(High Efficiency Video Coding,简称 HEVC),也被称为 H.265,是新一代的视频编码标准,旨在在相同视频质量下进一步提高压缩效率,相比 H.264,HEVC 能够在相同质量下将码率降低约 50%。它采用了更复杂的编码算法和技术,如更大的编码块、更多的预测模式等,以实现更高的压缩性能。

在视频会议中,视频的应用场景分两部分:屏幕分享和摄像头视频。屏幕内容是由电子设备生成的图像,摄像头内容是由摄像头采集的视频,两种视频内容的特征差异巨大。传统的视频编码采用的是预测加变换的混合编码结构,这种方式适合摄像头采集的视频。但是对于屏幕内容,它的编码效率不太好。为了提升压缩效率,HEVC 针对屏幕内容专门推出了 HEVC – SCC 编码标准,可以大大提升屏幕内容的编码效率。

HEVC – SCC 在 HEVC 原有标准的基础上,增加了帧内块拷贝、调色板模式、自适应色彩转换、自适应运动矢量精度几个编码工具集。这几个工具集中,帧内块拷贝(IBC)和调色板模式(Palette Mode)对视频压缩效率的提升最为明显。IBC 采用当前帧已重建块作为预测块,可以认为是基于当前编码图像内的运动补偿;Palette Mode 枚举颜色值生成颜色表,然后为每个样本传递一个索引以指示它属于颜色表中的哪种颜色,它特别适合颜色数比较少的编码块。根据官方统计,对于屏幕内容,在 HEVC 的基础上增加 IBC 和 Palette Mode 两个工具集,可以带来 50% 以上的压缩效率的提升。

编码技术在实际中的优化

在实际应用中,为了更好地发挥视频编码技术的优势,满足视频会议的实时性、高质量等要求,还会对编码技术进行一系列的优化。

腾讯会议的屏幕内容编码器 TSE

加入 SCC(屏幕内容编码技术,Screen Content Coding)虽然可以提升压缩效率,但是同时也带来了编码复杂度的急剧增加。对于腾讯会议这种实时通信场景,编码复杂度过高会影响实时性,无法得到应用。因此,腾讯会议在实现了 IBC 和 Palette 编码后,也做了大量性能优化,推出了屏幕内容编码器 TSE (Tencent Screen Encoder)。

腾讯会议在算法实现、模式选择、汇编优化等方面对 TSE 编码器做了全方位优化。对于 IBC 编码模式,采用了基于 hash 表搜索的运动估计代替传统的基于块匹配的运动估计。对于 8×8 块,将其分成 4 个 4×4 个小块,计算它的 hash 值,然后将这个块的坐标存入该 hash 值对应的链表。另外,对于 hash 查找的顺序也做了优化,位置较近的点先计算,大大提升 hash 搜索速度。

对于 Palette 编码,最复杂的模块就是颜色表的生成和查找颜色表,腾讯会议在 YUV 数据生成颜色表数据以及根据 YUV 数据快速查找到颜色表中最匹配的颜色数据方面做了大量优化,提升调色板编码速度。除了 IBC 和 Palette 本身的算法优化,在模式选择、快速算法方面也做了很多优化,比如通过帧内帧间预测结果提前退出 Palette 模式判决等。此外也加入了 SIMD 优化,进一步提升速度。

经过优化之后,TSE 编码器相比开源的 X265 编码器在各方面都具有明显优势。在压缩效率方面,对于摄像头采集的数据,TSE 的压缩效率有 20% 左右的提升。对于屏幕内容,TSE 的提升更加明显,相比 X265 (ultrafast) 的压缩效率可以提升 70% 以上,对它的 medium 模式也可以提升 50% 以上。在编码速度方面,TSE 也相比 X265 有明显优势。对于屏幕内容序列,TSE 的编码速度不到 X265 的一半,对于摄像头序列,也是比它要快 10% 以上。除了客观质量数据的提升,TSE 在图像主观质量方面的提升也是比较明显的,采用 TSE 编码后,文字周边非常清晰干净,图像质量明显优于 x265,在纹理方面保真度方面也有优势,很好的保留了原图的纹理轮廓,线条会更加细腻清晰。

YUV444 编码解决颜色失真、文字模糊问题

对于屏幕分享场景,除了采用 SCC 相关编码技术,腾讯会议还推出了 YUV444 编码技术。一般的视频编码都是采用 YUV420 格式,这种编码模式会对 UV 色度分量进行下采样,而下采样会导致颜色出现失真。比如发送端的彩色图,经过屏幕分享到接收端后,可能会变成一张灰度图。为了解决色彩失真的问题,在 TSE 里面采用了 YUV444 编码格式,来解决因为色度降采样导致的颜色失真。而且,根据相关资料,在 YUV444 编码模式下,SCC 更能发挥压缩效率方面的优势。采用 YUV444 编码的图像,文字会更加清晰,颜色也会更加接近原图。

SVC 编码解决多终端网络适配问题

在摄像头场景下,视频会议中多人会议中各个用户的网络情况可能各不相同。如何适配不同用户的网络状况,在各种网络状态下都能获得一个比较好的视频体验呢?腾讯会议采用了 SVC 灵活分层编码技术。SVC 采用分层参考机制,会把所有的帧分成三层,D0 层只能参考 D0 层的帧,D1 层可以参考 D0 层或者 D1 层的帧,D2 层可以参考所有层的帧。

这样做的好处是,如果用户网络比较差的话,只需要发 D0 层的帧过去,这样即使只收到部分帧,也可以正常的解码。同时对于那些网络比较好的用户,可以把所有的帧都发过去。SVC 灵活分层编码技术既保证了网络好的用户的视频高清流畅体验,又能保证网络带宽比较差的用户的基本的视频体验,有效地解决了多终端网络适配的问题。

ROI 编码提升重点区域画质

ROI (Region of Interest) 编码即基于感兴趣区域的编码。在摄像头场景下,人们主要关注的一般还是在人脸区域,对背景区域的关注低。腾讯会议加入了人脸检测算法和基于 ROI 的编码算法,实时检测出人脸区域,然后将它传入编码器,编码器进行帧内的码率重分配,对人脸区域增加码率,提升编码效果,对非 ROI 区域降低码率,保证总的码率不超出。视频会议对实时性能要求很高,所以对算法的复杂度也比较敏感,为此研发了一套高效的检测算法,可以把一帧 1080P 的图像检测耗时控制在 0.5 毫秒以内。基于 ROI 区域优化码率控制算法,可以在低带宽下提升主观质量。

开源视频编码器及其评估

开源视频编码器因其透明性、灵活性和社区支持,在视频编码领域占据了重要地位。以下是目前最常用的几个开源视频编码器:

  • OpenH264:主要用于 WebRTC 等实时通信场景。编码效率一般,但解码效率高,适合低延迟场景。支持 Baseline Profile,适合移动设备等资源受限环境,常用于视频会议、在线教育、直播等实时通信场景。
  • x264:目前最流行的开源 H.264 编码器,编码效率高,视频质量好。支持多种编码选项和参数调整,灵活性强,适用于视频压制、流媒体传输、视频存储等。
  • VP8:是 WebM 项目的视频编码部分。编码效率与 H.264 相当,但专利风险更低,常用于网页视频、在线视频平台等。
  • x265:x264 的继任者,编码效率比 x264 提高约 50%,支持 4K/8K 超高清视频。但编码速度较慢,对硬件要求较高,适用于超高清视频压制、流媒体传输、视频存储等。
  • VP9:是 VP8 的后继者。编码效率与 H.265 相当,专利风险更低。硬件支持逐渐增加,被 YouTube 等平台广泛采用,用于网页视频、在线视频平台、流媒体传输等。
  • AV1:旨在提供比 VP9 和 HEVC 更高的压缩效率。目前编码效率最高的开源编码器,但编码速度较慢,硬件支持有限。未来发展潜力巨大,有望成为下一代主流视频编码标准,适用于超高清视频压制、流媒体传输、虚拟现实 / 增强现实等。

评估视频编码技术的性能主要从视频质量、压缩效率和计算复杂度三个方面进行:

  • 视频质量:常用的视频质量评估方法包括主观评估和客观评估。主观评估是通过邀请观众观看编码后的视频,然后根据视频的清晰度、流畅度、色彩还原度等方面进行打分。客观评估则是通过数学模型计算视频质量,常用的指标有峰值信噪比(PSNR)、结构相似性(SSIM)和视频多方法评估融合(VMAF)等。
  • 压缩效率:通常使用比特率(bitrate)来衡量压缩效率,比特率越低,压缩效率越高。评估压缩效率时,可以通过比较不同编码器在相同视频质量下的比特率来进行。
  • 计算复杂度:计算复杂度是指编码器在压缩和解压缩视频时所需的计算资源。计算复杂度越高,编码和解码的速度越慢,对硬件的要求也越高。评估计算复杂度时,可以通过测量编码和解码的时间、CPU 和内存的使用情况来进行。

总结

视频编码技术是视频会议系统的核心组成部分,不同的编码技术各有特点和优势,适用于不同的应用场景。SVC 的可伸缩性使其能够适应复杂多变的网络环境和不同能力的终端设备;AVC 以其高效的编码性能在稳定网络环境中广泛应用;HEVC 及其针对屏幕内容的扩展则在提高压缩效率方面表现出色。同时,通过一系列的优化措施,如腾讯会议在 TSE 编码器、YUV444 编码、SVC 编码以及 ROI 编码等方面的实践,进一步提升了视频会议的质量和体验。开源视频编码器也为视频编码领域提供了丰富的选择,开发者可以根据具体需求选择合适的编码器,并通过对视频质量、压缩效率和计算复杂度的评估来衡量其性能。随着技术的不断发展,视频编码技术将持续演进,为视频会议带来更高效、更优质的体验。

zh_CN简体中文
滚动至顶部