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_speedOptimizeFftSpeedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed
determines a method that achieves an
optimum runtime of the FFT for an image of size WidthWidthWidthWidthwidthwidth
x HeightHeightHeightHeightheightheight
. The data that are determined for
one image size do not influence the methods used for other image
sizes. Consequently, optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed
can be called
multiple times with different values for WidthWidthWidthWidthwidthwidth
and
HeightHeightHeightHeightheightheight
to achieve an optimum runtime for all image sizes
that are used in an application. The parameter ModeModeModeModemodemode
determines the thoroughness of the search for the fastest method.
For ModeModeModeModemodemode
= 'standard'"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
ModeModeModeModemodemode
= 'patient'"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 ModeModeModeModemodemode
=
'exhaustive'"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, ModeModeModeModemodemode
=
'standard'"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_speedOptimizeFftSpeedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed
can be saved with
write_fft_optimization_datawrite_fft_optimization_dataWriteFftOptimizationDataWriteFftOptimizationDataWriteFftOptimizationDatawrite_fft_optimization_data
and can be loaded with
read_fft_optimization_dataread_fft_optimization_dataReadFftOptimizationDataReadFftOptimizationDataReadFftOptimizationDataread_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_speedOptimizeFftSpeedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed
influences the runtime of the following
operators, which use the FFT: fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic
,
fft_imagefft_imageFftImageFftImageFftImagefft_image
, fft_image_invfft_image_invFftImageInvFftImageInvFftImageInvfft_image_inv
, photometric_stereophotometric_stereoPhotometricStereoPhotometricStereoPhotometricStereophotometric_stereo
,
sfs_pentlandsfs_pentlandSfsPentlandSfsPentlandSfsPentlandsfs_pentland
, sfs_mod_lrsfs_mod_lrSfsModLrSfsModLrSfsModLrsfs_mod_lr
, sfs_orig_lrsfs_orig_lrSfsOrigLrSfsOrigLrSfsOrigLrsfs_orig_lr
wiener_filterwiener_filterWienerFilterWienerFilterWienerFilterwiener_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
WidthWidthWidthWidthwidthwidth
(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
HeightHeightHeightHeightheightheight
(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
ModeModeModeModemodemode
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Thoroughness of the search for the optimum
runtime.
Default:
'standard'
"standard"
"standard"
"standard"
"standard"
"standard"
List of values:
'exhaustive'"exhaustive""exhaustive""exhaustive""exhaustive""exhaustive", 'patient'"patient""patient""patient""patient""patient", 'standard'"standard""standard""standard""standard""standard"
Result
optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed
returns 2 (
H_MSG_TRUE)
if all parameters are
correct. If necessary, an exception is raised.
Possible Successors
fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic
,
fft_imagefft_imageFftImageFftImageFftImagefft_image
,
fft_image_invfft_image_invFftImageInvFftImageInvFftImageInvfft_image_inv
,
wiener_filterwiener_filterWienerFilterWienerFilterWienerFilterwiener_filter
,
wiener_filter_niwiener_filter_niWienerFilterNiWienerFilterNiWienerFilterNiwiener_filter_ni
,
photometric_stereophotometric_stereoPhotometricStereoPhotometricStereoPhotometricStereophotometric_stereo
,
sfs_pentlandsfs_pentlandSfsPentlandSfsPentlandSfsPentlandsfs_pentland
,
sfs_mod_lrsfs_mod_lrSfsModLrSfsModLrSfsModLrsfs_mod_lr
,
sfs_orig_lrsfs_orig_lrSfsOrigLrSfsOrigLrSfsOrigLrsfs_orig_lr
,
write_fft_optimization_datawrite_fft_optimization_dataWriteFftOptimizationDataWriteFftOptimizationDataWriteFftOptimizationDatawrite_fft_optimization_data
Alternatives
read_fft_optimization_dataread_fft_optimization_dataReadFftOptimizationDataReadFftOptimizationDataReadFftOptimizationDataread_fft_optimization_data
See also
optimize_rft_speedoptimize_rft_speedOptimizeRftSpeedOptimizeRftSpeedOptimizeRftSpeedoptimize_rft_speed
Module
Foundation