Any interest in a "film negative" feature in RT ?

So after a few years I’m finally getting through the process of digitizing my negatives. The tool is working really well in my process (individual monochromatic-backlit captures for R, G, and B as discussed in Digitizing film using DSLR and RGB LED lights , with a color profile for film that is derived from SSF data as I describe in Anyone have SSF Data for the A7III? - #13 by Entropy512

Results are incredible for brightly lit pictures, but extremely poor for dimly lit pictures due to the black point offset.

Complicating this discussion is the fact that the UI has changed - instead of picking a reference “black” and reference “white”, you now must pick two neutral points from the same image. Problematic if your reference “black” (e.g. the optical mask) is its own dedicated exposure.

I really think that a scenario where you cannot rely on the EC tool is a bad thing user interface wise.

Which formula? I see the formula for optical density in Photographic film - Wikipedia - but what I’m seeing in the code ( (1/v)^p = v^-p) is consistent with “so the transmission coefficient of the developed film is proportional to a power of the reciprocal of the brightness of the original exposure” with an improper assumption.

As to what that improper assumption is: Your code assumes that a value of 1 in the image data is a transmission coefficient of 1. It is not - it would only be valid IF the image were exposed and white balanced such that the orange mask of unexposed film were EXACTLY 1.0 - but it is not.

In reality, the raw data values of an unexposed but developed film area correspond to a transmission coefficient of 1. This will NOT have a raw value of 1!

Edit: Very rough proof of concept at Commits · Entropy512/RawTherapee · GitHub

EDIT 2: After some further analysis and thinking, I don’t think my rough proof of concept is really doing anything useful. It’s basically fighting against the exposure compensation after conversion. At least I learned a lot about adding GUI parameters to something in RT.

Here’s the problem. This is a comparison of the current simple model implemented in RT’s film negative tool vs. the published density curves of Fuji Superia X-Tra 400 from https://asset.fujifilm.com/master/emea/files/2020-10/9a958fdcc6bd1442a06f71e134b811f6/films_superia-xtra400_datasheet_01.pdf

Note that in this plot I’ve normalized the minimum density of the film (basically the color of the orange mask) assuming it’s been whitebalanced and scaled out of consideration by the scaling code I’ve added.

scene_vs_tcoeff

Look at the right side of the graph where the transmission coefficient is maximum/density is minimum - There’s significant nonlinearity here, and as a result, the simple model based solely on the Wikipedia formula (which Wikipedia themselves basically invalidate with the graphs to the right of that formula…) lifts the black levels by 4 EV!

You can compensate for this with a toe in a tone curve in the Exposure Compensation tool, but the problem is that ALL curves I’m aware of are applied after EC and after filmneg’s “output level” adjustment, meaning that if any of these are adjusted then the tone curve must be adjusted.

For consistency and ease of use, compensating for this curve needs to be done before any subsequent scaling.

2 Likes