Tecnologia e non solo

dicembre 8, 2011

Gimp next: warp e Opencl

Filed under: image-processing — telperion @ 12:50 pm

Gimp 2.8 è stato annunciato in uscita per la fine di gennaio 2012,
ormai lo potete usare da tempo compilandovi o installandovi una versione 2.7.4+git, perfettamente stabile da tempo.

Nuove funzioni non verranno aggiunte, sono solo in fase di rifinitura e correzioni bug.

E dopo?

WARP

Un interessante sviluppo è il warp direttamente sull’immagine
invece che con l’attuale scomodissimo plugin IWarp:


Uploaded with ImageShack.us

Nel ramo soc-2011-warp troviamo il nuovo progetto, una volta compilato sembra essere attiva solo la nuova interfaccia, ma senza che venga applicato alcun warp sull’immagine:
(EDIT: non applica nulla all’immagine perchè gimp va compilato con la libreria Gegl soc-2011-warp, errore mio)
(EDIT2: non funziona neppure con la gegl corretta
** (gimp-2.7:20870): WARNING **: Failed to set operation type gegl:warp, using a passthrough op instead
update rect: (11,221), 40×40
Warp transform: 1,96319 MPixels/sec
M31,5,241, L36,,240, L58,5,232, L59,,231,5 L59,,231,5
update rect: (39,211), 40×40
Warp transform: 1,82232 MPixels/sec)


Uploaded with ImageShack.us

Speriamo in un rapido avanzamento dei lavori, visto che è molto più comodo lavorare cosi.
Anche poter dipingere delle maschere (vedi fluidifica di photoshop) sulle zone da non toccare, sarebbe estremamente apprezzato.

OpenCL

L’uso di OpenCL permette di velocizzare i calcoli usando la GPU.
Leggendo questo articolo di phoronix, ho visto che i lavori sono in corso.

Ho quindi compilato la versione opencl di gegl, e ricompilato gimp 2.7.4+git20111208 in modo che usi la nuova libreria gegl:


Uploaded with ImageShack.us

OpenCL viene usato tramite CUDA dalla mia Nvidia 8600GT e tutto fila liscio.
Impostato quindi gimp perchè usi GEGL quando possibile (di default non usa GEGL):


Uploaded with ImageShack.us

e usato una immagine di grandi dimensioni (1400*2000 px) per qualche test:


Uploaded with ImageShack.us

Che dire, tutto sembra funzionare, ma non vedo grosse variazioni velocistiche, alcune operazioni GEGL (menu strumenti -> operazioni GEGL) sono davvero molto lente, mentre nell’uso normale (curve, livelli eccetera) mi sembra tutto come prima.

Esempio, applicazione colori curve con un preset sulla stessa immagine:

gimp con Gegl versione opencl
normale
Curve: 18,7597 MPixels/sec
usa gegl
Curve: 3,77992 MPixels/sec

gimp con Gegl versione normale
normale
Curve: 18,3878 MPixels/sec
usa gegl
Curve: 3,48389 MPixels/sec

circa un 8% di incremento usando gegl e la lib con opencl, poca cosa.
Tra l’altro ripetendo più volte i test, i valori cambiano di molto anche del 100%, quindi l’affidabilità dello stesso test è inesistente.

Difficile capire, se per il limitato uso di GEGL da parte di Gimp, o se per la limitata potenza della mia 8600GT, certo i soldi per comprare una mega scheda video non li ho.

Certo che con un quad-core vedere che gimp continua ad usarne solo 1, mi fa pensare che una maggiore specializzazione del codice per usare più processi, sarebbe molto più efficace che usare OpenCl, ma vabbè …

Seguirò gli sviluppi, sperando (ho 51 anni) di vedere qualcosa di finito prima della demenza senile …

LOL

PS:
se qualcuno usa debian sid 64 ed ha una scheda nvidia che supporta CUDA e volesse i 3 pacchetti svnbabl svngegl e svngimp che si installano in /opt e NON interferiscono con il sistema ne con gimp 2.6, me li chieda.

11 commenti

  1. Ciao Telperion non so perché pensavo fossimo coetanei (ne ho 34) ma sei indiscutibilmente il mio mito!😉

    Commento di Danielsan — dicembre 9, 2011 @ 10:46 am

    • Eh eh, purtroppo sono “decrepito”, magari avessi 34 anni …..

      Commento di telperion — dicembre 9, 2011 @ 11:53 am

  2. Tra l’altro leggo sul sito di gimp:

    AMD sponsors further work on OpenCL support in GEGL2011-11-28
    image

    Victor Oliveira, our GSoC2011 student, is going to continue his work on getting OpenCL support in GEGL for hardware accelerated rendering and computations. AMD got interested in the project and agreed to sponsor it.

    The plan is to implement GPU-side color conversions and compositing operations, as well as some basic filters. Victor is also planning to create a simple API for development of new OpenCL based filters for GEGL.

    Currently estimated deadline is March 2012. GIMP already has an optional GEGL based projection rendering as well as an experimental tool to test GEGL operations, so hopefully we are going to see some exciting performance improvements soon.

    quindi la libreria GEGL che sfutta OpenCL dovrebbe essere finita a marzo 2012, quanto poi Gimp la “sfrutti” e che impatto velocistico possa avere con schede medie, è tutto da verificare.

    Commento di telperion — dicembre 9, 2011 @ 11:52 am

  3. azz…..ed io che pensavo di essere quasi il più vecchio “dei soliti noti blog”
    con i miei 40 abbondanti🙂

    Commento di edmond — dicembre 9, 2011 @ 5:40 pm

    • La mia nota sull’età era per ribadire con non ho troppi decenni per aspettare le evoluzioni di gimp, non per scatenare gossip …
      lol

      Commento di telperion — dicembre 10, 2011 @ 12:01 am

      • Questo blog è meglio di Novella2000😛

        Commento di imu — gennaio 3, 2012 @ 8:57 pm

      • Ciao imu AUGURI!!!

        Commento di telperion — gennaio 3, 2012 @ 9:19 pm

      • Auguri amico, di cuore!

        Commento di imu — gennaio 7, 2012 @ 10:28 am

  4. Con la nuova gegl opencl-ops

    c2g da 0.37 a 1.38 MPixels/sec.
    Qualcosa si muove

    http://git.gnome.org/browse/gegl/?h=opencl-ops

    Commento di telperion — marzo 20, 2012 @ 4:49 pm


RSS feed for comments on this post.

Blog su WordPress.com.

%d blogger cliccano Mi Piace per questo: