the last word

Photography meets digital computer technology. Photography wins -- most of the time.

  • site home
  • blog home
  • galleries
  • contact
  • underwater
  • the bleeding edge
You are here: Home / The Last Word / A photon transfer capture protocol

A photon transfer capture protocol

March 24, 2016 JimK Leave a Comment

Warning: this is a technical post that assumes a fair amount of knowledge on the part of the reader.

Jack Hogan and I have been working on photon transfer analysis of sensors for some time. He and I wrote some Matlab code to analyze pixel response non-uniformity (PRNU), to plot complete photon response curves, and to model sensor behavior. At present, the suite of programs does not analyze dark frame-to-frame persistent patterning, although I have done some of that in the past.

For all the testing except the PRNU, captures are made in pairs. By subtracting a pair of images, a image with 1.414 times the frame-independent noise, unpolluted by static noise, can be obtained, Earlier work did the captures of flat fields; one pair of images was needed for each point of the photon transfer curve (PTC). A PTC plots standard deviation versus mean value, usually using a log scale for both. While using a pair for every data point promoted accuracy, it was truly labor intensive; one set of exposures for each ISO setting for a given camera could  number in the mid- thousands.

In order to reduce the number of necessary captures, I created first a one-dimensional, and then a two-dimensional target. Here is the one that I’m currently using:

Photon Xfr target

I made it in Photoshop, and it’s far from perfectly linear in density from side to side and top to bottom, nor does in optimally minimize duplicated tones. I could create a better target using Matlab, and I probably will, but, as you will soon see, this one is adequate for the purpose I have in mind.

You will note the absence of patches in the target. The patches are created by the software sampling the target, and they can be any convenient shape, size, and number. The fact that the target is a gradient is not important for any single patch, since subtracting the two samples takes that out of the picture. It is important to keep the sample extents small enough that most of the sampled values are close together. That must be balanced against wanting many pixels in each sample for the purpose of having solid statistics. As it turns out, with today’s high-resolution cameras, that is no problem.

The capture protocol that I have selected is to make a set of pairs at each camera ISO setting of interest using aperture priority, exposure compensation to get the upper left corner near full scale,  and varying the ISO setting. That gets the upper end of the photon transfer curves for each ISO.

I also need a set of exposures nearer, but not at, the black point, which I can use to model the read noise of the camera. To get rid of quantizing artifacts, I have the program throw away samples with SNRs of less than 2, so very dark values are automatically eliminated. If the camera under test were completely ISOless, the same exposure would suffice for each dark capture, no matter what the ISO setting. My hope was that the target would have enough dynamic range so that one exposure setting would suffice even in cameras that significantly depart fro ISOless behavior. So far that has worked out.

What should the exposure be for the dark images. I hoped to get five or six stops of sample variation per exposure, so that the first set of captures would span a range from half a stop or a stop under full scale to fice or six stops below that. Modern cameras have engineering dynamic ranges of about 14 stops. I don’t need to get that far down on the curve, since I”m going to toss the samples with an SNR of less than 2, but I do want to get to 13 or so stops down. Setting the exposure for the dark series at 7 stops less than the base ISO exposure for the light series should get me there.

Enough theory. What happens in practice?

Here are measured and modeled photon transfer curves for the Sony a7RII at whole stop ISOs from 100 to 12800, using a 4×6 grid of equally spaced 400×400 pixel samples.

a7rii ptc 24

The blue dots are the measured values, the orange lines are the modeled ones. The horizontal axis is the mean sample value. The vertical axis is the standard deviation. You can see by looking at the right hand side of the graph at the three lower curves, that the target dynamic range is less than the six stops that I’d like. What if we have 48 300×300 pixel samples instead or more bigger ones?

a7rii ptc 48

That’s better. Almost six stops. There’s no longer a gap in the ISO 400 measured curve. If a little increase in sampling density is good, is a lot better? Let’s look at 96 200×200 pixel samples.

a7rii ptc 96

Better yet. I think I’ll stop there, though.

