Quote:1) Are available GPU versions of AVS filter used in the attached script (at least for some of them) ?
Looking at your script:
Code:
LWLibavVideoSource("E:\VideoTest\Anime_Upscale\ToonResize\scooby_doo.e.i.mostri.del.cinema.2013.italian.dvdrip.mkv",cache=false,dr=true,format="YUV420P8", prefer_hw=0,repeat=true)
# current resolution: 720x544
# filtering
Deen1b1_Deen(mode="a3d")
FFT3DGPU(ow=16,oh=16,mode=1,precision=0)
Deblock(planes="yuv")
LSFmod(Smode=5,Smethod=3,Lmode=4,soft=-2,edgemaskHQ=true)
aWarpSharp()
FineDehalo()
SuperToon()
# scaling to 1280x968
Spline36Resize(1280,968)
# Converting from 8 to 10bit for encoder
ConvertBits(10)
# setting output fps to 25.000fps
AssumeFPS(25,1)
There are no GPU filters.
Deen was never ported to Vapoursynth, since KNLMeansCL and other filters do a better job.
FFT3DGPU is Avisynth only
There is no gpu version of Deblock, or aWarpSharp.
FineDehalo is a script which uses Masktools and Removegrain, both are cpu only.
Quote:2) It is possible to write an equivalent Vapoursynth script ?
Probably not, but one can probably do better. You just would have to look into it.
I would probably start with:
- MCDegrainSharp to remove the grain and sharpen it a bit,
- KNLMeansCL on Y only and distance 0 with a relatively high value to remove the main luma noise from flat areas.
- GLSL AdaptiveSharpen to sharpen the lines
so something like:
Code:
# removing grain using MCDegrain
clip = mcdegrainsharp.mcdegrainsharp(clip=clip, csharp=0.50)
# denoising using KNLMeansCL
clip = core.knlm.KNLMeansCL(clip=clip, d=0, h=5.00, channels="Y")
# adjusting color space from YUV420P8 to YUV444P16 for vsGLSLAdaptiveSharpen
clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P16, range_s="limited")
with open("i:/Hybrid/64bit/vsfilters/GLSL/parameterized/adaptive-sharpen.glsl") as glslf:
glsl = glslf.read()
glsl = glsl.replace('#define curve_height 1.0', '#define curve_height 1.5000')
glsl = glsl.replace('#define anime_mode false', '#define anime_mode true')
glsl = glsl.replace('#define overshoot_ctrl false', '#define overshoot_ctrl false')
glsl = glsl.replace('#define video_level_out false', '#define video_level_out true')
clip = core.placebo.Shader(clip=clip, shader_s=glsl, width=clip.width, height=clip.height)
If you like the line thinning of aWarpSharp, I would alternatively try 'Thin (GLSL-A4K)' and instead of SuperToon for the line darkening I would try 'Darken (GLSL-A4K), since GLSL filters are usually really fast.
Cu Selur