Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - 50mm1200s

#151
General Help Q&A / Re: Dangerous sun (in Dual-ISO)
April 16, 2018, 01:44:29 PM
If you're using UV and ND filter it's fine, I think. The sensor will only be exposed for miliseconds in photomode. You should worry only if you're recording videos and without UV filter...

ps: try HDRMerge and Rawtherapee "HDR Tonemapping"... you'll get better results.
#152
Quote from: adrjork on April 16, 2018, 08:44:36 AM
Yes, you are right :)
(But if I read correctly somewhere, in AE even prores is YUV based, that implies a conversion in Resolve, and in theory TIFF should be ideal for quality.)

I think you can manage this on project settings (first pic) and output settings (second pic):






Also, have you tried the lens correction, as I've suggested above? I think it would work better than manually adjusting chromatic aberrations...

#153
Why TIFF? You can just use mlv_dump and open a dng sequence in after effects. Then, export in ProRes 444 or Lagarith lossless...
#154
There's always risk, but I personally use magic lantern for 6 years and used CHDK for other 2 years, with nightly builds and experiments: never destroyed my cameras.
People on Canon forums will say to you not to use it because Canon doesn't like people messing with their firmware. Actually ML makes 5D MKIII almost better than their cinema cameras. I think that, with dual_iso, ettr and the adtg trick you can get almost the Arri Alexa dynamic range on 5D MKIII so, yeah, they don't like ML.
#155
@a1ex, since some people got the cards killed by this experiment, wouldn't it be better to remove it from downloading, for now? Some people might use it for real world production and get the card crashed in the middle of the work...
I think it's a good idea, though. I can barely get 16:9 FullHD in crop_rec (50D), with this patch (if it works in CF too) it would possibly make it to continuous FullHD recording.
Do you need any help to get disposable cards that you can "fry" as you want? I could buy some cheap ones for you and send here from Brazil.
#156
Ok, so I've read some time about ffmpeg, and it doesn't seem to support custom colorspace/colormatrix, only the ones linked in documentation. I searched if avisynth has some script for conversions using colormatrix, but they don't. :(
It seems we are limited to 444XQ in Rec.2020 (10-bit). That's the maximum ffmpeg handles in ProRes, from the documents I've read.

Using the option "-pix_fmt yuv444p10le" together with profile 5 or 6 (444 and 4444XQ):

ffmpeg -i input.avi -c:v prores_ks -profile:v 5 -quant_mat 4 -pix_fmt yuv444p10le output.mov


Could'nt get profile 6 (supposedly 4444XQ) to work. Maybe my build is too old (version 3.4)
ffprobe log:

Stream #0:0(eng): Video: prores (ap4x / 0x78347061), yuv444p10le(progressive), 1920x1080, 142603 kb/s, 24 fps, 24
tbr, 12288 tbn, 12288 tbc (default)
    Metadata:
      handler_name    : DataHandler
      encoder         : Lavc57.107.100 prores_ks


Just a note: ffmpeg documentation suggests Kostya instead of Anatolyi, so it can be removed, right?


In our testing we've used the "prores" and the "prores_ks" encoders and found "prores_ks" to be the best encoder to use. It is the only one that supports the 4444 colorspace and although it may be slightly slower. The color quality of the videos produced by these two codecs was visually indistinguishable Because of the 4444 support we've decided to go with Kostya's version of prores.



Another note: I've found this website possibly useful.
#157
Quote from: masc on April 12, 2018, 08:41:08 PM
Did you compile and use the Whitebalance branch, bouncyball was talking about? The master branch works good also for 3000K (maybe also less, but I never used that), at least for 5D2 clips.

Eh, I think I need to learn english better before discussing image processing on a forum   :-[
I'm using release binary, haven't compiled (yet).
#158
Quote from: bouncyball on April 12, 2018, 05:40:46 PM
'camera_matrices.c' was long time deprecated. Also only 5D2 matrix is used in master branch for all cameras.

My bad for linking wrong info.

Quote
is not working properly for temps lower then 4000K.

This is probably the issue I'm having then, since my footage is ~3700K...
#159
So, another idea: improved tone mapping with Fattal method. There's a implementation here. That's really work looking into, even if it's too difficult to implement (doesn't seem to, rawtherapee has a working version), it is still very fun to read.
#160
@Andy600 suggestion here:

Quote from: Andy600 on April 12, 2018, 02:17:28 PM
...you're also likely losing some color information when rendering to Prores 'AlexaLog' in MLVApp.

The matrices are originally from Adobe. MLVApp looks to be writing a single matrix (D65) which should be ok for most daylight shots but white balance accuracy would be improved a bit if it also included the tungsten matrix.

Couldn't find the tungsten matrix, so I already asked him about it.
Thanks the suggestion @Andy600, if you're reading this.
#161
Quote from: Andy600 on April 12, 2018, 02:17:28 PM
Do you know which ARRI lut you are using exactly?

