Jump to content

Video Codierung der GH1 - Das Aha-Erlebnis


Empfohlene Beiträge

Werbung (verschwindet nach Registrierung)

Hallo miteinander,

meine Bemühungen, die Aufgezeichneten Videos der GH1 smart zu rendern sind bislang fehl geschlagen. Für mich gilt encodieren = codieren = neu berechnen = rendern. Manchmal wird rendern auch für die allgemeine Bearbeitung des gesamten Videos verwendet. Smart Rendern bedeutet: Nur die Phasenbilder (Frames) neu berechnen, bei denen es unbeding notwendig ist (z.B. Überblendungen und sonstige Effekte). Das Programm PowerDirector 8 Ultra von Cyberlink beherrscht das prinzipiell, aber mit Material der GH1 will es mir nicht gelingen.

 

Deshalb habe ich mir die Videoaufzeichnung der GH1 genauer angesehen. - Und ich hatte ein großes Aha-Erlebnis. Weil mich speziell das 1080-Zeilen Format interessiert, beschränken sich meine Ausführungen darauf. In diesem Text tauchen die Begriffe I- P- und B-Frame auf. Die hatte ich vor längerer Zeit einmal erklärt.

 

Zum Betrachten habe ich die Demo-Version des inzwischen sehr teuren Elecard SreamEye genommen. Das stellt die Folge der Frames (Phasenbilder) als farbige Balken dar. Deren Höhe entspricht dem Informationsinhalt des entsprechenden Frames. Ich muss manchmal etwas orakeln, weil die Demo einige Informationen zurückhält.

 

Das erste Bild zeigt ein typisches Mpeg4/H264 Video einer BluRay. Die I-Frames (schwarzbraun) sind vollständige Bilder, die Jpeg-ähnlich codiert sind. Die blauen P-Frames enthalten eine Differenzinformation zum vorangegangenen I-Frame. Die grünen B-Frames enthalten Infos, die zur Interpolation aus den davor und dahinter liegenden P-Frames (oder statt dessen I-Frame) nötig sind.

 

Prinzipiell kann man bei der Encodierung auf B-Frames verzichten. So ein Video ist im zweiten Bild dargestellt (erzeugt durch PowerDirector). Das dritte Bild zeigt eine unbearbeitete GH1-Aufzeichnung. Auch die GH1 verzichtet offenbar auf B-Frames, ihre GOP-Struktur lautet IPPPPPPPPPPPP. Allerdings tauchen zwischen den blauen P-Frames jetzt rote Frames auf. Die Bedeutung der roten Farbe ist mir unklar. Ich nehme einmal an, dass auch das I-Frames sind. Aber irgendwie andere. Deshalb mag PowerDirector offenbar die GH1-Aufzeichnungen nicht smart rendern, obwohl ich ein Ausgabeformat entsprechend Bild 2 eingestellt habe.

 

Was bedeutet der Verzicht auf B-Frames?

Zunächst entfällt der komplizierteste Teil der Mpeg-Encodierung. Auch die Datenausgabe vereinfacht sich. Die GH1 kommt auf diese Weise mit einer drastisch geringeren Rechenleistung aus als bei vollständiger Mpeg4/H264-Codierung. Für den Videoschnitt hat es auch seine Vorteile. Es ist leichter, schneller und weniger fehlerbehaftet, einzelne Phasenbilder (Frames) zu rekonstruieren. Bei harten Schnitten brauchen für das Cut-Out theoretisch überhaupt keine Frames neu encodiert zu werden, weil man nach einem P- oder I-Frame problemlos mit dem I-Frame der nächsten Einstellung weiter machen kann.

 

B-Frames umfassen die wenigsten Daten. Eine starke Kompression ist deshalb nur möglich, wenn auch B-Frames vorhanden sind. Bei vergleichbarer Bildqualität benötigt eine Kompression ohne B-Frames mehr Datenrate bzw. Speicherplatz. Oder anders herum: Die recht hohe Datenrate einer GH1-Aufzeichnung (durchschnittlich 15 MBit/s) sorgt keinesfalls für eine bessere Bildqualität als bei anderen H264-Videos (mit B-Frames). Die Bildqualität hängt nicht allein von der Datenrate ab sondern auch von Art und Aufwand der Encodierung.

 

Bei Camcordern ist es nicht allgemein üblich, auf B-Frames zu verzichten. Die Bilder 4 und 5 zeigen Testaufzeichnungen der AVCHD-Camcorder Panasonic HDC-TM350 und JVC GZ-HM400 (beide schreiben wie die GH1 auf SDHC-Karten). Diese Aufzeichnungen stammen von der Heft-DVD der letzten Computer-video (6/2009) und sollen unbearbeitet sein. Die TM350-GOP-Struktur entspricht dem Üblichen. Der HM400 liegt zwischen TM350 und GH1, zwischen zwei P-Frames gibt es nur genau ein B-Frame. Die Videos meines älteren HDV_Camcorders (Sony HC3) ähneln im Aussehen dem TM350-Video. Es gibt natürlich einen Unterschied: HDV verwendet Mpeg2 und eine noch höhere (konstante) Datenrate.

 

