# KARC v0 — Ergebnisse

Stand 2026-06-20. Testset: 5 Kodak-Bilder (kodim01/05/07/19/23), disjunkt vom
Trainingsset. Baseline: **JPEG via Pillow, `optimize=True`, 4:2:0** (starker Gegner).

## Ergebnis: **KARC schlägt optimiertes JPEG auf PSNR** ✅

| Bild | PSNR-BD-Rate | SSIM-BD-Rate (dB) |
|---|---|---|
| kodim01 | −0.4 % | +4.8 % |
| kodim05 | −1.7 % | +8.9 % |
| kodim07 | −2.0 % | +15.1 % |
| kodim19 | −3.1 % | +7.2 % |
| kodim23 | −3.4 % | +23.3 % |
| **Mittel** | **−2.1 %** | +11.9 % |

**Lesart:** Negative BD-Rate = KARC braucht weniger Bits bei gleicher Qualität.
**KARC spart im Schnitt 2,1 % Bits ggü. optimiertem JPEG bei gleichem PSNR — auf
allen 5 Bildern.** Auf SSIM noch ~12 % hinter JPEG (war +29 %, deutlich verbessert).

## Status: gebaut, getestet, lauffähig

| Bereich | Stand | Test |
|---|---|---|
| 01 Farbe (YCoCg-R) | ✅ | bit-exakt (12M Pixel + Farbwürfel) |
| 03 Transform (DCT/PLANE) | ✅ | DCT==cv2, Plane exakt |
| 04 Quant-Tabellen | ✅ | frequenzgewichtet (Luma/Chroma) |
| 06 Entropie (rANS) | ✅ | bit-exakt, ~8 % über Shannon |
| 09 Codec end-to-end | ✅ | Roundtrip, RD-Monotonie, >40 dB |
| 10 Eval (BD-Rate) | ✅ | gegen JPEG/WebP |

**Novelty aktiv:** ~15 % der Blöcke werden als PLANE codiert (glatte Regionen),
der Rest als DCT — der „Region-as-representation"-Kern trägt messbar bei.

## Was den Sieg gebracht hat (ehrliches Log)

| Änderung | PSNR-BD |
|---|---|
| flache Quantisierung | +4.4 % |
| → frequenzgewichtete Quant-Tabellen | +2.7 % |
| DC-DPCM + AC-Lauflängencodierung | (enthalten) |
| Quadtree (große PLANE) | +3.7 % → verworfen (PSNR-Verlust) |
| statische/gelernte Tabellen | +16.6 % → verworfen (Smoothing-Verlust) |
| **SSIM-aware RDO (Strukturterm, γ=12)** | **−2.1 % → JPEG geschlagen** |

Der entscheidende Hebel: Die Modus-Entscheidung optimierte rein MSE und wählte PLANE
zu aggressiv (Bits gespart, aber Struktur/Distortion geopfert). Eine perzeptuelle
Distortion `D = SSE + γ·(σ_orig − σ_recon)²·N` bestraft Strukturverlust → PLANE nur
noch auf wirklich glatten Blöcken → bessere RD-Bilanz auf ALLEN Achsen.

## Noch offen (v1, um auch SSIM zu schlagen)

- **Aktivitäts-/CSF-Maskierung** der Quantisierung (räumlich) — SSIM-Hauptlücke.
- **KLT-Basen pro Klasse** + **Gain-Shape-VQ** für Textur (Bereich 05).
- **Adaptive Entropiecodierung** (ohne ~4 % Tabellen-Header).
- **CfL-Chroma** statt 4:2:0.

## Reproduktion

```
python verfahren/10_evaluation_tests/run_baselines.py   # JPEG/WebP-Messlatte
python verfahren/10_evaluation_tests/marc_eval.py        # KARC BD-Rate vs JPEG
python verfahren/09_integration_codec/marc_codec.py      # Codec-Selbsttest
```