It's the "AlexaV3_K1S1_LogC2Video_Rec709_EE_aftereffects3d". Parameters are Photometric Scaling, LUT Dimension 65^3 mesh and Bits set to default.

Quote
Your footage is in BT.601 or BT.709 (there's no bt609)...

haha, yeah.

Quote
The matrices are originally from Adobe. MLVApp looks to be writing a single matrix (D65) which should be ok for most daylight shots but white balance accuracy would be improved a bit if it also included the tungsten matrix.

If you mind, do you have any resource where we can get this matrice for tungsten?

Quote
I think the #1 piece of color related advice I would give is to always shoot a reference/target. A simple grey card can be very cheap and once you have that in shot you have a reference for exposure and white balance. I would say it's essential for any commercial shoot and most casual shooting really benefits from it.

Yes, I notice the need of grey cards now shooting RAW. With H.264, for 6 years, I never needed that, because I wasn't having such fine controls over the footage.

Quote
Try adjusting the contrast pivot point lower if possible. Alternatively try increasing overall gain/exposure then pull down shadows and rolloff highlights i.e. a classic s-curve. This should give a more natural look.

Cool. This technique of gain-then-curve is new to me.

Quote
Yes. I have a rule with NR and that is to only use it if it's really necessary and then use as little as possible...

I agree. Or, if necessary, use dithering/grain after NR.

Quote
Your welcome :) I'll check out MLVApp's color when I get bit more free time.

;)
Trying to save you some time, here is the camera_matrices.c:

/* This may be the code I'm least proud of,
* I know there is a simpler/better solution */

/* THIS IS NOT USED! I got lost and stopped at the point when I
* realised some matrices were row-wise and others column-wise */

#include <stdio.h>
#include <stdint.h>
#include <string.h>

#include "video_mlv.h"
#include "raw.h"
#include "mlv.h"
#include "../matrix/matrix.h"

struct cam_matrices {
    char * camera;
    int32_t ColorMatrix1[18];
    int32_t ColorMatrix2[18];
    int32_t ForwardMatrix1[18];
    int32_t ForwardMatrix2[18];
};

static uint8_t diagonal_flip[9] = { 0, 3, 6, 1, 4, 7, 2, 5, 8 };
#define diag_flip(X) diagonal_flip[(X)]