Das 6. Bild zeigt uns das Ergebnis eines GH1-Videos, das durch PowerDirector gerendert wurde. Auffallend ist, dass P- und B-Frames ungefähr gleich viele Daten enthalten. Das ist prinzipiell nicht sinnvoll. Besser wäre es, wenn die B-Frames weniger Daten enthielten und die anderen dafür mehr. Aber wo sollten diese Daten herkommen? In der Praxis wäre es also ausreichend, ohne nennenswerte Qualitätseinbußen ein Video, das B-Frames enthält mit einer geringeren Datenrate auszugeben.

 

Ich habe mich recht ausführlich mit der Mpeg-Codierung beschäftigt. Mit Mpeg4/H264 kenne ich mich aber nur grob aus. Deshalb bitte ich Euch um Korrekturen oder Ergänzungen. Sollte ich selbst mehr heraus finden, werde ich es Euch nicht vorenthalten. Mein Hauptanliegen ist es natürlich, ein echtes Smart Rendering mit so wenig wie möglich neuer Encodierung zu erlangen.

Hallo, lieber Besucher! Als Forumsmitglied (kostet nix) würdest du hier ein Bild sehen…

Einfach hier registrieren – Wir freuen uns immer über neue Mitglieder!

Hallo, lieber Besucher! Als Forumsmitglied (kostet nix) würdest du hier ein Bild sehen…

Einfach hier registrieren – Wir freuen uns immer über neue Mitglieder!

Hallo, lieber Besucher! Als Forumsmitglied (kostet nix) würdest du hier ein Bild sehen…

Einfach hier registrieren – Wir freuen uns immer über neue Mitglieder!

Hallo, lieber Besucher! Als Forumsmitglied (kostet nix) würdest du hier ein Bild sehen…

Einfach hier registrieren – Wir freuen uns immer über neue Mitglieder!

Hallo, lieber Besucher! Als Forumsmitglied (kostet nix) würdest du hier ein Bild sehen…

Einfach hier registrieren – Wir freuen uns immer über neue Mitglieder!

Hallo, lieber Besucher! Als Forumsmitglied (kostet nix) würdest du hier ein Bild sehen…

Einfach hier registrieren – Wir freuen uns immer über neue Mitglieder!

Link zum Beitrag
Auf anderen Seiten teilen

Blueray wie auch die GH1 speichern den H264-Stream übrigens in einen Mpeg2 Container ab, darum auch die mt2s-Fileendung.

 

Laut meiner Anzeige zeichnet die GH1 im High-Profile@Level 4.0 auf... dieses Format sieht bei AVC eindeutig B-Frames vor.

 

Ansonsten ist das Thema eigentlich für mich uninteressant, da ich optische Filter beim Schneiden anwende, also sowieso alles neu rendern muss.

Link zum Beitrag
Auf anderen Seiten teilen

Tja,

in meiner Praxis funzt Smart Rendern mit PowerDirector noch immer nicht. Bedingung ist, dass Quell- und Ausgabeformat die gleiche Struktur haben. Das geht natürlich nur, wenn wir die Quellstruktur genau kennen. Deshalb bin ich so verbissen hinter ihr her. Außerdem ist die gleiche Datenrate gefordert. Wie das bei variabler Bitrate gehen soll, ist mir noch unklar.

 

Etwas (aber noch nicht ausreichend) schlauer bin ich inzwischen. Bislang war ich der Meinung, dass I-Frames und Key-Frames das selbe sind. Offenbar gibt es aber geringe Unterschiede. Elecards StreamEye markiert die üblichen I-Frames rot (siehe erster Beitrag) und die Keys dunkel. Eine GH1-Ausgabe beginnt demnach mit einem I-Frame, das gleichzeitig Keyframe ist. Alle weiteren I-Frames haben die Key-Eigenschaft nicht. Das Schnittprogramm will aber offenbar alle I-Frames als Key haben (zumindest erzeugt es sie beim Rendern so).

 

Jedes Key-Frame erlaubt offiziell einen Neueinstieg in den Mpeg-Strom beim Abspielen oder Spoolen. Bei I-Frames geht das auch, aber wohl nur praktisch und nicht von den Mpeg-Vätern abgesegnet.

 

Ich habe mich inzwischen auch mit der Ausgabestruktur der GH1 bei den 720-Zeilen Versionen beschäftigt. Hier umfasst eine GOP 26 Frames, jeweils ein I-Frame gefolgt von 25 P-Frames. Damit setzt sich Panasonic über die Geflogenheit hinweg, dass mindestens jedes 15. Frame ein I-frame sein soll. In der Praxis stört das wohl kaum, weil bei 1080i/25 und auch 720p/50 ungefähr jede halbe Sekunde I-Frame auftaucht.

 

