Dithering Node Algorithms


A Weakness of most semi professional cameras is 8 bit recording. Banding and heavy limitations in color grading are the consequences.
What I want to do is to code a Dithering node which should help to get a little smoother gradiations without banding in some cases when dealing with 8-bit material.

The problem is that dithering is applied while bit-depth downconversion of images, and while researching I have found much useful information how to implement this, but what I want to do is adding dithering noise between image areas which’s color values have a low difference.
For that purpose I could not find useful information in the web. Does anyone know some information sources for this?


This may be in the to hard basket now, but have you seen Quantel’s solution?

Dynamic Rounding - Dynamic Rounding is a technique devised by Quantel for truncating the word length of pixels – a process you can't avoid when you are processing images. Rather than simply losing the lower bits, Dynamic Rounding uses their information to control, via a randomiser, the dither of the LSB of the truncated result. This effectively removes any artefacts that would otherwise be visible. Dynamic rounding is non-cumulative on any number of passes and produces statistically correct results. Dynamic rounding eliminates any truncation artefacts.

And here is a thread at the craetive cow with other approaches to the problem.
Randomising type blend seems popular, Blender 2.4 had that effect in the VSE as a pluggin IIRC