MeteorRain
25th September 2026, 13:17
neo-fft is an independent reimplementation of fft3dfilter and dfttest project.
https://github.com/HomeOfAviSynthPlusEvolution/neo-fft
- Disclaimer: This project is written from scratch by AI under my supervision and steering
- Modern C++ 17
- Google Highway SIMD (SSE2/AVX2/AVX512/AVX10/Neon/SVE)
- Windows / Linux + amd64 / arm64
- Based on DualSynth2 framework, supporting both AVS+ and VS
- PocketFFT instead of FFTW3 backend
- New prefixed functions / namespace not to conflict with existing plugins
- Automated full black-box testing coverage against neo-fft3d and neo-dfttest project
The intention of this project is to modernize neo-fft3d and neo-dfttest, and recreate the project by rewriting everything from scratch.
Performance wise, it's faster than previous neo- projects.
It's a drop-in replacement of neo-fft3d and neo-dfttest with some function name change.
Results are not bit-identical, and can introduce minor difference from rounding error.
You may want to reduce host platform multi-threading (prefetch / core.num_threads) for temporal filters to reduce cache miss, or greatly increase cache_mb to fit the frame caches. Also, Kalman is not bit-identical upon seeking.
https://github.com/HomeOfAviSynthPlusEvolution/neo-fft
- Disclaimer: This project is written from scratch by AI under my supervision and steering
- Modern C++ 17
- Google Highway SIMD (SSE2/AVX2/AVX512/AVX10/Neon/SVE)
- Windows / Linux + amd64 / arm64
- Based on DualSynth2 framework, supporting both AVS+ and VS
- PocketFFT instead of FFTW3 backend
- New prefixed functions / namespace not to conflict with existing plugins
- Automated full black-box testing coverage against neo-fft3d and neo-dfttest project
The intention of this project is to modernize neo-fft3d and neo-dfttest, and recreate the project by rewriting everything from scratch.
Performance wise, it's faster than previous neo- projects.
It's a drop-in replacement of neo-fft3d and neo-dfttest with some function name change.
Results are not bit-identical, and can introduce minor difference from rounding error.
You may want to reduce host platform multi-threading (prefetch / core.num_threads) for temporal filters to reduce cache miss, or greatly increase cache_mb to fit the frame caches. Also, Kalman is not bit-identical upon seeking.