hugin-devs team mailing list archive
-
hugin-devs team
-
Mailing list archive
-
Message #06992
[Bug 1778802] Re: PATCH: speed improvements
I found one problem with ImageVariable.patch: MaskPolygon::parsePolygonString creates MaskPolygon instance without initialized bounding box. Before it was fixed by operator=, with ImageVariable.patch the instance is shared or copied with default copy constructor so it never gets fixed and masks in nona do not work correctly.
The attached patch should fix it.
ImageVariableGroup.patch: actually I'd expect that getImage is inlined, but it is not for same reason. However I don't fully understand the code around.
GreatCircles-image.patch: I think this is not a workaround,
equirectangularImage is still the same and it does not make sense to
construct it again for each line. Your patch however seems to help.
** Patch added: "mask_bbox.patch"
https://bugs.launchpad.net/hugin/+bug/1778802/+attachment/5157946/+files/mask_bbox.patch
--
You received this bug notification because you are a member of Hugin
Developers, which is subscribed to Hugin.
https://bugs.launchpad.net/bugs/1778802
Title:
PATCH: speed improvements
Status in Hugin:
New
Bug description:
I tried to profile hugin on a large project with 500 images and 100000
control points. I identified and fixed some bottlenecks:
ImageVariable.patch - reimplemented ImageVariable with shared_ptr -
reduces complexity from O(n) to O(1)
ImageVariableGroup.patch - move some method calls out of a loop
GreatCircles.patch - reduce number of segments for short lines
GreatCircles-image.patch - HuginBase::SrcPanoImage is expensive,
initialize equirectangularImage only once
To manage notifications about this bug go to:
https://bugs.launchpad.net/hugin/+bug/1778802/+subscriptions
References