/* credits to Andy600 for gleaning these from Adobe DNG converter */
static struct cam_matrices cam_matrices[] =
{
    { /* 0 */
        "Canon EOS 5D Mark III",
        { 7234, 10000, -1413, 10000, -600, 10000, -3631, 10000, 11150, 10000, 2850, 10000, -382, 10000, 1335, 10000, 6437, 10000 },
        { 6722, 10000, -635, 10000, -963, 10000, -4287, 10000, 12460, 10000, 2028, 10000, -908, 10000, 2162, 10000, 5668, 10000 },
        { 7868, 10000, 92, 10000, 1683, 10000, 2291, 10000, 8615, 10000, -906, 10000, 27, 10000, -4752, 10000, 12976, 10000 },
        { 7637, 10000, 805, 10000, 1201, 10000, 2649, 10000, 9179, 10000, -1828, 10000, 137, 10000, -2456, 10000, 10570, 10000 }
    },
    { /* 1 */
        "Canon EOS 5D Mark II",
        { 5309, 10000, -229, 10000, -336, 10000, -6241, 10000, 13265, 10000, 3337, 10000, -817, 10000, 1215, 10000, 6664, 10000 },
        { 4716, 10000, 603, 10000, -830, 10000, -7798, 10000, 15474, 10000, 2480, 10000, -1496, 10000, 1937, 10000, 6651, 10000 },
        { 8924, 10000, -1041, 10000, 1760, 10000, 4351, 10000, 6621, 10000, -972, 10000, 505, 10000, -1562, 10000, 9308, 10000 },
        { 8924, 10000, -1041, 10000, 1760, 10000, 4351, 10000, 6621, 10000, -972, 10000, 505, 10000, -1562, 10000, 9308, 10000 }
    },
    { /* 2 */
        "Canon EOS 7D",
        { 11620, 10000, -6350, 10000, 5, 10000, -2558, 10000, 10146, 10000, 2813, 10000, 24, 10000, 858, 10000, 6926, 10000 },
        { 6844, 10000, -996, 10000, -856, 10000, -3876, 10000, 11761, 10000, 2396, 10000, -593, 10000, 1772, 10000, 6198, 10000 },
        { 5445, 10000, 3536, 10000, 662, 10000, 1106, 10000, 10136, 10000, -1242, 10000, -374, 10000, -3559, 10000, 12184, 10000 },
        { 7415, 10000, 1533, 10000, 695, 10000, 2499, 10000, 9997, 10000, -2497, 10000, -22, 10000, -1933, 10000, 10207, 10000 }
    },
    { /* 3 */
        "Canon EOS 6D",
        { 7546, 10000, -1435, 10000, -929, 10000, -3846, 10000, 11488, 10000, 2692, 10000, -332, 10000, 1209, 10000, 6370, 10000 },
        { 7034, 10000, -804, 10000, -1014, 10000, -4420, 10000, 12564, 10000, 2058, 10000, -851, 10000, 1994, 10000, 5758, 10000 },
        { 7763, 10000, 65, 10000, 1815, 10000, 2364, 10000, 8351, 10000, -715, 10000, -59, 10000, -4228, 10000, 12538, 10000 },
        { 7464, 10000, 1044, 10000, 1135, 10000, 2648, 10000, 9173, 10000, -1820, 10000, 113, 10000, -2154, 10000, 10292, 10000 }
    },
    { /* 4 */
        "Canon EOS 70D",
        { 7546, 10000, -1435, 10000, -929, 10000, -3846, 10000, 11488, 10000, 2692, 10000, -332, 10000, 1209, 10000, 6370, 10000 },
        { 7034, 10000, -804, 10000, -1014, 10000, -4420, 10000, 12564, 10000, 2058, 10000, -851, 10000, 1994, 10000, 5758, 10000 },
        { 7763, 10000, 65, 10000, 1815, 10000, 2364, 10000, 8351, 10000, -715, 10000, -59, 10000, -4228, 10000, 12538, 10000 },
        { 7464, 10000, 1044, 10000, 1135, 10000, 2648, 10000, 9173, 10000, -1820, 10000, 113, 10000, -2154, 10000, 10292, 10000 }
    },
    { /* 5 */
        "Canon EOS 60D",
        { 7428, 10000, -1897, 10000, -491, 10000, -3505, 10000, 10963, 10000, 2929, 10000, -337, 10000, 1242, 10000, 6413, 10000 },
        { 6719, 10000, -994, 10000, -925, 10000, -4408, 10000, 12426, 10000, 2211, 10000, -887, 10000, 2129, 10000, 6051, 10000 },
        { 7550, 10000, 645, 10000, 1448, 10000, 2138, 10000, 8936, 10000, -1075, 10000, -5, 10000, -4306, 10000, 12562, 10000 },
        { 7286, 10000, 1385, 10000, 972, 10000, 2600, 10000, 9468, 10000, -2068, 10000, 93, 10000, -2268, 10000, 10426, 10000 }
    },
    { /* 6 */
        "Canon EOS 50D",
        { 5852, 10000, -578, 10000, -41, 10000, -4691, 10000, 11696, 10000, 3427, 10000, -886, 10000, 2323, 10000, 6879, 10000 },
        { 4920, 10000, 616, 10000, -593, 10000, -6493, 10000, 13964, 10000, 2784, 10000, -1774, 10000, 3178, 10000, 7005, 10000 },
        { 8716, 10000, -692, 10000, 1618, 10000, 3408, 10000, 8077, 10000, -1486, 10000, -13, 10000, -6583, 10000, 14847, 10000 },
        { 9485, 10000, -1150, 10000, 1308, 10000, 4313, 10000, 7807, 10000, -2120, 10000, 293, 10000, -2826, 10000, 10785, 10000 }
    },
    { /* 7 */
        "Canon EOS 550D",
        { 7755, 10000, -2449, 10000, -349, 10000, -3106, 10000, 10222, 10000, 3362, 10000, -156, 10000, 986, 10000, 6409, 10000 },
        { 6941, 10000, -1164, 10000, -857, 10000, -3825, 10000, 11597, 10000, 2534, 10000, -416, 10000, 1540, 10000, 6039, 10000 },
        { 7163, 10000, 1301, 10000, 1179, 10000, 1926, 10000, 9543, 10000, -1469, 10000, -278, 10000, -3830, 10000, 12359, 10000 },
        { 7239, 10000, 1838, 10000, 566, 10000, 2467, 10000, 10246, 10000, -2713, 10000, -112, 10000, -1754, 10000, 10117, 10000 }
       
    },
    { /* 8 */
        "Canon EOS 600D",
        { 7164, 10000, -1916, 10000, -431, 10000, -3361, 10000, 10600, 10000, 3200, 10000, -272, 10000, 1058, 10000, 6442, 10000 },
        { 6461, 10000, -907, 10000, -882, 10000, -4300, 10000, 12184, 10000, 2378, 10000, -819, 10000, 1944, 10000, 5931, 10000 },
        { 7486, 10000, 835, 10000, 1322, 10000, 2099, 10000, 9147, 10000, -1245, 10000, -12, 10000, -3822, 10000, 12085, 10000 },
        { 7359, 10000, 1365, 10000, 918, 10000, 2610, 10000, 9687, 10000, -2297, 10000, 98, 10000, -2155, 10000, 10309, 10000 }
       
    },
    { /* 9 */
        "Canon EOS 650D",
        { 6985, 10000, -1611, 10000, -397, 10000, -3596, 10000, 10749, 10000, 3295, 10000, -349, 10000, 1136, 10000, 6512, 10000 },
        { 6602, 10000, -841, 10000, -939, 10000, -4472, 10000, 12458, 10000, 2247, 10000, -975, 10000, 2039, 10000, 6148, 10000 },
        { 7747, 10000, 485, 10000, 1411, 10000, 2340, 10000, 8840, 10000, -1180, 10000, 105, 10000, -4147, 10000, 12293, 10000 },
        { 7397, 10000, 1199, 10000, 1047, 10000, 2650, 10000, 9355, 10000, -2005, 10000, 193, 10000, -2113, 10000, 10171, 10000 }
       
    },
    { /* 10 */
        "Canon EOS 700D",
        { 6985, 10000, -1611, 10000, -397, 10000, -3596, 10000, 10749, 10000, 3295, 10000, -349, 10000, 1136, 10000, 6512, 10000 },
        { 6602, 10000, -841, 10000, -939, 10000, -4472, 10000, 12458, 10000, 2247, 10000, -975, 10000, 2039, 10000, 6148, 10000 },
        { 7747, 10000, 485, 10000, 1411, 10000, 2340, 10000, 8840, 10000, -1180, 10000, 105, 10000, -4147, 10000, 12293, 10000 },
        { 7397, 10000, 1199, 10000, 1047, 10000, 2650, 10000, 9355, 10000, -2005, 10000, 193, 10000, -2113, 10000, 10171, 10000 }
       
    },
    { /* 11 */
        "Canon EOS 1100D",
        { 6873, 10000, -1696, 10000, -529, 10000, -3659, 10000, 10795, 10000, 3313, 10000, -362, 10000, 1165, 10000, 7234, 10000 },
        { 6444, 10000, -904, 10000, -893, 10000, -4563, 10000, 12308, 10000, 2535, 10000, -903, 10000, 2016, 10000, 6728, 10000 },
        { 7607, 10000, 647, 10000, 1389, 10000, 2337, 10000, 8876, 10000, -1213, 10000, 93, 10000, -3625, 10000, 11783, 10000 },
        { 7357, 10000, 1377, 10000, 909, 10000, 2729, 10000, 9630, 10000, -2359, 10000, 104, 10000, -1940, 10000, 10087, 10000 }
       
    },
    { /* 12 */
        "Canon EOS M",
        { 6985, 10000, -1611, 10000, -397, 10000, -3596, 10000, 10749, 10000, 3295, 10000, -349, 10000, 1136, 10000, 6512, 10000 },
        { 6602, 10000, -841, 10000, -939, 10000, -4472, 10000, 12458, 10000, 2247, 10000, -975, 10000, 2039, 10000, 6148, 10000 },
        { 7747, 10000, 485, 10000, 1411, 10000, 2340, 10000, 8840, 10000, -1180, 10000, 105, 10000, -4147, 10000, 12293, 10000 },
        { 7397, 10000, 1199, 10000, 1047, 10000, 2650, 10000, 9355, 10000, -2005, 10000, 193, 10000, -2113, 10000, 10171, 10000 }
    }
};

