Canon 100D / SL1

Started by nikfreak, October 19, 2015, 10:41:29 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

nikfreak

playing with the registers is time consuming by trial&error with adtg_gui. For the moment I don't spend any time on this. There's also some 700D implementation of mk1174(?) which I wanted to reproduce for 100D where he extended resolution and reported recording as "possible" at some reduced fps (idk have the link not available atm but a1ex linked to it in some other post a shot while ago. guess it was some type of 1:1 mode or like that....)

regarding adtg_gui. It's working ofc. For the iso-research branch you would need to merge 100D in it first and afterwards be sure that you use the correct stubs from here. On 100D_merge_fw101 branch it's working but that doesn't have the extended adtg_gui from iso-research branch. if you have problems getting it to work on iso-research branch I could compile a build for you later.
[size=8pt]70D.112 & 100D.101[/size]

a1ex

@Danne: since you also have a 5D3, the first step I'd recommend would be to play with adtg_gui on that camera and reproduce the crop_rec presets on adtg_gui (without having to enable crop_rec). Some registers may be common, others... unfortunately not.

Try to understand what's the role of each modified register, e.g. see what happens if you stop overriding it, or if you use some other value. Some are bit fields, others are regular values, others are NRZI-encoded.

If LiveView can't keep up, pick a lower FPS in Canon menu, or override the FPS registers to reduce the frame rate.

One thing to remember: adtg_gui operates only when Canon code writes to these registers. The interesting stuff happens when switching video modes, so if in doubt, go to PLAY mode and back to refresh LiveView.

To increase video resolution beyond Canon's limits, you *will* have to allocate additional memory for the raw buffer.

Danne

Quote@Danne: since you also have a 5D3, the first step I'd recommend would be to play with adtg_gui on that camera and reproduce the crop_rec presets on adtg_gui (without having to enable crop_rec).
Not a bad tip. Been working hard on the registers on my eosm but only put me to sleep in the end giving me all sorts of scrambled live view sightings.


By the way. Was trying to compile adtg_gui in 100D_merge_fw101 but got the same message as when trying to compile directly in crop_rec_4k:
Building module adtg_gui...
Updated HGVERSION
[ README   ]   module_strings.h
Help page 1: Usage 1/3
Help page 2: Usage 2/3
Help page 3: Usage 3/3
[ CC       ]   adtg_gui.o
adtg_gui.c: In function 'adtg_gui_init':
adtg_gui.c:1072:9: error: 'ENGIO_WRITE_FUNC' undeclared (first use in this function)
         ENGIO_WRITE_FUNC = 0xFF2B2460;  // from stubs
         ^
adtg_gui.c:1072:9: note: each undeclared identifier is reported only once for each function it appears in
adtg_gui.c:1073:9: error: 'ENG_DRV_OUT_FUNC' undeclared (first use in this function)
         ENG_DRV_OUT_FUNC = 0xFF2B2148;
         ^
make[4]: *** [adtg_gui.o] Error 1


Tried merging iso-research into the mix but boy was I having merge conflicts. So Nikfreak, my lazy side will tell you yes to providing me with a 100D build with adtg_gui for the 100D. Meanwhile I will practice on my 5D mark III switching modes, fps etc to see if I will get lucky. Been reading links and posts and very impressed of gregs and others achievements in this field.

nikfreak

Ok, give me a lil' bit...
[size=8pt]70D.112 & 100D.101[/size]

DeafEyeJedi

Quote from: a1ex on September 28, 2017, 10:26:35 AM
If you have the patience to run the following test, would be great; otherwise, even just a few snapshots will be very helpful.




General testing conditions:

- make sure the image has some overexposure (any amount will do)
- enable RAW Diagnostics (default settings)
- optionally enable RAW Diagnostics -> Dump RAW Buffer (to save the analyzed frames as DNG)
- disable Global Draw
- press half-shutter for about one second to analyze the current LiveView frame

Basic tests:
- analyze one LiveView frame at every ISO (including intermediates)
- write down the white level (as printed on the top right corner)

How to run:

For RAW Video in [ "OFF", "12-bit lossless" ]:
  For movie mode in [ "1080p any FPS", "720p any FPS", "5x zoom", "3x3 crop_rec", "Movie crop mode" ]:
    Run the basic tests.

Note the raw_diag screenshots won't record the RAW Video state, but it will be obvious from the white level.

Results: 2 matrices of white level values (5 rows x as many columns as ISO values).

Additional test:
- try one ISO (any of them) at various apertures (ideally from f/1.4 to f/8, if your lens allows it), in any mode. I don't expect changes here.

