请教如何对时间数据进行压缩,例如我将数据转化为time_t格式,可以存储为4字节,但我想对时间数据进行高效的无损压缩,请问有什么好的方法
1条回答 默认 最新
- threenewbee 2019-01-25 01:04关注
分为两个部分,一个是时间编码,一般来说根据你的时间范围和精度,4个字节可以表示大约42亿个不同的编码。
如果你的时间精确到秒,那么表示范围是1300年。精确到分钟,是8万年,如果是毫秒的话,就只有1.3年,现实中,我们一般表示的范围在几十年到100年这个尺度就够了,这就是为什么时间戳一般是8个字节的原因。
如果说你要以1分钟的精度表示10年的数据,60*24*365*10,大约500万,那么3个字节就够了。这个阶段叫做编码
然后就是压缩,压缩的本质就是重新编码,让短编码表示频繁用到的数据,长编码表示不频繁用到的数据,从而在整体上减小数据的长度。因此,是否能压缩的前提是,你的上面的编码,是否是随机/均匀分布的还是分布不均匀的,后者的压缩性会更强。
压缩算法用的是哈夫曼编码,要所谓“压缩比优先”,无非就是编码的码长尽可能长。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥15 stable diffusion
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误