How to generate 16 bit linear, gamma=1, output files?

I’d say better only from the standpoint of being V2. I know Elle “scooched” the primaries of her profiles a bit to accommodate a rounding/truncation error she believed exists in the math, but I really don’t think you’ll notice a material difference in hue…

Thanks for clarifying …I fully understand it as you explain it but not as to how it comes across in the documentation…so it would be passed to the screen as linear but in the end encoded as dictated by the gamma of the output profile?? How would this get linear data to GIMP and photoshop as it appears to be given as a use case for that function??

You would have to have the other software assume a different profile for such files. It’s easy to do, but very counter-intuitive imo.

Actually, the display profile will inflict it’s own departure from linearity, with its TRC. All of this filmic/log/sigmoid/basecurve shenanigans is between linear and that…

@Thanatomanic ICC profle inspector show that my new profile is ProPhoto and gamma=1 (curves are linear). However ICC profle inspector is Windows only.

Is there a Linux alternative? iccdump from Argyl does not support icc-v4.

Exiftool on icc-profile or extracted icc does not show gamma directly. Instead exiftool -icc_profile:* gives me: ‘Red Tone Reproduction Curve : (Binary data 16 bytes, use -b option to extract)’, etc.

Edit: But how to interpret -b data?

Yer not gonna like this… :crazy_face:

I dumped a RedTRC tag from the LargeRGB-elle-V2-g10.icc file like this:

exiftool -b -RedTRC LargeRGB-elle-V2-g10.icc > foo.bin

Then, inspected foo.bin with hexdump like this:

$ hexdump -C foo.bin 
00000000  63 75 72 76 00 00 00 00  00 00 00 01 01 00        |curv..........|
0000000e

Here’s the extract from the ICC spec regarding the format of the tag value:


6.5.2 curveType
The curveType contains a 4 byte count value and a one-dimensional table of 2 byte values. The byte stream is given below:

Byte Offset Offset Content Encoded as...
0-3 ‘curv' ‘(63726469h) type descriptor
4-7 reserved, must be set to 0
8-11 count value specifying number of entries that follow uInt32Number
12-end actual curve values starting with the zeroth entry and ending with the entry count-1. uInt16Number[]

Unless otherwise specified (see clauses 6.4.5: “blueTRCTag”, 6.4.16:
“grayTRCTag”, 6.4.18: “greenTRCTag”, and 6.4.37: “redTRCTag”) these 16 bit
unsigned integers in the range 0 to 65535 linearly map to curve values in the
interval [0.0, 1.0].

So, 8-11 are a 32-bit value, 1, indicates the curve is one 16-bit value in length, and 12-13 are a single u8fFixed8Number, a a fixed unsigned 2 byte/16 bit quantity which has 8 fractional bits (ha, wrap your head around that), with ‘01 00’ being the number 1.

THAT’s gamma = 1.0…

1 Like

I’m seeing even @Thanatomanic recommending Elle’s profiles over ones generated using RT’s icc profile generator

Is the icc profile generator built into RT (NOT the Abstract Profile which is not what I was suggesting) that broken?

I’ve used Elle’s code, but only because I found that modifying it it was the easiest way to generate ICC profiles with alternate/nonstandard transfer functions and gamuts. (Sony S-Log2/3, Panasonic V-Log, Sony S-Gamut, etc)

My current preferred ICC profile dumper is “iccDumpProfile.exe”. It comes with various other programs such as IccToXml and IccFromXml. I forget where I got it from. Possibly http://sampleicc.sourceforge.net/

For example:

iccDumpProfile.exe %ICCPROF%\LargeRGB-elle-V4-g10.icc ALL

One part of the text output is:

Contents of redTRCTag tag ('rTRC' = 72545243)
Type:   parametricCurveType
FunctionType: 0000h
Y = X ^ 1.0000

I have no opinion on whether Elle’s profiles are better or worse than others, in general.

@Entropy512 Elle has an explanation somewhere on her website with an ODT file showing annotated calculations. At one point, I asked @jdc (RT dev) about the differences between the transform matrices. If I recall correctly, he implied that he carried over the decimals, whereas Elle considered the encoding while maintaining her well-behaved colour profile criteria.

I said it is the simplest option, not the only better one :wink: It’s perfectly fine to generate a profile using RT’s ICC creator. It’s just a little more work.

If a user already has RT, I’d consider anything that requires doing something outside of the application (such as grabbing Elle’s profiles) to be more work…

