AMD 开源 Brotli-G 压缩格式,可使用 GPU 加速 Brotli 压缩

我请问下,AMD 开源 Brotli-G 压缩格式,可使用 GPU 加速 Brotli 压缩
最新回答
晨曦慕雪

2026-10-18 08:08:33

AMD 开源 Brotli-G 压缩格式,可使用 GPU 加速 Brotli 压缩

AMD 的 GPUOpen 团队近期公布了一个新的开源项目:Brotli-G。该项目基于 IETF 维护的完善的 Brotli 无损压缩算法标准(RFC7932),但通过使用 GPU,能够进一步增强 Brotli 压缩算法的性能和压缩比。

一、Brotli 压缩算法简介

Brotli 压缩算法由 Google Research 开发,并于 2013 年首次发布。其开源规范在 2013 年至 2016 年间得到了广泛的开发和推广。Brotli 是 LZ77 压缩算法和霍夫曼编码(类似于 GZIP 和 Deflate)的组合,作为 GZIP 和 Deflate 算法的开源继承者,Brotli 在保持相似性能的同时,提供了更好的压缩比。

目前,Brotli 在 Web 应用程序和内容中被广泛采用,主要用于压缩 Web 应用程序资产,如字体、JavaScript、图像等。超过 95% 的网络浏览器都支持 Brotli 解压,许多 Web 应用程序框架(如 NGINX 和 ASP.NET)以及 CDN(如 Azure 和 ImageKit)也都支持 Brotli 编码。

二、Brotli-G 性能优化

Brotli-G 对标准 Brotli 比特流格式进行了修改,主要集中在允许在 GPU 和多线程 CPU 上进行高效的数据并行解压缩,同时仍保持相对较高的压缩率。主要的变化包括:

  • 限制要压缩的块(页面)的大小:这一改变提供了在 GPU 上使用多个计算单元(CU)的能力,从而提高了并行处理效率。
  • 实施并行霍夫曼子流:这一改变提供了使用 SIMD(单指令多数据)处理的能力,进一步提升了压缩和解压缩的速度。
  • 简化比特流格式:通过简化比特流格式,最大限度地提高了 GPU 的性能。

目前,Brotli-G 解压缩算法已作为“着色器(shader)”程序实现,用微软的 HLSL(高阶着色器语言)编写,可以在任何兼容 DirectX 的显卡上运行(但需要注意的是,目前似乎不支持 AMD 的 Radeon 显卡)。在着色器中实现解压缩,可以充分利用 GPU 硬件的巨大并行处理能力,实现快速解压缩效果。

三、Brotli-G SDK 介绍

AMD 开源的是一个 Brotli-G SDK,该 SDK 包含了用于 CPU 和 GPU 上的 CPU 压缩和解压缩的源代码。此外,SDK 还包含了 CLI(命令行界面)应用程序的源码,可用于测量 Brotli-G 编解码器的性能。

需要注意的是,已经使用标准 Brotli 压缩的内容,无法使用 Brotli-G 解压缩器进行解压。如果要利用 Brotli-G 的优势,必须使用兼容 Brotli-G 的压缩器(也在 SDK 中提供)重新压缩该内容。

四、开源许可证

目前,Brotli-G SDK 以基于 MIT 的 BCP 78 许可证(这是标准 Brotli 压缩算法的许可证)开源,可以在其 GitHub 存储库中找到。这一开源举措将有助于推动 Brotli-G 的广泛应用和发展。

五、图片展示

以下是关于 Brotli-G 的一些图片展示,这些图片有助于更直观地了解 Brotli-G 的相关概念和实现原理。

综上所述,AMD 开源的 Brotli-G 压缩格式通过使用 GPU 加速,进一步提升了 Brotli 压缩算法的性能和压缩比。这一开源项目将有助于推动 Web 应用程序和内容的高效压缩和传输。