Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • Surely dithering is good enough to display 10-bit colour on a non-10-bit monitor with good colour.

    The banding disappears and the noise introduced by dithering should hide the lack of depth completely to human eyes.

    So a modern use for graphical dithering. And I'm sure there's more. It's not all for retro art.

  • Interesting topic. I appreciate the effort that went into this, there are some good animations.

    But I find this kind of presentation much harder to read than a classic blog post. It's difficult to skim through the text to see how far it goes (and the article structure is not apparent); instead, I was kind of forced to read the text sentence by sentence (since I was familiar with the topic, I wanted to skip over the basics).

  • Good lord this is a beautiful web experience
  • Beautiful demo, but I’m not sure it’s accurate to call dithering an “illusion” of more shades than is available?

    If you apply a low pass filter to a dithered image, and compare it to a low passed filtered thresholded, you’ll see that the “illusory” shades are really there in the dithered version, they’re just represented differently in the full resolution image.

    Similarly, a class D amplifier emits purely off/on pulses before a low pass filter is applied, but no one would call the output an auditory “illusion”. In the case of image dithering, isn’t the low pass filter your own vision + the distance to the screen?

  • I used different types of dithering (ordered, error diffusion) in many of my design projects as a visual language, static or animated, mostly for projects related to tech/computers/blockchain, sometimes combined with ASCII art.

    There is a certain warmth (or maybe it’s just nostalgia) of these older techniques that can be harvested and combined with new ideas or new takes.

    (Apologies for the Instagram links).

    D.Y.O.R.:

    https://www.instagram.com/p/DH1AjFzi3c6

    D.Y.O.R. (printed):

    https://www.instagram.com/p/Cjfzy23sCOg

    Titles:

    https://www.instagram.com/p/DHITpNYiWtF

    Experiment on controlling the amount of dithering:

    https://www.instagram.com/p/CYO_h9Yh18e/

    by agys
  • Very cool way to visualize it but I will be honest the threshold map doesn’t make sense. This didn’t seem to explain how to form the map, how to choose the threshold values, and so on. It showed grey pixels passing through white, black, and grey pixels and moved onto generalizing this pattern.

    Is this just me being dumb or the curse of knowledge where something is so obvious to the author that they don’t even bother explaining it?

  • Two videos from Daniel Shiffman's Coding Train:

    Turning Images into Dots: The Magic of Dithering https://www.youtube.com/watch?v=0L2n8Tg2FwI

    Coding Challenge 181: Weighted Voronoi Stippling https://www.youtube.com/watch?v=Bxdt6T_1qgc

  • This is halftone (i.e., an apparent palette with more colors than the actual palette, by ensuring that you aren't just rounding the same way everywhere) but it isn't dithering in my opinion. To me, dithering means fading away the banding that occurs when the palette (or the apparent palette achieved via halftone) isn't large enough to avoid banding on its own.

    The halftone technique demonstrated here takes a palette of 2 colors and increases it to something on the order of 20 apparent colors, but even with 20 there are extremely obvious bands.

    That banding can be virtually eliminated by having way more colors (say, 256 if grayscale, 256^3 if RGB) or it can be virtually eliminated via dithering. I suspect the "error diffusion" technique (which is teased at the end of this demo) does what I'm talking about.

    Noise is the key to dithering, and I don't see any noise in this demo. Everything is deterministic.

    But the presentation is spectacular!

Explore Birbla archives