-5

我正在研究可以有任意数量的 16 位值的算法(例如,我有 1000 个 16 位值,并且都是传感器数据,所以没有特定的序列或重复)。我想将所有这些数据填充到一个 8 或 10 字节数组中(1000 个 16 位数字的每个值都应该在 10 字节数组中)。这些信息应该是这样的,我也可以轻松地解码以从 1000 个值中读取每个值。我曾想过通过将值除以 100 来使用 sin 函数,这样每个数据点将始终处于 8 位(0-1 sin 值范围)中,但这仅涵盖了小范围的数据,而不是大量的值。如果我要求太多,请原谅我。我只是好奇它是否可能。

4

1 回答 1

1

这个问题的答案是相当明显的,只要对信息科学有一点了解。这么少的内存不可能存储这么多的信息,而你所说的数据只是包含太多的信息。

一些数据,如重复数据或遵循某种结构的数据(如不断上升的值),包含的信息非常少。压缩算法的任务是找出结构或重复,而不是存储纯数据来存储结构或规则如何重现数据。

在您的情况下,数据来自传感器,除非您愿意丢失大量信息,否则您将无法生成压缩因子的压缩版本(1000 × 2)字节为 10 个字节)。如果您的传感器始终或多或少地产生相同的值,并且只有一点点抖动,则可以实现良好的压缩(但为此,您的问题很宽泛,可以在这里回答),但它可能永远不会在将 1000 个值减少到 10 个字节。

于 2019-04-23T12:06:35.380 回答