Fallstudie: LAME/fpMP3
LAME ist ein Open-Source-Projekt rund um MP3. Der LAME-Encoder erfreut sich großer Beliebtheit, da
er zum einen frei verfügbar ist und zum anderen qualitativ hochwertige MP3‑Dateien erzeugen kann.
Für die Fallstudie wurde der Source Code von LAME in der Version 3.98.2 untersucht.
Ziele:
Wegen massiven Datenabhängigkeiten sind die Algorithmen des LAME-Encoders sehr schlecht parallelisierbar.
Diese Eigenschaft macht den Encoder zum idealen Testkandidaten für den Einsatz von Fiber Pool, da
das Framework speziell für die parallelle Ausführung voneinander abhängiger Tasks entwickelt wurde.
In der Fallstudie wurde untersucht, ob durch den Einsatz von Fiber Pool und asynchroner Programmierung
die Performance der Algorithmen auf Mehrkernprozessoren gesteigert werden kann.
Einschränkungen:
Neben MP3 kann der LAME-Encoder auch MPEG-2 oder MPEG-2.5 erzeugen und verarbeitet sowohl Stereo-
als auch Mono-Dateien in unterschiedlichen Frequenzen. Über eine Vielzahl an Kommandozeilenparametern
kann die Enkodierqualität beeinflusst werden.
Um die Komplexität zu reduzieren, wurden im Fallstudienprojekt "fpMP3" jedoch nur Teile davon
implementiert, und zwar:
- Es können nur MP3-Dateien erzeugt werden (MPEG-1 Layer 3).
- Als Eingabe werden nur WAV-Dateien in folgendem Format unterstützt: Stereo, 44,1 kHz, 16-Bit.
- Es werden MP3-Dateien in folgendem Format erzeugt: (Joint-)Stereo, 44,1 kHz.
- Nur die wichtigsten Kommandozeilenparameter wurden übernommen.
Download des Source Codes:
Der Source Code ist im Fiber Pool API enthalten und kann hier
heruntergeladen werden.
Anmerkung: Als Standardeinstellung werden SSE-/SSE2- und SSE4-Befehle unterstützt. Sie können
in der Headerdatei "stdafx.h" deaktiviert werden.
Für die Verwendung des Source Codes gelten die Lizenzbedingungen der GPL, Version 3.
|