Código de puntosProyectos de artículos

Artículos preliminares
Anonymous
 Código de puntos

Post by Anonymous »

'''DotCode''' es código de barras#códigos matriciales (2D)|código de barras matricial bidimensional (2D) inventado en 2008
DotCode se puede representar como una matriz rectangular con un tamaño mínimo de 5 puntos en cada lado. El tamaño máximo de DotCode no está limitado por el estándar
Como extensión del código de barras Code 128, DotCode permite una codificación más compacta de una matriz de datos de 8 bits y compatibilidad con Unicode con la función de interpretación de canal extendida. Además, DotCode proporciona mucha más densidad de datos y corrección de errores Reed-Solomon que permite restaurar códigos de barras parcialmente dañados. Sin embargo, la implementación principal de DotCode, al igual que el Código 128, es la codificación efectiva de datos GS1
==Historia y estándares==

El código de barras DotCode fue inventado en 2008 por el Dr. Andrew Longacre de la compañía Hand Held Products y estandarizado en 2009
Se registra un conjunto de patentes relacionadas con la codificación y decodificación DotCode:
* Patente de Estados Unidos US20090200386A1 de Hand Held Products Inc "Simbología 2D legible por máquina e imprimible bajo demanda">
*Patente de Estados Unidos US20090200386A1 de Datalogic IP Tech SRL "Sistema y método para extraer datos de flujo de bits en códigos ópticos bidimensionales" * Patente china CN113297872A de Fuzhou Symbol Information Technology Co ltd "Método y equipo de identificación de código de puntos"
==Aplicación==

El código de barras DotCode se puede utilizar de la misma manera que el Código 128 o cualquier código de barras matricial (2D). En este momento, se utiliza principalmente para codificar datos GS1 en Tabaco|Industria del tabaco,
Las principales ventajas de DotCode son: * Soporte completo y reemplazo del conjunto de códigos Code 128;
* Codificación compacta de bytes|matriz de datos de 8 bits;
* Compatibilidad con Unicode con función de interpretación de canales extendida;
* Codificación efectiva de datos GS1;
* Corrección de errores de Reed-Solomon
* Posibilidad de aplicar el código de barras mediante impresoras industriales de alta velocidad y otros métodos como el grabado láser.

==Diseño de código de barras==
DotCode representa datos en una estructura rectangular que consta de puntos redondos negros y espacios en blanco sobre fondo blanco o puntos redondos blancos sobre fondo negro. DotCode no tiene un patrón de búsqueda, como otros códigos de barras 2D, y debe detectarse con algoritmos lentos de detección de blobs|detección de blobs
Aquí hay algunos ejemplos de DotCode:



El símbolo DotCode se construye a partir de los siguientes elementos: * Dos bits de máscara que se representan en el diagrama como dos puntos verdes;
* Bits de datos (datos y bits de corrección de errores) que deben leerse de arriba a abajo (lado par del código de barras) y de izquierda a derecha (lado impar del código de barras);
* Puntos de esquina, marcados en rojo en el diagrama, que pueden usarse como bits de datos o bits de relleno (puntos negros);
* Zona silenciosa al menos 3 veces el tamaño de los puntos.

La matriz de bits DotCode se representa como:

''(Dos bits de máscara: M2, M1)(Bits de datos)(Bits de esquina, pueden ser bits de datos o de relleno: C1 – C6)''

Las palabras de código de datos en el rango 0 – 112 están codificadas en patrones de puntos binarios de 5 de 9
''(2 bits de máscara)(Palabras de código de datos de 9 bits cada una)(Bits de relleno 0 – 8 bits)''

El tamaño de DotCode tiene los siguientes requisitos: * La suma del ancho y alto del DotCode debe ser impar: (W + H)\pmod{2} = 1;
* El tamaño mínimo de cada lado debe ser 5, el máximo no está limitado;
*Se recomienda utilizar ancho y alto para tener al menos 6 bits negros de relleno donde la capacidad de bits de datos descansa de la división en 9 más o igual a 6:
===Enmascaramiento de datos===

