Os níveis de correção de erros de QR code são a quantidade de dados redundantes que um código carrega para que um scanner possa reconstruir o que está manchado, arranhado ou coberto por um logotipo. Há quatro: L, M, Q e H, que recuperam aproximadamente 7%, 15%, 25% e 30% do código. Escolha M para a maioria das telas e links curtos, e H quando um logotipo ou um manuseio brusco forem consumir parte do código. O preço de cada degrau acima é a densidade: mais módulos, quadrados menores na mesma largura impressa.
Essa troca é onde começa a maioria das histórias de "meu QR code não escaneia", e é por isso que este tutorial trabalha com contagens reais de módulos em vez de generalizações vagas. Se você ainda não criou um código, como criar um QR code é o lugar para começar; este texto trata de escolher o nível depois que você tem um.
O Que a Correção de Erros Realmente Faz em um QR Code
Um QR code armazena seus dados como bytes chamados palavras-código. Junto a eles, armazena palavras-código extras calculadas com correção de erros Reed-Solomon, a mesma família de matemática usada em CDs. Quando um scanner lê um código danificado, ele usa essas palavras-código extras para descobrir quais palavras-código de dados estão erradas e o que deveriam ser.
O nível que você escolhe decide quantas palavras-código extras existem. A Denso Wave, que inventou o formato, descreve o recurso de correção de erros como quatro níveis e observa que aumentar o nível melhora a recuperação, mas aumenta a quantidade de dados e, portanto, o tamanho do símbolo. Os números de recuperação abaixo são os listados na ISO/IEC 18004 e repetidos no verbete de QR code da Wikipedia.
- Nível L (Low): cerca de 7% das palavras-código restauráveis.
- Nível M (Medium): cerca de 15%.
- Nível Q (Quartile): cerca de 25%.
- Nível H (High): cerca de 30%.
Note a palavra "cerca". A porcentagem conta palavras-código, não uma mancha de tinta. Pense nisso como um orçamento de reparo, não como uma garantia de dano.
A Troca da Densidade: Por Que Mais Alto Nem Sempre É Mais Seguro
A redundância precisa morar em algum lugar. Um nível mais alto empurra seus dados para um símbolo maior. Os QR codes vêm em versões de 1 a 40, e o comprimento do lado é 17 + 4 x versão módulos: a versão 1 é 21 x 21 e a versão 40 é 177 x 177, segundo a tabela de versões e capacidade da Denso Wave. O codificador escolhe a menor versão cuja capacidade, no nível escolhido, comporte seus dados.
Para URLs, esses dados são texto em modo byte. A versão 2 comporta 32 bytes em L, 26 em M, 20 em Q e 14 em H. A versão 8 comporta 192, 152, 108 e 84. A versão 11 comporta 321, 251, 177 e 137.
O custo aparece na versão 8: 192 bytes em L, 84 em H. A mesma grade, menos da metade do espaço para sua URL, porque o resto é paridade.
Por que um código mais denso escaneia pior
Um celular precisa resolver cada módulo. Imprima o código com 3 cm de largura e uma grade de 33 módulos dá módulos de aproximadamente 0,9 mm; uma grade de 61 módulos dá aproximadamente 0,5 mm. A mesma câmera, a mesma luz, a mesma mão trêmula. Metade da margem. As regras de dimensionamento em qual deve ser o tamanho de um QR code presumem que você trabalha com um tamanho de módulo razoável, e a densidade é o que silenciosamente quebra essa suposição.
Exemplo Prático: Uma URL em Cada Nível
Este é o experimento que faço sempre que alguém me diz para "simplesmente colocar em H". Peguei uma URL de campanha rastreada, com 126 caracteres: um domínio, um caminho e os parâmetros utm_source, utm_medium, utm_campaign e utm_content. Depois peguei um link curto de 25 caracteres, https://s.elido.me/qr7kP2, como exemplo ilustrativo. Ambos em modo byte. Codifiquei cada um nos quatro níveis com um codificador padrão, e a tabela de capacidade acima prevê o resultado.
| Nível | Recuperação | URL de 126 car. | Link curto de 25 car. |
|---|---|---|---|
| L | ~7% | V6, 41 x 41 | V2, 25 x 25 |
| M | ~15% | V8, 49 x 49 | V2, 25 x 25 |
| Q | ~25% | V9, 53 x 53 | V3, 29 x 29 |
| H | ~30% | V11, 61 x 61 | V4, 33 x 33 |
Duas coisas saltam aos olhos. Primeiro, a URL longa cresce de 41 para 61 módulos por lado indo de L para H, o que são 1681 a 3721 módulos, cerca de 2,2 vezes a área. Segundo, e esta é a parte que ninguém menciona: o link curto no nível mais forte, H (33 x 33), ainda é menor do que a URL longa no nível mais fraco, L (41 x 41).
O conteúdo importa mais do que o nível. Você pode comprar o orçamento máximo de reparo de 30% para um link curto e acabar com um código mais esparso e de módulos maiores do que o código de nível L "eficiente" para a URL longa.
Quando Escolher H, e Quando L ou M É Melhor
Combine o nível com o que realmente vai acontecer com o código. Cautela em geral não é uma especificação.
Escolha H (ou Q) quando
- Um logotipo ou marca fica no meio. Ele oculta módulos que o scanner precisa reconstruir.
- O código é impresso em uma embalagem, em um panfleto no bolso, em um adesivo, em uma mesa que é limpa ou em qualquer coisa ao ar livre.
- A superfície é áspera ou curva e você não controla o acabamento.
- Reescanear não é possível, como em um código em um produto já enviado.
O artigo de ajuda sobre QR codes do Elido diz o mesmo: mantenha um logotipo abaixo de 20% da área do código e mude para H quando passar disso ou imprimir com um logotipo.
Escolha L ou M quando
- O código aparece em uma tela: um slide, uma página web, uma confirmação de checkout.
- A URL é curta e nada vai cobri-la ou arranhá-la.
- O espaço é apertado e o código precisa continuar pequeno, então cada módulo conta.
O M é o padrão prático. A Denso Wave diz que é o nível mais escolhido, e nosso próprio post sobre QR code não escaneia faz o mesmo argumento do lado do suporte: H é o padrão errado para um código simples, porque a densidade que ele acrescenta causa mais escaneamentos falhos do que os danos de que protege.
Uma ressalva sobre logotipos: a correção de erros repara módulos ausentes, não corrige contraste ruim, desfoque nem uma margem cortada. As regras de design para gastar o orçamento em um logotipo estão em design de QR code personalizado, incluindo por que os três quadrados dos cantos ficam intocados.
Links Curtos Mantêm o Código Esparso (e os QR Codes Dinâmicos Os Usam)
O exemplo prático dá uma regra que você pode aplicar hoje: reduza o conteúdo antes de subir o nível. Um QR code dinâmico faz exatamente isso. Em vez de codificar o destino completo, ele codifica um link curto, e o link curto redireciona para onde você apontar.
Codificar um link curto tem três efeitos na confiabilidade:
- A grade permanece em uma versão baixa, então os módulos continuam grandes em qualquer tamanho de impressão.
- Você pode arcar com o nível Q ou H para um logotipo ou desgaste da impressão sem que o código inche.
- Os parâmetros de rastreamento ficam no destino, não no padrão, então mudar uma tag de campanha nunca força um código novo e mais denso.
Há um quarto benefício que nada tem a ver com densidade: como o código aponta para um link curto, você pode redirecioná-lo depois sem reimprimir, e recebe contagens de escaneamentos de graça. Com um código estático, o destino está gravado no padrão, então a única forma de corrigir um erro de digitação é imprimir de novo.
Se quiser testar isso nos seus próprios links, o gerador de QR code permite definir o nível por código, com M como ponto de partida, e os detalhes dos planos estão na página de preços. Faça um em M e outro em H a partir do mesmo link curto, imprima-os com 3 cm e compare. Aposto que você terá dificuldade para distingui-los a olho nu, e esse é o ponto.
Uma Lista de Verificação Curta Antes de Imprimir
Execute-as em ordem.
- Encurte a URL primeiro; mantenha os parâmetros de rastreamento no destino.
- Escolha o nível pela tabela: M para telas e impressão simples, Q ou H para logotipos e desgaste.
- Verifique a versão que seu gerador escolheu. Passando de aproximadamente a versão 10 para uma URL, pergunte por que o conteúdo é tão longo.
- Mantenha a zona de silêncio: pelo menos quatro módulos de borda em branco em todos os lados.
- Imprima no tamanho final e escaneie com dois celulares diferentes sob luz comum.
O passo 5 pega o que nenhuma tabela prevê. Um logotipo que parecia pequeno na tela pode cobrir mais módulos do que você imaginaria.
Leia a Série Cornerstone
Este post faz parte do cluster de tutoriais, e seu cornerstone é como criar um QR code. Para as regras de tamanho e distância que decidem se o seu tamanho de módulo é grande o suficiente, veja qual deve ser o tamanho de um QR code.
Relacionado no Blog
Perguntas frequentes
Qual é o melhor nível de correção de erros para um QR code?
O nível M é o padrão sensato: recupera cerca de 15% do código e mantém a grade pequena. A Denso Wave, inventora do formato, diz que o M é o nível mais frequentemente escolhido. Passe para Q ou H quando o código tiver um logotipo ou for impresso em algo que se arranha, dobra ou fica ao ar livre.
O que significa 30% de correção de erros em um QR code?
Significa que um código de nível H ainda pode ser decodificado quando até cerca de 30% de suas palavras-código de dados estão ilegíveis ou ocultas. O código armazena dados de paridade Reed-Solomon extras, e o scanner os usa para reconstruir o que falta. É um teto para o dano reparável, não uma promessa de que qualquer 30% da superfície pode ser perdido.
Um nível de correção de erros mais alto torna o QR code mais difícil de escanear?
Indiretamente, sim. Níveis mais altos acrescentam dados de paridade, então a mesma URL precisa de uma versão maior, com mais módulos e menores. Na mesma largura impressa, módulos menores são mais difíceis para a câmera de um celular resolver. A solução é um conteúdo mais curto, não um nível mais baixo em um código que precisa da proteção.
Preciso do nível H para colocar um logotipo em um QR code?
Use H, ou pelo menos Q, em qualquer código com um logotipo no meio. O logotipo oculta módulos, e o scanner os trata como dano a ser reparado. Mantenha o logotipo bem abaixo de um quarto da área do código e longe dos três quadrados dos cantos, para que o desgaste da impressão ainda tenha margem.
Um QR code danificado ainda pode ser escaneado?
Muitas vezes, sim, dentro do limite do nível. Um código arranhado, manchado ou parcialmente coberto é decodificado se a área perdida permanecer dentro do que seu nível consegue reparar e os quadrados dos cantos estiverem intactos. Um código de nível L tolera cerca de 7% de dano, um de nível H cerca de 30%.
Qual é o nível padrão de correção de erros de um QR code?
Não há um padrão único na norma; cada gerador escolhe o seu, e o M é a escolha mais comum. O playground de QR do Elido começa em M, com L, Q e H disponíveis no mesmo controle.
Experimente Elido
Cole uma URL, obtenha um link curto
Sem cadastro. O link vive 30 dias. Cadastre-se para mantê-lo para sempre.
Grátis, sem necessidade de registo · 2 por dia