*.mp4 guy
22nd May 2007, 02:20
Function NEDIC(Clip Clp){
NEDI = clp.EDIupsizer(method=9, mvar=0, constraint=0, threshold4=1024, threshold8=2048, threshold16=-1)#.NEDI()
W=NEDI.Width()
H=NEDI.Height()
NEDIC = NEDI.Spline36Resize(W, H, -0.5, -0.5, W, H)
return (NEDIC)}
function Lnedi(clip clp){
c = clp
dx = c.width*2
dy = c.height*2
#dx = default(dx, c.width*2)
#dy = default(dy, c.height*2)
n1 = NEDIC(clp)
t1 = lanczosresize(clp, dx, dy, taps=1)
t2 = lanczosresize(clp, dx, dy, taps=2)
t3 = lanczosresize(clp, dx, dy, taps=3)
t4 = lanczosresize(clp, dx, dy, taps=4)
t5 = lanczosresize(clp, dx, dy, taps=5)
t6 = lanczosresize(clp, dx, dy, taps=6)
t7 = lanczosresize(clp, dx, dy, taps=7)
t8 = lanczosresize(clp, dx, dy, taps=8)
t9 = lanczosresize(clp, dx, dy, taps=9)
t10 = lanczosresize(clp, dx, dy, taps=10)
t11 = lanczosresize(clp, dx, dy, taps=11)
nm1 = yv12lutxy(clp, lanczosresize(n1, clp.width, clp.height, taps=5), "x y - abs", u=3, v=3)
m1 = yv12lutxy(clp, lanczosresize(t1, clp.width, clp.height, taps=5), "x y - abs", u=3, v=3)
m2 = yv12lutxy(clp, lanczosresize(t2, clp.width, clp.height, taps=4), "x y - abs", u=3, v=3)
m3 = yv12lutxy(clp, lanczosresize(t3, clp.width, clp.height, taps=3), "x y - abs", u=3, v=3)
m4 = yv12lutxy(clp, lanczosresize(t4, clp.width, clp.height, taps=2), "x y - abs", u=3, v=3)
m5 = yv12lutxy(clp, lanczosresize(t5, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
m6 = yv12lutxy(clp, lanczosresize(t6, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
m7 = yv12lutxy(clp, lanczosresize(t7, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
m8 = yv12lutxy(clp, lanczosresize(t8, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
m9 = yv12lutxy(clp, lanczosresize(t9, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
m10 = yv12lutxy(clp, lanczosresize(t10, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
m11 = yv12lutxy(clp, lanczosresize(t11, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
cp1 = maskedmerge(t2, n1, lanczosresize(yv12lutxy(m1, m2, "x y - 256 *", u=3, v=3), dx, dy, taps=2))
m12 = yv12lutxy(clp, lanczosresize(cp1, clp.width, clp.height, taps=5), "x y - abs", u=3, v=3)
cp2 = maskedmerge(cp1, t3, lanczosresize(yv12lutxy(m12, m3, "x y - 256 *", u=3, v=3), dx, dy, taps=2))
m13 = yv12lutxy(clp, lanczosresize(cp2, clp.width, clp.height, taps=4), "x y - abs", u=3, v=3)
cp3 = maskedmerge(cp2, n1, lanczosresize(yv12lutxy(m13, m4, "x y - 256 *", u=3, v=3), dx, dy, taps=2))
m14 = yv12lutxy(clp, lanczosresize(cp3, clp.width, clp.height, taps=3), "x y - abs", u=3, v=3)
cp4 = maskedmerge(cp3, t5, lanczosresize(yv12lutxy(m14, m5, "x y - 256 *", u=3, v=3), dx, dy, taps=2))
m15 = yv12lutxy(clp, lanczosresize(cp4, clp.width, clp.height, taps=2), "x y - abs", u=3, v=3)
cp5 = maskedmerge(cp4, n1, lanczosresize(yv12lutxy(m15, m6, "x y - 256 *", u=3, v=3), dx, dy, taps=2))
m16 = yv12lutxy(clp, lanczosresize(cp5, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
cp6 = maskedmerge(cp5, t7, lanczosresize(yv12lutxy(m16, m7, "x y - 256 *", u=3, v=3), dx, dy, taps=2))
m17 = yv12lutxy(clp, lanczosresize(cp6, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
cp7 = maskedmerge(cp6, n1, lanczosresize(yv12lutxy(m17, m8, "x y - 256 *", u=3, v=3), dx, dy, taps=2))
m18 = yv12lutxy(clp, lanczosresize(cp7, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
cp8 = maskedmerge(cp7, t9, lanczosresize(yv12lutxy(m18, m9, "x y - 256 *", u=3, v=3), dx, dy, taps=2))
m19 = yv12lutxy(clp, lanczosresize(cp8, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
cp9 = maskedmerge(cp8, n1, lanczosresize(yv12lutxy(m19, m10, "x y - 256 *", u=3, v=3), dx, dy, taps=2))
m20 = yv12lutxy(clp, lanczosresize(cp9, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
cp10 = maskedmerge(cp9, n1, lanczosresize(yv12lutxy(m20, m11, "x y - 256 *", u=3, v=3), dx, dy, taps=2))
m21 = yv12lutxy(clp, lanczosresize(cp10, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
#cp11 = maskedmerge(cp10, n1, lanczosresize(yv12lutxy(m21, m1, "x y - 256 *", u=3, v=3), dx, dy, taps=5))
#m22 = yv12lutxy(clp, lanczosresize(cp11, clp.width, clp.height, taps=1), "x y - abs", u=3, v=3)
#cp12 = maskedmerge(cp11, t3, lanczosresize(yv12lutxy(m22, m1, "x y - 256 *", u=3, v=3), dx, dy, taps=5))
#m23 = yv12lutxy(clp, lanczosresize(cp12, clp.width, clp.height, taps=3), "x y - abs", u=3, v=3)
#cp13 = maskedmerge(cp12, t2, lanczosresize(yv12lutxy(m23, m1, "x y - 256 *", u=3, v=3), dx, dy, taps=5))
#m24 = yv12lutxy(clp, lanczosresize(cp13, clp.width, clp.height, taps=3), "x y - abs", u=3, v=3)
return(mergechroma(cp10, spline36resize(clp, dx, dy), 1))}
A Hacky Hack of a script, attempts to intelligently switch between low/medium/high tap lanczos and nedi upsizing by measuring the differences between the varius upsizing methods and the original downsized image, and using the interpolator that causes the least measurable distortion. Not much slower then plain Nedi, comparable line quality to J-DDL and Nedi, comparable texture quality to lanczos3.
This script was just an experiment that turned out well, I don't plan to do anything else with it, but it works well.
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.