#LoadPlugin("F:\Apps\StaxRip 1.4.0.2\Apps\Plugins\both\ffms2\ffms2.dll") #LoadPlugin("F:\Apps\StaxRip 1.4.0.2\Apps\Plugins\avs\RgTools\RgTools.dll") #loadplugin("F:\Apps\StaxRip 1.4.0.2\Apps\Plugins\avs\masktools2\masktools2.dll") ##import("C:\Program Files\AviSynth+\plugins64+\mtmodes.avsi") ffvideosource("wz1.mkv") DeHalo_alpha(rx=2.0, ry=2.0, darkstr=1.0, brightstr=1.0, lowsens=50, highsens=50, ss=1.5) ##########3 function DeHalo_alpha(clip clp, float "rx", float "ry", float "darkstr", float "brightstr", float "lowsens", float "highsens", float "ss") { rx = default( rx, 2.0 ) ry = default( ry, 2.0 ) darkstr = default( darkstr, 1.0 ) brightstr = default( brightstr, 1.0 ) lowsens = default( lowsens, 50 ) highsens = default( highsens, 50 ) ss = default( ss, 1.5 ) LOS = string(lowsens) HIS = string(highsens/100.0) DRK = string(darkstr) BRT = string(brightstr) ox = clp.width() oy = clp.height() uv = 1 uv2 = (uv==3) ? 3 : 2 halos = clp.bicubicresize(m4(ox/rx),m4(oy/ry)).bicubicresize(ox,oy,1,0) are = mt_lutxy(clp.mt_expand(U=uv,V=uv),clp.mt_inpand(U=uv,V=uv),"x y -","x y -","x y -",U=uv,V=uv) ugly = mt_lutxy(halos.mt_expand(U=uv,V=uv),halos.mt_inpand(U=uv,V=uv),"x y -","x y -","x y -",U=uv,V=uv) so = mt_lutxy( ugly, are, "y x - y 0.001 + / 255 * "+LOS+" - y 256 + 512 / "+HIS+" + *" ) lets = mt_merge(halos,clp,so,U=uv,V=uv) remove = (ss==1.0) ? clp.repair(lets,1,0) \ : clp.lanczosresize(m4(ox*ss),m4(oy*ss)) \ .mt_logic(lets.mt_expand(U=uv,V=uv).bicubicresize(m4(ox*ss),m4(oy*ss)),"min",U=uv2,V=uv2) \ .mt_logic(lets.mt_inpand(U=uv,V=uv).bicubicresize(m4(ox*ss),m4(oy*ss)),"max",U=uv2,V=uv2) \ .lanczosresize(ox,oy) them = mt_lutxy(clp,remove,"x y < x x y - "+DRK+" * - x x y - "+BRT+" * - ?",U=2,V=2) return( them ) } function m4(float x) {return(x<16?16:int(round(x/4.0)*4))} ##Prefetch(6)