Videocodierung mit der PS3

Die PS3 ist ein sehr potentes Stück Hardware. Vor allem der eingebaute Cell-Prozessor verfügt im Bereich der Multimedia-Verarbeitung über eine hohe Rechenleistung, die leider ebenso wie der eingebaute NVidia-Grafikchip auf selbst installierten Linux-Betriebssystemen brachliegt. Diese arbeiten nämlich nur auf dem PowerPC-Kern des IBM-Prozessors, da dessen Architektur altbekannt ist; die volle Rechenleistung nutzt nur das PS3-eigene Betriebssystem oder entsprechend angepasste Software.

Nun hat die Firma Fixstars, die mit ihrer Yellow-Dog-Linux-Distribution als erstes auf der PS3 vertreten waren, eine interessante Lösung vorgestellt, um den Cell-Prozessor für die Videocodierung zu nutzen. Grundsätzlich bietet die Firma eigene Hardware mit Cell-Prozessoren an und hat einen darauf laufenden H.264-Encoder entwickelt (CodecSys CE-10). Um diesen auch auf der PS3 zu nutzen, muss der Nutzer einen angepassten Bootloader installieren, der bei Start der Playstation ein Mini-Linux bootet, welches wiederum per LAN-Kabel auf Rechenaufträge wartet. Diese werden über ein Windows-Programm erteilt und Fixstars verspricht mit dieser ungewöhnlichen Lösung Full-HD-Encoding in Echtzeit (siehe dieses Werbevideo)!

Da es eine zeitlich limitierte Demo gibt, habe ich diese als neugieriger Mensch einmal ausprobiert. Dazu musste ich meinen petitboot-Loader überschreiben; Fixstars gibt jedoch in den FAQ an, dass nach einer Neuinstallation des alten Bootloaders das installierte Linux wieder gebootet werden kann. Fortan startet die Playstation immer in das Mini-Linux; mittels der Windows-Software kann man sie jedoch anweisen, das PS3-Betriebssystem zu starten.

Läuft das Mini-Linux auf der Playstation und ist diese per LAN mit einem Rechner verbunden, kann man auf diesem die Codier-Software starten. Diese ermöglicht ein paar wenige Parameter des Encoders zu verändern und mehrere Codierjobs in eine Queue zu stecken. Codiert werden kann prinzipiell alles, wofür Windows einen DirectShow-Filter besitzt, und da kommt schon die erste Einschränkung zum Tragen. Der Windows-Rechner muss nämlich die Quelle mindestens so schnell decodieren können, wie die PS3 sie encodiert, sonst sinkt die Geschwindigkeit des Gesamtsystems. Und da der Datenstrom dabei unkomprimiert zur Playstation gesendet wird, ist auch zwingend Gigabit-LAN erforderlich, will man das System richtig ausreizen.

Auf meinem Rechner (Intel DualCore 2GHz mit älterer NVidia-Grafik), der während des Codierprozesses am Anschlag lief, wurde ein Testvideo (1080p24) schließlich mit knappen 20 fps codiert, was schon eine deutliche Steigerung gegenüber den 3 bis 5 fps der x264-Codierung auf meiner Intel-CPU darstellt. Mit einem potenteren Rechner wäre da vermutlich noch mehr drin.

Zu der Qualität des produzierten Videos kann ich nicht viel sagen. Auf meiner WDTV sah die mit 10Mbit/s codierte Kopie nicht anders aus als das Original; laut diesem Forum ist der CE-10-Codec jedoch nicht sehr effizient in Bezug auf die genutzte Bandbreite und verwendet so gut wie keines der fortgeschrittenen H.264-Features. Dies hat aber den netten Seiteneffekt, dass plötzlich auch die Softwareplayer auf meinem Rechner das Video flüssig abspielen können. Und da laut Fixtstars das Produkt vor allem für die Blu-Ray-Codierung (kein Platzproblem) und das Streamen (meist schwachbrüstige Clients) gedacht ist, können die potentiellen Kunden wohl mit dieser Einschränkung leben.

Wer also eine PS3 sein eigen nennt und bereit ist, 200$ für einen Encoder auszugeben, der bekommt ein beeindruckendes Performancepaket, an das auch NVidias Badaboom nicht heranreicht. Die Frage ist nur, ob professionelle Kunden nicht lieber auf Cell-Speziallösungen für die Videoverarbeitung setzen, als sich einen 200W-Boliden wie die Playstation zu kaufen. So bleibt ein interessantes Hardware-Experiment übrig und die Hoffnung, dass unter Linux bald mehr Software die Rechenkraft der PS3 ausnutzt.