I get what you’re saying, but I’ve found the work it took to get them to be well-worth the effort. It was those profiles that taught me the independence of their color and tone transforms; I used to wonder why folk were complaining about ‘sRGB’ in regard to tone transformation, because I had a set of sRGB profiles that included one with ‘g=1.0’, which is really an ‘identity transform’ that is, doesn’t change the data. i use them as working and output profiles (heck, sRGB-elle-V4-srgbtrc.icc is the display profile on my tablet, too lazy to make a calibrated profile…) in a variety of situations.

A very valuable asset.

ICC Profile creator, allows you to create a variety of ICC profiles on demand

You can choose :

  • Primaries : ACES AP0, ACES AP1, AdobeRGB, Prophoto, Rec2020, sRGB, Widegamut, BestRGB, BetaRGB, BruceRGB, Custom

  • Tone Response Curve : linear (gamma = 1), standard g=2.2, standard g=1.8, BT709 (gamma=2.2 slope=4.5) , sRGB (gamma=2.4 slope=12.92), Lab,…, Custom (gamma, slope)

  • Illuminant : D41, D50, D55, D60, D65, D80, stdA 2856K

  • ICC Version ; ICCv4 , ICCv2

  • Your description

  • You can save in the folder of your choice.

https://rawpedia.rawtherapee.com/ICC_Profile_Creator

@afre : I think the differences with Elle Stone’s profiles are zero or minimal, obviously for the same primaries, TRC, etc.

Jacques

1 Like

Yes, at least not enough to make much of a difference. Of course, people are free to arrive at their own conclusions. After all, it is open-source. :stuck_out_tongue:

@snibgo, thank you.

iccDumpProfile from http://sampleicc.sourceforge.net/ works perfectly and ‘ALL’ gives a clear analytical expression of the curve.

./iccDumpProfile RTv4_Large.icc ALL

displays this for the RT included RTv4_Large.icc:

Contents of redTRCTag tag ('rTRC' = 72545243)
Type:   parametricCurveType
FunctionType: 0004h
Y = 0.077393 * X + 0.0000  when (X < 0.0393)
Y = (0.9479 * X + 0.0521) ^ 2.4000 + 0.0000  when (X >= 0.0393)

and my linear ProPhoto (RTv4_Large), from RT ICC Profile Creator:

./iccDumpProfile RTv4_Large_Linear_g=1.0.icc ALL

Contents of redTRCTag tag ('rTRC' = 72545243)
Type:   parametricCurveType
FunctionType: 0000h
Y = X ^ 1.0000

@ggbutcher, than you for the explanation. It is always the best to read the specification. Now, when I know it, I can run iccDumpProfile and actually understand what it does.

1 Like

I can only add it to the input profiles can`t seem to ad it to the output profiles,
How whould i do that ?

I store my output profiles in:
“home”/programs/rawtherapee/iccprofiles/output

It seems output profiles are also picked up from
“home”/.config/RawTherapee5-dev/profiles

then RawTherapee Color-tab |’ output profile’, show me the output profiles.

I am on Debian Linux, but my case is not Debian package standard, since I build from source with:
-DCACHE_NAME_SUFFIX=“5-dev”
-DBUNDLE_BASE_INSTALL_DIR="$HOME/programs/rawtherapee"

Edit:
Color Management addon - RawPedia states:
'They must be installed in the RawTherapee “Iccprofiles/output” folder or in \windows\system32\spool\drivers\color for Windows and /usr/share/color/icc for the other systems. ’

Another way to find the path(s) is to do a system wide search for existing files. I tend to be forgetful and that is the quickest method for me to double check.

AFAIK that’s not entirely correct.

Once you have found, created, or downloaded your desired output profile, you only have to put it in the folder set in your Preferences.

Obiously there are default locations for color profiles, but we are not talking about standard/default profiles here, so the most convenient way to manage your custom profiles is locating them wherever you see fit. AKA the folder specified in the Directory containing color profiles setting.

And if I’m not wrong, all profiles placed in that folder will be shown in both the input and output profiles comboboxes, but no profile will be shown from any subfolder inside that one.

In my very personal opinion, there’s a much better explanation about color management in the Spanish RawPedia Color Management page, where everything is explained step by step and in a much simple way. However, it is indeed a bit outdated (I can think about where to find Nikon profiles, or a few nonworking links, for example) and there are a lot of technical terms everywhere, so I’m not really sure how online translators will work here…