QR-Code: Codici a barre senza barre.
Che emozione, il primo post del 2010 :-)
Ormai siamo tutti abituati alla presenza dei codici a barre, sui prodotti, sui libri, sulle tessere e così via.
Ma non tutti conoscono l'evoluzione di questi codici, che diventano bidimensionali e sostituiscono le barre con dei... puntini...
Come per i codici a barre classici, anche quelli bidimensionali presentano diverse codifiche possibili. La codifica che vedremo in questo articolo è il QR-Code (Quick Response Code, ndr) sviluppato nel 1994 dalla corporation giapponese Denso-Wave.
La codifica è diventata nel 2000 uno Standard Internazionale (ISO/IEC 18004) di fatto aperto, dato che la sua specifica è pubblica e il brevetto posseduto dalla Denso-Wave non è volutamente esercitato.
Questa codifica è maggiormente usata proprio in Giappone, mentre in Italia è più diffuso di fatto il Data Matrix (in grado di memorizzare più informazioni) codifica molto simile usata per esempio dalle Poste Italiane. Ma nonostante sia poco diffuso nel nostro paese, mantiene un notevole interesse a causa della sua versatilità: può essere letto con facilità da un qualsiasi dispositivo dotato di telecamera (computer fissi o portatili, palmari,cellulari ecc...) contenente un apposito software di decodifica.
Il software da usare non è facilissimo da trovare, più che altro a causa della miriade di software a pagamento (molto costosi) che rendono la ricerca fastidiosa. Per questo mi permetto di consigliare un software open-source in grado di leggere i codici a barre (normali o bidimensionali) con differenti codifiche sia da webcam che da immagine salvata.
Il programma si chiama "zbar" e nella sua versione 0.10 gira sia su Linux che su sistemi Windows (fortemente sconsigliato ;-)), il pacchetto contiene due programmi distinti accessibili da linea di comando "zbarcam" per avviare la lettura da webcam e "zbarimg" per analizzare le immagini salvate. (http://zbar.sourceforge.net/)
Il QR-Code si presenta come una matrice quadrata di punti neri su sfondo bianco (o viceversa) nella quale si può memorizzare una determinata quantità di informazioni a seconda della loro natura e dalle dimensioni della matrice stessa.
Proprio per renderlo leggibile dalla maggior parte dei dispositivi esso dispone di due principali funzioni, la prima è la più evidente, ovvero un sistema visivo di allineamento agli angoli (i 2 quadrati l'uno dentro l'altro) ad esclusione dell'angolo in basso a destra, la seconda non è visibile, è un sistema di correzione degli errori di lettura (algoritmo Reed-Solomon), la cui percentuale di
successo dipende dalla codifica di partenza (decisa alla creazione) la quale permette una lettura senza errori anche in mancanza di parti del codice stesso o a causa di difetti dati dalla lettura con dispositivi di bassa qualità.
In generale i QR-Code presentano le seguenti capacità massime di memorizzazione: 7089 caratteri (Solo Numerico), 4296 caratteri (Alfanumerico), 2953 caratteri (Binario 8 Bit) e 1817 caratteri (Kanji/Kana). Con una percentuale di ripristino delle parti danneggiate del: 7% (Livello L), 15% (Livello M), 25% (Livello Q), 30% (Livello H).
Esiste anche una tecnica, chiamata "Grafica QR" che permette di disporre i punti del codice in modo da creare dei semplici disegni, i quali non impediscono la lettura del codice stesso, questo è utile poichè permette all'utente di capire per esempio chi ha creato il codice che andrà a leggere.
E adesso una piccola sfida: siete in grado di leggere il codice pubblicato all'inizio di questo articolo?