Page MenuHome

ColorManagement: Dithering Improvement
ClosedPublic

Authored by Clément Foucault (fclem) on Fri, Feb 14, 4:23 PM.

Details

Summary
  • Unlock property range.
  • Use triangular noise to reduce overall noise. Remap range to preserve perceptual intensity.
  • Center noise distribution around 0 for GPU implementation because of rounding.
  • Do dithering after merging overlays.

Effect of using triangular noise is not really noticeable if you don't use
really low bitdepth. But doing a test in the shader were we artificially
reduce the bitdepth (col = (col * 16) / 16;) reveals the real difference.

Diff Detail

Repository
rB Blender

Event Timeline

The implementation looks fine. Please add some comments in the code to explain where these algorithms come from, at least mention the name "triangular noise".

I do wonder a bit if it's worth the (probably small) performance impact if you need to make an artificial test case to see advantages. But you can judge that better than me.

This revision is now accepted and ready to land.Fri, Feb 14, 5:33 PM
This revision was automatically updated to reflect the committed changes.