Voodooalert+x264 Logo
US+UK Flagge DE+AT Flagge
Sprache wechseln:
 

x264 Benchmark Kompilier- & Installationsanleitung für MacOS X auf PowerPC

MacOS X Logo

Systemvoraussetzungen

Um den x264 Benchmark auf MacOS X für PowerPC Prozessoren übersetzen und installieren zu können, muß zuerst einmal eine gewisse Basissoftware vorhanden sein. Dazu gehören hauptsächlich:


Das grundsätzlichste Tool ist sicher XCode, welches man direkt von Apple gratis beziehen kann. XCode liefert uns eine komplette Build Toolchain inklusive C/C++ Compiler, GNU autoconf und GNU make. Die restlichen Tools sollten eigentlich schon vorhanden sein.

Der Einfachheit halber, und um später einigen Bugs vorzubeugen, sollten alle Schritte ab jetzt mit root / Superuser Rechten durchgeführt werden!

Die Benchmark-Software selbst

Nun müssen libav und x264 gebaut werden, wobei potentiell einige Dinge zu beachten sind, die von der etwas alten XCode Build Toolchain auf MacOS X für PowerPC herrühren. Zuerst laden wir libav und x264 einmal herunter, für den Fall eines G4 ist bitte zu beachten, daß die speziellen Versionen und der gas-preprocessor herunterzuladen sind. Der GAS Preprocessor muß den in libav/x264 enthaltenen Inline Assemblercode modifizieren, sodaß ihn der Apple XCode Assembler versteht, und korrekt übersetzen kann. Dazu genügt es, das im Archiv enthaltene *.pl Script nach /usr/bin/ zu entpacken:

Der Einfachheit halber nehmen wir hier an, daß die Dateien nun in /home/user/x264src/ liegen. Auf der Konsole wechseln wir also in dieses Verzeichnis, und beginnen mit libav. Entpackt wird das Archiv mit tar -xzvf <filename.tgz>, wonach es einen libav Ordner gibt. In diesen Ordner wechsle man nun, um libav ordentlich zu konfigurieren und zu installieren. Gegebenenfalls muß man die export Kommandos entsprechend anpassen, je nachdem ob man einen G3, G4, einen G4 mit PowerPC 745x Typ oder G5 besitzt. Beim G4 ist darauf acht zu geben, daß er auch wirklich die Altivec SIMD Extension unterstüzt, ansonsten ist das -maltivec Flag einfach wegzulassen:

Es ist wichtig, daß man nach Setzen dieser Umgebungsvariablen das Terminal nicht mehr schließt. Sollte man dies tun, muß man die Variablen neu setzen. Es läßt sich aber leicht prüfen, ob selbige gesetzt sind:

Nun schreiten wir zum tatsächlichen Übersetzen des Quellcodes fort, --disable-asm ist nur beim G5 nötig, weil die Assemblercodepfade für PowerPC G5 Altivec in libav defekt sind. Dies stellt jedoch kein größeres Leistungsproblem dar, da nur der Decoder betroffen ist. Für den G4 brauchen wir hier den gas-preprocessor, der in einen Pfad kopiert werden muß, den das Buildsystem auch finden kann, z.B. /usr/bin/, was nach dem vorletzten Schritt bereits getan sein sollte:

Sollte der ./configure Schritt eine Warnung wegen fehlenden GNU Assemblers ausgegeben haben, so ist sicherzustellen, daß man auch den GAS Preprocessor installiert hat! Selbst wenn man keinen G4 besitzen sollte, müßte man sicherstellen, daß der GAS Preprocessor installiert ist. Wenn man das nachholen muß, ist ./configure danach erneut auszuführen, die Warnung sollte dann verschwunden sein. Nun ist libav installiert, wir können also daran gehen, x264 selbst zu linken und zu bauen, man entpacke also den x264 Quellcode mit tar -xjvf last_x264.tar.bz2 und wechsle danach in das x264 Verzeichnis. Nun ähnliches wie auch zuvor, allerdings mit erheblicher Vorsicht, hier kann es sein, daß man manuelle Anpassungen vorzunehmen hat:

Bei einigen XCode Versionen auf MacOS X, und ziemlich sicher bei der letzten relativ alten Version für PowerPC wird das mit XCode ausgelieferte GNU Autoconf einen Fehler beim Erzeugen des Makefiles machen. Dieser Fehler betrifft definitiv die G5 und ggf. G4 Prozessoren vom 7450 Typ, und potentiell auch die G3 Prozessoren (ungetestet). Hier muß man das frisch erzeugte config.mak File editieren, und nach -mcpu, sowie -mtune Flags Ausschau halten, die widersprüchlich aussehen. Wenn man z.B. einen PowerMac G5 sein eigen nennt, dann sollten alle derartigen Flags mit =G5 enden, beim G4 der 7450 Serie =7450. Hier schleicht sich manches Mal ein falsches =G4 ein, was dann zu instabilem Code führen kann. Wenn x264 später trotz dieser Änderung mit Bus Error oder Segmentation Fault abstürzt, sollte man eventuell noch alle -O3 und im speziellen -ffast-math Optionen nach dem configure-Schritt einfach aus der config.mak entfernen, und dann erst fortfahren:

Nun kann man die Funktion durch x264 --version prüfen. Funktioniert das, und zeigt das Binary an, daß es gegen libswscale und libavformat linked ist, dann hat alles sauber funktioniert. Wir können nun also das Benchmarkskript herunterladen, mit dem der Test tatsächlich ausgeführt wird, sowie das Inputvideo, welches in den selben Ordner wie das Skript zu legen wäre:

Diese Datei launchbenchmark.sh kopieren wir nun in einen für den Benchmark gedachten Unterordner, den wir ggf. erst anlegen müssen: mkdir -p /home/user/x264benchmark. In diesem Ordner sollte auch das Inputvideo elephantsdream_source.264 landen.
Nun kann man den Benchmark im Prinzip ausführen, hierzu gebe man einfach folgendes ein:

Das Ergebnis ist nach Ablauf beider Transcodingpasses einfach auf der Konsole abzulesen. Der korrekte Wert ist jener, der als "Real" angegeben wird!

[Zurück zur x264 Benchmark Ergebnisliste]

[Anleitung kommentieren]