AA_123rf-39592413_JanisSmits-123RF.jpg

© Janis Smits, 123RF

JPEG-Bilder mit Lepton komprimieren

Da geht noch was!

Das Standard-Bildformat JPEG gilt seit Jahren als brauchbarer Kompromiss zwischen Qualität und Quantität. Große Bildbestände geraten dennoch schnell aus den Fugen. Lepton hilft dabei, Platz zu sparen.

Obwohl es längst ausgereiftere Bildformate gibt, wie beispielsweise Webp [1], gehört JPEG nach wie vor mit Abstand zu den verbreitesten. Egal, ob Smartphone, Kompaktkamera oder Profi-Equipment: Zumindest optional erzeugen sie alle Bilder dieses Formats. Entsprechend groß fällt die Flut infrage kommender Bilder aus, speziell auf den Servern von Filehostern beanspruchen sie beträchtlichen Speicherplatz.

Dieses Dilemma führte beim Cloud-Anbieter Dropbox [2] dazu, dass sich die Entwickler darüber Gedanken machten, wie sie hier effizient Platz sparen könnten. Heraus kam das neue Bildformat Lepton, das den Platzbedarf von JPEG-Bilder um bis zu 25 Prozent verkleinert. Es arbeitet dabei verlustfrei, das Bild bleibt nach dem Rekonvertieren bitgenau dasselbe (Abbildung 1). Dropbox hat nach eigenen Angaben das neue Format bereits auf 16 Milliarden Bilder angewandt und damit mehrere Petabyte Speicherplatz gespart. Die Dateien wandelt die Cloud transparent zurück ins Ursprungsformat, sobald jemand sie aufruft.

Abbildung 1: Lepton nimmt beim Konvertieren und Zurückverwandeln keinerlei Änderungen am Bild vor: Es bleibt bitgenau gleich.

Anders als JPEG sieht Lepton nicht vor, das sichtbare Bild zu verkleinern, was bei JPEG häufig zu den bekannten Artefakten führt. Es ist vielmehr darauf ausgelegt, die für die Bildinformation benötigten Daten selbst durch den sogenannten Middle-out-Algorithmus zu verkleinern, eine arithmetische Codierung, die beispielsweise auch beim Videoformat VP8 zum Einsatz kommt. Eine detaillierte technische Erläuterung dazu liefert ein Blogpost von Dropbox [3].

Lepton installieren

Dropbox hat Lepton unter der Apache-2.0-Lizenz veröffentlicht, der Quellcode steht auf Github [4] zum Download bereit. Es steht also jedermann frei, das Programm nach Belieben zu verwenden. Für OpenSuse finden sich im Build Service [5] konfektionierte Pakete zur Installation, Nutzer anderer Distributionen kompilieren das Tool aus den Git-Quellen (Listing 1). Sie finden den Quellcode und die RPM-Dateien für OpenSuse auch auf der Heft-DVD im Verzeichnis LU/lepton/.

Listing 1

$ git clone https://github.com/dropbox/lepton
$ cd lepton
$ mkdir -p build
$ cd build
$ cmake ..
$ make -j8
$ sudo cp lepton /usr/bin/

Sie benötigen die Tools Git und Cmake. Unter Debian und dessen Derivaten laden Sie sie gegebenenfalls mit dem Befehl sudo apt-get install git cmake nach. Leptons README [6] schlägt noch einige andere Möglichkeiten vor, die beschriebene dürfte aber auf den meisten Systemen am problemlosesten funktionieren.

Im Einsatz

Die Syntax von Lepton gestaltet sich denkbar einfach. So konvertiert der Aufruf lepton bild.jpg das angegebene Bild ins Lepton-Format, behält den ursprünglichen Dateinamen bei und und tauscht lediglich die Endung .jpg gegen .lep aus. Um aus einer Lepton-Datei das originale JPEG zu extrahieren, genügt das Kommando lepton bild.lep (Abbildung 2). Das Tool orientiert sich am Dateityp, um das Bild in die jeweils andere Richtung umzuwandeln. Die Originaldatei bleibt dabei erhalten.

