Technik & Architektur

Zehn Module, von Grund auf gebaut

KARC (Kotsch Adaptive Region Codec) ist zu 100 % in Python implementiert — NumPy, OpenCV und Pillow, CPU-only, ohne GPU. Jedes der zehn Module ist eigenständig und durch Unit-Tests abgedeckt.

Aufbau

Die zehn Module

Die Pipeline ist in zehn klar abgegrenzte Bereiche unterteilt. Jeder Bereich hat eine eng definierte Aufgabe und eigene Tests — Farbtransform bit-exakt, DCT identisch zu OpenCV, rANS bit-exakt, Codec-Roundtrip verlustkontrolliert.

Farbtransform

YCoCg-R: verlustfrei umkehrbare Farbtransform plus 4:2:0-Chroma-Subsampling. Gegen OpenCV bit-exakt getestet.

Segmentierung & Klassifikation

Zerlegt das Bild in 8×8-Blöcke und klassifiziert jeden Block nach Inhalt — die Grundlage der Region-as-representation-Idee.

Transform (DCT / PLANE)

Pro Block entweder eine affine PLANE (3 Parameter, glatte Flächen) oder eine DCT (Detail) — per Rate-Distortion ausgewählt.

Quantisierung

Frequenzgewichtete Quantisierung mit JPEG-artigen Tabellen — feinere Stufen für sichtbare, gröbere für unauffällige Frequenzen.

Gelernte Modelle

Vorberechnete Tabellen für Quantisierung und Entropie, an die Region-Klassen gekoppelt — keine Laufzeit-Trainingsschritte nötig.

Kontext & Entropie

rANS-Entropiecodierung mit klassen-konditionierten Tabellen. Die Region-Klasse ist der Kontext — null zusätzliche Signalbits.

Ratensteuerung

Steuert die Ziel-Bitrate bzw. Qualitätsstufe und balanciert pro Block den Kompromiss zwischen Bits und Fehler aus.

Bitstream-Format

Definiert das .karc-Containerformat: Header mit Magic „KARC“, Bildparameter und kontext-getrennte rANS-SubstRöme.

Integration

Verbindet alle Stufen zu Encoder und Decoder und stellt den verlustkontrollierten Roundtrip Bild → .karc → Bild sicher.

Evaluierung & Tests

Benchmark-Harness (BD-Rate, PSNR, SSIM) auf 20 Kodak-Bildern plus Unit-Tests für jedes Modul — alle Zahlen reproduzierbar.

Grundlage

Tech-Stack

Bewusst schlank und reproduzierbar: reines Python, etablierte Numerik-Bibliotheken und keinerlei GPU-Abhängigkeit. KARC läuft auf jeder CPU.

Python 3 NumPy OpenCV Pillow CPU-only keine GPU

Von Arthur Kotsch mit Claude (2026). Entstanden aus 30 Forschungsquellen, einem Multi-Agenten-Design (111 Agenten) und einer from-scratch-Implementierung in zehn Modulen.

Format

Das .karc-Bitstream-Format

Eine .karc-Datei beginnt mit einem kompakten Header zur Identifikation (Magic „KARC“) und Geometrie/Parametern. Danach folgen die Nutzdaten als mehrere, nach Kontext getrennte rANS-SubstRöme — so kann jeder Strom mit der für seine Region-Klasse passenden Tabelle decodiert werden.

// .karc-Container (schematisch)
"KARC" // Magic-Bytes — Format-Kennung
version // Versions-Byte
width, height // Bildgeometrie
quant_profile // Quantisierungs-/Qualitätsprofil
// — kontext-getrennte rANS-Substreams —
stream[PLANE] // glatte Regionen
stream[DCT] // Detail-Regionen
stream[DC / AC] // DC-DPCM + AC-Lauflängen

Schematische Darstellung. Die Trennung nach Kontext erlaubt klassen-konditionierte rANS-Tabellen ohne zusätzliche Signalbits im Strom.