Currently denoising consists of:
- models
- MinimumProjectionConfig
- MSEDetectorConfig
- GradientDetectorConfig
- BlackAreaDetectorConfig
- NoisePatchConfig
- FrequencyMaskingConfig
- DenoiseConfig (wraps the others)
process/video.py
- NoisePatchProcessor
- FrequencyMaskProcessor
- PassThroughProcessor
- MinProjSubtractProcessor
- denoise
process/frame_helper.py
- InvalidFrameDetector
- GradientNoiseDetector
- BlackAreaDetector
- MSENoiseDetector
- FrequencyMaskHelper
- cli
I think that's it?
the processors seem to just wrap the frame helpers, so i think those two things can get collapsed.
We want to split scoring noise in frames from dropping frames for being too noisy, and the configs conflate the two, so we need to also split up the configs so that we can parameterize noise scoring separately from frame dropping.
Then we want to simplify the implementations, where there is some structure in the frame helpers and processors, but it gets pretty messy and has a decent bit of code duplication.
Currently denoising consists of:
process/video.pyprocess/frame_helper.pyI think that's it?
the processors seem to just wrap the frame helpers, so i think those two things can get collapsed.
We want to split scoring noise in frames from dropping frames for being too noisy, and the configs conflate the two, so we need to also split up the configs so that we can parameterize noise scoring separately from frame dropping.
Then we want to simplify the implementations, where there is some structure in the frame helpers and processors, but it gets pretty messy and has a decent bit of code duplication.