Thanks svp-team update
2016.3.3 *Changed some setting to speed up
Plugins, Script, reg setting download link:
https://mega.nz/#F!EVg1VDoR!tOVzSq1IptehyoKAbUvpeQ

ffdshow 64bit with SVPflow Avisynth+ r1779 MT

# Check http://www.svp-team.com/wiki/Plugins:_SVPflow for more setting details.
# Check http://www.svp-team.com/wiki/SVP:Profile for more setting details.

SetMemoryMax(6000)

threads=12 #PC threads*1.5/2

LoadPlugin("C:\Program Files\MPC-BE x64\Plugins64\svpflow1.dll")
LoadPlugin("C:\Program Files\MPC-BE x64\Plugins64\svpflow2.dll")

SetFilterMTMode("DEFAULT_MT_MODE",2)
SetFilterMTMode("ffdShow_source",3)
SetFilterMTMode("SVSuper",1)
SetFilterMTMode("SVAnalyse",1)
SetFilterMTMode("SVSmoothFps",1)
ffdShow_source()

src8            = last
video_Rate      = src8.Framerate
video_RateNum   = src8.FrameRateNumerator
video_RateDen   = src8.FrameRateDenominator
video_width     = width(src8)
video_height    = height(src8)

GPU                         = "1"                    # GPU usage mode: 0 - none, 1 - for frame rendering.
Scale_up                    = "2"                    # 2 by default SVPflow / 0 by default SVP Manager , Subpixel interpolation method for pel=2,4. 0 for soft interpolation (bilinear),1 for bicubic interpolation (4 tap Catmull-Rom),2 for sharper Wiener interpolation (6 tap, similar to Lanczos).
Scale_down                  = "4"                    # 4 by default , Hierarchical levels smoothing and reducing (halving) filter. 0 is simple 4 pixels averaging like unfiltered SimpleResize (old method),1 is triangle (shifted) filter like ReduceBy2 for more smoothing (decrease aliasing),2 is triangle filter like BilinearResize for even more smoothing,3 is quadratic filter for even more smoothing,4 is cubic filter like BicubicResize(b=1,c=0) for even more smoothing.
Your_screnn_refresh_rate    = "60"                   # or your target frame rate
Frames_interpolation_mode   = "0"                    # 3 by default , Uniform:0 1m:1 2m:2 adaptive:3 *1.5m = adaptive:3 + Limits_M1:0 + Limits_M2:0
SVP_shader                  = "13"                   # 13 by default , 1/2/11/13/21/23
Decrease_grid_step          = "250"                  # 200 by default , By two with global refinement {thsad:250}\{thsad:4000}\{thsad:65000},{thsad:65000}\{thsad:65000} To small step 6-8 px
Target_frame_rate           =  0                     # 0 = To screen refresh rate , 1 = original video frame rate , 2 = original video frame rate x2 , 3 = original video frame rate x3
Blend_adjacent_frames       = "false"                # false by default , Blend frames at scene change like ConvertFps if true, or repeat last frame like ChangeFps if false.
Motion_vectors_precision    = "1"                    # 2 by default , 1 means a precision to the pixel, 2 means a precision to half a pixel, 4 - to quarter pixel 
Motion_vectors_grid         = "w:32,h:32,overlap:2"  # w:16,h:16,overlap:2 = 16 - 16/4 = 12) by default , overlap:1 - 1/8 , 2 - 1/4  , 3 - 1/2 , Blocks can overlap each other by a quarter or a half unit. Overlapping increases requirements for CPU, but always increases quality.
Artifacts_masking           = "0"                    # 0 by default , Masking "bad" areas of the frame (i.e. areas in which the motion is determined with large errors, and where will be more visible artifacts) parts of the original frame. 
Define_bad_vectors          = "2000"                 # 1000 by default SVPflow / 2000 by default SVP Manager , Value is scaled to block size 8x8
Main_SATD                   = "false"                # false by default
Coarse_SATD                 = "true"                 # true by default , Use SATD function instead of SAD on every coarse level, improves motion vector estimation at luma flicker and fades.
Refine_SATD                 = "false"                # false by default
Coarse_trymany              = "false"                # false by default , Try to start searches around many predictors.
Coarse_width                =  video_width           # 1050 by default , Maximum width of a level to be processed with 'coarse' parameters. Can be useful to save CPU power when processing extra large frames (like UHD (4K)).
Limits_M1                   = "1600"                 # 1600 by default , Limit for changing uniform mode to "1m".
Limits_M2                   = "2800"                 # 2800 by default , Limit for changing "1m" mode to "2m".
Limits_scene                = "4000"                 # 4000 by default , Limit for scene change detection.
Limits_zero                 = "200"                  # 200 by default , Vectors with "adjusted SAD" less than this value are excluded from consideration.
Limits_blocks               = "20"                   # 20 by default , Threshold which sets how many blocks in percents have to change.

