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

Reducing blocking? #5

Closed
Mr-Z-2697 opened this issue Jul 14, 2021 · 5 comments
Closed

Reducing blocking? #5

Mr-Z-2697 opened this issue Jul 14, 2021 · 5 comments

Comments

@Mr-Z-2697
Copy link

Mr-Z-2697 commented Jul 14, 2021

During some simple tests, I noticed that higher value of block_step will make more blocking when sigma is high, and block_step=8 will cause a few visible blocking even when sigma is relatively low (~5).

As mawen mentioned in this issue: HomeOfVapourSynthEvolution/VapourSynth-BM3D#18 (comment), using smaller block_step in final estimate will decrease some artifacts (including blockiness).

Is it possible to do in this implementation?

@Mr-Z-2697 Mr-Z-2697 reopened this Jul 14, 2021
@Mr-Z-2697
Copy link
Author

Misoperation, sorry.

@WolframRhodium
Copy link
Owner

Yes, it is possible by specifying block_step to a low value if blocking is observed. The parameter is presented in all of the implementations.

@Mr-Z-2697
Copy link
Author

Yes, it is possible by specifying block_step to a low value if blocking is observed. The parameter is presented in all of the implementations.

Yeah, I'm already doing that.

But what I mean is "using block_step smaller than basic estimate in final estimate".

I mean if the "non-blockiness" of block_step basic and final (5,4) and (3,3) are close, that could still be some performance improvement, right?

@WolframRhodium
Copy link
Owner

WolframRhodium commented Jul 14, 2021

Each bm3dcpu.BM3D function call only corresponds to one basic estimate or one final estimate. You may use it like

basic = bm3dcpu.BM3D(src, block_step=5)
final = bm3dcpu.BM3D(src, ref=basic, block_step=4)

for your purpose.

@Mr-Z-2697
Copy link
Author

Mr-Z-2697 commented Jul 14, 2021

Each bm3dcpu.BM3D function call only corresponds to one basic estimate or one final estimate. You may use it like

basic = bm3dcpu.BM3D(src, block_step=5)
final = bm3dcpu.BM3D(src, ref=basic, block_step=4)

for your purpose.

Well, thank you so much!

I didn't know each function call olny corresponds to one estimate before.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants