Dealing with Focus Pixels in raw video

Started by dfort, October 22, 2015, 11:09:10 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

DeafEyeJedi


Quote from: dfort on January 25, 2016, 10:04:25 PM
[EDIT: Just ran another test on the EOSM and this time also came up with 21 possible 5x raw buffers. Glad I caught it before merging all the focus pixels.]

Good catch, Dan! [emoji106]
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

dfort

Updated set of focus pixel map files for the EOSM and 650D covering all crop modes are ready for testing.

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

2016-01-26_FocusPixelMaps_650D_EOSM_CropModes.zip

The 5x crop mode fpm now has the focus pixels mapped for all possible positions that can be panned around the sensor. It came out to 18,576 positions. Here's what it looks like:


Yeah, I know it is a bit difficult to view this on the forum so here's a link to a full resolution file.

A few people have asked how they could help out but only dmilligan and I have working on this. Well hopefully that's about to change. I posted a zipped version of MLVFS.workflow with the fpm files installed on my bitbucket download area for testers to try out. I'll be updating this as new MLVSF testing builds and focus pixel map files become available.

2016-01-26_MLVFS_test_build.zip

So far only EOSM and 650D in CROP_MODE_HACK and 5x crop mode are supported.

Of course we'll also need a focus pixel map file for the non-crop 1:1 raw video mode. Starting over again and searching for focus pixels by eye is very tedious and error prone and I haven't come across any software that can do this automatically. I'm wondering--would it be possible to take the master focus pixel map file and delete two out of three rows and columns in order to allow for line skipping and/or pixel binning and come up with a map file for full frame mode? It seems like a relatively simple task to write a script that can do this.

Danne

Great work dfort. i could mess with this in MLP. I see the fpm files contains all the coordinates, now what would be needed to make it work in all modes you think? I could seek for pan pos numbers and apply that specific fpm maps file to those numbers?

dmilligan

Quote from: dfort on January 26, 2016, 03:40:27 PM
I'm wondering--would it be possible to take the master focus pixel map file and delete two out of three rows and columns in order to allow for line skipping and/or pixel binning and come up with a map file for full frame mode?
Take all the values in the master focus pixel map file, divide them by 3 and see what happens (throw out the decimal point if you get a remainder). Might have to shift it around a little, but this should get you close, but with just some extra pixels that might be skipped (IDK if there are skipped focus pixels or not, it could be that lots of focus pixels get skipped, a few get skipped, or none get skipped => if none get skipped, you are finished).

If you're feeling adventurous, it should be fairly easy to just modify MLVFS source code to do this (in cs.c, just divide x and y values by three after reading them in load_focus_pixel_map function, also you can shift around by adding an offset). Hint: after dividing x and y by 3, print them back out (e.g. printf("%d %d", x, y); ) and you're new pixel map will be in MLVFS's standard out ;)

Then you can try excluding pixels from the map based on what their modulo 3 is. So for example: only include pixels whose coordinate values in the master pixel map is divisible by 3, or only include the values whose coordinate values has a remainder of 1 when divided by 3, etc. (Hint: in C you do modulus with the % operator).

