Some of you wondered about the sensor, so I did a quick analysis, from a few samples from Sebastian (Axiom Alpha, CMV12000).
This sensor has 4 analog gain levels: 1, 2, 3 and 4. I'll try to find out what ISO they correspond to, so you know how it compares to other popular cameras.
Hope you will enjoy pixel-peeping the dark frames Response curve
Seems pretty much linear, with a tiny roll-off in highlights, and a strange shape in the right side (probably black sun correction).
These graphs contain a rough guess for the white level.Black level
This one is tricky - it changes with gain, exposure time, temperature and... overexposed areas (!), and it changes a lot. The spec says "Dark current 125 e-/s (25 degC)
". There is an optical black (OB) area of 8+8 columns, which may help (I didn't test it).
On Canons, black level is clamped to 1024 or 2048 or similar values, with minimal variations.FPN and row/column noise
Showing dark frames downsized by averaging 10x10 pixels (this process reveals FPN
Left to right: regular dark frame; difference between two dark frames (delta); delta after subtracting row average over 8+8 columns (first 8 and last 8 ); 40+40 columns; 200+200 columns; and - last image - after subtracting the average of every single row and every single column.
Top to bottom: gain = 1,2,3,4.
All graphs have brightness stretched after throwing away the 1% darkest pixels and 1% brightest ones. They show how uniform the noise is, not its magnitude.
After subtracting two dark frames (taken at a few seconds one after another), the image still has a really strong row noise (visually similar to FPN, but it's not fixed - it changes every frame). This one is hard to correct. CMOSIS recommends using the optical black areas for this, but they are way too small (8 + 8 columns) and their size cannot be changed. Subtracting their average from a dark frame fixes only half of the row noise. If you would be able to change the OB size to 40+40, this would reduce the row noise by about 2 stops, and a 200+200 OB would reduce it by 3 stops. Additional difficulty: the magnitude of the noise is different in the center of the image, compared to the edges.
The only solutions I can imagine are:
- submit a feature request to CMOSIS to change the OB size
- a really clever image processing algorithm (way beyond my skills)
- some hope for this noise to be correlated in adjacent frames.
Subtracting some value from every row and every column of the darkframe delta (so, 4096 + 3072 parameters) is enough for fixing the random row noise - the hard part is finding these parameters, because they change for every single frame. Here's how the dark frame deltas look after subtracting the average of every row and every column (gain=1..4):
But subtracting some value from every row and every column of the dark frame is not enough - one has to average a large number of dark frames and store it as calibration data. Here's why (gain=1..4): SNR and dynamic range
Using this method
(measuring the noise between two images and decomposing it into dark noise and shot noise), I've got the following results:
Plotting these results on the ISO/DR graph, assuming a quantum efficiency = 60% (source
So, the base ISO on this sensor is about ISO 400, on the scale used by DxO. Canon ISOs are evaluated by DxO around 80, 160, 320... usually 1/3 stops lower than what you choose in menu. The sensor seems on par with the Nikon 1 V2, regarding dynamic range and low light behavior.
To find the SNR curves, I've subtracted two images of the same static scene, fixed the row noise, and sampled 17x17 patches randomly (5000 patches). To find the signal level (patch average), I took the average of the two images, and subtracted a dark frame (because of black level issues). I've measured DR from the point where signal=noise (SNR=0EV) until the clipping point, assuming the sensor response is linear (didn't do any linearity correction). More details in the ISO research thread
The data set for gain=1 had some trouble with black level, so I did some guesswork here (adjusted it manually until it looked good).
I did not consider the infrared blocking filter - depending on how strong it is, it would shift the graph to the left side, effectively lowering the ISO.Will binning to 1080p improve the dynamic range?
Yes. On this sensor you could do a 2x2 binning, which will improve the DR in shadows by up to 1 stop.
Binning is best done in the digital domain (software) - in this case, it will average all the noise sources. If it's done in analog domain, as on Canons (that is, before the read noise gets introduced), only the noise that appears before the binning circuit will be reduced.
Example: the 5D3 uses 3x3 binning in video mode (no pixels discarded), while the 6D uses 1x3 binning (with line skipping, discarding 2/3 of pixels). Yet, the 6D manages to have lower noise than 5D3, at all ISOs
.How accurate are your SNR/DR/ISO measurements?
I don't know, you be the judge. The measurements were not done in a laboratory - I simply asked Sebastian to point the camera at a bright window, include something black in the frame, and make sure the lens is really out of focus.
Repeatability is quite good - after running the test on two 5D3 cameras by two different people and two different test scenes, the results overlap quite well (see here
If any step from the testing procedure is unclear, just ask.
- measured gain ratios match the programmed gain ratios very well:
5.65 / 2.85 = 1.98, ideally 2
2.85 / 1.94 = 1.47, ideally 1.5
1.94 / 1.44 = 1.35, ideally 4/3
- measured dark noise at higher gains (10.15 electrons) matches the number quoted here
- measured full well and dark noise at lowest gain matches the spec somewhat (13384/13.60 vs 13500/13).
- measured gain does not match the spec (e/DN), figure out whyWhat do you think about the HDR modes?
Axiom list 3 HDR modes on their website:
- PLR: somewhat similar to RED HDRx, combining 2 or 3 exposures in hardware (uses shorter exposure time in highlights). The spec say you can get up to 15 stops in this mode, but I think you might be able to push it even more. Didn't try it, but here's an opinion from somebody who did: http://www.dvxuser.com/V6/archive/index.php/t-299568.html
- "dual shutter" - similar to dual ISO; my converter is likely to work with minimal changes.
- alternate shutter every frame - similar to ML HDR video, with more potential because of the higher FPS.
All these modes are basically using a faster shutter speed in highlights - however, they will not improve the shadows. Therefore, they are equivalent to lowering the ISO - I expect it to reach crazy values like ISO 10 or maybe even lower.
All of these modes will have some motion artifacts. I don't know how bad they are, but I expect them to be not as bad as ML HDR video.Will Dual ISO work?
Even if you find a way to configure the sensor to scan at two different gains, the improvement would be log2(13/10) = less than 0.4 stops. Not worth the effort.What about long exposures?
Here we have a huge advantage: on this camera, we have access to the FPGA, which is much faster at image processing than the general-purpose ARM processor. One could capture short exposures and average them on the fly, which has a very nice impact on the dynamic range.
How much? Stacking N images will improve shadow noise by log2(sqrt(N)) stops - so averaging 64 images will give 3 more stops of DR, just like that. Assuming the hardware is fast enough to average 4K at say 100fps, a 10-second exposure could have a 5-stop DR boost. Without motion artifacts or resolution loss.
Where's the catch?
Read noise (in electrons) does not depend much on exposure time (on 5D3, the noise difference between 1/8000 and 15" is minimal
- A short exposure would capture P photons with read noise R. Adding N frames would give N*P photons with read noise R * sqrt(N).
- A long exposure would capture N*P photons in a single frame (clipping N times earlier), with read noise R.
So, a stacked exposure, compared to a long exposure, would give:
- log2(N) stops of more highlight detail (think of it as if it were a lower ISO)
- log2(sqrt(N)) stops of more dynamic range
- log2(sqrt(N)) stops of more shadow noise (in electrons)
=> there's no free lunch. It's great for replacing a ND filter, but it's not ideal for astro.
At very long exposures (hours), things may be different - such a long exposure may no longer be as clean as a short one, or it might simply clip too many highlights. I don't have any experience with astro, so I'm just guessing.
Yes, I'm going to implement this in Magic Lantern as well - we have just found a routine that adds or subtracts two RAW buffers on the dedicated image processor
(without using the main CPU).This sensor can do 300 fps. Can you do the above trick for video?
(credits @anton__ for this idea)
The sensor does not do 300fps at maximum resolution, but I guess it can do this at 1080p (even with hardware binning). Note, this is pure speculation.
If the Axiom hardware is fast enough to add 1080p frames at 300fps (I have no idea if it is), you could create a 1/50 exposure (180-degree shutter at 25fps) out of 6 frames captured at 1/300. This means 1.3 EV boost in DR, at the cost of 1.3 EV of shadow noise (it will require more light). Good for emulating a low ISO, without motion artifacts like the other HDR modes.
Again - I don't know if the hardware is fast enough for this.
On the ISO/DR graph (scroll up) I've plotted what would happen if you would average 4 frames.What about underclocking the sensor?
I don't know. If you can try it, feel free to send me sample images.What about the other sensor - KAC-12040?
It has 12 stops with rolling shutter (3.7 electrons), and 10 stops (25.5 electrons) with global shutter, but it's a little smaller (4.7μm vs 5.5μm). I don't have any samples from it, so can't tell much, but judging from the specs, it's better in low light by about 1 stop (of course, in rolling shutter mode). If you have it up and running, feel free to send me some sample files.
It has analog gain (values mentioned in datasheet are <1, 2 and 8 - whatever that means). I don't know how much it improves the dark noise.
The datasheet hints that dark noise might get better at lower LVDS clock. Cool.
I've placed this sensor on the DR graph based on datasheet values (full well 16000, dark noise 3.7 or 25.5, max QE 47%, 4000 horizontal pixels, active width 18.8mm).What about the CMV20000?
In low light it's probably as good as the 60D, judging from the specs.
Global shutter and 300fps are not free - you lose a little low light ability, but not much.CMV12000 - full resolution
The base ISO is about 400 (maybe lower once you attach the IR blocking filter), and it goes to about ISO 1250 with analog amplification. At high ISO, the noise improves by only 0.4 stops. If my math (and also DxO and sensorgen's math) is not screwed up, this sensor is on par with the little Nikon 1 V2, and about 1 stop behind a Canon 60D.
The row noise (banding) is a major problem, and I don't currently have a solution for it.CMV12000 - 1080p
I didn't test this mode, but with proper 2x2 binning (without introducing additional noise), this sensor would catch up (but that's because Canon does poor downsizing). At its base ISO, it's really close to the 5D3 in 1080p RAW at ISO 800 (note that 5D3 ISO 800 in LiveView is more like DxO ISO 500). In low light, it's only 0.5 stops behind the 60D in 1080p RAW (1734x975), and about 2 stops behind 5D3 in 1080p RAW ISO 6400.
Not bad for a very fast sensor with global shutter. And there are tricks to squeeze even more DR, without motion artifacts, like averaging 4 or 6 frames, or exploiting the black sun correction to squeeze more highlights.KAC-12040
For low light, in rolling shutter
mode, the smaller sensor is better on paper, despite its smaller size (I expect it to be about 1 stop better). I didn't test this sensor, so I've only plotted what I could figure out from the spec - but there are hints that low-light performance might be even better.
I believe this sensor will be very similar to GH4 in low light, and with a bit of luck, on par with 60D (which is 0.5-stop better than GH4).
In global shutter
mode it's not that good for low light - you'll get better results from a smartphone (Lumia 1020).
But hey - you can choose between global shutter and low light, without swapping the sensor!
Hope the above helps you choose which sensor is best for you.
Anyway, if the sensor proves to be the weak link, it can be exchanged. Feel free to suggest better options - for example, if you can ask Sony about Exmor sensors, please do.
Raw samples: http://footage.apertus.org/AXIOM%20Alpha%20footage/ML/
More graphs: https://www.dropbox.com/sh/xarr1i7vm7cwevd/AAA8OydI3VNZOTPQ-7Ta5aPRa?dl=0
Octave scripts on request.