#Advanced setting
Advanced_setting            = "false"                # Need hight performance CPU and GPU , just for test
Main_search_radius          = "-4"                   # -2*pel by default
Coarse_search_radius        = "-15"                  # -10 by default
Bad_Wide_search             = "-24"                  # -24 by default
Refine_Wide_search          = "2"                    # Same as super.pel value by default. Same as Motion_vectors_precision value by default


super_params     = "{pel:"+Motion_vectors_precision+",scale:{up:"+Scale_up+",down:"+Scale_down+"},gpu:"+GPU+",rc:true}"
analyse_params   = Advanced_setting == "true" ? "{block:{"+Motion_vectors_grid+"},main:{search:{distance:"+Main_search_radius+",satd:"+Main_SATD+",coarse:{width:"+String(Coarse_width)+",distance:"+Coarse_search_radius+",satd:"+Coarse_SATD+",trymany:"+Coarse_trymany+",bad:{sad:"+Define_bad_vectors+",range:"+Bad_Wide_search+"}}}},refine:[{thsad:"+Decrease_grid_step+",search:{satd:"+Refine_SATD+",distance:"+Refine_Wide_search+"}}]}"
\                                             : "{block:{"+Motion_vectors_grid+"},main:{search:{satd:"+Main_SATD+",coarse:{width:"+String(Coarse_width)+",distance:-10,satd:"+Coarse_SATD+",trymany:"+Coarse_trymany+",bad:{sad:"+Define_bad_vectors+"}}}},refine:[{thsad:"+Decrease_grid_step+",search:{satd:"+Refine_SATD+"}}]}"

smoothfps_params = Target_frame_rate > 0       ? 
\                  "{rate:{num:"+String(Target_frame_rate)+",den:1,abs:false},algo:"+SVP_shader+",scene:{mode:"+Frames_interpolation_mode+",mask:{area:"+Artifacts_masking+"},blend:"+Blend_adjacent_frames+",limits:{m1:"+Limits_M1+",m2:"+Limits_M2+",scene:"+Limits_scene+",zero:"+Limits_zero+",blocks:"+Limits_blocks+"}}}"
\                : video_RateDen == 1          ? 
\                  "{rate:{num:"+Your_screnn_refresh_rate+",den:1,abs:true},algo:"+SVP_shader+",scene:{mode:"+Frames_interpolation_mode+",mask:{area:"+Artifacts_masking+"},blend:"+Blend_adjacent_frames+",limits:{m1:"+Limits_M1+",m2:"+Limits_M2+",scene:"+Limits_scene+",zero:"+Limits_zero+",blocks:"+Limits_blocks+"}}}"
\                : "{rate:{num:"+Your_screnn_refresh_rate+"000,den:1001,abs:true},algo:"+SVP_shader+",scene:{mode:"+Frames_interpolation_mode+",mask:{area:"+Artifacts_masking+"},blend:"+Blend_adjacent_frames+",limits:{m1:"+Limits_M1+",m2:"+Limits_M2+",scene:"+Limits_scene+",zero:"+Limits_zero+",blocks:"+Limits_blocks+"}}}"


super      = SVSuper(src8, super_params)
vectors    = SVAnalyse(super, analyse_params, src=src8)
interframe = SVSmoothFps(src8, super, vectors, smoothfps_params, mt=threads, url="www.svp-team.com")

interframe

Prefetch(threads)

ffdshow 32bit with SVPflow Avisynth+ r1779 MT

# Check http://www.svp-team.com/wiki/Plugins:_SVPflow for more setting details.
# Check http://www.svp-team.com/wiki/SVP:Profile for more setting details.

SetMemoryMax(2000)

