音视频算法在淘宝中的应用( 三 )


 
其它的比如Deblock,SAO优化偏一些工程方面手段 。

音视频算法在淘宝中的应用

文章插图
 
除了快速算法之外,我还对压缩性能做了一些总结,速度不变的前提下,相比于X265,我们有>30%的性能增益 。我们的编码器在以下几个方面有性能收益:
 
1、第一个码率控制 。码率控制的目标是把码率分配到更有价值的地方 。它分帧级别码控和块级别码控 。在帧级别码控中,我们对I帧码控和P帧码控做了精确的预分析,在块级别码控中,我们设计了增强型的Cu-tree算法 。
 
2、分层B帧以及参考结构的优化 。分层B帧在实现方面不难,对压缩效率方面有大的帮助 。前面介绍了GOP结构的优化,我们会对参考帧的选择会做权衡 。
 
3、大家知道在静止场景下,分层越多压缩效率越高,但在运动场景就不那么有效,所以我们实现了自适应的GOP Size,并自研了Scenecut算法 。能够适应不同运动强度、场景切换的需求包括淡入淡出的需求 。
 
4.此外,在Bi-Search,GPB,LTR这几个工具,在开源软件X265是没有的,但对提高预测效率很有帮助;MCTF工具对编码噪声的去除非常有帮助,我们将这几个技术加入到S265之后获得了5%以上的BD-rate收益 。
 
5、2-pass是在求解一个全局最优的Qscale,它在离线转码场景中被用到,允许对视频做更多分析,但在求解过程中,失真度量是MSE,我们对度量函数进行了重新推导,获得5%压缩性能;
 
6、Dynamic CRF和Pboffset,常规做法是是固定帧级P,B帧的Offset,我们会根据帧的复杂度来调节帧级QP值;
 
7、AQ和RDO的代价计算通常基于MSE,但如果是针对SSIM指标的话,可以推导SSIM的模型,RD也一样 。
 
8、针对会议场景,我们还实现了IBC工具,对PPT投屏有帮助 。并专门设计了对屏幕内容优化的搜索算法,传统的快速算法如菱形搜索、六边形搜索在SCC场景下效率很低,很难找到最优解,但如果用自研的算法搜索就有较好的效率提升 。
音视频算法在淘宝中的应用

文章插图
 
上述是S265技术的介绍,记得在2016年的时候,金山KS265第一次参加MSU比赛获得了非常好的成绩,后来国内有不少同行参赛也获得了不错的名次 。阿里巴巴S265从2017年开始投入研究到2020年首次参加MSU比赛,我们在比赛中获得了3项第一:1080P 30FPS PNSR指标第一、1080P 1FPS PNSR指标第一、1080P 30FPS主观质量第一 。
 
2.2 场景自适应编码 
音视频算法在淘宝中的应用

文章插图
 
除了核心编码器之外,在编码器应用方面,我们还自研了一套场景自适应编码方法,分为三个步骤:
 
1、视频分析:利用机器学习方法做视频切分,并得到高层语义分类,比如动画,体育,秀场,商品介绍等;
 
2、另一个维度看利用信号分析手段检测出视频的底层特征,比如运动强度,纹理特征,噪声强度,亮度特征等,根据高低维度信息决定编码参数 。
 
3、自适应决策引擎(ADE):根据语义特征和信号特征以及网络状况,决策出最佳编码参数组合 。这个决策过程被建模为一个带约束优化模型;
 
2.3 S265解码提升覆盖率 
音视频算法在淘宝中的应用

文章插图
 
一直以来,H265的解码兼容性是大家关心的话题,假如生产端编码出265码流,但播放端不能支持265解码,需要在服务端转码成264格式,这不仅不能减少CDN带宽,反而会增加转码成本 。在解码这一侧我们做了很多工作:
 
1、硬解码适配 。对市面上基本所有机型(>1000款)都进行了适配;
 
2、自研高性能Native H265解码器,在小米5 720P的设备上做测试得到240帧左右的速度,通过很低的功耗实现实时解码 。
 
3、H5的解码 。H.265在H5中没有支持,我们基于WebAssembly技术来支持H5的播放 。目前可以做到在i7电脑上1080P 30fps的实时解码,CPU消耗在30%以内;
 
2.4 淘宝编码器落地历程 
音视频算法在淘宝中的应用

文章插图
 
基于以上的编解码内核和应用方面的探索,我来介绍一下淘宝编码器的落地历程 。2017年开始投入S265的研究,经过一年多时间,开始在直播业务的落地;2019年的Q1第一版上线后结果不算太好,大约节省30%码率;2020年Q1第二版上线后节省40%码率;今年的Q1第三版结合窄带高清技术实现了50%码率节省 。短视频方面,我们尝试将S265应用到淘宝短视频转码,2019年Q3第一版上线,2020年上线第二版 。


推荐阅读