Metadata-Version: 2.4
Name: vc-delta3d
Version: 0.1.0
Summary: Fast compression for three-dimensional uint8 and uint16 scalar fields
Author: ScrollPrize contributors
License-Expression: GPL-3.0-or-later
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering
Project-URL: Homepage, https://github.com/ScrollPrize/vc-delta3d
Project-URL: Repository, https://github.com/ScrollPrize/vc-delta3d
Project-URL: Issues, https://github.com/ScrollPrize/vc-delta3d/issues
Requires-Python: >=3.12
Requires-Dist: numpy
Requires-Dist: numcodecs>=0.15.1
Provides-Extra: examples
Requires-Dist: s3fs>=2024.12.0; extra == "examples"
Requires-Dist: zarr<4,>=3.2; extra == "examples"
Description-Content-Type: text/markdown

# VC-Delta3D

VC-Delta3D compresses three-dimensional `uint8` and `uint16` scalar fields.
It combines optional bounded scalar quantization, an axis-adaptive Lorenzo
delta transform, and order-0 rANS entropy coding.

Encoded chunks use the self-describing `D3D1` wire format and the Zarr
compressor identifier `vc-delta3d`.

## C++

```cpp
#include <vc_delta3d/codec.hpp>

auto encoded = vc_delta3d::compress(bytes, {z, y, x}, element_size);
auto decoded = vc_delta3d::decompress(encoded, bytes.size());
```

CMake consumers can link `vc_delta3d::vc_delta3d`.

## Python

```python
from vc_delta3d import Delta3D

codec = Delta3D(quant=1)
encoded = codec.encode(array)
decoded = codec.decode(encoded)
```

Importing `vc_delta3d` registers `vc-delta3d` with numcodecs.

## Build

```sh
cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=Release
ninja -C build
ctest --test-dir build --output-on-failure
```
