Bioleptic
Wavelet-based signal compression for physiological data (ECG, PPG, accelerometry).
Algorithm
- Non-finite substitution (
NaN → 0, ±inf → 0/1)
- Mean-centering + range normalization
- Multi-level DWT (CDF 5/3 or CDF 9/7, 5 levels)
- Quantization to
i16 with configurable scale
- Detail coefficient thresholding
- Entropy coding with deflate
Rust
let compressed = compress(&signal, CompressionOptions::default())?;
let recovered = decompress(&compressed)?;
Python
pip install bioleptic-py
from bioleptic import compress_signal, decompress_signal, BiolpCompressionOptions
compressed = compress_signal(signal, BiolpCompressionOptions("cdf97", 11, "low"))
recovered = decompress_signal(compressed)
JavaScript
npm install bioleptic-js
import {
BiolpCompressionMethod,
BiolpCompressionOptions, BiolpCutoffLevel,
BiolpQuantizationScale,
compress_signal,
decompress_signal
} from "bioleptic-js";
const signal = new Float32Array([1.0, 2.0, 3.0, 4.0, 5.0, 1.0, 2.0, 3.0, 4.0, 5.0, 1.0, 2.0, 3.0, 4.0, 5.0]);
const options = new BiolpCompressionOptions(
BiolpCompressionMethod.Cdf97,
BiolpQuantizationScale.S11,
BiolpCutoffLevel.Low,
);
const compressed = compress_signal(signal, options); const recovered = decompress_signal(compressed); console.info("Recovered signal", recovered);
This project is licensed under either of
- BSD-3-Clause License (see LICENSE)
- Apache License, Version 2.0 (see LICENSE)
at your option.