Als MPEG-Decoder habe ich den Berkeley MPEG-1 Video-Encoder mpeg_encode eingesetzt (Quelle: ftp://mm-ftp.cs.berkeley.edu/pub/multimedia/mpeg/encode/), weil er durch die Vielzahl an Parametern große Einflußmöglichkeiten auf die Qualität des Resultats erlaubt. Dieser Aspekt ist besonders wichtig bei Visualisierungsprojekten, wo die Vorgabe der Kompressionsrate eher sekundär ist.
Das Programm mpeg_encode wird durch ein Parameter-File beliebigen Namens gesteuert. Als Beispiel diene das folgende File io.param für eine Folge von 36 Bildern der Größe 200x200:
# standard values for Q and pattern PATTERN IBBPBBPBBPBBPBB FORCE_ENCODE_LAST_FRAME OUTPUT io.mpg GOP_SIZE 15 SLICES_PER_FRAME 1 BASE_FILE_FORMAT YUV YUV_SIZE 200x200 YUV_FORMAT ABEKAS INPUT_CONVERT * INPUT_DIR . INPUT io*.yuv [001-036] END_INPUT # quality parameters IQSCALE 8 PQSCALE 10 BQSCALE 12 # motion vector search parameters PIXEL HALF RANGE 10 PSEARCH_ALG LOGARITHMIC BSEARCH_ALG CROSS2 REFERENCE_FRAME ORIGINALIst man mit Standard-Ergebnissen zufrieden, muß man nur die folgenden Paramter anpassen:
YUV_SIZE 200x200 Breite x Höhe der Eingabe-Daten OUTPUT io.mpg Name des Ergebnis-Files INPUT_DIR . Verzeichnis der Eingabe-Daten INPUT io*.yuv [001-036] Namen der Eingabe-Daten (io001.yuv .. io036.yuv) END_INPUTMan erhält dann mit dem Kommando
mpeg_encode io.paramdas fertige MPEG-File. Die Ausgabe ist recht umfangreich und enthält neben Informationen zum Fortgang der Wandlung auch Statistik-Daten zum erzeugten MPEG-File. Daher lenkt man sie zweckmäßigerweise gleich um:
mpeg_encode io.param | tee mpeg_encode.outDas erzeugte MPEG-File kann man sich nun mit jedem MPEG-Viewer ansehen, z.B. mit dem von Berkeley (Quelle: ftp://mm-ftp.cs.berkeley.edu/pub/multimedia/mpeg/play/)
mpeg_play -owncm -quality on -framerate 5 io.mpg &