Para minimizar los símbolos problemáticos de DotCode, las palabras clave de datos se enmascaran para crear otras secuencias visuales. El patrón de máscara se aplica únicamente a la secuencia de datos y no afecta las palabras de código de corrección de errores. El estándar DotCode tiene 4 patrones de máscara que están codificados en 2 bits y colocados como los primeros 2 bits de la matriz de bits de símbolo.

===Corrección de errores===

DotCode utiliza la corrección de errores de Reed-Solomon
NC = 3 + (ND / 2),

donde ND son palabras en clave de datos y NC: palabras en clave de corrección de errores.

Las palabras en clave resultantes NW con palabras en clave de corrección de errores son:

NO = (1 + ND) + NC,

donde NW son todas las palabras clave de codificación: 1 palabra clave de máscara + palabras clave de datos (ND) + palabras clave de corrección de errores (NC).

Debido a que la corrección de errores de Reed-Solomon no puede corregir la cantidad de palabras de código que son más que polinómicas, si NW excede 112, los datos se dividen en bloques de corrección de errores:

B = (NO + 111) / 112,

donde B es el recuento de bloques.

Los datos se pueden dividir en bloques de la siguiente manera, para cada bloque ''n'', para n es igual a 1 a B:
# ND(bloque) = ((1+ND) - (n-1) + (B-1)) / B
# NO(bloque) = (NO - (n-1) + (B-1)) / B
# NC(bloque) = NW(bloque) - ND(bloque)

Todos los bloques de corrección de errores están unidos en un flujo de bits:

''(Bloque_1) + ... + (Bloque_n)''

==Codificación==
El tamaño de codificación DotCode no está limitado por el estándar, pero el tamaño de codificación práctico en la versión 100x99 que incluye 4950 puntos puede codificar 366 palabras en clave de datos sin procesar, 730 dígitos, 365 caracteres alfanuméricos o 304 bytes. El mensaje de datos en DotCode se representa con palabras de código de datos del 0 al 112 que están codificadas con patrones de puntos binarios de 5 de 9.

DotCode admite las siguientes funciones: * Codifica de forma nativa dígitos o conjuntos de caracteres ASCII (entre 0 y 127) con conjuntos de códigos A, B y C y valores ASCII extendidos (128 a 255) con Upper Shift;
* Codifica bytes de manera efectiva (5 bytes en 6 palabras de código) con Binary Latch;
* Codifica datos GS1;>
* Codifica símbolos Unicode con función de interpretación de canal extendida;
* Admite codificación de anexos estructurados (utilizando lógicamente múltiples símbolos de códigos de barras como un único flujo de datos);
* Admite codificación “Macro”.

Hay tres reglas principales al inicio de la codificación de mensajes:
* La codificación inicial predeterminada es el conjunto de códigos C;
* En caso de que dos dígitos del conjunto de códigos C (valor 0 – 100) estén codificados en la posición de la primera palabra de código, el mensaje se decodifica como mensaje GS1;
* Si FNC1 (efecto opuesto al Código 128) u otra palabra de código sin dígitos (101 - 112) está codificada en la posición de la primera palabra de código, el mensaje se decodifica como mensaje NO GS1.

===Codificación de bytes binarios===

DotCode puede codificar un juego de caracteres completo de 8 bits de dos maneras: * Con Upper Shift, que requiere 2 palabras de código en un símbolo (128 a 255);
* Con Binary Latch, que requiere 1 símbolo de Binary Latch y 6 palabras de código cada 5 bytes.

Los modos Upper Shift pueden codificar (128 a 255) caracteres ASCII extendidos en dos palabras de código y regresar al modo anterior:

