首页 > 其他分享 >软硬协同:基于倚天的视频云编码性能升级

软硬协同:基于倚天的视频云编码性能升级

时间:2022-12-08 14:31:53浏览次数:46  
标签:编码 软硬 倚天 视频 优化 提升 算力

头图.jpeg

算力时代,靠吃「硬件红利」便能搞定新应用场景的「甜蜜期」已经过去。

人类社会的每一次科技跃迁,其本质都是计算力的突破与演进。   算盘拨出农耕文明的繁荣,机械计算机催生出第一次工业革命的袅袅蒸汽,而云计算的发展让万物互联成为真正可能。   在数据爆发式增长以及算法日益精进的大背景下,属于「算力」的时代俨然到来。

  以音视频行业为例,趋近饱和的场景渗入率、用户对体验的极致追求、多元化的场景及技术需求,为底层算力和视频编码能力带来更大的挑战。   然而,在算力需求暴涨的同时,摩尔定律的演进速度却在放缓,「硬件红利」已然见底。   对于整个视频云赛道的算力困局,不仅需要上层软件系统的优化,也需要在底层硬件基础设施上,寻求破局之法。  

01风口之下的算力困境

  我们已经迈入社会视频化时代。视频无处不在,由此产生的流量已呈井喷式增长。   据《2022年中国网络视听发展研究报告》披露,截至2021年12月,我国网络视频(含短视频)用户规模达9.75亿,较2020年12 月增长4794万,占网民整体的94.5%。   网络视听正成为大众的娱乐刚需,视频正在成为各行业连接客户最广泛的载体,也成为各巨头抢占风口的关键点。   而在5G时代,视频流量将进一步增长。

视频流量激增的另一大原因,是用户对视频体验的「不将就」。

在视频规模持续增长的同时,随着网络和终端硬件设备的迭代,用户对视频清晰度体验的追求持续提升;视频超高清化也是继视频数字化之后的新一轮重大技术革新。   移动互联网终端观看分辨率从最开始的360P,480P,快速提升到720P,1080P以及近年出现的4K/8K超高清视频。   当前,国家也连续出台超高清产业支持措施并加速应用,如:5G+8K超高清技术在冬奥会和春晚实现商用;体育直播开始进入到4K HDR直播时代。   除了高分辨率,沉浸式视频体验还追求高帧率和宽色域,而每一次分辨率的提升,帧率的提升,色域增加带来的都是视频信息量的成倍增加。   因此,需要技术解决方案能更快应对更高清晰度、更低时延的视频编解码和转码,满足高清、高帧率、宽色域视频所带来的不断“扩容”的音视频数据流。  

02难以调和的「视频编解码」矛盾

  由于Raw(原始图像编码数据)视频数据是非常大的,如果不进行编码和压缩,不论是视频的存储还是传输,都将带来很大的麻烦,视频编码技术便是由此而来。   视频编解码起源于广播电视,从1951年第一部数字电视和广播诞生起,广播电视在很长一段时间里是视频编解码技术变革的核心推动力。   而到互联网时代,随着互联网的高速发展,使用互联网的用户和视频流量出现井喷式增长,互联网成为视频编码的主战场。   为了应对视频流量的不断增长,视频标准组织一直在推动视频编码技术的持续迭代。   从MPEG2开始,视频编码标准压缩率大约每10年提升50%,以2021年推出的h.266为例:相对于h.265压缩率提升50%,但其编码计算成本提升15倍。   图片 1.png   然而,用户对视频极致体验的追求与视频编码的演进其实存在着巨大的矛盾。   ❖ 编码标准升级速度远慢于视频信息量膨胀的速度:「十年磨一剑」的视频编解码技术(10年50%压缩率的提升)已经远远慢于视频化和体验升级带来的流量增长(过去3年音视频流量已高达68.9%的增速),而未来带宽压力会越来越大。   ❖ 新编码标准压缩率的提升远低于视频分辨率提升的速度:每一代编码标准的演进,都是在不断探索极限压缩率。新一代的编码标准对比上一代的标准通常有50%的压缩率提升。然而如果视频分辨率每提升一档,比如360P到720P,则会使信息量增加4倍。   ❖ 新编码标准复杂度的增加远高于CPU处理能力的增加:新一代的编码标准对比上一代的标准大多增加10倍以上的复杂度,远高于CPU处理能力的增强,而视频编码的高复杂度导致编码技术难以普惠,尤其在实时场景。   随着AR,VR时代的到来,4K-8K高分辨率,60-120FPS高帧率,10-12bit宽色域,让视频的信息量更是成倍增加;加之低延时意味着对编码速度有更高的要求;而CPU芯片处理能力也不再遵循摩尔定律快速增长,视频体验-带宽-计算成本-编码速度的矛和盾的冲突会越来越严重。  

03软硬协同,锚定性能升级

  视频编码与视频处理为计算密集型场景,面对视频云赛道的算力困局,如何让高压缩率的编码算法,更加普惠?

解法是:软硬协同+深度自研编码内核。

在该方向,我们一直在持续优化、迭代,而倚天ECS的出现带来更好的答案。   2021年云栖大会,阿里平头哥发布首颗为云而生的CPU芯片倚天710,该芯片针对云场景研发,同时兼顾了性能与易用性。   经过一年的业务验证,倚天710已大规模部署并提供云上服务,算力性价比提升超30%,单位算力功耗降低60%。   图片1.5.png   搭载倚天710的ECS自设计初就是一款云原生服务器,凭借其灵活、先进、弹性的云原生芯片特性和优异的CPU算力,超低功耗,与视频云的转码服务特点强匹配,为视频云云原生转码业务带来更多可能。   图片 2.png   基于倚天ECS,阿里云视频云与平头哥数据中心解决方案团队联合,对s264、s265编码器进行深度优化。   最终实现:相对于C7,转码性能提升30%,在8K直播场景中提升达到33%,助力更普惠,更高清的转码服务。  