Ideally, this test should be coded as a Lua script and ran on all other camera models.

Installed raw_diag.mo with the experimental build only to learn that it wouldn't work. required a battery pull. Was this to be expected? :)

Will use the latest nightly and run this test per your request atm.

Also will be recording LiveView from Shogun so you could get the QEMUness sight from it, if that would be helpful at the very least?

Stand by...

*EDIT*

Well apparently I was wrong from assuming that I had to use nightly because according to @a1ex I have to use 12-bit lossless while in mv1080 which means I have to use the experimental since they aren't avail in the nightlies (obviously d'oh on my part!) yet. Am I missing something in here?

*EDIT 2*

Just realize I was using @Danne's latest build with all the bells and whistles especially for Lossless DNG while using FRSP. Maybe that was the culprit to use raw_diag.mo on it?

Anyway so I'm going to use 2017-10-02 13:23 crop_rec_4k build from experimental page and report back. Sorry for the mess guys!
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

nikfreak

Quote from: Danne on October 04, 2017, 06:15:09 PM
...
By the way. Was trying to compile adtg_gui in 100D_merge_fw101...


else if (is_camera("100D", "1.0.1"))
    {
        ADTG_WRITE_FUNC = 0x47144; //"[REG] @@@@@@@@@@@@ Start ADTG[CS:%lx]"
        CMOS_WRITE_FUNC = 0x475B8; //"[REG] ############ Start CMOS"
        // ENGIO_WRITE_FUNC = 0xFF2B2460;  // from stubs
        // ENG_DRV_OUT_FUNC = 0xFF2B2148;
    }


Check, if this suits your needs:
https://drive.google.com/file/d/0B9Mu66yg5QzRWjhId056aWhpVEk/view?usp=sharing
[size=8pt]70D.112 & 100D.101[/size]

Danne

Ah, thanks you. Works nicely :)
Why are the lines there in adtg_gui.c if they needs commenting out by the way?

Enabled in makefile(root):
CONFIG_GDB          = y
endif
CONFIG_GDBSTUB      = y

and in the modules makefile:
adv_int \
crop_rec \
adtg_gui \

and working also in crop_rec_4k. But is it a valid way to do this?

*Tested against 4k branch but not working but worked with 100D_merge_fw101. Gonna stick to that with the 100D...

nikfreak

copy&paste from earlier experiments in iso-research branch where those lines are used.
Yes, valid. config_gdbstub shouldn't be necessary
[size=8pt]70D.112 & 100D.101[/size]

nikfreak

Btw: did you try these. I didn't yet so can't say if they would have worked?

https://builds.magiclantern.fm/modules.html#iso-research
[size=8pt]70D.112 & 100D.101[/size]

Danne

Yup, tested the adtg_gui but not successful on the 100D. Didn´t check the others. Yet. Kind of new to this.

DeafEyeJedi

Alright here are the results (boy this was a fun ride, and sure enough learned quite a bit by just reading the diagnosis on LV from raw_diag.mo):

Note everything was shot in 15mm 1/50th (1/60th in 60p) @ f3.5 for those who are curious.

1080p (24p) RAW OFF:

•ISO 100 - White level @ 16381 (0)

•ISO 160 - White level @ 16381 (0)

•ISO 200 - White level @ 16381 (0)

•ISO 320 - White level @ 16381 (0)

•ISO 400 - White level @ 16381 (0)

•ISO 640 - White level @ 16381 (0)

•ISO 800 - White level @ 16381 (0)

•ISO 1250 - White level @ 16381 (0)

•ISO 1600 - White level @ 16381 (0)

•ISO 2500 - White level @ 16381 (0)

•ISO 3200 - White level @ 16381 (0)

•ISO 5000 - White level @ 16381 (0)

•IS0 6400 - White level @ 16381 (0)

1080p (24p) RAW 12-bit lossless:

•ISO 100 - White level @ 4931 (0)

•ISO 160 - White level @ 16381 (0)

•ISO 200 - White level @ 16381 (0)

•ISO 320 - White level @ 16381 (0)

•ISO 400 - White level @ 16381 (0)

•ISO 640 - White level @ 5361 (0)

•ISO 800 - White level @ 5361 (0)

•ISO 1250 - White level @ 16381 (0)

•ISO 2000 - White level @ 5361 (0)

•ISO 2500 - White level @ 5361 (0)

•ISO 3200 - White level @ 5361 (0)

•ISO 5000  - White level @ 5361 (0)

•ISO 6400 - White level @ 5361 (0)

Movie mode in 1080p (30p) RAW OFF:

