camicc: converting Adobe's DCP profiles to ICC for darktable

First things first: this was AI-coded. I don’t have any understanding of the color science behind these DCP conversions (the README says as much). And, please, let’s not turn this thread into another AI debate.

Second: I made this to scratch my own itch. I know a lot of people here prefer editing without the camera’s rendering as a starting point. If that’s you, you can stop reading here :slight_smile:

For everyone else: GitHub - rafaelcgs10/camicc: camicc is a set of scripts for converting dcp camera profiles into icc for darktable · GitHub is a bunch of Python scripts that get Adobe’s camera profiles into darktable. It downloads the official DNG Converter from Adobe, extracts the camera profiles from the installer (no Wine, nothing actually gets installed), converts them to ICC and drops them into darktable’s profile folder. A few commands and you’re done. Works natively, with nix, or with docker.
Each DCP becomes two profiles, one with the tone curve baked in and one colors-only for the scene-referred workflow.

I also had the AI build a testing setup that renders raws through darktable with these profiles and compares them against Lightroom exports and out-of-camera JPEGs. Against Lightroom, the differences are minimal.

Feedback very welcome, especially from people who understand this domain better than I do.

My itch is scratched now, but I still plan to give this some more attention.

1 Like

Forgive my ignorance of what you have achieved, but am I understanding it correctly that you have created an input profile that replaces the ‘standard color matrix’ and this gives an out of camera JPG look? Or is it more involved than that. Could you share an example?
image

I did not create “an” input profile. I made something that generates input profiles for all supported cameras by Adobe. Those profiles are good approximations of what cameras produce as their SooC photos.

So it is not only for my camera. It is for every camera supported by Adobe.

You just set the input color profile to the one for your camera and change the white balance to the correct setting, and that is it (check the instructions in the README).

The repo has a few examples.

I don’t quite understand what the itch was. Wouldn’t it be better to calibrate against a colorchart in darktable? (also, are there colorchart shots in the repo?)

(Speaking of this sort of stuff, this is all a mystery to me. How does Adobe have this information? Did they license it from Canon? Surely, Canon’s own processing application should be the benchmark. How does darktable(libraw?) have it? Is it somewhat reverse engineered/user supplied like the lensfun data?)

I should have googled this myself. Darktable’s on github states that they “depend on samples and data provided by users, and reverse engineering by developers.”

The itch is that the SooC jpegs are hard to replicate in darktable.
This steals the work made by Adobe in order to approximate the SooC better than I could with the means I have.

and how is this part FOSS or even legal?

I am not redistributing anything copy righted procted material. The script just downloads the free (not as in FOSS) Adobe software, and extracts the data from it. It is FOSS because the bundle of scripts is under a FOSS license.

1 Like

“Steals” is probably the wrong word here.

2 Likes

My bad!

I think I get it. You must be on linux, so you can’t run Canon Digital Photo Professional or Adobe’s DNG Converter, and you’re not happy with how darktable handles colors in CR3.
(I don’t know whether Adobe’s DNG Converter’s license allows using their files like this.)

To be sure, you’d have to consult a lawyer: you may be producing a “derived work” from data to which Adobe has the rights.
That the scripts you use are FOSS is nice to know, but irrelevant.

The above is to the best of my knowledge, but I’m not a lawyer.

I’m pretty sure you can extract the dcp profile from a dng file which could be your own file.

DCPTool exists and a Mac version of it on the Apple store McGuffog&Company McGuffog&Company

Dcamprof and it’s commercial entity Lumariver extract and manipulate DCP files.

RT suggests install dng convertor and use the dcp files

The free adobe profile editor lets you extract the profile from a dng file and modify colors and curves and save them out to a new DCP profile.

And there are several other tools floating around…

I don’t think this goes beyond what these projects are doing

But maybe the devil is in the details somewhere.

I am not a lawyer. And I’m not familiar with copyright rules in all countries.

I think that the script it self is not illegal. The script is not a derivative work in itself. From what I saw, the script read a file from Adobe and converts it. So useless the conversion method is patented, the script itself is not a violation of copyright.

Also the script doesn’t distribute any copyrighted material.

But anything the scripts outputs is a violation of copyright. In the copyright law in my country I would be in violation the moment I distribute that. I am allowed to make a copy of a book purely for my own use, by own archive. Even a digital copy.

But the moment I distribute it (including to my own family member) it is a violation.

As a comparison: it is in principal not illegal to provide an explanation how to pick a lock. It is not illegal to practice at home how to pick a lock. It is even not allowed your own lock. But of course it is illegal to pick someone else’s lock without permission.

The only hard question left. If I use the extracted ICC profile just for myself and don’t distribute it. But if I then distribute an image that is processed with the assistance of that profile… is that image then a derived work, and thus a violation of copyright… I don’t think so, but not sure…

I am also not a lawyer, so I am open to hear arguments if i should take this down. The scripts just automate what other similar tools already do.

For example, GitHub - l0b0/dcp2icc: Convert DCP files to ICC · GitHub and GitHub - Beep6581/dcamprof: DCamProf is a free and open-source command line tool for making camera profiles, and performing tasks related to camera profiles and profiling. · GitHub are other dcp converters.

Rawtherapee has a tutorial on how to download the adobe dcp files and usem them: How to get LCP and DCP profiles - RawPedia . I imagine that Rawtherapee does some similar parsing and conversion of the DCP files, but in run time.

There are other similar things like ttf-mscorefonts-installer that download and install microsoft fonts on Linux.

3 Likes

So, if darktable would be able to use the dcp files as well we would be fine?

1 Like

Not sure where you’re from, but in the US its fine. Its also how a lot of Linux distros install nvidia drivers and such.

3 Likes

All open source raw editors (and probably some commercial ones) already use the Adobe D65 matrix which is extracted from DNG Converter. So far Adobe doesn’t seem to care. And as long as the resulting profiles aren’t distributed, they probably don’t care about this either.

2 Likes

I thought the main benefit of dcp’s was the ability to have dual illuminants, which ICC’s cannot do?

It looks like they could do a lot more with this next standard past v4 but maybe its dead in the water or still getting sorted…looks like it has a lot of cool features esp a spectral PCS…

1 Like