fir*_*003 8 compression data-compression
我要压缩位置数据(纬度,经度,日期,时间).所有数字都是固定格式.其中2个(纬度,经度)采用十进制格式.其他2是整数.
现在这些数字是固定格式的字符串.
压缩固定格式数字的算法是什么?数字压缩(如果有的话)比字符串压缩更好吗?我应该直接压缩字符串而不将其转换为数字然后压缩吗?
提前致谢.
这是一个小理论有用的地方之一.你需要考虑几件事:
比方说,例如,分辨率为0.01°.你知道你的值在-180°到+ 180°之间,或35900个不同的值.Lg(35900)≈16所以你需要16位; 14位 - -90° - + 90°.显然,如果您将此类值存储为浮点数,则可以立即将数据压缩一半.
与日期时间类似,范围是多少; 你必须有多少位?
现在,如果数据按某种顺序(例如,在一艘船上顺序采集的样本),那么您只需要一个起始值和一个增量; 这可以产生很大的不同.如果船舶以30节的速度行驶,则位置不能再变化,即每小时约0.03度或每秒约0.0000083度.这些增量将是非常小的值,因此您可以将它们存储在很少的位中.
关键是你可以做很多事情,但你必须比我们提出建议更多地了解数据.
更新:哦,等等,定点字符串?!
好的,这是(相对)容易的.首先,是的,您希望将字符串转换为某种二进制表示形式.只是编写一个数据项,你可能有
040.00105.0020090518212100Z
Run Code Online (Sandbox Code Playgroud)
你可以转换为
| 4000 | short int, 16 bits | | 10500 | short int, 16 bits | | 20090518212100Z | 64 bits |
这是96位,12个字节对26个字节.