New
zignal 0.7.1
Highlights
- Faster pipelines: Convolution now skips redundant work for uniform RGB channels and leverages SIMD kernels, while the sixel encoder received a full rewrite with smarter palette generation, chunking, and profiling hooks, dramatically cutting time-to-frame for terminal renders.
- Safer numerics: Matrix GEMM now correctly dispatches Aᵀ * Bᵀ paths to SIMD helpers, and JPEG/PNG decoders gained hardened restart-marker handling plus accurate 16‑bit channel extraction to stop stray color swaps.
- Better accuracy: Feature Distribution Matching honours grayscale targets again, rectangles perform more stable overlap checks, and canvas drawing floors fractional coordinates to eliminate off-by-one artefacts.
- Tidier internals: Image quality helpers (PSNR/SSIM) moved into image/metrics.zig, paving the way for new example (like the fresh metrics demo) while web samples were refreshed to showcase the improved terminal encoders.
Python Bindings
- Added zignal.RunningStats, mirroring Zig’s streaming statistics (mean, variance, skewness, etc.) with add, extend, combine, and scale helpers plus read-only properties.
- Exposed zignal.perlin(...), bringing the 3D Perlin noise generator to Python with guarded amplitude, frequency, octave, persistence and lacunarity controls.