/* Matrices from DXO */
double matrix_5d2[9] = {  2.25, -1.50,  0.25,
                         -0.26,  1.62, -0.36,
                         -0.04, -0.40,  1.43  };


static const double xyz_to_rgb[] = {
    3.240710, -0.9692580,  0.0556352,
   -1.537260,  1.8759900, -0.2039960,
   -0.498571,  0.0415557,  1.0570700
};


/* Provides a DXO matrix from camera space to sRGB */
void getMlvCameraTosRGBMatrix(mlvObject_t * video, double * outputMatrix)
{
    double camera_matrix[9] = {1, 0, 0, 0, 1, 0, 0, 0, 1};
    int32_t * original_matrix;
    uint8_t * camera_name = video->IDNT.cameraName;

    /* Identify camera */
    if (camera_name[10] == '5')
    {
        /* it is either 5D or 50D or 500D or 550D... */
        if (camera_name[11] == 'D')
        {
            /* It is 5D II or III */
            if (camera_name[20] == 'I')
            {
                /* 5D Mark III */
                original_matrix = cam_matrices[0].ColorMatrix2;
            }
            else
            {
                /* 5D Mark II */
                // original_matrix = matrix_5d2;
            }
        }
        else if (camera_name[11] == '0')
        {
            /* It is 50D or 500D */
            if (camera_name[12] == '0')
            {
                /* Is 500D - we use 550d matrix as I don't see 500D */
                original_matrix = cam_matrices[7].ColorMatrix2;
            }
            else
            {
                /* Is 50D */
                original_matrix = cam_matrices[6].ColorMatrix2;
            }
        }
        else
        {
            /* It is 550D! */
            original_matrix = cam_matrices[7].ColorMatrix2;
        }
    }
    else if (camera_name[10] == '6')
    {
        /* It is 6D or 60D or 600D or 650D */
        if (camera_name[11] == 'D')
        {
            /* It is 6D */
            original_matrix = cam_matrices[3].ColorMatrix2;
        }
        else if (camera_name[11] == '0')
        {
            /* Is 60D or 600D */
            if (camera_name[12] == 'D')
            {
                /* It is 60D */
                original_matrix = cam_matrices[5].ColorMatrix2;
            }
            else
            {
                /* It is 600D */
                original_matrix = cam_matrices[8].ColorMatrix2;
            }
        }
        else
        {
            /* It is 650D */
            original_matrix = cam_matrices[9].ColorMatrix2;
        }
    }
    else if (camera_name[10] == '7')
    {
        /* It is 7D or 70D or 700D */
        if (camera_name[11] == 'D')
        {
            /* It is 7D */
            original_matrix = cam_matrices[2].ColorMatrix2;
        }
        else if (camera_name[12] == 'D')
        {
            /* It is 70D */
            original_matrix = cam_matrices[4].ColorMatrix2;
        }
        else
        {
            /* It is 700D; 650D matrix will do right? */
            original_matrix = cam_matrices[9].ColorMatrix2;
        }
    }
    else if (camera_name[10] == '1')
    {
        /* 100D or 1100D (and 1200-16900D) */
        if (camera_name[11] == '1')
        {
            /* It is 1100D */
            original_matrix = cam_matrices[11].ColorMatrix2;
        }
        else if (camera_name[11] == '0')
        {
            /* Is 100D, hopefully 650D matrix will do */
            original_matrix = cam_matrices[9].ColorMatrix2;
        }
        else
        {
            //TODO: Ilia, please fix: in this case original_matrix is uninitialized
        }
    }
    else if (camera_name[10] == 'M')
    {
        /* Is EOS M */
        original_matrix = cam_matrices[12].ColorMatrix2;
    }
    /* As a backup, just do 650D */
    else
    {
        original_matrix = cam_matrices[9].ColorMatrix2;
    }

    /* Convert the silly integere matrix to floaty point */
    matrixRemoveDividers(original_matrix, camera_matrix);

    double out[9];
    invertMatrix(matrix_5d2, out);

    /* giv */
    for (int i = 0; i < 9; ++i)
    {
        outputMatrix[i] = out[i];
    }
}




