GOP-Struktur-Visualizer

Visualisiere und analysiere Group of Pictures (GOP)-Muster in der Videocodierung. Passe die GOP-Größe, B-Frames und die Bildrate an, um die Kompressionseffizienz und die Latenzzeiten beim Suchen zu verstehen.

Interaktive Simulation wird geladen...

Eine GOP-Länge bedeutet nichts, solange man sie nicht durch die Bildrate teilt 🖖

Die Sprungzeit ist die Zahl, auf die es ankommt, denn sie ist die Wartezeit, bis ein Player nach einem Sprung oder Kanalwechsel überhaupt etwas zeigen kann. streaming nutzt 24 Bilder bei 30 fps, also 800 ms. bluray nutzt 48 bei 24 fps — doppelt so viele Bilder, aber 2000 ms, zweieinhalbmal so lang, weil eine kleinere Bildrate dieselbe GOP zeitlich weiter streckt. allIntra setzt die GOP auf 1 und macht jedes Bild zum Keyframe: Springen kostet dann ein einziges Bild, 33 ms, und bezahlt wird das mit Bitrate bei jedem einzelnen gesendeten Bild.

Warum das Spulen im Video manchmal springt 🖖

Ein Video speichert selten jedes Bild vollständig. Nur I-Frames (Keyframes) enthalten ein komplettes Bild; P- und B-Frames beschreiben lediglich, was sich gegenüber benachbarten Bildern geändert hat. Ein GOP ist ein Abschnitt von einem Keyframe bis zum nächsten. Wenn du den Schieberegler ziehst, kann der Player die Dekodierung nur am vorherigen Keyframe neu starten und dann bis zu deinem Ziel vorwärts aufbauen — ein langes GOP spart also Platz, macht das Spulen aber langsamer und ungenauer.

Datamoshing: Kunst aus kaputten Keyframes 🖖

Da P-Frames nur Bewegung tragen, nicht den eigentlichen Bildinhalt, löschen Videokünstler absichtlich I-Frames, damit der Decoder alte Pixel entlang neuer Bewegungsvektoren weiterschmiert. So entsteht der zerfließende, verschmelzende „Datamosh"-Look aus Musikvideos wie Kanye Wests Welcome to Heartbreak (2009) und Chairlifts Evident Utensil. Genau die Störung, die einen Stream mit verlorenem Keyframe ruiniert, wird zur bewussten Ästhetik.

EINE STUFE EINER KETTE — WAS ANKOMMT, WAS HERAUSGEHT, WAS DANACH BRICHT

Wo diese Stufe in der Encoding-Pipeline sitzt

Ein Video-Encoder ist kein einzelner Algorithmus, sondern acht Stufen in fester Reihenfolge — und die Reihenfolge ist nicht beliebig: Jede Stufe existiert, weil die vorherige ihre Arbeit erst möglich gemacht hat. Dieses Werkzeug modelliert eine davon. Die Kette unten verlinkt die anderen sieben.

GOP-Struktur-Visualizer — entscheidet, welche Bilder eigenständig und welche als Differenz codiert werden

Was ankommt
Eine Folge abgetasteter Bilder, noch keines davon codiert.
Was herausgeht
Eine Zuordnung: I-Frames eigenständig codiert, P- und B-Frames gegen Referenzbilder.
Was die nächste Stufe voraussetzt
Bewegungsschätzung läuft ausschließlich auf P- und B-Frames. Ein I-Frame überspringt sie vollständig.
Was hier schiefgeht
Diese Stufe entscheidet, ob die nächste für ein Bild überhaupt läuft — sie steuert Stufe 04 also, statt ihr nur voranzugehen. Große Abstände zwischen I-Frames komprimieren deutlich besser und verschlechtern das Spulen, weil ein Player vom letzten I-Frame vorwärts decodieren muss, um an eine beliebige Stelle zu kommen.

