Cómo funcionan los códigos QR: anatomía, corrección de errores y capacidad
¿Qué ocurre realmente cuando tu teléfono lee un código QR? Una guía clara sobre patrones de localización, módulos, versiones, niveles de corrección de errores y cuántos datos puede contener un código QR.
Publicado 6 min de lectura
Los códigos QR están por todas partes: en las mesas de los restaurantes, en los paquetes, en los billetes de tren, en las tarjetas de presentación y en los terminales de pago. Sin embargo, pocas personas saben qué se esconde dentro de esos cuadrados blancos y negros, o por qué un código sigue funcionando cuando un logo tapa parte de él. Esta guía explica cómo funcionan los códigos QR, en un lenguaje sencillo.
Un poco de historia
El código QR (abreviatura de Quick Response code, “código de respuesta rápida”) fue inventado en 1994 por Masahiro Hara en Denso Wave, una empresa del grupo Toyota en Japón. Las fábricas de automóviles necesitaban rastrear piezas más rápido de lo que permitían los códigos de barras unidimensionales. Un código de barras clásico almacena datos en una sola dirección y contiene unos 20 caracteres; un código QR almacena datos tanto en horizontal como en vertical y puede contener varios miles.
Denso Wave patentó la tecnología, pero decidió no hacer valer la patente, y el formato se convirtió en un estándar internacional (ISO/IEC 18004). Esa apertura es la principal razón por la que cualquiera puede generar y leer códigos QR, gratis y en cualquier dispositivo.
La anatomía de un código QR
Todo código QR es una cuadrícula de pequeñas celdas llamadas módulos. Cada módulo es oscuro o claro y representa un bit. Algunas zonas de la cuadrícula tienen funciones fijas:
- Patrones de localización: los tres cuadrados grandes de las esquinas. Permiten que el lector encuentre el código al instante y determine su orientación, incluso si el código está al revés o se ha fotografiado en ángulo.
- Patrones de alineación: cuadrados más pequeños (a partir de la versión 2) que ayudan a corregir la distorsión cuando el código está impreso sobre una superficie curva o se ve en perspectiva.
- Patrones de sincronización: líneas de módulos oscuros y claros alternos entre los patrones de localización. Indican al lector el tamaño de cada módulo.
- Información de formato: franjas junto a los patrones de localización que almacenan el nivel de corrección de errores y el patrón de máscara utilizado.
- Zona de silencio: el margen vacío alrededor del código. Forma parte de la especificación: sin ella, el lector no puede saber dónde termina el código y dónde empieza el fondo.
Todo lo demás son palabras de código de datos y de corrección de errores, intercaladas por toda la cuadrícula.
Versiones: por qué algunos códigos son más densos
Los códigos QR existen en 40 tamaños llamados versiones. La versión 1 mide 21 × 21 módulos; cada versión añade 4 módulos por lado, hasta llegar a la versión 40, con 177 × 177 módulos. Cuantos más datos codificas, mayor es la versión y más pequeño es cada módulo para un mismo tamaño de impresión.
Por eso una URL corta produce un patrón limpio y despejado, mientras que un bloque de texto largo produce uno denso que hay que imprimir más grande. Cuando generas un código en nuestro generador de códigos QR, la vista previa muestra la versión y el número de módulos para que puedas vigilar la densidad.
Modos de codificación y capacidad
Un código QR elige el modo de codificación más eficiente para tu contenido:
| Modo | Caracteres | Capacidad máx. (versión 40, nivel L) |
|---|---|---|
| Numérico | 0–9 | 7089 dígitos |
| Alfanumérico | 0–9, A–Z, espacio y $%*+-./: |
4296 caracteres |
| Byte | Cualquier dato, normalmente texto UTF-8 | 2953 bytes |
| Kanji | Caracteres japoneses | 1817 caracteres |
Estos son máximos teóricos. En la práctica, los códigos se escanean de forma fiable hasta unos cuantos cientos de caracteres. Si necesitas compartir más, codifica mejor un enlace corto a una página web.
Corrección de errores: el secreto de los logos
Los códigos QR usan la corrección de errores Reed–Solomon, las mismas matemáticas que permiten que los CD y DVD rayados se sigan reproduciendo. Se añaden palabras de código adicionales para que los datos originales puedan reconstruirse aunque parte del código esté dañada, sucia u oculta. Hay cuatro niveles:
- L (bajo): recupera alrededor del 7% de las palabras de código dañadas
- M (medio): alrededor del 15%
- Q (cuartil): alrededor del 25%
- H (alto): alrededor del 30%
Los niveles más altos hacen el código más robusto, pero también más grande, porque se dedica más espacio a la redundancia. Esto es justo lo que hace posibles los códigos QR con logo: un logo en el centro “daña” parte del código a propósito y la corrección de errores rellena el hueco. Para un logo, elige el nivel Q o H y mantenlo por debajo de aproximadamente una cuarta parte de la superficie del código.
Consejo: la corrección de errores no sustituye a un buen contraste. Un código demasiado claro, demasiado pequeño o sin zona de silencio puede fallar incluso con el nivel H.
Enmascaramiento: patrones siempre legibles
Los datos en bruto pueden crear por accidente grandes bloques de un mismo color o formas que parecen patrones de localización, lo que confunde a los lectores. Para evitarlo, el codificador aplica uno de ocho patrones de máscara (fórmulas matemáticas que invierten determinados módulos) y se queda con el que obtiene la “puntuación de penalización” más baja. El lector obtiene el número de máscara de la información de formato y deshace la máscara. Nunca tendrás que preocuparte por las máscaras, pero son la razón por la que dos códigos con un contenido casi idéntico pueden verse completamente distintos.
Qué ocurre cuando escaneas
Cuando apuntas la cámara a un código QR, el lector:
- Encuentra los tres patrones de localización y calcula la posición, el tamaño y la rotación del código.
- Corrige la perspectiva con los patrones de alineación, de modo que un código inclinado se convierte en una cuadrícula plana.
- Muestrea cada módulo como oscuro o claro, usando los patrones de sincronización como regla.
- Lee la información de formato, elimina la máscara y recopila las palabras de código.
- Repara los errores mediante la decodificación Reed–Solomon.
- Interpreta los datos (un enlace, las credenciales de una red Wi-Fi, una tarjeta de contacto) y ofrece la acción adecuada.
Todo esto lleva unos pocos milisegundos. Puedes comprobarlo con nuestro lector de códigos QR online, que realiza estos pasos directamente en tu navegador con una imagen subida, un enlace o tu cámara.
Códigos QR estáticos y dinámicos
Un código QR estático contiene directamente el contenido final: la URL, la contraseña de la red Wi-Fi o el propio texto. Funciona para siempre, no necesita ningún servidor y no se puede rastrear. Un código QR dinámico contiene un enlace corto de redirección que pertenece a un proveedor de servicios, lo que te permite cambiar el destino más adelante y contar los escaneos, pero deja de funcionar si termina la suscripción.
Todos los códigos creados en QR.tools son estáticos: gratuitos, privados y permanentes. Si más adelante necesitas cambiar el destino, haz que el código apunte a una página que tú controles y actualiza esa página.
¿Qué puede contener un código QR?
Como un código QR simplemente almacena texto, el formato de ese texto determina qué hace el teléfono con él. Entre los formatos estandarizados están:
- URL: abrir un sitio web (
https://…) - Wi-Fi: conectarse a una red (
WIFI:T:WPA;S:…;P:…;;) — consulta el generador de códigos QR Wi-Fi - vCard: guardar un contacto — consulta el generador de códigos QR vCard
- Correo electrónico, SMS y teléfono: iniciar un mensaje o una llamada con
mailto:,SMSTO:ytel: - Eventos de calendario: añadir un evento con un
VEVENTde iCalendar - Ubicaciones geográficas: abrir un mapa con coordenadas
geo:
Ideas clave
- Un código QR es una cuadrícula de módulos con patrones fijos de localización, sincronización y alineación alrededor de tus datos.
- Más contenido significa una versión más alta, un patrón más denso y un tamaño mínimo de impresión mayor.
- La corrección de errores (L, M, Q, H) permite que los códigos resistan daños y hace posibles los logos.
- Los códigos estáticos son permanentes y privados; los dinámicos se pueden editar, pero dependen de un proveedor.
¿Quieres crear uno? Abre el generador de códigos QR y crea un código con tus propios colores y logo en segundos.
¿Listo para crear tu propio código QR?
Diseña un código QR personalizado con tu logo y tus colores en segundos, gratis y sin registro.
Abrir el generador