[patch] pwarp

Jules Bergmann jules at codesourcery.com
Wed Dec 5 16:18:47 UTC 2007


Here's a preliminary perspective warp (aka pwarp) patch.

It contains:

  - both a perspective_warp function and a Perspective_warp
    image processing object.

  - a generic implementation that works mostly everywhere and with
    every type (albeit slowly).

  - SIMD optimized versions for float/float and float/uchar.  Key: for
    X/Y, X is the perspective coeff type, Y is the image value type.
    Float and double are the only reasonable values for X, but Y could
    easily be float, int, short, unsigned char, etc.

  - CBE optimized version for float/uchar.  A float/float version would
    not be too hard.

  - unit tests and benchmark.

This is preliminary patch (but its been hanging out so long I wanted to 
get it posted).  In particular, before checking in, I will:

  - get rid of remaining #if 0 debug cruft.

  - fix SIMD version to work on SSE (currently it has some hardcoded
    altivec bits).

  - unify the different SIMD variants (there are currently three SIMD
    float/uchar impls: the functional version, the processing object
    version, and the SPU version).  Otherwise, what is the point of
    our fancy SIMD traits?  (This doesn't apply to different coeff/image
    types.  I.e. SIMD float/float and float/uchar cannot reasonably be
    unified).

  - finish up the SPU SIMD traits.

After checking in:

  - generalize the SPU streaming.  Right now it assumes the perspective
    warp coefficients are "low tilt" when sending out necessary regions
    of the source image.  It would not reasonably handle a warp that
    rotated the image by 90 degrees.

				-- Jules

-- 
Jules Bergmann
CodeSourcery
jules at codesourcery.com
(650) 331-3385 x705
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pwarp.diff
URL: <http://sourcerytools.com/pipermail/vsipl++/attachments/20071205/03bb6c3a/attachment.ksh>


More information about the vsipl++ mailing list