crop_rec on steroids: 3K, 4K, 1080p48, full-resolution LiveView

Started by a1ex, April 01, 2017, 11:15:41 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Levas

@Alex,

I'v got a full resolution crop_rec mode for the 6d now, but there are way less frames in the buffer memory then expected.

6d has about 250MB buffer.
Not sure if frames that go to the buffer memory are already lossless compressed or not ?
But anyway, if I shoot 5472 x 2290 at 4.8 fps
One uncompressed frame is about 21MB.
I expect that at least 10 frames should fit in the buffer, before automatically stopping recording.
But when I record, recording stops immediately and shows 2 frames writing to memory card out of the buffer (2 when I expect 10 ?).

Is there a logical reason that there are way less frames in the buffer then expected with full resolution crop mode ?

nikfreak

100D
805e -> 41697784
8060 -> 41697ac0
805f -> 41697bc4
8061 -> 41697bc8

what dfort mentioned: 805f and 8061 didn't show up until I switched to 1920/24
[size=8pt]70D.112 & 100D.101[/size]

mk11174

Guess different on my 700D?
Also, I was getting an N/A for ML shutter Display until I changed the addresses for my camera, once I did, I get shutter value in ML again.
In movie mode 1080P nothing enabled in ML other then ADTG tool.
FPS Override off, everything default ML settings
They also only stay loaded in ADTG tool for a few seconds then gone until I restart camera.
The values are different in both images because on the 700D, the frame rate jumps around randomly 29.973 and 29.958, has always done this, so these values change with the frame rate jump.

