«Код Хань Синь» (汉信码 на китайском языке, «китайский код») — это Barcode#Matrix_(2D)_codes|двумерная (2D) матричная символика штрих-кода, изобретенная в 2007 году
Основным преимуществом (и требованием изобретения), сравнимым с QR-кодом, является встроенная возможность кодировать в QR-коде китайские символы вместо японских. Код Хань Синь в максимальной версии 84 (размер 189×189)
Кроме того, код Хань Синь может кодировать символы Юникода из других языков в специальном режиме Юникода
==История и стандарты==
Китайская компания Центр нумерации товаров Китая (中国物品编码中心) во время 10-й пятилетки Китая приступила к исследованиям
В 2011 году
В 2015 году группа ISO/IEC JTC 1/SC 31 приступила к внедрению
В 2022 году стандарт кода, ориентированный на китайский язык, был пересмотрен как GB/T 21049-2022
В Ведомстве по патентам и товарным знакам США зарегистрирован ряд патентов, связанных с кодированием и декодированием кода Хань Синь:
*Европейское патентное ведомство EP3330887B1 компании Fujian Landi Commercial Equipment Co Ltd «Метод и система обнаружения шаблонов характеристик кода, чувствительных к китайскому языку» *Патент США US10095903B2 компании Ingenico Fujian Technology Co Ltd «Способ и система блочного декодирования для двумерного кода» *Патент США US10528781B2 компании Ingenico Fujian Technology Co Ltd «Метод и система обнаружения характерных структур кодов Хань Синь»
==Приложение==
Код Хань Синь можно использовать так же, как QR_code#Uses|QR-код. В настоящее время код Хань Синь используется в основном в Китае
Основные преимущества кода Хань Синь:
* возможность кодировать китайские иероглифы с помощью встроенных методов * Поддержка расширенной интерпретации каналов;
* встроенный метод компактной кодировки UTF-8 со встроенным сжатием без потерь;
* встроенный метод для компактного кодирования Uniform_Resource_Identifier|URI;
* компактное кодирование данных идентификаторов приложений GS1, сравнимое с QR-кодом;
* Полная поддержка ISO/IEC 646 для компактного цифрового и текстового кодирования.
==Дизайн штрих-кода==
Код Хань Синь представляет данные в черно-белых квадратных модулях, где темный модуль — двоичный, а светлый — ноль. Кроме того, код Хань Синь может быть закодирован инверсными цветами
Размер = 23 + (Версия – 1) * 2
Кодовый символ Хань Синь состоит из следующих элементов * Тихая зона – окружает символ со всех четырех сторон как минимум в 3-кратном размере;
* Шаблон поиска – состоит из 4 шаблонов обнаружения положения, которые размещаются во всех четырех углах символа и используются для определения положения и области символа;
* Шаблоны выравнивания и Шаблоны выравнивания помощника – запускаются с версии 4 и помогают при декодировании искаженного кода;
* Области структурной информации – окружают все четыре шаблона Finder и используются для кодирования параметров символов, таких как версия, маска и режим исправления ошибок;
* Области данных – замаскированные двоичные данные, закодированные в черно-белых модулях.
===Шаблон поиска===
Шаблон поиска
Коэффициент сканирования каждого шаблона определения положения составляет 1:1:1:1:3 или 3:1:1:1:1 (зависит от направления сканирования). Ориентация четырех шаблонов позволяет однозначно определить местоположение и ориентацию штрих-кода.
Каждый шаблон имеет разделитель шаблона определения позиции
===Шаблон выравнивания===
Шаблоны выравнивания * Шаблон выравнивания – набор ступенчатых линий выравнивания;
* Шаблон выравнивания помощника - 6 модулей, в том числе 5 светлых модулей и 1 темный модуль.
Шаблон выравнивания состоит из темной линии и прилегающей снизу светлой линии шириной в один модуль. Шаблон выравнивания помощника, состоящий из 5 светлых модулей и 1 темного модуля, указывает на край блока региона с его темным модулем.
Ниже вы можете увидеть примеры кода Хань Синь с различным размещением шаблонов выравнивания.
===Структурная информация===
Область структурной информации кода Хань Синь
Область структурной информации кодирует следующие данные * Версия + 20 (биты 0 - 7);
* Уровень коррекции ошибок (биты 8 - 9);
* Индекс маски (биты 10 - 11);
* Коррекция ошибок Данные коррекции ошибок Рида-Соломона (биты 12–27);
* Биты 28–33 игнорируются и могут быть любыми (иногда они могут быть заполнены последовательностью белого, черного цвета).
Биты метаданных от 0 до 11 разбиваются на 4-битные тетрады (m2, m1, m0) и дополняются четырьмя тетрадами исправления ошибок (r3, r2, r1, r0).
===Маскировка данных===
Чтобы сделать соотношение темных и светлых модулей кода Хань Синь в символе близким к 1:1, необходимо использовать алгоритм маскировки
i - Индекс строки символа.
j - Индекс столбца символа.
И i, и j начинаются с (1,1), верхнего левого угла символа. Если условие маскирования истинно, результирующий бит маски равен 1.
===Исправление ошибок===
Код Хань Синь использует коррекцию ошибок Рида – Соломона. Закодированные данные представляются в виде байтового (8-битного) массива. Массив данных, разделенный на блоки
Полиномиальная арифметика для кода Хань Синь использует конечное поле | полином генерации конечного поля: x^8 + x^6 + x^5 + x (355 или 101100011b)
Количество кодовых слов исправления ошибок зависит от версии символа и уровня исправления ошибок и может составлять от 16% до 60%, что позволяет исправить от 8% до 30% повреждений.
===Область данных===
Данные кода Хань Синь кодируются как массив байтов. Массив байтов данных разбивается на блоки коррекции ошибок, куда добавляются кодовые слова (байты) коррекции ошибок. Блоки коррекции ошибок объединены в один массив кодовых слов
(массив кодированных байтов) => (блок исправления ошибок 1) + ... + (блок исправления ошибок N) => (массив кодовых слов)
В качестве примера это можно продемонстрировать на коде Хань Синь версии 5 с уровнем исправления ошибок L4. Он имеет 27 кодированных кодовых слов и 2 блока исправления ошибок, каждый размер блока кодовых слов данных и кодовых слов исправления ошибок: (14, 20), (13, 22):
(Д1...Д14, Д15...Д27) => (Д1...Д14, Е1.1...1.20) + (Д15...Д27, Е2.1...2.22) => (Д1 ...Д14, Е1.1...1.20, Д15...Д27, Е2.1...2.22) => (C1...C69)
D(x) — Кодовые слова данных.
E(b.x) — кодовое слово ошибки, где b — номер блока и позиция x в блоке.
C(x) — полученные кодовые слова.
Следующей операцией полученный массив кодовых слов C(x) разбивается на блоки размером 13 байт, которые соединяют кодовые слова в одной и той же позиции каждого блока и формируют новый массив кодовых слов. Результатом является массив байтов того же размера, но смешанный по позиции 13.
(С1...С13, С14...С26, Сn...Cn+12) => (С1, C14, Cn...С13, С26, Cn+12) => (CM1...CMn+12 )
CM(x) – смешанный по позициям массив из 13 кодовых слов (байт).
После верхних операций полученные кодовые слова помещаются в область данных построчно слева направо и сверху вниз. Повреждение горизонтальной линии повлияет на меньшее количество кодовых слов, повреждение вертикальной линии повлияет на большее количество кодовых слов.
==Кодировка==
Код Хань Синь может кодировать 7827 цифровых символов, 4350 английских текстовых символов, 3261 байт и 1044–2174 китайских символа в максимальной версии 84
===Режимы кодирования===
Все режимы кодирования можно разделить на следующие группы * Числовой режим, включающий кодировку цифр: 0 – 9;
* Текстовый режим, поддерживающий полный набор символов ISO/IEC 646;
* Двоичный (байтовый) режим, который кодирует значения байтов от 0 до 255;
* Режимы китайских символов, которые кодируют 1587600 различных китайских символов из кодовой страницы GB 18030 в 4 режимах;
* Кодировка Unicode с расширенной канальной интерпретацией | Режим расширенной канальной интерпретации (ECI);
* Юникод с адаптивным режимом Юникод, который кодирует кодировку UTF-8 со встроенным Lossless_compression|сжатием без потерь;
* Режим GS1, в котором кодируются данные идентификаторов приложений GS1;
* Режим URI, который кодирует ссылки Uniform_Resource_Identifier|URI в компактной кодировке.
===Числовой режим===
Строка входных данных в числовом режиме
Например, нам нужно закодировать последовательность цифр 12700402:
Префикс => 0001b
127 => 0001111111
004 => 0000000100
02 => 0000000010
Терминатор => 1111111110b
===Текстовый режим===
Текстовый режим кодирует набор символов данных из ISO/IEC 646. Каждый символ представлен 6 битами
===Режим двоичных байтов===
Двоичный режим кодирует массив байтов [0 – 255] в любой форме. Двоичный режим
===Режимы китайских иероглифов===
Режимы китайских символов представляют собой набор из 4 режимов, которые кодируют китайские символы из кодовой страницы GB 18030.
===Режим Unicode===
Режим Юникода
Короче говоря, режим Unicode ищет подстраницы символов, которые могут иметь одинаковую последовательность префиксов для всех символов одного и того же языка (кириллица, греческий, французский, немецкий… языки) и кодирует только отличия от последовательности байтов префикса.
===Режим GS1===
Код Хань Синь, режим GS1 mode в символе и закодированные данные должны быть возвращены с флагом GS1. (если требуется) должен быть закодирован как 1111101000b в числовом режиме (числовой режим кодирует только три цифры, поэтому значение 1111101000b => 1000 считается специальным символом). Если необходимо вставить идентификатор и кодер находится в любом режиме, отличном от числового, этот режим необходимо завершить и запустить числовой режим. Индикатор режима GS1 — 11100001b, а терминатор режима GS1 — 11111111b.
Данные в режиме GS1 разбиваются на каналы идентификаторов приложений GS1, а затем сжимаются с использованием лучших режимов. Например, могут быть закодированы следующие данные:
(10)123456ABC(240)ДАННЫЕ
Данные кодируются следующим образом:
===Режим URI===
Режим URI кода Хань Синь
В подрежиме Percent-Encoding данные %XX кодируются в 8-битной последовательности. Режим не требует терминатора. Для кодирования данных URI %XX в этом режиме необходимо добавить индикатор подрежима (100b), затем добавить 8-битный индикатор последовательности 8 бит подрежима (счетчик = длина %XX / 3) и после этой последовательности , где %FF, %ff или %00 необходимо добавить как байты xFF или x00.
==См. также==
* Автоматическая идентификация и сбор данных (AIDC)
* Штрих-код
* Расширенная интерпретация каналов
* Национальные стандарты Китайской Народной Республики | Национальный стандарт GB
* GS1
* QR-код
* [https://products.aspose.app/barcode/generate/hanxin Бесплатный генератор кода Хань Синь]
* [https://products.aspose.app/barcode/распознавать бесплатный считыватель кода Хань Синь]
* [https://barcodeguide.seagullscientific. ... an_Xin.htm описание кода Хань Синя]
Автоматическая идентификация и сбор данных
Штрих-коды
Кодировки
Информационные технологии в Китае
Наука и технологии в Китае
Подробнее: https://en.wikipedia.org/wiki/Han_Xin_code
Хан Икс в коде ⇐ Васина Википедия
-
Автор темыwiki_en
- Всего сообщений: 93196
- Зарегистрирован: 16.01.2024
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
Мобильная версия