Am 02.03.21 um 13:53 schrieb Harry van der Wolf:


Op di 2 mrt. 2021 om 11:43 schreef 'Kay F. Jahnke' via hugin and other
    Since you're the one who's building hugin on the mac, maybe you can
    give
    me a hint on how to write a 'port file' to provide a pv package for
    macports? Is that hard? And is it hard to provide a package which users
    can simply download from the app store? I proposed to bundle pv with
    hugin, because it would make a good addition to the suite, what do
    you say?

    Kay


I was not correct, or at least not clear enough, in my answer. I did take over from Ippei Ukai, but also mentioned I abandoned Mac in 2012/2013 or so. I simply never threw my 2008 macbook away. At that time I also maintained the macports build of hugin and enblend/enfuse, but that is now also long, long ago. But I will have a look at it.

Sorry, I did not read your mail properly. I can sympathize with leaving the mac universe. I've been a linux early adopter as well - working on unix networks in the nineties changed my views as to what an OS should be like and I started out with Xenix, then slackware Linux on my home PC. Later on I used Windows for some time, with CygWin to have a POSIX environment. Then it was back to Linux again, happy as you are. I keep a W10 install on one of my Thinkpads to run windows builds of pv, so that I can distribute Windows binaries to people who don't want to build themselves.

The current Hugin builders on Mac are Niklas Mischkulnig and Bob Campbell. All credits to them (not to me).

Maybe they'll take note of pv and become interested in the mac version - after all the branch is already there and you demonstrated that it's dead easy to create a binary. Sadly, my work so far has not got much attention.

I certainly do not have an Apple M1 and will not buy one either. I am a happy Linux user since 1993 (early adapter) and simply wandered off for a couple of years, both to Apple and Windows.

I must admit that the M1 is very attractive, though. It might be worthwhile to just buy a small machine with this chip - I'd like a macbook air, because I don't have an up-to-date laptop - my newest thinkpad is eight years old or so.

Making a package for the MacOS app store is a different thing.
You have to register as a developer at Apple. I did a complete rant some days ago about how I hate how Apple does things, but also realised at that time that I had registered around 2008, when I took over from Ippei. And yes, that still worked.

I wouldn't want to do that if I can help it - that's why I was hoping to piggyback on the hugin suite. I still think it would make a nice addition. Where is the good cross-platform FOSS panorama viewer in the hugin package? I was frustrated because I could not find one, so I wrote one. I hear others use 'Panini' but I never managed to get it to work for me. So here's pv.

- So, you have to register at Apple as a developer giving quite some info.
- You have to offer your bundle to Apple where Apple checks for malware/Apple standards/"other things". That is actually a good thing, but will take time and sometimes your bundle is rejected while you know it is perfectly fine. I have a java app which I also packaged as a MacOS bundle. Apart from the fact that I won't release it via the apple store, it will not be accepted either as it is built outside Xcode thereby lacking some controls/standards (and Apple spyware?).

I wouldn't be surprised...

With regard to bundling with Hugin:
I agree with Thomas that where possible we should integrate. You already explained the big differences in code, so that might not be possible. I can't judge that as I'm not a C/C++ programmer.

It is in fact completely new technology. Potentially disruptive. It's probably not too hard to extract the blending and fusing code into a separate program, but the beauty of pv is in the total integration of all components - you simply load your PTO file into pv like any other image, adjust the view until you have what you want, and press 'P' to have a panorama rendered in the background. No intermediate images on disk, no helper programs. Once the stitch is rendered, you can simply open pv's file select dialog (press 'F') and load the freshly-made panorama in the same session. Same goes for exposure fusions or HDR merges.

As it is all open source, it might still be possible to migrate/integrate it. And otherwise: could it be possible to call pv from hugin to run it as enblend replacement. Just like multiblend can be called from hugin (with a simpler command set) as enblend replacement? Also: panomatic was first an external tool and most of it is now integrated in cpfind. I hope we see the same for pv blending/fusing functionality if it really is an improvement.

