2012-08-01 21 views
7

Nella mia ultima domanda ho chiesto se ci fosse un modo migliore di rotate images di quanto avessi pensato. Ho finito per scoprire jpegtran e da allora ho trovato libjpeg-turbo.Ridimensionamento delle immagini (jpeg o immagine decompressa)

Ora sto cercando un modo migliore per ridimensionare le immagini (jpegs) di imagemagick e graphicsmagick.

Esiste uno strumento di comando specializzato per ridimensionare le immagini in modo più efficiente di imagemagick o graphicsmagick? Forse il ridimensionamento può essere fatto sulla GPU usando opencl o opengl?

L'hardware fornito è lo stesso in altri post:

  • Intel Atom D525 (1,8 Ghz)
  • Mobility Radeon HD 5430 Series
  • 4 GB di RAM
  • SSD Vertility 3
+0

Hai provato 'cjpeg' da libjpeg-turbo? Sembra che dovrebbe avere miglioramenti delle prestazioni simili. Invece di generare una utility da riga di comando per ogni jpeg, dovresti anche essere in grado di migliorare la velocità usando direttamente la libreria libjpeg-turbo. – Stennie

+2

invece di indicare alcuni requisiti casuali (l'efficienza è un elemento così astratto), dì quale limite ti disturba attualmente e dove vuoi arrivare. Inoltre, sarebbe bello sapere qual è il vero collo di bottiglia * attuale * (può essere letto, scritto, en-/decodifica o la vera trasformazione). – KillianDS

risposta

5

controllare questo link out: http://leocharre.com/articles/faster-image-resizing-in-linux/

In particolare l'autore afferma che imgresize è più veloce di ImageMagick, e Epeg è estremamente veloce.

epeg (http://www.systhread.net/texts/200507epeg1.php) sembra abbastanza ben documentato per la generazione di miniature. Se la qualità è abbastanza buona, questa potrebbe essere la soluzione.

+1

Grazie! Ridimensionando un'immagine usata per prendere ~ 2 sec (r: 2.000s, u: 5.632s, sys: 0.1s) ora occorrono ~ 0.8 sec (r: 0.821, u: 0.756, sys: 0.048s). Questo è meno della metà del tempo :) – Thomaschaaf

3
  • OpenCL è uno standard per cross-platform, la programmazione parallela di processori moderni si trovano in personal computer, server e dispositivi palmari/embedded. È supportato direttamente da ATI. Avrai bisogno di ottenere AMD APP SDK (formerly known as AMD Stream SDK) per ottenere supporto GPU (controlla anche questo getting started guide).

  • Dai uno sguardo allo Intel's IPP - Integrated Performance Primitives. È una libreria software multi-thread di funzioni per applicazioni multimediali e di elaborazione dati. Tra le altre caratteristiche, ha delle funzioni per ridimensionare le immagini (bilineare, vicino più prossimo, ecc.). Purtroppo, non è gratuito (la versione più economica costa $ 199).

  • VIPS è un sistema di elaborazione immagini gratuito. Sostiene che rispetto alla maggior parte delle librerie di elaborazione delle immagini, VIPS ha bisogno di poca memoria e funziona rapidamente, specialmente su macchine con più di una CPU. Vedi lo Speed and Memory Use page per un benchmark semplice contro altri sistemi simili.

+0

Grazie Ho verificato VIPS ma la prestazione non è buona: # tempo gm convertire -Size 600x400 a.jpg -resize 600x400 b.jpg 0m0.239s reali utente 0m0.192s sys 0m0.008s # vips tempo im_resize_linear a.jpg b.jpg 600 400 reali 0m0.854s utente 0m0.692s sys 0m0.100s Si tratta di un sistema molto più veloce. Sull'Atomo questo richiede circa 5 volte di più .. – Thomaschaaf

+0

È necessario utilizzare vipsthumbnail. Per esempio. '$ Tempo gm convertire -size 600 wtc.jpg -resize 600 b.jpg reale \t 0m0.271s utente \t 0m0.368s sys \t 0m0.020s $ tempo vipsthumbnail wtc.jpg --size 600 --output b .jpg reale \t 0m0.270s utente \t 0m0.272s sys \t 0m0.016s'. Le differenze sono piccole con jpeg, dal momento che può essere ridotto rapidamente al caricamento, ma vedrai un'enorme differenza con formati come tif e png. – user894763

-1

Semplicemente usare ffmpeg.exe. Può ridimensionare, convertire, cambiare la qualità e così via. E funziona anche con quasi tutti i tipi conosciuti di video/audio/immagini. Funziona anche in linux/unix, e c'è un codice open source scritto in C++. È possibile ottenerlo Here (per Windows/exe compilato) o Here (codice sorgente e così via).
Se si sta sviluppando un programma, si raccomanda di utilizzare la libreria GDIPlus standard. Fa tutto con le immagini.

0

C'è anche djpeg e cjpeg dal gruppo JPEG indipendente che può ridimensionare e l'immagine in una frazione M/N. Non perfetto ma molto veloce.

Problemi correlati