This chapter describes the Intel® IPP 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).
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”:
|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.