存储空间不够用?网络传输太慢?想必每个人在生活中都会遇到这些问题。看着爆满的硬盘、焦急的等待数据的接受,更新设备?不是每个人都能承担这个成本。那不如尝试一下无损压缩?
为了减少存储空间的占用,提高传输效率,START团队提出了一个高效的流式浮点类型数据无损压缩算法——“小精灵ELF”。利用小精灵平均可以将原本100GB的数据可以压缩到33GB。
ELF特点介绍
小精灵ELF是一种无需复杂计算针对编码的流式无损压缩算法,这意味着ELF应用场景非常广泛。小精灵ELF的压缩率平均有33%,也就是100GB的数据可以被压缩成33GB。此外小精灵ELF压缩1000条数据平均仅需要0.048毫秒,这个压缩率和压缩速度是目前绝大多数压缩算法达不到的。
在各个领域里,会不断地产生大量的浮点类型时序数据。使用小精灵ELF最明显的好处就是我们进行压缩处理后,数据所占空间变小,这样可以有效地节省存储成本。我们可以在电商平台上看到机械硬盘的价格大约是200-300元1TB,波音787飞机一次飞行大约产生0.5TB数据,使用小精灵ELF压缩后一次存储一次飞行产生的数据就可以节约大约50元的存储成本。更何况像发电厂这种每秒收集上万条数据的场景,ELF具有的33%的压缩率意味着在存储上可以节省2/3的成本,还不包括对存储器后续的维护费用。
▲数据来源为京东商城中销量较高的产品数据
那这些数据的收集传输也是一个消耗大量时间成本的事情。小精灵ELF的压缩不需要依靠很大的算力,十分适合部署在每个传感器内,在数据被收集后可以直接进行快速地压缩,将压缩后的数据进行传输。这意味着在相同的网络带宽中,可以提高三倍的数据传输速度。压缩的过程可以由每个传感器同时进行,数据可以收集一个压缩一个,而不用收集大量数据后进行压缩,这是小精灵流式压缩的优势所在。
欢迎大家尝试使用小精灵ELF,让你存储空间不发愁,网络传输不添堵。
技术解密
ELF是怎么对数据进行压缩的呢?小精灵ELF实际上是巧妙的采用擦除的方式对数据进行处理的方法。怎么擦除呢?我们举了一个例子如下图,ELF可以找到数据的一个合适的低位置为零,之后进行异或操作,可以产生更多尾随零。图中的尾随零就从2bits,提高到了44bits,这样压缩率较直接进行异或有着明显提升。由于低位对原数据大小影响较小,所以ELF也可以向上取整得到原数据。
▲图为小精灵ELF压缩示例
更多的技术揭秘可见:基于擦除的浮点无损压缩、无损时序压缩Elf+。
参考文献
[1] Ruiyuan Li, Zheng Li, Yi Wu, Chao Chen, Yu Zheng. Elf: Erasing-based Lossless Floating-Point Compression[C]//in The 49th International Conference on Very Large Data Bases, PVLDB, 16(7): 1763 - 1776, 2023.
转载请注明:康瑞部落 » 数据压缩新利器!小精灵ELF助你高效存储与传输