Files
uni/slides/223015b-2026/02-kompression.md
T
libretech 351e3dfc23 branch-coexist: 3 neue decks 223015b-2026 / 223015c-2026 / dhbw-2026 daneben main
per user-request einen branch der main-content UND rewrite-content trägt — saubere separierung statt symlink/merge-conflict.

struktur:
- slides/<course>/ → main-content restored, eigene assets (kein new-demo-leak)
- slides/<course>-2026/ → rewrite-content, eigene assets (komplett kopiert + new demos)

Makefile: COURSES += 223015b-2026 223015c-2026 dhbw-2026 mit eigenen NAME/KAPITEL/DEPLOY/KLAUSUR-konfig. Klausur für b+c=1, dhbw=leer. Deploy-paths /hdm/223015b-2026 etc.

make build durchlaufen für alle 6 decks, 0 fehler.

dedup: 223015c+dhbw assets identisch in beiden ordnern (kein neu-demos auf b ergänzt). 223015b 86 → 120 files in -2026 (= +34 neue eroeffner/usb-c-drei-achsen/container-vs-codec/etc).
2026-05-14 21:54:15 +02:00

20 KiB
Raw Blame History

marp, theme, paginate, backgroundColor, header, footer, title
marp theme paginate backgroundColor header footer title
true gaia true Dateiformate, Schnittstellen, Speichermedien & Distributionswege (223015b) Michael Czechowski – HdM Stuttgart – SoSe 2026 Kompression
<style> :root { --color-foreground: #1a1a2e; --color-highlight: #1e5f8a; --color-dimmed: #4a4a6a; } section.invert { --color-foreground: #fff; } section { font-size: 1.7rem; } h1 { color: #1e5f8a; } section.invert h1 { color: #fff; } h2 { color: #1f2937; } pre { background: #0f0f23; color: #5fb3e4; border-radius: 8px; border-left: 3px solid #1e5f8a; } pre code { background: transparent; color: inherit; } code { background: #0f0f23; padding: 0.15em 0.4em; border-radius: 4px; font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; } section code:not(.hljs) { color: #5fb3e4 !important; } section code.hljs { color: #f8f8f8 !important; } a { color: var(--color-highlight); } section.klausur { background: repeating-linear-gradient( 135deg, #e3f2fd, #e3f2fd 40px, #fff 40px, #fff 80px ) !important; } @media print { section.klausur { background: #e3f2fd !important; } } section.aufgabe { background: #e3f2fd !important; } section.aufgabe footer { display: none; } section.erklaerung :not(header), section.erklaerung :not(footer) { font-size: 1.1rem; } section.erklaerung h1 { font-size: 1.5rem; color: #1e5f8a; margin-bottom: 0.3rem; } section.erklaerung ul, section.erklaerung ol { font-size: 1.0rem; line-height: 1.4; } section.erklaerung p { font-size: 1.0rem; line-height: 1.4; } section.erklaerung table { font-size: 0.9rem; } </style>

Kapitel 2

Kompression — Prinzipien und Pipelines


Daten sind unhandlich


Foto-Größenschock

Variante Größe Sichtbarer Unterschied?
Original aus der iPhone-Kamera (HEIC) 3,2 MB —
Foto via WhatsApp geteilt 230 KB kaum
Instagram-Story (komprimiert) 80 KB minimal
WhatsApp-Profilbild (klein) 12 KB sichtbar

Faktor: bis zu 270×. Wo geht die Information hin?


bg fit


Erster Weg: Verlustfrei (Lossless)


Prinzip: Redundanz raus

Der Datenstrom enthält oft Wiederholungen — gleiche Pixel, gleiche Buchstaben, gleiche Frequenz-Häppchen.

Lossless-Kompression erkennt diese Redundanz und schreibt sie als Verweis kürzer.

Umkehrbar: beim Dekomprimieren wird die exakte Original-Datei wiederhergestellt.


RLE — Run-Length-Encoding

Eine Bilderzeile in Schwarz/Weiß:

Original:    AAAAA BBB CCCCCCCC AAAAAA
             (5×A, 3×B, 8×C, 6×A)

Kodiert:     5A 3B 8C 6A

22 Zeichen → 8 Zeichen. Faktor: 2,75×.

Verlustfrei, weil ich aus 5A 3B 8C 6A exakt AAAAABBBCCCCCCCCAAAAAA zurückbekomme.


Wo wird Lossless verwendet?

Anwendung Format Warum verlustfrei?
Code-Repository, Backup ZIP, gzip, tar.gz Jedes Bit muss exakt zurück.
Foto-Archiv (RAW) PNG, TIFF, RAW Nachbearbeitung soll alle Detail haben.
Studio-Master-Track FLAC, WAV Für Mastering muss Originalqualität da sein.
Logo-Grafiken PNG, SVG Scharfe Kanten brauchen Pixelgenauigkeit.

Faustregel: Werkzeug → Lossless.


bg right:40% contain

Original vs. Fälschung

Eine echte Louis-Vuitton-Tasche und ein perfekter Fake — auf einem Foto unterscheidbar?

Eine lossless-komprimierte Datei vs. das Original — bit-genau identisch.

Bei Lossless gibt es keine Fälschung. Die Kopie ist mathematisch das Original.


Zweiter Weg: Verlustbehaftet (Lossy)


Prinzip: Irrelevanz raus

Was der Mensch nicht wahrnehmen kann, muss man nicht speichern.

Lossy-Kompression wirft genau diese Information weg.

Nicht umkehrbar. Was weg ist, kommt nie zurück. Aus einem MP3 wird nie wieder ein FLAC.


Was nimmt der Mensch nicht wahr?

Ohr (Audio):

  • Töne unter ~20 Hz oder über ~20 kHz
  • Leise Töne in der Nähe lauter Töne (Maskierung)
  • Räumlich-zeitliche Maskierung (z.B. ~200 ms nach lautem Knall)

Auge (Bild):

  • Feine Farb-Detail (Chrominanz) abseits scharfer Helligkeitskanten
  • Kleinste Helligkeits-Differenzen (~1 Stufe in 256 ist unsichtbar)
  • Sehr feine Strukturen jenseits der Sehauflösung

Lossy-Algorithmen modellieren diese Wahrnehmungs-Grenzen — und werfen alles davor weg.


bg fit


bg fit


Wo wird Lossy verwendet?

Anwendung Format Reduktion
Musikstream (Spotify) MP3, AAC, OGG 10×
Foto im Netz (Instagram) JPEG, WebP 10–30×
Video (YouTube, Netflix) H.264, H.265, AV1 100–200×
Sprachanruf (WhatsApp Call) OPUS, AMR 50×

Faustregel: Konsum → Lossy.


Vergleich: Lossless vs. Lossy

Eigenschaft Verlustfrei (Lossless) Verlustbehaftet (Lossy)
Was passiert? Redundanz raus Irrelevanz raus
Umkehrbar? Ja, bit-genau Nein, nie wieder
Trick Wiederholungen kürzer kodieren Wahrnehmung modellieren
Typischer Faktor 2× – 5× 10× – 100×
Anwendung Archiv, Werkzeug, Code Stream, Anzeige, Konsum
Beispiele ZIP · PNG · FLAC · RAW MP3 · JPEG · H.264 · WebP

bg fit


Kompressionsraten in der Praxis

Inhalt Roh Komprimiert Faktor
Foto (12 MP) 36 MB RAW 3,5 MB JPEG ~10×
Audio (30 s Stereo) 5,3 MB WAV 480 KB MP3 ~11×
Video (1 Min 4K) 24 GB roh 200 MB H.264 ~120×
Code-Repo (Java) 15 MB Quellcode 1,5 MB ZIP ~10×
Foto (Logo PNG) 800 KB unkomp. 80 KB PNG ~10×

Lossy bringt mehr — aber Werkzeug muss roh bleiben.


Entscheidungsmatrix — wann nehme ich was?

Szenario Empfehlung Begründung
Foto-Archiv (DSLR) RAW (lossless) Nachbearbeitung muss alle Detail haben
Foto im Web/Insta JPEG / WebP (lossy) Konsum, Bandbreite zählt
Studio-Master FLAC / WAV (lossless) Master soll bit-genau bleiben
Spotify-Track AAC / MP3 (lossy) Konsum, Smartphone-Lautsprecher
Code-Backup ZIP / tar.gz (lossless) Code muss exakt zurück
Lecture-Video H.264 (lossy) Konsum, Streaming
Logo PNG / SVG (lossless) Scharfe Kanten brauchen Pixelgenauigkeit

Selbstlernen — ZIP-Test mit drei Dateitypen

Drei Dateien gleicher Originalgröße (~1 MB) zippen:

  1. Textdatei mit wiederholten Mustern (z.B. ein Buch als TXT)
  2. Unkomprimiertes Bitmap (BMP) desselben Fotos
  3. JPEG desselben Fotos

Vergleich: Wie groß ist die ZIP-Datei in jedem Fall?

Erwartung: Textdatei wird klein (Wiederholungen), BMP wird klein (Farbflächen), JPEG bleibt fast gleich (schon komprimiert, keine Redundanz mehr).


Warum ZIP auf JPEG nicht mehr komprimiert

JPEG ist bereits maximal lossless-komprimiert.

Die JPEG-Pipeline endet mit Huffman-Coding — derselbe Trick wie in ZIP.

Was ZIP machen würde (Wiederholungen finden, Häufigkeiten kürzer kodieren), hat JPEG schon getan.

Resultat: ZIP einer JPEG-Datei ist nur ~1 % kleiner. Manchmal sogar größer (durch ZIP-Header-Overhead).


bg fit