Guess I didnt need to post all these images because I now see these values are only differ cause shutter speed was different, LOL!! OOOPS  :-[

1080P @30fps Movie Mode






1080P @24fps Movie Mode






x5 and x10 Mode in Movie Mode all resolution modes
In x5 or x10 mode, these registries don't vanish like they do while not in x5 or x10 mode, they stay in the ADTG tool and if I go back to non x5 or x10 mode, and come back to ADTG tool, these registries vanish after a few seconds until restart.




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

a1ex

Got it, so these hardcoded addresses can't be trusted.

@Bilal: maybe the address changes while recording H.264?!

theBilalFakhouri

Quote from: a1ex on July 09, 2018, 09:36:35 AM
If you comment out FRAME_SHUTTER_BLANKING_WRITE, it no longer shows these artifacts, right?

I didn't get it. Should I do something in the code?

Edit: If you mean deleting this from the code:
#define FRAME_SHUTTER_BLANKING_WRITE  (lv_dispsize > 1 ? &FRAME_SHUTTER_BLANKING_ZOOM : &FRAME_SHUTTER_BLANKING_NOZOOM)

The shutter speeds no longer affected (like the old builds the range is limited when using FPS override) and there are no artifacts.

Quote from: a1ex on July 09, 2018, 08:15:19 PM
@Bilal: maybe the address changes while recording H.264?!

No it's the same in all modes even while recording H.264.

Made some tests again sometimes the artifacts showed all modes even x5 sometimes it's not shown anything. I couldn't use adtg_gui while FPS override is on I couldn't get the fast shutter speeds --> The higher shutter speeds doesn't affect the exposure when using FPS override and when enabling adtg_gui (memory patches?)  .

Also I noticed in @dfort and @mk11174 screenshots I can see the "N" for NRZI,, I don't see "N" in my cam. Edit: this because I am using old adtg_gui . Not a big thing.

a1ex

If you override the shutter blanking registers 805f and 8061 from adtg_gui, do you still get these artifacts?

If not, I think I can come up with a fix (one that would also fix the old ISOless errors).

mk11174

I noticed while using crop_rec module with Full Res Live view preset, resized to 4464x2512 16:9 in the preset because anything higher freezes during recording, but anyway, while using this mode, since I can stay in regular mode and don't have to go to x5 mode, I get 6.527fps and I am able to adjust my shutter in ML to 12k down to 1/7 is this really 12k?

If I go into x5 mode, can only adjust to 1/11 down to 1/7.

I also noticed, if you try to set a shutter with ML it reverts back to canon shutter speeds when you goto x5 mode, press shutter button, or go back into ML menu.

So if I goto Full Res live view preset, then goto ML menu and switch to say a non canon value, like 12K, I see the screen get super dark, if I exit ML it holds until I either go back into ML menu or try to switch to x5 mode even though I don't need to in this mode, or if I press half shutter, it will then go to 1/30 again all by itself.

If I switch to the 12k and leave ML menu and go right to recording, it holds until I do any of the above.

Is this to be expected, or not normal with your new update for these shutter blanking registries?

Update! I just tested build before these new changes and I guess this is how it works as far as not holding ML shutter speeds anyways.

I see I def dont have 12k shutter speed though before these changes, so thats new for sure, but is it really that fast, it does get pretty dark?
500D/T1i  550D/T2i  600D/T3i  700D/T5i

a1ex

I believe it's really that fast, but rolling shutter is much larger than exposure time (so it may not be very useful for lightning, for example). Only tested by looking at ML spotmeter and doing the math; didn't check motion blur.

mk11174

Yeah, def not good for lightning, was just thinking that was pretty fast, which is pretty cool if it can be used for anything, maybe water drops possible.

Just good to know its correct and not just some false value.
500D/T1i  550D/T2i  600D/T3i  700D/T5i

Levas

Quote from: a1ex on July 09, 2018, 11:50:53 PM
If not, I think I can come up with a fix (one that would also fix the old ISOless errors).

Tested the latest experimental crop rec 4K build from the downloadspage and when trying dual iso I get the isoles error on the 6d. Is this an easy fix, could I be able to fix it in source and test it?

Sapporo

Quote from: Levas on July 10, 2018, 07:54:15 AM
Tested the latest experimental crop rec 4K build from the downloadspage and when trying dual iso I get the isoles error on the 6d. Is this an easy fix, could I be able to fix it in source and test it?
https://www.magiclantern.fm/forum/index.php?topic=7139.msg201800#msg201800

Levas

Thaks Sapporo, fixed dual iso, works on my 6d now  :D
Was busy the first time you post that   :P

a1ex

@Bilal,

Does this solve the H.264 artifacts on the EOS M when using FPS override?


--- a/src/fps-engio.c
+++ b/src/fps-engio.c
@@ -436,6 +436,9 @@
     if (FRAME_SHUTTER_BLANKING_READ != *FRAME_SHUTTER_BLANKING_WRITE)
         return;

+    /* read the FPS timer B directly from ENGIO shadow memory to have the latest value */
+    int fps_timer_b = (FPS_REGISTER_B_VALUE & 0xFFFF) + 1;
+
     /* sensor duty cycle: range 0 ... timer B */
     int current_blanking = nrzi_decode(FRAME_SHUTTER_BLANKING_READ);
     int fps_timer_b_assumed_by_canon = fps_timer_b_method ? fps_timer_b : fps_timer_b_orig;

theBilalFakhouri

Quote from: a1ex on July 09, 2018, 11:50:53 PM
If you override the shutter blanking registers 805f and 8061 from adtg_gui, do you still get these artifacts?

If not, I think I can come up with a fix (one that would also fix the old ISOless errors).

Yes I can get the artifacts in some values and the other values it working with no artifact --> The values which working in mv1080 it doesn't work in x5 it shows artifacts.

FPS override OFF.

Quote from: a1ex on July 11, 2018, 03:29:09 PM
@Bilal,

Does this solve the H.264 artifacts on the EOS M when using FPS override?


--- a/src/fps-engio.c
+++ b/src/fps-engio.c
@@ -436,6 +436,9 @@
     if (FRAME_SHUTTER_BLANKING_READ != *FRAME_SHUTTER_BLANKING_WRITE)
         return;

+    /* read the FPS timer B directly from ENGIO shadow memory to have the latest value */
+    int fps_timer_b = (FPS_REGISTER_B_VALUE & 0xFFFF) + 1;
+
     /* sensor duty cycle: range 0 ... timer B */
     int current_blanking = nrzi_decode(FRAME_SHUTTER_BLANKING_READ);
     int fps_timer_b_assumed_by_canon = fps_timer_b_method ? fps_timer_b : fps_timer_b_orig;


The problem is still there,, I am only have 700D so I tested it in 7 0 0 d .

theBilalFakhouri

When using "High Jello" in FPS override submenu the problem was solved (In the beginning you will see the artifact but press PLAY and get back to LiveView it's no longer here even while recording H.264) but I noticed some small flickering in some shutter speeds.

Except I couldn't use shutter speeds more than ~1/1500 in "High Jello" at 8FPS (less or a bit more FPS) but in "Exact FPS" I can get up to 1/4000 shutter speed in low FPS.

a1ex

Quote from: theBilalFakhouri on July 11, 2018, 04:53:11 PM
Yes I can get the artifacts in some values and the other values it working with no artifact --> The values which working in mv1080 it doesn't work in x5 it shows artifacts.

That makes sense if the blanking value is larger than FPS timer B. In x5, timer B is smaller than in 1080p/720p, so with your procedure it's easy to get a blanking value that is too large.

If you do the other way, i.e. lock the blanking register in x5 and go back to 1080p/720p, you should see no artifacts.

If adding that line of code to fps-engio.c does not solve the issue, that might be Canon firmware setting the shutter blanking first, and FPS timer B afterwards. That's more difficult to fix; we may need to know in advance the timer B value that's going to be set by the firmware.

Levas

100fps recording on a 6d with Magic Lantern, put on a 25fps timeline  8)
Stopwatch on my phone screen:
https://drive.google.com/open?id=1Chmdf6zciPikRg4NGIGOI1uMZKnphO1M

100fps is possible on the 6d, but not usable.
Camera interface becomes painfully slow, I almost pressed the recording button on the cam the same time as I started the stopwatch on my phone, took almost 30 seconds, before the camera starts recording (30 seconds after start button press  :P )
And as you can see in the video, the bottom of the frame is still a little corrupted.
But hey, proof off concept  ;D


mk11174

While playing with resolutions on my 700D, I wanted to see why silent picture will not take a regular silent picture at these custom presets for Fullres LV in crop_rec.

Wanted to tweak with it because even though we can see the frame check preview at the higher res preset, you can't record it without it freezing.

So figured was easier to use regular silent pictures while adjusting.

Here are some configurations I did to see what the limit was trying both sides at max. These all take a silent picture, any higher on either side, just says preparing.
Not sure if this info is useful or not, but figured I would post since it seems there is some sort of limit factor of what we can actually record.
3900x3500  0xdcc03f1  = 0x16C7E8C
3956x3445  0xd9503ff  = 0x16BEB07
3960x3444  0xd940400  = 0x16C2E28
5208x2626  0xa620538  = 0x16D31B4


Also, this is max you can record in mlv-lite without it crashing after a few seconds.
And recording as I mean, setting to record while hold HS, so like pressing it quick to grab some frames after a few tries will crash any higher then what these dimensions equal.
5208x2159  0x88F0538  = 0x12C3FC6
500D/T1i  550D/T2i  600D/T3i  700D/T5i

g3gg0

Help us with datasheets - Help us with register dumps
magic lantern: 1Magic9991E1eWbGvrsx186GovYCXFbppY, server expenses: [email protected]
ONLY donate for things we have done, not for things you expect!

theBilalFakhouri

Quote from: a1ex on July 11, 2018, 05:31:04 PM
If you do the other way, i.e. lock the blanking register in x5 and go back to 1080p/720p, you should see no artifacts.

Actually it affected only 720p but not like before (a bit better) it's look like this (watch this in 720p @60fps in YT) :


And in 1080p is working fine.



Quote from: Levas on July 11, 2018, 08:54:19 PM
100fps recording on a 6d with Magic Lantern, put on a 25fps timeline  8)

