在数字领域的奇幻王国中,大家视数据为宝藏。作为奇幻王国的国王,在他的宝库中,自然是有着无数的数据宝藏。这么多的数据宝藏,却让国王发难了。因为宝库有限,放不下这么多数据宝藏。因此,国王广招天下的精灵法师,希望借助他们的魔法,能在不损伤这些数据宝藏的前提下,缩小数据宝藏占的空间,从而让宝库中能装下更多的数据宝藏。
在广招的精灵法师团队中,有一位年轻而聪明的精灵法师名叫艾尔弗,他以一种神奇的擦除魔法在精灵法师界远近闻名。这种神奇的擦除魔法,能很神奇地擦除浮点数数据中的冗余信息,大大减少浮点数宝藏的占用空间。这个神奇的擦除术,就是Elf。
Elf擦除咒语
存放在宝库中的数据宝藏都是以0或1的二进制形式存放。对于宝库中的二进制数据,越末尾的数据,表示的数据越小;若擦除这部分数据,会使得原数据的值减小。若统一减少的数据量,不就可以实现无损擦除的魔法了吗?
如何统一减少的数据量?Elf魔法规定了减少的数据量只会让原数据的最低有效位减一;例如,3.17最多只能减少0.01,最低有效位7只能变成6,不能变成5。
但3.17可以擦除变成3.169999837875366,也可以擦除变成3.1640625。为了减少更多的空间,自然是选择擦除量更多占用空间更少的0.1640625。但如何在保持最低有效位的情况下,找到最大擦除量呢?Elf根据原数据的最低有效位所在位数,确定保存的最少位数,从而确定了相应的最大擦除量。
简而言之,Elf可以根据数据的有效位,确定一个最大的擦除数据量,从而实现可恢复的擦除魔法。
Elf恢复咒语
通过上面的“Elf擦除咒语”可知,在恢复的时候,只需要将擦除数据在原数据的最低有效位上加一并抛弃其后的小数位数;例如,3.17擦除后变成3.1640625,3.17的最低有效位是百分位,对3.1640625在相应的百分位上加一,则为3.1740625,再抛弃百分位后的数据,则可以完美地恢复为3.17。
更多的技术揭秘可见:基于擦除的浮点无损压缩、无损时序压缩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.
-End-
时空艺术团队(START,Spatio-Temporal Art)来自重庆大学时空实验室,旨在发挥企业和高校的优势,深入探索时空数据收集、存储、管理、挖掘、可视化相关技术,并积极推进学术成果在产业界的落地!年度有2~3名研究生名额,欢迎计算机、GIS等相关专业的学生报考!