VideoHelp Forum




+ Reply to Thread
Results 1 to 5 of 5
  1. Member
    Join Date
    Mar 2019
    Location
    Henderson, KY, USA
    Search PM
    got a new betacam transfer setup. it records 10 bit video. i get dropouts from time to time so i captured the tapes three times and loaded all the captures in avisynth and averaged them out with the median filter. however, it looks like it only supports 8-bit video. 10-bit video gives me dot artifacts. converting everything to 8 bit fixes it but i don't want to do that if possible. is there an alternative to the filter that works with 10 bit video? i tried the average filter, but i get a green screen.
    Quote Quote  
  2. Member
    Join Date
    Dec 2005
    Location
    Finland
    Search Comp PM
    Hi, the original filter didn't include 10-bit support - as I didn't have any such material myself - but TomArrow did make an updated version (0.6) later which should have RGB64 support. There is also a VapourSynth port which should include the same improvements.

    http://avisynth.nl/index.php/Median
    https://github.com/pinterf/AjkMedian

    If you are already using one of these versions and still getting the dot artifacts, perhaps there is an actual bug in the code. If you have some sample clips I might be able to look into this at some point, but no promises, I've not touched the project for a while now
    Quote Quote  
  3. Member
    Join Date
    Mar 2019
    Location
    Henderson, KY, USA
    Search PM
    hi! that's the version i'm using.

    i think i figured it out. one of my clips was shifted to the right a few pixels. converting all the clips to 16 bit or 8 bit before they're passed through median fixed the artifacts initially, and then shifting the image of the problematic clip fixed it in 10 bit. i'll send you some clips to check out anyways incase this is a bug or intended.
    https://mega.nz/folder/fxdQhboB#g_1k3k4gr391YBcLiWtzYQ
    Quote Quote  
  4. Member
    Join Date
    Dec 2005
    Location
    Finland
    Search Comp PM
    Thanks for the samples, I have downloaded them for future reference.

    Having one of the clips out of spatial alignment will certainly explain any strange artifacting. The filter is pretty straightforward in its processing and relies on all the input clips matching perfectly (apart from the analog noise itself, of course).

    I'm not sure why converting to a different bit depth helps, it really shouldn't have any effect on the alignment, but I suppose the important thing is that you got the process to work now.
    Quote Quote  
  5. Typical solutions with temporal-median filters is to Interleave->Process->SelectEvery.

    Very fast 3 samples median is Clense filter (from RemoveGrain tools). Hope it is HBD support already.

    So for Clip1, Clip2, Clip3

    Interleave(Clip1, Clip2, Clip3)
    Clense
    SelectEvery(3,1)

    For more clips support may be used MedianBlurTemporal (disable spatial processing if needed, may be old and not support HBD ?) or vsTTempSmooth(pmode=1, ythresh=255) (it is very close to median but may be not completely).

    Also new plugin started AveragePlus - it will have direct multi-clips input for different types of statistical processing (include export of vsTTempSmooth(pmode=1)) supporting any number of input clips >=3 (even number also). No builds yet avaialble.

    For more complex restoration may be used RIFE near frames interpolation to fix single/local defects with some denoise action too - https://github.com/Asd-g/AviSynthPlus-RIFE

    With 1.3.0 version it is possible to request asymmetrical interpolation of -1, +2 or -2, +1 frames in addition to symmetrical +-1, +-2 and feed to same median-like engines like vsTTempSmooth(pmode=1) or MedianBlurTemporal or even mvtools2 (post 2.7.45 versions with median-like modes in MDegrainN).

    Examples:
    ConvertToPlanarRGB(bits=32)
    # Old symmetrical frames
    #tr=1
    den_tr1=RIFE(denoise=true, denoise_bf=1, denoise_ff=1, model=73)
    #tr=2
    den_tr2=RIFE(denoise=true, denoise_bf=2, denoise_ff=2, model=73)
    #2 new asymmetrical frames with better quality in comparison with tr=2
    den_m1p2=RIFE(denoise=true, denoise_bf=1, denoise_ff=2, model=73)
    den_m2p1=RIFE(denoise=true, denoise_bf=2, denoise_ff=1, model=73)

    #process with some temporal-median engine
    # all interpolated frames + source - max denoise, less details
    Interleave(den_tr1, den_tr2, last, den_m1p2, den_m1p2)
    ConvertToYUV444()
    vsTTempSmooth(pmode=1, maxr=2, ythresh=255)
    SelectEvery(5,2)

    #no tr=2 worst frame, low denoise, more details
    Interleave(den_tr1, den_tr1, last, den_m1p2, den_m1p2) # more weight to best tr=1 frame
    ConvertToYUV444()
    vsTTempSmooth(pmode=1, maxr=2, ythresh=255)
    SelectEvery(5,2)

    # even less denoise, more source details
    Interleave(den_tr1, last, last, den_m1p2, den_m1p2) # more weight to input frame
    ConvertToYUV444()
    vsTTempSmooth(pmode=1, maxr=2, ythresh=255)
    SelectEvery(5,2)

    #no input frame - only 3 interpolated
    # average denoise, average details
    Interleave(den_tr1, den_m1p2, den_m1p2) # equal weight to all interpolated frames
    ConvertToYUV444()
    vsTTempSmooth(pmode=1, maxr=1, ythresh=255)
    SelectEvery(3,1)

    The currently not completely solved issues for RIFE and interlaced frames processing is best quality field-sequential processing with fixed inter-fields vertical interpolation by RIFE. So it is still partially usable for interlaced transfers and best used for progressive (film).
    Last edited by DTL2023; 25th Feb 2026 at 17:00.
    Quote Quote  



Similar Threads

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