View Full Version : Less than RemoveGrain(1)?
Forteen88
10th July 2010, 18:24
How do I degrain a bit less than with the AviSynth-script RemoveGrain(1)?
Thanks
7ekno
11th July 2010, 04:22
RemoveGrain(mode=1) is probably the most tame of the grain removers (and is equal to the old undot() ) ...
I would suggest if RemoveGrain(mode=1) is actually causing a visual difference, then it either is not needed, or there is another troublesome filter in the chain (?MT() border artifact or something?) ...
7ek
Forteen88
11th July 2010, 13:10
RemoveGrain(mode=1) is probably the most tame of the grain removers (and is equal to the old undot() ) ...
I would suggest if RemoveGrain(mode=1) is actually causing a visual difference, then it either is not needed, or there is another troublesome filter in the chain (?MT() border artifact or something?) ...
7ekOK, thanks, although I think RemoveGrain(1) degrains a bit too much. BTW, isn't RemoveGrain(1) the same as RemoveGrain(mode=1) ?!
Keiyakusha
11th July 2010, 13:50
The same.
If this looks a bit too much, then you probably have some problems elsewhere. Because this is so light denoising (you even can't easily see the difference without looking on some histograms) so anything lighter is pointless.
Lyle_JP
11th July 2010, 14:40
Most people say to use Removegrain(1) instead of undot() because "it's the same but faster". So, are the results of RemoveGrain(1) truly identical to Undot() or just similar enough that you might as well use the faster one?
Didée
11th July 2010, 14:42
You might try my little SPresso() function (http://forum.doom9.org/showthread.php?p=743559#post743559). Basically, it's just a both weighted and limited version of "RemoveGrain(mode=??)". In effect, it does a more gentle reduction, opposed to a plain RemoveGrain, which does a median-like "all-or-nothing" within the bounds of the chosen mode.
Oh, just saw the function was made for the old v1 MaskTools. Quickly converted to the actual MaskTools-v2 syntax (it's just one filter name):
function SPresso(clip clp, int "limit", int "bias", int "RGmode")
{
limit = default( limit, 2 )
bias = default( bias, 25 )
RGmode = default( RGmode, 4 )
LIM1 = (limit>0) ? string( round(limit*100.0/bias-1.0) ) : string( round(100.0/bias) )
LIM2 = (limit<0) ? "1" : string(limit)
BIA = string(bias)
expr = (limit<0) ? "x y - abs "+LIM1+" < x x 1 x y - x y - abs / * - ?"
\ : "x y = x x "+LIM1+" + y < x "+LIM2+" + x "+LIM1+" - y > x "+LIM2+" - " \
+ "x 100 "+BIA+" - * y "+BIA+" * + 100 / ? ? ?"
mt_lutxy( clp, clp.removegrain(RGmode,-1), expr, U=2,V=2)
}
Forteen88
11th July 2010, 14:52
@Keiyakusha: I have a very good TFT-monitor (it's a MVA-panel, no crappy low-color TN-panel) and I've seen grain-difference with RemoveGrain(1) on very grainy HD-video.
@Didée: Awesome, thanks again.
VERY LATE UPDATE: Oh, I should've included my AVS-script here :)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.