}
FreeQR
Back to Blog
Corectia Erorilor in Codurile QR: De Ce Codurile Deteriorate Inca Functioneaza

Corectia Erorilor in Codurile QR: De Ce Codurile Deteriorate Inca Functioneaza

Aflati cum functioneaza corectia erorilor in codurile QR, cele patru niveluri (L, M, Q, H) si de ce codurile deteriorate inca pot fi scanate. Alegeti nivelul potrivit cu FreeQR.

Un cod QR de meniu de restaurant cu un cerc de cafea pe un colt. Un panou de gradina decolorat de trei luni de soare direct. O eticheta de depozit patata cu unsoare. Toate trei inca se scaneaza.

Nu este noroc. Fiecare cod QR contine date redundante care permit scanerelor sa reconstruiasca partile deteriorate sau lipsa. Specificatia ISO/IEC 18004:2024 numeste aceasta corectie a erorilor in codurile QR, si face parte din format de cand a fost standardizat pentru prima data in 2000. Un cod de bare traditional cu aceeasi deteriorare ar fi ilizibil.

Concluzii cheie:

  • Codurile QR folosesc corectia erorilor Reed-Solomon pentru a se recupera din deteriorari fizice, conform ISO/IEC 18004:2024.

  • Patru niveluri: L (7%), M (15%), Q (25%), H (30%). Procentul se refera la cuvintele de cod recuperabile, nu la suprafata fizica.

  • O corectie mai mare inseamna mai multa toleranta la deteriorare, dar mai putina capacitate de date.

  • Codurile QR nu afiseaza niciodata date incorecte. Esueaza in siguranta cand deteriorarea depaseste capacitatea de corectie.

  • Codurile QR dinamice stocheaza URL-uri scurte de redirectionare, asa ca nivelul M ofera suficienta marja pentru majoritatea cazurilor de utilizare.

Ce este corectia erorilor in codurile QR?

Module deteriorate ale codului QR evidentiate in rosu, reconstruite in verde prin corectia erorilor Reed-Solomon

Ganditi-va la aceasta ca la o copie de siguranta incorporata in codul insusi. Cand murdaria, zgarieturile sau decolorarea distrug o parte din modulele alb-negru, scanerul foloseste acea copie de siguranta pentru a completa golurile. Mesajul complet ajunge chiar si cu fragmente lipsa.

Matematica din spatele acesteia se numeste corectia erorilor Reed-Solomon. Irving S. Reed si Gustave Solomon au publicat-o in 1960 la MIT Lincoln Laboratory pentru comunicatii prin satelit, unde zgomotul semnalului altereaza datele transmise. Acelasi algoritm a ajuns in CD-uri, DVD-uri, discuri Blu-ray si in sistemele de date ale sondelor Voyager ale NASA. Cand DENSO WAVE a proiectat codul QR in 1994, Reed-Solomon a fost o alegere naturala. Supravietuise deja spatiului cosmic.

Standardul codurilor QR specifica patru niveluri de corectie a erorilor. Fiecare nivel determina cata redundanta contine codul si, ca un compromis direct, cate date totale poate stoca.

Cele patru niveluri de corectie a erorilor in codurile QR

Fiecare cod QR este generat la unul dintre cele patru niveluri de corectie a erorilor. Tabelul de mai jos arata ce recupereaza fiecare nivel, cata capacitate de date ofera la dimensiunea maxima (Versiunea 40, cel mai mare cod QR definit in specificatie) si unde se potriveste cel mai bine.

Nivel

Nume

Recuperare

Capacitate max. (V40)

Ideal pentru

L

Low

7%

2,953 bytes

Ecrane digitale, medii curate

M

Medium

15%

2,331 bytes

Tipar interior, fluturasi, meniuri (cea mai comuna valoare implicita)

Q

Quartile

25%

1,663 bytes

Semnalizare exterioara, ambalaj, suprafete supuse uzurii

H

High

30%

1,273 bytes

Logo pe cod, medii industriale si de fabrica

