- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I get nice results wit large numbers of iterations of ippiDeconvLR. However, because of the large number of iterations, it takes a long time and triggers the following questions:
1. User-friendly software implies that the user can stop (and is informed about) lengthy operations. So, how do I interrupt ippiDeconvLR ? Run it in a separate thread and then kill the thread ? Seems rather crude (and an invitation to memory leaks).
2. Is ippiDeconvLR threaded internally ? Threading it externally simply by tiling, is not possible, see https://lmb.informatik.uni-freiburg.de/Publications/2010/Tem10a/LucyRichardsonDeconvolution.pdf
Sincerely,
Adriaan van Os
- Tags:
- Development Tools
- General Support
- Intel® Integrated Performance Primitives
- Parallel Computing
- Vectorization
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
you are right, the IPP's API doesn't allow a user to interrupt the computation till the very end.
ippiDeconvLR is not threaded internally.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Then I have to reimplement ippiDeconvLR in application code as it does give good results, but is unpractical to use.
What LR method uses ippiDeconvLR ? Additive or multiplicative ? See e.g. https://www.strollswithmydog.com/richardson-lucy-algorithm for the difference.
Regards,
Adriaan van Os
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In the mean time, I implemented the multiplicative Lucy-Richardson iteration in application code. Unlike ippiDeconvLR, it is interruptible and fully threaded. And faster.
Also, it doesn't suffer from edge effects, as in attached photo. The way that Intel can fix the edge artifacts in ippiDeconvLR is by changing the border type used internally from ippBorderConst to ippBorderRepl or ippBorderMirror. That is, I get the same edge artifacts if I use ippBorderConst and changing it to ippBorderRepl or ippBorderMirror fixes the problem.
Regards,
Adriaan van Os
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Andriaan van Os,
Thank you for diving into research IPP functionalities and sent out your comments! We will investigate ippiDeconvLR internally, and back to here if there is any update.
Best Regards,
Ruqiu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Depending on the passed kernel, the actual number of Lucy-Richardson iterations - before the quality of the resulting image starts to decrease - is between 1 and 10000. I don't see how this number can be known beforehand. Therefore, the number of iterations must be steerable, either by the user or by an automated assessment algorithm. In other words, a Lucy-Richardson iteration is useless, unless it is actually stoppable and continuable.
Regards,
Adriaan van Os
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page