
Di Francesco Fumelli e Alessandro Furieri
Tutto quello che [inconsciamente] avreste sempre voluto sapere sui tag Jpeg-Exif ma che non avete mai osato chiedere [fino ad ora] …
iPhone e i tag di geoposizionamento
Uno degli aspetti innovativi di iPhone non è solo quello di avere – tra i primi device nel campo delle telefonia mobile – il sensore GPS integrato ma sopratutto (ed in questo è davvero unico, nell’attesa di Android di Google) in grado di rendere disponibili i dati di posizionamento rilevati dal GPS per tutte le altre applicazioni installate nel dispositivo.
Applicativi per iPhone come Twinkle e molte altre applicazioni di microblog e lifestream (e non solo) riescono – grazie a questa caratteristica – a implementare servizi nuovi e utili. Mostrare dove si trovano i vari chatters intorno al mondo, posizionare le vostre foto sopra le mappe mondiali, vedere la posizione geografica dei vostri amici, condividere le immagini dei luoghi, realizzare e salvare mappe per definire percorsi, inviare via mail la propria posizione georeferenziata, ed altri mille utilizzi diversi, tutti più o meno utilili ma tutti molto “Web 2.0 oriented”.
Oggetto di questo articolo è il rapporto tra la rilevazione dei dati georeferenziati grazie al GPS e le immagini scattate dalla fotocamera di iPhone. Partiamo da una trattazione preliminare della fotocamera di iPhone.
È opinione corrente che le foto scattate con iPhone non siano eccezionali. Questa affermazione non è completamente vera, come tutti i possessori del telefono Apple sanno. Per spiegare meglio il discorso che è più complesso, occorre sgombrare il campo da alcuni miti che circondano il mondo della fotografia digitale, primo tra tutti quello dei megapixel.
Il numero dei megapixel di un’immagine non è sufficiente a definirne la qualità. Se è vero che ad un numero di pixel maggiori corrisponde certamente una maggiore quantità d’informazioni salvate, si devono considerare anche la qualità delle lenti, la qualità del sensore che cattura l’immagine e non ultimo, il software che gestisce l’acquisizione e soprattutto il livello di compressione operata in fase di salvataggio.
Tutte le fotocamere ed i telefoni di fascia medio bassa infatti utilizzano il formato JPG per salvare le immagini, ed applicano quindi in ogni caso una compressione all’immagine acquisita.
Accedendo a Flickr (http://www.locr.com) e cercando nella sua sconfinata banca dati (eseguire ricerca per fotocamera) le foto dei vari “iPhone user” nel mondo, appare evidente come le foto di iPhone siano tutt’altro che di cattiva qualità. Anche rispetto a molti dei cameraphone più blasonati come Nokia N95, iPhone (sulla carta molto inferiore come parte fotografica) alla fine restituisce un risultato senza dubbio comunque paragonabile.
Altro mito da sfatare è quello più in generale sulla qualità dei cosiddetti cameraphone. Telefoni con caratteristiche fotografiche che in realtà non si dimostrano quasi mai in grado di competere con una fotocamera digitale, neppure di fascia medio-bassa. Insomma per fare buone fotografie serve una vera fotocamera.
Iphone non rompe questa regola, possiede un sensore a 2 megapixel senza autofocus e senza flash. Caratteristiche molto “basiche”.
Quello che non sempre viene sottolineato è che comunque l’apertura del diaframma scelta dagli ingegneri Apple è di f/2,8 (un terzo della distanza focale) e che la lente è costruita con materiali di buona qualità.
f/2,8 è un valore ottimale per esaltare la luminosità (a scapito di una certa profondità di campo) e la qualità della lente garantisce una buona nitidezza e assenza di aberrazioni cromatiche.
La compressione operata sulle immagini dal software è evidente, ma migliore di quella che ad esempio generalmente opera il software Nokia di N95 e non si presentano i tipici artefatti di compressione (se non in condizioni di luce molto scarsa).
iPhone permette insomma di fare foto godibili ed equilibrate, nell’ottica di quello che ci si può aspettare da un cellulare. Lo zoom avrebbe migliorato le cose, ma nel poco spessore di iPhone non sarebbe stato possibile collocare il meccanismo di uno zoom ottico (si pensi che N95 usato come esempio è spesso più del doppio di iPhone). Il progetto Apple ha puntato su un buon compromesso: due megapixel, lente senza aberrazioni o disturbi evidenti, elevata luminosità per capacità di scatto anche in interni e con luce modesta.
E come accennato, la possibilità di salvare nelle immagini JPG acquisite, i tag di geoposizionamento, gli Exif metadata.
Exif metadata
Naturalmente è noto a tutti che il formato tipico per le foto digitali è il JPEG.
Questa è in realtà una mezza verità; in effetti il vero formato utilizzato per le foto digitali si chiama EXIF (o meglio JPEG/EXIF).
Un EXIF è a tutti gli effetti un normale JPEG, infatti qualsiasi programma di visualizzazione riesce a visualizzare sia i JPEG-base che i JPEG-EXIF senza doversi sobbarcare nessuno sforzo aggiuntivo. JPEG-EXIF contiene tuttavia molte informazioni extra che in un JPEG-base sono del tutto assenti.
Sia i JPEG-base che i JPEG-EXIF utilizzano come suffisso .jpg oppure .jpeg, senza ulteriori distinzioni. Anche il MIME-Type utilizzato è image/jpeg, in modo indifferenziato. Per riconoscere se un JPEG in effetti è un EXIF occorre leggere attentamente dentro al file.
Riassumendo, possiamo dire che:
un JPEG-base contiene semplicemente un’immagine compressa
un JPEG-EXIF contiene un’immagine compressa, ma in aggiunta contiene anche un set strutturato di metadati; ossia, sono presenti ulteriori informazioni relative all’immagine, alle condizioni di ripresa etc. etc.
Il seguente è un esempio abbastanza tipico della struttura dei metadati EXIF che accompagnano una fotografia digitale:
Come dovrebbe risultare chiaro dall’esempio, se un JPEG è in effetti un EXIF, allora contiene dei metadati strutturati in modo standard:
i metadati sono articolati in elementi (voci) denominati tag
ciascun tag è identificato da un ID numerico e da un nome simbolico
alcuni tipi di tag sono obbligatori (quindi li dovreste trovare sempre in qualsiasi EXIF)
altri tipi di tag sono facoltativi (quindi sono presenti o meno a seconda del modello della fotocamera, della modalità operativa, della presenza o meno di determinati accessori etc etc).
Lo standard è abbastanza semplice e in sostanza è coerente quanto basta per garantire una facile interoperabilità tra i diversi produttori di hardware e software.
In ogni caso, ciascun tipo di tag contiene uno o più valori; i tipi supportati sono i seguenti:
BYTE una sequenza di bytes
STRING una stringa di caratteri ASCII
SHORT un intero (senza segno) a 16 bit
LONG un intero (senza segno) a 32 bit
RATIONAL una coppia di interi (senza segno) a 32 bit interpretati come un rapporto tra numeratore e denominatore
SBYTE una sequenza di bytes (senza segno)
UNDEFINED una sequenza di bytes (forse UNICODE, ma non è detto …)
SSHORT un intero (con segno) a 16 bit
SLONG un intero (con segno) a 32 bit
SRATIONAL come un RATIONAL, ma la coppia è di interi (con segno) a 32 bit
FLOAT autoesplicativo, praticamente mai utilizzati
DOUBLE autoesplicativo, praticamente mai utilizzati
Ogni tag dichiara un valore count, che deve essere interpretato come segue:
se i valori sono BYTE, STRING, SBYTE oppure UNDEFINED, count indica la lunghezza della stringa
in tutti gli altri casi count indica il numero dei valori elementari presenti [quindi possono essere presenti tanto valori elementari come anche array di valori]
Il fatto di specifico interesse per questo articolo è che iPhone (e alcuni altri modelli di telefoni e fotocamere digitali) incorporano direttamente al loro interno un sensore GPS.
Altri modelli di fotocamera digitale supportano la possibilità di connettere un terminale GPS di tipo esterno tramite un apposito sistema basato su un cavetto ed un aggancio fisico.
In entrambi i casi il formato EXIF consente di memorizzare i parametri GPS rilevati al momento dello scatto direttamente all’interno dei metadati. In particolare:
i tag GPSLatitudeRef e GPSLatitude conterranno la latitudine [espressa nella forma Est/West gradi, minuti e secondi]
i tag GPSLongitudeRef e GPSLongitude conterranno la longitudine [espressa nella forma North/South gradi, minuti e secondi]
il tag GPSSatellites indicherà il numero dei satelliti visibili
i tag GPSDateStamp e GPSTimeStamp indicheranno l’esatto momento dello scatto [espresso in UTC, ossia nel tempo universale di Greenwich]. Di fatto i satelliti GPS erogano anche un segnale orario di precisione assoluta, per cui questo valore può essere di particolare interesse.
Come leggere e capire i tag JPG-EXIF
Esiste un software open source, scritto dal mio amico e coautore di questo testo Alessandro Furieri: Spatialite, è un software liberamente scaricabile da: www.gaia-gis.it/spatialite per tutte le piattaforme.
SpatiaLite consente di importare le immagini EXIF in modo semplice, alimentando nel contempo un catalogo dei metadati corrispondenti.
Una volta che i metadati sono stati acquisiti sotto forma di tavole diventa banale elaborarli/interrogarli tramite normalissime query SQL.
Non solo; se tra i metadati EXIF sono presenti anche le rilevazioni GPS, allora SpatiaLite è in grado di costruire automaticamente anche una Geometry WGS-84 associata alla fotografia (World Geodetic System).
Il modo più facile per importare immagini EXIF in SpatiaLite è quello di utilizzare l’interfaccia grafica; si può infatti importare automaticamente una intera cartella in un solo colpo. Un EXIF valido verrà correttamente riconosciuto anche se presenta un suffisso diverso da .JPG, oppure se non possiede nessun suffisso.
Quindi, utilizzando il tool standard di SpatiaLite per l’acquisizione automatica delle immagini EXIF avremo la seguente situazione:
La tavola ExifPhoto conterrà le informazioni maggiormente rilevanti, ivi compresi gli eventuali parametri GPS rilevati dai metadati EXIF.
Naturalmente ExifPhoto conterrà anche l’immagine vera e propria.
Se si desidera SpatiaLite può inoltre mostrare le tavole complete che espongono tutti i metadati EXIF; in questo caso la tavola ExifTags conterrà l’elenco di tutti i tags rilevati.
mentre la tavola ExifValues conterrà i valori associati ai tags EXIF rilevati.
infine, la vista ExifMetadata consente di accedere direttamente ai metadati EXIF in forma agevolata.
Oltre ad iPhone ed altri telefoni cellulari (principalmente Nokia) le macchine digitali dotate di sensore GPS cominciano ad essere reperibili sul mercato a prezzo non eccessivo. In particolare la Nikon Coolpix P6000 e la Ricoh 500 SE.
Si tratta di fotocamere compatte con ottime doti fotografiche per la fascia a cui appartengono (non professionale) con prezzo intorno a 400/500 euro.
Inoltre praticamente tutte le reflex digitali di fascia alt professionali consentono di collegare un terminale GPS esterno tramite un apposito cavetto e sistema di fissaggio.
Infine è possibile connettere una vasta gamma di terminali GPS di tipo professionale utilizzando sempre un cavetto, ma senza nessun vincolo fisico idoneo a garantire l’allineamento delle due apparecchiature.
Conclusioni
La presenza dei dati di posizione nelle immagini è una novità (ancora pochissimo sfruttata) che consente una diversa gestione nell’utilizzo quotidiano delle foto digitali. Permette di aggiungere intelligenza e funzioni ai software di archiviazione e gestione, sia sul pc locale dell’utilizzatore che su web, tramite siti e servizi appositi.
Software e servizi web interessanti da vedere, in ottica specifica per gestire le foto JPEG-EXIF (a parte il già citato Spatialite).
Flickr – www.flickr.com
Forse il più noto sito di archiviazione/condivisione di immagini online, utilizza i tag EXIF per posizionare i vostri scatti sopra una mappa. Rende immediato il vedere ad esempio il percorso di un viaggio, con le relative immagini in posizione.
Google Picasa Web Album – picasaweb.google.com
Anche Picasa permette di archiviare le foto e posizionarle sulla mappa di Google. E’ in effetti il migliore concorrente di Flickr e ne duplica e espande le funzioni. Molto utile la mappa di un singolo “album” con le anteprime delle foto visibili direttamente nella mappa.
Lockr – www.locr.com
Sito web e software per Windows e Symbian, permette di caricare online immagini e posizionarle su Microsoft Virtual Hearth, Yahoo e Google Maps, leggendone i dati JPG-EXIF. Molto efficace e gradevole come interfaccia.
Exposure, Airme e Flickup
Software per iPhone scaricabili da iTunes store. Exposure e Airme sono gratuiti. Tutti e 3 permettono – tra l’altro – l’invio a Flickr, Picasa e Facebook di foto scattate con iPhone, mantenendone i tag Exif.
HoudahGeo – houdah.com/houdahGeo/index.html
Software per Mac OSX. Permette di collocare tramite i tag EXIF foto su Google Hearth e Google Maps.
PhotoInfoEditor e PhotoGPSEditor
http://www.mmisoftware.co.uk/pages/photogpseditor.html
Due software per Macintosh che permettono – tra l’altro – di gestire pienamente i tag EXIF e processarli anche su molti file in batch.
RapidoMap OSX – www.app4mac.com
Ottimo software gratuito per gestire localmente le foto e sovrapporle alle mappe di Yahoo. Basta trascinare le foto sopra la finestra del programma. Veramente semplice e ben fatto. Permette anche l’upload su Flickr.
Nokia location tagger – www.nokia.com/betalabs/locationtagger
Permette di salvare i dati Exif all’interno degli scatti eseguiti con i telefoni Nokia dotati di GPS.
Un ottimo software per iPhone (gratuito) scaricabile da iTunes store è GPSLite. Si tratta di un programma non direttamente correlato con la problematica JPG-EXIF ma indispensabile per tutti coloro a cui interessi sfruttare e capire come funziona il GPS in genere e la sua implementazione su iPhone. Si tratta di un programma che rileva le coordinate, permette di conoscere direzione e velocità di movimento, salvare dei punti su una mappa “muta” e quindi navigare da e per i punti salvati con l’ausilo di una bussola che mostra la direzione da seguire.
[BOX]
Letture consigliate:
http://it.wikipedia.org/wiki/Exchangeable_image_file_format
http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf
http://cvs.horde.org/annotate.php/ansel/lib/Exif.php?rev=1.41
http://it.wikipedia.org/wiki/World_Geodetic_System
http://www.mmisoftware.co.uk/pages/photogpseditor.html