Mai multa protectie costa spatiu de stocare. La Versiunea 40, nivelul L stocheaza 2,953 bytes. Nivelul H stocheaza 1,273. Aceasta reprezinta o reducere de 57% a capacitatii in schimbul rezistentei la deteriorare.

Majoritatea generatoarelor folosesc nivelul M ca valoare implicita. DENSO WAVE confirma ca este nivelul cel mai frecvent selectat in practica. Nivelul M gestioneaza zgarieturile minore, decolorarea usoara si petele de amprente fara a face codul mai mare decat este necesar.

Aceste procente ISO sunt maxime teoretice. In practica, codurile tind sa esueze mai devreme. Inginerul software Huon Wilson a testat 12,800 de configuratii de coduri QR cu deteriorari simulate si a constatat ca codurile de nivel H au produs cu 60% mai multe scanari reusite decat cele de nivel L. Pragurile practice de esec au fost aproximativ 6% pentru L, 12% pentru M, 18% pentru Q si 20% pentru H. Deteriorarea reala nu se distribuie uniform, asa ca codul isi atinge limita mai devreme decat sugereaza specificatia.

Cat de mult poate fi deteriorat un cod QR?

Cod QR cu pata de cafea in centru care inca se scaneaza versus cod QR cu coltul rupt care esueaza

Procentele din tabel se refera la cuvinte de cod (unitati de date codificate), nu la suprafata fizica. Deteriorarea a 15% din suprafata nu inseamna neaparat coruperea a 15% din cuvintele de cod. Motivul tine de modul in care datele sunt aranjate in interiorul grilei.

Intercalarea cuvintelor de cod

Pentru codurile QR mai mari, datele codificate sunt impartite in mai multe blocuri Reed-Solomon si apoi intercalate inainte de a fi plasate in grila. O zgarietura care traverseaza codul in diagonala nu distruge cuvinte de cod consecutive. In schimb, deterioreaza un cuvant de cod aici, sare peste trei, deterioreaza altul acolo. Deteriorarea se distribuie intre mai multe blocuri de corectie in loc sa copleseasca unul singur. De aceea o zgarietura lunga este adesea mai usor de supravietuit decat o gaura adanca intr-un singur punct.

Detectia erorilor versus corectia erorilor

Reed-Solomon poate detecta de doua ori mai multe erori decat poate corecta. La nivelul M, algoritmul corecteaza pana la 15% din cuvintele de cod corupte, dar detecteaza coruperea pana la 30%. Cand deteriorarea depaseste bugetul de corectie dar ramane in intervalul de detectie, scanerul stie ca datele sunt compromise si nu returneaza nimic.

Aceasta este o functie de siguranta. Un cod QR deteriorat nu va trimite niciodata catre site-ul gresit si nu va incarca suma in contul gresit. Functioneaza corect sau nu returneaza nimic. Pentru codurile de plata si tokenurile de autentificare, aceasta distinctie conteaza foarte mult.

Exceptia modelelor de cautare

Cele trei patrate mari din colturile fiecarui cod QR sunt modelele de cautare. Scanerul le foloseste pentru a localiza si orienta codul. Acestea nu sunt protejate de corectia erorilor asa cum sunt modulele de date. Daca o ruptura, o indoitura sau un autocolant acopera unul dintre cele trei colturi, codul va esua aproape sigur, indiferent de nivelul de corectie. Nicio cantitate de redundanta nu salveaza un cod cu un colt lipsa.

Ce nivel de corectie a erorilor ar trebui sa alegeti?

Iata ce sa alegeti pentru situatiile obisnuite.

Tipar interior (meniuri, fluturasi, carti de vizita): Nivelul M. Medii curate cu contact fizic minim. Nivelul M gestioneaza petele sau cutele ocazionale fara a face codul mai mare decat este necesar.

Suprafete exterioare sau expuse intemperiilor (panouri de gradina, autocolante, statii de autobuz): Nivelul Q sau H. Decolorare de la razele UV, ploaie, contact fizic din partea trecatorilor. Aceste coduri au nevoie de un buget mai mare de corectie a erorilor, deoarece deteriorarea se acumuleaza de-a lungul saptamanilor si lunilor.

