optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed (Operator)
Name
optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed
— Optimize the runtime of the FFT.
Signature
Herror optimize_fft_speed(const Hlong Width, const Hlong Height, const char* Mode)
Herror T_optimize_fft_speed(const Htuple Width, const Htuple Height, const Htuple Mode)
Description
optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed
determines a method that achieves an
optimum runtime of the FFT for an image of size WidthWidthWidthwidthwidth
x HeightHeightHeightheightheight
. The data that are determined for
one image size do not influence the methods used for other image
sizes. Consequently, optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed
can be called
multiple times with different values for WidthWidthWidthwidthwidth
and
HeightHeightHeightheightheight
to achieve an optimum runtime for all image sizes
that are used in an application. The parameter ModeModeModemodemode
determines the thoroughness of the search for the fastest method.
For ModeModeModemodemode
= 'standard'"standard""standard""standard""standard" a fast search is used,
which typically takes a few seconds. The method thus determined
results in very good runtimes, which are not always optimal. For
ModeModeModemodemode
= 'patient'"patient""patient""patient""patient" a more thorough search is
performed, which typically takes several seconds and in most cases
leads to optimum runtimes. For ModeModeModemodemode
=
'exhaustive'"exhaustive""exhaustive""exhaustive""exhaustive" an exhaustive search is performed, which
typically takes several minutes and always results in the optimum
runtime. In most applications, ModeModeModemodemode
=
'standard'"standard""standard""standard""standard" results in the best compromise between the
runtime of the FFT and the time required for the search of the
optimum runtime. The data determined with
optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed
can be saved with
write_fft_optimization_datawrite_fft_optimization_dataWriteFftOptimizationDataWriteFftOptimizationDatawrite_fft_optimization_data
and can be loaded with
read_fft_optimization_dataread_fft_optimization_dataReadFftOptimizationDataReadFftOptimizationDataread_fft_optimization_data
.
Please note that this optimization is performed for the particular
computer on which the operator is called. The results are not suited to
be transferred and used on other computers unless they have the same
hardware and software configuration including the driver versions.
optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed
influences the runtime of the following
operators, which use the FFT: fft_genericfft_genericFftGenericFftGenericfft_generic
,
fft_imagefft_imageFftImageFftImagefft_image
, fft_image_invfft_image_invFftImageInvFftImageInvfft_image_inv
, photometric_stereophotometric_stereoPhotometricStereoPhotometricStereophotometric_stereo
,
sfs_pentlandsfs_pentlandSfsPentlandSfsPentlandsfs_pentland
, sfs_mod_lrsfs_mod_lrSfsModLrSfsModLrsfs_mod_lr
, sfs_orig_lrsfs_orig_lrSfsOrigLrSfsOrigLrsfs_orig_lr
wiener_filterwiener_filterWienerFilterWienerFilterwiener_filter
.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Parameters
WidthWidthWidthwidthwidth
(input_control) integer →
HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Width of the image for which the runtime should be
optimized.
Default:
512
Suggested values:
128, 160, 192, 256, 320, 384, 512, 640, 768, 1024, 2048
HeightHeightHeightheightheight
(input_control) integer →
HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Height of the image for which the runtime should be
optimized.
Default:
512
Suggested values:
120, 128, 144, 240, 256, 288, 480, 512, 576, 1024, 2048
ModeModeModemodemode
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Thoroughness of the search for the optimum
runtime.
Default:
'standard'
"standard"
"standard"
"standard"
"standard"
List of values:
'exhaustive'"exhaustive""exhaustive""exhaustive""exhaustive", 'patient'"patient""patient""patient""patient", 'standard'"standard""standard""standard""standard"
Result
optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed
returns 2 (
H_MSG_TRUE)
if all parameters are
correct. If necessary, an exception is raised.
Possible Successors
fft_genericfft_genericFftGenericFftGenericfft_generic
,
fft_imagefft_imageFftImageFftImagefft_image
,
fft_image_invfft_image_invFftImageInvFftImageInvfft_image_inv
,
wiener_filterwiener_filterWienerFilterWienerFilterwiener_filter
,
wiener_filter_niwiener_filter_niWienerFilterNiWienerFilterNiwiener_filter_ni
,
photometric_stereophotometric_stereoPhotometricStereoPhotometricStereophotometric_stereo
,
sfs_pentlandsfs_pentlandSfsPentlandSfsPentlandsfs_pentland
,
sfs_mod_lrsfs_mod_lrSfsModLrSfsModLrsfs_mod_lr
,
sfs_orig_lrsfs_orig_lrSfsOrigLrSfsOrigLrsfs_orig_lr
,
write_fft_optimization_datawrite_fft_optimization_dataWriteFftOptimizationDataWriteFftOptimizationDatawrite_fft_optimization_data
Alternatives
read_fft_optimization_dataread_fft_optimization_dataReadFftOptimizationDataReadFftOptimizationDataread_fft_optimization_data
See also
optimize_rft_speedoptimize_rft_speedOptimizeRftSpeedOptimizeRftSpeedoptimize_rft_speed
Module
Foundation