Home / LinuxUser / 2007 / 04 / Der richtige Dreh

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Der richtige Dreh

Musik-CDs ins freie OGG-Format umwandeln

01.04.2007 Wer seine Musiksammlung von CD auf den PC überspielen möchte braucht Zeit und einen guten Encoder. LinuxUser hat sich die Alternativen zu den Standardwerkzeugen angeschaut und verrät, an welchen Reglern Sie drehen müssen.

MP3-Dateien erstellt man unter Linux mit lame, OGG-Vorbis-Dateien mit oggenc – theoretisch. In der Praxis führt bei MP3-Encodern kein Weg an Lame vorbei, für OGG-Fans gibt es aber zwei interessante Alternativen zum Standardtool:

  • Der Aotuv-Fork (Aoyumi's Tuned Vorbis) [1] optimiert OGG-Dateien mit kleinen Bitraten auf Klangqualität. Bei Bitraten unter 128 KBit/s klingen OGG-Vorbis-Dateien in der Regel schlechter als vergleichbare MP3s. Die Oggenc-Version von Aoyumi behebt dieses Manko. Seit Version 1.1.1 benutzt libvorbis einige Patches von Aoyumi, die Änderungen der Versionen 4.51 und Beta5 (auf der Heft-CD) sind aber noch nicht eingepflegt.
  • Der Lancer-Fork von Blacksword [2] ist auf Geschwindigkeit getrimmt. Dazu stellt Blacksword verschiedene Windows-Binaries bereit, die Optimierungen für einzelne Prozessorfamilien enthalten. Obwohl Blacksword auf seiner Homepage einen Patch mit den Sourcen zum Download bereitstellt, gibt es von Lancer noch keine Linux-Version. Das Windows-Programm lässt sich aber über Wine auch unter Linux nutzen.

Optimierungen

Generell gibt es zwei Möglichkeiten, ein Programm schneller zu machen: Der Entwickler stimmt entweder den Code auf einen bestimmten Prozessor oder eine Aufgabe optimal ab, oder er übergibt beim Übersetzen dem C-Compiler CPU-spezifische Optionen. In beiden Fällen arbeitet das fertige Programm dann nur noch auf dem passenden Prozessor. Für bestmögliche Ergebnisse müssten Linux-Distributoren folglich nicht nur separate Versionen für 32- und 64-Bit-Rechner zur Verfügung stellen, sondern auch für Athlon- und Duron-Rechner, für Pentium-M- und Pentium-4-Systeme und so weiter.

Den Code zu optimieren bringt jedoch deutlich mehr, als beim Kompilieren spezifische Parameter zu übergeben. Die Distributoren verzichten deshalb – aus verständlichen Gründen – auf Tuning dieser Art. Da die meiste Linux-Software im Quellcode vorliegt, steht es jedermann frei, selbst zu feilen und Parameter zu ändern (siehe Kasten "Compiler tunen").

Compiler tunen

Moderne Prozessoren bringen spezielle Befehlssatzerweiterungen mit, um bestimmte Rechenaufgaben nahezu parallel ablaufen. Zu den bekanntesten Vertretern der Gattung zählen "3DNow!" von AMD und "SSE" (Streaming SIMD Extensions) von Intel. Da nicht jede CPU diese Befehlssätze unterstützt, muss man beim configure-Aufruf dem Compiler explizit mitteilen, welche Erweiterungen er beim Übersetzen des Programms nutzen soll. Inwieweit das Programm dann von dieser Optimierung tatsächlich Gebrauch macht, hängt allerdings sehr stark vom Quellcode ab.

Auf der Heft-CD finden Sie im Verzeichnis LinuxUser/oggmp3/ogg die Datei ogg-suite.tar.gz. Sie enthält die aktuell stabile Version von libogg, libvorbis und den vorbis-tools. Im Tarball findet sich zudem das Skript compile-vorbis.sh: Es übersetzt und installiert in einem Aufruf alle drei Programmteile. Um die Ogg-Suite auf Ihren Prozessor zu optimieren, müssen Sie in diesem Skript in Zeile 2 die Parameter für CFLAGS= anpassen.

Die passenden Optionen verrät Ihnen das Script gcccpuopt[3], das Sie ebenfalls im Tarball finden. Alternativ rufen Sie den Befehl cat /proc/cpuinfo auf. Zeigt er unter flags zum Beispiel sse2 an, unterstützt Ihr Prozessor die SSE2-Erweiterung. Details zur Einteilung von Intel-Prozessoren nach Familie und Modell finden Sie auch in der Wikipedia [4].

Das Skript benutzt für die Installation sudo und funktioniert somit unter Suse und Ubuntu ohne weitere Änderungen. Benutzer anderer Distributionen ändern über visudo die Sudoers-Datei: Über die beiden Zeilen

Defaults targetpw
ALL ALL=(ALL) ALL

kann jeder Benutzer über die Eingabe des Root-Passwortes administrative Aufgaben vornehmen.

In den Tests auf einem Pentium-M-System brachte die mit den Parametern CFLAGS=""-march=pentium-m -mfpmath=sse2 -O3" selbst kompilierte Version von libogg, libvorbis und der vorbis-tools allerdings keine nennenswerten Geschwindigkeitsvorteile. Auch ein Test, die gesamte Suite mit dem Intel-C-Compiler icc zu übersetzen sorgte eher für Ernüchterung: Für die Referenzdatei benötigte das mit dem Intel-Compiler übersetzte oggenc auf einem 1,4 GHz schnellen Pentium M rund 30 Sekunden. Die mit GCC 4.1 übersetzte Standardversion von Suse benötigte für dieselbe Aufgabe nur 20 Sekunden.

Schnell, schneller

Wer vor hat, eine größere Menge an CDs ins MP3- oder OGG-Format umzuwandeln, sollte sich nach einem Rechner mit 64-Bit-Prozessor umschauen. Egal welche Version von oggenc oder lame Sie benutzen: Mit einem 64-Bit-Betriebssystem dauert das Encoding rund halb so lange, wie auf einem 32-Bit-System (Abbildung 1). So braucht oggenc auf einem 1,6 GHz schnellen 32-Bit-Rechner mit Core-Duo-Prozessor 19 Sekunden, um "Goldeneye" aus einer WAV-Datei nach OGG-Vorbis umzuwandeln. Die gleiche Aufgabe erledigt der Encoder auf einem 2,2 GHz schnellen AMD-Athlon mit der 64-Bit-Version von Open Suse 10.2 in nur 10,5 Sekunden.

Details zu den Tests entnehmen Sie dem Kasten "So haben wir getestet". Die Test zeigen zugleich, welches Potential durch den nicht optimierten Code verschenkt wird. So arbeitet oggenc auf einer Dualcore-CPU von Intel nicht schneller als auf einem gleich getakteten Pentium-M-Prozessor. Die zweite CPU schläft quasi während des Encodings. Allein die Lancer-Version nutzt beide Kerne. Sie arbeitet auf einem Core Duo doppelt so schnell, als auf einem Single-Core-Prozessor.

Abbildung 1: Drei OGG-Vorbis-Encoder im Vergleich: Der Lancer-Fork arbeitet deutlich schneller als die auf hohe Qualität getrimmte Aotuv-Version. Die Standard-Version von oggenc ist teilweise um den Faktor 4 langsamer.

Sehr gut schneidet Linux im direkten Vergleich mit Windows ab (Abbildung 2). Sämtliche Encoder arbeiten unter Linux deutlich schneller als mit Windows XP.

Abbildung 2: 4:0 für Linux: Sowohl lame als auch alle drei oggenc-Varianten arbeitet unter Windows deutlich langsamer.

So haben wir getestet

Als Testsong benutzten wir Track 9 ("Goldeneye") aus dem Album "Wildest Dreams" von Tina Turner. Die Größe der mit cdparanoia gerippten WAV-Datei beträgt 34,8 MByte (36632444 Byte). Als Betriebssystem kam Open Suse 10.2 zum Einsatz (auf 64-Bit-Rechnern in der 64-Bit-Version).

Oggenc (Standard) entspricht jeweils der von Suse kompilierten oggenc-Version. Die Aotuv-Version kompilierten wir selbst, ohne spezielle GCC-Parameter. Von lame verwendeten wir Version 3.97. Da es von Lancer keine Linux-Version gibt, setzten wir den Encoder mit Wine zusammen ein.

Die Vergleichstest zwischen Windows und Linux fanden auf einem IBM-Thinkpad mit einem 1,6 GHz schnellen Intel-Core-Duo-Prozessor statt (T2300). Als Betriebssystem benutzten wir Windows XP mit Service Pack 2 und Open Suse 10.2. Für sämtliche Tests starteten wir oggenc und lame von der Kommandozeile aus ohne zusätzliche Parameter.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

881 Hits
Wertung: 102 Punkte (9 Stimmen)

Schlecht Gut

Infos zum Autor

Marcel Hilzinger

Marcel Hilzinger

Marcel Hilzinger arbeitet als Redakteur für die Zeitschriften LinuxUser und EasyLinux. Am liebsten schreibt er Artikel zu netten Gadgets oder Multimedia-Software. In seiner Freizeit spielt er gerne Kicker.

Zum Blog von Marcel Hilzinger →


Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...