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
