Ogni QR code porta con sé una specie di assicurazione integrata: la correzione errori Reed-Solomon, che permette allo scanner di ricostruire i dati anche quando una parte del pattern è sporca, graffiata o coperta. Questa assicurazione esiste in quattro livelli — L, M, Q e H — in grado di recuperare rispettivamente circa il 7, il 15, il 25 e il 30 percento dei dati del codice. Scegliere tra loro è un compromesso: più robustezza significa meno spazio per i contenuti oppure un pattern più denso e difficile da scansionare.
Cosa fa davvero la correzione errori
Un QR code è molto più della griglia bianca e nera che vedi. Oltre ai dati, il codice contiene informazioni di backup ridondanti prodotte da un algoritmo chiamato codifica Reed-Solomon — la stessa famiglia di correzione errori usata da decenni nei CD e nella trasmissione digitale. Quando uno scanner legge il codice, una parte di ciò che riceve può essere errata o mancante: un'impronta digitale trasforma un modulo nero in bianco, un graffio elimina una riga, l'inchiostro è sbiadito. Reed-Solomon permette allo scanner di individuare questi difetti e ricostruire matematicamente i pezzi mancanti. Il codice stampato non cambia nulla: il recupero avviene interamente nel software di decodifica.
Il livello di correzione errori viene fissato in fase di generazione. È registrato nelle informazioni di formato del codice, che gli scanner leggono prima di ogni altra cosa, così ogni scanner standard sa quanta ridondanza aspettarsi. Non puoi alzare o abbassare il livello a codice esistente: l'unico modo per cambiarlo è generare di nuovo il codice e sostituire il vecchio.
I quattro livelli: L, M, Q e H
Lo standard QR definisce quattro livelli, identificati da lettere:
- L (Low): recupera circa il 7% dei dati.
- M (Medium): circa il 15%.
- Q (Quartile): circa il 25%.
- H (High): circa il 30%.
Solo la Q rompe lo schema delle iniziali: "quartile" riflette il suo valore di recupero, all'incirca un quarto.
Due chiarimenti importanti. Primo: le percentuali non significano che il codice sopravvive alla perdita del 7% o del 30% della sua superficie. Si riferiscono alle codeword, le unità di dati di cui il codice è composto, e il recupero dipende fortemente da dove cade il danno. Secondo: i valori sono approssimativi e descrivono ciò che il meccanismo può recuperare in condizioni favorevoli; non sono una garanzia. Se il danno colpisce gli elementi strutturali, come i tre grandi quadrati di posizionamento negli angoli o i pattern di sincronizzazione tra essi, nessun livello salverà il codice, perché quelle parti non hanno un backup come i dati.
Cosa significano le percentuali per stampe sporche o danneggiate
Il danno reale arriva in due forme, che si comportano in modo molto diverso.
Il danno leggero e disperso — unto delle dita, una goccia di caffè, una leggera sbiaditura, l'usura generale della manipolazione — corrompe bit distribuiti su molte codeword. È esattamente ciò che Reed-Solomon gestisce meglio. Il livello M di solito lo assorbe del tutto; il livello L può già essere in difficoltà, perché il suo budget del 7% si esaurisce in fretta.
Il danno pesante e concentrato — un angolo strappato, un'etichetta incollata su una parte del codice, un foro, un taglio profondo — è il caso più insidioso. Un danno localizzato elimina codeword consecutive in un'unica zona, quindi uno strappo che copre molto meno del 30% della superficie può comunque avere la meglio su un codice H, soprattutto se tocca un pattern di posizionamento. Tratta le percentuali pubblicate come una descrizione del danno ben distribuito, non come una promessa contro uno strappo che attraversa il centro.
Vale anche sapere cosa la correzione errori non può sistemare a nessun livello: la sfocatura, il scarso contrasto, i riflessi, una lente della fotocamera sporca o una quiet zone mancante (il margine bianco attorno al codice). Sono problemi di acquisizione, non di perdita di dati, e nessun budget di ridondanza li compensa.
Loghi e personalizzazione: perché H è la scelta standard
Mettere un logo al centro di un QR code copre deliberatamente dei moduli: stai spendendo il budget di danno prima ancora che il codice veda una stampante. Con L o M è un azzardo; con H, la ridondanza di circa il 30% lascia margine sufficiente perché un logo di dimensioni contenute possa stare in sicurezza al centro. Ecco perché i codici con logo sovrapposto vengono generati quasi sempre al livello H.
Regole pratiche per i codici con logo:
- Mantieni il logo piccolo: circa un quarto della larghezza del codice o meno è una linea guida comune.
- Non coprire mai i tre quadrati di posizionamento né la quiet zone.
- Preferisci sfondi del logo pieni e opachi a quelli traslucidi, che confondono la lettura bianco-nero.
- Prova a scansionare una prova di stampa, non solo la versione a schermo, prima di mandare in stampa.
Vale la pena capire il meccanismo: lo scanner legge il pattern attorno al logo, e la correzione errori ricostruisce i moduli nascosti. Se il logo è troppo grande, il budget di recupero si esaurisce e il codice semplicemente non funziona — pur sembrando perfettamente normale a occhio nudo.
Il compromesso: robustezza contro densità
I dati ridondanti devono stare da qualche parte, ed è lì che il compromesso si fa sentire. A parità di contenuto, un livello più alto significa più codeword destinate al backup, con due possibili conseguenze.
Primo: meno spazio per il tuo contenuto a parità di dimensione del codice. Un codice generato in H contiene sensibilmente meno testo della stessa versione in L, quindi URL o messaggi più lunghi potrebbero semplicemente non entrare.
Secondo: un pattern più grande e più denso. Se il contenuto non entra, il generatore porta il codice a una versione superiore — più moduli nella griglia e quindi moduli più piccoli a parità di dimensioni stampate. I moduli piccoli richiedono una stampa più nitida e una scansione più ravvicinata e stabile. Un URL lungo che sta comodamente in un codice L di dimensioni modeste può diventare un codice Q o H visibilmente più denso alla stessa dimensione fisica, e su un biglietto da visita può fare la differenza tra una scansione immediata e un fallimento.
Vale anche il contrario: scegliere H per un codice pulito destinato allo schermo non porta quasi nulla. Gli schermi non si sporcano, e la penalità di densità è reale. Adatta il livello alle condizioni che il codice affronterà davvero.
Come scegliere: una guida pratica
- L — condizioni pulite e controllate, contenuti brevi: codici a schermo, insegne grandi dove il codice può essere stampato in grande, o quando serve la massima capacità nel minimo spazio.
- M — l'impostazione predefinita sensata per la stampa di tutti i giorni: volantini, menù, brochure, depliant. Un buon equilibrio tra robustezza e densità.
- Q — stampe destinate al pubblico e manipolate: biglietti, imballaggi, etichette sugli scaffali, tutto ciò che rischia usura o sporco leggero.
- H — ambienti difficili o sporchi, manipolazione brusca, tessuti o stampe di bassa qualità, e qualsiasi codice con logo sovrapposto.
Nel dubbio: M per i codici semplici, H per i codici con logo. La maggior parte dei generatori — incluso QRCodeMax.Vip — permette di impostare il livello prima del download, quindi produrre due versioni e confrontarne dimensioni e scansione non costa nulla.
Errori comuni da evitare
- Dare per scontato che H renda la scansione "migliore" in assoluto. Aggiunge ridondanza, non portata né velocità; un codice H grande e denso può scansionare peggio di un codice M più grande e più rado.
- Coprire la quiet zone o i pattern di posizionamento e aspettarsi che la correzione errori compensi. Non lo farà.
- Scegliere L per tenere il codice piccolo, per poi stamparlo comunque minuscolo. Dimensione di stampa e contrasto causano più fallimenti di scansione di quanto faccia un livello di correzione errori moderato.
- Saltare la scansione di prova. Il livello è invisibile nel codice finito; l'unico modo per verificarlo è scansionare — idealmente una stampa che abbia già subito le piegature, gli sfregamenti e la manipolazione che affronterà nell'uso reale.
Conclusione
La correzione errori è un quadrante tra robustezza e densità. L recupera circa il 7% dei dati danneggiati, M circa il 15%, Q circa il 25% e H circa il 30%, e ogni passo in su costa capacità di dati o dimensione del pattern. Scegli M per la stampa di tutti i giorni, H per i loghi e le condizioni difficili, e L solo quando lo spazio è poco e le condizioni sono pulite — poi prova sempre a scansionare il risultato finale stampato.