Über das Projekt

KARC – ein Bildcodec, von Grund auf gebaut

KARC steht für „Kotsch Adaptive Region Codec“ – ein inhaltsadaptives Bildkompressionsverfahren, vollständig in Python geschrieben und ausschließlich auf der CPU lauffähig. Diese Seite erzählt, wie es entstand, was es kann und wo seine Grenzen liegen.

Der Weg

Von der Recherche zum lauffähigen Codec

KARC wurde nicht aus einer fertigen Bibliothek zusammengesetzt. Jeder Baustein – Farbtransform, Transformation, Quantisierung, Entropiecodierung – wurde von Grund auf implementiert und mit Unit-Tests abgesichert. Drei Schritte führten dorthin.

1

30 Forschungsquellen

Den Ausgangspunkt bildeten 30 heruntergeladene Forschungsquellen zu Bildkompression, Transformcodierung und perzeptueller Qualität. Daraus entstand das Grundverständnis dafür, welche Ideen sich lohnen – und welche Kompromisse moderne Codecs eingehen.

2

Multi-Agenten-Design (111 Agenten)

Auf Basis der Quellen wurde das Verfahren in einem Multi-Agenten-Prozess mit 111 Agenten entworfen. Verschiedene Agenten arbeiteten parallel an Teilfragen – von der Region-Klassifikation bis zur Entropiemodellierung – und führten die Entscheidungen zu einem konsistenten Gesamtdesign zusammen.

3

From-Scratch-Implementierung mit Unit-Tests

Das Design wurde in 10 Modulen von Grund auf umgesetzt – in reinem Python mit NumPy, OpenCV und Pillow. Jedes Modul ist durch Unit-Tests abgesichert: Die Farbtransform ist bit-exakt umkehrbar, die DCT stimmt mit OpenCV überein, der rANS-Coder ist bit-exakt, und der vollständige Codec-Roundtrip wird getestet.

Aufbau

Zehn Module, alle mit Tests

KARC ist in zehn klar abgegrenzte Bereiche aufgeteilt. Jeder Bereich hat eine eigene Verantwortung und eigene Tests.

01Farbtransform (YCoCg-R)
02Segmentierung & Klassifikation
03Transform (DCT / PLANE)
04Quantisierung
05Gelernte Modelle (Tabellen)
06Kontext & Entropie (rANS)
07Ratensteuerung
08Bitstream-Format
09Integration
10Evaluierung & Tests

Der Kerngedanke „Region-as-representation“: Pro 8×8-Block entscheidet ein Rate-Distortion-Kriterium zwischen einer affinen Ebene (3 Parameter, für glatte Flächen) und einer DCT (für Detail). Die gewählte Region-Klasse ist zugleich der Entropie-Kontext – ohne ein einziges zusätzliches Signalbit.

Ehrlich betrachtet

Was KARC kann – und was nicht

In einem Benchmark auf 20 Kodak-Bildern schlägt KARC die klassischen Standards: gegenüber JPEG (optimize=True) gewinnt es bei der PSNR-basierten BD-Rate in 18 von 20 Bildern; gegenüber JPEG 2000 (OpenJPEG, Standardeinstellung) in allen 20.

Gegenüber den modernen Codecs WebP und AVIF liegt KARC dagegen klar zurück und gewinnt dort kein einziges der 20 Bilder. Das ist erwartbar – diese Codecs sind das Ergebnis jahrelanger industrieller Optimierung.

KARC ist außerdem reine Python-Referenzimplementierung, CPU-only. Es ist gebaut, um die Idee sauber und nachvollziehbar zu zeigen – nicht für produktive Geschwindigkeit.

Das ehrliche Fazit: KARC schlägt JPEG und JPEG 2000, liegt aber hinter WebP und AVIF. Die vollständigen Zahlen inklusive BD-PSNR und BD-SSIM stehen in den Testberichten.

Ausblick

Wohin es gehen kann

Perzeptuelle Maskierung

Bits gezielter dorthin lenken, wo das Auge Fehler bemerkt – und sie dort sparen, wo Strukturen sie verdecken. Das ist der nächstliegende Hebel für bessere SSIM-Werte.

Gelernte Basen / VQ

Über die feste DCT hinaus: gelernte Transformationsbasen oder Vektorquantisierung, die sich besser an typische Bildinhalte anpassen als eine generische Frequenzbasis.

Wer

Hinter KARC

KARC wurde von Arthur Kotsch gemeinsam mit Claude entwickelt – im Jahr 2026. Es ist ein Forschungs- und Lernprojekt mit dem Anspruch, ein vollständiges Kompressionsverfahren wirklich zu verstehen, indem man es von Grund auf baut und testet.

Die Zahlen auf dieser Seite stammen aus reproduzierbaren Benchmarks gegen Pillow-Baselines. Wo eine Baseline möglicherweise nicht optimal getunt ist (z. B. OpenJPEG-Standardeinstellung), wird das offen genannt.