Intel® IPP implements image processing functions that perform geometric operations of resizing, rotating, warping and remapping an image.
Table “Image Geometric Transform Functions” lists the Intel IPP image geometric transform functions:
Function Base Name | Operation |
---|---|
Resize | THIS FUNCTION IS DEPRECATED. Changes the size of an image. |
ResizeCenter | THIS FUNCTION IS DEPRECATED. Changes the size of an image and shifts it. |
ResizeSqrPixel | Changes the size of an image using different interpolation algorithm. |
ResizeGetBufSize | Computes the size of the external buffer for image resizing. |
GetResizeRect | Computes the coordinates and size of the resized image. |
ResizeSqrPixelGetBufSize |
THIS FUNCTION IS DEPRECATED. Computes the size of the external buffer for image resizing. |
GetResizeFract |
THIS FUNCTION IS DEPRECATED. Recalculates resize factors for a tiled image. |
ResizeShift |
THIS FUNCTION IS DEPRECATED. Changes the size of an image tile. |
SuperSampling | Reduces the image size using the super sampling method. |
SuperSamplingGetBufSize | Computes the size of the external buffer for image reducing with the super sampling method. |
ResizeYUV422 | Changes the size of an 2-channel image in 4:2:2 sampling format. |
ResizeYUV420 | Changes the size of an 2-plane image in 4:2:0 sampling format. |
ResizeYUV420GetBufSize | Calculates the size of the external buffer for resizing a 2-plane 4:2:0 image. |
ResizeFilterGetSize | Calculates the size of the state structure for resizing filter. |
ResizeFilterInit | Initializes the state structurer for resizing filter. |
ResizeFilter | Changes the size of an image using a generic filter. |
Mirror | Mirrors an image. |
Remap | Performs arbitrary remapping of pixels in an image. |
Rotate | Rotates an image around the origin (0,0) and shifts the result. |
GetRotateShift | Computes the shift values for ippiRotate, given the rotation center and angle. |
AddRotateShift | Computes shift values for an image rotation around the specified center with specified shifts. |
GetRotateQuad | Computes the quadrangle that results from an image ROI transformed by ippiRotate function. |
GetRotateBound | Computes the bounding rectangle for an image ROI transformed by ippiRotate function. |
RotateCenter | Rotates an image around an arbitrary center. |
Shear | Performs a shearing transform of an image. |
GetShearQuad | Computes the quadrangle that results from an image ROI transformed by ippiShear function. |
GetShearBound | Computes the bounding rectangle for an image ROI transformed by ippiShear function. |
WarpAffine | Warps an image with an affine transform. |
WarpAffineBack | Performs an inverse affine transform of an image. |
WarpAffineQuad | Performs an affine transform of an image from the source quadrangle to the destination quadrangle. |
GetAffineQuad | Computes the quadrangle that results from an image ROI transformed by ippiWarpAffine function. |
GetAffineBound | Computes the bounding rectangle for an image ROI transformed by ippiWarpAffine function. |
GetAffineTransform | Computes the affine transform coefficients. |
WarpPerspective | Warps an image with a perspective transform. |
WarpPerspectiveBack | Performs an inverse perspective transform of an image. |
WarpPerspectiveQuad | Performs a perspective transform of an image from the source quadrangle to the destination quadrangle. |
GetPerspectiveQuad | Computes the quadrangle that results from an image ROI transformed by ippiWarpPerspective function. |
GetPerspectiveBound | Computes the bounding rectangle for an image ROI transformed by ippiWarpPerspective function. |
GetPerspectiveTransform | Computes the perspective transform coefficients. |
WarpBilinear | Warps an image with a bilinear transform. |
WarpBilinearBack | Performs an inverse bilinear transform of an image. |
WarpBilinearQuad | Performs a bilinear transform of an image from the source quadrangle to the destination quadrangle. |
GetBilinearQuad | Computes the quadrangle that results from an image ROI transformed by ippiWarpBilinear function. |
GetBilinearBound | Computes the bounding rectangle for an image ROI transformed by ippiWarpBilinear function. |
GetBilinearTransform | Computes the bilinear transform coefficients. |
Most functions performing geometric transform of an image uses some interpolation algorithm to resample the image. The type of interpolation method to be used is passed to the function in the interpolation parameter.
The following interpolation algorithms are used:
The nearest neighbor algorithm is the fastest, while other methods yield higher quality results, but are slower.
Use one of the following constant identifiers for the applicable interpolation methods:
IPPI_INTER_NN |
Nearest neighbor interpolation. |
IPPI_INTER_LINEAR |
Linear interpolation. |
IPPI_INTER_CUBIC |
Cubic interpolation. |
IPPI_INTER_LANCZOS |
Interpolation using 3-lobed Lanczos window function. |
IPPI_INTER_CUBIC2P_BSPLINE |
Interpolation using B-spline. |
IPPI_INTER_CUBIC2P_CATMULLROM |
Interpolation using Catmull-Rom spline. |
IPPI_INTER_CUBIC2P_B05C03 |
Interpolation using special cubic filter. |
IPPI_INTER_SUPER |
Supersampling interpolation. |
For certain functions, you can combine the above interpolation algorithms with additional smoothing (antialiasing) of edges to which the original image borders are transformed. To use this edge smoothing, set the parameter interpolation to the bitwise OR of IPPI_SMOOTH_EDGE or IPPI_SUBPIXEL_EDGE and the desired interpolation mode.
You can use interpolation with edge smoothing option only in those geometric transform functions where this option is explicitly listed in the parameters definition section.
See appendix B “Interpolation in Image Geometric Transform Functions” for more information on the interpolation algorithms that are used in the library.
Intel IPP contains several functions for resizing. The main function is ippiResizeSqrPixel. This function is the particular case of the general affine transform with the 3x2 transformation matrix. It works with different interpolation modes and can be used for general resize operations in image processing, in different mathematic and geometric tasks.
The function SuperSampling is the special function that perform only image reducing using only supersampling interpolation. It can be used for video processing, in which it demonstrates good quality and performance.
Many solutions and hints for use of these functions can be found in Intel® IPP Samples. See Intel IPP® Image Processing and Media Processing Samples downloadable from http://www.intel.com/cd/software/products/asmo-na/eng/220046.htm.
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.