Home Algorithmen & KI DCT-Bildkompression (JPEG-Prinzip)

🖼️ DCT-Bildkompression (JPEG-Prinzip)

Die diskrete Kosinustransformation komprimiert einen 8×8-Pixelblock wie bei JPEG. DCT-II: X_k = 2·Σx_n·cos(π(2n+1)k/2N). Quantisieren Sie hochfrequente Koeffizienten. Sehen Sie das Kompressionsverhältnis gegen die Qualität.

Algorithmen & KI3DEinfach60 FPS
dct-compression ↗ Separat öffnen
ZIEHEN · SCROLLEN · KLICKEN — direkt im Simulationsfenster steuern.

Über diese Simulation

JPEG zerlegt das Bild in 8×8-Pixelblöcke, verschiebt die Werte durch Subtraktion von 128 und wendet die 2D-DCT-II an. Die resultierenden 64 Koeffizienten werden durch eine Quantisierungsmatrix (skaliert nach Qualitätsfaktor) geteilt und auf ganze Zahlen gerundet. Die inverse DCT rekonstruiert den Block — mit verlustbehafteter Näherung. Der DC-Koeffizient repräsentiert den Blockdurchschnitt; die AC-Koeffizienten kodieren den räumlichen Frequenzinhalt.

🔬 Was gezeigt wird

Wie ein 8×8-Pixelblock in 64 DCT-Koeffizienten zerlegt wird, wobei die meiste Energie in den niederfrequenten Koeffizienten oben links konzentriert ist — und wie die Quantisierungsmatrix je nach Qualitätsfaktor immer mehr hochfrequente Koeffizienten auf null rundet.

🎮 Bedienung

Wählen Sie ein Testmuster (Gradient, Schachbrett, scharfe Kante) und stellen Sie den Qualitätsregler ein, um zu sehen, wie sich Kompressionsverhältnis, Anzahl der Koeffizienten ungleich null und PSNR in Echtzeit ändern.

💡 Wussten Sie schon?

Ein Schachbrettmuster wechselt bei jedem Pixel und bildet sich fast vollständig auf die höchste DCT-Basisfunktion ab statt auf den DC-Term — bei niedriger Qualität wird dieser Koeffizient komplett wegquantisiert, und die Rekonstruktion kollabiert zu einem flachen grauen Block.

Häufig gestellte Fragen

Was ist die diskrete Kosinustransformation (DCT)?

Die DCT drückt eine Folge von Werten durch Kosinus-Basisfunktionen unterschiedlicher Frequenz aus. DCT-II wird in JPEG verwendet: X_k = 2·Σ x_n·cos(π(2n+1)k/2N) für k=0…N−1.

Warum verwendet JPEG 8×8-Blöcke?

8×8-Blöcke balancieren Rechenaufwand und Korrelation: benachbarte Pixel sind stark korreliert, sodass die 64-Koeffizienten-DCT Energie effizient in niederfrequenten Termen konzentriert. Größere Blöcke erhöhen Artefakte bei niedriger Qualität.

Was ist Quantisierung in JPEG?

Quantisierung teilt jeden DCT-Koeffizienten durch eine Schrittgröße und rundet auf eine ganze Zahl. Hochfrequenz-Koeffizienten nutzen größere Schrittgrößen, sodass sie null werden — die Hauptquelle verlustbehafteter Kompression.

Was sind JPEG-Kompressionsartefakte?

Blockartefakte erscheinen an Blockgrenzen, da benachbarte 8×8-Blöcke unabhängig komprimiert werden. Ringing-Artefakte (Gibbs-Phänomen) erscheinen nahe scharfer Kanten, wenn hochfrequente Koeffizienten verworfen werden.

Warum konzentriert die DCT Energie besser als die DFT?

Die DCT nimmt implizit eine gerade symmetrische Fortsetzung des Signals an und beseitigt damit die Diskontinuität an Blockgrenzen, die die DFT sehen würde. Das macht die DCT-Basis zu einer nahezu optimalen Karhunen-Loève-Transformation für typische Bildstatistiken.

