gpt4 book ai didi

仅用于数字的压缩算法

转载 作者:行者123 更新时间:2023-12-04 05:44:38 26 4
gpt4 key购买 nike

我要压缩位置数据(纬度、经度、日期、时间)。所有数字都是固定格式。其中 2 个(纬度、经度)是十进制格式。其他2个是整数。

现在这些数字是固定格式的字符串。

压缩固定格式数字的算法是什么?
仅数字压缩(如果有的话)是否比字符串压缩更好?
我应该直接压缩字符串而不将其转换为数字然后压缩吗?

提前致谢。

最佳答案

这是一些理论有帮助的地方之一。你需要考虑几件事:

  • 您的测量分辨率是多少:0.1° 或 0.001°? 1 秒还是 1 微秒?
  • 测量值是相关联的并以某种顺序排列,还是随机组合在一起?

  • 例如,假设分辨率为 0.01°。他们知道您的值范围从 -180° 到 +180°,或 35900 个不同的值。 Lg(35900) ≈ 16 所以你需要 16 位; -90°–+90° 为 14 位。显然,如果您将这种值存储为浮点数,您可以立即将数据压缩一半。

    与日期时间类似,范围是多少;你必须有多少位?

    现在,如果数据按某种顺序排列(例如,在一艘船上按顺序采集的样本),那么您只需要一个起始值和一个增量;这可以产生很大的不同。当一艘船以 30 节的速度行驶时,位置的变化不能超过每小时 0.03 度或每秒 0.0000083 度。这些增量将是非常小的值,因此您可以将它们存储在很少的位中。

    关键是您可以做很多事情,但是您必须比我们更了解数据才能提出建议。

    更新:哦,等等,定点字符串?!

    好的,这(相对)容易。首先,是的,您想将字符串转换为某种二进制表示。只是组成一个数据项,你可能有
    040.00105.0020090518212100Z

    你可以转换成

    | 4000 |短整数,16 位 |
    | 10500 |短整数,16 位 |
    | 20090518212100Z | 64 位 |

    所以这是 96 位,12 字节对 26 字节。

    关于仅用于数字的压缩算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/879069/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com