1 (edited by MistahBonzai 13-02-2016 02:21:10)

Topic: Avisynth error when using the latest 32-bit svpflow dlls

I think this is outside the scope of this forum but I know there are still a few 'script monkeys' out there wink

While attempting to use the SVP 4 dlls (SVPFlow1 3.0.2.0 1/12/2016 - SVPFlow2 3.0.6.0 1/12/2016) from the latest 'free' download (4.0.0.60) within an avisynth script an access violation is returned by svpflow2.dll while attempting to read from the avisynth script (see the attached screen clip for the exact error message. Note: the error is at line 43 and not line 44 as shown in the clip). MPC-HC plays the video without the script fully executing and MPC-HC crashes when closed. The application configuration is 32-bit MPC-HC-madVR-LAV-ffdshow (32-bit end-to-end). When using the same script/configuration with the earlier svpflow dlls (SVPFlow1 2.0.4.0 7/8/2015 - SVPFlow2 2.0.3.0 10/30/2015) run with out issue - no problems.

I can mix/match the appropriate components for 32 or 64-bit configurations (avisynth+ or avisynth MT 2.60) without problems. It's only when I introduce the new svpflow dll plugins that the MPC-HC crash occurs.

By no means am I suggesting that there is an issue with SVP 4. What I need is information on how to properly configure the Avisynth script (posted below) to support the new svpflow dll plugin files. TIA smile

# *******************************************************************************************************
# **Global SVP w/auto refreash rate (Good for AVS+ 32-bit - with smoothing (SVP script by yan04000985) **
# *******************************************************************************************************
# 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.
#
# Supporting 32-bit dll's
# AviSynth is AviSynth 2.6 (2.6.0.5)
# SVPflow plugins are SVPFlow1 3.0.2.0 1/12/2016 - SVPFlow2 3.0.6.0 1/12/2016
#
SetMemoryMax(2048)
global svp_scheduler=true
global threads=15
SetMTMode(3,threads)
global svp_cache_fwd=threads+2
#
LoadPlugin("C:\Program Files (x86)\SVP 4\plugins\svpflow1.dll")
LoadPlugin("C:\Program Files (x86)\SVP 4\plugins\svpflow2.dll")
#
ffdShow_source()
SetMTMode(2)
#
#Begin SVP script framework - credit to yan04000985
#
video_fps = last.Framerate
Your_screnn_refresh_rate    = "60"            # or your target frame rate
Frames_interpolation_mode   = "3"             # 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     = "{pel:2,scale:{up:2,down:4},gpu:1,rc:true}"
analyse_params   = "{block:{overlap:1,w:32,h:32},main:{search:{coarse:{distance:-8,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+",mask:{cover:70,area:70,area_sharp:1.65},scene:{mode:"+Frames_interpolation_mode+",blend:"+Blend_adjacent_frames+"}}"
\                : video_fps == 24000/1001 || video_fps == 25000/1001 || video_fps == 48000/1001 || video_fps == 30000/1001  ? 
\                  "{rate:{num:"+Your_screnn_refresh_rate+"000,den:1001,abs:true},algo:"+SVP_shader+",mask:{cover:70,area:70,area_sharp:1.65},scene:{mode:"+Frames_interpolation_mode+",blend:"+Blend_adjacent_frames+"}}"
\                : "{rate:{num:"+Your_screnn_refresh_rate+",den:1,abs:true},algo:"+SVP_shader+",mask:{cover:70,area:70,area_sharp:1.65},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) #LIne 43 - not surprisingly ;^} 
#
SetMTMode(1)
GetMTMode(false) > 0 ? distributor() : last
########### END OF MSMoothFps.avs ###########
#end
Post's attachments

Capture.GIF 13.15 kb, 226 downloads since 2016-02-12 

Re: Avisynth error when using the latest 32-bit svpflow dlls

if only you could narrow it down to the exact filters args that give a crash... big_smile

anyway there'll be a huge update to the core libs soon enough, maybe your issue is already fixed

3 (edited by Nintendo Maniac 64 13-02-2016 04:46:26)

Re: Avisynth error when using the latest 32-bit svpflow dlls

Chainik wrote:

anyway there'll be a huge update to the core libs soon enough, maybe your issue is already fixed

And just for reference, Chainik has previously stated that this huge update is coming in "days" rather than "months".

4 (edited by MistahBonzai 13-02-2016 02:45:05)

Re: Avisynth error when using the latest 32-bit svpflow dlls

Chainik wrote:

if only you could narrow it down to the exact filters args that give a crash...

