我正在研究可以拥有任意数量的 16 位值的算法(例如,我有 1000 个 16 位值,并且都是传感器数据,因此没有特定的系列或重复)。我想将所有这些数据填充到一个 8 或 10 字节的数组中(1000 个 16 位数字的每个值都应该在 10 字节数组内)。信息应该是这样的,我也可以轻松解码以读取 1000 个值中的每个值。我曾想过通过将值除以 100 来使用 sin 函数,因此每个数据点将始终处于 8 位(0-1 sin 值范围),但这仅涵盖了小范围的数据,而不是大量的值。如果我要求太多,请原谅我。我只是好奇它是否可能。
这个问题的答案是相当明显的,只要有一点信息科学的知识。在这么小的内存中存储这么多信息是不可能的,而且你所说的数据包含的信息太多了。
一些数据,如重复数据或遵循某种结构的数据(如不断上升的值),包含的信息很少。压缩算法的任务是找出结构或重复,而不是存储纯数据,而是存储结构或规则如何再现数据。
在您的情况下,数据来自传感器,除非您愿意丢失大量信息,否则您将无法生成压缩版本的压缩版本,其压缩系数与您正在谈论的大小相同 (1000 × 2个字节变成 10 个字节)。如果您的传感器或多或少地始终产生相同的值,而只有一点点抖动,则可以实现良好的压缩(但为此,您的问题在这里可以回答的范围很广),但它可能永远不会在将 1000 个值减少到 10 个字节。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句