CFA Strength and Color Discrimination

What I'd like to do next is see if I can get the dimensionality down from 9 to 8. That should speed things up, and maybe eliminate one set of local minima. I hope, but do not expect, that we might be able to reliably use NM after that.
My current thought on that is that the second row of the forward matrix to XYZ should always sum to unity. Therefore one of the entries in that row -- pick any one -- is superfluous.
That's true, although off the top of my head I cannot think how to do that easily. The way I do it now is to first find the entire 9 element compromise matrix - and only then normalize it so that the Y row adds to 1.
function sse = getMatrix(v,cc24rgb,cc24labRef)
v9 = vertcat(v(1:3),0,v(4:8));
v9(4) = 1.0 - (v9(5) + v9(6));
M = reshape(v9,[3 3]);
xyz = reshape(reshape(cc24rgb,[],3) * M', size(cc24rgb))*100;
Interesting, does it work? I was also thinking that one could use the normal equation based on XYZ to get the seed matrix in the ballpark... The seed matrix could be calculated before calling the matrix finding routine and passed to it as a parameter.
 
What I'd like to do next is see if I can get the dimensionality down from 9 to 8. That should speed things up, and maybe eliminate one set of local minima. I hope, but do not expect, that we might be able to reliably use NM after that.
My current thought on that is that the second row of the forward matrix to XYZ should always sum to unity. Therefore one of the entries in that row -- pick any one -- is superfluous.
That's true, although off the top of my head I cannot think how to do that easily. The way I do it now is to first find the entire 9 element compromise matrix - and only then normalize it so that the Y row adds to 1.
function sse = getMatrix(v,cc24rgb,cc24labRef)
v9 = vertcat(v(1:3),0,v(4:8));
v9(4) = 1.0 - (v9(5) + v9(6));
M = reshape(v9,[3 3]);
xyz = reshape(reshape(cc24rgb,[],3) * M', size(cc24rgb))*100;
Interesting, does it work?
Yes, but it doesn't seem to make things faster. That is counterintuitive. I need to check my work.
I was also thinking that one could use the normal equation based on XYZ to get the seed matrix in the ballpark... The seed matrix could be calculated before calling the matrix finding routine and passed to it as a parameter.
That's gonna be faster, but I'm looking for something that will allow CFA optimization in a way that's more general than the SMI way.

Jim
 
As noted there are infinite other ways to define the functional mapping. However, the physics electronics :-) of the device constrains what form one
It's the physics.
can use sometimes - that has to do with how physics electronics dictate the weighting in an inner product.
The physics has to do with the way the universe works, not an inner product.
 
Do you have to divide by the wavelength to get the answer? If you do you may find
A good way to specify responsivity (sensitivity) is to measure the output in terms V/lux-sec for each wavelength.
Wouldn't it be better to use irradiance instead of illuminance? I don't see what photopic weighting buys us here.
Agreed: stick with radiometric units.
There are a few good reasons why data sheets contain what they contain. One is consistent and repeatable design and testing protocol, the other is compatibility. There are others, too.
 
As noted there are infinite other ways to define the functional mapping. However, the physics electronics :-) of the device constrains what form one
It's the physics.
can use sometimes - that has to do with how physics electronics dictate the weighting in an inner product.
The physics has to do with the way the universe works, not an inner product.
Yet dimensional analysis is a strong indicator.
 
As noted there are infinite other ways to define the functional mapping. However, the physics electronics :-) of the device constrains what form one
It's the physics.
can use sometimes - that has to do with how physics electronics dictate the weighting in an inner product.
The physics has to do with the way the universe works, not an inner product.
Yet dimensional analysis is a strong indicator.
Yup, it's where physicists start for a back of the envelope conjecture. Helps that these days we have our units sorted.
 
Do you have to divide by the wavelength to get the answer? If you do you may find
A good way to specify responsivity (sensitivity) is to measure the output in terms V/lux-sec for each wavelength.
Wouldn't it be better to use irradiance instead of illuminance? I don't see what photopic weighting buys us here.
Agreed: stick with radiometric units.
There are a few good reasons why data sheets contain what they contain. One is consistent and repeatable design and testing protocol, the other is compatibility. There are others, too.
I think the other reason is what they are designed for. If you're trying do design a device to micmic a human visual response, photometric units is a good start - you wouldn't want to be saddled with unit conversions right at the start.

The problem of course is, that since the devices themselves are actually measuring neither photometric nor radiometric power, using either unit entails in inevitable deviation from reality, though it's not so important until you get to very low photoelectron populations.

--
Tinkety tonk old fruit, & down with the Nazis!
Bob
 
Last edited:
As noted there are infinite other ways to define the functional mapping. However, the physics electronics :-) of the device constrains what form one
It's the physics.
can use sometimes - that has to do with how physics electronics dictate the weighting in an inner product.
The physics has to do with the way the universe works, not an inner product.
Yet dimensional analysis is a strong indicator.
Yup, it's where physicists start for a back of the envelope conjecture. Helps that these days we have our units sorted.
So, if we multiply by something, and divide by the same afterwords it is not an indication that we may have our formula wrong/redundant; and consequently, our understanding doesn't need some adjustment.
 
