La correzione degli errori dei QR code è una ridondanza integrata che permette a un codice di essere letto anche quando una parte è sporca, rovinata o coperta. Esistono quattro livelli: L recupera circa il 7% dei dati, M circa il 15%, Q circa il 25% e H circa il 30%. I livelli più alti sono più robusti ma rendono il codice più denso.
Come funziona la correzione degli errori
Un QR code non si limita a memorizzare il tuo testo una volta sola sperando che vada tutto bene. Quando il codice viene creato, i dati vengono divisi in blocchi di byte chiamati codeword, e vengono calcolate e aggiunte delle codeword extra per la correzione degli errori. Si usa un metodo matematico chiamato correzione degli errori Reed–Solomon, la stessa famiglia di tecniche impiegata da decenni in CD, DVD e trasmissione dei dati.
Quando un telefono scansiona il codice, legge tutte le codeword. Se alcune sono illeggibili o errate a causa di un graffio, una macchia o un logo sovrapposto, lo scanner usa le codeword extra per ricostruire le parti mancanti. Finché il danno resta entro ciò che il livello è in grado di gestire, la scansione riesce e non ti accorgi nemmeno che qualcosa non andava.
Il livello di correzione degli errori è registrato in una piccola area del codice chiamata informazione di formato, memorizzata due volte perché lo scanner possa leggerla in modo affidabile.
I quattro livelli: L, M, Q e H
Ogni livello scambia spazio di memorizzazione con robustezza. Le percentuali qui sotto indicano, in modo approssimativo, quanta parte dei dati del codice può essere ripristinata.
- Livello L (Low), circa 7%. Il massimo dei dati nel codice più piccolo. Adatto a usi puliti, al chiuso o su schermo, dove i danni sono improbabili.
- Livello M (Medium), circa 15%. Un'impostazione equilibrata e molto comune. Adatta alla maggior parte dei materiali stampati, come volantini, menu e biglietti da visita.
- Livello Q (Quartile), circa 25%. Protezione extra per codici che possono sporcarsi o consumarsi, come su confezioni, etichette o in officina.
- Livello H (High), circa 30%. La massima robustezza. Spesso scelto per insegne all'aperto, ambienti difficili o codici con un logo al centro.
Queste cifre descrivono i dati recuperabili, non "puoi coprire il 30% dell'immagine". Un danno nel punto sbagliato, soprattutto sui tre grandi quadrati d'angolo, può impedire la lettura anche se l'area colpita è piccola.
Il compromesso: robustezza contro densità
La correzione degli errori non è gratis. Le codeword extra occupano spazio all'interno del codice. A parità di contenuto, un livello più alto significa:
- Più moduli, cioè i quadratini bianchi e neri
- Una "versione" del QR code più grande, che va da 21 × 21 moduli nella versione 1 fino a 177 × 177 nella versione 40
- Quadratini più piccoli quando il codice è stampato alla stessa dimensione fisica
I quadratini più piccoli sono più difficili da distinguere per le fotocamere, soprattutto a distanza, con poca luce o su telefoni più vecchi. Per questo scegliere il livello H per un lungo indirizzo web su un'etichetta minuscola può rendere il codice meno affidabile, non di più.
Di solito la soluzione è ridurre i dati. Un link breve, come i link qr-th.com/r/ usati dai codici dinamici di QR-TH, mantiene corto il contenuto. Così resta spazio per un livello di correzione più alto senza rendere il codice troppo denso. La nostra guida ai QR code statici e dinamici spiega come funzionano i link brevi.
Quale livello scegliere?
Usa questa semplice guida:
- Mostrato su uno schermo o stampato pulito al chiuso? Basta il livello L o M.
- Normale materiale di marketing stampato, come menu, volantini o poster? Il livello M è una scelta affidabile.
- Rischia di graffiarsi, bagnarsi, sporcarsi o essere coperto in parte? Scegli Q.
- Logo al centro, insegna all'aperto o condizioni difficili? Scegli H e mantieni brevi i dati.
- Qualunque livello scegli, prova il codice stampato su più telefoni, alla distanza e con la luce reali.
Molti generatori di QR code scelgono automaticamente un livello sensato, spesso alzandolo quando aggiungi un logo. Se il tuo strumento ti permette di scegliere, pensa a dove vivrà il codice invece di impostare sempre il massimo.
Correzione degli errori e loghi
Mettere un logo al centro di un QR code funziona grazie alla correzione degli errori: il logo nasconde alcuni moduli e lo scanner li ricostruisce dai dati ridondanti. Alcune regole lo rendono affidabile:
- Usa il livello H, o almeno Q, quando aggiungi un logo.
- Tieni il logo ragionevolmente piccolo e centrato. Lascia un ampio margine rispetto al livello massimo di recupero, perché anche i danni reali, i riflessi e la sfocatura consumano la riserva di correzione.
- Non coprire mai i tre grandi quadrati d'angolo né la zona di rispetto attorno al codice.
- Mantieni un contrasto forte tra codice e sfondo.
Per altri consigli di design, leggi il nostro articolo sulle buone pratiche di design dei QR code.
Cosa la correzione degli errori non può sistemare
La correzione degli errori è potente, ma ha dei limiti. Non salva un codice che ha:
- Contrasto scarso, come grigio chiaro su bianco o scuro su scuro
- Nessuna zona di rispetto, perché è stampato a ridosso di altri elementi grafici
- Quadrati d'angolo danneggiati
- Quadratini troppo piccoli per essere distinti alla distanza di scansione
- Forti distorsioni, per esempio su una superficie molto curva
- Riflessi di una plastificazione lucida che "bruciano" ampie zone
La correzione degli errori inoltre non rende un codice più sicuro. Un QR code con livello H può comunque portare a un sito pericoloso, e un adesivo truffa applicato sopra un codice autentico si legge perfettamente. Se hai dubbi su un codice, scansiona prima il QR code online con QR-TH per vedere la destinazione prima che si apra qualsiasi cosa.
FAQ
Qual è il miglior livello di correzione degli errori?
Non esiste un livello migliore in assoluto. M è una buona scelta per la maggior parte degli usi stampati, mentre H è adatto a loghi e a condizioni all'aperto o difficili. Scegli in base a dove verrà usato il codice.
Un livello di correzione più alto rende il QR code più grande?
A parità di dati, sì. Aggiunge moduli, quindi o il codice stampato diventa più grande o i singoli quadratini diventano più piccoli.
Posso mettere un logo su qualsiasi QR code?
Solo se c'è abbastanza correzione degli errori per compensare l'area nascosta, quindi usa Q o H. Tieni il logo piccolo e lontano dai quadrati d'angolo, e fai sempre una prova prima di stampare.
Posso cambiare il livello di correzione dopo la stampa?
No. Il livello fa parte dello schema stampato. Per cambiarlo devi generare e stampare un nuovo codice.
Vuoi un codice che resti leggibile nel mondo reale? Crealo con il generatore di QR code gratuito di QR-TH, mantieni breve il contenuto e provalo su un paio di telefoni prima di stampare.