Patrones de máscara: la optimización oculta en cada código QR
Los ocho patrones de máscara, la puntuación de penalización y cómo el codificador selecciona la máscara óptima para la legibilidad.
Patrones de máscara: la optimización oculta en cada código QR
Cada código QR aplica uno de ocho patrones de máscara a su área de datos antes de finalizar el símbolo. El enmascaramiento es esencial para evitar patrones visuales problemáticos que confundirían a los escáneres, y el proceso de selección implica un ingenioso sistema de puntuación de penalización.
Por qué es necesario el enmascaramiento
Sin enmascaramiento, los datos codificados podrían crear grandes bloques de color uniforme, patrones que imitan patrones de localización o de sincronización, u otras estructuras que interfieren con una decodificación fiable. El enmascaramiento combina mediante XOR los módulos de datos con un patrón matemático para romper estas regiones problemáticas.
Los ocho patrones de máscara
Cada máscara se define mediante una condición aplicada a las coordenadas del módulo (fila i, columna j):
| Máscara | Condición | Efecto visual |
|---|---|---|
| 000 | (i + j) mod 2 = 0 | Tablero de ajedrez |
| 001 | i mod 2 = 0 | Franjas horizontales |
| 010 | j mod 3 = 0 | Franjas verticales (cada 3.ª columna) |
| 011 | (i + j) mod 3 = 0 | Patrón diagonal |
| 100 | (i/2 + j/3) mod 2 = 0 | Patrón de bloques |
| 101 | (ij) mod 2 + (ij) mod 3 = 0 | Patrón de estrella |
| 110 | ((ij) mod 2 + (ij) mod 3) mod 2 = 0 | Patrón de diamante |
| 111 | ((i+j) mod 2 + (ij) mod 3) mod 2 = 0 | Mezcla compleja |
Cuando una condición de máscara evalúa como verdadera, el módulo de datos correspondiente se invierte (el negro se convierte en blanco, el blanco en negro). Los elementos estructurales como patrones de localización, patrones de sincronización y patrones de alineación nunca se enmascaran.
Puntuación de penalización
El codificador aplica las ocho máscaras y evalúa cada una usando cuatro reglas de penalización:
- Módulos adyacentes: módulos consecutivos del mismo color en una fila o columna (la penalización aumenta con la longitud de la racha)
- Penalización de bloque: bloques de 2x2 de módulos del mismo color
- Patrones similares al de localización: secuencias que se asemejan a la proporción 1:1:3:1:1 del orientación del escáner." data-category="QR Code Structure">patrón de localización
- Equilibrio de color: desviación de la proporción 50/50 de módulos oscuros a claros
Se selecciona la máscara con la puntuación de penalización total más baja y se registra en la información de formato.
Impacto en la escaneabilidad
Aunque las ocho máscaras producen códigos QR válidos, la selección basada en penalización suele generar una mejora notable en la fiabilidad del escaneo. Las malas elecciones de máscara pueden aumentar el tiempo de escaneo o causar fallos con cierto hardware de escáner, especialmente en condiciones de iluminación difíciles.
Puntos clave
- Ocho patrones de máscara evitan patrones visuales problemáticos en el área de datos
- Las máscaras se combinan mediante XOR con los módulos de datos (los elementos estructurales no se enmascaran)
- Cuatro reglas de penalización evalúan cada máscara candidata
- La máscara con la puntuación de penalización más baja se selecciona automáticamente
- La selección de máscara se registra en los bits de patrón de máscara." data-category="QR Code Structure">información de formato