pinterf / fft3dfilter

fft3dfilter
GNU General Public License v2.0
30 stars 2 forks source link

Scene change detection #2

Open Vpstr opened 5 years ago

Vpstr commented 5 years ago

Hello! I've recently started using this filter and first time I saw it on the job I was amazed by its power - it looked like a stroke of a magic wand, all the heavy noise in my movie was gone! But an unpleasant discovery awaited me - the filter doesn't have a scene change detection, so the frames at scene changes (one or two depending on the mode for Wiener filter) suffer from artifacts that vanish from subsequent frames. I tried the Kalman mode, but it won't manage at all. This defect makes the tool useless, but the most surprising thing is that there are almost no discussions of this issue on doom9, like everyone have conspired to ignore the elephant in the room. But this elephant is BIG and I have no idea why the original author didn't add this feature, cause in my understanding this is a simple update. So can you do it? This feature is absolutely critical.

pinterf commented 5 years ago

Not now. But it is still worth asking about the workaround scripted methods. While MDegrain can safely recognize scene change on having or not good motion vectors, the possible easy implementation here would work only like TemporalSoften does. http://avisynth.nl/index.php/Soften

Vpstr commented 5 years ago

I don't fully understand. You say that MDegrain is another denoiser which unlike this filter has the scenecut detection, but it's results are similar to those of TemporalSoften, is that correct? And as the results of TemporalSoften are quite poor, I assume that it's not a rival for FFT3D. You also said about motion vectors and I've seen several mentions of them being used for noise removal. I don't understand how the two are related. Could you give me a brief explanation of this or a link to some book where it is explained? I'm not an expert in image processing, so I have to play it by ear.

pinterf commented 5 years ago

I just mentioned another two denoisers that use scene change detection with somewhat different method, MDegrain uses a more sophisticated method. TemporalSoften is just checking SAD difference for all pixels in the frame, while MDegrain can decide based on the percent of unusable motion vectors. It's long to explain, I recommend you to check the html documentation in MVTools2 on MDegrain filter.

Vpstr commented 5 years ago

OK, I'll check it out, thank you. And the correct spelling is sophisticated.

Zodler commented 4 years ago

I'm glad someone mentioned this. Yes the scene change detection is missing and this is very bad with bt=5. Some times you get 4 bad frames in a scene change 2 before 2 after. With bt=3 it's better. You can only 2 bad frames.

Zodler commented 4 years ago

OK, I'll check it out, thank you. And the correct spelling is sophisticated.

Vpstr have you done anything about these artifacts? What do you do?