VPI - Vision Programming Interface

0.4.4 Release

Fast Fourier Transform

Operations that applies the Fast Fourier Transform and its inverse to 2D images. More...

Functions

VPIStatus vpiCreateFFT (VPIBackend backend, uint32_t inputWidth, uint32_t inputHeight, const VPIImageFormat inFormat, const VPIImageFormat outFormat, VPIPayload *payload)
 Creates payload for direct Fast Fourier Transform algorithm. More...
 
VPIStatus vpiSubmitFFT (VPIStream stream, VPIPayload payload, VPIImage input, VPIImage output, uint32_t flags)
 Runs the direct Fast Fourier Transform on single image. More...
 
VPIStatus vpiCreateIFFT (VPIBackend backend, uint32_t outputWidth, uint32_t outputHeight, const VPIImageFormat inFormat, const VPIImageFormat outFormat, VPIPayload *payload)
 Creates payload for inverse Fast Fourier Transform algorithm. More...
 
VPIStatus vpiSubmitIFFT (VPIStream stream, VPIPayload payload, VPIImage input, VPIImage output, uint32_t flags)
 Runs the inverse Fast Fourier Transform on single image. More...
 

Inverse FFT flags. Valid flags to be used in \ref vpiSubmitIFFT. They

can be or-ed together.

#define VPI_IFFT_DENORMALIZED   (1u)
 Do not normalize the output. More...
 

Detailed Description

Operations that applies the Fast Fourier Transform and its inverse to 2D images.

Both FFT and inverse FFT need a payload created during application initialization phase, where image dimensions, input and output types are defined. The payload then can be used to submit operations on different images, as long as their dimensions and types match what was defined during payload creation.

Macro Definition Documentation

◆ VPI_IFFT_DENORMALIZED

#define VPI_IFFT_DENORMALIZED   (1u)

#include <vpi/algo/FFT.h>

Do not normalize the output.

This leads to faster execution as normalization isn't usually needed. Absense of this flag will scale the output, dividing it by the total pixel count. This makes the output the exact inverse of direct Fast Fourier Transform.

Definition at line 144 of file FFT.h.

Function Documentation

◆ vpiCreateFFT()

VPIStatus vpiCreateFFT ( VPIBackend  backend,
uint32_t  inputWidth,
uint32_t  inputHeight,
const VPIImageFormat  inFormat,
const VPIImageFormat  outFormat,
VPIPayload payload 
)

#include <vpi/algo/FFT.h>

Creates payload for direct Fast Fourier Transform algorithm.

The created payload can then be used with vpiSubmitFFT.

Parameters
[in]backendVPI backend that will execute the algorithm.
[in]inputWidth,inputHeightDimensions of the input/output images to be used.
[in]inFormatInput image format.
[in]outFormatOutput image format.
[out]payloadPointer to memory where the created payload handle will be written to.
Returns
an error code on failure else VPI_SUCCESS.

◆ vpiCreateIFFT()

VPIStatus vpiCreateIFFT ( VPIBackend  backend,
uint32_t  outputWidth,
uint32_t  outputHeight,
const VPIImageFormat  inFormat,
const VPIImageFormat  outFormat,
VPIPayload payload 
)

#include <vpi/algo/FFT.h>

Creates payload for inverse Fast Fourier Transform algorithm.

The created payload can then be used with vpiSubmitIFFT.

Parameters
[in]backendVPI backend that will execute the algorithm.
[in]outputWidth,outputHeightOutput image dimensions.
[in]inFormatInput image format.
[in]outFormatOutput image format.
[out]payloadPointer to memory where the created payload handle will be written to.
Returns
an error code on failure else VPI_SUCCESS

◆ vpiSubmitFFT()

VPIStatus vpiSubmitFFT ( VPIStream  stream,
VPIPayload  payload,
VPIImage  input,
VPIImage  output,
uint32_t  flags 
)

#include <vpi/algo/FFT.h>

Runs the direct Fast Fourier Transform on single image.

Parameters
[in]streamThe stream where the operation will be queued in.
[in]payloadPayload created with vpiCreateFFT
[in]inputInput image in space domain.
[out]outputImage where the result in frequency domain will be written to.
[in]flagsControl flags, currently it must be set to 0.
Returns
an error code on failure else VPI_SUCCESS

◆ vpiSubmitIFFT()

VPIStatus vpiSubmitIFFT ( VPIStream  stream,
VPIPayload  payload,
VPIImage  input,
VPIImage  output,
uint32_t  flags 
)

#include <vpi/algo/FFT.h>

Runs the inverse Fast Fourier Transform on single image.

Parameters
[in]streamA stream handle where the operation will be queued in.
[in]payloadPayload created with vpiCreateIFFT
[in]inputInput image in frequency domain.
[out]outputImage where the result in space domain will be written to.
[in]flagsControl flags, 0 for default processing, where output scaled.
Returns
an error code on failure else VPI_SUCCESS