04四维优化,释放「软硬结合」最大效能

  基于阿里自研的倚天710芯片进行优化,通过深度重构视频编码数据结构、并行框架,重新调优快速算法策略,从软件、汇编、硬件层面跨层深度优化,打造ARM友好的视频编码器的同时,塑造极致性能。   主要体现在以下四方面的核心优化:  

计算密集型汇编优化

  计算密集型函数通过汇编实现单指令多数据操作优化,除常规汇编指令优化外,基于倚天710的特点,在视频编码中充分利用可伸缩向量指令集,mmla类型高并发指令的优势,塑造更高的汇编加速比,总体性能提升40%;   例如:在ME搜索优化中,结合710 SVE寄存器预取特性,设计内存预取算法以及寄存器访问流程优化,大幅降低内存访问次数,如一次六边形搜索,可以减少3.8倍行访问次数。   图片 3.png  

计算函数并行优化

  在计算密集型函数汇编优化基础上,充分对有性能增益但原本串行处理数据的算法(如SDH)进行并行处理优化,并实现基于ARM平台的汇编版本代码,在压缩性能基本一致的情况下函数速度性能提升约40%。   图片 4.png

偏控制函数优化

  根据倚天710芯片特性,我们重构了视频编码数据结构,并行框架,同时重新调优了快速算法策略,联合提升总体性能,例如快速算法checkSkip,Earlyskip等,总体性能提升20%。  

系统层优化

  在算法优化的基础上,针对视频转码特点,结合倚天710平台和视频云特有场景下进行系统配置优化,将二者结合的能力发挥到最大。   目前倚天ECS已经在视频云点播上线,性能提升30%,压缩率提升5%,同时阿里云视频云同步探索AI辅助视频编码方向。   初步结果显示:借助倚天ECS的超强算力,倚天ECS在Saliencymap推理上成本低于G6ni 50%以上,在窄带高清的普惠化方面展现出了巨大空间。   未来,我们将基于自研处理器展开预研,深度结合视频云业务,沉淀视频云技术能力,从架构、指令、访存等方面优化设计。   同时,继续与平头哥开展深度合作,共建软硬件结合自研芯片竞争力,算法、加速库、驱动、固件一体化设计,不断探索创新音视频技术,加强其在更多视频应用、更多终端设备上的普适性。   将更多的技术普惠到广大消费者,赋能千行百业的视频化需求,催生新兴产品形态和业务模式,为客户提供更快、更省、更低功耗、更高清、更实时的编码力,并为广大观众带来更极致的视听体验和更创新的互动玩法。

标签:编码,软硬,倚天,视频,优化,提升,算力
From: https://blog.51cto.com/u_14968479/5921269

相关文章

  • 编码的邪恶:复制与粘帖
    在侃侃而谈OO,侃侃而谈设计模式,侃侃而谈面向对象的诸多原则之前,我们首先应该掌握一点:封装。掌握好封装的原则和技巧之后,就算使用的不是OO语言,也能构造出框架优美的程序。将......
  • JavaScript:代码细节和良好编码习惯
    这些细节,与语法无关,仅仅是编写代码时需要注意的最最基本的细节和一些良好编码习惯。注释代码注释代码分为单行注释和多行注释,如下所示:严格区分大小写JS的代码时严格区......
  • 图片 base64 编码
     通常我们在使用服务的时候,数据从我们的设备传输到服务器,往往会有两种方式:一是直接传输文件,但这种情况受网络情况影响较大,文件可能传不过去,并且文件直接在网路上传播,你的......
  • go-dongle 0.2.0 版本发布了,一个轻量级、语义化的 golang 编码解码、加密解密库
    dongle是一个轻量级、语义化、对开发者友好的Golang编码解码和加密解密库Dongle已被awesome-go收录,如果您觉得不错,请给个star吧github.com/golang-module/dong......
  • Python编程中,在 Eclipse 中使用 P8 编码规范工具
    python的编码在其出生时就有PEP8规范来指导,以下步骤是在eclipse上设置PEP8代码规范检查,并由eclipse自动调整代码格式1、eclipse->window->Preferences->PyDev->Editor->Code......
  • 最好的HTML 5编码教程和参考手册分享
    有志于在泰泽上大展拳脚的同学们一点要收藏一下关于HTML5的一些好教材好文章了,这里为大家转载了一篇,方便大家记录今天我们介绍相关HTML5的参考手册,演讲稿,电子书和教程。......
  • .net core GBK 编码问题
     在.netcore中,utf8编码转GBK编码会报错,.netcore无法实现编码的转换解决方法1、Nuget中搜索安装System.Text.Encoding.CodePages2、在startup中做如下设置publ......
  • zt 以太网扫盲——64b/66b编码
    http://blog.chinaaet.com/justlxy/p/5100064750#:~:text=%E4%BB%8E%E7%90%86%E8%AE%BA%E4%B8%8A%E6%9D%A5%E8%AE%B2%EF%BC%8C%E4%BB%BB%E4%BD%95%E4%B8%80%E7%A7%8D%E6%89......
  • JS对Unicode编码和解码
    JavaScript编码和解码方法方法说明escape()使用转义序列替换某些字符来对字符串进行编码unescape()对使用escape()编码的字符串进行解码encodeURI()......
  • 编码开发如何开展API安全实现
    编码开发的相关技术,在安全实现层面,仍需要结合所选择的编程语言,考虑其安全编码过程。一般来说,安全实现的过程通常会分为以下三个步骤。1、安全编码培训指专门针对某种编程语......