Генерируем QR и DataMatrix штрих-коды на Web-страницах средствами JavaScript. Как создается Data Matrix? Минусы Microsoft Tag, по сравнению с QR и DataMatrix-кодами

A Data Matrix двумерный матричный штрих-код, содержащий черные и белые ячейки, упорядоченные в квадратный или прямоугольный массив. Может быть закодирован как текст, так и произвольные данные.
Объём закодированных данных зависит от размеров используемого символа. Символ содержит коды коррекции ошибок: даже если символ частично поврежден, он может быть прочитан. Символ Data Matrix symbol может хранить до 2335 алфавитно-цифровых знаков.

Примечание : В этой символике не отображается человекочитаемый текст.

Data Matrix symbols can encode text in several different ways. Use the Encoding combo box to define the most appropriate encoding algorithm for the text you want to encode:

  • (Mixed): значение по умолчанию. Кодирование данных, используя комбинацию всех нижеприведенных режимов, в зависимости от типа найденных данных. Обычно этот режим дает наилучший результат.
  • Ascii: задает кодировку всех 256 знаков стандартной таблицы ASCII. Наилучший результат для цифровых знаков и знаков с кодами ASCII от 0 до 127.
  • C40: задает кодировку цифр, букв и нескольких специальных символов. Наилучший результат для цифр и алфавитно-цифровых кодов, содержащих только заглавные буквы.
  • Text: задает кодировку цифр, букв и нескольких специальных символов. Наилучший результат для цифр и алфавитно-цифровых кодов, содержащих только строчные буквы.
  • X12: задает кодировку знаков из набора ANSI X12.
  • Edifact: задает кодировку символов с кодами ASCII в диапазоне от 32 до 94. Кодировка считается устаревшей, добавлена для совместимости.
  • Base 256: специальная кодировка для произвольных данных в диапазоне от 0 до 255. Алгоритм кодирования позволяет закодировать любые значения от 0x00 до 0xFF (десятичные 0 ~ 255). Чтобы использовать эту кодировку, необходимо ввести строку, содержащую двухразрядные шестнадцатеричные значения, разделенные пробелом, например: 32 FA 56 E8 12 … и т.д.

Код Datamatrix

Кодировка Data Matrix: https://www.сайт/free-label-software/

Выпадающий список Symbol size позволяет задать минимальные размер символа.Архитектура Data Matrix организует данные последовательностью квадратиков в квадратной или прямоугольной матрице. Количество требуемых квадратиков зависит от объема кодируемых данных.
Обычно символ data matrix генерируется с возможно меньшим количеством ячеек, необходимых для представления закодированных данных, но в некоторых случаях может потребоваться увеличить количество отображаемых ячеек, например, чтобы все напечатанные символы имели одинаковый размер, независимо от объема закодированных данных. В этом случае вы можете задать минимальный размер символа генерируемого штрих-кода.

Кодирование Data Matrix:12345

Код стандарта Data Matrix представляет собой двухмерный матричный код, с помощью которого можно кодировать очень большие объемы данных в компактном пространстве. Его используют в различных целях, в том числе в аэрокосмической промышленности, для маркировки компонентов, в оборонной промышленности, для почтовых отправлений и печатных СМИ.

Спецификации: В коде стандарта Data Matrix можно кодировать до 2335 буквенно-цифровых символов либо — до 3116 числовых. Код состоит из нескольких блоков черных и белых клеток, которые представлены в форме либо квадратного, либо прямоугольного образа. Кроме того, каждый код стандарта Data Matrix имеет как код поиска по периметру, так и образ синхронизации. В коде также можно кодировать символы больших и малых размеров. По краям каждого кода стандарта Data Matrix находится белое поле.

Преимущества: Код стандарта Data Matrix можно считывать даже при его частичном повреждении до 40 % благодаря встроенной системе коррекции ошибок. Также возможно кодировать буквы, числовые данные и другие символы ASCII.

