Código QR [a] ( eng. Código de respuesta rápida - código de respuesta rápida [2] ; código QR abreviado ) - un tipo de códigos de barras de matriz (o códigos de barras bidimensionales ), desarrollado originalmente para la industria automotriz en Japón . Masahiro Hara [3] es considerado su creador . El término en sí es una marca registrada de la empresa japonesa Denso . Un código de barras es una etiqueta óptica legible por máquina que contiene información sobre el objeto al que está adherido. El código QR utiliza cuatro modos de codificación estandarizados (numérico, alfanumérico, binario y kanji ) para almacenar datos de manera eficiente; También se pueden utilizar las extensiones [4] .
El sistema de códigos QR se ha vuelto popular fuera de la industria automotriz debido a su rápida legibilidad y mayor capacidad en comparación con los códigos de barras estándar UPC . Las extensiones incluyen el seguimiento de productos, la identificación de artículos, el seguimiento del tiempo, la gestión de documentos y el marketing general [5] .
Un código QR consta de cuadrados negros dispuestos en una cuadrícula sobre un fondo blanco, que pueden ser leídos por dispositivos de imágenes como una cámara y procesados con códigos Reed-Solomon hasta que la imagen se reconozca correctamente. Luego se extraen los datos necesarios de los patrones que están presentes en los componentes horizontal y vertical de la imagen [5] .
En los días en que no existía el código QR, el escaneo de componentes se realizaba en la fábrica de Denso con diferentes códigos de barras. Sin embargo, debido al hecho de que había alrededor de 10 de ellos, la eficiencia del trabajo era extremadamente baja y los trabajadores se quejaron de que se cansaban rápidamente y también pidieron que se creara un código que pudiera contener más información que un código de barras normal. Para responder a la solicitud de este trabajador, Denso-Wave se dispuso a crear un código que pudiera incluir más información para habilitar el escaneo de componentes de alta velocidad. [6] Para hacer esto, Masahiro Hara, quien trabajaba en el departamento de desarrollo, comenzó a desarrollar un nuevo código a partir de 1992. [7] La inspiración para el Código QR provino del juego Go que Masahiro Hara jugó durante su hora de almuerzo. [7] Decidió que el objetivo del diseño no era solo aumentar la cantidad de información del código, sino también "leer con precisión y rapidez", así como hacer que el código fuera legible y resistente a las manchas de aceite, suciedad y daños, sugiriendo que se utilizará en las industrias respectivas. El código QR fue introducido por la empresa japonesa Denso-Wave en 1994 después de un período de desarrollo de dos años. [8] [9] [10] Fue diseñado teniendo en cuenta el sistema de producción Kanban ( justo a tiempo ) de Toyota para su uso en fábricas de autopartes y centros de distribución. Sin embargo, dado que tiene una alta capacidad de detección y corrección de errores y está hecho en código abierto , se ha salido del estrecho alcance de las cadenas de suministro de fabricación de Toyota y se ha utilizado en otras áreas, lo que ha llevado a que ahora sea ampliamente utilizado. utilizado no sólo en Japón, sino en todo el mundo. La gran popularidad de los códigos de barras en Japón llevó al hecho de que la cantidad de información cifrada en ellos pronto dejó de ser adecuada para la industria. Los japoneses comenzaron a experimentar con nuevas formas modernas de codificar pequeñas cantidades de información en una imagen gráfica. El código QR se ha convertido en uno de los tipos de código 2D más utilizados en el mundo. [11] La especificación del código QR no describe el formato de los datos .
A diferencia del antiguo código de barras, que se escanea con un rayo delgado, un sensor o cámara detecta un código QR como una imagen bidimensional. Los tres cuadrados en las esquinas de la imagen y los cuadrados de tiempo más pequeños en todo el código normalizan el tamaño y la orientación de la imagen, así como el ángulo en el que se coloca el sensor con respecto a la superficie de la imagen. Los puntos se convierten en números binarios con verificación de suma de control .
La principal ventaja de un código QR es su fácil reconocimiento mediante equipos de escaneo , lo que hace posible su uso en comercio , producción y logística .
Aunque la designación de "código QR" es una marca registrada de DENSO Corporation, el uso de los códigos no está sujeto a regalías , y ellos mismos se describen y publican como normas ISO.
Los visores de códigos QR más populares admiten los siguientes formatos de datos: URL , marcador del navegador , correo electrónico (con línea de asunto), SMS a número (con línea de asunto), MeCard, vCard , coordenadas geográficas , conexión de red Wi-Fi .
Además, algunos programas pueden reconocer archivos GIF , JPG , PNG o MID de menos de 4 KB y texto cifrado , pero estos formatos no han ganado popularidad. [13]
Los códigos QR son más comunes en Japón. Ya a principios de 2000, los códigos QR se generalizaron tanto en el país que se podían encontrar en una gran cantidad de carteles, paquetes y productos, donde dichos códigos se aplican a casi todos los productos que se venden en las tiendas, se colocan en folletos publicitarios. y libros de referencia. Con la ayuda de un código QR, incluso organizan varios concursos y juegos de rol . Los principales operadores móviles japoneses lanzan conjuntamente bajo su marca teléfonos móviles con soporte integrado para el reconocimiento de códigos QR [14] .
En la actualidad, el código QR también está ampliamente distribuido en los países asiáticos, desarrollándose gradualmente en Europa y América del Norte. Recibió el mayor reconocimiento entre los usuarios de comunicaciones móviles: al instalar un programa de reconocimiento, el suscriptor puede ingresar instantáneamente información de texto en su teléfono, conectarse a una red Wi-Fi , enviar cartas por correo electrónico , agregar contactos a la libreta de direcciones, seguir enlaces web, enviar mensajes SMS , etc.
Según un estudio realizado por comScore en 2011, 20 millones de residentes de EE . UU. usaban teléfonos móviles para escanear códigos QR [15] .
En Japón, Austria y Rusia, los códigos QR también se utilizan en los cementerios y contienen información sobre los fallecidos [16] [17] [18] .
En la ciudad china de Hefei , se entregaron distintivos con códigos QR a los ancianos, gracias a los cuales los transeúntes pueden ayudar a los ancianos perdidos a regresar a casa [19] .
Los códigos QR se utilizan activamente en los museos [20] , así como en el turismo, tanto a lo largo de las rutas turísticas como en diversos objetos. Las placas de metal son más duraderas y resistentes al vandalismo.
Simultáneamente con el inicio de la vacunación masiva contra el COVID-19 en la primavera de 2021, casi todos los países del mundo comenzaron a emitir documentos de vacunación, certificados digitales o en papel, en los que se colocaron códigos QR en todas partes. Para el 9 de noviembre de 2021, se introdujeron códigos QR para confirmar vacunación o enfermedad pasada ( COVID-19 ) en 77 entidades constitutivas de la Federación Rusa (en algunas de ellas, se retrasó el inicio de códigos QR para dar a la población la oportunidad de obtener vacunado). En Tartaristán , la introducción de códigos QR ha provocado aglomeraciones en las entradas del metro y numerosos conflictos entre pasajeros y conductores de transporte público [21] .
El código QR más pequeño (versión 1) tiene un tamaño de 21×21 píxeles (excluyendo los márgenes), el más grande (versión 40) es de 177×177 píxeles. La conexión entre el número de versión y el número de módulos es simple: el código QR de la próxima versión es más grande que el anterior en estrictamente 4 módulos horizontal y verticalmente.
Hay cuatro codificaciones principales de códigos QR:
También existen las "pseudocodificaciones": especificar cómo se codifican los datos, dividir un mensaje largo en varios códigos, etc.
Para corregir errores se utiliza el código Reed-Solomon con una palabra clave de 8 bits. Hay cuatro niveles de redundancia: 7, 15, 25 y 30%. Gracias a la corrección de errores, es posible poner una imagen en un código QR y aún así dejarlo legible.
Para que no haya elementos en el código que puedan confundir al escáner, el área de datos se agrega módulo 2 con una máscara especial. Un codificador que funcione correctamente debe probar todas las opciones de máscara, calcular los puntos de penalización para cada una de acuerdo con reglas especiales y elegir la más exitosa.
1. Introducción
2 - Estructura
3 - Codificación
4 - Niveles
5 - Protocolos
Por separado, existe un microcódigo QR con una capacidad de hasta 35 dígitos.
La eficiencia de almacenamiento de datos en comparación con el código QR tradicional mejora considerablemente al usar solo una etiqueta de posicionamiento, en comparación con las tres etiquetas en un código QR convencional. Debido a esto, se libera un cierto espacio que se puede utilizar para datos. Además, un código QR requiere un margen libre alrededor del código que tenga al menos 4 módulos de ancho (la unidad de construcción mínima para un código QR), mientras que un código Micro QR requiere un margen de dos módulos de ancho. Debido a la mayor eficiencia del almacenamiento de datos, el tamaño del código Micro QR no aumenta tanto con el aumento de la cantidad de datos codificados en comparación con el código QR tradicional.
Por analogía con los niveles de corrección de errores en los códigos QR, el código Micro QR viene en cuatro versiones, M1-M4 [22] [23] .
Versión de código | Número de módulos | Nivel de corrección de errores | Números | Números y letras | Datos binarios | kanji |
---|---|---|---|---|---|---|
M1 | once | - | 5 | - | - | - |
M2 | 13 | L (7%) | diez | 6 | - | - |
H (15%) | ocho | 5 | - | - | ||
M3 | quince | L (7%) | 23 | catorce | 9 | 6 |
H (15%) | Dieciocho | once | 7 | cuatro | ||
M4 | 17 | L (7%) | 35 | 21 | quince | 9 |
H (15%) | treinta | Dieciocho | 13 | ocho | ||
Q (25%) | 21 | 13 | 9 | 5 |
Hay varias formas de codificar información en un código QR, y la elección de un método específico depende de los símbolos que se utilicen. Si solo se usan números del 0 al 9, entonces se puede usar la codificación numérica, si, además de los números, es necesario cifrar letras del alfabeto latino, espacio y símbolos $%*+-./:, se usa la codificación alfanumérica. También existe la codificación kanji, que se utiliza para cifrar caracteres chinos y japoneses, y la codificación de bytes. Antes de cada método de codificación, se crea una secuencia de bits vacía, que luego se llena.
Este tipo de codificación requiere 10 bits por 3 caracteres. Toda la secuencia de caracteres se divide en grupos de 3 dígitos, y cada grupo (número de tres dígitos) se traduce en un número binario de 10 bits y se suma a la secuencia de bits. Si el número total de caracteres no es un múltiplo de 3, entonces si quedan 2 caracteres al final, el número de dos dígitos resultante se codifica con 7 bits, y si es 1 carácter, entonces con 4 bits.
Por ejemplo, hay una cadena "12345678" que debe codificarse. La secuencia se divide en números: 123, 456 y 78, luego cada número se convierte en formato binario: 0001111011, 0111001000 y 1001110, y se combina en un flujo de bits: 000111101101110010001001110.
A diferencia de la codificación digital, se requieren 11 bits de información para codificar 2 caracteres. La secuencia de caracteres se divide en grupos de 2, en el grupo cada carácter se codifica de acuerdo con la tabla "Valores de caracteres en codificación alfanumérica". El valor del primer carácter se multiplica por 45, luego el valor del segundo carácter se suma a este producto. El número resultante se convierte en un número binario de 11 bits y se suma a la secuencia de bits. Si queda un carácter en el último grupo, su valor se codifica como un número de 6 bits. Considere un ejemplo: "PRUEBA". Dividimos la secuencia de caracteres en grupos: PR , OO , F . Encontramos los valores correspondientes para los símbolos de cada grupo (mira la tabla): PR - (25.27), OO - (24.24), F - (15). Encuentre los valores para cada grupo: 25 × 45 + 27 = 1152, 24 × 45 + 24 = 1104, 15 = 15. Convierta cada valor a binario: 1152 = 10010000000, 1104 = 10001010000, 15 = 001111. Combine en uno secuencia: 1001000000010001010000001111.
Cualquier carácter se puede codificar de esta manera. El flujo de caracteres de entrada se codifica en cualquier codificación (recomendado en UTF-8 ), luego se convierte a formato binario, después de lo cual se combina en un solo flujo de bits.
Por ejemplo, la palabra "Mundo" está codificada en Unicode (HEX) en UTF-8 : M - D09C; y - D0B8; p - D180. Traducimos cada valor al sistema binario: D0 = 11010000, 9C = 10011100, D0 = 11010000, B8 = 10111000, D1 = 11010001 y 80 = 10000000; combinar en un flujo de bits: 11010000 10011100 11010000 10111000 11010001 10000000.
La codificación de jeroglíficos (así como otros símbolos) se basa en una tabla o lista de imágenes de jeroglíficos con sus códigos percibida visualmente. Tal tabla se llama un "conjunto de caracteres". Para el japonés, dos tablas de caracteres son de primordial importancia: JIS 0208:1997 y JIS 0212:1990. El segundo de ellos sirve de complemento al primero. JIS 0208:1997 está dividido en 94 páginas de 94 caracteres. Por ejemplo, la página 4 es hiragana, la página 5 es katakana, la 7 es cirílica, la 16-43 es kanji de nivel 1 y la 48-83 es kanji de nivel 2. Los kanji de nivel 1 ("JIS daiichi suijun kanji") están ordenados por onm. Los kanji de nivel 2 ("JIS daini suijun kanji") están ordenados por clave, y dentro de ellos por el número de trazos.
Después de determinar la versión y la codificación del código, es necesario determinar el nivel de corrección de errores. La tabla muestra los valores máximos de los niveles de corrección para diferentes versiones del código QR. Para corregir errores se utiliza el código Reed-Solomon con una palabra clave de 8 bits.
Mesa. La máxima cantidad de información.
Fila — nivel de corrección, columna — número de versión.
una | 2 | 3 | cuatro | 5 | 6 | 7 | ocho | 9 | diez | once | 12 | 13 | catorce | quince | dieciséis | 17 | Dieciocho | 19 | veinte | |
L | 152 | 272 | 440 | 640 | 864 | 1088 | 1248 | 1552 | 1856 | 2192 | 2592 | 2960 | 3424 | 3688 | 4184 | 4712 | 5176 | 5768 | 6360 | 6888 |
METRO | 128 | 224 | 352 | 512 | 688 | 864 | 992 | 1232 | 1456 | 1728 | 2032 | 2320 | 2672 | 2920 | 3320 | 3624 | 4056 | 4504 | 5016 | 5352 |
q | 104 | 176 | 272 | 384 | 496 | 608 | 704 | 880 | 1056 | 1232 | 1440 | 1648 | 1952 | 2088 | 2360 | 2600 | 2936 | 3176 | 3560 | 3880 |
H | 72 | 128 | 208 | 288 | 368 | 480 | 528 | 688 | 800 | 976 | 1120 | 1264 | 1440 | 1576 | 1784 | 2024 | 2264 | 2504 | 2728 | 3080 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | treinta | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | |
L | 7456 | 8048 | 8752 | 9392 | 10208 | 10960 | 11744 | 12248 | 13048 | 13880 | 14744 | 15640 | 16568 | 17528 | 18448 | 19472 | 20528 | 21616 | 22496 | 23648 |
METRO | 5712 | 6256 | 6880 | 7312 | 8000 | 8496 | 9024 | 9544 | 10136 | 10984 | 11640 | 12328 | 13048 | 13800 | 14496 | 15312 | 15936 | 16816 | 17728 | 18672 |
q | 4096 | 4544 | 4912 | 5312 | 5744 | 6032 | 6464 | 6968 | 7288 | 7880 | 8264 | 8920 | 9368 | 9848 | 10288 | 10832 | 11408 | 12016 | 12656 | 13328 |
H | 3248 | 3536 | 3712 | 4112 | 4304 | 4768 | 5024 | 5288 | 5608 | 5960 | 6344 | 6760 | 7208 | 7688 | 7888 | 8432 | 8768 | 9136 | 9776 | 10208 |
Después de determinar el nivel de corrección de errores, es necesario agregar campos de servicio, se escriben antes de la secuencia de bits obtenida después de la etapa de codificación. Indican el método de codificación y la cantidad de datos. El valor del campo del método de codificación consta de 4 bits, no cambia, pero sirve como un signo que indica qué método de codificación se utiliza. Tiene los siguientes significados:
Ejemplo:
El ejemplo de codificación de bytes anterior codificó la palabra "Mundo", lo que resultó en la siguiente secuencia de código binario:
11010000 10011100 11010000 10111000 11010001 10000000 que contiene 48 bits de información.
Sea necesario el nivel de corrección de errores H, que permite recuperar el 30% de la información perdida. Según la tabla, la versión óptima del código QR se selecciona de la máxima cantidad de información (en este caso, la versión 1, que permite codificar 72 bits de información útil en el nivel de corrección de errores H).
Información sobre el método de codificación: el campo 0100 corresponde a la codificación de bytes.
Indicación de la cantidad de datos (para codificación numérica y alfanumérica - el número de caracteres, para codificación de bytes - el número de bytes): esta secuencia contiene 6 bytes de datos (en binario: 110).
De acuerdo con la tabla, se determina la longitud requerida del número binario: 8 bits. Se suman los ceros que faltan: 00000110.
Versión 1-9 | Versión 10-26 | Versión 27-40 | |
---|---|---|---|
Digital | 10 bits | 12 bits | 14 bits |
Alfanumérico | 9 bits | 11 bits | 13 bits |
Byte | 8 bits | 16 bits | 16 bits |
Toda la información se escribe en el orden <método de codificación> <cantidad de datos> <datos>, dando como resultado una secuencia de bits:
0100 00000110 11010000 10011100 11010000 10111000 11010001 10000000.
La secuencia de bytes se divide en el número de bloques definido para la versión y el nivel de corrección, que se indica en la tabla "Número de bloques". Si el número de bloques es igual a uno, se puede omitir este paso. Y cuando se actualiza la versión, se agregan bloques especiales.
Primero, se determina el número de bytes (datos) en cada uno de los bloques. Para hacer esto, debe dividir la cantidad total de bytes por la cantidad de bloques de datos. Si este número no es un número entero, entonces necesitas determinar el resto de la división. Este resto determina cuántos bloques de todos se rellenan (tales bloques, el número de bytes en los que es uno más que en el resto). Contrariamente a lo esperado, los bloques acolchados no deben ser los primeros bloques, sino los últimos. Luego viene el llenado secuencial de bloques.
Ejemplo: para la versión 9 y el nivel de corrección M, la cantidad de datos es 182 bytes, el número de bloques es 5. Dividiendo el número de bytes de datos por el número de bloques, obtenemos 36 bytes y 2 bytes en el resto. Esto significa que los bloques de datos tendrán los siguientes tamaños: 36, 36, 36, 37, 37 (bytes). Si no hubiera resto, los 5 bloques tendrían un tamaño de 36 bytes.
El bloque está completamente lleno de bytes de los datos. Cuando el bloque actual está lleno, la cola pasa al siguiente. Los bytes de datos deberían ser suficientes exactamente para todos los bloques, ni más ni menos.
El proceso se basa en el algoritmo Reed-Solomon . Debe aplicarse a cada bloque de información en el código QR. En primer lugar, se determina el número de bytes de corrección que se crearán y, a partir de estos datos, se crea un polinomio de generación. El número de bytes de corrección por bloque está determinado por la versión de código seleccionada y el nivel de corrección de errores (dado en la tabla).
una | 2 | 3 | cuatro | 5 | 6 | 7 | ocho | 9 | diez | once | 12 | 13 | catorce | quince | dieciséis | 17 | Dieciocho | 19 | veinte | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | treinta | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | |
L | 7 | diez | quince | veinte | 26 | Dieciocho | veinte | 24 | treinta | Dieciocho | veinte | 24 | 26 | treinta | 22 | 24 | 28 | treinta | 28 | 28 | 28 | 28 | treinta | treinta | 26 | 28 | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta |
METRO | diez | dieciséis | 26 | Dieciocho | 24 | dieciséis | Dieciocho | 22 | 22 | 26 | treinta | 22 | 22 | 24 | 24 | 28 | 28 | 26 | 26 | 26 | 26 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 |
q | 13 | 22 | Dieciocho | 26 | Dieciocho | 24 | Dieciocho | 22 | veinte | 24 | 28 | 26 | 24 | veinte | treinta | 24 | 28 | 28 | 26 | treinta | 28 | treinta | treinta | treinta | treinta | 28 | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta |
H | 17 | 28 | 22 | dieciséis | 22 | 28 | 26 | 26 | 24 | 28 | 24 | 28 | 22 | 24 | 24 | treinta | 28 | 28 | 26 | 28 | treinta | 24 | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta | treinta |
El polinomio generador está determinado por el número de bytes de corrección (dado en la tabla).
Número de bytes de corrección | Polinomio generador |
---|---|
7 | 87, 229, 146, 149, 238, 102, 21 |
diez | 251, 67, 46, 61, 118, 70, 64, 94, 32, 45 |
13 | 74, 152, 176, 100, 86, 100, 106, 104, 130, 218, 206, 140, 78 |
quince | 8, 183, 61, 91, 202, 37, 51, 58, 58, 237, 140, 124, 5, 99, 105 |
dieciséis | 120, 104, 107, 109, 102, 161, 76, 3, 91, 191, 147, 169, 182, 194, 225, 120 |
17 | 43, 139, 206, 78, 43, 239, 123, 206, 214, 147, 24, 99, 150, 39, 243, 163, 136 |
Dieciocho | 215, 234, 158, 94, 184, 97, 118, 170, 79, 187, 152, 148, 252, 179, 5, 98, 96, 153 |
veinte | 17, 60, 79, 50, 61, 163, 26, 187, 202, 180, 221, 225, 83, 239, 156, 164, 212, 212, 188, 190 |
22 | 210, 171, 247, 242, 93, 230, 14, 109, 221, 53, 200, 74, 8, 172, 98, 80, 219, 134, 160, 105, 165, 231 |
24 | 229, 121, 135, 48, 211, 117, 251, 126, 159, 180, 169, 152, 192, 226, 228, 218, 111, 0, 117, 232, 87, 96, 227, 21 |
26 | 173, 125, 158, 2, 103, 182, 118, 17, 145, 201, 111, 28, 165, 53, 161, 21, 245, 142, 13, 102, 48, 227, 153, 145, 218, 70 |
28 | 168, 223, 200, 104, 224, 234, 108, 180, 110, 190, 195, 147, 205, 27, 232, 201, 21, 43, 245, 87, 42, 195, 212, 119, 242, 37, 9, 123 |
treinta | 41, 173, 145, 152, 216, 31, 179, 182, 50, 48, 110, 86, 239, 96, 222, 125, 42, 173, 226, 193, 224, 130, 156, 37, 251, 216, 238, 40, 192, 180 |
El cálculo se realiza en base a los valores de la matriz de datos inicial y los valores del polinomio generador, y para cada paso del ciclo por separado.
En esta etapa, hay dos bloques listos para usar: datos iniciales y bloques de corrección (del paso anterior), deben combinarse en un flujo de bytes. A su vez, es necesario tomar un byte de información de cada bloque de datos, comenzando por el primero y terminando por el último. Cuando la cola llega al último bloque, se toma un byte y la cola se mueve al primer bloque. Esto continúa hasta que cada bloque se queda sin bytes. Hay excepciones cuando el bloque actual se omite si no hay bytes en él (una situación en la que los bloques ordinarios ya están vacíos y todavía hay un byte en los rellenos). Lo mismo ocurre con los bloques de bytes de corrección. Se toman en el mismo orden que los bloques de datos correspondientes.
El resultado es la siguiente secuencia de datos: <1er byte del 1er bloque de datos><1er byte del 2° bloque de datos>…<1er byte del n-ésimo bloque de datos><2° byte del 1er bloque de datos>…<(m — 1)-ésimo byte del 1.er bloque de datos>…<(m — 1)-ésimo byte del n-ésimo bloque de datos><m-ésimo byte del k-ésimo bloque de datos>…<m-ésimo byte del n-ésimo bloque de datos><1.er byte del 1.er byte de corrección bloque><1er byte del 2.° bloque de bytes de corrección>…<1.er byte del n.° bloque de bytes de corrección><2.° byte 1.° bloque de bytes de corrección>…<1.° byte del 1.er bloque de bytes de corrección>…<1.° byte del el n-ésimo bloque de bytes de corrección>.
Aquí n es el número de bloques de datos, m es el número de bytes por bloque de datos para bloques ordinarios, l es el número de bytes de corrección, k es el número de bloques de datos menos el número de bloques de datos rellenados (aquellos con 1 byte más ).
Hay campos obligatorios en el código QR, no llevan información codificada, pero contienen información para decodificar. Eso:
así como la sangría obligatoria alrededor del código . El acolchado es un marco de módulos blancos, su ancho es de 4 módulos.
Los patrones de búsqueda son 3 cuadrados en las esquinas excepto en la parte inferior derecha. Se utiliza para determinar la ubicación del código. Consisten en un cuadrado de 3x3 de módulos negros, alrededor de un marco de módulos blancos con un ancho de 1, luego otro marco de módulos negros, también con un ancho de 1, y una cerca del resto del código: medio marco de módulos blancos con un ancho de 1. En total, estos objetos tienen un tamaño de 8×8 módulos.
Patrones de alineación : aparecen, a partir de la segunda versión, se utilizan para una estabilización adicional del código, una ubicación más precisa durante la decodificación. Se componen de 1 módulo negro, alrededor del cual hay un marco de módulos blancos de 1 ancho, y luego otro marco de módulos negros, también de 1 ancho. El tamaño final del patrón de alineación es de 5x5. Hay tales patrones en diferentes posiciones dependiendo del número de versión. Los patrones de alineación no pueden superponerse a los patrones de búsqueda. A continuación se muestra una tabla de ubicación del módulo negro central, los números se indican allí; estas son posibles coordenadas, tanto horizontal como verticalmente. Estos módulos se encuentran en la intersección de dichas coordenadas. La cuenta regresiva es desde el nodo superior izquierdo, sus coordenadas son (0,0).
una | 2 | 3 | cuatro | 5 | 6 | 7 | ocho | 9 | diez | once | 12 | 13 | catorce | quince | dieciséis | 17 | Dieciocho | 19 | veinte |
- | Dieciocho | 22 | 26 | treinta | 34 | 6, 22, 38 | 6, 24, 42 | 6, 26, 46 | 6, 28, 50 | 6, 30, 54 | 6, 32, 58 | 6, 34, 62 | 6, 26, 46, 66 | 6, 26, 48, 70 | 6, 26, 50, 74 | 6, 30, 54, 78 | 6, 30, 56, 82 | 6, 30, 58, 86 | 6, 34, 62, 90 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | treinta | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
6, 28, 50, 72, 94 | 6, 26, 50, 74, 98 | 6, 30, 54, 78, 102 | 6, 28, 54, 80, 106 | 6, 32, 58, 84, 110 | 6, 30, 58, 86, 114 | 6, 34, 62, 90, 118 | 6, 26, 50, 74, 98, 122 | 6, 30, 54, 78, 102, 126 | 6, 26, 52, 78, 104, 130 | 6, 30, 56, 82, 108, 134 | 6, 34, 60, 86, 112, 138 | 6, 30, 58, 86, 114, 142 | 6, 34, 62, 90, 118, 146 | 6, 30, 54, 78, 102, 126, 150 | 6, 24, 50, 76, 102, 128, 154 | 6, 28, 54, 80, 106, 132, 158 | 6, 32, 58, 84, 110, 136, 162 | 6, 26, 54, 82, 110, 138, 166 | 6, 30, 58, 86, 114, 142, 170 |
Barras de sincronización : se utilizan para determinar el tamaño de los módulos. Están ubicados en una esquina, uno comienza desde el patrón de búsqueda inferior izquierdo (desde el borde del marco negro, pero habiendo cruzado el blanco), va hacia la parte superior izquierda, y desde allí comienza el segundo, según la misma regla. , termina en la parte superior derecha. Cuando se coloca en capas en el módulo de nivelación, debe permanecer sin cambios. Las franjas de sincronización parecen líneas de módulos alternados en blanco y negro.
El código de máscara y nivel de corrección se encuentra junto a los patrones de búsqueda: debajo de la esquina superior derecha (8 módulos) y a la derecha de la esquina inferior izquierda (7 módulos), y se duplican a los lados de la esquina superior izquierda, con un espacio en la 7ª celda - donde van las bandas de sincronización, además el código horizontal en la parte vertical, y el código vertical en la horizontal.
Código de versión : necesario para determinar la versión del código. Están ubicados a la izquierda de la parte superior derecha y arriba de la parte inferior izquierda, y están duplicados. Se duplican así: la copia reflejada del código superior se gira 90 grados en sentido contrario a las agujas del reloj. A continuación se muestra una tabla de códigos, 1 - módulo negro, 0 - blanco.
Versión | 7 | ocho | 9 | diez | once | 12 | 13 | catorce | quince | dieciséis | 17 | Dieciocho | 19 | veinte | 21 | 22 | 23 |
Código de versión | 000010 011110 100110 | 010001 011100 111000 | 110111 011000 000100 | 101001 111110 000000 | 001111 111010 111100 | 001101 100100 011010 | 101011 100000 100110 | 110101 000110 100010 | 010011 000010 011110 | 011100 010001 011100 | 111010 010101 100000 | 100100 110011 100100 | 000010 110111 011000 | 000000 101001 111110 | 100110 101101 000010 | 111000 001011 000110 | 011110 001111 111010 |
24 | 25 | 26 | 27 | 28 | 29 | treinta | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | |
001101 001101 100100 | 101011 001001 011000 | 110101 101111 011100 | 010011 101011 100000 | 010001 110101 000110 | 110111 110001 111010 | 101001 010111 111110 | 001111 010011 000010 | 101000 011000 101101 | 001110 011100 010001 | 010000 111010 010101 | 110110 111110 101001 | 110100 100000 001111 | 010010 100100 110011 | 001100 000010 110111 | 101010 000110 001011 | 111001 000100 010101 |
El espacio libre restante se divide en columnas de 2 módulos de ancho y allí se ingresa información, y lo hacen con una “serpiente”. Primero, el primer bit de información se ingresa en el cuadrado inferior derecho, luego en su vecino izquierdo, luego en el que estaba arriba del primero, y así sucesivamente. Las columnas se llenan de abajo hacia arriba, y luego de arriba hacia abajo, etc., y a lo largo de los bordes, los bits se llenan desde el extremo de una columna hasta el extremo de la columna adyacente, lo que establece la "serpiente" en las columnas. con dirección hacia abajo. Si la información no es suficiente, los campos simplemente se dejan en blanco (módulos blancos). En este caso, se aplica una máscara a cada módulo.
Descripción de los campos del código QR.
Máscara y código de nivel de corrección, posibles máscaras XOR
Un código JAB de 8 colores que contiene el texto "Bienvenido a Wikipedia, la enciclopedia libre que cualquiera puede editar".
Ejemplos de código de color 2D de alta capacidad (HCC2D): (a) código HCC2D de 4 colores y (b) código HCC2D de 8 colores.
Versión 1
Áreas funcionales del código QR versión 1
Versión 40
código IQR
diccionarios y enciclopedias | |
---|---|
En catálogos bibliográficos |
|
códigos de barras | |
---|---|
Lineal |
|
2D |
|
Otro |
|
Artículos relacionados | Comparación de las características del código de barras |
ISO | Normas|
---|---|
| |
1 a 9999 |
|
10000 a 19999 |
|
20000+ | |
Ver también: Lista de artículos cuyos títulos comienzan con "ISO" |