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

Designer HDR Training – 1million:1 Contrast


Recommended Posts

Hi~! I have been merrily making 16 bit slides for 2000:1, 48 Nit, 4K projection. Now I need more than 16bits will give; 300 nits and 300,000:1 Contrast Ratio. So, I am ready to dig into making HDR32 layouts – the real trick is to get down to 0.0001 into the black.

I can't find any training or even much in the way of suggestions for Designer HDR, only Photo HDR techniques that don't apply. I was hoping that the color pickers in Designer would magically allow me to type in 32-bit numbers like I could type 16-bit numbers in RGB16 mode.  

Has anyone written up a work-flow or made videos or got any breadcrumbs to clues? 

I'm thinking I could make something like this attached file but divide all the numbers by 100 or 1000. Obviously the floating point can hold that much precision, but how to I input it. And does working in the 2020 space set my white point correctly for D65? …how to I set my limit to 100 nits or 300 nits? [And what questions haven't I figured out yet?]

Thanks!  

Box_of_Grey_HDR32-bit_A1.afdesign

Link to comment
Share on other sites

You can always use adjustment layers to manipulate color values.

Levels allows to divide or multiply by factors up to 100 (based on 1% input accuracy), or add / subtract with same accuracy.

Most flexibility can be achieved by a procedural texture filter borrowed from Photo. This will allow you to set any color values by formulas, using any precision you need.

To my understanding, the documents do not set any absolute brightness in nits. They give a range from 0 to 1, in steps of 8/16 bit resolution or 32 bit floats. Maximum brightness depends on display capabilities.

HDR is limited to range 0 to 100 in Photo, thus limiting your dynamic range.

 

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

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

To create maximum dynamic range, use Photo and procedural texture filter RGB=x/300000 with document of 300000 px width.

You may need tricks to create files >256000px as this is a UI limit for creating new files. You can resize later to increase size, but Affinity may refuse to export based on (outdated) restrictions. 

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

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

Quote

You can always use adjustment layers to manipulate color values.

Levels allows to divide or multiply by factors up to 100 (based on 1% input accuracy), or add / subtract with same accuracy.

That is a simple start to my investigation! Thanks.