Недостатки: Даже при наличии возможности кодировать множество символов, гораздо больше, чем в большинстве одномерных штрихкодах, код стандарта Data Matrix по-прежнему имеет общее ограничение по количеству символов, и поэтому непрактичен для передачи длинных сообщений.

Похожие штрихкоды:
QR-код — также состоит из блоков черных и белых клеток наряду с образами поиска.

    Data matrix - can refer to: Matrix (mathematics) A rectangular array of elements Data matrix (computer) An encoded barcode. Data set A collection of data in tabular form. Data matrix (multivariate statistics) A mathematical matrix of data whose rows represent… … Wikipedia

    Data Matrix - An example of a Data Matrix code, encoding the text: Wikipedia, the free encyclopedia Reading Data … Wikipedia

    Data Matrix

    Data Matrix - 3.8 Data Matrix: Двумерная матричная символика с коррекцией ошибок, кодирующая различные наборы знаков, включая набор цифровых и алфавитно цифровых знаков данных, все знаки по ИСО/МЭК 646 (ASCII)1), а также специальные наборы знаков. 1) Ссылка… … Словарь-справочник терминов нормативно-технической документации

    data matrix - /deɪtə ˈmeɪtrɪks/ (say daytuh maytriks) noun (plural data matrixes or data matrices /deɪtə ˈmeɪtrəsiz/ (say daytuh maytruhseez)) a rectangular array of data, whether numbers, images, etc., to be used in computation … Australian English dictionary

    - … Википедия

    Data matrix (computer) - A Data Matrix code is a two dimensional matrix barcode consisting of black and white square modules arranged in either a square or rectangular pattern. The information to be encoded can be text or raw data. Usual data size is from a few bytes up… … Wikipedia

    Data Matrix Code - DataMatrix Code als Teil von Stampit Mit dem zweidimensionalen Data Matrix Code (2D Code) kann im Vergleich zu eindimensionalen Barcodes (1D Code) die Informationsdichte pro Fläche deutlich erhöht werden. Entwickelt wurde der Data Matrix Code in… … Deutsch Wikipedia

    Data matrix (multivariate statistics) - In multivariate statistics, a data matrix is a mathematical matrix of data whose rows represent different repetition of an experiment, and whose columns represent different types of datum (say, the results from a particular probe). For example,… … Wikipedia

    Matrix code - The Matrix code can refer to: A two dimensional barcode (as opposed to linear and stacked symbologies), such as e.g. Data Matrix. The logo of The Matrix franchise. See Matrix digital rain. This disambiguation page lists articles associated with… … Wikipedia

Книги

  • Matrix Algebra Useful for Statistics , Andre Khuri I. , A thoroughly updated guide to matrix algebra and it uses in statistical analysis and features SAS®, MATLAB®, and R throughout This Second Edition addresses matrix algebra that is useful in… Категория: Математика Издатель: John Wiley & Sons Limited , электронная книга
  • Statistical Data Analytics. Foundations for Data Mining, Informatics, and Knowledge Discovery , Walter Piegorsch W. , A comprehensive introduction to statistical methods for data mining and knowledge discovery. Applications of data mining and ‘big data’ increasingly take center stage in our modern,… Категория: Математика Издатель: John Wiley & Sons Limited , электронная книга (fb2, fb3, epub, mobi, pdf, html, pdb, lit, doc, rtf, txt)

Data Matrix является двумерным матричным штрих кодом, состоящим из светлых и темных участков. С помощью такого штрих кода можно закодировать достаточно большой объем информации (2-3Кб). Часто Data Matrix применяется при маркировке небольших предметов, например микросхем, а также в пищевой, оборонной промышленности, рекламе и других сферах.

Существует множество сайтов для создания таких кодов, но мне всегда было интересно, каким же образом текст превращается в набор черных и белых квадратиков? Должен же быть какой-то алгоритм?

При создании Data Matrix нам понадобится обратиться к арифметике полей Галуа и кодам Рида-Соломона. Рассмотрим этот процесс на простом примере.

Прежде всего, посмотрим на структуру матрицы:

Состоит наша матрица из двух частей: шаблона поиска и закодированных данных. Разумеется, размер матрицы прямо пропорционален размеру входных данных. Вокруг нашего кода обязательно должна быть свободная зона, отделяющая код от остального изображения.

Возьмем какое-нибудь короткое слово, например, “Habr” (без кавычек) и создадим для него Data Matrix. Процесс состоит из двух этапов: на этапе высокоуровневого кодирования нужно получить последовательность кодов данных и кодов коррекции ошибок, а на этапе низкоуровневого кодирования – изобразить в матрице двоичное представление этих кодов.

Высокоуровневое кодирование


В Data Matrix, как и в QR-коде, используются коды Рида-Соломона над полем Галуа (число 8 выбрано, поскольку каждое кодовое слово занимает в матрице 8 бит). Существует несколько неприводимых многочленов, позволяющих сгенерировать такое поле. Среди них (в десятичном представлении 285, используется для QR-кодов) и (301, используется в Data Matrix).

Для расчетов нам понадобится таблица степеней двойки для каждого элемента поля. Создается эта таблица довольно просто: если показатель степени , то возведение в степень выполняется как обычно. В противном случае , после чего производится побитовое сложение по модулю 2 с десятичным представлением взятого неприводимого многочлена, если . Например, , и т. д.

Необходимо получить кодовое слово

Где – информационный многочлен, – порождающий многочлен, – общая длина кода вместе с корректировочными, – количество информационных кодов (вместе с кодами отступа, о них – далее), – операция взятия остатка от деления.

Создадим для начала информационный многочлен. Для этого нам понадобится знать, какого размера должна быть матрица, чтобы можно было разместить все информационные коды:


Из таблицы видно, что для кодирования строки из 4х элементов нужно взять матрицу размером 12x12 («полезная» область – 10x10), в которую помещаются 5 кодов данных и 7 кодов коррекции.

Для символов таблицы ASCII код получается следующим образом: C=ASCII value+1. Например, для символа ‘H’ C=72+1=73.

Подряд идущие цифры объединяются в пары, и для них C=N+130, где N – число, полученное в результате группировки. Например, если рядом стоят цифры 2 и 5, то C=25+130=155.

Поскольку элементов у нас меньше, чем должно быть (вместо пяти только четыре), необходимо добавить специальные коды отступа. Первым таким кодом всегда является 129. Последующие коды отступа, до первого кода коррекции ошибок, вычисляются так:

Где
– псевдослучайное число, – номер элемента.

Для слова “Habr” получаем следующую последовательность кодов: 73, 98, 99, 115, 129.

Теперь мы можем записать информационный многочлен:

И домножить его на ( – число кодов коррекции):

Перейдем к созданию порождающего многочлена. Вычисляется он по следующей формуле:

Начинаем перемножать скобки:

Сложение в нашем поле определено как побитовое сложение по модулю 2. Сначала выполняется возведение в степень с помощью таблицы, затем их сложение и нахождение «логарифма» полученного числа для возврата к степеням двойки. В случае если после сложения степеней получается число, большее 254, берем его остаток от деления на .

После перемножения всех скобок и возведения в степень получим:

Последняя операция, завершающая высокоуровневое кодирование, и, пожалуй, самая сложная – нахождение остатка от деления на :

Выполняется деление многочленов в столбик, но с учетом того, что вычитание, определенное точно так же, как и сложение, и умножение выполняются в поле Галуа.

Теперь мы можем записать кодовое слово полностью:

Низкоуровневое кодирование


Каждый из полученных выше кодов представляется в Data Matrix в виде квадрата размером 3х3 ячейки без правого верхнего уголка. 1 здесь соответствует старшему биту, 8 – младшему. Нужно заполнить такими элементами всю матрицу.

Приготовим сетку 10х10 (именно такого размера должна быть матрица в данном случае), на которой нарисуем контуры первых пяти элементов, как на рисунке справа. Вне зависимости от того, какого размера матрица, эти элементы всегда располагаются именно так, и никак иначе.

