Jump to content
You must now use your email address to sign in [click for more info] ×

RGB/32 (HDR) exports differently compared to RGB/8 and RGB/16?


Recommended Posts

When I export the same image from Affinity Designer, there is a very clear difference in terms of brightness.

To test it, I created a simple black to white gradient.

image.png.80e6ce668af4ff56d370163bef16df0c.png

Using the three different Colour Formats (with the same Colour Profile: sRGB IEC61966-2.1 (Linear)) in the "Document Setup..." panel, I exported three images.

image.png.6e611e944e7e2394d638128ec2445f20.png

image.png.30b87c03da5e909e4514a21f16b56f3f.png

Here are RGB/8, RGB/16, and RGB/32 (HDR) respectively:

Untitled8.png.8946f25f29bd96f5d8e07b042d2acab6.png Untitled16.png.711315938bf1db4f3a386c650032c46f.png Untitled32.png.0f19e1c0024329700ec2c7396f09c1aa.png

Also here are the histograms for the three images, put through Affinity Photo:

image.png.a1dacdfde807902719c80054e324db01.png image.png.cad2eea36588b10868541a0eaee1b427.png image.png.36d7723343850f34383ccd5521948287.png

I am a self learning graphic designer so if this is intentional then I'm sorry, but shouldn't the images be virtually looking the same, save for the "banding" and the noises from PNG compression?

Link to comment
Share on other sites

  • Staff

Hi @vidu3k333,

Welcome to the Affinity Forums :)

I can confirm this is expected behaviour, as there is a significant difference between how 8 /16 bit 'Linear' images and 32bit 'Floating' images are processed and displayed.

From the Affinity Photo helpfile:

Quote

Affinity Photo has full support for 32-bit float editing, including import/export for OpenEXR and Radiance formats. Compared to 8-bit or 16-bit, 32-bit presents an unbounded colour space that can contain a vast amount of tonal information. This means the information can be modified to extremes without losing fidelity or accuracy. For example, highlight detail blown out by an adjustment or filter can be recovered even after successive operations.

Support is included for HDR (High Dynamic Range) or EDR (Extended Dynamic Range) compliant displays, enabling a much higher peak brightness to be dispayed on-screen. 

This is then covered further in the 32bit Preview helpfile:

Quote

HDR-compatible displays
For these displays, enabling HDR display support will switch the operating system into a mode whereby it will increase the backlight intensity and darken screen content—increasing the dynamic range available when rendering content in your 32-bit document.

A preferences option will automatically enable HDR display support when viewing 32-bit documents.

If you only have an SDR display, that does not support HDR, then it is expected for 32bit files to appear 'lighter' than expected.

You can find out more regarding 32Bit HDR here - 

https://www.hdrsoft.com/resources/dri.html

I hope this helps!

Link to comment
Share on other sites

56 minutes ago, Dan C said:

If you only have an SDR display, that does not support HDR, then it is expected for 32bit files to appear 'lighter' than expected.

Thank you for your help. My display doesn't support HDR so I guess it should have been expected to look strange if I were looking at unsupported images.

If that was the case, why does it affects the exports too? As I understand it, my screen can't handle it doesn't mean that the image should have a histogram like that, since it would only be affecting unsupported displays only, not the file itself.

Are there anyway to fix it? Must I have a manual curve/level adjustment every time I work with it?

 

Link to comment
Share on other sites

  • Staff

No problem at all :)

30 minutes ago, vidu3k333 said:

If that was the case, why does it affects the exports too? As I understand it, my screen can't handle it doesn't mean that the image should have a histogram like that, since it would only be affecting unsupported displays only, not the file itself.

When exporting to PNG, this only supports a bit depth of 16bit, so the 32bit values are 'clipped' to the maximum range of a PNG. Coupled with the fact your display is not displaying at 32bit to begin with, the difference in the third image is to be expected.

The histogram is correct, and will look considerably different to the 8/16 bit documents, due to how 'floating point' colour works, compared to linear interpretations.

This is all rather in-depth colour science that I'm not specifically trained on, but I'm happy to offer any advice I can - in all honesty if you are not using a HDR (high dynamic range) monitor, or do not have a specific HDR/OCIO workflow in mind, I would recommend steering clear of 32bit documents, and sticking to 16bit documents - as this will contain more colour information than you will need for SDR (standard dynamic range) images that you're editing/creating!

Link to comment
Share on other sites

To comment on a side issue:

PNG does not use lossy compression, and does not introduce noise. In contrast JPG has compression artifacts, but again no noise, but blocking or banding issues.

The noise is actually not noise, but dithering introduced by Affinity when using gradients, unfortunately no option to deactivate even in RGB/32 where it is useless and damaging. 

Mac mini M1 A2348

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

 

Link to comment
Share on other sites

7 hours ago, Dan C said:

The histogram is correct, and will look considerably different to the 8/16 bit documents, due to how 'floating point' colour works, compared to linear interpretations.

I see, that's something to be expected. Truth to be told I was only using RGB/32 to test out how it would look. I don't think I would use 32 anytime soon. 😅 Thank you for your help!

5 hours ago, NotMyFault said:

The noise is actually not noise, but dithering introduced by Affinity when using gradients, unfortunately no option to deactivate even in RGB/32 where it is useless and damaging.

That's strange. I would have assume that it's an attempt to make the gradient smoother but for it to appears on 32-bit floating point (which I read has theoretically infinite dynamic range) is unusual.

(Also seems like my understanding of PNG has been wrong for a long while then 😅)

Link to comment
Share on other sites

5 hours ago, vidu3k333 said:

I would have assume that it's an attempt to make the gradient smoother

It is the difference between visually smooth (human looks at it) and mathematically smooth (values change only by smallest amount, in one direction plus/minus). It has a good effect up to 8-12 bit color depth, then becomes less useful and the negative side effects are not bearable  any more.

Take a gradient and apply a posterize adjustment. It will smooth visually, but with side effect of dissolving the hard edge.

As you might want to keep the hard edge in certain cases (i do, to produce color tiles in defined steps) it is annoying.

There is a (dirty) trick to get it deactivated: add a layer fx, overlay, but set to 0 opacity. But this leads to rasterization when exporting.

play with the file and adjust the number of colors to compare what looks better.

One possible reason for Affinity to use this forced dithering: even in case your document is RGB/32, most displays even marketed specially for photo editing are 8 bit per color channel only. Only the best go up to 10/12 bit, and often only by dithering in the display. So cheap tricks everywhere. 😂. Good HDR capable displays support more, cheap don’t.

 

 

A7F106CC-B248-4165-9D27-33149B09719E.png

gradient dither posterize.afdesign

Mac mini M1 A2348

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.