'''DotCode''' — это коды Barcode#Matrix (2D)|двумерный (2D) матричный штрих-код, изобретенный в 2008 году
DotCode можно представить в виде прямоугольного массива с минимальным размером каждой стороны 5X точек. Максимальный размер DotCode не ограничен стандартом
Являясь расширением штрих-кода Code 128, DotCode обеспечивает более компактное кодирование 8-битного массива данных и поддержку Unicode с функцией расширенной интерпретации канала. Кроме того, DotCode обеспечивает гораздо большую плотность данных и коррекцию ошибок Рида-Соломона, что позволяет восстанавливать частично поврежденный штрих-код. Однако основная реализация DotCode, как и Code 128, представляет собой эффективное кодирование данных GS1
==История и стандарты==
Штрих-код DotCode был изобретен в 2008 году доктором Эндрю Лонгакром из компании Hand Held Products и стандартизирован в 2009 году
Зарегистрирован ряд патентов, связанных с кодированием и декодированием DotCode:
* Патент США US20090200386A1 компании Hand Held Products Inc «Машиночитаемая двухмерная символика с возможностью печати по требованию»
* Патент США US20090200386A1 компании Datalogic IP Tech SRL «Система и метод извлечения данных битового потока в двумерных оптических кодах» * Патент Китая CN113297872A компании Fuzhou Symbol Information Technology Co Ltd «Метод и оборудование для идентификации точечного кода»
==Приложение==
Штрих-код DotCode можно использовать так же, как код 128 или любой (2D) матричный штрих-код. В настоящее время он используется в основном для кодирования данных GS1 в табачной промышленности|табак,
Основные преимущества DotCode: * Полная поддержка и замена кодового набора Code 128;
* Компактное кодирование байтового|8-битного массива данных;
* Поддержка Unicode с функцией расширенной интерпретации каналов;
* Эффективное кодирование данных GS1;
* Исправление ошибок Рида-Соломона
* Возможность нанесения штрих-кода с помощью высокоскоростных промышленных принтеров и других методов, таких как лазерная гравировка.
==Дизайн штрих-кода==
DotCode представляет данные в прямоугольной структуре, состоящей из черных круглых точек и пробелов на белом фоне или белых круглых точек на черном фоне. DotCode не имеет шаблона поиска, как другие 2D-штрих-коды, и его необходимо обнаруживать с помощью медленных алгоритмов обнаружения капель |
Вот несколько примеров DotCode:
Символ DotCode состоит из следующих элементов: * Два бита маски, которые на схеме представлены двумя зелеными точками;
* Биты данных (биты данных и исправления ошибок), которые необходимо считывать сверху вниз (четная сторона штрих-кода) и слева направо (нечетная сторона штрих-кода);
* Угловые точки, отмеченные на диаграмме красным цветом, которые можно использовать в качестве битов данных или битов заполнения (черные точки);
* Тихая зона как минимум в 3 раза превышает размер точек.
Массив битов DotCode представлен как:
''(Два бита маски: M2, M1)(Биты данных)(Угловые биты, могут быть битами данных или заполнения: C1 – C6)''
Кодовые слова данных в диапазоне 0–112 закодированы в виде двоичных точечных шаблонов 5 из 9
''(2 бита маски)(Кодовые слова данных по 9 бит каждое)(биты заполнения 0–8 бит)''
К размеру DotCode предъявляются следующие требования: * Сумма ширины и высоты DotCode должна быть нечетной: (W + H)\pmod{2} = 1;
* Минимальный размер каждой стороны должен быть 5, максимальный не ограничен;
* Рекомендуется использовать ширину и высоту, чтобы иметь как минимум 6 заполняющих черных битов, где емкость битов данных зависит от деления на 9 больше или равно 6:
===Маскировка данных===
Чтобы свести к минимуму проблемные символы DotCode, кодовые слова данных маскируются для создания других визуальных последовательностей. Шаблон маски применяется только к последовательности данных и не влияет на кодовые слова исправления ошибок. Стандарт DotCode имеет 4 шаблона маски, которые закодированы в 2 бита и помещены в первые 2 бита массива битов символов.
===Исправление ошибок===
DotCode использует коррекцию ошибок Рида-Соломона
NC = 3 + (ND / 2),
где ND — кодовые слова данных, а NC — кодовые слова коррекции ошибок.
Результирующие кодовые слова NW с кодовыми словами исправления ошибок:
NW = (1 + ND) + NC,
где NW — все кодовые слова кодирования: 1 кодовое слово маски + кодовые слова данных (ND) + кодовые слова исправления ошибок (NC).
Поскольку коррекция ошибок Рида-Соломона не может исправить количество кодовых слов, превышающее полиномиальное, если NW превышает 112, данные разбиваются на блоки исправления ошибок:
B = (NW + 111) / 112,
где B — количество блоков.
Данные можно разделить на блоки следующим образом: для каждого блока «n», для n равно 1 до B:
# ND(block) = ((1+ND) - (n-1) + (B-1)) / B
# NW(блок) = (NW - (n-1) + (B-1)) / B
# NC(блок) = NW(блок) - ND(блок)
Все блоки коррекции ошибок объединены в один битовый поток:
''(Блок_1) + ... + (Блок_n)''
==Кодировка==
Размер кодирования DotCode не ограничен стандартом, но практический размер кодирования в версии 100x99, которая включает 4950 точек, может кодировать 366 кодовых слов необработанных данных, 730 цифр, 365 буквенно-цифровых символов или 304 байта. Сообщение данных в DotCode представлено кодовыми словами данных от 0 до 112, которые закодированы двоичными точечными шаблонами 5 из 9.
DotCode поддерживает следующие функции: * Встроенное кодирование цифр или кодировки ASCII (от 0 до 127) с наборами кодов A, B и C и расширенными значениями ASCII (от 128 до 255) с верхним сдвигом;
* Эффективно кодирует байты (5 байт в 6 кодовых слов) с помощью двоичной защелки;
* Кодирует данные GS1;
* Кодирует символы Unicode с функцией расширенной интерпретации каналов;
* Поддерживает структурированное добавление кодирования (логическое использование нескольких символов штрих-кода как одного потока данных);
* Поддерживает кодировку «Макро».
При запуске кодирования сообщения существуют три основных правила:
* Начальной кодировкой по умолчанию является набор кодов C;
* Если две цифры в кодовом наборе C (значение 0–100) закодированы в позиции первого кодового слова, сообщение декодируется как сообщение GS1;
* Если FNC1 (эффект, противоположный коду 128) или другое нецифровое кодовое слово (101–112) закодировано в позиции первого кодового слова, сообщение декодируется как сообщение NON GS1.
===Двоичное байтовое кодирование===
DotCode может кодировать полную 8-битную кодировку двумя способами: * С верхним сдвигом, для которого требуется 2 кодовых слова на один символ (от 128 до 255);
* С двоичной защелкой, для которой требуется 1 символ двоичной защелки и 6 кодовых слов на каждые 5 байтов.
Режимы Upper Shift могут кодировать (от 128 до 255) расширенные символы ASCII двумя кодовыми словами с возвратом в предыдущий режим:
Режим двоичной защелки может кодировать 8-битную кодировку и последовательности ECI от 1 до 5 символов. Он использует следующие правила:
* Данные разбиваются на блоки из 5 символов (байт или идентификатор режима ECI) или 6 кодовых слов;
* Значения 0–258 преобразуются по системе счисления из пяти значений по основанию 259 в шесть значений по основанию 103;
* Значения 0–255 являются байтовыми значениями;
* 256, 257 или 258 значений обозначают кодировку последовательности ECI в следующих 1, 2 или 3 байтах соответственно;
* Любые кодовые слова DotCode в закодированной последовательности выше 102 (от 103 до 112) прерывают или меняют режим.
Как мы видим из следующей таблицы, Binary Latch более эффективно кодирует данные, начиная с 3 байтов.
===ECI-кодирование ===
DotCode может кодировать индикатор Extended Channel Interpretation|ECI двумя способами: * В режиме двоичной фиксации (см. выше);
* С символом FNC2.
FNC2 в любой позиции, кроме конца данных, сигнализирует о вставке последовательности ECI – «\nnnnnn», которая представляет значения от 000000 до 811799. Значения могут быть закодированы в 1 или 3 кодовых словах:
* В случае следующего кодового слова < 40 напрямую кодируется значение ECI от 000000 до 000039;
* В противном случае следующие три кодовых слова со значениями A, B и C кодируют значение ECI (A - 40) * 12769 + B * 113 + C + 40.
===Кодировка GS1 ===
Любые две цифры в позиции первого кодового слова идентифицируют символ как закодированный GS1 (в отличие от кода 128). В случае, если символ с двумя цифрами в позиции первого кодового слова должен быть декодирован как обычные данные, FNC1 (опущенный в декодированном сообщении) должен быть вставлен на место первого кодового слова.
Кодовое слово 100 в кодовом наборе C кодирует приложение GS1 AI (17) следующие 3 кодовых слова являются датой истечения срока действия и вставляют GS1 AI (10) перед декодированием других кодовых слов:
''(100)(24)(12)(30)(56)(64) -> 17241230105664''
===Режим макросов===
Некоторые кодовые слова данных 97–100 в ведущей позиции данных в кодовом наборе B могут кодировать «макросы».
''(Защелка B)(HT) -> [)>RS05GS … RSeoT''
''(Shift B)(HT) -> [)>RS05GS … RSeoT''
===Структурированное добавление===
DotCode может создавать составные символы, в которых данные из нескольких символов DotCode могут быть логически объединены. Это можно сделать с помощью символа FNC2 в последней позиции данных. Когда FNC2 находится в конечной позиции данных,
===Кодирование специальных режимов===
FNC3 в первой позиции кодового слова указывает на то, что сообщение
FNC3 в любом положении, кроме первого, указывает, что закодированное сообщение должно быть логически разделено на два отдельных сообщения (до и после него);
===Заполнение данных===
Количество кодовых слов символов DotCode:
NW = ((H * W) / 2 - 2) \pmod{9})
Емкость кодовых слов данных символа DotCode:
ND = (NW - 3) - (NW - 3) / 3
Таким образом, нам нужно дополнить кодовые слова данных в случае наличия свободного места. Существует два правила: * Двоичный режим должен быть завершен с помощью Latch to Code Set A (кодовое слово 109);
* В других режимах необходимо использовать кодовое слово 106 (фиксация набора кодов C/фиксация набора кодов B).
==См. также==
* Автоматическая идентификация и сбор данных (AIDC)
* Штрих-код
* Код 128
* Расширенная интерпретация каналов
* ГС1
* Ручные изделия
* [https://patents.google.com/patent/US8011596B2 патент DotCode]
* [https://products.aspose.app/barcode/generate/dotcode Бесплатный генератор DotCode]
* [https://products.aspose.app/barcode/recouncer Free DotCode Reader]
Автоматическая идентификация и сбор данных
Штрих-коды
Кодировки
ДотКод ⇐ Васина Википедия
Новости с планеты OGLE-2018-BLG-0677
Что вы не только не знали, но и не хотели знать
Что вы не только не знали, но и не хотели знать
1712743656
wiki_en
'''DotCode''' — это коды Barcode#Matrix (2D)|двумерный (2D) матричный штрих-код, изобретенный в 2008 году
DotCode можно представить в виде прямоугольного массива с минимальным размером каждой стороны 5X точек. Максимальный размер DotCode не ограничен стандартом
Являясь расширением штрих-кода Code 128, DotCode обеспечивает более компактное кодирование 8-битного массива данных и поддержку Unicode с функцией расширенной интерпретации канала. Кроме того, DotCode обеспечивает гораздо большую плотность данных и коррекцию ошибок Рида-Соломона, что позволяет восстанавливать частично поврежденный штрих-код. Однако основная реализация DotCode, как и Code 128, представляет собой эффективное кодирование данных GS1
==История и стандарты==
Штрих-код DotCode был изобретен в 2008 году доктором Эндрю Лонгакром из компании Hand Held Products и стандартизирован в 2009 году
Зарегистрирован ряд патентов, связанных с кодированием и декодированием DotCode:
* Патент США US20090200386A1 компании Hand Held Products Inc «Машиночитаемая двухмерная символика с возможностью печати по требованию»
* Патент США US20090200386A1 компании Datalogic IP Tech SRL «Система и метод извлечения данных битового потока в двумерных оптических кодах» * Патент Китая CN113297872A компании Fuzhou Symbol Information Technology Co Ltd «Метод и оборудование для идентификации точечного кода»
==Приложение==
Штрих-код DotCode можно использовать так же, как код 128 или любой (2D) матричный штрих-код. В настоящее время он используется в основном для кодирования данных GS1 в табачной промышленности|табак,
Основные преимущества DotCode: * Полная поддержка и замена кодового набора Code 128;
* Компактное кодирование байтового|8-битного массива данных;
* Поддержка Unicode с функцией расширенной интерпретации каналов;
* Эффективное кодирование данных GS1;
* Исправление ошибок Рида-Соломона
* Возможность нанесения штрих-кода с помощью высокоскоростных промышленных принтеров и других методов, таких как лазерная гравировка.
==Дизайн штрих-кода==
DotCode представляет данные в прямоугольной структуре, состоящей из черных круглых точек и пробелов на белом фоне или белых круглых точек на черном фоне. DotCode не имеет шаблона поиска, как другие 2D-штрих-коды, и его необходимо обнаруживать с помощью медленных алгоритмов обнаружения капель |
Вот несколько примеров DotCode:
Символ DotCode состоит из следующих элементов: * Два бита маски, которые на схеме представлены двумя зелеными точками;
* Биты данных (биты данных и исправления ошибок), которые необходимо считывать сверху вниз (четная сторона штрих-кода) и слева направо (нечетная сторона штрих-кода);
* Угловые точки, отмеченные на диаграмме красным цветом, которые можно использовать в качестве битов данных или битов заполнения (черные точки);
* Тихая зона как минимум в 3 раза превышает размер точек.
Массив битов DotCode представлен как:
''(Два бита маски: M2, M1)(Биты данных)(Угловые биты, могут быть битами данных или заполнения: C1 – C6)''
Кодовые слова данных в диапазоне 0–112 закодированы в виде двоичных точечных шаблонов 5 из 9
''(2 бита маски)(Кодовые слова данных по 9 бит каждое)(биты заполнения 0–8 бит)''
К размеру DotCode предъявляются следующие требования: * Сумма ширины и высоты DotCode должна быть нечетной: (W + H)\pmod{2} = 1;
* Минимальный размер каждой стороны должен быть 5, максимальный не ограничен;
* Рекомендуется использовать ширину и высоту, чтобы иметь как минимум 6 заполняющих черных битов, где емкость битов данных зависит от деления на 9 больше или равно 6:
===Маскировка данных===
Чтобы свести к минимуму проблемные символы DotCode, кодовые слова данных маскируются для создания других визуальных последовательностей. Шаблон маски применяется только к последовательности данных и не влияет на кодовые слова исправления ошибок. Стандарт DotCode имеет 4 шаблона маски, которые закодированы в 2 бита и помещены в первые 2 бита массива битов символов.
===Исправление ошибок===
DotCode использует коррекцию ошибок Рида-Соломона
NC = 3 + (ND / 2),
где ND — кодовые слова данных, а NC — кодовые слова коррекции ошибок.
Результирующие кодовые слова NW с кодовыми словами исправления ошибок:
NW = (1 + ND) + NC,
где NW — все кодовые слова кодирования: 1 кодовое слово маски + кодовые слова данных (ND) + кодовые слова исправления ошибок (NC).
Поскольку коррекция ошибок Рида-Соломона не может исправить количество кодовых слов, превышающее полиномиальное, если NW превышает 112, данные разбиваются на блоки исправления ошибок:
B = (NW + 111) / 112,
где B — количество блоков.
Данные можно разделить на блоки следующим образом: для каждого блока «n», для n равно 1 до B:
# ND(block) = ((1+ND) - (n-1) + (B-1)) / B
# NW(блок) = (NW - (n-1) + (B-1)) / B
# NC(блок) = NW(блок) - ND(блок)
Все блоки коррекции ошибок объединены в один битовый поток:
''(Блок_1) + ... + (Блок_n)''
==Кодировка==
Размер кодирования DotCode не ограничен стандартом, но практический размер кодирования в версии 100x99, которая включает 4950 точек, может кодировать 366 кодовых слов необработанных данных, 730 цифр, 365 буквенно-цифровых символов или 304 байта. Сообщение данных в DotCode представлено кодовыми словами данных от 0 до 112, которые закодированы двоичными точечными шаблонами 5 из 9.
DotCode поддерживает следующие функции: * Встроенное кодирование цифр или кодировки ASCII (от 0 до 127) с наборами кодов A, B и C и расширенными значениями ASCII (от 128 до 255) с верхним сдвигом;
* Эффективно кодирует байты (5 байт в 6 кодовых слов) с помощью двоичной защелки;
* Кодирует данные GS1;
* Кодирует символы Unicode с функцией расширенной интерпретации каналов;
* Поддерживает структурированное добавление кодирования (логическое использование нескольких символов штрих-кода как одного потока данных);
* Поддерживает кодировку «Макро».
При запуске кодирования сообщения существуют три основных правила:
* Начальной кодировкой по умолчанию является набор кодов C;
* Если две цифры в кодовом наборе C (значение 0–100) закодированы в позиции первого кодового слова, сообщение декодируется как сообщение GS1;
* Если FNC1 (эффект, противоположный коду 128) или другое нецифровое кодовое слово (101–112) закодировано в позиции первого кодового слова, сообщение декодируется как сообщение NON GS1.
===Двоичное байтовое кодирование===
DotCode может кодировать полную 8-битную кодировку двумя способами: * С верхним сдвигом, для которого требуется 2 кодовых слова на один символ (от 128 до 255);
* С двоичной защелкой, для которой требуется 1 символ двоичной защелки и 6 кодовых слов на каждые 5 байтов.
Режимы Upper Shift могут кодировать (от 128 до 255) расширенные символы ASCII двумя кодовыми словами с возвратом в предыдущий режим:
Режим двоичной защелки может кодировать 8-битную кодировку и последовательности ECI от 1 до 5 символов. Он использует следующие правила:
* Данные разбиваются на блоки из 5 символов (байт или идентификатор режима ECI) или 6 кодовых слов;
* Значения 0–258 преобразуются по системе счисления из пяти значений по основанию 259 в шесть значений по основанию 103;
* Значения 0–255 являются байтовыми значениями;
* 256, 257 или 258 значений обозначают кодировку последовательности ECI в следующих 1, 2 или 3 байтах соответственно;
* Любые кодовые слова DotCode в закодированной последовательности выше 102 (от 103 до 112) прерывают или меняют режим.
Как мы видим из следующей таблицы, Binary Latch более эффективно кодирует данные, начиная с 3 байтов.
===ECI-кодирование ===
DotCode может кодировать индикатор Extended Channel Interpretation|ECI двумя способами: * В режиме двоичной фиксации (см. выше);
* С символом FNC2.
FNC2 в любой позиции, кроме конца данных, сигнализирует о вставке последовательности ECI – «\nnnnnn», которая представляет значения от 000000 до 811799. Значения могут быть закодированы в 1 или 3 кодовых словах:
* В случае следующего кодового слова < 40 напрямую кодируется значение ECI от 000000 до 000039;
* [url=viewtopic.php?t=10925]В противном случае[/url] следующие три кодовых слова со значениями A, B и C кодируют значение ECI (A - 40) * 12769 + B * 113 + C + 40.
===Кодировка GS1 ===
Любые две цифры в позиции первого кодового слова идентифицируют символ как закодированный GS1 (в отличие от кода 128). В случае, если символ с двумя цифрами в позиции первого кодового слова должен быть декодирован как обычные данные, FNC1 (опущенный в декодированном сообщении) должен быть вставлен на место первого кодового слова.
Кодовое слово 100 в кодовом наборе C кодирует приложение GS1 AI (17) следующие 3 кодовых слова являются датой истечения срока действия и вставляют GS1 AI (10) перед декодированием других кодовых слов:
''(100)(24)(12)(30)(56)(64) -> 17241230105664''
===Режим макросов===
Некоторые кодовые слова данных 97–100 в ведущей позиции данных в кодовом наборе B могут кодировать «макросы».
''(Защелка B)(HT) -> [)>RS05GS … RSeoT''
''(Shift B)(HT) -> [)>RS05GS … RSeoT''
===Структурированное добавление===
DotCode может создавать составные символы, в которых данные из нескольких символов DotCode могут быть логически объединены. Это можно сделать с помощью символа FNC2 в последней позиции данных. Когда FNC2 находится в конечной позиции данных,
===Кодирование специальных режимов===
FNC3 в первой позиции кодового слова указывает на то, что сообщение
FNC3 в любом положении, кроме первого, указывает, что закодированное сообщение должно быть логически разделено на два отдельных сообщения (до и после него);
===Заполнение данных===
Количество кодовых слов символов DotCode:
NW = ((H * W) / 2 - 2) \pmod{9})
Емкость кодовых слов данных символа DotCode:
ND = (NW - 3) - (NW - 3) / 3
Таким образом, нам нужно дополнить кодовые слова данных в случае наличия свободного места. Существует два правила: * Двоичный режим должен быть завершен с помощью Latch to Code Set A (кодовое слово 109);
* В других режимах необходимо использовать кодовое слово 106 (фиксация набора кодов C/фиксация набора кодов B).
==См. также==
* Автоматическая идентификация и сбор данных (AIDC)
* Штрих-код
* Код 128
* Расширенная интерпретация каналов
* ГС1
* Ручные изделия
* [https://patents.google.com/patent/US8011596B2 патент DotCode]
* [https://products.aspose.app/barcode/generate/dotcode Бесплатный генератор DotCode]
* [https://products.aspose.app/barcode/recouncer Free DotCode Reader]
Автоматическая идентификация и сбор данных
Штрих-коды
Кодировки
Вернуться в «Васина Википедия»
Перейти
- Васино информационное агентство
- ↳ Лохотроны и разочарования
- ↳ Секреты рекламы и продвижения
- ↳ Заработок в Интернете
- ↳ Маленькие хитрости
- ↳ Посудомойки
- ↳ Режим питания нарушать нельзя!
- ↳ Прочитанные мной книги
- ↳ Музыкальная культура
- ↳ Ляпсусы
- ↳ Интернет — в каждый дом!
- ↳ Изобретения будущего
- ↳ В здоровом теле — здоровый дух
- ↳ Боги, религии и верования мира
- ↳ Расы. Народы. Интеллект
- Прочее
- ↳ Васина Википедия
- ↳ Беседка
Мобильная версия