What's Changed
✨ Features
- lossless): restart intervals — decode, opt-in encode, parallel segments (P4b) (93aa5b0)
- bench): identity-hash gate + lossless clinical-path profiler (P0) (8f38fb4)
🐛 Bug Fixes
- build): explicit Foundation import for NSLock on watchOS (9f1c6eb)
- adversarial-review findings — heap over-read, segment validation, identity gaps (89999a4)
⚡ Performance
- encode): parallel lossless entropy emit via unstuffed-chunk stitch (P4a) (b31a23b)
- progressive) + chore: AC-pass buffer steal, remove dead Metal pipeline (P4c) (5260667)
- encode+decode): smaller hot-path items (P3c) (dab906d)
- decode): fused dequant+IDCT, parallel Step-7 reconstruction (P3b) (bbdb554)
- color): planar stride-1 vDSP conversion + vImage (de)interleave (P3a) (2b9c02c)
- dicom): cached W/L renderer, single-copy I/O, concurrent frame decode (P2b-P2d) (00577eb)
- encode): lossless residuals memoized once, swept in parallel (P1d) (e508e11)
- markers): readEntropyData as scan-then-slice (P2a) (b53b689)
- entropy): 64-bit BitReader with SWAR bulk refill (P1b) (16444bc)
- entropy): CLZ category + fused code+magnitude emit (P1a) (5e979d2)
🔧 Other Changes
- chore(release): bump version to 0.5.0 (ca4cc53)
- refactor(decode): lossless scan via raw-pointer static workers (P1c) (77f622f)
Installation
Add JLISwift to your Package.swift:
dependencies: [
.package(url: "https://github.com/Raster-Lab/JLISwift.git", from: "0.5.0")
]