Cómo funciona un código QR

Manuel J. Gutiérrez el 29/03/2016 a las 20:46

codigo-qr-1-1

Los códigos QR nacieron en Japón en 1994, y en su momento sus creadores probablemente no se podían imaginar la repercusión que tendrían a día de hoy. Tanto en campañas publicitarias como en la gestión de inventario de un almacén, los códigos QR han facilitado enormemente la tarea de acceder a cualquier tipo de información a través de un simple dibujo.

Pero, antes de saber cómo funcionan los códigos QR, conozcamos primero el origen de estas curiosas imágenes creadas a base de líneas, puntos y espacios en blanco.

Quién creó los códigos QR

Las siglas QR tienen su origen en el inglés, y no significan otra cosa que “Quick Response“, lo que se traduce como “Respuesta rápida” en español. Si nos remontamos al verdadero origen de esta tecnología, veremos que el primer código de barras bidimensional fue creado por la firma japonesa Denso Wave allá por el año 1994.

En su momento, sus creadores tenían bastante dudas respecto a si el QR sería capaz de desplazar a los tradicionales códigos de barras. Finalmente, consiguieron que las grandes empresas comenzaran a utilizar esta tecnología para, por ejemplo, identificar las piezas de los coches en una cadena de montaje.

mayastatuecode

Por supuesto, a fin de garantizar que puedan funcionar en cualquier móvil, estos códigos están sujetos a unas normas para su distribución mundial. El estándar japonés es el JIS X 0510, y se publicó en el año 1998. A los dos años, en el resto del mundo se hizo un estándar todavía más universal a través de la ISO (Organización Internacional de Normalización), lo que garantizó su expansión por todo el planeta.

¿Cuánta información almacena un código QR?

Los códigos QR, no lo olvidemos, no son más que cuadrados blancos y negros, y no dejan de ser un fichero de texto codificado de una forma algo ‘rara’ . Estamos hablando de un fichero que, eso sí, puede contener una gran cantidad de caracteres. Para que os hagáis una idea:

  • Sólo números – Máx. 7.089 caracteres
  • Alfanumérico – Máx. 4.296 caracteres
  • Binario – Máx. 2.953 bytes
  • Kanji/Kana – Máx. 1.817 caracteres

Los QR pueden tener un tamaño mínimo de 21 x 21 o máximo de 177 x 177 cuadrados. Esto se denota por la versión, yendo desde 1 hasta 40. Como curiosidad, la versión V es N x N, siendo N = 17 x 4V. Según la versión elegida, tendrás más o menos cuadros.

Pero también poseen la capacidad de corregir errores en el escaneo. Mediante la agregación y eliminación de píxeles se pueden recuperar datos a causa de la falta de nitidez.

  • Nivel L- 7% de las claves se pueden restaurar
  • Nivel M – 15% de las claves se pueden restaurar
  • Nivel Q – 25% de las claves se pueden restaurar
  • Nivel H – 30% de las claves se pueden restaurar

De este modo se consigue una velocidad de lectura casi inmediata. Al momento que el lector detecta los cuadrados de posición y el de alineamiento, la extracción de la información es casi inmediata.

Cómo se leen los códigos QR, aquí viene lo importante

Vamos a explicar cómo se forma un código QR y cómo se podría llegar a interpretar sin un dispositivo Android (y con tiempo).

Para ello hay que diferenciar las cinco partes en las que se divide un código QR: Símbolos de posición, símbolo de alineamiento, líneas de dimensión, información variable y el cuerpo.

Símbolos de posicionamiento y alineación, la base

Lo que se puede ver sin problemas son los símbolos de posición y el de alineamiento. Gracias a los símbolos de posición, el lector de QR se ubica y puede seguir con el escaneo de datos. Claro está, una vez que determine la posición en la que está, porque estos códigos se pueden leer al revés.

fcarc-february2013-feature1 fcarc-february2013-feature3

Símbolos de posición / Símbolo de alineamiento

Líneas de dimensión, se usan para marcar luego los módulos

Una vez que ya posiciona el código, pasa a detectar las líneas de dimensión. Así puede saber el tamaño de los símbolos internos del cuerpo. Cuerpo que se divide en bytes. Sí, el cuerpo luego se divide en secciones de 8 cuadrados que simbolizan 1 y 0.

fcarc-february2013-feature4

Datos variables y necesarios para desenmascarar el código QR

Ahora toca saber ciertos datos como son el indexado del a matriz de cuadrados y el nivel de corrección de errores elegido. Esto se sabe a través de la sección destinada a la línea de formato. También hay otros bloques del código que te determinan la versión del código QR que está leyendo.

fcarc-february2013-feature5 fcarc-february2013-feature6

Datos y nivel de corrección de errores / Versión

Una vez que se saben todos estos datos, se puede proceder a la extracción de la información almacenada en el código QR hay que superar también su máscara de protección. Para poder saber el contenido tenemos que conocer su ID de máscara. Esto se saca a partir de la información de formato y los bits contenidos entre el 10-14. A eso se le hace el módulo de 2 y revelará el ID de máscara.

fcarc-february2013-feature5a2 fcarc-february2013-feature5a1

fcarc-february2013-feature5a3

Los bits del 10 al 14 son “11111”, eso cuando se le hace el módulo de 2 es “01010”. Pues se cogen los tres últimos y ese es el ID.

Determinar la matriz de bits del código QR

Con el valor de la máscara se pueden determinar los módulos del código QR. Y tal y como se ven numerados los cuadrados, son los bytes en los que está formado.

fcarc-february2013-feature7fcarc-february2013-feature8

Si nos fijamos en este ejemplo, podemos ver como el código QR, ya con los cuadrados marcados, se corresponde con la siguiente matriz en binario. Pues cuando ha hecho ya todo esto nuestro smartphone, traduce de binario a caracteres y nos envía la información correspondiente.

fcarc-february2013-feature9 qr-code

Cómo leer y crear tu propio código QR

Y sí, todo este proceso lo hace tu smartphone Android en un suspiro. A través de aplicaciones de terceros, o algunas marcas lo incluyen en su aplicación nativa, se puede leer un código QR de cualquier sitio.

Versión: 1.57
Autor:
Requiere Android 4.0 y versiones superiores

Si queréis crear vosotros mismos un código QR, esta página web es capaz de hacerlos de tal modo que puedas almacenar desde un número de teléfono, una URL o la clave de tu WiFi para que tus invitados no tengan que darle la vuelta al router e ir poniéndola.

Generador de códigos QR

Como dato, el más grande del mundo tiene un tamaño de 20.000 metros cuadrado y está en Canadá.

PD. ¿Habéis probado a leer el código QR de la portada?

Más información | AMS

Te puede interesar
  • Alejandro

    Gran invento.

  • Ricardo Israel Bustos

    Que interesante post jaja (Y)

  • Sergio

    Pedazo de artículo, mis dieses dieces al autor de la explicación (Bill Casselman) y al redactor, han conseguido abordar un tema complejo de una manera bastante sencilla, que estoy seguro que mucha gente entenderá sin problemas.

  • David Guerrero

    El QR de la portada es un enlace a este site, y el del ejemplo es el valor de pi=3.14159265358979

    Excelente articulo :)

  • HéctorMx

    Un gran invento que está muy desaprovechado.

LG Nexus 5X - Smartphone libre de 5.2" (2 GB de RAM, 16 GB de memoria interna, Android) color blanco
Precio oferta
249,99 €