Log in

View Full Version : Is there anyway to use DNR2 without ghosting


Graigddu
1st September 2008, 10:00
Iv'e been trying to use DNR2 in locking pixels from fluctuating
in static scenes such as walls,sky,etc
it seems to work but i find that it also produces a ghosting effect i suppose you'd call it as a person moves in front of a wall,
Iv'e tried different settings and i like DNR2 as it quite quick but is there another filter i should look at preferably that doesn't slow encoding to a crawl or can someone recommend
DNR2 parameters for me to try.

martino
1st September 2008, 10:26
Check Repair from the RemoveGrain package.

Graigddu
1st September 2008, 21:40
Thanks for the info martino
would you know how i'd get repair to work as i looked at various posts and couldn't for
the life of me work out how to get it working

Graigddu
2nd September 2008, 09:43
Sorry but would anybody know how i would use Removegrain's
repair to remove a type of ghosting artifact left by DNR2

I take it that i would need to use removegrain as well but from searching the posts here and googling i'm still at a loss
as to how to set up this filter with this script i have also added MSharpen but it isn't in this script
SetMTmode(mode=5,threads=2)
SetMemoryMax(256)
# 16:9 encoding
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\MT Filter\MT.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\MaskTools-v1.5.8\MaskTools.dll") #version 1.58
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\DNR2\Dnr2_for_25.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\FluxSmooth\FluxSmooth.dll")
Import("C:\Program Files\AviSynth 2.5\plugins\Functions\funkydeblock.avs")
DirectShowSource("C:\Video\Editing\Test Copy.avi", fps=23.976, audio=false, convertfps=true)
SetMTmode(mode=2,threads=2)
ConvertToYV12()
FadeIn(50)
Lanczos4Resize(720,436,0.0,0.6)
AddBorders(0,70,0,70)
AssumeFPS(25,1,False)
SetMTmode(mode=5,threads=2)
MT("""
funkydeblock(th=5)
DNR2(8,4,6,3,6,3,"dnr2")
FluxSmoothST(7,7)
""", 2)

Didée
2nd September 2008, 11:13
Rule of thumb: (especially for temporal filters)
Simple filter -> fast, but higher risk of artifacts (price to pay for a simple+fast filter)
Advanced filter -> slower, but less risk of artifacts (that's the reason why the advanced filter is slower!)

Choose your poison.

Using Repair() to avoid temporal artefacts is basically quite easy:
(The needed repair.dll is part of the RemoveGrain package)

orig = your_source
NR1 = orig.DNR2(...)
NRrep = NR1.repair(orig,13)

... but of course, this comes at a price, again:

If the noise removed by DNR2 was only kind of "single pixels", then this method will work. (3x3 neighborhood of the noisy pixel contains the wished value.)

But, if the removed noise was kind of "fluctuating areas" (e.g. slight banding that wobbles around, or low-frequency deviations caused by grain, and thelike), then this repair method will restore the noise that DNR2 had removed, since the wished value is *not* contained in the 3x3 neighborhood of current's pixel.


Old story: Cheap stuff has its certain characteristics, you get what you get. Expensive stuff has its certain characteristics, you get what you get.

Of course, everybody wants to have cheap stuff with the characteristics of expensive stuff. However, this is not a very realistic expectation ... :rolleyes:

Graigddu
2nd September 2008, 11:21
Thank for the reply Didee i'll try your code :)
would you recommend an alternative to DNR2 ?
i tried a few filters and it was the only one that pixel locked the static scenes to any degree
but i have to be honest i stayed away from the more complex scripts and filters as when i tried
limitedsharpenfaster it crashed MT

the "single Pixel" noise sounded more closer to the artifacts produced by DNR2 than the second suggestion
after reading another post i would call the artifacts outlines or possibly trails after a moving object passes infront of a static scene