threads=12 #PC threads*1.5/2

LoadPlugin("C:\Program Files (x86)\MPC-BE\Plugins32\svpflow1.dll")
LoadPlugin("C:\Program Files (x86)\MPC-BE\Plugins32\svpflow2.dll")

SetFilterMTMode("DEFAULT_MT_MODE",2)
SetFilterMTMode("ffdShow_source",3)
SetFilterMTMode("SVSuper",1)
SetFilterMTMode("SVAnalyse",1)
SetFilterMTMode("SVSmoothFps",1)
ffdShow_source()

src8            = last
video_Rate      = src8.Framerate
video_RateNum   = src8.FrameRateNumerator
video_RateDen   = src8.FrameRateDenominator
video_width     = width(src8)
video_height    = height(src8)

GPU                         = "1"                    # GPU usage mode: 0 - none, 1 - for frame rendering.
Scale_up                    = "2"                    # 2 by default SVPflow / 0 by default SVP Manager , Subpixel interpolation method for pel=2,4. 0 for soft interpolation (bilinear),1 for bicubic interpolation (4 tap Catmull-Rom),2 for sharper Wiener interpolation (6 tap, similar to Lanczos).
Scale_down                  = "4"                    # 4 by default , Hierarchical levels smoothing and reducing (halving) filter. 0 is simple 4 pixels averaging like unfiltered SimpleResize (old method),1 is triangle (shifted) filter like ReduceBy2 for more smoothing (decrease aliasing),2 is triangle filter like BilinearResize for even more smoothing,3 is quadratic filter for even more smoothing,4 is cubic filter like BicubicResize(b=1,c=0) for even more smoothing.
Your_screnn_refresh_rate    = "60"                   # or your target frame rate
Frames_interpolation_mode   = "0"                    # 3 by default , Uniform:0 1m:1 2m:2 adaptive:3 *1.5m = adaptive:3 + Limits_M1:0 + Limits_M2:0
SVP_shader                  = "13"                   # 13 by default , 1/2/11/13/21/23
Decrease_grid_step          = "250"                  # 200 by default , By two with global refinement {thsad:250}\{thsad:4000}\{thsad:65000},{thsad:65000}\{thsad:65000} To small step 6-8 px
Target_frame_rate           =  0                     # 0 = To screen refresh rate , 1 = original video frame rate , 2 = original video frame rate x2 , 3 = original video frame rate x3
Blend_adjacent_frames       = "false"                # false by default , Blend frames at scene change like ConvertFps if true, or repeat last frame like ChangeFps if false.
Motion_vectors_precision    = "1"                    # 2 by default , 1 means a precision to the pixel, 2 means a precision to half a pixel, 4 - to quarter pixel 
Motion_vectors_grid         = "w:32,h:32,overlap:2"  # w:16,h:16,overlap:2 = 16 - 16/4 = 12) by default , overlap:1 - 1/8 , 2 - 1/4  , 3 - 1/2 , Blocks can overlap each other by a quarter or a half unit. Overlapping increases requirements for CPU, but always increases quality.
Artifacts_masking           = "0"                    # 0 by default , Masking "bad" areas of the frame (i.e. areas in which the motion is determined with large errors, and where will be more visible artifacts) parts of the original frame. 
Define_bad_vectors          = "2000"                 # 1000 by default SVPflow / 2000 by default SVP Manager , Value is scaled to block size 8x8
Main_SATD                   = "false"                # false by default
Coarse_SATD                 = "true"                 # true by default , Use SATD function instead of SAD on every coarse level, improves motion vector estimation at luma flicker and fades.
Refine_SATD                 = "false"                # false by default
Coarse_trymany              = "false"                # false by default , Try to start searches around many predictors.
Coarse_width                =  video_width           # 1050 by default , Maximum width of a level to be processed with 'coarse' parameters. Can be useful to save CPU power when processing extra large frames (like UHD (4K)).
Limits_M1                   = "1600"                 # 1600 by default , Limit for changing uniform mode to "1m".
Limits_M2                   = "2800"                 # 2800 by default , Limit for changing "1m" mode to "2m".
Limits_scene                = "4000"                 # 4000 by default , Limit for scene change detection.
Limits_zero                 = "200"                  # 200 by default , Vectors with "adjusted SAD" less than this value are excluded from consideration.
Limits_blocks               = "20"                   # 20 by default , Threshold which sets how many blocks in percents have to change.

