@fideus-labs/ngff-zarr 0.12.0 → 0.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/utils/codecs.d.ts +1 -21
- package/esm/utils/codecs.d.ts.map +1 -1
- package/esm/utils/compute_omero-shared.d.ts.map +1 -1
- package/esm/utils/compute_omero-shared.js +36 -19
- package/esm/utils/compute_omero-shared.js.map +1 -1
- package/esm/utils/compute_omero.js +52 -1
- package/esm/workers/omero_codec_worker.js +35 -15
- package/esm/workers/omero_codec_worker.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,20 +1,5 @@
|
|
|
1
1
|
// SPDX-FileCopyrightText: Copyright (c) Fideus Labs LLC
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
|
-
/**
|
|
4
|
-
* Custom Web Worker that extends fizarrita's codec worker with OMERO
|
|
5
|
-
* statistics computation.
|
|
6
|
-
*
|
|
7
|
-
* Handles all standard fizarrita codec messages (init, decode, decode_into,
|
|
8
|
-
* encode) PLUS a new `decode_and_stats` message that decodes a chunk AND
|
|
9
|
-
* computes per-channel statistics in a single round-trip.
|
|
10
|
-
*
|
|
11
|
-
* Message protocol (superset of fizarrita's codec-worker):
|
|
12
|
-
* init: → init_ok (register codec pipeline metadata)
|
|
13
|
-
* decode: → decoded (decode raw bytes, return chunk)
|
|
14
|
-
* decode_into: → decode_into_ok (decode into SharedArrayBuffer)
|
|
15
|
-
* encode: → encoded (encode chunk data)
|
|
16
|
-
* decode_and_stats: → decoded_and_stats (decode + compute channel stats)
|
|
17
|
-
*/
|
|
18
3
|
// fizarrita internals for codec pipeline
|
|
19
4
|
import { create_codec_pipeline } from "@fideus-labs/fizarrita/internals/codec-pipeline";
|
|
20
5
|
import { compat_chunk, set_from_chunk_binary, } from "@fideus-labs/fizarrita/internals/setter";
|
|
@@ -32,15 +17,50 @@ function fixEdgeChunkShapeStride(chunk, actualChunkShape) {
|
|
|
32
17
|
const expectedElements = actualChunkShape.reduce((a, b) => a * b, 1);
|
|
33
18
|
const actualElements = chunk.data.length;
|
|
34
19
|
if (actualElements === expectedElements) {
|
|
20
|
+
// Decoded size matches the actual edge shape — just fix shape/stride
|
|
35
21
|
return {
|
|
36
22
|
data: chunk.data,
|
|
37
23
|
shape: actualChunkShape,
|
|
38
24
|
stride: get_strides(actualChunkShape, "C"),
|
|
39
25
|
};
|
|
40
26
|
}
|
|
27
|
+
if (actualElements > expectedElements) {
|
|
28
|
+
// Decoded chunk is padded to full chunk_shape (e.g. by setWorker).
|
|
29
|
+
// Extract the valid sub-region into a compact contiguous buffer.
|
|
30
|
+
// deno-lint-ignore no-explicit-any
|
|
31
|
+
const src = chunk.data;
|
|
32
|
+
const Ctr = src.constructor;
|
|
33
|
+
const dst = new Ctr(expectedElements);
|
|
34
|
+
const srcStrides = get_strides(chunk.shape, "C");
|
|
35
|
+
copySubRegion(src, srcStrides, dst, actualChunkShape);
|
|
36
|
+
return {
|
|
37
|
+
data: dst,
|
|
38
|
+
shape: actualChunkShape,
|
|
39
|
+
stride: get_strides(actualChunkShape, "C"),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
41
42
|
}
|
|
42
43
|
return chunk;
|
|
43
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Copy a sub-region from a padded C-order buffer into a compact destination.
|
|
47
|
+
*
|
|
48
|
+
* For each dimension, copies only the first `subShape[d]` elements along
|
|
49
|
+
* that axis from the source (which has strides `srcStrides`).
|
|
50
|
+
*/
|
|
51
|
+
function copySubRegion(src, srcStrides, dst, subShape, srcOffset = 0, dstOffset = 0, dim = 0) {
|
|
52
|
+
if (dim === subShape.length - 1) {
|
|
53
|
+
// Innermost dimension — copy contiguous run
|
|
54
|
+
for (let i = 0; i < subShape[dim]; i++) {
|
|
55
|
+
dst[dstOffset + i] = src[srcOffset + i];
|
|
56
|
+
}
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const dstStride = subShape.slice(dim + 1).reduce((a, b) => a * b, 1);
|
|
60
|
+
for (let i = 0; i < subShape[dim]; i++) {
|
|
61
|
+
copySubRegion(src, srcStrides, dst, subShape, srcOffset + i * srcStrides[dim], dstOffset + i * dstStride, dim + 1);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
44
64
|
// ---------------------------------------------------------------------------
|
|
45
65
|
// Codec pipeline cache — keyed by metaId
|
|
46
66
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omero_codec_worker.js","sourceRoot":"","sources":["../../src/workers/omero_codec_worker.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,+BAA+B;
|
|
1
|
+
{"version":3,"file":"omero_codec_worker.js","sourceRoot":"","sources":["../../src/workers/omero_codec_worker.ts"],"names":[],"mappings":"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"}
|