Improve, and always enable, NTSC IQ filters #774
Merged
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.
This is the result of some experimentation following the discussion in #513...
Comb::filterIQ now uses FIR filters generated by sps.remez, based on the ones the PAL decoder uses in 1D mode. They're a bit more expensive to compute but they're phase-linear and have less ripple and a sharper cutoff. This looks much better, to the point where I think enabling the filter now slightly improves quality in non-phase-compensating mode (and it was already always on in phase-compensating mode), so we can safely remove the options to disable it.
Narrowband Q mode as currently implemented makes a negligable difference to the output, and Poynton says that narrowband encoding "has not been practiced since about 1970" (plus it ought to use a different I filter too), so remove that as well.
Fixes #513.
Some comparisons - note the chroma delay on the blocks at the bottom, and the slight aliasing on the block to the left of "SW2".
No IQ filter (old default):
With the original equiband IQ filter (old default in phase-compensating mode):
With the new equiband IQ filter (new default):
Note to self: update the ld-analyse and ld-chroma-decoder docs when merged.