View Single Post
Old 28th March 2012, 09:09   #1  |  Link
chainik_svp
Registered User
 
Join Date: Mar 2012
Location: Saint-Petersburg
Posts: 239
SVPflow motion interpolation (Avisynth + Vapoursynth, Linux, Mac?)

Short version: SVPflow is a successor to MVTools2, providing more speed and more quality. Now available for Windows/Linux/Mac in both 32 and 64-bit versions.

Long story
With all respect to Fizick MVTools is old and there’s almost no progress (except for bug fixes) for several years now. Obviously MVTools isn’t perfect so someone should do something with it And there comes another problem: MVTools is big and fat. There’re tons of dead, commented and copy-pasted code in it. For example all “client” functions (MFlow, MFlowFps, MBlockFps, …) are identical in at least 50% of code which is bad for further development.
And there’s SVP project that started in 2008 on biggest Russian IT forum (iXBT.com). Main goal was to provide some user-friendly controls over all that MVTools-based scripts inside ffdshow for real-time smooth video playback. They’ve experimented with scripts, tuned GUI and so on.
At some time I’ve noticed that MVTools performance is too low on AMD CPU’s, so I’ve made a patch that increased MFlow / MFlowFps speeds up to 50% on all Athlons/Phenoms. That was the beginning – SVP 2.0
The second step was creating MSmoothFps function that incorporates all “client” MVTools function in one with GPU accelerated rendering via OpenCL and some more stuff and it was SVP 3.0. The output of this function was per-pixel the same as output of original MFlowXXX. In latter versions we’ve made some speed optimizations (20-50%) in motion vectors search.
But all of that was only a warming-up before the real job – to give MVTools a second life.



So, SVPflow consists of two parts: GPLed motion vectors search and closed-source frame rendering.

Downloads.
The description and downloads are available there.
Also many of you’re familiar with Interframe script

Disclaimer.
SVPflow isn’t a complete replacement for MVTools cause it’s missing most of additional functions. As of now the main goal of project is to provide fast and high quality real-time video conversion, so all functions unnecessary for this task was cut off and sources were cleared and refactored.

Also there’re a lot of new features added and I could tell about them if someone is interested in

----------
Version 4.0.0.128 (02/22/16)
Quote:
= bump versions to match SVP 4 multi-OS release
+ Vaporsynth/Windows 32-bit/64-bit builds
+ Vaporsynth/Linux 32-bit/64-bit builds
+ all filters now compatible with MT mode 1
Version 1.1.16 (07/08/15)
Quote:
= fixed random crash in svpflow1.dll found by SVP 3.1.7 users
Version 1.1.15a (05/15/15)
Quote:
+ 64-bit build added
Version 1.1.15 (05/13/15)
Quote:
= fixed performance issues with the default main.search.coarse.width value (introduced in 1.1.12)
Version 1.1.14 (04/24/15)
Quote:
= up to 15% faster
= 2nd attempt to fix broken SVConvert function NOT fixed in 1.1.13
Version 1.1.13 (03/09/15)
Quote:
= fixed broken SVConvert function
Version 1.1.12 (03/04/15)
Quote:
= up to 20% faster
+ "64-bit ready" - assembler code (still not all of them) ported/rewritten in intrinsics, target compiler is VC++2013
+ new option in SVAnalyse - search.main.coarse.width - to get more than one "finest" levels
+ SATD for 32-x blocks
= reduced memory usage for large number of small blocks
= refactoring - removed svpflow_cpu/gpu modules - merged with svpflow2
Version 1.0.11 (05/04/14)
Quote:
= Fixed crash in CPU rendering mode with pel>1 and blend=true
= Fixed rounding error in GPU rendering mode
Version 1.0.10 (04/01/14)
Quote:
+ GPU rendering in linear light by default
= SAD functions updated to the latest x264 code
Version 1.0.9 (07/17/13)
Quote:
+ SVSmoothFps switches to 13th SVP shader if scene quality is below scene.m1 value
= GPU rendering was very slow for some "prime" frame sizes (like 1916x1076) on some video cards
- removed workaround for a bug in early IvyBridge's drivers
Version 1.0.8 (02/03/13)
Quote:
= fixed regression from 1.0.5 (low rendering precision in GPU mode)
= improved lighting quality (reduced color banding)
Version 1.0.7 (01/23/13)
Quote:
+ improved scene change detection
= fixed crash after SVConvert, adjusted SAD values in MVTools' vectors field
Version 1.0.6 (12/23/12)
Quote:
+ super clip size reduced by 4 for pel=1
('full' param in SVSuper and 'src' param in SVAnalyse)
= added workaround for OpenCL rendering on Intel's IvyBridge GPUs
+ "Ambilight" can now produce "glow" effect from all sides of the frame
('light.zoom' param in SVSmoothFps)
= several small bugs fixed:
== crash with frame rate ratio < 2 (50->60, 60->50 and so on)
== arts near screen edges with CPU rendering and some frame / block sizes combination
== green lines with 21th shader and arts masking on CPU
Version 1.0.5 (05/03/12)
Quote:
= added compatibility with GTX680 (and may be with all other Kepler GPUs) - thanks to flagger
Version 1.0.4 (05/02/12)
Quote:
+ added special.delta param
Version 1.0.3 (04/16/12)
Quote:
= fixed random crash in MT mode
= fixed usage of invalid predictors from reverse vectors (thanks -Vit-)
Version 1.0.2 (04/04/12)
Quote:
= support for multiply SVSmoothFps instances needed for proper 3D handling
+ SVConvert function for integration with MVTools-based scripts
+ GPU selection for rendering
= updated SAD/SATD x264 code

Last edited by chainik_svp; 22nd February 2016 at 18:15.
chainik_svp is offline   Reply With Quote