add quantization visual to termin-2, restructure jpeg section
This commit is contained in:
@@ -183,6 +183,18 @@ Die Frage ist nicht ob, sondern wie komprimiert wird.
|
||||
|
||||
# Zwei Philosophien der Kompression
|
||||
|
||||
<!--
|
||||
|
||||
Was ist überhaupt KOMPRESSION?
|
||||
|
||||
- Luftdruck in Auto/Fahrradreifen
|
||||
- LNG Flüssiggas
|
||||
- Tripsdrill, Disneyland
|
||||
- Oper/Theater/Telenovela
|
||||
- Cola Sirup für den Sodastream
|
||||
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# Verlustfreie Kompression (Lossless)
|
||||
@@ -922,6 +934,15 @@ Prognose 2028: 394 ZB
|
||||
|
||||
---
|
||||
|
||||
|
||||
<!-- _header: '' -->
|
||||
<!-- _footer: 'Floridi, L.: The forth Revolution' -->
|
||||
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
# AI-generierte Inhalte 2025
|
||||
|
||||
**Wie viel Content ist heute synthetisch?**
|
||||
|
||||
@@ -106,7 +106,7 @@ Hochschule der Medien Stuttgart
|
||||
**Ein Dateiformat definiert:**
|
||||
- Ob und wie Daten komprimiert werden
|
||||
- Welche Metadaten enthalten sind
|
||||
- Wie Daten *codiert* und *decodiert* (*Co·dec*)
|
||||
- Wie Daten *»codiert«"* und *»decodiert«* (*Co·dec*)
|
||||
|
||||
| Ziel | Bild | Audio | Dokument |
|
||||
|------|------|-------|----------|
|
||||
@@ -354,9 +354,9 @@ Banding: Zu wenig Bits für feine Farbabstufungen.
|
||||
| 30 | ~50 KB | Deutlich sichtbar |
|
||||
|
||||
**Sweet Spot: 85-90**
|
||||
~10× Kompression, für Menschen kaum unterscheidbar.
|
||||
~10× Kompression ist für den Menschen kaum unterscheidbar.
|
||||
|
||||
<small>¹ je nach Programm seine eigene Bedeutung von bspw. f80%</small>
|
||||
<small>¹ je nach Programm unterschiedliche Kompression</small>
|
||||
|
||||
<!--
|
||||
Quality 100 ist nicht "unkomprimiert".
|
||||
@@ -377,9 +377,15 @@ Für Archivierung: 90-100 oder gleich PNG/RAW.
|
||||
|
||||
---
|
||||
|
||||
|
||||
<!-- _class: klausur -->
|
||||
<!-- _header: '' -->
|
||||
<!-- _footer: '' -->
|
||||
<!-- _backgroundColor: #e3f2fd -->
|
||||
|
||||