Abbildung 2: Um ein Bild umzuwandeln, genügt es, dessen Dateinamen anzugeben. Zusätzliche Schalter bietet Lepton nicht.

Existiert die Ausgabedatei bereits, überschreibt Lepton sie nicht, sondern legt eine neue an, die es mit einem Unterstrich (_) am Ende des Dateinamens versieht. Im Test zeigte sich, dass die Software Bilder nur bis zu einer Maximalgröße von etwa 17 MByte verarbeitet, danach bricht der Vorgang mit der Fehlermeldung OOM SHORT_READ ab.

Da JPEGs dieser Größe in der Praxis eher selten vorkommen, spielt das für den Normalanwender aber kaum eine Rolle. Generell arbeitet die Software im Multithreading-Betrieb: Sofern vorhanden, verwendet sie zum Konvertieren mehrere CPU-Kerne. Um das zu verhindern, ergänzen Sie den Befehl um den Schalter -singlethread, was den Vorgang auf den meisten Systemen erheblich verlangsamt, aber mehr Ressourcen frei lässt.

Um den Namen der Ausgabedatei zu variieren, ergänzen Sie den Aufruf entsprechend, beispielsweise lepton bild.lep bildkopie.jpg und umgekehrt. Lepton akzeptiert zum Verarbeiten ausschließlich Bilder im JPEG-Format. Die identifiziert es über deren Dateityp – welche Endung der Dateinamen aufweist, spielt dabei keine Rolle.

Allerdings arbeitet Lepton nicht nur als normales Konvertierungstool, sondern erlaubt auch den Betrieb eines TCP-Servers. Sie starten ihn mit dem Aufruf lepton -listen=2020. Er arbeitet quasi lediglich als Proxy-Server, der Daten entgegennimmt und – entsprechend verarbeitet – weiterleitet. Im Beispiel lauscht der Dienst auf Port 2020 nach eingehenden Verbindungsanfragen (Abbildung 3).

Abbildung 3: Optional arbeitet Lepton auch im Server-Modus und nimmt Bilder via TCP entgegen.

Mit dem Aufruf aus der ersten Zeile von Listing 2 schicken Sie JPEG-Bilder an den Server; ähnlich funktioniert es auch in die andere Richtung: Das Kommando aus der zweiten Zeile rekonvertiert die entsprechende Datei. Quelle und Ziel müssen sich in diesem Szenario auf dem gleichen Rechner befinden.

Listing 2

$ cat bild.jpg | netcat localhost 2020 > /ziel/bild.lep
$ netcat localhost 2020 < /ziel/bild.lep > bild.jpg

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Neues auf den Heft-DVDs
    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial Ihres Rechners. Mit der Heft-DVD erhalten Sie nicht nur topaktuelle Distributionen, sondern auch die passenden Programme zu den Artikeln.
  • Webp vielleicht doch in Firefox

    Mozilla überlegt derzeit, ob man das maßgeblich von Google propagierte Bildformat Webp nicht doch noch in den Browser integriert.
  • Google kreiert Bildformat WebP fürs Web

    Um die Surfgeschwindigkeit zu erhöhen, hat sich der Suchmaschinenkonzern den Jpeg-Konkurrenten "Web-P" ausgedacht.
  • JPEG-Bilder automatisch umbenennen und verlustlos bearbeiten
    Digitalkameras vergeben weder sinnvolle Dateinamen, noch drehen sie Bilder automatisch. Eine Handvoll Linux-Programme schafft Abhilfe: Sie geben Fotodateien sinnvolle Namen und manipulieren JPEGs verlustlos. So schaffen Sie Ordnung in der Fotosammlung und schonen beim Betrachten Ihr Genick.
  • Standardsalat
    Wissen Sie Bescheid, wenn es um Bitmap-Dateien, JPEG-Bilder und Aufnahmen im RAW-Format geht? EasyLinux erklärt die wichtigsten Begriffe und hilft Ihnen, sich im Formatedschungel zurechtzufinden.
Kommentare

Infos zur Publikation

LU 11/2017: Server für Daheim

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 3 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...