The diff encoder currently only supports unsigned input values. Similarly, the diff decoder only supports unsigned output values.
An option, e.g., signed, should be added which allows switching between signed and unsigned values. It should default to unsigned to retain backwards compatibility.