Skip to content

压缩算法

压缩算法常分为有损压缩和无损压缩,有损压缩常用的有 PNG,JPEG 等等,无损压缩常用的有 霍夫曼编码,ZIP 等等

Web 常用的压缩算法

GZIP

目前 Web 中,兼容性最好的压缩算法,结合了 LZ77 算法和霍夫曼编码,LZ77 寻找文件的重复数据,并使用之前出现过的数据的位置和长度来标识,霍夫曼编码将频繁的数据分配更短的字符,不频繁的分配较长的字符

特点

  1. 压缩率良好,对文本压缩率较高,但对于 PNG,JPEG 效果较低
  2. 压缩和解压速度较快
  3. 广泛支持,兼容性极好

Brotli

Brotli 是 Google 推出的新压缩算法,在 LZ77 和霍夫曼的基础上,增加了二阶上下文建模 (Context Modeling) 和一个大型静态字典

  1. 静态字典:包含了 HTML 和 Javascript 常用的词汇,可以直接应用词典的条目进行压缩
  2. 上下文建模:根据当前的上下文来选择更有的编码

特点

  1. 压缩率较高
  2. 压缩速度相较于 GZIP 慢,解压速度较快
  3. 现代浏览器支持不如 GZIP

ZStandard

ZStandard 是 Facebook 推出的新压缩算,在 LZ4(LZ77 变体) 结合熵编码

特点

  1. 压缩率极佳
  2. 压缩和解压速度极快
  3. 现代浏览器支持一般