- Willkommen, kurze Vorstellung
- Heute: Teil 2 – Bilder und Video
- Ziel: Verstehen, WARUM Formate so funktionieren, nicht nur WAS sie tun
- Frage zum Einstieg: "Wer hat schon mal ein Bild für Instagram hochgeladen und sich gewundert, warum es danach schlechter aussieht?"
- QR-Code scannen für Folien-Link
- Folien sind CC BY-SA lizenziert – dürft ihr nutzen und teilen
- Drei große Blöcke heute:
1. Digitale Bilder (Raster vs. Vektor)
2. JPEG im Detail (die Magie der Kompression)
3. Video (warum es nochmal komplizierter ist)
- Interaktive Demos zwischendurch
- Kernfrage: Warum nicht EIN Format für alles?
- Antwort: Jedes Format ist ein Kompromiss
- Frage an Studierende: "Was wäre wichtiger – kleine Datei oder perfekte Qualität?" → Kommt drauf an!
- Analogie: Werkzeugkasten – Hammer für Nägel, Schraubenzieher für Schrauben
- Links: Original (hochauflösend)
- Rechts: Stark komprimiert
- Frage: "Wer sieht die Unterschiede?"
- Auf Blockartefakte und Unschärfe hinweisen
- Das ist der Preis für kleine Dateien
- Zwei fundamental verschiedene Ansätze
- Raster: "Malen nach Zahlen" – jeder Punkt einzeln
- Vektor: "Bauanleitung" – Formen beschreiben
- Pixel = Picture Element
- RGB = Rot, Grün, Blau (je 0-255)
- Rechenbeispiel gemeinsam durchgehen
- Frage: "Wie viele Fotos passen auf ein 64GB Smartphone?" → ca. 10.000 unkomprimiert
- Pointe: Ohne Kompression wäre Smartphone-Fotografie unmöglich
KLAUSURRELEVANT:
- Formel: Breite × Höhe × (Farbtiefe / 8) = Bytes
- Beispielrechnung: 1920 × 1080 × 3 = 6.220.800 Bytes ≈ 6,2 MB
- Farbtiefe: 2^n Farben bei n Bit
- 24 Bit = 8 Bit pro Kanal (R, G, B)
- 32 Bit = 24 Bit + 8 Bit Alpha (Transparenz)
- Kernproblem: Rasterbilder haben EINE native Auflösung
- Alles darüber = Schätzung, Erfindung
- Demo-Idee: Bild in Photoshop/GIMP stark vergrößern
- Nearest Neighbor gut für Pixel-Art (soll pixelig bleiben)
- Frage: "Warum wird mein Profilbild manchmal unscharf?" → Plattform skaliert
KLAUSURRELEVANT:
- Vektor = Beschreibung (deklarativ)
- Raster = Pixel für Pixel (imperativ)
- Rendering-Pipeline: Vektordaten → Rasterisierung → Display
- Skalierung = Koordinaten multiplizieren → keine Information geht verloren
- SVG = Scalable Vector Graphics (Web-Standard)
- Entscheidungsregel:
- Foto → immer Raster
- Logo → immer Vektor
- Screenshot → meist Raster
- Konvertierung:
- Vektor → Raster: trivial (Rasterisierung)
- Raster → Vektor: schwierig, oft unbefriedigend (Tracing)
- Frage: "Warum verschickt euch der Grafiker das Logo als .ai oder .svg?"
- Jetzt wird's spannend: Wie können wir 90% der Daten wegwerfen, ohne dass es auffällt?
- Antwort: Das menschliche Auge ist kein perfekter Sensor
- Wir nutzen seine Schwächen aus
KLAUSURRELEVANT:
- Mehr Stäbchen (Helligkeit) als Zapfen (Farbe) im Auge
- "Frequenz" = räumliche Frequenz = wie schnell ändert sich Helligkeit?
- Niedrig = langsame Änderung = große gleichmäßige Fläche
- Hoch = schnelle Änderung = feine Details, Kanten
- Analogie zur Psychoakustik bei MP3 (letztes Mal)
- Kompressionsvergleich am Beispiel
- Von links nach rechts: zunehmende Kompression
- Frage: "Ab wo seht ihr deutliche Qualitätsverluste?"
- Zeigt: Viel Spielraum für "unsichtbare" Kompression
- Artefakte = sichtbare Spuren der Kompression
- Blocking: Benachbarte 8×8-Blöcke unabhängig komprimiert
- Ringing: DCT hat Probleme mit harten Kanten (Gibbs-Phänomen)
- Posterization: Zu wenig Bits für feine Farbabstufungen
- Demo: Stark komprimiertes JPEG zoomen
- Quality 100 ≠ unkomprimiert (immer noch lossy!)
- Für Web/Social Media: 60–80 oft ausreichend
- Für Archivierung: 90–100 oder besser PNG/RAW
- Faustregel: Quality 85 = guter Kompromiss
- Jetzt: Unter die Haube schauen
- JPEG = Joint Photographic Experts Group (1992)
- Sechs Schritte, davon einer verlustbehaftet
- Interaktive Demo: https://claude.ai/public/artifacts/452e62f1-8525-442d-aa88-bf3795cab2c5
KLAUSURRELEVANT:
- YCbCr = auch 3 Werte pro Pixel, aber anders organisiert
- Statt R-G-B: Helligkeit + 2 Farbdifferenzen
- Umrechnung ist reversibel (mathematische Transformation)
- Vorteil: Helligkeit und Farbe getrennt behandelbar
- Bild zeigt: Y (oben), Cb (Mitte), Cr (unten)
- Beispiel 4:2:0: 4 Pixel teilen sich einen Farbwert, aber jeder hat eigene Helligkeit
- Auge merkt es kaum → psychovisuelle Kompression
- Bereits hier: 50% Datenreduktion ohne sichtbaren Verlust
- In Video noch wichtiger (weniger Bandbreite)
- Visualisierung der Subsampling-Schemata
- Obere Reihe: Luminanz (Y) – immer voll
- Untere Reihen: Chrominanz (Cb, Cr) – reduziert
- 4:2:0 am häufigsten (JPEG, Video)
- 8×8 = historischer Kompromiss (Rechenleistung 1992)
- Unabhängige Verarbeitung = Grund für Blocking-Artefakte
- Level Shift: Mathematische Vorbereitung für DCT
- Bei nicht durch 8 teilbaren Dimensionen: Padding am Rand
- DCT = Herzstück von JPEG
- Ähnlich wie Fourier-Transformation, aber nur Cosinus
- Sortiert Information nach "Wichtigkeit"
- Niedrige Frequenzen (oben links) = wichtig
- Hohe Frequenzen (unten rechts) = Details, oft verzichtbar
- NICHT hier passiert der Verlust!
KLAUSURRELEVANT:
- Quantisierung = Division durch Quantisierungsmatrix + Runden
- Einziger verlustbehafteter Schritt!
- Quality 100 ≠ verlustfrei, nur "wenig wegwerfen"
- Quantisierungstabellen basieren auf Wahrnehmungsforschung
- Visualisierung von Quantisierung (hier: Farbreduktion)
- Prinzip gilt auch für DCT-Koeffizienten
- Weniger Stufen = weniger Daten = weniger Qualität
- Zigzag: Clever – sortiert so, dass Nullen am Ende stehen
- RLE: Klassische verlustfreie Kompression
- Lange Nullsequenzen → sehr kurze Codes
- Beispiel: "00000000" (8 Byte) → "(8,0)" (2 Byte)
KLAUSURRELEVANT:
- Huffman = verlustfrei, optimal für bekannte Häufigkeiten
- Präfix-frei: Kein Code ist Anfang eines anderen
- Häufigstes Zeichen = kürzester Code
- Auch in ZIP, PNG, MP3 verwendet
# Huffman-Coding: Beispiel
**Originaltext:** `ABRACADABRA` (11 Zeichen × 8 Bit = 88 Bit)
**Häufigkeitsanalyse:**
A=5, B=2, R=2, C=1, D=1
**Huffman-Baum → Codes:**
| Zeichen | Häufigkeit | Code |
|---------|------------|------|
| A | 5 | `0` |
| B | 2 | `10` |
| R | 2 | `110` |
| C | 1 | `1110` |
| D | 1 | `1111` |
**Codiert:** `0 10 110 0 1110 0 1111 0 10 110 0` = **23 Bit**
**Kompression:** 88 → 23 Bit = **74% gespart**
- Beispiel Schritt für Schritt durchrechnen
- Warum funktioniert's? A kommt 5× vor, bekommt kürzesten Code
- Präfix-Eigenschaft: Kein Code ist Anfang eines anderen → eindeutig dekodierbar
- Frage: "Was passiert, wenn alle Zeichen gleich häufig sind?" → Keine Ersparnis
- In JPEG: Nicht Buchstaben, sondern DCT-Koeffizienten werden so codiert
- Zusammenfassung: Typische JPEG-Artefakte
- Blocking: 8×8-Struktur sichtbar
- Ringing: Geister um Kanten
- Color Banding: Farbverläufe werden stufig
- Alles Folgen der Quantisierung
- JPEG ist nicht für alles geeignet
- Jetzt: Alternativen und ihre Stärken
- PNG entstand als Reaktion auf GIF-Lizenzprobleme
- "PNG is Not GIF" (rekursives Akronym)
- DEFLATE-Kompression (wie ZIP)
- Keine Qualitätsverluste, aber größer als JPEG für Fotos
- Transparenz mit 256 Stufen (nicht nur an/aus wie GIF)
- CompuServe entwickelte GIF 1987
- LZW = Lempel-Ziv-Welch Kompression
- Patent lief 2004 aus, aber PNG war da längst etabliert
- GIF überlebte wegen Animationen
- Aussprache: "GIF" vs. "JIF" – ewiger Streit (Erfinder sagt "JIF")
KLAUSURRELEVANT:
- WebP: VP8-Kompression (Google Video-Codec)
- AVIF: Alliance for Open Media (Google, Netflix, Amazon, Apple, Mozilla)
- Beide besser als JPEG, aber Kompatibilität bleibt Problem
- JPEG bleibt dominant: alte Kameras, Software, Workflows
- Kompatibilität schlägt oft Effizienz
- TIFF für Archivierung: Unkomprimiert oder verlustfrei
- RAW für FotografInnen: Maximale Bearbeitungsfreiheit
- Frage: "Was passiert, wenn ihr ein PNG auf Instagram hochladet?"
- Vorher/Nachher: Original vs. Instagram-Upload
- Sichtbare Qualitätsverluste
- Warum? → Nächste Folie
- Instagram ist keine Kunstgalerie, sondern Massenplattform
- Optimiert für Geschwindigkeit, nicht Qualität
- Facebook, Twitter, TikTok – alle machen das
- Tipp für FotografInnen: Portfolio auf eigener Website
- Diskussion: Ist das fair? Trade-off Nutzende vs. Plattform
- Jetzt wird's richtig interessant
- Video = viele Bilder + Ton + Synchronisation
- Das Größenproblem potenziert sich
- Interaktive Demo: https://claude.ai/public/artifacts/fd58ac94-6b64-4d93-82be-ffb648ed9897
- Rechnung gemeinsam durchgehen
- Frage: "Wie groß ist ein Netflix-Film typischerweise?" → 3–7 GB
- Das ist Faktor 1000 Kompression!
- Ohne Video-Kompression: Kein Streaming, kein YouTube, keine Blu-rays
KLAUSURRELEVANT:
- Container ≠ Codec (häufiges Missverständnis!)
- MP4 kann H.264, H.265 oder AV1 enthalten
- Gleiche Endung, unterschiedlicher Inhalt
- Tool-Tipp: MediaInfo zeigt beides an
- MP4 = MPEG-4 Part 14, ISO-Standard
- MKV = Matroska (russische Matrjoschka-Puppen)
- WebM = Subset von Matroska für HTML5
- MKV beliebt für Filme mit mehreren Sprachen
- AVI: Bitte nicht mehr verwenden
- H.264: De-facto-Standard seit 20 Jahren, Hardware-Decoder überall
- H.265: 50% besser, aber drei konkurrierende Patent-Pools
- VP9: Google kaufte On2 Technologies, forciert über YouTube
- AV1: Alliance for Open Media – die Tech-Giganten vereint
- Container = Verpackung
- Codec = wie der Inhalt komprimiert ist
- Ein MP4 mit H.264 und ein MP4 mit H.265 haben dieselbe Endung
- Wichtig für Kompatibilität: Player muss Codec unterstützen
- Video hat zwei Dimensionen der Redundanz:
1. Räumlich (innerhalb eines Frames) – wie bei JPEG
2. Zeitlich (zwischen Frames) – neu!
- Die zeitliche Redundanz ist der Schlüssel
- Visualisierung: I/P/B-Frame-Abhängigkeiten
- I-Frame = Vollbild (Keyframe)
- P-Frame = Vorwärts-Referenz
- B-Frame = Bidirektionale Referenz
- Mehr dazu auf den nächsten Folien
- Spatial = räumlich, innerhalb eines Bildes
- Temporal = zeitlich, zwischen Bildern
- Motion Compensation = Bewegungsvektoren
- 90% eines Frames oft identisch mit dem vorherigen!
- Kernidee: Warum zweimal speichern, was sich nicht ändert?
- I = Intra = innerhalb
- I-Frames sind groß, aber wichtig für:
- Seeking (Springen im Video)
- Fehlerkorrektur
- Schnitt
- Typisch alle 1–2 Sekunden ein I-Frame
KLAUSURRELEVANT:
- I = Intra (vollständig)
- P = Predicted (vorhergesagt aus Vergangenheit)
- B = Bi-directional (Vergangenheit + Zukunft)
- B-Frames sind am kleinsten, aber brauchen mehr Rechenleistung
- GOP-Länge beeinflusst Seeking-Geschwindigkeit
- Macroblocks: Typisch 16×16 oder variable Größen
- Motion Vectors beschreiben Verschiebung
- Funktioniert gut bei: Kameraschwenks, bewegte Objekte
- Funktioniert schlecht bei: Szenenwechsel, Konfetti, Feuerwerk
- Demo: Video Frame für Frame durchgehen
- Nochmal das Bild mit dem neuen Wissen betrachten
- Pfeile zeigen Abhängigkeiten
- B-Frames referenzieren in beide Richtungen
- Frage: "Was passiert, wenn ein I-Frame beschädigt ist?"
KLAUSURRELEVANT:
- H.264 revolutionierte Video-Streaming
- Ohne H.264 kein Netflix, kein YouTube HD
- Hardware-Decoder = kein CPU-Aufwand, kein Akku-Drain
- Selbst billigste Smartphones können H.264 abspielen
- MPEG-LA = Licensing Authority
- Firefox weigerte sich lange, H.264 zu unterstützen
- "Free to View" gilt nur für Endnutzungs-Streaming
- Diskussion: Sollten Standards patent-frei sein?
- Technisch überlegen, aber Lizenz-Albtraum
- 4K-Streaming wäre ohne H.265/VP9/AV1 nicht praktikabel
- Apple nutzt HEVC (iPhone-Videos)
- Netflix zögerte lange
- Lehre: Technische Überlegenheit reicht nicht
- YouTube forciert VP9: 4K-Videos nur in VP9 oder AV1
- Hardware-Decoder ab ~2016 in GPUs
- Google's Strategie: Eigene Infrastruktur als Hebel
- Frage: Ist es gut, wenn ein Konzern Standards setzt?
KLAUSURRELEVANT:
- AOM gegründet 2015 – historisch: Konkurrenten vereint
- Ziel: Nie wieder Patent-Chaos wie bei H.265
- Problem: Encoding sehr langsam (10–100× vs. H.264)
- Hardware-Encoder lösen das zunehmend
- AV1 gewann 2024 einen Emmy für technische Innovation
- AV1 gewann 2024 einen Emmy für technische Innovation
- Anerkennung für offene Standards
- Zeigt: Open Source kann Industriestandard werden
- Offene Fragen?
- Welches Thema war am überraschendsten?
- Hinweis auf Selbstlernaufgaben (nächste Folien)
- Folien dürfen verwendet und angepasst werden
- Bedingung: Namensnennung und gleiche Lizenz
- Fragen zur Lizenz? → Creative Commons Website
- Squoosh: Google-Tool zum Vergleichen von Bildformaten
- Live-Vergleich mit Schieberegler
- Ziel: Gefühl für Kompressionsraten entwickeln
- Bonus: Eigene Fotos testen
- Big Buck Bunny: Open-Source-Film der Blender Foundation
- Frei verfügbar, ideal zum Experimentieren
- MediaInfo zeigt alle technischen Details
- HandBrake: GUI für FFmpeg, einfacher zu bedienen
- Experiment: Gleiches Video, verschiedene Codecs vergleichen