Sei il visitatore numero 11340
Questo articolo è rivolto in particolar modo a coloro che utilizzano abitualmente le tecniche di stitching (fotografia panoramica, focus stitch, ecc.), siano essi fotoamatori oppure professionisti. Aggiornamento del 5 Febbraio 2008: aggiunte alcune considerazioni sui sistemi operativi a 64bit (capitolo "Hardware impiegato") e sui dischi SAS (capitolo "Conclusione"). La fotografia panoramica utilizzata per il test E' evidente come i tempi di generazione di uno stitch siano strettamente correlati alle sue dimensioni ma, a parità di questo fattore, influiscono in maniera decisiva le prestazione dell'hardware utilizzato. Il progetto che utizzerò come termine di raffronto per tutti i test di questo articolo ha le seguenti caratteristiche:
L'anteprima del progetto in PTgui (Panorama editor) è la seguente:
Notare come la posizione scelta del "Center Point" determina una vasta area senza informazioni che purtroppo sarà inclusa nello stitch finale, determinandone un forte incremento delle dimensioni. Le accresciute dimensioni si pagheranno, in termini di tempi di attesa, in fase di elaborazione in Photoshop. L'immagine finale, raffigurante la testa della Valnontey (Parco Nazionale del Gran Paradiso) e i casolari di Money, è la seguente: Il progetto dello stitch è stato elaborato inizialmente con PTGui 7.2 , il quale ha generato un file in formato Photoshop "big" (PSB) contenente l'immagine finale "Blended" (blender interno di PTGui) e le singole 17 immagini opportunamente deformate (warped), disposte su altrettanti livelli. Nota: tratterò in maniera specifica di Autoblend in uno dei prossimi articoli su Photoactivity. Il file così ottenuto è davvero molto pesante, oltre 6 Gb, ed il suo calcolo ha richiesto un tempo abbastanza elevato. Tuttavia una fase altrettanto pesante è quella dell'apertura e della lavorazione del documento in Photoshop: affinchè si opera con tutti i layer, i tempi di risposta sono generalmente molto alti. L'Hardware impiegato Per fornire un termine di paragone importante, è necessario specificare le principali caratteristiche del computer utilizzato:
Come si nota si tratta di un hardware non recentissimo, ma le sue prestazioni restano valide anche se confrontate con gli hardware attuali di fascia media. Come vedremo, oltre alla velocità di calcolo del processore sono fondamentali anche i tempi di accesso e di trasferimento da/verso i dati delle immagini. La quantità di RAM disponibile è fondamentale specialmente per Photoshop, mentre PTgui utilizza in via preferenziale gli Hard Disk (HD) installati per scrivere i files temporanei. L'installazione di RAM aggiuntiva, in particolare oltre la soglia dei 4Gb, è però molto onerosa, perchè si devono utiilizzare banchi RAM di capienza elevata (2-4Gb ciascuno). Esistono inoltre problematiche di carattere tecnico: - molte motherboard della precedente generazione non non possono ospitare quantitativi di RAM superiori a 4Gb; le comuni motherboard attuali possono ospitare fino ad 8Gb. Solamente le motherboard "server oriented" come quelle che supportano i processori Xeon possono ospitare fino a 32Gb di RAM. - moltissime applicazioni professionali (come Photoshop, anche in versione CS3) non sono state ancora riscritte per sfruttare l'indirizzamento della RAM a 64bit, pertanto non sono capaci di gestire direttamente più di 3-3,5Gb. Riassumendo, installare RAM oltre la soglia dei 4Gb ha un costo elevato ed in molti casi (tutti gli OS a 32bit) non si riesce ad ottenere alcun beneficio. Attualmente un buon compromesso tra efficienza e costi si trova tra i 2Gb ed i 4 GB di RAM. E' tuttavia importantissimo -come vedremo più avanti- disporre di almeno un HD veloce da riservare al file di Scratch, in modo che, non presentando alcuna frammentazione, possa lavorare sempre al massimo delle sue prestazioni. Tempi di calcolo con HD "standard" Nella seguente tabella sono riportati i tempi di calcolo di PTgui e di Photoshop. Per quest'ultimo sono state considerate solo alcuni operazioni basilari che vengono normalmente eseguite: fa eccezione solo Autoblend, che è stato inserito nella sequenza perchè costituisce un dato molto interessante, anche se si tratta di un'operazione non necessaria.
* Operazione opzionale Bene, questi tempi costituiscono da questo momento il nostro riferimento, percui gli assegnamo un valore di riferimento (RIF) pari a 100. La domanda da porsi adesso è la seguente: fermo restando il tipo di processore e l'ammontare di RAM presente nel sistema, se e quanto è possibile migliorare queste prestazioni? La risposta sta nell'analisi del tracciato di utilizzo del processore (cronologia processore), generata dall'utility "Task manager" presente in Windows XP. Bene, analizziamo i tracciati per le singole operazioni ed i relativi commenti:
Si nota che ogni operazione genera un impegno CPU diverso, che dipende dalla complessità dell'algoritmo e dal volume di dati manipolati. Le operazioni che sembrano risentire maggiormente dei tempi di attesa dell'HD sono in particolare: - la 2a fase del Blending di PTgui L'operazione di File/Open di PS è invece abbastanza onerosa per la CPU (che deve costruire i livelli di "cache"), contrariamente alla banalità apparente di questa operazione. Da questo studio si deduce che potendo contare su HD più veloci, soprattutto per i files temporanei, le operazioni elencate potrebbero essere accelerate in maniera sostanziale.
La velocità di un Hard disk Se cerchiamo HD più veloci di quelli "standard", dobbiamo capire quali sono i parametri con i quali si valuta la velocità. Essenzialmente i parametri sono due: velocità di trasferimento read/write e velocità di accesso. Se il disco non è frammentato, il primo parametro determina il flusso massimo di Mb trasferibili da/verso il disco, mentre il secondo determina quanto tempo impiegano le testine a posizionarsi all'inizio del dato (settore) richiesto. Entrambi i parametri sono importanti, il primo nei trasferimenti di grandi blocchi di dati contigui sulla superficie del disco, il secondo nella gestione di piccoli blocchi di dati non contigui. Ho utilizzato una utility free chiamata HDTune per misuare la velocità del disco Maxtor 120Gb utilizzato nel test precedente:
La curva azzurra rappresenta il "transfer rate" (flusso) espresso in Mb. Si nota come questo valore decresce verso l'interno del disco (zona a minor velocità tangenziale). La media risulta essere di 46,7 Mb/secondo, risultato in linea con i dischi attuali SATA ad alta capacità. La "nuvola gialla" rappresenta invece una miriade di accessi casuali, dei quali si può leggere sulla destra il tempo relativo in millisecondi (ms). Si nota come anche in questo caso le prestazioni si abbassano sposandos verso l'interno del disco, determinando una media intorno ai 14ms. Domanda: esiste qualcosa di decisamente più veloce, senza spendere capitali ingenti in dischi SCSI e relativi controller ? La risposta è "si", come di vede da questo disco Western Digital Raptor 74Gb, accreditato di un regime di rotazione di ben 10krpm:
Niente male, affatto! Il transfer rate medio è salito quasi del 50%, ma soprattutto il tempo medio di accesso si è praticamente dimezzato, passando da 14ms a 8ms. Utilizzare come unità dedicata allo Scratch un HD come questo rappresenta già un significato balzo in avanti delle prestazioni di PTgui e soprattutto di Photoshop. E' tuttavia possibile ottenere ancor di più, come vediamo nel prossimo paragrafo.
RAID Stripe Sembra quasi una parolaccia, invece si tratta di un ottimo sistema per far lavorare due HD assieme, ripartendosi il carico sia dei dati in scrittura che in lettura. Non è questa la sede migliore per approfondire il principio di funzionamento delle connessioni RAID, ciò che ci interessa è che il sistema è molto efficiente ed il controller che supporta due HD è normalmente fornito di serie sulle motherboard di fascia medio/alta. In alternativa è possibile installare una scheda controller apposita, dal costo abbastanza contenuto. Altra cosa che ci interessa è che, dopo una banale configurazione da BIOS, il sistema considera i due dischi fisici come un'unica unità logica, senza alcuna complicazione di sorta. La dimensione di questa unità logica è pari alla somma delle dimensioni dei due HD collegati in RAID stripe. Dunque, se si installano sul controller RAID due dischi "gemelli" come ad esempio i WD-Raptor che abbiamo appena visto, cosa accade alle prestazioni del disco logico? Vediamo:
Risultato molto interessante. Il transfer rate medio è incrementato di quasi il 50% rispetto al WD-Raptor singolo, ma è più che raddoppiato rispetto al Maxtor 120Gb . La prestazione è praticamente costante su tutta la superficie del disco. La sensazione è che, utilizzando un controller più evoluto di quello fornito di serie con la motherboard, il transfer massimo potrebbe migliorare ancora. Il tempo di accesso è invece rimasto invariato, perchè l'unità logica RAID stripe assume il tempo di accesso dell'HD più lento: in questo caso, essendo i due HD identici, il tempo di accsesso rimane di circa 8ms.
Tempi di calcolo con due WD-Raptor in configurazione RAID stripe Nella seguente tabella sono riportati i tempi di calcolo di PTgui e di Photoshop, utilizzando lo stesso sistema del test precedente. Unica differenza è l'installazione di un sistema RAID stripe composto da due WD-Raptor 74Gb: sulla relativa unità logica vengono scritti i files temporanei sia di PTgui che di Photoshop.
* Operazione opzionale Come si vede dall'abbatimento del parametro RIF, le operazioni che avevamo precedentemente induividuato sono state velocizzate moltissimo, con tempi spesso pari alla metà del sistema con disco Maxtor 120Gb. Come previsto, è proprio Photoshop che trae i vantaggi maggiori di questa configurazione dei dischi, con un tempo complessivo di tutte le operazioni praticamente dimezzato. E' un risultato importante, ottenuto con un solo aggiornamento, senza sostituire il computer o alcuna sua parte interna! D'altronde è proprio su Photoshop che è essenziale una spinta come questa, dato che il calcolo di più progetti PTgui può essere avviato anche in Batch, ovvero senza la presenza dell'operatore.
Un nuovo algoritmo di warping per PTgui. Se PTgui complessivamente non sembra trarre troppi vantaggi dalla configurazione RAID, il motivo è che -come detto- molte delle sue attività sono totalmente a carico della CPU. Per ottenere tempi di calcolo migliori si può acquistare un computer con CPU più potente, oppure.... oppure si può scaricare il nuovissimo PTgui 7.3, nel quale la sezione di warping è stata riscritta per trarre vantaggio dai sistemi multi-processore e multi-core (anche virtuale, come nel nostro caso). Di fatto vengono lanciate in warping due immagini alla volta, cosicchè i processori che supportano nativamente il multi-threading reagiscono in maniera molto più veloce dei processori classici. Ecco la progress bar di PTgui 7.3 durante il warping: Durante questa (lunga) fase, il Pentium 4 HT è spremuto al massimo, con i due core virtuali utilizzati quasi al 100%:
La fase di blending, sempre giudicando dalla cronologia processore, non sembra essere stata riscritta. La funzione indica un utilizzo di circa il 50%:
Vediamo sei il test dei tempi di esecuzione, eseguito sullo stesso progetto, conferma queste indicazioni:
Tutto confermato, dunque. Il warping è stato accelerato di circa il 30%, mentre le altre operazioni impiegano praticamente lo stesso tempo. Di fatto utilizando due HD Raptor in configurazione RAID in combinazione al nuovo PTgui7.3, abbiamo ridotto di oltre il 30% i tempi di calcolo di questo progetto. Un ottimo risultato. Con harware più recenti, in particolare con processori dual-core oppure quad-core, questo dato potrebbe portarsi intorno a -50%, ovvero circa 24min di calcolo. Eccellente, vista la pesantezza del progetto.
.... e PhotoMerge CS3 ? Chi esegue Stitching in maniera "professionale", sa benissimo che Photomerge non è uno strumento di lavoro adatto. Tuttavia qualche "compitino" facile-facile riesce ad assolverlo bene, e soprattutto molto velocemente. Per il test ho utilizzato il sistema con i due dischi in configurazione RAID stripe. Eliminando una riga dal progetto, ho ottenuto un totale di 12 immagini. Risultato davvero interessante, tenuto presente l'immagine finale da circa 65 Mpixel a 16bit/colore. Peccato per la scarsa flessibilità di Photomerge, davvero misera rispetto a mostri sacri come PTgui. Vabbè, in realtà anche il blender di CS3 ha la sua "magagna", ma la scopriremo nel prossimo articolo.
Conclusione Il lato economico: un disco WD-raptor 74Gb costa attorno ai 140euro (IVA esclusa), cifra abbastanza elevata rispetto alla capienza, ma ovviamente si tratta di una ottimizzazione senza compromessi sulla velocità. Con 280euro si compone un RAID a due dischi, controller escluso (spesso è integrato nella motherboard). Le prestazioni del sistema, come abbiamo visto, aumentano in misura evidente, specialmente lavorando immagini molto pesanti -come gli stitch multi layer- all'interno di Photoshop. Consiglio questa soluzione a chi realizza frequentemente immagini Stitch, ed in particolar modo a chi realizza fotografie panoramiche ad alta risoluzione. Per chi volesse puntare al massimo, segnalo la possibilità di utilizzare i dischi con interfaccia SAS (Serial Attached SCSI) e regime di rotazione pari a 15krpm.
Se vuoi parlare con noi di questo articolo vieni a trovarci sul FORUM E' vietata la riproduzione anche parziale di questo articolo senza il consenso dell'autore. |