WB matrix:

/* Measurements taken from 5D Mark II RAW photos using EXIFtool, surely Canon can't be wrong about WB mutipliers? */
static const int wb_kelvin[]   = {  2000,  2500,  3000,  3506,  4000,  4503,  5011,  5517,  6018,  6509,  7040,  7528,  8056,  8534,  9032,  9531, 10000 };
static const double wb_red[]   = { 1.134, 1.349, 1.596, 1.731, 1.806, 1.954, 2.081, 2.197, 2.291, 2.365, 2.444, 2.485, 2.528, 2.566, 2.612, 2.660, 2.702 };
static const double wb_green[] = { 1.155, 1.137, 1.112, 1.056, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000 };
static const double wb_blue[] = { 4.587, 3.985, 3.184, 2.524, 2.103, 1.903, 1.760, 1.641, 1.542, 1.476, 1.414, 1.390, 1.363, 1.333, 1.296, 1.263, 1.229 };


AlexaLog:

/* Calculate Alexa Log curve (iso 800 version), from here: http://www.vocas.nl/webfm_send/964 */
double AlexaLogCTonemap(double x) { return (x > 0.010591) ? (0.247190 * log10(5.555556 * x + 0.052272) + 0.385537) : (5.367655 * x + 0.092809); }
float AlexaLogCTonemap_f(float x) { return (x > 0.010591f) ? (0.247190f * log10f(5.555556f * x + 0.052272f) + 0.385537f) : (5.367655f * x + 0.092809f); }


There's also this:

#ifndef _image_profile_h_
#define _image_profile_h_

/* Image profile structure */
typedef struct image_profile_t {
    /* Certain processing settings can be disabled for accuracy (1=on, 0=off) */
    struct disable_settings {
        int saturation; /* Saturation */
        int curves; /* All contrast + 'lighten' setting */
        int tonemapping; /* Tonemapping, via specified function */
    } disable_settings;
    /* Tonemapping function pointer, required if tonemapping is not disabled
     * this function can be any kind of transform for 0.0-1.0 double values */
    double (* tone_mapping_function)(double);
    double gamma_power; /* 1.0=linear/do nothing, 2.2~=sRGB, 2.0=rec.709 */
    /* xy chromaticities for output colour space */
    struct xy_chromaticity {
        struct { int x, y; } red;
        struct { int x, y; } green;
        struct { int x, y; } blue;
        struct { int x, y; } white;
    } xy_chromaticity;
    /* https://ninedegreesbelow.com/photography/xyz-rgb.html
     * http://www.ryanjuckett.com/programming/rgb-color-space-conversion/ */
}  image_profile_t;

#endif




