[ACTION NEEDED] Darktable support for Nikon Cameras

To improve the Nikon camera support in darktable, the team needs your help. Please see

https://www.mail-archive.com/darktable-dev@lists.darktable.org/msg01277.html

The full text of the email from Roman is here:

If you’re able to help out, see the end of his message on generating samples that can help!

Hi all.

This mail is primarily targeted to all the owners of Nikon cameras.

As you may have seen, an issue with white level for some
nikon cameras (or so i thought) was discovered by me:
Re: [darktable-dev] Nikon 1 V1

In the meantime i have adjusted white levels for all the cameras i
could find samples for.
But unfortunately, for some cameras i was unable to find samples.

Below, you will find a list of all the cameras for which i need samples.

IMPORTANT: if you see your camera in that list, it is imperative for
you to provide
a sample set, or else your camera will not be supported in next
darktable release!

NIKON COOLPIX P6000
NIKON COOLPIX P7000
NIKON COOLPIX P7100
NIKON CORPORATION COOLPIX A
NIKON CORPORATION NIKON 1 AW1
NIKON CORPORATION NIKON 1 J4
NIKON CORPORATION NIKON 1 S2
NIKON CORPORATION NIKON D1
NIKON CORPORATION NIKON D100
NIKON CORPORATION NIKON D1H
NIKON CORPORATION NIKON D1X
NIKON CORPORATION NIKON D3
NIKON CORPORATION NIKON D3100
NIKON CORPORATION NIKON D3S
NIKON CORPORATION NIKON D3X
NIKON CORPORATION NIKON D5
NIKON CORPORATION NIKON D5100
NIKON CORPORATION NIKON D5200
NIKON CORPORATION NIKON D70
NIKON CORPORATION NIKON D700
NIKON CORPORATION NIKON D70s
NIKON CORPORATION NIKON Df
NIKON E5400
NIKON E5700
NIKON E8400
NIKON E8800

(that is an auto-generated list, fresh version of the list can be
acquired by running
darktable/tools/rawspeed-check-nikon-modes.rb at master · darktable-org/darktable · GitHub)

Now, which samples do i need?

Each nikon camera has several settings:

  1. Raw file bitness; can be 14bit and 12bit, not all cameras have that setting.
  2. Raw file compression; can be compressed, losslessly compressed and
    uncompressed. not all cameras have every option.

I need one sample per each combination.
I.e. for different cameras that can be from just one sample, up to 6
samples on the newest cameras.

Content of the sample does not matter, you could even put body cap on.

After taking samples, head to https://redmine.darktable.org/issues
check that the samples for that camera was not already provided,
open new issue
https://redmine.darktable.org/projects/darktable/issues/new
Tracker = “Camera support”
Subject = “{Camera maker} {Camera model} raw support”

And attach samples.
If you can not attach samples (e.g. filesize), upload them somewhere,
and attach a link to samples.

(Also, it is a very good idea to also check whether rawsamples.ch has
sample for your camera, and send them samples too)

Roman.


For some of the mentioned cameras you can find white levels here. These levels are for the max bit depth supported by the camera (e.g. Nikon 1 V 3 supports only 12 bit => white level is for 12 bit, D3400 supports 14-bit => white level is for 14 bit). To adapt 14-bit NEF white levels for 12-bit NEF scale.

Hi, I’d gladly help for the case of the D3s, but as @heckflosse mentioned above, the result is already in camconst.json. If you’d like the raw files that ended up in those figures, please say so and I’ll try to dig them up again (I don’t have the D3s anymore, sadly).
BR,
Johan

@darix @heckflosse this actually shows the limits of our current approach to RAW decoding: we have RT with a camconst.json database and DT with a cameras.XML database.

The two files hve a different format but a conceptually very similar content… but the two projects don’t seem to talk to each other, and our limited resources are partly used to redo existing work (like extracting RAW levels for some cameras)…

Am I too pessimistic, or overlooking something? Or should we really try to put this knowledge in common?

I’m not against a common ‘knowledge base’ which can be used by both projects.
But there are some things we have to solve:

  1. Though the content of camconst.json and cameras.xml is very similar, it’s not the same content. For example camconst.json allows white level scaling by aperture while cameras.xml does not. Maybe cameras.xml has some features camconst.json does not support
    That means a common knowledge base has to be a superset of both.

  2. Currently neither rt (I know that for rt) nor dt (I guess that for dt) have the time to change their code to read a different format for camera constants
    That means a common knowledge base needs a tool to generate camconst.json and cameras.xml

  3. Most important. The values in the common knowledge base have to be accepted by rt and dt to be the one and only correct values. That’s the most difficult thing I guess. And if this rule is violated the whole common knowledge base about camera constants will be a stillborn child.

Ingo

Are we at least centralizing and sharing a collection of raw images?

No, we do not. But that’s a good idea too!

There’s a small collection of raw files we use for rt issues, but they are not made to determine white or black levels or other camera constants. They’re just there to have a common base of raw files among rt devs to test and reproduce issues.

We have been pointing people to https://rawsamples.ch/ for years.

1 Like

Ah that looks like a good project!

A post was split to a new topic: Canon EOS M5 support in darktable