Остальные элементы размещаются аналогичным образом, но прежде чем нарисовать их, необходимо отметить несколько особых случаев, связанных с углами матрицы.

Если , где a – сторона квадрата, то перед нами самый простой случай, когда после размещения всех элементов непоместившиеся участки просто переносятся на противоположную сторону.

Если , то в правом нижнем углу остается «лишний» квадратик размером 2х2, который заполняется так:

Если или , то следует обратить внимание на левый нижний и правый верхний угол, особенно на нумерацию битов.

Одним из представителей 2D-баркодов является DataMatrix. Описан в международном стандарте ISO/IEC 16022:2006. Он позволяет закодировать до 3Кб информации. DataMatrix содержит избыточную структуру, которая позволяет восстановить до 30% полезной информации при частичном повреждении кода. Все коды используют коррекцию ошибок стандарта ECC200, который, в свою очередь, использует алгоритм Рида-Соломона(Reed-Solomon) для кодирования/декодирования данных.

Большинство DataMatrix-ов квадратные, но в целом можно использовать и прямоугольные коды. Кодируемые данные располагаются внутри прямоугольного шаблона, представляющего собой L-образный угол для ориентации считывающего устройства, и набор чередующихся чёрных и белых модулей по периметру символа.

Самым существенным достоинством Data Matrix является возможность на минимальной площади закодировать небольшие последовательности данных (до 10 символов). Это преимущество объясняется тем, что в Data Matrix содержится очень мало служебной информации, описывающей размеры и структуру данных штрихового кода.

DataMatrix применяется в основном для маркировки небольших объектов, например, микросхем, позволяя закодировать 50 символов в изображении размером 2-3 мм2.

Данная символика популярна в таких сферах применения как:

  • медицинская промышленность;
  • почтовые перевозки;
  • электронная промышленность;
  • автомобилестроение;
  • пищевая промышленность;
  • авиакосмическая и оборонная промышленность;
  • энергетическое машиностроение.

Наиболее нестандартное использование кода Data Matrix придумал сотовый оператор Vodaphone. Им было создано приложение для продажи электронных билетов с мобильных телефонов – купленный билет, кодируется Data Matrix и отсылается на сотовый телефон в виде картинки SMS, MMS или EMS сообщением.

Data Matrix адаптирован под считывание видео-системами. Другими словами, считывателями данного кода могут служить видеокамеры со встроенными декодирующими программами, а также ручные и стационарные сканеры, оснащенные внутренними и программными декодерами. Расстояние считывания зависит от таких факторов, как разрешение, размер кода и вид используемого оборудования. В зависимости от них оно может варьироваться от 0 мм до 91 см.

Способы нанесения Data Matrix:

  1. Методом прямой печати на изделии:
    • струйной печатью
    • лазерной гравировкой
    • гравировкой иглами
  2. Печатью на бумажных и полипропиленовых материалах при помощи:
    • Термо- и термотрансферных принтеров
    • Матричных принтеров
    • Струйных принтеров
    • Лазерных принтеров

Технология Data Matrix подходит для интеграции в существующие системы, например, для его нанесения можно применять готовые приложения по (Bar Tender) и SDK, а для считывания – модели сканеров, с физическим или программным интерфейсом «разрыв клавиатуры».

Преимущества Data Matrix:

  1. За счет того, что код имеет небольшие размеры, можно использовать меньшие этикетки, а значит сократить стоимость затрат на расходные материалы.
  2. Можно колировать большой объем информации (например, помимо основных данных, включить такие как ID производителя, серийный номер товара и др.).
  3. Код считывается независимо от его ориентации относительно считывателя, что ускоряет процесс идентификации.
  4. Маркировка может наноситься непосредственно на само изделие.

Крупные пользователи Data Matrix:

  1. Intel
  2. Mercedes Benz
  3. Siemens
  4. Philips
  5. Vodaphoone

Вас так же могут заинтересовать следующие товары.