Cool :D

Can you share your settings ? which mode and what the registers have you changed?



@mk11174

You can use the preset "Full-res LiveView" 5208x3230 in this crop_rec you can get 1 frame in mlv_lite 14-bit lossless sometimes you didn't get any frames (blank MLV) but if you use uncompressed 10-12-14 bit it will become more stable (3 frames in 10-bit). The problem and the solution here and Here.

In Silent module I noticed "Simple" mode doesn't work (still preparing...) switch it to "Burst" you can shoot uncompressed DNG without problems but L-DNG it will not save the picture.

mk11174

Quote from: theBilalFakhouri on July 11, 2018, 11:52:09 PM
You can use the preset "Full-res LiveView" 5208x3230 in this crop_rec you can get 1 frame in mlv_lite 14-bit lossless sometimes you didn't get any frames (blank MLV) but if you use uncompressed 10-12-14 bit it will become more stable (3 frames in 10-bit). The problem and the solution here and Here.
I am using my own compiled crop_rec module, its updated with all alex new tweaks, I can record at that res too, but I dont feel its stable that high, it freezes randomly during recording, and I need preview to work, so the other bits will not work for me, 14bit and 14bit compressed work just fine with preview.

Not really having an issue with the module, just was adding that info in case it was useful since there seems to be some type of limiting factor.

But thanks for the info.  :)
500D/T1i  550D/T2i  600D/T3i  700D/T5i

Levas

@theBilalFakhouri

The 100fps is done in Canon 720p mode.
I did this one in 5 x zoom mode(Canon 720P mode), so changed CMOS 6 and 7 registers for center crop (little try and error on the CMOS 7 register)
The shutter blanking registers are automated by a piece of code from Alex, sended earlier in this topic.
For the rest I left Horizontal resolution alone, although I did minimize the A timer for standard horizontal resolution.
After that, calculate B timer for 100 fps, adapted 6804 resolution register to that and 713c and 7150 registers.
But camera interface is really slow at these settings.

Just found out that adjusting the B timer slightly the interface can become snappy again. At least at 75 fps.
I first had a slow interface setting for 75 fps, but lowered the B timer just by one and now I have a snappy reacting camera at 75 fps.


Boobie

Hello, can we please add the following 24p modes?

16:9 24p
(1024*sqrt(10)) x (576*sqrt(10))
3238*1821 = 5,896,398 pixel readout
3238/1821 = 16/9 aspect ratio

Anamorphic 4:3 24p
(1024*sqrt(10))/sqrt(4/3) x (576*sqrt(10))*sqrt(4/3)
2804*2108 = 5,896,812 pixel readout
2804/2108 = 4/3 aspect ratio

Both of these have no issues on the hardware, they fall underneath the 5,898,240 pixel readout limit.

sys73r

I'm using 5D3 1.1.3 running magiclantern-Nightly.2018May01.5D3113 with 64Gb Lexar 160MB/s and a Kamerar 256GB card.

I was recording fine until It seems I ran out of battery, switched battery and couldn't never record more than 3 frames. at first I thought it was something related to the free space of the card, I formatted them both and cleaned up space in the SD as well. Same thing I couldn't record any more than 3 frames and it stops.

besides that I've just created 3 lua scripts to switch between recording modes, other than that It was working OK.

could it be ML files got corrupted? I even turned on/off the camera several times including removing the battery.

Another weird thing I saw was the "Remaining Storage space" in the top right corner for both cards shows 15GB (both cards formatted exFat)