View difference between Paste ID: LUErwWR8 and pLQbYPU5
SHOW: | | - or go back to the newest paste.
1-
# YAHR's functions 2017-10-12
1+
# YAHR's functions 2018-03-31
2
3
# Y'et A'nother H'alo R'educing script
4
5
function YAHR(clip clp)
6
{
7
b1    = clp.minblur(2).removegrain(11,-1)
8
b1D   = mt_makediff(clp,b1)
9
w1    = clp.aWarpSharp(depth=32,blurlevel=2,thresh=0.5)
10
w1b1  = w1.minblur(2,1).removegrain(11,-1)
11
w1b1D = mt_makediff(w1,w1b1)
12
DD    = b1D.repair(w1b1D,13) 
13
DD2   = mt_makediff(b1D,DD)
14
clp.mt_makediff(DD2,U=2,V=2)
15
}
16
17
18
# Y'et A'nother H'alo R'educing script
19
# YAHR A.SONY mod 1.38, original YAHR was by Didée
20
# good deHalo for modern DVD and other cases
21
22
function YAHR2(clip clp, int "depth", int "blur", bool "useawarp4", int "depthV", int "blurV")
23
{
24
25
depth         = Default(depth, 8)
26
useawarp4     = Default(useawarp4, false)
27
28
blur = defined(blurV) && !defined(blur) ? depth==0 ? 0 : blur : blur
29
30
defined(depthV) ? depthV != 0 && depth==0 ? eval("blurV=defined(blurV) ? blurV : blur Chr(3) blur=defined(blur) ? blur : 0") : depthV==0 && depth != 0 ? eval("blurV=defined(blurV) ? blurV : 0") : nop() : nop()
31
32
awarp_params = defined(depthV) ? ",depthV=" + string(depthV) : ""
33
awarp_params = defined(blurV) ? awarp_params + ",blurV=" + string(blurV) : defined(depthV) ? depthV==0 ? ",blurV=0" : awarp_params : awarp_params
34
35
b1    = clp.minblur(2).removegrain(11,-1)
36
b1D   = mt_makediff(clp,b1)
37
w1    = useawarp4 ? clp.aWarpSharp4xx(depth=depth,blur=blur,chroma=1,useawarp4=true,depthV=depthV,blurV=blurV) : eval("clp.aWarpSharp2(depth=depth,blur=blur,chroma=1" + awarp_params + ")")
38
w1b1  = w1.minblur(2,1).removegrain(11,-1)
39
w1b1D = mt_makediff(w1,w1b1)
40
DD    = b1D.repair(w1b1D,13) 
41
DD2   = mt_makediff(b1D,DD)
42
clp.mt_makediff(DD2,U=2,V=2)
43
}
44
45
46-
function YAHR3(clip src, int "depth", int "radius", int "blur", bool "useawarp4", int "depthV", int "blurV")
46+
function YAHR3(clip src, int "depth", int "radius", int "blur", bool "useawarp4", int "depthV", int "blurV", bool "honly", bool "lumaonly")
47
{
48
depth         = Default(depth, 32)
49
radius        = Default(radius, 6)
50
src
51-
edgm = EMask_dhh(ColorYUV(autogain=true), 3, 140,true)
51+
edgm = EMask_dhh(ColorYUV(autogain=true), 3, 140,true,honly=honly,lumaonly=lumaonly)
52
hfil = YAHR2(depth=depth,blur=blur,useawarp4=useawarp4,depthV=depthV,blurV=blurV)
53
RM2  = DR_Radius_dhh(edgm.mt_inflate(),radius,0).mt_inflate()
54
DeRinging = mt_Merge(hfil, src, edgm.mt_inflate(155,155))
55
mt_Merge(src, DeRinging, RM2, u=2, v=2)
56
}
57
58
59
# YAHRmask, by Tophf
60
# With slight modifications (merging both functions into one). Output should be identical.
61
62
function YAHRmask(clip input, int "expand", int "warpdepth", int "blur", bool "useawarp4", clip "yahr", int "warpdepthV", int "blurV") {
63
64
    expand = Default(expand,     5)
65
    warpde = Default(warpdepth, 32)
66
    blur   = Default(blur,       2)
67
    
68
    yahr  = defined(yahr) ? yahr : input.YAHR2(warpde, blur, useawarp4, warpdepthV, blurV)
69
    
70
    input
71
    vEdge = mt_lutxy(last, mt_expand().mt_expand(),"x y - abs 8 - 7 <<")
72
    
73
    mt_merge(yahr, vEdge.binomialblur(expand*2, u=1, v=1)
74
    \ .mt_lut("x 4 <<")
75
    \ .mt_logic(vEdge.removegrain(12, -1)
76
    \ .mt_invert(), "min"), true)
77
}