Selur's Little Message Board

Full Version: Color Issue in Deinterlaced VHS Video Using Hybrid
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I’ve been using Hybrid to deinterlace VHS video using QTGMC (VapourSynth) with the "Bob" and "Medium" presets. My primary goal is to achieve decent quality deinterlacing without resizing. The focus is purely on deinterlacing while preserving the original footage quality as much as possible.

The deinterlacing process works really well, however, I’ve noticed an issue with the color in the output. The colors in the deinterlaced video don’t match the original footage - they appear lighter, almost like there’s an increase in contrast or brightness for some reason.

To help diagnose the issue, I've attached two sample files:
  • Sample.mpg (Original Interlaced)
  • Deinterlanced.mpg (Output after deinterlacing)


Could you please take a look at the files and let me know what might be causing this color mismatch? Any suggestions or guidance would be greatly appreciated!

Sample: https://drive.google.com/file/d/17wRfgdt...vCME1/view
Deinterlanced: https://drive.google.com/file/d/1OK2o-lu...ld6jt/view

[Image: Screenshot-2025-01-04-150245.png]


Hybrid Screenshots:
[Image: Screenshot-2025-01-04-145652.png]

[Image: Screenshot-2025-01-04-145723.png]

[Image: Screenshot-2025-01-04-145841.png]
Quote:The focus is purely on deinterlacing while preserving the original footage quality as much as possible.
Then you should not use medium or adjust the QTGMC settings.
read: https://forum.videohelp.com/threads/4041...commend-it

Quote:Could you please take a look at the files and let me know what might be causing this color mismat
Adding the historgram to the preview and looking it:
[Image: grafik.png]
not everything is inside the valid 16-235 range for tv scale. So you might want to handle that beforehand.
If one blindly assumes the source is 0-255 and maps that to 16-255 you get the effect you see:
[Image: grafik.png]
I simulated this using:
Code:
clip = core.std.Levels(clip=clip, min_in=0, max_in=255, min_out=16, max_out=235)
You probably might want to use something like:
Code:
clip = core.std.Levels(clip=clip, min_in=16, max_in=235, min_out=16, max_out=235)
[Image: grafik.png]


Cu Selur
Thank you so much for helping troubleshoot this issue!
 
In Hybrid, How did you apply the following setting, I could not figure it out! 

Quote:clip = core.std.Levels(clip=clip, min_in=16, max_in=235, min_out=16, max_out=235)

Much thanks!
Those are the default if 'Levels' is enabled:
[Image: grafik.png]
Angel

Cu Selur
(04.01.2025, 18:02)Selur Wrote: [ -> ]not everything is inside the valid 16-235 range for tv scale.

is this 16-235 range "created" to be used on Analog old CRT?
It is a historical limitation which originates in broadcast tv.
Luma range 16-235 was also referred as 'tv legal'.
As far as I remember:
Signal stability: values of 0-15 and 236-255 were used for buffers&co to stabilize the transmissions.
Standards: ITU-R BT.601 and ITU-R BT.709 are defined for tv scale.
Compatibility: old TV only could properly display a limited luma range correctly