Skip to main content
Participating Frequently
February 17, 2023
Open for Voting

P: - Add ISO and Exposure Time to the Noise Profile Tag implementation

  • February 17, 2023
  • 24 replies
  • 1856 views

Hello everyone,

 

I have a question (or a remark) about the "noise profile" tag that is expected to be found on .dng files.

For reminding, the noise in a raw picture can be approached by a Gaussian noise, whose variance scales linearly with the brightness. The noise profile tag therefore gives the slope and the intercept of this linear relation, for each color channel.

 

There are several methods to estimate these parameters, but I doubt that such an estimation is done everytime I take a raw picture with my smartphone. I suspect that the noise profile is estimated one time by the camera manufacter, and scaled according to the picture settings.

 

It is now fairly known that the slope scales linearly witht the ISO, and the intercept scales quadratically with the ISO, and such relationships can indeed be observed on the metadatas of pictures taken with different ISOs. 

Note that there is a first gap in Adobe's documentation, since there is no convention on the ISO for which the noise model is given. Many people refer to noise profile as the slope and intercept for ISO 100, whereas it seems in practice that the noise profile found in the EXIF is given for the ISO of the picture. Is this left to the control of camera producers, or is it controled by the dng requirement ? 

 

My second remark is about the exposure time. The intercept of the noise model is expected to scale linearly with the exposure time, and this can indeed be observed by manually estimating noise on raw images. However, the noise profile tag seems to be purely ISO dependant, and does not change slightly with the exposure, which is completely misleading.

 

This lead me to suspect that some camera manufacters obtain the noise profile tag by simply scaling a predefined noise profile using the ISO, WITHOUT considering the exposure time. Not only it is misleading, since the noise profile in incorrect, but the resulting tag cannot be manually scaled since the reference exposure of the noise profile is unknown !

 

This is why I believe the following points should be adressed in the dng specifications:

- For which ISO is the noise profile tag given

- For which exposure time is the noise profile given

 

I am aware that providing an accurate noise profile is hard, especially because many factors such as the temperature can have an impact. However, exposure time can vary a lot and significantly modify the intercept, and is very easily measurable.

 

I would be glad to hear yout thoughts on the matter, if you have any further information, please let me know.

24 replies

Participating Frequently
February 22, 2023

For image processing algorithms, reading the noise profile is a very efficient way to caracterise the noise without doing a costly noise estimation. This is very usefull for inboard algorithms. If the noise profile values are not properly defined regarding the ISO and exposure, the noise profile is very innacurate and cannot be used. For multi-exposure burst processing in particular (such as HDR), this is a real drawback.

Rikk Flohr_Photography
Community Manager
Community Manager
February 22, 2023

Using a little contextual noise reduction here but distilled to its essence you are asking for:

- For which ISO is the noise profile tag given

- For which exposure time is the noise profile given

Would you like me to conver this to a feature request for you?

Rikk Flohr: Adobe Photography Org
Participating Frequently
February 22, 2023

Yes absolutely, I think these two informations are completely necessary. They should either be contained within the tags, or conventions on the reference values should be added in the .dng specifications.

TheDigitalDog
Inspiring
February 22, 2023
quote

Yes absolutely, I think these two informations are completely necessary. 


By @Jamy28458089utfe

Necessary to accomplish what (in the feature request)? 

Author “Color Management for Photographers" & "Photoshop CC Color Management/pluralsight"
Participating Frequently
February 22, 2023

I am adding explainations to my original post, since it seemed to lack clarity.

 

Cameras are affected by both read noise and shot noise. The variance (or power) of noise is commonly expressed as : 

Where I is the pixel brightness (between 0 and 1).

 

By considering G the ISO gain, P the photon flux, t the exposure time and Qe the quantum efficieny, the brightness can be expressed as :

The read noise is often considered to be independant of brightness, ISO and exposure. The shot noise is modelled as a Poissonian noise on both photons and electrons, amplified. By calling D the dark current, this yields :

As a result, the total noise power is often considered to be following the law:

The noise power is therefore often considered to be growing linearly with the brightness, with a slope and intercept alpha and beta, dependant on the ISO, exposure and camera. Alpha and Beta are called "noise profile" and are expected to be found in one tag of the .dng files. They are not estimated from these equations but rather from noise estimation methods.

 

Do note that the noise power is not a good quantity to asses the "noisyness" of an image, but rather the signal to noise ratio (SNR):

 

Now that all this is cleared, my remark was the following :

From the equations, alpha and beta are expected to scale with the ISO gain, and when reading the tags, it is indeed the case.

However, beta is expected to scale with the exposure time too (because of the dark current), but the value in the tags does not. When performing my own noise estimation, it is indeed scaling as expected. I suspect that the tags where tabulated for different ISOs, but a single (unknown) exposure. What should be the convention of the .dng format on that ?

 

I don't think it has anything to do with ISO invariance; from what I understand ISO invariance would translate to sigma read = 0, which would actually make the model more accurate.

Regardless of that, not every device is ISO invariant, and having such an ambiguity on the given noise profile tag somehow makes it unusable. If you believe that this model is inaccurate or outdated, please point out what makes you think so.

 

Here are a few (rock solid) references to back up the equations :

https://graphics.stanford.edu/courses/cs448a-10/sensors-noise-14jan10-opt.pdf

https://people.csail.mit.edu/hasinoff/pubs/hasinoff-hdrnoise-2010.pdf

 

 

 

 

 

Legend
February 22, 2023

Handwaving doesn't change the fact that noise from a given camera varies based on numerous factors. I have no idea what your point is? Is there a question in all of this?

Participating Frequently
February 22, 2023

The statistical properties of the noise varie when changing factors, and the very utility of the "noise profile" tag is to caracterise that noise. The .dng specification from adobe offer no indication or convention on this tag, meaning that a programmer, or editing professional cannot rely on this tag, because it simply has no meaning. The tag should change when the exposure changes, which is not the case : this is an anomaly and should be adressed, unless the tag is implicitely given for an indicative exposure. However I have found nothing online, it is simply impossible to know what adobe are expecting people to put in that box. This is the question : what does that tag even mean? Should it be given for the exposure time for which the picture was taken with, or should it be given for a reference exposure time?

Legend
February 20, 2023

Digital cameras produce both shot noise and read noise, and a lot of cameras today approach ISO-invariant. So I'm not sure how much of the above is accurate anymore.

Participating Frequently
February 22, 2023

I don't understand how the noise can be ISO-invariant. ISO is a physical amplification, that ultimately amplifies the shot noise, regardless of the noise intensity. The read noise is however constant indeed. You will see on real pictures that the "noise profile" tag grows with the ISO, considerably, following the physical model.

Legend
February 22, 2023

Spend a few hours over on dpreview. They cover this kind of thing in exhaustive detail.