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

Enable 3D decoders in ld-analyse #516

Merged
merged 8 commits into from
Jul 19, 2020
Merged

Conversation

atsampson
Copy link
Collaborator

@atsampson atsampson commented Jul 18, 2020

This is on top of the changes in #512, so don't merge until that one's been approved - it may need a rebase.

The main thing here is reworking Comb so that it provides the same decodeFrames interface for 3D decoding as PalColour, then making ld-analyse use it. Because Comb now has access to the complete batch of fields being decoded it should make future NTSC 3D work a bit easier too.

There are now radio buttons in the chroma decoder dialog that allow you to select 3D decoding for NTSC and PAL. I've left the defaults as 2D, because NTSC 3D isn't generally useful and Transform PAL 3D is a bit slow for interactive use.

This also includes a fix for the Comb::filterIQ problem in #513, and adds a checkbox for colorLpf so you can experiment with it.

@atsampson atsampson added enhancement ld-decode-tools An issue only affecting the ld-decode-tools labels Jul 18, 2020
@happycube
Copy link
Owner

I committed the other pull request as is, but I think @simoninns should look at this one (time permitting)

@happycube happycube requested a review from simoninns July 19, 2020 14:27
Previously filterIQ was being given the original YIQ data rather than
the copy, which meant it had no effect on the output. Since fixing this
results in lower-quality output (the demodulator works fine without a
postfilter), disable it by default.

The same applied to the call to denseOpticalFlow in the
currently-disabled OpenCV code, which meant that motion detection was
being done on the baseband NTSC signal rather than the luma as intended.
deemp.h provides constants for this (with the same value), so use them
instead.
It's not needed -- in 3D mode, the baseband data doesn't get
overwritten, so running splitIQ again is sufficient to rebuild the YIQ
arrays. This saves copying quite a bit of data.
This is consistent with PalColour.
This is the same interface for 3D decoding as in PalColour, so the old
decodeFrame interface that was only used by ld-analyse can go away, and
ld-analyse can now support 3D decoding (although this isn't enabled
yet).
The defaults remain as 2D for NTSC, because 3D isn't very useful at the
moment, and Transform 2D for PAL, because 3D is rather slow.
@simoninns simoninns merged commit 356fd83 into happycube:master Jul 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement ld-decode-tools An issue only affecting the ld-decode-tools
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants