@gmitch215/tinyimg 1.1.0 → 1.2.0

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/dist/transform.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { COMPRESSION, Image, mimeFor } from './image.js';
2
- import { readSource } from './types.js';
2
+ import { Err, TinyImgBudgetError, readSource } from './types.js';
3
3
  const ORDER = [
4
4
  'crop',
5
5
  'resize or fit',
@@ -70,21 +70,32 @@ export async function transform(module, source, options = {}) {
70
70
  return passed;
71
71
  const image = await Image.open(module, bytes);
72
72
  try {
73
+ image.autoOrient();
73
74
  apply(image, options);
74
75
  let decided = image.decide();
75
- const format = chooseFormat(module, image, options, decided);
76
+ const mode = options.admission;
77
+ const guarded = options.budgetMs !== undefined && mode !== undefined;
78
+ const scale = options.platformScale ?? 1;
79
+ const room = options.budgetMs === undefined ? undefined : options.budgetMs / scale;
80
+ const price = (format, level) => guarded
81
+ ? encodeUpperMs(module, FORMAT_ID[format], decided, options, level)
82
+ : module.exports.tiny_encode_cost_at(FORMAT_ID[format], decided.output.width, decided.output.height, COMPRESSION.indexOf(level)) / 1000;
83
+ const format = chooseFormat(module, image, options, decided, guarded
84
+ ? (candidate) => (decided.costUpperMs + price(candidate, 'auto')) * scale
85
+ : undefined);
76
86
  let compression = options.compression;
77
- if (options.budgetMs !== undefined) {
78
- const priced = (level) => module.exports.tiny_encode_cost_at(FORMAT_ID[format], decided.output.width, decided.output.height, COMPRESSION.indexOf(level)) / 1000;
87
+ if (options.budgetMs !== undefined && mode !== 'strict') {
88
+ const budget = guarded ? room : options.budgetMs;
89
+ const priced = (level) => price(format, level);
79
90
  if (compression === undefined && priced('none') < priced('default')) {
80
91
  for (const level of ['default', 'fast', 'none']) {
81
92
  compression = level;
82
- if (options.budgetMs - priced(level) > 0)
93
+ if (budget - priced(level) > 0)
83
94
  break;
84
95
  }
85
96
  }
86
97
  const encodeMs = priced(compression ?? 'auto');
87
- image.budget(Math.max(0.001, options.budgetMs - encodeMs));
98
+ image.budget(Math.max(0.001, budget - encodeMs), guarded ? 'upper' : 'point');
88
99
  decided = image.decide();
89
100
  }
90
101
  const encode = {
@@ -97,13 +108,65 @@ export async function transform(module, source, options = {}) {
97
108
  ...(options.effort === undefined ? {} : { effort: options.effort }),
98
109
  ...(compression === undefined ? {} : { compression })
99
110
  };
100
- const data = await image.bytes(format, encode);
111
+ const giveBack = async (error) => {
112
+ const info = await module.probe(bytes);
113
+ if (info.format === 'unknown' || info.format !== format) {
114
+ error.message = `${error.message}; cannot pass the source through because the output is ${format} and the source is ${info.format}`;
115
+ throw error;
116
+ }
117
+ const turned = info.orientation >= 5;
118
+ const view = bytes.buffer instanceof ArrayBuffer
119
+ ? bytes
120
+ : new Uint8Array(bytes);
121
+ return result(view, info.format, turned ? info.height : info.width, turned ? info.width : info.height, false, ['passthrough']);
122
+ };
123
+ if (guarded) {
124
+ const verdict = image.admit(options.budgetMs, {
125
+ mode: mode === 'strict' ? 'strict' : 'degrade',
126
+ format,
127
+ platformScale: scale,
128
+ ...(options.quality === undefined ? {} : { quality: options.quality }),
129
+ ...(options.lossless === undefined ? {} : { lossless: options.lossless }),
130
+ ...(options.effort === undefined ? {} : { effort: options.effort }),
131
+ ...(compression === undefined ? {} : { compression })
132
+ });
133
+ if (verdict.decision === 'reject' && mode !== 'degrade') {
134
+ const error = boundError(module, verdict, options.budgetMs);
135
+ if (mode === 'strict')
136
+ throw error;
137
+ return giveBack(error);
138
+ }
139
+ }
140
+ const dropped = module.alphaDropped();
141
+ let pending;
142
+ if (guarded)
143
+ module.exports.tiny_work_set_limit(Math.max(1, Math.ceil(room * 1000)));
144
+ try {
145
+ pending = image.bytes(format, encode);
146
+ }
147
+ finally {
148
+ if (guarded)
149
+ module.exports.tiny_work_set_limit(0);
150
+ }
151
+ const lost = module.alphaDropped() !== dropped;
152
+ let data;
153
+ try {
154
+ data = await pending;
155
+ }
156
+ catch (error) {
157
+ if (guarded && error instanceof TinyImgBudgetError) {
158
+ error.message = `the work counters passed the ${options.budgetMs} ms budget; ${error.message}`;
159
+ if (mode === 'passthrough')
160
+ return giveBack(error);
161
+ }
162
+ throw error;
163
+ }
101
164
  const gave_up = compression !== undefined &&
102
165
  compression !== 'default' &&
103
166
  options.compression === undefined
104
167
  ? [...decided.degraded, 'compression']
105
168
  : decided.degraded;
106
- return result(data, format, decided.output.width, decided.output.height, image.sourceFrames > 1, gave_up);
169
+ return result(data, format, decided.output.width, decided.output.height, image.sourceFrames > 1, lost ? [...gave_up, 'alpha'] : gave_up);
107
170
  }
108
171
  finally {
109
172
  image.dispose();
@@ -166,18 +229,21 @@ async function passThrough(module, bytes, options) {
166
229
  const wanted = asked === 'auto' ? (module.has('webp') ? 'webp' : 'jpeg') : asked;
167
230
  if (wanted !== undefined && wanted !== info.format)
168
231
  return undefined;
232
+ const turned = info.orientation >= 5;
233
+ const shownWidth = turned ? info.height : info.width;
234
+ const shownHeight = turned ? info.width : info.height;
169
235
  const width = options.width;
170
236
  const height = options.height;
171
- if (width !== undefined && width < info.width)
237
+ if (width !== undefined && width < shownWidth)
172
238
  return undefined;
173
- if (height !== undefined && height < info.height)
239
+ if (height !== undefined && height < shownHeight)
174
240
  return undefined;
175
241
  if (width !== undefined && height !== undefined)
176
242
  return undefined;
177
243
  const view = bytes.buffer instanceof ArrayBuffer
178
244
  ? bytes
179
245
  : new Uint8Array(bytes);
180
- return result(view, info.format, info.width, info.height);
246
+ return result(view, info.format, shownWidth, shownHeight);
181
247
  }
182
248
  const FORMAT_ID = {
183
249
  png: 1,
@@ -190,14 +256,16 @@ const FORMAT_ID = {
190
256
  heif: 8
191
257
  };
192
258
  const AUTO_ORDER = ['webp', 'jpeg'];
193
- function chooseFormat(module, image, options, decided) {
259
+ function chooseFormat(module, image, options, decided, bound) {
194
260
  const asked = options.format;
195
261
  if (asked !== undefined && asked !== 'auto')
196
262
  return asked;
197
263
  const budget = options.budgetMs;
198
264
  const { width, height } = decided.output;
199
- const cost = (format) => decided.estimateMs +
200
- module.exports.tiny_encode_cost(FORMAT_ID[format], width, height) / 1000;
265
+ const cost = (format) => bound
266
+ ? bound(format)
267
+ : decided.estimateMs +
268
+ module.exports.tiny_encode_cost(FORMAT_ID[format], width, height) / 1000;
201
269
  if (asked === 'auto') {
202
270
  if (budget === undefined) {
203
271
  return module.has('webp') ? 'webp' : 'jpeg';
@@ -211,6 +279,28 @@ function chooseFormat(module, image, options, decided) {
211
279
  }
212
280
  return source;
213
281
  }
282
+ function encodeUpperMs(module, format, decided, options, level) {
283
+ const opts = module.alloc(8);
284
+ try {
285
+ const view = module.view();
286
+ view.setUint8(opts, options.quality ?? 0);
287
+ view.setUint8(opts + 1, options.lossless ? 1 : 0);
288
+ view.setUint8(opts + 2, COMPRESSION.indexOf(level));
289
+ view.setUint8(opts + 3, decided.output.channels);
290
+ view.setUint8(opts + 4, options.effort === 'fast' ? 1 : 0);
291
+ return (module.exports.tiny_encode_cost_upper_for(format, decided.output.width, decided.output.height, opts) / 1000);
292
+ }
293
+ finally {
294
+ module.free(opts);
295
+ }
296
+ }
297
+ function boundError(module, admission, budgetMs) {
298
+ const error = new TinyImgBudgetError(Err.budget, module.errorName(Err.budget), `the upper bound ${admission.costUpperMs} ms is over the ${budgetMs} ms budget ` +
299
+ `(point estimate ${admission.costMs} ms, margin ${admission.marginMs} ms)`);
300
+ error.reason = 'bound';
301
+ error.admission = admission;
302
+ return error;
303
+ }
214
304
  function result(data, format, width, height, flattened = false, degraded = []) {
215
305
  const contentType = mimeFor(format);
216
306
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/ts/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/ts/transform.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -110,6 +110,39 @@ export interface TransformOptions {
110
110
  * is a decision, and this option does not overrule it.
111
111
  */
112
112
  budgetMs?: number;
113
+ /**
114
+ * What to do when `budgetMs` cannot be met. Read only beside `budgetMs`.
115
+ *
116
+ * - `'degrade'` takes the planner's levers, judged on the calibrated upper bound rather than
117
+ * the point estimate, and runs the cheapest request that results.
118
+ * - `'strict'` throws {@link TinyImgBudgetError} when the upper bound is over budget, and
119
+ * gives nothing up.
120
+ * - `'passthrough'` degrades as far as the ladder goes, and when even that does not fit
121
+ * returns the source bytes unchanged with `'passthrough'` in `degraded`.
122
+ *
123
+ * Leaving this unset keeps `budgetMs` exactly as it behaved before the option existed: the
124
+ * point estimate, no bound and no guard, so an existing caller sees no change. Naming
125
+ * `'degrade'` is the opt-in to the bound and the guard.
126
+ *
127
+ * Whatever the mode, an admitted request that turns out heavier than predicted stops itself
128
+ * when the work counted so far passes the budget: `'passthrough'` then returns the source,
129
+ * and the other two throw {@link TinyImgBudgetError}. The guard counts work rather than
130
+ * reading a clock, because a Worker's timers do not advance while code runs.
131
+ *
132
+ * A passthrough needs the output format to be the source's own, or none to be asked for;
133
+ * otherwise the same error is thrown and says why.
134
+ *
135
+ * The bound is a calibrated prediction under exchangeability, not a guarantee, and it is
136
+ * relative to the machine it was calibrated on; see {@link TransformOptions.platformScale}.
137
+ */
138
+ admission?: 'degrade' | 'strict' | 'passthrough';
139
+ /**
140
+ * How much slower the machine running this is than the one the cost model was calibrated on.
141
+ * 1 means the same machine and is the default. A Worker ran the same module 1.90 times slower
142
+ * at the median and 2.4 to 4.7 times slower on cheap requests, so pass your own measured
143
+ * factor. The library never supplies one.
144
+ */
145
+ platformScale?: number;
113
146
  /** Quality for a lossy format, 1 through 100. */
114
147
  quality?: number;
115
148
  /**
@@ -125,7 +158,7 @@ export interface TransformOptions {
125
158
  lossless?: boolean;
126
159
  /** Write a progressive or interlaced stream. */
127
160
  progressive?: boolean;
128
- /** Whether to carry EXIF and other metadata into the output. Defaults to `keep`. */
161
+ /** Accepted for the encoders that write metadata. A transformation's output carries none. */
129
162
  metadata?: MetadataPolicy;
130
163
  }
131
164
  /** A rectangle in pixels. */
@@ -166,6 +199,14 @@ export interface ImageInfo {
166
199
  hasAlpha: boolean;
167
200
  /** Whether this is a progressive JPEG, which cannot stream a region. */
168
201
  progressive: boolean;
202
+ /**
203
+ * The orientation, 1 through 8, or 1 when there is none.
204
+ *
205
+ * Read from a JPEG's EXIF or an AVIF's `irot` and `imir` properties; every other format
206
+ * reports 1. `width` and `height` are the
207
+ * stored extent, so a value of 5 through 8 means the image displays with them swapped.
208
+ */
209
+ orientation: number;
169
210
  }
170
211
  /** Decoded samples, with the extent they describe. */
171
212
  export interface RawImage {
@@ -216,14 +257,29 @@ export interface PlanDecision {
216
257
  /**
217
258
  * What running this plan is expected to cost in milliseconds, before any encoder.
218
259
  *
219
- * An estimate and not a promise: the rates behind it were measured on one machine, and against
220
- * real transforms it lands within about 20%. That is the accuracy the question needs when the
221
- * question is whether work will fit inside a CPU limit, and it is not a substitute for
222
- * measuring, which {@link TinyImgModule.measure} does.
260
+ * A point estimate and not a promise: the rates behind it were timed on one machine. Over a
261
+ * held-out half of the calibration corpus its median absolute decode error is 1% for BMP, 7%
262
+ * for PNG, 9% for JPEG and AVIF, 16% for GIF, 17% for WebP and 57% for TIFF (which it prices
263
+ * from one multiplier although the compression coding spans 5x), and single requests spread
264
+ * wider; {@link PlanDecision.costUpperMs} is the
265
+ * bound for a question about whether work fits. Neither substitutes for measuring, which
266
+ * {@link TinyImgModule.measure} does.
223
267
  *
224
268
  * 0 when the source header could not be read.
225
269
  */
226
270
  estimateMs: number;
271
+ /**
272
+ * A calibrated upper bound on {@link PlanDecision.estimateMs}, in the same unit, never below it.
273
+ *
274
+ * The decode phase scaled by a per-format factor from the 95th percentile of measured over
275
+ * estimated time on held-out calibration cells. A prediction bound under exchangeability, not
276
+ * a guarantee, and relative to the machine those cells were timed on (darwin, native node,
277
+ * the shipping module): a Worker runs the same module about 1.9x slower at the median, so
278
+ * scale it by your own machine factor before admitting work against a CPU limit.
279
+ *
280
+ * 0 when the source header could not be read.
281
+ */
282
+ costUpperMs: number;
227
283
  /**
228
284
  * What the planner gave up to fit a budget, by name.
229
285
  *
@@ -237,6 +293,94 @@ export interface PlanDecision {
237
293
  */
238
294
  degraded: string[];
239
295
  }
296
+ /**
297
+ * Whether a request fits a CPU budget, and the numbers behind the answer.
298
+ *
299
+ * Every figure is in milliseconds and already multiplied by the machine factor the caller gave,
300
+ * so `marginMs` is comparable to the budget as it was passed in. The upper bound is a prediction
301
+ * under exchangeability on the machine the model was calibrated on, not a guarantee.
302
+ */
303
+ export interface Admission {
304
+ /**
305
+ * `'admit'` when the request fits as it is, `'degraded'` when it fits after the levers in
306
+ * `degraded`, and `'reject'` when it does not fit and, in degrade mode, no lever makes it.
307
+ */
308
+ decision: 'admit' | 'degraded' | 'reject';
309
+ /** Point estimate of decode, resample and encode. */
310
+ costMs: number;
311
+ /** The calibrated upper bound on the same. */
312
+ costUpperMs: number;
313
+ /** The encoder's share of `costMs`. */
314
+ encodeMs: number;
315
+ /** The encoder's share of `costUpperMs`. */
316
+ encodeUpperMs: number;
317
+ /** Budget minus `costUpperMs`; negative when over. */
318
+ marginMs: number;
319
+ /** The levers the figures assume, as {@link PlanDecision.degraded} names them. */
320
+ degraded: string[];
321
+ }
322
+ /** What removed a candidate from a {@link Selection}, in the order the checks run. */
323
+ export type SelectReason = 'none' | 'format' | 'alpha' | 'uncharacterized' | 'peak' | 'quality' | 'budget';
324
+ /** One way of running a request that {@link Image.select} looked at. */
325
+ export interface SelectCandidate {
326
+ /** The output container. */
327
+ format: ImageFormat;
328
+ /** The encoder quality to write at; 0 for a format that takes none. */
329
+ quality: number;
330
+ /** Whether the coding is lossless. */
331
+ lossless: boolean;
332
+ /** What removed it, or `'none'` when it met every limit. */
333
+ reason: SelectReason;
334
+ /** Calibrated upper bound on decode, resample and encode, times `platformScale`; 0 when removed before it was priced. */
335
+ costUpperMs: number;
336
+ /** Upper bound on the heap the plan's run uses, in bytes. */
337
+ peakBytes: number;
338
+ /** Predicted PSNR against the undegraded output, from the fifth percentiles; undefined when unknown. */
339
+ db: number | undefined;
340
+ /** Predicted median encoded bytes for the whole output; undefined when unknown. */
341
+ bytes: number | undefined;
342
+ }
343
+ /** The candidate {@link Image.select} chose. */
344
+ export interface SelectChoice extends SelectCandidate {
345
+ /** Position in the plan's lattice, which {@link Image.bytesFor} runs. */
346
+ candidate: number;
347
+ /** Predicted median PSNR in dB, composed like `db`; undefined when unknown. */
348
+ dbMedian: number | undefined;
349
+ }
350
+ /** How often a fifth-percentile prediction held on images that were not in the fit. */
351
+ export interface SelectCoverage {
352
+ /** For the decode lever's table, at this source format; 0 when not measured. */
353
+ lever: number;
354
+ /** For the encoder's table, at the chosen format; 0 when not measured. */
355
+ encode: number;
356
+ }
357
+ /**
358
+ * What {@link Image.select} decided, and what it looked at.
359
+ *
360
+ * The predicted figures are table medians and percentiles measured on other images, so they are a
361
+ * prediction under exchangeability and not a guarantee. `db` is the PSNR against what this plan
362
+ * produces with no lever given up, composed from the lever's and the encoder's fifth percentiles;
363
+ * its measured out-of-sample coverage is in `coverage`. `bytes` is a median over 99 opaque images
364
+ * and says more about the order of two formats than about this image's size.
365
+ */
366
+ export interface Selection {
367
+ /** Whether a candidate met every limit. When false, `reason` says which check the nearest miss failed. */
368
+ feasible: boolean;
369
+ /** The check the nearest miss failed; `'none'` when feasible. */
370
+ reason: SelectReason;
371
+ /** The choice; undefined when not feasible. */
372
+ choice: SelectChoice | undefined;
373
+ /** Width of the output image. */
374
+ width: number;
375
+ /** Height of the output image. */
376
+ height: number;
377
+ /** Whether the source was treated as having alpha, which makes `db` pessimistic and `bytes` omit the alpha plane. */
378
+ alpha: boolean;
379
+ /** Measured held-out coverage, 0 to 1, of the lever's fifth percentile for this source format. */
380
+ coverage: SelectCoverage;
381
+ /** Every candidate looked at, in search order. */
382
+ considered: SelectCandidate[];
383
+ }
240
384
  /**
241
385
  * A failed call.
242
386
  *
@@ -298,6 +442,21 @@ export declare class TinyImgPlanError extends TinyImgError {
298
442
  /** The error's class, for a caller matching on it without instanceof. */
299
443
  readonly name = "TinyImgPlanError";
300
444
  }
445
+ /**
446
+ * The request was over its CPU budget: refused up front in strict mode, or stopped part way by the
447
+ * work counters.
448
+ *
449
+ * `reason` says which. `admission` carries the numbers when the refusal came from the bound; a stop
450
+ * part way has the code `-15` from the module and no decision to report.
451
+ */
452
+ export declare class TinyImgBudgetError extends TinyImgError {
453
+ /** The error's class, for a caller matching on it without instanceof. */
454
+ readonly name = "TinyImgBudgetError";
455
+ /** `'bound'` when the upper bound was over budget, `'work'` when the work counters stopped it. */
456
+ reason: 'bound' | 'work';
457
+ /** The decision and the numbers, set when `reason` is `'bound'`. */
458
+ admission?: Admission;
459
+ }
301
460
  /** Error codes, mirroring `enum TinyImageError`. */
302
461
  export declare const Err: {
303
462
  /** The call succeeded. */
@@ -330,6 +489,8 @@ export declare const Err: {
330
489
  readonly notFound: -13;
331
490
  /** The plan is full, or holds an operation it cannot combine. */
332
491
  readonly plan: -14;
492
+ /** The work clock passed the limit and the operation stopped itself. */
493
+ readonly budget: -15;
333
494
  };
334
495
  /**
335
496
  * Builds the error for a code.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/ts/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/ts/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -29,6 +29,11 @@ export class TinyImgBlobError extends TinyImgError {
29
29
  export class TinyImgPlanError extends TinyImgError {
30
30
  name = 'TinyImgPlanError';
31
31
  }
32
+ export class TinyImgBudgetError extends TinyImgError {
33
+ name = 'TinyImgBudgetError';
34
+ reason = 'work';
35
+ admission;
36
+ }
32
37
  export const Err = {
33
38
  ok: 0,
34
39
  null: -1,
@@ -44,7 +49,8 @@ export const Err = {
44
49
  blobMissing: -11,
45
50
  noChannel: -12,
46
51
  notFound: -13,
47
- plan: -14
52
+ plan: -14,
53
+ budget: -15
48
54
  };
49
55
  export function errorFor(code, codeName, context) {
50
56
  switch (code) {
@@ -68,6 +74,8 @@ export function errorFor(code, codeName, context) {
68
74
  return new TinyImgBlobError(code, codeName, context);
69
75
  case Err.plan:
70
76
  return new TinyImgPlanError(code, codeName, context);
77
+ case Err.budget:
78
+ return new TinyImgBudgetError(code, codeName, context);
71
79
  default:
72
80
  return new TinyImgError(code, codeName, context);
73
81
  }
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/ts/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/ts/types.ts"],"names":[],"mappings":"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"}