DCP profiles and tone curves - DXO renders matrix only DCP profiles with the adobe tone curve

Hello all

I am a fan of Photolab 6’s “Generic renderings neutral color” rendering but I like to use calibrated DCP profiles. Ideally, I would like to combine the default tone curve used by “Generic renderings neutral color” with the colours from a calibrated DCP profile and am seeking input on whether this is possible or if the idea is misconceived. To be clear, I am not talking about the tone curve tool, I am talking about the “hidden” tone curve applied by whatever Color Rendering is selected.

DCP profile’s tone curves
DCP profiles created from things like color checker targets can have embedded tone curves and LUTs, or they can be simple “matrix only profiles”. For example, the color checker software creates a “matrix only” profile (example at the end).

DXO applies the adobe tone curve to DCPs
A simple “matrix only” profile lacking an embedded tone curve when applied to a RAW in adobe products renders that RAW using the Adobe Camera Raw (ACR) default tone curve. This makes sense, the ACR default tone curve is adobe’s default curve, the DCP doesn’t specify one, so it applies the default.

The weird and interesting thing is that a simple “matrix only” profile used in DXO Photolab also renders the RAW with the ACR default tone curve (or if not exactly the same, then a very similar one). Perhaps this is part of the DCP specification, or it is done to maintain absolutely consistency across raw converters, I don’t know.

A DCP profile which does include a tone curve when applied to a RAW in DXO Photolab renders the RAW using the embedded tone curve.

In any event, the ACR curve is quite different to most of DXO’s tone curves and certainly different to the tone curve used by “Generic renderings neutral color”.

DCP rendering in DXO but with DXO tone curves?
What I would love to achieve, is to find a way or have an option to use the colour matrix from a simple matrix only DCP profile but to use the default tone curve that DXO uses to render a RAW with the “Generic renderings neutral color” color rendering.

With adobe products you can just go and copy the tone curve out of any of their camera matching profiles and paste that curve into your DCP, but DXO hides its profiles (color renderings).

Does anyone know if there’s a way to do this or is it an impossible goal?

Example of a simple matrix only profile
{
“UniqueCameraModel”: “Canon EOS M6 Mark II”,
“ProfileName”: “20230809 ColorChecker DXO DNG Cloudy Incandescent”,
“ProfileEmbedPolicy”: “Allow copying”,
“CalibrationIlluminant1”: “StdA”,
“CalibrationIlluminant2”: “D65”,
“ColorMatrix1”: [
[ 1.107800, -0.541500, 0.070700 ],
[ -0.370300, 0.972300, 0.466300 ],
[ -0.068900, 0.144300, 0.551900 ]
],
“ColorMatrix2”: [
[ 0.885600, -0.171300, -0.111600 ],
[ -0.466400, 1.226100, 0.271100 ],
[ -0.102200, 0.189800, 0.628900 ]
]
}

Sounds like you need some reverse engineering…or DxO.
But you can easily use dcp profiles you created or got from other apps or providers.

If you like hese kind of things, you can modify dcp profiles e.g. with Adobe’s profile editor or dcpTool.

DxO PL will always apply its own tone curve and you can’t override this with a curve in DCP profile ( for example with a pure linear curve 0.0, 0.0 : 1.0, 1.0 inside DCP profile … you can try to invest your time & effort into crafting a curve to embed in DCP profile to compensate what DxO does to achieve the desired result - but that will be akin to feeding pearls to pigs ) …not only that - DxO PL does not honor or follow conventions for some other tags inside DCP profile or vary how they applied between “Classic (Legacy)” and “Wide Gamut” modes …

you can extract any DxO PL6 curve using synthetic DNG files, however as noted above you will have hard time to craft the curve to embed in DCP that together with what PL6 applies will result in the curve that u want ( plus - I did not bother to check - there is no guarantee that both curves - DXO PL6 coded and from DCP profile - will be applied at the same stage in color transform - one by one or merged by DxO PL6 code - they might be separated by other steps which even in case of pure matrix profile will make your job more complicated )

NO, DxO will add its own tone curve to whatever you specify inside DCP camera profile

Yes, I suppose so.