I just don't know how it assign each matrix. Through MLV metadata? I've found mlv metadata not to be so reliable (in the past... don't know if anything changed in past year).
#162
Quote from: Andy600 on April 12, 2018, 11:54:51 AM
I suspect 'AlexaLog' is only the Log-C curve (1D) so if you're using an official Alexa 3D lut that transforms both the gamma and gamut from Log-C to Rec709 you will get these types of color problems.

Yes, I suspected it was more complex than I thought.
MLVApp uses AlexaLog from this paper, it is indeed EI800. The ProRes color output is bt609 from ffmpeg. I think Premiere Pro reads it normally by default. The color matrix MLVApp is using came from ACR (actually you're credited in the source code for helping), so it's probably "precise" enough...

Quote
Re: WB. Maybe. I didn't do any grading, only set a WB. I'm going only by what I can see on a vector scope and there is no neutral target in the shot. The model has a pink complexion and the beautician/make-up artist is more of an olive color so cooling WB will tend to make the pink hues more blue and less life-like, especially under mixed lighting. If I were grading this I would certainly be using qualifiers to isolate and treat the different skin tones independently.

Yep. Also, the background and the hair tones are in the same shade of grey, so when I try to get the background less magenta the hair just changes together  :'(
I'm also using Lumetri from Premiere for this and not Resolve. My fault, I can't expect very much from Lumetri. [Edit: I should just buy a 18% grey card already, I know]

Quote
Try doing a basic grade without a lut and see if you still get clipping.

I will.

Quote
+3 on mid-tones is quite extreme and yes, will likely cause some banding, especially if done after the lut. Why are you pushing mid-tones so much?

After your last reply I changed it a little, but I was doing it because the skin tones just get's too dark after applying (linear) contrast. I can just apply a general gain, but highlights will clip. I'm using a curve like this (you can see I'm quite agressive in the highlights):



If you have any pro tip for me, I take it :)

Quote
This is purely a subjective observation and you may actually be going for that look but I find the skin smoothing (possibly extreme noise reduction?) in 01.png to be way too much. It completely loses any texture in the skin and looks very unnatural. Try dialing back on the effects and you'll get a much better look ;)

Thanks. Indeed, the noise reduction (NeatVideo) is way too strong.

Quote
Are you using Lumetri in Premier or After Effects?

Premiere Pro.


Thanks a lot for helping Andy, I'm learning very much these days...
#163
If you're using ACR, you can load LCP profile, IIRC. This would be the most accurate solution, since it's based on calculations of your lens. Here is a tutorial for creating custom profiles. But: the magenta cast in midtones is also affecting my images (on 50D MLV) and I can't solve it. Andy600 gave me some hints, but I couldn't fix it. I don't know if I'm too dumb on color grading or something is wrong with the MLV itself.

edit: you can import CDNG on Resolve and used the lens correction feature, it seems.
#164
Quote from: masc on April 11, 2018, 09:07:17 PM
@50mm1200s: many thanks for your long message. I really liked that you gave us links to papers and code. Maybe the one or the other link could really help us - who knows?! ;)

Yeah, who knows. I'm by no means a academic on the subject.

Quote
3: with AVFoundation there is some color space control possible. Using ffmpeg it is again very limited and hard to understand. If you have an idea how to control color space in ffmpeg, let us know!

I'll if I can get some info about that.

Quote
9: On github we have 2 more branches: "OpenCL-Processing" and "better-demosaic". This is the issue page for it. There we tested two other demosaic algorithms. One should be faster (but wasn't in our implementation), the other should be better than AMaZE (maybe was - note that in this stage AMaZE was not working right), but was waaaay to slow (around 5min per picture). In the end we got AMaZE working correctly, and we were so satisfied, that we stopped working on the other solutions. But maybe the link you posted helps improving again...

Oh, that's nice. I'll get more information about this, trying to read as many papers as possible and summarize everything here later.


Quote from: reddeercity on April 12, 2018, 05:10:08 AM
[/code]
Color space integers ( If you use cmd. line then you add these values)
color_primaries integer (decoding/encoding,video)
Possible values:
'bt709'
BT.709
'bt470m'
BT.470 M
'bt470bg'
BT.470 BG
'smpte170m'
SMPTE 170 M
'smpte240m'
SMPTE 240 M
'film'
Film
'bt2020'
BT.2020
'smpte428''smpte428_1'
SMPTE ST 428-1
'smpte431'
SMPTE 431-2
'smpte432'
SMPTE 432-1
'jedec-p22'
JEDEC P22


Well, there's at least bt2020, that's a improvement. Maybe hack ffmpeg to use OpenColorIO functions? Natron seems to have something working already, perhaps we could ask them on git...
#165
Quote from: Andy600 on April 11, 2018, 05:09:58 PM
@50mm1200s

The problem is not the white balance unless you used As Shot or Auto.

I dialed in WB at 3850k (no tint) for a reasonably neutral balance but you won't get it precise without knowing the lighting or having a gray/white card target in the shot.

On the scopes it looks like you're also using a film lut or film look preset too? That is adding some heavy saturation to reds and magenta. The lut/look is also clipping highlights (quite badly) in the other shots and there's some unpleasant banding in the highlights. I would suggest trying to grade the look yourself or try a different lut/look but I see no significant problems with the DNG.

Thanks Andy600. I'm using AlexaLog and then AlexaLog to Rec 709 LUT (from Arri website) on Lumetri. It still gives me pink midtones. Also, the highlight clipping happens all the time too, it is difficult to get a bright image just going +3 f-stops only on midtones, since it create a bad saparation between tones (maybe the banding comes from this)... well it's just my inability to grade properly.
The image you linked above seem to have wrong WB (too warm), maybe that's a point to consider too.

See the eye bags in this image, for example (edit: there's no makeup in the eyes):
#166
So, here's some ideas/opinions that could (or not) help. I wish I could help with code, but I never really got into C/C++ prog. If there's anything other than coding I can do, I'll do my best (could compile and test the git code at least). Been thinking about training a new Film look, based on Vision3 50D negative (from ImpulZ - don't know if it's legal either).

Here it goes:

1- The ProRes 4:4:4 exported is 12-bit? Would be cool to have the control over bit depth in configs

2- 3D LUT support, as @masc4ii suggested

3- Color space options would also be useful. Maybe a ACES implementation? This discussion have some information from @Andy600 :^)

4- The highlight reconstruction uses also considers color? Rawtherapee has this method called "Color Propagation" that has better results on HL reconstruction.

5- A option for monochrome demosaicing would be useful for people working on b&w projects

6- For denoising, definetly check out the KNLMeansCL. It's quite fast (about 7fps in my testing using 1080p). There's also Deathray, that seem to be the same algorithm. Although I've read some papers showing NL-Bayes, Shrinkage Fields, and Nonlinear difusion getting better results

6- Sharpen. Would be very cool to have a high-res sharpen tool, such as Plum, using deconvolution instead of wavelet edge-constrast.

7- Aliasing and moire removal. People from Doom9 recomended this Tlsophote AVISynth script.

8- Lens correction through LCP profiles. The code from Rawtherapee could help (CA auto-correction too), or the OpenFX code from Natron too (it's in C++, though)...

9- Better demosaicing. As I said here, Bart Goossens have some really interesting research on this: he gest better image quality doing efficient pre-demosaicing manipulation (better than AMaZE)

10- Improved tone mapping with Fattal method. There's a implementation here
#167
Share Your Videos / Re: 5D Mark lll CRAW - People
April 11, 2018, 08:28:54 AM
Very neutral. Liked it. The scene at 1:03 is especially beautiful.
#168
This software is so good. Thanks a lot @ilia3101 @masc4ii and @bouncyball . Absolutely fantastic. I'll see if I can donate some money soon.
#169
Quote from: reddeercity on April 11, 2018, 06:09:59 AM
One is pixel binding & line skipping , ever wonder why you only get 1536(Width) in Full Frame (4752/3=1584) needs to be a mod 8 number if I remember right so 1536
The other records every line and pixel no line skipping or binding plus you can have resolution greater then Full Frame Video -- e.g. 2000(w)x1080(h) @12bit=74.1MB/s (Max write speed)
http://rawcalculator.bitballoon.com/calculator_desktop
With Full Frame 1:1 you will or may experience aliasing and moiré pattern not so in 3x crop that the advantage .
you can record 1920x1038 23.976 14bit @79MB/s in 3xCrop , bit reduction just give you longer record times at higher rez.
If I had a 50D I would only record in 3xCrop (better to more resolution(1920) and little noise then less resolution(1536) ) you can always eliminate/fix noise with dark frame in post.

Wow, great. I didn't noticed that I could record 1920px in crop mode. Thanks for you reply.
#170
Quote from: reddeercity on April 09, 2018, 06:47:21 AM
Where it shines the best is in 3xCrop mode with 10bit (old dec/'16 build)  but I really don't use it that much .

@reddeercity can you explain what's de difference between 3xcrop and normal MLV recording? I've read @a1ex input on it and tested myself, but I can't see much difference between the two, except for the fact that 3xcrop has more noise and, well... it's cropped.
#171
Quote from: dfort on April 08, 2018, 06:26:18 PM
I compiled a build for you and put it on my downloads page. I'll keep it up for a few days or until you let me know that you've got it.

Thanks @dford! You're awesome. Already running it :^)

Quote
3. Raw video Dual ISO isn't working on several cameras. I think it might be a Digic 4 thing, IDK. However, if you could shoot video with Dual ISO you might not like it because it adds aliasing artifacts on top of the aliasing that is already inherent on these DSLR cameras. It is fine with still photography because you're using the full sensor resolution but at video resolution the Dual ISO artifacts are very noticeable.

Too bad. I remember my 600D worked with Dual_ISO in raw video, I've found it to help sometimes when I needed more DR...

Quote
4. Don't get too hung up on getting an exact 180 degree shutter angle. A few "professional" film cameras don't even have it. Ok, well maybe the better ones do for example the Arri 16s has 180° while the Canon Scoopic 16mm has a 170° and the Bolex H-16 has a 135° shutter. Some film cameras have variable angle shutters and the Panaflex Millennium can even vary the speed while adjusting the angle so the exposure remains the same. Though I doubt you're going to trade in your 50D for a Panavision to get that feature.

haha!

Quote
6. Yeah, that seems like a bug. Could you please write up exactly how to reproduce it and post it on the issue tracker?

I'll see if I can post there. The reply above to @Andy600 has a link for a screenshot: basically when you reach above maximum resolution and then you go back not "<=" res. you don't get the maximum, but the value below maximum (1536px).
#172
Thanks for all the replies.


Quote from: Andy600 on April 08, 2018, 04:00:49 PM
1. I have not had this happen personally. Have you tried different cards? Carefully cleaning the contacts etc?

I haven't tried a different card, since I only have this one I'm using (Komputer Bay Pro 1000x)

Quote
2. I think you can re-assign the record button!?

Oh, that's right, thanks!

Quote
4. You can fine tune shutter settings but I don't get exactly 180 degrees either. It's either slightly more or slightly less (I choose slightly less). If very much doubt you can tell any real difference in cadence and motion blur against something shot with a shutter at exactly 180 degrees. And, in some 'pro' cinema cameras, although it may say 180 degrees on the settings screen they too can be one way or the other depending on the internal clock frequency.

Yes, you're right. I just find it annoying when I get ~178 degree instead of 180... maybe it's some psychological stuff.

Quote
5. It's likely not just in mid-tones but that's where you're most likely to see it. It could be CA or white balance.

It's not CA because it's happening not only on the edges and probably not WB too, because I've adjusted it many times. I checked the black point and sometimes it's off... maybe the software guesses the wrong BP?

Quote
Try other apps for processing first. The white balancing algorithm in some apps can cause magenta contamination (I have seen it happen with raw footage in in Resolve) so that's where I would put my money. If its happening across multiple apps then try shooting a repeatable test without any tint offset being set in camera, try a different lens with a different focal length, try a UV filter, basically try everything you can think of in camera then try all the apps again.   

I've tried on Rawtherapee (extracted from MLV with mlv_dump) and MLVApp.

Here's some examples below. Download a DNG here (1.83MB):
Link

Link

Link


The midtones have a cast of magenta, even though I've changed the ting levels to more green...

Quote
6. Sounds like a bug.

Yeah. Here:
Link
#173
Raw Video Postprocessing / Re: MLVProducer: [v3200]
April 08, 2018, 12:31:25 PM
Hi @AWPStar, do you know what algorithm is MLVPDM? How does it compare with AMaZE and IGV? Do you think these are too complex for video?
Also, just as suggestion too, Bart Goossens have some really interesting publications in this subject. These two, for example:

- An Overview of state-of-the-art denoising and demosaicking techniques: toward a unified framework for handling artifacts during image reconstruction

- "Computationally Efficient Locally Adaptive Demosaicing of Color Filter Array Images Using the Dual-Tree Complex Wavelet Packet Transform"

I think the proposed "DTCWPT" algorithm would be very suitable for MLVProducer. His website seem to be this one.
#174
I'm using 50D professionaly for MLV video. So far it's working very well, thanks to all the hard work of you developers. I've noticed some bugs and missing features, maybe someone could answer me if these are really bugs or not:

1 - Sometimes while recording with MLV the camera gives an error. The message is something like "card/filesystem error". The card is formatted inside camera (exFAT, from what I remember). Everytime it happens I have to restart the camera (most of the time removing batteries).

2 - The Auto-ETTR module uses the "SET" button, the same as the MLV module, so there's incompatibility between the two.

3 - Dual ISO doesn't seem to work in movie mode, even though the MLV module is loaded. The message (in orange) says: "Dual ISO does not work in movie mode on your camera".

4 - No shutter fine-tunning. If find it useful to get exact 180 degree shutter on 24fps...

5 - A slight magenta 'corruption' in the midtones. I'm sure it's not a WB issue or chromatic aberration. I'm processing with MLVProducer, so it could be a bug on post-processing, haven't tested on other software.

6 - The maximum resolution is 1568px? When I try to reach a higher resolution it gives me the message "[resolution] is not possible in current video mode (max 1568)", so when I return to a lower resolution it goes to 1536px, instead of the supposed maximum 1568px. It doesn affect the functionality, it's just a bug it seems.



I can send the log files and a MLV sample if needed, just ask here and I'll do the upload.
I have some dumb questions too:
- The 10bit doesn't seem to be supported on 50D, right?

- Is it possible to have the optimal ISO values on the "ADTG experiment" without compiling it from scratch? I've tried to run the ISO research modules, didn't work.
#175
Good. I like the glitch effects. The music is good too :D