|
||||
|
||||
# JPEG: Schritt 1 – Farbraum wechseln
|
||||
# JPEG: Schritt 1 – Farbraumkonversion
|
||||
|
||||
**RGB → Y'CbCr** (seltener Y'UV)
|
||||
|
||||
@@ -431,47 +437,100 @@ Das Auge merkt es kaum, weil Helligkeit erhalten bleibt.
|
||||
|
||||
---
|
||||
|
||||
# JPEG: Schritt 3 – DCT
|
||||
# JPEG: Schritt 3 – Block-Aufteilung
|
||||
|
||||
**Discrete Cosine Transform:**
|
||||
Bild in 8×8-Pixel-Blöcke aufteilen.
|
||||
Jeden Block in **räumliche Frequenzen** zerlegen.
|
||||
**Das Bild wird in 8×8-Pixel-Blöcke zerlegt.**
|
||||
|
||||
**Räumliche Frequenz = Wie schnell ändern sich Pixelwerte?**
|
||||
- **Niedrig:** Große, gleichmäßige Flächen (Himmel)
|
||||
- **Hoch:** Schnelle Wechsel, feine Details (Haare, Kanten)
|
||||
Jeder Block wird unabhängig verarbeitet.
|
||||
Bei 1920×1080: Das sind 240 × 135 = 32.400 Blöcke.
|
||||
|
||||
**Level Shift:**
|
||||
Alle Pixelwerte werden um −128 verschoben.
|
||||
Bereich vorher: 0 bis 255
|
||||
Bereich nachher: −128 bis +127
|
||||
|
||||
**Warum −128?**
|
||||
Die DCT arbeitet besser mit Werten, die um Null zentriert sind.
|
||||
|
||||
<!--
|
||||
Die Block-Aufteilung ist der Grund für "Blocking-Artefakte" bei starker Kompression.
|
||||
Benachbarte Blöcke werden völlig unabhängig verarbeitet.
|
||||
|
||||
**Vorteil:** Die meiste Bildinformation steckt in niedrigen Frequenzen.
|
||||
|
||||
NICHT Tonhöhe! Räumliche Frequenz = Änderungsrate der Helligkeit im Raum.
|
||||
|
||||
Niedrige Frequenz: Langsamer Übergang von hell zu dunkel
|
||||
Hohe Frequenz: Schneller Wechsel (z.B. Schachbrettmuster)
|
||||
|
||||
DCT ist wie ein Prisma: Zerlegt das Bild in seine Frequenzkomponenten.
|
||||
Falls Bildbreite/Höhe nicht durch 8 teilbar:
|
||||
Rand wird aufgefüllt (Padding).
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# JPEG: Schritt 4 – Quantisierung
|
||||
# JPEG: Schritt 4 – DCT
|
||||
|
||||
**Discrete Cosine Transform**
|
||||
Jeder 8×8-Block wird von Pixelwerten in 64 Frequenzkoeffizienten umgewandelt.
|
||||
|
||||
**Die 64 Koeffizienten:**
|
||||
|
||||
| Position | Name | Bedeutung |
|
||||
|----------|------|-----------|
|
||||
| (0,0) | DC | Durchschnittshelligkeit des Blocks |
|
||||
| Rest | AC | Helligkeitsänderungen (Frequenzen) |
|
||||
|
||||
**Energy Compaction – der Schlüssel zur Kompression:**
|
||||
Bei typischen Fotos landet über 90% der visuellen Information in den ersten 10–15 Koeffizienten (oben links). DCT selbst ist verlustfrei und reversibel!
|
||||
|
||||
<!--
|
||||
Zwei-dimensionales Array mit 64
|
||||
|
||||
"Frequenz" hier = räumliche Frequenz = wie schnell ändert sich die Helligkeit?
|
||||
|
||||
Niedrige Frequenz (oben links): Langsame Änderungen, große gleichmäßige Flächen
|
||||
Hohe Frequenz (unten rechts): Schnelle Änderungen, feine Details, Kanten
|
||||
|
||||
Energy Compaction bedeutet: DCT "sortiert" die Information nach Wichtigkeit.
|
||||
Das ermöglicht gezieltes Wegwerfen im nächsten Schritt.
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# JPEG: Schritt 5 – Quantisierung
|
||||
|
||||
**Hier passiert der Datenverlust.**
|
||||
|
||||
Hohe räumliche Frequenzen (Details) → grob speichern oder weglassen
|
||||
Niedrige Frequenzen (Flächen) → erhalten
|
||||
Die DCT hat sortiert: Wichtiges von Unwichtigem getrennt
|
||||
|
||||
**Jetzt wird aufgeräumt:**
|
||||
- Wichtige Werte (niedrige Frequenz, große Flächen) → präzise behalten
|
||||
- Unwichtige Werte (hohe Freqzenz, feine Details) → vergröbern oder auf Null setzen
|
||||
|
||||
**Das Ergebnis:**
|
||||
Von den 64 Werten pro Block bleiben oft nur 5–15 übrig.
|
||||
Der Rest wird zu Nullen (lassen sich extrem gut komprimieren)
|
||||
|
||||
<!--
|
||||
Quantisierung = Division durch Quantisierungsmatrix + Rundung.
|
||||
Je höher die Zahl in der Matrix, desto mehr wird verworfen.
|
||||
|
||||
Quality 100 ist nicht verlustfrei! Es ist nur minimaler Verlust.
|
||||
**Quality-Einstellung im Bildprogramm:**
|
||||
Hohe Quality = mehr Werte behalten = größere Datei
|
||||
Niedrige Quality = mehr Nullen = kleinere Datei, mehr Artefakte
|
||||
|
||||
Die Entscheidung "was ist wichtig" trifft nicht der Encoder spontan –
|
||||
sie basiert auf Forschung darüber, was das menschliche Auge wahrnimmt.
|
||||
|
||||
Große gleichmäßige Flächen: Auge sehr empfindlich → behalten
|
||||
Feine schnelle Wechsel: Auge weniger empfindlich → darf weg
|
||||
|
||||
Quality 100 ist übrigens nicht verlustfrei.
|
||||
Es bedeutet nur: sehr wenig wegwerfen.
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
|
||||

|
||||
|
||||
<!-- _header: '' -->
|
||||
<!-- _footer: 'https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-quantization' -->
|
||||
|
||||
---
|
||||
|
||||
# JPEG: Schritt 5 – Zigzag & RLE
|
||||
|
||||
**Nach Quantisierung:** Viele Werte sind 0 (v.a. hohe Frequenzen).
|
||||
@@ -496,6 +555,11 @@ Lange Null-Sequenzen sind ideal für RLE.
|
||||
|
||||
---
|
||||
|
||||
<!-- _class: klausur -->
|
||||
<!-- _header: '' -->
|
||||
<!-- _footer: '' -->
|
||||
<!-- _backgroundColor: #e3f2fd -->
|
||||
|
||||
# JPEG: Schritt 6 – Huffman-Coding
|
||||
|
||||
**Verlustfreie Kompression der Restwerte**
|
||||
|
||||
Reference in New Issue
Block a user