Skip to content

Normalize image planes into one owned buffer through shared array operations - #9

Merged
trissim merged 1 commit into
mainfrom
perf/single-buffer-intensity-normalization-20261008
Oct 8, 2026
Merged

trissim merged 1 commit into
mainfrom
perf/single-buffer-intensity-normalization-20261008

Conversation

@trissim

@trissim trissim commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Per-plane image normalization currently allocates separate cast and divided planes followed by a final stack. Add the operation to the existing ArrayOperations/MemoryType owners, with a shared mutable-array implementation that allocates one output buffer for NumPy and CuPy. Immutable frameworks retain the original numerical recipe through the base implementation. Inputs remain unchanged and scale cardinality is enforced.

Validation: 252 exact comparisons with the original normalization owner, genuine WoundHealing RGB inputs, three CuPy dtype/device checks, and the complete external suite (242 passed, 17 skipped). Ruff, Black, and mypy passed. A four-fork saved-source replay reduced the normalization critical path from 1.174 s to 0.377 s; this is boundary evidence, not a full pipeline speedup claim. Bump to 0.3.8 so consumers can require the new API.

Addresses OpenHCSDev/openhcs#1106; the corresponding OpenHCS consumer PR will close that issue after production qualification.

Copilot AI balanced review requested due to automatic review settings October 8, 2026 01:54

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@trissim
trissim merged commit 31632d8 into main Oct 8, 2026
0 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants