Shifting image by non-integer pixel amount

Shifting image by non-integer pixel amount

Hi there, I amevaluating IPP v4.0 for Windows. I'm rather new to this library, andI dohave a couple of questions and observations with regards to the Image Geometric Transformationthat I hope to get some clarifications.

First, I need to do some panning/zomming movement across an image. In order to make that smooth, for every frame I need to do a resize and shift by a non-integer pixel value. I tried using ResizeShift() to resize and shift to the nearest pixel value (by manipulatingsrc ROI and dest ROI), and then compensate for the non-integer deltas via xShift and yShift. For the most part, it looks rather smooth, but when the scaling factorbecomes large (more scaled down), the aliasing effects kick in, resulting in a glittering/shimmering appearance in regions of high spacial frequencies. I believe that scaling by supersampling will reduce this?Unfortunately ResizeShift() doesn't allow that interpolation method, and forthe ones that doallow it, there is no way to dothe non-integer shifting operation.Is there another method that I can use? I may have missed out some very obvious ones.

With regards to the xFr and yFr values in ResizeShift(), those are supposed to be retrieved via calls to GetResizeFract(). But are these just inverses of xFactor and yFactor? They looked like it. I actuallyhave scaling factors as inverses of xFactor and yFactor (due to some legacy in my program), I'd hope to be able to save the back-and-forth conversion if that is the case.

Next, Ialso tried to use ResizeCenter(), but however, it somehow doesn't look quite right. As a test, I started out with the source and destination having the same dimensions, and I fixed the src ROI to the entire source image, and the dest ROI to the entire destination. The xCenter and yCenter is also fixed to the center of the src ROI. The only variablesare the scaling factors, which run linearly from 1.0 to 0.5. If I understandcorrectly, in the destination buffer, I should see the original image being scaled down, while all the time being centered. It does that to some extend, but the image isn't always centered. It bounced around somewhat, kind of like watching a Blairwitch video. The bouncing movement is small,andmy guess is that it is due to the routing keeps trying tosnap to integer startingpixels in the destination, instead of keeping the center point still. Did I misunderstood the parameters, or is this a bug?

Thanks! Appreciate it.

Message Edited by quidam on 02-12-2004 08:56 AM

Message Edited by quidam on 02-12-2004 08:57 AM

1 post / 0 new
For more complete information about compiler optimizations, see our Optimization Notice.