Qraft

Terminador

El terminador (también llamado patrón terminador) es una secuencia de hasta cuatro bits en cero (0000) que se añade al final del flujo de bits de datos durante la codificación de un código QR. Indica al decodificador que los datos válidos terminan ahí, y está definido en el estándar internacional ISO/IEC 18004.

¿Cuándo y dónde se inserta?

Se inserta justo después de convertir los datos de entrada en un flujo de bits según el modo de codificación, antes de dividir el flujo en palabras de código de 8 bits. La secuencia es: indicador de modo, indicador de número de caracteres, datos, y a continuación el terminador. Si el flujo aún no queda alineado a un límite de 8 bits, se añaden ceros adicionales, y la capacidad restante se rellena con las palabras de código de relleno estándar (11101100 y 00010001 alternadas). Las palabras de código de corrección de errores se calculan sobre este flujo ya completado.

¿Puede ser más corto de cuatro bits?

Sí. El estándar lo define como "hasta cuatro bits": cuando los datos casi llenan la capacidad del símbolo, el terminador se acorta al espacio disponible, y se omite por completo si no queda espacio. Como el final de los datos también puede deducirse del número de palabras de código, un terminador acortado u omitido no afecta a la decodificación. Los códigos Micro QR usan longitudes distintas: 3 bits en cero para la versión M1, 5 para M2, 7 para M3 y 9 para M4.

¿En qué se diferencia de los bits restantes?

Ambos son mecanismos de relleno con ceros, pero operan en capas distintas. El terminador se inserta en el flujo de bits durante la codificación, antes de calcular la corrección de errores, como marca de fin de datos. Los bits restantes aparecen en la última etapa: cuando todas las palabras de código ya están colocadas como módulos, rellenan el fragmento sobrante de menos de 8 módulos en la región de datos. Consulte la entrada del glosario sobre bits restantes.