amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

[Login] [Registrieren] [Passwort vergessen?]

< Nächste MeldungVorige Meldung >
27.Jan.2001
Fun Time World


SoftCinema und wie man an neue Codecs kommt
Sebastian Brylka von Fun Time World hat eine Zusammenfassung eines polnischen Artikels (siehe Titellink) geschrieben, welche wir hier mit seinem Einverständnis wiedergeben:

«Jacek Cybularczyk, Autor von SoftCinema veröffentlichte auf der Seite Amiga.com.pl einen Artikel über die Herkunft neuer Codecs für den Video-Player. Der Artikel ist in polnischer Sprache, deshalb folgen hier nur die wichtigsten Einzelheiten.

Das Programm SoftCinema kann inzwischen die beiden Formate OpenDivX und bald auch 3ivX lesen. Was noch fehlt, ist z.B. MPEG-4 Unterstützung und einige andere nicht ganz legale Codecs. Hier hat man das Problem, dass die Sourcen der Formate nicht frei erhältlich sind. Man hat aber einige Möglichkeiten, um auch das Problem zu lösen. Für den Macintosh existieren zwar Codecs für MPEG-4 und DivX, doch aufgrund von fehlenden Dokumentationen der Macintosh Resourcen und Extensions wäre das alles etwas schwierig. Ein PowerMac zur Disassemblierung fehlt den Autoren offensichtlich auch.

Bei der zweiten Möglichkeit schreibt der Autor, dass viele dies für idiotisch halten werden, aber die Sache funktioniert. Hier nimmt man sich die Windows dll's zu Hilfe. Vor ca. zwei Monate begannen die Arbeiten. Die dabei verwendete Technik wird als "Binary Translation" bezeichnet. Als erstes wird der x86 Code für den C Preprozessor in Form einer Makro-Instruktion vorbereitet. Viel Arbeit nimmt dabei das Programm TX86 ab, das die dll's (vergleichbar mit Amiga Libraries) einlesen und in C Code umwandeln kann. Das funktioniert nicht ganz automatisch, so dass man hier noch vieles selbst korrigieren muss. Der so erzeugte Code ist kompiliert und lässt sich in einer Windows emulierten Umgebung genannt WIN32ENV ausführen. Emuliert wird dabei ein Teil von Win32 und einige wichtige Bibliotheken. Das alles funktioniert auf einem PowerPC nur nativ. Es laufen zwar alle möglichen Codecs, aber die Geschwindigkeit liegt bei schlappen 1 FPS.

Damit die Sache etwas schneller wird, muss der gesamte Code, der ca. 17000 Zeilen mit Makro-Instruktionen enthält, optimiert werden. Ohne Optimierung reichten 72 MB für eine Kompilierung leider nicht aus, deshalb wurden die restlichen Arbeiten unter APUS mit einer 200 MB SWAP Datei durchgeführt. Bei einer optimierten Kompilierung wurde eine 1 GB SWAP Datei benötigt. Der Vorgang dauerte ca. 13 Stunden. Doch die Mühe hat sich gelohnt, alles läuft inzwischen viel schneller. Als nächstes werden die dll's, um noch bessere Geschwindigkeiten zu erreichen, in Assembler übersetzt. Das ist nach einer Analyse des C-Codes, und dem was der GCC generiert hat, möglich. Später wird alles noch einmal weiter optimiert. Nach einem durchgeführtem Profiling werden oft gebrauchte Programmteile entweder neu geschrieben oder noch stärker optimiert. (ps)

[Meldung: 27. Jan. 2001, 14:18] [Kommentare: 11 - 28. Jan. 2001, 16:00]
[Per E-Mail versenden]  [Druck-Version]  [ASCII-Version]
< Nächste MeldungVorige Meldung >

.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.