i try to improve multiple frames mean denoise filter to get better result on dynamic scene.
As i said, common filter is the mean of 5 frames using a rolling buffer.
This time, i keep the general idea but i add a map to the frame i want to denoise.
This map is the size of the frame and each pixel value is the number of frames i will mean. If there is a transition in the pixel value, then the map will get the value 1 and only 1 frame will be use for the final result. if there is no new transition in the pixel value, then the map value is increased until it reach the maximum value (5 frames to mean).
That is to say each pixel gets its own number of values to be meant depending of the changes in the state of the pixel.
With that kind of treatment, the “ghost effect” is lower.
A small video to show the different kind of denoise results.
UP video from left to right : Raw video with heavy noise, KNN, NLM2
DOWN video from left to right : 5 frames mean, 25 frames mean, independent pixels mean with number of mean map
For sure, my last method is not perfect but it’s interesting result.