From: Ippei UKAI <ippei_ukai@ma...>  20070324 00:33:52

On 20070322, at 23:46, dmg wrote: > > With respect to the rearchitecturing of panotools (GSoC) I have been > thinking about the "computational" stack of panotools. > > As I have stated in the past, I strongly believe that the optimization > and the projection should be divided into 2 independent modules. > > This is probably best exemplified by Flexify, which takes an > equirectangular (I haven't use it yet, so this is my understanding) > and produces an output image after it has applied a > transformation. FLexify does not need to know anything about > registration and optimization. > > What I am proposing here is a "programmable flexify", or a super > mathmap. This is the direction where I want to take Tlalli. > > > Let me elaborate: > > The current transformation model, for an equirectangular as input, is > a computation for each pixel in the output image. That is, given an > image I, a list of optional parameters, compute its projection I': > > I' =3D f(I, [p]) > > What if we have two fs, and compose them? > > For instance, the output of one projection is used for another > projection: > > I'' =3D g(f(I,[p]), [p']) > > This only makes sense if the output of f is compatible with the input > of g. For example, compute the Cassini of an equirectangular (rolling > it by 90 degrees), and then compute the Mercator of the Cassini; the > result is a transverse mercator. We have implemented transverse > mercator as a composition of rolling the equirectangular + > mercator. Think of the possibilities. > > In the current computational model this is done in steps: Generate I' > then apply g on I'. There are two disadvantages to this model: > > * Error increases > * I/O operations are proportional to the number of functions. > > What I envision is a system that will allow me to add my own functions > to the computational stack, in the same way that layers work in > Photoshop. So the composition happens at the pixel level, not the > image level. > > For example, if you like to have your logo in the nadir, the you can > create a function "Logo" that you insert into the computational stack. > This function can take as a parameter a string. Then when the panorama > is projected/computed, the logo is inserted right on the spot. > > If the architecture is open enough, this can lead to "plugin > functions" that do things we can't even imagine today. We will only > require the developer to create a function with certain properties, > and register it. > > This system will be very powerful and useful beyond panoramas. > > Comments? This sounds really cool! Would it be like Quartz Composer where you can flexibly pipeline =20 multiple operations and the computation happens optimised to the =20 required result? I love how it works and am quite sure anything like =20 that for Panorama imaging would be really really cool and popular. Ippei  >> =E9=B5=9C=E9=A3=BC =E4=B8=80=E5=B9=B3 (UKAI Ippei) = >>>>>>>>>>>>>>>>>>>>>>>> MSN & AIM: ippei_ukai@... Skype: ippei_ukai Homepage: http://homepage.mac.com/ippei_ukai/ 