Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NTSC chroma-encoder filter changes #760

Merged
merged 2 commits into from
Jun 22, 2022
Merged

Conversation

ifb
Copy link
Contributor

@ifb ifb commented Jun 22, 2022

Add --chroma-mode narrowband-q

This low-passes the Q channel such that it uses about half the bandwidth of the I channel. Non-equiband Y'IQ encoder/decoders were never widespread because of the extra complexity according to Poynton. Including it here for testing/completeness.

NTSC uses a different chroma low-pass than PAL for the wideband channels. Use the filter suggested by Clarke.

While neither of these two filters from Clarke quite match the filter template, anything I created in Iowa Hills that did meet the spec was more complex and ended up lowering PSNR vs. Clarke. DSP gurus are welcome to revisit this.

ifb added 2 commits June 21, 2022 19:32
Adds a new chroma-mode, 'narrowband-q' to low-pass the Q
component.  Obsolete, but interesting for testing.
Change the filter used in the wideband-yuv/yiq modes to
one suggested by Clarke for NTSC.

Small PSNR improvement, up to 0.03 dB.
@atsampson atsampson merged commit 6bf7d0e into happycube:master Jun 22, 2022
@atsampson
Copy link
Collaborator

Looks good to me - thanks!

As you've been thinking about NTSC I/Q filters, do you have any suggestions for the ones in the NTSC decoder (colorlpi and colorlpq generated here and used here)? The existing ones are Butterworth filters which aren't phase-linear, and this is quite visible for the narrow Q filter in particular.

@ifb ifb deleted the ntsc-enc-filters branch January 21, 2023 17:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants