LWN.net Logo

16 bits should be enough for anybody?

16 bits should be enough for anybody?

Posted May 17, 2012 10:48 UTC (Thu) by epa (subscriber, #39769)
Parent article: LGM: GIMP's new release, new über-core, and future

16 bits per channel is a great improvement over 8, and will allow natively handling images from digital cameras. (The best digital cameras have up to 14 bits of dynamic range.) But still it doesn't have the headroom for handling high dynamic range (HDR) images where there may be more than 16 powers-of-two difference between the darkest and lightest areas.

Is it a simple matter of changing one typedef to rebuild GEGL and GIMP with 32 bits per channel?

Alternatively, to give almost unlimited dynamic range, why not use floats or doubles?


(Log in to post comments)

16 bits should be enough for anybody?

Posted May 17, 2012 11:25 UTC (Thu) by boudewijn (subscriber, #14185) [Link]

Using typedefs and forcing rebuilds would, of course, be incredibly stupid -- it's what imagemagick does/did to get 16 bit/channel support a decade or more ago.

Instead, in the current git master of gimp you can simply go to a menu and select 32 bit integer or floating point/channel. See http://libregraphicsworld.org/blog/entry/gimp-2.8-release....

Not that providing 32 bits floating point/channel is really something new or special. Krita had 32 bits floating point/channel in version 1.5, released six years ago.

16 bits should be enough for anybody?

Posted May 17, 2012 16:31 UTC (Thu) by epa (subscriber, #39769) [Link]

Awesome! And yes I know Krita has had this for a while.

16 bits should be enough for anybody?

Posted May 17, 2012 12:06 UTC (Thu) by jonnor (guest, #76768) [Link]

Most operations in GEGL operate natively on 32bit floats. By using Babl they will transparently handle buffers with other pixel formats as well, or can operate directly on other formats.

16 bits should be enough for anybody?

Posted May 17, 2012 16:35 UTC (Thu) by alankila (subscriber, #47141) [Link]

Note that your comment assumes that the 16-bit representation is a linear function of brightness, that is, value such as 12223 will be exactly 12223 times as bright as 1. This would not be true for your typical 8 bits per component pixel formats, although it might be true for 16 bits per component pixel format. (Is it? I don't know.)

This article does not mention gamma at all, but as far as I understand, the 32-bit floating point per component operates in linear light mode. This is imho a huge improvement.

16 bits should be enough for anybody?

Posted May 17, 2012 19:41 UTC (Thu) by rgmoore (✭ supporter ✭, #75) [Link]

Note that your comment assumes that the 16-bit representation is a linear function of brightness, that is, value such as 12223 will be exactly 12223 times as bright as 1. This would not be true for your typical 8 bits per component pixel formats, although it might be true for 16 bits per component pixel format. (Is it? I don't know.)

For digital cameras that have high bit depth formats, it usually is. As you suggest, typical 8 bit formats (like JPEG) use a gamma to compress the dynamic range of the camera into the 8 bit per channel format. The higher bit depth formats from digital cameras are usually reserved for raw image formats, which means they're pretty much straight off the ADC and consequently are linear. As far as I can tell, no contemporary camera actually has 16 bits of linear dynamic range, even using a very generous definition of the noise floor. Most of them don't even bother with 16 bit ADCs because they'd just be reading extra noise; 14 bits is still considered a relatively high-end feature.

16 bits should be enough for anybody?

Posted May 18, 2012 9:03 UTC (Fri) by alankila (subscriber, #47141) [Link]

All you say sounds plausible to me. It's a pity that real scenes may easily have contrast ratios in excess of 1:10000, as that implies that a single snapshot will not capture them properly any time soon.

16 bits should be enough for anybody?

Posted May 19, 2012 20:14 UTC (Sat) by rvfh (subscriber, #31018) [Link]

At the same time, I'm not sure our eye does better than that, so we may be asking a lot from ADCs when expecting to see all details in a high-contrast scene.

Bracketing

Posted May 22, 2012 1:43 UTC (Tue) by gmatht (guest, #58961) [Link]

Good auto exposure bracketing can give over 16bits of depth in something that behaves somewhat like a single snapshot. If there were cameras that could take a 1/4000 shot immediately prior to a 1/40 shot we'd get several extra bits essentially for free; unfortunately cameras tend to put 0.1s or more between burst shots, making this less useful for moving objects.

Bracketing

Posted May 22, 2012 9:14 UTC (Tue) by etienne (subscriber, #25256) [Link]

> If there were cameras that ... wide dynamic range

My oldish Sanyo HD2000 camera has a mode to do that automatically; obviously that mode disable flash and gives bad result when the subject moves extremely fast [so can be disabled] but in some cases result is impressive, without post-treatment needed.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds