On Mon, Sep 13, 2010 at 12:27:27AM +0930, David Gowers wrote:
> 
> In order for dithering to behave in a reliable way, every 8bit value,
> when transformed ->16bit and back again, should be identical. That's
> what I mean by asymmetric. If the reverse transform causes off-by-one
> errors in any case at all, the dithering will be at least partially
> reapplied, hence nastiness.
> I don't see a test disproving this, so I'm inclined to think it is a
> possibility.
>
> (I'm not 100% sure on this, but I think this might require all 8bit
> inputs to map to exact 16bit outputs (with no fractional part.))
>
> I haven't yet determined a way to do the reverse transform (16->8) with
> this guarantee, without using a horribly big (32k) lookup table.

If dithering can only add eg. +/- 30 or smaller in the 16bit domain, instead
of +/- 32, then rounding errors in the 8bit-->16bit+dither-->8bit path
should never show up in the result.  That should be acceptable, why didn't I
think of it before...

But at least 8bit-->16bit would probably be faster with a table anyway.

-- 
Martin Renold

_______________________________________________
Mypaint-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/mypaint-discuss

Reply via email to