Nível de correção de erro do QR Code (L, M, Q, H): o que é e qual escolher
Um QR Code pode ser lido mesmo com uma parte riscada, manchada, rasgada ou coberta por um logotipo. Isso não é sorte nem truque do aplicativo de leitura: é uma característica do próprio símbolo, chamada correção de erro. Ao gerar um código, você escolhe quanto dessa proteção quer — e essa escolha muda o tamanho do símbolo, a densidade dos módulos e a resistência ao desgaste.
Este texto explica como a correção de erro funciona, o que significam os quatro níveis e como escolher o certo para cada uso. A página técnica sobre correção de erro traz as tabelas completas da especificação.
Como a correção de erro funciona
Quando um conteúdo é codificado num QR Code, ele é transformado numa sequência de bytes chamados codewords. A esses codewords de dados, o gerador acrescenta codewords extras, calculados com um método matemático chamado Reed-Solomon — o mesmo usado em CDs, DVDs e transmissões de satélite.
Os codewords extras não carregam informação nova. Eles carregam redundância: uma espécie de "resumo verificável" dos dados, que permite ao leitor reconstruir partes que chegaram ilegíveis. Se uma mancha cobre alguns módulos, o leitor detecta os codewords afetados e os recalcula a partir dos demais.
Quanto mais codewords de correção, maior a parte do símbolo que pode ser perdida sem impedir a leitura — e maior o espaço ocupado pela redundância em vez de dados. Num código de nível H, por exemplo, mais da metade dos codewords costuma ser de correção, não de conteúdo: é o preço de aguentar sujeira, desgaste e logotipos.
Blocos e intercalação: por que uma mancha não destrói tudo
Há um detalhe engenhoso na forma como os codewords são gravados. Nas versões maiores, os dados são divididos em vários blocos, cada um com sua própria correção, e os codewords dos blocos são intercalados ao longo do símbolo — o primeiro de cada bloco, depois o segundo de cada bloco, e assim por diante.
O efeito é distribuir o estrago. Uma mancha concentrada num canto atinge alguns codewords de vários blocos, em vez de destruir um bloco inteiro. Cada bloco perde pouco, e cada um consegue se recuperar sozinho. É por isso que um código rasgado na ponta ou com um logo no meio continua legível: o dano localizado vira pequenos danos espalhados, que a correção resolve.
Os quatro níveis
| Nível | Recupera aproximadamente | Uso típico |
|---|---|---|
| L (low) | 7% dos codewords | telas, ambientes limpos, máximo de dados |
| M (medium) | 15% | impressão comum: cardápios, folhetos, cartazes |
| Q (quartile) | 25% | ambientes com manuseio e sujeira |
| H (high) | 30% | uso externo, desgaste, logo no centro |
Os percentuais referem-se aos codewords que podem ser corrigidos, não exatamente à área do símbolo. Na prática, a relação é próxima, mas danos concentrados em regiões críticas — como os três quadrados de posição nos cantos ou as informações de formato — podem impedir a leitura mesmo em níveis altos.
O custo: cada nível ocupa espaço
Como a redundância ocupa lugar, um nível de correção mais alto reduz a quantidade de dados que cabe numa mesma versão. Para guardar o mesmo conteúdo com mais proteção, o gerador precisa subir de versão — e o símbolo fica com mais módulos.
| Versão (módulos) | L | M | Q | H |
|---|---|---|---|---|
| 2 (25×25) | 32 | 26 | 20 | 14 |
| 5 (37×37) | 106 | 84 | 60 | 44 |
| 10 (57×57) | 271 | 213 | 151 | 119 |
Capacidade em bytes (modo de bytes), conforme a norma ISO/IEC 18004.
Um exemplo: um link de 50 caracteres cabe na versão 3 com nível L, precisa da versão 4 com M e só cabe na versão 6 com H. A versão 6 tem 41 módulos por lado contra 29 da versão 3 — o que, impresso no mesmo tamanho, deixa cada módulo cerca de 29% menor. Por isso, escolher H "por segurança" sem aumentar o tamanho de impressão pode, paradoxalmente, deixar o código mais difícil de ler. O artigo sobre tamanho mínimo para imprimir mostra como compensar.
Qual nível escolher
L: quando o código vive numa tela
Em telas de celular, computador ou TV, o código não suja, não rasga e não desbota. O nível L permite guardar o máximo de dados com o menor número de módulos. É uma boa escolha para códigos exibidos em apresentações, aplicativos e páginas da web — desde que a tela não tenha reflexo forte.
M: o padrão para a maioria dos impressos
O nível M equilibra proteção e densidade e é o mais usado em material impresso comum: cardápios, folhetos, cartões, embalagens protegidas, cartazes internos. Tolera pequenos riscos, dobras leves e falhas de impressão. Na dúvida, é o ponto de partida.
Q: manuseio e ambientes sujos
Códigos em mesas de restaurante sem proteção, etiquetas de produtos manuseados, crachás, materiais de obra e fábricas pedem o nível Q. A proteção extra compensa o desgaste do dia a dia.
H: uso externo, logo e longa duração
O nível H é indicado para placas externas, adesivos em veículos, etiquetas de patrimônio e qualquer código que precise durar anos exposto. É também o nível necessário quando se coloca um logotipo no centro do código: o logo encobre módulos, e a correção de erro é que permite ler mesmo assim. O artigo sobre QR Code com logo explica os limites dessa prática.
Correção de erro e logotipo: a conta que precisa fechar
Muitos designers colocam um logo no centro do QR Code confiando na correção de erro. Funciona, mas com regras:
- Use nível H. Com L ou M, a margem é pequena demais.
- O logo deve cobrir bem menos que 30% do símbolo. A correção precisa sobrar para manchas, reflexos e falhas de impressão. Na prática, um logo que cubra até cerca de 10% a 15% da área é uma margem prudente.
- Nunca cubra os padrões de posição — os três quadrados grandes nos cantos — nem as áreas de informação de formato ao lado deles.
- Teste em vários celulares. Leitores diferentes toleram danos de formas diferentes.
A correção de erro gasta com o logo é correção que deixa de existir para o desgaste. Um código com logo impresso numa placa externa acumula os dois problemas e pode falhar antes do esperado.
O que a correção de erro não resolve
- Contraste insuficiente. Se o leitor não distingue módulos escuros de claros, não há o que corrigir. O artigo sobre cores e contraste trata disso.
- Falta de zona quieta. Sem a margem branca, o leitor não encontra o código.
- Deformação. Códigos em superfícies muito curvas ou fotografados em ângulo extremo se distorcem de forma que a correção não compensa.
- Módulos pequenos demais. Se a impressão não reproduz os módulos com nitidez, o erro está em todo o símbolo, não em uma parte dele.
- Conteúdo errado. A correção recupera o que foi gravado; se o link gravado estiver errado, o código lê perfeitamente o link errado.
Como testar a robustez antes de imprimir
Um teste simples mostra se o nível escolhido dá conta do uso real. Imprima o código no tamanho final, no papel ou material definitivo, e faça três verificações:
- Leitura limpa: leia com dois ou três celulares diferentes, inclusive um mais antigo, na distância de uso.
- Leitura com dano simulado: cubra um canto do código — sem tocar nos três quadrados de posição — com um pedaço de papel ou fita, simulando uma mancha, e leia de novo. Com M, uma área pequena deve passar; com H, uma área maior.
- Leitura em condição ruim: pouca luz, ângulo inclinado, reflexo. Se o código falha em condições que vão acontecer no local, aumente o tamanho, o contraste ou o nível.
O teste leva dois minutos e evita reimprimir uma tiragem inteira.
Mitos sobre a correção de erro
"Nível H é sempre melhor." Não. Ele protege mais, mas aumenta a densidade. Num espaço pequeno, um código H pode ficar com módulos menores que o mínimo legível — e falhar mais do que um M bem dimensionado.
"Com correção de erro, posso cobrir 30% do código com o logo." Tecnicamente, no limite; na prática, não. Os 30% são o teto teórico, e qualquer reflexo ou falha de impressão somado ao logo passa do limite.
"Se o código tem correção, não preciso testar." A correção recupera danos aleatórios; não corrige contraste ruim, margem cortada ou módulos borrados em todo o símbolo.
"O leitor escolhe o nível." O nível é definido na geração e gravado no símbolo. O leitor apenas o reconhece e usa a redundância que existe.
Um pouco de história
O QR Code foi criado em 1994 pela Denso Wave, empresa japonesa do grupo Toyota, para rastrear peças nas linhas de montagem — um ambiente com óleo, sujeira e etiquetas danificadas. A correção de erro não era um luxo: era a razão de o código funcionar na fábrica. Desde 2000, o padrão é uma norma internacional, a ISO/IEC 18004, que define os quatro níveis, as versões e as regras de codificação. O artigo sobre a história do QR Code conta essa trajetória.
Como descobrir o nível de um código existente
O nível de correção fica gravado no próprio símbolo, nas informações de formato — duas faixas de 15 bits ao redor dos padrões de posição, protegidas por um código próprio de correção. Os leitores identificam o nível automaticamente. Ferramentas de análise mostram essa informação; o leitor de QR Code do site exibe o conteúdo e detalhes do símbolo.
Correção de erro e máscara
Além da correção, o gerador aplica uma máscara — um padrão que inverte módulos de forma determinística para evitar grandes áreas de uma só cor ou padrões que confundam o leitor, como sequências parecidas com os quadrados de posição. São oito máscaras possíveis, e o gerador escolhe a de menor penalidade. A máscara não altera a capacidade nem a proteção, mas melhora a legibilidade. A página sobre máscaras explica as regras de pontuação.
Pix, vCard e Wi-Fi: o nível em cada tipo de conteúdo
Códigos de Pix carregam dezenas de caracteres — chave, nome, cidade, valor e um código verificador — e costumam cair em versões médias. Para o balcão protegido por acrílico, M basta; para um cartaz exposto ou uma plaquinha manuseada o dia inteiro, Q dá mais segurança, desde que o tamanho acompanhe. O artigo sobre como criar um QR Code de Pix mostra os campos que entram no código.
Um vCard completo é longo e gera versões altas. Como o cartão de visita tem pouco espaço, o nível M é o mais comum: subir para H exigiria um código grande demais para o cartão.
Um código de Wi-Fi colado na parede de um café, onde as pessoas encostam o celular, se beneficia de Q. O conteúdo é curto, então a versão sobe pouco.
Exemplos práticos
| Situação | Nível sugerido | Por quê |
|---|---|---|
| QR de Pix num display de acrílico no balcão | M | Protegido, ambiente interno |
| Adesivo de Wi-Fi colado na parede do café | Q | Exposto a toque e limpeza |
| Placa de "vende-se" na calçada | H | Sol, chuva, poeira |
| Código num slide de apresentação | L ou M | Tela limpa, dados à vontade |
| Etiqueta de patrimônio em equipamento | H | Anos de manuseio |
| Código com logo da marca | H | O logo consome parte da correção |
| Cartão de visita com vCard | M | Pouco espaço; o cartão fica protegido |
Resumo
A correção de erro é o que torna o QR Code robusto: dados redundantes, calculados pelo método Reed-Solomon, permitem recuperar de 7% a 30% do símbolo danificado. Cada nível a mais protege mais e ocupa mais espaço. Para a maioria dos impressos, M resolve; para manuseio, Q; para uso externo, longa duração ou logo, H — sempre aumentando o tamanho de impressão na mesma medida. E nenhuma correção substitui contraste, margem e teste na prova. Escolher o nível é, no fundo, decidir quanto do símbolo você aceita gastar com proteção — e essa decisão depende de onde o código vai viver.
No gerador do QR Code Já, o nível de correção pode ser escolhido antes de baixar o arquivo, e a calculadora de tamanho mostra o efeito da escolha na versão e no tamanho mínimo.