[SOLVED] HDRI is now default for IM7 but not IM6 (still Q16)

Questions and postings pertaining to the development of ImageMagick, feature enhancements, and ImageMagick internals. ImageMagick source code and algorithms are discussed here. Usage questions which are too arcane for the normal user list should also be posted here.
NicolasRobidoux
Posts: 1944
Joined: 2010-08-28T11:16:00-07:00
Authentication code: 8675308
Location: Montreal, Canada

Re: Make HDRI the default

Post by NicolasRobidoux »

Another good reason to have IM6 remain 16 bit and IM7 be HDRI by default, is that package managers could include both, and then applications that use ImageMagick (libvips, nip2, modula4...) could link the version they need with the expectation that IM6 (convert...) is 16-bit, and IM7 (magick...) is HDRI.
Of course this could be overridden by the people who package distros (they can compile any ImageMagick with 8, 16 or HDRI), but I have the impression that this convention may be commonly adopted, because it's logical.
Alan Hadley
Posts: 48
Joined: 2010-03-31T12:17:55-07:00
Authentication code: 8675308

Re: Make HDRI the default

Post by Alan Hadley »

I am writing a Windows application which updates the screen in real time when doing certain tasks, e.g. painting on an image, moving sliders to alter brightness and moving a zoomed area around an image. At the moment this works well using 16 bit IM, although it does slow down when the displayed size of the image being updated is large.

I am wondering whether using an HDR IM will make things even slower. A little explanation of how my application works might make things clearer. SampleImage is used to get a low quality 8 bit version of the whole image for display. A box, which the user can move, is drawn on this image. The area of the image inside this box is then copied to a smaller image at full resolution. Finally this portion of the full image is scaled and converted to an 8 bit image for display by Windows.

Obviously there will be some slow down if I use an HDR IM, there will be twice as many bytes of data to process to get my 8 bit images for display, but there will also be the convertion from float to int which may slow things down further. If this slowdown is significant I would prefer keeping 16 bits as the default size.

You may say why not use a 16 bit version of IM regardless of the default, but I was hoping that my program would be of use to the general IM user, e.g. to design Bezier shapes, produce the coordinates for distorts, make MVG strings, design CLUTS and many more. These could then be used either in the program or transferred to an IM script for use on the command line etc.

Alan Hadley
User avatar
magick
Site Admin
Posts: 11064
Joined: 2003-05-31T11:32:55-07:00

Re: Make HDRI the default

Post by magick »

ImageMagick version 7 enables high dynamic range imaging (HDRI) by default. HDRI accurately represents the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows. In addition, image processing results are more accurate. The disadvantage is it requires more memory and may result in slower processing times. To disable HDRI, simply add --disable-hdri to the configure script command line when building ImageMagick. Under Windows, comment out this line:
  • #define MAGICKCORE_HDRI_SUPPORT
in magick-config.h
Post Reply