WinRAR 如何执行压缩比检查?
例如,它如何判断 4GB 文本文件可以压缩到 200MB?显然,它不会在 2 秒左右的时间内读取所有内容……那么它使用什么样的预测算法呢?
E.g. how can it tell that a 4GB text file can be compressed to, say, 200MB? Obviously, it doesn't read all of the contents in 2 or so seconds... so what kind of predictive algorithm(s) does it use?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
他们使用部分匹配预测 (PPM) 的变体,称为 PPMd。
查看 wiki
They use variant of Prediction by partial matching (PPM) called PPMd.
Look at wiki
通常需要 -log(x) + log(2) 位来压缩 x 位。然而,这是一个高度理论值,它很大程度上取决于您想要压缩的数据。对于您的数据,您必须记录每个字符和频率并将其插入公式中。例如,首先尝试仅使用 3 个字符。您想要寻找香农代码。
It takes usually -log(x) + log(2) bits to compress x bits. However this is a highly theoretical value and it depends heavenly on the data you want to compress. For your data you have to record each character and frequency and insert it in the formula. For example try only 3 character first. You want to look for shannon-code.