Compression &引用;“启动”;或;“培训”;用于压缩/解压缩的压缩算法?
我试图找出是否有一种可以事先训练的压缩算法,你可以使用训练过的数据来压缩和解压数据 我不知道压缩算法是如何工作的,但我有一个线索,这是可能的 例如,如果我单独压缩这些行,它不会压缩得很好Compression &引用;“启动”;或;“培训”;用于压缩/解压缩的压缩算法?,compression,Compression,我试图找出是否有一种可以事先训练的压缩算法,你可以使用训练过的数据来压缩和解压数据 我不知道压缩算法是如何工作的,但我有一个线索,这是可能的 例如,如果我单独压缩这些行,它不会压缩得很好 banana: 1, tree: 2, frog: 3 banana: 7, tree: 9, elephant: 10 如果我事先用100个样本行训练压缩算法,它会压缩得非常好,因为它已经有了将“香蕉”映射到代码/查找值的方法 帮助解释我的问题的伪代码: # Compressing side rip =
banana: 1, tree: 2, frog: 3
banana: 7, tree: 9, elephant: 10
如果我事先用100个样本行训练压缩算法,它会压缩得非常好,因为它已经有了将“香蕉”映射到代码/查找值的方法
帮助解释我的问题的伪代码:
# Compressing side
rip = Rip()
trained = rip.train(data) # once off
send_trained_data_to_clients(trained)
compressed = rip.compress(data)
# And on the other end
rip = Rip()
rip.load_train_data(train)
data = rip.decompress(compressed)
有没有一种通用的(即有流行语言库)压缩算法让我来做这件事?它存在并且被称为Lempel-Ziv编码,您可以在这里阅读更多内容: 它是几种“字典”式无损压缩方法之一
LZ是Zip archiver的基本功能。用大多数压缩算法的说法,您所描述的将是压缩机的预设字典
我不能代表所有的压缩库,但zlib肯定支持这一点——正如您想象的那样——通过
deflateSetDictionary()
和inflateSetDictionary()
函数。有关详细信息,请参阅。哇,我看到字典的压缩量增加了约2-5倍。太棒了!