You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Ellipsoid image creation takes about twice as long in EF2 as in EF1
Expected behavior
EF2 should be faster than EF1
Additional context
Each foreground pixel has to be given the EF value of the maximal ellipsoid that contains it.
In EF1 that was achieved by limiting search scope aggressively:
the z bound (and y bound) of each ellipsoid was calculated so that a shortlist of potential ellipsoids was generated for each slice/row
the ellipsoid list was sorted once and traversed from largest to smallest, so that the whole list did not need to be searched each time: the first positive contains() hit was guaranteed to be the biggest, no need to search the rest.
the contains() method was optimised to exclude unlikely ellipsoids cheaply and early in its execution
keeps only a list of those ellipsoids are possibly relevant for this z slice.
The ellipsoids are already sorted at this point, so the same idea of finding the first contains() is used.
Contains() uses ~the same way of excluding unlikely ellipsoids, IIRC.
I think ways of improving this are therefore refactoring the code (different way of parallelisation) or coming up with new ideas to the concept?
keeps only a list of those ellipsoids are possibly relevant for this z slice.
OK. But it is not strict enough, limiting only to a bounding sphere (there is no guarantee that the longest axis is in z) and also needs to filter in y. See the axis aligned bounding box, which allows filtering in z and y.
Contains() uses ~the same way of excluding unlikely ellipsoids
I see that QuickEllipsoid has the same contains() method as EF1, but it seems not to be used.
Describe the bug
Ellipsoid image creation takes about twice as long in EF2 as in EF1
Expected behavior
EF2 should be faster than EF1
Additional context
Each foreground pixel has to be given the EF value of the maximal ellipsoid that contains it.
In EF1 that was achieved by limiting search scope aggressively:
contains()
hit was guaranteed to be the biggest, no need to search the rest.contains()
method was optimised to exclude unlikely ellipsoids cheaply and early in its executionEF2 does this:
The text was updated successfully, but these errors were encountered: