Archiv Sound, Video, MP3 und Co 8.736 Themen, 38.491 Beiträge

Ist MPEG2 nicht MPEG2 ?

Wilials / 12 Antworten / Flachansicht Nickles

Hallo,
ich zeichne über einen Hama USB-DVBT-Stick und die zugehörige Capturesoftware Filme im MPEG2-Format auf und schneide dann mit dem Ulead Media-Studio 7 die Werbung raus. Anschliessend rendere ich die Videos auf MPEG2, 720 x 576 und Audio 44100. Also alles das gleiche wie bei der Aufnahme und trotzdem wird die Videodatei dabei um ca. 1/3 grösser. Warum ? Vorher habe ich die aufgenommenen Videos mit der Ulead MovieFactory 5 verarbeitet und die Ergebnisse waren etwa gleich gross wie die Aufnahmedateien. Habe jedoch diese Arbeitsweise aufgegeben, da dabei oft "Tonnachläufer" passierten.
Wer kann mir was zu der wundersamen Dateivergrösserung sagen ?

Vielen Dank im Voraus.
wilials

Sigi Saudi Wilials „Ist MPEG2 nicht MPEG2 ?“
Optionen

Lass mich mal etwas weiter ausholen:

Arbeiten mit Videos ist eine Geduldspiel.
Warum, werde ich versuchen, im folgenden Beitrag darzustellen, nachdem ich mich aus verschiedenen Quellen informiert habe.
Es liegt an den Datenmengen die zu bewaeltigen sind, aber versuchen wir mal, das darzustellen an einem 10-Minurten Video.

Im PAL verfahren werden 25 Frames (Einzelbilder) pro Sekunde angezeigt.
Pro Minute ergibt das 25 Frames/sec * 60 sec = 1500 Frames/min.
In 10 Minuten werden also 1500 frames/min * 10 min = 15.000 Frames angezeigt.
Diese Fakten sind fuer PAL "in Beton gegossen", die koennen nicht veraendert werden.

Nun zu einem Frame:
Ein Frame im DVD Format besteht aus einer Matrix von Pixeln, die zur Veranschaulichung als Bildpunkte beschrieben werden koennen.
Die horizontale Anzahl der Pixel eines DVD Bildes ist in PAL 720.
Die Vertikale Anzahl ist, immer PAL vorausgesetzt, standardmaessig 576.

Die Anzahl der Pixel pro frame ist damit 720 * 576 = 414.720 Pixels oder Bildpunkte.
Fuer ein 10-Minuten Video ergibt sich damit eine Pixelzahl von 15.000 Frames * 414.720 Bildpunkte pro Frame = 6.220.800.000 Pixels oder Bildpunkte.
Das sind fuer ein 10-minuetiges Video 6,2 Milliarden Pixels die alle zumindest gelesen werden muessen fuer die MPEG Codierung.

Die naechste Frage ist, wie solch ein Bildpunkt nun aufgebaut ist.
Im der digitalen Videoaufzeichnung werden die Bildpunkte als Y'CrCb definiert.
Y representiert in etwa das rot R' signal und Luminanz (Helligkeit) und kann die Werte 0 bis 255 (hexadezimal x'00' bis x'FF') annehmen.
(Die Werte "00" und "FF" sind Sonderwerte, die fuer andere Anzeigen gebraucht werden).
Cb representiert in etwa das gruen G' signal mit dem gleichen Wertebereich.
Cr representiert in etwa das blau B' signal im glechen Wertebereich.

Damit braucht man zur Darstellung eines Pixels 3 bytes (3 x 8 bit).
Multiplizieren wir nun unsere Pixels pro frame 6.220.800.000 mit 3 bytes pro frame, ergibt das 18.662.400.000 bytes.
Das sind immerhin 18,6 Gigabytes.
Das ist die unkomprimierte Laenge einer Datei eines 10-minuetigen Videos (plus einige Overheads).
Wenn Du nun ein digitales Video von z.B. einer DV Kamera captures. ist die 10-Minuten Video Datei kuerzer.
Das liegt daran, das schon der DV Codec, der das Video z.B. in eine .avi Datei einliest, mit einer Komprimierung arbeitet (je nach DV Codec ca. bis zu 1:6).
Das ganze Y'CrCb Verfahren ist in der CCIR 601 Recommendations festgehalten und dort sehr theoretisch beschrieben.

Wie arbeitet nun ganz grob die MPEG Codierung?
Das ist vereinfacht verhaeltnismaessig einfach gesagt.
Der MPEG Codec vergleicht die Pixels (Y'CrCb) eines Frames 1 mit dem naechsten Frame 2, Frame 1 mit einem naechsten Frame 3 usw.
Nur, wenn die Farb- (Chrominanz) oder Helligkeits- (Luminanz) Information, die in den 3 bytes gespeichert ist, beim naechsten Frame vom vorherigen abweicht, wird der Byte-Wert in der zu erzeugenden MPEG Datei gespeichert.
D.h. wird keine, oder nur eine geringe Abweichung festgestellt, wird kein neuer Farbwert fuer den Frame 2 usw. gespeichert, ist der verglichene Farbwert stark veraendert, wird er gespeichert.
Dadurch verkuerzt sich die Datei, aber eben auf Kosten der Qualitaet, weil mehr oder weniger geringfuegige Abweichungen als keine Abweichung gelten.
Das erklaert auch, warum MPEG Dateien, erstellt mit den gleichen Parametern unter Verwendung eines Codec X nicht die gleiche Laenge zu haben brauchen, als wenn das gleiche Filmmaterial mit den gleichen Parametern mit einem Codec Y codiert wird.
Es liegt daran, welche Toleranzgrenzen der Programmierer zulaesst, um eine Farbe noch als "Gleich" zu bezeichnen.
Deshalb ist die Qualitaet eines codierten Filmmaterials mit unterschiedlicher Codecs auch z.T. erheblich unterschiedlich.
MPEG2 ist eben nicht gleich MPEG2.
Damit der Rueckgriff auf eine sich nicht veraendernde Farbe jetzt nicht ueber das ganze Filmmaterial auf sagen wir mal den ersten Frame des Materials zu erfolgen hat, in dem diese sich nicht aendernde Farbe das erste mal definiert wurde (Extremfall), sind unterschiedliche Frametypen eingefuehrt worden.
Das sind dann die sog. I-Frames (Inter Frames), die z.B. in MPEG Dateien als P-frames oder B-Frames eingefuehrt sind.
Diese Frames begrenzen den Bereich, in dem "gleiche Farbinformation" fuer die Frames gilt.
Es wird also praktisch der Referenz-Frame bestimmt, auf den fuer das Ermitteln gleicher Farbinformationen zurueckgegriffen werden darf.
Auch das beeinflusst die Laenge einer MPEG Datei.
Wenn nur wenige I-Frames generiert werden, wird die MPEG Datei kuerzer.

So, das ist das Ergebnis meiner Recherche.
Ich bin Dipl.-Ing. fuer Telekommunikation und arbeite in Riyadh Saudi Arabien, verantwortlich fuer Design des landesweiten Glasfasernetzes.
Ich bin es gewohnt, mich in neue Materien einzuarbeiten.
Deshalb kannst Du diesen Ausfuehrungen trauen.
Ich hoffe, zum Verstaendnis der Problematik beigetragen zu haben.
Hoffentlich erreicht Dich dieser spaete Beitrag noch.
Gruss aus der nun wieder 32 Grad Celsius warmen Wueste (wir werden bis Juli noch 53 Grad erreichen, und auch dann spiele ich noch Golf ohne Motor Cart).
Sigisaudi