High dynamic range image representation on low dynamic range displays using temporal dithering.

High dynamic range image representation on low dynamic range displays using temporal dithering.

Previous Entry Add to Memories Share this! Next Entry
I've been editing "High dynamic range imaging" on Wikipedia a lot lately.

I just made up the term "temporal dithering". It appears others have as well. It's obvious enough. I wonder why it hasn't been widely implemented.

For a long time (in computer years) there have generally been 16.8 million (224, 24 bits) colors which could be represented in pictures. Until a while ago you could only have 256 (28) colors displayed on a computer at once. You picked the 256 that best represended the image. If you used the closest color for every pixel you often got banding. Instead, often you would randomly (or using a pattern) pick from the closest two colors. This was called dithering. These days you generally get all 16.8 million colors at once. (I need more.)

"Temporal" means relating to time.

The range from the darkest black to the brightest white your monitor can display is called contrast ratio, or dynamic range. It is insignificant relative to the dynamic range of light perceivable by humans. Image capturing devices (cameras) have the same problem. In capturing, the problem can be resolved by capturing multiple images at different exposures - in one you blow out the highlights but get all the detail in the shadows, and in another you clip all the shadows but get all the details in the highlights. Then you merge them. But you still can't display the full range on a monitor without scaling the contrast down.

So why don't we do the reverse of the capturing process on monitors, and just display all those captures in rapid sequence?

The easiest method would be to make sure there is no duplication of detail between any two frames. If a frame represents detail in a given pixel, that pixel should be blown out or clipped (shadow) in every other frame. Then just flip through them randomly.

Random frame selection by pixel would probably be more fun.

Actually, I think I wanted to try this with dithering back when we could only display 256 colors at once, using a different random(ish) set of 256 colors each refresh.

Yeah it works. I set up gliv to flicker between memorial0062.png and memorial0067.png from http://www.debevec.org/Research/HDR/SourceImages/Memorial_SourceImages.zip and... it totally works. (gliv = hardware accelerated opengl image viewer, and I have a decent 3D card.)
Powered by LiveJournal.com