Pular para o conteúdo
QR Code Jágerador de QR Code grátis

Níveis de correção de erro do QR Code: L, M, Q e H

A correção de erro é o que faz um QR Code riscado, sujo ou parcialmente coberto continuar sendo lido. O QR Code usa códigos Reed-Solomon, os mesmos do CD, do DVD e das sondas espaciais — e oferece quatro níveis, de 7% a 30% de recuperação.

Os quatro níveis

NívelRecupera atéQuando usar
L (Low)7% Conteúdo longo em espaço apertado, impressão de qualidade, ambiente limpo. Uso digital (tela, e-mail, site) em que não há risco de dano.
M (Medium)15% O padrão. Equilíbrio entre tamanho e resistência. Cobre a maioria dos casos de material impresso comum.
Q (Quartile)25% Ambiente hostil: mesa de restaurante, embalagem, etiqueta de equipamento, superfície que suja ou arranha.
H (High)30% Quando há logotipo no meio do código, quando a peça vai ficar exposta ao tempo ou quando a leitura é crítica e não pode falhar.

Os percentuais são de codewords recuperáveis, não de área da imagem. Como o dano em impressão costuma ser localizado e os blocos são intercalados, na prática a resistência aparente é próxima desses números.

O custo de cada nível

Correção ocupa espaço. Com o mesmo conteúdo — https://www.exemplo.com.br/promocao-de-setembro, de 47 bytes — veja o que muda de um nível para outro:

NívelRecuperaVersão MódulosCodewords de dados Codewords de correçãoLado mínimo
L7% 329×29 5515 1,5 cm
M15% 433×33 6436 1,6 cm
Q25% 537×37 6272 1,8 cm
H30% 641×41 60112 2 cm

Repare que subir de L para H não dobra o tamanho: acrescenta algumas versões. Em material pequeno, essa diferença decide entre um código que lê e outro que não lê — em qualquer direção.

Como a correção funciona

Os codewords de dados são divididos em blocos, e cada bloco recebe seus próprios codewords de correção, calculados por divisão polinomial no campo de Galois GF(256), com o polinômio primitivo 0x11D definido na norma. Um bloco com n codewords de correção consegue reparar até n/2 codewords errados em posições desconhecidas — ou até n quando o leitor sabe onde está o dano (o que a norma chama de erasure).

Dividir em blocos e depois intercalar os codewords no símbolo é o que dá resistência a dano concentrado: uma mancha de tinta que cobre um pedaço do código atinge poucos codewords de cada bloco, e cada bloco corrige o seu.

O que a correção não salva: dano nos três localizadores dos cantos e na zona quieta. Sem eles o leitor sequer encontra o símbolo — não há o que corrigir.

Logotipo no meio do código

É o uso mais popular da correção alta, e também o mais mal executado. As regras práticas:

Nada disso está na norma: a ISO define a capacidade de recuperação, não autoriza cobrir o símbolo. É prática de mercado com margem de segurança.

Qual nível para cada situação real

SituaçãoNívelPor quê
QR num e-mail, num site ou num slideL Não há dano físico possível. Símbolo menor lê mais rápido em tela.
Cartão de visita, folheto, cartazM Papel guardado no bolso amassa, mas não se degrada muito. M dá margem suficiente.
Mesa de restaurante, balcão, cardápioQ Gordura, respingo, álcool de limpeza e arranhão diário. Q recupera um quarto do símbolo.
Embalagem, etiqueta de produtoQ Dobra, fita adesiva por cima e atrito no transporte.
Equipamento industrial, patrimônioH Óleo, poeira, desgaste por anos. Aqui a releitura precisa funcionar sempre.
Código com logotipo no meioH O logotipo é dano permanente e proposital: precisa da maior reserva disponível.
Placa externa, fachada, adesivo de vitrineQ ou H Sol desbota, chuva descola, poeira acumula. Some a isso a leitura à distância.
Conteúdo longo em espaço pequenoL Quando não há alternativa. Mas primeiro tente encurtar o conteúdo.

Repare no padrão: o nível segue o ambiente, não o conteúdo. O mesmo endereço merece L num e-mail e Q numa mesa de bar. O erro comum é escolher o nível pensando no tamanho do arquivo, que é justamente o critério menos importante.

Um exemplo concreto de bloco

Na versão 5 com correção Q, o símbolo tem 134 codewords no total: 62 de dados e 72 de correção, distribuídos em 4 blocos. Cada bloco recebe entre 15 e 16 codewords de dados e 18 de correção. Como um bloco corrige até metade dos seus codewords de correção, cada um desses blocos tolera 9 codewords danificados.

Agora o detalhe que faz diferença: os codewords não são gravados bloco a bloco, e sim intercalados — o primeiro codeword do bloco 1, depois o do bloco 2, o do bloco 3, o do bloco 4, e assim por diante. Uma mancha que destrua 20 codewords consecutivos no símbolo atinge 5 codewords de cada bloco, e todos os quatro se recuperam. Sem a intercalação, os mesmos 20 codewords destruiriam um bloco inteiro e o código seria perdido.

Perguntas frequentes

Qual nível de correção devo usar?

M, na dúvida. Suba para Q quando o código for para superfície que suja ou arranha (mesa, embalagem, equipamento), e para H quando houver logotipo no meio ou exposição ao tempo. Use L só quando o conteúdo for longo e o espaço, apertado.

Nível H protege 30% da imagem?

Recupera até 30% dos codewords, o que na prática é próximo de 30% da área de dados. Mas isso não inclui os localizadores nem a zona quieta: dano ali é fatal em qualquer nível.

Dá para mudar o nível de correção depois de gerar?

Não: o nível faz parte da informação de formato gravada no símbolo e altera a distribuição de todos os codewords. É preciso gerar de novo — o que, com o mesmo conteúdo, leva alguns segundos.

Por que meu código ficou maior quando aumentei a correção?

Porque os codewords de correção ocupam espaço que era dos dados. Quando não sobra espaço na versão atual, o codificador sobe para a próxima versão, que tem 4 módulos a mais de lado.

Esta página resolveu sua dúvida?