← Back to team overview

hugin-devs team mailing list archive

[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