feat(j2k): add exact deep region reduction - #70
Merged
Conversation
CarlAllenn
added a commit
to monumental-archive/iiif-server
that referenced
this pull request
Aug 4, 2026
…78) * chore: repoint j2k pin from fork to upstream main (all fixes merged) All three fixes the fork pin carried are now merged upstream: frames-sg/j2k#63 (region IDWT), frames-sg/j2k#65 (tile skip), and frames-sg/j2k#70 (deep region reduction, the maintainer's implementation of the API proposed in frames-sg/j2k#66). No crates.io release carries them yet — v0.8.0 predates the merges — so the [patch.crates-io] section stays, now pointing at upstream rev 85e7e29. Call-site changes: upstream kept the proposed public signature decode_region_scaled_pow2_into unchanged, but did not expose the fork's Rect::scaled_covering_denominator helper; jp2.rs now computes the covering rect locally. j2k version requirement bumped 0.7 -> 0.8. Validated: task ci green; spike2 differential goldens 6/6 (lossless bit-exact vs OpenJPEG, lossy within tolerance, HTJ2K bit-exact); codec_masters 9/9. Refs #21. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(ci): allow deps.dev and scorecards egress for dependency review The dependency-review action fetches license data from api.deps.dev and OpenSSF Scorecard data from api.securityscorecards.dev; both were blocked by the egress allowlist, failing the job with a bare 'fetch failed' (observed in the harden-runner agent log as 'domain not allowed'). Allowlist derived from the audit run per issue #6 canon. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * chore: nudge CI (empty) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Motivation
Large JPEG 2000 codestreams can carry resolution ladders deeper than the DCT-compatible shared
Downscaleenum. Decoding the exact lower ladder avoids doing unnecessary higher-resolution work before application resampling.Fixes #66.
Thanks @CarlAllenn for identifying this use case and proposing the J2K-specific power-of-two API shape in #66.
Validation
cargo xtask fmtcargo xtask clippycargo xtask clippy-strictcargo xtask testcargo xtask doccargo xtask repo-lintcargo xtask stable-apicargo xtask semvercargo xtask unsafe-auditcargo xtask panic-surfacereports the existing macOS baseline mismatch of 52expect_usedsites against 50. The same result reproduces from a pristine archive oforigin/main; this change adds no productionexpectcalls.