www.radonmaster.de/robernd/ Stand: 22. Feb 2004
homeMPEG, GOP und Videoschnitt
In Ausführungen über MPEG-Video tauchen immer wieder Begriffe wie GOP und I-Frame auf. Was bedeuten die eigentlich?
Was müssen wir beachten, wenn wir MPEG-Videos nachbearbeiten möchten?
MPEG-Video
Das wesentliche am Digitalfernsehen (DVB) und auch an der Speicherung auf der Video-DVD ist eine Datenreduktion, ohne die es nicht ginge. Die Abkürzung MPEG beschreibt dabei nicht das mathematisch-technische Verfahren der Datenreduktion sondern das Standardisierungs-Gremium (Motion Pictures Expert Group) dieses Verfahrens. Ein Gerät oder Computerprogramm, das derartige datenkomprimierte Videos erzeugt heißt MPEG-Encoder oder einfach Coder. Der Vorgang selbst ist die Encodierung oder Codierung. Bekannter ist der Begriff Decoder für ein Gerät oder Programm, das aus dem komprimierten Video wieder eine leicht darstellbare unkomprimierte Normalform erzeugt.
Bemerkenswert ist, dass MPEG bei allen seinen Verfahren nur jeweils die Decoder, nicht aber die Encoder standardisiert hat. So erklärt es sich, dass unterschiedliche Encoder auch (etwas) unterschiedliche Ergebnisse liefern. Natürlich lassen sich alle so erzeugten Videos mit dem gleichen Decoder wiedergeben.
Die Datenreduktion geschieht in drei Stufen und berücksichtigt dabei, dass die aufeinanderfolgenden Phasenbilder (Frames) eines Films ähnliche Inhalte haben.
Am wenigsten komprimiert sind sogenannte I-Frames (I, intra-). Hier erfolgt eine verlustbehaftete Datenkompression innerhalb eines Filmbildes.
Ähnlich funktioniert auch die JPEG-Kompression von Standbildern.
In der nächsten Stufe werden nur Veränderungen gegenüber dem letzten I-Frame gespeichert, die es ermöglichen, eines der folgenden Bilder vorherzusagen.
Das ist ein P-Frame (P, predicted).
Die letzte Stufe erzeugt B-Frames (B, bidirectional). Damit werden die Lücken zwischen I und P oder zwischen zwei P aufgefüllt. Um also ein B-Frame zur Darstellung zu rekonstruieren, benötigt man neben übertragenen Differenzinformationen auch das letzte P oder I sowie das erste folgende P oder I.
Bei einer MPEG-Aufzeichnug ergibt sich eine Bilderfolge nach ungefähr dem Muster
Den ständig wiederholten Bereich IBBBPBBBPBBB bezeichnet man als GOP (Group Of Pictures). Der Aufbau der Standardreihenfolge wird dem Encoder vom Anwender vorgegeben. Für DVD und DVB verwendet man meistens GOPs wie oben angedeutet. Die Anzahlen der aufeinanderfolgenden B-Frames und der P-Frames innerhalb einer GOP kann der Anwender beliebig variieren.
Unabhängig von dieser festen Struktur eines GOP gibt es bei Filmschnitten (Wechsel des gesamten Bildinhaltes) fast immer ein I-Frame. Ein MPEG-Encoder muss also Filmschnitte erkennen, um die außerhalb der Standardreihenfolge nötigen I-Frames zu erzwingen. Leider ist das nicht immer der Fall. Speziell bei Sat-Übertragung tauchen bei Filmschnitten P-Frames auf, deren Dateninhalt größer ist als der entsprechender I-Frames mit gleicher Information.
Die Abspielreihenfolge (Betrachtungsreihenfolge) der Bilder (Frames) eines Videos unterscheidet sich von der Übertragungsreihenfolge. Das ist erkennbar, wenn wir jedem Frame eine Nummer geben.
Zur Abspielreihenfolge der Bilder
gehört die Übertragungsreihenfolge
Der Unterschied zwischen Übertragung und Anzeige lässt sich sehr schön nachvollziehen mit dem Programm MPEG-Stream-Eye von Elecard/Moonlight ( www.elecard.com ). Es bietet die Möglichkeit, ein MPEG-Video Bild für Bild anzuzeigen und dabei zwischen Abspielreihenfolge (Decoder order) und Übertragungsreihenfolge (Stream order) umzuschalten. Allerdings vertausch es auch selbst bei der Wiedergabe manchmal einige Frames. Das gleiche Problem hat übrigens auch der Elecard MPEG Player.
Bildqualität
Die Bildqualität hängt zunächst einmal von der Datenrate, also dem Umfang der angewendeten Datenkompression ab. Sie lässt sich verbessern, wenn man auf B-Frames vollständig verzichtet. Falls das codierte Material zur Nachbearbeitung vorgesehen ist, verzichtet man gern auch auf die P-Frames. Die Bilderfolge besteht dann nur aus I-Frames. Damit sind Datenrate und -struktur der DV-Band-Aufzeichnung sehr ähnlich. MPEG arbeitet meistens mit variabler Datenrate, während DV prinzipiell auf eine konstante Rate optimiert ist.
Je höher die Anzahlen von P-Frames und I-Frames sind, desto höher ist auch die zur Übertragung nötige Datenrate. Zusätzlich beeinflusst auch die gewählte Qualität die Datenrate. In der Praxis verwendet man folgende Mittelwerte:
SVCD: 2 MBit/secBei vorgegebener Datenrate (durch Filmlänge und Speicherkapazität z.B. einer DVD) kann der Anwender die Encoder-Einstellungen für das vorliegende Material optimieren (z.B. bessere Bildschärfe oder bessere Bewegungswiedergabe). Im fortgeschrittenen Stadium wechseln diese Einstellungen im Laufe eines Filmes. Dadurch erreicht man auch auf einer DVD noch eine gute Bildqualität.
Videoschnitt
Probleme hat ein Video-Fan, der bereits fertige MPEG-Aufzeichnungen nachträglich verändern möchte. Wenn ein Video nur geteilt und anders zusammengesetzt werden soll, schneidet man nicht an beliebiger Stelle sondern nur direkt vor einem I-Frame. Selbst das bringt Probleme mit sich, weil es ohne zusätzliche Maßnahmen einige herrenlose B-Frames gibt. Beim Abspielen werden diese dann einem falschen P-Frame zugeordnet, und es gibt eine kurze Bildstörung mit Klötzchen. Es folgen drei Beispiele, wie Bildschnitte in der Praxis ausgeführt werden können.
GOP-Genauer Schnitt mit herrenlosen P-Frames
Die Schnittmöglichkeit des bekannten MPEG-Encoders TMPGEnc ist ein Beispiel für ein Programm, das GOP-genau schneidet. Es produziert den bereits oben angedeuteten Bildfehler durch herrenlose B-Frames. Das wird deutlich, wenn wir uns das Ergebnis eines Videoschnittes genauer ansehen. Zur Darstellung wird der MPEG-Stream-Eye von Elecard/Moonlight www.elecard.com verwendet.
Die obere Grafik zeigt die Bilder schematisch in der Übertragungsreihenfolge. Dabei stellt jeder Balken ein Frame dar. Die Höhe der Balken entspricht dem Dateninhalt des entsprechenden Frames. Die Bilderreihe zeigt die Abspielreihenfolge, wie sie der Bildschirm anzeigt. Die weißen Linien geben an, welches angezeigte Frame(Bild) zu welchem übertragenen Frame gehört. Im Bereich des zweiten GOP (mit "Schnitt" bezeichnet) wurde durch die Zeitangabe der Cut-Out Punkt des ersten Videoteils festgelegt.
TMPGEnc schneidet den Datenstrom nach dem letzten P-Frame (mit O bezeichnet) ab (die zwei auf dieses P-Frame folgenden B-Frames werden noch vorher angezeigt). Das zweite Videostück beginnt mit einem I-Frame (ebenfalls mit O bezeichnet). Danach folgen in der Übertragung zwei mit X bezeichnete herrenlose B-Frames. Entsprechend der Wiedergabekonvention (siehe weiter oben) wird bei der MPEG-Decodierung die Information XX zwischen den beiden mit O bezeichneten Frames interpoliert. Das geht natürlich nicht gut, weil die O O zu völlig unterschiedlichen Filmstücken gehören. Das Ergebnis sind zwei störende Bilder mit gemischten Inhalten und Klötzchen.
GOP-genauer Schnitt ohne herrenlose P-Frames
Wesentlich günstger verhält sich die Schnittmöglichkeit des (inzwischen vom Autor zurückgezogenen) Programms ds.jar (siehe auch Fehler in DVB-Aufzeichnung beheben ). Es gibt ein neues, leistungsfähigeres Programm des selben Autors sogar mit Vorschaufenster. Es heißt einfach nur X. Sein Sourcecode ist freigegeben, übersetzten muss es sich der Anwender selbst. Zu finden in www.radonmaster.de/robernd/tools/
Es wurden die gleiche Videos wie mit TMPGEnc an den gleichen Stellen geschnitten. Der vereinbarte Schnittzeitpunkt liegt an der mit "Schnitt" bezeichneten Stelle (die im geschnittenen Videostrom nicht mehr vorhanden ist). DS entfernt beim Cut-out bereits das letzte I-Frame vor dem angegebenen Schnittzeitpunkt und alle darauf folgenden Frames. Ein Cut-in liegt immer direkt vor dem ausgewählten I-Frame. Ist ein anderes Frame angegeben, so wird das letzte I-Frame vor diesem ausgewählt. Außerdem entfernt es beim Cut-in immer die erste Gruppe von B-Frames. Es gibt also keine herrenlosen B-Frames und der Schnitt ist sauber.
Auch ds.jar ist kein typisches Schnittprogramm, deshalb muss man es "blind" bedienen. Die Schnittpunkte werden als Frame-Nummern in eine Schnittliste geschrieben. Der Nachfolger X hat ein Vorschaufenster, das das ausgewählte Bild anzeigt und zur Übernahme in die Schnittliste bereit stellt.
P-Frame-genauer Schnitt
Ausgezeichnet ist das Programm Mpeg2Schnitt von Martin Dienert, zu finden bei http://www.mdienert.de/mpeg2schnitt/index.htm
Damit zusammenhängende Probleme werden in http://forum.lucike.info/ diskutiert.
Martin hat alles ausgereizt, das ohne Neucodierung eines Videos denkbar ist. Beim Cut-In erfolgt der Schnitt wie üblich beim I-Frame. Dabei werden die herrenlosen B-Frames (selbstverständlich?) entfernt. Beim Cut-Out leistet es "einen Löffel mehr". Hier kann es bei beliebigen P- und I-Frames schneiden.
Abhängig von der GOP-Struktur lässt sich das Cut-In auf ungefähr eine halbe Sekunde genau festlegen. Das Cut-Out ist fast 0,1 sec genau.
Die Grafik soll das anschaulich darstellen. Sie zeigt das Ergebnis für vier unterschiedliche Schnitte mit Cut-Out an benachbarten P/I-Frames. Das Cut-In liegt immer an dem selben I-Frame. Ein bildgenauer Schnitt ist nur möglich, wenn in der Nachbarschaft des Schnittes die Bilder decodiert und wieder neu encodiert werden. Das verspricht MPEG2VCR (120 $, keine Demo für MPEG2 erhältlich) von www.womble.com - und hält es auch. Außerdem bietet es auch Überblendungsmöglichkeiten. Die Zuverlässigkeit des Programms und seine Handhabung sind allerdings noch sehr schlecht. So sieht der Womble-Schnitt aus: MPEG2VCR berechnet die Umgebung des Schnittzeitpunktes neu und setzt ein zusätzliches I-Frame an die Schnittstelle (innerhalb der ursprünglichen GOPs).
Ein schlechter Weg ist es auch, das gesamte Video zu decodieren und es vollständig neu zu encodieren. Das bringt nämlich einen kräftigen Qualitätsverlust und sehr lange Rechenzeiten mit sich. Genau das machen leider viele Schnittprogramme. Seit einiger Zeit gibt es Camcorder, die MPEG-Videos aufzeichnen. Diese verlangen ebenfalls eine Nachbearbeitungstechnik mit den von uns benötigten Eigenschaften. Deshalb können wir durchaus noch auf eine preisgünstige und gute "native" MPEG Bearbeitung hoffen. Damit meinen wir Programme, die auch intern mit MPEG-Darstellung arbeiten. Ich habe diese Beschreibung gemacht, obwohl ich auch nur halb mit den Einzelheiten der MPEG-Codierung vertraut bin. Wer sich richtig schlau machen möchte, kommt um die Seiten www.dvd-tipps-tricks.de nicht herum. Vielen Dank an Matt (Autor von ds.jar) für Informationen zum Unterschied zwischen Abspiel- und Übertragungsreihenfolge. Wer Korrekturen an dieser Seite für nötig hält, möge mir diese bitte schicken. Ich freue mich jedenfalls über alle Hinweise und werde versuchen, sie hier einzubauen. Gruß RoBernd
So weit die Theorie. Das Beste ist aber die Praxis: Mpeg2Schnitt spielt das gesamte Video (Video- und Audio-Files sind separat) auch ab. Eine raffinierte Navigation lässt uns von Bild zu Bild oder in größeren Intervallen springen. Jeder mögliche IN- und OUT-Punkt lässt sich exakt ansteuern.
An verbotenen Stellen lassen sich gar nicht erst Schnitte festlegen. Von Anfang an ist also bereits klar, an welcher Stelle ein Schnitt wirklich sitzt.
Mehrere Schnitte aus unterschiedlichen Videos lassen sich in eine Schnittliste übernehmen. Mpeg2Schnitt erzeugt daraus anschließend ein neues Video, dessen Bild und Ton nur aus Originalinformationen bestehen.
Meine Prognose: Dieses Programm wird zukünftig DER Standard für hochwertigen und preisgünstigen MPEG2-Schnitt sein. Zur Zeit ist es eine kostenlose Betaversion.
Frame-genauer Schnitt
Mit der Bearbeitung von DVB-Aufzeichnungen habe ich erhebliche Probleme, weil das Ergebnis viele Fehler enthält, die Programme zur Weiterverarbeitung nicht akzeptieren. Selbst Womble's eigenes Tool zur Fehlerkorrektur beißt sich daran die Zähne aus.
Weitere Möglichkeiten
Ulead's MediaStudioPlus (30-Tage Trial erhältlich) kann tatsächlich auch MPEG2-Aufzeichnungen "smart" rendern. D.h. unveränderte Bereiche werden ohne neue Encodierung übernommen.
Dafür muss die Feldreihenfolge B statt der voreingestellten Reihenfolge A verwendet werden. Allerdings enthält der erzeugte MPEG2-Datenstrom nach der Bearbeitung von DVB-Aufzeichnungen viele Fehler. Im Gegensatz zu anderen Brennprogrammen weigert sich Ulead's DVD Factory zwar nicht, DVDs zu brennen. Im Ergebnis sind allerdings Bild und Ton asynchron.
Das habe ich mir nur einmal angetan. Wie häufig derartige Fehler vorkommen, kann ich nicht sagen.
Empfehlenswert ist auch das Programm MPEGanalizzatore von www.offeryn.de/dv.html/. Es zeigt einem die Struktur eines MPEG-Stromes bis herunter zu einzelnen Frames.
robernd@radonmaster.de