Open ACDC77 opened 2 months ago
Hello,
the normalize parameter only affects the IFFT - meaning the plan has to be launched with 1 passed as the inverse parameter in VkFFTAppend. All forward transforms are currently unnormalized. So to get normalized DCT-III, you need to launch IDCT-II plan created with normalize flag.
Best regards, Dmitrii
Thanks @DTolm. I changed the config_idct to the one shown below with DCT type as 2 and normalize = 1, and called VkFFTAppend with 1 (for inverse FFT). Now the results of the inverse DCT are normalized.
config_idct.FFTdim = 2; config_idct.size[0] = N; config_idct.size[1] = M; config_idct.performR2C = false; config_idct.isInputFormatted = true; config_idct.isOutputFormatted = true; config_idct.kernelConvolution = 0; config_idct.doublePrecision = 0; config_idct.numberBatches = 1; config_idct.performDCT = 2; config_idct.normalize = 1;
initializeVkFFT(&app_idct, config_idct); VkFFTAppend(&app_idct, 1, ¶ms);
Appreciate the help.
Hi Dmitrii,
When computing DCT type III (inverse of DCT type II), for 2D formatted data, the configuration.normalize setting seems to have no effect on the output. The output I see is always unnormalized regardless of whether this field is 0 (default) or 1. Could you please try to replicate at your end?
Here are my configuration settings:
Regards, Atul