AMD 开源 Brotli-G 压缩格式,可使用 GPU 加速 Brotli 压缩
AMD 的 GPUOpen 团队公布了一个新的开源项目:Brotli-G,Brotli-G 基于 IETF 维护的完善的 Brotli 无损压缩算法标准( RFC7932),但可以使用 GPU 进一步增强 Brotli 压缩算法的性能和压缩比。
Brotli 压缩算法由 Google Research 开发,于 2013 年首次发布,开源规范于 2013 年至 2016 年间开发和推广。
Brotli 是 LZ77 压缩算法和霍夫曼编码(类似于 GZIP 和 Deflate)的组合,作为 GZIP 和 Deflate 算法的开源继承者,Brotli 具有相似的性能,但压缩比更好。
目前 Brotli 在 Web 应用程序和内容中被广泛采用,用于压缩 Web 应用程序资产,例如字体、javascript、图像等。
- 如今超过 95% 的网络浏览器都支持 Brotli 解压。
- 许多 Web 应用程序框架都支持 Brotli 编码(例如 NGINX 和 ASP.NET)。
- 一些 CDN 使用 Brotli 编码(例如 Azure 和 ImageKit)
Brotli-G 性能优化
Brotli-G 对标准 Brotli 比特流格式的修改主要集中在:允许在 GPU 和多线程 CPU 上进行高效的数据并行解压缩,同时仍保持相对较高压缩率。主要的变化可概括为:
- 限制要压缩的块(页面)的大小,提供在 GPU 上使用多个计算单元 (CU) 的能力。
- 实施并行霍夫曼子流,提供使用 SIMD 处理的能力。
- 简化了比特流格式,最大限度地提高 GPU 性能。
目前 Brotli-G 解压缩算法已作为“着色器-shader”程序(用微软的 HLSL 高阶着色器语言编写)实现,可以在任何兼容 DirectX 的显卡上运行(但似乎不支持 AMD 的 Radeon 显卡...)。在着色器中实现解压缩,可充分利用 GPU 硬件的巨大并行处理能力,以实现快速解压缩效果。
AMD 开源的是一个 Brotli-G SDK,包含用于 CPU 和 GPU 上的 CPU 压缩和解压缩的源代码。该 SDK 还包含 CLI 应用程序的源码,可用于测量 Brotli-G 编解码器的性能。
需要注意的一件事是,已经使用 Brotli 压缩的内容,无法使用 Brotli-G 解压缩器进行解压。如果要利用 Brotli-G,必须使用兼容 Brotli-G 的压缩器(也在 SDK 中提供)重新压缩该内容。
目前该 SDK 以基于 MIT 的 BCP 78 许可证(这是标准 Brotli 压缩算法的许可证)开源,可以在其 GitHub 存储库中找到。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
红帽工程师为 Chrome/Chromium 实现基于 Wayland 的屏幕共享
红帽工程师 Jan Grulich 近日撰写了一份年终总结,其中介绍了为 Chrome/Chromium 实现基于 Wayland 的屏幕共享所做的工作。虽然此功能目前尚未默认启用,但 Jan 表示按照目前取得的进展,如果一切顺利,很快就会在浏览器中默认开启。 据介绍,目前在 WebRTC 中对基于 Wayland 的屏幕共享提供了很好的支持,并已引入到 Chromium 或 Firefox 等浏览器,但在 Chromium 中默认情况下尚未启用。对于许多用户来说,他们甚至没有发现该特性的存在。 Jan 介绍道,去年在 WebRTC 中获得DMA-BUF 支持后,他基于 Wayland 的屏幕共享开发工作速度得到了提升,今年还对 DMA-BUF 进行了不少改进和修复。比如实现 stream renegotiation,和确保使用正确的渲染节点导入 DMA-BUF。 在这份年终总结中,Jan 还提到了在 WebRTC 中对 stream restoration 的支持,以及正在为 PipeWire 的流代码进行的测试工作,以评估未来的变化。其他内容包括针对 Chromium 预览对话框的...
- 下一篇
Alluxio 2.9新版发布 | 重塑架构,支持大规模多租户环境
🎉🎉🎉 /Alluxio宣布正式发布数据编排平台2.9版本/ Alluxio 2.9 版本的主要新增功能包括: 新增跨环境集群同步功能 增强Alluxio在Kubernetes上的可管理性 提高S3 API 安全性和用户体验 2022年11月17日,全球首创的开源数据编排软件开发商Alluxio宣布正式发布数据编排平台2.9版本,新版本立即可用。2.9版本进一步强化了Alluxio作为计算引擎和存储系统中间层的关键地位。新功能包括:增加跨环境集群同步功能,支持横向扩展的多租户架构;显著改进在Kubernetes上部署的工具集和指南,增强Alluxio的易管理性;以及通过优化S3 API 和 POSIX API 实现安全性和性能提升。 本次 Alluxio 2.9 社区版和企业版更新中 包含3大重磅功能 Alluxio 2.9版本增加了跨环境同步功能。这个功能让不同的Alluxio集群之间知道各自对于元数据的修改情况,从而自动保持元数据同步。在任何环境中部署Alluxio集群都可以实现租户级隔离,同时可以确保Alluxio集群中的海量元数据处于同步状态。当部署多集群架构时,此功能尤...
相关文章
文章评论
共有0条评论来说两句吧...