I hear you but the best I can do now is that:

  • The error statement is: Avisynth: access violation at 0x0001BC2E in C:\Program Files (x86)SVP 4\plugins\svpflow2.dll, attempting to read from 0x00000000 (ffdshow_filter_avisynth_script, line 43

  • Line 43 where it all comes together - SVSmoothFps(input, super, vectors, smoothfps_params, mt=threads) #LIne 43 - not surprisingly ;^}

Keeping an eye out for the updates smile Thanks!

Re: Avisynth error when using the latest 32-bit svpflow dlls

Fixed Change: rc:true to rc:false in the following script line...

super_params     = "{pel:2,scale:{up:2,down:4},gpu:1,rc:true}"

Re: Avisynth error when using the latest 32-bit svpflow dlls

Right solution! Thanks for information!

Re: Avisynth error when using the latest 32-bit svpflow dlls

I can confirm that the following error

While attempting to use the SVP 4 dlls (SVPFlow1 3.0.2.0 1/12/2016 - SVPFlow2 3.0.6.0 1/12/2016) from the latest 'free' download (4.0.0.60) within an avisynth script an access violation is returned by svpflow2.dll while attempting to read from the avisynth script (see the attached screen clip for the exact error message.

is fixed in svpflow-4.0.0.128 under windows 7 64-bit. Tested in x32 and x64 configs w/AviSynth+0.1 (r1779)

super_params     = "{pel:2,scale:{up:2,down:4},gpu:1,rc:true}"

with rc:true and rc:false. Thanks guys (Chainik?) smile

Now if I could only get the GPU:1 switch to work with x64 when using a HD 7850 w/Crimson 16.1.1. Running w/o GPU enabled is kinda lame with high resolution files when the x86 config with gpu:1 blows right by it sad I could revert back to pre-crimson but I really like the virtual resolution capability with Crimson.

BTW: I find that the x64 configuration is 'more stable' in the madVR-MPC-HC-ffdshow-avisynth chain than x32 variation so I'm hoping AMD gets their act together..and soon!

Re: Avisynth error when using the latest 32-bit svpflow dlls

If you have a CPU with integrated graphics, you could possibly use that instead of your discrete GPU...

Re: Avisynth error when using the latest 32-bit svpflow dlls

Nintendo Maniac 64 wrote:

If you have a CPU with integrated graphics, you could possibly use that instead of your discrete GPU...

My i7 3770 has integrated HD4000 however the MoBo BIOS has no toggle for internal/external graphics - the only means to enable the hD4000 was to disable (remove) the AMD HD 8750. I looked into Lucid Virtu back when I got the rig 4 years back and after reading the reviews I couldn't see a reason it was worth it.

However after your reply I looked into BIOS updates again (as I have many times in the past when so inclined). You see the AMI 7.* default (and only) BIOS for the h9-1180 Phoenix doesn't allow for anything other than the standard HD configs, power and security settings. Neither does the AMI 8.1 custom modded BIOS I acquired along the way.

Then last night I cross referenced the Pegatron MoBo against other HP desktop configs and came up with an HP specific version of the AMI 8.1 BIOS for a newer model.  Ah..what the hell..go for it... And it worked - so now I can see both GPUs in the device manager at once smile

Question: Is there a way to use both at once? Say use the HD 7850 for the display and the HD4000 for graphics pre rendering? Or vise versa?

10 (edited by Nintendo Maniac 64 29-02-2016 03:14:30)

Re: Avisynth error when using the latest 32-bit svpflow dlls

I don't really know about your exact situation; all I know is that when you have the Intel GPU drivers installed then SVP can use the integrated Intel GPU while your discrete GPU can be used for things like MadVR.

Intel doesn't make their drivers super-easy to find like AMD does however, so here's a link for your convenience:
https://downloadcenter.intel.com/produc … Processors

Re: Avisynth error when using the latest 32-bit svpflow dlls

Nintendo Maniac 64 wrote:

I don't really know about your exact situation; all I know is that when you have the Intel GPU drivers installed then SVP can use the integrated Intel GPU while your discrete GPU can be used for things like MadVR.

Hey, thanks for the speedy reply! That's exactly what I want to know. Any idea where I might find a 'tutorial' or at least a place to get me going? I have the drivers installed and Intel QuickSync shows up now in the LAV Video Decoder as an available hardware decoder - I always select 'none' there 'cuz it seems like software does a better job (less issues). I have selected intel QuickSync and get no errors but it looks like the AMD HD 8750 is the only gpu (according to GPU-Z) with a load. QuickSync is there as well but no load when playing video. Once again a big THANK-U goes out to you smile

12 (edited by Nintendo Maniac 64 29-02-2016 06:20:33)

Re: Avisynth error when using the latest 32-bit svpflow dlls

I can vouch for QuickSync working better than DXVA2 copy-back on Intel GPUs (at least on those that lack HEVC and VP9 decode support like Haswell and Ivy Bridge).

Also, you do know that you can select which GPU to use in SVP, right?  It's in the same menu when you can disable GPU acceleration.

Re: Avisynth error when using the latest 32-bit svpflow dlls

Nintendo Maniac 64 wrote:

Also, you do know that you can select which GPU to use in SVP, right?  It's in the same menu when you can disable GPU acceleration.

That's my problem - the Intel HD4000 doesn't appear in the SVP 4 > Application Settings > GPU Acceleration menu. The AMD HD 7850 is the only choice. It's like I somehow need to 'turn on' the HD4000. It shows as 'working properly' in the Device Manager. I'm not sure how to go about configuring it... Keep in mind that although I'm an old hand with PC building and repair I've yet to configure a rig with integrated and discrete GPUs. Thanks for all your help - I needed it smile

Re: Avisynth error when using the latest 32-bit svpflow dlls

Oh, that.  The usual solution is to use DDU to uninstall any and all Intel, AMD, and Nvidia drivers and then re-install your GPU drivers.

The only thing is, I never know whether to install the integrated GPU drivers first or the discrete GPU drivers first...

Re: Avisynth error when using the latest 32-bit svpflow dlls

Nintendo Maniac 64 wrote:

The only thing is, I never know whether to install the integrated GPU drivers first or the discrete GPU drivers first...

Integrated 1st, make it primary then discrete GPU. Intel published a paper Hybrid Multi-Monitor Support: Intel® Embedded Platforms which can be found here: http://www.intel.com/content/www/us/en/ … paper.html

I'm beginning to think that this experiment might *not* be worth it considering the limitations it imposes upon my single monitor configuration. So far my tests are based on using 2 inputs and switching back and forth as GPUs are assigned to 'displays' (inputs). What i'm seeing is that in order to use the integrated GPU I need to launch the application from that input. Note: Drag and drop results in 'blue screens' - something I haven't seen in a long time.

Nonetheless I'm gonna try the 'official' installation procedure for the GPUs just so I know how it works in the real world smile

Re: Avisynth error when using the latest 32-bit svpflow dlls

After many hours performing countless GPU configuration tests (integrated intel HD4000 and discrete AMD HD 7850) I have come to accept that under windows 7/Direct X 11 the integrated & discrete GPU resources can't be shared but only assigned to specific displays. This means in my configuration I can enable GPU acceleration in SVP 4 in either display but the GPU assigned to that display does all the work while the other GPU sits idle driving the other display. Got That? wink

However Direct X 12 (Windows 10) brings a feature called Multiadapter will will allow DirectX 12 to use multiple GPUs. I guess that this is but one more reason to upgrade to Windows 10 (which, from past experiance, I know will bring new 'challenges'... Dammed if I do and left behind if I don't.

Re: Avisynth error when using the latest 32-bit svpflow dlls

I did try it before, only to encounter BSOD. After that, I didn't try again.

I believed combination integrated and discrete GPU need a special mobo/OS/software/etc to support that and I thought my pc specs wouldn't be able to support that.

18 (edited by Nintendo Maniac 64 02-03-2016 00:21:35)

Re: Avisynth error when using the latest 32-bit svpflow dlls

This is very strange because MAG79 has previously posted the following and is either on Win8 or Win10:

MAG79 @ svp-team.com/forum/viewtopic.php?pid=55950#p55950 wrote:

http://www.svp-team.com/forum/misc.php?action=pun_attachment&item=3935&download=0

19 (edited by MistahBonzai 02-03-2016 03:51:01)

Re: Avisynth error when using the latest 32-bit svpflow dlls

I believe that one needs a MoBo and BIOS designed to support multi-GPU functionality. Otherwise, assuming one gets it working, they will end up as I did with 2 separate video streams with no sharing of the load.  I included 2 screen clips, one from the 'main' display and one from the extend display. The main display is connected to the AMD HD 7850 while the extended display is connected to the Intel HD500 (MoBo HDMI).

I can reverse the main/extended displays in the windows screen resolution settings and the GPU follows it - it interchanges the taskbar and such. Anyway, see the attached screen clips showing the status of the SVP 4 application settings. Bottomline is that it's kinda fun to mess around with but it does nothing to help share the video load. I have become really good at switching inputs on my Sony Bravia with the remote cool

Post's attachments

display1 HD 7850.gif, 40.1 kb, 633 x 295
display1 HD 7850.gif 40.1 kb, 700 downloads since 2016-03-01 

display2 HD4000.gif, 40.56 kb, 633 x 295
display2 HD4000.gif 40.56 kb, 680 downloads since 2016-03-01 

20 (edited by yan04000985 03-03-2016 23:38:39)

Re: Avisynth error when using the latest 32-bit svpflow dlls

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)

Re: Avisynth error when using the latest 32-bit svpflow dlls

While everyone has his/her own way to script, I would suggest you to format the option like you write a json.

It's easier to edit and to be read.

Post's attachments

svpoptions.JPG, 28.38 kb, 387 x 408
svpoptions.JPG 28.38 kb, 682 downloads since 2016-03-03 

Re: Avisynth error when using the latest 32-bit svpflow dlls

yan04000985 wrote:

Thanks svp-team update
Plugins, Script, reg setting download link:
https://mega.nz/#F!EVg1VDoR!tOVzSq1IptehyoKAbUvpeQ

Woot! Just made my day smile Gave the x64 a quick spin and works the balls. Your value selections are very close to what I've zeroed in on so it makes me warm and fuzzy about that. Your new scripts will take me a while to evaluate... Thanks again smile

Re: Avisynth error when using the latest 32-bit svpflow dlls

Wow)