王立波(庄恕),淘系技能部高等算法专家,毕业于上海交通大学少年班、运用数学系。现为淘宝直播音视频算法卖力人,是S265编码器的核心成员,参与完成的项目《编码摄像关键技能及运用》得到2019年国家科技进步二等奖。
本文分享内容紧张分为四个部分:
全民直播大时期的背景先容直播痛点剖析淘宝直播窄带高清技能音视频技能趋势磋商背景-全民直播大时期在疫情的影响下,直播从传统的秀场运用逐渐渗透到行业的各个领域。包括在线教室,旅游,政企,房车发卖等等,可以说是全民直播时期已经到来。
在这样的一个大背景下,过去一年淘宝直播得以快速发展。2019年,淘宝直播拥有了4亿+的年度用户规模,有100万+年度主播入驻,2000亿+年度直播成交以及4000万+直播商品。春节期间,钉钉在线教室更是有350万+的西席主播,为1.2亿+中小学生供应了在线课程做事。
在这么大的一个业务体量下,我们将会面对非常多的难点与寻衅。总的来说,包含以下三个部分,首先是本钱,包括带宽、存储和转码三个方面。其次是用户体验,例如画质,音质,秒开、卡顿和延时。末了是效率方面,例如开播的效率、审核的效率和理解分发的效率。接下来我们就来看一下淘宝在本钱和体验优化方面做了哪些事情。
淘宝直播窄带高清技能▐ 淘宝直播窄带高清
淘宝直播有三大核心技能,第一大核心技能是端上窄带高清。我们采取HEVC编码实现了720p,25fps,800kbps的压缩,并且PSNR> 43db/VMAF>90。端上窄带高清技能紧张运用有三个方面:第一是音视频增强,采取基于AI的图像增强、美颜和语音增强来提高生产质量。第二是感知处理,采守信源信道联合自适应编码。第三是S265编码器,S265编码器是业界领先的HEVC编码器。
第二大核心技能是零转码系统,我们实现了端到端原始流生产的和播放,成功的办理了两个核心的痛点问题:不同网络速率的兼容和不同播放设备的兼容,后者紧张通过高性能解码器实现iOS,Android和H5三真个100%解码。
第三大核心技能是低延时技能,我们实现了端到端秒级延时。紧张依赖两个技能,一个是基于RTC的实时直播系统,第二个是S265低延时编码技能。
▐ 淘宝直播系统架构
如图所示淘宝直播的系统架构,从生产侧来看,有采集、增强、感知处理、S265编码四个环节。云端我们有边缘的接入,有中央接入、切片录制和CDN分发以及边缘分发。在播放端有拥塞掌握、解码、渲染和显示。除此之外,在云端还有内容审核,质量监控,内容理解和智能分发。
▐ 端上窄带高清
生产侧的第一个环节是图像增强,为了提升主不雅观质量,我们引入了图像增强技能,对编码前的视频做去噪、去抖、纹理增强以及美颜、美型的功能。除此以外,在后处理部分,我们还引入了应时超分和HDR技能来提高不雅观看质量。在美颜、美型以及图像处理等方面,我们引入了GPU的技能,包括内存带宽优化、shader优化、Pipeline优化等等以减少GPU的开销。
针对音质的优化,我们采取了智能降噪技能。无论是在STO还是PESQ的指标上都显著高于传统WebRTC算法,在性能和包大小方面也都可以实现普通设备的覆盖。下面播放的三段音频,分别是原始音频、RTC降噪和阿里降噪音频。原始音频我们可以明显听到马路上车呼啸而过的声音非常强烈。RTC降噪音频中降噪产生了一定的效果,但是汽车飞驰而过的呼啸声还是非常明显。而在阿里降噪音频中,我们可以听到汽车呼啸而过的声音已经基本消逝。
生产的第二个环节是感知处理。我们采守信源信道联合自适应编码技能。感知处理分为5个方面。
首先是ROI区域的感知,我们基于PixelAI人脸检测加商品检测,对ROI区域进行提取和重点编码。
第二是场景的感知,不同的场景适宜不同的编码参数,我们通过对场景进行分类,对付不同的场景授予不同的编码参数来提高压缩质量。
第三个是智能码控CARC,我们采取机器学习的码率掌握,对大略场景授予较低的码率,对繁芜的场景授予较高的码率来实现对带宽的节省。
第四个是网络带宽的感知,在网络比较好的时候,我们会采取比较高的码率来实现画质的提升,在网络不太好的时候,会降落码率,避免发生带宽拥塞,由于cdn采取峰值收费,峰谷韶光段还可以采取不同码率策略。
末了是设备算力的感知,不同的设备拥有不同的算力,我们可以实时检测设备的算力情形及时调度编码的档次,以此来实现对算力和质量的平衡。
生产的第三个环节是编码,这又要讲到我们核心的S265编码器,得益于S265编码器的编码压缩技能,我们实现了淘宝直播的720p、800kbs、25fps编码,比较于业界常见的720p 1600kbps 节省了50%的带宽。
钉钉的在线教室我们更是把码率压缩到了200kbs,并实现了43db以上的质量。S265是淘宝和阿里云共同发起的HEVC编码器,目前已经实现集团内部的开源,并落地在点播、直播会议等各个场景中。比较起业界精良的HEVC编码器,S265在PSNR指标上有比较大的上风。首先在编码工具提升方面,我们做了大量事情,实现了HierarchyB、GPB、Bi-Search、Longterm、RDOQ、AdaptGOP等编码工具,并且对这些工具进行了大量的算法和速率优化。
我们还设计了50多种快速算法,比如说Deblock的优化,编码速率比拟X265有1倍以上的提速。在工程上的优化,我们做了浮点转定点、位宽的缩减、SIMD的优化、冗余去除、访存效率提升及循环展开等等来提升我们的编码速率。
在框架方面,我们还做了线程调度优化等等。在码率掌握方面,我们对帧级别码控和块级别码控分别进行了优化,并且对2pass编码进行了原创性的优化来提高2pass编码的质量。在块级别码控中,我们设计了新的CUTree和AQ算法。
下面来看一下S265的几个范例优化,首先是CU划分决策,我们把CU划分决策模块分成两个步骤,一是纹理强度决策,通过打算CU的纹理梯度来判别平坦块和繁芜块,如果是平坦块就直接退出,如果是繁芜块就连续向下划分。
第一步可以办理大部分块划分的决策问题,但是对付模棱两可的块,则须要依赖CNN模型来赞助划分。我们利用了一个5层网络的小模型把决策的准确度从72%提升到了96%;这个成果我们跟清华大学刘老师互助揭橥了一篇论文,在DCC会议上展示。
第二个方面的优化是运动搜索方面的优化。运动搜索是从参考帧探求最佳匹配块的过程,包含整像素搜索和分像素搜索,分像素须要做7抽头或8抽头插值滤波,打算量大;整像素搜索已经有比较多的快速算法,比如菱形搜索、六边形搜索及分层搜索,但分像素搜索一贯没有什么好的方法。比如在图中矩形的整像素周围,分布着60个分像素点,如果要对分像素点进行全部搜索的话,须要60次,经由优化之后一样平常须要搜4个、8个或16个点,但搜索次数还是比较多的。
我们采取一个二元二次偏差平面方程,用9个整像素点的预测偏差来求解方程的5个系数,再对方程求偏导,可得到最佳分像素点的位置。只需对这个最佳分像素点打算1个1/4差值,就可以完成我们的搜索过程。这个技能在编码器的全体提速有12%,但bd-PSNR只有-0.016db。这些成果在VCIP 2016上可以看到。
第三个是我们的码率掌握。ABR是较适宜直播的一种码率掌握方法。但HM中基于−模型的码率掌握方法没有考虑图像块与块之间的参考强度,有些块会被后续帧参考有些不会,该当根据一个块被参考的强度来决定它的量化系数。x265,x264中引入了MB-Tree技能,但是由于帧的QP定制不合理,编码效率不高且码控准确度比较差,我们测过均匀只有90%旁边。
我们根据“每1个bit被分配到任何一个CU,产生的边际代价都相同”这样一个原则,对MB-Tree方法进行了理论创新,使得编码精度提升到了97%,且编码质量提升了0.65db,对应17%的码率节省。
这里有包含三个技能,第1个,I帧的QP推导,x265利用了一个履历值,没有考虑到视频本身的特性,这样做很不合理,我们用预剖析中低分辨率图像的繁芜度和目标码率,经由多次迭代搜索得到准确的QP;
第2个,随着韶光的推移,历史帧的复权重越来越高,新产生的帧权重越来越低,导致其不能很快的相应繁芜度的变革,我们根据新产生的帧的参考强度打算出一个 QP,跟原来的QP做加权得到真正的QP,可以及时的反应新产生帧及其后续帧的繁芜度;
第3个,x265采取基于Viterb的P帧决策方法,每个帧都须要跟历史帧比较,繁芜度很高,并在讯断P帧时没有考虑QP的影响,准确率也不高。我们的算法只须要打算相邻帧的变革率,并引入QP来作为讯断阈值,大幅降落了打算繁芜度并提高了准确度。这个成果我们与清华大学刘老师互助揭橥在TIP 2019 05月期刊上。
第四点我们来看一下S265智能码控技能(CARC)。ABR追求码率掌握的精准度,但是它忽略了场景的均匀繁芜度。如果设定一个统一的码率目标,大略的场景会涌现码率过剩,繁芜场景会涌现码率不敷。
另一个方面,人眼对失落真的敏感度存在衰减效应,高于一定阈值敏感度低落,此时存在码率过剩。我们采取一个CNN模型对场景进行分类,打算出场景的繁芜度因子,根据繁芜度因子调节编码码率,可肃清大略场景下的码率过剩( > 42db),并提高繁芜场景的质量。
均匀下来,我们可以节省15-30%的码率,以钉钉在线教室为例,大部分韶光画面是静止或慢速运动的,少数韶光会播放传授教化影片,CARC可以担保播放影片时的质量,同时在静止场景节省大量码字,经由后台统计,钉钉在线教室720p码率在200kps,且PSNR保持在43db以上。
末了,我们还有一个画质评价环节。业界常见的客不雅观评价指标有PSNR,SSIM,VMAF,但这些指标只适宜于有源场景;但淘宝内容存在大量的无源场景,比如商家上传的视频,手机硬编码的直播视频,这样的视频,都没有参考工具。针对这种场景,我们演习了基于CNN的VQA无源评价模型来对视频图像的质量进行评价,并实现对大盘质量的监控,此外,为了辅导线下开拓,我们还有一个主不雅观评价系统。
接下来让我对淘宝的S265编码器做一个大略的总结。MSU国际编码器大赛是大家所熟知的一个比赛。在去年的比赛中有100个序列,同时有1080p和4k两种测试,有3种速率档次,还包括主不雅观和客不雅观测试。
我们用S265对MSU 2019 1080p的测试序列进行了测试,我们的PSNR的指标三个档次上均匀节约了42.1%的码率,比拟2019年第一名是37.3%,解释S265的PSNR指标在业界领先。下面的两张图片,左边是X265的结果,右边是S265的结果,S265在主不雅观质量上也有比较大的提升,这里特殊感谢清华刘老师在S265项目中给予的帮助。
▐ 零转码系统
淘宝直播的第二大核心技能是零转码系统。普通的有转码系统为了适应不同的网络环境,常日会在做事器集群上对上行码流进行各种分辨率、各种码率的压缩来应对各种网络环境,对付一个好的网络,可能更倾向播出一个高分辨率的视频,如果用户的网络不好,会选择播放低分辨率低码率的视频。
淘宝直播则实现了零转码,播放的是原始的生产流。这须要办理三个核心问题。
第一个是端侧生产,我们要生产出高质量低码率视频,这个得益于前面说的S265编码器以及前处理技能。
第二个便是H265的解码兼容性,目前H265在Web解码以及手机芯片解码的兼容上做得还不足好,我们在此做了大量的事情来办理这个问题。
第三个是网络环境的适应能力,我们可以通过SVC技能来适应客户不同的网络环境。
淘宝直播的零转码系统首先须要办理的是H265的百分之百解码。对付现在常见的高端芯片,例如iphone7以上的手机以及中高端以上的安卓手机都已经支持H265的解码,但还有大量的中低端设备并不能支持H265的硬解,以是我们开拓了一个高性能H265解码器。
我们的解码器比较FFmpeg有140%的提速,比业界常见的libhevc也快了许多,比较竞品K也有10%以上的提速,可以实现低端机的软解。除此以外,Web真个解码一贯是H265的一个痛点,我们实现了WebAssembly的解码方案,可以覆盖大部分pc解码能力。
除此之外,还有Webkit+Native的解码办法。通过这些努力,我们把H265的解码实现安卓、IOS以及web端百分之百的兼容从而完备去除转码的环节。
零转码系统须要办理的第二个核心问题是网络自适应技能。这项技能得益于三个方面。
第一个是我们低码率高质量的生产,我们生产的800kbps码流在 90%以上网络都可承载。
第二个是时域可分层SVC策略,如图,在用户网络较好时,淘宝直播会利用100%的下发帧率,如果用户网络不好,将会采取3/4抽帧来实现18帧的解码效果,如果用户网络效果还是不理想,会选择抽取1/2的帧来实现12.5fps的解码效果。除此以外还有一个基于A3C网络来综合用户的网络缓存以及用户当前的编码质量来实现QoE的最大化。
▐ 低延时技能
淘宝直播的第三个核心技能是低延时技能。我们实现了直播端到端秒级延时,还验证了低延时技能的业务代价;
除此之外,低延时还可以支持新业务形态,如拍卖直播、客服直播等。传统的HLS/FLV直播协议的延时,从生产侧来重视要有编码延时、网络延时、分发延时、切片缓冲和播放缓冲,整体加起来大概有10s旁边的延时。Flv去除了做事器上的切片缓冲,可以把延时降落到5s旁边,但延时时间还是比较长。
但淘宝直播的秒级延时采取了UDP的流媒体传输协议,WebRTC的拥塞掌握及FEC、netEQ的拥塞掌握算法来去除播放器缓冲,并且尽我们最大努力减少防抖缓冲的大小。在生产侧,我们还采取了低延时的编码技能来降落编码器的延迟。
这是我们在低延时编码上做的事情。编码延时紧张来源三个方面:B帧、Lookahead以及Frame thread。以x265为例,编码效率在一定区间内与延时成正比。当延时降落到8帧时,编码效率低落20%,5帧的编码效率低落30%;优化后S265采取了短距Lookahead CU-tree传播代价以及运动强度,作为机器学习模型的演习数据,预测长距lookahead CU-tree传播代价来提高我们在低Lookahead下的编码质量。如图,S265在5个延时帧下,可达到95%以上的编码效率。
末了一起来谈论一下音视频技能的发展趋势。我个人以为传统旗子暗记处理已经非常成熟,AI又有比较强的学习能力,以是怎么结合传统旗子暗记处理的上风和AI的学习能力来提高我们内容的生产以及内容理解、传输等等的效率是我们下一步的发展趋势。
紧张包含五个方面,第一个是视频编解码,第二个是智能语音处理,第三个是图像增强技能,第四个是内容理解算法,第五个是高效传输技能。
基于音视频技能趋势磋商▐ 视频编解码
首先来看一下视频编解码,视频编解码的第一个趋势是云边端一体编码系统。
硬编码紧张面对的寻衅是压缩效率。我们知道传统的手机芯片压缩都会考虑到PPA问题,以是会供应一个相对而言较低的压缩效率。
软编码的寻衅紧张是压缩速率,虽然有些像Intel的SVT技能可以把压缩速率提到比较高的水平,但是画质会有一些受损。
未来趋势个人以为尽可能的利用到端侧的算力,采取高性能软编码器来缓解云端转码的本钱压力 ,把手机芯片硬编码能力利用起来,但是移动端芯片硬编码的质量还不足好,如何优化移动端芯片硬编码质量是一个关键的点;
其次是云+边的统一的转码。现在越来越多的ASIC芯片和GPU芯片已经在努力优化编码的质量,包括FPGA芯片也有优化方案。以是云+边的转码会成为我们下一阶段研究的重点。
视频编解码的第二个趋势是下一代编码标准的运用。紧张有H266、AV1、AVS3,这三个标准目前是各有自己的上风。H266在传统芯片的支持上比较好;AV1有先发上风,而且Web兼容性较好,在专利上也有些上风;AVS3经由大家的努力,已经拥有海内生态,且在实体清单的影响下AVS3的发展可能会加速。
第三个趋势是AI+编码。大家也把稳到CVPR比赛的情形,AI压缩可以实现比拟H266更好的压缩结果,但是在解码速率方面还是会有一些问题,端到端DL压缩在未来会是一个研究热点。除此以外,稠浊编码框架下的AI压缩也是一个研究热点;第三是场景自适应编码技能,能够根据场景选择编码也是一个很好的技能;第四个是无参考评价系统,在很多时候,有参考可以评价的比较客不雅观,但很多时候,我们拿不到参考,这时候,无参考评价系统就会比较有上风。
▐ 智能语音处理
对付智能语音处理,总结下来紧张也分为三个方面。
第一是前端3A处理,紧张稽核PESQ,STOI的指标以及处理和收敛速率,智能降噪,智能反应肃清,盲源分离技能,自动增益技能也会是旗子暗记处理和AI的非常好的结合点;
第二是后端网络自适应,先稽核丢包下的声音体验。这里有音频超分,智能PLC,自适应码率以及RSFEC、NACK来实现规复与延时的平衡等等;
第三,音效与评价紧张稽核核声音的主不雅观体验,如何做到智能美声、自动混响和无参考评价会是我们研究的方向。
▐ 图像增强、视频内容理解、高效传输技能
第三个方面是图像增强,即如何利用传统图像增强与AI结合达到智能去噪、暗光增强、智能选帧和拍摄赞助的效果。
第四个方面视频内容理解,可以用多模态技能来理解视频内容包括通用物体检测、文本语义理解、自然措辞处理NLP、标签体系和大规模检索技能等等。
第五个方面是高效传输技能,5G的到来可以供应高带宽,低延时的传输,如何利用5G上风实现智能带宽预测,智能调度系统是我们在网络传输方面研究的一个方向。
关于内容社交互动团队
淘系内容社交互动平台是阿里集团内容与直播的业务高地和人才高地。是淘宝业务增长的发动机和下一代电商模式升级核心推动玩家。在不断的探索中,秉承 "WIN FAST" 理念,我们成功孵化了“淘宝直播”这一创新业务,并在业务中完成了阿里内容平台的升级。我们拥有广阔的空间,诚邀算法、多媒体、数据、做事端、无线端、前端、测试、产品等各产品技能领域人才加盟。