xv: bd: add vol 4 and 5; update common module
This commit is contained in:
parent
03998c6009
commit
007b91c6b5
Symphogear/XV [BD]
@ -7,6 +7,6 @@ import vapoursynth as vs
|
||||
core = vs.core
|
||||
|
||||
ac = acsuite.AC()
|
||||
path = r"bdmv/KIXA_90889/BDMV/STREAM/00004.m2ts"
|
||||
path = r"../bdmv/KIXA_90889/BDMV/STREAM/00004.m2ts"
|
||||
src = core.lsmas.LWLibavSource(path)
|
||||
ac.eztrim(src, [(0, -24)], os.path.splitext(path)[0] + ".wav", "ep5pv.wav")
|
||||
|
@ -23,8 +23,8 @@ FADE_RANGES: List[FadeRange] = [
|
||||
W2X_DENOISE: List[Range] = [
|
||||
(OP[0]+1859, OP[0]+1896) # flashy OP scene
|
||||
]
|
||||
DEBAND_HARD: List[Range] = []
|
||||
DEBAND_HARDER: List[Range] = []
|
||||
DEBAND_HARD: List[Range] = [(25301, 25403)] # chris henshin
|
||||
DEBAND_HARDER: List[Range] = [(25347, 25361)] # chris henshin
|
||||
|
||||
src_ep = core.lsmas.LWLibavSource("../bdmv/KIXA_90890/BDMV/STREAM/00005.m2ts")
|
||||
src_pv = core.lsmas.LWLibavSource("../bdmv/KIXA_90890/BDMV/STREAM/00006.m2ts")[:-24]
|
||||
|
@ -7,6 +7,6 @@ import vapoursynth as vs
|
||||
core = vs.core
|
||||
|
||||
ac = acsuite.AC()
|
||||
path = r"bdmv/KIXA_90889/BDMV/STREAM/00006.m2ts"
|
||||
path = r"../bdmv/KIXA_90889/BDMV/STREAM/00006.m2ts"
|
||||
src = core.lsmas.LWLibavSource(path)
|
||||
ac.eztrim(src, [(0, -24)], os.path.splitext(path)[0] + ".wav", "ep6pv.wav")
|
||||
|
62
Symphogear/XV [BD]/07/ep7.vpy
Normal file
62
Symphogear/XV [BD]/07/ep7.vpy
Normal file
@ -0,0 +1,62 @@
|
||||
import vapoursynth as vs
|
||||
|
||||
from toolz.functoolz import compose
|
||||
from typing import List, Optional, Tuple
|
||||
|
||||
import sys
|
||||
sys.path.append("..")
|
||||
|
||||
from xv_common import (FadeRange, Range, denoise, descale, w2x, deband,
|
||||
mask_oped, mask_logo, finalize) # noqa: E402
|
||||
|
||||
core = vs.core
|
||||
core.max_cache_size = 1024
|
||||
|
||||
OP: Optional[Tuple[int, int]] = (2566, 4962)
|
||||
ED: Optional[Tuple[int, int]] = None
|
||||
LOGO: Range = (17059, 17236)
|
||||
NO_SCALE: List[Range] = [
|
||||
(31876, 34045), # credits
|
||||
(34516, 34587), # next episode title
|
||||
]
|
||||
FORCE_SCALE: List[Range] = [
|
||||
(7692, 8889), # kiri henshin
|
||||
(30734, 31260), # carol henshin
|
||||
]
|
||||
FADE_RANGES: List[FadeRange] = [
|
||||
FadeRange(ref=5041, range_=(4976, 5057)), # title
|
||||
]
|
||||
|
||||
W2X_DENOISE: List[Range] = []
|
||||
if OP is not None:
|
||||
W2X_DENOISE.append(
|
||||
(OP[0]+1859, OP[0]+1896), # flashy OP scene
|
||||
)
|
||||
|
||||
DEBAND_HARD: List[Range] = [
|
||||
(7797, 7887), # kiri henshin
|
||||
9062, # ???
|
||||
]
|
||||
DEBAND_HARDER: List[Range] = [
|
||||
(7815, 7851), # kiri henshin
|
||||
]
|
||||
|
||||
src_ep = core.lsmas.LWLibavSource("../bdmv/KIXA_90891/BDMV/STREAM/00003.m2ts")
|
||||
src_pv = core.lsmas.LWLibavSource("../bdmv/KIXA_90891/BDMV/STREAM/00004.m2ts")[:-24]
|
||||
src_op = core.lsmas.LWLibavSource("../bdmv/KIXA_90889/BDMV/STREAM/00007.m2ts")[24:-24]
|
||||
src_ed = core.lsmas.LWLibavSource("../bdmv/KIXA_90889/BDMV/STREAM/00008.m2ts")[24:-24]
|
||||
src_logo = core.lsmas.LWLibavSource("../bdmv/KIXA_90890/BDMV/STREAM/00005.m2ts")[18416]
|
||||
src = src_ep + src_pv
|
||||
src = src.fmtc.bitdepth(bits=16)
|
||||
den = denoise(src)
|
||||
|
||||
final = compose(
|
||||
finalize,
|
||||
mask_logo(src=den, src_logo=src_logo, range=LOGO),
|
||||
mask_oped(src=den, op=OP, ed=ED, src_op=src_op, src_ed=src_ed),
|
||||
deband(hard=DEBAND_HARD, harder=DEBAND_HARDER),
|
||||
w2x(w2x_range=W2X_DENOISE),
|
||||
descale(force_scale=FORCE_SCALE, no_scale=NO_SCALE, fade_ranges=FADE_RANGES)
|
||||
)(den)
|
||||
|
||||
final.set_output()
|
12
Symphogear/XV [BD]/07/ep7pv_ac.py
Executable file
12
Symphogear/XV [BD]/07/ep7pv_ac.py
Executable file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import acsuite
|
||||
import os
|
||||
import vapoursynth as vs
|
||||
|
||||
core = vs.core
|
||||
|
||||
ac = acsuite.AC()
|
||||
path = r"../bdmv/KIXA_90890/BDMV/STREAM/00004.m2ts"
|
||||
src = core.lsmas.LWLibavSource(path)
|
||||
ac.eztrim(src, [(0, -24)], os.path.splitext(path)[0] + ".wav", "ep7pv.wav")
|
55
Symphogear/XV [BD]/08/ep8.vpy
Normal file
55
Symphogear/XV [BD]/08/ep8.vpy
Normal file
@ -0,0 +1,55 @@
|
||||
import vapoursynth as vs
|
||||
|
||||
from toolz.functoolz import compose
|
||||
from typing import List, Optional, Tuple
|
||||
|
||||
import sys
|
||||
sys.path.append("..")
|
||||
|
||||
from xv_common import (FadeRange, Range, denoise, descale, w2x, deband,
|
||||
mask_oped, mask_logo, finalize) # noqa: E402
|
||||
|
||||
core = vs.core
|
||||
core.max_cache_size = 1024
|
||||
|
||||
OP: Optional[Tuple[int, int]] = (2230, 4626)
|
||||
ED: Optional[Tuple[int, int]] = None
|
||||
LOGO: Range = (14350, 14515)
|
||||
NO_SCALE: List[Range] = [
|
||||
(31822, 34045), # credits
|
||||
(34493, 34573), # next episode title
|
||||
]
|
||||
FORCE_SCALE: List[Range] = [
|
||||
(1797, 1955), # carol henshin
|
||||
(30972, 31573), # miku henshin
|
||||
]
|
||||
FADE_RANGES: List[FadeRange] = []
|
||||
|
||||
W2X_DENOISE: List[Range] = []
|
||||
if OP is not None:
|
||||
W2X_DENOISE.append(
|
||||
(OP[0]+1859, OP[0]+1896), # flashy OP scene
|
||||
)
|
||||
|
||||
DEBAND_HARD: List[Range] = []
|
||||
DEBAND_HARDER: List[Range] = []
|
||||
|
||||
src_ep = core.lsmas.LWLibavSource("../bdmv/KIXA_90891/BDMV/STREAM/00005.m2ts")
|
||||
src_pv = core.lsmas.LWLibavSource("../bdmv/KIXA_90891/BDMV/STREAM/00006.m2ts")[:-24]
|
||||
src_op = core.lsmas.LWLibavSource("../bdmv/KIXA_90889/BDMV/STREAM/00007.m2ts")[24:-24]
|
||||
src_ed = core.lsmas.LWLibavSource("../bdmv/KIXA_90889/BDMV/STREAM/00008.m2ts")[24:-24]
|
||||
src_logo = core.lsmas.LWLibavSource("../bdmv/KIXA_90890/BDMV/STREAM/00005.m2ts")[18416]
|
||||
src = src_ep + src_pv
|
||||
src = src.fmtc.bitdepth(bits=16)
|
||||
den = denoise(src)
|
||||
|
||||
final = compose(
|
||||
finalize,
|
||||
mask_logo(src=den, src_logo=src_logo, range=LOGO),
|
||||
mask_oped(src=den, op=OP, ed=ED, src_op=src_op, src_ed=src_ed),
|
||||
deband(hard=DEBAND_HARD, harder=DEBAND_HARDER),
|
||||
w2x(w2x_range=W2X_DENOISE),
|
||||
descale(force_scale=FORCE_SCALE, no_scale=NO_SCALE, fade_ranges=FADE_RANGES)
|
||||
)(den)
|
||||
|
||||
final.set_output()
|
12
Symphogear/XV [BD]/08/ep8pv_ac.py
Executable file
12
Symphogear/XV [BD]/08/ep8pv_ac.py
Executable file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import acsuite
|
||||
import os
|
||||
import vapoursynth as vs
|
||||
|
||||
core = vs.core
|
||||
|
||||
ac = acsuite.AC()
|
||||
path = r"../bdmv/KIXA_90890/BDMV/STREAM/00006.m2ts"
|
||||
src = core.lsmas.LWLibavSource(path)
|
||||
ac.eztrim(src, [(0, -24)], os.path.splitext(path)[0] + ".wav", "ep8pv.wav")
|
59
Symphogear/XV [BD]/09/ep9.vpy
Normal file
59
Symphogear/XV [BD]/09/ep9.vpy
Normal file
@ -0,0 +1,59 @@
|
||||
import vapoursynth as vs
|
||||
|
||||
from toolz.functoolz import compose
|
||||
from typing import List, Optional, Tuple
|
||||
|
||||
import sys
|
||||
sys.path.append("..")
|
||||
|
||||
from xv_common import (FadeRange, Range, denoise, descale, descale720,
|
||||
w2x, deband, mask_oped, mask_logo, finalize) # noqa: E402
|
||||
|
||||
core = vs.core
|
||||
core.max_cache_size = 1024
|
||||
|
||||
S1 = [(0, 69), (132, 383)]
|
||||
G = [(384, 439)]
|
||||
GX = [(70, 131), (440, 489)]
|
||||
AXZ = [(490, 682)]
|
||||
OP: Optional[Tuple[int, int]] = (1296, 3692)
|
||||
ED: Optional[Tuple[int, int]] = (31623, 33780)
|
||||
LOGO: Range = (12265, 12430)
|
||||
NO_SCALE: List[Range] = [
|
||||
(34513, 34605), # next episode title
|
||||
]
|
||||
FORCE_SCALE: List[Range] = []
|
||||
FORCE_SCALE = FORCE_SCALE + AXZ
|
||||
FADE_RANGES: List[FadeRange] = [
|
||||
FadeRange(ref=3763, range_=(3694, 3775)),
|
||||
]
|
||||
|
||||
W2X_DENOISE: List[Range] = []
|
||||
if OP is not None:
|
||||
W2X_DENOISE.append(
|
||||
(OP[0]+1859, OP[0]+1896), # flashy OP scene
|
||||
)
|
||||
|
||||
DEBAND_HARD: List[Range] = []
|
||||
DEBAND_HARDER: List[Range] = []
|
||||
|
||||
src_ep = core.lsmas.LWLibavSource("../bdmv/KIXA_90892/BDMV/STREAM/00003.m2ts")
|
||||
src_pv = core.lsmas.LWLibavSource("../bdmv/KIXA_90892/BDMV/STREAM/00004.m2ts")[:-24]
|
||||
src_op = core.lsmas.LWLibavSource("../bdmv/KIXA_90889/BDMV/STREAM/00007.m2ts")[24:-24]
|
||||
src_ed = core.lsmas.LWLibavSource("../bdmv/KIXA_90889/BDMV/STREAM/00008.m2ts")[24:-24]
|
||||
src_logo = core.lsmas.LWLibavSource("../bdmv/KIXA_90890/BDMV/STREAM/00005.m2ts")[18416]
|
||||
src = src_ep + src_pv
|
||||
src = src.fmtc.bitdepth(bits=16)
|
||||
den = denoise(src)
|
||||
|
||||
final = compose(
|
||||
finalize,
|
||||
mask_logo(src=den, src_logo=src_logo, range=LOGO),
|
||||
mask_oped(src=den, op=OP, ed=ED, src_op=src_op, src_ed=src_ed),
|
||||
deband(hard=DEBAND_HARD, harder=DEBAND_HARDER),
|
||||
w2x(w2x_range=W2X_DENOISE),
|
||||
descale720(src=den, ranges=S1+G+GX),
|
||||
descale(force_scale=FORCE_SCALE, no_scale=NO_SCALE, fade_ranges=FADE_RANGES)
|
||||
)(den)
|
||||
|
||||
final.set_output()
|
12
Symphogear/XV [BD]/09/ep9pv_ac.py
Executable file
12
Symphogear/XV [BD]/09/ep9pv_ac.py
Executable file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import acsuite
|
||||
import os
|
||||
import vapoursynth as vs
|
||||
|
||||
core = vs.core
|
||||
|
||||
ac = acsuite.AC()
|
||||
path = r"../bdmv/KIXA_90891/BDMV/STREAM/00004.m2ts"
|
||||
src = core.lsmas.LWLibavSource(path)
|
||||
ac.eztrim(src, [(0, -24)], os.path.splitext(path)[0] + ".wav", "ep9pv.wav")
|
55
Symphogear/XV [BD]/10/ep10.vpy
Normal file
55
Symphogear/XV [BD]/10/ep10.vpy
Normal file
@ -0,0 +1,55 @@
|
||||
import vapoursynth as vs
|
||||
|
||||
from toolz.functoolz import compose
|
||||
from typing import List, Optional, Tuple
|
||||
|
||||
import sys
|
||||
sys.path.append("..")
|
||||
|
||||
from xv_common import (FadeRange, Range, denoise, descale, w2x, deband,
|
||||
mask_oped, mask_logo, finalize) # noqa: E402
|
||||
|
||||
core = vs.core
|
||||
core.max_cache_size = 1024
|
||||
|
||||
OP: Optional[Tuple[int, int]] = (5563, 7959)
|
||||
ED: Optional[Tuple[int, int]] = (31338, 33494)
|
||||
LOGO: Range = (17924, 18089)
|
||||
NO_SCALE: List[Range] = [
|
||||
(34515, 34607), # next episode title
|
||||
]
|
||||
FORCE_SCALE: List[Range] = [
|
||||
(19155, 20461), # shriabe henshin
|
||||
]
|
||||
FADE_RANGES: List[FadeRange] = [
|
||||
FadeRange(ref=8026, range_=(7961, 8042)),
|
||||
]
|
||||
|
||||
W2X_DENOISE: List[Range] = []
|
||||
if OP is not None:
|
||||
W2X_DENOISE.append(
|
||||
(OP[0]+1859, OP[0]+1896), # flashy OP scene
|
||||
)
|
||||
|
||||
DEBAND_HARD: List[Range] = []
|
||||
DEBAND_HARDER: List[Range] = []
|
||||
|
||||
src_ep = core.lsmas.LWLibavSource("../bdmv/KIXA_90892/BDMV/STREAM/00005.m2ts")
|
||||
src_pv = core.lsmas.LWLibavSource("../bdmv/KIXA_90892/BDMV/STREAM/00006.m2ts")[:-24]
|
||||
src_op = core.lsmas.LWLibavSource("../bdmv/KIXA_90889/BDMV/STREAM/00007.m2ts")[24:-24]
|
||||
src_ed = core.lsmas.LWLibavSource("../bdmv/KIXA_90889/BDMV/STREAM/00008.m2ts")[24:-24]
|
||||
src_logo = core.lsmas.LWLibavSource("../bdmv/KIXA_90890/BDMV/STREAM/00005.m2ts")[18416]
|
||||
src = src_ep + src_pv
|
||||
src = src.fmtc.bitdepth(bits=16)
|
||||
den = denoise(src)
|
||||
|
||||
final = compose(
|
||||
finalize,
|
||||
mask_logo(src=den, src_logo=src_logo, range=LOGO),
|
||||
mask_oped(src=den, op=OP, ed=ED, src_op=src_op, src_ed=src_ed),
|
||||
deband(hard=DEBAND_HARD, harder=DEBAND_HARDER),
|
||||
w2x(w2x_range=W2X_DENOISE),
|
||||
descale(force_scale=FORCE_SCALE, no_scale=NO_SCALE, fade_ranges=FADE_RANGES)
|
||||
)(den)
|
||||
|
||||
final.set_output()
|
12
Symphogear/XV [BD]/10/ep10pv_ac.py
Executable file
12
Symphogear/XV [BD]/10/ep10pv_ac.py
Executable file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import acsuite
|
||||
import os
|
||||
import vapoursynth as vs
|
||||
|
||||
core = vs.core
|
||||
|
||||
ac = acsuite.AC()
|
||||
path = r"../bdmv/KIXA_90891/BDMV/STREAM/00006.m2ts"
|
||||
src = core.lsmas.LWLibavSource(path)
|
||||
ac.eztrim(src, [(0, -24)], os.path.splitext(path)[0] + ".wav", "ep10pv.wav")
|
@ -1,2 +1,2 @@
|
||||
from .scale import FadeRange, descale
|
||||
from .scale import FadeRange, descale, descale720
|
||||
from .filter import Range, denoise, w2x, deband, mask_oped, mask_logo, finalize
|
||||
|
@ -5,7 +5,7 @@ from kagefunc import adaptive_grain, retinex_edgemask
|
||||
from lvsfunc.misc import replace_ranges
|
||||
from mvsfunc import BM3D
|
||||
from toolz.functoolz import curry
|
||||
from typing import List, Tuple, Union
|
||||
from typing import List, Optional, Tuple, Union
|
||||
from vardefunc import dcm
|
||||
|
||||
core = vs.core
|
||||
@ -54,14 +54,18 @@ def deband(clip: vs.VideoNode, hard: List[Range],
|
||||
|
||||
@curry
|
||||
def mask_oped(clip: vs.VideoNode, src: vs.VideoNode,
|
||||
op: Tuple[int, int], ed: Tuple[int, int], src_op: vs.VideoNode,
|
||||
src_ed: vs.VideoNode) -> vs.VideoNode:
|
||||
credit_op_m = dcm(clip, src[op[0]:op[1]+1],
|
||||
src_op[:op[1]-op[0]+1], op[0], op[1], 2, 2)
|
||||
credit_ed_m = dcm(clip, src[ed[0]:ed[1]+1],
|
||||
src_ed[:ed[1]-ed[0]+1], ed[0], ed[1], 2, 2)
|
||||
credit_m = core.std.Expr([credit_op_m, credit_ed_m], 'x y +')
|
||||
return core.std.MaskedMerge(clip, src, credit_m)
|
||||
op: Optional[Tuple[int, int]], ed: Optional[Tuple[int, int]],
|
||||
src_op: vs.VideoNode, src_ed: vs.VideoNode) -> vs.VideoNode:
|
||||
merge = clip
|
||||
if op is not None:
|
||||
credit_op_m = dcm(clip, src[op[0]:op[1]+1],
|
||||
src_op[:op[1]-op[0]+1], op[0], op[1], 2, 2)
|
||||
merge = core.std.MaskedMerge(merge, src, credit_op_m)
|
||||
if ed is not None:
|
||||
credit_ed_m = dcm(clip, src[ed[0]:ed[1]+1],
|
||||
src_ed[:ed[1]-ed[0]+1], ed[0], ed[1], 2, 2)
|
||||
merge = core.std.MaskedMerge(merge, src, credit_ed_m)
|
||||
return merge
|
||||
|
||||
|
||||
@curry
|
||||
|
@ -1,7 +1,6 @@
|
||||
import vapoursynth as vs
|
||||
import vsutil
|
||||
|
||||
from functools import partial
|
||||
from kagefunc import retinex_edgemask
|
||||
from lvsfunc.aa import upscaled_sraa
|
||||
from lvsfunc.kernels import Bicubic
|
||||
@ -20,6 +19,7 @@ class FadeRange(NamedTuple):
|
||||
range_: Tuple[int, int]
|
||||
|
||||
|
||||
@curry
|
||||
def _sraa_frameeval(n: int, clip: vs.VideoNode, w: int, h: int
|
||||
) -> vs.VideoNode:
|
||||
frame = clip.get_frame(n)
|
||||
@ -33,8 +33,8 @@ def _sraa_frameeval(n: int, clip: vs.VideoNode, w: int, h: int
|
||||
|
||||
def _sraa_reupscale(clip: vs.VideoNode, width: int, height: int
|
||||
) -> vs.VideoNode:
|
||||
sraa = clip.std.FrameEval(partial(_sraa_frameeval, clip=clip, w=width,
|
||||
h=height))
|
||||
sraa = clip.std.FrameEval(_sraa_frameeval(clip=clip, w=width,
|
||||
h=height))
|
||||
scale = sraa.resize.Spline36(width, height, format=vs.GRAY16)
|
||||
return scale
|
||||
|
||||
@ -44,16 +44,18 @@ def _fade_ranges_with_refs(clip: vs.VideoNode, reupscaled: vs.VideoNode,
|
||||
mask = core.std.BlankClip(clip)
|
||||
for r in ranges:
|
||||
rmask = core.std.Expr([clip[r.ref], reupscaled[r.ref]], "x y - abs")
|
||||
rmask = rmask.std.Binarize(1500)
|
||||
rmask = vsutil.iterate(rmask, core.std.Maximum, 4)
|
||||
rmask = rmask.std.Binarize(4000)
|
||||
rmask = vsutil.iterate(rmask, core.std.Inflate, 2)
|
||||
rmask = core.std.Expr([mask, rmask], "x y +")
|
||||
mask = replace_ranges(mask, rmask, [r.range_])
|
||||
|
||||
return mask
|
||||
|
||||
|
||||
def _really_dumb_inverse_mask(clip: vs.VideoNode, reupscaled: vs.VideoNode,
|
||||
ranges: List[FadeRange]) -> vs.VideoNode:
|
||||
@curry
|
||||
def _inverse_mask(clip: vs.VideoNode, reupscaled: vs.VideoNode,
|
||||
ranges: List[FadeRange] = []) -> vs.VideoNode:
|
||||
reupscaled = reupscaled.resize.Bicubic(format=clip.format.id)
|
||||
line_mask = retinex_edgemask(clip, 0.0001).std.Binarize(10000)
|
||||
fade_mask = _fade_ranges_with_refs(clip, reupscaled, ranges)
|
||||
@ -65,20 +67,31 @@ def _really_dumb_inverse_mask(clip: vs.VideoNode, reupscaled: vs.VideoNode,
|
||||
def descale(clip: vs.VideoNode, force_scale: List[Range],
|
||||
no_scale: List[Range], fade_ranges: List[FadeRange],
|
||||
show_mask: bool = False) -> vs.VideoNode:
|
||||
dmask = partial(_really_dumb_inverse_mask, ranges=fade_ranges)
|
||||
kernel = Bicubic(b=1/3, c=1/3)
|
||||
heights = [871, 872, 873]
|
||||
y = vsutil.get_y(clip)
|
||||
ys = ldescale(y, upscaler=_sraa_reupscale, height=heights,
|
||||
kernel=kernel, threshold=0.003, mask=dmask,
|
||||
show_mask=show_mask)
|
||||
kernel=kernel, threshold=0.003,
|
||||
mask=_inverse_mask(ranges=fade_ranges), show_mask=show_mask)
|
||||
if show_mask:
|
||||
return ys
|
||||
|
||||
yf = ldescale(y, upscaler=_sraa_reupscale, height=heights,
|
||||
kernel=kernel, threshold=0, mask=dmask)
|
||||
kernel=kernel, threshold=0,
|
||||
mask=_inverse_mask(ranges=fade_ranges))
|
||||
yd = replace_ranges(ys, yf, force_scale)
|
||||
scaled = core.std.ShufflePlanes([yd, clip], planes=[0, 1, 2],
|
||||
colorfamily=vs.YUV)
|
||||
scaled = replace_ranges(scaled, clip, no_scale)
|
||||
return scaled
|
||||
|
||||
|
||||
@curry
|
||||
def descale720(clip: vs.VideoNode, src: vs.VideoNode, ranges: List[Range]
|
||||
) -> vs.VideoNode:
|
||||
y = ldescale(vsutil.get_y(src), upscaler=_sraa_reupscale, height=720,
|
||||
kernel=Bicubic(b=1/3, c=1/3), threshold=0, mask=_inverse_mask)
|
||||
scaled = core.std.ShufflePlanes([y, src], planes=[0, 1, 2],
|
||||
colorfamily=vs.YUV)
|
||||
scaled = replace_ranges(clip, scaled, ranges)
|
||||
return scaled
|
||||
|
Loading…
x
Reference in New Issue
Block a user