Brotli的编码器算法讲解
Explanation of Brotli's encoder algorithm
Brotli 压缩格式在 RFC 7932 中有很好的记录。您可以从头到尾阅读此 RFC,它会告诉您格式的工作原理。
但是,虽然您可以单独基于 RFC 实现解码器(解压缩器),但 RFC 并未描述 encoder 算法,它是 Google 的参考 C 实现(brotli
命令行工具)。换句话说,它没有告诉我们编码器在不同质量级别使用什么策略来为给定的输入流找到有效的压缩表示。
当然我总是可以阅读 encoder source,但我想知道是否有关于编码器工作原理的可访问的高级描述?
我所知道的只是this article中的一个非常简短的描述:
The higher data density is achieved by a 2nd order context modeling,
re-use of entropy codes, larger memory window of past data and joint
distribution codes.
更重要的是,来自同一篇文章:
the new algorithm is named after Swiss bakery products. Brötli means
‘small bread’ in Swiss German.
Brotli 压缩格式在 RFC 7932 中有很好的记录。您可以从头到尾阅读此 RFC,它会告诉您格式的工作原理。
但是,虽然您可以单独基于 RFC 实现解码器(解压缩器),但 RFC 并未描述 encoder 算法,它是 Google 的参考 C 实现(brotli
命令行工具)。换句话说,它没有告诉我们编码器在不同质量级别使用什么策略来为给定的输入流找到有效的压缩表示。
当然我总是可以阅读 encoder source,但我想知道是否有关于编码器工作原理的可访问的高级描述?
我所知道的只是this article中的一个非常简短的描述:
The higher data density is achieved by a 2nd order context modeling, re-use of entropy codes, larger memory window of past data and joint distribution codes.
更重要的是,来自同一篇文章:
the new algorithm is named after Swiss bakery products. Brötli means ‘small bread’ in Swiss German.