HCC2D
Especificación del código HCC2D
Versión 0.9.0 — Borrador
Última actualización: 24 de mayo de 2026
Origen y publicaciones
Los elementos fundamentales del formato de código de barras de color HCC2D se definieron por primera vez en la tesis de Laurea Specialistica de Marco Querini (A.A. 2009/2010), defendida el 23 de julio de 2010, Analisi e progettazione di codici bidimensionali ad alta capacità. Sviluppo del lettore per gli ambienti desktop e mobile (Análisis y diseño de códigos bidimensionales de alta capacidad. Desarrollo del lector para entornos de escritorio y móviles), bajo la supervisión del Prof. Giuseppe F. Italiano.
Esta especificación es totalmente compatible con los códigos generados originalmente según la descripción de la tesis de 2010, antes de que el formato recibiera el nombre HCC2D.
Las publicaciones previas en congresos relacionadas con este formato aparecieron en septiembre de 2010 y septiembre de 2013 (respectivamente, “High capacity colored two dimensional codes” y “Color classifiers for 2D color barcodes”); los artículos de revista que se enumeran a continuación son versiones ampliadas y revisadas por pares de esas publicaciones en congresos.
El nombre «HCC2D» fue introducido, y el formato fue posteriormente descrito y sus propiedades analizadas con mayor profundidad, en las publicaciones previas en congresos y en las siguientes publicaciones científicas revisadas por pares:
- Querini, M. e Italiano, G. F. (2014). Reliability and Data Density in High Capacity Color Barcodes. Número especial de la revista Computer Science and Information Systems (ComSIS), 11(4), 1595–1615.
- Querini, M., Grillo, A., Lentini, A. e Italiano, G. F. (2011). 2D Color Barcodes for Mobile Phones. Número especial del International Journal of Computer Science & Applications (IJCSA), 8(1), 136–155.
Este documento es una especificación técnica autónoma del formato HCC2D.
Esta especificación puede cambiar antes de la versión 1.0.
Licencia y derechos de autor
Copyright © 2010–2026 Marco Querini. Todos los derechos reservados.
Esta obra está licenciada bajo una Licencia Creative Commons Atribución-SinDerivadas 4.0 Internacional (CC BY-ND 4.0).
Para ver una copia de esta licencia, visita: https://creativecommons.org/licenses/by-nd/4.0/
Eres libre de compartir, copiar y redistribuir este documento de especificación en cualquier medio o formato, para cualquier propósito, incluso comercialmente, siempre que des el crédito apropiado al autor original y no distribuyas versiones modificadas del texto. La implementación de software, hardware o sistemas que cumplan con los requisitos técnicos definidos en esta especificación está completamente permitida y no constituye una obra derivada de este documento.
Esta especificación se publica abiertamente. Las implementaciones oficiales de software HCC2D se distribuyen bajo términos propietarios separados.
Esta especificación se proporciona "tal cual", sin garantía de ningún tipo. El autor no ofrece ninguna declaración ni garantía respecto a la exactitud, integridad o idoneidad para un fin determinado de la información aquí contenida.
HCC2D™ es una marca no registrada.
Introducción
HCC2D es un formato de código de barras bidimensional a color. Reutiliza la estructura de matriz cuadrada del código QR Code mientras define sus propias reglas específicas de HCC2D para la codificación de color, el enmarcado de carga útil, la semántica del borde del símbolo, las capacidades de versión y la organización de codewords. En particular, HCC2D reutiliza el finder pattern, el alignment pattern, el timing pattern, la información de formato, la información de versión, las mask formulas y el comportamiento de corrección de errores Reed-Solomon compatible con QR Code / ISO/IEC 18004:2006, excepto donde esta especificación define explícitamente un comportamiento diferente.
QR Code es una marca registrada de DENSO WAVE INCORPORATED en Japón y en otros países. HCC2D no está patrocinado, respaldado ni afiliado a DENSO WAVE INCORPORATED. Los elementos estructurales definidos en QR Code / ISO/IEC 18004:2006 — incluidos los finder patterns, alignment patterns, timing patterns, format information, version information y masking — se utilizan aquí como elementos de un estándar técnico público. Este documento describe únicamente los elementos específicos de HCC2D del formato y deliberadamente no reitera esos elementos.
HCC2D no es una alternativa al código QR sino una extensión del mismo. Un decoder HCC2D también debe ser un lector de códigos QR. En términos prácticos, un decoder HCC2D es fundamentalmente un decoder estándar de códigos QR con funcionalidad adicional para reconocer y decodificar módulos de colores. Utiliza la fase estándar de detección de QR Code para detectar la estructura del símbolo. Después de la detección y antes de la decodificación del payload, el decoder determina si debe seguir la ruta estándar de decodificación de QR Code, en la que los módulos se interpretan como módulos en blanco y negro, o la ruta de decodificación HCC2D, en la que los módulos se interpretan como módulos de 4 colores o de 8 colores. Esta elección se realiza comprobando si los Color Palette Patterns de HCC2D están presentes en el perímetro del símbolo. Si los Color Palette Patterns no están presentes, el decoder decodifica el símbolo como un QR Code estándar. Si los Color Palette Patterns están presentes, el decoder decodifica el símbolo como un código HCC2D conforme a las reglas de color HCC2D aplicables. Un encoder HCC2D produce símbolos que comparten la misma base estructural que el código QR y debe ser capaz de codificar tanto códigos QR como códigos HCC2D.
Este documento especifica los formatos de código HCC2D de cuatro colores y HCC2D de ocho colores.
1. Alcance
Este documento cubre:
hcc2d4: HCC2D de 4 coloreshcc2d8: HCC2D de 8 colores
Esta especificación define:
- símbolos cuadrados únicamente
- versiones
1..40 - niveles de corrección de errores
L,M,Q,H - codificación de carga útil solo en modo byte
Esta especificación define el enmarcado de carga útil HCC2D usando un segmento BYTE.
1.1 Términos y acrónimos
- Color Palette Pattern: el borde exterior de un código HCC2D que contiene la secuencia cíclica de colores de la paleta y que sirve como leyenda de colores
EC: corrección de erroresEC level: nivel de corrección de erroresECPB: error-correction codewords per blockMSB: bit más significativoLSB: bit menos significativoRS: Reed-SolomonRGB: rojo, verde, azulISO/IEC: Organización Internacional de Normalización / Comisión Electrotécnica Internacional
Términos de matriz:
module: una celda cuadrada lógica del símboloinner gridoinner matrix: la matriz N×N reutilizada compatible con QR antes de añadir el borde HCC2Dfull symbol: el cuadrado N+2 producido tras añadir el borde HCC2Dfunction module: un módulo que no es de datos perteneciente a las estructuras de buscador, alineación, temporización, formato o versióndata module: un módulo cuyo estado está determinado por la carga útil codificada y el flujo de bits de corrección de erroresplane: una matriz binaria extraída del flujo de bits interpolado final
1.2 Estructura de alto nivel
A alto nivel, la codificación HCC2D procede de la siguiente manera:
- enmarcar la carga útil como un segmento en modo BYTE
- elegir la versión y el nivel de corrección de errores
- generar data codewords, error-correction codewords y el flujo de bits interpolado final
- dividir ese flujo de bits final en dos o tres planos binarios
- construir una matriz interna compatible con QR por plano usando un mask pattern compartido
- combinar los bits de plano en índices de color para los módulos de datos
- renderizar los módulos de función en blanco y negro
- añadir el borde Color Palette Pattern de HCC2D
HCC2D no ejecuta un proceso de corrección de errores separado por plano. Primero se produce un flujo de bits combinado, y la extracción de planos ocurre solo después.
2. Base de conformidad
Una implementación conforme produce códigos decodificables por el HCC2D Decoder oficial, disponible en Google Play, Huawei AppGallery y la App Store.
Una implementación que declare conformidad con esta especificación deberá combinar:
- una capa específica de HCC2D definida por este documento; y
- una capa de codificación de matriz cuadrada reutilizada cuyo comportamiento sea compatible con QR Code / ISO/IEC 18004:2006 para todas las partes reutilizadas.
Para la interoperabilidad con los decodificadores HCC2D existentes, la capa reutilizada deberá proporcionar al menos:
- versiones cuadradas de tipo Model-2
1..40 - niveles de corrección de errores
L,M,Q,H - ubicación del finder pattern
- ubicación del alignment pattern a partir de las coordenadas indicadas en las tablas HCC2D
- ubicación del timing pattern
- generación y ubicación de la información de formato
- generación y ubicación de la información de versión donde corresponda
- orden de ubicación de datos en modo BYTE en la matriz interna
- mask formulas para los mask indices
0..7 - evaluación de mask penalty compatible con QR Code / ISO/IEC 18004:2006, excepto por la regla específica de HCC2D que usa solo el plano 0 invertido en la sección 10
- generación de paridad Reed-Solomon e intercalado de codewords compatible con QR Code / ISO/IEC 18004:2006, excepto por los recuentos totales de codewords y multiplicidades de bloques específicos de HCC2D definidos en las secciones 19 y 20
Por lo tanto:
- esta especificación no es completamente autónoma
- una implementación que ya tenga esos comportamientos reutilizados compatibles con QR Code / ISO/IEC 18004:2006 puede implementar la generación de símbolos HCC2D interoperables a partir de esta especificación
- una implementación que tenga esta especificación junto con la especificación QR Code para las partes reutilizadas tiene la información necesaria para implementar la generación de símbolos HCC2D interoperables
En términos prácticos, HCC2D no es un sustituto de la construcción de matrices cuadradas de estilo QR. Es una capa de capacidad de color y enmarcado construida sobre un símbolo interno reutilizado compatible con QR. Por lo tanto, las diferencias normativas de HCC2D se concentran en:
- enmarcado de carga útil
- capacidades totales de codewords y multiplicidades de bloques
- extracción de planos de bits e interpretación de color
- selección del input para el algoritmo de data masking: solo el plano 0 invertido
- regla de renderizado de módulos de función
- semántica del borde exterior de HCC2D
Un formato o símbolo solo puede denominarse HCC2D si cumple con esta especificación. El uso del nombre HCC2D para describir un formato o símbolo no conforme es engañoso y no está autorizado por esta especificación.
3. Parámetros de codificación
Un proceso de generación de símbolo HCC2D conforme está parametrizado por al menos estos valores lógicos:
payload: obligatorio, arreglo de bytes no vacíomode:hcc2d4ohcc2d8ec_level: uno deL,M,Q,Hversion:0significa selección automática; de lo contrario1..40scale: píxeles por módulo para renderizado raster, si se produce salida rasterquiet_zone: módulos de margen blanco alrededor del símbolo renderizado, si se produce salida rasterpalette_rgb: anulación RGB opcional
Los primeros cuatro parámetros afectan al símbolo HCC2D lógico. Los últimos tres afectan solo al renderizado visual.
Los valores predeterminados, el comportamiento de la interfaz de usuario y las convenciones de línea de comandos están fuera del alcance de esta especificación.
Notas adicionales sobre parámetros:
payloadse interpreta estrictamente como bytes crudos- esta especificación no define transcodificación de texto, optimización multi-segmento, modo numérico ni modo alfanumérico
modedetermina el número de planos y la familia de paletaec_levelselecciona la fila de tabla normativa dentro de la versión elegidaversioncontrola la capacidad, la dimensión interior, las coordenadas de alineación y la estructura de bloquesscale,quiet_zoneypalette_rgbno cambian el flujo de bits lógico codificado
4. Geometría del símbolo
Para ambos modos HCC2D, la versión v utiliza una cuadrícula cuadrada interior de dimensión:
N = 17 + 4*v
Ejemplos:
- versión 1 →
21 × 21 - versión 10 →
57 × 57 - versión 40 →
177 × 177
La cuadrícula interior reutiliza las estructuras de finder pattern, alignment pattern, timing pattern, información de formato e información de versión que siguen reglas compatibles con QR Code / ISO/IEC 18004:2006.
HCC2D añade después su propio borde exterior de un módulo en los cuatro lados:
- dimensión interior =
N - dimensión completa =
N + 2
Este borde exterior específico de HCC2D es el Color Palette Pattern.
La distinción entre cuadrícula interior y símbolo completo es normativa:
- toda la lógica de posicionamiento reutilizada compatible con QR opera sobre la matriz interior
N × N - el Color Palette Pattern de HCC2D se sitúa fuera de esa matriz interior
- el renderizado y la salida raster utilizan la dimensión completa
N + 2
Por lo tanto, cuando este documento se refiere a patrones de función, posicionamiento de datos, masking o geometría de versión, esas reglas se aplican primero a la matriz interior, y solo después se añade el borde HCC2D.
5. Índices de color y paletas predeterminadas
Esta sección define el diseño de bits del índice de color para HCC2D4 y HCC2D8, los dos Modelos de Paleta de Colores estándar (Modelo 1 para visualización en pantalla y Modelo 2 para impresión), la clasificación de los modelos de paleta, y las reglas para la personalización de la paleta.
5.1 HCC2D4 — Paleta de Colores Modelo 1 — Definición
Los códigos HCC2D4 con Paleta de Colores Modelo 1 deberán usar los siguientes colores para los índices de paleta 0..3. La luminancia es aproximada, calculada como Y = 0.299R + 0.587G + 0.114B.
| Índice | Color | RGB | Luminancia (Y) |
|---|---|---|---|
0 | negro | RGB(0, 0, 0) | ≈ 0 |
1 | rojo | RGB(220, 0, 0) | ≈ 66 |
2 | cian | RGB(0, 200, 220) | ≈ 142 |
3 | blanco | RGB(255, 255, 255) | ≈ 255 |
Disposición de bits del índice de color:
- bit 1 = plano MSB
- bit 0 = plano LSB
Por lo tanto:
00 → 0 → negro01 → 1 → rojo10 → 2 → cian11 → 3 → blanco
El ordenamiento es lógico, no meramente visual. El índice 0 es el ancla oscura y el índice 3 es el ancla blanca de la familia de cuatro colores.
5.2 HCC2D8 — Paleta de Colores Modelo 1 — Definición
Los códigos HCC2D8 con Paleta de Colores Modelo 1 deberán usar los siguientes colores para los índices de paleta 0..7. La luminancia es aproximada, calculada como Y = 0.299R + 0.587G + 0.114B.
| Índice | Color | RGB | Luminancia (Y) |
|---|---|---|---|
0 | negro | RGB(0, 0, 0) | ≈ 0 |
1 | rojo oscuro | RGB(200, 0, 0) | ≈ 60 |
2 | verde oscuro | RGB(0, 130, 0) | ≈ 76 |
3 | azul marino oscuro | RGB(0, 60, 180) | ≈ 56 |
4 | cian claro | RGB(0, 215, 235) | ≈ 153 |
5 | amarillo claro | RGB(255, 220, 50) | ≈ 211 |
6 | magenta claro | RGB(255, 130, 230) | ≈ 179 |
7 | blanco | RGB(255, 255, 255) | ≈ 255 |
Disposición de bits del índice de color:
- bit 2 = plano 0 / plano MSB
- bit 1 = plano 1
- bit 0 = plano 2 / plano LSB
Por lo tanto, el índice de color es igual al valor de 3 bits formado por los tres bits de plano.
Nuevamente, el ordenamiento es lógico. El índice 0 es el ancla oscura y el índice 7 es el ancla blanca de la familia de ocho colores.
5.3 Paleta de Colores Modelo 1 — Justificación del diseño
Los valores RGB de la Paleta de Colores Modelo 1 (definida en las secciones 5.1 y 5.2) fueron elegidos deliberadamente para evitar los extremos del gamut sRGB, donde los perfiles de pantalla y los gamuts hardware divergen más. El decodificador muestrea el Color Palette Pattern en tiempo real sobre la pantalla real — que puede ser sRGB, de gama amplia, AMOLED o LCD, y casi con certeza no está calibrada. Los valores de canal próximos a los límites (cercanos a 0 o 255) se reproducen de forma diferente según el tipo de pantalla; al limitar los canales activos a 200–220 en lugar de 255, los colores de la paleta se sitúan en el interior del gamut sRGB, donde las diferentes pantallas coinciden de forma más fiable en el color percibido. Esto reduce la desviación de color entre pantallas y mejora la estabilidad del muestreo de colores durante la decodificación.
Esta elección de limitación de canales RGB también produce una distribución de luminancia coherente con el requisito de ordenamiento de la sección 5.9. Para HCC2D8 (sección 5.2), los índices 0–3 (negro, rojo oscuro, verde oscuro, azul marino oscuro) caen todos por debajo del punto medio de luminancia (Y < 128), mientras que los índices 4–7 (cian claro, amarillo claro, magenta claro, blanco) caen todos por encima (Y > 128). La diferencia entre el índice 3 (azul marino oscuro, Y ≈ 56) y el índice 4 (cian claro, Y ≈ 153) es de aproximadamente 97 unidades de luminancia.
La Paleta de Colores Modelo 1 es la línea de base validada para pantallas. No pretende ser óptima para impresión.
5.4 HCC2D4 — Paleta de Colores Modelo 2 — Definición
Para HCC2D4, todos los colores intermedios son de un solo canal. El amarillo se excluye por proporcionar contraste insuficiente con el papel blanco:
| Índice | Color | RGB | Canales de tinta | Luminancia (Y) |
|---|---|---|---|---|
0 | negro | RGB(0, 0, 0) | K | ≈ 0 |
1 | magenta | RGB(255, 0, 255) | M | ≈ 105 |
2 | cian | RGB(0, 255, 255) | C | ≈ 179 |
3 | blanco | RGB(255, 255, 255) | sin tinta (papel) | ≈ 255 |
5.5 HCC2D8 — Paleta de Colores Modelo 2 — Definición
Para HCC2D8, la paleta cubre los tres primarios CMYK de canal único y sus tres combinaciones binarias a saturación completa. No se utiliza ninguna combinación de tres canales:
| Índice | Color | RGB | Canales de tinta | Luminancia (Y) |
|---|---|---|---|---|
0 | negro | RGB(0, 0, 0) | K | ≈ 0 |
1 | azul | RGB(0, 0, 255) | C + M (100%) | ≈ 29 |
2 | rojo | RGB(255, 0, 0) | M + Y (100%) | ≈ 76 |
3 | magenta | RGB(255, 0, 255) | M | ≈ 105 |
4 | verde | RGB(0, 255, 0) | C + Y (100%) | ≈ 150 |
5 | cian | RGB(0, 255, 255) | C | ≈ 179 |
6 | amarillo | RGB(255, 255, 0) | Y | ≈ 226 |
7 | blanco | RGB(255, 255, 255) | sin tinta (papel) | ≈ 255 |
5.6 Paleta de Colores Modelo 2 — Justificación del diseño
La Paleta de Colores Modelo 2 es la paleta optimizada para impresión, definida para HCC2D4 y HCC2D8. Para la impresión, el problema es diferente al de las pantallas: el gamut de la tinta, el punto de blanco del papel y las condiciones de iluminación durante el escaneo introducen fuentes de variabilidad distintas. La Paleta de Colores Modelo 2 se basa en el principio de minimizar el número de canales de tinta por color de módulo. Los colores de un solo canal son los más estables entre impresoras; cada canal adicional introduce interacciones de ganancia de punto que varían según la impresora, el papel y la densidad de tinta.
Ambas paletas de la Paleta de Colores Modelo 2 cumplen el ordenamiento oscuro/claro de la sección 5.9. Para HCC2D8, la separación es especialmente clara: los índices 0–3 (negro, azul, rojo, magenta) caen todos por debajo del punto medio de luminancia (Y < 128), mientras que los índices 4–7 (verde, cian, amarillo, blanco) caen todos por encima (Y > 128), con una diferencia de aproximadamente 45 unidades de luminancia entre el índice 3 (magenta, Y ≈ 105) y el índice 4 (verde, Y ≈ 150).
5.7 Clasificación de Modelos de Paleta de Colores
Los códigos HCC2D se clasifican según su paleta de colores de la siguiente manera. El número de modelo es una propiedad de la paleta, no del formato del código; el decodificador es agnóstico a la paleta.
- Paleta de colores Modelo 1: códigos que usan la paleta predeterminada exacta definida en las secciones 5.1 y 5.2. Esta es la paleta estándar e interoperable. La Paleta de colores Modelo 1 ha sido validada para funcionar bien cuando los códigos se muestran en pantallas (monitores de ordenador, teléfonos inteligentes y dispositivos similares). Cualquier implementación que declare conformidad HCC2D sin más calificaciones implica la Paleta de colores Modelo 1.
- Paleta de Colores Modelo 2: códigos que utilizan la paleta optimizada para impresión definida en las secciones 5.4 y 5.5, disponible para HCC2D4 y HCC2D8. Diseñada para flujos de trabajo de impresión y escaneo.
- Paleta inválida: una paleta que no tiene negro en el índice 0 o blanco en el último índice. Los códigos que usan tal paleta no son códigos HCC2D válidos. Los codificadores conformes deberán rechazar estas configuraciones (ver sección 5.8).
- Paleta no estándar / experimental: una paleta que mantiene negro en el índice 0 y blanco en el último índice, pero usa colores intermedios diferentes. Los códigos producidos con tal paleta pueden o no ser decodificables, dependiendo de cuán cromáticamente distintos sean los colores elegidos. La implementación de codificación asume la responsabilidad exclusiva de cualquier código que no se pueda decodificar.
Los números de modelo de paleta de colores son asignados exclusivamente por esta especificación. En versiones futuras de esta especificación pueden definirse modelos de paleta de colores adicionales (Paleta de colores Modelo 3 y sucesivos) a medida que otras combinaciones de colores sean validadas experimentalmente para funcionar bien en casos de uso específicos, como la lectura de ordenador a teléfono o de teléfono a teléfono.
Las modificaciones de paleta deberían limitarse a uso experimental. Para uso en producción, la Paleta de colores Modelo 1 debería usarse cuando los códigos vayan a mostrarse en pantallas (monitores de ordenador, teléfonos inteligentes y dispositivos similares); la Paleta de colores Modelo 2 debería usarse cuando los códigos deban imprimirse.
Las implementaciones que produzcan códigos con una paleta no estándar deberán comunicarlo explícitamente a sus usuarios, indicando que los códigos usan una paleta no estándar y pueden no ser decodificables por todos los decodificadores HCC2D.
5.8 Anulación de paleta
La primera entrada de paleta y la última son anclas normativas y no deben modificarse:
- para
hcc2d4, el índice0debe permanecer negro y el índice3debe permanecer blanco - para
hcc2d8, el índice0debe permanecer negro y el índice7debe permanecer blanco
Por lo tanto:
- en
hcc2d4, solo los índices1y2pueden personalizarse - en
hcc2d8, solo los índices1a6pueden personalizarse
Cuando se proporciona una anulación de paleta:
- el modo de 4 colores requiere exactamente
12bytes (4 * 3) - el modo de 8 colores requiere exactamente
24bytes (8 * 3) - la disposición de bytes es la paleta completa en orden de índice de paleta, luego en orden de componente RGB
- sin embargo, los codificadores conformes deberán rechazar anulaciones cuya primera entrada no sea negro o cuya última entrada no sea blanco
El orden de bytes es por orden de entrada de paleta, luego por orden de componente RGB:
- HCC2D4:
R0 G0 B0 R1 G1 B1 R2 G2 B2 R3 G3 B3 - HCC2D8:
R0 G0 B0 ... R7 G7 B7
Valores de ancla normativos:
hcc2d4:R0 G0 B0 = 0 0 0yR3 G3 B3 = 255 255 255hcc2d8:R0 G0 B0 = 0 0 0yR7 G7 B7 = 255 255 255
La lógica del símbolo usa solo índices. Los valores RGB personalizados no afectan las codewords, la construcción del flujo de bits, la selección de versión, la mask selection ni la disposición de la matriz, pero sí afectan la apariencia renderizada.
Equivalentemente, HCC2D determina primero un índice de color lógico para cada módulo y solo entonces asigna ese índice a una terna RGB para el renderizado.
5.9 Ordenamiento de luminancia recomendado para paletas personalizadas
Esta subsección es informativa.
Cuando se usa una paleta personalizada, las implementaciones deberían preservar una mitad inferior más oscura y una mitad superior más clara. Esta recomendación está motivada por la mask selection rule de HCC2D definida más adelante en esta especificación.
La mask selection de HCC2D no se realiza sobre el símbolo final renderizado en color completo. En cambio, se realiza sobre un proxy binario derivado de un solo plano de bits:
- solo el plano
0participa en la mask selection - para
hcc2d4, el plano0es el bit más significativo del color - para
hcc2d8, el plano0es el bit más significativo del color (bit2) - ese plano se extrae del flujo de bits entrelazado final
- ese plano se invierte
- las QR-compatible mask penalty rules se evalúan sobre ese proxy invertido de un solo plano
Por lo tanto, solo un bit por módulo influye directamente en la mask choice.
Esto tiene una consecuencia práctica importante. La máscara se elige usando reglas de penalización binaria al estilo QR, pero el símbolo HCC2D final es un símbolo multicolor. Para que el proceso de mask selection al estilo QR siga siendo significativo para HCC2D, el proxy binario utilizado para la mask choice debería seguir correlacionando razonablemente bien con la estructura de oscuridad aparente del símbolo renderizado final.
Esa correlación mejora cuando los índices de paleta inferiores son más oscuros y los índices superiores son más claros. En esa disposición, el plano único utilizado para la mask selection aún actúa como una aproximación gruesa útil de cómo se distribuyen las regiones oscuras versus claras en el símbolo HCC2D final.
Por lo tanto, la personalización de paleta debería preservar un ordenamiento de luminancia renderizada en el que la mitad inferior permanezca más oscura en general y la mitad superior más clara en general, coherente con el ordenamiento de significado lógico de los índices de color.
En términos prácticos:
- los índices de paleta inferiores deberían corresponder a colores más oscuros
- los índices de paleta superiores deberían corresponder a colores más claros
- la primera entrada deberá permanecer negra
- la última entrada deberá permanecer blanca
Ordenamiento recomendado para hcc2d4:
- el índice
0deberá ser negro - el índice
1debería ser visualmente más oscuro que el índice2 - el índice
3deberá ser blanco - como pauta general de la familia de 4 colores, los índices
0y1deberían formar la mitad más oscura de la paleta y los índices2y3la mitad más clara
Ordenamiento recomendado para hcc2d8:
- el índice
0deberá ser negro - el índice
7deberá ser blanco - los índices
1,2y3deberían permanecer en la mitad más oscura de la paleta - los índices
4,5y6deberían permanecer en la mitad más clara de la paleta - como pauta general de la familia de 8 colores, los índices
0a3deberían ser más oscuros en general que los índices4a7
Esta recomendación no cambia la lógica del símbolo, ya que HCC2D usa índices de paleta en lugar de valores de luminancia al construir el símbolo. Una paleta que viole el equilibrio recomendado oscuro-inferior / claro-superior puede seguir produciendo símbolos decodificables. Sin embargo, al hacerlo se debilita la relación prevista entre:
- el proxy utilizado durante la mask selection
- la distribución de oscuridad aparente del símbolo renderizado final
- la estabilidad visual de la paleta personalizada en diferentes condiciones de escaneo
Si se preserva ese equilibrio oscuro-versus-claro, las mask rules al estilo QR reutilizadas siguen siendo una heurística razonable y útil para HCC2D también.
Si ese equilibrio no se preserva:
- el codificador puede seguir generando símbolos válidos
- los decodificadores pueden seguir decodificando esos símbolos con éxito
- pero la máscara seleccionada queda entonces optimizada para el proxy binario al estilo QR en lugar de para una disposición de colores final cuya oscuridad percibida sigue la misma estructura
En ese caso, la mask selection aún funciona en el sentido estricto de que se elige una máscara y el símbolo resultante puede seguir siendo decodificable, pero el modelo de penalización al estilo QR se vuelve menos representativo de las propiedades visuales del símbolo HCC2D real.
Por esa razón, una paleta personalizada debería preservar colores más oscuros en los índices inferiores y colores más claros en los índices superiores.
6. Enmarcado de carga útil
El enmarcado de carga útil HCC2D usa un segmento BYTE.
- bits de marcador de segmento:
0100 - ancho del campo de conteo:
16bits en ambos modos HCC2D, para todas las versiones - valor de conteo: longitud de la carga útil en bytes
- bytes de carga útil: añadidos literalmente,
8bits cada uno, bit más significativo primero
El flujo de bits de carga útil lógico antes de la terminación es:
0100 || byte_count_16 || payload_bytes
Los bits de terminación, la alineación de bytes, los bytes de relleno, la generación de paridad Reed-Solomon y el entrelazado final siguen reglas compatibles con QR Code / ISO/IEC 18004:2006, excepto donde esta especificación define explícitamente un comportamiento específico de HCC2D.
Consecuencias importantes de esta regla de enmarcado:
- el campo de conteo siempre tiene dieciséis bits para HCC2D, independientemente de la versión
- el valor de conteo es un recuento de bytes, no de bits ni de caracteres
- los bytes de carga útil se añaden literalmente en orden de bit más significativo primero
- esta especificación define exactamente un segmento BYTE por símbolo HCC2D
7. Selección de versión
Si se especifica explícitamente una versión, se usará solo si la carga útil cabe.
Si se usa la selección automática de versión, se seleccionará la versión más pequeña que quepa.
Para un modo, versión y nivel de corrección de errores HCC2D dados:
total_codewords,data_codewords,ec_codewordsy la distribución de bloques se obtienen de las tablas explícitas HCC2D en las secciones 19 y 20- una carga útil cabe si y solo si su flujo de bits enmarcado puede terminarse y rellenarse hasta exactamente
data_codewordsbytes
Para este propósito, la longitud del flujo de bits enmarcado antes de la terminación es:
4 + 16 + 8 * payload_length
donde 4 es el indicador de modo BYTE y 16 es el ancho del campo de recuento de bytes HCC2D.
Una carga útil cabe cuando ese flujo de bits enmarcado puede:
- terminarse opcionalmente con hasta cuatro bits cero
- rellenarse con bits cero hasta el siguiente límite de byte
- rellenarse con bytes de relleno alternos hasta alcanzar exactamente la capacidad de data codewords
sin superar el recuento de data codewords disponibles para el modo, versión y nivel de corrección de errores seleccionados.
8. Organización de codewords HCC2D
Las tablas de parámetros HCC2D en las secciones 19 y 20 son normativas.
La estructura de corrección de errores sigue reglas compatibles con ISO/IEC 18004:2006, excepto donde esta especificación define explícitamente un comportamiento específico de HCC2D.
Cada fila de la tabla proporciona:
dim: dimensión interioralign: coordenadas centrales del alignment patterntotal: total codewordsdata: data codewordsec: error-correction codewordsecpb: error-correction codewords per blockblocks: multiplicidades de bloques y data codewords por bloque
Esos valores determinan completamente la organización de codewords HCC2D para cada versión y nivel.
Para hcc2d4, el recuento total de codewords para cada versión y nivel es exactamente el doble de la estructura base compatible con QR Code / ISO/IEC 18004:2006 correspondiente.
Para hcc2d8, el recuento total de codewords para cada versión y nivel es exactamente el triple de la estructura base compatible con QR Code / ISO/IEC 18004:2006 correspondiente.
Más precisamente:
hcc2d4mantiene los valores de codewords per block compatibles con QR Code / ISO/IEC 18004:2006 reutilizados y duplica las multiplicidades de bloqueshcc2d8mantiene los valores de codewords per block compatibles con QR Code / ISO/IEC 18004:2006 reutilizados y triplica las multiplicidades de bloques
Este es el mecanismo por el cual HCC2D aumenta la capacidad total de bits mientras continúa usando los procedimientos Reed-Solomon compatibles con QR reutilizados.
9. Construcción de planos
Sea B el flujo de bits final de codewords entrelazadas.
La construcción de planos se realiza solo después de:
- haber formado las data codewords
- haber generado las error-correction codewords
- haber completado el entrelazado final
HCC2D no crea flujos de corrección de errores separados por plano. En cambio, primero se produce un flujo de bits combinado final y luego se divide por paso en planos.
9.1 HCC2D4 — Dos planos
hcc2d4 usa dos planos.
La extracción de planos se realiza por desentrelazado de bits del flujo de bits final:
- el plano 0 toma bits en las posiciones
0, 2, 4, ... - el plano 1 toma bits en las posiciones
1, 3, 5, ...
El plano 0 es el plano MSB. El plano 1 es el plano LSB.
Índice de color del módulo de datos:
color = (plane0_bit << 1) | plane1_bit
Equivalentemente, si el flujo de bits final entrelazado es B[0], B[1], B[2], ..., los colores de los módulos del símbolo se determinan por pares de bits:
(B[0], B[1]), (B[2], B[3]), (B[4], B[5]), ...
9.2 HCC2D8 — Tres planos
hcc2d8 usa tres planos.
La extracción de planos es:
- el plano 0 toma bits en las posiciones
0, 3, 6, ... - el plano 1 toma bits en las posiciones
1, 4, 7, ... - el plano 2 toma bits en las posiciones
2, 5, 8, ...
El plano 0 es el plano MSB. El plano 2 es el plano LSB.
Índice de color del módulo de datos:
color = (plane0_bit << 2) | (plane1_bit << 1) | plane2_bit
Equivalentemente, si el flujo de bits final entrelazado es B[0], B[1], B[2], ..., los colores de los módulos del símbolo se determinan por tripletes de bits:
(B[0], B[1], B[2]), (B[3], B[4], B[5]), (B[6], B[7], B[8]), ...
El orden de planos es normativo y no deberá permutarse. En hcc2d4, el plano 0 es el bit más significativo y el plano 1 es el bit menos significativo. En hcc2d8, el plano 0 es el bit 2, el plano 1 es el bit 1 y el plano 2 es el bit 0.
10. Mask selection
Se deberá usar un único mask pattern en 0..7 para todos los planos de un símbolo.
La mask selection sigue reglas compatibles con ISO/IEC 18004:2006, excepto donde esta especificación define explícitamente un comportamiento específico de HCC2D.
Comportamiento específico de HCC2D para la evaluación de candidatos:
- construir un flujo de bits proxy solo desde el plano 0
- invertir cada bit de ese flujo del plano 0
- usar ese flujo invertido para la evaluación de mask penalty
Procedimiento de mask selection:
- para cada mask index candidato en
0..7, aplicar esa mask al flujo del plano 0 invertido y construir una matriz interior candidata a partir de él - calcular la mask penalty sobre esa matriz candidata
- seleccionar el mask index con penalización mínima
La resolución de empates es por el primer mínimo encontrado, es decir, el mask index más bajo.
Una vez elegido el mask index ganador, ese único índice deberá reutilizarse para cada plano del símbolo. HCC2D no elige mask patterns diferentes para planos diferentes.
11. Construcción de la matriz interna
Cada plano se convierte en una matriz interna usando la versión elegida y el mask pattern común elegido.
Importante: todos los planos usan la misma geometría de patrón de función, la misma versión, los mismos bits de formato y el mismo mask index. Solo difieren en los bits de datos.
Este documento no vuelve a exponer en su totalidad las fórmulas reutilizadas de finder pattern, alignment pattern, timing pattern, información de formato, información de versión, Reed-Solomon ni las mask rules.
Así, la construcción de la matriz interior para HCC2D puede entenderse como una construcción de matriz compatible con QR repetida sobre la misma geometría, una vez por plano, con solo el flujo de bits de plano cambiando de una pasada a la siguiente.
12. Coloración de módulos de función
Para hcc2d4 y hcc2d8, los módulos de datos usan el mapeo de colores multiplano descrito anteriormente, pero los módulos de función se renderizan solo en blanco y negro:
- si el plano 0 en esa coordenada de módulo de función es
1, renderizar negro - de lo contrario renderizar blanco
En la práctica esto es seguro porque los módulos de función son idénticos en todos los planos.
Esta regla se aplica a todos los módulos estructurales reutilizados en la matriz interior, incluidos los finder pattern, los alignment pattern, los timing pattern, la información de formato y la información de versión donde corresponda.
13. Color Palette Pattern
El Color Palette Pattern debe implementarse exactamente como se especifica: los decodificadores muestrean sus módulos para reconstruir la paleta de colores. El decodificador no conoce a priori los colores de la paleta, salvo que el primero es negro y el último es blanco. El Color Palette Pattern es por tanto necesario para la decodificación.
Sea la dimensión interior N.
El borde HCC2D se sitúa un módulo fuera de la cuadrícula interior:
- la fila de borde superior está en la fila lógica
-1 - la fila de borde inferior está en la fila lógica
N - la columna de borde izquierda está en la columna lógica
-1 - la columna de borde derecha está en la columna lógica
N
El código HCC2D desplaza esas coordenadas lógicas en +1 en ambos ejes, produciendo una cuadrícula de (N+2) × (N+2).
El Color Palette Pattern es una parte estructural de HCC2D, no una decoración opcional. Su geometría y el orden de índices de color son parte de la definición del formato.
13.1 Período del Color Palette Pattern
hcc2d4: períodoP = 4hcc2d8: períodoP = 8
Los tramos activos en cada borde recorren todos los índices de paleta P repetidamente. La fórmula exacta para cada borde, incluido el índice inicial y la dirección de ciclo, se da en la sección 13.2.
El ciclo se define en términos de índices de paleta lógicos, no de valores RGB literales.
13.2 Fórmulas exactas para los colores del Color Palette Pattern
Sean row y col coordenadas lógicas en el sistema de coordenadas de borde descrito anteriormente.
El borde Color Palette Pattern deberá usar estas reglas exactas:
- Borde superior: si
row == -1y8 ≤ col < N - 8, entoncescolor = (col - 8) mod P - Borde inferior: si
row == Ny8 ≤ col < N, entoncescolor = (col - 8) mod P - Borde izquierdo: si
col == -1, seastart = N - 9. Si8 ≤ row ≤ start, entoncescolor = (start - row) mod P - Borde derecho: si
col == Ny8 ≤ row < N, entoncescolor = (row - 8) mod P - Todas las celdas de borde restantes:
color = P - 1
Esto significa que las celdas de borde no cíclicas, incluidas las esquinas y los tramos excluidos cerca de los finder pattern, son siempre el índice de paleta más alto:
3para HCC2D4 → blanco7para HCC2D8 → blanco
13.3 Réplicas del Color Palette Pattern por modo
No todos los módulos del borde llevan los colores de paleta. Los módulos en las esquinas y cerca de los finder pattern son blancos fijos (color = P − 1, como se define en la sección 13.2). La longitud del segmento que replica cíclicamente los colores de paleta en cada lado es:
- lado superior:
N − 16módulos - lado inferior:
N − 8módulos - lado izquierdo:
N − 16módulos - lado derecho:
N − 8módulos
Para HCC2D8 (P = 8), se aplican las mismas longitudes.
La secuencia exacta por lado —incluido el índice inicial y la dirección— está determinada por las fórmulas de la sección 13.2. Los lados superior, inferior y derecho se incrementan con su coordenada de barrido. En el lado izquierdo el índice de palette decrece con el aumento de la fila; el índice inicial exacto en cada versión viene dado por la fórmula de la sección 13.2.
13.4 Interpretación para el decodificador
El decodificador muestrea estas tiras para recuperar las estadísticas de paleta. Por lo tanto, el borde es parte del formato del símbolo, no meramente una decoración.
Cualquier implementación que cambie la geometría del tramo, la dirección de ciclo o las celdas blancas de reserva del Color Palette Pattern generaría un símbolo no conforme.
14. Coordenadas de salida renderizada
Esta sección define el renderizado raster de un símbolo HCC2D lógico. El símbolo lógico está completamente definido sin fijar ningún tamaño de píxel particular.
14.1 Coordenadas de módulo
Para los modos HCC2D:
- tamaño total de la cuadrícula de módulos =
N + 2 - el módulo interior
(x, y)se asigna al módulo renderizado(x + 1, y + 1)
14.2 Zona de silencio
La imagen rasterizada añade quiet_zone módulos de color de fondo en los cuatro lados.
Índice de color de fondo:
- HCC2D4:
3(blanco) - HCC2D8:
7(blanco)
14.3 Tamaño de imagen en píxeles
Sea F la dimensión completa de módulos:
F = N + 2
Entonces:
- ancho de imagen =
(F + 2 * quiet_zone) * scale - alto de imagen = igual
Cada módulo lógico se rasteriza como un cuadrado de color sólido de scale × scale.
Para los símbolos HCC2D, la zona de silencio usa el índice de paleta más alto:
3parahcc2d47parahcc2d8
Con las paletas predeterminadas, esto corresponde a blanco.
15. Reglas estructurales relevantes para el decodificador
15.1 Campo de conteo HCC2D
El campo de conteo BYTE es de 16 bits en ambos modos HCC2D.
15.2 Orden de planos
Para HCC2D de 4 colores:
- el plano 0 es el MSB del color
- el plano 1 es el LSB del color
Para HCC2D de 8 colores:
- el plano 0 es el bit más significativo del color (bit 2)
- el plano 1 es el bit 1
- el plano 2 es el bit menos significativo del color (bit 0)
15.3 Máscara común
Todos los planos deben usar el mismo mask pattern.
Estas reglas son relevantes para el decodificador porque un decodificador que asuma anchos de campo de conteo BYTE variables al estilo QR, un orden de significancia de planos diferente o máscaras independientes por plano no interpretaría correctamente un símbolo HCC2D conforme.
16. Procedimiento de codificación
Un procedimiento de codificación HCC2D conforme deberá realizar los siguientes pasos:
- Validar entradas.
- Seleccionar familia de símbolos (
hcc2d4ohcc2d8). - Seleccionar nivel de corrección de errores (
L/M/Q/H). - Elegir versión: usar la versión explícitamente especificada si cabe; de lo contrario, cuando se usa la selección automática, elegir la versión más pequeña que quepa.
- Construir el flujo de bits de carga útil lógico:
0100 || byte_count_16 || payload_bytes - Determinar la capacidad específica de la familia y la distribución de bloques desde la tabla HCC2D explícita para el modo, versión y nivel elegidos.
- Aplicar terminación y bytes de relleno.
- Generar paridad e intercalar codewords usando la estructura de corrección de errores reutilizada.
- Dividir el flujo de bits final en 2 o 3 planos por extracción escalonada.
- Seleccionar un mask index común: para los modos HCC2D, evaluar penalizaciones usando solo el plano 0 invertido.
- Construir una matriz interna por plano usando la versión común, el nivel EC y la máscara.
- Renderizar módulos de datos:
- HCC2D4: índice de color de 2 bits (un bit por plano)
- HCC2D8: índice de color de 3 bits (un bit por plano)
- Renderizar módulos de función como negro/blanco desde el plano 0.
- Añadir el borde Color Palette Pattern exacto de un módulo usando las fórmulas de coordenadas de la sección 13.
- Añadir zona de silencio blanca.
- Rasterizar módulos en píxeles si se necesita salida de imagen raster.
El orden de las operaciones importa. En particular:
- la corrección de errores y el entrelazado ocurren antes de la extracción de planos
- la mask selection ocurre una vez y es compartida por todos los planos
- la construcción de la matriz interior ocurre antes de añadir el borde Color Palette Pattern
- la zona de silencio está fuera del símbolo HCC2D completo y no es parte de la estructura lógica de la carga útil
17. Envoltura de carga útil HCC2DF opcional
Esta sección no define el propio código HCC2D.
Define un formato de envoltura de carga útil opcional, HCC2DF, que puede usarse antes de la codificación del símbolo HCC2D cuando la aplicación quiere transportar un nombre de archivo junto con el contenido del archivo. Cuando se usa, el flujo de bytes HCC2DF se convierte en la carga útil definida en las secciones 3, 6 y 16 de esta especificación.
HCC2DF es una envoltura a nivel de aplicación superpuesta sobre los bytes de carga útil HCC2D. No forma parte de la geometría del símbolo HCC2D ni de la lógica de color.
17.1 Diseño de bytes HCC2DF
Los bytes de carga útil HCC2DF son:
- magic ASCII:
"HCC2DF"→ 6 bytes - byte de versión de envoltura:
0x01 - byte de indicador de compresión:
0x00= contenido sin comprimir0x01= contenido comprimido con zlib
- longitud del nombre de archivo: 1 byte
- bytes del nombre de archivo: UTF-8, exactamente
filename_lengthbytes - bytes de contenido: bytes de archivo crudos o bytes de archivo comprimidos
Esta envoltura no define ningún campo de suma de verificación, pie de página ni estructura de metadatos anidada.
17.2 Restricciones del nombre de archivo
- el nombre de archivo no debe estar vacío
- el nombre de archivo no debe superar los
127bytes UTF-8 - el nombre de archivo no debe contener
/ - el nombre de archivo no debe contener
\
17.3 Regla de compresión
Si se intenta la compresión, el contenido se comprime usando zlib compress2(..., Z_DEFAULT_COMPRESSION).
La compresión debería usarse solo si se cumplen todas las condiciones siguientes:
- la compresión tiene éxito
- el tamaño del archivo original es de al menos
128bytes - el tamaño comprimido es estrictamente menor que el
90%del tamaño original
De lo contrario, deberían almacenarse los bytes del archivo crudos y el indicador de compresión debería ser 0x00.
El mínimo de 128 bytes refleja el overhead fijo que introduce siempre la compresión zlib. El wrapper zlib añade 6 bytes (2 de cabecera + 4 del checksum Adler-32). Además, los encabezados de bloque deflate añaden más overhead: un bloque almacenado añade 5 bytes, y un bloque Huffman dinámico añade la descripción de la tabla de códigos, que puede ser de 20 a 50 bytes para entradas pequeñas — dando un overhead total realista de unos 36 bytes. Para ver por qué 128 bytes es el umbral correcto, considérense estos dos casos:
- Entrada de 64 bytes: margen para superar el 90% = 64 × 0,9 − 36 = 21,6 bytes para los datos reales — el contenido debe comprimirse al ~34%, alcanzable solo para secuencias muy repetitivas.
- Entrada de 128 bytes: margen = 128 × 0,9 − 36 = 79 bytes para los datos reales — el contenido debe comprimirse al ~62%, lo cual es realista para texto, JSON o URLs típicos.
Por debajo de 128 bytes el overhead consume una parte tan grande del margen disponible que es improbable que la compresión produzca un resultado significativo para cualquier payload real.
Esta regla prefiere la compresión solo cuando proporciona un claro beneficio de tamaño. Las implementaciones pueden usar un umbral diferente (p. ej. 95%), pero no se recomienda: un umbral más alto implica comprimir datos que solo ahorran unos pocos puntos porcentuales de espacio, lo cual no supone un beneficio significativo: almacenar los bytes crudos es más simple y el resultado puede tener prácticamente casi el mismo tamaño. En cualquier caso, las implementaciones que se desvíen de esta recomendación seguirán produciendo códigos decodificables por el HCC2D Decoder oficial, siempre que el indicador de compresión y el contenido sean coherentes: si el indicador es 0x01 el contenido debe ser datos zlib válidos; si es 0x00 el contenido debe ser los bytes crudos.
17.4 Relación de alcance con HCC2D
HCC2DF es una envoltura opcional transportada dentro de los bytes de carga útil HCC2D. No forma parte de la estructura del código HCC2D, la codificación de color, la organización de codewords ni la geometría del símbolo.
18. Recomendaciones de implementación
Las siguientes son recomendaciones orientativas para los implementadores. No son requisitos normativos de esta especificación. Los requisitos normativos en el resto de esta especificación se expresan con los términos "deberá" y "no deberá"; esta sección usa "debería" y "no debería" para orientación orientativa.
Nivel de corrección de errores recomendado: Para los códigos HCC2D, deberían usarse los niveles Q o M. El nivel L no debería usarse para uso general. El nivel H ofrece la máxima robustez a costa de una capacidad de carga útil significativamente reducida.
Modo recomendado: Para uso en producción, debería usarse hcc2d4. hcc2d8 ofrece mayor capacidad de carga útil, pero requiere condiciones de visualización y escaneo cromáticamente más consistentes.
Calidad de impresión y producción: Para códigos impresos de uso en producción:
- Debería usarse un formato de salida sin pérdida (PNG, SVG o PDF). Los formatos con pérdida como JPEG introducen artefactos de compresión que corrompen los colores de los módulos.
- Cada módulo debería renderizarse como un bloque de color sólido; no debería usarse semitono (halftoning).
- La relación de aspecto no debería estirarse, comprimirse ni distorsionarse.
- No deberían aplicarse desenfoque, suavizado ni remuestreo después de la rasterización.
- El tamaño de módulo debería ser de al menos 0,5 mm (dimensión X objetivo de GS1 para QR Code), o preferiblemente alrededor de 1 mm para mayor fiabilidad. Los módulos más pequeños reducen la diferenciación de colores durante la decodificación.
19. Tabla de parámetros HCC2D4 explícita
Los siguientes valores son los parámetros de versión HCC2D4. Son los totales completos HCC2D4 y las distribuciones de bloques.
Significado de los campos de la tabla:
Vn: número de versión HCC2D.dim: dimensión interior del símbolo en módulos, excluyendo el borde Color Palette Pattern de un módulo de HCC2D.align: coordenadas centrales del alignment pattern en la cuadrícula interior. Una lista vacía significa que no hay alignment pattern.L,M,Q,H: niveles de corrección de errores.total: número total de codewords en el símbolo para esa versión y nivel de corrección de errores.data: número total de data codewords en el símbolo para esa versión y nivel de corrección de errores.ec: número total de error-correction codewords en el símbolo para esa versión y nivel de corrección de errores.ecpb: error-correction codewords per block.blocks=a x b:abloques Reed-Solomon, cada uno transportandobdata codewords yecpberror-correction codewords.blocks=a x b, c x d: dos grupos de bloques; el primero tieneabloques debdata codewords cada uno, y el segundo tienecbloques deddata codewords cada uno. Cada bloque de ambos grupos lleva las mismasecpberror-correction codewords.
Ejemplo trabajado:
V1 dim=21 align=[]
L: total=52 data=38 ec=14 ecpb=7 blocks=2 x 19
significa:
- versión
1 - cuadrícula interior
21 × 21 - sin alignment pattern
- en nivel de corrección de errores
L 52total codewords en el símbolo38data codewords14error-correction codewords2bloques Reed-Solomon- cada bloque contiene
19data codewords y7error-correction codewords
La tabla HCC2D8 a continuación usa exactamente los mismos significados de campo.
| Vn | dim | align | EC | total | data | ec | ecpb | blocks |
|---|---|---|---|---|---|---|---|---|
| V1 | 21 | — | L | 52 | 38 | 14 | 7 | 2 × 19 |
| M | 52 | 32 | 20 | 10 | 2 × 16 | |||
| Q | 52 | 26 | 26 | 13 | 2 × 13 | |||
| H | 52 | 18 | 34 | 17 | 2 × 9 | |||
| V2 | 25 | 6, 18 | L | 88 | 68 | 20 | 10 | 2 × 34 |
| M | 88 | 56 | 32 | 16 | 2 × 28 | |||
| Q | 88 | 44 | 44 | 22 | 2 × 22 | |||
| H | 88 | 32 | 56 | 28 | 2 × 16 | |||
| V3 | 29 | 6, 22 | L | 140 | 110 | 30 | 15 | 2 × 55 |
| M | 140 | 88 | 52 | 26 | 2 × 44 | |||
| Q | 140 | 68 | 72 | 18 | 4 × 17 | |||
| H | 140 | 52 | 88 | 22 | 4 × 13 | |||
| V4 | 33 | 6, 26 | L | 200 | 160 | 40 | 20 | 2 × 80 |
| M | 200 | 128 | 72 | 18 | 4 × 32 | |||
| Q | 200 | 96 | 104 | 26 | 4 × 24 | |||
| H | 200 | 72 | 128 | 16 | 8 × 9 | |||
| V5 | 37 | 6, 30 | L | 268 | 216 | 52 | 26 | 2 × 108 |
| M | 268 | 172 | 96 | 24 | 4 × 43 | |||
| Q | 268 | 124 | 144 | 18 | 4 × 15, 4 × 16 | |||
| H | 268 | 92 | 176 | 22 | 4 × 11, 4 × 12 | |||
| V6 | 41 | 6, 34 | L | 344 | 272 | 72 | 18 | 4 × 68 |
| M | 344 | 216 | 128 | 16 | 8 × 27 | |||
| Q | 344 | 152 | 192 | 24 | 8 × 19 | |||
| H | 344 | 120 | 224 | 28 | 8 × 15 | |||
| V7 | 45 | 6, 22, 38 | L | 392 | 312 | 80 | 20 | 4 × 78 |
| M | 392 | 248 | 144 | 18 | 8 × 31 | |||
| Q | 392 | 176 | 216 | 18 | 4 × 14, 8 × 15 | |||
| H | 392 | 132 | 260 | 26 | 8 × 13, 2 × 14 | |||
| V8 | 49 | 6, 24, 42 | L | 484 | 388 | 96 | 24 | 4 × 97 |
| M | 484 | 308 | 176 | 22 | 4 × 38, 4 × 39 | |||
| Q | 484 | 220 | 264 | 22 | 8 × 18, 4 × 19 | |||
| H | 484 | 172 | 312 | 26 | 8 × 14, 4 × 15 | |||
| V9 | 53 | 6, 26, 46 | L | 584 | 464 | 120 | 30 | 4 × 116 |
| M | 584 | 364 | 220 | 22 | 6 × 36, 4 × 37 | |||
| Q | 584 | 264 | 320 | 20 | 8 × 16, 8 × 17 | |||
| H | 584 | 200 | 384 | 24 | 8 × 12, 8 × 13 | |||
| V10 | 57 | 6, 28, 50 | L | 692 | 548 | 144 | 18 | 4 × 68, 4 × 69 |
| M | 692 | 432 | 260 | 26 | 8 × 43, 2 × 44 | |||
| Q | 692 | 308 | 384 | 24 | 12 × 19, 4 × 20 | |||
| H | 692 | 244 | 448 | 28 | 12 × 15, 4 × 16 | |||
| V11 | 61 | 6, 30, 54 | L | 808 | 648 | 160 | 20 | 8 × 81 |
| M | 808 | 508 | 300 | 30 | 2 × 50, 8 × 51 | |||
| Q | 808 | 360 | 448 | 28 | 8 × 22, 8 × 23 | |||
| H | 808 | 280 | 528 | 24 | 6 × 12, 16 × 13 | |||
| V12 | 65 | 6, 32, 58 | L | 932 | 740 | 192 | 24 | 4 × 92, 4 × 93 |
| M | 932 | 580 | 352 | 22 | 12 × 36, 4 × 37 | |||
| Q | 932 | 412 | 520 | 26 | 8 × 20, 12 × 21 | |||
| H | 932 | 316 | 616 | 28 | 14 × 14, 8 × 15 | |||
| V13 | 69 | 6, 34, 62 | L | 1064 | 856 | 208 | 26 | 8 × 107 |
| M | 1064 | 668 | 396 | 22 | 16 × 37, 2 × 38 | |||
| Q | 1064 | 488 | 576 | 24 | 16 × 20, 8 × 21 | |||
| H | 1064 | 360 | 704 | 22 | 24 × 11, 8 × 12 | |||
| V14 | 73 | 6, 26, 46, 66 | L | 1162 | 922 | 240 | 30 | 6 × 115, 2 × 116 |
| M | 1162 | 730 | 432 | 24 | 8 × 40, 10 × 41 | |||
| Q | 1162 | 522 | 640 | 20 | 22 × 16, 10 × 17 | |||
| H | 1162 | 394 | 768 | 24 | 22 × 12, 10 × 13 | |||
| V15 | 77 | 6, 26, 48, 70 | L | 1310 | 1046 | 264 | 22 | 10 × 87, 2 × 88 |
| M | 1310 | 830 | 480 | 24 | 10 × 41, 10 × 42 | |||
| Q | 1310 | 590 | 720 | 30 | 10 × 24, 14 × 25 | |||
| H | 1310 | 446 | 864 | 24 | 22 × 12, 14 × 13 | |||
| V16 | 81 | 6, 26, 50, 74 | L | 1466 | 1178 | 288 | 24 | 10 × 98, 2 × 99 |
| M | 1466 | 906 | 560 | 28 | 14 × 45, 6 × 46 | |||
| Q | 1466 | 650 | 816 | 24 | 30 × 19, 4 × 20 | |||
| H | 1466 | 506 | 960 | 30 | 6 × 15, 26 × 16 | |||
| V17 | 85 | 6, 30, 54, 78 | L | 1630 | 1294 | 336 | 28 | 2 × 107, 10 × 108 |
| M | 1630 | 1014 | 616 | 28 | 20 × 46, 2 × 47 | |||
| Q | 1630 | 734 | 896 | 28 | 2 × 22, 30 × 23 | |||
| H | 1630 | 566 | 1064 | 28 | 4 × 14, 34 × 15 | |||
| V18 | 89 | 6, 30, 56, 82 | L | 1802 | 1442 | 360 | 30 | 10 × 120, 2 × 121 |
| M | 1802 | 1126 | 676 | 26 | 18 × 43, 8 × 44 | |||
| Q | 1802 | 794 | 1008 | 28 | 34 × 22, 2 × 23 | |||
| H | 1802 | 626 | 1176 | 28 | 4 × 14, 38 × 15 | |||
| V19 | 93 | 6, 30, 58, 86 | L | 1982 | 1590 | 392 | 28 | 6 × 113, 8 × 114 |
| M | 1982 | 1254 | 728 | 26 | 6 × 44, 22 × 45 | |||
| Q | 1982 | 890 | 1092 | 26 | 34 × 21, 8 × 22 | |||
| H | 1982 | 682 | 1300 | 26 | 18 × 13, 32 × 14 | |||
| V20 | 97 | 6, 34, 62, 90 | L | 2170 | 1722 | 448 | 28 | 6 × 107, 10 × 108 |
| M | 2170 | 1338 | 832 | 26 | 6 × 41, 26 × 42 | |||
| Q | 2170 | 970 | 1200 | 30 | 30 × 24, 10 × 25 | |||
| H | 2170 | 770 | 1400 | 28 | 30 × 15, 20 × 16 | |||
| V21 | 101 | 6, 28, 50, 72, 94 | L | 2312 | 1864 | 448 | 28 | 8 × 116, 8 × 117 |
| M | 2312 | 1428 | 884 | 26 | 34 × 42 | |||
| Q | 2312 | 1024 | 1288 | 28 | 34 × 22, 12 × 23 | |||
| H | 2312 | 812 | 1500 | 30 | 38 × 16, 12 × 17 | |||
| V22 | 105 | 6, 26, 50, 74, 98 | L | 2516 | 2012 | 504 | 28 | 4 × 111, 14 × 112 |
| M | 2516 | 1564 | 952 | 28 | 34 × 46 | |||
| Q | 2516 | 1136 | 1380 | 30 | 14 × 24, 32 × 25 | |||
| H | 2516 | 884 | 1632 | 24 | 68 × 13 | |||
| V23 | 109 | 6, 30, 54, 78, 102 | L | 2728 | 2188 | 540 | 30 | 8 × 121, 10 × 122 |
| M | 2728 | 1720 | 1008 | 28 | 8 × 47, 28 × 48 | |||
| Q | 2728 | 1228 | 1500 | 30 | 22 × 24, 28 × 25 | |||
| H | 2728 | 928 | 1800 | 30 | 32 × 15, 28 × 16 | |||
| V24 | 113 | 6, 28, 54, 80, 106 | L | 2948 | 2348 | 600 | 30 | 12 × 117, 8 × 118 |
| M | 2948 | 1828 | 1120 | 28 | 12 × 45, 28 × 46 | |||
| Q | 2948 | 1328 | 1620 | 30 | 22 × 24, 32 × 25 | |||
| H | 2948 | 1028 | 1920 | 30 | 60 × 16, 4 × 17 | |||
| V25 | 117 | 6, 32, 58, 84, 110 | L | 3176 | 2552 | 624 | 26 | 16 × 106, 8 × 107 |
| M | 3176 | 2000 | 1176 | 28 | 16 × 47, 26 × 48 | |||
| Q | 3176 | 1436 | 1740 | 30 | 14 × 24, 44 × 25 | |||
| H | 3176 | 1076 | 2100 | 30 | 44 × 15, 26 × 16 | |||
| V26 | 121 | 6, 30, 58, 86, 114 | L | 3412 | 2740 | 672 | 28 | 20 × 114, 4 × 115 |
| M | 3412 | 2124 | 1288 | 28 | 38 × 46, 8 × 47 | |||
| Q | 3412 | 1508 | 1904 | 28 | 56 × 22, 12 × 23 | |||
| H | 3412 | 1192 | 2220 | 30 | 66 × 16, 8 × 17 | |||
| V27 | 125 | 6, 34, 62, 90, 118 | L | 3656 | 2936 | 720 | 30 | 16 × 122, 8 × 123 |
| M | 3656 | 2256 | 1400 | 28 | 44 × 45, 6 × 46 | |||
| Q | 3656 | 1616 | 2040 | 30 | 16 × 23, 52 × 24 | |||
| H | 3656 | 1256 | 2400 | 30 | 24 × 15, 56 × 16 | |||
| V28 | 129 | 6, 26, 50, 74, 98, 122 | L | 3842 | 3062 | 780 | 30 | 6 × 117, 20 × 118 |
| M | 3842 | 2386 | 1456 | 28 | 6 × 45, 46 × 46 | |||
| Q | 3842 | 1742 | 2100 | 30 | 8 × 24, 62 × 25 | |||
| H | 3842 | 1322 | 2520 | 30 | 22 × 15, 62 × 16 | |||
| V29 | 133 | 6, 30, 54, 78, 102, 126 | L | 4102 | 3262 | 840 | 30 | 14 × 116, 14 × 117 |
| M | 4102 | 2534 | 1568 | 28 | 42 × 45, 14 × 46 | |||
| Q | 4102 | 1822 | 2280 | 30 | 2 × 23, 74 × 24 | |||
| H | 4102 | 1402 | 2700 | 30 | 38 × 15, 52 × 16 | |||
| V30 | 137 | 6, 26, 52, 78, 104, 130 | L | 4370 | 3470 | 900 | 30 | 10 × 115, 20 × 116 |
| M | 4370 | 2746 | 1624 | 28 | 38 × 47, 20 × 48 | |||
| Q | 4370 | 1970 | 2400 | 30 | 30 × 24, 50 × 25 | |||
| H | 4370 | 1490 | 2880 | 30 | 46 × 15, 50 × 16 | |||
| V31 | 141 | 6, 30, 56, 82, 108, 134 | L | 4646 | 3686 | 960 | 30 | 26 × 115, 6 × 116 |
| M | 4646 | 2910 | 1736 | 28 | 4 × 46, 58 × 47 | |||
| Q | 4646 | 2066 | 2580 | 30 | 84 × 24, 2 × 25 | |||
| H | 4646 | 1586 | 3060 | 30 | 46 × 15, 56 × 16 | |||
| V32 | 145 | 6, 34, 60, 86, 112, 138 | L | 4930 | 3910 | 1020 | 30 | 34 × 115 |
| M | 4930 | 3082 | 1848 | 28 | 20 × 46, 46 × 47 | |||
| Q | 4930 | 2230 | 2700 | 30 | 20 × 24, 70 × 25 | |||
| H | 4930 | 1690 | 3240 | 30 | 38 × 15, 70 × 16 | |||
| V33 | 149 | 6, 30, 58, 86, 114, 142 | L | 5222 | 4142 | 1080 | 30 | 34 × 115, 2 × 116 |
| M | 5222 | 3262 | 1960 | 28 | 28 × 46, 42 × 47 | |||
| Q | 5222 | 2342 | 2880 | 30 | 58 × 24, 38 × 25 | |||
| H | 5222 | 1802 | 3420 | 30 | 22 × 15, 92 × 16 | |||
| V34 | 153 | 6, 34, 62, 90, 118, 146 | L | 5522 | 4382 | 1140 | 30 | 26 × 115, 12 × 116 |
| M | 5522 | 3450 | 2072 | 28 | 28 × 46, 46 × 47 | |||
| Q | 5522 | 2462 | 3060 | 30 | 88 × 24, 14 × 25 | |||
| H | 5522 | 1922 | 3600 | 30 | 118 × 16, 2 × 17 | |||
| V35 | 157 | 6, 30, 54, 78, 102, 126, 150 | L | 5752 | 4612 | 1140 | 30 | 24 × 121, 14 × 122 |
| M | 5752 | 3624 | 2128 | 28 | 24 × 47, 52 × 48 | |||
| Q | 5752 | 2572 | 3180 | 30 | 78 × 24, 28 × 25 | |||
| H | 5752 | 1972 | 3780 | 30 | 44 × 15, 82 × 16 | |||
| V36 | 161 | 6, 24, 50, 76, 102, 128, 154 | L | 6068 | 4868 | 1200 | 30 | 12 × 121, 28 × 122 |
| M | 6068 | 3828 | 2240 | 28 | 12 × 47, 68 × 48 | |||
| Q | 6068 | 2708 | 3360 | 30 | 92 × 24, 20 × 25 | |||
| H | 6068 | 2108 | 3960 | 30 | 4 × 15, 128 × 16 | |||
| V37 | 165 | 6, 28, 54, 80, 106, 132, 158 | L | 6392 | 5132 | 1260 | 30 | 34 × 122, 8 × 123 |
| M | 6392 | 3984 | 2408 | 28 | 58 × 46, 28 × 47 | |||
| Q | 6392 | 2852 | 3540 | 30 | 98 × 24, 20 × 25 | |||
| H | 6392 | 2192 | 4200 | 30 | 48 × 15, 92 × 16 | |||
| V38 | 169 | 6, 32, 58, 84, 110, 136, 162 | L | 6724 | 5404 | 1320 | 30 | 8 × 122, 36 × 123 |
| M | 6724 | 4204 | 2520 | 28 | 26 × 46, 64 × 47 | |||
| Q | 6724 | 3004 | 3720 | 30 | 96 × 24, 28 × 25 | |||
| H | 6724 | 2284 | 4440 | 30 | 84 × 15, 64 × 16 | |||
| V39 | 173 | 6, 26, 54, 82, 110, 138, 166 | L | 7064 | 5624 | 1440 | 30 | 40 × 117, 8 × 118 |
| M | 7064 | 4432 | 2632 | 28 | 80 × 47, 14 × 48 | |||
| Q | 7064 | 3164 | 3900 | 30 | 86 × 24, 44 × 25 | |||
| H | 7064 | 2444 | 4620 | 30 | 20 × 15, 134 × 16 | |||
| V40 | 177 | 6, 30, 58, 86, 114, 142, 170 | L | 7412 | 5912 | 1500 | 30 | 38 × 118, 12 × 119 |
| M | 7412 | 4668 | 2744 | 28 | 36 × 47, 62 × 48 | |||
| Q | 7412 | 3332 | 4080 | 30 | 68 × 24, 68 × 25 | |||
| H | 7412 | 2552 | 4860 | 30 | 40 × 15, 122 × 16 |
Parámetros derivados del código QR (ISO/IEC 18004:2006) mediante la aplicación del multiplicador de codificación de color HCC2D.
20. Tabla de parámetros HCC2D8 explícita
Los siguientes valores son los parámetros de versión HCC2D8. Son los totales completos HCC2D8 y las distribuciones de bloques.
| Vn | dim | align | EC | total | data | ec | ecpb | blocks |
|---|---|---|---|---|---|---|---|---|
| V1 | 21 | — | L | 78 | 57 | 21 | 7 | 3 × 19 |
| M | 78 | 48 | 30 | 10 | 3 × 16 | |||
| Q | 78 | 39 | 39 | 13 | 3 × 13 | |||
| H | 78 | 27 | 51 | 17 | 3 × 9 | |||
| V2 | 25 | 6, 18 | L | 132 | 102 | 30 | 10 | 3 × 34 |
| M | 132 | 84 | 48 | 16 | 3 × 28 | |||
| Q | 132 | 66 | 66 | 22 | 3 × 22 | |||
| H | 132 | 48 | 84 | 28 | 3 × 16 | |||
| V3 | 29 | 6, 22 | L | 210 | 165 | 45 | 15 | 3 × 55 |
| M | 210 | 132 | 78 | 26 | 3 × 44 | |||
| Q | 210 | 102 | 108 | 18 | 6 × 17 | |||
| H | 210 | 78 | 132 | 22 | 6 × 13 | |||
| V4 | 33 | 6, 26 | L | 300 | 240 | 60 | 20 | 3 × 80 |
| M | 300 | 192 | 108 | 18 | 6 × 32 | |||
| Q | 300 | 144 | 156 | 26 | 6 × 24 | |||
| H | 300 | 108 | 192 | 16 | 12 × 9 | |||
| V5 | 37 | 6, 30 | L | 402 | 324 | 78 | 26 | 3 × 108 |
| M | 402 | 258 | 144 | 24 | 6 × 43 | |||
| Q | 402 | 186 | 216 | 18 | 6 × 15, 6 × 16 | |||
| H | 402 | 138 | 264 | 22 | 6 × 11, 6 × 12 | |||
| V6 | 41 | 6, 34 | L | 516 | 408 | 108 | 18 | 6 × 68 |
| M | 516 | 324 | 192 | 16 | 12 × 27 | |||
| Q | 516 | 228 | 288 | 24 | 12 × 19 | |||
| H | 516 | 180 | 336 | 28 | 12 × 15 | |||
| V7 | 45 | 6, 22, 38 | L | 588 | 468 | 120 | 20 | 6 × 78 |
| M | 588 | 372 | 216 | 18 | 12 × 31 | |||
| Q | 588 | 264 | 324 | 18 | 6 × 14, 12 × 15 | |||
| H | 588 | 198 | 390 | 26 | 12 × 13, 3 × 14 | |||
| V8 | 49 | 6, 24, 42 | L | 726 | 582 | 144 | 24 | 6 × 97 |
| M | 726 | 462 | 264 | 22 | 6 × 38, 6 × 39 | |||
| Q | 726 | 330 | 396 | 22 | 12 × 18, 6 × 19 | |||
| H | 726 | 258 | 468 | 26 | 12 × 14, 6 × 15 | |||
| V9 | 53 | 6, 26, 46 | L | 876 | 696 | 180 | 30 | 6 × 116 |
| M | 876 | 546 | 330 | 22 | 9 × 36, 6 × 37 | |||
| Q | 876 | 396 | 480 | 20 | 12 × 16, 12 × 17 | |||
| H | 876 | 300 | 576 | 24 | 12 × 12, 12 × 13 | |||
| V10 | 57 | 6, 28, 50 | L | 1038 | 822 | 216 | 18 | 6 × 68, 6 × 69 |
| M | 1038 | 648 | 390 | 26 | 12 × 43, 3 × 44 | |||
| Q | 1038 | 462 | 576 | 24 | 18 × 19, 6 × 20 | |||
| H | 1038 | 366 | 672 | 28 | 18 × 15, 6 × 16 | |||
| V11 | 61 | 6, 30, 54 | L | 1212 | 972 | 240 | 20 | 12 × 81 |
| M | 1212 | 762 | 450 | 30 | 3 × 50, 12 × 51 | |||
| Q | 1212 | 540 | 672 | 28 | 12 × 22, 12 × 23 | |||
| H | 1212 | 420 | 792 | 24 | 9 × 12, 24 × 13 | |||
| V12 | 65 | 6, 32, 58 | L | 1398 | 1110 | 288 | 24 | 6 × 92, 6 × 93 |
| M | 1398 | 870 | 528 | 22 | 18 × 36, 6 × 37 | |||
| Q | 1398 | 618 | 780 | 26 | 12 × 20, 18 × 21 | |||
| H | 1398 | 474 | 924 | 28 | 21 × 14, 12 × 15 | |||
| V13 | 69 | 6, 34, 62 | L | 1596 | 1284 | 312 | 26 | 12 × 107 |
| M | 1596 | 1002 | 594 | 22 | 24 × 37, 3 × 38 | |||
| Q | 1596 | 732 | 864 | 24 | 24 × 20, 12 × 21 | |||
| H | 1596 | 540 | 1056 | 22 | 36 × 11, 12 × 12 | |||
| V14 | 73 | 6, 26, 46, 66 | L | 1743 | 1383 | 360 | 30 | 9 × 115, 3 × 116 |
| M | 1743 | 1095 | 648 | 24 | 12 × 40, 15 × 41 | |||
| Q | 1743 | 783 | 960 | 20 | 33 × 16, 15 × 17 | |||
| H | 1743 | 591 | 1152 | 24 | 33 × 12, 15 × 13 | |||
| V15 | 77 | 6, 26, 48, 70 | L | 1965 | 1569 | 396 | 22 | 15 × 87, 3 × 88 |
| M | 1965 | 1245 | 720 | 24 | 15 × 41, 15 × 42 | |||
| Q | 1965 | 885 | 1080 | 30 | 15 × 24, 21 × 25 | |||
| H | 1965 | 669 | 1296 | 24 | 33 × 12, 21 × 13 | |||
| V16 | 81 | 6, 26, 50, 74 | L | 2199 | 1767 | 432 | 24 | 15 × 98, 3 × 99 |
| M | 2199 | 1359 | 840 | 28 | 21 × 45, 9 × 46 | |||
| Q | 2199 | 975 | 1224 | 24 | 45 × 19, 6 × 20 | |||
| H | 2199 | 759 | 1440 | 30 | 9 × 15, 39 × 16 | |||
| V17 | 85 | 6, 30, 54, 78 | L | 2445 | 1941 | 504 | 28 | 3 × 107, 15 × 108 |
| M | 2445 | 1521 | 924 | 28 | 30 × 46, 3 × 47 | |||
| Q | 2445 | 1101 | 1344 | 28 | 3 × 22, 45 × 23 | |||
| H | 2445 | 849 | 1596 | 28 | 6 × 14, 51 × 15 | |||
| V18 | 89 | 6, 30, 56, 82 | L | 2703 | 2163 | 540 | 30 | 15 × 120, 3 × 121 |
| M | 2703 | 1689 | 1014 | 26 | 27 × 43, 12 × 44 | |||
| Q | 2703 | 1191 | 1512 | 28 | 51 × 22, 3 × 23 | |||
| H | 2703 | 939 | 1764 | 28 | 6 × 14, 57 × 15 | |||
| V19 | 93 | 6, 30, 58, 86 | L | 2973 | 2385 | 588 | 28 | 9 × 113, 12 × 114 |
| M | 2973 | 1881 | 1092 | 26 | 9 × 44, 33 × 45 | |||
| Q | 2973 | 1335 | 1638 | 26 | 51 × 21, 12 × 22 | |||
| H | 2973 | 1023 | 1950 | 26 | 27 × 13, 48 × 14 | |||
| V20 | 97 | 6, 34, 62, 90 | L | 3255 | 2583 | 672 | 28 | 9 × 107, 15 × 108 |
| M | 3255 | 2007 | 1248 | 26 | 9 × 41, 39 × 42 | |||
| Q | 3255 | 1455 | 1800 | 30 | 45 × 24, 15 × 25 | |||
| H | 3255 | 1155 | 2100 | 28 | 45 × 15, 30 × 16 | |||
| V21 | 101 | 6, 28, 50, 72, 94 | L | 3468 | 2796 | 672 | 28 | 12 × 116, 12 × 117 |
| M | 3468 | 2142 | 1326 | 26 | 51 × 42 | |||
| Q | 3468 | 1536 | 1932 | 28 | 51 × 22, 18 × 23 | |||
| H | 3468 | 1218 | 2250 | 30 | 57 × 16, 18 × 17 | |||
| V22 | 105 | 6, 26, 50, 74, 98 | L | 3774 | 3018 | 756 | 28 | 6 × 111, 21 × 112 |
| M | 3774 | 2346 | 1428 | 28 | 51 × 46 | |||
| Q | 3774 | 1704 | 2070 | 30 | 21 × 24, 48 × 25 | |||
| H | 3774 | 1326 | 2448 | 24 | 102 × 13 | |||
| V23 | 109 | 6, 30, 54, 78, 102 | L | 4092 | 3282 | 810 | 30 | 12 × 121, 15 × 122 |
| M | 4092 | 2580 | 1512 | 28 | 12 × 47, 42 × 48 | |||
| Q | 4092 | 1842 | 2250 | 30 | 33 × 24, 42 × 25 | |||
| H | 4092 | 1392 | 2700 | 30 | 48 × 15, 42 × 16 | |||
| V24 | 113 | 6, 28, 54, 80, 106 | L | 4422 | 3522 | 900 | 30 | 18 × 117, 12 × 118 |
| M | 4422 | 2742 | 1680 | 28 | 18 × 45, 42 × 46 | |||
| Q | 4422 | 1992 | 2430 | 30 | 33 × 24, 48 × 25 | |||
| H | 4422 | 1542 | 2880 | 30 | 90 × 16, 6 × 17 | |||
| V25 | 117 | 6, 32, 58, 84, 110 | L | 4764 | 3828 | 936 | 26 | 24 × 106, 12 × 107 |
| M | 4764 | 3000 | 1764 | 28 | 24 × 47, 39 × 48 | |||
| Q | 4764 | 2154 | 2610 | 30 | 21 × 24, 66 × 25 | |||
| H | 4764 | 1614 | 3150 | 30 | 66 × 15, 39 × 16 | |||
| V26 | 121 | 6, 30, 58, 86, 114 | L | 5118 | 4110 | 1008 | 28 | 30 × 114, 6 × 115 |
| M | 5118 | 3186 | 1932 | 28 | 57 × 46, 12 × 47 | |||
| Q | 5118 | 2262 | 2856 | 28 | 84 × 22, 18 × 23 | |||
| H | 5118 | 1788 | 3330 | 30 | 99 × 16, 12 × 17 | |||
| V27 | 125 | 6, 34, 62, 90, 118 | L | 5484 | 4404 | 1080 | 30 | 24 × 122, 12 × 123 |
| M | 5484 | 3384 | 2100 | 28 | 66 × 45, 9 × 46 | |||
| Q | 5484 | 2424 | 3060 | 30 | 24 × 23, 78 × 24 | |||
| H | 5484 | 1884 | 3600 | 30 | 36 × 15, 84 × 16 | |||
| V28 | 129 | 6, 26, 50, 74, 98, 122 | L | 5763 | 4593 | 1170 | 30 | 9 × 117, 30 × 118 |
| M | 5763 | 3579 | 2184 | 28 | 9 × 45, 69 × 46 | |||
| Q | 5763 | 2613 | 3150 | 30 | 12 × 24, 93 × 25 | |||
| H | 5763 | 1983 | 3780 | 30 | 33 × 15, 93 × 16 | |||
| V29 | 133 | 6, 30, 54, 78, 102, 126 | L | 6153 | 4893 | 1260 | 30 | 21 × 116, 21 × 117 |
| M | 6153 | 3801 | 2352 | 28 | 63 × 45, 21 × 46 | |||
| Q | 6153 | 2733 | 3420 | 30 | 3 × 23, 111 × 24 | |||
| H | 6153 | 2103 | 4050 | 30 | 57 × 15, 78 × 16 | |||
| V30 | 137 | 6, 26, 52, 78, 104, 130 | L | 6555 | 5205 | 1350 | 30 | 15 × 115, 30 × 116 |
| M | 6555 | 4119 | 2436 | 28 | 57 × 47, 30 × 48 | |||
| Q | 6555 | 2955 | 3600 | 30 | 45 × 24, 75 × 25 | |||
| H | 6555 | 2235 | 4320 | 30 | 69 × 15, 75 × 16 | |||
| V31 | 141 | 6, 30, 56, 82, 108, 134 | L | 6969 | 5529 | 1440 | 30 | 39 × 115, 9 × 116 |
| M | 6969 | 4365 | 2604 | 28 | 6 × 46, 87 × 47 | |||
| Q | 6969 | 3099 | 3870 | 30 | 126 × 24, 3 × 25 | |||
| H | 6969 | 2379 | 4590 | 30 | 69 × 15, 84 × 16 | |||
| V32 | 145 | 6, 34, 60, 86, 112, 138 | L | 7395 | 5865 | 1530 | 30 | 51 × 115 |
| M | 7395 | 4623 | 2772 | 28 | 30 × 46, 69 × 47 | |||
| Q | 7395 | 3345 | 4050 | 30 | 30 × 24, 105 × 25 | |||
| H | 7395 | 2535 | 4860 | 30 | 57 × 15, 105 × 16 | |||
| V33 | 149 | 6, 30, 58, 86, 114, 142 | L | 7833 | 6213 | 1620 | 30 | 51 × 115, 3 × 116 |
| M | 7833 | 4893 | 2940 | 28 | 42 × 46, 63 × 47 | |||
| Q | 7833 | 3513 | 4320 | 30 | 87 × 24, 57 × 25 | |||
| H | 7833 | 2703 | 5130 | 30 | 33 × 15, 138 × 16 | |||
| V34 | 153 | 6, 34, 62, 90, 118, 146 | L | 8283 | 6573 | 1710 | 30 | 39 × 115, 18 × 116 |
| M | 8283 | 5175 | 3108 | 28 | 42 × 46, 69 × 47 | |||
| Q | 8283 | 3693 | 4590 | 30 | 132 × 24, 21 × 25 | |||
| H | 8283 | 2883 | 5400 | 30 | 177 × 16, 3 × 17 | |||
| V35 | 157 | 6, 30, 54, 78, 102, 126, 150 | L | 8628 | 6918 | 1710 | 30 | 36 × 121, 21 × 122 |
| M | 8628 | 5436 | 3192 | 28 | 36 × 47, 78 × 48 | |||
| Q | 8628 | 3858 | 4770 | 30 | 117 × 24, 42 × 25 | |||
| H | 8628 | 2958 | 5670 | 30 | 66 × 15, 123 × 16 | |||
| V36 | 161 | 6, 24, 50, 76, 102, 128, 154 | L | 9102 | 7302 | 1800 | 30 | 18 × 121, 42 × 122 |
| M | 9102 | 5742 | 3360 | 28 | 18 × 47, 102 × 48 | |||
| Q | 9102 | 4062 | 5040 | 30 | 138 × 24, 30 × 25 | |||
| H | 9102 | 3162 | 5940 | 30 | 6 × 15, 192 × 16 | |||
| V37 | 165 | 6, 28, 54, 80, 106, 132, 158 | L | 9588 | 7698 | 1890 | 30 | 51 × 122, 12 × 123 |
| M | 9588 | 5976 | 3612 | 28 | 87 × 46, 42 × 47 | |||
| Q | 9588 | 4278 | 5310 | 30 | 147 × 24, 30 × 25 | |||
| H | 9588 | 3288 | 6300 | 30 | 72 × 15, 138 × 16 | |||
| V38 | 169 | 6, 32, 58, 84, 110, 136, 162 | L | 10086 | 8106 | 1980 | 30 | 12 × 122, 54 × 123 |
| M | 10086 | 6306 | 3780 | 28 | 39 × 46, 96 × 47 | |||
| Q | 10086 | 4506 | 5580 | 30 | 144 × 24, 42 × 25 | |||
| H | 10086 | 3426 | 6660 | 30 | 126 × 15, 96 × 16 | |||
| V39 | 173 | 6, 26, 54, 82, 110, 138, 166 | L | 10596 | 8436 | 2160 | 30 | 60 × 117, 12 × 118 |
| M | 10596 | 6648 | 3948 | 28 | 120 × 47, 21 × 48 | |||
| Q | 10596 | 4746 | 5850 | 30 | 129 × 24, 66 × 25 | |||
| H | 10596 | 3666 | 6930 | 30 | 30 × 15, 201 × 16 | |||
| V40 | 177 | 6, 30, 58, 86, 114, 142, 170 | L | 11118 | 8868 | 2250 | 30 | 57 × 118, 18 × 119 |
| M | 11118 | 7002 | 4116 | 28 | 54 × 47, 93 × 48 | |||
| Q | 11118 | 4998 | 6120 | 30 | 102 × 24, 102 × 25 | |||
| H | 11118 | 3828 | 7290 | 30 | 60 × 15, 183 × 16 |
Parámetros derivados del código QR (ISO/IEC 18004:2006) mediante la aplicación del multiplicador de codificación de color HCC2D.
21. Nota de publicación
Esta especificación intencionalmente no republica el contenido de finder pattern, alignment pattern, timing pattern, corrección de errores o mask rules asociados con QR Code. Para las partes reutilizadas, solo indica que siguen las mismas estructuras usadas por QR Code, o estructuras compatibles con ISO/IEC 18004:2006, y luego especifica completamente las partes específicas de HCC2D y las tablas de parámetros HCC2D.
En consecuencia, este documento debe leerse como:
- completo para el comportamiento específico de HCC2D
- intencionalmente no exhaustivo para evitar republicar información relativa a componentes de los códigos QR
- normativo junto con las especificaciones de los códigos QR, para la definición de los componentes de los códigos QR reutilizados por los códigos HCC2D
Anexo A — Ejemplos ilustrativos
Los siguientes símbolos son códigos de barras HCC2D conformes a esta especificación. Cada símbolo puede ser escaneado con la aplicación oficial HCC2D Decoder. Las figuras se han renderizado a 0,80 mm por módulo. Esto corresponde al tamaño físico en la página impresa cuando la versión PDF de esta especificación se imprime al 100% en papel.
Los siguientes símbolos codifican Tintern Abbey de William Wordsworth (6.900 bytes, contenedor HCC2DF con compresión zlib), demostrando la capacidad HCC2D para textos largos.
— Fin de la Especificación —