Also, I have no idea how the apparent horizontal pixel binning may effect focus pixels. So you might find that you only need to throw out values based on their y position modulo 3 (don't throw any out based on x position).

dfort

Looks like another reason to refine the master focus pixel map. Right now I'm using an oversized image an lining up the focus pixels that appear on the Simple Silent Pictures that show the full raw buffer. I think that the master should be the size of a Full Resolution Silent Picture run through 'dcraw -4 -E' in order to include the out of bounds area. That is the closest that I've gotten to match the full sensor size reported by exiftool on a CR2 file. The resulting "Mother of all Focus Pixel Map Files" can then be shrunk down using the formulas that dmilligan suggested to come up with a 1:1 mode focus pixel map file. Maybe this will help better understand how line skipping/pixel binning is being handled? Then again I could just hunt for focus pixels on a 1:1 mode raw buffer and move on to other projects.

Speaking of other projects, I do need to work on other stuff so it would be great if ML users could continue testing what has been done so far. One test for EOSM/650D users would be to shoot 5x crop mode video at various image sizes and pan around the sensor. With the latest focus pixel map files there should be no traces of focus pixels in either 5x crop mode or CROP_MODE_HACK. Of course for now this only works with MLV video and the testing builds of MLVFS.

@Danne - This should work fine with MLP. The MLVFS test build will only apply the focus pixel fix to the cameras that need it. Since you are diving into C programming you might check out dmilligan's notes and see if you can get that working. Of course you'll need the master file--I'll post it when I get it lined up with a FRSP.

@DeafEyeJedi - While I continue testing with your SL1 / 100D you could test the 5x crop mode with the EOSM. You've got my Ricoh 4.8mm and Rainbow 8-48mm zoom which are perfect for crop mode video. Of course if you pan around the sensor too far you'll run off the image circle of these lenses.

I'm getting quite an education using Magic Lantern on various camera models.


dfort

Looks like there is a potential problem with the 0x80000326 => 'EOS Rebel T5i / 700D / Kiss X7i' metadata.

mlv_dump -m -v
Block: IDNT
     Camera Name:   'ERR:1 md:0x       0 ml:0'
     Camera Serial: ''
     Camera Model:  0x00000000


From MLV processed through MLVFS
exiftool run on the DNG
Make                            : Canon
Camera Model Name               : Canon EOS REBEL T5i
Unique Camera Model             : Canon EOS REBEL T5i
Camera Model Name               : ERR:1 md:0x       0 ml:0
Unique Camera Model             : ERR:1 md:0x       0 ml:0


exiftool run on a DNG Simple Silent Picture
Make                            : Canon
Camera Model Name               : Canon EOS REBEL T5i
Unique Camera Model             : Canon EOS REBEL T5i


exiftool run on a CR2 file
Make                            : Canon
Camera Model Name               : Canon EOS REBEL T5i
Canon Image Type                : Canon EOS REBEL T5i
Canon Model ID                  : EOS Rebel T5i / 700D / Kiss X7i


I searched the 700D issues on bitbucket but didn't find anything about this. It looks to me like a problem with mlv_rec.mo but don't know where to start hunting it down. Should I open an issue on bitbucket?

dfort

Yet another surprise with the EOS Rebel T5i / 700D / Kiss X7i, it shares the same focus pixel pattern as the EOSM and 650D. So simply renaming the focus pixel map files that have been posted to:

80000326_1872x1060.fpm
80000326_2592x1108.fpm


Should be all it takes to get this camera ready for testing except for the MLV bug mentioned in my previous post.

The 100D isn't going to be as easy. The focus pixel pattern looks completely different. The reviews on this camera noted that there are "focus points" across 80% of the sensor. Well, here's the proof. These are all the 21 5x crop mode raw buffers stacked up in Photoshop. I outlined the boundary of the focus pixels.


For the focus pixel maps that (should) work on the EOSM, 650D and 700D this image from an astrophotography forum (noted way back on Reply #26)was the most detailed image I have ever seen of focus pixels. Any ideas how to get this level of detail on the 100D? It sure would make it easier to map all those points!


[EDIT: Re-reading the forum discussion where that image was posted it turns out that it is a "Master Bias Rejection Map" meant to remove unwanted noise in astrophotography. In other words, "badpixels" and in our case, focus pixels. I have downloaded a trial version of the software used to create that image, PixInsight. From the tutorials it looks like you need to make a bunch of shots with the lens cap on. A while ago I bought some lens caps from B&H Photo because I'm always losing them and they sent me an email asking if I can post a product review. Maybe I can upload some of these shots along with my review?  ;D]

dfort

I've been juggling three cameras, the EOSM, SL1/100D and T5i/700D. The most work right now is going to be the SL1/100D. My experiments with PixInsight haven't produced anything useable for locating the focus pixels. That's not to say anything bad about the software, it is incredible what it can do--for astro photography. The issue with the 700D is a show stopper for that camera. I tried naming the files with a 00000000 for the camera identifier but that didn't work. I filed a bug report but couldn't find where in the code things are getting mucked up.

For the SL1/100D and the 1:1 mode video for all the cameras I'm going to go back to hunting them down in Photoshop and logging them into a spreadsheet. Rather primitive but it might take less time to take a focus pixel census than to try and predict where they live. Once we have maps for full and crop mode we can speculate what sort of pixel binning/line skipping is going on inside the camera.

dmilligan

Quote from: dfort on January 28, 2016, 01:51:44 AM
The issue with the 700D is a show stopper for that camera. I tried naming the files with a 00000000 for the camera identifier but that didn't work. I filed a bug report but couldn't find where in the code things are getting mucked up.
https://bitbucket.org/hudson/magic-lantern/pull-requests/684/mlv_rec-eliminate-propad_getpropertydata/diff

dfort

IT'S ALIVE!

That's a beautiful thing--works perfectly. We can check off 700D crop mode--once the commit gets into unified and the nightly builds of course.

mlv_dump
Block: IDNT
     Camera Name:   'Canon EOS REBEL T5i'
     Camera Serial: '775328882'
     Camera Model:  0x80000326


exiftool
Camera Model Name               : Canon EOS REBEL T5i
Software                        : MLVFS
Unique Camera Model             : Canon EOS REBEL T5i


I've also got news on the 100D. Here's what an un-crop mode mlv looks like running on MLRawViewer.


All that green area is where the focus pixels live. I then shot a white sheet of paper and was able to pull out a clean shot of the pixels with just a little bit of tweaking.


That's clean enough to run through the pbm2_MLVFS_pixel_map.sh script. Tomorrow I'll see if it worked.

dfort

The script finished sooner than I thought it would. Tested out the 100D full frame video and it works.

Check off another focus pixel map file.

80000346_1808x1190.fpm

Still to do:

100D - 5x crop mode
100D - CROP_MODE_HACK
EOSM - Full Frame
700D - Full Frame
650D - Full Frame

I could use some help with the 650D since I don't have a test camera. There seems to be a difference between the way full frame raw video is handled between EOSM and the 700D. I suppose that the 650D works like the EOSM but would like confirmation. Could someone with a 650D please post a Simple Silent DNG with the move mode set to any full frame setting? In other words, no crop mode or 5x zoom. Thanks!

This is what 1280x720 (16:9) 700D full frame mlv looks like in MLRawViewer.


And this is what EOSM 1280x432 (16:9) full frame mlv looks like.


It actually says in the ML menu at the bottom, "1280x432 Stretch by 1.67x to get 1280x720 (16:9) in post."

dfort

Thanks Walter for the 650D file. You got the focus pixels showing nicely that's going to help confirm everything is lining up.

Looks like I guessed right this time and the 650D 1:1 video mode is the same as the EOSM. Maybe this is the "squeeze" code?

Magic Lantern / modules / raw_rec / raw_rec.c
    /* squeeze factor */
    if (video_mode_resolution == 1 && lv_dispsize == 1 && is_movie_mode()) /* 720p, image squeezed */
    {
        /* assume the raw image should be 16:9 when de-squeezed */
        //int correct_height = max_res_x * 9 / 16;
        //int correct_height = max_res_x * 2 / 3; //TODO : FIX THIS, USE FOR NON-FULLFRAME SENSORS!
        //squeeze_factor = (float)correct_height / max_res_y;
        /* 720p mode uses 5x3 binning (5DMK3) or horizontal binning + vertical skipping (other cameras) */
        squeeze_factor = 1.6666f; // 5.0/3.0
    }
    else squeeze_factor = 1.0f;


So is raw using 720p mode? That doesn't seem right because the maximum frame size is greater than 720p. On the EOSM/650D it is 1728x692 and on the 100D/700D it is 1728x1158. Then again it might be right because the maximum size for continuous mlv recording is 1280x720 but the image is cropped a bit. There is no cropping when switching between 1920x1080 and 1280x720 H.264.

Ok, back to dealing with the focus pixels.

The 100D not only has a different focus pixel pattern but it also seems to work differently. This morning I thought I'd try shooting out my window with the 100D in 1:1 mode--is this the proper term for non-cropped video mode? It looks pretty good for 1280x720 video.


Taking a closer look it seems that something is off. This is what it looks like with the 100D 1:1 without the focus pixel map installed in MLVFS.

And here is the same area with the focus pixel map installed. By the way, this focus pixel map is named 80000346_1808x1190.fpm.

So it looks like the focus pixel map file is working but since the focus pixels seem to be hugging high contrast areas like focus peaking dots and the pixel averaging is happening only in the x axis focus pixels are appearing in the edges of areas with strong vertical lines. Of course the same is happening with Dual ISO. I tried adding chroma smoothing but it didn't get rid of them.

I uploaded a short 100D MLV file and the 80000346_1808x1190.fpm file to my bitbucket download area.

https://bitbucket.org/daniel_fort/magic-lantern/downloads
2016-01-28_100D_non-crop_video_test.zip

Back to mapping focus pixels. The 100D is showing all of its focus pixels in 1:1 video mode but in 5x crop mode and CROP_MODE_HACK they aren't as easy to find. Of course that's what is needed to create a master focus pixel map file.

[Edit: Fun facts, the SL1/100D in 1:1 video mode has 69,385 focus pixels and that's with line skipping/pixel binning. In theory the full sensor should have about 3x that many. Yikes!]

dfort

Hang on, looks like I struck fool's gold. The ease with making the 100D 1:1 video focus pixel map was too good to be true.

When taking a Simple Silent Picture in regular video mode, not cropped and processing it through dcraw -4 -E like I've done for the other cameras gives this result.


Shooting a white sheet of paper and adjusting the settings so those pixel pop makes it look like the only thing left to do is to save it in the proper PGM format and run it through the script. That's exactly what I did. Viola!


Strange it wasn't working in MLVFS--everything else was working perfectly. Taking a closer look at that same Simple Silent Picture that I took this morning run through dcraw without any options other than saving it as a TIFF resulted in this.


Yuck, what a mess of green dots. Taking a closer look it seems that there are focus pixels outside of that green box.


I adjusted the brightness, contrast, saturation, etc. so we can focus on those focus pixels that popped up beyond the green box. So it looks like that pixel pattern that I was so sure were focus pixels turned out to be something else? Back to square one with this camera.

Any SL1/100D user out there want to chime in? @Oswald @otherman Anyone?

dfort

There must be a few ML users that are following this topic and have cameras affected by the focus pixel issue that would like to help with this project. Here's something I could use help with. It doesn't require programming skills and can be done on any computer platform--Windows users can do this in Cygwin.

I'm posting the focus pixel map files (.fpm) files in my bitbucket download area. Take the focus pixel map file for your camera and favorite MLV video mode and convert it to a Portable Bit Map file using the following script.

fpm2pbm.sh
#!/bin/bash

# fpm2pbm.sh
#
# Create a Portable Bit Map file from an
# MLVFS .fpm (focus pixel map file)
#
# Requires ImageMagick, bash and sed
#
# Usage fpm2pbm.sh [size] [file]
# example: fpm2pbm.sh 2592x1108 80000331_2592x1108.fpm
#
# This reads the file, extracts the xy coordinates
# and creates a Portable Bit Map graphic file showing the location of the
# mapped focus pixels. This .pbm file can be opened with Photoshop, Gimp, etc.
# it can also be opened with a text editor.
#
# It can be improved by extracting the size information from the file name.
#
# 2016 Daniel A. Fort
# This is free and unencumbered software released into the public domain.

SIZE=$1

convert -size $SIZE -colorspace gray -compress none -depth 8 xc:white $2.pbm

sed -e 's/[[:space:]]*#.*// ; s/[[:space:]]*-P.*// ; /^[[:space:]]*$/d' $2 |
while read x y t; do
   mogrify -colorspace gray -compress none -depth 8 -fill black -draw "point $x,$y" $2.pbm
done


This script is a slight modification of an earlier script that I posted on this topic, view_pix_map.sh.

Next, shoot some Simple Silent DNG frames while in movie mode--a half-press of the shutter will save a Silent Picture. Run those DNG files through dcraw using these options:
dcraw -4 -E *.DNG

The resulting *.pbm (Portable Bit Map) files can be opened in Photoshop, Gimp or other graphics editing programs. Now carefully line up the DNG with the Portable Bit Map files of the image and the focus pixel map. You will need to adjust the exposure setting of the layers until you can clearly see the image and hopefully the focus pixels. Now either adjust the transparency (or opacity) of the layers or click the visibility on and off to see if the focus pixel map file is hitting all of the visible focus pixels.

These instructions may seem daunting at first but take it one step at a time and post questions if you get lost.

What happens if you find a focus pixel that doesn't match up with the map file? Make screenshots, upload sample files or if nothing else report the location of the focus pixel using x,y coordinates in pixels with the upper left corner of the focus pixel map file image set to 0,0.

If there isn't a .fpm file for your camera and format that means that I haven't been able to map it yet. I could especially use the help of SL1/100D users.

I do have another .fpm file ready, the 1:1 (non-crop) mode for the EOSM and 650D. Maybe these files can also help a1ex with Pixel binning patterns in LiveView?


Here's a list of the .fpm files ready for testing:
80000301_1808x727.fpm  - T4i / 650D Full Frame (1:1) Movie Mode
80000301_1872x1060.fpm - T4i / 650D CROP_MODE_HACK
80000301_2592x1108.fpm - T4i / 650D 5x Crop Mode
80000326_1872x1060.fpm - T5i / 700D CROP_MODE_HACK
80000326_2592x1108.fpm - T5i / 700D 5x Crop Mode
80000331_1808x727.fpm  - EOSM Full Frame (1:1) Movie Mode
80000331_1872x1060.fpm - EOSM CROP_MODE_HACK
80000331_2592x1108.fpm - EOSM 5x Crop Mode
80000346_1808x1190.fpm - SL1 / 100D Full Frame (1:1) Movie Mode

AWPStar

That is impressive list!
But there is another mode. 3x5.
MLVProducer. p.s. sorry for my bad english.

dfort

Quote from: AWPStar on January 29, 2016, 04:20:49 PM
That is impressive list!
But there is another mode. 3x5.

Another mode? What is 3x5?

I think we're using different terminology.
A while back we had a conversation on your MLV Producer for Windows topic.
Quotedot32.dat pattern for 3x3 scaled frames
dot32_2.dat for 3x5 scaled frames
dot32_crop.dat for crop mode

I took a look at your maps along with other applications that remove focus pixels on this post. From the looks of it what you are calling 3x5 may be the same as what I'm calling full frame or 1:1 mode. Maybe?

When I started this project I was wondering why it was such a problem getting rid of the focus pixels. Users were reporting that sometimes the dots re-appeared in certain lighting situations or that the pixels would sometimes shift unexpectedly. Re-examining the focus pixel maps from other applications it is obvious to me that they are missing some of the focus pixels and hitting areas where there are no focus pixels. In addition, none of these programs are using the MLV crop metadata--well, it was broken until recently.

AWPStar

@dfort
I mean mode that makes frame by using every 3 horizontal pixel and every 5 vertical. And aspect ratio should be changed on post.
it is not full frame and definitely not 1:1 mode.
MLVProducer. p.s. sorry for my bad english.

dfort

Quote from: AWPStar on January 29, 2016, 07:19:28 PM
I mean mode that makes frame by using every 3 horizontal pixel and every 5 vertical. And aspect ratio should be changed on post.
it is not full frame and definitely not 1:1 mode.

I think you're referring to something I brought up in the beginning of Reply #136:

        /* 720p mode uses 5x3 binning (5DMK3) or horizontal binning + vertical skipping (other cameras) */
        squeeze_factor = 1.6666f; // 5.0/3.0


I'm a bit confused by the way it is worded in the source code but so far the only cameras with the focus pixel issue that needs this "squeeze_factor" applied are the EOSM and 650D. As far as I've been able to figure out there are only three MLV/raw video modes.


  • Regular "non-cropped" using horizontal binning and vertical line skipping to get as much of the sensor as possible. (This probably includes what you call 3x5 for the EOSM/650D)
  • 5x crop mode using the magnifier button to do a digital zoom of the frame and optionally pan around the full sensor.
  • CROP_MODE_HACK available from the ML menu and works with both MLV/raw video and 1920x1080 H.264 (but not 1280x720 H.264)

Please tell me if I'm leaving anything out.

AWPStar

QuoteRegular "non-cropped" using horizontal binning and vertical line skipping to get as much of the sensor as possible. (This probably includes what you call 3x5 for the EOSM/650D)
Regular "non-cropped" has scale factor 3x3. am i wrong?

I think it's better to show how it looks like.
3x3
3x5


probably this mode turns on if frame rate is ~50-60 fps. But im not sure.
MLVProducer. p.s. sorry for my bad english.

Oswald



Quote from: dfort on January 29, 2016, 04:32:25 AM
Any SL1/100D user out there want to chime in? @Oswald @otherman Anyone?

I am trying to test it. It is little bit tricky because I have windows. But I am trying to get it working.

I have recorded little bit raw footage, green dots are in shadows/highlight area.
But tomorrow I have time to play with 100d. ;)

7D, EOS-M & 100D.100b ΒΆ  Sigma 18-35mm, Canon 50mm F1.8, 22 STM, 8-48mm f1.0, 18-55 EF-M STM

dfort

Quote from: AWPStar on January 29, 2016, 09:31:36 PM
probably this mode turns on if frame rate is ~50-60 fps. But im not sure.

You're right. I never noticed that before. Never even thought of shooting raw video with these cameras at 50-60 fps though it looks like it is possible at the smallest possible image size.

In addition, I am most familiar with the EOSM and that camera when set at 16:9 and 1280 in full frame it is always what you call 3x5 no matter if the Canon menu is set to 1920x1080 or 1280x720 (or 640x480 for that matter). The MLV menu always says that the frame size is 1280x432. Another interesting thing about the EOSM is that the MLV menu reports that the frame rate is 29.97 even when the Canon menu is set to 60p. (Stating the obvious it is 25 and 50 in PAL settings)

With the SL1/100D and T5i/700D set at the same 16:9 and 1280 when the Canon menu is set to 1920x1080 the MLV menu says that the frame size is 1280x720 but when the Canon menu is set to 1280x720 the MLV menu says that the frame size is 1280x432. It also reports that the frame rate is 59.95.

Thanks AWPStar. So it looks like I'm going to have to do some adjustments to the list and add some more .fpm files. Not that big of a deal because several cameras share the same focus pixel maps and the one that is different, the SL1/100D, isn't quite ready in any mode just yet.

So as you showed with your sample frames.

3x3 mode




3x5 mode -- though the source code calls it 5x3 so maybe we should follow that naming convention.


Quote from: Oswald on January 29, 2016, 11:50:16 PM
I am trying to test it. It is little bit tricky because I have windows. But I am trying to get it working.

I have recorded little bit raw footage, green dots are in shadows/highlight area.

Great--make sure you look outside the green box for focus pixels. I'm guessing that the pattern probably extends to the entire sensor but only the ones in the green box exhibit that focus peaking behavior.

AWPStar

So, you have almost all maps? :)
I call it 3x5 because it is literally 3x5. Or 5/3. But definitely not 5x3  :D
MLVProducer. p.s. sorry for my bad english.

dmilligan

There are basically 6 video modes, not all cameras have all of them. ML code refers to these as:
mv1080
mv720
mv640
mv1080crop
mv640crop
zoom

The last three of those are 1:1 (no pixel binning/skipping), mv1080 is 3x3 pixel binning skipping, mv720 is 3x5, and mv640 I don't know about.

5x zoom and 10x zoom use the same sensor setup, so they are considered the same mode. 10x zoom just zooms the display further.

The actual buffer sizes of these modes vary by camera and are not always exactly 1080, 720, etc (usually slightly smaller).

IIRC, the EOSM is unusual in that it is always in LV and that it doesn't switch to the selected video mode until you actually start recording. The rest of the time you are in the "EOSM default" video mode. I'm not sure about this, but I think this mode is actually mv720, but at 30fps.

For most cameras, mv720 is the 50/60 fps mode (though you can use FPS override to undercrank this mode back down to 30 or 24).

dfort

And I thought I was almost done.

Ok, so I maybe half-way done but at least we've got the right terminology. Too bad about the EOSM. The 1920x1080 H.264 video quality is on par with the other cameras but raw video quality sucks unless it is in crop mode. In which case it is probably even better than other cameras because you can use C-mount lenses on it. I'm wondering if there is any possible way to get mv1080 on the EOSM but I take it that has been tried before.

In any case another .fpm file is processing. Let's see if I got the terminology right this time:

80000301_1808x1190.fpm - T4i / 650D - mv1080
80000326_1808x1190.fpm - T5i / 700D - mv1080


Even though the EOSM shares the same focus pixel pattern it is getting left out of this party celebration.

dfort

Ok--I guess the testing procedure I posted in Reply #138 was a bit complicated. As of now there are 0 downloads. So I'm going to make things simpler. I'm leaving those files on my bitbucket download area but cleaning up the confusing mess and posting something that at least Mac users can work with right away--a testing version of MLVFS with all the focus pixel map files already installed. I haven't found a way to run both this test version along with the release version posted on the MLVFS - a FUSE based, "on the fly" MLV to CDNG converter topic so if you want to see what it looks like without the focus pixel fixer you'll either have to swap out the testing version with the release version or if you know the old trick of "Control click -> Show Package Contents" simply take out the *.fpm files from the Contents. The MLVFS.workflow file is located in ~/Library/Services - that's the "Go -> Go to Folder..." you'll want to navigate your Finder to.

Here are the current video modes that are ready for testing:

80000301_1808x727.fpm  - T4i / 650D - mv720
80000301_1808x1190.fpm - T4i / 650D - mv1080
80000301_1872x1060.fpm - T4i / 650D - mv1080crop
80000301_2592x1108.fpm - T4i / 650D - zoom
80000331_1808x727.fpm  - EOSM       - mv720
80000331_1872x1060.fpm - EOSM       - mv1080crop
80000331_2592x1108.fpm - EOSM       - zoom
80000326_1808x727.fpm  - T5i / 700D - mv720
80000326_1808x1190.fpm - T5i / 700D - mv1080
80000326_1872x1060.fpm - T5i / 700D - mv1080crop
80000326_2592x1108.fpm - T5i / 700D - zoom
80000346_1808x1190.fpm - SL1 / 100D - mv1080


I'll do some more research on mv640 and mv640crop and come up with focus pixel map files for those modes.

In the meantime I've been looking further into the SL1 / 100D issues and it doesn't look as bad as I first thought. In fact some of it was probably my error. Here is another look at a makeshift chart shot in mv1080 mode.

The MLV file was converted to CDNG with MLVFS then the DNG file was converted to a TIFF with dcraw.

The same frame only this time with the MLVFS test version and the 80000346_1808x1190.fpm - SL1 / 100D - mv1080 focus pixel map file in place.

Of course one thing is getting a clean shot of a focus chart and another thing is getting an actual scene to look good. I found out that the map file was covering the right area and hitting only actual focus pixels. The issue with the pixels showing up on strong vertical areas isn't a problem exclusive to the SL1 / 100D but rather because only the immediate left and right (x-axis) pixels are being interpolated. This was done to accommodate Dual ISO. It shouldn't happen if the averaging happens also in the y-axis. Perhaps there is a way to identify if it was shot Dual ISO and process them differently than a regular MLV shot?