Remix.run Logo
▲ schiffern 2 hours ago

Floyd-Steinberg dithering preserves 100% of the quantization error by shifting it onto neighboring pixels (unlike eg Atkinson dithering which only preserves 75%[0]), so the lack of drift I guess isn't too surprising really.

As for tracking error across multiple color axes, I would naively assume it's a 3-vector (maybe in a linearized perceptual color space, or maybe RGB) and the error term the encoder minimizes is just the vector magnitude?

Very cool. I think this is best understood as a coding exercise for the embedded CPU instead of a 'real' video format, but no less impressive IMO

[0] https://beyondloom.com/blog/dither.html