What are Jittering and Dithering

Started by
2 comments, last by LorenzoGatti 7 years, 2 months ago

Hi there,

I've heard a lot about jittering and dithering but I would like to know more about thise techniques. Here are some general questions that might also be useful to others :)

  • What are the differences between both ?
  • When are they used the most ?
  • What's the best way to implement them, any algorithm example ?
  • Can we combine them ?

Thanks a lot !

Advertisement
Jittering is a vague term, generally meaning to change a value randomly or according to a pattern.

e.g. when sampling a shadow map, it's common to "jitter the sample locations", meaning to apply a random (or pattern-based) offset to the texture coordinates. This creates a "noisy" edge to the shadows instead of a solid line, making them appear softer.

It can also be used to describe how a value behaves over time. e.g. if the frames per second counter moslt sits at 60fps, but occasionally jumps a bit lower/higer, you might say it's jittering.

Dithering typically is a technique to reduce the appearance of colour banding that appears due to the quanization of colour to 8 bits.
You do this by jittering the colour values (either randomly or according to a pattern) :)
e.g. by adding a random value from -0.5/255 to +0.5/255, then the border from one colour to the next within a gradient will be fuzzy instead of a solid line. This helps the eye see it as a continuous gradient instead of a series of steps from one colour to the next.

(anyone who says that 24bits / 16777216 colours is enough to fool the human eye is very wrong)

Thanks for the answer @Hodgman ! :)

We talk very much about blue noise those days, this noise type can be used to jitter samples locations, right ? Are there other general and efficient jittering technics (ie : Poisson sampling) or does this depends on the situation.

Are there some very efficient dithering patterns ?

There is an important difference between the two types of intentional noise: jittered sample locations are meant to be misaligned with any pattern in the sampled data, so that the average of the sampled values is a good lowpass filter without inappropriate bumps in the frequency response; dithered sample values are meant to approximate an intermediate true value that cannot be represented exactly with the average of multiple samples, thanks to a procedure that rounds sampled values up or down with the appropriate probability.

Omae Wa Mou Shindeiru

This topic is closed to new replies.

Advertisement