文章插图

文章插图
近年来,内容业务在行业蓬勃发展 。淘宝也在积极进行内容化转型,今天我们邀请到阿里巴巴淘系技术高级算法专家——王立波(庄恕),回顾淘宝从图文到短视频直播的发展历程,介绍音视频算法在其中的应用和未来的投入方向包括编解码、视频处理、音频通讯与互动 。文 / 王立波(庄恕)
整理 / LiveVideoStack
很高兴与大家进行交流与分享,首先介绍一下自己,我是来自淘系技术部的王立波,花名庄恕,今天分享的主题是音视频算法在淘宝中的应用 。刚接到这个任务时,觉得题目特别大,可以讲的东西特别多,经过考虑我还是决定集中讲3个观点,可以为大家介绍得更详细 。
01 业务介绍
淘宝从PC走向移动,从图文走向直播短视频,从传统电商走向内容电商再到发现电商、兴趣电商 。在过去的2020年,淘宝直播的GMV突破4000亿,去年双十一一天之内有超过7亿人次观看淘宝直播;2020年底随着点淘,逛逛的推出,短视频成为内容业务发展的新引擎;在这个飞速发展过程中面临巨大的成本压力 。
02 视频压缩有效降低成本
2.1 从图片压缩说起
说起编解码,可能不得不先提图片压缩了,这是一张小小的商品详情图,在直播短视频兴起之前,图片是大家获取信息主要手段,随着用户增长,成本压力越来越大,过去几年中,淘宝图片日均播放量超过千亿次,如果通过降低质量来降低成本会牺牲大家的体验,所以我们希望依靠技术升级来提高压缩效率 。
2.1.1 图片压缩标准的演进
这里我对各种格式做了一个简单总结,JPEG是目前使用最广泛的图片压缩标准,从1992年公布至今已经接近三十年,它非常简单高效 。10年前左右,Google基于VP8内核发布了WebP格式 。WebP在块划分,预测,变化,量化,熵编码方面比JPEG更优,且增加了Deblock功能;HEVC则比WebP更进一步,通过多个工具的升级来提升压缩效率,另一方面,由于Tile划分及Wpp技术的引入,HEVC给Codec工程实现提供很多并行化的手段,这对现代多核CPU来说比较友好 。
为了比较三种格式在不同场景数据集下的压缩效率,我们设计图中实验 。得出的结论是WebP比JPEG大约提升29%的压缩性能,HEVC对比JPEG大约提升接近50%压缩效率 。
2.1.2 淘宝自研APG格式
除此之外,我们对整个系统的架构方面也进行了大量工作,比如高并发实时响应、CDN的下发策略、存储和计算分离,多内容灾等策略,最终实现了淘宝千亿级的实时图片处理系统,在大大节省业务成本的同时也保障了画质体验 。
2.1.3 内容业务进化为视频为主
2.1.4 HEVC在视频业务落地挑战
首先是编码速度,H265的官方模型HM,在普通PC上编码720P视频时只能达到0.1fps,想象一下,压缩一段十分钟的视频需要花费一天甚至几天的时间 。业界最好的开源编码器X265,在慢速档也只有6.8fps,距离30fps实时编码的需求有相当大的差距;
其次是编码质量,由于复杂度的原因,X265仅比X264节省18%的码率,远远达不到HEVC相比AVC理论上的上限值(HEVC标准在设计时以50%的码率节省为目标);
第三是码率控制,业界有许多场景的码率控制方法,比如ABR、CBR、CRF,但现在实时音视频的业务场景非常复杂,无法直接使用这样的码率控制方法;
第四是解码的兼容性和性能,也是大家普遍关心的问题 。用户观看环境多种多样,有Android、IOS、Web的H5观看,H265在H5上的支持不太好,限制了它的发展,硬解设备兼容性也不完善,所以在解码兼容性方面也面临着很大的挑战 。
2.1.5 S265编码内核优化
1、Cu深度预测算法,HEVC的块划分从64划分到8*8,深度有4层,如何预测出CTU的划分深度是具有挑战性的事情 。HM为了确保编码性能会对每一层都计算其RDcost,我们这里结合纹理复杂度、时空域相邻块及前处理运动信息,做到比较准确的Cu深度预测 。进一步深度预测方面有许多研究,比如一些机器学习,深度学习的方法能够精准预测块的划分层级 。
2、自适应的EarlySkip算法和RecursionSkip算法 。这两个算法比较类似,EarlySkip的目的是在本层跳过其它模式的计算,而RecursionSkip目的是跳过当前层不再Split 。X265也有类似的技术,我们比X265更进一步,做RS时会同时考虑skip和merge模式子块的satd,做ES时,会同时考虑最佳模式的cost大小避免残差过大,我们的结果做到在相同速度条件下对比X265相当程度的节省码率 。
3、All Zero Block的检测 。如果一个块经过量化后是全零块,就没有必要进行RDO及编码了,但怎样预测一个块是All Zero Block 。我们发现一种方法可能适合于一种大小的块,在8*8中比较准确,但放在32*32中不可用,所以要根据块大小及内部纹理强度,更加精确地预测出是否是All Zero Block 。
4、Fast Intra Prediction 。这个技术有很多人研究,H.265总共有35种预测方式,如何快速找到预测角度,有许多相关论文 。我们使用Bayes估计模型,在横向及纵向找到准确方向,再去做细分角度预测,提高角度预测的速度 。
5、分像素的搜索 。传统的分像素的搜索在整像素最佳点上下左右找4或8个点,相对来说计算量比较大,根据整像素结果通过误差平面估计模型推导出分像素点的位置,从而节省分像素的计算个数 。
【淘宝图片软件免费的 淘宝图片下载软件】6、多参考帧的选择 。为了提高压缩效率,现在的编码器会选择更多参考帧,比如在一个方向选择3到4个参考帧,我们会根据参考帧的质量,距离来做加权,选择适合的参考帧 。在拿到一个比较好的结果后如何提前跳出其它参考帧的遍历?多参考帧是提升压缩质量的一个很好选择,但需要避免计算复杂升高 。
7、Distortion的快速估计 。在RDO过程中要对误差进行仔细估计,如果用传统下的SATD做的话,效率不高,但如果做完整的RDO计算非常耗时,所以我们有残差的预估模型,从量化后的系数中用模型推导出Distortion的结果避免再做反量化,反变化 。还有像Bits估计,RDCost的另一个分量是Bits代价,用一次完整的熵编码会非常耗时,如果用一个分段线性模型能够估算出来Bits来,我们就可以快速做出RDO的计算 。
其它的比如Deblock,SAO优化偏一些工程方面手段 。
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场景下效率很低,很难找到最优解,但如果用自研的算法搜索就有较好的效率提升 。
2.2 场景自适应编码
1、视频分析:利用机器学习方法做视频切分,并得到高层语义分类,比如动画,体育,秀场,商品介绍等;
2、另一个维度看利用信号分析手段检测出视频的底层特征,比如运动强度,纹理特征,噪声强度,亮度特征等,根据高低维度信息决定编码参数 。
3、自适应决策引擎(ADE):根据语义特征和信号特征以及网络状况,决策出最佳编码参数组合 。这个决策过程被建模为一个带约束优化模型;
2.3 S265解码提升覆盖率
1、硬解码适配 。对市面上基本所有机型(>1000款)都进行了适配;
2、自研高性能Native H265解码器,在小米5 720P的设备上做测试得到240帧左右的速度,通过很低的功耗实现实时解码 。
3、H5的解码 。H.265在H5中没有支持,我们基于WebAssembly技术来支持H5的播放 。目前可以做到在i7电脑上1080P 30fps的实时解码,CPU消耗在30%以内;
2.4 淘宝编码器落地历程
解码器方面对比VTM实现单核3.5倍提速,多核16倍提速;在高端的手机(IPhone12、P40)实现4K 30FPS解码,低端手机720P双核实现30FPS解码 。720P内存消耗<35m< span=””>和Binary<1m< span=””>,对大型APP来说非常关键,包过大时安装下载会受阻 。
我们内部正在做VVC编码器,目标是1FPS Slow档对比X265 Veryslow节省50%码率;30FPS Fast档对比X265 Medium节省40%码率 。大家知道VVC比HEVC会更慢,一段1分钟的4k视频用HEVC的HM压缩需要几天,而如果用VVC的VTM则可能需要一个月,时间消耗会非常长 。目前我们Slow档已经做到比VTM提升100倍速度但是压缩效率接近 。
业务策略上包括场景分类自适应、智能码控、针对不同场景的延时需求,做延时的适配及优化(在非常低的延时下达到接近不限延时的压缩效率)、算力自适应(根据不同的设备自适应调节编码的速度档次) 。
编解码内核包括码控及前处理、编码工具集、快速算法,编码框架等优化 。
系统平台包括基于ARM平台的(armV7/arm64)及X86实现(SSE/AVX)、目前在考虑基于FPGA、ASIC的实现,还有质量评价系统和训练集群来辅助编码器研发 。
03 视频处理提升画质体验
下面介绍视频处理提升画质体验的观点 。
3.1 视频处理提升画质
3.2 淘宝短视频窄带高清转码
向大家介绍一下转码服务,它的核心技术是窄带高清和S265,分别有两个视觉处理模型 。首先是窄带高清的处理模型包括质量分类,细小纹理去除、脱焦区域弱化(节省码率)、易感知纹理增强(增强视觉体验)、人脸保护(避免过度增强引起体感不好)、马赛克修复、去隔行扫描 。S265视觉压缩模型有三个点,人眼感知与失真拐点(BD-rate曲线刚开始较陡,向后较缓,要找到高性价比的点,感觉不出更多的失真又可以达到合适码率)、码率与分辨率甜蜜拐点(不同码率在不同内容上适合于不同分辨率压缩 。如果一个非常低的码率300K强行压缩1080P出来都是块主观体验很差,如果压缩540P、360P可以获得更高的视觉体验)、场景分类编码(不同分类场景适合不同编码参数、码率的选择) 。
3.3 电竞场景中的美颜
3.4 HDR10端到端系统
但HDR是一个端到端的系统,需要考虑到各种设备的兼容,所以我们做了一些适配来提升用户体验,比如普通相机拍出的内容就用普通通道传输解码,而一些高端设备支持HDR10,可以把内容做10Bit压缩,传输,在对端根据播放设备能力,做HDR To SDR、10Bit To 8Bit的转换来保证质量,对于好的手机就可以得到最好的HDR体验,一般手机也能得到基础的HDR体验 。图中可以看到HDR技术使照片颜色更接近实物颜色 。
04 音频技术提升体验和生产力
第三个观点是视频技术提升体验和生产力 。音频在过去几年都伴随视频出现,而在去年Clubhouse的发布,大家觉得音频可以独立玩,这对音频技术来说是一个很好的启发 。除此以外,音频的技术还可以辅助我们做内容的生产、审核及各种音频处理,个人认为音频会是后续很重要的生产力 。
4.1 业务:用户数和时长
在主播角度,音频技术可以来做口播自动剪辑、来客提醒(不用一直守在电脑旁边)、开播辅助、字幕和配乐生成 。在用户角度,音频的互动可以支持连麦、游戏、猜价格、语音评论 。在平台角度,音频可以监管黄暴政、盗播、盗链、检测空镜 。
直播内容中,对音频的适配也非常重要 。(陈老师提到一个例子:如果是音乐直播间,用普通模板做音质会很差,所以需要几套针对不同类型直播间的声音模板 。)在这样的系统上,我们支持淘宝直播,语音聊天室等业务 。
4.2 AliDenoise——让声音更清晰
有三段音频,第一段是街边的场景,是原声;第二段是RTC处理后的效果(汽车走过的声音比较明显);第三段是AliDenoise处理后的效果,可以听出它对非平稳噪声的抑制很好,且人声保留度高 。
街边场景-原声
RTC处理后的效果
AliDenoise处理后的效果
- 调整屏幕亮度的软件 屏幕亮度调节的软件
- Flash软件是什么 flash软件是啥
- oa办公系统软件多少钱 oa软件多少钱一套
- dps软件操作 dps软件安装教程
- 远程桌面管理软件哪个好用 比较好用的远程桌面
- ps软件收费要多少钱 ps软件收费吗
- 淘宝网店代理免费加盟 淘宝代理商加盟
- 图片压缩免费 图片压缩方法 手机免费
- cat软件使用经验 最常用的cat软件
- 硬盘恢复数据的软件哪个好用 恢复硬盘数据工具
