You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为GNSS接收机采集的时序二进制数据选择最优压缩方法

GNSS时序结构化数据压缩优化方案

原有方案效果不佳的原因

  • 通用DEFLATE算法仅识别重复字节序列,而GNSS时序原始值的重复度极低,仅能压缩掉少量结构冗余,所以只能达到1.4的压缩比;
  • 将uint8、single转成double的操作会主动引入大量填充字节,额外增加了数据体积,因此压缩比进一步下降。

无损压缩优先优化方案(无需修改数据语义)

  • 分字段差量预处理:每个字段单独做时序差分:uint8类型直接存储当前值与前一个值的差,浮点类型(double/single)存储当前值与前一个值的XOR运算结果。时序GNSS数据相邻1秒的数值变化极小,差分/XOR后的结果大部分高位为连续0,重复度大幅提升。
  • 调整存储分块规则:取消全量数据按字段类型聚合的存储方式,改为每128~1024秒为一个存储块,每个块开头存储该块第一个采样点的全量原始值作为基准,块内剩余采样点仅存储差分/XOR后的结果。块大小可根据数据波动情况调整,数值越稳定块可设置越大。
  • 替换压缩算法实现:预处理后的数据可直接使用更高压缩等级的DEFLATE实现zopfli,或压缩率更高的LZMA2算法(对应7z压缩工具),相比默认zlib可再提升30%~50%的压缩率。完成以上三步后,通常压缩比可以提升至3以上。

深度优化方案(可根据数据特性适配)

  • 针对取值为枚举类的uint8参数(如定位状态、跟踪卫星数等),差分前先做行程编码(RLE),连续相同的数值仅存储值+重复次数,静态场景下可将该部分体积压缩到原有的10%以内。
  • 针对浮点观测值,可将简单的XOR替换为线性预测编码:用前2~3个历史值做线性回归预测,存储预测值与实际值的残差,残差的0占比会比直接XOR更高,进一步提升后续压缩效率。
  • 若业务允许有损压缩,可根据实际精度需求截断浮点数的低位尾数:double类型可保留67位有效数字转成single存储,single类型可截断不必要的低位比特,无损压缩率可再提升12倍,且不会影响常规GNSS解算精度。

验证注意事项

优先取10%的典型样本数据做参数测试,不要做跨精度转换操作,保持原始数据的精度类型,避免引入无效冗余。


内容的提问来源于stack exchange,提问作者Hugo Pontes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:36:02