Was ist der DC-Koeffizient?

Der DC-Koeffizient (k=0) ist proportional zum durchschnittlichen Pixelwert des Blocks. Er ist der größte Koeffizient und wird in JPEG typischerweise mit DPCM (Differenz zum DC des vorherigen Blocks) kodiert.

Was ist Zickzack-Scanning in JPEG?

Nach der Quantisierung wird die 8×8-Koeffizientenmatrix im Zickzack von niedriger zu hoher Frequenz gelesen. Dies gruppiert die von-null-verschiedenen niederfrequenten Koeffizienten am Anfang und erzeugt lange Nullfolgen für die Entropiekodierung.

Wie verbessert Chroma-Subsampling die JPEG-Kompression?

Das menschliche Sehen ist empfindlicher für Luminanz (Y) als für Chrominanz (Cb, Cr). JPEG wandelt RGB in YCbCr um und tastet Cb/Cr unter (z. B. halbiert 4:2:0 beide Dimensionen), was Daten reduziert, bevor die DCT überhaupt läuft.

Was ist der Unterschied zwischen JPEG und JPEG 2000?

JPEG nutzt 8×8-Block-DCT; JPEG 2000 nutzt eine Wavelet-Transformation (DWT) auf dem gesamten Bild. JPEG 2000 vermeidet Blockartefakte, unterstützt verlustfreien Modus und bietet bessere Qualität bei hohen Kompressionsraten, ist aber langsamer.

Welchen Qualitätsfaktor sollte ich für Web-Bilder verwenden?

Qualität 75–85 ist Standard für Web-Nutzung und bietet eine gute Balance zwischen Dateigröße und visueller Qualität. Qualität unter 60 verursacht sichtbare Blockartefakte. Für Thumbnails ist Qualität 50–65 oft akzeptabel.

Warum erzeugt das Muster „scharfe Kante“ sichtbare Fehlerartefakte, die der Gradient nicht zeigt?

Eine harte Kante im Block verteilt Energie über viele hochfrequente DCT-Koeffizienten, und genau diese teilt die Quantisierungsmatrix durch die größten Schrittgrößen — einmal auf null quantisiert, kann die inverse DCT den scharfen Übergang nicht wiederherstellen.

Warum erhöht das Senken des Qualitätsreglers die Kompression so stark?

Der Quantisierungsskalenfaktor wächst unterhalb von Qualität 50 stark (scale = 5000/Q), was jeden Eintrag der JPEG-Quantisierungsmatrix multipliziert und immer mehr kleinere AC-Koeffizienten auf genau null rundet.

Was misst die PSNR-Zahl hier genau?

PSNR (Spitzensignal-Rausch-Verhältnis) wird direkt aus dem mittleren quadratischen Fehler zwischen Original und rekonstruiertem 8×8-Block berechnet mit 10·log10(255²/MSE) — höheres PSNR bedeutet eine treuere Rekonstruktion.

Warum haben nur wenige Zellen in der Koeffizienten-Heatmap große Zahlen?

Bei strukturierten Mustern konzentriert die 2D-DCT den Großteil der Blockenergie in den niederfrequenten Koeffizienten nahe der oberen linken Ecke (u=0, v=0 ist der DC-Term) — genau deshalb weist die JPEG-Quantisierungsmatrix diesen Zellen kleine Schrittgrößen zu.

Warum verhält sich das Schachbrettmuster bei gleicher Qualität so anders als der Gradient?

Ein Schachbrett wechselt bei jedem Pixel, die höchstmögliche räumliche Frequenz, und bildet sich fast vollständig auf die einzige höchstfrequente DCT-Basisfunktion ab statt auf den DC-Term — bei niedriger Qualität wird dieser Koeffizient komplett wegquantisiert und die Rekonstruktion kollabiert zu einem flachen grauen Block, anders als der Gradient, dessen Energie in niedrigen, gut erhaltenen Frequenzen liegt.

Ähnliche Simulationen