The MVTools package contains a collection of functions for estimation and compensation of objects motion in video clips. Motion compensation may be used for strong temporal denoising, advanced framerate conversions, image restoration and other tasks.
The plugin contains the motion estimation server-function MVAnalyse to find the motion vectors and several motion compensation client-functions (MVCompensate, MVMask and others) which use these vectors.
Plugin uses block-matching method of motion estimation (similar methods are used in MPEG2, MPEG4, etc). At analysis stage plugin divides frames by small blocks and try to find for every block in current frame the most similar (matching) block in second frame (previous or next). The relative shift of these blocks is motion vector.
The main measure of block similarity is sum of absolute differences (SAD) of all pixels of these two blocks compared. SAD is a value which says how good the motion estimation was.
The output of MVAnalyse (server) is special clip with motion vector information in some format. At compensation stage the plugin client functions read the motion vectors and use them to move blocks and form motion compensated frame (or realize some other full or partial motion compensation or interpolation function).
Every object (block) in this (fully) compensated frame is placed in the same position as this object in current frame. So, we may (for example) use strong temporal denoising even for quite fast moving objects without producing annoying artefactes and ghosting (object’s features and edges are coincide if compensation is perfect).
Plugin can create compensated neighbor frames for every current frame, and denoise it by internal function. Alternatively, you can use compensated and original frames to create interleaved clip, denoise it by any external temporal filter, and select central cleaned original frames for output (see examples).
Of course, the motion estimation and compensation is not ideal and precise. In some complex cases (video with fading, ultra-fast motion, or periodic structures) the motion estimation may be completely wrong, and compensated frame will be blocky and (or) ugly. Severe difficulty is also due to objects mutual screening (occlusion) or reverse opening.
Complex Avisynth scripts with many motion compensation functions may eat huge amount of memory and result in very slow processing. It is not simple but quite advanced plugin. Use it for appropriate cases only, and try tune its parameters. There are many discussions about motion compensation using at doom9 Avisynth forum. In particular see old MVTools thread, true motion thread, new MVTools thread and some other. Try read postings in addition to this documentation and ask for support there.
MVTools Crack + Free Registration Code Free [March-2022]
Avisynth software: — full version is for $270. Avisynth free version has severe limitations.
MVAnalyse: — server-code is on my disk at SVN repository, so you should be able to run the local test version at any time. I provide pre-built packages for Linux and Windows only.
MVCompensate (client-function): — it’s a multiplatform plugin which can read bitmap/pcm files as motion vectors. It can also read text file with fields in separate columns (each field is a motion vector) and create blocks with centroids and matrix and interpolate between blocks by interpolation functions (pyramid, spline, b-spline). Vector is with:
x=x-center of block in next frame
y=y-center of block in next frame
d=distance of block’s center from the direction between centers of two blocks (only two directions are possible)
MVMask: — it’s plugin which creates masks (binary masks with 1 – for moving pixels and 0 – for static pixels) on all frames of video clip. You may use it for binarizing image or make mask of foreground objects on image. For different options see links at this documentation.
Version History (svn)
June 2008 — version 0.9 — finished server-code, added building for Win32, integrated avisynth client, added interleaved version option to filter.
November 2005 — version 0.5 — first pre-release version
November 2004 — version 0.4 — first beta version.
June 2004 — version 0.3 — first beta version.
July 2003 — version 0.2 — first beta version.
February 2003 — first pre-release version.
October 2001 — first official release.
What’s new in MVCompensate
Added new client MVMask option.
It can split frames for fast motion compensation (usually, only video frames with camera motion will be split).
Instead of ‘+’ in mask string you may put ‘|’ or ‘>’ to split two consequent frames.
Current file contains DESCRIPTION for plugin and example project.
It is not intended to user to understand how it works, but rather to user
just to use the plugin.
MVTools is all about motion estimation and motion compensation. Plugin provides
a set of special functions for these purposes. The core of the engine is
client-side functions, which communicate with the server-side function
mvttpd. Results of motion estimation and compensation are returned in
special format with special name *.mvtml. Each motion vector returned is
stored in MVTools.mv file.
Plugin contains the server-side functions:
mvttpd is the foundation of plugin. It is responsible for finding
motion vectors. At this moment it uses block-matching method.
start() – start mvttpd server.
stop() – stop mvttpd server.
numberOfFrames() – number of frames for which the plugin will
compute motion vectors. The server waits until all frames
computeMV() – starts motion estimation. It returns a stream of
response with number of frames requested and motion vector
stream (mv_stream) with all vectors from analysis of
current frame. Result is a container which allows to
perform client-side full motion compensation with all
analyseFrame() – start full frame analysis. It returns a stream
of response, where every frame consists of:
– frame id
– first frame id
– number of motion vectors
– mv_stream – container for motion vectors
– type of analysis:
– – MV_TYPE_TRUE motion vectors: the motion vectors
used for full motion compensation
– – MV_TYPE_EXACT
motion vectors used just for final quality compensation
(very precise, with very small error but only for
the frames, which number of motion vectors is
– – MV_TYPE_FIXED
fixed vector – the vector is static, not only the
frame but also the whole clip. It usually indicates
some kind of flip flop.
– – MV_TYPE_NONE: the frame is too dirty for any kind
of motion estimation and no motion vector is
MVTools is a set of functions and classes (plugins) for better manipulation of video data. It consists of several sub-plugins.
Master Plugin (or master object) MVAnalyse gives information for all other components of video data processing (server). MVCompensate allows to analyze and compensate motion of objects in video frames and video sequences, it manages to create frames with noise (or some corrected frames), or video (up) or (down) modulated frames.
Clients Plugin MVAnalyse gives information of all components of video processing. It allows to create and analyze compensated video frames for fast video processing. It is very easy to use for tasks like temporal denoising, framerate conversion, image denoising and restoration and other tasks.
Automatic Server Plugin MVCompensate gives motion compensated video frames, it uses MVCompensate plugin to get motion compensated video frame from filenames and input image files or frames. This system may be used as a server of plugin or as a client. MVCompensate can make comparison of two frames. MVCompensate is especially useful for full or partial motion compensation and denoising.
Motion Estimation Plugin MVAnalyse provides a server for motion analysis. It can find motion compensated video frame for every video frame and compare
What’s New in the MVTools?
Let’s start with a simple example, where plugin finds motion vectors for consecutive slow-moving object (such as character in video or computer animated movie).
MVAnalyse (in server mode)
It will place all current frame objects into groups (blocks), and find motion vectors for every group of blocks of current frame.
MVCompensate (in compensation mode)
In each group of blocks (for example for character) it will apply some average motion correction for all blocks, and make a new group of blocks from motion corrected ones (with corrected motion vector). Then it will find motion vector for each of the new group (and then it will be many motion vectors for the whole character).
MVMask (in compensation mode)
MVMask can provide one of two modes:
1) it can place all current frame blocks into another groups (compared to blocks in original clip) and find motion vectors for each of the new groups (thereby we have new motion vectors for original clip, but we may use them in compensation mode of more than one object).
2) it can place all current frame blocks into groups (for each object), and apply then some average motion correction to each object (as for average character). Then it will find motion vectors for every of the objects (and then there will be many motion vectors for the whole clip).
In all cases where we have objects of different sizes and/or shapes we may apply special cropping to make them have the same size and similar shapes.
MVWarp (in compensation mode)
MVWarp will add (or subtract) some part of detected motion vector (vector sum) to every block. Result may be still a bad motion estimation, which we may consider as compensation error. For this we may use different weighting factors, and special cropping to make moving area similar to larger (or smaller) one.
This plugin contains three powerful functions:
MVMask (in compensation mode)
This is a high-level function which returns a mask in separate file, showing object boundaries in current frame, and which may be used to select only objects in compensation mode. It uses some advanced features which are not described here.
Please see MVMask description at old thread in forum, or post there in addition to this documentation.
MVAnalyse acts as a server-function. It is used in MVCompensate.
It uses the simplest and fast server-
System Requirements For MVTools:
Include a photograph and description of your skills and/or experience to submit a resume/cover letter.
Required Resume/Cover Letter:
* Upload your resume
* Upload your cover letter
* Upload at least 1 photograph of yourself.
Please include the following information in your cover letter:
* Full name
* Phone Number
* Can you provide a one-page portfolio?
How to apply: