Releases: HomeOfAviSynthPlusEvolution/neo-mv
Release list
neo-mv 0.9.3
Changes
- Added global and local SAD/DCT and SAD/SATD mixtures, completing the matching-policy coverage corresponding to AviSynth MVTools
dct=0–10. - Optimized DCT transforms and coefficient quantization with float32 arithmetic for 8–16-bit integer clips, with dedicated square paths for 8x8, 12x12, 16x16, 24x24, 32x32, 48x48, 64x64, and 128x128 blocks and a generic path for other supported shapes.
- Fixed Linux ARM64 compilation of the SVE DCT transpose path.
- Updated the API reference, English and Chinese knowledge bases, and all three README translations with mixed-metric details and the revised DCT implementation.
API change
Added five metric choices to Analyse, AnalyseMany, and Recalculate:
metric="sad_dct_global": SAD/DCT mixture with a frame-pair brightness weight.metric="sad_dct_local": SAD/DCT mixture triggered by local brightness changes.metric="sad_satd_global": SAD/SATD mixture with a frame-pair brightness weight.metric="sad_satd_local": SAD/SATD mixture triggered by local brightness changes.metric="sad_satd_global_half": global SAD/SATD mixture with the SATD contribution limited to 50%.
The two local modes accept metric_weight and metric_threshold, both in [0,1], to configure the transform contribution and brightness-change threshold. The API reference includes a migration table from upstream MVTools' numeric dct modes. Existing sad, satd, and dct selections remain valid.
DCT now uses float32 arithmetic instead of strict rounding refinement. DCT and mixed-metric results are not guaranteed to be bit-exact with upstream MVTools or previous neo-mv versions; rounding and truncation differences can change motion-vector selection between nearly tied candidates.
Build dependencies
- Removed the Boost.Multiprecision and Boost.Config dependencies from production code and tests. DCT accuracy tests now use an independent double-precision reference.
Full Changelog: 0.9.2...0.9.3
neo-mv 0.9.2
Changes
- Added DCT block matching to
Analyse,AnalyseMany, andRecalculatefor 8–16-bit integer clips, supporting all valid block sizes, including 6x6 and 16x2. Chroma continues to use SAD. - Added SIMD-accelerated DCT transforms and coefficient quantization, with exact handling of rounding boundaries for consistent scalar and SIMD results.
- Improved motion-prediction interpolation and 8x8 high-bit-depth YUV420 motion-search performance with Highway SIMD.
- Updated the API reference, English and Chinese knowledge bases, and all three README translations with matching-metric details and DCT calculation explanations.
API change
The satd Boolean parameter has been replaced by the metric string parameter in Analyse, AnalyseMany, and Recalculate:
metric="sad"(default): pixel SAD.metric="satd": Hadamard SATD; both block dimensions must be divisible by 4.metric="dct": quantized DCT coefficient distance; integer clips only.
Update existing scripts from satd=true to metric="satd", or from satd=false to metric="sad" (or omit it). Recalculate selects its metric independently and defaults to SAD. Error thresholds are not automatically converted between metrics.
Build dependencies
- Added header-only Boost.Multiprecision and Boost.Config dependencies for strict DCT rounding. CMake fetches pinned sources; no Boost runtime library is required.
Full Changelog: 0.9.1...0.9.2
neo-mv 0.9.1
Changes
- Added support for 6x6 (SAD only), 12x12, 24x24, and 48x48 block sizes.
Full Changelog: 0.9.0...0.9.1