Do you have to divide by the wavelength to get the answer? If you do you may find
A good way to specify responsivity (sensitivity) is to measure the output in terms V/lux-sec for each wavelength.
Wouldn't it be better to use irradiance instead of illuminance? I don't see what photopic weighting buys us here.
Agreed: stick with radiometric units.
There are a few good reasons why data sheets contain what they contain. One is consistent and repeatable design and testing protocol, the other is compatibility. There are others, too.
I think the other reason is what they are designed for.
One is consistent and repeatable design
 
Do you have to divide by the wavelength to get the answer? If you do you may find
A good way to specify responsivity (sensitivity) is to measure the output in terms V/lux-sec for each wavelength.
Wouldn't it be better to use irradiance instead of illuminance? I don't see what photopic weighting buys us here.
Agreed: stick with radiometric units.
There are a few good reasons why data sheets contain what they contain. One is consistent and repeatable design and testing protocol, the other is compatibility. There are others, too.
I am not quite sure what your point is here.

My experience is that while sensor data sheets often specify a sensitivity in lux-seconds, where the spectral response is provided, it is commonly presented as quantum efficiency as a function of wavelength.

Kodak / Truesense / ON Semi (KAF8300, KAF10500) specify μV/electron and quantum efficiency for each of red, green and blue channels.

Aptina / ON Semiconductor (MT9V032) specifies V/lux-second output.

In all three cases, the combined CFA + sensor spectral response is provided as quantum efficiency as a function of wavelength. This is directly usable as a quantal response, or readily converted to a radiometric spectral sensitivity.

The Aptina device in particular has an extended infra-red response, (page 55: QE >35% at 800 nm, QE >6% at 1000 nm), and working with photometric units in this region would be tedious and potentially error-prone, given that the photopic response, V(λ) drops below 1e-6 in this region, and is rarely tabulated beyond 830 nm.
 
My experience is that while sensor data sheets often specify a sensitivity in lux-seconds, where the spectral response is provided, it is commonly presented as quantum efficiency as a function of wavelength.
Relative QE. It needs to be superimposed over responsivity data.
Kodak / Truesense / ON Semi (KAF8300, KAF10500) specify μV/electron
µV/e- is output sensitivity.
In all three cases, the combined CFA + sensor spectral response is provided
No, it is not provided.
as quantum efficiency as a function of wavelength
Relative QE.
 
alanr0 wrote: My experience is that while sensor data sheets often specify a sensitivity in lux-seconds, where the spectral response is provided, it is commonly presented as quantum efficiency as a function of wavelength.

Kodak / Truesense / ON Semi (KAF8300, KAF10500) specify μV/electron and quantum efficiency for each of red, green and blue channels.

Aptina / ON Semiconductor (MT9V032) specifies V/lux-second output.

In all three cases, the combined CFA + sensor spectral response is provided as quantum efficiency as a function of wavelength. This is directly usable as a quantal response, or readily converted to a radiometric spectral sensitivity.

The Aptina device in particular has an extended infra-red response, (page 55: QE >35% at 800 nm, QE >6% at 1000 nm), and working with photometric units in this region would be tedious and potentially error-prone, given that the photopic response, V(λ) drops below 1e-6 in this region, and is rarely tabulated beyond 830 nm.
Right. I guess one can add additional filters like IR-cut etc. on top of that. What I find interesting in the context here is that the green filters typically peak earlier than one would expect and blue filters are stretched out a lot more than the others. That makes sense because it's the one that has the most to gain, starting from such low ideal values.
 
