Advertisement
Guest User

IResize

a guest
Nov 2nd, 2017
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # IResize by Gavino and IanB and mod by A.SONY to use Custom resizer and Extra resizer parameters may be passed via res_params. like this IResize(240,480,resifilter="LanczosResize",res_params=",taps=5")
  2. # some parameters are special for 420 (yv12 in vanilla avs)
  3. # v 1.11
  4. function IResize(clip c, int NewWidth, int NewHeight, string "resifilter", string "res_params", bool "mpeg2", Float "src_left", Float "src_top", string "cresifilter", string "cres_params") {
  5.   avs26   = VersionNumber() < 2.60 ? false : true
  6.   avspmt  = Findstr(VersionString(), "AviSynth+") != 0 && Findstr(VersionString(), "r1576") == 0
  7.   resifilter   = default ( resifilter,         "Spline36resize" )
  8.   res_params   = default(res_params, "")
  9.   mpeg2        = default(mpeg2, true)
  10.   src_left     = default(src_left, 0)
  11.   src_top      = default(src_top, 0)
  12.   res_params_c = default(cres_params, res_params)
  13.   cresifilter  = default(cresifilter, resifilter)
  14.   chr420  = avspmt ? c.is420() : c.isyv12()
  15.   slumSep = chr420 && avs26
  16.   slumres = slumSep ? avspmt ? "ConvertToY()." : "ConvertToY8()." : ""
  17.   c_width = Width(c)
  18.   ch420m  = slumSep && mpeg2 ? NewWidth == c_width : false
  19.   wShift  = ch420m ? 0.25*(1.0-Float(c_width/2.0)/Float(NewWidth/2.0)) : 0
  20.   c
  21.   SeparateFields()
  22.   Shift = (GetParity() ? -0.25 : 0.25) * (Height()/Float(NewHeight/2)-1.0)
  23.   v2=last
  24.   SelectEven(v2)
  25.   euvcl = slumSep ? avspmt ? Interleave(ExtractU(),ExtractV()) : Interleave(UToY8(),VToY8()) : nop()
  26.   eschrres = slumSep ? "euvcl." : ""
  27.   E  = Eval(slumres + resifilter + "(NewWidth, NewHeight/2, src_left=src_left, src_top=src_top + Shift" + res_params + ")")
  28.   Ec = chr420 ? Eval(eschrres + cresifilter + "(slumSep ? NewWidth/2 : NewWidth, slumSep ? NewHeight/4 : NewHeight/2, src_left=wShift + (slumSep ? src_left==0 ? 0 : src_left/2 : src_left), src_top=slumSep ? Shift + (src_top==0 ? 0 : src_top/2) : src_top + 2*Shift" + res_params_c + ")") : nop()
  29.   SelectOdd(v2)
  30.   ouvcl = slumSep ? avspmt ? Interleave(ExtractU(),ExtractV()) : Interleave(UToY8(),VToY8()) : nop()
  31.   oschrres = slumSep ? "ouvcl." : ""
  32.   O  = Eval(slumres + resifilter + "(NewWidth, NewHeight/2, src_left=src_left, src_top=src_top + (-Shift)" + res_params + ")")
  33.   Oc = chr420 ? Eval(oschrres + cresifilter + "(slumSep ? NewWidth/2 : NewWidth, slumSep ? NewHeight/4 : NewHeight/2, src_left=wShift + (slumSep ? src_left==0 ? 0 : src_left/2 : src_left), src_top=slumSep ? -Shift + (src_top==0 ? 0 : src_top/2) : src_top + -2*shift" + res_params_c + ")") : nop()
  34.   Interleave(E, O)
  35.   chr420 ? avs26 ? avspmt ? CombinePlanes(last, Interleave(Ec.Selecteven(),Oc.Selecteven()), Interleave(Ec.SelectOdd(),Oc.SelectOdd()), planes="YUV", source_planes="YYY", pixel_type=c.PixelType()) : YtoUV( Interleave(Ec.Selecteven(),Oc.Selecteven()), Interleave(Ec.SelectOdd(),Oc.SelectOdd()), last ) : MergeChroma(Interleave(Ec, Oc)) : Last
  36.   Weave()
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement