Intel® IPP implements image processing functions that perform linear transform operations on an image buffer.
These operations include Fast Fourier Transform (FFT), Discrete Fourier Transform (DFT), and Discrete Cosine Transform (DCT).
Table “Image Linear Transform Functions” lists the Intel IPP linear transform functions:
Function Base Name | Operation |
---|---|
Fourier Transforms | |
FFTInitAlloc | Allocates memory and fills in context data needed for the image FFT functions to operate. |
FFTFree | Deallocates memory used by the FFT context structure. |
FFTGetBufSize | Determines the size of an external work buffer that can be used by the FFT functions. |
FFTFwd | Applies forward Fast Fourier Transform to an image. |
FFTInv | Applies inverse Fast Fourier Transform to complex source data and stores results in a destination image. |
DFTInitAlloc | Allocates memory and fills in context data needed for the image DFT functions to operate. |
DFTFree | Deallocates memory used by the DFT context structure. |
DFTGetBufSize | Determines the size of an external work buffer that can be used by the DFT functions. |
DFTFwd | Applies forward Discrete Fourier Transform to an image. |
DFTInv | Applies inverse Discrete Fourier Transform to complex source data and stores results in a destination image |
MulPack | Multiplies two source images with data in packed format and stores the result a destination image in packed format. |
MulPackConj | Multiplies two source images with data in packed format and stores the result in a destination image that is complex-conjugate to that obtained with the ippiMulPack function. |
Magnitude | Computes the magnitude of elements of complex data images. |
MagnitudePack | Computes the magnitude of elements of an image in packed format. |
Phase | Computes the phase of elements of complex data images. |
PhasePack | Computes the phase of elements of an image in packed format. |
PolarToCart | Converts an image in the polar coordinate form to Cartesian coordinate form. |
PackToCplxExtend | Converts an image in packed format to a complex data image. |
CplxExtendToPack | Converts a complex data image to an image in packed format. |
Windowing Functions | |
WinBartlett, WinBartlettSep | Applies Bartlett window function to the image. |
WinHamming, WinHammingSep | Applies Hamming window function to the image. |
Discrete Cosine Transforms | |
DCTFwdInitAlloc | Allocates memory and fills in context data needed for the forward DCT function to operate |
DCTInvInitAlloc | Allocates memory and fills in context data needed for the inverse DCT function to operate |
DCTFwdFree | Deallocates memory used by the forward DCT context structure. |
DCTInvFree | Deallocates memory used by the inverse DCT context structure. |
DCTFwdGetBufSize | Determines the size of an external work buffer that can be used by the forward DCT function |
DCTInvGetBufSize | Determines the size of an external work buffer that can be used by the inverse DCT function |
DCTFwd | Performs a forward DCT of an image |
DCTInv | Performs an inverse DCT of an image |
DCT8x8Fwd | Performs a forward DCT on a buffer of 8x8 size |
DCT8x8Inv, DCT8x8Inv_A10 | Performs an inverse DCT on a buffer of 8x8 size |
DCT8x8FwdLS | Performs a forward DCT on a 2D buffer of 8x8 size with level shift |
DCT8x8InvLSClip | Performs an inverse DCT on a 2D buffer of 8x8 size with level shift |
DCT8x8To2x2Inv, DCT8x8To4x4Inv | Perform an inverse DCT on a 2D buffer of 8x8 size with further downsampling to 2x2 or 4x4 size |
DCT8x8Inv_2x2, DCT8x8Inv_4x4 | Perform an inverse DCT on a top left quadrant 2x2 or 4x4 of the buffer of 8x8 size |
To speed up performance, linear transform functions use precomputed auxiliary data that is needed for computation of the transforms (that is, tables of twiddle factors for FFT functions). This data is calculated by the respective initialization functions and passed to the transform functions in context structures specific for each type of transform.
Most linear transform functions in Intel IPP have code branches that implement different algorithms to compute the results. You can choose the desired code variety to be used by the transform function by setting the hint argument to one of the values listed in Table “Hint Arguments for Linear Transform Functions”:
Value | Description |
---|---|
ippAlgHintNone | The computation algorithm will be chosen by the internal function logic. |
ippAlgHintFast | Fast algorithm must be used. The output results will be less accurate. |
ippAlgHintAccurate | High accuracy algorithm must be used. The function will need more time to execute. |
Intel IPP linear transform functions can use external work buffers for storing data and intermediate results, which eliminates the need to allocate and free internal memory buffers and thus helps to further increase function performance. To determine the required work buffer size, use one of the respective support functions specific for each transform type. In case when no external buffer is specified, the transform functions handle memory allocation internally.
All Intel IPP linear transform functions except DCT of 8x8 size work on images with floating-point data only.
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.