# DetailIllusion by mf # # Tries to create the illusion of detail by adding noise # near edges. # function DetailIllusion(clip input, int "strength", bool "reverse", int "level", \ bool "denoise") { strength = Default(strength, 255) # absolute strength, 0-255 reverse = Default(reverse, false) # noise on flat areas level = Default(level, 20) # noise level noisemask = input.EdgeMask(0, "sobel").Inflate().Inflate().Blur(1.0) .\ Levels(0, 1.0, 35, 0, 255).GreyScale().Blur(1.0).Blur(1.0).Blur(1.0).ConvertToRGB32() # noisemaskinverse = noisemask.Levels(0, 1.0, 255, 255, 0) inputyuy = input.ConvertToYUY2() noise = inputyuy.AddNoise(yv=level, uv=0, vv=0, detail_threshold=0).ConvertToYV12() #.Blur(0.4) #soft = input.BilinearResize(width, height) noisergb = noise.ConvertToRGB32() inputrgb = input.ConvertToRGB32() maskednoise = Mask(noisergb, reverse ? noisemaskinverse : noisemask) edgednoise = Layer(inputrgb, maskednoise, "add", strength) edgednoiseyv12 = noise.MergeLuma(edgednoise.ConvertToYV12()) return edgednoiseyv12 }