Canon 650D / T4i

Started by nanomad, August 03, 2013, 07:27:52 PM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

a1ex

Quote from: dfort on October 16, 2017, 12:55:11 AM
Ok--we're good then? There seems to be a problem with the lossless DNG from Walter's 650D test. Did I get an address wrong?

Or maybe the 650D isn't nearly the same as 700D - answered in #1943.

Walter Schulz

What is the next step now?
Haven't done any work on dfort's hack yet.

a1ex

One way would be running the lossless compression routine in QEMU and comparing I/O traces to 700D/100D ones to see if there's anything obvious missed. That should also be useful for diagnosing the full-res lossless bug - is our code running out of memory, or maybe Canon's encoder has limits on maximum image size?

Compressing some arbitrary*) data and comparing it to the original, outside LiveView, may also be helpful. Maybe you'll find it works only before taking a CR2 picture, or only after, or maybe after a JPG one, or only after entering LiveView, or...

*) Synthetic data may help (e.g. a small matrix filled with 1 2 3 4 ... or any other known pattern).

In other words, trial and error (detective work).

A startup log (dm-spy-experiments branch) with interrupts, engio messages and ResLock messages enabled, covering one still CR2 picture, can be also helpful (background reading). This branch doesn't compile out of the box on 650D though (some stubs may be missing).

Side note: 5D3 has an interesting bug: if you take a CR2 image while the camera is in movie mode, our lossless compression functions stop working. If you take it in photo mode (LiveView or not), the lossless functions are not affected. I wasn't able to diagnose it with current tools (e.g. adtg_gui or DebugMsg logging).

dfort

Falling further and further down the rabbit hole.

Doesn't the 650D require SFDATA.BIN to run in QEMU? I'm missing that. I'm also missing the ROM0.BIN. I did everything with just a ROM1.BIN that I got from the old Silk Road site that has since shut down.  ;)

Ok--seems that we still don't have a FRSP lossless DNG. I uploaded yet another test build on my Bitbucket download page. Look for:

crop_rec_4k_with_lossless_FRSP.2017Oct16.650D104.zip

a1ex

I'm just using the 700D SFDATA. This camera doesn't even have a ROM0 - QEMU asks for it because it's one size fits all (you can supply any 32MB file).

The biggest issue is missing lossless encoder emulation (shouldn't be very difficult, as the hard part was already done in mlv_dump, but it's not a beginner project either). It's on my list, but after getting qemu in mainline.

Walter Schulz

As before: Unable to get any FRSP done with modules loaded as described in the test. Please tell which modules have to be loaded for this test.

dfort

Only the silent module is needed. You already shot a simple DNG and a simple lossless DNG, the build I posted should let you also shoot FRSP lossless.



There should be a significant difference in the file size but no loss in quality:



Of course it looks like it is going to take some heavy lifting to get lossless compression working properly on the 650D.

Walter Schulz

Quote from: a1ex on October 15, 2017, 08:27:43 PM
Can you also try a full-res silent lossless picture?

Here we go:
http://filehorst.de/d/cHABDEhw
Silent.mo loaded only. Screen turns weird after taking pic. And frozen but working fine after using wheel. Switching between uncompressed DNG and compressed doesn't work that well. "... falling back to YUV" error.
Yeah, seems to be needing some adjustments in code.

dfort

Actually that weird behavior you described is normal for FRSP using the hacked build. So looking at your files--It's Alive!!!

The 14-bit lossless compressed properly and it doesn't have the artifacts that are showing up in your simple silent DNG from before. One more test, could you do a simple silent lossless using my hacked build?

[EDIT] If it works you might consider approving the hack pull request.

Walter Schulz

I'm not sure "working" is sufficient:
http://filehorst.de/d/ceiyygFF
ISO 700 it ain't. ISO setting was 200.

dfort

Strange that now FRSP is working with lossless compression but simple silent is still having issues.

Have you tried recording any video using the various compression settings? On the 700D I can get continuous recording with 10-bit lossless, 1736x1152 at 24fps.

Walter Schulz

The last build has problems with 720p setting and compression again. Glitch or purpose?

dfort

Strange, the hacked version only has changes to the silent module. It should work the same as the regular version. I uploaded a 650D build from the current crop_rec_4k branch in case anyone wants to compare the two versions. It isn't quite ready for posting on the Experiments page but for those that like living dangerously...  ;)

[EDIT] Some new commits pushed that help the 650D including, mlv_lite: fix 8..12-bit lossless in 720p on small cameras so I updated the bleeding edge test builds.

https://bitbucket.org/daniel_fort/magic-lantern/downloads/

Walter Schulz

As mentioned before: There are some issues with Silent.
a) magic_crop_rec_4k_with_lossless_FRSP.2017Oct16.650D104.zip
- ISO far from anything set in cam. ISO 100 (in cam) -> ISO 380 in Exif Or 235. Or else.
- Screen frozen with message "Saving [...]". Unlockable by pressing half shutter

