Muchas gracias por la información, lo vi hace tiempo, pero pase de largo creyendo q era otra cosa. T explico como va.
El nuevo codigo del LimitedSharpen2:
<blockquote>Quote:<hr># LimitedSharpen2()
#
# A multi-purpose sharpener by Didée, hacked by Akirasuto n' Soulhunter... ^^
#
function LimitedSharpen2( clip clp,
float "ss_x", float "ss_y",
int "dest_x", int "dest_y",
int "Smode" , int "strength", int "radius",
int "Lmode", bool "wide", int "overshoot",
bool "soft", int "edgemode", bool "special",
float "aSharpS", float "aWThresh", int "exborder" )
{
ox = clp.width
oy = clp.height
ss_x = default( ss_x, 1 )
ss_y = default( ss_y, 1 )
dest_x = default( dest_x, ox )
dest_y = default( dest_y, oy )
Smode = default( Smode, 4 )
strength = Smode==1
? default( strength, 160 )
: default( strength, 100 )
strength = Smode==2&&strength>100 ? 100 : strength
radius = default( radius, 2 )
Lmode = default( Lmode, 1 )
aSharpS = default(aSharpS, 0.5)
aWThresh = default(aWThresh,0.75)
wide = default( wide, false )
overshoot= default( overshoot, 1)
overshoot= overshoot<0 ? 0 : overshoot
soft = default( soft, false )
edgemode = default( edgemode, 0 )
special = default( special, false )
exborder = default( exborder, 0)
xxs=round(ox*ss_x/8)*8
yys=round(oy*ss_y/8)*8
smx=exborder==0?dest_x:round(dest_x/Exborder/4)*4
smy=exborder==0?dest_y:round(dest_y/Exborder/4)*4
clp.isYV12() ? clp : clp.converttoyv12()
ss_x != 1.0 || ss_y != 1.0 ? last.lanczosresize(xxs,yys) : last
tmp = last
edge = logic( tmp.DEdgeMask(0,255,0,255,"5 10 5 0 0 0 -5 -10 -5", divisor=2)
,tmp.DEdgeMask(0,255,0,255,"5 0 -5 10 0 -10 5 0 -5", divisor=2)
,"max"<img src=https://www.mundodvd.com/forum/emoticons/wink.gif ALT=";)"> .levels(0,0.86,128,0,255,false)
bright_limit = (soft == true) ? tmp.blur(1.0) : tmp
dark_limit = bright_limit.inpand()
bright_limit = bright_limit.expand()
dark_limit = (wide==false) ? dark_limit : dark_limit .inflate.deflate.inpand()
bright_limit = (wide==false) ? bright_limit : bright_limit.deflate.inflate.expand()
minmaxavg = special==false
? yv12lutxy(bright_limit,dark_limit,yexpr="x y + 2 /"<img src=https://www.mundodvd.com/forum/emoticons/wink.gif ALT=";)">
: maskedmerge(dark_limit,bright_limit,tmp,Y=3,U=-128,V=-128)
Str=string(float(strength)/100.0)
normsharp = Smode==1 ? unsharpmask(strength,radius,0)
: Smode==2 ? sharpen(float(strength)/100.0)
: Smode==3 ? yv12lutxy(tmp,minmaxavg,yexpr="x x y - "+Str+" * +"<img src=https://www.mundodvd.com/forum/emoticons/wink.gif ALT=";)">
: asharp(aSharpS,0,0).awarpsharp(3,1,bm=3,cm=0,aWThr esh)
OS = string(overshoot)
Lmode == 1 ? yv12lutxy( bright_limit, normsharp, yexpr="y x "+OS+" + < y x "+OS+" + ?"<img src=https://www.mundodvd.com/forum/emoticons/wink.gif ALT=";)">
: yv12lutxy( bright_limit, normsharp, yexpr="y x "+OS+" + < y x y x - "+OS+" - 1 2 / ^ + "+OS+" + ?"<img src=https://www.mundodvd.com/forum/emoticons/wink.gif ALT=";)">
Lmode == 1 ? yv12lutxy( dark_limit, last, yexpr="y x "+OS+" - > y x "+OS+" - ?"<img src=https://www.mundodvd.com/forum/emoticons/wink.gif ALT=";)">
: yv12lutxy( dark_limit, last, yexpr="y x "+OS+" - > y x x y - "+OS+" - 1 2 / ^ - "+OS+" - ?"<img src=https://www.mundodvd.com/forum/emoticons/wink.gif ALT=";)">
edgemode==0 ? NOP
: edgemode==1
? MaskedMerge(tmp,last,edge.inflate.inflate.blur(1.0 ),Y=3,U=1,V=1)
: MaskedMerge(last,tmp,edge.inflate.inflate.blur(1.0 ),Y=3,U=1,V=1)
(ss_x != 1.0 || ss_y != 1.0)
|| (dest_x != ox || dest_y != oy) ? lanczosresize(dest_x,dest_y) : last
ex=blankclip(last,width=smx,height=smy,color=$FFFF FF).addborders(2,2,2,2).coloryuv(levels="TV->PC"<img src=https://www.mundodvd.com/forum/emoticons/wink.gif ALT=";)">
.blur(1.3).inpand().blur(1.3).bicubicresize(dest_x ,dest_y,1.0,.0)
tmp=clp.lanczosresize(dest_x,dest_y)
clp.isYV12() ? ( exborder==0 ? tmp.mergeluma(last)
: maskedmerge(tmp,last,ex,Y=3,U=1,V=1) )
: ( exborder==0 ? tmp.mergeluma(last.converttoyuy2())
: tmp.mergeluma( maskedmerge(tmp.converttoyv12(),last,ex,Y=3,U=1,V= 1)
.converttoyuy2()) )
return last
}
#<hr></blockquote>
Y para hacer la llamada al iip lo unico q hay q cambiar es la linea correspondiente en avisynth, en este caso por esta:
<blockquote>Quote:<hr>LimitedSharpen2(ss_x=1,ss_y=1,Smode=4,aSharpS= 0.4,aWThresh=0.99)<hr></blockquote>
Siendo 0.4 el valor base, susceptible de cambio al q uno desee.
El resto sigue siendo lo mismo.
un saludo <img src=https://www.mundodvd.com/forum/emoticons/hola.gif ALT=":hola">
</p>




LinkBack URL
About LinkBacks
Citar





fecha: 18/2/05 22:03



