Come funzionano i codici QR

Detto anche: codifica dei codici QR, decodifica dei codici QR, how QR codes work

Definizione

Un codice QR funziona trasformando i dati in codeword, aggiungendo la correzione degli errori Reed-Solomon e disponendo i bit in una griglia attorno a pattern fissi che aiutano la fotocamera a trovarlo, raddrizzarlo e leggerlo.

Dai dati al disegno

Creare un codice QR comincia scegliendo una modalità di codifica adatta ai dati: numerica, alfanumerica, byte o kanji. Il codificatore converte i dati in bit, li divide in codeword da 8 bit e aggiunge i codeword di correzione degli errori Reed-Solomon al livello scelto. Poi sceglie la versione più piccola che li contiene.

I codeword vengono disposti nella griglia lungo un percorso a zigzag che salta i pattern fissi. Infine il codificatore applica una delle otto maschere per spezzare le grandi aree vuote o le forme ambigue, e registra la maschera e il livello di correzione degli errori nelle informazioni di formato.

  • Scegliere la modalità di codifica
  • Codificare i dati e aggiungere i codeword di correzione degli errori
  • Scegliere la versione (dimensione)
  • Posizionare i pattern di ricerca, di temporizzazione e di allineamento
  • Inserire i moduli di dati
  • Applicare la migliore delle otto maschere e scrivere le informazioni di formato

Dall'immagine della fotocamera ai dati

La decodifica ripete gli stessi passaggi al contrario. Lo scanner trova i tre pattern di ricerca, il cui rapporto 1:1:3:1:1 tra scuro e chiaro si distingue dalla maggior parte delle immagini, e li usa insieme ai pattern di temporizzazione e di allineamento per mappare la griglia. Legge le informazioni di formato, rimuove la maschera e raccoglie i codeword.

La decodifica Reed-Solomon ripara poi i codeword letti male, fino al limite del livello di correzione degli errori. Se i danni sono troppi, il codice non viene letto, invece di restituire dati sbagliati: per questo i codici QR producono di rado risultati illeggibili.

Perché contano dimensione e contrasto

Ogni passaggio dipende dalla capacità della fotocamera di distinguere i moduli scuri da quelli chiari. Moduli piccoli, contrasto scarso, riflessi, sfocatura o una zona di rispetto mancante mettono in dubbio più moduli, e la correzione degli errori può assorbirne solo un certo numero. Tenere i dati corti, il contrasto forte e il margine libero rende il lavoro del decodificatore il più facile possibile.

Domande frequenti

Come fa un telefono a sapere dov'è il codice QR?

Cerca i tre grandi pattern di ricerca quadrati agli angoli. Il loro rapporto caratteristico 1:1:3:1:1 permette allo scanner di trovarli da qualsiasi angolazione e di capire l'orientamento.

Perché i codici QR hanno una maschera?

La maschera inverte i moduli secondo uno schema fisso, così il codice evita grandi aree uniformi e forme simili ai pattern di ricerca. Il codificatore prova tutte e otto le maschere e tiene quella che si legge in modo più affidabile.

Un codice QR si può leggere capovolto?

Sì. I pattern di ricerca indicano l'orientamento allo scanner, quindi un codice QR si può leggere con qualsiasi rotazione.

Fonti e standard

Tutti i termini