Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function deblink4(clip clp, float "ratio", int "level") {
- ratio = default(ratio, 2.0 /3)
- assert(ratio >= 0.0 && 1.0 >= ratio,
- \ "[deblink4] 1.0 >= ratio >= 0.0, it was " + string(ratio))
- level = default(level, round(ratio * 257))
- assert(level >= 0 && 257 >= level,
- \ "[deblink4] 257 >= level >= 0, it was " + string(level))
- blink=clp.ng_blinkmask_new
- m01=mt_logic(blink.selectevery(4,0),
- \ blink.selectevery(4,1),
- \ mode="or").converttorgb32
- m01=mt_logic(blink.selectevery(4,2),
- \ blink.selectevery(4,3),
- \ mode="or").converttorgb32
- f0=layer(clp.selectevery(4,0),
- \ clp.selectevery(4,1).mask(m01),
- \ level=level)
- f1=layer(clp.selectevery(4,1),
- \ clp.selectevery(4,0).mask(m01),
- \ level=level)
- f2=layer(clp.selectevery(4,2),
- \ clp.selectevery(4,3).mask(m23),
- \ level=(257-level) )
- f3=layer(clp.selectevery(4,3),
- \ clp.selectevery(4,2).mask(m23),
- \ level=(257-level) )
- interleave(f0,f1,f2,f3)
- }
- function deblink3(clip clp){
- blink=clp.ng_blinkmask_new
- m01=mt_logic(blink.selectevery(4,0),
- \ blink.selectevery(4,1),
- \ mode="or").converttorgb32
- f0=layer(clp.selectevery(4,0),
- \ clp.selectevery(4,1).mask(m01))
- f1=layer(clp.selectevery(4,1),
- \ clp.selectevery(4,0).mask(m01))
- interleave(f0,f1,
- \ clp.selectevery(4,2),clp.selectevery(4,3))
- }
- function ng_blinkmask_new(clip c,int "ml"){
- ml=default(ml,128)
- src=c.ConvertToYv12
- super=MSuper(src, pel=1)
- fvec =MAnalyse(super, isb=false, blksize=4)
- bvec =MAnalyse(super, isb=true , blksize=4)
- fmask=Mmask(src,fvec,kind=1,ml=ml).mt_binarize(u=-128,v=-128)
- bmask=Mmask(src,bvec,kind=1,ml=ml).mt_binarize(u=-128,v=-128)
- eo0_to =fmask.selectevery(2,1)
- oe_from=bmask.selectevery(2,1)
- front =mt_logic(eo0_to,oe_from,mode="and")
- oe_to =fmask.selectevery(2,2)
- eo_from=bmask.selectevery(2,2)
- back =mt_logic(oe_to,eo_from,mode="and")
- ee_src=src.selecteven
- ee_super=MSuper(ee_src, pel=1)
- ee_fvec =MAnalyse(ee_super, isb=false, blksize=4)
- ee_bvec =MAnalyse(ee_super, isb=true , blksize=4)
- ee_fmask=Mmask(ee_src,ee_fvec,kind=1,ml=ml).mt_binarize(u=-128,v=-128)
- ee_bmask=Mmask(ee_src,ee_bvec,kind=1,ml=ml).mt_binarize(u=-128,v=-128)
- ee_to =ee_fmask.trim(1,0)
- ee_from=ee_bmask
- ee =mt_logic(ee_to,ee_from,mode="or")
- oo_src=src.selectodd
- oo_super=MSuper(oo_src, pel=1)
- oo_fvec =MAnalyse(oo_super, isb=false, blksize=4)
- oo_bvec =MAnalyse(oo_super, isb=true , blksize=4)
- oo_fmask=Mmask(oo_src,oo_fvec,kind=1,ml=ml).mt_binarize(u=-128,v=-128)
- oo_bmask=Mmask(oo_src,oo_bvec,kind=1,ml=ml).mt_binarize(u=-128,v=-128)
- oo_to =oo_fmask.trim(1,0)
- oo_from=oo_bmask
- oo =mt_logic(oo_to,oo_from,mode="or")
- #to e0-o1, from o1-e2, nothing e0-e2
- even_blink=mt_logic(front,ee.mt_invert,mode="and")
- #to o1-e2, from e2-o3, nothing o1-o3
- odd_blink =mt_logic(back,oo.mt_invert,mode="and")
- interleave(even_blink, odd_blink).selectevery(1,-1)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement