- extract _frontmatter.md, _intro.md, _outro.md as shared components - create separate files per termin with date-topic naming convention: 2025-12-19-termin-1-grundlagen-text-audio.md 2026-01-09-termin-2-bild-audio-video.md 2026-01-23-termin-3-speichermedien-schnittstellen.md 2026-01-30-termin-4-distribution-apis-zukunft.md 2026-xx-xx-termin-5-vertiefung-offene-fragen.md - keep index.md.bak as backup (gitignored)
635 lines
12 KiB
Markdown
635 lines
12 KiB
Markdown
---
|
||
|
||
<!-- _class: lead -->
|
||
|
||
# Termin 1 – 19.12.2025
|
||
## Grundlagen, Text & Audio
|
||
|
||
---
|
||
|
||

|
||
|
||
# Mysterium
|
||
|
||
```
|
||
89 50 4E 47 0D 0A 1A 0A
|
||
00 00 00 0D 49 48 44 52
|
||
00 00 01 90 00 00 01 2C
|
||
```
|
||
|
||
**Was ist das?**
|
||
|
||
<!--
|
||
Hex-Dump ohne Erklärung auf Bildschirm werfen
|
||
Fragen in den Raum: "Was seht ihr?"
|
||
"Ist das Text? Ein Bild? Code?"
|
||
Überleitung: "Alles digital ist nur Zahlen. Heute lernen wir, sie zu lesen."
|
||
-->
|
||
|
||
---
|
||
|
||
# Das Bit
|
||
|
||
**Kleinste Informationseinheit**
|
||
|
||
- **0 oder 1**
|
||
- AN oder AUS
|
||
- Strom fließt oder nicht
|
||
|
||

|
||
|
||
<!--
|
||
Bit = Binary Digit
|
||
Demonstration: Glühbirne AN/AUS = 1 Bit
|
||
Alles Digitale basiert darauf
|
||
Transistoren in CPUs: Milliarden Bits schalten Millionen Mal pro Sekunde
|
||
-->
|
||
|
||
---
|
||
|
||
# Das Byte
|
||
|
||
**8 Bits = 1 Byte**
|
||
|
||
```
|
||
0 1 0 0 1 1 0 1
|
||
```
|
||
|
||
**Wie viele Kombinationen?**
|
||
2⁸ = **256 Möglichkeiten** (0-255)
|
||
|
||
<!--
|
||
Rechnung gemeinsam: 2×2×2×2×2×2×2×2 = 256
|
||
Jedes Bit kann 0 oder 1 sein
|
||
256 verschiedene Werte mit 8 Bits darstellbar
|
||
-->
|
||
|
||
---
|
||
|
||
# Was kann man mit 256 Zuständen machen?
|
||
|
||
- **256 Zeichen** (Buchstaben, Zahlen, Symbole)
|
||
- **256 Graustufen** (0 = Schwarz, 255 = Weiß)
|
||
- **256 Lautstärkestufen**
|
||
- **Zahlen 0-255** (oder -128 bis +127)
|
||
|
||

|
||
|
||
<!--
|
||
1 Byte ist extrem limitiert
|
||
Für Farbbild: 3 Bytes pro Pixel (RGB)
|
||
R=0-255, G=0-255, B=0-255 → 256³ = 16,7 Millionen Farben
|
||
-->
|
||
|
||
---
|
||
|
||
# Farben: RGB-Modell
|
||
|
||
**1 Pixel = 3 Bytes**
|
||
|
||
- **Rot:** 0-255
|
||
- **Grün:** 0-255
|
||
- **Blau:** 0-255
|
||
|
||
**Beispiel:**
|
||
`FF 00 00` = Rot
|
||
`00 FF 00` = Grün
|
||
`FF FF FF` = Weiß
|
||
|
||

|
||
|
||
<!--
|
||
RGB = Additive Farbmischung (Bildschirme)
|
||
CMYK = Subtraktive Farbmischung (Druck)
|
||
Hex-Notation: FF = 255 in Dezimal
|
||
CSS-Farben nutzen Hex: #FF0000 = Rot
|
||
-->
|
||
|
||
---
|
||
|
||
# Das Problem: Sprachen
|
||
|
||
**Die Welt hat mehr als 256 Zeichen!**
|
||
|
||
- Englisches Alphabet: 52 (A-Z, a-z)
|
||
- + Ziffern: 10 (0-9)
|
||
- + Sonderzeichen: ~30
|
||
|
||
**≈ 90 Zeichen → passt in 1 Byte**
|
||
|
||
**Aber:** ä, ö, ü, ß, é, à, ç, α, β, 中, 日, 😀
|
||
|
||
→ **1 Byte reicht nicht!**
|
||
|
||
<!--
|
||
Problem der Zeichenkodierung
|
||
ASCII (1963): 7 Bit = 128 Zeichen (nur Englisch)
|
||
ISO-8859-1 (Latin-1): 8 Bit = 256 Zeichen (Westeuropa)
|
||
Chaos: Verschiedene Standards für verschiedene Sprachen
|
||
-->
|
||
|
||
---
|
||
|
||

|
||
|
||
<!--
|
||
ASCII-Tabelle (1963)
|
||
7 Bit = 128 Zeichen
|
||
Erste 32: Steuerzeichen (nicht druckbar)
|
||
Zeichen 32-126: Druckbar (Buchstaben, Ziffern, Satzzeichen)
|
||
Keine Umlaute, kein ñ, kein é
|
||
"American Standard" → Rest der Welt ausgeschlossen
|
||
-->
|
||
|
||
---
|
||
|
||
# Unicode: Ein Standard für alle
|
||
|
||
**Unicode (1991):**
|
||
Jedes Schriftsystem der Welt
|
||
|
||
**>150.000 Zeichen:**
|
||
- Latein, Kyrillisch, Arabisch, Chinesisch, Japanisch...
|
||
- Mathematische Symbole, Emoji, historische Schriften
|
||
|
||
**UTF-8:** Variable Länge (1-4 Bytes pro Zeichen)
|
||
|
||
<!--
|
||
Unicode Consortium: Non-Profit seit 1991
|
||
Aktuell: Unicode 16.0 (2024)
|
||
UTF-8 = Unicode Transformation Format, 8-bit
|
||
ASCII-kompatibel: "A" = 1 Byte (rückwärtskompatibel)
|
||
Umlaute: "ä" = 2 Bytes, Chinesisch: 3 Bytes, Emoji: 4 Bytes
|
||
-->
|
||
|
||
---
|
||
|
||
# Beispiel: Bytes zählen
|
||
|
||
**Text:** `"Why the fuck braucht 💩 4 Bytes?!"`
|
||
|
||
```
|
||
W h y → je 1 Byte (4 Bytes)
|
||
t h e → je 1 Byte (4 Bytes)
|
||
f u c k → je 1 Byte (4 Bytes)
|
||
→ 1 Byte (Leerzeichen)
|
||
b r a u c h t → je 1 Byte (7 Bytes)
|
||
→ 1 Byte
|
||
💩 → 4 Bytes! (0xF0 9F 92 A9)
|
||
→ 1 Byte
|
||
4 B y t e s ? ! → je 1 Byte (9 Bytes)
|
||
```
|
||
|
||
**Gesamt: 37 Bytes**
|
||
|
||
<!--
|
||
Buchstaben = 1 Byte (ASCII/UTF-8-kompatibel)
|
||
Emoji = 4 Bytes (Unicode-Bereich U+1F4A9)
|
||
Haufen-Emoji: "Pile of Poo" (offizieller Name!)
|
||
UTF-8-Kodierung: Variable Länge spart Speicher bei ASCII
|
||
-->
|
||
|
||
---
|
||
|
||
# Hexadezimal: Lesbarkeit
|
||
|
||
**Binär ist unleserlich:**
|
||
`01001101 01010000 00110011`
|
||
|
||
**Hexadezimal (Base 16):**
|
||
`4D 50 33` (= "MP3" in ASCII)
|
||
|
||
**Jede Hex-Ziffer = 4 Bits**
|
||
0-9, A-F (10=A, 11=B, ..., 15=F)
|
||
|
||

|
||
|
||
<!--
|
||
Hex = Shortcut für Menschen, nicht für Computer
|
||
Computer denken binär, wir lesen hex
|
||
1 Byte = 2 Hex-Ziffern (00-FF)
|
||
Hex-Editor: Standard-Tool für Dateianalyse
|
||
-->
|
||
|
||
---
|
||
|
||
# Magic Numbers
|
||
|
||
**Dateityp-Identifikation durch erste Bytes**
|
||
|
||
| Format | Magic Number (Hex) | ASCII |
|
||
|--------|-------------------|-------|
|
||
| PNG | `89 50 4E 47 0D 0A 1A 0A` | `.PNG` |
|
||
| JPEG | `FF D8 FF` | `ÿØÿ` |
|
||
| PDF | `25 50 44 46` | `%PDF` |
|
||
| ZIP | `50 4B 03 04` | `PK` |
|
||
|
||
<!--
|
||
Magic Number = Signature am Dateianfang
|
||
Computer schauen in erste Bytes (nicht auf .jpg/.png)
|
||
"PK" = Phil Katz (Erfinder von PKZip)
|
||
Dateiendungen können lügen, Magic Numbers nicht
|
||
-->
|
||
|
||
---
|
||
|
||

|
||
|
||
<!--
|
||
Hex-Editor-Screenshot mit PNG-Datei
|
||
Erste Bytes: 89 50 4E 47 = PNG-Signatur
|
||
IHDR = Image Header (Breite, Höhe, Farbtiefe)
|
||
Zeigen, wie man Magic Number liest
|
||
Tool: HxD (Windows), Hex Fiend (Mac), xxd (Linux)
|
||
-->
|
||
|
||
---
|
||
|
||
# Hands-On: Mystery Files
|
||
|
||
**Aufgabe (30 Min):**
|
||
|
||
1. Drei Dateien ohne Extension: `mystery1`, `mystery2`, `mystery3`
|
||
2. Öffne im Hex-Editor
|
||
3. Lies erste 16 Bytes
|
||
4. Identifiziere Format (Magic Number)
|
||
5. Benenne um und öffne
|
||
|
||
**Tools:** hexed.it (online), HxD, Hex Fiend, Bless
|
||
|
||
<!--
|
||
Praktische Phase: Studierende arbeiten selbst
|
||
Dateien: PNG, JPEG, TXT (vorbereitet)
|
||
Gruppenarbeit: 3-4 Personen
|
||
Ziel: Hex-Dump lesen lernen, Dateiformate verstehen
|
||
-->
|
||
|
||
---
|
||
|
||
# Aufgabe bis nächste Woche
|
||
|
||
**Finde eine Datei auf deinem Computer**
|
||
|
||
1. Öffne im Hex-Editor
|
||
2. Screenshot der ersten 16 Bytes
|
||
3. Identifiziere Magic Number
|
||
4. Poste im Forum: Format + kurze Beschreibung
|
||
|
||
**Bonus:** Finde Datei ohne Magic Number in Standard-Listen
|
||
|
||
<!--
|
||
Selbstständiges Arbeiten
|
||
Forum: Peer-Learning, gegenseitige Hilfe
|
||
Bonus: Spornt Neugierige an
|
||
-->
|
||
|
||
---
|
||
|
||
<!-- _class: lead -->
|
||
|
||
# Teil 2: Die MP3-Revolution
|
||
## Psychoakustik & Audio-Kompression
|
||
|
||
---
|
||
|
||

|
||
|
||
<!--
|
||
Kassette neben iPod
|
||
Visueller Kontrast: Analog vs. Digital
|
||
1980er vs. 2000er
|
||
-->
|
||
|
||
---
|
||
|
||
# Das Problem (1990)
|
||
|
||
**1 Minute CD-Audio:**
|
||
|
||
- Sample Rate: 44.100 Hz
|
||
- Bit Depth: 16 Bit
|
||
- Stereo: 2 Kanäle
|
||
|
||
**Rechnung:**
|
||
44.100 × 16 × 2 = 1.411.200 Bits/Sekunde
|
||
≈ **10,6 MB/Minute**
|
||
≈ **635 MB für 60-Min-Album**
|
||
|
||
**1990:** Festplatten hatten 100-500 MB!
|
||
|
||
<!--
|
||
CD-Qualität = Standard seit 1982
|
||
Ein Album = ganze Festplatte
|
||
Download bei 56k-Modem = Tage!
|
||
Streaming? Unmöglich.
|
||
-->
|
||
|
||
---
|
||
|
||
# Zwei Philosophien
|
||
|
||

|
||
|
||
**Lossless (Verlustfrei):**
|
||
- Original exakt wiederherstellbar
|
||
- ZIP, PNG, FLAC
|
||
- 30-50% Ersparnis
|
||
|
||
**Lossy (Verlustbehaftet):**
|
||
- Daten irreversibel verändert
|
||
- JPEG, MP3, H.264
|
||
- 90%+ Ersparnis
|
||
|
||
<!--
|
||
Lossless: Findet Muster, beschreibt effizienter
|
||
Lossy: Wirft "Unwichtiges" weg (Psychoakustik/Psychovisuell)
|
||
Trade-off: Größe vs. Qualität
|
||
-->
|
||
|
||
---
|
||
|
||
# Lossless: Run-Length Encoding
|
||
|
||
**Original:**
|
||
```
|
||
AAAAABBBCCCCCCCC
|
||
```
|
||
|
||
**Komprimiert:**
|
||
```
|
||
5A 3B 8C
|
||
```
|
||
|
||
**Ersparnis:** 16 → 6 Zeichen (62% Reduktion)
|
||
|
||
<!--
|
||
RLE = Simplest Compression Algorithm
|
||
Gut für repetitive Daten (Fax, simple Grafiken)
|
||
Schlecht für chaotische Daten (Fotos, Audio)
|
||
-->
|
||
|
||
---
|
||
|
||
# Lossy: Der Trick
|
||
|
||
**Kernidee:** Wirf weg, was der Mensch eh nicht wahrnimmt
|
||
|
||
**JPEG:** Schwächen des Auges
|
||
- Helligkeit besser als Farbe wahrgenommen
|
||
- Große Flächen besser als feine Details
|
||
|
||
**MP3:** Schwächen des Ohrs
|
||
- Mittlere Frequenzen besser als hohe/tiefe
|
||
- Laute Töne "maskieren" leise Töne
|
||
|
||
→ **Psychoakustik / Psychovisuell**
|
||
|
||
<!--
|
||
Auditory Masking: Lauter 1000 Hz-Ton → leise 950 Hz unhörbar
|
||
Visuelle Masking: Starker Kontrast überstrahlt Details
|
||
Kompression = Modell der menschlichen Wahrnehmung
|
||
-->
|
||
|
||
---
|
||
|
||

|
||
|
||
<!--
|
||
Foto: Karlheinz Brandenburg
|
||
Fraunhofer IIS Erlangen
|
||
"Vater der MP3"
|
||
-->
|
||
|
||
---
|
||
|
||
# Die Geburt der MP3
|
||
|
||
**1982:** Universität Erlangen-Nürnberg
|
||
Karlheinz Brandenburg, Diplom-Ingenieur
|
||
|
||
**1987:** Fraunhofer IIS entwickelt MPEG-1 Audio Layer III
|
||
|
||
**1988:** Patentanmeldung
|
||
|
||
**1992:** Erste Software-Implementierung
|
||
|
||
**1995:** .mp3 Dateiendung offiziell
|
||
|
||
<!--
|
||
MPEG = Moving Picture Experts Group
|
||
Layer III = Dritte Verfeinerungsstufe
|
||
Forschung dauerte 10 Jahre
|
||
Patent lief 2017 aus
|
||
-->
|
||
|
||
---
|
||
|
||

|
||
|
||
<!--
|
||
Suzanne Vega – "Tom's Diner" (1987)
|
||
Der erste Song, der als MP3 kodiert wurde
|
||
Karlheinz Brandenburg hörte ihn tausende Male
|
||
-->
|
||
|
||
---
|
||
|
||
# "Tom's Diner"
|
||
|
||
**Warum dieser Song?**
|
||
|
||
- A cappella (keine Instrumente)
|
||
- Suzanne Vegas Stimme ist "schwierig"
|
||
- Klare, hohe Frequenzen → Stresstest
|
||
|
||
*"If I could code Suzanne Vega's voice well, I could code anything."*
|
||
— Karlheinz Brandenburg
|
||
|
||
<!--
|
||
Brandenburg hörte Song 10.000+ Mal
|
||
A cappella = einfacher zu analysieren (nur Stimme)
|
||
Hohe Frequenzen = Herausforderung für Kompression
|
||
Perfektionismus: Jeder Hörtest musste bestehen
|
||
-->
|
||
|
||
---
|
||
|
||
# Wie funktioniert MP3?
|
||
|
||
**1. Frequenz-Analyse (FFT)**
|
||
Audio → Frequenzspektrum
|
||
|
||
**2. Psychoakustisches Modell**
|
||
Welche Töne hört Mensch nicht?
|
||
|
||
**3. Quantisierung**
|
||
Unwichtige Frequenzen reduzieren
|
||
|
||
**4. Huffman-Coding**
|
||
Lossless-Kompression der Restdaten
|
||
|
||
<!--
|
||
FFT = Fast Fourier Transform
|
||
Psychoakustik = Modell des menschlichen Gehörs
|
||
Quantisierung = Wo passiert Datenverlust
|
||
Huffman = Finaler Effizienz-Boost (lossless)
|
||
MP3 ist KEIN einfaches "Kleiner machen" – es simuliert dein Gehirn
|
||
-->
|
||
|
||
---
|
||
|
||
# Bitrate: Der Qualitäts-Knopf
|
||
|
||
| Bitrate | Qualität | Kompression |
|
||
|---------|----------|-------------|
|
||
| **128 kbps** | Hörbar schlechter | ~11x |
|
||
| **192 kbps** | Akzeptabel | ~7x |
|
||
| **256 kbps** | Gut | ~5,5x |
|
||
| **320 kbps** | "CD-Qualität" | ~4,4x |
|
||
|
||
**Original CD:** 1.411 kbps (unkomprimiert)
|
||
|
||
<!--
|
||
kbps = Kilobit pro Sekunde
|
||
128 kbps = Standard in 2000ern (Napster-Ära)
|
||
320 kbps = Maximum für MP3
|
||
Höhere Bitrate = mehr Daten = bessere Qualität
|
||
Aber: Diminishing Returns ab 256 kbps
|
||
-->
|
||
|
||
---
|
||
|
||

|
||
|
||
<!--
|
||
Spektrogramm-Vergleich
|
||
Original vs. 320 kbps vs. 128 kbps
|
||
Hohe Frequenzen verschwinden bei niedriger Bitrate
|
||
Visuell: Dunkle Bereiche = fehlende Frequenzen
|
||
-->
|
||
|
||
---
|
||
|
||
# Der Patentkrieg
|
||
|
||
**1990er:** Fraunhofer + Thomson halten MP3-Patente
|
||
|
||
**Lizenzgebühren:**
|
||
- $0,75 pro Decoder
|
||
- $2,50 pro Encoder
|
||
|
||
**Problem:** Napster (1999) → unkontrollierte Verbreitung
|
||
|
||
**2017:** Patente laufen aus → MP3 ist frei
|
||
|
||
<!--
|
||
Fraunhofer verklagte Winamp, andere Tools
|
||
Millionen nutzten unlizenzierte Software
|
||
Das Pferd war aus dem Stall
|
||
2017: Fraunhofer selbst erklärte MP3 für "veraltet" (AAC besser)
|
||
-->
|
||
|
||
---
|
||
|
||

|
||
|
||
<!--
|
||
Napster-Screenshot (1999)
|
||
P2P-Filesharing für MP3s
|
||
Shawn Fanning, 19 Jahre alt
|
||
80 Millionen User in 2 Jahren
|
||
-->
|
||
|
||
---
|
||
|
||
# Napster & Musikindustrie
|
||
|
||
**1999:** Napster startet
|
||
**2001:** 80 Millionen User
|
||
|
||
**Musikindustrie:**
|
||
- CDs kosten $15-20
|
||
- MP3s gratis (illegal, aber egal)
|
||
- Einzelne Songs statt Alben
|
||
|
||
**2001:** Napster verklagt, geschlossen
|
||
|
||
**Aber:** Pandora's Box offen
|
||
→ LimeWire, Kazaa, BitTorrent, später Spotify
|
||
|
||
<!--
|
||
RIAA (Recording Industry Association of America) verklagte Napster
|
||
Urteil: Napster muss schließen (2001)
|
||
Aber: Technologie nicht mehr aufzuhalten
|
||
iPod (2001): "1.000 songs in your pocket"
|
||
iTunes Store (2003): Legale Alternative
|
||
Spotify (2008): Streaming-Ära beginnt
|
||
-->
|
||
|
||
---
|
||
|
||
# Kulturelle Revolution
|
||
|
||
**MP3 veränderte:**
|
||
|
||
✓ Musik wurde portabel (Walkman → iPod)
|
||
✓ Alben wurden irrelevant (Playlists)
|
||
✓ Musikkonsum explodierte (kostenlos/billig)
|
||
✓ Künstler verloren Kontrolle
|
||
|
||
**Aber auch:**
|
||
❌ Künstler verdienen weniger pro Stream
|
||
❌ Audio-Qualität sank (Loudness War)
|
||
❌ Physische Medien starben
|
||
|
||
<!--
|
||
Walkman (1979): Kassetten
|
||
Discman (1984): CDs
|
||
iPod (2001): MP3s
|
||
Spotify (2008): Streaming
|
||
Künstler-Einkommen: Album-Verkauf → Streaming-Pennies
|
||
Loudness War: Alles wird lauter gemastert (Dynamik verloren)
|
||
Vinyl-Revival: 2020er Gegenbewegung
|
||
-->
|
||
|
||
---
|
||
|
||
# Hands-On: MP3 sezieren
|
||
|
||
**Aufgabe (30 Min):**
|
||
|
||
1. Lade Lied runter (eigenes oder CC)
|
||
2. Konvertiere in verschiedene Bitraten:
|
||
- 320 kbps, 128 kbps, 64 kbps
|
||
3. Tool: Audacity (kostenlos)
|
||
4. Höre Unterschiede (Kopfhörer!)
|
||
5. Vergleiche Dateigrößen
|
||
|
||
**Optional:** Spektrogramm-Ansicht
|
||
|
||
<!--
|
||
Audacity: FOSS Audio-Editor
|
||
Export: Datei → Exportieren → MP3 → Bitrate wählen
|
||
Spektrogramm: Analysieren → Spektrogramm
|
||
Hohe Frequenzen verschwinden bei niedriger Bitrate
|
||
-->
|
||
|
||
---
|
||
|
||
# Aufgabe bis nächste Woche
|
||
|
||
**Nimm ein Lied (eigenes oder CC)**
|
||
|
||
1. Exportiere: WAV, MP3 320 kbps, MP3 128 kbps
|
||
2. Notiere: Dateigrößen, Höreindrücke
|
||
3. Poste im Forum: Screenshot + Reflexion
|
||
|
||
**Bonus:** Niedrigste Bitrate finden, bei der du keinen Unterschied hörst
|
||
|
||
<!--
|
||
WAV = Unkomprimiert (Referenz)
|
||
Goldenes Ohr: Manche hören Unterschied, manche nicht
|
||
Psychoakustik in Aktion: Subjektive Wahrnehmung
|
||
-->
|
||
|