Die Aneinanderkettung von so vielen P-Frames kann durchaus problematisch sein, weil jedes immer die Differenz zum vorhergehenden enthält. Ich kann mir gut vortellen, dass 25 Differenzen nacheinander auch zu Ungenauigkeiten in der Darstellung führen. Bei einer Struktur mit B-Frames gäbe es solche Differenzen nur 4-5 Mal je GOP.

 

Mpeg2 und Mpeg4 bzw. H264 sehe ich nicht als Container sondern als Kompressionsstandard (Mpeg4/AVC = Mpeg-4/Part 10 = H264). Die GH1-Aufzeichnungen haben im Originalzustand die Namenserweiterung MTS. Wie die Erweiterung letztlich heißt, ist eigentlich wurscht. Elecard (siehe oben) kennt z.B. weder m2ts noch mts sondern nur m2t, trt und ts.

 

Jedes Mpeg sieht prinzipiell B-Frames vor, aber sie brauchen nicht unbedingt vorhanden zu sein. Das Level sagt nur etwas über die Bitraten. Für den Videoschnitt wäre ein Stream mit ausschließlich I-Frames ideal. Das entspräche dann MJPEG oder DV. So etwas kann man mit den üblichen Encodern problemlos herstellen. Natürlich ist es nicht Platzsparend.

 

Ich gehöre zu den Zeitgenossen, in deren Videos höchstens 5% neu zu berechnen wären. Damit hat Smart Rendern oder nicht direkten Einfluss auf die nötige Leistung meines PC und damit auf die Entscheidung Notebook oder Deskop.

bearbeitet von robernd
Link zum Beitrag
Auf anderen Seiten teilen

Ist ja alles richtig, wollte halt nur der Vollständigkeit halber dazu schreiben, dass die GH1 die Dateien genauso aufgliedert wie ein Blueray-Player. Diese m2ts-Dateien oder MTS sind h264 kodierte Filme, die in einen Container nach mpeg2 Norm geschrieben werden, das Blueray Konsortium nennt es "BDAV MPEG-2 transport stream".

 

Wie macht es eigentlich das mitgelieferte Panasonic-Schnittprogramm? Habe es nie ausprobiert, wird da auch alles neu gerendert?

 

Du müsstest für Dein "Smart-Rendern" ein Programm finden, welches die Video ohne B-Frames genauso übernimmt wie von der Kamera, also mein Sony Vegas kann das wohl auch nicht, auch in den Optionen finde ich dazu nichts.

 

Noch etwas, das High-Profile sieht B-Frames vor, siehe

 

H.264/MPEG-4 AVC - Wikipedia, the free encyclopedia

 

es muss aber natürlich nicht zwingend Verwendung finden, vielleicht in einer GH2? Der Level danach, also 4.0, sagt etwas über die Bitrate aus.

 

Was mich auch mal interessieren würde, wenn man neu rendert und mit B-Frames arbeitet, so kann man die Videofiles kleiner machen, bis wie viel Mbit/s kann man runter gehen ohne nennenswerte Qualitätsverluste, wie sind so eure Erfahrungen? Stelle selbst immer 10Mbits/s ein.

bearbeitet von Chrys
Link zum Beitrag
Auf anderen Seiten teilen

Hi,

bei der GH1 (und GH2?) ist es wohl eine Frage der fehlenden Rechenleistung, dass es keine B-Frames gibt. Auch bei professionell hergestellten Blu-Ray Filmen gibt es Passagen ohne B-Frames. Das zugehörige Bildchen von einem Musikvideo hatte ich schon anderswo gezeigt. Professionelle Encoder arbeiten offenbar wesentlich flexibler als wir es uns mit unserem Amateur-Gelump träumen lassen.

 

Tja, und wie weit kann man wohl mit der Datenrate herunter gehen? Das hängt von der Encoderqualität und vom Bildinhalt ab. Bereits eine feste GOP-Struktur drückt die Qualität gewaltig. Da hilft nur Datenrate rauf! Ich verwende prinzipiell das Maximum, das das verwendete Medium hergibt. Zumindest bei kurzen Amateurvideos lässt sich das problemlos realisieren. Es wird uns kaum gelingen, z.B. das erwähnte Musikvideo mit unseren Mitteln in annähernd Originalqualität neu zu rendern.

 

Ähnlich ist es bei JPEG-Bildern. Meine bearbeiteten Fotos sind nach neuer Codierung immer umfangreicher als das Original. Ich möchte wirklich keine zusätzlichen Verluste in Kauf nehmen.

Hallo, lieber Besucher! Als Forumsmitglied (kostet nix) würdest du hier ein Bild sehen…

Einfach hier registrieren – Wir freuen uns immer über neue Mitglieder!

Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...