#Advanced setting
Advanced_setting            = "false"                # Need hight performance CPU and GPU , just for test
Main_search_radius          = "-4"                   # -2*pel by default
Coarse_search_radius        = "-15"                  # -10 by default
Bad_Wide_search             = "-24"                  # -24 by default
Refine_Wide_search          = "2"                    # Same as super.pel value by default. Same as Motion_vectors_precision value by default


super_params     = "{pel:"+Motion_vectors_precision+",scale:{up:"+Scale_up+",down:"+Scale_down+"},gpu:"+GPU+",rc:true}"
analyse_params   = Advanced_setting == "true" ? "{block:{"+Motion_vectors_grid+"},main:{search:{distance:"+Main_search_radius+",satd:"+Main_SATD+",coarse:{width:"+String(Coarse_width)+",distance:"+Coarse_search_radius+",satd:"+Coarse_SATD+",trymany:"+Coarse_trymany+",bad:{sad:"+Define_bad_vectors+",range:"+Bad_Wide_search+"}}}},refine:[{thsad:"+Decrease_grid_step+",search:{satd:"+Refine_SATD+",distance:"+Refine_Wide_search+"}}]}"
\                                             : "{block:{"+Motion_vectors_grid+"},main:{search:{satd:"+Main_SATD+",coarse:{width:"+String(Coarse_width)+",distance:-10,satd:"+Coarse_SATD+",trymany:"+Coarse_trymany+",bad:{sad:"+Define_bad_vectors+"}}}},refine:[{thsad:"+Decrease_grid_step+",search:{satd:"+Refine_SATD+"}}]}"

smoothfps_params = Target_frame_rate > 0       ? 
\                  "{rate:{num:"+String(Target_frame_rate)+",den:1,abs:false},algo:"+SVP_shader+",scene:{mode:"+Frames_interpolation_mode+",mask:{area:"+Artifacts_masking+"},blend:"+Blend_adjacent_frames+",limits:{m1:"+Limits_M1+",m2:"+Limits_M2+",scene:"+Limits_scene+",zero:"+Limits_zero+",blocks:"+Limits_blocks+"}}}"
\                : video_RateDen == 1          ? 
\                  "{rate:{num:"+Your_screnn_refresh_rate+",den:1,abs:true},algo:"+SVP_shader+",scene:{mode:"+Frames_interpolation_mode+",mask:{area:"+Artifacts_masking+"},blend:"+Blend_adjacent_frames+",limits:{m1:"+Limits_M1+",m2:"+Limits_M2+",scene:"+Limits_scene+",zero:"+Limits_zero+",blocks:"+Limits_blocks+"}}}"
\                : "{rate:{num:"+Your_screnn_refresh_rate+"000,den:1001,abs:true},algo:"+SVP_shader+",scene:{mode:"+Frames_interpolation_mode+",mask:{area:"+Artifacts_masking+"},blend:"+Blend_adjacent_frames+",limits:{m1:"+Limits_M1+",m2:"+Limits_M2+",scene:"+Limits_scene+",zero:"+Limits_zero+",blocks:"+Limits_blocks+"}}}"


super      = SVSuper(src8, super_params)
vectors    = SVAnalyse(super, analyse_params, src=src8)
interframe = SVSmoothFps(src8, super, vectors, smoothfps_params, mt=threads, url="www.svp-team.com")

interframe

Prefetch(threads)

if have artifacts then switches to 1.5m else switches to uniform.
Any way can do it?

3

(29 replies, posted in Using SVP)

You can try this with out SVP Manager

Copy to ffdshow AviSynth

Plugins download link:
https://mega.co.nz/#F!EVg1VDoR!tOVzSq1IptehyoKAbUvpeQ


# Check http://www.svp-team.com/wiki/Plugins:_SVPflow for more setting details.
# Check http://www.svp-team.com/wiki/SVP:Profile for more setting details.

SetMemoryMax(6000)

threads=12 #PC threads*1.5/2

LoadPlugin("C:\Program Files\MPC-BE x64\plugins64\svpflow1.dll")
LoadPlugin("C:\Program Files\MPC-BE x64\plugins64\svpflow2.dll")