•ISO 100 - White level @ 4931 (0)

•ISO 160 - White level @ 5361 (0)

•ISO 200 - White level @ 5361 (0)

•ISO 320 - White level @ 5361 (0)

•ISO 400 - White level @ 5361 (0)

•ISO 640 - White level @ 5361 (0)

•ISO 800 - White level @ 5361 (0)

•ISO 1250 - White level @ 5361 (0)

•ISO 1600 - White level @ 5361 (0)

•ISO 2500 - White level @ 5361 (0)

•ISO 3200 - White level @ 5361 (0)

•ISO 5000 - White level @ 5361 (0)

•ISO 6400 - White level @ 5361 (0)

Movie mode in 720p (60p) RAW OFF:

•ISO 100 - White level @ 4931 (0)

•ISO 160 - White level @ 5361 (0)

•ISO 200 - White level @ 5361 (0)

•ISO 320 - White level @ 5361 (0)

•ISO 400 - White level @ 5361 (0)

•ISO 640 - White level @ 5361 (0)

•ISO 800 - White level @ 5361 (0)

•ISO 1250 - White level @ 5361 (0)

•ISO 1600 - White level @ 5361 (0)

•ISO 2500 - White level @ 5361 (0)

•ISO 3200 - White level @ 5361 (0)

•ISO 6400 - White level @ 5361 (0)

Movie mode 5x zoom in 1080p (24p) RAW OFF:

•ISO 100 - White level @ 4931 (0)

•ISO 160 - White level @ 5361 (0)

•ISO 200 - White level @ 5361 (0)

•ISO 360 - White level @ 5361 (0)

•ISO 400 - White level @ 5361 (0)

•ISO 640 - White level @ 5361 (0)

•ISO 800 - White level @ 5361 (0)

•ISO 1250 - White level @ 5361 (0)

•ISO 1600 - White level @ 5361 (0)

•ISO 2000 - White level @ 5361 (0)

•ISO 3200 - White level @ 5361 (0)

•ISO 6400 - White level @ 5361 (0)

Movie mode 3x3 crop_rec in 720p (60p) RAW OFF:

•ISO 100 - White level @ 4931 (0)

•ISO 160 - White level @ 5361 (0)

•ISO 200 - White level @ 5361 (0)

•ISO 320 - White level @ 5361 (0)

•ISO 400 - White level @ 5361 (0)

•ISO 640 - White level @ 5361 (0)

•ISO 800 - White level @ 5361 (0)

•ISO 1250 - White level @ 5361 (0)

•ISO 1600 - White level @ 5361 (0)

•ISO 2500 - White level @ 5361 (0)

•ISO 3200 - White level @ 5361 (0)

•ISO 5000 - White level @ 5361 (0)

•ISO 6400 - White level @ 5361 (0)

Movie mode Movie crop mode in 1080p (24p) RAW OFF:

•ISO 100 - White level @ 4931 (0)

•ISO 160 - White level @ 5361 (0)

•ISO 200 - White level @ 5361 (0)

•ISO 320 - White level @ 5361 (0)

•ISO 400 - White level @ 5361 (0)

•ISO 640 - White level @ 5361 (0)

•ISO 800 - White level @ 5361 (0)

•ISO 1250 - White level @ 5361 (0)

•ISO 1600 - White level @ 5361 (0)

•ISO 2500 - White level @ 3365 (0) <-- this one caught my eye and decided to try it again in same ISO below

•ISO 2500 - White level @ 5361 (0) <- ran this three times to no avail. All same. Weird w what happened earlier up above?

•ISO 3200 - White level @ 5361 (0)

•ISO 5000 - White level @ 5361 (0)

•ISO 6400 - White level @ 5361 (0)

Quote from: a1ex on September 28, 2017, 10:26:35 AMAdditional test:
- try one ISO (any of them) at various apertures (ideally from f/1.4 to f/8, if your lens allows it), in any mode. I don't expect changes here.

Will do this later as my eyes are a bit fried up from this.  8)

Quote from: a1ex on September 28, 2017, 10:26:35 AM(to save the analyzed frames as DNG)

Still need them? Let me know and I can zip & upload them to bitbucket.

Also LiveView recording (from Shogun) will be uploaded soon just for those who are curious on how it looks while using it.
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

a1ex

Thanks, so only ISO 100 with lossless compression has an unusual white level (but ISO 100 uncompressed is fine).

The 5D3 shows 5631 or 5630 in lossless 12-bit mode; are you sure 100D shows 5361 and not 5631?

The outlier at ISO 2500 was likely a photo without overexposure.

