其他
Facebook 开源的无损压缩算法:zstd
其中--fast代表负压缩级别,提供更快的压缩和解压缩度,以换取相对于1级的压缩比损失。
小型数据压缩的案例
前面的图表提供的结果适用于典型的文件和流场景(几MB的大小)。
要压缩的数据量越小,压缩就越困难。这个问题在所有的压缩算法中都很常见,原因是压缩算法从过去的数据中学习如何压缩未来的数据。
为了解决这个问题,Zstd 提供了一种训练模式,可以用来对选定类型的数据进行算法调优。通过提供一些样本(每个样本一个文件)来实现 Zstandard 的训练。这种训练的结果存储在一个名为“ dictionary”的文件中,必须在压缩和解压缩之前加载该文件。使用这本字典,可以在小数据上实现的压缩比/值大大提高。
下面的示例使用 github-users 示例集,该示例集是从 github public API 创建的。它由大约10K 条记录组成,每条记录重约1KB。
这些压缩增益的实现,同时提供更快的压缩和解压缩速度。
如果在一组小数据样本中存在某种相关性,则训练是有效的。一个字典的数据特定性越强,它的效率就越高(没有通用的字典)。因此,为每种类型的数据部署一个字典将带来最大的好处。字典增益在前几个 KB 中最有效。然后,压缩算法将逐渐使用先前解码的内容,以更好地压缩文件的其余部分。
那么你的应用中有需要用到压缩场景的吗?
不妨试试Facebook的这个开源库,看看能否给你的压缩过程提提速!
GitHub仓库:https://github.com/facebook/zstd
大家好,我是TJ
一个励志推荐10000款开源项目与工具的程序猿
欢迎关注我,了解更多牛x东东