diff --git a/20200625/ad-20200625.txt b/20200625/ad-20200625.txt index d19f0f2b201943e4ede25fc54a80469cc496c784..4379ee53fa30150a61fd90e853a8464006522d1c 100644 --- a/20200625/ad-20200625.txt +++ b/20200625/ad-20200625.txt @@ -219,3 +219,75 @@ $ cd dist $ URL=https://jitsi.cvh-server.de/VNC6 ./jitsi-meet-x86_64.AppImage --no-sandbox --> Es funktioniert. :-) + +Video-Kompression, 25.06.2020, 17:26:10 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +:) Erinnerung: JPEG-Kompression für (stehende) Bilder + - Mehrere JPEG-Bilder hintereinander --> Motion JPEG (mjpg) + - Verlustfreie Video-Kompression: ffv2 + vom Konzept her ähnlich wie MPEG, nur halt verlustfrei + - MPEG-1 (Vorgänger von MPEG-2, dem Format von z.B. DVDs) + +MPEG-1, 25.06.2020, 17:31:27 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + - Bilder liegen im YCbCr-Format vor: + Schwarzweißbild, Blau-Gelb-Differenz, Rot-Grün-Differenz + --> höhere Verluste in den Farbdifferenzen möglich, + da das menschliche Auge dafür nicht so empfindlich ist + - Verschiedene Bild-Typen + - I-Frame (intra): entspricht einem Standbild (nur I-Frames = Motion JPEG) + Nur wenige Bilder (typischerweise: alle 0.5s) werden als I-Frames gespeichert. + Kompression: JPEG + - P-Frame (predictive): Differenz zum letzten I- oder P-Frame + Was sich nicht bewegt, wird zu Null --> gut komprimierbar. + Für Kameraschwenks: globale Bewegungsvektoren + Fehler durch Verluste summieren sich auf bis zum nächsten I-Frame; + ab da hat das Bild wieder volle Qualität. + +Bild 0: + | o | --> so abspeichern: I-Frame + | /|\ * | + | / \ | | +Bild 1: + | o | --> als Differenz zum vorherigen Frame abspeichern. + | /|\ * | Das Männchen wird neu gespeichert, die Pflanze nicht, + | / \ | | der Hintergrund auch nicht. P-Frame +Bild 2: + | o | --> ebenso: P-Frame + | /|\ * | + | / \ | | + + - B-Frame (bidirectional): Interpolation zwischen vorausgegangenen und + nachfolgenden I- oder P-Frames + --> noch besser komprimierbar + +Bild 0: + | o | --> so abspeichern: I-Frame + | /|\ * | + | / \ | | +Bild 1: + | o | --> Das gesamte Bild 1 befindet sich auf halben Wege + | /|\ * | zwischen Bild 0 und Bild 2. Gut komprimierbar. + | / \ | | B-Frame +Bild 2: + | o | --> als Differenz zu Bild 0 abspeichern. + | /|\ * | Das Männchen wird neu gespeichert, die Pflanze nicht, + | / \ | | der Hintergrund auch nicht. P-Frame + + Nachteil gegenüber P-Frames: Das nächste Bild muß schon verfügbar sein. + --> Bei Streaming ergibt sich eine unvermeidbare Verzögerung, + bis der nächste P-Frame verfügbar ist. + + Anwendung: wenige Bilder als I-Frames speichern, + mehr Bilder als P-Frames und die meisten als B-Frames speichern. + + - D-Frame: wie I-Frame, aber in 1/8 der Auflösung + (für schnellen Vorlauf) + --> Bei schnellem Vorlauf oder Sprung hat man bis zu 0.5s + eine um den Faktor 8 schlechtere Auflösung. + +Nächste Woche: + x Git, LaTeX, vi(m), bash + - (kurz) verlustbehaftete Audio-Kompression + - (kurz) relationale Datenbanken (SQL) + - (ausführlich) Kryptographie, insbesondere: Hash-Funktionen