# PPG hybrid · 4×

Reproduce the `ppg-hybrid-4x` configuration. Prepare its dataset before running the workflow; use the linked configuration to inspect the exact settings.

## Overview

## Dataset & License

- **Dataset**: [Open unified PPG v1](https://ambiqai.github.io/compressionkit/datasets/) (`dataset_id: ppg-unified-strict-sanitize-v1`)
- **License**: Open (BIDMC, BUT PPG, PPG-DaLiA, WESAD — mixed open licenses, no restricted-access dependency)
- **Notes**: Sources: BIDMC, BUT PPG, PPG-DaLiA, and WESAD. Published v1 PPG goldens are MESA-free. Build the cache with `scripts/build_ppg_cache.py`.

The lifecycle runner pre-flights dataset availability before training (see the
[dataset contract](https://ambiqai.github.io/compressionkit/api/datasets/)).

## Reproduction

```bash
# Single command, end-to-end.
uv run compressionkit golden run ppg-hybrid-4x

```

Results land under `results/ppg_hybrid_64hz_04x_golden/`; deploy artifacts under `results/ppg_hybrid_64hz_04x_golden/deploy/`.

## Evaluation Metrics

See the modality model zoo for the full metrics table:

- [PPG models](https://ambiqai.github.io/compressionkit/models/ppg/)

Evaluation writes `quality_scorecard.json` and `summary.json` under its `results/<run>/`.

## Deploy Artifacts

The deploy package contains the following artifacts, depending on the export configuration:

- `spiht_config.json` / `spiht_app_config.h` — codec parameters (language-neutral + C header).
- `c_sources/spiht.[ch]` — portable C99 SPIHT reference.
- `sample_stimulus.npz` / `reference_vectors.npz` — license-safe test frames and known-good encode/decode vectors.
- `model_card.json`, `deploy_manifest.json` — metadata.
- `denoiser_gain_model.tflite` / `.h` — INT8 wavelet-gain denoiser (embeddable, LiteRT).
- `denoiser_gain_model.keras`, `hybrid_manifest.json` — float32 Python reference denoiser and pipeline stage order.

## Customization Notes

- This operating point is declared directly in `compressionkit/experiments/registry.py` (no training YAML) — add a new registry entry to explore a neighbouring operating point.
- To resume publishing without retraining, pass `--skip-train` to `compressionkit golden run ppg-hybrid-4x --publish`.
