- Specialize for writing out bits/trits/quints
- Remove temporary buffers
- Unroll whole trits/quints blocks
- Pack trit and quint LSBs with trailing T bits before write
- Pass by reference for singular values (mostly so we
can distinguish singletons and arrays in code reviews).
- Pass PCB by ref rather than relying on write elision.
- Add some missing statics for module local functions
* Update test data reference CSV
* Formatting cleanups
* Make image data type flexible
- No new types supported yet, but it's a precursor to just supporting f32 as an interface type.
This phase introduces the first phase of the API split between the API front-end and the CODEC backed. However, some aspects of the final design are not yet supported:
This build only only supports automatic multi-threading; no user owned thread pools are supported.
Some memory allocations still tied to the compression pass, not the context, so reusing the context will have higher than planned CPU overhead due to the repeated memory allocation (although the impact is probably small unless compression small image).
The input image layout is still the legacy format and must be pre-padded by the caller for any pass using the area-based perceptual metrics.