沧州商城网站开发设计,浏览器搜索引擎大全,昆明网站推广优化公司,网站开发如何进行管理背景-全民直播大时代 在疫情的影响下#xff0c;直播从传统的秀场应用逐渐渗透到行业的各个领域。包括在线课堂#xff0c;旅游#xff0c;政企#xff0c;房车销售等等#xff0c;可以说是全民直播时代已经到来。 在这样的一个大背景下#xff0c;过去一年淘宝直播得以快…背景-全民直播大时代 在疫情的影响下直播从传统的秀场应用逐渐渗透到行业的各个领域。包括在线课堂旅游政企房车销售等等可以说是全民直播时代已经到来。 在这样的一个大背景下过去一年淘宝直播得以快速发展。2019年淘宝直播拥有了4亿的年度用户规模有100万年度主播入驻2000亿年度直播成交以及4000万直播商品。春节期间钉钉在线课堂更是有350万的教师主播为1.2亿中小学生提供了在线课程服务。
直播痛点分析 在这么大的一个业务体量下我们将会面对非常多的难点与挑战。总的来说包含以下三个部分首先是成本包括带宽、存储和转码三个方面。其次是用户体验例如画质音质秒开、卡顿和延时。最后是效率方面例如开播的效率、审核的效率和理解分发的效率。接下来我们就来看一下淘宝在成本和体验优化方面做了哪些工作。
淘宝直播窄带高清技术
▐ 淘宝直播窄带高清 淘宝直播有三大核心技术第一大核心技术是端上窄带高清。我们采用HEVC编码实现了720p25fps800kbps的压缩并且PSNR 43db/VMAF90。端上窄带高清技术主要应用有三个方面第一是音视频增强采用基于AI的图像增强、美颜和语音增强来提高生产质量。第二是感知处理采用信源信道联合自适应编码。第三是S265编码器S265编码器是业界领先的HEVC编码器。
第二大核心技术是零转码系统我们实现了端到端原始流生产的和播放成功的解决了两个核心的痛点问题不同网络速度的兼容和不同播放设备的兼容后者主要通过高性能解码器实现iOSAndroid和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中基于−模型的码率控制方法没有考虑图像块与块之间的参考强度有些块会被后续帧参考有些不会应该根据一个块被参考的强度来决定它的量化系数。x265x264中引入了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以上。 最后我们还有一个画质评价环节。业界常见的客观评价指标有PSNRSSIMVMAF但这些指标只适合于有源场景但淘宝内容存在大量的无源场景比如商家上传的视频手机硬编码的直播视频这样的视频都没有参考对象。针对这种场景我们训练了基于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解码能力。
除此之外还有WebkitNative的解码方式。通过这些努力我们把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处理主要考察PESQSTOI的指标以及处理和收敛速度智能降噪智能回声消除盲源分离技术自动增益技术也会是信号处理和AI的非常好的结合点
第二是后端网络自适应先考察丢包下的声音体验。这里有音频超分智能PLC自适应码率以及RSFEC、NACK来实现恢复与延时的平衡等等
第三音效与评价主要考察核声音的主观体验如何做到智能美声、自动混响和无参考评价会是我们研究的方向。
▐ 图像增强、视频内容理解、高效传输技术 第三个方面是图像增强即如何利用传统图像增强与AI结合达到智能去噪、暗光增强、智能选帧和拍摄辅助的效果。
第四个方面视频内容理解可以用多模态技术来理解视频内容包括通用物体检测、文本语义理解、自然语言处理NLP、标签体系和大规模检索技术等等。
第五个方面是高效传输技术5G的到来可以提供高带宽低延时的传输如何利用5G优势实现智能带宽预测智能调度系统是我们在网络传输方面研究的一个方向。 原文链接 本文为阿里云原创内容未经允许不得转载。