Reduce redundant video FFT work - #1060
Merged
happycube merged 1 commit intoAug 12, 2026
Merged
Conversation
Use real transforms for real-valued dropout and video outputs, batch the video inverse transforms, and apply the existing filter offsets in the frequency domain. Add deterministic NTSC and PAL comparisons against the former full-FFT path. Against current main, the synthetic 200-block benchmark reduces mean demodulation time from 2.60 to 1.81 ms for NTSC and from 2.83 to 2.06 ms for PAL. All 84 Python tests pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Checklist
Description
Reduce redundant FFT work in the video demodulation path while preserving its output contract.
Motivation
The existing path computes several full-complex transforms and performs separate inverse transforms and post-transform rolls even though the dropout and video outputs are real-valued. This change avoids that redundant work.
Related Issues
N/A
Changes Made
irfft.Testing
nix develop --command python -m pytest -q— 84 passed.nix develop --command python -m pytest -q tests/test_demod_fft.py— 2 passed.Screenshots (if applicable)
N/A
Additional Notes
No new dependency is introduced; this uses the existing SciPy FFT implementation. The record-array output construction and public behavior remain unchanged.