Module imagery.analysis.execution

Run an image operation on regions and tiles.

Use parallelTiles when an operation needs neighboring pixels. The callback receives a tile to read and the smaller core region to publish.

Example

parallelTiles((tile) @safe nothrow {
    // process tile.halo, publish tile.core
    return true;
}, 1920, 1080, 512, 512, neighbourhoodHalo(1), 4);

Functions

NameDescription
copyRoi(p, roi, destination) Copies a strided ROI into a dense plane. The caller supplies element size through T; no allocation or ownership is hidden by the contract.
foreachTile(emit, width, height, tileWidth, tileHeight, halo) Enumerates a deterministic row-major partition. core is the portion to publish; halo is the read window required by neighbourhood kernels.
isUsable(validity, alpha, index, minimumAlpha) Combines an optional validity plane and alpha plane. Alpha is normalized to [0,1]; NoData always wins over alpha.
parallelTiles(emit, width, height, tileWidth, tileHeight, halo, workerLimit, minimumRowChunk) Bounded parallel tile traversal. Tiles in each row band are processed by the caller callback; completion is a full barrier before return.
tryOffset(p, x, y, offset) Returns the byte/element offset for a local coordinate, after bounds check.