Articulo de referencia

Código Han Xin

Versión 22 del Código Han Xin El código Han Xin (汉信码 en chino, código con sentido chino ) es una simbología de código de barras de matriz bidimensional (2D) inventada en 2007 [1...

Versión 22 del Código Han Xin

El código Han Xin (汉信码 en chino, código con sentido chino ) es una simbología de código de barras de matriz bidimensional (2D) inventada en 2007 [1] por la empresa china The Article Numbering Center of China [2] (中国物品编码中心 en chino) para romper el monopolio del código QR . Como código QR, el código Han Xin consta de cuadrados negros y espacios cuadrados blancos dispuestos en una cuadrícula cuadrada sobre un fondo blanco. Tiene cuatro patrones de búsqueda y otros marcadores que permiten reconocerlo con lectores basados ​​en cámara . El código Han Xin contiene corrección de errores Reed-Solomon con capacidad para leer imágenes corruptas. En este momento, se emite como ISO/IEC 20830:2021. [3]

La principal ventaja (y requisito de invención), comparable al código QR, es una capacidad incorporada para codificar de forma nativa caracteres chinos en lugar de japoneses en el código QR. El código Han Xin en la versión máxima de 84 (tamaño 189×189) [4] permite codificar 7827 caracteres numéricos, 4350 caracteres de texto en inglés, 3261 bytes y 1044–2174 caracteres chinos (depende de la región Unicode). El código Han Xin codifica caracteres latinos ISO/IEC 646 completos en lugar de la cantidad restringida de caracteres latinos que admite el código QR . Hace que el código Han Xin sea más adecuado para la codificación de texto en inglés o la codificación de datos de identificadores de aplicaciones GS1 [5] .

Además, el código Han Xin puede codificar caracteres Unicode de otros idiomas con un modo Unicode especial, [3] : 5.4.12  que tiene compresión sin pérdida incorporada para el conjunto de caracteres UTF-8 y soporte para interpretación de canal extendido . El código Han Xin tiene un modo de compactación especial para la codificación URI y puede reducir el tamaño del código de barras que codifica enlaces a páginas web.

Historia y normas

La empresa china Centro de Numeración de Artículos de China (中国物品编码中心 en chino) durante el décimo plan quinquenal de China comenzó a investigar [6] su propio código QR para reemplazarlo con el fin de eliminar el monopolio japonés en los códigos de barras 2D. En 2007, el nuevo estándar de códigos de barras, conocido en ese momento como código Han Xin, se publicó como GB/T 21049-2007 [1] con el nombre de código con sentido chino.

En 2011, [7] la empresa estadounidense Association for Automatic Identification and Mobility (AIM) introdujo la simbología del código Han Xin de la ISS como estándar de codificación oficial y la publicó en su propia tienda. [8]

En 2015, el grupo ISO/IEC JTC 1/SC 31 comenzó la implementación [9] del código Han Xin como estándar internacional y lo publicó como ISO/IEC 20830:2021 [3] en 2021.

En 2022, el estándar de código con sentido chino se revisó como GB/T 21049-2022 [10] y se renombró como código Han Xin para cumplir con el estándar ISO .

Se ha registrado un conjunto de patentes en la Oficina de Patentes y Marcas de los Estados Unidos relacionadas con la codificación y decodificación del código Han Xin:

  • Oficina Europea de Patentes EP3330887B1 de Fujian Landi Commercial Equipment Co Ltd "Método y sistema de detección de patrones de características de códigos sensibles a chino" [11]
  • Patente de Estados Unidos US10095903B2 de Ingenico Fujian Technology Co Ltd "Método y sistema de decodificación de bloques para código bidimensional" [12]
  • Patente de Estados Unidos US10528781B2 de Ingenico Fujian Technology Co Ltd "Método y sistema de detección de patrones característicos de códigos Han Xin" [13]

Solicitud

El código Han Xin se puede utilizar de la misma manera que el código QR . En este momento, el código Han Xin se utiliza principalmente en China, [14] porque tiene una capacidad de codificación incorporada para codificar caracteres chinos. Sin embargo, la mayoría de las impresoras de códigos de barras [15] y los escáneres de códigos de barras [16] admiten el código Han Xin. El código Han Xin se puede escanear en dispositivos móviles iOS [17] y Android [18] y muchas bibliotecas de códigos de barras [19] [20] admiten la lectura y escritura de código Han Xin.

Las principales ventajas del código Han Xin son:

Diseño de código de barras

Estructura del código de barras del código Han Xin

El código Han Xin representa datos en módulos cuadrados en blanco y negro, donde el módulo oscuro es un uno binario y el módulo claro es un cero. Además, el código Han Xin se puede codificar en colores inversos, [3] : 4.1.2  pero esta opción en muchos lectores de códigos de barras está deshabilitada de forma predeterminada. Los módulos en blanco y negro se organizan en regiones cuadradas con tamaños que van desde 23 × 23 módulos (versión 1) hasta 189 × 189 módulos (versión 84). Como código QR, el código Han Xin no tiene versiones rectangulares como las que tiene DataMatrix y esto restringe el uso del código Han Xin en algunos casos. El tamaño de la versión del código Han Xin se puede calcular con la siguiente fórmula:
S i el mi = 23 + ( V mi a s i o norte 1 ) 2 {\displaystyle Tamaño=23+(Versión-1)*2}

El símbolo del código Han Xin se construye a partir de los siguientes elementos: [3] : 4.2 

  • Zona tranquila: rodea el símbolo por los cuatro lados con un tamaño al menos 3X;
  • Patrón de búsqueda: consta de 4 patrones de detección de posición que se colocan en las cuatro esquinas del símbolo y se utilizan para detectar la posición y el área del símbolo;
  • Patrones de alineación y patrones de alineación asistentes: se inicia a partir de la versión 4 y ayuda con la decodificación de código distorsionado;
  • Regiones de información estructural: rodean los cuatro patrones del buscador y se utilizan para codificar parámetros de símbolos como la versión, la máscara y el modo de corrección de errores;
  • Regiones de datos: datos binarios enmascarados codificados en módulos en blanco y negro.

Patrón de buscador

Buscador de patrones de códigos Han Xin

Patrón de detección de posición [3] : 4.2.3  consta de cuatro patrones de detección de posición ubicados en las cuatro esquinas del código de barras. El tamaño del patrón de detección de posición es de 7 × 7 módulos y está formado por 5 elementos: módulos oscuros de 7 × 7, módulos claros de 6 × 6, módulos oscuros de 5 × 5, módulos claros de 4 × 4 y módulos oscuros de 3 × 3 respectivamente.

La relación de escaneo de cada patrón de detección de posición es 1:1:1:1:3 o 3:1:1:1:1 (depende de la dirección de escaneo). La orientación de los cuatro patrones permite detectar de forma inequívoca la ubicación y la orientación del código de barras.

Cada patrón tiene un separador de patrón de detección de posición [3] : 4.2.4  con la región de información estructural alineada a él.

Patrón de alineación

Los patrones de alineación [3] : 4.2.5  se agregaron al código Han Xin a partir de la versión 4 (las versiones 1 a 3 no tienen patrones de alineación) y se utilizan para precisar la posición de las celdas en los códigos de barras distorsionados. Los patrones de alineación en el código Han Xin se dividen en:

  • Patrón de alineación: conjunto de líneas de alineación escalonadas;
  • Patrón de alineación asistente: 6 módulos, incluidos 5 módulos claros y 1 módulo oscuro.

El patrón de alineación está formado por una línea oscura y una línea clara adyacente hacia abajo que tienen un ancho de un módulo. El patrón de alineación auxiliar, que consta de 5 módulos claros y 1 módulo oscuro, indica el borde del bloque de la región con su módulo oscuro.

A continuación puede ver ejemplos de código Han Xin con diferentes ubicaciones de patrones de alineación.

Información estructural

Ubicación de la información estructural del Código Han Xin

Región de información estructural del código Han Xin [3] : 4.2.7  es una región de un módulo de ancho que rodea los cuatro patrones de detección de posición. El código Han Xin tiene dos matrices de información estructural idénticas, que están formadas por 34 módulos de datos. Cada matriz de información estructural se divide en 17 módulos que se colocan alrededor de cada patrón de detección de posición.

La región de información estructural codifica los siguientes datos: [3] : Anexo E 

  • Versión + 20 (bits 0–7);
  • Nivel de corrección de errores (bits 8–9);
  • Índice de máscara (bits 10–11);
  • Corrección de errores Datos de corrección de errores Reed–Solomon (bits 12–27);
  • Los bits 28 a 33 se ignoran y pueden ser cualquiera (a veces pueden rellenarse con secuencia blanca o negra).

Los bits de metadatos del 0 al 11 se dividen en cuatro tétradas de bits (m2, m1, m0) y se complementan con cuatro tétradas de corrección de errores (r3, r2, r1, r0).

Enmascaramiento de datos

Para que la proporción de los módulos oscuros y claros del código Han Xin sea cercana a 1:1 en el símbolo, se utiliza el algoritmo de enmascaramiento [3] : 5.8.4  . La secuencia de enmascaramiento se aplica a la región de datos a través de la operación XOR . El patrón de búsqueda, los patrones de alineación y las regiones de información estructural se excluyen de la operación de enmascaramiento. La siguiente tabla muestra los algoritmos de patrones de enmascaramiento (que se colocan en la región de información estructural).

i - Índice de fila del símbolo.
j - Índice de columna del símbolo.
Tanto i como j comienzan desde (1,1), el módulo de la esquina superior izquierda del símbolo. Cuando la condición de solución de enmascaramiento es verdadera, el bit de enmascaramiento resultante es 1.

Corrección de errores

El código Han Xin utiliza la corrección de errores Reed-Solomon . Los datos codificados se representan como una matriz de bytes (8 bits). La matriz de datos se divide en bloques [3] : Anexo B  y se genera una secuencia de palabras de código de corrección de errores para cada bloque que se agrega al final del bloque de corrección de errores. Después de esto, todos los bloques se fusionan secuencialmente en un flujo de bytes.

La aritmética polinomial para el código Han Xin utiliza un polinomio de generación de campo finito : x^8 + x^6 + x^5 + x (355 o 101100011b) [3] : 5,5  con raíz inicial = 1.

La cantidad de palabras clave de corrección de errores depende de la versión del símbolo y del nivel de corrección de errores y puede ser del 16% al 60%, lo que permite corregir del 8% al 30% del daño. [3] : 5.6.2 

Región de datos

Los datos del código Han Xin se codifican como una matriz de bytes. La matriz de bytes de datos se divide en bloques de corrección de errores, donde se agregan las palabras de código de corrección de errores (bytes). Los bloques de corrección de errores se unen en una matriz de palabras de código: [3] : 5.8.3 

(Matriz de bytes codificados) => (Bloque de corrección de errores 1) + ... + (Bloque de corrección de errores N) => (Matriz de palabras de código)

Como ejemplo, esto se puede demostrar en la versión 5 del código Han Xin con nivel de corrección de errores L4. Tiene 27 palabras de código codificadas y 2 bloques de corrección de errores con cada tamaño de bloque de palabras de código de datos y palabras de código de corrección de errores: (14, 20), (13, 22):

(D1...D14, D15...D27) => (D1...D14, E1.1...1.20) + (D15...D27, E2.1...2.22) => (D1...D14, E1.1...1.20, D15...D27, E2.1...2.22) => (C1...C69)
D(x) - Palabras de código de datos.
E(bx) - Palabra de código de error, donde b es el número de bloque y x la posición en el bloque.
C(x) - Palabras de código resultantes.

Como siguiente operación, la matriz de palabras clave resultante C(x) se divide en bloques con un tamaño de 13 bytes que conectan las palabras clave en la misma posición de cada bloque y forman una nueva matriz de palabras clave. El resultado es una matriz de bytes del mismo tamaño pero mezclada por la posición 13.

(С1...С13, С14...С26, Сn...Cn+12) => (С1, C14, Cn...С13, С26, Cn+12) => (CM1...CMn+12)
CM(x) – mixto por posición de una matriz de 13 palabras de código (bytes).

Después de las operaciones superiores, las palabras clave resultantes se colocan en la región de datos fila por fila, de izquierda a derecha y de arriba a abajo. El daño en las líneas horizontales afectaría a menos palabras clave, mientras que el daño en las líneas verticales afectaría a más palabras clave.

Codificación

El código Han Xin puede codificar 7827 caracteres numéricos, 4350 caracteres de texto en inglés, 3261 bytes y entre 1044 y 2174 caracteres chinos en la versión máxima de 84 caracteres. [3] : Anexo C  Además, admite modos industriales y Unicode especiales. Todos los modos se pueden combinar para obtener el mejor nivel de compactación de los datos. La siguiente tabla demuestra las capacidades para codificar datos con diferentes versiones de códigos de barras y niveles de corrección de errores.

Modos de codificación

Todos los modos de codificación se pueden dividir en los siguientes grupos: [3] : 5.3.1 

  • Modo numérico que incluye codificación de dígitos: 0–9;
  • Modo de texto que admite el conjunto completo de caracteres ISO/IEC 646 ;
  • Modo binario (byte) que codifica valores de bytes de 0 a 255;
  • Modos de caracteres chinos que codifican 1587600 caracteres chinos diferentes de la página de códigos GB 18030 en 4 modos;
  • Codificación Unicode con modo de interpretación de canal extendido (ECI) ;
  • Unicode con modo adaptativo Unicode que codifica codificación UTF-8 con compresión sin pérdida incorporada ;
  • Modo GS1 que codifica los datos de identificadores de aplicación GS1 [5] ;
  • Modo URI que codifica enlaces URI en codificación compacta.

Modo numérico

La cadena de datos de entrada en modo numérico [3] : 5.4.4  se divide en bloques de tres dígitos (el último bloque puede tener menos de tres) y se codifica en 10 bits (0000000000b - 1111100111b). Los datos de modo tienen como prefijo el indicador de modo 0001b y terminan con el terminador de modo que también indica la cantidad de dígitos en el último grupo.

A modo de ejemplo, necesitamos codificar la secuencia de dígitos 12700402:
Prefijo => 0001b
127 => 0001111111
004 => 0000000100
02 => 0000000010
Terminador => 1111111110b

Modo de texto

El modo de texto codifica caracteres de datos establecidos según la norma ISO/IEC 646. Cada carácter está representado por 6 bits. [3] : 5.4.5  Todos los caracteres se dividen en dos subconjuntos: submodo Texto1 y submodo Texto2. El valor 11110b se utiliza para cambiar entre submodos de texto, 111111b es un terminador de modo. El modo de texto comienza desde el submodo Texto1.

Modo de byte binario

El modo binario codifica una matriz de bytes [0 – 255] en cualquier formato. El modo binario [3] : 5.4.6  consta de un indicador de modo binario 0011b, un contador binario de 13 bits y datos de bytes que se convierten en una secuencia de 8 bits. No se requiere ningún terminador de modo.

Modos de caracteres chinos

Los modos de caracteres chinos son un conjunto de 4 modos que codifican caracteres chinos de la página de códigos GB 18030 .

Modo Unicode

Modo Unicode [3] : 5.4.12  codifica el conjunto de caracteres UTF-8 con compresión sin pérdida incorporada . En el modo Unicode, los datos de entrada se analizan mediante un algoritmo autoadaptativo. En primer lugar, los datos de entrada se dividen y se combinan en subsecuencias de precodificación de patrones de 1, 2, 3 o 4 bytes y, en segundo lugar, se aplica un algoritmo de compresión de datos de longitud de ejecución para codificar cada subsecuencia de los datos de entrada.

En pocas palabras, el modo Unicode busca subpáginas de caracteres que pueden tener la misma secuencia de prefijo para todos los caracteres del mismo idioma (idiomas cirílico, griego, francés, alemán...) y codifica únicamente las diferencias en la secuencia de bytes del prefijo.

Modo GS1

Código Han Xin Modo GS1 [3] : 5.4.13  es un indicador de que los datos representados están definidos por la Especificación General GS1. El modo GS1 codifica datos en modos Numérico y Texto. Se pueden usar otros modos, pero el modo GS1 debe ser el primer modo en el símbolo y los datos codificados deben devolverse con el indicador GS1. <FNC1> (si se requiere) debe codificarse como 1111101000b en modo Numérico (el modo Numérico codifica solo tres dígitos, por lo que 1111101000b => el valor 1000 se cuenta como un carácter especial). En caso de que se deba insertar el identificador <FNC1> y el codificador esté en cualquier modo diferente al Numérico, se debe terminar el modo y se debe iniciar el modo Numérico. El indicador de modo GS1 es 11100001b y el terminador de modo GS1 es 11111111b.

Los datos en modo GS1 se dividen en fragmentos de identificadores de aplicación GS1 y luego se compactan con los mejores modos. A modo de ejemplo, se pueden codificar los siguientes datos:
(10)123456ABC<FNC1>(240)DATA

Los datos se codifican de la siguiente manera:
<11100001b> <Numérico 10123456> <Texto ABC> <Selector de modo numérico> <1111101000b> <Numérico 240> <Texto DATOS> <11111111b>

Modo URI

Modo URI del código Han Xin [3] : 5.4.14  codifica enlaces URI en codificación compacta. El indicador de modo URI es 11100010b y el terminador de modo URI es 111b. El modo URI puede codificar datos en tres conjuntos de caracteres: URI-A, URI-B, URI-C [3] : Anexo M  con terminadores de submodo propios. El modo URI puede codificar datos %XX en el submodo especial de codificación porcentual, donde tres símbolos se codifican en 8 bits.

El submodo de codificación porcentual codifica los datos %XX en una secuencia de 8 bits. El modo no requiere ningún terminador. Para codificar los datos URI %XX en este modo, se debe agregar el indicador de submodo (100b), luego se debe agregar el indicador de 8 bits de la secuencia de 8 bits del submodo (contador = longitud de %XX / 3) y después de esta secuencia, donde %FF, o %ff, o %00, se debe agregar como bytes xFF o x00.

Véase también

Referencias

  1. ^ ab GB/T (2007). "GB/T 21049-2007 "Código con sentido chino"". www.chinesestandardslibrary.com (en chino). Norma nacional GB . GB/T 21049-2007.
  2. ^ "中国物品编码中心 (El centro de numeración de artículos de China)". www.ancc.org.cn (en chino).
  3. ^ abcdefghijklmnopqrstu vwxyz aa ab ISO/IEC (2021). "ISO/IEC 20830:2021 "Tecnología de la información Técnicas de identificación automática y captura de datos Especificación de simbología de código de barras del Código Han Xin"". iso.org . Organización Internacional de Normalización (ISO) . ISO/IEC 20830.
  4. ^ Stefania Zocco. "Los códigos QR en la China contemporánea: dinero digital y percepción de la gente" (PDF) . dspace.unive.it . Universidad Ca'Foscari de Venecia.
  5. ^ ab "Identificadores de aplicaciones GS1". www.gs1.org .
  6. ^ Dong Xiaowen; Deng Huipeng; Wang Li (31 de agosto de 2021). "中国主导的首个二维码码制国际标准正式发布 (Se lanza oficialmente el primer estándar internacional para codificación de códigos QR liderado por China)". www.ancc.org.cn (en chino). 中国物品编码中心 (Centro de numeración de artículos de China).
  7. ^ "Noticias sobre RFID y AIDC: nueva simbología de códigos de barras para caracteres de doble byte". www.scdigest.com . Supply Chain Digest.
  8. ^ "Especificación de simbología del Código Han Xin de la ISS - Rev. 3.0". aimglobal.org . AIM Global.
  9. ^ Liu Jia (16 de septiembre de 2015). "汉信码正式成为国际ISO标准工作项目 (el código Hanxin se convierte oficialmente en un elemento de trabajo estándar ISO internacional)". www.ancc.org.cn (en chino). 中国物品编码中心 (Centro de numeración de artículos de China).
  10. ^ GB/T (2022). Código Han Xin "GB/T 21049-2022""". www.chinesestandard.net (en chino). Estándar Nacional GB . GB/T 21049-2022.
  11. ^ Shengzhang Jiang; Weidong Wu (2 de agosto de 2016). "Oficina Europea de Patentes EP3330887B1 de Fujian Landi Commercial Equipment Co Ltd "Método y sistema de detección de patrones de características de código sensibles a la tecnología china"". patents.google.com . Oficina Europea de Patentes.
  12. ^ Shengzhang Jiang; Weidong Wu (15 de enero de 2018). "Patente de Estados Unidos US10095903B2 de Ingenico Fujian Technology Co Ltd "Método y sistema de decodificación de bloques para código bidimensional"". patents.google.com . Oficina de Patentes y Marcas de Estados Unidos.
  13. ^ Shengzhang Jiang; Weidong Wu (13 de febrero de 2018). "Patente de Estados Unidos US10528781B2 de Ingenico Fujian Technology Co Ltd "Método y sistema de detección de patrones característicos de códigos Han Xin"". patents.google.com . Oficina de Patentes y Marcas de Estados Unidos.
  14. ^ "Código Han Xin". www.ancc.org.cn . GS1 China.
  15. ^ "Impresora de código de barras térmica directa de escritorio PC42D". www.honeywell.com .
  16. ^ "Unitech MS852B". dcs.aero .
  17. ^ Shiyu. "Código Han Xin". han-xin-code.appstor.io (en chino).
  18. ^ Zheng Yu (2 de septiembre de 2013). "中国的二维码,您用了吗 (¿Ha utilizado el código QR de China)?". www.ancc.org.cn (en chino). 中国物品编码中心 (Centro de numeración de artículos de China).
  19. ^ "Generar códigos de barras del código Han Xin en C#". www.aspose.com .
  20. ^ "Especificación técnica internacional AIM - Biblioteca de codificación de código Han Xin para .Net". github.com .
  21. ^ Xiaolei Yu; Donghua Wang; Zhimin Zhao (2018). Tecnología de verificación semifísica para el rendimiento dinámico del sistema de Internet de las cosas. Springer. pág. 181. ISBN 978-9811317590.
  • Generador de código Han Xin gratuito
  • Lector de código Han Xin gratuito
  • Descripción del código Han Xin
Obtenido de "https://es.wikipedia.org/w/index.php?title=Código_Xin_Han&oldid=1233842079"