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
審核編輯:湯梓紅
-
amd
+關注
關注
25文章
5445瀏覽量
133953 -
gpu
+關注
關注
28文章
4703瀏覽量
128712 -
開源
+關注
關注
3文章
3255瀏覽量
42411 -
壓縮算法
+關注
關注
1文章
21瀏覽量
10488
原文標題:AMD開源Brotli-G壓縮格式,可使用GPU加速Brotli壓縮
文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論