En QR-kode paa en restaurantmenu med en kaffering henover hjoernet. Et haveskilt blegnet af tre maaneders direkte sollys. En lageretiket tilsmurt med fedt. Alle tre kan stadig scannes.
Det er ikke held. Enhver QR-kode indeholder redundante data, der lader scannere rekonstruere beskadigede eller manglende dele. Specifikationen ISO/IEC 18004:2024 kalder dette QR-kode fejlkorrektion, og det har vaeret en del af formatet siden det foerst blev standardiseret i 2000. En traditionel stregkode med samme skade ville vaere ulaeselig.
Vigtigste pointer:
QR-koder bruger Reed-Solomon fejlkorrektion til at gendanne sig fra fysisk skade, ifoelge ISO/IEC 18004:2024.
Fire niveauer: L (7%), M (15%), Q (25%), H (30%). Procenten refererer til gendannelige kodeord, ikke fysisk areal.
Hoejere korrektion betyder stoerre skadetolerance, men lavere datakapacitet.
QR-koder giver aldrig forkerte data. De holder op med at fungere paa en sikker maade, naar skaden overstiger korrektionskapaciteten.
Dynamiske QR-koder gemmer korte omdirigerings-URL'er, saa niveau M giver rigeligt med plads til de fleste anvendelsestilfaelde.
Hvad er QR-kode fejlkorrektion?