SetFilterMTMode("DEFAULT_MT_MODE",2)
SetFilterMTMode("ffdShow_source",3)
ffdShow_source()

video_fps = last.Framerate

Your_screnn_refresh_rate    = "60"            # or your target frame rate
Frames_interpolation_mode   = "0"             # Uniform:0 1m:1 2m:2 adaptive:3
SVP_shader                  = "13"            # 1/2/11/13/21/23
Decrease_grid_step          = "{thsad:250}"   # By two with global refinement {thsad:250}\{thsad:4000}\{thsad:65000},{thsad:65000}\{thsad:65000} To small step 6-8 px
Target_frame_rate           =  0              # 0 = To screen refresh rate , 1 = original video frame rate , 2 = original video frame rate x2 , 3 = original video frame rate x3
Blend_adjacent_frames       = "false"

super_params     = "{scale:{up:0},gpu:1,rc:true}"
analyse_params   = "{main:{search:{coarse:{distance:-10,bad:{sad:2000}}}},refine:["+Decrease_grid_step+"]}"

smoothfps_params = Target_frame_rate > 0                                                          ? 
\                  "{rate:{num:"+String(Target_frame_rate)+",den:1,abs:false},algo:"+SVP_shader+",scene:{mode:"+Frames_interpolation_mode+",blend:"+Blend_adjacent_frames+"}}"
\                : video_fps == 24000/1001 || video_fps == 48000/1001 || video_fps == 30000/1001  ? 
\                  "{rate:{num:"+Your_screnn_refresh_rate+"000,den:1001,abs:true},algo:"+SVP_shader+",scene:{mode:"+Frames_interpolation_mode+",blend:"+Blend_adjacent_frames+"}}"
\                : "{rate:{num:"+Your_screnn_refresh_rate+",den:1,abs:true},algo:"+SVP_shader+",scene:{mode:"+Frames_interpolation_mode+",blend:"+Blend_adjacent_frames+"}}"

input = last

super=SVSuper(input, super_params)
vectors=SVAnalyse(super, analyse_params, src=input)
SVSmoothFps(input, super, vectors, smoothfps_params, mt=threads, url="www.svp-team.com")

Prefetch(threads)

Also 4K downscaling to FHD *FIX

# Check http://www.svp-team.com/wiki/Plugins:_SVPflow for more setting details.

SetMemoryMax(8000)

threads=12 #PC threads*1.5/2

LoadPlugin("C:\Program Files\MPC-BE x64\plugins64\svpflow1.dll")
LoadPlugin("C:\Program Files\MPC-BE x64\plugins64\svpflow2.dll")
LoadPlugin("C:\Program Files\MPC-BE x64\plugins64\dither.dll")
Import("C:\Program Files\MPC-BE x64\plugins64\dither.avsi")
Import("C:\Program Files\MPC-BE x64\plugins64\mt_xxpand_multi.avsi")
LoadPlugin("C:\Program Files\MPC-BE x64\plugins64\RgTools.dll")
Import("C:\Program Files\MPC-BE x64\plugins64\Resize8_v1.2.avsi")


SetFilterMTMode("DEFAULT_MT_MODE",2)
SetFilterMTMode("ffdShow_source",3)
SetFilterMTMode("Dither_y_gamma_to_linear",1)
SetFilterMTMode("Dither_y_linear_to_gamma",1)
SetFilterMTMode("Dither_resize16",1)
SetFilterMTMode("Dither_convert_8_to_16()",1)
SetFilterMTMode("DitherPost",1)
ffdShow_source()

video_fps = last.Framerate

Your_screnn_refresh_rate    = "60"            # or your target frame rate
Frames_interpolation_mode   = "0"             # Uniform:0 1m:1 2m:2 adaptive:3
SVP_shader                  = "13"            # 1/2/11/13/21/23
Decrease_grid_step          = "{thsad:250}"   # By two with global refinement {thsad:250}\{thsad:4000}\{thsad:65000},{thsad:65000}\{thsad:65000} To small step 6-8 px
Target_frame_rate           =  0              # 0 = To screen refresh rate , 1 = original video frame rate , 2 = original video frame rate x2 , 3 = original video frame rate x3
Blend_adjacent_frames       = "false"