Reverse engineering in the software sense would not even be necessary. I could instead photograph a grey patch exposure target under different lighting conditions, process it in DXO with “Generic renderings neutral color”, and then design a tone curve based on the levels in the processed images - but that is tedious and inexact.

I suppose, having worked through my thoughts, my real confusion is:

Why would DXO apply adobe’s (or an adobe-like) tone curve to matrix only DCP profiles, rather than using its own curves?

By way of contrast and just to describe what is possible, in RawTherapee after applying a DCP you can elect to use the tone curve embedded in the DCP (if there is one) or load and apply any other tone curve instead.

A bit like how in Photolab 5 (or classic color gamut) you can use “neutral colors neutral tonality v1/v2” or “neutral colors factory tonality” - same colors different tone curves.

I would love to see an option in DXO like “DCP profile neutral tonality” which could combine the colors from a typical matrix only profile with DXO’s tone curve.

That’s so interesting, I see entirely opposite results to this. I will post some examples soon to illustrate. As for extracting the tone curve from the synthetic DNG, I tried that but all I got was the ACR (adobe camera raw) default curve.

Here are examples with no corrections, edits, or anything other than the DCP profile or color rendering applied. The DCP is the matrix only DCP I posted above, no tone curve, but with the addition of:

“DefaultBlackRender”: “None”

Without the option specified, Lightroom automatically adjusts the blacks. In my experience, DXO ignores that option but also does not automatically adjust the blacks when a DCP is applied.

All sets include 3 examples processed as follows:

  1. Lightroom with DCP
  2. DXO with DCP
  3. DXO with “Generic renderings Neutral color”

There are clear if subtle differences in the tonality between the “Generic renderings Neutral color” images and the DCP, typically deeper blacks. There are also differences in colour, but these are less pronounced in these srgb processed images than in a wider gamut.

What’s most striking is that the DCP images from Lightroom and DXO are as far as I can tell identical. I do not remember ever seeing such similar images from two different RAW converters. So, DXO is applying a tone curve when processing with this matrix only DCP profile. But as far as I can tell it is the same one Lightroom is applying.

Set 1
LR DCP

DXO DCP

DXO Generic renderings Neutral colors

Set 2
LR DCP

DXO DCP

DXO Generic renderings Neutral colors

Set 3
LR DCP

DXO DCP

DXO Generic renderings Neutral colors

To the point of DXO applying a curve on top of the DCP’s curve, if the DCP specifies one, here is set 2 again with the same DCP, except I have added a tone curve. I will show the Lightroom and DXO output, again to my eyes these are identical. So I can’t see that DXO is adding its own curve on top of the DCP’s…

Set 2
LR DCP Curve

DXO DCP Curve

I think you miss the point - you extract the curve not FROM, but USING ( feed DNG to DxO PL and then work with output like TIFF )

The differences between “profiled” images from DPL and LrC are minimal indeed. Comparing the two images in Photoshop revealed minimal differences…when I cranked up amplification considerably. All in all, the images look identical. As is to be expected, the differences between profiled and a non-profiled output images is more pronounced.

So, what did we learn?

  • PhotoLab and Lightroom can produce very similar output.
  • PhotoLab and Lightroom can produce not very similar output.

Should we care?

We learned that yes though it wasn’t the main point. Do we care? Well, “we” I don’t know, but I do! :laughing:

Why, well, because there is no reason that I understand why PhotoLab and Lightroom should produce the same output from a matrix only DCP profile given that PhotoLab must apply a tone curve to such a profile. Why would it use the same tone curve as Lightroom? So what if it does? I don’t like Lightroom’s tone curve, I like PhotoLab’s “Generic renderings Neutral color” tone curve.

This thing of a DCP profile rendering with the adobe curve, as far as I know it is not innate to a DCP profile. As I mentioned, RawTherapee lets you choose which curve you want to use with a DCP profile, whether the DCP profile includes one or not.

Look, this is all pretty minor. I’m relatively happy with the curve I use in the DCP profile with curve examples I posted above. However, I find “Generic rendering Neutral colors” retains more highlights and crushes less blacks than the DCP curves and I usually like its contrast.

take a “greyscale” raw with patches covering all values, you will see something like in attached graph, using for example L* Lab values ( here illustrating L* range from 60 to 100) from exported TIFF ( orange = true linear curve, blue = what DxO PL does with linear curve )

