近日,第五届深度学习图像压缩挑战赛(以下将简称“ CLIC 大赛”)比赛结果公布,首次参赛的火山引擎视频云多媒体实验室夺得视频压缩赛道第一名。压缩技术对于图像、视频应用十分重要。在保证同样的质量前提下,如何将图像压缩到更小的体积便于互联网信息传输,火山引擎视频云团队不断突破压缩技术“天花板”。
当前字节跳动高峰期每秒需处理近百万张图片,基于今日头条、抖音等亿级 DAU 的实践打磨,与国际领先的压缩技术,火山引擎视频云打造图像一站式解决方案 veImageX ,覆盖上传、存储、处理、分发、展示、质量监控全链路,涵盖图像生产、图像消费、云平台三大应用场景。
图像生产
图像生产场景主要将业务产生的图像写入图像存储中,来源包括用户端的图像上传、在镜像站或三方云的存储(按需拉取或全量迁移)、在火山引擎的独立存储桶、业务自主合成的图片等。
图像消费
图像消费环节提供了图片 URL 打包、图片实时处理链路、端数据上报等能力。
业务 URL 签发:签发过程中会调用 veImageX 的签发服务,然后下发图片 URL 到业务客户端。经过签发的图片 URL ,携带了有效期和签名信息,可以有效防止 URL 盗链、 URL 篡改、域名盗用等。
客户端消费:业务图片加载 SDK ,完成图片下载、解码、展示、访问数据上报一系列操作。客户端上报的数据,经数据上报中心清洗后,会存储到数据仓库,供查询、监测图片的访问性能、错误率等指标使用。
网络分发:在图片下载过程中,一般来说会首先访问 CDN 。若 CDN 未缓存,则会触发回源,请求由源站接入层转发到图片静图服务。该服务主要负责访问权限的校验、流量控制、图片资源下载以及静态图片的主体处理流程。请求处理过程中,对于需要应用图片算法、HEIF 静图 FPGA 编码的场景,图片静图服务会通过 RPC 请求 Lambda 计算平台,相应的能力已通过远程可调用函数的方式在平台上部署。对于 FPGA 不能支持的图片(分辨率过大或过小),会发送到 CPU 平台的 HEIF 静图编码服务做处理。对于动图转码处理的请求,图片静图服务会发送到动图服务做处理。由于动图的帧数有多有少,对于帧数多、分辨率高的大动图,当请求处理超过一定时间后,动图服务会将同步处理转为异步方式运行,并临时返回原图作为降级结果,待降级结果在 CDN 上的缓存失效后,相应的请求会再次回源,此时可以拿到异步处理后的图片。当图片静图服务完成图片请求的处理后,请求相应的数据会存入数据仓库,供数据分析、计费推量使用。
云平台
veImageX 控制台作为一站式云平台,为用户提供了租户管理、配置下发、用量查询、质量监控、算法与算子管理等功能。
控制台的请求通过网关发往 veImageX 后端服务。
平台管理,相关的 OpenAPI 支撑了平台侧配置管理、用量查询、质量监控等能力。涉及到后两者的场景,需要查询数据仓库获取对应的数据。涉及到域名的场景,需要依赖 veImageX 的域名管理服务,和接入与分发的各个组件交互。
算子仓库,图像算法开发人员借此可以方便地管理、发布、运维图片算法模型。云数据迁移服务则负责了图片生产场景中数据迁移任务的管理。创意魔方服务实现了多图合成的能力,业务可以通过创意魔方附加组件创建样式,然后动态替换文字、图片,批量生产图片,适用于海报制作、商品图片合成等场景。