Thanks Shekh,
So if I understand correctly, your interpretation of the 'Sony Vegas' (Resolve 15.1, Natron) Checkers-444 > v210 pattern holds - "blends max 2 neighbor pixels as opposed to summed area" - and that is what the lower diagram illustrates:
That also fits with a definition of Bilinear
Interpolation - "....uses a 2x2 environment of a pixel and then takes the average of these pixels to interpolate the new value. It's not the best algorithm, but rather fast."
Did that definition come from Sony btw ?
The other pattern observed with VDub2 represents Bilinear
Resampling where "each pixel convolved with kernel 0.25, 0.5, 0.25" (corresponding to the top diagram), which is consistent with the 444 > 422 results obtained with AVISynth using the 'Bilinear' re-sampler, along with Resolve 15.1.2 and Premiere Pro.
@PDR. Many thanks also. I think you've clinched it.
Quote:
Originally Posted by WorBry
Quote:
Originally Posted by poisondeathray
The vegas/natron/resolve15.1 histogram pattern in your screenshot looks very close to the "box" kernel using fmtc in vapoursynth
|
It does doesn't it. I'll look at this some more tomorrow.
|
I ran the AVISynth scipt you posted:
Code:
LsmashVideoSource("checkers-444.mov", format="YUV444P10", stacked=true)
Dither_resize16(1920,1080, kernel="box", csp="YV16")
ConvertFromStacked(bits=10)
Here's the scope profile and checker pattern of the resulting v210 encode compared to your VapourSynth 'v210_fmtc_box_dmode=1' clip, the Resolve 15.1 export and original 'Checkers-422' (ProRes_HQ) clip. They match up very well don't they.
I also compared the AVISynth 'Box Kernel' v210 vs Resolve 15.1 v210 export with quality metrics and the SSIM and PSNR scores are not too shabby either:
That's the one - it's 'Box Kernel' resampling.
So does that tally with '"blends max 2 neighbor pixels as opposed to summed area" ?
If so I think we can marked this up as "solved".
Edit: I'm also able to replicate the behavior observed when the Checkers-422 clip is 'pass-through' exported to v210 in Resolve 15.1
Code:
LSMASHVideoSource("{Path}:\checkers-422.mov", format="YUV422P10", stacked=true)
Dither_resize16(1920,1080, kernel="bilinear", csp="YV24")
Dither_resize16(1920,1080, kernel="box", csp="YV16")
ConvertFromStacked(bits=10)
Which confirms Bilinear up-sampling to 444 on import and Box sub-sampling to 422 on export.
It was that behavior which sparked this study in the first place as it was deemed to reflect sub-optimal 422 chroma sub-sampling.