Our website is made possible by displaying online advertisements to our visitors. Consider supporting us by disable your adblocker or try DVDFab and copy, convert or make Blu-rays and DVDs! :)

# Grotesque Anomaly is back (Sorry buddies, but I need suggestions)

1. 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
2. Mr. Jagabo suggested me RemoveDirtMC() or RemoveSpotsMC()
But I can not make it work
3. Mr. johnmeyer show me this:
Code:
```function Remove_TearsI(clip source) {

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

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

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.
4. I recognize that image. Isn't this an exact duplicate of what you (or someone else) asked about a year or two ago?
5. Originally Posted by johnmeyer
I recognize that image. Isn't this an exact duplicate of what you (or someone else) asked about a year or two ago?
Yes,is this, is me
6. 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
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 result is a very over filtered look but the comets are greatly reduced. You can try higher or lower settings in the filters to get the compromise you want.
7. 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.
8. I know. I just thought I'd give it a shot since we passed the last time. And had some free time.
9. Originally Posted by jagabo
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
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 result is a very over filtered look but the comets are greatly reduced. You can try higher or lower settings in the filters to get the compromise you want.

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)`
PS:I know it's not the same thing,but
This Worked:
Code:
```Spline64Resize(width*2, height*2)
Sharpen(0.3)```
Edit:
Work... but I lost the aspect ratio...
10. Originally Posted by jagabo
I know. I just thought I'd give it a shot since we passed the last time. And had some free time.
Just, are my vacations

Originally Posted by johnmeyer
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.
Started with..."I really did not want to bring this back..."
I think we're walking in line, crooked, but going in some direction, thank you.
11. 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 mesh
12. I'd run QTGMC while the video was downscaled. nnedi3 will get you sharper upscaling with less aliasing.
13. Originally Posted by jagabo
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]
14. It looks like I took out the "src=last" line just after the source filter. It's just to restore the original frame size.
15. Originally Posted by jagabo
It looks like I took out the "src=last" line just after the source filter. It's just to restore the original frame size.
AviSynthxxx "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```
16. QTGMC(preset="very slow",edithreads=4).selecteven() plus Neatvideo V4 on Virtualdub works rather well

17. Originally Posted by themaster1
QTGMC(preset="very slow",edithreads=4).selecteven() plus Neatvideo V4 on Virtualdub works rather well

Look's Very interesting!
18. Originally Posted by Caiosouza
Originally Posted by jagabo
It looks like I took out the "src=last" line just after the source filter. It's just to restore the original frame size.
AviSynthxxx "I do not know what "src" is."
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
MergeChroma(aWarpSharp(depth=20)) # sharpen colors
Sharpen(0.3)
nnedi3_rpow2(2, cshift="Spline36Resize", fwidth=src.width, fheight=src.height) # upscale
Sharpen(0.3)```
19. Originally Posted by jagabo
Jesus christ!
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..."
Abraēo.
20. As my work seems to be appreciated, for once i have uploaded the neat profiles

video processed by neatvideo v4: here
neatvideo profiles: here

comparison original Vs qtgmc + neatv4

21. Originally Posted by themaster1
As my work seems to be appreciated, for once i have uploaded the neat profiles

video processed by neatvideo v4: here
neatvideo profiles: here

comparison original Vs qtgmc + neatv4

Really good!

This can be an interesting combination:
Code:
```TNLMeans(Ax=0, Ay=0, Az=1, h=16)
RemoveDirtMC(30)
QTGMC(InputType=1, EZDenoise=2.0, DenoiseMC=true)

+neatvideo v4```

PS: ...+Tortelli Wins!
22. 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
23. Originally Posted by themaster1
tnlmeans h=16 is too strong
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.
24. 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

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)
}
Processed video (with the script above): https://mega.nz/#!N05DTQaJ!2GCTwr9AYDFAIa8czzzx7oosga2wegIHNOh2NHG5PA8

example (Neat v4, Neat+Script above, Original):
25. I just A/B'd between the two pics, and your improvement over using just Neat Video was quite good. Nice job.

Statistics