Guest User

Untitled

a guest
Dec 11th, 2022
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. import vapoursynth as vs
  2. from fvsfunc import Depth, Despline36M
  3. from lvsfunc import mask as lvfmask
  4. from keyframes import generate_qpfile_double as qpfile
  5. from nnedi3_rpow2 import nnedi3_rpow2
  6. from vsutil import get_y
  7. from mvsfunc import BM3D
  8. from muvsfunc import MergeChroma
  9. from keyframes import generate_qpfile_double as qp
  10. from project_module import flt
  11. from vardefunc import noise
  12. from vsdehalo import fine_dehalo, edge_cleaner
  13. core = vs.core
  14. core.max_cache_size = 14000
  15.  
  16. #source
  17. src = core.lsmas.LWLibavSource(r"G:\Encode\.vscode\Scripts\[BD-DVD]\Sword Art Online\src\01.m2ts")
  18. videod = src
  19. videod = Depth(videod, 16)
  20. videod = videod.edgefixer.Continuity(left=2, top=2, right=2, bottom=2)
  21.  
  22. #Dehalo
  23. dehalo = fine_dehalo(videod, rx=1.8, darkstr=0)
  24. videod = edge_cleaner(dehalo, 5.75, hot=True, smode=True)
  25.  
  26. #Descale
  27. descale = Despline36M(videod, 1280, 720)
  28. video = nnedi3_rpow2(descale, nns=4, qual=2, pscrn=1).resize.Spline64(1920, 1080)
  29.  
  30. #Denoise
  31. d_mask = lvfmask.detail_mask(videod, sigma=4, rad=2, brz_a=0.026, brz_b=0.0023)
  32. luma = get_y(video)
  33. denoise_Y_a = BM3D(luma, radius1=1, profile1='fast', sigma=[2.5,0,0])
  34. denoise_Y_b = BM3D(luma, radius1=1, profile1='fast', sigma=[3.5,0,0])
  35. denoise_a = MergeChroma(denoise_Y_a, video)
  36. denoise_b = MergeChroma(denoise_Y_b, video)
  37. denoised = core.std.MaskedMerge(denoise_b, denoise_a, d_mask)
  38.  
  39. #Deband
  40. debanded = core.average.Mean([
  41. flt.masked_f3kdb(denoised, rad=17, thr=[20, 24], grain=[24, 12]),
  42. flt.masked_f3kdb(denoised, rad=21, thr=[32, 24], grain=[24, 12]),
  43. flt.masked_placebo(denoised, rad=6, thr=2.8, itr=2, grain=6)
  44. ])
  45.  
  46. #Resize
  47. resize = core.resize.Spline36(debanded, 1280, 720).std.Merge(descale, [0,1])
  48. clipmax = core.std.Maximum(descale)
  49. clipmin = core.std.Minimum(descale)
  50. f_mask = core.std.Expr([clipmax, clipmin], 'x y -').std.Binarize(2900).resize.Spline16(format=vs.GRAY16)
  51.  
  52. #Grain
  53. detail = core.std.MaskedMerge(resize, descale, f_mask)
  54. grain = noise.Graigasm(
  55. thrs=[x << 8 for x in (32, 80, 128, 176)],
  56. strengths=[(0.25, 0.0), (0.20, 0.0), (0.15, 0.0), (0.0, 0.0)],
  57. sizes=(1.25, 1.20, 1.15, 1),
  58. sharps=(80, 70, 60, 50),
  59. grainers=[
  60. noise.AddGrain(seed=69420, constant=False),
  61. noise.AddGrain(seed=69420, constant=False),
  62. noise.AddGrain(seed=69420, constant=True)
  63. ]).graining(detail)
  64.  
  65. #Final
  66. out = grain
  67. final = Depth(out, 16)
  68. final.set_output()
  69.  
  70. qp(src, out_path=r"G:\Encode\keyframes\sao1-01.txt", autismo=4)
Advertisement
Add Comment
Please, Sign In to add comment