You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Completed the common static 8-bit Huffman JPEG reference before optional WASM work: incremental
entropy input, restart-aware region seeking, chroma-aware bilinear upsampling, SOF1 and sequential
multi-scan decode, 4:4:0 and 4:1:1 fixtures, native grayscale and restart-marker output, hostile
input limits, and provider-neutral parity vectors.
Added native 1/2, 1/4, and 1/8 JPEG IDCT output, decoder-driven scale selection for safe
full-frame downscales, baseline/progressive/restart/subsampling regressions, and an isolated
runtime, RSS, avoided-pixel, and output-error benchmark against the full-resolution path.
Added an explicit modern-browser entry with File/Blob, ArrayBuffer, Uint8Array, Blob output,
custom sinks, browser-safe TypeScript declarations, and a browser bundle gate that rejects Node
built-ins across the full codec graph.
Added browser PNG encoding through CompressionStream and bounded browser rotation/orientation
storage through OPFS, a lazy 64 MiB chunked-memory fallback, and IndexedDB for larger transforms.
Added HEIF/HEIC EXIF and RGB ICC preservation for conversion workflows, including orientation
normalization, plus structured ICC and nclx color-profile metadata for HEIF and AVIF.
Refreshed the static GitHub Pages documentation with responsive guides, API and codec references,
benchmark tables, memory-model explanations, and clearer capability boundaries.
Documented the progressive JavaScript, optional WASM, and future WebGPU backend roadmap,
including capability probing, workload-based selection, bounded GPU memory rules, runtime
fallback policy, correctness gates, and a staged browser-first delivery plan.
Added a reproducible bundle and deployment-footprint comparison for PureJsImage, Jimp, image-js,
and Sharp, with a matched common codec set and explicit accounting for Sharp's native payload.
Added one machine-readable codec capability manifest that generates README, detailed codec,
website, public JSON, and compatibility-test expectations, with a stale-output CI gate and a
repository agent skill for rolling capabilities out consistently.
Changed
Made bundle and installed-package size reporting part of the mandatory npm run check gate.
Reworked the root README into a shorter human-facing overview with a practical all-codec example,
bundle sizes, codec support and compatibility links, benchmark charts, and direct routes to the
API, benchmark, browser, temporary-storage, specification, and contributor details.
Split Node file, Buffer, zlib, and temporary-file services from the portable codec and pipeline
core while preserving the existing Node API and measured transform performance.
Made Node.js and modern-browser portability an explicit project goal and release requirement.
Reused a single Node file descriptor across detection, metadata, and execution reads, and avoided
redundant copies when stable sources fill codec regions.
Surfaced the measured 191.8-211.0 MiB JPEG 2000 decode peak and its 512 MiB Lambda-tier guidance
in the README and codec documentation.
Fixed
Reduced first-party lossless WebP output for graphics by adding predictor and subtract-green
transforms, LZ77 references, and adaptive Huffman trees, with exact Sharp/libwebp pixel checks
and an isolated size and peak-memory benchmark for the documented full-frame encoder state.
Decoded the quantization matrices and block delta-Q syntax used by default Sharp/libaom AVIF
output in the restricted opaque 8-bit YUV 4:2:0 path, with exact q50 and q80 YUV agreement
against both dav1d and libaom while delta loop-filter syntax remains explicitly unsupported.
Restricted SVG recognition to the document's first element so HTML with inline SVG and JSON text
mentioning <svg are no longer misreported as SVG input.