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