Taenk paa det som sikkerhedskopierede data indbygget i selve koden. Naar snavs, ridser eller blegning oedelaegger nogle af de sort-hvide moduler, bruger scanneren den sikkerhedskopierede data til at udfylde hullerne. Den fulde besked kommer igennem, selv naar dele mangler.
Matematikken bag kaldes Reed-Solomon fejlkorrektion. Irving S. Reed og Gustave Solomon publicerede den i 1960 paa MIT Lincoln Laboratory til satellitkommunikation, hvor signalstoej forvraenger overfoerte data. Den samme algoritme endte i CD'er, DVD'er, Blu-ray-diske og datasystemerne paa NASA's Voyager-sonder. Da DENSO WAVE designede QR-koden i 1994, var Reed-Solomon et naturligt valg. Algoritmen havde allerede overlevet det dybe rum.
QR-kodestandarden specificerer fire fejlkorrektionsniveauer. Hvert niveau bestemmer, hvor meget redundant data koden baerer, og som en direkte afvejning, hvor meget total data koden kan rumme.
De fire QR-kode fejlkorrektionsniveauer
Enhver QR-kode genereres paa et af fire fejlkorrektionsniveauer. Tabellen nedenfor viser, hvad hvert niveau gendanner, hvor meget data det kan rumme ved maksimal stoerrelse (Version 40, den stoerste QR-kode defineret i specifikationen), og hvor det passer bedst.
Niveau | Navn | Gendannelse | Maks. kapacitet (V40) | Bedst til |
|---|---|---|---|---|
L | Low | 7% | 2.953 bytes | Digitale skaerme, rene miljoeer |
M | Medium | 15% | 2.331 bytes | Indendoers print, flyers, menuer (mest almindelige standard) |
Q | Quartile | 25% | 1.663 bytes | Udendoers skiltning, emballage, slidudsatte overflader |
H | High | 30% | 1.273 bytes | Logo over koden, industrielle miljoeer, fabriksmiljoeer |
Mere beskyttelse koster lagerplads. I Version 40 rummer niveau L 2.953 bytes. Niveau H rummer 1.273. Det er en reduktion paa 57% i kapacitet til fordel for skadesmodstandsdygtighed.
De fleste generatorer bruger niveau M som standard. DENSO WAVE bekraefter, at det er det mest valgte niveau i praksis. M haandterer smaa ridser, let blegning og fingeraftryk uden at goere koden stoerre end noedvendigt.
Disse ISO-procentsatser er dog teoretiske maksimumvaerdier. I praksis har koder tendens til at svigte tidligere. Softwareingenioereen Huon Wilson testede 12.800 QR-kodekonfigurationer med simuleret skade og fandt, at koder paa niveau H producerede 60% flere vellykkede scanninger end niveau L. De praktiske fejlgraenser var omtrent 6% for L, 12% for M, 18% for Q og 20% for H. Virkelig skade fordeler sig ikke jaevnt, saa koden naar sin graense tidligere, end specifikationen antyder.
Hvor meget skade kan en QR-kode overleve?
Procentsatserne i tabellen refererer til kodeord (enheder af kodede data), ikke fysisk areal. At beskadige 15% af overfladen korrumperer ikke noedvendigvis 15% af kodeordene. Aarsagen ligger i, hvordan data er arrangeret inde i gitteret.
Sammenfletning af kodeord
For stoerre QR-koder opdeles de kodede data i flere Reed-Solomon-blokke og sammenflettes derefter, foer de placeres i gitteret. En ridse, der loeber diagonalt hen over koden, oedelaegger ikke paa hinanden foelgende kodeord. I stedet beskadiger den et kodeord her, springer tre over, beskadiger et andet der. Skaden spredes over flere korrektionsblokke i stedet for at overbelaste en enkelt. Derfor er en lang ridse ofte mere overlevelsesdygtig end et dybt hul paa et enkelt punkt.
Fejldetektion sammenlignet med fejlkorrektion
Reed-Solomon kan detektere dobbelt saa mange fejl, som den kan korrigere. Paa niveau M korrigerer algoritmen op til 15% af korrumperede kodeord, men den detekterer korruption i op til 30%. Naar skaden overstiger korrektionsbudgettet, men falder inden for detektionsomraadet, ved scanneren, at data er kompromitteret og returnerer intet.
Dette er en sikkerhedsfunktion. En beskadiget QR-kode vil aldrig sende dig til den forkerte hjemmeside eller debitere den forkerte konto. Den fungerer korrekt, eller den returnerer intet. For betalingskoder og autentificeringstokens har den skelnen stor betydning.
Undtagelsen for soegemoensteret
De tre store kvadrater i hjoernerne af enhver QR-kode er soegemoenstre. Scanneren bruger dem til at lokalisere og orientere koden. De er ikke beskyttet af fejlkorrektion paa samme maade som datamoduler. Hvis en rift, foldning eller klistermaarke daekker et af de tre hjoerner, vil koden naesten helt sikkert holde op med at fungere uanset korrektionsniveau. Ingen maengde redundans redder en kode med et manglende hjoerne.
Hvilket fejlkorrektionsniveau skal du vaelge?
Her er, hvad du skal vaelge i de mest almindelige scenarier.
Indendoers print (menuer, flyers, visitkort): Niveau M. Rene miljoeer med minimal fysisk kontakt. M haandterer lejlighedsvise pletter eller folder uden at goere koden stoerre end noedvendigt.
Udendoers eller vejrudsatte overflader (haveskilte, bilklistermaarker, busstoppesteder): Niveau Q eller H. UV-blegning, regn, fysisk kontakt fra forbipasserende. Disse koder har brug for et stoerre fejlkorrektionsbudget, fordi skader akkumuleres over uger og maaneder.
QR-koder med logo eller brand: Niveau H. Et centreret logo daekker bevidst datamoduler, typisk 20-30% af kodens areal. Niveau H's 30% korrektionsbudget absorberer det. Uden det gambler du. Et studie fra University of Memphis AutoID Lab testede designede QR-koder og fandt, at aflaesefrekvensen i gennemsnit var 61,5%, med den vaerste paa 9,6%. Umodificerede koder naaede cirka 95%. Den stoerste aarsag til fejl var skade paa soegemoenstrets hjoerner.
Digital visning (skaerme, praesentationer, e-mail): Niveau L. Ingen risiko for fysisk skade. Koden eksisterer som pixels paa en skaerm. Niveau L holder koden kompakt og hurtig at scanne.
Dynamiske QR-koder: Niveau M er normalt tilstraekkeligt. En dynamisk QR-kode gemmer kun en kort omdirigerings-URL (f.eks. freeqr.to/abc123), ikke det fulde destinationsindhold. Faerre data betyder faerre moduler, hvilket betyder, at fejlkorrektionen har proportionalt mere plads at arbejde med.
I FreeQR's designer er de fire fejlkorrektionsindstillinger markeret Low, Medium, High og Highest (svarende til L, M, Q og H). Standarden er Medium. Tilfoej et logo, og scanningsindikatoren fortaeller dig, om logoet daekker for mange moduler til det valgte niveau. Dynamiske koder lader dig ogsaa opdatere destinationen uden at gentrykke.
En vigtig detalje: fejlkorrektionsniveauet indstilles, naar du genererer koden. Du kan ikke aendre det efter udskrivning. Hvis du vaelger niveau L og senere flytter koden udendoers, er den eneste loesning en ny kode paa et hoejere niveau. I tvivlstilfaelde, vaelg niveau M.
Vil du se, hvordan det virker? Opret en gratis QR-kode paa FreeQR og vaelg dit fejlkorrektionsniveau.
Ofte stillede spoergsmaal
Hvad er QR-kode fejlkorrektion?
Ekstra data indlejret i en QR-kode, der giver scannere mulighed for at rekonstruere beskadigede eller manglende moduler. Mekanismen bruger Reed-Solomon-koder, en matematisk algoritme, der oprindeligt blev udviklet til satellitkommunikation og senere adopteret i QR-kodespecifikationen (ISO/IEC 18004:2024).
Hvor meget af en QR-kode kan vaere beskadiget og stadig virke?
Op til 30% paa niveau H, 25% paa Q, 15% paa M og 7% paa L. Disse procentsatser refererer til andelen af gendannelige kodeord, ikke kodens fysiske areal. Den faktiske overlevelsesevne afhaenger af, hvor skaden optraaeder, og hvordan den interagerer med sammenfletningen af kodeord.
Hvad er de fire fejlkorrektionsniveauer?
L (Low, 7%), M (Medium, 15%), Q (Quartile, 25%) og H (High, 30%). De fleste generatorer bruger M som standard.
Hvilket fejlkorrektionsniveau skal jeg bruge til et logo?
Niveau H (30%). Et centreret logo daekker typisk 20-30% af kodens moduler. Niveau H giver scanneren tilstraekkelig redundant data til at rekonstruere det, som logoet skjuler. Brug af et lavere niveau med et logo risikerer at goere koden uscanbar.
Kan en beskadiget QR-kode give forkert information?
Nej. Naar skaden overstiger, hvad algoritmen kan reparere, returnerer scanneren intet. Du faar et tomt resultat, aldrig en forkert URL eller forkert betalingsadresse. Reed-Solomon kan detektere dobbelt saa mange fejl, som den kan korrigere, saa koden ved, naar den er for beskadiget til at vaere paalidelig.
Skrevet af Andy Lee, QR-teknologispecialist hos FreeQR.