开发者学堂课程【阿里云异构计算 FPGA 解决方案介绍: 阿里云 FaaS(FPGA as a Service)舜天平台解决方案(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/652/detail/10829
阿里云 FaaS(FPGA as a Service)舜天平台解决方案(一)
内容介绍:
一.图片转码
二.视频转码
三.视频合成(混流)与画中画
四.大数据过滤
五.AI 推断
接下来进入第二个环节阿里云 FPGA as a Service 到现在为止包括即将推出的一些性价比,优势非常明显的解决方案。
一.图片转码
1.移动互联网早已进入“读书时代”
(1)一张图胜过千言万语
(2)无图无真相
(3)人人都是摄影师
2.目前的“图”都是JPGE格式,尺寸太大,导致
(1)传输占用更多的网络宽带/花费更多的传输时间
(2)占用更多的存储空间:某手机厂商存量图片500PB,年存储费用超过2000万
3.JPGE 转为 Webp/HEIF 是刚需
为什么 FPGA 会做图片转码?因为有很大的优势:第一,移动互联网包括互联网本身 PC 端,还有 pack 端都进入了读图时代。但是目前的图都是 JPEG 格式,包括所使用的手机拍的照片。这个 JPEG 格式相对于新出现的谷歌公司推出的 Webp 还有苹果公司推出的 HEIF ,它的短板就在于尺寸太大了。尺寸太大就导致传输的时候占据更多的带宽,或者反过来讲,要花费更长的传输时间。另外一点就是存储这些图片也会带来很大的存储要求。曾经从四大手机厂商的客户中反馈到他现在存量的图片有500个 PB ,每年花在图片存储上的费用超过了两千万。
FPGA 把 JPEG 格式转换为 Webp/HEIF 究竟会带来哪些好处?这是我们自己的实测。首先看左侧的 JPEG->Webp ,FPGA 机型与 CPU 机型的一个对比。 CPU 机型是英特尔 SkyLake 96HT 的型号。可以看到,一台 FPGA 大概每秒可以转3200张, CPU 可以转500张。在 JPEG 转成 HEIF 的时候, FPGA 可以转2000张, CPU 每秒大概可以转350张。大家可以看出来转 Webp 和转 HEIF 的时候,明显转 HEIF 的性能低一些。这是因为 Webp 和 HEIF 相比, HEIF 会在 Webp 的基础上更进一步的压缩。在保持画质基本不变的情况下,基本不变是什么概念?
就是同样的一张图,从 JPEG 的原图到 Wepb 或者从 JPEG 到 HEIF ,中间这两张图的差别,人的肉眼是分辨不出来的。 Webp 相对于 JPEG 图片在尺寸上大概可以减少25-34%。为什么是一个范围,不是一个定值?就是因为对于这张图片不同的内容,它的压缩率是不一样的。而 HEIF 比 JPEG 图片压缩最高可达58%,因此 HEIF 要消耗更多的算力。这就是为什么同样的一台 FPGA 服务器转 HEIF 性能比转 Webp 低的原因。我们在阿里集团内部是 FPGA 图片转码应用的规模是非常大的。并且连续经理了2018年,2019年两次双十一的检验,基本上这个集群规模实在大几千片这样的规模,没有出现过任何问题。那么阿里内部使用 FPGA 转码解决方案,经过整体的测和,就是说在处理同样的图片和 CPU 相比,延时的降低是数量级的一个降低。也就是说如果CPU来处理花了一秒的时间,而 FPGA 花了不到100ms乃至更少,那么在这个总体拥有成本上 FPGA 相对于 CPU ,大概至少降低了 30%,所以到目前为止,我们外部的大批的客户主要是国产的手机厂商一共有四家,国内大的手机厂商其中有三家已经采用了 FPGA 图片转码的解决方案。还有业界同步大的互联网厂商也在采用 FPGA 集群进行图片转码。
二.视频转码
下面这两张柱状图是来自于斯歌公司2018年底发布的互联网流量的一个预测。到2022年它认为82%的因特网流量都将会是视频。都知道视频牵扯到一个视频格式,那么现在主流的视频编码格式是 H.264 ,但是 H.265 其实标准出来也已经有五六年了,2020年即将在日本东京举办的奥运会早早地就确定采用 H.265 模式,4K 的分辨率进行全球直播。 H.265 相对于 H.264 它最大的优势在于无论是画质还是码率对于 H.264 来说有着极其明显的优势,但是跟前面的图片转码解决方案一样都是要付出代价的,代价是要消耗巨大的算力,而这种算力就是 CPU 完全没有办法去满足的。
现在国内外有好多的直播网站,其实直播这个业务对于任何一家网站来讲都是有当红主播和不知名主播两种不同的业务场景,对于当红主播,因为他的观众特别多,那么这个时候就一定要求把每比特的成本给降下来,对于不知名的主播来说应该把每个通道的成本给降低下来。那么 FPGA 转 H.265 这个最大业务是,它可以大幅度的节省带宽。举个简单的例子就是,我在看当红主播的时候,通常我们是希望推一个高清的码流出去,举例,都推的是1080P分辨率的这个码流,那么如果采用 CPU 或者 GPU 去转码,这个码率就非常非常高了,可能要达到十兆乃至更高,但是 FPGA 也许只需要4兆或者6兆的码率就足以提供同样的清晰度和画质的画面给终端的用户。所以这是 FPGA 进行视频的 H.265 转码的最大的优势。
下图是目前马上就要落地的一个客户,他发的一些测试用的视频。在不同的画质情况下对于 FPGA 编码,当然现在业界还有一些公司开始推出 ASIC 编码器件。做了一个平均的对比,FPGA 的码率相对于 H.264 其非常大的降低。可以看到中间的一列,H.265 在 fast 画质的情况下, x265 大家都知道,实际上是用 CPU 来实现265视频的转换,相对于264可以降低28%左右,而 FPGA 直接降低了一半还多, ASIC 降低了24%。从这里也可以看出,265相对于264,在画质保持不变的情况下,码率可以大幅度地降低。或者大家也可以反过来理解,大家都采用同样的码率,那么在这种码率下,你采用 H.264 这种编码,你可能只能对外输出一个 720P 的画质,但是采用 H.265 ,可以输出一个 1080P 的画质。这是它最大的一个区别。