il dithering è una "tecnica" di approssimazione, qualunque cosa sia approssimata è ovvio che non potrà essere fedele[CUT]
L'intervento di un ragazzo in gamba dal thread di doom9, quello di Madvr e MPC HC.
Io in pratica gli dico che il dithering non serve a nulla e lui:
That is certainly untrue. The conversions that an image renderer have to make are floating-point-based.
For a common example, when rendering a (weave-interleaved/) progressive NTSC DVD on a 1080p monitor you have to;
-Convert Y'CbCr 4:2:0 from the raw video source to 4:4:4. This is an operation in the spatial domain, so floating-point rules apply.
-Convert BT.601-type Y'CbCr to BT.601-type NTSC R'G'B' (in this step the conversion to full range generally is applied, so that the renderer actually has proper material to work with). This is a matrix multiplication, internally defined with floating-point values.
-Convert R'G'B' to RGB. This is an exponential function with a fractional exponent, so floating-point rules apply.
-Convert to a reference color model, and optionally do some analysis with a CAM (color appearance model). These all start with a floating-point matrix multiply and have some onward transforms as well.
-Resize the image. This is again an operation in the spatial domain, so floating-point rules apply.
-Convert colors in the reference color model to the display's native form of R'G'B'. (This may take a conversion step to RGB first.) This can be done nicely with a lookup table or just by a combination of first an exponential function and then a matrix multiplication. This step requires either (gamma-corrected) interpolation when using the lookup table or just floating-point arithmethic, so floating-point rules apply.
-As the native DVI, HDMI and DP outputs of modern video cards do not support much quantization in their output signals (merely 10- or 8-bit at the moment), the renderer has to apply dithering before writing to the presentation buffers. This just adds noise to mask some of the banding of the low output quantization. For quality dithering the additional precision from the output color from the step before this one is used to distribute the dithering patterns. At this point all precision above the 10- or 8-bit integer point is lost on a per-pixel basis.
Conversion to legacy limited-range formats (they are different for BT.601 NTSC, BT.601 PAL/SECAM and BT.709) can really only be handled by emulation in the second-last step. (The renderer needs uniform color internally. Skipping the expansion to full range or even not do chroma up-sampling is a no-go. Many have already proposed these options before, and it simply doesn't work that way in a quality rendering chain.) Even then you will need dithering, because none of the rendering stages (including these particular matrix multiplications for handling limited-range formats) except for the last rendering stage will output intgers.
Quindi il dithering e' necessario e tanto maggiore e' la precisione con cui viene fatta la conversione a RGB tanto maggiore e' la qualita finale.
Non solo, con una scheda video buona nelle ultime versioni di Madvr (il miglior render esistente) puoi usare il dithering per diffusion, e con anche chroma noise.
E la qualita e' massima.