Advertisement
Guest User

Untitled

a guest
Jul 9th, 2022
508
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.49 KB | None | 0 0
  1. import vapoursynth as vs
  2. core = vs.core
  3. import lvsfunc as lvf
  4. import kagefunc as kgf
  5. import havsfunc as hvf
  6. import vardefunc as vdf
  7. import debandshit as dbs
  8. import EoEfunc as eoe
  9. from vsutil import get_y, get_w, split, join
  10. from adptvgrnMod import adptvgrnMod
  11. from jvsfunc import ccd
  12. #from ccd import ccd
  13. ###CPU management
  14. import psutil
  15. p_handle = psutil.Process()
  16. #p_handle.cpu_affinity([0, 2, 4, 6, 8, 10, 12, 14]) #p-cores no mt
  17. #p_handle.cpu_affinity([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) #p-cores mt
  18. #p_handle.cpu_affinity([0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 19]) #p+e cores no mt minus 1 e-core
  19. #p_handle.cpu_affinity([0, 2, 4, 6, 8, 10, 12, 14, 16, 17, 18, 19]) #p+e cores no mt
  20. p_handle.cpu_affinity([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]) #p+e cores mt
  21. core.num_threads = 20
  22. ###
  23.  
  24. ###Ranges
  25. skip_aa = [(0, 520), (133925, 139565)]
  26. ###
  27.  
  28. ###Source
  29. src = core.lsmas.LWLibavSource(r'E:\Entertainment\Anime\SAO-P\BD_VIDEO\BDMV\STREAM\00002.m2ts').std.SetFrameProp(prop='_Matrix', intval=1).std.SetFrameProp(prop='_Transfer', intval=1).std.SetFrameProp(prop='_ColorRange', intval=1).std.SetFrameProp(prop='_Primaries', intval=1)
  30. encode = core.lsmas.LWLibavSource(r'E:\Entertainment\Anime\SAO-P\BD_VIDEO\BDMV\STREAM\SAO-P.hevc')
  31. src32 = core.fmtc.bitdepth(src, bits=32)
  32. ###
  33.  
  34. ###Anti-Aliasing
  35. y, u, v, = split(src32)
  36. #Supersample AA
  37. nn3ss_v = core.nnedi3cl.NNEDI3CL(y, 1, dh=True, dw=False, nsize=5, nns=4, qual=2, pscrn=1)
  38. nn3ss_h = core.nnedi3cl.NNEDI3CL(nn3ss_v.std.Transpose(), 1, dh=True, dw=False, nsize=5, nns=4, qual=2, pscrn=1)
  39. nn3ssaa = core.std.Transpose(nn3ss_h).resize.Bicubic(src_top=-.5, src_left=-.5)
  40. ee3ss_v = core.eedi3m.EEDI3CL(y, 1, dh=True, alpha=0.6, beta=0.2, gamma=50, nrad=2, mdis=12, sclip=nn3ss_v).std.Transpose()
  41. ee3ss_h = core.eedi3m.EEDI3CL(ee3ss_v, 1, dh=True, alpha=0.6, beta=0.2, gamma=50, nrad=2, mdis=12, sclip=nn3ss_h).std.Transpose().resize.Bicubic(src_top=-.5, src_left=-.5)
  42. fsrcnnx = vdf.fsrcnnx_upscale(y, 3840, 2160, shader_file=r'C:\Users\User\AppData\Roaming\mpv.net\shaders\FSRCNNX_x2_56-16-4-1.glsl', downscaler=None, upscaled_smooth=nn3ssaa, profile='zastin')
  43. #Clamp AA
  44. aa_w = lvf.aa.clamp_aa(fsrcnnx, nn3ssaa, ee3ss_h, strength=1.3).resize.Bicubic(1920,1080).fmtc.bitdepth(bits=16)
  45. aa_m = lvf.aa.clamp_aa(fsrcnnx, nn3ssaa, ee3ss_h, strength=2.8).resize.Bicubic(1920,1080).fmtc.bitdepth(bits=16)
  46. #Mask AA
  47. aa_ret = kgf.retinex_edgemask(y.fmtc.bitdepth(bits=16), sigma=2)
  48. aa_w_mask = core.std.Inflate(aa_ret.rgvs.RemoveGrain(3).rgvs.RemoveGrain(3).rgvs.RemoveGrain(11)).std.Deflate()
  49. aa_m_mask = core.std.Binarize(aa_ret, 16000,0).rgvs.RemoveGrain(3).rgvs.RemoveGrain(3).rgvs.RemoveGrain(11)
  50. #Merge AA
  51. aa_w_merge = core.std.MaskedMerge(y.fmtc.bitdepth(bits=16), aa_w, aa_w_mask)
  52. aa_m_merge = core.std.MaskedMerge(aa_w_merge, aa_m, aa_m_mask)
  53. #Join AA
  54. aa = join([aa_m_merge.fmtc.bitdepth(bits=32), u, v])
  55. #Skip AA
  56. aa = lvf.rfs(aa, src32, ranges=skip_aa)
  57. ###
  58.  
  59. ###Denoising
  60. smdg = hvf.SMDegrain(aa.fmtc.bitdepth(bits=16), tr=2, thSAD=200, blksize=8, overlap=4, contrasharp=False, RefineMotion=True, chroma=False, pel=1, plane=0).fmtc.bitdepth(bits=32)
  61. bm3d = eoe.dn.BM3D(aa, sigma=[3.3], profile='np', radius=2, block_step=2, bm_range=12, ps_range=6, CUDA=True, ref=smdg, chroma=False, Fast=False)
  62. knlm = core.knlm.KNLMeansCL(bm3d, d=3, a=2, s=2, h=0.5, channels = 'UV', device_type='gpu')
  63. uvdn = core.std.Merge(knlm, ccd(knlm, threshold=2, matrix=1), weight=3/5).fmtc.bitdepth(bits=16)
  64. ###
  65.  
  66. ###Dehalo
  67. dehalo = hvf.FineDehalo(uvdn, rx=2, ry=2, thmi=85, thma=185, thlimi=8, thlima=80, brightstr=1.2, darkstr=0)
  68. ###
  69.  
  70. ###Debanding
  71. db_d3kdb = dbs.dumb3kdb(dehalo, 17, [30,30,30])
  72. db_d3kdb2 = dbs.dumb3kdb(dehalo, 5, [35,35,35])
  73. db_d3kdb3 = dbs.dumb3kdb(dehalo, 24, [40,40,40])
  74. db_mix = core.average.Mean([db_d3kdb, db_d3kdb2, db_d3kdb3])
  75. db_mask = lvf.mask.detail_mask_neo(dehalo, sigma=1.8, detail_brz=0.009, lines_brz=0.018).rgvs.RemoveGrain(11).std.Inflate().std.Inflate()
  76. db = core.std.MaskedMerge(db_mix, dehalo, db_mask)
  77. #Regrain
  78. grain = adptvgrnMod(db, strength=[0.24,0.08], size=1.2, luma_scaling=20, sharp=60, static=True, fade_edges=True, show_mask=False, seed=8888)
  79. ###
  80.  
  81. ###Outputs
  82. #yt, ut, vt = split(src32.fmtc.bitdepth(bits=32)) #for testing
  83. #yt2, ut2, vt2 = split(knlm.fmtc.bitdepth(bits=32)) #for testing
  84. #yt3, ut3, vt3 = split(uvdn.fmtc.bitdepth(bits=32)) #for testing
  85. #
  86. out = core.fmtc.bitdepth(grain, bits=10)#.std.Invert()
  87. #cut = out[21412:22009] #for testing
  88. #
  89. out.set_output()
  90. ###
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement