View Full Version : which de-grain Recommended?
I like use the UnsharpMask, but creates the grain
which de-grain Recommended to remove this type of grain?
http://file2.net/thb/100709/5785tv.png (http://file2.net/100709img5785tv.png.html)
:thanks:
dansrfe
9th July 2010, 23:09
I'm guessing MDegrain1 is enough to deal with something like this:
super = MSuper(pel=2, sharp=1)
bv1 = super.MAnalyse(isb = true, delta = 1, overlap=4, blksize=16,chroma=false)
fv1 = super.MAnalyse(isb = false, delta = 1, overlap=4, blksize=16,chroma=false)
MDegrain1(super,bv1,fv1,thSAD=100)
The grain you have is very soft silver film grain. If I were you I would keep that grain. This much grain is good for film content.
on television material the grain I do not like
I tried the MDegrain1 with settings you gave me suggested, but remains the grain
BigDid
10th July 2010, 01:19
on television material the grain I do not like
I tried the MDegrain1 with settings you gave me suggested, but remains the grain
super = MSuper(pel=2, sharp=1)
bv1 = super.MAnalyse(isb = true, delta = 1, overlap=4, blksize=16,chroma=false)
fv1 = super.MAnalyse(isb = false, delta = 1, overlap=4, blksize=16,chroma=false)
MDegrain1(super,bv1,fv1,thSAD=100)
Hi,
You can increase the thsad value;
instead of "MDegrain1(super,bv1,fv1,thSAD=100)"
try "MDegrain1(super,bv1,fv1,thSAD=200)"
or 300 or 400 (defaut)
If you feel that you are losing details, consider using mdegrain2 or 3; better details, but lower processing speed...
If needed, use search for the exact script.
Did
Didée
10th July 2010, 01:41
The grain you have is very soft silver film grain.
It's difficult to tell from just one single screenshot, but when looking close, it seems like it could be artificially generated grain, not physical film grain.
I'm guessing MDegrain1 is enough to deal with something like this
That's even more difficult to tell from just one single screenshot, since you can't see how strong the temporal fluctuations really are.
However, judging from the (spatial) amplitude of the noise, and extrapolating the temporal variation from that by experience, I'm pretty sure that MDegrain1 is by far not strong enough to make that noise disappear.
@ byme
You should show a not-processed raw sample of the footage, because ...
a) one screenshot is not sufficient to make any decisions
b) that screenshot is 960x547, which is an impossible size for any sort of original content
c) your comment "I like use the UnsharpMask, but creates the grain" indicates that the screenshot shows something that already has been filtered.
In short: the information you gave is pretty much useless, in order to make any specific recommendations.
- Edit -
In several spots there are artifacts that look like interlaced DCT, however those artifacts are 5 pixels in height.
547/5*4 =~ 438.
Most probably, we are looking at 720x432 SD material that has been upsized.
byme
10th July 2010, 10:47
you're right about everything Didèe... compliments!
but I just want to know how to remove the grain in this result
more caps
http://file2.net/thb/100710/4710vq.png (http://file2.net/100710img4710vq.png.html)
http://file2.net/thb/100710/7819qb.png (http://file2.net/100710img7819qb.png.html)
http://file2.net/thb/100710/196rg.png (http://file2.net/100710img196rg.png.html)
the unsharpmask I like because increases Details without creating too many halos and squaring
@ BigDid
MDegrain3 gives me error
which version of MVTool does it take?
Didée
10th July 2010, 12:04
If you browse this thread (http://forum.doom9.org/showthread.php?t=153170), you might find something useful for what you're trying.
byme
10th July 2010, 12:54
I tried this... is right?
(without UnsharpMask)
source = AviSource("C:\Users\Propietario\Documents\Edit Video\Untitled 3.avi").ConvertToYV12()
sharp0 = source.sharpen(1).mergechroma(source)
sup1 = source.MSuper(pel=2,sharp=2)
sup2 = sharp0.MSuper(pel=2,sharp=2,levels=1)
bv1 = sup1.MAnalyse(isb=true, delta=1)
fv1 = sup1.MAnalyse(isb=false,delta=1)
bv2 = sup1.MAnalyse(isb=true, delta=2)
fv2 = sup1.MAnalyse(isb=false,delta=2)
source.MDegrain2(sup2,bv1,fv1,bv2,fv2,thSAD=400)
but the grain does not go away completely, rather... it remains lot
...
you recommend use the MVDegrain3 with this method of Sharp?
and if yes ... you do the script? Thanks
Didée
10th July 2010, 13:44
I tried this... is right?
Yes.
you recommend use the MVDegrain3 with this method of Sharp?
No.
MVfiltername() is the syntax used by old v1.x MVTools. The v1.x branch is outdated.
Mfiltername() is the syntax usexd by actual v2.x MVTools. (most recent: v2.5.10.1)
but the grain does not go away completely, rather... it remains lot
[slightly shirty]
That's your problem. Without a sample, the only advice is: "try all of the thousand filters available until you find something".
byme
10th July 2010, 14:10
indeed, setting sharp to 0 in the old MVDegrain, the grain is little, there but little
to eliminate completely I always resort to NeatVideo
my current script is this
source=last
backward_vec1 = MVAnalyse(isb=true, truemotion=true, chroma=true, delta=1, pel=2, blksize=8, overlap=2, sharp=0, idx=1)
backward_vec2 = MVAnalyse(isb=true, truemotion=true, chroma=true, delta=2, pel=2, blksize=8, overlap=2, sharp=0, idx=1)
backward_vec3 = MVAnalyse(isb=true, truemotion=true, chroma=true, delta=3, pel=2, blksize=8, overlap=2, sharp=0, idx=1)
forward_vec1 = MVAnalyse(isb=false, truemotion=true, chroma=true, delta=1, pel=2, blksize=8, overlap=2, sharp=0, idx=1)
forward_vec2 = MVAnalyse(isb=false, truemotion=true, chroma=true, delta=2, pel=2, blksize=8, overlap=2, sharp=0, idx=1)
forward_vec3 = MVAnalyse(isb=false, truemotion=true, chroma=true, delta=3, pel=2, blksize=8, overlap=2, sharp=0, idx=1)
source.MVDegrain3(backward_vec1,forward_vec1,backward_vec2,forward_vec2,backward_vec3,forward_vec3,thSAD=300, idx=2)
I'd kindness to me a script for MDegain3, to eliminate most possible the grain... according to grain there in images posted?
byme
10th July 2010, 16:45
now I'm using this script
src = AviSource("C:\Users\Propietario\Documents\Edit Video\Untitled 300.avi").ConvertToRGB32()
c = src.Crop(814, 522, 90, 90)
UnShP = src.VD_UnsharpMask(2, 64, 0).ConvertToYV12()
AAAS = UnShP.AAASimple()
HQDe = AAAS.HQDering(strength=255, overall=0)
#HQDe_med = HQDe.repair(HQDe.MedianBlur(2,-333,-333),1) # using radius 2
HQDe_med = HQDe.repair(HQDe.repair(HQDe.MedianBlur(3,-333,-333),1),1) # using radius 3
HQDe_diff = mt_makediff(src,HQDe)
HQDe_med_diff = mt_makediff(HQDe,HQDe_med)
DD = mt_lutxy(HQDe_diff,HQDe_med_diff,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?")
HQDe.mt_adddiff(DD,U=2,V=2) # the result
BDH3 = HQDe.BlindDeHalo3(strength=60, sharpness=0.0, interlaced=false)
#BDH3_med = BDH3.repair(BDH3.MedianBlur(2,-333,-333),1) # using radius 2
BDH3_med = BDH3.repair(BDH3.repair(BDH3.MedianBlur(3,-333,-333),1),1) # using radius 3
BDH3_diff = mt_makediff(src,BDH3)
BDH3_med_diff = mt_makediff(BDH3,BDH3_med)
DD = mt_lutxy(BDH3_diff,BDH3_med_diff,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?")
BDH3.mt_adddiff(DD,U=2,V=2) # the result
ConvertToYUY2()
super = MSuper(pel=2, sharp=1)
backward_vec3 = MAnalyse(super, isb = true, delta = 3, overlap=4, truemotion=true)
backward_vec2 = MAnalyse(super, isb = true, delta = 2, overlap=4, truemotion=true)
backward_vec1 = MAnalyse(super, isb = true, delta = 1, overlap=4, truemotion=true)
forward_vec1 = MAnalyse(super, isb = false, delta = 1, overlap=4, truemotion=true)
forward_vec2 = MAnalyse(super, isb = false, delta = 2, overlap=4, truemotion=true)
forward_vec3 = MAnalyse(super, isb = false, delta = 3, overlap=4, truemotion=true)
MDegrain3(super, backward_vec1,forward_vec1,backward_vec2,forward_vec2, backward_vec3, forward_vec3, thSAD=500)
FastLineDarkenMOD2(strength=48, luma_cap=255, threshold=0, thinning=64)
GradFunkMirror()
Overlay(c, x=814, y=522)
ConvertToRGB32()
but it gives me this error
http://file2.net/thb/100710/3154ol.png (http://file2.net/100710img3154ol.png.html)
tell me why?
Lyle_JP
10th July 2010, 20:08
Although MDegrain might preserve more detail that the following script, your goal seems to be grain removal at all costs. So try this (it's a little waxy for my tastes, but it's faster than anything you're trying now, and strong too):
super = MSuper()
backward_vectors = MAnalyse(super, isb = true)
forward_vectors = MAnalyse(super, isb = false)
forward_compensation = MFlow(super, forward_vectors, thSCD1=500)
backward_compensation = MFlow(super, backward_vectors, thSCD1=500)
interleave(forward_compensation, last, backward_compensation)
DeGrainMedian(mode=0, limity=6, limituv=10)
selectevery(3,1)
7ekno
11th July 2010, 04:37
It looks perfect for MCTemporalDenoise(settings="medium") if that washes out too much, try settings="low" ...
Have a look at some of Lato's comments at the end of the MCTemporalDenoise thread for a few more hints on optimizing the filter (like flat=true, chroma=true, etc) ...
7ek
byme
11th July 2010, 12:30
Thanks!
for me the best is MCTemporalDenoise setting in Very High, but is exceedingly slow :(
DeGrainMedian Indeed takes away a bit detail compared to other
regard to the script I put on, you tell me which the problem?
Didée
11th July 2010, 12:38
Avisynth reports the error in line 40 of the BlindDeHalo3 script. Judging from the actual name, "Mediaset_BORDI_BlindDeHalo3.avs", it is not sure if it's the original script, or if it has been modified. You need to post that script, or look for yourself what's happening in line 40, or closely around line 40.
Edit: Oh, saw something in your script above ...
src = AviSource("C:\Users\Propietario\Documents\Edit Video\Untitled 300.avi").ConvertToRGB32()
c = src.Crop(814, 522, 90, 90)
UnShP = src.VD_UnsharpMask(2, 64, 0).ConvertToYV12()
AAAS = UnShP.AAASimple()
HQDe = AAAS.HQDering(strength=255, overall=0)
#HQDe_med = HQDe.repair(HQDe.MedianBlur(2,-333,-333),1) # using radius 2
HQDe_med = HQDe.repair(HQDe.repair(HQDe.MedianBlur(3,-333,-333),1),1) # using radius 3
HQDe_diff = mt_makediff(src,HQDe)
Red: RGB clip
Blue: YV12 clip
Of course, that cannot work.
Subsequently, you'll get problems because you convert to YUY2 before the MVTools stuff. MVTools can work with YUY2, but the following-up filters FastLineDarken and GradFunkMirror require YV12.
There's several ways of doing UnsharpMasking in Avisynth. Better get rid of using VirtualDub Filters in Avisynth.
Lyle_JP
11th July 2010, 12:52
DeGrainMedian Indeed takes away a bit detail compared to other
You can always lower the settings of DegrainMedian in the script, but then of course you'd be lowering the grain reduction, too.
At the end of the day, it's important to remember that, when dealing with film, grain is detail. It's the very building blocks of the picture itself, not just some noise layer to be removed.
byme
11th July 2010, 13:00
please Didée, you make me script that works without using the UnsharpMask of VD? http://img.freeforumzone.it/upload/459333_ridens.gif (but however with UnsharpMask or a similar sharp)
I would insert the MCTemporalDenoise(settings="very high") instead of MDeGrain3..... or a MDegrain3 more stronger, if I gain in speed without loss detail
Didée
11th July 2010, 13:21
when dealing with film, grain is detail. It's the very building blocks of the picture itself, not just some noise layer to be removed.
By that argumentation, you also must agree that the noise from e.g. VHS tapes is part of the picture, and should be left alone. Or that the noise found on audio tapes is part of the music.
When a film camera shots a smooth brown plastic plate, there will be grain in the result. But the plastic plate does not have any visible detail to begin with. Film grain is not image detail. It is (to some extend) a technical necessity, and it is often used as a stylistic device. But it has only very little to do with the actual detail of the presented scene.
Didée
11th July 2010, 13:25
please Didée, you make me script
No.
Over the years, I've shown hundreds-of-times how to do things.
This here is not a difficult task. Go figure.
Undead Sega
12th July 2010, 01:36
Is that a raw cap?
Sorry if i may seem abit unprofessional here, but it looks like if that was already heavily denoised and then very fine noise or grain itself was applied to it. It is only on a handful of occasions I am wrong on these things.
byme
12th July 2010, 09:43
No.
Over the years, I've shown hundreds-of-times how to do things.
This here is not a difficult task. Go figure.
I solved
you could at least suggest which Sharp use instead of VD UnsharpMask?
thanks
Didée
12th July 2010, 09:59
You haven't shown an original piece of the source yet. So far, the only thing we have seen are the random results from your various heavy-duty filterchains.
Without knowing the original source, the typical advice is: try all available options until you find something. :p
byme
12th July 2010, 10:34
sorry
these two I applied only this
Complementparity()
AssumeTFF()
TempGaussMC_beta1mod()
GradFunkMirror()
Lanczos4Resize(960,720)
ConvertToRGB()
http://file2.net/thb/100712/2386ys.png (http://file2.net/100712img2386ys.png.html)
http://file2.net/thb/100712/3448ln.png (http://file2.net/100712img3448ln.png.html)
Didée
12th July 2010, 10:50
[* Didée is leaving the kindergarten *]
byme
12th July 2010, 11:19
these are good?
http://file2.net/thb/100712/9651uv.png (http://file2.net/100712img9651uv.png.html)
http://file2.net/thb/100712/3759qc.png (http://file2.net/100712img3759qc.png.html)
http://file2.net/thb/100712/4513wo.png (http://file2.net/100712img4513wo.png.html)
http://file2.net/thb/100712/6013wj.png (http://file2.net/100712img6013wj.png.html)
http://file2.net/thb/100712/5670fg.png (http://file2.net/100712img5670fg.png.html)
http://file2.net/thb/100712/683xp.png (http://file2.net/100712img683xp.png.html)
http://file2.net/thb/100712/9436uk.png (http://file2.net/100712img9436uk.png.html)
http://file2.net/thb/100712/5274st.png (http://file2.net/100712img5274st.png.html)
Nephilis
12th July 2010, 11:53
You must deinterlace it bro ;)
If you want suggestion, i suggest you yadif-nnedi combo..
byme
12th July 2010, 12:12
You must deinterlace it bro ;)
If you want suggestion, i suggest you yadif-nnedi combo..
What does Bro :confused:
Didée
12th July 2010, 12:27
@ Nephilis: Deinterlacing is what byme is already doing. Those screenshots are an attempt to follow my "show a not-processed sample" request.
@ byme
It's the typical misery of TV broadcasting: lowpass filter'ed + lowpass-sharpen'ed, both beyond goodness. There's not really much detail worth to sharpen, only lots of halos from the lowpass sharpen. With halos present, you can't sharpen. Removing the halos, you lose even more of the hardly-present detail, ending up with "sharp soup" after enhancement.
("sharp soup" = sharp isles of something, swimming in a large ocean of nothing)
Summed up: the usual case of "crap in, crap out".
Have been at that game often enough before ... you can throw filters, more filters and even more filters at it ... but it'll only look worse in a different ways. There's no way to make it look "good". At least not for *my* personal rating of "looking good".
If you have time to waste, then hang on. I consider it a lost battle, not worth to put much time into it. Energy is valuable. Just because the dilettants at the TV station can destroy something in a fraction of a second by pressing a knob or another, that doesn't mean you necessarily must put hours & days & plenty kilowatts into a hopeless try of restoring or enhancement.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.