Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Códigos QR
Javier Luque Ordóñez
javluqord@yahoo.es
9
ACTA Códigos QR
de códigos QR no requiere por tanto de ninguna del proceso; los parámetros de aplicación elegibles por
licencia o autorización previa, ni del pago de ningu- el usuario; y un listado de anexos informativos.
na tasa.
Para ello se apoya también en otros estándares
El proceso de estandarización de los códigos QR existentes de JIS y de ISO/IEC, principalmente rela-
ha sido el siguiente: cionados con conjuntos de caracteres y con técnicas
de captura e identificación de datos.
Octubre de 1997: aprobado como estándar de
AIMI (Automatic Identification Manufactu-
rers International): ISS-QR Code. Define los Ventajas y características
códigos “QR Code Model 1”.
principales de los códigos QR
Marzo de 1998: aprobado como estándar de
JEIDA (Japanese Electronic Industry Develo- Un código QR consiste en un conjunto de puntos
pment Association): JEIDA-55. negros (u oscuros) ubicados según una determinada
Enero de 1999: aprobado como estándar de JIS codificación en un patrón cuadrado sobre fondo
(Japanese Industrial Standards): JIS X 0510. blanco (o claro). Sus características y ventajas princi-
pales se muestran a continuación:
Junio de 2000: aprobado como estándar
Altacapacidad de codificación de datos: hasta
internacional de ISO/IEC (International Orga-
nization for Standarization/International 7.089 caracteres numéricos o 2.953 bytes.
Electrotechnical Commission): ISO/IEC Decodificación sencilla y a alta velocidad:
18004:2000. Define los códigos "QR Code desde lectores hardware o aplicaciones soft-
Model 2". ware.
Noviembre de 2004: añadida la variante Mayor densidad de datos y poco espacio nece-
“Micro QR” al estándar. sario para impresión del código: en torno a
Septiembre
de 2006: actualización a ISO/IEC 1/10 respecto al código de barras tradicio-
18004:2006. Define los códigos “QR Code nal.
2005”. Adaptabilidad del código a los datos: tamaño
La denominación oficial de la última versión del en puntos de la matriz según contenido alma-
estándar es “Information technology – Automatic cenado.
identification and data capture techniques – QR Soporte de múltiples lenguajes y códigos de
Code 2005 bar code symbology specification”. La caracteres: numéricos, alfanuméricos, bina-
versión de JIS del estándar es gratuita y está publica- rios, escrituras Kanji, Kana, Hiragana, o cual-
da en japonés, mientras que la versión ISO es de quier formato de datos mediante la definición
pago y está publicada en inglés. de extensiones.
El estándar especifica las características de la sim- Permite otras variantes como Micro QR o
bología; los métodos de codificación de datos; los for- hasta 16 estructuras añadidas.
matos de símbolo; las características dimensionales; los
métodos de corrección de errores; los algoritmos de Capacidad de corrección de errores: restaura-
referencia para decodificación; los requisitos de calidad ción de hasta un 30% de los datos.
10
Códigos QR
➠ Estructuras y codificación
de datos en los códigos QR
Conceptos básicos
de una estructura de código QR
La representación bidimensional de un código QR
se denomina símbolo. Cada símbolo está formado por
cuadros negros o blancos llamados módulos, que Figura 4. Estructura genérica de un símbolo.
11
ACTA
Códigos QR
Separador: patrón de función formado por codewords de datos y de corrección de errores, así
módulos blancos, cuyo ancho es de un módulo como por la información de formato y versión.
y que separa los patrones localizadores del
resto del símbolo. La información de formato es un patrón codifica-
do que contiene información sobre el grado de correc-
Los datos codificados, por su parte, se agrupan ción de errores con el que se han codificado los datos
en conjuntos de 8, denominados codewords, que de la región de codificación y el tipo de máscara que
adoptan diversas formas según su ubicación en la se les ha aplicado. La información de versión, por su
estructura. La región de codificación es la región del parte, es un patrón codificado que contiene informa-
símbolo no ocupada por patrones de función y sí por ción que indica la versión del símbolo.
12
Códigos QR
Asimismo, para poder delimitar correctamente los un conjunto de codewords de corrección de errores
bordes de cada símbolo, se requiere de una banda de (ECC, Error Correction Codewords) que se añaden
anchura 4 módulos (zona silenciosa) que debe estar en a los de datos aportando redundancia. Los algoritmos
blanco (en negro si hay reflectancia inversa). Reed-Solomon fueron desarrollados inicialmente para
combatir el ruido de comunicaciones en los satélites
El tamaño del símbolo se denomina versión. Exis- artificiales y sondas espaciales, y hoy día se emplean
ten 40 versiones: la versión 1 tiene 21x21 módulos, por ejemplo también en la codificación de CDs de
la versión 2 tiene 25x25 módulos, y así sucesiva- música. Permiten corrección a nivel de byte y son
mente (incrementos de 4 módulos por lado en cada adecuados para errores de ráfaga. Existen 4 niveles de
versión) hasta la versión 40, que contiene 177x177 corrección de errores en los símbolos QR:
módulos. Cada versión tiene un número y disposi-
ción diferente de codewords de datos y corrección L (Low). Puede corregir hasta el 7% de los
de errores, así como de patrones de función. codewords de datos del símbolo.
M (Medium). Puede corregir hasta el 15% de
Así, algunas versiones necesitan de módulos (bits)
de relleno y otras no. Las versiones inferiores a la 7 los codewords de datos del símbolo.
no disponen de información de versión, y la versión Q (Quality). Puede corregir hasta el 25% de
1 no incluye patrón de alineamiento. Sin embargo los codewords de datos del símbolo.
todas las versiones tienen 3 patrones localizadores, H (High). Puede corregir hasta el 30% de los
2 patrones temporizadores, 3 separadores y la for-
codewords de datos del símbolo.
mación de formato por duplicado.
Debido al diseño de estos algoritmos y al uso de
codewords de 8 bits en los símbolos QR, un bloque
Corrección de errores individual de código no puede ser mayor a 255
codewords de longitud. Esto hace que sea necesario
Los códigos QR emplean codificación de errores partir el mensaje en múltiples bloques, y aplicar el
basada en algoritmos de Reed-Solomon, generando algoritmo a los codewords de datos de cada bloque.
(144,116,14)
L 7 1 (26,19,2) L 224 44
(145,117,14)
1 26 M 10 1 (26,16,4) 21 1.156 M 442 17 (68,42,13)
Q 13 1 (26,13,6) Q 644 17 6 (50,22,14) (51,23,14)
H 17 1 (26,9,8) H 750 19 6 (46,16,15) (47,17,15)
(139,111,14)
L 10 1 (44,34,4) L 252 27
(140,112,14)
2 44 M 16 1 (44,28,8) 22 1.258 M 476 17 (74,46,14)
Q 22 1 (44,22,11) Q 690 7 16 (54,24,15) (55,25,15)
H 28 1 (44,16,14) H 816 34 (37,13,12)
(151,121,15)
L 15 1 (70,55,7) L 270 45
(152,122,15)
3 70 M 26 1 (70,44,13) 23 1.364 M 504 4 14 (75,47,14) (76,48,14)
Q 36 2 (35,17,9) Q 750 11 14 (54,24,15) (55,25,15)
H 44 2 (35,13,11) H 900 16 14 (45,15,15) (46,16,15)
(147,117,15)
L 20 1 (100,80,10) L 300 64
(148,118,15)
4 100 M 36 2 (50,32,9) 24 1.474 M 560 6 14 (73,45,14) (74,46,14)
Q 52 2 (50,24,13) Q 810 11 16 (54,24,15) (55,25,15)
H 64 4 (25,9,8) H 960 30 2 (46,16,15) (47,17,15)
(132,106,13)
L 26 1 (134,108,13) L 312 84
(133,107,13)
5 134 M 48 2 (67,43,12) 25 1.588 M 588 8 13 (75,47,14) (76,48,14)
Q 72 22 (33,15,9) (34,16,9) Q 870 7 22 (54,24,15) (55,25,15)
H 88 22 (33,11,11) (34,12,11) H 1050 22 13 (45,15,15) (46,16,15)
(142,114,14)
L 36 2 (86,68,9) L 336 10 2
(143,115,14)
6 172 M 64 4 (43,27,8) 26 1.706 M 644 19 4 (74,46,14) (75,47,14)
Q 96 4 (43,19,12) Q 952 28 6 (50,22,14) (51,23,14)
H 112 4 (43,15,14) H 1110 33 4 (46,16,15) (47,17,15)
13
ACTA Códigos QR
(152,122,15)
L 40 2 (98,78,10) L 360 84
(153,123,15)
7 196 M 72 4 (49,31,9) 27 1.828 M 700 22 3 (73,45,14) (74,46,14)
Q 108 24 (32,14,9) (33,15,9) Q 1 020 8 26 (53,23,15) (54,24,15)
H 130 41 (39,13,13) (40,14,13) H 1 200 12 28 (45,15,15) (46,16,15)
(147,117,15)
L 48 2 (121,97,12) L 390 3 10
(148,118,15)
8 242 M 88 22 (60,38,11) (61,39,11) 28 1.921 M 728 3 23 (73,45,14) (74,46,14)
Q 132 42 (40,18,11) (41,19,11) Q 1 050 4 31 (54,24,15) (55,25,15)
H 156 42 (40,14,13) (41,15,13) H 1 260 11 31 (45,15,15) (46,16,15)
(146,116,15)
L 60 2 (146,116,15) L 420 77
(147,117,15)
9 292 M 110 32 (58,36,11) (59,37,11) 29 2.051 M 784 21 7 (73,45,14) (74,46,14)
Q 160 44 (36,16,10) (37,17,10) Q 1 140 1 37 (53,23,15) (54,24,15)
H 192 44 (36,12,12) (37,13,12) H 1 350 19 26 (45,15,15) (46,16,15)
(145,115,15)
L 72 22 (86,68,9) (87,69,9) L 450 5 10
(146,116,15)
10 346 M 130 41 (69,43,13) (70,44,13) 30 2.185 M 812 19 10 (75,47,14) (76,48,14)
Q 192 62 (43,19,12) (44,20,12) Q 1 200 15 25 (54,24,15) (55,25,15)
H 224 62 (43,15,14) (44,16,14) H 1 440 23 25 (45,15,15) (46,16,15)
(145,115,15)
L 80 4 (101,81,10) L 480 13 3
(146,116,15)
11 404 M 150 14 (80,50,15) (81,51,15) 31 2.323 M 868 2 29 (74,46,14) (75,47,14)
Q 224 44 (50,22,14) (51,23,14) Q 1 290 42 1 (54,24,15) (55,25,15)
H 264 38 (36,12,12) (37,13,12) H 1 530 23 28 (45,15,15) (46,16,15)
L 96 22 (116,92,12) (117,93,12) L 510 17 (145,115,15)
M 176 62 (58,36,11) (59,37,11) M 924 10 23 (74,46,14) (75,47,14)
12 466 32 2.465
Q 260 46 (46,20,13) (47,21,13) Q 1 350 10 35 (54,24,15) (55,25,15)
H 308 74 (42,14,14) (43,15,14) H 1 620 19 35 (45,15,15) (46,16,15)
(145,115,15)
L 104 4 (133,107,13) L 540 17 1
(146,116,15)
13 532 M 198 81 (59,37,11) (60,38,11) 33 2.611 M 980 14 21 (74,46,14) (75,47,14)
Q 288 84 (44,20,12) (45,21,12) Q 1 440 29 19 (54,24,15) (55,25,15)
H 352 12 4 (33,11,11) (34,12,11) H 1 710 11 46 (45,15,15) (46,16,15)
(145,115,15) (145,115,15)
L 120 31 L 570 13 6
(146,116,15) (146,116,15)
14 581 M 216 45 (64,40,12) (65,41,12) 34 2.761 M 1 036 14 23 (74,46,14) (75,47,14)
Q 320 11 5 (36,16,10) (37,17,10) Q 1 530 44 7 (54,24,15) (55,25,15)
H 384 11 5 (36,12,12) (37,13,12) H 1 800 59 1 (46,16,15) (47,17,15)
(151,121,15)
L 132 51 (109,87,11) (110,88,11) L 570 12 7
(152,122,15)
15 655 M 240 55 (65,41,12) (66,42,12) 35 2.876 M 1 064 12 26 (75,47,14) (76,48,14)
Q 360 57 (54,24,15) (55,25,15) Q 1 590 39 14 (54,24,15) (55,25,15)
H 432 11 7 (36,12,12) (37,13,12) H 1 890 22 41 (45,15,15) (46,16,15)
(151,121,15)
L 144 51 (122,98,12) (123,99,12) L 600 6 14
(152,122,15)
16 733 M 280 73 (73,45,14) (74,46,14) 36 3.034 M 1 120 6 34 (75,47,14) (76,48,14)
Q 408 15 2 (43,19,12) (44,20,12) Q 1 680 46 10 (54,24,15) (55,25,15)
H 480 3 13 (45,15,15) (46,16,15) H 1 980 2 64 (45,15,15) (46,16,15)
(135,107,14) (152,122,15)
L 168 15 L 630 17 4
(136,108,14) (153,123,15)
17 815 M 308 10 1 (74,46,14) (75,47,14) 37 3.196 M 1 204 29 14 (74,46,14) (75,47,14)
Q 448 1 15 (50,22,14) (51,23,14) Q 1 770 49 10 (54,24,15) (55,25,15)
H 532 2 17 (42,14,14) (43,15,14) H 2 100 24 46 (45,15,15) (46,16,15)
(150,120,15) (152,122,15)
L 180 51 L 660 4 18
(151,121,15) (153,123,15)
18 901 M 338 94 (69,43,13) (70,44,13) 38 3.362 M 1 260 13 32 (74,46,14) (75,47,14)
Q 504 17 1 (50,22,14) (51,23,14) Q 1 860 48 14 (54,24,15) (55,25,15)
H 588 2 19 (42,14,14) (43,15,14) H 2 220 42 32 (45,15,15) (46,16,15)
(141,113,14) (147,117,15)
L 196 34 L 720 20 4
(142,114,14) (148,118,15)
19 991 M 364 3 11 (70,44,13) (71,45,13) 39 3.532 M 1 316 40 7 (75,47,14) (76,48,14)
Q 546 17 4 (47,21,13) (48,22,13) Q 1 950 43 22 (54,24,15) (55,25,15)
H 650 9 16 (39,13,13) (40,14,13) H 2 310 10 67 (45,15,15) (46,16,15)
(135,107,14) (148,118,15)
L 224 35 L 750 19 6
(136,108,14) (149,119,15)
20 1.085 M 416 3 13 (67,41,13) (68,42,13) 40 3.706 M 1 372 18 31 (75,47,14) (76,48,14)
Q 600 15 5 (54,24,15) (55,25,15) Q 2 040 34 34 (54,24,15) (55,25,15)
H 700 15 10 (43,15,14) (44,16,14) H 2 430 20 61 (45,15,15) (46,16,15)
(*) (a, b, c): a= total de codewords en el bloque; b: total de codewords de datos en el bloque; c: capacidad de corrección de errores
14
Códigos QR
Así, por cada bloque existen codewords de datos una información de formato compuesta solo por bits
y de corrección de errores. En la figura 6 se muestran a 0. La información de formato se ubica por dupli-
el número de bloques y codewords de datos y ECC cado (alrededor de los patrones de localización) en el
para cada bloque, versión y nivel de corrección. símbolo QR, ya que su decodificación es esencial
para la correcta decodificación del símbolo.
Para generar los ECC, cada codeword de datos
se emplea como coeficiente de un término de un La información de versión solo se aplica a los
polinomio, definido en la especificación QR. Para símbolos de versión 7 o superior. Está formada por
mejorar la eficiencia del algoritmo, los codewords de 18 bits, 6 de ellos contienen datos y los otros 12 se
datos son entremezclados (secuencialmente por blo- emplean para corregir errores en los 6 primeros,
ques), para evitar propagaciones de error. Los ECC mediante un código BCH (18,6). Los 6 bits de datos
se ubican a continuación de los codewords de datos codifican la versión del símbolo con el bit más signifi-
(y también son entremezclados secuencialmente por cativo primero (por ejemplo, “000111” es la versión
bloques). 7 y “101000” es la versión 40). En este caso no es
Cada símbolo se denomina de acuerdo a su ver- necesario enmascarar estos 18 bits, ya que no existe
sión y a su nivel de corrección de errores (1-Q, 23-L, la situación que provoque una cadena de bits a 0. La
40-H, 17-M, etc.). A mayor nivel de corrección de información de versión también se ubica por duplica-
errores, menor capacidad de datos tiene el símbolo. do, en bloques de 6x3 módulos encima del patrón de
El nivel M es el más empleado, y los niveles Q y H localización inferior izquierdo y a la izquierda del
se usan principalmente en entornos industriales. patrón de localización superior derecho.
Gracias a este método de corrección de errores,
es posible crear símbolos QR con errores intenciona- Colocación de los patrones
dos y que puedan aún ser decodificados correcta- de función en el símbolo
mente. Esto es empleado a nivel comercial para
personalización de la imagen del símbolo QR, inclu- Los 3 patrones de localización se ubican en las
yendo por ejemplo colores y logos. esquinas superior derecha, superior izquierda e infe-
rior izquierda del símbolo QR. Cada patrón de loca-
lización está formado por un cuadrado relleno de
Información de formato 3x3 módulos negros, rodeado de un cuadrado de
e información de versión 5x5 módulos blancos, rodeado a su vez por un cua-
drado de 7x7 módulos negros. La correcta localiza-
La información de formato es una secuencia de ción de estos patrones implica el cálculo de la orien-
15 módulos (bits), de los que 5 contienen datos y los tación del símbolo y del tamaño de los módulos del
otros 10 se emplean para corrección de errores en mismo. Los bordes interiores de cada patrón de
los 5 primeros, mediante un código BCH (15,5). De localización están rodeados por módulos blancos,
los 5 bits de datos, los dos primeros indican el nivel que constituyen los separadores.
de corrección de error usado (L = 01; M = 00; Q =
11; H = 10) y los otros tres indican el patrón de la Existen dos patrones temporizadores, uno verti-
máscara de datos usada. Una vez calculados los 15 cal y otro horizontal. Unen los separadores mediante
bits se les debe aplicar mediante la operación lógica módulos blancos y negros alternados (comenzando
XOR la máscara “101010000010010”, para evitar por un módulo negro), en la fila 6 y en la columna 6
Figura 7. Colocación y ordenación de la información de formato (en versión 1) y versión (en versión 7).
15
ACTA
Códigos QR
16
Códigos QR
pone como prefijo el indicador de modo y el indica- Figura 12. Capacidad de los símbolos QR para
dor contador de caracteres. las diferentes versiones.
Char. Valor Char. Valor Char. Valor Char. Valor Char. Valor Char. Valor Char. Valor Char. Valor
0 0 6 6 C 12 I 18 O 24 U 30 SP 36 . 42
1 1 7 7 D 13 J 19 P 25 V 31 $ 37 / 43
2 2 8 8 E 14 K 20 Q 26 W 32 % 38 : 44
3 3 9 9 F 15 L 21 R 27 X 33 * 39
4 4 A 10 G 16 M 22 S 28 Y 34 + 40
5 5 B 11 H 17 N 23 T 29 Z 35 - 41
17
ACTA
Códigos QR
Versión Módulos EC Bits datos Numérico Alfanumérico Byte Kanji Versión Módulos EC Bits datos Numérico Alfanumérico Byte Kanji
18
Códigos QR
Una vez codificados todos los datos en uno o versión y el nivel de corrección de errores seleccio-
varios modos con sus cabeceras y contadores ade- nado. Para cada uno de estos bloques se calculan los
cuados, los flujos resultantes deben dividirse en gru- correspondientes codewords de corrección de erro-
pos de 8 bits, dando lugar a los codewords de datos res de acuerdo a los coeficientes de los polinomios
(si los datos de entrada no son múltiplos de 8, se establecidos por el algoritmo.
añaden bits de relleno al último codeword). Para componer la secuencia final se concatenan
El mensaje resultante se extiende con codewords primero por turnos los codewords de datos de cada
de relleno adicionales (“11101100” y “00010001” bloque (por ejemplo, para K bloques de N codewords
alternativamente) hasta completar la capacidad para cada uno: B1CD1, B2CD1, ..., BNCD1, B1CD2,
datos del símbolo y nivel de corrección de errores B2CD2, ..., B1CDK, BNCDK). A continuación se
elegidos. Finalmente, a estos codewords de datos se concatenan de la misma forma los codewords de
le añaden los codewords ECC. errores obtenidos (por ejemplo, para K bloques de M
codewords de error cada uno: B1CE1, B2CE1, …,
BMCE1, B1CE2, B2CE2, …, B1CEK, BMCEK).
Construcción y colocación Tras esta secuencia se completa si es necesario con
de los codewords en el símbolo bits de relleno (en algunas versiones son necesarios
3, 4 ó 7 módulos). Si en una concatenación hay
El número total de codewords en el mensaje unos bloques con menor número de codewords de
viene determinado por el tamaño de la región de datos, se colocan éstos antes que el resto.
codificación, que es el tamaño del símbolo menos el
Hay dos tipos de colocación de los codewords en
de los patrones de función. Este número total se
el símbolo: regular e irregular. Su uso depende de la
dividirá en codewords de datos y codewords de
posición dentro del símbolo y de que encuentren o
corrección de errores, más los codewords restantes
no obstáculos (bordes del símbolo, patrones de fun-
si son necesarios para completar la estructura del
ción, información de versión o formato) en su colo-
símbolo.
cación secuencial. La colocación regular se repre-
Para construir la secuencia de codewords en el senta mediante bloques de 2x4 módulos verticales u
símbolo, los codewords de datos deben dividirse horizontales (éstos últimos cuando hay un cambio de
para poderles aplicar el algoritmo de Reed-Solomon dirección). La colocación irregular se produce al
en un cierto número de bloques, determinado por la encontrarse obstáculos en una colocación regular.
Figura 14. Ubicación de codewords de datos (26) y corrección de errores (44) en un símbolo 3-H (2 bloques).
19
ACTA
Códigos QR
La colocación de la secuencia de codewords en la (oscuros) debe estar equilibrado. Además, deben evi-
región de codificación comienza en la parte inferior tarse patrones que representen secuencias encontra-
derecha del símbolo (la única que no tiene patrón de das en los patrones de función, como por ejemplo
localización), subiendo hasta encontrar el patrón “1011101” de los patrones de localización. Para con-
superior y volviendo a bajar en la columna adyacente. seguir ambas cosas se aplica una máscara de datos a
La secuencia de bits será siempre de derecha a los codewords de datos y de corrección de errores de
izquierda (comenzando por el más significativo) y la región de codificación (no se aplica por tanto ni a
hacia arriba o hacia abajo según la dirección de colo- los patrones de función ni a la información de formato
cación. Continúa así hasta el final de la región de y versión), mediante una operación lógica XOR.
codificación, presentando formas irregulares cuando
sea necesario. Existen hasta 8 patrones de máscara aplicables.
Para ver cuál es mejor, se aplican todos ellos y se
comparan los resultados, seleccionando el más ade-
Máscaras de datos cuado de acuerdo a un cálculo de defectos según
unos pesos establecidos. Los patrones posibles y su
Para optimizar la decodificación de los símbolos código para la información de formato son los
QR, el número de módulos blancos (claros) y negros siguientes:
20
Códigos QR
➠
La versión M1 no dispone de corrección de errores
ni información de versión.
eneración y lectura
G
Otra variante es el empleo de códigos QR apila- de códigos QR
dos, para almacenar cantidades elevadas de datos en
varios símbolos QR relacionados. El estándar permi- Elementos del sistema
te hasta 16 símbolos QR apilados en 2 columnas. El
conjunto de símbolos apilados incluye la información Un sistema de generación y lectura de códigos
necesaria (número total de símbolos y orden en el QR comprende elementos de creación e impresión
conjunto) para reconstruir el mensaje completo orde- de códigos, así como de captura y decodificación.
nado. Así, un código QR puede ser generado con una apli-
cación software diseñada para ello (existen para
Asimismo, diversas funcionalidades incluidas en múltiples sistemas operativos y múltiples entornos), y
el estándar dotan de aún mayor flexibilidad la simbo- puede ser impreso con cualquier impresora compa-
logía QR. Por ejemplo, en la codificación de carac- tible con códigos QR.
teres se permite virtualmente cualquier modo posi-
ble, mediante los parámetros ECI. Este método Un caso habitual de generación de códigos QR es
posibilita crear nuevos modos de codificación, per- emplear una aplicación desde un PC o un dispositivo
21
ACTA
Códigos QR
22
Códigos QR
6. Enmascarar los datos. Aplicar los patrones de ción de errores y del nivel de corrección
máscara a la región de codificación. Evaluar detectado.
los resultados y seleccionar el patrón que opti-
mice el equilibrio de módulos blancos y 7. Dividir los codewords de datos corregidos en
negros y minimice la aparición de patrones segmentos de acuerdo a los indicadores de
no deseados. modo y a los contadores de caracteres encon-
trados.
7. Generar la información de formato y versión
(si procede). Ubicarla en el símbolo. 8. Decodificar los caracteres de acuerdo a su
modo de codificación y concatenar los resul-
tados para obtener la cadena original.
Pasos para decodificación
El proceso de decodificación es el inverso al de
codificación: a partir de un símbolo se obtienen unos
datos en forma de caracteres. El estándar establece
este proceso en 8 pasos:
➠ Aplicaciones de los códigos QR
La aparición de los códigos QR se produjo en el
entorno de la automoción. Uno de los usos más
1. Localizar y obtener una imagen del símbolo, típicos de las simbologías bidimensionales es la traza-
y crear una matriz de bits “1” y “0” recono- bilidad en procesos de fabricación, para seguimiento
ciendo en ella los módulos blancos (claros) y de la cadena de montaje de los productos.
negros (oscuros).
Adicionalmente, a nivel industrial se emplean en
2. Leer la información de formato. Obtener el gestión de logística y en control de inventarios. Pero
nivel de corrección de errores y el tipo de además de los usos industriales, existen cada vez más
patrón de máscara de datos empleado. ámbitos de la sociedad en los que se emplean códi-
3. Leer la información de versión (si aplica) y gos QR: publicidad personalizada y geolocalizada,
determinar el tamaño en módulos del símbolo. educación, ocio, arte, etc.
4. Aplicar la máscara de datos a la matriz en la Las amplias posibilidades de personalización (en
región de codificación mediante la operación contenido, en tamaño, en presentación, en ubica-
XOR. ción) abre un mundo de enormes posibilidades para
todo tipo de aplicaciones. Asimismo, la facilidad de
5. Obtener los codewords de datos y de correc- decodificación de los símbolos QR unido a la facili-
ción de errores de acuerdo a la versión leída. dad de instalación y uso de software decodificador de
6. Detectar los posibles errores en los codewords códigos QR en dispositivos móviles con cámara, han
de datos, a partir de los codewords de correc- permitido la aparición de infinidad de usos netamen-
23
ACTA
Códigos QR
te orientados al consumidor, con fines publicitarios e Debido además a la robustez frente a errores de
informativos, empleando los símbolos QR para por esta simbología, se emplean errores intencionales en
ejemplo codificar direcciones URL de Internet, infor- los símbolos QR para introducir algún logo en la
maciones de producto o cupones de promoción, imagen del símbolo sin que la decodificación se vea
entre otros. afectada.
24
Códigos QR
Las posibilidades de personalización han abierto cas sobre esta simbología. Igualmente también se
un nuevo mercado en el que el usuario decide qué emplean símbolos QR en el campo del ocio, integrán-
mensaje quiere codificar y encarga un producto “a dolos de diversas formas en pasatiempos cotidianos.
medida”, quedando codificado e impreso el símbolo
QR con el mensaje personal en el producto adquiri- Debido a la tremenda proliferación de los códigos
do. Esta nueva filosofía es igualmente aplicable a la QR en los últimos tiempos, su empleo para decodi-
elaboración de multitud de regalos personalizados. ficar URLs puede ser aprovechado para realizar
ataques maliciosos (conocidos como attagging o
En el campo del arte también está experimentan- attack tagging). Pueden crearse fácilmente y acce-
do un fuerte auge la simbología QR. Son muchos los der a los dispositivos móviles y a su contenido. Por
artistas que han creado obras basadas explícitamente ello es conveniente decodificar códigos considerados
en códigos QR (pinturas, esculturas, arte funcional, confiables o disponer de un programa antivirus que
etc.), existiendo incluso galerías de arte monotemáti- evite el uso indebido de los datos decodificados. Asi-
25
ACTA
Códigos QR
mismo, para el manejo de datos sensibles se emplean sas circunstancias (colores, rotación, perspectiva,
símbolos QR con datos cifrados (por ejemplo median- cualquier tamaño, etc.) permite la creación de símbo-
te algoritmos DES). los QR muy diferentes y si cabe más efectivos.
La creación de símbolos QR atractivos se ha El usuario no solo puede decodificar símbolos QR
convertido en una prioridad en las estrategias de sin coste y sin esfuerzo. También puede generarlos
marketing. La facilidad de decodificación en diver- fácilmente. Así, existe una gran variedad de genera-
26
Códigos QR
dores de símbolos QR gratuitos, muchos de ellos texto de salida admitiendo como entrada una imagen
utilizables en línea desde cualquier navegador de del símbolo o una URL que apunte a la imagen.
internet. Permiten múltiples tipos de entrada, de
➠
forma que su codificación se realiza de tal manera
que prepara la acción correspondiente al decodificar Otros códigos bidimensionales
en destino:
Evento de calendario. Los códigos en 2D o bidimensionales son la evo-
Información de contacto. lución natural de los códigos de barras unidimensio-
Dirección de correo electrónico. nales inventados en 1952 (ejemplos son EAN, Code
Número de teléfono. 128, Code 39, Code 93), por lo que en ocasiones
son denominados “códigos de barras bidimensiona-
Datos de geolocalización.
les”. Los códigos bidimensionales superan las diver-
SMS. sas limitaciones de los códigos de barras tradiciona-
URL. les: mayor espacio de impresión, poca capacidad de
Red WiFi. datos, pocos conjuntos de caracteres soportados,
poca corrección de errores, etc.
Texto libre.
Los códigos QR son un tipo de simbología bidi-
Algunos de ellos permiten componer informa- mensional, aunque no la única existente. Existen así
ción para las redes sociales, vídeos, imágenes e otras que también han sido estandarizadas, como
incluso mensajes de correo electrónico. También PDF, DataMatrix o MaxiCode. Cada uno tiene sus
permiten la posibilidad de personalizar la apariencia, ventajas e inconvenientes y es más empleado que
seleccionando el color y la forma de los módulos del otros en un determinado ámbito. El auge de los códi-
símbolo. gos QR se debe a que poseen todas las ventajas de
Igualmente, además de los programas de decodi- los otros códigos bidimensionales estandarizados, y
ficadores para PC y dispositivos móviles, también además pueden ser empleados masivamente desde
existen decodificadores online gratuitos. Generan el dispositivos móviles con cámara.
27
ACTA
Códigos QR
Existen igualmente simbologías bidimensionales (BIDI, por ejemplo, carece de los patrones de locali-
de múltiples colores, como Colorcode, que consiguen zación de las esquinas), son privados o de código
mayor cantidad de información en el mismo espacio. cerrado y no gratuitos (debido a su orientación
Un ejemplo de este tipo de códigos. Requieren captu- comercial).
ras de imagen de mayor calidad y contraste, lo que no
➠
los hace adecuados para uso cotidiano.
Además existen códigos bidimensionales propie- Enlaces de interés
tarios (cuyas especificaciones no están publicadas y
por tanto no son de libre uso), como es el caso de A continuación se muestran diversos enlaces de
BIDI, introducidos en España por Movistar. Los códi- interés, presentados como símbolo QR para mostrar
gos BIDI, aunque a menudo se citan como sinóni- al lector una de sus aplicaciones más útiles, la codifi-
mos de códigos QR, son simbologías diferentes a QR cación de URLs:
28