编码技术,首先是人眼感知编码技术

下面讲一下编码技术,首先是人眼感知编码技术,下图左边是 JND 的基本原理,JND(Just Noticeable Distortion)最小可察觉的误差,是利用人眼的视觉冗余进一步压缩视频。从这个图中可以看出,编码内部使用的失真码率 RDO 曲线是连续的突曲线,我们人眼感知的其实不是连续的,而是阶梯状的。可以对比看出,如果利用阶梯状的曲线来替换原来的 RDO 曲线,在相同的失真的情况下可以使用更少的码率。

传统的 JND 算法是以图像的底层特征为主,包括图像的纹理、边缘、亮度、颜色。网易云信自研的 JND 感知编码,除了在传统的 JND 的算法基础上加入了基于深度学习的高层特征分析,能够识别出图像中的文字、人脸、前景之外,还有其他的显著性区域,并对这些不同的特征做了不同的 JND 的公式。我们把不同特征的 JND 的公式应用在编码,这样可以大大降低我们的码率。这一套算法上线落地能够带来平均 15% 以上的码率节省,在有些特殊的场景可以带来更多的码率节省。

第二是前处理和编码的联合优化。这里主要讲的是 ROI 编码,我们基于深度学习的前处理检测出 ROI 区域,如图里面的 ROI 区域是人脸和文字,我们把人脸和文字区域的位置传给后面的编码模块,在编码模块对 ROI 做主观质量的保护,这里不仅是简单的把 ROI 区域的 QP 调小,而且还针对文字部分,我们使用 transform skip 等编码工具来提升文字的主观效果。对非 ROI 区域我们做降码率处理,这样可以整体节省比较多的码率。

下图是 NE-CODEC 的内核优化。我们自研了有 20 多个创新的编码算法,分布在不同的编码内核的不同模块,包括有 GOP 级的预分析,帧级的预分析,还有预测、转换和量化部分。在 GOP 级的预分析里我们自研了一套自适应的分层 B 的参考结构,包括 GOP8、GOP16、GOP32。针对 CU TREE 也做了自适应的分层结构。

在帧级的预分析主要是 JND 和 ROI 的优化,上文已经提到过了。

在预测模块我们也有很多的快速算法,包括多参考帧的快速选择。还有在转换模块,我们对现在的 DCT 模块做深度的加速,还有我们提出了快速的 RDOQ 算法。另外还结合了 JND 做了频域的 JND 的算法。在量化部分我们提出了有一个 SSIM-RDO 的算法,这个算法可以保证在相同的 SSIM 客观指标的情况下可以节省更多的码率。通过这些很多的快速算法不断的迭代优化,最终形成了一套比较稳定的 NE-CODEC 的内核。

上图右边是 NE265 和友商 CODEC 的对比测试,可以看出在 Online 模式,也就是 30fps 档位下,NE265 在 VMAF 指标上优于业界的各大厂商。从这个图中也可以看出相对于开源的 X265,在 VMAF 相同的情况下 NE265 还可以节省 45% 的码率。

在云信 NE265 编码下,视频不仅有主观感受的提升,在相同码率下我们的 VMAF 客观指标也从 89 提到 97 分,所以无论从客观指标还是主观体验都有很大的提升。

你可能感兴趣的:(人工智能,深度学习)