VideoHelp Forum

Try DVDFab and download streaming video, copy, convert or make Blu-rays,DVDs! Download free trial !
+ Reply to Thread
Page 1 of 5
1 2 3 ... LastLast
Results 1 to 30 of 147
Thread
  1. Hi guys
    I noticed that allot of post or treads concerning video denoising is rather old some from 2000-2005.
    So, what do you guys use today in 2011 and your rating about the quality and speed of the denoising

    Its usefull if you use avisynth to post scripts of your denoising setups and how they stack against others, its restoration section after all and noise reduction is important chain in that direction.

    I will start with my self I mostly use Vdub and Neat Video ( ver. 3 is now very acceptable speed) tweaking the setting a bit, I never go more than 70% Y and 100% cr cb high quality and resolution are checked and on some tapes very low freq also. Temporal reduction on 3 frames 0% threshold and adaptive reduction on. For me this is best noise reduction seen on almost all tapes. When sampling noise pattern I never go under 70% ( 80-90 standard). chroma noise reduction is almost perfect grain very good. on very dark places neat video knows to make some weird artifacts speed around 8 frames with highest settings and around 13-14 without temporal and adaptive and low freq.
    In avisynth i use Convolution3D regular setting (0, 32, 128, 16, 64, 10, 0) speed excellent 40fps quality very good in combination with Cnr2("oxx",8,16,191,100,255,32,255,false)
    some times VagueDenoiser(threshold=0.8, method=1, nsteps=6, chromaT=0.8) or some combination of them

    The script that i found on some site that is intended for vhs noise reduction i changed only few things i hope the author doesn't mind me posting

    #Denoiser script for interlaced video using MDegrain2

    SetMemoryMax(768)

    Loadplugin("C:\Program Files\AviSynth 2.5\plugins\MVTools\mvtools2.dll")
    LoadPlugin("c:\Program Files\AviSynth 2.5\plugins\CNR\Cnr2.dll")

    SetMTMode(5)
    #Modify this line to point to your video file
    source=AVISource("E:\your video path.avi").AssumeTFF()
    SetMTMode(2,0)

    #Only use chroma restoration for analog source material
    chroma=source.Cnr2("oxx",8,16,191,100,255,32,255,f alse) #VHS
    #chroma=source.Cnr2("oxx",8,14,191,75,255,20,255,f alse) #Laserdisc

    #Set overlap in line below to 0, 2, 4, 8. Lower number=better, but slower
    #For VHS, 4,0 seems to work better than 8,2. Most of difference is in shadows
    #However, 8,0 is good enough and MUCH faster. 8,2 doesn't seem to make much difference on VHS.

    output=MDegrain2i2(chroma,8,0,0)
    #stackhorizontal(source,output)
    return output

    #-------------------------------

    function MDegrain2i2(clip source, int "blksize", int "overlap", int "dct")
    {
    Vshift=2 # 2 lines per bobbed-field per tape generation (PAL); original=2; copy=4 etc
    Hshift=0 # determine experimentally
    overlap=default(overlap,0) # overlap value (0 to 4 for blksize=8)
    dct=default(dct,0) # use dct=1 for clip with light flicker

    fields=source.SeparateFields() # separate by fields

    #This line gets rid of vertical chroma halo
    fixed_fields=MergeChroma(fields,crop(fields,Hshift ,Vshift,0,0).addborders(0,0,Hshift,Vshift))

    super = fixed_fields.MSuper(pel=2, sharp=1)
    backward_vec2 = super.MAnalyse(isb = true, delta = 2, blksize=blksize, overlap=overlap, dct=dct)
    forward_vec2 = super.MAnalyse(isb = false, delta = 2, blksize=blksize, overlap=overlap, dct=dct)
    backward_vec4 = super.MAnalyse(isb = true, delta = 4, blksize=blksize, overlap=overlap, dct=dct)
    forward_vec4 = super.MAnalyse(isb = false, delta = 4, blksize=blksize, overlap=overlap, dct=dct)

    MDegrain2(fixed_fields,super, backward_vec2,forward_vec2,backward_vec4,forward_v ec4,thSAD=400)

    unsharpmask(60,3,0) #not sure whether to put this before or after the weave.

    Weave()
    }

    Very fast around 30 fps quality good but not great still some grain left chroma good.

    another one its from from fizick (http://avisynth.org.ru/fft3dfilter/fft3dfilter.html)

    SetMTMode(5)
    source=AviSource ("your video.avi").AssumeTFF()
    fields=source.SeparateFields()
    FFT3dGPU(sigma=5,plane=5,)
    DeGrainMedian(limitY=5,limitUV=7,mode=1, norow=true)
    VagueDenoiser(threshold=5, interlaced=true, wiener=true)
    unsharpmask(60,3,0)
    Weave()

    i get very good quality from this simple and very fast script tweaked right its with gpu acceleration so its not to heavy on cpu

    My choose neat video

    Whats yours and don't be shy
    Quote Quote  
  2. fft3dgpu/normal version is just fine for me for normal chroma/luma noise on vhs with one instance for each component like i said here before otherwise neat for difficult recordings.

    Im' not a fan of the 1st script "motion compensation/estimation" you've posted i've tested it, analysed and compared with other denoisers in the past, i stick with the good ol' methods.

    I find tnlmeans (avisynth) better than fft3d but insanely slow so again i stick witth fft3d/neat. the problem with neat (home version) is that when called within an avisynth script it doesn't produce the same results than within vdub (slight differences but still)

    The best noise reduction method seems to be the jmac's "multiple capture" technique but i haven't tried it yet, if you add to this method neat/fft3d i'm pretty sure you get awsome results
    Last edited by themaster1; 21st Nov 2011 at 05:37.
    Quote Quote  
  3. The best noise reduction method seems to be the jmac's "multiple capture" technique but i haven't tried it yet,
    what method is this

    Im' not a fan of the 1st script "motion compensation" you've posted i've tested it, analysed and compared with other denoisers in the past, i stick with the good ol' methods.
    Yea i found it somewhere i don't remember where, the picture q was not good or performance. I must agree with you on good old methods

    the problem with neat (home version) is that when called within an avisynth script it doesn't produce the same results than within vdub
    I never use neatvideo inside avisynth ( at least that's what the authors suggest) still waiting from them to make avysinth plugin

    what about pfclean did you tried it are you satisfied
    Quote Quote  
  4. You may have heard of people cleaning up VHS by merging multiple captures. I thought this would be a good demonstration.
    It compares average, and median of up to 9 passes:
    http://screenshotcomparison.com/comparison/84395/picture:0
    #1 off: original on: average of 2

    http://screenshotcomparison.com/comparison.php?id=84396
    #1 off: median of 3 on: median of 9

    The median of 9 passes is quite clean, and way better than the original.
    Quote Quote  
  5. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Originally Posted by jmac698 View Post
    You may have heard of people cleaning up VHS by merging multiple captures. I thought this would be a good demonstration.
    It compares average, and median of up to 9 passes:
    http://screenshotcomparison.com/comparison/84395/picture:0
    #1 off: original on: average of 2

    http://screenshotcomparison.com/comparison.php?id=84396
    #1 off: median of 3 on: median of 9

    The median of 9 passes is quite clean, and way better than the original.
    First link wouldn't connect. Error message received pm second link: "Coulden't connect to MySQL. Refresh." (Message copied as-is, with "couldn't" misspelled).
    Last edited by sanlyn; 26th Mar 2014 at 07:36.
    Quote Quote  
  6. That's because the sites down.
    Quote Quote  
  7. Averaging multiple caps only works when the noise isn't in the source, but rather in the VHS deck's playback.
    Quote Quote  
  8. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Originally Posted by jmac698 View Post
    That's because the sites down.
    I suspected as much. Just making sure I didn't do something silly again!
    Last edited by sanlyn; 26th Mar 2014 at 07:36.
    Quote Quote  
  9. You may have heard of people cleaning up VHS by merging multiple captures
    Is that meaning that capturing from 2 vhs tapes with the same event?

    Averaging multiple caps only works when the noise isn't in the source, but rather in the VHS deck's playback.
    How do you mean that
    Quote Quote  
  10. So what you guys are using for noise reduction of vhs sources ( chroma, grain, halo) and what speed are you getting of your setups
    Quote Quote  
  11. Originally Posted by mammo1789 View Post
    Averaging multiple caps only works when the noise isn't in the source, but rather in the VHS deck's playback.
    How do you mean that
    Noise that's on the tape is the same with every cap. So averaging several caps will result in no change. Noise that's caused by the electronics in the playback path will be different in each cap. It will average out over multiple caps.
    Quote Quote  
  12. Yep you get the idea, but median is even better. People will make the argument; but each pass adds new noise that's just added in. So median avoids that. I've experimented with even simple analog tv noise, median is better per pass.
    Quote Quote  
  13. Member
    Join Date
    Jul 2009
    Location
    Spain
    Search Comp PM
    Originally Posted by jagabo View Post
    Averaging multiple caps only works when the noise isn't in the source, but rather in the VHS deck's playback.
    On a typical VHS tape and deck (perhaps there's no such thing?), how much of the noise comes from the source and how much from the playback?
    Quote Quote  
  14. Originally Posted by jmac698 View Post
    People will make the argument; but each pass adds new noise that's just added in.
    That's nonsense, of course. All denoisers work by averaging (or median filters), spatially and/or temporally. Averaging multiple caps is simply a form of temporal noise reduction.
    Quote Quote  
  15. Noise that's on the tape is the same with every cap. So averaging several caps will result in no change. Noise that's caused by the electronics in the playback path will be different in each cap. It will average out over multiple caps.
    If i understand you plain and simple capturing on the same equipment (vcr tbc capture card or dvd ) the same material (one vhs cassette that has my birthday for example) is the same many time but
    a) if I put that tape in different equipment combinations ( different vcr same tbc same dvd or different vcr different tbc different dvd ) i will get different result than with the first cap cap 1 for cap2 ( using the better parts of cap 1 and using the better caps of part 2 combining them in one best cap) ? or
    b) having the same event ( the same birthday) on two different tapes and then averaging the best parts of the two different sources and using one combination that's best ?

    My question was what plugin/s combinations or strait avysinth/vdub or something else are you guys ( your personal setups and combinations of plugin/s scripts or else) using anno 2011 ( if something changed i think yes from 2005 year). Is there some progression in speed and quality of denoising during the years because i hope that in anno 2050 you can put bitten vhs tape from 1960 with tons of problems ( unsolved today) and a ton of noise and future hardware/software or plugins will easily eat up in 200fps .
    Quote Quote  
  16. But it is true, it's just that the particular noise of that copy is reduced by 1/n. With high enough n, the individual contribution of any particular copy is not visible.

    G,
    as far as noise it depends which noise. There is a particular problem with VHS people call comets or dropouts. This noise is different on each capture, and is higher luma than surrounding pixels, so a median can completely eliminate it.
    My opinion is that for later pre-recorded VHS, the "mastering noise", is very good. What remains is the original film grain or film defects, and the VHS noise. You can check the specs of various VCR models, they say the video noise can be as good as 40dB or so. That's the equivalent to 7 bits (dB/6=bits). On home recordings, and low speed VHS, the TV reception noise from cable is probably less than the VHS noise. On home movies, iin dark scenes I'm sure the camera noise is greater than the VHS noise, but on bright scenes the VHS noise could dominate.
    So I guess to answer a practical question, the playback noise is significant. You have to be careful though; some multiple playback averaging is actually doing a spatial averaging as well, due to the copies not being lined up, it could be something like a 4x1 weighted convolution.

    If you look at http://screenshotcomparison.com/comparison.php?id=84396 you can see the result is far better than what might be expected from some spatial denoising effect. It's from a VHS camcorder in good light. The playback noise seems to dominate, and for some reason there is quite a lot of it.
    Quote Quote  
  17. mammo
    By far my best setup is quite simple and won't change in 2012 or any other year, and runs at a very high speed, it's multiple pass median.
    And what we mean is, the same birthday tape, played on the same VCR and capture card, many times. The most noise is added by the VCR itself, and some even by the capture card.

    There is one more possibility, the noise added by the tape itself. I tried this experiment, to buy 3 copies of the same tape and average them. Ideally this should produce a purely noise-free, but VHS quality capture! The experiment failed because one of the tapes had problems.
    Quote Quote  
  18. Originally Posted by mammo1789 View Post
    If i understand you plain and simple capturing on the same equipment (vcr tbc capture card or dvd ) the same material (one vhs cassette that has my birthday for example) is the same many time but
    a) if I put that tape in different equipment combinations ( different vcr same tbc same dvd or different vcr different tbc different dvd ) i will get different result than with the first cap cap 1 for cap2 ( using the better parts of cap 1 and using the better caps of part 2 combining them in one best cap) ? or
    b) having the same event ( the same birthday) on two different tapes and then averaging the best parts of the two different sources and using one combination that's best ?
    Some of the noise is part of the tape (for example a dropout, or just noise from the low S/N ratio of the tape). That noise will be the same every time you capture the tape. Some of the noise is added by the playback mechanics and electronics of the player. That noise will be different every time you capture the tape. The former will not be removed by averaging together multiple caps. The latter will.
    Quote Quote  
  19. J,
    Actually it turns out the dropout is different. It's therefore not really a dropout in most cases, as in a flake of metal oxide which fell off the tape. I believe it's more like a temporary signal loss. The white line makes sense if you understand that tape is FM modulated, and with no signal the modulation defaults to white. The black lines are different, they seem to be something related to the signal.
    Quote Quote  
  20. Member
    Join Date
    Jul 2009
    Location
    Spain
    Search Comp PM
    Originally Posted by jmac698 View Post
    But it is true, it's just that the particular noise of that copy is reduced by 1/n.
    Isn't it 1/sqrt(n) ? (using std deviation as a measure of noise)
    Quote Quote  
  21. Originally Posted by jmac698 View Post
    dropout... as in a flake of metal oxide which fell off the tape
    That's the type of dropout I was referring to.
    Quote Quote  
  22. G,
    I haven't looked at this from the statistical perspective, you may be right. I'm talking about different types of noise here, in fact you can go much deeper here. But first, what I mean is if I get a "comet", it's like this: (1, 0, 0)/3=.3 where the comet was in just spot, now it's just a 1/3 of it's former self. If I do median, it's more like (1, .1, .2)=.2 where 1 is the comet (white), .1 and .2 are random noise on top of black.

    http://en.wikipedia.org/wiki/Noise_%28electronics%29
    1 Thermal noise
    2 Shot noise
    3 Flicker noise
    4 Burst noise
    5 Avalanche noise
    6 Quantization
    7 Tape Hiss
    8 Tape quality
    9 Interference

    1. White noise with guassian PDF. Significant effect in VCR.
    2. Poisson distribution. Insignificant.
    3. Flicker noise. Pink noise with 1/f spectrum. That means mostly low frequencies.
    4. A pulsed noise. Insignificant.
    5. Insignificant.
    6. This comes from the ADC of the capture card. Insignificant in this case, but we all have seen banding.
    7. Caused by random magnetic orientations. White noise. Proportional to magnetic particles under the head, thus track width, head size, oxide formulation, etc. Noise is the square root of the magnetization level.
    http://ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel...hDecision=-203
    8 Noise caused by variations in physical and magnetic properties of the tape.
    9 May occur during capture, from the electrical lines, the computer, other devices nearby.

    What does multipass technique reduce?
    Probably all of them! For 6, the multiple passes act like dither for the ADC (noise is good in this case). The great thing about this technique is it's "real", if done properly you are increasing the original signal and not some approximation, and in full quality too.
    Last edited by jmac698; 22nd Nov 2011 at 13:02.
    Quote Quote  
  23. j,
    I agree, certainly oxide can come off tapes, in which case information is permanently missing. I haven't seen a repeating missing pixel before though. In a badly damanged tape, I found a section was just unplayable with bright white static. If you have a sample with certain pixels always missing, I'd like to see it.
    Quote Quote  
  24. I took a quick look at a recording I have, from a high quality source to VHS SP. The noise is less than 1 luma value, very good.
    Quote Quote  
  25. I have masters in finance and have some background in computers, I'm not English speaking native by the way, but you guys looks like you have phD in science especially you jmac.
    I'm trying to understand the things simple way.
    You are saying that I should put the cassette in the vcr and record the material with my capture card in pc let's say 5 min.
    Then rewind and capture the same 5 min again, then rewind and capture the same 5min again so i have 3 same captures right? As i understand the captured material will have different characteristic each time ( different level of noise drop outs of signal and so on) and then i decide which material is cleaner, for example first 2 min of the first capture are cleanest, the next 2 min from 3 capture and 1 min from 2 capture I then combine these minutes into 5 minute clip which will have the best characteristic of all the clips and better than anyone alone right ? That is like that because of the noise from the setup and characteristic of the setup that i have.

    What do you mean by median I don't understand
    Quote Quote  
  26. Originally Posted by mammo1789 View Post
    You are saying that I should put the cassette in the vcr and record the material with my capture card in pc let's say 5 min. Then rewind and capture the same 5 min again, then rewind and capture the same 5min again so i have 3 same captures right?
    Yes.

    Originally Posted by mammo1789 View Post
    As i understand the captured material will have different characteristic each time ( different level of noise drop outs of signal and so on) and then i decide which material is cleaner, for example first 2 min of the first capture are cleanest, the next 2 min from 3 capture and 1 min from 2 capture
    No. You blend the different captures together. An example with 4 caps:

    v1=AviSource("cap1.avi")
    v2=AviSource("cap2.avi")
    v3=AviSource("cap3.avi")
    v4=AviSource("cap4.avi")

    v12=Overlay(v1,v2,opacity=0.5) # 50/50 mix of v1 and v2
    v34=Overay(v3,v4,opacity=0.5) # 50/50 mix of v3 and v4

    Overlay(v12,v34,opacity=0.5) # 25/25/25/25 mix of v1, v2, v3 and v4
    Or you can use a median function instead of averaging. Off the top of my head I don't know of one for AviSynth.

    Median = the middle value of a series. For example, the sequence:

    100 101 105 107 107

    has an avergage of (100 + 101 + 105 + 107 + 107) / 5, or 104. The median value is 105 (there are two lower values and two higher values).
    Last edited by jagabo; 22nd Nov 2011 at 14:02.
    Quote Quote  
  27. mammo,
    I haven't really been answering your question, I got off topic with some other knowledgeable people. Anyhow, Jagebo is correct. To answer simply, you use this script:
    Use like this,
    copy1=avisource(...)
    copy2=avisource(...)
    copy3=avisource(...)
    Median1(copy1, copy2, copy3)
    The fixing of the captures is automatic. But, to use this method you MUST:
    -Use TBC
    -Have no frame drops in the captures

    People will say it's too much work to fix it this way. In that case, use Neat Video, NLMeansGPU version etc.
    and that's it.
    Code:
                                                   Median1-function that gives median of 3 clips:
     Function Median1(clip input_1, clip input_2, clip input_3, string "chroma")
    {# median of 3 clips from Helpers.avs by G-force
    
    chroma = Default(chroma,"process") #default is "process". Alternates: "copy first" or "copy second"
    
    Interleave(input_1,input_2,input_3)
    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
    
    Return(last)
    }
     
     Median2-function that gives median of 5 clips:
      
     Function Median2(clip "input_1", clip "input_2", clip "input_3", clip "input_4", clip "input_5", string "chroma")
    {# median of 5 clips from Helpers.avs by G-force
    
    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_Logic(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_Logic(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
    
    Return(last)
    }
    Quote Quote  
  28. Member
    Join Date
    Jul 2009
    Location
    Spain
    Search Comp PM
    Originally Posted by jmac698 View Post
    Code:
    Function Median2(clip "input_1", clip "input_2", clip "input_3", clip "input_4", clip "input_5", string "chroma")
    A small syntax correction - since the five input clips are in effect mandatory, the names input_1, etc, should not have quotes around them. That way, you will get an appropriate error message (instead of some undefined failure inside the function) if you don't supply them on the call.
    Quote Quote  
  29. Thanks Jmac and Jagabo and others
    i will try that and i have tbc and no drop frames. If I understand correctly the 3 or four sources will be blended and it depends of opacity which of the clip will be more visible
    Quote Quote  
  30. Member
    Join Date
    Jul 2009
    Location
    Spain
    Search Comp PM
    Originally Posted by mammo1789 View Post
    If I understand correctly the 3 or four sources will be blended and it depends of opacity which of the clip will be more visible
    The opacities are chosen to give each clip the same weight in the final result. That way, the noise (assumed random) will tend to 'cancel out' by averageing.

    In the 'median' approach, there is no blending - for each pixel, the one from the clip which has the median value for that pixel (from the set of input clips) is used.
    Quote Quote  



Similar Threads