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