Advertisement
Guest User

deblink4

a guest
Apr 9th, 2012
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function deblink4(clip clp, float "ratio", int "level")  {
  2.     ratio = default(ratio, 2.0 /3)
  3.     assert(ratio >= 0.0 && 1.0 >= ratio,
  4.     \      "[deblink4] 1.0 >= ratio >= 0.0, it was " + string(ratio))
  5.  
  6.     level = default(level, round(ratio * 257))
  7.     assert(level >= 0 && 257 >= level,
  8.     \      "[deblink4] 257 >= level >= 0, it was " + string(level))
  9.  
  10.     blink=clp.ng_blinkmask_new
  11.     m01=mt_logic(blink.selectevery(4,0),
  12. \                blink.selectevery(4,1),
  13. \                mode="or").converttorgb32
  14.     m01=mt_logic(blink.selectevery(4,2),
  15. \                blink.selectevery(4,3),
  16. \                mode="or").converttorgb32
  17.  
  18.     f0=layer(clp.selectevery(4,0),
  19. \            clp.selectevery(4,1).mask(m01),
  20. \            level=level)
  21.     f1=layer(clp.selectevery(4,1),
  22. \            clp.selectevery(4,0).mask(m01),
  23. \            level=level)
  24.     f2=layer(clp.selectevery(4,2),
  25. \            clp.selectevery(4,3).mask(m23),
  26. \            level=(257-level) )
  27.     f3=layer(clp.selectevery(4,3),
  28. \            clp.selectevery(4,2).mask(m23),
  29. \            level=(257-level) )
  30.  
  31.     interleave(f0,f1,f2,f3)
  32. }
  33.  
  34. function deblink3(clip clp){
  35.     blink=clp.ng_blinkmask_new
  36.     m01=mt_logic(blink.selectevery(4,0),
  37. \                blink.selectevery(4,1),
  38. \                mode="or").converttorgb32
  39.     f0=layer(clp.selectevery(4,0),
  40. \            clp.selectevery(4,1).mask(m01))
  41.     f1=layer(clp.selectevery(4,1),
  42. \            clp.selectevery(4,0).mask(m01))
  43.     interleave(f0,f1,
  44. \              clp.selectevery(4,2),clp.selectevery(4,3))
  45. }
  46.  
  47. function ng_blinkmask_new(clip c,int "ml"){
  48.     ml=default(ml,128)
  49.     src=c.ConvertToYv12
  50.     super=MSuper(src, pel=1)
  51.     fvec =MAnalyse(super, isb=false, blksize=4)
  52.     bvec =MAnalyse(super, isb=true , blksize=4)
  53.     fmask=Mmask(src,fvec,kind=1,ml=ml).mt_binarize(u=-128,v=-128)
  54.     bmask=Mmask(src,bvec,kind=1,ml=ml).mt_binarize(u=-128,v=-128)
  55.  
  56.     eo0_to =fmask.selectevery(2,1)
  57.     oe_from=bmask.selectevery(2,1)
  58.     front  =mt_logic(eo0_to,oe_from,mode="and")
  59.  
  60.     oe_to  =fmask.selectevery(2,2)
  61.     eo_from=bmask.selectevery(2,2)
  62.     back   =mt_logic(oe_to,eo_from,mode="and")
  63.  
  64.     ee_src=src.selecteven
  65.     ee_super=MSuper(ee_src, pel=1)
  66.     ee_fvec =MAnalyse(ee_super, isb=false, blksize=4)
  67.     ee_bvec =MAnalyse(ee_super, isb=true , blksize=4)
  68.     ee_fmask=Mmask(ee_src,ee_fvec,kind=1,ml=ml).mt_binarize(u=-128,v=-128)
  69.     ee_bmask=Mmask(ee_src,ee_bvec,kind=1,ml=ml).mt_binarize(u=-128,v=-128)
  70.  
  71.     ee_to  =ee_fmask.trim(1,0)
  72.     ee_from=ee_bmask
  73.     ee     =mt_logic(ee_to,ee_from,mode="or")
  74.  
  75.     oo_src=src.selectodd
  76.     oo_super=MSuper(oo_src, pel=1)
  77.     oo_fvec =MAnalyse(oo_super, isb=false, blksize=4)
  78.     oo_bvec =MAnalyse(oo_super, isb=true , blksize=4)
  79.     oo_fmask=Mmask(oo_src,oo_fvec,kind=1,ml=ml).mt_binarize(u=-128,v=-128)
  80.     oo_bmask=Mmask(oo_src,oo_bvec,kind=1,ml=ml).mt_binarize(u=-128,v=-128)
  81.  
  82.     oo_to  =oo_fmask.trim(1,0)
  83.     oo_from=oo_bmask
  84.     oo     =mt_logic(oo_to,oo_from,mode="or")
  85.  
  86.     #to e0-o1, from o1-e2, nothing e0-e2
  87.     even_blink=mt_logic(front,ee.mt_invert,mode="and")
  88.  
  89.     #to o1-e2, from e2-o3, nothing o1-o3
  90.     odd_blink =mt_logic(back,oo.mt_invert,mode="and")
  91.  
  92.     interleave(even_blink, odd_blink).selectevery(1,-1)
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement