Compare commits

..
4 Commits
6 changed files with 3333 additions and 81 deletions

No files matched your search

File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -611,6 +611,65 @@ Hex-Editor = Standard-Tool für Dateianalyse und Reverse Engineering
--- ---
<!-- _class: lead -->
# ASCII
## One *Zeichensatz* to rule them all
<!--
WARUM 7 BIT STATT 8?
- 1963: Fernschreiber (Teletype) arbeiteten mit 7-Bit-Codes
- Das 8. Bit diente der Paritätsprüfung (Fehlererkennung bei Übertragung)
- Speicher war kostspielig: jedes eingesparte Bit zählte
- 128 Zeichen galten als ausreichend für den englischsprachigen Raum
KULTURHISTORISCHER KONTEXT:
- "American Standard Code for Information Interchange" (1963)
- Entwickelt für US-amerikanische Bedürfnisse
- Keine Unterstützung für: Umlaute (ä, ö, ü), ß, diakritische Zeichen (é, ñ, ç)
- Nicht-lateinische Schriftsysteme (Kyrillisch, Arabisch, CJK) wurden nicht berücksichtigt
- Führte zu zahlreichen inkompatiblen Erweiterungen (ISO-8859-1, Windows-1252, etc.)
WARUM NOCH HEUTE RELEVANT?
- Abwärtskompatibilität: UTF-8 ist vollständig ASCII-kompatibel (Zeichen 0-127 identisch)
- Internetprotokolle basieren auf ASCII: HTTP-Header, SMTP, URLs
- Programmiersprachen: Schlüsselwörter und Syntax sind ASCII
- Ein 60 Jahre alter Standard, der durch Kompatibilitätszwänge fortbesteht
HISTORISCHE RANDNOTIZ:
- Das @-Zeichen wurde nachträglich aufgenommen
- Heute unverzichtbar für E-Mail-Adressen weltweit
-->
---
<!-- _header: '' -->
<!-- _footer: '' -->
![bg fit](./assets/ascii-table-colored.png)
<!--
Vorgeschichte:
US-ASCII (1967) Code Chart
- 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
"Ich möchte, dass ihr das mit mir jetzt gemeinsam lesen lernt; stellt euch vor ihr seid ArchäologInnen."
"Wie würdet ihr vorgehen?"
-->
---
![bg right:40%](./assets/matrix-code.png) ![bg right:40%](./assets/matrix-code.png)
# WTF!? # WTF!?
@@ -882,63 +941,6 @@ Model Collapse: AI trainiert auf AI-Output → Qualitätsverlust
<!-- _class: lead --> <!-- _class: lead -->
# ASCII
## One *Zeichensatz* to rule them all
<!--
WARUM 7 BIT STATT 8?
- 1963: Fernschreiber (Teletype) arbeiteten mit 7-Bit-Codes
- Das 8. Bit diente der Paritätsprüfung (Fehlererkennung bei Übertragung)
- Speicher war kostspielig: jedes eingesparte Bit zählte
- 128 Zeichen galten als ausreichend für den englischsprachigen Raum
KULTURHISTORISCHER KONTEXT:
- "American Standard Code for Information Interchange" (1963)
- Entwickelt für US-amerikanische Bedürfnisse
- Keine Unterstützung für: Umlaute (ä, ö, ü), ß, diakritische Zeichen (é, ñ, ç)
- Nicht-lateinische Schriftsysteme (Kyrillisch, Arabisch, CJK) wurden nicht berücksichtigt
- Führte zu zahlreichen inkompatiblen Erweiterungen (ISO-8859-1, Windows-1252, etc.)
WARUM NOCH HEUTE RELEVANT?
- Abwärtskompatibilität: UTF-8 ist vollständig ASCII-kompatibel (Zeichen 0-127 identisch)
- Internetprotokolle basieren auf ASCII: HTTP-Header, SMTP, URLs
- Programmiersprachen: Schlüsselwörter und Syntax sind ASCII
- Ein 60 Jahre alter Standard, der durch Kompatibilitätszwänge fortbesteht
HISTORISCHE RANDNOTIZ:
- Das @-Zeichen wurde nachträglich aufgenommen
- Heute unverzichtbar für E-Mail-Adressen weltweit
-->
---
<!-- _header: '' -->
<!-- _footer: '' -->
![bg fit](./assets/ascii-table-colored.png)
<!--
Vorgeschichte:
US-ASCII (1967) Code Chart
- 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
"Ich möchte, dass ihr das mit mir jetzt gemeinsam lesen lernt; stellt euch vor ihr seid ArchäologInnen."
"Wie würdet ihr vorgehen?"
-->
---
<!-- _class: lead -->
# Teil 2: Die MP3-Revolution # Teil 2: Die MP3-Revolution
## Psychoakustik & Audio-Kompression ## Psychoakustik & Audio-Kompression
@@ -1063,18 +1065,18 @@ Paradox: Gerade die Perfektion wurde zum "Problem"
# Das Speicherproblem der Digitalisierung # Das Speicherproblem der Digitalisierung
**CD-Qualität (1982):**
Ziel: Analoge Schallwelle möglichst originalgetreu rekonstruieren **Ziel: Analoge Schallwelle möglichst originalgetreu rekonstruieren**
44.100 Hz × 16 Bit × 2 Kanäle = **10,584 MB/Minute**
*CD-Qualität (1982): 44.100 Hz × 16 Bit × 2 Kanäle = 10,584 MB/Minute*
<!-- 44100 Hz ×16 Bit × 2 ÷ 8 ÷ 1000 ÷ 1000 × 60 = 10,584 MB/Minute --> <!-- 44100 Hz ×16 Bit × 2 ÷ 8 ÷ 1000 ÷ 1000 × 60 = 10,584 MB/Minute -->
| Inhalt | Größe | Problem (1990er) | | Inhalt | Größe | Problem (1990er) |
|--------|-------|------------------| |--------|-------|------------------|
| 1 Song (4 Min) | ~42 MB | Passt gerade so | | 1 Song (4 Min) | ~42 MB | Ausreichend Speicher |
| 1 Album (60 Min) | ~635 MB | Ganze Festplatte! | | 1 Album (60 Min) | ~635 MB | Gesamte Festplatte |
**→ Digital ist super, aber zu groß für Speicher & Internet**
<!-- <!--
"Springen wir nochmal zurück in die 90er, bevor das Internet den Globus umspann ..." "Springen wir nochmal zurück in die 90er, bevor das Internet den Globus umspann ..."
@@ -1192,7 +1194,7 @@ BITTIEFE = Wie genau messen wir jeden einzelnen Punkt?
| **Abtastrate** (Sample Rate) | Messungen pro Sekunde (horizontal) | 44.100 Hz | | **Abtastrate** (Sample Rate) | Messungen pro Sekunde (horizontal) | 44.100 Hz |
| **Bittiefe** (Bit Depth) | Genauigkeit pro Messung (vertikal) | 16 Bit | | **Bittiefe** (Bit Depth) | Genauigkeit pro Messung (vertikal) | 16 Bit |
**44.100 Hz × 16 Bit** × 2 Kanäle **44.100 Hz × 16 Bit** × 2 Kanäle = 10,584 MB/Minute
<!-- <!--
Analogie: Digitalisierung = Raster über Schallwelle legen Analogie: Digitalisierung = Raster über Schallwelle legen
@@ -271,11 +271,16 @@ Konvertierung:
<!-- _class: lead --> <!-- _class: lead -->
# JPEG # Menschliche Sinne
## Psychovisuell komprimieren ## Psychovisuell komprimieren
--- ---
<!-- _class: klausur -->
<!-- _header: '' -->
<!-- _footer: '' -->
<!-- _backgroundColor: #e3f2fd -->
# Die Schwächen des Auges # Die Schwächen des Auges
**Menschen sehen:** **Menschen sehen:**
@@ -346,7 +351,7 @@ Banding: Zu wenig Bits für feine Farbabstufungen.
**Sweet Spot: 85-90** **Sweet Spot: 85-90**
~10× Kompression, für Menschen kaum unterscheidbar. ~10× Kompression, für Menschen kaum unterscheidbar.
<small>¹ je nach Programm andere Einstellungen beim Kodieren</small> <small>¹ je nach Programm seine eigene Bedeutung von bspw. f80%</small>
<!-- <!--
Quality 100 ist nicht "unkomprimiert". Quality 100 ist nicht "unkomprimiert".
@@ -356,11 +361,22 @@ Für Web und Social Media: 60-80 oft ausreichend.
Für Archivierung: 90-100 oder gleich PNG/RAW. Für Archivierung: 90-100 oder gleich PNG/RAW.
--> -->
--- ---
# JPEG: Schritt 1 – Farbraum <!-- _class: lead -->
**RGB → YCbCr** (auch 3 Werte pro Pixel, nur anders aufgeteilt) # JPEG
## Vier Schritte der Kompression
---
![bg right:20%](./assets/Barn-yuv.png)
# JPEG: Schritt 1 – Farbraum wechseln
**RGB → Y'CbCr** (seltener Y'UV)
- **Y** = Helligkeit (Luminanz) – Was das Auge am besten sieht - **Y** = Helligkeit (Luminanz) – Was das Auge am besten sieht
- **Cb** = Blau-Gelb-Anteil (Chrominanz) - **Cb** = Blau-Gelb-Anteil (Chrominanz)
@@ -380,14 +396,6 @@ Der Clou: Jetzt können wir Helligkeit und Farbe getrennt behandeln.
--- ---
<!-- _header: '' -->
<!-- _footer: '' -->
![bg contain 70%](./assets/Common_chroma_subsampling_ratios_YCbCr_CORRECTED.svg.png)
---
# JPEG: Schritt 2 – Chroma Subsampling # JPEG: Schritt 2 – Chroma Subsampling
**Die Notation `J:a:b`** (bezogen auf einen 4×2 Pixel-Block): **Die Notation `J:a:b`** (bezogen auf einen 4×2 Pixel-Block):
@@ -401,7 +409,7 @@ Der Clou: Jetzt können wir Helligkeit und Farbe getrennt behandeln.
| 4:2:2 | Jedes 2. Pixel horizontal | 50% | | 4:2:2 | Jedes 2. Pixel horizontal | 50% |
| 4:2:0 | Jedes 4. Pixel (2×2 Block teilt sich Farbe) | 25% | | 4:2:0 | Jedes 4. Pixel (2×2 Block teilt sich Farbe) | 25% |
**4:2:0 ist JPEG-Standard** – kaum sichtbarer Unterschied. **4:2:0 ist JPEG-Standard** – kaum sichtbarer Qualitätsverlust
<!-- <!--
Beispiel 4:2:0: In einem 2×2-Block haben alle 4 Pixel denselben Cb/Cr-Wert, Beispiel 4:2:0: In einem 2×2-Block haben alle 4 Pixel denselben Cb/Cr-Wert,
@@ -411,6 +419,13 @@ Das Auge merkt es kaum, weil Helligkeit erhalten bleibt.
--- ---
<!-- _header: '' -->
<!-- _footer: '' -->
![bg contain 70%](./assets/Common_chroma_subsampling_ratios_YCbCr_CORRECTED.svg.png)
---
# JPEG: Schritt 3 – DCT # JPEG: Schritt 3 – DCT
**Discrete Cosine Transform:** **Discrete Cosine Transform:**
@@ -421,9 +436,10 @@ Jeden Block in **räumliche Frequenzen** zerlegen.
- **Niedrig:** Große, gleichmäßige Flächen (Himmel) - **Niedrig:** Große, gleichmäßige Flächen (Himmel)
- **Hoch:** Schnelle Wechsel, feine Details (Haare, Kanten) - **Hoch:** Schnelle Wechsel, feine Details (Haare, Kanten)
<!--
**Vorteil:** Die meiste Bildinformation steckt in niedrigen Frequenzen. **Vorteil:** Die meiste Bildinformation steckt in niedrigen Frequenzen.
<!--
NICHT Tonhöhe! Räumliche Frequenz = Änderungsrate der Helligkeit im Raum. NICHT Tonhöhe! Räumliche Frequenz = Änderungsrate der Helligkeit im Raum.
Niedrige Frequenz: Langsamer Übergang von hell zu dunkel Niedrige Frequenz: Langsamer Übergang von hell zu dunkel
@@ -441,9 +457,6 @@ DCT ist wie ein Prisma: Zerlegt das Bild in seine Frequenzkomponenten.
Hohe räumliche Frequenzen (Details) → grob speichern oder weglassen Hohe räumliche Frequenzen (Details) → grob speichern oder weglassen
Niedrige Frequenzen (Flächen) → erhalten Niedrige Frequenzen (Flächen) → erhalten
**Der Quality-Schieberegler steuert das:**
- Quality 100: Minimale Quantisierung
- Quality 50: Aggressive Quantisierung
<!-- <!--
Quantisierung = Division durch Quantisierungsmatrix + Rundung. Quantisierung = Division durch Quantisierungsmatrix + Rundung.
Binary file not shown.

After

Width:  |  Height:  |  Size: 425 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB