Skip to content

neo-mv 0.9.3

Latest

Choose a tag to compare

@github-actions github-actions released this 26 Sep 04:14
0.9.3
13f0b7f

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