5D MarkII Shutterspeed correct?

Started by thore, July 01, 2014, 11:28:50 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

thore

Hello,
i tested different shutterspeeds with the 5D MarkII by shooting videos in a studio.

First of all i used an aperture 4,0 and shutter 1/50.
Then i used an aperture 5,6 and shutter 1/25,1.
I didn´t change the ISO!

To my knowledge the two videos have to show the same result. But they didn´t. Also between Shutter 1/100 and 1/200 there is not the same brightness. It´s the same problem without ML.

If i took JPEGs with the same approach, the pictures have the same brightness..

Can someone explain this?

I hope, you understand my problem in spite of my bad english.




jimmyD30

For obtaining the 'film look' the 180 degree shutter should be adhered too, so if you want to control depth of field then set shutter (180 rule), set aperture, and use auto-ISO (or set manually until correct exposure) with ND filter if needed.

If you want to control ISO (to keep as low as possible maybe) and still want film look, then set shutter, set iso, and then adjust aperture for correct exposure.

There are times when you don't want to fix shutter to 180 rule, like when you want a video or staccato look or doing slow motion in some cases, because then less frame blur is better.

Audionut

Exposim.

Try enabling Expo override in ML.

a1ex

[question reposted on February 15, 2017]

Was the camera in movie mode with full manual exposure?

The 5D2 has a quirk: it lets you record H.264 movies from photo mode, but the exposure will be automatic (even if you are in M on the mode dial). So, before further troubleshooting, make sure you are in movie mode with full manual exposure.

There is a way to find out the exact exposure time; it just has to be ported from 50D.

The 50D has this in consts.h:


#define FRAME_SHUTTER_BLANKING_ZOOM   (*(uint16_t*)0x404B5A2C) // ADTG register 105F
#define FRAME_SHUTTER_BLANKING_NOZOOM (*(uint16_t*)0x404B5A30) // ADTG register 1061
#define FRAME_SHUTTER_BLANKING_READ   (lv_dispsize > 1 ? FRAME_SHUTTER_BLANKING_NOZOOM : FRAME_SHUTTER_BLANKING_ZOOM) /* when reading, use the other mode, as it contains the original value (not overriden) */


For 5D2, the addresses are probably 0x404b4110/14 (not tested, but maybe @Ilia3101 is reading ;) ). Simply defining the above lines in consts.h will enable reading the exposure times directly from the ADTG registers.

ilia3101

Had to test this as I saw my name! Simple test with ƒ4.0/50.01 and ƒ5.6/25.00 - exposure looked identical(using some 10-12bit build), so its probably a lens issue @omashow.
@a1ex I added those lines to consts.h in 5D2 folder(from this point on I have no idea if I did it right) and compiled it in the iso research branch, in adtg_gui the first two registers were ADTG1[105f]N and ADTG1[1061], one had the green caption 'Shutter blanking for x5/x10 zoom', other had no text. Canon menu was 23.976fps but for some reason I couldn't get 1/25.00, only 24.99, and no 50.01, only 1/49.95. At 1/49.95 ADTG1[1061] was 0x249, and at 1/24 the register was 0x64. In zoom, shutter 1/29.74, register said 0x3, and with shutter 1/58.06 the register said 0x272. I'm sure that was all wrong but oh well.
So did '0x404b4110/14' mean FRAME_SHUTTER_BLANKING_ZOOM should be 0x404b4110 and FRAME_SHUTTER_BLANKING_NOZOOM should be 0x404b4114?

a1ex

Correct. If you already compiled adtg_gui, you should be able to see those numbers there as well (on the bottom row).

Here, shutter blanking means how long the sensor is "turned off", and its maximum value is FPS timer B. Therefore, a very small value means a duty cycle close to 100%, or 360 degrees shutter.

At 23.976 fps, timer B was 1750. If ADTG 1061 was 0x249, exposure time was 1/23.976 * (1750 - nrzi_decode(0x249)) / 1750 = 1/49.95. If that register was 0x64, the exposure time was 1/24.99.

However, at 23.976 it's unlikely to get round values. It's best to try in PAL mode (25 fps) at 1/33, 1/50, 1/100 - those shutter speeds are usually tweaked to avoid flicker. I would expect the 5D2 to set ADTG blanking to 0x190 (0x158 nrzi) at 1/33 and 0x320 (0x2b0 nrzi) at 1/50.

Here's what happens on 5D3: http://www.magiclantern.fm/forum/index.php?topic=16814.msg164062#msg164062

Can you write down a similar table for 5D2?

ilia3101

I'm a little confused as to how to do the calculations, spent some time figuring out what NRZI is, but when I repeated the this calculation:
Quote from: a1ex on February 16, 2017, 03:23:36 PM
1/23.976 * (1750 - nrzi_decode(0x249)) / 1750 = 1/49.95
I get 1/48.06185567010309, I've put the calculation in to a html: http://rawcalculator.bitballoon.com/shutter_speed_calculation/shutterspeed_5d2 I really don't know how its supposed to be done.


For 25fps timer b was 1600.

Tried calculating with the other register, 105F, still wrong values, but without the nrzi_decode, the values from 105F seemed to give the correct result in the calculation.

Registers at 25fps (no exposure override):

Shutter in ML menu - ADTG 1061 - ADTG 105F
1/33.31                       0x148         0x18f
1/41.49                       0x342         0x27c
1/45.25                       0x3aa         0x2cc
1/49.94                       0x290         0x31f
1/63.90                       0x229         0x3ce
1/82.99                       0x671         0x45e
1/90.50                       0x6c5         0x486
1/99.75                       0x6f8          0x4af
1/127.80                     0x784         0x507

I'm not sure if I'm doing it right so I didn't continue for a lot of shutter settings.
When I set the ADTG 1061 to the values you suggest it does seem to affect shutter how you predict, basically I'm 100% confused. At least I got to learn what nrzi is :D

EDIT: my calculations were bs because I had coded a nrzi encoder instead of decoder(clueless) ML functions gave correct result

a1ex

You can look up the nrzi functions in ML source code.

Looks like those old models need to add 1 to the register value. This should give exact shutter speeds in ML menu:

// in get_current_shutter_reciprocal_x1000
int blanking = nrzi_decode(FRAME_SHUTTER_BLANKING_READ) + 1;


Problem: which models require adding 1 and which don't?