ClassesClassesClassesClasses | | | | Operators

optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeed (Operator)

Name

optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeed — Optimize the runtime of the FFT.

Signature

optimize_fft_speed( : : Width, Height, Mode : )

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)

Herror optimize_fft_speed(const HTuple& Width, const HTuple& Height, const HTuple& Mode)

void OptimizeFftSpeed(const HTuple& Width, const HTuple& Height, const HTuple& Mode)

static void HMisc::OptimizeFftSpeed(Hlong Width, Hlong Height, const HString& Mode)

static void HMisc::OptimizeFftSpeed(Hlong Width, Hlong Height, const char* Mode)

void HOperatorSetX.OptimizeFftSpeed(
[in] VARIANT Width, [in] VARIANT Height, [in] VARIANT Mode)

void HMiscX.OptimizeFftSpeed(
[in] Hlong Width, [in] Hlong Height, [in] BSTR Mode)

static void HOperatorSet.OptimizeFftSpeed(HTuple width, HTuple height, HTuple mode)

static void HMisc.OptimizeFftSpeed(int width, int height, string mode)

Description

optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeed 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_speedOptimizeFftSpeedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeed 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_speedOptimizeFftSpeedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeed can be saved with write_fft_optimization_datawrite_fft_optimization_dataWriteFftOptimizationDatawrite_fft_optimization_dataWriteFftOptimizationDataWriteFftOptimizationData and can be loaded with read_fft_optimization_dataread_fft_optimization_dataReadFftOptimizationDataread_fft_optimization_dataReadFftOptimizationDataReadFftOptimizationData.

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_speedOptimizeFftSpeedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeed influences the runtime of the following operators, which use the FFT: fft_genericfft_genericFftGenericfft_genericFftGenericFftGeneric, fft_imagefft_imageFftImagefft_imageFftImageFftImage, fft_image_invfft_image_invFftImageInvfft_image_invFftImageInvFftImageInv, wiener_filterwiener_filterWienerFilterwiener_filterWienerFilterWienerFilter, wiener_filter_niwiener_filter_niWienerFilterNiwiener_filter_niWienerFilterNiWienerFilterNi, phot_stereophot_stereoPhotStereophot_stereoPhotStereoPhotStereo, photometric_stereophotometric_stereoPhotometricStereophotometric_stereoPhotometricStereoPhotometricStereo, sfs_pentlandsfs_pentlandSfsPentlandsfs_pentlandSfsPentlandSfsPentland, sfs_mod_lrsfs_mod_lrSfsModLrsfs_mod_lrSfsModLrSfsModLr, sfs_orig_lrsfs_orig_lrSfsOrigLrsfs_orig_lrSfsOrigLrSfsOrigLr.

Parallelization

Parameters

WidthWidthWidthWidthWidthwidth (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Width of the image for which the runtime should be optimized.

Default value: 512

Suggested values: 128, 160, 192, 256, 320, 384, 512, 640, 768, 1024, 2048

HeightHeightHeightHeightHeightheight (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Height of the image for which the runtime should be optimized.

Default value: 512

Suggested values: 120, 128, 144, 240, 256, 288, 480, 512, 576, 1024, 2048

ModeModeModeModeModemode (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Thoroughness of the search for the optimum runtime.

Default value: '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_speedOptimizeFftSpeedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeed returns 2 (H_MSG_TRUE) if all parameters are correct. If necessary, an exception is raised.

Possible Successors

fft_genericfft_genericFftGenericfft_genericFftGenericFftGeneric, fft_imagefft_imageFftImagefft_imageFftImageFftImage, fft_image_invfft_image_invFftImageInvfft_image_invFftImageInvFftImageInv, wiener_filterwiener_filterWienerFilterwiener_filterWienerFilterWienerFilter, wiener_filter_niwiener_filter_niWienerFilterNiwiener_filter_niWienerFilterNiWienerFilterNi, photometric_stereophotometric_stereoPhotometricStereophotometric_stereoPhotometricStereoPhotometricStereo, phot_stereophot_stereoPhotStereophot_stereoPhotStereoPhotStereo, sfs_pentlandsfs_pentlandSfsPentlandsfs_pentlandSfsPentlandSfsPentland, sfs_mod_lrsfs_mod_lrSfsModLrsfs_mod_lrSfsModLrSfsModLr, sfs_orig_lrsfs_orig_lrSfsOrigLrsfs_orig_lrSfsOrigLrSfsOrigLr, write_fft_optimization_datawrite_fft_optimization_dataWriteFftOptimizationDatawrite_fft_optimization_dataWriteFftOptimizationDataWriteFftOptimizationData

Alternatives

read_fft_optimization_dataread_fft_optimization_dataReadFftOptimizationDataread_fft_optimization_dataReadFftOptimizationDataReadFftOptimizationData

See also

optimize_rft_speedoptimize_rft_speedOptimizeRftSpeedoptimize_rft_speedOptimizeRftSpeedOptimizeRftSpeed

Module

Foundation


ClassesClassesClassesClasses | | | | Operators