-> Unclear if and when write has ended.

Fiddled around with AF (former tests with MF only). Had to reassing shutter button (C.Fn IV: Operation/Others, Shutter/AE lock button - 1:AE lock/AF (default 0:AF/AE lock)). With Simple and Full-res works as assigned: AE button runs AF, Half Shutter actuates silent pic capture. But not with Full-Res LV. Now *both* buttons trigger silent pics. Therefore no AF in this mode. Set C.Fn to default -> Same.

a1ex

Quote- ISO far from anything set in cam. ISO 100 (in cam) -> ISO 380 in Exif Or 235. Or else.

If you are in photo mode, with any non-fullres pictures, that's the right behavior. It records the ISO, shutter and aperture used for the captured LiveView frame, which are different from what you have set in Canon menu. Try setting the exposure time to 1 second - is LiveView refreshing once per second? Of course not.

In movie mode, the values should match those printed by ML (but not necessarily those printed by Canon).

Quote- Screen frozen with message "Saving [...]". Unlockable by pressing half shutter

Full-res or simple? edit: simple. Normally it should return to LiveView...

Try this in 'don't click me':

static void run_test()
{
    msleep(2000);
    PauseLiveView();
    msleep(2000);
    ResumeLiveView();
}



QuoteWith Simple and Full-res works as assigned: AE button runs AF, Half Shutter actuates silent pic capture. But not with Full-Res LV. Now *both* buttons trigger silent pics.

AF detection code is common to simple and full-res versions. Don't know why it works with one, but not the other, but short AF presses (if focusing doesn't have time to start) are likely to be mistaken for half-shutter presses. All these buttons send the same GUI event - ML tells the difference by looking whether autofocus starts or not, and this always happens some time *after* the half-shutter press event (100ms or so). So you need long press for autofocus.

esas

Downloaded crop_rec_4k_with_lossless_FRSP.2017Oct16.650D104

Went trough a1ex' routine from the post here .

Also tried capturing FRSP With normal and L-DNG.

Files here:
https://onedrive.live.com/embed?cid=28926C89F51FEF19&resid=28926C89F51FEF19%21354191&authkey=AJ8IRxGVY3XyJGw

dfort

@esas

Pretty complex test for a first post. Looks good, a bit over exposed on the FRSP but it does show some pink highlights in the lossless FRSP. Your test also confirms the simple silent lossless compressed issue. I posted a build with the Don't Click Me code so we can continue running tests for a1ex. To run it select Don't Click Me! in the Debug menu.

https://bitbucket.org/daniel_fort/magic-lantern/downloads/

dfort

Quote from: a1ex on October 17, 2017, 01:06:14 PM
Full-res or simple? edit: simple. Normally it should return to LiveView...

Try this in 'don't click me':

static void run_test()
{
    msleep(2000);
    PauseLiveView();
    msleep(2000);
    ResumeLiveView();
}


A little off topic but I tried it on the 700D and it works as expected. LiveView screen goes black then it comes back. Question, what is the difference between ResumeLiveView() and force_liveview()? I experimented with FRSP using force_liveview() to return the LiveView but haven't tried ResumeLiveView() yet.

a1ex

ResumeLiveView goes back to LiveView from the "paused LiveView" state (an artificial state not present in Canon firmware, but used by ML for various things, such as powersaving, refreshing LiveView or full-res silent pictures).

On the other hand, force_liveview is much older - it goes to LiveView from any camera state (photo mode, Canon menus, whatever).

edit: got another test for you to run, for the lossless compression routines.

dfort

I made a special build for testers with a1ex's patch:

https://bitbucket.org/daniel_fort/magic-lantern/downloads/a1ex_test.2017Oct18.650D104.zip

(Though if you really want to have some fun learn to compile ML, it is very easy to set up a development environment these days.)

dfort

Hey 650D users. Check out the progress with a1ex's test on the 6D.

Walter Schulz

Mostly occupied with other things for the next few days. Hoping esas does jump in!

esas

Out traveling at the moment (and only bringing my eos m). Will look at this when I get back home this weekend.

esas

Quote from: dfort on October 18, 2017, 01:28:58 PM
I made a special build for testers with a1ex's patch:

https://bitbucket.org/daniel_fort/magic-lantern/downloads/a1ex_test.2017Oct18.650D104.zip

(Though if you really want to have some fun learn to compile ML, it is very easy to set up a development environment these days.)
Quote from: dfort on October 18, 2017, 05:06:54 PM
Hey 650D users. Check out the progress with a1ex's test on the 6D.
OK, back home again. It's been a few days. Is this still relevant, or do you have other builds/test you want us to do? I see there's 6 downloads of the build, but no results posted.

dfort

Still relevant. Nobody has posted results recently.

Test builds are still up.