Repository navigation
MvTools2 2.7.48 (20261029) - ARM64, new formats, AVX2, many fixes
(probably the last update)
Motion estimation and compensation for AviSynth+ and AviSynth 2.6, with DePan and DePanEstimate. New in this release: Windows on ARM64 and Linux aarch64 builds, and all AviSynth+ V13 formats.
MvTools2 2.7.48, DePan 2.16, DePanEstimate 2.13 (20261029) - pinterf
Highlights
- ARM64: Windows on ARM64 and Linux aarch64 builds, with NEON code for the hot paths (SAD, SATD, DCT, MSuper, overlaps, MDegrain), bit-identical to the C path.
- New formats: the AviSynth+ V13 formats YUV(A) 4:1:0, 4:1:1, 4:4:0 and Y with alpha (YA), all bit depths. Clips with alpha (YUVA, YA, planar RGBA) are accepted; the alpha is copied from the source.
- DePan alpha borders: DePan, DePanInterleave and DePanStabilize mark the new empty borders in the alpha plane (#67, #43);
alphainvertswaps the values. - New parameters: MAnalyse
search_coarse(from the SVP fork, #68) andtrymanyall. - Block sizes: every block size works with subsampled chroma when it is a multiple of the subsampling (e.g. 16x12 in 4:2:0, 4x4 in 4:1:1); 39 missing chroma block functions were added. Unsuitable sizes give a clear error instead of a crash or a missing function.
- Faster on x86: AVX2 for MSuper sharp=1/2 interpolation (up to 1.5x) and the 10-16 bit SATD of dct=5..10 (MAnalyse about 1.3x).
- SSE2 is enough: the ClangCL, MSVC_XP, GCC and Linux builds need only SSE2; SSE4.1, AVX and AVX2 are chosen at runtime.
Fixes
- 32 bit float: garbage (black) output with overlap in MDegrain1-6, MDegrainN, MCompensate, MBlockFps (#69, #51), regression since 2.7.45; MDegrain1-6
limitChad no effect. - Chroma shift (#59): motion compensated chroma of 4:2:0, 4:2:2, 4:1:1 clips was shifted up/left.
- Overlap level error: the overlap window weights summed to 2047..2049 instead of 2048, so with overlap 8 or more a flat area was off by up to 1/2048 (16 bit: 30000 became 29985..30015): a faint static grid on bright, smooth 12-16 bit areas (MDegrain, MCompensate, MBlockFps).
- Crashes: blksize 6x24 and 12x3 (MAnalyse); MDegrain1-6
out16=truewith block width 12; YUY2planar=truewithlimit; the C path vector upsizer of the MFlow family; MShow, MDepan text at 10-16 bits. - Wrong results: MCompensate ignored
cclip; MFlowBlur chroma padding with hpad != vpad; greyscale (Y) MDegrain overwrote part of the luma; MSuper with odd chroma size used uninitialized memory; 8 bit SAD of block widths 6, 12 and 24 in the GCC/Linux builds; 16 bit MSuperrfilter=0on CPUs without SSE4.1; several C path differences from SIMD (DCT, SATD, luma sums). - DePan / DePanEstimate: DePanStabilize on YUY2 (garbage),
addzoom=true(no stabilization), unfilled borders withprev/next; DePanScenes marked only part of the planes; bicubic shift weights (level error from 10 bits); inputlog without a data clip; DePanEstimate frame 0 trust,zoommaxwindow past the frame edge.
Changes to note
- Chroma output (and vectors with
chroma=true) of subsampled clips changes slightly (#59 fix); vectors of clips with an odd chroma width or height change. - MDegrain1-6: the experimental
out32parameter is removed (scripts passing it get an error). - MAnalyse, MRecalculate dct=5..10 (SATD) need a block width and height divisible by 4 (the SATD part was silently 0 for other sizes).
lsb=trueis an error for clips with alpha and for YUY2; DePan, DePanEstimate reject 32 bit float.- YUY2 is converted to YV16 internally, the super clip of a YUY2 source is YV16.
Full change list: CHANGELOG.md, DePan/DePanEstimate: README_depans.txt. Documentation is in the archive.
Download
mvtools-2.7.48-with-depans20261029.7z: mvtools2.dll, DePan.dll, DePanEstimate.dll for each build.
| Folder | For | Build |
|---|---|---|
x64\ClangCL, Win32\ClangCL |
Windows x64 / x86 | LLVM clang-cl, Visual Studio 2026 |
x64\MSVC_XP, Win32\MSVC_XP |
Windows x64 / x86, also Windows XP | Visual C++ v141_xp |
ARM64\llvm-mingw |
Windows on ARM64 | llvm-mingw, NEON |
When in doubt, use ClangCL. On Windows XP use MSVC_XP.
Installation
- AviSynth+: copy the three DLLs of your build into the plugins folder of the matching bitness, or load them with
LoadPlugin. - AviSynth 2.6: load them with
LoadPlugin.
Requirements
- The Visual Studio builds (ClangCL, MSVC_XP) need the Microsoft Visual C++ Redistributable; the ARM64 build has the C++ runtime linked statically.
- The DCT modes (dct=1..4) and DePanEstimate need the fftw3 single precision library:
libfftw3f-3.dll(orfftw3.dll); ARM64 needs an ARM64 build of it. - The MSVC_XP build contains the AVX2 code too, Windows XP itself does not allow AVX: there it runs the SSE2..SSE4.1 code.
Developed with AI assistance: most of the work was done with Claude.