I did saturation adjustment in Color Finesse in Adobe Premiere and I wanted to reproduce the result in vapoursynth. So I did some tests comparing different hsl filters in the vapoursynth/avisynth/virtualdub pool to see how close they are. In my test I took a sample image and test it on all filters with 50% saturation.

In the results, the Tweak() in vs and avs, and the internal hsv filter and the 6-axis color correction filter in virtualdub are all identical. The only one that's visibly different is Color Mill.

When compares to the result of Color Finesse, the previous four looks very much the same in every color except red, as you can see in the samples:

All three look quite different to me. The vapoursynth image is YUV while the other two are RGB. How were the screenshots saved?

Compared to the first two, I think there's a rec.601 conversion that should've happened for the third image, but didn't.

The difference between one and two seems to be a difference in luminance levels and/or saturation. It's nowhere near a full TV vs PC levels difference, but the second image is a little darker than the first.

I did saturation adjustment in Color Finesse in Adobe Premiere and I wanted to reproduce the result in vapoursynth. So I did some tests comparing different hsl filters in the vapoursynth/avisynth/virtualdub pool to see how close they are. In my test I took a sample image and test it on all filters with 50% saturation.

In the results, the Tweak() in vs and avs, and the internal hsv filter and the 6-axis color correction filter in virtualdub are all identical. The only one that's visibly different is Color Mill.

When compares to the result of Color Finesse, the previous four looks very much the same in every color except red, as you can see in the samples:

For Color Finesse, I loaded the ts file into Adobe Premiere, applied the color finesse plugin to the track, and then "HSL->master->saturation" and set it to 50. Result image was saved from "export frame" of Premiere.

For Color mill, I loaded the original png into Virtualdub, loaded the color mill filter and set "saturation->stick->-50". The result image was saved to png from "file->export->single image".

All I can tell you at this point is if I open the "original" image in Irfanview and reduce the saturation by 128 I'm not sure I can distinguish it from the color finesse screenshot. That makes the vapoursynth screenshot a little darker than the "original" and I'm sticking with my rec.601 theory for the color mill screenshot, although converting the colours doesn't make it the same as "original", maybe just less different, so either I'm wrong or there's something else happening there.

All I can tell you at this point is if I open the "original" image in Irfanview and reduce the saturation by 128 I'm not sure I can distinguish it from the color finesse screenshot. That makes the vapoursynth screenshot a little darker than the "original" and I'm sticking with my rec.601 theory for the color mill screenshot, although converting the colours doesn't make it the same as "original", maybe just less different, so either I'm wrong or there's something else happening there.

The color mill differences maybe a bug in the filter itself, or that it just uses a different algorithm, just like the hsl filter in Photoshop/Premiere.

I also thought that maybe color finesse also uses a slightly different algorithm from the mainstream, but then you said Irfanview can produces an identical result...

As I dig deeper, I saw that GIMP is also identical to photoshop/premiere, and an online photo editor at befunky.com produces identical result to vs/avs/vd...

So there is like three different algorithms for saturation on the market right now?

There's definitely a difference between Tweak(sat=0.5) and reducing the saturation by 127 with Irfanview. I can easily see it when I use the following on your original image.

ConvertToYV12(matrix="rec709")
Tweak(Sat=0.50, coring=false)

I'm wondering if it's somehow gamma related. By reducing the gamma to 90% with Irfanview while reducing the saturation by a little more than 50% I can get it fairly close to what Tweak does, but I still haven't managed to find a combination that produces the same result.

Edit: No, after a bit more playing around I don't think it's gamma. Tweak(sat=0.52) is closer to Irfanview's 50% although reds still aren't the same.

Could it be the saturation definition in RGB vs YUV calculations ? Tweak only works in YUV . Some filters in PP work in YUV, but you're going to get different results if you use a YUV video vs a RGB converted PNG

- Color Finesse 3 different as tweak (converted to RGB using 709) as you reported
- Colorista 3 gives same results as tweak
- Lumetri gives something completely different than those
- AE's internal Hue/Saturation filter or colorbalance HLS completely different but same as each other

It has something to do with brightness compensation calc because a 191 red bar becomes 41,41,41 with complete desaturation for colorista but 57,57,57 with color finesse, 95,95,95 with internal h/s filter or colorbalance hls

Could it be the saturation definition in RGB vs YUV calculations ? Tweak only works in YUV . Some filters in PP work in YUV, but you're going to get different results if you use a YUV video vs a RGB converted PNG

I think you found the right track, I found the common ground between them following it.

There should be a RGB and a YUV version of the HLS filter. Both producing different result because of different calculation. In Premiere, if I'm not mistaken, all the effect filters are RGB unless there is a "yuv" icon next to the name.

The yuv "fast color corrector" in Premiere produces identical result to color finesse and irfanview, which indicate that the latter two are also using the yuv version.

While the rgb "color balance (HLS)" gives identical result as photoshop and gimp.

It makes more sense now, and since the two YUV groups produce so similar result beside red color, I'm suspecting that they should original be in one group, the difference is probably cause by missed calculation from one group. I don't think that the commercial one would mess up, so I think the flaw is probably Avisynth's tweak, since all the rest in the group are basically a port of it.

update: added davinci resolve

Last edited by lansing; 8th December 2017 at 22:48.
Reason: added resolve to group

I don't think that the commercial one would mess up, so I think the flaw is probably Avisynth's tweak, since all the rest in the group are basically a port of it.

I don't know if you can really call it a "flaw" ... it's just another method of defining and calculating "saturation". The commercial Colorista produces identical results as tweak, but using RGB input source. So if it's a "flaw", it has it too. I guess we could check a bunch of other commercial programs. Resolve would usually be considered the "gold standard" for video color work