[digikam] [Bug 378804] New: lensfun uses only one core, pls. parallize

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] New: lensfun uses only one core, pls. parallize

bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

            Bug ID: 378804
           Summary: lensfun uses only one core, pls. parallize
           Product: digikam
           Version: 5.5.0
          Platform: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: wishlist
          Priority: NOR
         Component: ImageEditor-Tool-LensDistortion
          Assignee: [hidden email]
          Reporter: [hidden email]
  Target Milestone: ---

i noticed that automatic lens correction (currently DK 5.5) is very slow and
uses only one CPU core. When doing this in Gimp (lensfun-plugin), its way
faster and uses all cores.

This is in Manjaro on a Core-i5

So please enable all cores (port to QtConcurrent).

Thanks

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] lensfun uses only one core, pls. parallize [patch]

bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

[hidden email] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|lensfun uses only one core, |lensfun uses only one core,
                   |pls. parallize              |pls. parallize [patch]
                 CC|                            |[hidden email]

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] lensfun uses only one core, pls. parallize [patch]

bugzilla_noreply
In reply to this post by bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

--- Comment #1 from [hidden email] ---
Created attachment 105056
  --> https://bugs.kde.org/attachment.cgi?id=105056&action=edit
Parallel processing of stage 1,2,3 of Lensfun filter.

The patch attached process in parallel all filters used with Lensfun interface.

The image is cut as portions, depending of CPU available and forked on each
core with QtConcurent.

It still certainly a race condition at init. Sometime the final redering is
corrupted at the first time, but changing a settings give a good result finaly.

So the main changes are here, but a polish is required before to be applied on
git/master.

Gilles Caulier

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] lensfun uses only one core, pls. parallize [patch]

bugzilla_noreply
In reply to this post by bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

--- Comment #2 from [hidden email] ---
Maik,

If you can reproduce the problem, please take a look in code. Personalty, i
don't see the dysfunction. Perhaps the problem is located on front of filter,
when the GUI scan metadata to found right settings from image...

Gilles

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] lensfun uses only one core, pls. parallize [patch]

bugzilla_noreply
In reply to this post by bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

--- Comment #3 from [hidden email] ---
I identified that Geometry correction introduce the problem at first time when
option is only selected.

After to select Distortion, for ex, all is fine. Deselecting Distortion and
only select Geometry give a good result.

Gilles

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] lensfun uses only one core, pls. parallize [patch]

bugzilla_noreply
In reply to this post by bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

--- Comment #4 from [hidden email] ---
Created attachment 105057
  --> https://bugs.kde.org/attachment.cgi?id=105057&action=edit
Screenshot of wrong result at init with Geometry correction selected.

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] lensfun uses only one core, pls. parallize [patch]

bugzilla_noreply
In reply to this post by bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

--- Comment #5 from [hidden email] ---
Created attachment 105058
  --> https://bugs.kde.org/attachment.cgi?id=105058&action=edit
Screenshot of good result after to apply Distorsion + Geometry corrections, and
finally let's Geometry alone selected...

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] lensfun uses only one core, pls. parallize [patch]

bugzilla_noreply
In reply to this post by bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

--- Comment #6 from [hidden email] ---
Created attachment 105059
  --> https://bugs.kde.org/attachment.cgi?id=105059&action=edit
Test JPEG image to reproduce the dysfunction.

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] lensfun uses only one core, pls. parallize [patch]

bugzilla_noreply
In reply to this post by bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

--- Comment #7 from Maik Qualmann <[hidden email]> ---
Yes, I can confirm the dysfunction. Another thing is the chromatic aberration
correction. Does not look correct either. I'm looking at it tonight.

Maik

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] lensfun uses only one core, pls. parallize [patch]

bugzilla_noreply
In reply to this post by bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

Maik Qualmann <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #105056|0                           |1
        is obsolete|                            |

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] lensfun uses only one core, pls. parallize [patch]

bugzilla_noreply
In reply to this post by bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

--- Comment #8 from Maik Qualmann <[hidden email]> ---
Created attachment 105063
  --> https://bugs.kde.org/attachment.cgi?id=105063&action=edit
lensfunfilter.patch

fix vignetting / color correction and distortion / geometry corrections.

Maik

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] lensfun uses only one core, pls. parallize [patch]

bugzilla_noreply
In reply to this post by bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

--- Comment #9 from [hidden email] ---
Comment on attachment 105063
  --> https://bugs.kde.org/attachment.cgi?id=105063
lensfunfilter.patch

You have right Maik,

This version of the patch fix the problem. I forget to catch loop variable at
end of last filter stage.

So you can apply this patch over git/master now, and close this entry.

Thanks

Gilles

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 378804] lensfun uses only one core, pls. parallize [patch]

bugzilla_noreply
In reply to this post by bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=378804

Maik Qualmann <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Version Fixed In|                            |5.6.0
      Latest Commit|                            |https://commits.kde.org/dig
                   |                            |ikam/0238f8a8234154b3d4c887
                   |                            |7de94b72505f55ad7d
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |FIXED

--- Comment #10 from Maik Qualmann <[hidden email]> ---
Git commit 0238f8a8234154b3d4c8877de94b72505f55ad7d by Maik Qualmann.
Committed on 17/04/2017 at 20:57.
Pushed by mqualmann into branch 'master'.

use QtConcurrent to parallelize the Lensfun filter and use all CPU cores
FIXED-IN: 5.6.0

M  +2    -1    NEWS
M  +119  -87   libs/dimg/filters/lens/lensfunfilter.cpp
M  +3    -0    libs/dimg/filters/lens/lensfunfilter.h

https://commits.kde.org/digikam/0238f8a8234154b3d4c8877de94b72505f55ad7d

--
You are receiving this mail because:
You are the assignee for the bug.