does it affect “colors” a lot ? no - but is it linear ? NOT AT ALL … a bit pregnant = PREGNANT

to illustrate more clearly → difference (from tiff output, same raw as for the graph above) between rendering of the same DNG raw with the same DCP profile ( matrix with explicit linear curve in it ) between DxO PL6 and ACR 15.5 ( Y-Y from xyY = blue color and L*-L* from Lab = orange color )

where curves drop down it is where DxO PL6 clips what is not clipped in raw

absolute difference does NOT matter - what matters is the that the difference is VARIABLE - while a proper implementation shall have CONSTANT ( zero, if happens, is constant too ) difference ( accounting for example for hidden “expo”-corrections and stuff like this ) !!!

Imo, the main thing is to get the output one wants, no matter what tools we use…and I agree to that the generic/neutral settings provide very usable starting points.

@Mencius, let me be blunt. Are you creating images that have to be colour matched for catalogues or other precision commercial purposes?

Unless you are, you need to realise that absolutely integrity of coloration or tonality is totally irrelevant.

Just edit an image to give you the look and feel that pleases you, because, often, the original, especially mixed, lighting can give you all sorts of weird looks that might be “accurate” but definitely don’t make a good print.

How interesting, thank you for explaining it so clearly. I follow what you you were saying in your previous post now.

Unless you are, you need to realise that absolutely integrity of coloration or tonality is totally irrelevant … Just edit an image to give you the look and feel that pleases you

Absolutely, and always such a good point to keep in mind.

My questions and observations arise out of my pursuit of a pleasing result, grounded in reality but not striving for perfect accuracy. To that end, I am seeking to create a profile which gets me as close as possible when applied because I am a lazy editor and do not enjoy much image-by-image tweaking.

To sum up my original enquiry:
PhotoLab’s “Generic renderings Neutral color” produces pleasing tonality to my eye but I don’t always like the colours. My calibrated DCP profile produces pleasing colours to my eye, but I haven’t yet achieved the tonality I want. I’d like to combine the two but haven’t found a way.

Especially because the “Generic renderings Neutral colors” rendering sometimes deals better with highlights/shadows than my DCPs. Nor is it neutral! It has a lot of contrast, a nice amount to my eyes. For my camera it’s even very close to the camera jpeg output. Far closer than DXO’s camera profile for my model.

Overall, I guess it’s a feature suggestion for PhotoLab’s DCP handling. Allow using the colour matrix (and perhaps LUT) from the DCP but for everything else let the user make a selection eg “Generic renderings Neutral color”

@Mencius , have you tried other tools to tune both colour and tonality? You could probably get closer to your target style and save it as a preset.

DPL has about 50 tools to accommodate almost every need…but it takes some initial effort. One size fits all? Only if we’re elastic!

Yes and I have made some presets that get me really close. The tone curve I use in the tone curve DCP profile is nice enough too.

But “Generic renderings Neutral colors” does something with the highlight preservation that I can’t seem to replicate with the post-profile editing tools without ruining the mid-tones or overly muting the highlights.

How do you apply this setting? Through a built-in preset? DPL has a few “smart” tools that are part of DPL’s presets. Applying “1 - DxO Standard” and then “3 - Neutral Color”, I get the following:


(I’ve disabled the tools that play no part in order to fit relevant tools in the small screen)

Smart tools can interact with other tools, which can make adjusting a bit of a hassle…like in combining tone curve, smart lighting and selective tone settings, specially with selective tone’s range overlap, which has been discussed a lot here.

just curious = which specific camera model you are using ?

you can try to put some pure cosmetics ( if highlight clipping indication irritates you ) with ToneCurveMasterPoints = {0,0,1,0.996,} in some default full or a partial preset … I am not saying that is what you are trying to achieve, but may be it is - no harm to suggest ?

Partial preset might be just this text

Preset =
{
Settings =
{
Overrides = { ToneCurveMasterPoints = {0,0,1,0.996,}, },
},
}

Thanks for the suggestion, no none of the smart tools. Just the neutral colour setting applied with customised optical corrections (lens sharpness at 0 instead of 1).