Advertisement
mawen1250

NRDB test with dfttest+SMDegrain

Jun 28th, 2012
671
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. XXXSource("xxx.xxx")
  2.  
  3. src     = last
  4. src16   = src.U16
  5. emask   = src.tcanny(sigma=1.2, mode=1, plane=1)
  6. dbmask  = emask.mt_lut("x 2 > x 2 - 6 << 0 ?", Y=3, U=1, V=1).mt_inflate(Y=3, U=1, V=1)
  7.  
  8. #Prefilter with dfttest
  9. prenr16 = src16.dfttest(lsb_in=true, lsb=true, Y=true, U=false, V=false, sigma=4.0, sigma2=4.0, sbsize=8, sosize=6, tbsize=3, threads=2)
  10.  
  11. prenr8  = prenr16.DitherPost(mode=8, Y=3, U=1, V=1)
  12.  
  13. #Main Denoise with SMDegrain
  14. nr16    = src.SMDegrain(lsb_in=false,lsb=true,lsb_out=true,tr=3,Contrasharp=false,RefineMotion=true,plane=0,prefilter=prenr8,
  15. \thSAD=300,thSADC=150,blksize=16,thSCD1=200,thSCD2=100,Truemotion=false,Chroma=false,limit=4,limitC=1)
  16.  
  17. #Limiting Denoise to minimum change of prenr16&nr16
  18. nrdiff1      = makediff16(prenr16, src16, Y=3, U=1, V=1)
  19. nrdiff2      = makediff16(nr16, src16, Y=3, U=1, V=1)
  20. abnrdiff1    = Dither_lut16(nrdiff1, "x 32768 - abs", Y=3, U=1, V=1)
  21. abnrdiff2    = Dither_lut16(nrdiff2, "x 32768 - abs", Y=3, U=1, V=1)
  22. abnrdiffdiff = makediff16(abnrdiff1, abnrdiff2, Y=3, U=1, V=1)
  23. nrbin        = Dither_lut16(abnrdiffdiff, "x 32768 < 0 65535 ?", Y=3, U=1, V=1)
  24. lnr16        = Dither_merge16(prenr16, nr16, nrbin, luma=false, Y=3, U=4, V=4)
  25.  
  26. #NRDB
  27. noise      = makediff16(src16, lnr16, Y=3, U=1, V=1)
  28. diff0      = noise.Dither_lut16(Y=-32768,U=-32768,V=-32768)
  29. lumamask   = src.mt_lut("x 127 > 0 x 64 > 512 x 2 << - 255 ? ?",U=1,V=1).RemoveGrain(19, -1)
  30. noisereduc = Dither_merge16_8(diff0, noise, lumamask, luma=false)
  31.  
  32. db1        = lnr16.f3kdb(range=14, Y=44, Cb=36, Cr=36, grainY=0, grainC=0, dither_algo=3, dynamic_grain=true, keep_tv_range=false, input_mode=1, output_mode=1, output_depth=16)
  33.  
  34. db         = Dither_add16(db1, noisereduc, Y=3, U=2, V=2, dif=true)
  35.  
  36. #Merge with edge mask
  37. Dither_merge16_8(db, src16, dbmask, luma=true)
  38. Down10(tvRange=true, stack=false)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement