Here are some ideas if you want to create your own simple algorithm:
- Use xor of the current value with the previous value to obtain a set of bits describing the difference.
- Divide this difference into two parts: one part is the “mantissa bits” and one part is the “exponent bits”.
- Use variable length encoding (different number of bits/bytes per value), or any compression method you choose, to save these differences. You might use separate streams for mantissas and exponents, since mantissas have more bits to compress.
- This may not work well if you are alternating between two different time-value streams sources. So you may have to compress each source into a separate stream or block.
- To lose precision, you can drop the least significant bits or bytes from the mantissa, while leaving the exponent intact.