compressionkit-ppg-hybrid-2x

A PPG signal compression codec: a learned wavelet-gain denoiser (trained weights) followed by wavelet + SPIHT + arithmetic coding. The deployable artifact is the denoiser weights, the bitstream contract, and a portable C99 reference implementation for the SPIHT stage.

Operating point

Field Value
Modality PPG
Sample rate 64 Hz
Frame size 320 samples
Target CR 2x
Wavelet bior4.4
DWT levels 6
Bit budget 2560 bits/frame
Entropy coder arithmetic coding

Quality metrics

Fidelity & Robustness

Both fidelity yardsticks are reported so the codec is judged fairly: faithfulness is PRD vs the recorded (still-noisy) input, while truth fidelity is PRD vs clean ground truth. Lower is better.

Metric Value
Truth PRD vs clean (%) 7.26
Truth PRD at native noise (%) 28.92
Faithful PRD vs input (%) 0.94
PRD degradation slope (PRD%/dB) 4.33
PRD at 0 dB SNR (%) 70.32
PRD at -6 dB SNR (%) 100.21
Pure-noise imprint autocorr 0.2668

Time Domain

PRD here is faithfulness (vs the recorded input); see Fidelity & Robustness above for the clean-truth and noise-regime view.

Metric Mean Median P90
PRD vs input โ€” faithfulness (%) 0.9444 0.0955 0.2838
RMSE 0.0094 0.0010 0.0028
Cosine Similarity 0.9983 1.0000 1.0000

Spectral

  • Band Total Relative Error (median): 0.0000

Bitrate

Python quickstart

from compressionkit.runtime import load_codec

codec = load_codec("Ambiq/compressionkit-ppg-hybrid-2x")
enc = codec.compress(frame)   # frame: (frame_size,) float32
recon = codec.decompress(enc)

C quickstart

The SPIHT stage ships a portable C99 reference; the denoiser (denoiser_gain_model.keras) currently only has a Python/TFLite runtime path. Run the denoiser stage first (Python, or a converted TFLite Micro model) and feed its output into the C SPIHT encoder below.

#include "spiht_app_config.h"

float frame[APP_SPIHT_FRAME_SIZE];
uint8_t bitstream[APP_SPIHT_MAX_BYTES];
/* ... fill frame from sensor (post-denoise, if hybrid) ... */
size_t nbits = spiht_encode_frame(&enc, bitstream, APP_SPIHT_MAX_BITS);

Files

File Description
config.json Deploy manifest (family: "hybrid")
spiht_config.json Codec parameters (language-neutral)
sample_stimulus.npz Synthetic test frames
reference_vectors.npz Reference encode/decode vectors
c_sources/spiht.[ch] Portable C99 reference
c_sources/spiht_app_config.h Codec-specific defines
model_card.json Provenance metadata
scorecard.json Frozen evaluation summary
denoiser_gain_model.keras Learned wavelet-gain denoiser (trained weights)
hybrid_manifest.json Pipeline stage order (denoise โ†’ SPIHT)

Dataset & license

Evaluation data provenance is not recorded in this package; sample data uses synthetic physiokit waveforms only โ€” no patient data is redistributed.

Codec source released under the OTHER license.

Citation

@software{compressionkit,
  author = {Ambiq AI},
  title = {compressionKIT: Signal Compression for Edge AI},
  url = {https://github.com/AmbiqAI/compressionkit}
}
Downloads last month
54
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support