El modo Binary Latch puede codificar juegos de caracteres de 8 bits y secuencias ECI de 1 a 5 símbolos. Utiliza las siguientes reglas:
* Los datos se dividen en bloques de 5 símbolos (byte o identificador de modo ECI) o 6 palabras de código;
* Los valores de 0 a 258 son bases convertidas de cinco valores de base 259 a seis valores de base 103;
* 0 – 255 valores son valores de bytes;
* Marcas de 256, 257 o 258 valores para codificar la secuencia ECI en los siguientes 1, 2 o 3 bytes respectivamente;
* Cualquier palabra de código DotCode en la secuencia codificada por encima de 102 (de 103 a 112) interrumpe o cambia el modo.

Como vemos en la siguiente tabla, Binary Latch codifica datos de manera más efectiva, comenzando desde 3 bytes.

===Codificación ECI ===

DotCode puede codificar el indicador ECI de interpretación de canal extendido de dos maneras: * En modo Binary Latch (revisado arriba);
*Con carácter FNC2.

FNC2 en cualquier posición, excepto al final de los datos, indica la inserción de una secuencia ECI: "\nnnnnn", que representa valores entre 000000 y 811799. Los valores se pueden codificar en 1 o 3 palabras de código:
* En el caso de la siguiente palabra de código < 40, codifica directamente el valor ECI de 000000 a 000039;
* De lo contrario, las siguientes tres palabras en código con valores A, B y C codifican un valor ECI de (A - 40) * 12769 + B * 113 + C + 40.

===Codificación GS1 ===

Dos dígitos cualesquiera en la posición de la primera palabra de código identifican un símbolo codificado GS1 (opuesto al Código 128). En caso de que un símbolo con dos dígitos en la posición de la primera palabra de código deba decodificarse como datos ordinarios, el FNC1 (omitido en el mensaje decodificado) debe insertarse en el lugar de la primera palabra de código.
La palabra de código 100 en el conjunto de códigos C codifica la aplicación GS1 AI (17) las siguientes 3 palabras de código son una fecha de vencimiento e insertan GS1 AI (10) antes de decodificar otras palabras de código:

''(100)(24)(12)(30)(56)(64) -> 17241230105664''

===Modo Macros===

Algunas palabras de código de datos 97 – 100 en la posición de datos principales en el conjunto de códigos B pueden codificar “Macros”.
''(Pestillo B)(HT) -> [)>RS05GS … RSEOT''

''(Mayús B)(HT) -> [)>RS05GS … RSEoT''

===Anexo estructurado===

DotCode puede crear símbolos compuestos, donde los datos de múltiples símbolos DotCode se pueden unir lógicamente. Esto se puede hacer con el símbolo FNC2 en la última posición de datos. Cuando FNC2 está en la posición de datos final,
===Codificación de modos especiales===

FNC3 en la primera posición de la palabra clave indica que el mensaje
FNC3 en cualquier otra posición que no sea la primera indica que el mensaje codificado debe separarse lógicamente en dos mensajes distintos (antes y después);

===Relleno de datos===

La capacidad de palabras en código de símbolos DotCode es:

NO = ((Al * An) / 2 - 2) \pmod{9})

La capacidad de palabras en clave de datos de símbolos DotCode es:

ND = (NO - 3) - (NO - 3) / 3

De esta manera necesitamos rellenar las palabras clave de datos en caso de que tengamos espacio libre. Hay dos reglas: * El modo binario debe finalizar con Latch to Code Set A (palabra de código 109);
* En otros modos, se debe utilizar la palabra clave 106 (Enclavamiento al conjunto de códigos C / Enclavamiento al conjunto de códigos B).

==Ver también==
* Identificación y captura de datos automatizada (AIDC)
* Código de barras
* Código 128
* Interpretación de canal extendido
* GS1
* Productos de mano

* [https://patents.google.com/patent/US8011596B2 Patente DotCode]
* [https://products.aspose.app/barcode/generate/dotcode Generador gratuito de DotCode]
* [https://products.aspose.app/barcode/recognize Lector gratuito de DotCode]

Identificación automática y captura de datos
Códigos de barras
Codificaciones

More details: https://en.wikipedia.org/wiki/DotCode

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post