I codici visti finora sono di tipo lineare. Questo tipo di codici è facile e veloce da scansionare con un lettore laser ed è largamente utilizzato per gestire la movimentazione delle merci.
In alcuni casi però è necessario gestire una maggiore densità di informazione, raccogliere una quantità di dati in uno spazio ridotto.
In questi casi bisogna ricorrere a sistemi più sofisticati e rivolgersi a tipi di codici bidimensionali di cui, nel seguito, diamo alcuni accenni.

DataMatrix

InSight-DataMatrixQuello rappresentato a sinistra è un esempio di codice DataMatrix.
Il codice DataMatrix è stato inventato dalla RVSI/Acuity CiMatrix. Oggi il codice DATAMATRIX è diventato uno standard e le specifiche del codice sono nel ISO/IEC16022, ciò vuol dire che esso può essere utilizzato liberamente senza pagare royalties.
Questo tipo di codice permette una grande densità di informazione in quanto può immagazzinare fino a 2kilobyte di dati (o se si preferisce fino a 2.335 caratteri alfanumerici) in uno spazio quadrato che può variare da 300 micron al metro di lato. La dimensione del DataMatrix infatti è infinitamente scalabile, quindi il limite è imposto solo dalla tecnologia di lettura e scrittura. Per questo motivo la EIA (Electronic Industries Alliance) ne raccomanda l’uso per etichettare i dispositivi elettronici.
L’ultima versione di DataMatrix è denominata ECC200 e implementa un algoritmo di Reed Solomon per la correzione degli errori, motivo per cui può sostenere un danneggiamento fino al 30% senza soffrire di perdita di informazione.
Osservando un codice Data Matrix possiamo notare alcune caratteristiche salienti.
Si tratta di un simbolo di forma quadrata costituito da un numero di pixel variabile da 10×10 a 144×144 (riferito alla versione ECC200). Due lati del quadrato sono costituiti da linee continue a formare una “L” detta Finder Pattern. Gli altri due lati sono costituiti da linee tratteggiate in cui si alternano pixel bianchi e neri creando il cosiddetto Timing Pattern. Quest’ultimo è utilizzato del lettore per ricostruire una griglia con la quale interpretare la posizione dei pixel dell’intero simbolo.

PDF417

InSight-pdf417Il codice PDF417 è stato inventato da Ynjiun P. Wang presso la Symbol Technologies nel 1991. Il nome è l’acronimo di Portable Data File, e la simbologia consiste di 17 moduli ciascuno contenente 4 barre e spazi.
Anche il PDF417 è un formato libero da licenze. L’utilizzatore può decidere la dimensione del modulo e l’altezza del simbolo; questo rende il PDF417 adattabile a diverse esigenze.
Ha una grossa capacità di dati, potendo arrivare a 2500 caratteri alfanumerici. Si tratta di un codice di tipo Stacked Barcode, cioè è costituito da tanti barcode lineari impilati l’uno sull’altro. Per questo motivo può essere letto da uno scanner lineare dello stesso tipo di quelli usati per i codici lineari, consentendo un risparmio nell’implementazione hardware.
Per permettere al lettori di distinguere le varie righe di codice, è necessario che ogni riga abbia codificato il proprio numero al suo interno. Il software può quindi discriminare le varie righe e individuare errori dovuti alla lettura “obliqua” di più righe. Per irrobustire ulteriormente la lettura, ogni riga utilizza un algoritmo di Reed Solomon per la correzione degli errori, di cui l’utilizzatore può impostare il livello di accuratezza.
Mediamente un codice PDF417 richiede circa 4 volte lo spazio richiesto da un DataMatrix o un QR-Code, a parità di informazione codificata.

QR-Code

InSight-qrcodeIl codice QR fu sviluppato nel 1994 dalla compagnia giapponese Denso Wave allo scopo di tracciare i pezzi di automobili nelle fabbriche di Toyota. Il suo nome è l’acronimo di Quick Response e si è in seguito diffuso rapidamente come mezzo per inserire i lunghi indirizzi web negli smartphone senza doverli digitare.
Nel 1999 Denso Wave, pur conservando i diritti di brevetto, ha rilasciato l’uso del codice QR con licenza libera. La capacità di un codice QR può variare da 7089 caratteri numerici impiegando 3bit/carattere, fino a 1817 caratteri Kanji, impiegando 13 bit/carattere.
Anche il QR code impiega un algoritmo Reed Solomon per la correzione degli errori che, quando usato al grado massimo, permette di ricostruire fino al 30% di simbolo deteriorato.