188.8.131.52 (26.04.2016 by Fizick)
MflowXXX: aligned to fix strange bug for some odd frame sizes and pel=1.
184.108.40.206 (22.04.2016 by Fizick)
MflowXXX: remove limit of motion vectors length (was 127/pel).
MMask: possible vector scaling for kind=3,4,5.
220.127.116.11 (02.04.2016 by Fizick)
Fixed Mflow broken in 18.104.22.168, fixed several other small bugs.
MBlockFps: added support of overlap, renamed parameter thres to ml.
MCompensate, MMask: added partial time compensation.
Masked functions: improved occlusion mask.
MBlockFPS, MMask - added option to use SAD as occlusion mask.
Documented (after Firesledge) negative delta values (v.2.2.1 quick hack for static scene compensation and motion tracking) and fixed some functions accordingly.
22.214.171.124 (19.09.2011 by Fizick)
MFlowInter: fixed planar.
MCompensate: fixed destructor for recursion.
126.96.36.199 beta (20.03.2011 by Fizick)
MCompensate: fixed crash with too small npad, vpad (thanks to '-Vit-'). Optimized MFlow.
188.8.131.52 beta (22.12.2010 by Fizick)
MAnalyse, MRecalculate: fixed pure Horizontal and Vertical search types (fix by 'cretindesalpes').
2.5.11 beta (17.10.2010 by Fizick)
MAnalyse, MRecalculate: added pure Horizontal and Vertical search types (requested by 'Null Null').
MRecalculate: Fixed Hexagon and UMH search types (was processed as Logarithmic).
184.108.40.206 beta (25.06.2010 by Fizick)
MFlowInter: Fixed incorrect transmission of last parameters (blend, etc). Thanks to Laurent de Soras 'Firesledge'. Other interesting updates (dither, time clip, multitheading, multivector) from his MVTools
2 mod16 fork (http://ldesoras.free.fr/prod.html
) are under consideration.
MDepan: Fixed bug : if range=1 in MDepan, the debug text (with info=true) was only displayed in the first frame when loading the script. Thanks Boulder for report.
MRecalculate: Fixed bug if pel values are different. Thanks Boulder for report.
2.5.10 beta (8.11.2009 by Fizick)
MAnalyse: try many predictors
MAnalyse: replace third right-top predictor by right-bottom
MAnalyse: exhaustive search at all coarse levels (always), removed full parameter
2.5.9 (4.11.2009 by Fizick)
MAnalyse: restored lambda for coarsest level)
MAnalyse: fixed full=0 default according to doc
220.127.116.11 (26.10.2009 by Fizick)
MDegrain2: fixed limitC (thanks Terranigma for bug report)
2.5.8 (18.10.2009 by Fizick)
MAnalyse: fixed some wrong vectors (thanks to shon26 for bug report)
2.5.7 (09.10.2009 by Fizick)
MAnalyse: fix bug (crash for some frame sizes) (thanks to Mark bug report)
2.5.6 (08.10.2009 by Fizick)
MAnalyse: fix bug (crash for pad>0 and some frame sizes) with levels (thanks to Mark bug report)
2.5.5 (28.09.2009 by Fizick)
MAnalyse: fix bug (crash for hpad=0) with levels (thanks to Boulder and LaTo for bug report)
MSuper: corrected interpolation at planes borders
MDegrain1,2,3: added limitC parameter
2.5.4 (27.09.2009 by Fizick)
MAnalyse: set default temporal=false according to doc (some problem with SetMTMode(2) was reported by MAG79)
2.5.3 (08.09.2009 by Fizick)
MAnalyse: added temporal predictor of motion vector
MRecalculate: fixed broken v2.5.2
2.5.2 (11.08.2009 by Fizick)
MSuper: separable width and height reducing with assembler iSSE optimization
MAnalyse: limit levels value
2.5.1 (07.08.2009 by Fizick)
MAnalyse: Added meander parameter for blocks scan in rows from left to right and from right to left
Small optimization of YUY2 conversion
2.5.0 (01.08.2009 by Fizick)
MSuper: More full size of sublevels
MAnalyse: Increased number of sublevels (for more long vectors)
MAnalyse: Replaced parameter name level by levels, changed meaning of its positive and negative values
MAnalyse: Disabled lambda for most coarse level
MAnalyse: Full search with large radius at smallest level
2.4.7 (28.07.2009 by Fizick)
MBlockFPS: finally fixed bug for non-zero pad, non-integer number of blocks
2.4.6 (26.07.2009 by Fizick)
MBlockFPS: fixed bug (at right and bottom, repored by Shon26) for non-zero pad, non-integer number of blocks
Fixed possible bug with pixels interpolation at low hierarhical levels
More correct size of sublevels (even luma for YV12)
MShow: change draw vector style to gradient
2.4.5 (11.07.2009 by Fizick)
Added block size 32x32
Replaced avisynth.h with v2.5.8MT by SEt
2.4.4 (08.07.2009 by Fizick)
Merged all code mods by SEt, but:
Replaced avisynth.h v2.5.5 by v2.5.8
2.4.2_mod2 (30.06.2009 by Pavel Skakov aka SEt)
Corrected threading problems, minor optimizations (avisynth.h from avisynth2.5.8MT beta, init vectors as 0)
2.4.2_mod (22.06.2009 by Pavel Skakov aka SEt)
Some source/project settings cleanup and optimized primary for MDegrain1/2/3 - depending on your settings you'll probably see 2-15% speedup, results are bit-identical to original 2.4.2:
added Average2 iSSE version for pel=4,
Degrain1/2/3 MMX and SSE2 versions,
small optimization of copy8x8 mmx and Horizontal_Wiener SSE,
fixed cpu detection
2.4.3 beta (26.04.2009 by Fizick)
MDepan: added mask (requested by djonline) and planar parameters.
2.4.2 (07.04.2009 by Fizick)
MAnalyze: Fixed valid vector range for case of padding lesser than block size, with program crash (thanks to FuPP for bug report).
2.4.1 beta (24.01.2009 by Fizick)
MDegrain: Fixed weight for high threshold and big block size.
2.4.0 beta (09.01.2009 by Fizick)
MDegrain: Changed degrain weight method to more strong, some internal rewriting.
2.3.1 (14.12.2008 by Fizick)
MSuper: added more smoothing reducing filters rfilter=2,3,4, by default 2.
MAnalyse: fixed bug with plevel parameter (version 2.3.0).
2.3.0 (6.12.2008 by Fizick)
Renamed all functions from MVxxx to Mxxx (some renaming was requested by LaTo, Mystery Keeper, Sagekilla). Error messages is still not updated.
MAnalyse: added pglobal parameter (with small changes), changed default level=1.
2.2.2 (30.11.2008 by Fizick)
MVShow: changes SAD by reduced to block size 8x8, added quantity of bad blocks.
MVCompensate: fixed bug at scene changes (thanks to AVIL for bug report about YUY2).
MVAnalyse: fixed chroma=false (thanks to LaTo for bug report).
Renamed to mvtools2.dll (requested by Naito).
2.2.1 (27.11.2008 by Fizick)
MVAnalyse: fixed wrong scaling of LSAD to block size (thanks to Shon for bug report).
MVCompensate: removed mode parameter, added recursion.
2.1.2 (23.11.2008 by Fizick)
MVAnalyse: removed option mc. Reduced size of block data (increment version of vector stream).
MVDegrain: fixed bug with block size 32x16
2.1.1 (18.11.2008 by Fizick)
MVBlockFps: fixed left border bug
2.1.0 (8.11.2008 by Fizick)
MVFlowFps, MVBlockFps, MVFlowInter: added blend parameter for ChangeFps-like mode at scene changes
MVFlowFps, MVBlockFps: more safe for big nominator and denominator.
18.104.22.168 (6.11.2008 by Fizick)
MVDegrain2,3: fixed crashes at scene changes for YUY2
22.214.171.124 (5.11.2008 by Fizick)
MVAnalyse: added second wide search for bad blocks (badSAD, badrange parameters).
MVAnalyse: added Hexagon and Uneven Multi Hexagon (UMH) search types. Changed (not intentionally :) the default method from Logarithmic to Hexagon.
MVAnalyse: fixed exhaustive search to static center.
MVAnalyse: lsad is now scaled to blksize 8.
MVShow: use super clip, padded output, added number block option.
126.96.36.199 (3.11.2008 by Fizick)
Some performance improving
188.8.131.52 (20.10.2008 by Fizick)
More memory-optimal MVFlowXXX functions for pel=1
Disabled plugin debug mode
Added Russian documentation
184.108.40.206 alpha (13.10.2008 by Fizick)
Implemented more functions without idx: MVSCDetection, MVDepan, MVFlowInter, MVBlockFps, MVFlowBlur, MVDegrain3, MVRecalculate
Fixed crashes with MVSuper(chroma=false)
Some small changes and fixes for v2.0 of course :)
Documentation for v2.0
220.127.116.11 alpha (02.10.2008 by Fizick)
Implemented functions without idx: MVSuper, MVAnalyse, MVFlowFps, MVFlow, MVCompensate, MVShow, MVMask, MVDegrain1, MVDegrain2
All functions (besides MVAnalyse) got planar parameter for YUY2 planar input and output. Default = false (i.e. normal interleaved YUY2), slower.
All (mandatory) clip parameters lost their names, and mvbw=vb is not correct syntax now. Use unnamed syntax instead.
18.104.22.168 alpha (28.09.2008 by Fizick)
First 2.0 branch public alpha with MVSuper function to kill idx.
MVAnalyse and MVDegrain1 are implemented only.
22.214.171.124 (15.10.2008 by Fizick)
Restore old internal cache size growing as before v126.96.36.199 (some crashes reported).
188.8.131.52 (08.10.2008 by Fizick)
MVDenoise: fixed error of v.1.11.4 with luma correction.
MVCompensate: fix potential memory leakage (in constructor).
184.108.40.206 (26.09.2008 by Fizick)
MVAnalyse: cut unused compensation memory space from vector clip (mc parameter).
Decreased internal cache size growing.
All MVFlow functions: fixed old bug with pixels for pel=4.
MVAnalyse: added rfilter parameter (smooth method).
MVBlockFps: added YUY2 and pelclip support.
Tiny stability fixes for MT.
220.127.116.11 beta (08.09.2008 by Fizick)
New MVBlockFps for simple fps change (almost realtime :-).
MVAnalyse: more smooth method of frame hierarchical level reducing (like ReduceBy2) for smoothing at every level.
MVAnalyse: Added pzero parameter of zero vector cost for more coherent motion vectors (now switched ON by default, set to 0 if you need in old algo).
MVAnalyse: Decreased pelsearch internal clipping from pel to 1 (asked by somebody for speed).
MVFlowFps,MVFlowFps2, MVFlowInter: removed thSAD parameter.
All functions: Removed mmx parameter.
18.104.22.168 (28.08.2008 by Fizick)
MVDegrain1-3: fixed old rounding error resulted in some chroma tint (some thanks to Didee for bugreport, but it could be more persevering in official MVTools
forum thread :)
Made doc about pelclip more accurate (hopely).
22.214.171.124 beta (27.08.2008 by Fizick)
Debugged and renamed MVRefine back to new MVRecalculate :).
MVAnalyse: changed LSAD threshold from hard by soft for a little more coherent motion at bad areas.
MVAnalyse: fixed old bug for (rarely used) different horizontal and vertical overlap sizes.
126.96.36.199 not public (22.08.2008 by Fizick)
Change MVRecalculate by more general function (MVRefine) which can re-estimate vectors.
188.8.131.52 not public (18.08.2008 by Fizick)
Added MVRecalculate function to update SAD (as requested by Didee).
Fixed possible memory leaks (thanks to josey_wells for note)
Other changes of v1.9.6-1.9.7 branch by josey_wells are still not merged - too many work to analyse new code and numerous cosmetic rewriting, so based on v184.108.40.206
1.9.6.x-1.9.7.x series branch (01.08.2008-26.08.2008 by josey_wells)
Added MVAnalyseMulti, MVDegrain, MVMultiExtract functions with internal multitheading (that does not require any special AviSynth, SetMTMode or MT)
Some bug fixes (memory leaks), code consolidation (rewriting) for stability and performance improvements. Also there is a multitude of changes due to the addition of threading class, semaphore class, critical section class, thread files for MVDegrain, MVAnalyseMulti as well as factoring out common code for MVDegrain into a single base class moving out common code etc. There are no changes of algorithms. See messages at forum since August 2008 for download, syntax and discussion.
220.127.116.11 public beta (03.07.2008 by Fizick)
Added (incomplete?) list of used projects to doc.
18.104.22.168 (02.07.2008 by TSchniede)
Improved my, added Overlap_2xY_mmx, optimized CheckMV2 and LumaSAD.
22.214.171.124 (28.06.2008 by TSchniede)
Improved default 2xY SAD and added new faster 2xY SAD.
126.96.36.199 (27.06.2008 by TSchniede)
Ported CPU detection from x264.
Now using x264 SAD autoddetect is default
Merge with 188.8.131.52, re-enabled 32x16 mode (only default functions)
184.108.40.206 (26.06.2008 by TSchniede)
Imported SSD and SATD functions.
access using sadx264 > 7 or dct > 4.
220.127.116.11 (24.06.2008 by TSchniede)
Buffered source block in aligned area before calculating SAD.
This fixes crashes if source block was unaligned due to overlaped blocks.
Worst case was < 1% slower, most of the time it further increases performance.
18.104.22.168 public beta (21.06.2008 by Fizick)
Merge v.1.9.5 changes by TSchniede.
1.9.5 (21.06.2008 by TSchniede), based on v.1.9.3
MVAnalyse: added sadx264 option.
Internal modifications - aligned memory of luma&chroma planes and modified MVTools
to the interface of the SAD functions used in x264.
minor bugfix (deactivate DebugPrint possible)
22.214.171.124 beta (12.06.2008 by Fizick, released 21.06.2008)
Fixed bug for pel=4 with sharp=2 (thanks to Pustovetov for report and fix).
MVCompensate: added block size 16x2 (bug reported by AVIL).
1.9.4 not public beta (08.06.2008 by Fizick)
MVAnalyse and other: added block size 32x16 (requested by MAG79).
126.96.36.199 (05.06.2008 by Fizick)
MVIncrease: was broken (as noted by MAG79).
1.9.3 (20.04.2008 by Fizick)
MVAnalyse: fixed bug for pelclip (broken since v1.8.5).
MVDegrain: added thSADC as chroma threshold (request by Terranigma).
1.9.2 (29.01.2008, all bugs were found by josey_wells)
MVDegrain3: fixed bug in code for 16x8 block; fix typo (MVDegrain2 instead of MVDegrain3).
MVAnalyse: fixed old bug in NStepSearch.
1.9.1 beta (15.12.2007 by Fizick)
MVAnalyse: Increased speed (by 20%) of global motion estimation (other algo).
MVAnalyse: Added assembler optimization for small blocksizes SAD (speed by 50%).
MVMask: Added kind=5 motion colormap as x,y components of motion vector shown in U, V color planes.
1.9.0 (04.12.2007 by Fizick)
1.8.6 (02.12.2007 by Fizick)
Added components x,y motion vector mask kind=3,4 to MVMask (requested by Terka).
188.8.131.52 (12.11.2007 by we:)
Merge v184.108.40.206 and v1.8.5 changes, added MT example.
220.127.116.11 (05.10.2007 by Tsp)
Implemented internal cache buffer miss detection with buffer growing (as suggested by IanB).
1.8.5 (05.11.2007 by Fizick)
Added pelsearch parameter as search parameter (radius) at finest level (request by Terranigma).
Decreased internal buffer to decrease memory usage, with some changes in critical sections.
Added block size 16x2 (requested by ab_99).
18.104.22.168 (25.10.2007 by Tsp)
Added critical section in frame refining to fix rare bug in multi-threaded processing.
22.214.171.124 (23.10.2007 by Tsp)
Implemented thread-safe internal buffer access for correct multithreaded processing with SetMTmode(2) in Avisynth MT version (for multi CPU).
1.8.4 (22.08.2007 by Fizick)
"divide" now works with "overlap".
1.8.3 (17-20.08.2007 by Fizick)
MVFlowFps: renamed "mode" parameter to "mask".
MVFlowFps2: added "mask" parameter.
MVFlowFPS, MVFlowFPS2: Restored default values num=25, den=1 (as was in version 1.7 and early)
MVDegrain1, MVGegrain2 - added "limit" parameter.
1.8.2 beta (30.07.2007 by Fizick)
MVAnalyse: corrected (increased) search radius at finest level for pel>1.
Added pel=4 option for quarter pixel precision.
Renamed clip2x parameter to pelclip.
1.8.1 beta (28.06.2007 by Fizick)
MVAnalyse: added postrocessing motion vectores by dividing blocks into subblocks to decrease zone of motion vectors interpolation.
MVFlowFps: added "mode" parameter to select processing method at occlusion areas (and speed).
Some internal changes (padding in MVAnalysisData, header to vector stream frames, etc).
1.8.0 beta (22.06.2007 by Fizick)
MVFlowInter, MVFlowFPS, MVFlowFPS2, MVMask: improved occlusion mask by extent
MVFlowInter, MVFlowFPS: decreased objects halo at occlusion areas by using motion vectors of adjacent frames
MVFlowInter, MVFlowFPS: disabled SAD mask and thSAD parameter
MVShow: fixed drawn positon of vectors
MVFlowFPS, MVFlowFPS2: Changed default output fps to double of input (default num, den = 0)
Added error messages on missed vector clips
1.7.0 beta (05.06.2007 by Fizick)
MVAnalyse: added blksizeV and overlapV parameters for non-square blocks 8x4 and 16x8.
1.6.4 (30.05.2007 by Fizick)
MVAnalyse: modified vectors order for Enhausted search (expanding squares).
MVAnalyse: fixed bug with dct=3.
MVFlowFps, MVFlowFPS2, MVFlowInter: now blend frames with bad motion estimaton (at scenechanges, flashes).
MVFlowFps, MVFlowFPS2: fixed bug with thSAD parameter (and correspondent mask).
1.6.3 (06.05.2007 by Fizick)
MVDepan: more compatible with DepanEstimate (range parameter, etc).
1.6.2 (11.11.2006 by Fizick)
MVAnalyse: changed DCT=2 mode to global luma dependent.
1.6.1 beta (25.10.2006 by Fizick)
MVAnalyse: added experimental DCT mode to improve motion estimation at luma flicker and fades (fast for blksize=8 only).
1.5.8 beta (14.10.2006 by Fizick)
Many functions: added clip2x parameter to use 2X upsampled clip instead of internal subpixel interpolation for pel=2
MVFlowFps, MVFlowFps2: added thSAD parameter; use local blending of neighbour frames pixels in regions with bad motion vectors
MVFlowFps, MVFlowFps2: may use motion vectors for any frames delta
MVFlowFps, MVFlowFps2: fixed a bug for video with big nominators and denominators (thanks to Trixter for report)
MVCompensate: added experimental fields parameter to compensate fields shift of fieldbased video for pel=2
MVAnalyse: changed pnew parameter to relative of SAD
1.5.3 beta (01.10.2006 by Fizick)
MVAnalyse: improved zero motion estimation for fieldbased video for pel=2
Merged v1.4.12-1.4.13 changes
Temporary restored MVIncrease, MVChangeCompensation, MVDenoise (with compensation stored in vector clip)
1.5.1 beta (05.09.2006 by Fizick)
Merged v1.4.11 changes
1.5.0 beta (23.08.2006 by Fizick)
Corrected vector predictors interpolation (from coarse to fine scale) for overlap>0.
MVFlowInter: added thSAD parameter.
MVFlowInter: local blending of neighbour frames pixels in regions with bad motion vectors.
Removed compensation storage in vector clip
Removed functions MVIncrease, MVChangeCompensation, MVDenoise (it used compensation in vector clip, and did not support overlapping).
Removed mode=2 loop option of MVCompensation, mode=0 is processed as mode=1 now.
Added thSAD parameter to MVCompensation for safe (dummy) compensation as requested by Didee
1.4.13 (28.09.2006 by Fizick)
Fixed bug with possible wrong frames pointers in core (MVClip.Update), hided by caching (thanks to IanB for advice)
1.4.12 (25.09.2006 by Fizick)
Seems fixed bug with frames caching in MVDenoise (and possible in MVDegrain) (thanks to il9ad for report)
1.4.11 (06.09.2006 by Fizick)
Corrected vector predictors interpolation (from coarse to fine scale) for overlap>0.
Fixed bug with pitch for overlap=0, YV12 in MVDegrain1 (thanks to Boulder for report)
1.4.10 (18.08.2006 by Fizick)
Corrected right and bottom borders processing in MVCompensate for arbitrary frame sizes.
Changed defaults in MVAnalyse: pel=2, truemotion=true, sharp=2.
1.4.9 (14.08.2006 by Fizick)
Fixes a bug in MMX optimization of overlap mode in MVDeGrain, MVCompensate for YUY2 with blksize=8 (thanks to TSchniede for report).
1.4.8 (31.07.2006 by Fizick)
Added some MMX optimization of overlap mode in MVDeGrain, MVCompensate.
Fixed a bug with last (not processed) rows in MVDeGrain.
1.4.7 (25.07.2006 by Fizick)
Decreased overlap gridness in MVDeGrain1, MVDeGrain2, MVCompensate.
Added example with MVDeGrain1 for interlaced.
1.4.6 (24.07.2006 by Fizick)
Decreased denoising in MVDeGrain1, MVDeGrain2.
Plane parameter in MVDeGrain1, MVDeGrain2 now works :)
1.4.5 (22.07.2006 by Fizick)
Added plane parameter to MVDeGrain1, MVDeGrain2.
1.4.4 (19.07.2006 by Fizick)
Corrected default thSAD=400 in MVDeGrain1, MVDeGrain2.
Fixed a bug with V color plane in MVChangeCompensate.
1.4.3 (17.07.2006 by Fizick)
Decrease overlap gridness in MVDeGrain1, MVDeGrain2.
1.4.2 (16.07.2006 by Fizick)
Fixed a memory access bug in MVDeGrain1, MVDeGrain2. Thanks to krieger2005 for report.
1.4.1 (23.06.2006 by Fizick)
Changed MVDeGrain1, MVDeGrain2 mode to SAD weigthing.
Chanded thSCD1 default from 300 to 400.
1.4.0 (19.06.2006 by Fizick)
Added MVDeGrain1, MVDeGrain2 limited averaging denoisers.
Corrected thSAD scale in MVDenoise.
Corrected documentation about SAD.
1.3.1 (11.06.2006 by Fizick)
Added bicubic subpixel interpolation method for pel=2 (with iSSE optinization for sharp=1,2).
Assembler iSSE speed optimization for overlapped block compensation.
1.3.0 (05.06.2006 by Fizick)
Implemented overlapped block motion compensation to MVCompensation(mode=1).
Changed default to mode=1 in MVCompensation as the most universal.
Added sharp subpixel interpolation method for pel=2.
Fixed bug for blksize=16 with YUY2.
(To-do list: assembler SSE speed optimization for new compensation and interpolation methods.)
1.2.6 beta (21.05.2006 by Fizick)
Added option to write motion vectors data to log file as requested by Endre.
1.2.5 (08.05.2006 by Fizick)
Decreased zero vector weight, iteration accuracy in MVDepan
1.2.4 (07.04.2006 by Fizick)
Fixed bug v.1.2.3 with info mode in MVDepan
1.2.3 (31.03.2006 by Fizick)
Implemented MVDepan for interlaced source separated by fields;
added optional MVDepan log file.
1.2.2 beta (01.03.2006 by Fizick)
Fixed frame shift bug of v1.2.1 with mmx YUY2 conversion (thanks to WorBry for bug report)
1.2.1 beta (20.02.2006 by Fizick)
Fixed bug of v1.2,
mmx YUY2 conversion (from avisynth 2.6 function by sh0dan)
But it seems, overlap mode still does not work properly
1.2 beta (17.02.2006 by Fizick)
YUY2 format support (besides MVIncrease), no optimization
1.1.1 (16.02.2006 by Fizick)
Removed DeBlock and Corrector filters (will be separate plugins)
Documented old MVSCDetection function.
Cleaned project from unused source files.
1.1 (non-public build 9.01.2006 by Fizick)
Quite large revision (beta). New option for overlapped block motion estimation in MVAnalyse for usage in MVFlow, MVFlowInter, MVFlowFps for improved motion compensation.
Lookup tables for motion interpolation.
Small correction of displacement value in MVFlowFps2.
1.0.3 (Released 30.12.2005 by Fizick)
Fixed bug with displacement in MVFlowInter, MVFlowFps (introduced in v1.0.2).
1.0.2 (Released 28.12.2005 by Fizick)
Corrected value of displacement in MVFlow (a little).
1.0.1 (Released 24.12.2005 by Fizick)
Fixed memory leakage bug in MVAnalyse with global motion (thanks to AI for report).
Removed penalty for zero vector predictor in MVAnalyse (was introduced in v1.0).
Changed chroma=true as default in MVAnalyse.
1.0 (Released 29.11.2005 by Fizick)
I'm tired of long version numbers :). But the plugin is stil experimental :(.
Restored zero vector predictor in MVAnalyse.
Changed blur time scale in MVFlowBlur (100 is fully open shutter now) as Mug Funky requested.
0.9.13.3 (Released 27.11.2005 by Fizick)
Added global motion (simple method) vector predictor to MVAnalyse.
Vector search is skipped (for speed) if good predictor was found (with SAD < pnew).
Parameter scale in MVShow works properly now.
Disabled some debug and profiling info output (for speed increasing).
Changed default prec=1 (was 2) in MVFlowBlur.
0.9.13.2 (Released 22.11.2005 by Fizick)
Fixed bug in MVFlowFps, MVFlowFps2 for non-integer fps.
0.9.13.1 (Released 21.11.2005 by Fizick)
Fixed bug in MVFlowFps, MVFlowFps2, MVFlowInter, MVFlowBlur (introduced in v0.9.13).
Removed plen parameter from MVAnalyse as not useful.
0.9.13 (Released 20.11.2005 by Fizick)
Added truemotion preset to MVAnalyse.
Added experimental MVFlowFps2.
Change interpolated vector rounding method in all MVFLow... functions.
Edited documentation a little.
0.9.12.4 (Released 15.11.2005 by Fizick)
Changed type of ml parameter in MVMask, MVFlowInter, MVFlowFps from int to float.
Added bound check of ml, time, blur parameters.
Small possible bug fixed (emms).
Partially updated documentation. But I am not sure that sh0dan requested exactly such updating :). It is still not user guide but functions reference.
0.9.12.3 (Released 14.11.2005 by Fizick)
Fixed bug for chroma for width not divisible by 16 in MVMask (introduced in v0.9.11).
Some speed optimizing of MVFlowFps.
Reset size of internal frames buffer to original value 10. Try various versions.
0.9.12.2 (Released 13.11.2005 by Fizick)
Added experimental precise but slow MVFlowBlur function as scharfis_brain requested.
Temporary changed size of internal frames buffer to 5.
0.9.12.1 (Released 12.11.2005 by Fizick)
Added experimental MVFlowFps function.
Disabled MVInter function.
Temporary changed size of internal frames buffer from 10 to 3 for memory usage decreasing. Speed must be tested for complex scripts.
0.9.12 (Released 09.11.2005 by Fizick)
Added MVFlowInter function. MVInter function will be removed in next release (it is worse).
Changed scale of ml parameter for kind=2 of MVMask to more optimal default.
Fixed small bug in Bilinear.asm (strange pixels near right border for pel=2).
0.9.11.1 (Released 06.11.2005 by Fizick)
Added half-pel support to MVFlow.
Increased max quant from 51 to 60 in DeBlock for very strong deblocking .
0.9.11 (Released 04.11.2005 by Fizick)
Improved MVMask: Replaced boolean showsad parameter to integer kind, added occlusion mask option. Changed bilinear resize code to more correct and fast SimpleResize.
0.9.10.1 (Released 01.11.2005 by Fizick)
Fixed bug with chroma and luma small changes in MVInter (rounding error).
Vector interpolation in MVFlow and mask in MVInter are correct now (due to fixing bug in SimpleResize).
0.9.10 (Released 31.10.2005 by Fizick)
Added some true motion (smoothed) estimation options to MVAnalyse
Added function MVFlow for per-pixel motion compensation
Added function MVInter for motion interpolation (very experimental)
0.9.9.1 (Released 20.01.2005 by Manao)
No need anymore of stlport_vcxxxx.dll
Filter added : Corrector
Filter added : MVIncrease
New available blocksize : 16
New parameter in MVAnalyse : chroma
Changes in the core
MVCompensate changed : a new parameter, idx, which works as idx in MVAnalyse, and which allows speed up when compensating the same frames several times.
ME takes into account the chroma now, as requested by tsp.
Added Corrector function, as requested by scharfi.
New function MVDepan (added by Fizick) for Depan plugin.
Yet another little changes in the filters' syntax. The core changed a lot, in order to gain speed were it was possible. However, by default, the speed gain won't be visible, you'll need to configure correctly the analysis filter through its "idx" parameter in order to gain speed ( in the mode "pel" = 2 ).
Bugfixes in MVDenoise, and chroma denoising in MVDenoise.
Now, the filters down the filter's chain tell to the analysis filter if they need the compensation, so you don't have to worry about that at the analysis stage.
Yet again, a lot of rewriting. Interpolating filters are disabled ( for the moment ), all the other filters work and should be considered as stable. Syntax has changed a lot, and will change again before reaching 1.0 ( if it's reached one day ). Changes mainly affect MVAnalyse. New filter : MVChangeCompensate.
Fixed bug in MVMask parameters.
Lot of bugfixes for the existing filters. MVMask, MVShow, MVCompensate, MVDenoise and MVSCDetection, and MVAnalyse should work . Other may crash unexpectedly.
Now, for the three new filters. Two have nothing to do with motion compensation, but I didn't want to put them in separate binaries, since they'll mainly be used with filters from this package. The third one uses vectors, and integrates somehow the two others.
QDeQuant(clip c, int quant, int level) : takes a clip and quantizes it, using an approximation of the H264 DCT. It filters the three planes ( 4x4 blocks for each of them, so the chroma isn't processed as in H264 ). It's not exactly the H264 DCT because at q1, it's lossless, and a q51 it's not that bad, but you can raise quant over 51. Level is the reference level of the picture. By default it's zero, but it can be set, for example, to 128. The picture is then treates as if pixels were ranging from -128 to 127, hence avoiding errors around 128.
Deblock(clip c, int quant, int aOffset, int bOffset ) : takes a clip, and deblock it using H264 deblocking, as if the picture was made only of inter blocks. This time, quant ranges from 0 to 51 as in H264, and has the same impact. aOffset and bOffset allow to raise / lower the quant when deciding for some internal thresholds. They are set by default to 0. Be warned that the filter should do nothing at quant lesser 16, if aOffset and bOffset are both zero. It's a wanted behavior ( thus it respect the partially the norm ).
EncDenoise(clip c, clip vectors, bool scbehavior, int quant, int aOffset, int bOffset, int thSCD1, int thSCD2) : it merges Deblock, QDeQuant and MVCompensate, taking from them the name and behavior of their parameters. It basically does a h264 encode as if all blocks were 8x8 inter blocks. Reference frame is the previous frame output by the filter ( if it is the correct one, else it's the previous frame of the source ), mvs are those given by mvanalyse on the source. The reference frame is compensated by the vectors, then the residual difference is quantized / dequantized and added to the result of the motion compensation. Finally, the frame is deblocked, and serves as reference for the next one.
Mainly a bugfixe ( several filters were affected by a silly bug , and MVCompensate now do padded motion compensation, and compensate also the chroma ( though it rounds the vector to odd coordinates to do so )
A new feature, as asked by Fizick, for mvcompensate : "scbehavior", a boolean set to true by default, will allow you to keep the previous frame over a scenechange if you set it to false.
MVMask has two new parameters : showsad (bool) which allows to build the mask of the SAD values instead of the mask of the vectors' length. Ysc allows you to set the value taken by the mask on scene changes
MVCompensate : behavior modification on scene changes. Now, the current frame is left untouched if a scene change was detected.
New filter : MVSCDetection, with one parameter, Ysc, which works as previously.
MVInterpolate, MVConvertFPS and MVBlur are enabled, but may be buggy ( though I wasn't able to make MVConvertFPS crash )
Huge rewritting of the core engine. Vectors are now searched with a precision up to the pixel ( because no other filters can use yet more precise vectors, except MVShow ). The search engine is now fast ( which doesn't mean necessarily that the filters which use it are fast )
A new parameter for MVAnalyse : lambda. See the documentation of the filter to see how it works
MVDenoise works better.
Vectors can be saved to a file. In order to do so, add the parameter filename="C:\foo.bar" to the filter MVAnalyse. If the file doesn't exist, vectors will be saved into it. If it exists, vectors will be read from it. But, be warned :
The file for a whole movie will be around 500 MB
Saving / reading from a file need for the moment a linear access to the frames, so it has to be used only when encoding the movie, not when doing random access in it.
The speed gain is not as great as one may hope, because SADs can't be saved ( it would take too much space ) and so have to be recomputed.
The filter MVDenoise now works on 5 frames, and its parameters are now "thT" and "sadT" ( have a look in the documentation to see how they work ). It works nice ( very good for heavy denoising )
The scene change detection thresholds have slightly changed. Now, a block has changed if its SAD it over thSCD1. The default for thSCD1 is 300, and for thSCD2 it is 130. It orks well ( better than the previous SCD engine ).
Last cleanings in the search of the motion vectors. It should be slightly faster
More search parameters can be set by the user, especially the search algorithm. See the documentation
Server / client implemented. You now first have to use MVAnalyse, and then the filter you want. Look at the documentation and at the examples I'll give alter.
MVCompensate is separated from MVShow ( it's more logic that way ). For the moment, it doesn't move the chroma ( same behavior as MVShow in the latest releases )
Some cleaning in MVBlur / MVInterpolate / MVConvertFPS, but still some work to do. Now, MVBlur blurs around the frame, not between the frame and the previous one.
Half of the work is done for writing vectors to a file. But the resulting file will be large ( around 500 MB - 1 GB I guess ).
MVDenoise is slightly faster ( at least it should )
Copies are optimized inside the filter, thanks to avisynth's copy functions.
MVShow can display the mean SAD of the compensation ( using showsad = true )
MVInterpolate makes its come back.
MVConvertFPS should work on the last few frames of the clip
MVInterpolate doesn't exist anymore.
MVBlur and MVConvertFPS have been improved. They also have got new parameters, have a look at the documentation.
MVShow gets back its compensate mode ( MVShow(cm = true) )
0.9.1 - 12.05.2004
First version renamed to MVTools
0.1-0.6 Released 24.01.2004 - 01.04.2004 by Manao
First public versions MotionVectors (Motion.dll).