Wie kann ich die Geschwindigkeit der Foto- / Bildgröße verbessern? (~ 8 MB bis ~ 100 KB)

7

Ich erstelle ein Programm, das Fotos von einer SD-Karte liest, dann die Größe der Bilder ändert und sie auf Flickr hochlädt (Hinweis, es ist ein zweiter SD-Kartenleser, nicht der an Bord).

Die Fotos sind hochauflösende JPGs. Ein Beispielfoto ist ein 8,1 MB JPG von einem Canon Rebel T4i. Sie könnten möglicherweise eine noch höhere Auflösung haben.

Ich möchte sofort nach dem Einlesen der Fotos von der SD-Karte ein Vorschaubild von z. B. ~ 100-150 KB hochladen. Die Geschwindigkeit der Größenänderung und des Uploads ist wichtiger als die hohe Qualität, obwohl das Bild natürlich erkennbar sein sollte.

Im Moment habe ich imagemagick verwendet und zahlreiche Variablen getestet, um die Geschwindigkeit zu erhöhen, einschließlich Übertakten, Verwenden eines zusätzlichen USB-Sticks oder Speichers usw.

Ich habe derzeit nur noch ~ 6 Sekunden Zeit, um die Größe der 8,1 MB auf ~ 150 KB JPG zu ändern. Dies verwendet die Option "Beispiel" mit einem JPG von 10% / 170 KB. Die Ausgabequalität ist hoch, tatsächlich höher als nötig, aber selbst wenn ich die Qualität reduziere, bleibt die Dauer die Zeit.

Irgendwelche Ideen für ... a) die Geschwindigkeit der Imagemagick-Konvertierung (oder vielleicht eine andere Imagemagick-Option) weiter zu verbessern? b) anderes Tool / Bibliothek? c) etwas ganz anderes?

Ich habe meine bisherigen Bemühungen hier beschrieben: http://blog.sunekaae.com/2013/04/imagemagick-resize-speed-on-raspberry-pi.html

Sune Kaae
quelle
Aus Ihrem Blog-Beitrag geht hervor, dass Sie zwei verschiedene Medien getestet haben, aber beide SD-Karten sind. Haben Sie versucht, die Größe tmpfszu ändern, um das Lesen / Schreiben des Mediums wirklich aus der Arbeitslast zu entfernen?
Krzysztof Adamski
werde es versuchen. aber ich möchte klarstellen, dass das zweite Medium, das ich ausprobiert habe, tatsächlich ein USB-Stick war.
Sune Kaae

Antworten:

8

Sie könnten versuchen, Epeg . Es wurde genau für den Job entwickelt, den Sie benötigen - um schnelle Miniaturansichten aus JPEG-Dateien zu erstellen. Das einzige Problem ist, dass Sie es selbst kompilieren müssen, da es für RaspberryPi kein Paket dafür gibt. Es ist eine Bibliothek, enthält jedoch ein einfaches Testwerkzeug, das Sie verwenden können.

Krzysztof Adamski
quelle
Von der Github-Seite: "Wahnsinnig schnelle JPEG-Miniaturansicht mit minimalem Aufwand und CPU-Overhead" ... klingt vielversprechend - wird es versuchen ...
Sune Kaae
1
habe gerade einen ersten Test gemacht, und der epeg-Befehl scheint tatsächlich wahnsinnig schnell zu sein. und es erzeugt ein qualitativ hochwertiges Bild mit einer kleinen Größe. Durchschnittlich 1,0 Sekunden bei gleicher Zielgröße von 10%. Dies scheint ein Gewinner zu sein. Vielen Dank!
Sune Kaae
2
Bisher funktioniert es großartig. Schrieb es hier auf: blog.sunekaae.com/2013/04/… danke Krzysztof!
Sune Kaae
Es ist sehr schnell, aber die Qualität ist nicht so gut, da es kein Antialiasing gibt. Sehr blockig. Für die Vorschau kann dies jedoch ausreichen.
Daniel F