Last edited:
What I'd like to do next is see if I can get the dimensionality down from 9 to 8. That should speed things up, and maybe eliminate one set of local minima. I hope, but do not expect, that we might be able to reliably use NM after that.
My current thought on that is that the second row of the forward matrix to XYZ should always sum to unity. Therefore one of the entries in that row -- pick any one -- is superfluous.
That's true, although off the top of my head I cannot think how to do that easily. The way I do it now is to first find the entire 9 element compromise matrix - and only then normalize it so that the Y row adds to 1.
function sse = getMatrix(v,cc24rgb,cc24labRef)
v9 = vertcat(v(1:3),0,v(4:8));
v9(4) = 1.0 - (v9(5) + v9(6));
M = reshape(v9,[3 3]);
xyz = reshape(reshape(cc24rgb,[],3) * M', size(cc24rgb))*100;
Interesting, does it work? I was also thinking that one could use the normal equation based on XYZ to get the seed matrix in the ballpark... The seed matrix could be calculated before calling the matrix finding routine and passed to it as a parameter.
With the code above, you need to drop the transposition of M a couple of lines further down. I could change it so that you don't have to do that, and I will if you want, but that will make it slightly slower.

Here's how it affects simulated annealing, first with 9 dimensions:

About 24000 iterations.
About 24000 iterations.

This is with the NM search at the end; so is the one below.
This is with the NM search at the end; so is the one below.

And now with 8 dimensions:

About half as many iterations
About half as many iterations

And a somewhat better result.
And a somewhat better result.

Jim

--
http://blog.kasson.com
 
Last edited:
In all three cases, the combined CFA + sensor spectral response is provided
No, it is not provided.
What's missing, other than the UV/IR/AA filters?
"combined CFA + sensor spectral response" is missing. QE is no replacement for that.
Have you followed the links I provided?

KAF8300,: page 17. QE spectra for R G and B channels are provided from 350 nm to 1100 nm. Absolute quantum efficiency is explicitly specified.

In addition, monochrome spectral QE spectra are provided for variants with and without microlenses, without cover glass, and with clear and MAR cover glasses.

Per-channel and per wavelength absolute QE (electrons/photon), combined with 23μV/electron conversion gain gives the information needed for Jack's calculations.

KAF10500: page 14 shows similar spectra. The graph is labelled QE, rather than absolute QE, but the green channel peaks around 40%, so absolute QE seems a reasonable assumption.

MT9V032: page 55 shows QE peaking in at 33% to 38% for the different colour channels, and around 50% for the monochrome version. Again, these look like absolute QE values.
 
My experience is that while sensor data sheets often specify a sensitivity in lux-seconds, where the spectral response is provided, it is commonly presented as quantum efficiency as a function of wavelength.
Relative QE. It needs to be superimposed over responsivity data.
Absolute QE is specified for KAF8300.

QE for the two other examples peaks at comparable levels (~40% QE). Have you reason to believe these are not absolute QE values. Surely relative QE would be shown normalised to 100% at peak?
Kodak / Truesense / ON Semi (KAF8300, KAF10500) specify μV/electron
µV/e- is output sensitivity.
Sure. It is the one place I would expect photometric units to be used.

Perhaps I am missing your point.

You said:
A good way to specify responsivity (sensitivity) is to measure the output in terms V/lux-sec for each wavelength.
and
"That would be a standard way, the way the data is presented in sensor data sheets and the way measurements for QC are done"
I have not seen spectral responsivity specified in V/lux-sec, and provided three counter examples.

MT9V032: is a small (1/3 inch) sensor used in industrial cameras, so arguably less relevant to the present discussion. Nevertheless, the extended IR response could be problematic if specified in photometric units V/lux-sec. Is there a standard means to extrapolate the photopic spectral luminous efficiency function V(λ) beyond 830 nm?
In all three cases, the combined CFA + sensor spectral response is provided
No, it is not provided.
as quantum efficiency as a function of wavelength
Relative QE.
Again, as far as I can tell, the examples I provided are all absolute QE for the combined sensor response + CFA transmission spectrum.
 
In all three cases, the combined CFA + sensor spectral response is provided
No, it is not provided.
What's missing, other than the UV/IR/AA filters?
"combined CFA + sensor spectral response" is missing. QE is no replacement for that.
Have you followed the links I provided?

KAF8300,: page 17. QE spectra for R G and B channels are provided from 350 nm to 1100 nm. Absolute quantum efficiency is explicitly specified.
I think you overrate the word absolute here, data is in percent if you look at the Y axis.

Sorry, efficiency here is like any other performance index, it is not absolute.

50% QE is when 3 electrons are generated for 6 photons.

If from the graph you referred you can calculate raw numbers, or Volts, for a given exposure, even for one given wavelength, that makes it suitable for the sensor spectral response. Generalized figures like 23 µV/e− are of little help. It takes much more than what is presented in the data sheet to calculate the absolute response of the sensor. That's why I said "not provided".

Here is what I consider as "provided":

19a3c512f8004ef9ac3c660e88974698.jpg.png

Not to mention page 17 is not the page:

82f5deeb34dd4d7fa80930bd96b00f59.jpg.png

--
http://www.libraw.org/
 
Last edited:
In all three cases, the combined CFA + sensor spectral response is provided
No, it is not provided.
What's missing, other than the UV/IR/AA filters?
"combined CFA + sensor spectral response" is missing. QE is no replacement for that.
Have you followed the links I provided?

KAF8300,: page 17. QE spectra for R G and B channels are provided from 350 nm to 1100 nm. Absolute quantum efficiency is explicitly specified.
You misunderstand the word absolute here, it is in percent if you look at the Y axis. Not to mention page 17 is not the page:
Apologies -- I was looking at the 2012 Truesense version of the data sheet, rather than the 2015 ON Semiconductor 2015 version, where the same graph appears on page 11.
Sorry, efficiency here is like any other performance index, it is not absolute.
Quantum efficiency is defined as electrons released per incident photon. The theoretical maximum QE is 1.0, or 100%, at least in the regime of interest where multiple electrons per photon is highly unlikely.

EMVA 1288: http://www.emva.org/standards-technology/emva-1288/emva-standard-1288-downloads/

40% QE means that on average, 1 electron is released for every 2.5 photons incident on the area of a pixel, specifically an area equal to the product of vertical and horizontal pixel pitches.

How is that not an absolute performance index? In the case of the KAF8300, it is directly related to the output signal via the 23 μV/e- output sensitivity.

Can you offer any counter-examples where spectral sensitivity is specified in Volts/lux-sec?
 

Keyboard shortcuts

Back
Top