Log in

View Full Version : dropouts in 20222


Mounir
1st June 2022, 10:18
I'm looking for the best solution available to fix dropouts. It's from a EP vhs and it's the cleanest picture i can get (after playing with the guides and all).
I have processed it a little already (chroma fix/noise, deinterlacing with qtgmc). I'm aware of many filters that supposedly take care of this but they're not that great, namely : Devcr, degrainmedian, the script from YUP (http://forum.doom9.org/showpost.php?p=949401&postcount=14), Spotless


video sample: https://mega.nz/file/dhABXLbC#LfosNilPOkmkXyaRcWdY2eS--RWJMZ0TA07mLS9E2o8

lansing
1st June 2022, 16:35
You'll need to recapture the vhs with better equipment, mainly a TBC. You can check out my thread here (https://forum.doom9.org/showthread.php?t=183936)

lollo2
1st June 2022, 19:06
Some fix for small portion of the damaged frame, and for defects not staying identical across a high number of frames here: https://forum.videohelp.com/threads/403553-Restoring-VHS-Tapes-with-Damage-(White-Horizontal-Lines-Colour-Distortion)#post2635329

As lansing said, a better equipment is needed, but if the tape is damaged I suspecy that there is really no solution

Mounir
1st June 2022, 21:56
Some fix for small portion of the damaged frame, and for defects not staying identical across a high number of frames here: https://forum.videohelp.com/threads/403553-Restoring-VHS-Tapes-with-Damage-(White-Horizontal-Lines-Colour-Distortion)#post2635329

i like that Fixrips, i have tweaked it (i'll share later) ,it's really good but i have one problem i have to filter more after fixripSp2 but i miss something as the filters are not taken into account somehow

video_org=AVISource("VIDEO.avi").convertToYV16(interlaced=true).trim(42706,0)
SetMTMode(4,3)
# plugins directory
plugins_dir="C:\Program Files (x86)\AviSynth 2.6\plugins"
# FixRipsp2
Import(plugins_dir + "FixRipsP2.avs")
### separate fields
video_org_sep=video_org.AssumeTFF().separateFields()
### select even fields
video_org_sep_even=SelectEven(video_org_sep)
### select odd fields
video_org_sep_odd=SelectOdd(video_org_sep)
### repair
video_org_sep_even_rep=video_org_sep_even.SpotLessUV().FixRipsp2()
video_org_sep_odd_rep=video_org_sep_odd.SpotLessUV().FixRipsp2()
### interleave
video_interleaved=interleave(video_org_sep_even_rep,video_org_sep_odd_rep)
### weave
video_restored=video_interleaved.Weave()
return(video_restored)

How do i add more filters after this ? ex:
qtgmc("fast")
selecteven()

Thanks

lollo2
1st June 2022, 22:03
I do not know if the linked script is ok for your video, but if you want more filtering just add at the end:


### weave
video_restored=video_interleaved.Weave()
return(video_restored)




### weave
video_restored=video_interleaved.Weave()
### deinterlacing
video_deinterlaced=video_restored.QTGMC()
### select even
video_final=video_deinterlaced.SelectEven()

return(video_final)


If your video is interlced and you apply QTGMC().SelectEven() you loose half of the motion.

Also check if it is not better to apply QTGMC first and then FixRipsP2 on the progressive frames

johnmeyer
1st June 2022, 22:50
First of all, dropouts can be fixed, but your video does not contain dropouts.

Second, I am pretty sure you can fix this without any AVISynth help. Your problem looks like a classic tracking problem. If you still have the tape and a working VCR, change it to manual tracking and adjust the tracking when you get to this section until the interference goes away.

Better equipment always helps, but I am not sure a TBC is going to help with this problem. Instead you need features which are designed to better track EP tapes. EP speed is notorious for being difficult to track.

One other option is simply to capture it using a different deck, if you have another one lying around. Very often one deck will be adjusted differently and yield a better capture.

If the tape is actually damaged, then nothing is going to help much.

Mounir
1st June 2022, 22:54
I do not know if the linked script is ok for your video, but if you want more filtering just add at the end:


### weave
video_restored=video_interleaved.Weave()
return(video_restored)




### weave
video_restored=video_interleaved.Weave()
### deinterlacing
video_deinterlaced=video_restored.QTGMC()
### select even
video_final=video_deinterlaced.SelectEven()

return(video_final)




The problem is i have a lot of filters that come after such as:


separatefields()
A=Last
B=A.Greyscale()
Overlay(B,A,X=2,Y=-2,Mode="Chroma") # c
weave()
###############
QTGMC( Preset="fast", TR2=1, EdiThreads=4)
SelectEven()
converttoyv12(matrix="rec601",interlaced=false)

SetMTMode(2,1)
input=last
# mode=0:
Y= AutoAdjust(auto_gain=true,gain_mode=0,avg_safety=1.00,scd_threshold=0,input_tv=false,output_tv=true,dark_limit=17.0,bright_limit=1.50,gamma_limit =1.0,dark_exclude=1.00,temporal_radius=1,high_quality=true,high_bitdepth=false)
U = UtoY()
V = VtoY()
YtoUV(U, V, Y)
SetMTMode(4,3)
LimitedSharpenFaster()

lollo2
1st June 2022, 23:07
Ok, then change my style of writing removing the xxx=yyy.filtering and use standard style, or just create a second avs script with your additional steps where the input file is the output of the first script

Mounir
2nd June 2022, 13:46
Can't i use a trick and keep everything in the same script ? Something like, return(video_final) = last and then go forward with the filtering

lollo2
2nd June 2022, 15:37
yes you can (but is a bit ugly :)):


...
### weave
video_restored=video_interleaved.Weave()


last=video_restored

QTGMC()

SelectEven()