Qué hace el enmascarado
Una vez colocados los bits de datos y de corrección de errores, algunas zonas pueden acabar con largas tiras de un mismo color o con formas que parecen patrones de posición. El enmascarado lo arregla invirtiendo módulos allí donde se cumple una fórmula sencilla, lo que reparte el oscuro y el claro de forma más uniforme.
La máscara se aplica solo al área de datos y de corrección de errores. Los patrones de posición, de sincronización y de alineación, la información de formato y de versión y el módulo oscuro nunca se enmascaran.
Las ocho máscaras
Las máscaras se numeran de 000 a 111. Cada una se define por una condición sobre la fila i y la columna j de un módulo; donde se cumple la condición, ese módulo se invierte. El lector conoce el número de máscara por la información de formato y vuelve a aplicar la misma máscara para deshacerla.
- 000: (i + j) mod 2 = 0, un tablero de ajedrez
- 001: i mod 2 = 0, filas alternas
- 010: j mod 3 = 0, una de cada tres columnas
- 011: (i + j) mod 3 = 0, rayas diagonales
- 100 a 111: combinaciones más complejas de filas, columnas y productos
Cómo se elige la mejor máscara
El codificador prueba las ocho máscaras y puntúa cada resultado con cuatro reglas de penalización. Se usa la máscara con la penalización total más baja, lo que hace que el código terminado sea más fácil de leer para las cámaras.
Algunos generadores se saltan la evaluación completa y usan una máscara fija, lo que sigue produciendo un código válido pero quizá algo más difícil de escanear. Los códigos Micro QR usan un conjunto menor de cuatro máscaras con su propia regla de puntuación.
- Regla 1: tiras largas del mismo color en una fila o columna
- Regla 2: bloques de 2 × 2 de un mismo color
- Regla 3: patrones que se parecen a la proporción 1:1:3:1:1 de los patrones de posición
- Regla 4: desequilibrio general entre módulos oscuros y claros