Aufgabe vollständig gelöst

  1. Frame-Mix und durchschnittliche Framegröße für 48 Frames bei 24 fps 6 Schritte

    Eine Group of Pictures im Blu-ray-Stil: 48 Frames, 3 aufeinanderfolgende B-Frames zwischen Referenzen, abgespielt mit 24 fps. Nimm an, dass ein I-Frame 100 relative Einheiten kostet, ein P-Frame 12 und ein B-Frame 6. Bestimme die Frame-Zusammensetzung und die durchschnittliche Frame-Größe und ermittle dann, wie viel Kompression eine längere GOP noch bringen könnte.

    1. Ein I-Frame eröffnet die Gruppe, womit 47 Plätze verbleiben. Diese Plätze wiederholen eine 4-Frame-Einheit — 3 B-Frames und den P-Frame, der sie verankert — und 47 ist kein Vielfaches von 4. 47 = 11 × 4 + 3, also 11 vollständige Einheiten und ein Rest von 3 frei hängenden B-Frames.

    2. Das ergibt 11 P-Frames und 33 + 3 = 36 B-Frames. Überprüfung: 1 + 11 + 36 = 48.

    3. Gewichte jeden Typ mit seinen Kosten. 100 + 132 + 216 = 448 Einheiten für die gesamte Gruppe und 448 / 48 = 9,3 pro Frame. Ein All-Intra-Stream zahlt 100 für jeden Frame, sodass diese Struktur bei denselben 48 Bildern um das 10,7-Fache kleiner ist.

    4. Die Rechnung dafür zeigt sich in der Latenz. Man kann das Dekodieren nicht in der Mitte einer Gruppe beginnen — jeder P- und B-Frame ist relativ zu etwas anderem definiert —, sodass ein Suchlauf auf dem I-Frame landet und man von dort aus vorwärts dekodiert. Der schlimmste Fall sind die vollen 48 Frames, was bei 24 fps 2 s entspricht.

    5. Finde nun die Untergrenze. Jede sich wiederholende Einheit kostet 3 × 6 + 12 = 30 Einheiten für 4 Frames, also 7,5 pro Frame, und das Verlängern der GOP tut nichts weiter als weitere dieser Einheiten hinzuzufügen. Zieht man diese Rate von der Gruppe ab, bleiben 448 - 7,5 × 48 = 88 Einheiten übrig.

    6. Diese 88 entsprechen einer einzigen Zahl: 100 - 12, dem Aufpreis des I-Frames gegenüber dem P-Frame, an dessen Stelle er steht. Dieser Aufpreis wächst nicht mit der Gruppe, er beträgt also unabhängig von der Länge stets 88, und der Durchschnitt ist S̄ = 7,5 + 88/N. Teste es bei doppelter Länge: N = 96 ergibt 7,5 + 88/96 = 8,4 Einheiten pro Frame.

    Antwort

    9,3 Einheiten pro Frame, gegenüber einer Untergrenze von 7,5, die keine GOP-Länge unterschreiten kann. Die beiden Seiten dieses Kompromisses skalieren in entgegengesetzte Richtungen, und keine davon ist so linear, wie sie aussieht: Was sich noch gewinnen lässt, fällt wie 88/N, während die Seek-Latenz wie N/24 steigt. Bei 48 Frames liegt man 1,8 Einheiten über der Untergrenze. Eine Verdopplung auf 96 gewinnt 0,9 davon zurück — unter 10 % der Frame-Größe — und kostet weitere 2 s an maximaler Seek-Latenz. Eine erneute Verdopplung gewinnt 0,46 zurück und kostet 4 s mehr. Die Wahl der GOP-Länge wird also durch die akzeptierbare Latenz bestimmt und nicht durch die Kompression, der man noch nachjagt: Nach einigen Dutzend Frames ist ein etwas weiter amortisierter I-Frame alles, was noch herauszuholen ist.

Quellen (1)

Beispielaufgaben

  • Niedrige Latenz (IP) - GOP=4, keine B-Frames: maximale Sprunggeschwindigkeit, minimale Kompression — üblich bei Echtzeit-Streaming
  • Web-Streaming (IBBP) - GOP=24, 2 B-Frames: ~800 ms Sprunglatenz, gute Kompression — typisch für VOD-Streaming
  • Blu-ray (IBBBP) - GOP=48, 3 B-Frames: ~2 s Sprunglatenz, beste Kompression — Blu-ray-Standard
  • All-Intra (Nur-I) - All-Intra: jedes Frame ist ein I-Frame — höchste Qualität, 5–10× größer als ein B-Frame-Stream