Come funzionano i codici QR: anatomia, correzione degli errori e capacità
Cosa succede davvero quando il telefono legge un codice QR? Una guida chiara a pattern di posizionamento, moduli, versioni, livelli di correzione degli errori e quantità di dati che un QR code può contenere.
Pubblicato 6 min di lettura
I codici QR sono ovunque: sui tavoli dei ristoranti, sui pacchi, sui biglietti del treno, sui biglietti da visita e sui terminali di pagamento. Eppure poche persone sanno cosa si nasconde dentro quei quadratini bianchi e neri, o perché un codice continua a funzionare anche quando una parte è coperta da un logo. Questa guida spiega in parole semplici come funzionano i codici QR.
Un po’ di storia
Il codice QR (abbreviazione di Quick Response code, cioè “codice a risposta rapida”) è stato inventato nel 1994 da Masahiro Hara presso Denso Wave, un’azienda giapponese del gruppo Toyota. Le fabbriche di automobili avevano bisogno di tracciare i componenti più velocemente di quanto consentissero i codici a barre monodimensionali. Un classico codice a barre memorizza i dati in una sola direzione e contiene circa 20 caratteri; un codice QR li memorizza sia in orizzontale sia in verticale e può contenerne diverse migliaia.
Denso Wave ha brevettato la tecnologia ma ha scelto di non far valere il brevetto, e il formato è diventato uno standard internazionale (ISO/IEC 18004). Questa apertura è il motivo principale per cui chiunque può generare e leggere codici QR gratuitamente, su qualsiasi dispositivo.
L’anatomia di un codice QR
Ogni codice QR è una griglia quadrata di piccole celle chiamate moduli. Ogni modulo è scuro o chiaro e rappresenta un bit. Alcune zone della griglia hanno compiti fissi:
- Pattern di posizionamento (finder pattern): i tre grandi quadrati negli angoli. Permettono allo scanner di trovare subito il codice e di capirne l’orientamento, anche quando è capovolto o fotografato di sbieco.
- Pattern di allineamento: quadrati più piccoli (dalla versione 2 in su) che aiutano a correggere la distorsione quando il codice è stampato su una superficie curva o visto in prospettiva.
- Pattern di temporizzazione (timing pattern): linee di moduli alternati scuri e chiari tra i pattern di posizionamento. Indicano allo scanner quanto è grande ciascun modulo.
- Informazioni di formato: strisce accanto ai pattern di posizionamento che memorizzano il livello di correzione degli errori e la maschera utilizzata.
- Zona di rispetto (quiet zone): il margine vuoto attorno al codice. Fa parte della specifica: senza di essa, lo scanner non riesce a capire dove finisce il codice e dove inizia lo sfondo.
Tutto il resto è costituito da parole di codice di dati e di correzione degli errori, distribuite in modo intercalato su tutta la griglia.
Versioni: perché alcuni codici sono più densi
I codici QR esistono in 40 dimensioni chiamate versioni. La versione 1 misura 21 × 21 moduli; ogni versione aggiunge 4 moduli per lato, fino alla versione 40 con 177 × 177 moduli. Più dati codifichi, più alta è la versione e più piccolo diventa ciascun modulo a parità di dimensione di stampa.
Ecco perché un URL breve produce un motivo pulito e arioso, mentre un lungo blocco di testo ne produce uno fitto, che va stampato più grande. Quando generi un codice con il nostro generatore di QR code, l’anteprima mostra la versione e il numero di moduli, così puoi tenere sotto controllo la densità.
Modalità di codifica e capacità
Un codice QR sceglie la modalità di codifica più efficiente per il tuo contenuto:
| Modalità | Caratteri | Capacità max. (versione 40, livello L) |
|---|---|---|
| Numerica | 0–9 | 7.089 cifre |
| Alfanumerica | 0–9, A–Z, spazio e $%*+-./: |
4.296 caratteri |
| Byte | Qualsiasi dato, di solito testo UTF-8 | 2.953 byte |
| Kanji | Caratteri giapponesi | 1.817 caratteri |
Si tratta di massimi teorici. In pratica, i codici restano facili da scansionare fino a qualche centinaio di caratteri. Se devi condividere di più, codifica piuttosto un link breve a una pagina web.
Correzione degli errori: il segreto dietro i loghi
I codici QR usano la correzione degli errori Reed–Solomon, la stessa matematica che permette ai CD e ai DVD graffiati di continuare a funzionare. Vengono aggiunte parole di codice supplementari, così i dati originali possono essere ricostruiti anche se una parte del codice è danneggiata, sporca o nascosta. Esistono quattro livelli:
- L (Low, basso) — recupera circa il 7% delle parole di codice danneggiate
- M (Medium, medio) — circa il 15%
- Q (Quartile) — circa il 25%
- H (High, alto) — circa il 30%
I livelli più alti rendono il codice più robusto ma anche più grande, perché più spazio viene dedicato alla ridondanza. È proprio questo che rende possibili i QR code con logo: un logo al centro “danneggia” di proposito una parte del codice e la correzione degli errori colma la lacuna. Se aggiungi un logo, scegli il livello Q o H e fai in modo che occupi meno di circa un quarto della superficie del codice.
Consiglio: la correzione degli errori non sostituisce un buon contrasto. Un codice troppo chiaro, troppo piccolo o privo della zona di rispetto può non essere letto anche al livello H.
Mascheratura: mantenere i motivi leggibili
I dati grezzi possono creare per caso grandi blocchi di un solo colore o forme simili ai pattern di posizionamento, che confondono gli scanner. Per evitarlo, l’encoder applica una delle otto maschere previste (formule matematiche che invertono determinati moduli) e tiene quella con il “punteggio di penalità” più basso. Lo scanner legge il numero della maschera dalle informazioni di formato e la annulla. Non devi mai preoccuparti delle maschere, ma sono il motivo per cui due codici con contenuti quasi identici possono apparire completamente diversi.
Cosa succede quando scansioni
Quando inquadri un codice QR con la fotocamera, lo scanner:
- Trova i tre pattern di posizionamento e calcola posizione, dimensione e rotazione del codice.
- Corregge la prospettiva grazie ai pattern di allineamento, così un codice inclinato diventa una griglia piatta.
- Campiona ogni modulo come scuro o chiaro, usando i pattern di temporizzazione come righello.
- Legge le informazioni di formato, rimuove la maschera e raccoglie le parole di codice.
- Ripara gli errori con la decodifica Reed–Solomon.
- Interpreta i dati (un link, le credenziali di una rete Wi-Fi, un biglietto da visita) e propone l’azione giusta.
Tutto questo richiede pochi millisecondi. Puoi provarlo tu stesso con il nostro scanner di QR code online, che esegue questi passaggi direttamente nel browser su un’immagine caricata, un link o la fotocamera.
QR code statici e dinamici
Un codice QR statico contiene direttamente il contenuto finale: l’URL, la password del Wi-Fi o il testo stesso. Funziona per sempre, non ha bisogno di un server e non può essere tracciato. Un codice QR dinamico contiene invece un breve link di reindirizzamento gestito da un fornitore di servizi, che permette di cambiare la destinazione in seguito e di contare le scansioni, ma smette di funzionare quando l’abbonamento scade.
Tutti i codici creati su QR.tools sono statici: gratuiti, privati e permanenti. Se in futuro devi cambiare la destinazione, fai puntare il codice a una pagina che gestisci tu e aggiorna quella pagina.
Cosa può contenere un codice QR?
Dato che un codice QR memorizza semplicemente del testo, è il formato di quel testo a stabilire cosa ne fa il telefono. Tra i formati standard ci sono:
- URL — aprono un sito web (
https://…) - Wi-Fi — connettono a una rete (
WIFI:T:WPA;S:…;P:…;;): vedi il generatore di QR code Wi-Fi - vCard — salvano un contatto: vedi il generatore di QR code vCard
- Email, SMS e telefono — avviano un messaggio o una chiamata con
mailto:,SMSTO:etel: - Eventi del calendario — aggiungono un evento tramite un
VEVENTiCalendar - Posizioni geografiche — aprono una mappa con le coordinate
geo:
In sintesi
- Un codice QR è una griglia di moduli con pattern fissi di posizionamento, temporizzazione e allineamento attorno ai tuoi dati.
- Più contenuto significa una versione più alta, un motivo più denso e una dimensione minima di stampa maggiore.
- La correzione degli errori (L, M, Q, H) permette ai codici di resistere ai danni e rende possibili i loghi.
- I codici statici sono permanenti e privati; quelli dinamici sono modificabili ma dipendono da un fornitore.
Pronto a crearne uno? Apri il generatore di QR code e crea in pochi secondi un codice con i tuoi colori e il tuo logo.
Pronto a creare il tuo codice QR?
Crea un QR code personalizzato con il tuo logo e i tuoi colori in pochi secondi, gratis e senza registrazione.
Apri il generatore