Module dsp::imaging_core
imaging core, written once for both precisions.
Internal: included by imaging.sc (double) and imaging_f32.sc (float), each its own translation unit. The includer defines IM_R (real type), IM_C / IM_CREF (its complex type as "struct X" / "X"), IM_FFT_BATCH, and the public names IM_CONV2D, IM_FFT2D, IM_IFFT2D.
Structs
| Conv2dJob | Each output row is a sum of shifted input rows times one kernel tap: row-wide multiply-adds over the x range where the tap stays inside the image, which vectorize. Rows run on the thread pool for larger images. |
| Fft2dJob |
Functions
| IM_CONV2D | |
| IM_FFT2D | |
| IM_IFFT2D |
Macros
| FFT2D_COLS | 2D transform = row transforms (fft_batch), then column transforms. The columns are gathered 8 at a time into a contiguous buffer, transformed and scattered back, so each pass over the image reads whole cache lines; groups of columns run on the thread pool. |