std1.0.0-beta-7 SafeC docs

Module dsp::imaging_core

#include <std/dsp/imaging_core.h> source

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

Conv2dJobEach 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_COLS2D 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.