11 Stimmen

Schnelle JPEG-Kodierungsbibliothek

Kennt jemand eine freie Open-Source-Jpeg-Kodierungsbibliothek für C/C++? Derzeit verwende ich ImageMagick, das einfach zu bedienen ist, aber es ist ziemlich langsam. Ich habe es mit einer Evaluierung von Intel Performance Primitives verglichen und die Geschwindigkeit von IPP ist der Wahnsinn. Leider kostet es auch 200$, und ich brauche 99% des IPP nicht). Außerdem funktioniert es nur auf Intel schnell.

Hat jemand einen Test gemacht? Gibt es andere gute Bibliotheken, die schneller sind als ImageMagick?

Edit: Ich habe die 8-Bit-Version von ImageMagick verwendet, die schneller sein soll.

7voto

DRC Punkte 71

Schauen Sie sich libjpeg/SIMD an, im Stamm von TigerVNC ( http://www.tigervnc.com ). Wir haben optimierte 64-Bit- und 32-Bit-Versionen, die beim Komprimieren/Dekomprimieren von Basis-JPEG fast so schnell sind wie IPP:

http://www.mail-archive.com/tigervnc-devel@lists.sourceforge.net/msg00403.html

3voto

Kaz Dragon Punkte 6406

Ich glaube, dass GIL, eine Bibliothek in Boost, eine Möglichkeit enthält, Bilddaten im JPEG-Format zu speichern. Ich weiß allerdings nicht, wie schnell das geht. Angesichts der Tatsache, dass die Bibliothek von Adobe gesponsert wird, würde ich erwarten, dass sie ziemlich gut gemacht ist.

3voto

Tobiesque Punkte 742

AMD bietet Framewave eine quelloffene Alternative zu IPP.

2voto

Adam Goode Punkte 7274

ImageMagick verwendet libjpeg (auch bekannt als unabhängige JPEG-Gruppenbibliothek). Wenn Sie die Geschwindigkeit von libjpeg verbessern, wird sich die JPEG-Geschwindigkeit von ImageMagick erhöhen.

Es gibt mehrere Möglichkeiten:

  1. Kompilieren Sie eine optimierte libjpeg. Wenn Sie einen modernen gcc und mindestens einen Pentium 4 haben, können Sie versuchen -O3 -msse2 und sehen Sie, ob es Ihre Geschwindigkeit erhöhen kann. Dann können Sie LD_LIBRARY_PATH oder eine andere Möglichkeit, Ihre libjpeg anstelle der System libjpeg zu laden.
  2. Probieren Sie libjpeg-mmx aus. Sie wird nicht gewartet und soll fehlerhaft und mit Sicherheitslücken behaftet sein, aber sie könnte in Ihrem Fall einen Geschwindigkeitsschub bringen.

1voto

graham.reeds Punkte 15745

Wenn Sie sich umsehen, finden Sie vielleicht eine alte Version der Intel JPEG Library. Sie ist nicht OpenSource, aber sie ist schnell. Sie war schnell genug, um 25fps auf einem 733MHz P-III zu erreichen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X