• site home
  • blog home
  • galleries
  • contact
  • underwater
  • the bleeding edge

the last word

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

You are here: Home / The Last Word / Frequency domain sensor analysis

Frequency domain sensor analysis

February 2, 2017 JimK Leave a Comment

For some time now, I’ve been analysing dark field photographs in the frequency domain for clues to whether or not cameras are applying spatial filtering to their raw files. I started when I was investigating why the Sony a7S suddenly had a better engineering dynamic range (EDR) when the ISO knob was turned from 50000 to 64000. One would think that, as ISO goes up, EDR would go down. The kink in the a7S EDR curve was puzzling. I participated in a discussion on DPR, and started to use some Matlab code supplied by a forum participant known as DSPographer to look at dark-field noise in the frequency domain.

Why dark-field noise? Because, in the absence of fixed pattern read noise (FPN), it contains equal energy per unit bandwidth — engineers say that it is “white”. And it turns out that most FPN is concentrated at frequencies much lower than the ones that camera manufacturers suppress in their efforts to use digital signal processing (DSP) to reduce noise levels. 

Why the frequency domain? Because it’s easy to see the deviations from flat frequency response, and thus the tell tale signs of raw file cooking.

I have modified DSPographer’s code a great deal in the time that I’ve been using it, but the ides behind what it does is still the same: it gives the average frequency response of the power of a square image horizontally and vertically. Because we’re analysing noise, the frequency response is noisy. The code allows the averaging into frequency “buckets” to be adjusted. Many small buckets gives a fine-grained look at the power vs frequency, but the downside is more noise. I tend to us small buckets and let my eye do the averaging.

How does this frequency domain measurement deal with various kinds of sensor defects and post-processing? That’s the topic that I want to deal with in this and the next post. In this one, I’ll talk mostly about the defects.

In order to get at the effects of various defects, I built a little camera simulator in Matlab, and asked it to spit out raw color planes for Fourier analysis. One color plane is sufficient for this work, since for real cameras I analysis the raw planes one at at time. I set the camera’s precision to 14 bits, its base ISO to 100, its unity gain ISO to 320 (implying a full well capacity of about 45,000 electrons). I set the pre-amplification noise to a Gaussian random field with 1 electron standard deviation.  I set the post amplification noise to a Gaussian random field with 1 analog-to-digital converter (ADC)  1 count standard deviation. This camera happens to ahve a black point of 512 counts, which is enough to keep the noise from being materially clipped. I set the sensor size to 1024×1024 pixels.

I first set the ISO to 100, the eexposure level to zero photons, and analysed the result:

 

The far left side is zero frequency, sometimes called dc. The far right side is half the sampling frequency of the sensor, and corresponds to the Nyquist frequency. Signals at a higher frequency than the Nyquist frequency will not be properly reconstructed.

You can see that, if you average out the noise, that the plot is flat.

Now let’s set the camera to ISO 3200:

 

Looks pretty much the same, doesn’t it? But we know there’s more noise at ISO 3200. The reason the graphs look the same is that they are relative to the total noise power. If the total noise power goes up, and the distribution of frequencies in the noise is unchanged, the curve doesn’t change.

Now let’s set the camera back to ISO 100, and expose a uniform image at half scale (one stop down from clipping):

 

Still the same.

Now I’ll add in the photon noise associated with that half-scale signal:

Also still the same. I won’t bore you with another plot, but if I add in Gaussian photon response non-uniformity, that doesn’t make the curves change, either.

 

What does make them change?

Let’s say that I make every fourth column on the sensor just 0.1% less sensitive than the other columns.

Wow! there is a huge spike in the horizontal direction at one quarter the sampling frequency. Note that I had to change (or, actually, tell the program to change) the scale of the vertical axis or else the spike would have been way off the graph. 0.1% isn’t a lot. So this measurement is very sensitive.

 

Now let’s say that there is no PRNU, but a 0.1% illumination nonuniformity, in the form of a horizontally-oriented linear gradient with a maximum attenuation of 0.1%:

 

It’s not as easy to see as the spkie on the graph above it, but there is about a 3.5 decibel rise at dc.

Next up: the effects in the frequency domain of digital signal processing.

The Last Word

← A book report — taking stock after 3 months A book report — disassembly →

Leave a Reply Cancel reply

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

May 2025
S M T W T F S
 123
45678910
11121314151617
18192021222324
25262728293031
« Apr    

Articles

  • About
    • Patents and papers about color
    • Who am I?
  • How to…
    • Backing up photographic images
    • How to change email providers
    • How to shoot slanted edge images for me
  • 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 35-70 MF 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 How Sensor Noise Scales with Exposure Time
  • Štěpán Kaňa on Calculating reach for wildlife photography
  • Štěpán Kaňa on How Sensor Noise Scales with Exposure Time
  • JimK on Calculating reach for wildlife photography
  • Geofrey on Calculating reach for wildlife photography
  • JimK on Calculating reach for wildlife photography
  • Geofrey on Calculating reach for wildlife photography
  • Javier Sanchez on The 16-Bit Fallacy: Why More Isn’t Always Better in Medium Format Cameras
  • Mike MacDonald on Your photograph looks like a painting?
  • Mike MacDonald on Your photograph looks like a painting?

Archives

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

Unless otherwise noted, all images copyright Jim Kasson.