merge enblend and multiblend code?

164 views
Skip to first unread message

kevin360

unread,
Apr 26, 2012, 11:22:44 PM4/26/12
to hugin and other free panoramic software
Has there been any consideration to merging the enblend code and the
multiblend code together? This could either be to actually take the
code for multiblend and put into enblend and it's selected by a
commandline switch, or enblend could have a commandline switch that
would cause it to just call multiblend and pass multiblend the
commandline arguments enblend was called with. This would make it
easy to select between the two, just by passing a commandline switch
to enblend.

Rogier Wolff

unread,
Apr 27, 2012, 1:56:33 AM4/27/12
to hugi...@googlegroups.com

Hi,
If you want this, you could make a small script that either calls
enblend or multiblend based on the presence (or not) of a
command-line switch.

Roger.

--
** R.E....@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2600998 **
** Delftechpark 26 2628 XH Delft, The Netherlands. KVK: 27239233 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
The plan was simple, like my brother-in-law Phil. But unlike
Phil, this plan just might work.

Bruno Postle

unread,
Apr 28, 2012, 5:03:53 PM4/28/12
to hugin and other free panoramic software
You can already switch Hugin from using enblend to using multiblend
in File -> Preferences -> Programs -> Enblend -> Enblend executable.

The Hugin Windows and OS X installers can include multiblend (if
they don't already), and if/when multiblend gets added to Linux
distributions it will probably end up being added as a Hugin
dependency. So there is no real reason why enblend and multiblend
should be merged, it is good to have alternatives and switching in
Hugin is easy enough.

--
Bruno

Harry van der Wolf

unread,
Apr 28, 2012, 5:42:08 PM4/28/12
to hugi...@googlegroups.com


2012/4/28 Bruno Postle <br...@postle.net>


You can already switch Hugin from using enblend to using multiblend in File -> Preferences -> Programs -> Enblend -> Enblend executable.

The Hugin Windows and OS X installers can include multiblend (if they don't already),

OSX does in the development builds. The last build contains the 0.31 beta version.
It's yet in the last release bundle 2010.4.

Harry

Gnome Nomad

unread,
Apr 28, 2012, 8:26:16 PM4/28/12
to hugi...@googlegroups.com
What benefit does multiblend have on uniprocessor systems?

--
Gnome Nomad
gnome...@gmail.com
wandering the landscape of god
http://www.clanjones.org/david/
http://dancing-treefrog.deviantart.com/
http://www.cafepress.com/otherend/

Monkey

unread,
Apr 29, 2012, 5:41:23 AM4/29/12
to hugi...@googlegroups.com
The same benefit it has on any system - it's quicker (but not better) than Enblend :). The "multi" in multiblend doesn't have anything to do with multicore processing - it's (currently) single-threaded.

kevin360

unread,
Apr 29, 2012, 8:01:22 AM4/29/12
to hugin and other free panoramic software
Is there a way to register multiple blenders like you can feature
matchers? In the Image tab I can select between different feature
matchers quickly by using the drop down menu for "Settings" under
"Feature Matching". On the Stitcher tab it would appear I should be
able to do the same thing for Blender because there's a drop down menu
there too, but in the preferences I can only register a single
blender.

What about adding support for that? Then someone could quickly switch
between blenders and also commandline arguments. So you could have a
regular enblend, an enblend with --fine-mask set, one with the old
primary seam generator selected, one for multiblend. Then the user
could quickly select between them just like they can the feature
matcher.

Bruno Postle

unread,
Apr 29, 2012, 3:38:31 PM4/29/12
to hugin and other free panoramic software
On Sun 29-Apr-2012 at 05:01 -0700, kevin360 wrote:
> Is there a way to register multiple blenders like you can feature
> matchers? In the Image tab I can select between different feature
> matchers quickly by using the drop down menu for "Settings" under
> "Feature Matching". On the Stitcher tab it would appear I should
> be able to do the same thing for Blender because there's a drop
> down menu there too, but in the preferences I can only register a
> single blender.

This is an unfinished feature, you are welcome to complete it.
There is also a related '#hugin_blender enblend' setting in the .pto
project, though I'm not sure if it is honoured.

--
Bruno

Gnome Nomad

unread,
Apr 30, 2012, 2:24:32 AM4/30/12
to hugi...@googlegroups.com
Thanks, I thought it was multi-threaded.

Monkey

unread,
Apr 30, 2012, 3:13:42 AM4/30/12
to hugi...@googlegroups.com
I did try multi-threading it in a couple of places, but maybe it was doing it wrong because it didn't make it any quicker. That was with native Windows multithreading - unfortunately Microsoft don't want you to use OpenMP with Visual C++ Express, which is the only option now multiblend is multi-platform. Besides which, the seaming algorithm can't be multithreaded (at least not easily), and that and image loading are usually the two slowest parts.

David

Gnome Nomad

unread,
Apr 30, 2012, 5:09:17 AM4/30/12
to hugi...@googlegroups.com
Could you multi-thread seaming by working from opposite sides of the
panorama simultaneously? For example, a strip panorama - do the seaming
for the first 2 images while also doing the seaming for the last 2
images (assuming there's enough images in the pano for that to work).
Maybe use opposite corners for multi-row/multi-column panos.

Monkey

unread,
Apr 30, 2012, 8:54:51 AM4/30/12
to hugi...@googlegroups.com
I suspect that any code required to work out if and how a particular image layout could be broken down into parallelisable chunks would be far more complicated and far slower than seaming itself!

David

Bart van Andel

unread,
May 1, 2012, 4:48:58 AM5/1/12
to hugi...@googlegroups.com


On Monday, April 30, 2012 9:13:42 AM UTC+2, Monkey wrote:
I did try multi-threading it in a couple of places, but maybe it was doing it wrong because it didn't make it any quicker. That was with native Windows multithreading - unfortunately Microsoft don't want you to use OpenMP with Visual C++ Express, which is the only option now multiblend is multi-platform.

Fortunately, cross-compiling using MXE is pretty easy as I've shown in another thread [0, 1]. I haven't actually tried compiling anything with OpenMP enabled using this approach, but I don't think it should be too much of a hassle. And there's a great support community there so if I need help all I need to do is ask.

Gnome Nomad

unread,
May 1, 2012, 4:49:10 AM5/1/12
to hugi...@googlegroups.com
Yah, probably would be, especially for complex image sets. Maybe could
make it a manual option user could specify on starting a stitch; maybe
even select which image to start with for each thread. Then if it blows
up, user can try it again without it. But, yah, be just faster to run
seaming in a single thread!
> gnome...@gmail.com <mailto:gnome...@gmail.com>
> wandering the landscape of god
> http://www.clanjones.org/david/ <http://www.clanjones.org/david/>
> http://dancing-treefrog.deviantart.com/
> <http://dancing-treefrog.deviantart.com/>
> http://www.cafepress.com/otherend/ <http://www.cafepress.com/otherend/>
Reply all
Reply to author
Forward
0 new messages