RE: VHS conversion - Selur - 23.04.2025
Over-sharpening usually happens during capturing.
Only sharpening in your Vapoursynth script, seems to be:
clip = core.cas.CAS(clip=clip, sharpness=0.700)
Source doesn't seem oversharpened, gut has tons of other issues.- The whole thing is not properly captured, tons of track issues causing a wobbly image.
- Clip seems interlaced (tff + bob shows clear movement between frames in the first two scenes)
- Thick black halos in the frist and second scene
- Chroma is shifted, but shift seems to be different in some scences.
- Scene change to the third scene (the rotating stone beach thing) causes spotless to go crazy

- The whole pirate scene seems like a mess. Partial telecined, blends in the fields, duplicates. (sRestore, in mode pp3 and later applying FillDuplicateFrames might help, if the source is denoised a lot before)
- General: Whites are blown out.
- General: Tons of chroma noise. (mostly in the even fields)
- General: Saturation is too high.
So is it a bad capture: Yes
Could it be 'restored': With lots of scene-by-scene filtering, probably.
(especially color grading, shifting, denoising)
![[Image: grafik.png]](https://i.ibb.co/DHBsvVYy/grafik.png)
What looks 'okay' in for one scene, doesn't look so good for another. 
=> lots of work if you want to get this on an 'okay' level.
# Deinterlacing using QTGMC
clip = qtgmc.QTGMC(Input=clip, Preset="Fast", TFF=True) # new fps: 29.97
# Making sure content is preceived as frame based
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # progressive
clip = clip[1::2] # selecting previously odd frames
# adjusting color using Tweak
clip = color.Tweak(clip=clip, hue=0.00, sat=0.50, cont=1.00, bright=-20, coring=True)
# adjusting color space from YUV422P8 to YUV444P10 for vsSoftLight
clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P10, range_s="limited")
# color adjustment using SoftLight
clip = core.Argaricolm.Softlight(clip, mode=1, yuvin=601, yuvout=601)
# Chroma adjustment using ChromaShiftSP
clip = chromashift.ChromaShiftSP(clip=clip, X=-4.00, Y=4.00)
Seems like an 'okay' start for the coloring,... (the 0.5 saturation is probably too low, one some chroma denoising is applied too; I would suspect 0.8 might be okay then)
Cu Selur
RE: VHS conversion - lostsnowboardvideos - 23.04.2025
Thank you so much. Will try these after work tonight. Would some of the color restoration help with the tree and snow detail? Or is that also a capture issue?
RE: VHS conversion - Selur - 23.04.2025
I just noticed, the clips luma range is wrong. 
Maybe something like:
# adjusting color space from YUV422P8 to RGB24 for vsLevels
clip = core.resize.Bicubic(clip=clip, format=vs.RGB24, matrix_in_s="470bg", range_s="limited")
# adjusting color using Levels on RGB24 (8 bit)
clip = core.std.Levels(clip=clip, min_in=32, max_in=255, min_out=16, max_out=235, gamma=0.70)
for the snow scene:
![[Image: grafik.png]](https://i.ibb.co/5gXT1st8/grafik.png)
Messing with colors (color grading) isn't really my thing. 
Cu Selur
RE: VHS conversion - lostsnowboardvideos - 24.04.2025
These are working great in some of the tests I have been doing.
I think the wobbly frame issue I am experiencing is not having a VCR with TBC capability. Need to pursue one of those.
RE: VHS conversion - Selur - 24.04.2025
I agree, missing TBC is probably the main issue.
RE: VHS conversion - lostsnowboardvideos - 28.04.2025
Updated to the new dev version and now my encodes keep crashing after audio muxing. Debug attached.
RE: VHS conversion - Selur - 28.04.2025
Check the Vapoursynth preview, the problem is probably related to some updated libraries. (zsmooth or mvtools)
I updated the dev yesterday evening, since zsmooth was missing in it.
What CPU are you using?
Cu Selur
Ps.: can look at it after work, afk. atm.
RE: VHS conversion - lostsnowboardvideos - 28.04.2025
CPU is AMD Ryzen 9 5950X 16-Core Processor
Vapoursynth preview shows the following error:
2025-04-27 21:23:14.919
Failed to evaluate the script:
Python exception: Failed to load C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/KNLMeansCL/vsnlm_cuda.dll. GetLastError() returned 126. The file you tried to load or one of its dependencies is probably missing.
Traceback (most recent call last):
File "src\\cython\\vapoursynth.pyx", line 3365, in vapoursynth._vpy_evaluate
File "src\\cython\\vapoursynth.pyx", line 3366, in vapoursynth._vpy_evaluate
File "C:\Users\Computer\AppData\Local\Temp\tempPreviewVapoursynthFile21_23_14_457.vpy", line 18, in
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/KNLMeansCL/vsnlm_cuda.dll")
File "src\\cython\\vapoursynth.pyx", line 3101, in vapoursynth.Function.__call__
vapoursynth.Error: Failed to load C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/KNLMeansCL/vsnlm_cuda.dll. GetLastError() returned 126. The file you tried to load or one of its dependencies is probably missing.
RE: VHS conversion - Selur - 28.04.2025
Ah another dll, I missed.
You can get it over at https://github.com/AmusementClub/vs-nlm-cuda/releases
Putting the dll into your 'C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/KNLMeansCL/' folder should fix the problem.
Cu Selur
|