http://www.perlmonks.org?node_id=992958


in reply to Specialized data compression

Could 8 bit deltas for the x, y, z values gain you anything? If acceleration tends to be straight line then converting to a vector form may gain you something, especially if you then delta encode.

A quite different technique that works well for some types of data is to treat each bit position (or groups of adjacent bits - nibbles for example) in the data as a separate stream and run length encode each "stream". That gives excellent compression for the most significant bits and almost none for the least significant bits, but overall may give substantially better results than general purpose Huffaman type encoding.

True laziness is hard work

Replies are listed 'Best First'.
Re^2: Specialized data compression
by wanna_code_perl (Friar) on Sep 16, 2012 at 16:12 UTC

    Thanks for the suggestions! It took me a few days to think this through and try some things.

    Indeed, per your suggestion I have tried deltas for x,y,z, although they don't all fit in 8 bits (some deltas will of course overflow 16-bit as well), so I use a variable width int (8, 16, or 32 bit), which was a pretty big win, even after compression.

    The bitwise transposition you refer to is interesting, but was complex and didn't change things much once xz got ahold of it.