Full-resolution silent pictures (silent.mo)

Started by a1ex, July 01, 2014, 05:11:15 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Levas


Levas

Just dreaming... ;D
Is pixelbinning a CPU heavy task ?
Could this lead to a "no more line skipping" video mode (realtime pixelbinning from full res picture readout), or are there boundaries in CPU and memory resources available in camera?

a1ex

I believe binning is hardwired directly on the CMOS chip (here's a hint from Chipworks, which seems to agree with my experiments).

If you would do it in software, I expect several seconds for one image.

Levas

Quote from: a1ex on July 02, 2014, 02:31:27 PM
I believe binning is hardwired directly on the CMOS chip (here's a hint from Chipworks, which seems to agree with my experiments).

If you would do it in software, I expect several seconds for one image.

Too bad... :(
Had some little hope that the better video performance(no line skipping) in the 5d3 could be copied to other camera's in the canon range.
But it looks like the 5d3 has a sensor with different readout options then the other canon camera's.

But, damn! What a cool finding 8) for shutterless time-lapses!


a1ex

To compare the sensor configuration from LiveView vs silent mode, you can follow these steps with adtg_gui:

step 0: movie mode, manual exposure (optional FPS override, depending on camera)
step 1: enable Debug -> ADTG registers
step 2: turn on and off LiveView a few times (and remain in LiveView)
step 3: select "Show: Modified from now on" in adtg_gui menu
step 4: select "Advanced -> Disable logging: in LiveView" (so, from now on it will record only changes from photo mode, including full-res silent pics)
step 5: take a full-res silent pic
step 6: go back into adtg gui menu, and you'll se register differences on the ADTG/CMOS/DFE side
step 7: select "Log registers now" to get this log

In the log, which matches what you have seen in menu at step 6, 0001 is ADTG1, 0002 is ADTG2, 00f0 is CMOS and f000 is DFE (that's the internal coding).
The "was" part is liveview, and the number before that is for the silent photo.

Greg

500D, averaged 100 black frames (+5 EV and shadows/whites) :
http://s15.postimg.org/9gbedu0ih/100.jpg

mk11174

I wish this could work in bolt trigger module, I only need 1 picture recorded when strike is detected, but is it even possible to make use of the detection method with this way of doing it? I think it works by using a ring buffer till a white level in the live view is changed which forces a save on that frame. Seems like if it can just loop 2 frames maybe that would be enough time to save just the frame at pixel change, then that would mean full res day time lightning pictures, that would be so cool!
500D/T1i  550D/T2i  600D/T3i  700D/T5i

Levas

Just thinking, silent full resolution picture mode is probably also used by Canon to (re)map hot/dead pixels...
The manual sensor cleaning with the body cap on the camera instead of lens.



a1ex

Quote from: mk11174 on July 02, 2014, 08:44:25 PM
I wish this could work in bolt trigger module, I only need 1 picture recorded when strike is detected, but is it even possible to make use of the detection method with this way of doing it? I think it works by using a ring buffer till a white level in the live view is changed which forces a save on that frame.

Yes, just call FA_CaptureTestImage in a loop, and whenever lightning (or motion) is detected, save the raw file. Ring buffer is not necessary, but it may let you do some cool tricks, like also saving the frame before the event. You can allocate only 2 or 3 buffers at a time anyway.

Minor detail: you might (or might not) have to call Create/DeleteTestImage (didn't try), but these are very fast.

To detect the lighting, I suggest polling raw_hist_get_percentile_level(95%) - when the value gets way above average, save the file. Should be fast enough, and easy to call.

Would be cool to have a full-res LiveView mode and keep compatibility with existing tools (raw recorders, motion detection and so on), but it's probably a little hard, need to think about it. But adding some simple motion detection to the silent picture module should be easy.

DeafEyeJedi

Great find, a1ex and this is definitely a step closer in convincing my bosses to allow me install Magic Lantern on all of our 5D3's at work...

Since the shutter can be loud and annoying during studio recording and I've already been using the silent pic mode on my personal 5D3 as well as the 7D from work...

Keep up the good work, a1ex!
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

a1ex

Memory discussion moved here: http://www.magiclantern.fm/forum/index.php?topic=12528.0

(let's keep this thread about silent pictures)

sleepinghouse

Whoa! Amazing!
Is this available in the newest 5dMKII nightly/alpha build? Or is it coming up in a future build?
5d mkii  ||  canon 50 f/1.4  ||  hexanon 40 f/1.8  ||  tokina 20-35 f/2.8  ||  zenitar 16 f/2.8  ||

Walter Schulz

You may want to read the first post by a1ex.

mk11174

Working on the 700D, cam was set to 2" for shutter speed.

500D/T1i  550D/T2i  600D/T3i  700D/T5i

Greg

Electronic shutter do gradient few examples :
(shutter speed Canon menu)












a1ex

Cool find :D

This means the exposure probably starts at the same time for all rows, but finishes sooner for top rows and later for bottom rows. In LiveView, the exposure starts early for top rows and it's delayed for bottom rows, so each row gets the same amount of light.

Right now I have no idea how to change this behavior though (is it enough to tweak some ADTG registers? some other stuff to do?)

(btw, can you process the images with same overall exposure - that is, darken the last images a bit - to see the gradient better?)

a1ex

Quick analysis of the gradient:

I took a regular picture at 1/4 seconds, and compared it to a silent picture, with shutter set to 1/8000. 5D2, no lens (totally defocused), ISO 100.

Script used for taking the pictures: dont-click-me.c
The test images: regular.CR2 and silent.DNG (warning: large files)

Since the test images were taken from the same static scene, same ISO, same aperture, I should be able to plot the exposure difference and figure out the shutter speed from there, right?

So, I've loaded the two images in octave, and wrote this script for analysing them: gradient.m

Results:

Images in linear space, brightness scaled to fit the entire range (0-255):


Images in log space (EV), brightness scaled:


Image difference in log space (EV), brightness scaled:


Exposure difference per row, in EV (left) and linear (right):


Numerical results:

Exposure range  : 1/59.97 ... 1/3.86
Rolling shutter : 0.24 seconds


Not exactly ideal for moving subjects, even if we find a way to fix the gradient. But it could be interesting as a fast slit-scan mode.

You are welcome to run these scripts on more cameras, and post the results. I expect a little less rolling shutter from 5D3.

edit: this rolling shutter value was actually expected - in LiveView, Samuel H measured a rolling shutter of 25.9ms on 5D2, and here it's reading out 9x as many pixels.

c2s07

Heh, so we almost got ourselves a complete GND filter effect in ML, after all. If only the strength of the effect and the start/end points were adjustable. :-)


a1ex

The strength is adjustable, but only by adding a constant to the total exposure time (the exposure difference between the top row and the bottom row will be fixed to 0.24 seconds on 5D2, with linear time variation).

It might be possible to slow it down by tweaking timer A during exposure (didn't try, but worth researching). From FPS override, you already know that increasing timer A will increase the rolling shutter effect.

surami

Awesome job a1ex! Could this function work together with ettr + deflicker + advanced intervalometer module too?
550D + nightly ML

barepixels

5D2 + nightly ML

Levas

I see no problem in this gradient for use on landscape photos/time-lapses  :D

multiversquantique

@a1ex je ne sais pas comment compiler ces modules . peut-tu le faire pour moi stp ? je veut tester ça .. Canon 5d mark III 1.2.3

dubzeebass

Quote from: multiversquantique on July 11, 2014, 08:25:40 PM
@a1ex je ne sais pas comment compiler ces modules . peut-tu le faire pour moi stp ? je veut tester ça .. Canon 5d mark III 1.2.3

Il a dit que nous devrons attendre pour ceux qui savent comment la faire de completer leurs tests :(

wyrlyn

Any status update about the process? I would like to try out on my 700D