550D & 500D porting 14bit RAW DNG silent pics

Started by wolf, May 16, 2013, 12:22:47 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

wolf

I'd like to ask if someone could help porting DNG pics to 550D.

QuoteI've posted a porting guide for DNG silent pics here:
http://www.magiclantern.fm/forum/index.php?topic=5240.msg32128#msg32128

Like a1ex said I took a screenshot of "Show EDMAC" before and after I pressed "Don't click me!"
before: after:

1. fill in the "blanks" in raw.c
#if defined(CONFIG_550D)
#define RAW_LV_EDMAC ? ? ? ? ?
#endif

What is the right address?

a1ex

EDMAC #16 (1888x1181) seems to be the one. That is c0f26008.

Greg


wolf

Thanks a1ex.

2.
/**
* Photo-mode raw buffer address
* On old cameras, it can be intercepted from SDSf3 state object, right after sdsMem1toRAWcompress.
* On new cameras, use the SSS state, sssCompleteMem1ToRaw.
*
* See state-object.c for intercepting code,
* and http://a1ex.bitbucket.io/ML/states/ for state diagrams.
*/

#if defined(CONFIG_5D2) || defined(CONFIG_EOSM) || defined(CONFIG_650D) //FIXME: 650D is untested
#define RAW_PHOTO_EDMAC 0xc0f04A08
#endif


I mirrored http://a1ex.bitbucket.io/ML/states/ and tried to grep c0f and C0F without result to find the site with the value.

@Greg
What did you use for
#define RAW_PHOTO_EDMAC
Do we need it anyway?




Greg

I use the values 5D II

#ifdef CONFIG_5D2
#define RAW_PHOTO_EDMAC 0xc0f04A08
#endif

#ifdef CONFIG_500D
#define RAW_PHOTO_EDMAC 0xc0f04A08
#endif


CAM_COLORMATRIX1  :
www.cybercom.net/~dcoffin/dcraw/dcraw.c

#ifdef CONFIG_500D
int dynamic_ranges[] = {1104, 1094, 1066, 1007, 933, 848, 737, 625};
#endif


#ifdef CONFIG_500D
    //~ { "Canon EOS 500D", 0, 0x3479,
    //~ { 4763,712,-646,-6821,14399,2640,-1921,3276,6561 } },

    #define CAM_COLORMATRIX1                       \
     4763, 10000,      712, 10000,    -646, 10000, \
    -6821, 10000,    14399, 10000,    2640, 10000, \
    -1921, 10000,     3276, 10000,    6561, 10000
#endif


#ifdef CONFIG_500D
skip_top    = 24;
skip_left   = 74;
#endif




wolf

Yeah.. :-) Thanks for helping.



$ diff magic-lantern/src/raw.c raw.c
36,40d35
< #if defined(CONFIG_550D)
< #define RAW_LV_EDMAC 0xC0F26008
< #endif
<
<
57,59c52
< #ifdef CONFIG_550D
< #define RAW_PHOTO_EDMAC 0xc0f04A08
< #endif
---
>
143,154d135
< #ifdef CONFIG_550D
< //~ { "Canon EOS 550D", 0, 0x3dd7,
< //~ {  6941,-1164,-857,-3825,11597,2534,-416,1540,6039 } },
<     #define CAM_COLORMATRIX1                        \
<       6461, 10000,     -1164, 10000,    -857, 10000,\
<      -3825, 10000,     11597, 10000,    2534, 10000,\
<       -416, 10000,      1540, 10000,    6039, 10000
< #endif
<
<
<
<
253,258d233
<         #ifdef CONFIG_550D
<         skip_top        = 26;
<         skip_left       = 152;
<         skip_right      =  0;
<         #endif
<
377,380d351
<     #endif
<
<     #ifdef CONFIG_550D
<     int dynamic_ranges[] = {1157, 1154, 1121, 1070, 979, 906, 805, 707};



mk11174

Quote from: wolf on May 16, 2013, 06:44:34 PM
Yeah.. :-) Thanks for helping.

Hey Wolf! Care to share your bin so I can test this feature?

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



ashtrai

Whats the easiest way to try this out on a 550D? Replace the autoexec_bin file on my card is a given, but what other files (modules etc) do I need?

Greg

[quote author=wolf link=topic=5446.msg35908#msg35908 date=1368722674]
<     #ifdef CONFIG_550D
<     int dynamic_ranges[] = {1157, 1154, 1121, 1070, 979, 906, 805, 707};

These values ​​are probably wrong

Try these values ​​for the 550D:
1095, 1092, 1059, 1008, 917, 844, 744, 645

wolf

I took them from
http://www.dxomark.com/index.php/Cameras/Camera-Sensor-Database/Canon/EOS-550D-pre-production
but it's the (pre-production model)

the commercial model is not available.

I'll try your values.
Thanks

dlrpgmsvc

Great Wolf ! Many thanks ! You are great !  8)

Do your mods are (or will be) integrated into the official unified builds ? Let me know ! Many thanks !
If you think it's impossible, you have lost beforehand

tihon

Cinema, cinema, cinema


dlrpgmsvc

Full resolution frame example on 550D (1736 x 1156 pixels) (1 second fixed exposure, independent of the exposure time you set) -> https://dl.dropboxusercontent.com/u/46130896/sample.jpg

Max speed is about a frame every 2 seconds on 550D with a 30 MB/s 8Gb Sandisk SD card

To take silent dng, go to camera settings on ML menu and enable silent pics (ON), then put the rotating knob of the camera into M (manual), then push the liveview button (the red one) then keep half pressed the shoot button to start silent-shooting. Release it to stop the sequence.
If you think it's impossible, you have lost beforehand

dlrpgmsvc

Some questions :

[1] Do the capture resolution can be selected ?
[2] Do the exposure time can be selected ?
[3] Do there is hope to run a little realtime movie (at least at 24fps) by tweaking something (resolution or exposure for example, or other things) ?

Many thanks !
If you think it's impossible, you have lost beforehand


tihon

It would be nice to have 1280x400 as 600d RAW DNG with 24 fps. It should be posible

QuoteMax speed is about a frame every 2 seconds on 550D with a 30 MB/s 8Gb Sandisk SD card
Not bad for timelapsers)))
Cinema, cinema, cinema

Greg

How do I find these values?

+/** experimental EDMAC research **/
ConnectWriteEDmac
ConnectReadEDmac
SetEDmac
EDMAC_RegisterCompleteCBR
StartEDmac
PopEDmac

dlrpgmsvc

Quote from: tihon on May 16, 2013, 11:20:49 PM
It would be nice to have 1280x400 as 600d RAW DNG with 24 fps. It should be posible

Yes ! It would be great ! Let's pass the ball to Wolf...   :P
If you think it's impossible, you have lost beforehand

Greg

500D :


500D max image buffer is 2000 x 999?
This is RAW_PHOTO_EDMAC

a1ex

On 5D2, that edmac is reused for something else (and that's the reason for capturing it from the state objects).

ecek2

EOS 550D 18-55mm IS - 50mm F/1.8

a1ex

Skip offsets need to be adjusted then (they are too big).