# 4K Setting
Fast_Setting_4K       = "false"
Resize_to_FHD_4K      = "true"
Decrease_grid_step_4K = "{thsad:65000}" # By two with global refinement {thsad:250}\{thsad:4000}\{thsad:65000},{thsad:65000}\{thsad:65000} To small step 6-8 px

Is_16bitdw     = "false"
Is_16lineardw  = "false"

width  = width(last)
height = height(last)
Is_4K  = width > 2304 || height > 1296 ? "true" : "false"

input =  Resize_to_FHD_4K == "true" && Is_4K == "true" && Is_16lineardw == "true"  ?
\        Dither_convert_8_to_16().Dither_y_gamma_to_linear(tv_range_in=true,tv_range_out=true,curve="709").Dither_resize16(1920,1080,kernel="spline36").Dither_y_linear_to_gamma(tv_range_in=true,tv_range_out=true,curve="709").DitherPost(mode=6) :
\        Resize_to_FHD_4K == "true" && Is_4K == "true" && Is_16bitdw  == "true"    ?
\        Dither_convert_8_to_16().Dither_resize16(1920,1080,kernel="spline36").DitherPost(mode=6) :
\        Resize_to_FHD_4K == "true" && Is_4K == "true"                          ?
\        Resize8(1920,1080) : last

super_params     = Fast_Setting_4K == "true" ? "{pel:1,scale:{up:0},gpu:1,full:false,rc:true}"
\                                            : "{scale:{up:0},gpu:1,rc:true}"
analyse_params   = Fast_Setting_4K == "true" ? "{block:{overlap:0},main:{search:{coarse:{distance:-10,bad:{sad:2000}},distance:0}}}"
\                : Is_4K == "true"           ? "{main:{search:{coarse:{distance:-10,bad:{sad:2000}}}},refine:["+Decrease_grid_step_4K+"]}"
\                : "{main:{search:{coarse:{distance:-10,bad:{sad:2000}}}},refine:["+Decrease_grid_step+"]}"

smoothfps_params = Target_frame_rate > 0                                                          ? 
\                  "{rate:{num:"+String(Target_frame_rate)+",den:1,abs:false},algo:"+SVP_shader+",scene:{mode:"+Frames_interpolation_mode+",blend:"+Blend_adjacent_frames+"}}"
\                : video_fps == 24000/1001 || video_fps == 48000/1001 || video_fps == 30000/1001  ? 
\                  "{rate:{num:"+Your_screnn_refresh_rate+"000,den:1001,abs:true},algo:"+SVP_shader+",scene:{mode:"+Frames_interpolation_mode+",blend:"+Blend_adjacent_frames+"}}"
\                : "{rate:{num:"+Your_screnn_refresh_rate+",den:1,abs:true},algo:"+SVP_shader+",scene:{mode:"+Frames_interpolation_mode+",blend:"+Blend_adjacent_frames+"}}"


super=SVSuper(input, super_params)
vectors=SVAnalyse(super, analyse_params, src=input)
SVSmoothFps(input, super, vectors, smoothfps_params, mt=threads, url="www.svp-team.com")

Prefetch(threads)

Anyone know?I don't has a AMD card to test@@

http://bluesky23.yukishigure.com/en/BlueskyFRC.html

Like XySubFilter,Also 10bit x264 is very popular now

6

(104 replies, posted in Using SVP)

Chainik wrote:

Mystery
Why are you considering it dead?

Cause I was talking to one of lead developers.
OK, let's say "suspended" if you're not comfortable with term "dead"  big_smile

https://github.com/AviSynth/AviSynthPlu … ntributors

Anyway, MT branch is buggy and isn't part of official AVS+ release.

it should be easy to port SVP to it

why you think we didn't tried? smile
in fact anyone with basic knowledge of JavaScript can "port" it, just edit a few lines in generate.js

replace

avs.WriteLine('SetMTMode(3,threads)');

with

avs.WriteLine('SetFilterMTMode("",2)');
avs.WriteLine('SetFilterMTMode("ffdShow_source",3)');

remove

avs.WriteLine('SetMTMode(2)');

replace

avs.WriteLine("distributor()");

with

avs.WriteLine("Prefetch("+threads+")");

Have one problem
Turn off on seek only can use Don't ture off and close the player will error

Why SVP cann't use AviSynthPlus?Can 10bit in/out put
http://avs-plus.net/