Now notice the gaps in the ISO 100 and ISO 200 curves. That’s because we didn’t sample the lower middle of their dynamic range. That’s not a problem, though. The middle of the dynamic range is almost always completely boring. It’s the most linear region. It doesn’t affect the modeling much at all. No great loss; in fact, no piratical loss at all.

And the waviness to the ISO 100 and the ISO 200 measured values? We’ve seen that before on other cameras that have read noise comparable to their quantizing LSB. I had the camera set to compressed raw, so the a7RII was acting as a 13 bit camera.

Success. The capture time for the PTC data is now a few minutes, and all I need is a 100 or so images.

The Last Word

← Zooms vs primes for learning — guest post Testing for decentering by eye →

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

March 2023
S M T W T F S
 1234
567891011
12131415161718
19202122232425
262728293031  
« Jan    

Articles

  • About
    • Patents and papers about color
    • Who am I?
  • Good 35-70 MF lens
  • How to…
    • Backing up photographic images
    • How to change email providers
  • Lens screening testing
    • Equipment and Software
    • Examples
      • Bad and OK 200-600 at 600
      • Excellent 180-400 zoom
      • Fair 14-30mm zoom
      • Good 100-200 mm MF zoom
      • Good 100-400 zoom
      • Good 100mm lens on P1 P45+
      • Good 120mm MF lens
      • Good 18mm FF lens
      • Good 24-105 mm FF lens
      • Good 24-70 FF zoom
      • Good 35 mm FF lens
      • Good 60 mm lens on IQ3-100
      • Good 63 mm MF lens
      • Good 65 mm FF lens
      • Good 85 mm FF lens
      • Good and bad 25mm FF lenses
      • Good zoom at 24 mm
      • Marginal 18mm lens
      • Marginal 35mm FF lens
      • Mildly problematic 55 mm FF lens
      • OK 16-35mm zoom
      • OK 60mm lens on P1 P45+
      • OK Sony 600mm f/4
      • Pretty good 16-35 FF zoom
      • Pretty good 90mm FF lens
      • Problematic 400 mm FF lens
      • Tilted 20 mm f/1.8 FF lens
      • Tilted 30 mm MF lens
      • Tilted 50 mm FF lens
      • Two 15mm FF lenses
    • Found a problem – now what?
    • Goals for this test
    • Minimum target distances
      • MFT
      • APS-C
      • Full frame
      • Small medium format
    • Printable Siemens Star targets
    • Target size on sensor
      • MFT
      • APS-C
      • Full frame
      • Small medium format
    • Test instructions — postproduction
    • Test instructions — reading the images
    • Test instructions – capture
    • Theory of the test
    • What’s wrong with conventional lens screening?
  • Previsualization heresy
  • Privacy Policy
  • Recommended photographic web sites
  • Using in-camera histograms for ETTR
    • Acknowledgments
    • Why ETTR?
    • Normal in-camera histograms
    • Image processing for in-camera histograms
    • Making the in-camera histogram closely represent the raw histogram
    • Shortcuts to UniWB
    • Preparing for monitor-based UniWB
    • A one-step UniWB procedure
    • The math behind the one-step method
    • Iteration using Newton’s Method

Category List

Recent Comments

  • JimK on Fujifilm GFX 100S pixel shift, visuals
  • Sarmed Mirza on Fujifilm GFX 100S pixel shift, visuals
  • lancej on Two ways to improve the Q2 handling
  • JimK on Sony 135 STF on GFX-50R, sharpness
  • K on Sony 135 STF on GFX-50R, sharpness
  • Mal Paso on Christmas tree light bokeh with the XCD 38V on the X2D
  • Sebastian on More on tilted adapters
  • JimK on On microlens size in the GFX 100 and GFX 50R/S
  • Kyle Krug on On microlens size in the GFX 100 and GFX 50R/S
  • JimK on Hasselblad X2D electronic shutter scan time

Archives

Copyright © 2023 · Daily Dish Pro On Genesis Framework · WordPress · Log in

Unless otherwise noted, all images copyright Jim Kasson.