Add Reduce noise: BM3D filter and fractional decoding for wavelet codecs

Hello. I am currently using Shotcut after having used everything on the market. Shotcut was my favorite on windows.
First I want to thank you for the work you have been putting in this FREE OSS program. I am in a bad situation, lost everything and living/eating for less than 50€ per month (in 21th century looking for a job, having an internet connection is a priority over food sadly), I sold everything of value, kept only my cheap laptop and converted my full workflow to open-source and free software. I can still try to work efficiently even if I am broke.
So thank you and to all the OSS devs, from everyone you have ever helped indirectly.

First. I have read the forum and gathered some information. I could understand that realtime filters is a priority (fast processing).Yet I want to digress and propose you add some resource heavy filters that we could use for export. The aim of these filters would be to propose intensive algorithm to shotcut users, even if they cannot be processed close to realtime.
They could be labelled as “EXPORT / Reduce noise : BM3D (not realtime)”. This would allow shotcut to be used as a frameserver, and bring a new crowd to the app.
I am currently looking for a BM3D motion compensated denoiser algorithm, and if you could add it to shotcut it would be perfect.

Second, would be to add “fractional decoding” for wavelet based codecs. Now that I use a low power laptop, everything counts to save processing power, and using Wavelets/cineform proxies has given me the best performances of every codec I ever used. I think wavelets codecs are the future, and this feature would set you on par with paid program like resolve, and push wavelets codecs on the spotlight. But I think this would be very intensive and not feasible by a small team like shotcut.

But I think you should REALLY focus on denoising, if you could create/add something that rivals Neatvideo or Resolve Denoiser you will be on top of everything (and probably become the most used video app). Some people are paying 299€, only for the denoising feature in resolve !

I wish you the best and hope I could help make shotcut better. If not, I was very happy to talk with you. Have the best day.

PS. I want to thank Austin for his vaguedenoiser.zip plugin for shotcut. I started using it over the built in one and I want to say it’s excellent.

4 Likes

I think most people already find the filters less than realtime. They vary widely with some supporting multithreading and others not and some being both very slow and unthreaded.

The next time we upgrade FFmpeg to version 4.2 (after version 20.07) there is the possibility to add BM3D.

Shotcut can decode Cineform through FFmpeg, but it is unable to encode them. I do not think FFmpeg supports fractional decoding for wavelet yet. When it does, some work will lilely be needed in MLT to enable it based on requested resolution.

4 Likes

Thanks for the kind words. I hope your situation improves, and I’ll be thinking of you. I too discovered Shotcut as a result of having no money.

I would be happy to add bm3d as a filter for you, but it needs to be made visible in MLT Framework first. This may take a little time. If you need something right away, the footage could be processed directly with FFmpeg command line. I can write some examples if you want.

PS… you may have noticed already, but vaguedenoiser.zip is no longer necessary because it is included with Shotcut as “Reduce Noise: Wavelet” starting with version 20.06.

4 Likes

Thank you for taking the time to respond guys.
Shotcut, You should definitely add advanced filter, and concentrate on denoising, because editing is on point. And don’t focus too much on speed for denoising, most of the advanced user don’t activate it during edit, only activate before export. As long as it is good.
If you want to encode cineform you should check “cfenc” project on github. Maybe you could add it to shotcut. Good luck guys.

Austin, Thank you. I did not know you had a similar experience, good luck. The hard part is not getting angry at yourself or loose hope, because if you’re sad depression will hit you hard…

I still don’t know why I shared my story, but it just felt like the best way to give thank all the open-source devs. Sorry for this guys.

No problem. Thanks for the tip about cfenc. Some quick reading on it explained why a Cineform encoder doesn’t exist in FFmpeg and probably never will with the current SDK… the Cineform SDK is too tightly tied to the x86 architecture, and FFmpeg wants to be open to more architectures. Now we know.

https://trac.ffmpeg.org/ticket/6863#comment:11

1 Like

Yes and everything is moving toward the arm architecture, maybe the encoder will be converted to be used on arm when all macs will be ARM based.

Here are some features that I think are essential for Shotcut
1*) PLEASE synch the playhead with clip selection on the timeline. PLEASE The lack of this has caused me so much extra work from editing the wrong filter etc. The playhead should go to the beginning of the clip of the selected track when a clip is selected. Conversely, moving the playhead to a time position should select the clip under the playhead on the selected track.
2) Text handling needs a lot of streamlining so that consistent titling can be done. Resizing the text to fit the box is a useful feature, but so is resizing the box to fit the text at the selected point size.
3) The scroll button under the timeline has little contrast to the scrollbar in either theme, making it hard to find at times.
4) Provide a mechanism to reset the playhead to the beginning of the timeline. Currently it can be reset to the beginning of an element on a track, which is useful, but it is also useful sometimes to go to the beginning or the project.
5) Make “adjust opacity instead of fade from black” the default setting for Fade Video filters, and if the clip has nothing to fade with, then fade it with black (nothing). At present, a clip that is set for “Adjust opacity instead…” just appears instead of fading in/out if it is on a track by itself.
6)Allow the timeline to be expanded beyond the limits of the current project so that items such as pictures etc, added at the end can be lengthened.
7) WRT to item 6, provide a method to enter the duration of things like pictures directly.
8) Provide a method to zoom into the time scale under the preview window so that precise editing of in/out points can be achieved.
9) Allow additional tracks to be added above or below other tracks. At present, new tracks are simply added above the top track. This would allow project elements to be layered in an order defined by the user.
10) If it is not already available, allow track order to be changed, ie for tracks to be moved up or down the stacking order.
I have just started with Shotcut and have come from 10 years experience with other NLEs. Shotcut has some really good features, but there are some things that would make my editing easier.
I will be making other suggestions as time and experience demand.
One feature that i LOVE about Shotcut is the batching of rendering jobs which allows editing to continue while rendering is in progress. Well done to the folks who have created and maintain this great program.
Scott Hendry

2 Likes

To all, please do not hijack a thread by adding off-topic things. There is a category in the forum for Suggestion with years of history. Search for it. If it was already mentioned but closed for being old, you can like it (heart icon).

You can double-click to select and seek to the beginning of the clip.

  1. Provide a mechanism to reset the playhead to the beginning of the timeline.

There is an obvious keyboard shortcut for that.

  1. Make “adjust opacity instead of fade from black” the default setting for Fade Video filters,

Then it will not do anything when used with videos on V1, which is the majority. This is because V1 is not blended with the hidden black background to improve performance.

6)Allow the timeline to be expanded beyond the limits of the current project so that items such as pictures etc, added at the end can be lengthened.

You can already do that.

  1. Allow additional tracks to be added above or below other tracks.

This is already available as Insert Track (inserts above the current track). Right-click a track header makes it current in addition to showing the menu, and there are other ways current track changes.

Most other things are already suggestions. Thank you for your feedback.

1 Like

Suppose the playhead is in the middle of a clip because a color grading filter is being adjusted for the contents of that specific frame. The next time the clip is selected, the playhead would jump to the front of the clip and lose the frame being color graded. This would make it very inconvenient to color match two clips temporarily stacked on top of each other. Likewise, moving the playhead on every clip selection would seriously impair the precision of people setting up keyframe animations. On this particular item, I find the current mechanics in Shotcut to be more efficient.

1 Like

OK, My bad for not searching for the “suggestions” thread. I saw this thread and the sub “suggestion” under the title and thought this was the suggestion thread.
Again sorry.

1 Like