*20170530:*

The reversing of the encoded number comes from the following assumptions:

- Colors are often "saturated", often very close to zero or close to max, few "pastels" between 25% and 75%
- This is reinforced when a block is adjusted for minimum and maximum values : at least one sample will be 0 and another will be max (which ?)
- The "very high and very low" scenario also happens with relative/delta/differential coding where hopefully there are mostly low-amplitude values, and the positive values wrap around to very high values. Low amplitudes with negative values will use fewer bits

However,

- The reversal at the middle is totally arbitrary. Nobody can be sure that these heuristics will happen "most of the time".
- This reversal could be under-efficient with different kinds of data sets.
- The amplitude reversal requires a subtraction in the critical datapath, which slows things down (a bit).

The "safe answer" is to say : *measure and compare various scenarii*. But there is a catch: with no reversal, there is still something to compute, in this case **a-S**.

Considering that **S=a+b** we get **a-S=a-a-b=-b**

*Oh wait, we have a negative number now ?*

If there is no reversal, there still is some computation ( **-x = ~x +1** and incrementation is faster than full addition but not by significantly much)

## Discussions

## Become a Hackaday.io Member

Create an account to leave a comment. Already have an account? Log In.