7 月 1 日下午,在北京·新云南皇冠假日酒店,由稀土掘金技术社区举办的 「稀土开发者大会2023」,网易云信视频编解码算法专家苗晋伟受邀出席【音视频技术前沿】专场演讲,他在本次大会作出《RTC 场景下的视频编码优化与 AI 超分结合实践》的主题演讲。本文将分享他的现场演讲实录。
作者:苗晋伟
来源:网易智企技术+
1 NE-CODEC 编码器介绍
这里主要列出我们常用的三款 NE-CODEC 编码器,包括 NE264,NE265、以及 NEVC 编码器,其中 NE264、NE265 是分别符合 H.264 和 H.265 标准协议的自研编码器,适用于 RTC 实时通信场景,以及直播点播场景等;NEVC 是支持私有协议的自研编码器,针对 RTC 场景做了定制优化。
2 NE-CODEC 视频编码优化
在做具体的视频编码优化之前,首先需要明确编码优化的方向,也就是需要从哪几个维度去做优化。这里列出几个常用的编码优化的指标:压缩率、编码质量、编码速度、码率平稳性。
- 压缩率、编码质量:通常是用 BDRATE 去衡量,也就是换算成相同质量的情况下,对比压缩率来衡量;
- 编码速度:通常用 FPS 去衡量,也就是编码过程消耗 CPU 占比基本相同的情况下,统计每秒编码的帧数,或者集成在应用中统计单帧的平均编码时长去衡量;
- 码率平稳性:码率波动包括上溢(实际码率大于目标码率)和下溢(实际码率小于目标码率),RTC 场景下应尽量避免上溢,一般要求上溢不超过 10%。
接下来分享具体的视频编码优化点:
内核优化
NE264 和 NE265 具体的内核优化点如下图所示:
快速算法优化:当周围块都是 intra 块,则当前块优先做 Intra 模式。适用于大运动场景下提升速度。码控优化:根据行级的编码复杂度来分配行级码率。相对于平均分配,按编码复杂度分配的主观效果更好。汇编优化:传统的 DCT 变换的汇编代码是一次蝶形运算加一次矩阵相乘。我们将其改成了两次蝶形运算,质量损失很小的情况下,速度得到了提升明显。
JND 编码优化
JND基本原理
视频压缩是去冗余的过程,其中帧内编码对应去除空间冗余;帧间编码对应去除时间冗余;除了空间、时间冗余之外,还有人眼视觉冗余,比如可以利用人眼对亮度、对比度、纹理的掩蔽效应等可以进一步去除视觉冗余。将视觉冗余的计算考虑到 RD 曲线中,会变成 RD 折线,和原来的 RD 曲线相比,可以在相同失真的情况下,拥有更低的码率。基于此原理,我们可以利用 JND 编码进一步节省码率。
云信的 JND 编码方案
利用增强前处理在像素域做纹理增强,对比度增强,提升主观质量;在编码内部,通过计算亮度、对比度、纹理敏感度系数,通过加权得到 JND 系数,并作用在编码的 DCT 域,完成 JND 编码;实际编码过程中会做两次编码,JND 编码用于输出码流,非 JND 编码用于输出给码控模块,这样可以保证非 JND 编码下是符合码率收敛,在 JND 编码下会节省一定的码率。
ROI 编码优化
ROI 检测
- 基于传统的方法:需要不同的 ROI 用不同的传统方法检测。
- 人脸 ROI:可以利用肤色检测的方法;如图所示虽然可以准确的检测出演讲者的人脸区域,但人手的地方也被检测出,因为人脸和人手的肤色一样。对于人脸 ROI 的检测来说,肤色检测确实存在有一定的误检。
- 文字 ROI:可以根据文字的特点,文字的颜色种类较少,可以利用直方图的方法;文字的边缘有很强的梯度变化,也可以用边缘检测的方法。
- 基于深度学习方法:通常是用显著性检测的方法。检测结果准确,而且输出的是精度更高的热力图,编码器配合此结果可以做更灵活的编码优化调整。但也有明显的缺点,相对比传统的方法有一定的耗时,只能部署在性能较好的机型上。
ROI 编码
针对 ROI 和非 ROI 区域做不同的处理
- ROI 区域:除了前处理会做强度更大的画质增强之外,编码内部也会通过降低QP的方式等对其做质量保护。
- 非 ROI 区域:可以利用 JND 编码,尽可能的降低码率,降低传输成本。
变分辨率(不发 I 帧)编码优化
为保证主观质量,RTC 场景下一般 I 帧是 P 帧的 3 到 5 倍,较大的I帧对网络冲击比较大,很容易引发丢包,带来卡顿问题。如果强制把I帧变小,质量会随之变差,会带来每遇到I帧就会变模糊的呼吸效应。变分辨率不发 I 帧的编码可以解决以上问题。
在实际应用的过程中,分享几点需要注意的地方:
- 对参考帧的 Scale 操作在编码和解码过程都需要,而且要保持 Scale 结果一致,否则引入编解不一致的花屏问题。
- 相对于相同分辨率的帧间参考,切换帧的帧间参考的相关性较弱,所以需要对切换帧做适当的质量提升。
NE-CODEC 的对比测试
3 NE-AI 轻量级超分网络
云信超分主要是部署在端侧,为了适应性能差的低端机型。基于此我们设计了一套轻量级的超分网络,我们称之为 RFDECB 网络。通过逐级的提取残差特征,加上每级会有重参数化 ECB 结构,更高效的提取图像特征。在重要的 ECB 结构中我们通过增加 Sobel/Laplace 算子进一步提取边缘特征。而且 ECB 结构通过展开合并之后可以转化成仅仅一个简单的 3×3 的卷积,大大加快了推理的速度。
云信超分参加去年 CVPR-NTIRE 2022 Efficient SR Challenge, 在综合性能赛道上,超越字节跳动,阿里巴巴,中科大等重磅选手,最终夺得了全球冠军,在综合性能方面已经达到了业界最好水平。
NE- AI 轻量级超分的对比测试
下面左图是有无超分的对比,右图是横向和 BICUBIC 对比;都可以看出在 NE-AI 超分的加持下,主观清晰度有明显提升。
04 编码和超分结合实践
结合超分的自适应分辨率编码
利用超分的特性,可以在发送端通过自适应下采样,降低分辨率,然后编码发送;在接收端收到低分辨率的视频后,通过解码,加超分,可以恢复到原始分辨率。在降低分辨率的同时,可以适当降低码率,节省传输成本。
利用解码信息助力 AI 超分进一步加速
这里主要是利用解码的 SKIP 信息,如果是 SKIP 块,解码后的当前块内容和参考块的内容是完全二进制一样。利用这个特性,如果是 SKIP 块,解码后针对当前块的超分结果也可以直接拷贝参考超分图像的对应块即可。这样可以一定程度上减少超分插值的计算量。
5 NE-CODEC 业务场景
NE-CODEC 在许多 RTC 场景下都有应用。比如典型的视频会议场景,NE-CODEC 目前已应用在网易内部办公软件 POPO、网易会议里,除了适配多人的摄像头输入视频之外,还有屏幕共享也是使用了 NE-CODEC 的桌面编码。其他场景包括和网易云音乐合作的 LOOK 直播、和乐播合作的互动投屏,还有在和新华三合作的远程医疗上,我们采用了 8K 超高清分辨率编码,协助医生更高效更高清的诊断病情。另外 NE-CODEC 在娱乐社交,远程金融,远程教育等场景也都有应用。
6 NE-CODEC 未来展望
随着苹果最新的可穿戴设备 VISION PRO 的发布,很多体验者都感受到了惊喜的沉浸式体验,这也将会大大推动沉浸式 3D 空间音视频的发展。我们可以看到在下面沉浸式体验的效果图里,有很多大屏的快速切换操作,这需要瞬间传输大量的数据,这对于追求极致体验的视频压缩,也包括 NE-CODEC 是个不小的挑战。
另外还需要和 AI 做深度结合,进一步降低传输带宽。下图中左边是常见的 264 编码,单帧大小 97KB,右边因仅仅传输人脸关键点,所以单帧大小可以缩小0.1KB。仅仅用传输音频的带宽传输视频,这也是我们 NE-CODEC 未来努力的一个方向。
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。