Now it's my turn to be 'a bit sad'. I've spent about seven man years creating a b-spline library and a beautiful, powerful panorama viewer which now can even do some stitching and exposure fusion on top of everything else. It would be sad to just rip it apart and take a few bits as helper programs for hugin. Think of pv as a 'preview on steroids'. There was a discussion in this group whether it wouldn't make sense to work more from the preview window. pv is my answer to this discussion: its what used to be called 'wysiwig'. Pretty much everything happens immediately, you see all parameter changes 'live'. The only things which I can't show 'live' are exposure fusions and stitches, because the B&A algorithm takes a lot of time. I may be able to tweak it so that I can produce a few frames per second showing stitches and fusions live, but for now they are rendered by a background thread to a file on disk. For playing with my stitching and fusion code, this should be good enough for now.

I even made it easy to use it as a preview for hugin and the likes: if you work on a panorama in hugin, you can just have a pv window open to the same PTO. as soon as you save the PTO in hugin, you can simply press 'F1' in pv and it will update to the changes in the PTO. I see pv rather as a third 'preview' window which hugin etc. can use alongside the other two, which are good for some tasks where my code is not - I don't handle all panotools projections, I don't deal with control points, I can't switch individual imageson and off... - but I sure can give a good view at the PTO.

My personal point of view is to help where I can if "something" can mean an improvement for all of us. And if it is mature try to integrate it.

If my code turns out to be good, I'd be happy to see it used by others. I just don't want to go fiddling with other people's software to force my new stuff in. Integration into extant software is better done by the original authors, who know their way around their code. As far as pv and it's new components are concerned, I want to stay upstream and focus on innovation.

Now for the attempt to port pv to ARM. I have prepared the branch I announced yesterday, and you can try if it compiles on your Raspi:

  git checkout native
  make

This will try to build three targets: pv_scalar, pv_vspsimd and pv_vcsimd - you can also build them separately if you like, it's a phony 'all' target compiling the lot. The first one makes no attempt at using SIMD code, the second one used vspline's 'implicit' SIMD code, and the third uses Vc. I think the first two will build on the Raspi, the third may or may not. If any of the targets build, you should have a functional pv variant to run on the same machine which it was built on (it uses --march=native). If the target using Vc builds, it should be the fastest. Please try it out and let me know how it went!

When I build the 'native' branch targets on my desktop machine, the performance difference is quite noticeable. My standard test is a 1000-frame automatic pan over a full spherical panorama. The per-frame rendering times I get are roughly like this:

- pv_vcsimd: 7.1 msec
- pv_vspsimd: 12.4 msec
- pv_scalar: 15.5 msec

So the Vc version is more than twice as fast as the scalar one, and the 'implicit SIMD' version comes out in the middle.

Kay

--
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
--- You received this message because you are subscribed to the Google Groups "hugin and other free panoramic software" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/hugin-ptx/35b2bd51-2929-1e39-5729-30734a8fb3b7%40yahoo.com.
  • [hugin-ptx] Im... 'kfj' via hugin and other free panoramic software
    • Re: [hugi... Harry van der Wolf
      • Re: [... 'Kay F. Jahnke' via hugin and other free panoramic software
        • R... Monkey
          • ... T. Modes
            • ... 'Kay F. Jahnke' via hugin and other free panoramic software
          • ... 'Kay F. Jahnke' via hugin and other free panoramic software
        • R... Harry van der Wolf
          • ... 'Kay F. Jahnke' via hugin and other free panoramic software
            • ... Harry van der Wolf
              • ... 'Kay F. Jahnke' via hugin and other free panoramic software
                • ... yuv
                • ... 'Kay F. Jahnke' via hugin and other free panoramic software
                • ... yuv
                • ... Monkey
                • ... 'Kay F. Jahnke' via hugin and other free panoramic software
                • ... Harry van der Wolf
                • ... Bruno Postle
                • ... 'Kay F. Jahnke' via hugin and other free panoramic software
                • ... yuv
                • ... Gunter Königsmann

Reply via email to