View Single Post
Old 11th September 2016, 15:54   #13  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
Code:
def fast_deblock(src, radius=6, h=3.2, lowpass="0.0:0.0 0.12:1024.0 1.0:1024.0"):
    core          = vs.get_core()
    MakeDiff      = core.std.MakeDiff
    MergeDiff     = core.std.MergeDiff
    MaskedMerge   = core.std.MaskedMerge
    ShufflePlanes = core.std.ShufflePlanes
    colorspace    = src.format.color_family
    if colorspace != vs.GRAY:
       src_color  = src
    src           = ShufflePlanes(src, 0, vs.GRAY)
    ref           = Oyster.Basic(src, None, radius)
    mask          = Oyster.helpers.genblockmask(src)
    cleansed      = Oyster.helpers.nlmeans(ref, 0, 8, 4, h, ref, False)
    ref           = Oyster.helpers.freq_merge(cleansed, ref, 9, lowpass)
    src           = Oyster.helpers.freq_merge(cleansed, src, 9, lowpass)
    clip          = MaskedMerge(src, ref, mask, first_plane=True)
    if colorspace != vs.GRAY:
       clip       = ShufflePlanes([clip, src_color], [0, 1, 2], vs.YUV)
    return clip

Code:
clip = fast_deblock(clip)


basically a low precision lite version of Oyster.Deblocking, lower quality but like a million times faster
note that chroma will not be processed
feisty2 is offline   Reply With Quote