【发布时间】:2011-03-27 16:20:41
【问题描述】:
例如它怎么知道一个 4GB 的文本文件可以压缩到 200MB 呢?显然,它不会在 2 秒左右的时间内读取所有内容......那么它使用什么样的预测算法?
【问题讨论】:
-
我只是猜测它会对文件进行采样并尝试压缩文件的 1% 并以此为基础进行估计。当然,样本必须分散在整个文件中。
标签: algorithm compression winrar
例如它怎么知道一个 4GB 的文本文件可以压缩到 200MB 呢?显然,它不会在 2 秒左右的时间内读取所有内容......那么它使用什么样的预测算法?
【问题讨论】:
标签: algorithm compression winrar
他们使用称为 PPMd 的部分匹配 (PPM) 预测变体。 看wiki
【讨论】:
通常需要 -log(x) + log(2) 位来压缩 x 位。然而,这是一个高度理论值,它完全取决于您要压缩的数据。对于您的数据,您必须记录每个字符和频率并将其插入公式中。例如,先尝试 3 个字符。您想查找香农代码。
【讨论】: