VideoHelp Forum




+ Reply to Thread
Results 1 to 8 of 8
  1. Member
    Join Date
    Mar 2008
    Location
    United States
    Search Comp PM
    Hello,
    this file suffers from some grain/block noise - I've never seen this problem before.
    It's a 15 second clip of a B&W football game from 1962 - the origin must have been film,
    since parts of the game, show the typical scratches and spots,etc. However, this section has some noise
    that exists throughout the whole file.
    So far, I've processed it with avisynth/degrainmedian as a starting point:

    DeGrainMedian(limitY=5,limitUV=5,mode=3)

    and even that, it looks slightly better. I should probably add greyscale() to the script.
    Anybody have any suggestions of a plugin or technique that may be better suited to this kind of noise?
    Appreciate any info.

    http://www.savefile.com/files/2033448
    Quote Quote  
  2. For macroblocks, you might try deblock or blindpp first, before the other denoising filters.

    Deblock(quant=40)
    fft3dfilter(sigma=4,bt=4,plane=4,sharpen=0.5,bw=32 ,bh=32,ow=16,oh=16)

    This might oversmooth it a bit, you can tone down the smoothing by adjusting the settings for your tastes
    Quote Quote  
  3. Member
    Join Date
    Mar 2008
    Location
    United States
    Search Comp PM
    Thanks for the idea - gave it a try but it's not really improving the file -
    was not getting rid of the interference.
    I don't think it's regular block noise.

    I'm not expecting miracles, I can see how bad the source is -
    just something that narrows in on this particular noise type a little more
    precisely (if such a thing exists)

    The old Virtualdub filter "dynamic noise reduction (mmx)" by Steven Don
    seems to do a better job with the constant "fuzziness" of the picture,
    but does nothing for dust and scrathes. ( was hoping to avoid using Virtualdub!).
    Here's another clip to illustrate the extent of the problem: (it's not all this bad - this is the worst section,
    right at the start of the game).
    http://www.savefile.com/files/2033776
    Quote Quote  
  4. Always Watching guns1inger's Avatar
    Join Date
    Apr 2004
    Location
    Miskatonic U
    Search Comp PM
    OK. This is not taking into account any other issues - compression artifacts, contrast etc. It is purely about damage reduction. Much of the damage is in fact so bad that only frame by frame painting will get rid of it. Some of the scratches are very large, there is writing on the film - many problems.

    I have opted for RemoveDirt(), which can be found here : http://home.arcor.de/kassandro/RemoveDirt/RemoveDirt.htm

    It does a pretty good job at pulling irregular, small particle dirt and scratches from footage. Not so good for larger staff.

    The sample footage you posted is unchanged on the left of the attached clip. The filtered footage is on the right. You can adjust the effectiveness of the filter in the script by altering the numeric value in the RemoveDirt statement.

    Code:
    LoadPlugin("C:\Video\AviSynth 2.5\plugins\removedirt.dll")
    LoadPlugin("C:\Video\AviSynth 2.5\plugins\removegrain.dll")
    LoadPlugin("C:\Video\AviSynth 2.5\plugins\repair.dll")
    
    function RemoveDirt(clip input, bool "_grey", int "repmode") 
    {
        _grey=default(_grey, false)
    	repmode=default(repmode, 16)
    	clmode=17
    	clensed=Clense(input, grey=_grey, cache=4)
    	sbegin = ForwardClense(input, grey=_grey, cache=-1)
    	send = BackwardClense(input, grey=_grey, cache=-1)
    	alt=Repair(SCSelect(input, sbegin, send, clensed, debug=true), input, mode=repmode, modeU = _grey ? -1 : repmode ) 
    	restore=Repair(clensed, input, mode=repmode, modeU = _grey ? -1 : repmode)
    	corrected=RestoreMotionBlocks(clensed, restore, neighbour=input, alternative=alt, gmthreshold=70, dist=1, dmode=2, debug=false, noise=10, noisy=12, grey=_grey)
    	return RemoveGrain(corrected, mode=clmode, modeU = _grey ? -1 : clmode )
    }
    	
    base=DirectShowSource("sample_a.avi")
    
    baseYV=ConvertToYV12(base)
    
    RemoveDirt(baseYV, true, 18).GreyScale


    sample%20rest.avi
    Read my blog here.
    Quote Quote  
  5. Member 2Bdecided's Avatar
    Join Date
    Nov 2007
    Location
    United Kingdom
    Search Comp PM
    That's an overcompressed re-sized analogue video transfer of a skip-field telerecording from 405-line TV.

    There was a hair in the gate when transferred from film to video.


    I don't know where you got it from, but see if you can find a different transfer (no hair!), or even just a different encoding (no blocks!).

    Cheers,
    David.
    Quote Quote  
  6. Member
    Join Date
    Mar 2008
    Location
    United States
    Search Comp PM
    Thanks very much for your suggestions and comments.
    In particular, the removedirt seems more targeted to the issues of the file.

    Regarding its origin, I was surprised to find it on the net. Later,
    I found a commercial DVD had been issued in England. I'm not sure if the avi
    I have is a rip of this dvd or not. The quality is so poor, it seems remarkable they wouldn't have cleaned it a little.

    The game itself is the 1962 FA cup final in England, Tottenham Vs. Burnley.
    Quote Quote  
  7. Member 2Bdecided's Avatar
    Join Date
    Nov 2007
    Location
    United Kingdom
    Search Comp PM
    It's probably from the DVD. The DVD probably isn't so blocky.

    Other than that, the DVD probably looks exactly like what you have. That's what many UK 405-line telerecordings (they're called kinescopes in the USA) look like.

    Cheers,
    David.
    Quote Quote  
  8. Member
    Join Date
    Aug 2008
    Location
    The Moon
    Search Comp PM
    Dfttest() is a very good spatio-temporal denoiser that retains a good amount of detail. Here is a 'before' and 'after':


    I've also uploaded the processed m2v here if you want to have a look (~12MB). (I used HC Encoder).

    Here is the script I used:
    FFVideoSource("C:\~\soccer1.avi")
    greyscale()
    Deblock_QED()

    source=last
    vf1=source.mvanalyse(pel=2,blksize=8,isb=false,idx =1,overlap=4,sharp=2,truemotion=true)
    vf2=source.mvanalyse(pel=2,blksize=8,isb=false,idx =1,delta=2,overlap=4,sharp=2,truemotion=true)
    vb1=source.mvanalyse(pel=2,blksize=8,isb=true,idx= 1,overlap=4,sharp=2,truemotion=true)
    vb2=source.mvanalyse(pel=2,blksize=8,isb=true,idx= 1,delta=2,overlap=4,sharp=2,truemotion=true)
    interleave(\
    mvcompensate(source,vf2,idx=1,thSCD1=800)\
    , mvcompensate(source,vf1,idx=1,thSCD1=800)\
    , source\
    , mvcompensate(source,vb1,idx=1,thSCD1=800)\
    , mvcompensate(source,vb2,idx=1,thSCD1=800))
    dfttest()
    selectevery(5,2)

    LSFMod(SMode=5)
    AddGrain(5,0,0)

    (Here's my Avisynth plugin folder, if you can't be bothered spending hours & hours trawling the doom9 forums!)
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!