当前位置: 首页 > news >正文

异构计算助力客户春节webp图片编码

摘要: 背景与挑战 技博客 GigaOM 曾报道:YouTube 的视频略缩图采用 WebP 格式后,网页加载速度提升了 10%;谷歌的 Chrome 网上应用商店采用 WebP 格式图片后,每天可以节省几 TB 的带宽,页面平均加载时间大约减少 1/3;Google+ 移动应用采用 WebP 图片格式后,每天节省了 50TB 数据存储空间。

背景与挑战

科技博客 GigaOM 曾报道:YouTube 的视频略缩图采用 WebP 格式后,网页加载速度提升了 10%;谷歌的 Chrome 网上应用商店采用 WebP 格式图片后,每天可以节省几 TB 的带宽,页面平均加载时间大约减少 1/3;Google+ 移动应用采用 WebP 图片格式后,每天节省了 50TB 数据存储空间。但Webp最大的缺点在于压缩算法计算复杂度是JPEG的10倍以上,我们迫切需要一套高性能加速方案来降低业务成本。

项目

今年春节期间大客户为了支持其抢红包业务向阿里云提出了webp转码需求。根据以往经验总共需要准备数几十台32核64线程的物理机。阿里云为提升用户体验降低自身成本,使用FaaS(FPGA as a Service) F1实例加速webp编码。其中FaaS团队提供了FPGA平台支持,OSS团队提供了算法的支持。得益于高性能的FPGA平台,我们使用5台单卡FPGA云服务器扛下了日常40%的webp编码流量。

效果

本次性能测试所使用样本为512x512的图片,所有测试都在阿里云FaaS F1实例上测试。根据业务方的要求,我们对其中部分数据值做了一些混淆。

1)延时

在使用了FPGA加速webp编码之后,延迟降为原来的1/10。

2)吞吐量

每个单卡的F1实例(8vcpu,1 * ARRIA 10)可以获得大约32核64线程物理机的~2倍吞吐量,跟某业内专业加速webp编码公司对比(在用同样F1实例)。我们发现某司的FPGA加速webp编码对CPU依赖非常多,但利用率又只有50-60%,这非常让人费解。

3)图片质量

下图是在不同quality下,对比软件(蓝线)、OSS(红线)、某司(绿线)的编码后psnr曲线。PSNR使用ImageMagick的convert工具计算,数值越大越好。OSS提供的硬件加速算法,在图像质量方面几乎跟软件几乎完全重合,某司提供的webp编码加速器存在不小的差距(差距在0.1~0.5db之间)。

4)压缩率

同样使用图片空间的测试架,quality设置也一样,数值为相对JPEG原图的压缩率,数值越小越好。经过测试我们发现软件、OSS、某司的压缩率几乎完全重合,但依旧保持原有梯队,软件>OSS>某司。

根据上面测试结果,目前阿里云OSS的加速方案在webp压缩场景所有指标都超过了某司,除了压缩率小幅领先之外,其他两个指标都有非常明显的优势。

未来

1)预计性能优化完成之后E2E还可以提升50%的性能。压缩率上,未来采用m6等级的编码,其压缩率比当前压缩率更高。
2)单个FPGA板卡的成本远小于服务器,所以降低业务成本的关键在于提高FPGA的密度。未来webp加速器将使用F3实例,单个芯片的FPGA性能提升了超过2倍,单台服务器的FPGA芯片密度也提升了一倍。

原文链接
干货好文,请关注扫描以下二维码:


相关文章:

  • Python练习实例100例(持续更新中)
  • 技术往事:微信估值已超5千亿,雷军曾有机会收编张小龙及其Foxmail
  • 论flex布局和box布局的华为meta8手机自带浏览器的兼容
  • ajaxfileupload-上传文件示例
  • 4027. [HEOI2015]兔子与樱花【树形DP】
  • 1491. [NOI2007]社交网络【最短路计数】
  • Java基础-比较运算符Compare Operators
  • LDAP DIT设计参考
  • 爬取校园新闻首页的新闻
  • 学习索引结构的一些案例——Jeff Dean在SystemML会议上发布的论文
  • node爬虫-使用puppeteer
  • 使用linux下的crontab定时任务跑定时脚本
  • mycat的wrapper.log日志中发现主从切换报错
  • react组件的生命周期
  • oracle中两个时间类型的数据相减默认得到的是天数。
  • 【EOS】Cleos基础
  • CAP理论的例子讲解
  • Cookie 在前端中的实践
  • es6
  • ES6系统学习----从Apollo Client看解构赋值
  • idea + plantuml 画流程图
  • scala基础语法(二)
  • Solarized Scheme
  • vue.js框架原理浅析
  • 阿里云Kubernetes容器服务上体验Knative
  • 计算机常识 - 收藏集 - 掘金
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 前端面试之CSS3新特性
  • 实战|智能家居行业移动应用性能分析
  • 微信支付JSAPI,实测!终极方案
  • 一个SAP顾问在美国的这些年
  • MyCAT水平分库
  • 带你开发类似Pokemon Go的AR游戏
  • !!java web学习笔记(一到五)
  • # C++之functional库用法整理
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (C语言)二分查找 超详细
  • (Matlab)使用竞争神经网络实现数据聚类
  • (二)linux使用docker容器运行mysql
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (一)Dubbo快速入门、介绍、使用
  • (转)程序员疫苗:代码注入
  • ***利用Ms05002溢出找“肉鸡
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .Net core 6.0 升8.0
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET MVC之AOP
  • .Net面试题4
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .Net中的设计模式——Factory Method模式
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • [8481302]博弈论 斯坦福game theory stanford week 1
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