With this (attached), it appears that I can move 1% (1/100 or 0.01) over two decimal places to 0.01%. Which, I suppose is 0.0001 of the full white level? 100:0.0001 is 1,000:0.001 is 10,000:0.01 is 100,000:0.1 is 1,000,000:1? (Sorry to have to write this out - it seemed like this in my head, but I didn't believe it. Is there something wrong with this logic? Have I reached my million:one goal already? Seems too simple.  

My 5K 500 nit 2017 P3 non-HDR iMac screen is beyond its range very quickly, and I don't see how I can confirm – though rolling a color picker over the adjusted blocks gives different numbers than before, and rolling over the gradient on the right seems to be a calculated number that is somewhat right, even though it is grossly pixelated. Full white (top, left, which was 100r, g and b) now measures 100.00 while full 0 black/1% at the top of the gradient measures 0.01 -so there is more granularity, seemingly more than 100:1 and seemingly a calculated number totally ignoring what is shown on the screen.

I guess I will experiment with some outputs and see if that will prove the technique. Good start to the day. (I''m almost directly south of you in La Turbie, FR.)

As to the rest of your ideas, like "procedural texture filter borrowed from Photo", I'll have to research to experiment to figure out what that means. Again, thanks!

Box_of_Grey_HDR32-bit_less100_A1.afdesign

Link to comment
Share on other sites

To test out the limits of dynamic range, i created a simple test file:

  • gradient black to white
  • levels to boost whites by factor 10000 (0.01%) or 10^4
  • inverse levels to reduce by same factor

i duplicated these pairs (keeping them in correct sequence, all boosters down, all reducers on top) until the canvas blew out (except the pixels with almost black value on the left).

You can test yourself by activated the deactivated pair (those in the middle of layer stack)

According to wikipedia, FP32 largest number is in the range of 10^38, thus 9 to 10 boosters should reach/cross the limit of dynamic range.

 

 

 

 

fp32 dr tester.afphoto

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

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

Quote

To test out the limits of dynamic range, i created a simple test file:

Thanks. I think I understand this and have messed with it a bit. It will take me a while til I actually grok it. 

Quote

According to wikipedia, FP32 largest number is in the range of 10^38, thus 9 to 10 boosters should reach/cross the limit of dynamic range.

Since the human eye says 'no more' long before that (+8), it would seem to be enough. But the eye after it has been in the dark for a long enough time (adaptation, right?) can see well down to about -6. Equipment won't perform that well, on either end before blooming or fading to black. TV monitors can go higher than 1000 nits, so the number of whole digits needs to be no more than what can capture 9999 …this year. The same with right of the decimal. 5 places now, 6 later? Probably more for the space people and medical.

I have made some files to send to friends with filters at 10 and 1%, SVG, TIFF. I'll hopefully get some feedback that verifies the technique.   

 

Link to comment
Share on other sites

Nice work👍🏼
 

As mentioned earlier, you can automate the creation of that color tiles with Affinity Photo, and Procedural texture filters. This might be helpful in future projects, when going from B&W to colored charts.


I used this method to create a chart of all 2^24 RGB colors in 8 bit color channel depth.

 Have a look at the green channel, it shows tiles with steps from black to white (only rotated / mirrored).

To see only green channel in Designer, use a B&W adjustment with green contribution only. In Photo, it would be easier to use the channels panel.

The for formula can be adapted for your use case (e.g. swap x and y, use 1-c to rotate or invert axis).

 

all8bitcolors.afphoto

Edited by NotMyFault

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

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

Quote

I used this method to create a chart of all 2^24 RGB colors in 8 bit color channel depth.

Wow. Marvelous. 

Of course, without having a clue of what you really did, I modified the document in Designer (I have 0 experience with Photo) to be a full frame 4K cinema slide (4096 x 2160) in a 2020 gamut, and changed all the 256s into 4096 and 255s to 4095 …and now have one full screen beautiful tile. I guess I have to find the magic spot to tile it up all the variations. 

But still, wow!

Link to comment
Share on other sites

Ugh; Just realized that the original RGB16 in 2020 gamut design that I put into a 32bit 2020 gamut attempt has had its RGB numbers shifted before I started making 'filtered' versions. I thought I figured out how to start a new blank page then add the old bits. I have been successful with one set of drawings. Evidently not with the early attempt, so the attachment has been removed.   

Meanwhile, NotMyFault, I have watched and practiced with some basics of Procedural texture filters. Many thanks for the heads up and the design you created and sent. Still can't figure how to make it into the 32bit/P3 or 32bit/2020 gamut. Any clues would be appreciated.

Link to comment
Share on other sites

46 minutes ago, TestTools said:

Still can't figure how to make it into the 32bit/P3 or 32bit/2020 gamut. Any clues would be appreciated.

Good to hear about your progress 👍🏼
I would start with an RGB/32 doc in sRGB and than Document>Convert into the target color profile. 
The choice of available profiles may depend on OS platfrom.

On iPad, i have sRGB, ROMM, P3 as choices.

 

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

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

Your idea of starting blank with HDR32 in the IEC space it prefers, then changing does seem to work better than ripping all my hair out trying to get the programs to do it in one step. When I get the time, I will try to write a proper bug report about what incorrectly happens in the color transform. Even doing it in multiple steps has some incorrect color transform, though it only seems like small dithers of the calculated amounts. (For example, the original might have a calculated amount at started as 65535*.2*.99 which gave a grey number of 12976, (the first one calculated and the 2 others copy/pasted). But when put into HDR, the 3 RGB numbers will be 12,978, 12,975 12,977 – and this is consistently off on all 120 x 3 numbers that are in this particular diagram. 

Anyway, I didn't communicate correctly. When I said

Quote

Still can't figure how to make it into the 32bit/P3 or 32bit/2020 gamut. Any clues would be appreciated.

…, I meant that I was trying to make you 8bit, "chart of all 2^24 RGB colors" into a 32 bit version in 2020. Many times later, I think that maybe it is working, but I don't have a screen that will show it. What I did was replace all the 256 with 4096 and 253 with 4095 and the 16 with 128. That was what I was asking for clues for.

So much to learn. I have a 500 nit screen and my computer internals say 30-Bit Color (ARGB2101010), but the MAC OS 12.3.1 doesn't allow this to be HDR. Alas. ...and I haven't considered checking my iPad. 

Anyway, thanks again. I am currently trying to figure out why the .exr export from HDR32 in 2020 gives a 32 sRGB IEC61966-2.1 Linear and whether this is my mistake or just the way that it goes. So much to learn.

Link to comment
Share on other sites

This might help.

I strongly advise to search the forum for all post of James Ritson about EDR / HDR / EXR and read them very carefully.

https://forum.affinity.serif.com/index.php?/search/&q=Exr &quick=1&author=James Ritson&search_and_or=and&sortby=relevancy

 

EXR documents are a way of interchanging lossless information and allow unbounded, floating point precision for pixel values, making them ideal for storing HDR content but not particularly for visualising it. EXR files have no real concept of colour space, and are not tagged with colour profiles. The pixel values are usually encoded as linear scene-referred values, as opposed to gamma-corrected values in a particular colour space. This is why colour management solutions like OpenColorIO are typically employed when dealing with EXR files, to ensure accurate colour conversions between the linear values and the intended output space.

 

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

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

52 minutes ago, TestTools said:

I meant that I was trying to make you 8bit, "chart of all 2^24 RGB colors" into a 32 bit version in 2020

I tried and found principle obstacles. 
First, the accuracy of numeric formulas is not sufficient. I intentionally used RGB/16 to calculate a result for RGB/8 to avoid these conversion/rounding issues. Exporting the file as RGB/8 cuts off all the random noise starting at bit 8.

So what is you goal? If you want these „all 8 bit colors“ just in RGB/32, still only using the upper 8 bits, this is easy.

If you want more bits of color, it gets complicated as the formulas need to be adjusted to achieve numeric stability and avoid any rounding issues. But then you need to increase the document dimensions accordingly, requiring a more complex overhaul.

But in principle, you only need to multiply all color values by n/256, with n from 0 to 255, and add this to the original color chart.

so n tiles side by side, each 4096x4096, start with a copy, and put a PT filter on top with blend mode „add“ which calculates the delta.

 

 

 

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

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

Very interesting about the 'noisy bits'. 

Quote

So what is your goal?

My final product is eventually 12 bit TIFF in 2020 gamut that is eventually converted to X'Y'Z' numbers. The display is a 12 bit projector in 2020 or an 12 LED wall in 2020, both with up to 1,000,000:1 contrast ratio, starting at 100 nits and going into the 0.0001 region. (Or at least, that is what is advertised.)

My attempt is to create slides that – when shown in a dark room – which show where the change in black level is no longer discernible by the eye. …and other slides that show the change in white level until the change can't be noticed by the eye. 

…and create slides that can be reliably used by spectrometers and colorimeters. And, I would like to control the Delta between the boxes that can be seen. 

This was somewhat simple when creating slides for the standard that is 2000:1, from 48 nits to .024. and dividing 65,535 pixel values. Not so simple now. Too many unknowns until I understand it. I have watched some of the HDR/EDR videos, though I understand that there is one dealing with OpenColorIO that James Ritson did. I am searching for that. 

There is a 2nd similar requirement for 300 nits to 0,005 nits, also in the 2020 space. 

PS – Attached is the latest Box of Greys that open correctly in both Photo and Design in HDR32 / 2020.

PS2 - That is why I want to put your box of all colors into 12 bits 2020. I think it would look spectacular on a huge screen. 

PS3 - I have installed OpenColorIO and am also trying to learn how it can help. 

BoxOfGreys_HDR32_2020.afdesign

Link to comment
Share on other sites

2 hours ago, TestTools said:

until the change can't be noticed by the eye. 

You may have to make sure no one has had any tea or coffee as caffeine alters our eyes' visual perception of colour.

Mac Pro (Late 2013) Mac OS 12.7.4 
Affinity Designer 2.4.0 | Affinity Photo 2.4.0 | Affinity Publisher 2.4.0 | Beta versions as they appear.

I have never mastered color management, period, so I cannot help with that.

Link to comment
Share on other sites

3 hours ago, TestTools said:

OpenColorIO that James Ritson did. I am searching for that. 

https://www.jamesritson.co.uk/tutorials.html

iMac 27" 2019 Somona 14.3.1, iMac 27" Affinity Designer, Photo & Publisher V1 & V2, Adobe, Inkscape, Vectorstyler, Blender, C4D, Sketchup + more... XP-Pen Artist-22E, - iPad Pro 12.9  
B| (Please refrain from licking the screen while using this forum)

Affinity Help - Affinity Desktop Tutorials - Feedback - FAQ - most asked questions

Link to comment
Share on other sites

1 hour ago, Old Bruce said:

… as caffeine alters our eyes' visual perception of colour.

And if I do these right, then they can help people examining that tangent of science as well. Do you know anything in particular about that or have any interesting links? 

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.