[RVS] Universität Hannover
Lehrgebiet Rechnernetze und Verteilte Systeme



[video preview] Preview Komponente für den Video-Verfilmungsservice


MPEG-Codierung mit dem Berkeley MPEG-Encoder

Bei der MPEG-Herstellung mit dem Berkeley MPEG-Encoder gibt es zwei Möglichkeiten, die Bildqualität der zu erzeugenden MPEGs zu beeinflussen:
  • Es können für die einzelnen Frametypen (I/P/B) unterschiedliche Werte für die Quantisierung (QScale) angegeben werden.
    Diese Werte bestimmen das Verhältnis von Qualität zur Kompression, ohne dabei eine feste Bitrate einzuhalten. Die erzeugten MPEGs zeigten eine durchgehend konstante Qualität, da bei aufwendiger Codierung (z.B. Bildwechseln) die Bitrate erhöht wurde. Probleme entstehen dabei z.B. mit der Software unserer MPEG-Karte (SPEA Showtime), die diese MPEGs zwar wiedergibt, aber dazu falsche Daten bezüglich Bildanzahl bzw. MPEG-Länge angibt. Ein Zugriff auf einzelne Abschnitte der MPEG-Datei (sofern dies die Codierung zuläßt) ist nicht möglich.

    Technisch sinnvoller ist die zweite Möglichkeit:

  • Regulierung der Bitrate.
    Es wird zusätzlich zu den QScale-Werten eine feste Bitrate sowie eine Buffergröße angegeben.
    Bei dieser Methode dienen die QScale-Werte lediglich als Richtwerten, die Bildqualität wird vorrangig von der Einstellung der Bitrate beeinflusst (Genauer gesagt: die QScale-Werte sind praktisch irrelevant). Hierbei ergibt sich jedoch eine starke Abhängigkeit der Bildqualität vom Bildmaterial: Häufig wechselnde, bzw. sich stark unterscheidende Bilder führen bei zu gering ansetzter Bitrate zu deutlich sichtbaren Fehlern bei der Wiedergabe.
    Gemäß ISO/IEC 11172-x Empfehlung liegt die Obergrenze bei "etwa 1.5 MBit/s", zugelassen werden bis 1.8 MBit/s (mit Ton). Es lassen sich jedoch problemlos auch höhere Bitraten kodieren. Empfehlungen sprechen von 1.2 MBit/s (Steinmetz). In FAQs findet man 1.2 bit/pel für Intra-, 0.35 bit/pel für Inter-Frames, bei einem Verhältnis von 1:9 (I-frames/P,B-Frames) ergibt sich eine durchsnittliche Rate von 0.44 bit/pel (pel=PictureELement) und somit bei einer Bildgröße von 320x240 und 25 fps 0.44*320*240*25=844800 bit/s. Zum Vergleich: der unkomprimierte Datenstrom besitzt eine Bitrate von 320*240*12*25=22 MBit/s. Folgt man den FAQs weiter, die ab einem Kompressionsfakor von 1:6 von merklichen Artefakte sprechen so müsste die Bitrate 3.67 MBit/s betragen...
    Zu beachten ist weiterhin, daß bei Software-MPEG-Playern bei steigender Bitrate die Wiedergabegeschwindigkeit sinkt bzw. die Frame-Dropping-Rate steigt.
    Hier einige Beispiele mit unterschiedlichen Bitraten:

    Standbilder aus dem Demo-MPEG:
    (172 Bilder 320x240 Pixel, 25 Bilder/Sekunde)
    0.5 MBit:demo05.mpg (491.209 Bytes)
    1.0 MBit:demo10.mpg (1.186.388 Bytes)
    2.0 MBit:demo20.mpg (1.696.320 Bytes)
    zum Vergleich:
    ohne Beschränkung, mit mittlerer Qualität
    (1/10/25):demoun.mpg (812.607 Bytes)

    Bei bestmöglicher Codierung (d.h. QScale jeweils geringster Wert und keine Beschränkung der Bitrate ergibt sich eine MPEG-Datei von 1.718.915 Bytes Länge: eine Bitrate von 2 MBit reicht also fast aus, um dieses Material optimal zu codieren. Wie bereits erwähnt: Es handelt sich um Standbilder!

    Die "Flowergardensequenz":
    (150 Bilder, 352x240 Pixel, 30 Bilder/Sekunde)
    0.5 MBit:flow05.mpg (309.386 Bytes)
    1.0 MBit:flow10.mpg (629.752 Bytes)
    2.0 MBit:flow20.mpg (1.274.070 Bytes)
    Hierbei beträgt die Länge des "optimal" codierten Stream 9.934.067 Bytes. Der Unterschied erklärt sich damit, daß es sich hierbei um 150 verschiedene Bilder handelt.

    zurück zum Haupttext

    [HOME] | ÜBERSICHT | DEMO-MPEGS | BERKELEY-ENCODER | BILD-KONVERTIERUNG | BENUTZERINFORMATIONEN | ÄNDERUNGEN | LINKS
    Ralf Einhorn, 14.03.1995 - 23.04.1996