compression - 我应该如何为我的数据选择最佳的数据压缩方法?
问题描述
我做了一些研究,但我想我可以说在数据压缩方面我是一个完整的初学者。
我需要压缩来自 GNSS 接收器的数据。这些数据由一系列随时间测量的参数组成 - 更具体地说是在 1Hz 的 X 秒内测量 - 如下所示:
X uint8 参数,X uint8 参数,X 双参数,X 双,X 单,X 单。
数据以二进制文件的形式存储在这个序列中。
使用通用 LZ77 压缩工具,我设法实现了 1.4 的压缩比(这是通过 zlib DEFLATE 实现的),我想知道是否可以进一步压缩它。我知道这在很大程度上取决于数据本身,所以我要问的是我可以使用哪些算法或软件更适合我要压缩的数据结构。以不同的方式排列数据也是我可以改变的。事实上,我什至尝试将所有数据转换为双精度数据,然后使用专门用于双精度流的压缩器,但无济于事,数据压缩率甚至低于 1.4。
换句话说,您将如何解决此数据的压缩问题?由于我缺乏关于数据压缩的知识,恐怕我没有以最适合压缩器的方式提供数据,或者我应该使用不同的压缩算法。如果您能提供帮助,我将不胜感激。谢谢!
解决方案
使用增量编码。从先前的对应值中减去后续值。在另一端添加增量以恢复原始数据。增量编码的数据应该更可压缩。
推荐阅读
- r - 我在 HTTR 中的 GET 响应不断出现错误,但能够通过 Postman 获得响应
- python - ValueError:计划形状未对齐 -> 使用 pd.concat() 时
- javascript - 为什么我的递归函数在没有通过逻辑测试的情况下进行递归(Javascript 函数帮助)?
- javascript - 使用平滑滚动条插件触发滚动事件的问题
- ffmpeg - FFMPEG 屏幕录制:如何使用 ffmpeg 和 xorg 获取 H265 (libx265) 录制?
- powershell - 如何在 txt 或 csv 文件中获取所有用户的 get-ADPrincipalGroupMembership 并将其放入每个用户的 txt 文件中?
- linux - 如何在 Linux 终端中使用 grep 命令获取四个字母单词的列表?
- javascript - 分离函数的JavaScript问题
- android - Android Studio 4.x 模拟器中缺少模拟器工具栏 3dot 模拟器设置菜单
- jquery - 当我切换到不同的页面时,如何专注于导航栏中的项目?