I really did not want to bring this back, but this video is very rare, and I really did not get another source.
So reviewing an old topic I felt a little hope of making it at least acceptable, lessen these comets and improve this crap a little.
I would like some suggestion of bright minds, and I know have many here, thank you!
Sample:
1-More static
2-More movement
+ Reply to Thread
Results 1 to 25 of 25
-
-
Mr. Jagabo suggested me RemoveDirtMC() or RemoveSpotsMC()
But I can not make it work -
Mr. johnmeyer show me this:
Code:function Remove_TearsI(clip source) { #Create mask ml = 100 # mask scale scene_change = 900 # scene change fields=source.SeparateFields() even_fields=selecteven(fields) odd_fields =selectodd(fields) super_even = MSuper(even_fields,pel=2, sharp=1) vfe = MAnalyse(super_even,isb=false) # forward vectors vbe = MAnalyse(super_even,isb=true) # backward vectors cfe = MFlow(even_fields,super_even,vfe,thSCD1=scene_change) # previous compensated forward cbe = MFlow(even_fields,super_even,vbe,thSCD1=scene_change) # next compensated backward sadfe = MMask(super_even,vfe, ml=100,kind=1,gamma=1, thSCD1 = scene_change) msadfe= sadfe.Binarize() # binary inverted forward SAD mask sadbe = MMask(super_even,vbe, ml=ml, gamma=1, kind=1, thSCD1 = scene_change) # backward SAD mask msadbe= sadbe.Binarize() # binary inverted backward SAD mask msade = Logic(msadfe,msadbe,"OR") # combined inverted SAD mask msade = msade.Expand() # expanded inverted SAD mask msadie = Interleave(msade, msade, msade) # interleaved 3-frame inverted SAD mask Interleave(cfe,even_fields,cbe) # interleave forward compensated, source, and backward compensated even_result_fields=DeSpot(show=0,mscene=99,p1percent=3,dilate=3,maxpts=1000,p2=6,mthres=9,p1=12,pwidth=840,pheight=12,mwidth=7,mheight=5,merode=33,interlaced=false,seg=1,sign=0,ranked=true).SelectEvery(3,1) super_odd = MSuper(odd_fields,pel=2, sharp=1) vfo = MAnalyse(super_odd,isb=false) # forward vectors vbo = MAnalyse(super_odd,isb=true) # backward vectors cfo = MFlow(odd_fields,super_odd,vfo,thSCD1=scene_change) # previous compensated forward cbo = MFlow(odd_fields,super_odd,vbo,thSCD1=scene_change) # next compensated backward sadfo = MMask(super_odd,vfo, ml=100,kind=1,gamma=1, thSCD1 = scene_change) msadfo= sadfo.Binarize() # binary inverted forward SAD mask sadbo = MMask(super_odd,vbo, ml=ml, gamma=1, kind=1, thSCD1 = scene_change) # backward SAD mask msadbo= sadbo.Binarize() # binary inverted backward SAD mask msado = Logic(msadfo,msadbo,"OR") # combined inverted SAD mask msado = msado.Expand() # expanded inverted SAD mask msadio = Interleave(msado, msado, msado) # interleaved 3-frame inverted SAD mask Interleave(cfo,odd_fields,cbo) # interleave forward compensated, source, and backward compensated odd_result_fields=DeSpot(show=0,mscene=99,p1percent=3,dilate=3,maxpts=1000,p2=6,mthres=9,p1=12,pwidth=840,pheight=12,mwidth=7,mheight=5,merode=33,interlaced=false,seg=1,sign=0,ranked=true).SelectEvery(3,1) interleave(even_result_fields,odd_result_fields) weave() }
[Attachment 46599 - Click to enlarge]
[Attachment 46600 - Click to enlarge]
Really effective, but it can be very complex to play with these numbers for me. -
I recognize that image. Isn't this an exact duplicate of what you (or someone else) asked about a year or two ago?
-
Once again, with video this bad you will be trading one type of artifact for another. It's debatable whether anything you do is an improvement or not. But this might give you some ideas to work with:
Code:LWLibavVideoSource("1-Grotesque Anomaly-1996 MX 125.mkv") TNLMeans(Ax=0, Ay=0, Az=1, h=16) # reduces intensity of comets BilinearResize(288, 270) # smaller gives more noise reduction, larger gives less RemoveDirtMC(30) # reduce comets, adjust along with size TemporalDegrain(SAD1=200, SAD2=150, sigma=8) #general noise reduction MergeChroma(aWarpSharp(depth=20)) # sharpen colors Sharpen(0.3) nnedi3_rpow2(2, cshift="Spline36Resize", fwidth=src.width, fheight=src.height) # upscale Sharpen(0.3)
-
The following link will take you to a discussion, by this same person, of the exact same image posted here, from almost two years ago:
Cleaning trash ...
We're covering the same ground, going in circles.
Déją vu. -
I know. I just thought I'd give it a shot since we passed the last time. And had some free time.
Last edited by jagabo; 26th Aug 2018 at 09:43.
-
I believe you've thought about it on a coffee break ... because this looks really delicious!
I geting error on last line, more precisely in "src"
Code:nnedi3_rpow2(2, cshift="Spline36Resize", fwidth=src.width, fheight=src.height)
This Worked:
Code:Spline64Resize(width*2, height*2) Sharpen(0.3)
Work... but I lost the aspect ratio...Last edited by Caiosouza; 26th Aug 2018 at 10:18.
-
Last edited by Caiosouza; 26th Aug 2018 at 12:00.
-
Does that make any sense?
Code:DirectShowSource("C:\Users\User\Desktop\2-Sample-1996 MX 125.mkv") TNLMeans(Ax=0, Ay=0, Az=1, h=16) # reduces intensity of comets RemoveDirtMC(30) # reduce comets, adjust along with size QTGMC(InputType=1, EZDenoise=2.0, DenoiseMC=true) # Denoise BilinearResize(width/2, height) # downsize, clean edges, upsize, sharpen Santiag(strv=4, strh=4) #anti-aliasing Spline36Resize(width*2, height)
[Attachment 46608 - Click to enlarge]
Sorry renamed"My After"...It's actually jagabo meshLast edited by Caiosouza; 26th Aug 2018 at 11:52.
-
I'd run QTGMC while the video was downscaled. nnedi3 will get you sharper upscaling with less aliasing.
-
But I get error on "src"
Code:nnedi3_rpow2(2, cshift="Spline36Resize", fwidth=src.width, fheight=src.height)
Could I have more something working focused only in this (aprox.) area?
[Attachment 46610 - Click to enlarge]Last edited by Caiosouza; 26th Aug 2018 at 13:32.
-
It looks like I took out the "src=last" line just after the source filter. It's just to restore the original frame size.
-
AviSynth
xxx "I do not know what "src" is."
I try This, but lost aspect ratio
Code:DirectShowSource("C:\Users\User\Desktop\1-Sample-1996 MX 125.mkv") TNLMeans(Ax=0, Ay=0, Az=1, h=16) # reduces intensity of comets BilinearResize(288, 270) RemoveDirtMC(30) # reduce comets, adjust along with size RemoveSpotsMC() QTGMC(InputType=1, EZDenoise=2.0, DenoiseMC=true) # Denoise Spline36Resize(width*2, height*2) Santiag(strv=4, strh=4) #anti-aliasing
Last edited by Caiosouza; 26th Aug 2018 at 14:58.
-
QTGMC(preset="very slow",edithreads=4).selecteven() plus Neatvideo V4 on Virtualdub works rather well
*** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE -
-
Jesus christ!
Code:LWLibavVideoSource("1-Grotesque Anomaly-1996 MX 125.mkv") src=last TNLMeans(Ax=0, Ay=0, Az=1, h=16) # reduces intensity of comets BilinearResize(288, 270) # smaller gives more noise reduction, larger gives less RemoveDirtMC(30) # reduce comets, adjust along with size TemporalDegrain(SAD1=200, SAD2=150, sigma=8) #general noise reduction MergeChroma(aWarpSharp(depth=20)) # sharpen colors Sharpen(0.3) nnedi3_rpow2(2, cshift="Spline36Resize", fwidth=src.width, fheight=src.height) # upscale Sharpen(0.3)
-
Eu ja vi que voce nćo fez a pausa para um café...
Muitas das vezes isso é irritante mesmo, voce fazer entender coisas que sćo simples para voce,
Porem muitas frases podem nao ser tćo claras dependendo o contexto, ou algo assim, tipo "Sua batata esta assando, nćo fica dando sopa"...
Bom, de repente voce prefere tomar seu "café acompanhado de um nego deitado..."
Obrigado!
Abraēo.Last edited by Caiosouza; 26th Aug 2018 at 17:42.
-
*** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
-
Last edited by Caiosouza; 26th Aug 2018 at 19:52.
-
tnlmeans h=16 is too strong
qtgmc(inputtype=1) that's for a real progressive video which is not even close for this source
My 2 cents*** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE -
Yes. I was using that to reduce comets on the still shots. It does very bad things on moving shots.
Certainly, Neat Video does a good job. Unfortunately, it's not free. -
I almost forgot the magic script that you could use after neat (it's not artifacts free, careful) :
a=last
#clense(reduceflicker=false).merge(last,0.5).clens e(reduceflicker=false)
mot=removegrain(8,0).DepanEstimate(range=2)
take2=a.depaninterleave(mot,prev=2,next=2,subpixel =2)
clean1=take2.selectevery(5,2)
sup1 = clean1.minblur(1).removegrain(11,0)
\ .mt_lutxy(clean1,"x 1 + y < x 2 + x 1 - y > x 2 - y ? ?",U=2,V=2)
\ .msuper(pel=2,sharp=0)
sup2 = a.msuper(pel=2,levels=1,sharp=2)
###### Good mvtools values, Do not change, checked##########
bv22=sup1.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=16,ov erlap=8,search=5,searchparam=4,DCT=5)
bv21=sup1.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=16,ov erlap=8,search=5,searchparam=4,DCT=5)
fv21=sup1.manalyse(isb=false,truemotion=false,glob al=true,delta=1,blksize=16,overlap=8,search=5,sear chparam=4,DCT=5)
fv22=sup1.manalyse(isb=false,truemotion=false,glob al=true,delta=1,blksize=16,overlap=8,search=5,sear chparam=4,DCT=5)
interleave(a.mcompensate(sup2,fv22),a.mcompensate( sup2,fv21),a,a.mcompensate(sup2,bv21),a.mcompensat e(sup2,bv22))
mergeluma(TMedian2(),0.9).mergechroma(TMedian2(),1 ).selectevery(5,2)
sup3 = last.msuper(pel=2,sharp=2)
bv33=sup3.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=8,ove rlap=4,search=5,searchparam=4,DCT=5)
bv32=sup3.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=8,ove rlap=4,search=5,searchparam=4,DCT=5)
bv31=sup3.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=8,ove rlap=4,search=5,searchparam=4,DCT=5)
fv31=sup3.manalyse(isb=false,truemotion=false,glob al=true,delta=1,blksize=8,overlap=4,search=5,searc hparam=4,DCT=5)
fv32=sup3.manalyse(isb=false,truemotion=false,glob al=true,delta=1,blksize=8,overlap=4,search=5,searc hparam=4,DCT=5)
fv33=sup3.manalyse(isb=false,truemotion=false,glob al=true,delta=1,blksize=8,overlap=4,search=5,searc hparam=4,DCT=5)
last
# To remove small Black streaks and some white dots :
noisy = last
nonoise = RemoveDirtMC()
# note:Can work best with : nonoise = RemoveDirtMC.fft3dfilter(sigma=7.0,sigma2=7.0,sigm a3=7.0,sigma4=7.0, bt=1, bw=32, bh=32, ow=16, oh=16,plane=0, sharpen=0.0,interlaced=false,dehalo=0.0)
diff = 5 # default10 / between 18- 5 to remove more or less
m = mt_lutxy(noisy,nonoise,"y x - "+string(diff)+" - 255 *")
mt_merge(noisy,nonoise,m)
#########################
Function EdgeCleaner(clip c, float "strength", bool "rep", int "rmode", int "smode", bool "hot", bool "fix") {
strength = default(strength, 8.0)
rep = default(rep, true)
rmode = default(rmode, 17)
smode = default(smode, 0)
hot = default(hot, false)
fix = default(fix, true)
c = (c.isYV12()) ? c : c.ConvertToYV12()
strength = (smode==0) ? strength : strength+4
main = c.aWarpSharp(strength,1)
main = (rep) ? Repair(main,c,rmode) : main
mask = c.mt_edge("prewitt",4,32,4,32).mt_invert().mt_conv olution()
final = (!hot) ? mt_merge(c,main,mask) : Repair(mt_merge(c,main,mask),c,2)
final = (fix) ? Overlay(final,c.ConvertToRGB24().Crop(0,1,-c.width+1,-c.height+2),x=0,y=1) : final
final = (smode != 0) ? mt_merge(final,c,c.StarMask(smode)) : final
return final
}
function StarMask(clip c, int "mode") {
mode = default(mode, 1)
clean = (mode==1) ? c.RemoveGrain(17) : Repair(c.Deen("a3d",4,12,0),c,15).RemoveGrain(21)
diff = (mode==1) ? mt_makediff(c,clean) : NOP
final = (mode==1) ? diff.Greyscale().Levels(40,0.350,168,0,255).remove grain(7,-1).mt_edge("prewitt",4,16,4,16) : \
Subtract(mt_merge(clean,c,c.mt_edge("roberts",0,2, 0,2).mt_expand(mode=mt_circle(1)).mt_invert()),c). mt_edge("roberts",0,0,0,0).mt_deflate()
return final
}
function MinBlur(clip clp, int r, int "uv")
{
uv = default(uv,3)
uv2 = (uv==2) ? 1 : uv
rg4 = (uv==3) ? 4 : -1
rg11 = (uv==3) ? 11 : -1
rg20 = (uv==3) ? 20 : -1
medf = (uv==3) ? 1 : -200
RG11D = (r==0) ? mt_makediff(clp,clp.sbr(),U=uv2,V=uv2)
\ : (r==1) ? mt_makediff(clp,clp.removegrain(11,rg11),U=uv2,V=u v2)
\ : (r==2) ? mt_makediff(clp,clp.removegrain(11,rg11).removegra in(20,rg20),U=uv2,V=uv2)
\ : mt_makediff(clp,clp.removegrain(11,rg11).removegra in(20,rg20).removegrain(20,rg20),U=uv2,V=uv2)
RG4D = (r<=1) ? mt_makediff(clp,clp.removegrain(4,rg4),U=uv2,V=uv2 )
\ : (r==2) ? mt_makediff(clp,clp.medianblur(2,2*medf,2*medf),U= uv2,V=uv2)
\ : mt_makediff(clp,clp.medianblur(3,3*medf,3*medf),U= uv2,V=uv2)
DD = mt_lutxy(RG11D,RG4D,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?",U=uv2,V=uv2)
clp.mt_makediff(DD,U=uv,V=uv)
return(last)
}
# median of 5 clips from Helpers.avs by G-force
Function Median2(clip "input_1", clip "input_2", clip "input_3", clip "input_4", clip "input_5", string "chroma")
{
chroma = default(chroma,"process") #default is "process". Alternates: "copy first" or "copy second"
#MEDIAN(i1,i3,i5)
Interleave(input_1,input_3,input_5)
chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
m1 = selectevery(3,1)
#MAX(MIN(i1,i3,i5),i2)
m2 = input_1.MT_Logic(input_3,"min",chroma=chroma).MT_L ogic(input_5,"min",chroma=chroma).MT_Logic(input_2 ,"max",chroma=chroma)
#MIN(MAX(i1,i3,i5),i4)
m3 = input_1.MT_Logic(input_3,"max",chroma=chroma).MT_L ogic(input_5,"max",chroma=chroma).MT_Logic(input_4 ,"min",chroma=chroma)
Interleave(m1,m2,m3)
chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
selectevery(3,1)
chroma == "copy first" ? last.MergeChroma(input_1) : chroma == "copy second" ? last.MergeChroma(input_2) : last
ConverttoRGB32(matrix="rec601",interlaced=false)
LoadVirtualDubPlugin("C:\Program Files (x86)\VirtualDub\plugins\Camcorder_Color_Denoise_s se2.vdf", "CCD", 1)
CCD(7,1) # de 0 ą 100 # Défaut =30 /
converttoyv12(matrix="rec601",interlaced=false)
Return(last)
}
function TMedian2(clip c) {
Median2( c.selectevery(1,-2), c.selectevery(1,-1), c, c.selectevery(1,1), c.selectevery(1,2) ) }
function RemoveDirt(clip input, int limit, bool _grey)
{
clensed=input.Clense(grey=_grey, cache=4)
alt=input.RemoveGrain(2)
return RestoreMotionBlocks(clensed,input,alternative=alt, pthreshold=6,cthreshold=8, gmthreshold=40,dist=3,dmode=2,debug=false,noise=li mit,noisy=4, grey=_grey)
# Alternative settings
# return RestoreMotionBlocks(clensed,input,alternative=alt, pthreshold=4,cthreshold=6, gmthreshold=40,dist=1,dmode=2,debug=false,noise=li mit,noisy=12,grey=_grey,show=true)
# return RestoreMotionBlocks(clensed,input,alternative=alt, pthreshold=6,cthreshold=8, gmthreshold=40,dist=3,tolerance= 12,dmode=2,debug=false,noise=limit,noisy=12,grey=_ grey,show=false)
}
example (Neat v4, Neat+Script above, Original):Last edited by themaster1; 3rd Sep 2018 at 05:37.
*** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE -
I just A/B'd between the two pics, and your improvement over using just Neat Video was quite good. Nice job.
Similar Threads
-
VPN suggestions?
By SyncroScales in forum Video Streaming DownloadingReplies: 13Last Post: 24th Nov 2018, 10:58 -
Suggestions for this sample
By gamjerr in forum Video ConversionReplies: 1Last Post: 20th May 2017, 22:06 -
TBC Suggestions
By creaper in forum Capturing and VCRReplies: 37Last Post: 30th Apr 2017, 20:08 -
Router Suggestions?
By simple times in forum Newbie / General discussionsReplies: 3Last Post: 30th Nov 2015, 07:12 -
Suggestions to better my process
By slicknick610 in forum EditingReplies: 8Last Post: 7th Feb 2014, 07:11