3

我基于无限深度的哈希链实现了基于 LZ77/LZ4(无熵编码)的压缩算法。效果不错,速度还可以,但压缩比接近LZ4。从 LZ4 项目中阅读文档和浏览源代码我知道它使用深度为 1 的哈希链,但如果我将实现的深度固定为 1,LZ4 的性能将优于它。

我不明白 LZ4 匹配搜索算法(快速扫描)是如何工作的。有人可以解释一下吗?

谢谢。

4

1 回答 1

0

扫描过程采用哈希搜索。如下所示:

  1. 旧字节--------------锚点------------新字节----当前
  2. h=哈希[int4]
  3. 参考=哈希.get(h)
  4. hash.put(h,current) 供以后匹配
  5. 整数(参考)==整数(当前)?处理匹配:重试
  6. 处理比赛

seachMatchNb 变量是一种跳过方式,用于快速匹配但可能会丢失分钟匹配。

哈希表是一种 JIT 样式,它只保存偏移量。readIntEquals 函数进行键匹配。

在学习模式下忽略它。

于 2017-08-21T16:00:34.430 回答