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 存储库中找到:https://github.com/gpuopen-librariesandsdks/brotli_g_sdk
RS-485总线简述(三)
实用简单的数字车载音响设计方案
韩国科技情通部已正式退回SK电信的5G资费制度许可申请
联发科发展物联网/VR摆脱对手机芯片依赖
vivo AEPX全面屏亮相MWC2018 屏幕指纹再现黑科技
AMD开源Brotli-G压缩格式,可使用GPU加速Brotli压缩
三星S7edge和vivoXplay6哪个拍照好
广和通正式发布工业级低功耗单频双模GNSS模组G030&G031
PCI总线定义
关于智慧物流的十个主要观点
【12月21日|上海】是德科技测试测量大会—PCIe6.0/5.0主题研讨会
物联网如何帮助我们安全地重新开放办公室
LCD段码液晶屏常见问题的详细分析
扫地机器人什么牌子好?挑选攻略上线啦!
被列入黑名单后,中芯国际、大疆官方回应
小间距LED显示屏正呈现出新的发展趋势
开关电源的各个元器件怎么计算?
半导体TOP10排名!
FuzionSC半导体贴片机可以贴装任何类型的元件
诺基亚手机旅行充电器电路