May I ask for a similar test in photo mode, outside LiveView?

DeafEyeJedi

Quote from: a1ex on October 04, 2017, 10:22:58 PM
Thanks, so only ISO 100 with lossless compression has an unusual white level (but ISO 100 uncompressed is fine).

The 5D3 shows 5631 or 5630 in lossless 12-bit mode; are you sure 100D shows 5361 and not 5631?

Triple checked.  See below.



Quote from: a1ex on October 04, 2017, 10:22:58 PM
The outlier at ISO 2500 was likely a photo without overexposure.

Hmm, I guess so.

Quote from: a1ex on October 04, 2017, 10:22:58 PM
May I ask for a similar test in photo mode, outside LiveView?

Sure. When I have time as I'm about to head out to work atm. Does it need to be similar OE scene w clipping points as in previous test?
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

a1ex

Alright, so this patch should fix clip warnings and pink highlights in modes with lossless compression and less than 14 bpp:


diff -r 96b44eb365d4 src/raw.c
--- a/src/raw.c
+++ b/src/raw.c
@@ -236,7 +236,13 @@
{
     if (lv_raw_gain)
     {
-        return (WHITE_LEVEL - 2048) * lv_raw_gain / 4096 + 2048;
+        int default_white = WHITE_LEVEL;
+
+        #ifdef CONFIG_100D
+        default_white = (lens_info.raw_iso == ISO_100) ? 13500 : 15300;
+        #endif
+
+        return (default_white - 2048) * lv_raw_gain / 4096 + 2048;
     }
     
     return WHITE_LEVEL;


Can you confirm?

For example, compare a 14-bit DNG with a 12-bit lossless DNG on the same static scene with some overexposure - they should look identically after applying the patch. Without the patch, the 12-bit one should have pink highlights.

Yes, the photo mode test should also have overexposed areas.

Danne

QuoteFor example, compare a 14-bit DNG with a 12-bit lossless DNG on the same static scene with some overexposure - they should look identically after applying the patch. Without the patch, the 12-bit one should have pink highlights.
Trying to follow here. Just checked with patch applied and preview in liveview still show pink highlight in 12bit as opposed to 14bit previews.
Comparing 14bit and 12bit dng files. They usually looks exactly the same no? No pink highlights in the dng checking in acr when filming 12bit anyway. I am probably misinterpreting bigtime...

Are we testing 12bit movie mode iso 100 specifically between patched an non patched version?

brigantes

I've also tried the patch. 12bit compressed DNG look identical to 14bit and have no pink highlights when loaded in ACR or Resolve. Before the patch I was getting pink highlights in both software. I also still see the pink highlights and the image is very dark in Live View when set to 12 bit compressed (14 bit compressed looks normal).

Danne

@brigantes
What ML build are you using when getting 12bit lossless with pink highlights? Trying to reproduce on crop_rec_4k overe here but didn´t succeed yet. Also, what tool are you using to process to dng files?

brigantes

@Danne
current crop_rec_4k build on the experiments download page gives me pink highlights if I have any overexposed parts of the image and use 12bit lossless compression to record mlv. As soon as I set compression to 12bit lossless I also get a darkening of the live view image and any overexposed areas also show the pink highlights same as the dng from raw mlv. As soon as I half press the shutter the live view image returns to normal (no pink highlights and a brighter live view image).

I use mlvfs or mlvdump from crop_rec_4k build and then adobe camera raw to process dng

Danne

I will test some more when back home. Thanks.

12georgiadis

Dear all,
just wanted to know if the 100D can records in continuous 1728*972 with comp raw ? Is there aliasing and need a VAF filter like the 7D ?
Thanks!

Felipe

Does need VAF, The one from Mosaic engineering gives clean footage, Another option is the 3x crop with the lens 10-18, gives you the equivalent of a 48-88 in full frame
and does not show Aliasing and Moire. All this with .MOV Video, Aliasing and Moire exists also in RAW Video, no difference, Hope it helps.
650D-700D

12georgiadis

Thank you Felipe. But do you have a VAF for 100D ? I can't find any on mosaic website.

Felipe

650D-700D

dfort

You can email them directly with your questions: [email protected]

I tried getting one for the EOSM but no luck. You'll probably have better luck with the 100D because it is pretty much the same as the other crop sensor DSLRs. Though you should check because there are models specifically for the 70D and 7D then there's the one that fits the 550D, 600D, 650D and 700D. (I know it fits the 700D because I have one of those.)

12georgiadis

Thank you Felipe and Dfort for advices. I contacted mosaic engineering to know what is the best solution.