PDF417 - PDF417
PDF417 è un formato di codice a barre lineare impilato utilizzato in una varietà di applicazioni come trasporti, carte d'identità e gestione dell'inventario. "PDF" sta per Portable Data File. Il "417" significa che ogni modello nel codice è composto da 4 barre e spazi in un modello lungo 17 unità (moduli). La simbologia PDF417 è stata inventata da Ynjiun P. Wang alla Symbol Technologies nel 1991. ( Wang 1993 ) È definita nello standard ISO 15438.
Applicazioni
PDF417 è utilizzato in molte applicazioni da organizzazioni sia commerciali che governative. PDF417 è uno dei formati (insieme a Data Matrix ) che può essere utilizzato per stampare le affrancature accettate dal servizio postale degli Stati Uniti . PDF417 è utilizzato anche dallo standard Bar Coded Boarding Pass ( BCBP ) del settore aereo come simbolismo del codice a barre 2D per le carte d'imbarco cartacee. PDF417 è lo standard selezionato dal Department of Homeland Security come tecnologia di zona leggibile dalla macchina per le patenti di guida conformi a RealID e le carte d'identità rilasciate dallo stato. I codici a barre PDF417 sono inclusi anche sui visti e sulle carte di attraversamento della frontiera emessi dallo Stato di Israele ( esempio ).
Caratteristiche
Oltre alle caratteristiche tipiche dei codici a barre bidimensionali, le funzionalità di PDF417 includono:
- Collegamento. I simboli PDF417 possono essere collegati ad altri simboli che vengono scansionati in sequenza consentendo di memorizzare ancora più dati.
- Dimensioni specificate dall'utente. L'utente può decidere quanto è larga la barra verticale più stretta (dimensione X) e quanto sono alte le righe (dimensione Y).
- Formato di pubblico dominio. Chiunque può implementare sistemi che utilizzano questo formato senza alcuna licenza .
L'introduzione del documento ISO/IEC afferma:
- I produttori di apparecchiature per codici a barre e gli utenti della tecnologia dei codici a barre richiedono specifiche di simbologia standard pubblicamente disponibili a cui possono fare riferimento durante lo sviluppo di apparecchiature e standard applicativi. È l'intento e la comprensione di ISO/IEC che la simbologia presentata in questo standard internazionale sia completamente di dominio pubblico e libera da tutte le restrizioni, licenze e costi per l'utente.
Formato
Il codice a barre PDF417 (chiamato anche simbolo ) è composto da 3 a 90 righe, ognuna delle quali è come un piccolo codice a barre lineare. Ogni riga ha:
- una zona tranquilla . Si tratta di una quantità minima di spazio bianca obbligatoria prima dell'inizio del codice a barre.
- un modello di inizio che identifica il formato come PDF417.
- un codice "riga sinistra" contenente informazioni sulla riga (come il numero di riga e il livello di correzione degli errori)
- 1–30 parole in codice dati : le parole in codice sono un gruppo di barre e spazi che rappresentano uno o più numeri, lettere o altri simboli.
- un codice "riga destra" con ulteriori informazioni sulla riga.
- uno schema di arresto.
- un'altra zona tranquilla.
Tutte le righe hanno la stessa larghezza; ogni riga ha lo stesso numero di parole di codice.
Parole in codice
PDF417 utilizza una codifica di base 929. Ogni codice rappresenta un numero da 0 a 928.
I codici sono rappresentati da modelli di regioni scure (barre) e chiare (spazio). Ciascuno di questi modelli contiene quattro barre e quattro spazi (da cui deriva il 4 nel nome). La larghezza totale è 17 volte la larghezza della barra verticale più stretta consentita (la dimensione X); da qui deriva il 17 nel nome. Ogni modello inizia con una barra e termina con uno spazio.
L'altezza della riga deve essere almeno 3 volte la larghezza minima: Y ≥ 3 X.
Ci sono tre distinti modelli di spazi tra barre usati per rappresentare ogni parola in codice. Questi modelli sono organizzati in tre gruppi noti come cluster . I cluster sono etichettati come 0, 3 e 6. In più di un cluster non viene utilizzato alcun modello di spazio tra le barre. Le righe del simbolo passano attraverso i tre cluster, quindi la riga 1 utilizza i modelli del cluster 0, la riga 2 utilizza il cluster 3, la riga 3 utilizza il cluster 6 e la riga 4 utilizza nuovamente il cluster 0.
Quale cluster può essere determinato da un'equazione:
Dove K è il numero del cluster e la b i si riferisce alla larghezza della i -esima barra nera nel carattere simbolo (in unità X ).
In alternativa,
Dove E i è l' i -esima distanza tra il prossimo bordo e lo stesso bordo. Gli indici dispari sono il bordo anteriore di una barra al bordo anteriore della barra successiva; anche gli indici sono per i bordi d'uscita.
Uno scopo dei tre cluster è determinare in quale riga (mod 3) si trova la parola del codice. I cluster consentono di leggere porzioni del simbolo utilizzando una singola linea di scansione che può essere inclinata rispetto all'orizzontale. Ad esempio, la scansione potrebbe iniziare sulla riga 6 all'inizio della riga ma terminare sulla riga 10. All'inizio della scansione, lo scanner vede il modello di inizio costante, quindi vede i simboli nel cluster 6. Quando la scansione inclinata a cavallo tra le file 6 e 7, quindi lo scanner rileva il rumore. Quando la scansione è sulla riga 7, lo scanner vede i simboli nel cluster 0. Di conseguenza, lo scanner conosce la direzione dell'inclinazione. Quando lo scanner raggiunge la destra, è sulla riga 10, quindi vede i modelli del cluster 0. Lo scanner vedrà anche uno schema di arresto costante.
Codifica
Delle 929 parole di codice disponibili, 900 sono utilizzate per i dati e 29 per funzioni speciali, come il passaggio tra le modalità principali. Le tre modalità principali codificano diversi tipi di dati in modi diversi e possono essere combinate secondo necessità all'interno di un singolo codice a barre:
- Byte : ogni gruppo di 5 parole di codice rappresenta 6 byte. (Perché 900 5 > 256 6 .) I byte aggiuntivi vengono codificati uno per parola di codice.
- Numerico : n cifre sono codificate in ⌊ n /3 ⌋ +1 parole di codice, fino a un massimo di 44 cifre in 15 parole di codice.
-
Testo : ogni parola in codice rappresenta due cifre in base 30, utilizzate da un sistema di quattro sottomodalità per rappresentare i caratteri ASCII stampabili (più CR , LF e HT ):
- Maiuscole: A–Z, SP , Cambia in minuscolo, Cambia in misto, Interpreta la cifra successiva come punteggiatura
- Minuscole: a–z, SP, Interpreta la cifra successiva come maiuscola, Passa a mista, Interpreta la cifra successiva come punteggiatura
- Misto: 0–9, &, CR, HT, virgola, :, #, -, punto, $, /, +, %, *, =, ^, Cambia in punteggiatura, SP, Cambia in minuscolo, Cambia in maiuscolo, Interpreta la cifra successiva come punteggiatura
- Punteggiatura: ;, <, >, @, [, \, ], _, `, ~, !, CR, HT, virgola, :, LF, -, punto, $, /, ", |, *, (, ), ?, {, }, ', Cambia in maiuscolo
Correzione dell'errore
Quando viene creato il simbolo PDF417, vengono aggiunti da 2 a 512 codici di rilevamento e correzione degli errori. PDF417 utilizza la correzione degli errori Reed–Solomon . Quando il simbolo viene scansionato, il numero massimo di correzioni che possono essere apportate è pari al numero di codeword aggiunte, ma lo standard raccomanda di trattenere due codeword per garantire l'affidabilità delle informazioni corrette.
Confronto con altre simbologie
PDF417 è un codice a barre impilato che può essere letto con una semplice scansione lineare che viene passata sul simbolo. Quelle scansioni lineari richiedono le colonne sinistra e destra con le parole del codice di inizio e fine. Inoltre, la scansione deve sapere quale riga sta scansionando, quindi ogni riga del simbolo deve anche codificare il suo numero di riga. Inoltre, la scansione della riga del lettore non scansiona solo una riga; in genere inizierà la scansione di una riga, ma poi passerà a un vicino e probabilmente continuerà ad attraversare le righe successive. Per ridurre al minimo l'effetto di questi incroci, i moduli PDF417 sono alti e stretti: l'altezza è in genere tre volte la larghezza. Inoltre, ogni parola in codice deve indicare a quale riga appartiene in modo che i crossover, quando si verificano, possano essere rilevati. Le parole in codice sono anche progettate per essere decodificabili con delta, quindi alcune parole in codice sono ridondanti. Ogni parola di codice dei dati PDF rappresenta circa 10 bit di informazioni (log 2 (900) ≈ 9.8), ma la parola di codice stampata (carattere) è larga 17 moduli. Includendo un'altezza di 3 moduli, una parola in codice PDF417 richiede 51 moduli quadrati per rappresentare 10 bit. Quell'area non conta altre spese generali come l'inizio, l'arresto, la riga, il formato e le informazioni ECC.
Altri codici 2D, come DataMatrix e QR , vengono decodificati con sensori di immagine invece di scansioni lineari non coordinate. Questi codici necessitano ancora di schemi di riconoscimento e allineamento, ma non devono essere così importanti. Una parola di codice a 8 bit occuperà 8 moduli quadrati (ignorando il riconoscimento, l'allineamento, il formato e le informazioni ECC).
In pratica, un simbolo PDF417 occupa circa quattro volte l'area di un DataMatrix o QR Code.
Riferimenti
- ISO / IEC (2006), Tecnologia dell'informazione - Tecniche di identificazione e acquisizione dati automatica - PDF417 codice a barre simbologia specifica (PDF) (seconda ed.), ISO / IEC 15438: 2006 (E)
- US 5243655 , Wang, Ynjiun P., "System for Encoding and Decoding Data in Machine Readable Graphic Form", pubblicato 1993-09-07 . Brevetto PDF417.
