我正在寻找一些方法来压缩大量(并且动态增长的)数据以在图形视图中进行可视化。
假设我有一个由时间戳值对组成的二进制文件。该文件实时增长,很容易超过几千兆字节。
现在有多个视图将这些数据显示为图形/绘图。由于在大多数情况下,x 轴上的数据远多于像素,因此我们需要以某种方式将这些数据压缩到所需的分辨率。每个视图可能需要不同的分辨率,具体取决于其在屏幕上的大小。放大和缩小也会导致该分辨率的快速变化。
当前算法将数据分成等长的部分并计算最小值和最大值。现在,对于 x 轴上的每个像素,我们绘制一条从最小值到最大值的垂直线。这样我们就可以确保不会错过异常值。(这是一个要求)
每次需要新的分辨率时,我们都必须选择另一个部分长度并遍历整个文件,这会很慢。
一个解决方案是创建某种缓存层,允许我们对不同分辨率的数据进行(恒定时间)调用。不幸的是,我不知道如何以仍然向我们展示异常值的方式实现这样的缓存。
您是否有任何提示或知道文献显示解决此类问题的方法?
环境是 Microsoft .net,但这不应该有所作为,因为这是关于一般的想法。
提前致谢。