您正在寻找的术语是“有损压缩”(参见: http://en.wikipedia.org/wiki/Lossy_compression )。最佳压缩方法取决于各个方面,例如数据的分布。
据我所知,你想在一个时间段内传输所有样本的min()和max()。
例如。您希望每隔10毫秒采样一次最小/最大每1毫秒?
如果您不需要单个样品,则只需在每次采样后进行比较
i=0; min=TYPE_MAX; max=TYPE_MIN;// First sample will always overwrite the initial values while true do sample = getSample(); if min>sample then min=sample if max<sample then max=sample if i%10 == 0 then send(min, max); // if each period should be handled seperatly: min=TYPE_MAX; max=TYPE_MIN; done
您还可以通过仅在更改时发送数据来节省带宽(取决于样本数据:如果它们不会很快变化,您将节省很多)
定义符合您需求的组合成本函数,例如(len(i)+ len(i + 1))/ i ^ 2,然后迭代数组以找到要替换的“最便宜”对。