Google開源Brotli壓縮算法

jopen 9年前發布 | 14K 次閱讀 Brotli
 

谷歌非常重視互聯網用戶的體驗,而提升網頁加載速度是提升用戶體驗的一種重要方式。兩年前,他們發布了 Zotfli 壓縮算法。該算法在默認設置下的輸出比zlib的最大壓縮比輸出還要小3-8%。PNG優化器、Web內容預處理等許多壓縮方案中都集成了該算法。基于該算法的應用情況,結合其它現代壓縮需求,谷歌開發并開源了一個新的算法—— Brotli 壓縮算法。該算法由谷歌壓縮團隊的Jyrki Alakuijala和Zoltan Szabadka開發,其中Jyrki亦是Zotfli壓縮算法的創建者。

不同于Zopfli兼容 Deflate ,Brotli是一種全新的數據格式,可以提供比Zopfli高20-26%的壓縮比。據谷歌 研究 ,Brotli壓縮速度同zlib的Deflate實現大致相同,而在 Canterbury語料庫 上的壓縮密度比 LZMAbzip2 略大。

谷歌對這種數據格式寄予了厚望,Zoltan寫道:

更小的壓縮尺寸可以提供更好的空間利用率和更快的頁面加載速度。我們希望,在不遠的將來,主流瀏覽器都能支持這種格式,而且,更小的壓縮尺寸會給移動用戶帶來額外的好處,比如更低的數據傳輸費用和電量消耗。

谷歌的這份發布公告吸引了許多網友的關注。網友Szabolcs Péter指出,Brotli在2013年就已經發布,不應該算是一種新的壓縮算法了。對此,Jyrki答復道:

Brotli的第一個版本是用于Web字體一次性壓縮的非對稱算法,而現在的Brotli已經擴展成為一個通用的無損壓縮算法。我們重寫了編碼器的重要組成部分,提高了壓縮比以及編碼器和解碼器的速度,改進了流API,增加了質量等級,減少了解碼內存占用,并考慮了更多的應用場景,Brotli 在各種平臺上的性能也更平衡了。我們今天的發布就是關于這個。我們認為,它已經做好準備吸引更多注意及廣泛應用于各種場景。

網友Lucas Marsh則對該算法的性能提出了質疑。他在一項 基準測試 中發現,Brotli雖然比bzip好,但并沒有比LZMA強。對此,Jyrki是這樣解釋的:

從設計上講,對于非常大的文件,LZMA和LZHAM壓縮得更多,尤其是當文件大小超過16MB時。提高大文件的壓縮比有三個缺點:增加了解碼時的內存占用,降低了小文件壓縮的性能以及在某種程度上降低了編碼和解碼速度。Brotli通常壓縮的更多的是0.5-1MB的文件。當你有更大的數據,并且不用為解碼內存占用擔心時,可以通過使用更大的滑動窗口來提高Brotlin的性能——對于大文件,可以試下將窗口大小參數設為24位(16MB)。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!