Coduri QR cu logo sau design personalizat: Nivelul H. Un logo central acopera intentionat module de date, de obicei 20-30% din suprafata codului. Bugetul de corectie de 30% al nivelului H absoarbe acest lucru. Fara acesta, riscati. Un studiu al AutoID Lab de la University of Memphis a testat coduri QR cu design si a constatat ca rata de citire a fost in medie de 61,5%, cu cea mai slaba scazand la 9,6%. Codurile nemodificate au atins ~95%. Principala cauza a esecului a fost deteriorarea colturilor modelelor de cautare.

Afisaj digital (ecrane, prezentari, e-mail): Nivelul L. Nu exista risc de deteriorare fizica. Codul exista ca pixeli pe un ecran. Nivelul L pastreaza codul compact si rapid de scanat.

Coduri QR dinamice: Nivelul M este de obicei suficient. Un cod QR dinamic stocheaza doar un URL scurt de redirectionare (de exemplu, freeqr.to/abc123), nu continutul complet al destinatiei. Mai putine date inseamna mai putine module, ceea ce inseamna ca corectia erorilor are proportional mai mult spatiu de lucru.

In designerul FreeQR, cele patru setari de corectie a erorilor sunt etichetate Low, Medium, High si Highest (corespunzand nivelurilor L, M, Q si H). Valoarea implicita este Medium. Cand adaugati un logo, indicatorul de scanabilitate va avertizeaza daca logo-ul acopera prea multe module pentru nivelul selectat. Codurile dinamice permit, de asemenea, actualizarea destinatiei fara reimprimate.

Un aspect important: nivelul de corectie a erorilor este stabilit la generarea codului. Nu poate fi modificat dupa imprimare. Daca alegeti nivelul L si ulterior mutati codul in exterior, singura solutie este un cod nou la un nivel superior. In caz de dubiu, alegeti nivelul M.

Vreti sa vedeti cum functioneaza? Creati un cod QR gratuit pe FreeQR si alegeti nivelul de corectie a erorilor.

Intrebari frecvente

Ce este corectia erorilor in codurile QR?

Date suplimentare incorporate intr-un cod QR care permit scanerelor sa reconstruiasca modulele deteriorate sau lipsa. Mecanismul foloseste coduri Reed-Solomon, un algoritm matematic dezvoltat initial pentru comunicatii prin satelit si adoptat ulterior in specificatia codurilor QR (ISO/IEC 18004:2024).

Cat de mult poate fi deteriorat un cod QR si sa mai functioneze?

Pana la 30% la nivelul H, 25% la Q, 15% la M si 7% la L. Aceste procente se refera la proportia de cuvinte de cod recuperabile, nu la suprafata fizica a codului. Capacitatea reala de supravietuire depinde de locul unde apare deteriorarea si de modul in care interactioneaza cu intercalarea cuvintelor de cod.

Care sunt cele patru niveluri de corectie a erorilor?

L (Low, 7%), M (Medium, 15%), Q (Quartile, 25%) si H (High, 30%). Majoritatea generatoarelor folosesc M ca valoare implicita.

Ce nivel de corectie a erorilor ar trebui sa folosesc pentru un logo?

Nivelul H (30%). Un logo central acopera de obicei 20-30% din modulele codului. Nivelul H ofera scanerului suficiente date redundante pentru a reconstrui ceea ce logo-ul acopera. Folosirea unui nivel inferior cu un logo risca sa faca codul imposibil de scanat.

Poate un cod QR deteriorat sa ofere informatii incorecte?

Nu. Cand deteriorarea depaseste ceea ce algoritmul poate repara, scanerul nu returneaza nimic. Primiti un rezultat gol, niciodata un URL incorect sau o adresa de plata gresita. Reed-Solomon poate detecta de doua ori mai multe erori decat poate corecta, asa ca codul stie cand este prea deteriorat pentru a fi de incredere.


Scris de Andy Lee, specialist in tehnologie QR la FreeQR.