O que o mascaramento faz
Depois que os bits de dados e de correção de erros são colocados, algumas áreas podem acabar com longas sequências de uma só cor ou formas que se parecem com padrões de localização. O mascaramento resolve isso invertendo módulos onde uma fórmula simples for verdadeira, o que distribui o escuro e o claro de modo mais uniforme.
A máscara se aplica apenas à área de dados e de correção de erros. Os padrões de localização, sincronização e alinhamento, as informações de formato e de versão e o módulo escuro nunca são mascarados.
As oito máscaras
As máscaras são numeradas de 000 a 111. Cada uma é definida por uma condição sobre a linha i e a coluna j de um módulo; onde a condição vale, o módulo é invertido. O leitor descobre o número da máscara pela informação de formato e aplica a mesma máscara de novo para desfazê-la.
- 000: (i + j) mod 2 = 0, um tabuleiro de xadrez
- 001: i mod 2 = 0, linhas alternadas
- 010: j mod 3 = 0, uma coluna a cada três
- 011: (i + j) mod 3 = 0, listras diagonais
- 100 a 111: combinações mais complexas de linhas, colunas e produtos
Como a melhor máscara é escolhida
O codificador testa as oito máscaras e pontua cada resultado com quatro regras de penalidade. Usa-se a máscara com a menor penalidade total, o que deixa o código pronto mais fácil de ser lido pelas câmeras.
Alguns geradores pulam a avaliação completa e usam uma máscara fixa, o que ainda produz um código válido, mas talvez um pouco mais difícil de ler. Os Micro QR Codes usam um conjunto menor de quatro máscaras, com sua própria regra de pontuação.
- Regra 1: longas sequências da mesma cor numa linha ou coluna
- Regra 2: blocos de 2 × 2 de uma só cor
- Regra 3: padrões que lembram a proporção 1:1:3:1:1 dos padrões de localização
- Regra 4: desequilíbrio geral entre módulos escuros e claros