Dies ist der Befehl ppmtompeg, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
ppmtompeg – kodiert MPEG-1-Bitströme
ZUSAMMENFASSUNG
ppmtompeg [ Optionen ] Parameterdatei
BESCHREIBUNG
ppmtompeg erzeugt einen MPEG-1-Videostream. param_file ist eine Parameterdatei, die enthält
eine Liste von Eingabedateien und anderen Parametern. Die Datei wird im Folgenden ausführlich beschrieben. Der
Die Optionen -gop, -combine_gops, -frames und -combine_frames sind alle exklusiv. Dieser Mann
Die Seite ist wahrscheinlich unvollständig. Informationen zur vollständigen Verwendung finden Sie im Benutzerhandbuch.
OPTIONAL
-stat stat_file : bewirkt, dass der Encoder die Statistiken an die Datei anhängt stat_file. in
In jedem Fall werden die Statistiken auf stdout ausgegeben. Die Statistiken verwenden Folgendes
Abkürzungen: Bits pro Block (bpb), Bits pro Frame (bpf), Sekunden pro Frame
(spf) und Bits pro Sekunde (bps).
-ruhig num_seconds : bewirkt, dass das Programm die verbleibende Zeit für mindestens nicht meldet
num_seconds Sekunden. Ein negativer Wert weist das Programm an, überhaupt keine Berichte zu erstellen. 0
ist die Standardeinstellung (meldet einmal nach jedem Frame). Beachten Sie, dass die verbleibende Zeit ein ist
Schätzung und berücksichtigt nicht die Zeit zum Einlesen von Frames.
-wirklich ruhig : bewirkt, dass der Encoder geräuschlos läuft und die einzige Bildschirmausgabe Fehler sind.
Besonders nützlich beim Lesen von Eingaben von stdin.
-no_frame_summary : Verhindert, dass das Programm für jedes Bild eine Zusammenfassungszeile druckt
-float_dct : zwingt den Encoder dazu, eine genauere, aber rechenintensivere Methode zu verwenden
Version des DCT.
-gop gop_num : bewirkt, dass der Encoder nur die nummerierte GOP codiert (die erste GOP ist 0). Der
Die Parameterdatei ist dieselbe wie für den normalen Gebrauch. Die Ausgabedatei ist normal
Ausgabedatei mit dem Suffix „.gop“. „Es werden keine Sequenzinformationen ausgegeben.
-combine_gops : bewirkt, dass der Encoder einfach einige GOP-Dateien zu einem einzigen MPEG kombiniert
Strom. Ein Sequenz-Header/-Ender wird eingefügt. In diesem Fall die Parameterdatei
muss nur den YUV_SIZE-Wert, eine Ausgabedatei und möglicherweise eine Eingabeliste enthalten
GOP-Dateien (siehe unten).
-Rahmen erster_Frame last_frame : bewirkt, dass der Encoder nur die Frames von codiert
first_frame bis last_frame, einschließlich. Die Parameterdatei ist die gleiche wie für Normal
Verwendung. Die Ausgabe wird in separaten Dateien, eine pro Frame, mit der Datei abgelegt
Namen sind die normale Ausgabedatei mit dem Suffix „.frame“. „Kein Republikaner
Header-Informationen werden ausgegeben. (Daher muss die Parameterdatei nicht enthalten
GOP_SIZE-Wert)
-combine_frames : bewirkt, dass der Encoder einfach einige Frames zu einem einzigen MPEG zusammenfasst
Strom. Sequenz- und GOP-Header werden entsprechend eingefügt. In diesem Fall ist die
Die Parameterdatei muss nur den YUV_SIZE-Wert, den GOP_SIZE-Wert und eine Ausgabe enthalten
Datei und möglicherweise eine Liste von Frame-Dateien (siehe unten).
-nett : bewirkt, dass das Programm alle Remote-Prozesse „gut“ ausführt. Dies ist nur relevant, wenn
Das Programm verwendet parallele Kodierung. (siehe „Mann nett.“)
-max_machines num_machines : bewirkt, dass das Programm nicht mehr als num_machines Maschinen verwendet
als Slaves zur Verwendung bei der parallelen Kodierung.
-snr : Gibt das Signal-Rausch-Verhältnis aus. Druckt jeweils SNR (YUV) und Spitzen-SNR (YUV).
rahmen. Zusammenfassend lässt sich sagen, dass nur Durchschnittswerte der Luminanz (Y) gedruckt werden. SNR ist definiert als
10*log(Varianz des Originals/Varianz des Fehlers). Das Spitzen-SNR ist definiert als
20*log(255/RMSE). Beachten Sie, dass der Encoder bei Bedarf etwas langsamer läuft
Drucken Sie die SNR aus.
-mse : Berechnet den mittleren quadratischen Fehler pro Block. Berechnet auch automatisch die Qualität
der Bilder, wenn festgelegt, daher ist es nicht erforderlich, -snr dann anzugeben.
-bit_rate_info rate_file : Druckt Bitrateninformationen in die Datei rate_file. Bitrate
Informationen sind Bits pro Frame und auch Bits pro I-Frame zu I-Frame.
-mv-Histogramm : Druckt ein Histogramm der Bewegungsvektoren als Teil der Statistik. Dort sind drei
Histogramme – eines für P-, Vorwärts-B- und Rückwärts-B-Vektoren. Jedes Histogramm ist ein
2-dimensionales Array, und es gibt einen Eintrag für jeden Vektor im Suchfenster.
PARAMETER FILE
Die Parameterdatei MUSS die folgenden Zeilen enthalten (außer bei Verwendung von -combine_gops
oder -combine_frames-Optionen):
MUSTER
AUSGABE
INPUT_DIR
Alle Eingabedateien müssen sich in diesem Verzeichnis befinden. Wenn Sie sich auf die beziehen möchten
aktuelles Verzeichnis, verwenden Sie '.' (Ein leerer INPUT_DIR-Wert würde sich auf das Stammverzeichnis beziehen
Verzeichnis). Wenn Eingabedateien über die Standardeingabe eingehen, verwenden Sie
'stdin'.
SPEISUNG
Auf diese Zeile muss eine Liste der Eingabedateien folgen (in der Anzeigereihenfolge).
und dann die Zeile
END_INPUT
Zwischen INPUT und END_INPUT gibt es drei Arten von Zeilen. Zuerst eine Zeile
kann einfach der Name einer Eingabedatei sein. Zweitens kann die Linie von der sein
unten stehende Formular
[xy]
single_star_expr kann ein einzelnes „*“ enthalten. Es wird durch alle ersetzt
Zahlen zwischen x und y einschließlich. So zum Beispiel die Zeile
Tennis*.ppm [12-15]
wird durch „tennis12.ppm“, „tennis13.ppm“, „tennis14.ppm“, „tennis15.ppm“ ersetzt.
Es erfolgt auch ein einheitliches Auffüllen mit Nullen. Zum Beispiel die Linie
Fußball.*.ppm [001-130]
wird ersetzt durch football.001.ppm, football.002.ppm, ..., football.009.ppm,
Fußball.010.ppm, ..., Fußball.130.ppm. Der dritte Linientyp ist:
[x-y+s]
Wobei die Zeile genau wie oben behandelt wird, außer dass wir s überspringen. Daher,
die Linie
Fußball.*.ppm [001-130+4]
wird ersetzt durch football.001.ppm, football.005.ppm, football.009.ppm,
football.013.ppm usw.
BASE_FILE_FORMAT
Alle Eingabedateien müssen in YUV, JPEG(v4), JMOVIE, PNM oder PPM konvertiert werden
Format. Diese Zeile gibt an, welches der drei Formate (eigentlich PPM ist ein
Teilmenge von PNM). Der Grund für eine separate PPM-Option ist:
Einfachheit. Wenn es sich bei Ihren Dateien um RAWBITS-ppm-Dateien handelt, verwenden Sie die PPM-Option
statt des PNM. Außerdem werden je nach System die Dateilesevorgänge viel länger dauern
schneller mit der PPM-Option (im Gegensatz zu PNM).
INPUT_CONVERT
Sie müssen angeben, wie eine Datei in das Basisdateiformat konvertiert werden soll. Im
Beim Konvertierungsbefehl wird jedes „*“ durch den Dateinamen (die aufgelisteten Elemente) ersetzt
zwischen INPUT und END_INPUT). Wenn keine Konvertierung erforderlich ist, würden Sie dies tun
Sag nur:
INPUT_CONVERT *
Wenn Sie eine Menge GIF-Dateien hätten, könnten Sie sagen:
INPUT_CONVERT giftoppm *
Wenn Sie mehrere separate aY-, aU- und aV-Dateien haben, könnten Sie sagen:
INPUT_CONVERT cat *.Y *.U *.V
Die Eingabekonvertierung ist bei Eingaben von stdin nicht zulässig.
GOP_SIZE
n ist ungefähr die Anzahl der Bilder in einer Gruppe von Bildern (ungefähr).
weil eine GOP mit einem I-Frame beginnen muss)
SLICES_PER_FRAME
n ist ungefähr die Anzahl der Slices pro Frame. Beachten Sie, mindestens ein MPEG
Der Spieler kann sich beschweren, wenn Slices nicht auf der linken Seite eines beginnen
Bild. Um sicherzustellen, dass dies nicht passiert, achten Sie auf die Anzahl der Zeilen
ist durch SLICES_PER_FRAME teilbar.
PIXEL
Verwenden Sie Halbpixel-Bewegungsvektoren oder nur Vollpixel-Bewegungsvektoren
REICHWEITE
Verwenden Sie einen Suchbereich von +/- n Pixeln
PSEARCH_ALG
Der Algorithmus muss einer von {EXHAUSTIVE, TWOLEVEL, SUBSAMPLE,
LOGARITHMISCH}. Gibt an, für welche Art von Suchverfahren verwendet werden soll
P-Rahmen. Erschöpfend ergibt die beste Komprimierung, logarithmisch jedoch
das schnellste. Sie wählen die gewünschte Kombination aus Geschwindigkeit und
Kompression. TWOLEVEL ist eine umfassende Vollpixelsuche, gefolgt von der Suche
durch eine lokale Halbpixelsuche um den besten Vollpixelvektor (den
Die PIXEL-Option wird für diesen Suchalgorithmus ignoriert.
BSEARCH_ALG
Der Algorithmus muss einer von {SIMPLE, CROSS2, EXHAUSTIVE} sein. Sagt was
Für B-Frames sollte ein bestimmtes Suchverfahren verwendet werden. Einfache Mittel
Finden Sie die besten Vorwärts- und Rückwärtsvektoren und interpolieren Sie dann. Kreuz2
Das bedeutet, diese beiden Vektoren zu finden und dann herauszufinden, welcher Rückwärtsvektor am besten geeignet ist
entspricht dem besten Vorwärtsvektor und umgekehrt. Erschöpfend macht ein
n-Quadrat-Suche und ist im Vergleich zu den anderen EXTREM langsam
(Cross2 ist etwa doppelt so langsam wie Simple).
IQSCALE
Verwenden Sie n als qscale für I-Frames
PQSCALE
Verwenden Sie n als qscale für P-Frames
BQSCALE
Verwenden Sie n als qscale für B-Frames
REFERENZRAHMEN
Wenn ORIGINAL angegeben ist, werden die Originalbilder verwendet
Berechnen von Bewegungsvektoren. Um genauer zu sein, verwenden Sie DECODED, in dem
Die dekodierten Bilder werden verwendet. Dadurch soll die Qualität gesteigert werden
Bild, aber die Kodierung dauert etwas länger.
Die folgenden Zeilen sind optional:
FORCE_I_ALIGN
Diese Option ist nur für die parallele Ausführung relevant (siehe
unten). Es zwingt jeden Prozessor, einen Block von N zu kodieren
Frames, wobei N ein Vielfaches der Musterlänge sein muss.
Da der erste Frame in jedem Muster ein I-Frame ist, ist dies
zwingt jeden von einem Prozessor codierten Block, mit einem I- zu beginnen.
Rahmen.
foo
ANMERKUNG
Wenn das BASE_FILE_FORMAT YUV ist, muss die Parameterdatei Folgendes enthalten:
YUV_SIZE X
wobei w = Breite, h = Höhe (in Pixel) des Bildes und
YUV_FORMAT .
Weitere Informationen finden Sie in der Datei doc/INPUT.FORMAT.
Wenn die Option -combine-gops verwendet wird, müssen nur die Werte YUV_SIZE und OUTPUT angegeben werden
in der Parameterdatei angegeben. Darüber hinaus kann die Parameterdatei die Eingabe-GOP angeben
Dateien auf die gleiche Weise wie normale Eingabedateien – außer dass INPUT_DIR nicht verwendet wird,
INPUT und END_INPUT verwenden GOP_INPUT_DIR, GOP_INPUT und GOP_END_INPUT. Wenn keine GOP eingegeben wird
Wenn Dateien angegeben sind, wird standardmäßig der Ausgabedateiname mit Suffix verwendet
".gop. " beginnend bei 0 als Eingabedateien.
Wenn die Option -combine-frames verwendet wird, dann nur die Werte YUV_SIZE, GOP_SIZE und OUTPUT
müssen in der Parameterdatei angegeben werden. Darüber hinaus kann die Parameterdatei angeben
Geben Sie Frame-Dateien auf die gleiche Weise wie normale Eingabedateien ein – mit dem Unterschied, dass Sie sie nicht verwenden
INPUT_DIR, INPUT und END_INPUT, verwenden Sie FRAME_INPUT_DIR, FRAME_INPUT und FRAME_END_INPUT.
Wenn keine Eingabe-Framedateien angegeben sind, wird standardmäßig der Name der Ausgabedatei verwendet
mit Suffix „.frame. " beginnend bei 0 als Eingabedateien.
Zwischen jeder Option und jedem Wert können beliebig viele Leerzeichen und Tabulatoren stehen. Zeilenanfang
mit '#' werden ignoriert. Alle anderen Zeilen außer denen zwischen INPUT und werden ignoriert
END_INPUT. Dadurch können Sie dieselbe Parameterdatei für den normalen Gebrauch und für verwenden
-combine_gops und -combine_frames.
Der Encoder unterscheidet zwischen Groß- und Kleinschreibung, sodass dies bis auf Dateinamen und Verzeichnisse bei allem der Fall sein sollte
in Großbuchstaben geschrieben sein.
Die Zeilen können in beliebiger Reihenfolge angezeigt werden, mit Ausnahme der folgenden Ausnahmen. INPUT muss erscheinen
vor END_INPUT (auch GOP_INPUT vor GOP_END_INPUT und FRAME_INPUT davor
FRAME_END_INPUT). Alle Zeilen zwischen INPUT und END_INPUT müssen die Frames in der Abspielreihenfolge sein.
Der Encoder ist für die Verarbeitung von bis zu 16 B-Frames zwischen Referenzframes beim Codieren vorbereitet
mit Eingabe von stdin. Um diesen Betrag zu erhöhen, ändern Sie die Konstante B_FRAME_RUN in
Frame.c und neu kompilieren.
PARALLEL OPERATION
Der Encoder kann auf mehreren Maschinen gleichzeitig ausgeführt werden. Fügen Sie dazu eine Zeile „PARALLEL“ ein
die Parameterdatei, gefolgt von einer Auflistung, eine Maschine pro Zeile, dann „END_PARALLEL“.
Jede der Zeilen sollte eine von zwei Formen haben. Wenn der Computer Zugriff auf die Datei hat
Server, dann sollte die Zeile lauten:
Die ausführbare Datei ist normalerweise ppmtompeg (ggf. müssen Sie den vollständigen Pfad angeben).
für unterschiedliche Architekturen gebaut). Wenn es sich bei der Maschine um eine Remote-Maschine handelt, dann die Zeile
sollte sein:
FERNBEDIENUNG
Bei der Beschreibung ausführbarer Dateien und Parameterdateien sollten im Allgemeinen vollständige Pfade verwendet werden. Das
ENTHÄLT die Parameterdatei, die als Argument für den ursprünglichen Aufruf von ppmtompeg angegeben wurde. Auch,
.rhosts-Dateien auf den entsprechenden Maschinen sollten die entsprechenden Informationen enthalten.
Der Encoder verwendet die ursprüngliche Maschine für die Master- und E/A-Serverprozesse und
verwendet die aufgelisteten Maschinen als Slaves, um die Berechnung durchzuführen.
Optionale Zeilen sind
RSH
Der Encoder verwendet den Remote-Shell-Befehl, um Prozesse auf anderen Maschinen zu starten.
Der Standardbefehl ist „rsh“. Wenn Ihr Computer einen anderen Befehl unterstützt,
Geben Sie es hier an.
PARALLEL_TEST_FRAMES
n ist die Anzahl der Frames, die zunächst auf jedem Prozessor codiert werden sollen
PARALLEL_TIME_CHUNKS
Anschließend wird jeder Slave-Prozessor aufgefordert, etwa t lang zu codieren
Sekunden. Kleinere Werte von Erhöhen Sie die Kommunikation, verbessern Sie jedoch den Lastausgleich.
Die Standardwerte für diese beiden Optionen sind n = 3 Frames und t = 30 Sekunden.
PARALLEL_PERFEKT
Wenn diese Zeile vorhanden ist, erfolgt die Planung unter der Annahme, dass Arbeit geleistet wird
Die Verteilung wird vollkommen gleichmäßig sein, was bedeutet, dass jede Maschine ungefähr gleich ist
Geschwindigkeit. Die Frames werden einfach gleichmäßig zwischen den Prozessoren aufgeteilt. Das
hat den Vorteil eines sehr geringen Planungsaufwands, ist aber offensichtlich falsch, wenn
Maschinen haben unterschiedliche Geschwindigkeiten oder wenn die Netzwerklast die Leistung ungleichmäßig macht.
VERSION
Dies ist Version 1.5. Sie enthält neue Funktionen und Fehlerbehebungen aus Version 1.3.
Verwenden Sie ppmtompeg online über die Dienste von onworks.net