Live data from Hacker News

Why do we need dithering?

typefully.com

41–50 of 115 posts

Re: Why do we need dithering?

#41
Dithering is still very common in rendering pipelines. 8 bits per channel is not enough to capture subtle gradients, and you’ll get tons of banding. Particularly in mostly monochrome gradients produced by light sources. So you render everything to a floating point buffer and apply dithering.

Unlike the examples in this post, this dithering is basically invisible at high resolutions, but it’s still very much in use.

Re: Why do we need dithering?

#42
Dithering is super useful in dark scenes in games and movies.

By adding random noise to the screen it makes bands of color with harsh transitions imperceptible, and the dithering itself also isn't perceptible.

I'm sure there are better approaches nowadays but in some of my game projects I've used the screen space dither approach used in Portal 2 that was detailed in this talk: https://media.steampowered.com/apps/valve/2015/Alex_Vlachos_...

It's only a 3 line function but the jump in visual quality in dark scenes was dramatic. It always makes me sad when I see streamed content or games with bad banding, because the fix is so simple and cheap!

One thing that's important to note is that it's a bit tricky to make dithering on / off comparisons because resizing a screenshot of a scene with dithering makes the dithering no longer work unless one pixel in the image ends up exactly corresponding to one pixel on your screen

Re: Why do we need dithering?

#43
post #25
post #22

Earlier quoted context omitted.

This also used to be a really common test image: https://en.wikipedia.org/wiki/Lenna But its apparently a cropped centerfold from Playboy

The original Lenna is controversial, but I'm delighted to share the "ethically sourced Lenna": https://mortenhannemose.github.io/lena/

What's the impetus behind replacing the image with something even sexier?

Re: Why do we need dithering?

#44
post #17

Also by the author: https://www.makingsoftware.com/ Recent discussions: Making Software - https://news.ycombinator.com/item?id=43678144 How does a screen work? - https://news.ycombinator.com/item?id=44550572 What is a color space? - https://news.ycombinator.com/item?id=45013154

I love the authors style!

Re: Why do we need dithering?

#47
post #30

Earlier quoted context omitted.

In most gradients, the transitions in R, G, and B are at different places.

True. Also, in most gradients, the full range of R G and B is not used. In rgb(50, 60, 70) to rgb(150, 130, 120), there are only 200 total transitions.

True!

Re: Why do we need dithering?

#48
post #22
post #15

This is going to be an odd comment, but I immediately recognised the parrot in the test images. It's the scarlet macaw from 2004 which is often used in many Wikipedia articles about colour graphics. I think this is the original, photographed and contributed by Adrian Pingstone: https://commons.wikimedia.org/wiki/File:Parrot.red.macaw.1.a... But this particular derivative is the one that appears most often in the Wiki…

This also used to be a really common test image: https://en.wikipedia.org/wiki/Lenna But its apparently a cropped centerfold from Playboy

It was shot by an actual Hooker, too.

Re: Why do we need dithering?

#49
Even though it looks less accurate, I prefer the look of the Ordered Bayer image. It looks artistically low-fi while the others look more like a highly compressed image to me. Considering we are able to just represent images with full colour today, the only reason I'd dither is for the aesthetic.

Re: Why do we need dithering?

#50
post #30

Earlier quoted context omitted.

In most gradients, the transitions in R, G, and B are at different places.

True. Also, in most gradients, the full range of R G and B is not used. In rgb(50, 60, 70) to rgb(150, 130, 120), there are only 200 total transitions.

In terms of color spaces, SRGB (the typical baseline default RGB of desktop computing) is quite naive and inefficient. Pretty much its only upsides are its conceptual and mathematical simplicity. There are much more efficient color spaces which use dynamic non-linear curves and are based on how the rods and cones in human eyes sense color.

The current hotness for wide color gamuts and High Dynamic Range is ICTCP (https://en.wikipedia.org/wiki/ICtCp) which is conceptually similar to (https://en.wikipedia.org/wiki/LMS_color_space).

Post reply on HN