Матрица данных
Матрица данных — это двумерный код, состоящий из черно-белых «ячеек» или точек, расположенных в виде квадрата или прямоугольника , также известного как матрица . Информация, подлежащая кодированию, может быть текстовыми или числовыми данными. Обычный размер данных составляет от нескольких байт до 1556 байт . Длина закодированных данных зависит от количества ячеек в матрице. Коды исправления ошибок часто используются для повышения надежности: даже если одна или несколько ячеек повреждены и сообщение становится нечитаемым, сообщение все равно можно прочитать. Символ Data Matrix может хранить до 2335 буквенно-цифровых символов.
Символы Data Matrix имеют прямоугольную, обычно квадратную форму и состоят из квадратных «ячеек», которые представляют биты . В зависимости от используемого кодирования «светлая» ячейка соответствует 0, а «темная» — 1, или наоборот. Каждая матрица данных состоит из двух сплошных смежных границ в форме буквы «L» (называемых «шаблоном поиска») и двух других границ, состоящих из чередующихся темных и светлых «ячеек» или модулей (называемых «шаблоном синхронизации»). Внутри этих границ находятся строки и столбцы ячеек, кодирующих информацию. Шаблон поиска используется для определения местоположения и ориентации символа, а шаблон синхронизации обеспечивает подсчет количества строк и столбцов в символе. Чем больше данных закодировано в символе, тем больше количество ячеек (строк и столбцов). Каждый код уникален. Размеры символов варьируются от 10×10 до 144×144 в новой версии ECC 200 и от 9×9 до 49×49 в старой версии ECC 000 – 140.
Приложения
[ редактировать ]Самым популярным применением Data Matrix является маркировка небольших предметов, поскольку код способен кодировать пятьдесят символов в символ, читаемый с расстояния 2 или 3 мм. 2 (0,003 или 0,005 кв. дюйма) и тот факт, что код можно прочитать только с контрастностью 20%. [1] Матрица данных масштабируема; существуют коммерческие приложения с изображениями размером от 300 микрометров (0,012 дюйма) (лазерная гравировка на кремниевом устройстве размером 600 микрометров (0,024 дюйма)) и размером до квадрата размером 1 метр (3 фута) (нарисованные на крыше товарного вагона ) . Единственным ограничением является точность систем маркировки и считывания. США Альянс электронной промышленности (EIA) рекомендует использовать Data Matrix для маркировки небольших электронных компонентов. [2]
Коды Data Matrix становятся все более распространенными на печатных носителях, таких как этикетки и буквы. Код можно быстро прочитать с помощью устройства считывания штрих-кода , которое позволяет отслеживать носитель, например, когда посылка отправлена получателю.
В целях промышленного проектирования коды Data Matrix можно наносить непосредственно на компоненты, гарантируя, что только предполагаемый компонент будет идентифицирован с помощью данных, закодированных в Data Matrix. Коды можно наносить на компоненты различными методами, но в аэрокосмической промышленности это обычно промышленная струйная маркировка, точечная маркировка, лазерная маркировка и электролитическое химическое травление (ECE). Эти методы дают постоянную маркировку, которая может сохраняться в течение всего срока службы компонента.
Коды Data Matrix обычно проверяются с использованием специального видеооборудования и программного обеспечения. [ нужны дальнейшие объяснения ] Эта проверка гарантирует соответствие кода соответствующим стандартам и читаемость на протяжении всего срока службы компонента. После ввода компонента в эксплуатацию код Data Matrix может быть прочитан камерой считывателя, которая декодирует данные Data Matrix, которые затем можно использовать для ряда целей, таких как отслеживание движения или проверка запасов.
Коды Data Matrix, а также другие коды с открытым исходным кодом, такие как 1D-штрих-коды, также можно считывать с помощью мобильных телефонов, загрузив мобильные приложения для конкретных кодов. Хотя многие мобильные устройства способны считывать 2D-коды, включая Data Matrix Code, [3] немногие расширяют декодирование, чтобы обеспечить мобильный доступ и взаимодействие, после чего коды можно использовать безопасно и в различных средах; например, в сфере отслеживания и отслеживания, борьбы с подделками, электронного правительства и банковских решений.
Пищевая промышленность
[ редактировать ]Коды Data Matrix используются в пищевой промышленности в системах автокодирования для предотвращения неправильной упаковки и датировки пищевых продуктов. Коды хранятся внутри базы данных производителей продуктов питания и связаны с каждым уникальным продуктом, например, с вариациями ингредиентов. Для каждого запуска продукта на принтер передается уникальный код. Изображение этикетки необходимо для размещения 2D Data Matrix для оптимального сканирования. Для черно-белых кодов тестирование не требуется, если качество печати не является проблемой, но все цветовые вариации необходимо тестировать перед производством, чтобы гарантировать их читаемость. [ нужна ссылка ]
Искусство
[ редактировать ]В мае 2006 года немецкий программист Бернд Хопфенгертнер создал большую матрицу данных на пшеничном поле (по принципу кругов на полях ). Сообщение гласило: « Привет, мир! ». [4] В июне 2011 года парижский татуировщик KARL в рамках продвижения Ballantine’s шотландского виски [5] создал первую в мире анимированную татуировку с использованием кода Data Matrix в ходе совместного процесса, который транслировался в прямом эфире на Facebook. [6] [7]
Технические характеристики
[ редактировать ]Символы Data Matrix состоят из модулей, расположенных внутри рамки поиска периметра и временной схемы. Он может кодировать до 3116 символов из всего набора символов ASCII (с расширениями). Символ состоит из областей данных, которые содержат модули, расположенные в регулярном массиве. Большие символы содержат несколько регионов. Каждая область данных ограничена шаблоном поиска и окружена со всех четырех сторон границей тихой зоны (полем). (Примечание. Модули могут быть круглыми или квадратными — в стандарте не определена конкретная форма. Например, ячейки с точечной перфорацией обычно имеют круглую форму.)
Матрица данных ECC 200
[ редактировать ]ECC 200, более новая версия Data Matrix, использует коды Рида-Соломона для восстановления ошибок и стирания. ECC 200 позволяет выполнять рутинную реконструкцию всей закодированной строки данных, когда символ поврежден на 30%, при условии, что матрица все еще может быть точно определена. Data Matrix имеет частоту ошибок менее 1 на 10 миллионов отсканированных символов. [8]
Символы имеют четное количество строк и четное количество столбцов. Большинство символов имеют квадратную форму с размерами от 10 × 10 до 144 × 144. Однако некоторые символы имеют прямоугольную форму с размерами от 8 × 18 до 16 × 48 (только четные значения). Все символы, использующие коррекцию ошибок ECC 200, можно распознать по модулю в верхнем правом углу, который совпадает с цветом фона. (двоичный 0).
Дополнительные возможности, которые отличают символы ECC 200 от более ранних стандартов, включают:
- Символы инверсного чтения (светлые изображения на темном фоне)
- Спецификация набора символов (через расширенные интерпретации каналов )
- Прямоугольные символы
- Структурированное добавление (связывание до 16 символов для кодирования больших объемов данных)
Матрица данных ECC 000–140
[ редактировать ]Более старые версии Data Matrix включают ECC 000, ECC 050, ECC 080, ECC 100, ECC 140. Вместо использования кодов Рида-Соломона , таких как ECC 200, ECC 000–140 использует коррекцию ошибок на основе свертки. Каждый из них различается по объему исправления ошибок: ECC 000 не предлагает ничего, а ECC 140 предлагает самый высокий уровень. Для обнаружения ошибок во время декодирования, даже в случае ECC 000, каждая из этих версий также кодирует проверку циклическим избыточным кодом (CRC) в битовом шаблоне. В качестве дополнительной меры размещение каждого бита в коде определяется таблицами размещения битов, включенными в спецификацию. Эти старые версии всегда имеют нечетное количество модулей и могут иметь размеры от 9 × 9 до 49 × 49. Все символы, использующие коррекцию ошибок ECC от 000 до 140, можно распознать по модулю в правом верхнем углу, являющемуся обратным. цвета фона. (двоичный 1).
Согласно ISO/IEC 16022, «ECC 000–140 следует использовать только в закрытых приложениях, где одна сторона контролирует как создание, так и чтение символов и отвечает за общую производительность системы».
Стандарты
[ редактировать ]Data Matrix была изобретена компанией International Data Matrix, Inc. (ID Matrix), которая была объединена с RVSI/ Acuity CiMatrix , которые были приобретены Siemens AG в октябре 2005 года и Microscan Systems в сентябре 2008 года. Сегодня Data Matrix распространяется на несколько стандартов ISO / IEC. стандартами и является общественным достоянием для многих приложений, что означает, что его можно использовать без каких-либо лицензий или лицензионных отчислений.
- ISO/IEC 16022:2006 — Спецификация символики штрих-кода Data Matrix.
- ISO/IEC 15415 — стандарт качества двумерной печати.
- ISO/IEC 15418:2016 — Семантика символьного формата данных ( идентификаторы приложений GS1 и идентификаторы данных ASC MH10 и их обслуживание).
- ISO/IEC 15424:2008 — Идентификаторы носителей данных (включая идентификаторы символов) [идентификаторы для различения различных типов штрих-кодов]
- ISO/IEC 15434:2006 — Синтаксис для носителей АЦП высокой емкости (формат данных, передаваемых со сканера в программное обеспечение и т. д.).
- ISO/IEC 15459 — Уникальные идентификаторы.
Исправление ошибок
[ редактировать ]Коды Data Matrix используют коррекцию ошибок Рида – Соломона в конечном поле. (или GF(2 8 ) ), элементы которого кодируются байтами по 8 бит ; байт со стандартным числовым значением кодирует элемент поля где считается примитивным элементом, удовлетворяющим . Примитивный многочлен , соответствующий номеру полинома 301, с начальным корнем = 1. Код Рида – Соломона использует один из 37 различных полиномов над , со степенью от 7 до 68, в зависимости от того, сколько байтов исправления ошибок добавляет код.
Кодирование
[ редактировать ]Процесс кодирования описан в стандарте ISO/IEC 16022:2006. [10] Опубликовано программное обеспечение с открытым исходным кодом для кодирования и декодирования варианта Data Matrix ECC-200. [11] [12]
На диаграммах ниже показано размещение данных сообщения внутри символа Data Matrix. Сообщение называется «Arc.Ask3.Ru», и оно расположено в виде довольно сложной диагональной схемы, начиная с верхнего левого угла. Некоторые символы разделены на две части, например начальная буква W, а третья буква «i» имеет «угловой узор 2», а не обычное L-образное расположение. Также показаны код конца сообщения (отмеченный End), байты заполнения (P) и исправления ошибок (E), а также четыре модуля неиспользуемого пространства (X).
Для хранения различных типов сообщений используются несколько режимов кодирования. В режиме по умолчанию для каждого 8-битного кодового слова сохраняется один символ ASCII . Для переключения между режимами предусмотрены управляющие коды, как показано ниже.
Кодовое слово | Шестнадцатеричное кодовое слово | Интерпретация |
---|---|---|
0 | 0 | Не используется |
1–128 | 1-80 | Данные ASCII (значение ASCII + 1) |
129 | 81 | Конец сообщения |
130–229 | 82-e5 | Пары цифр 00–99 |
230 | е6 | Начать C40 кодирование |
231 | e7 | Начать Base 256 кодирование |
232 | е8 | ФНК1 |
233 | е9 | Структурированное приложение. Позволяет разделить сообщение на несколько символов. |
234 | из | Программирование ридера |
235 | Эб | Установить старший бит следующего символа |
236 | ЕС | 05 Макро |
237 | Эд | 06 Макро |
238 | да | Начать ANSI X12 кодирование |
239 | если | Начать текста кодирование |
240 | f0 | Начать EDIFACT кодирование |
241 | ф1 | интерпретации расширенного канала Код |
242–255 | f2-ff | Не используется |
Текстовые режимы
[ редактировать ]Режимы C40, Text и X12 потенциально более компактны для хранения текстовых сообщений. Они похожи на DEC Radix-50 , используют коды символов в диапазоне 0–39, а три из этих кодов объединяются, образуя число до 40. 3 =64000, который упакован в два байта (максимальное значение 65536) следующим образом:
- В = С1×1600 + С2×40 + С3 + 1
- B1 = пол (В/256)
- B2 = V mod 256
Результирующее значение B1 находится в диапазоне 0–250. Специальное значение 254 используется для возврата в режим кодирования ASCII.
Интерпретации кодов символов показаны в таблице ниже. Режимы C40 и Text имеют четыре отдельных набора. Набор 0 используется по умолчанию и содержит коды, которые временно выбирают другой набор для следующего символа. Единственное отличие состоит в том, что они меняют местами прописные и строчные буквы. C40 в основном имеет верхний регистр, в наборе 3 — строчные буквы; С текстом все наоборот. Набор 1, содержащий управляющие коды ASCII, и набор 2, содержащий символы пунктуации, идентичны в режиме C40 и текстовом режиме.
Код | установить 0 | набор 1 | набор 2 | набор 3 | х12 | ||
---|---|---|---|---|---|---|---|
С40 | Текст | С40 | Текст | ||||
0 | набор 1 | НУЛЕВОЙ | ! | ` | ЧР | ||
1 | набор 2 | СОХ | " | а | А | * | |
2 | набор 3 | СТХ | # | б | Б | > | |
3 | космос | И Т. Д | $ | с | С | космос | |
4 | 0 | EOT | % | д | Д | 0 | |
5 | 1 | ENQ | & | и | И | 1 | |
6 | 2 | ПОДТВЕРЖДЕНИЕ | ' | ж | Ф | 2 | |
7 | 3 | БЕЛ | ( | г | Г | 3 | |
8 | 4 | БС | ) | час | ЧАС | 4 | |
9 | 5 | ХТ | * | я | я | 5 | |
10 | 6 | НЧ | + | дж | Дж | 6 | |
11 | 7 | ВТ | , | к | К | 7 | |
12 | 8 | ФФ | – | л | л | 8 | |
13 | 9 | ЧР | . | м | М | 9 | |
14 | А | а | ТАК | / | н | Н | А |
15 | Б | б | И | : | тот | ТО | Б |
16 | С | с | В СООТВЕТСТВИИ С | ; | п | П | С |
17 | Д | д | DC1 | < | д | вопрос | Д |
18 | И | и | DC2 | = | р | Р | И |
19 | Ф | ж | DC3 | > | с | С | Ф |
20 | Г | г | DC4 | ? | т | Т | Г |
21 | ЧАС | час | ХОТЕТЬ | @ | в | В | ЧАС |
22 | я | я | СИН | [ | v | V | я |
23 | Дж | дж | ЭТБ | \ | В | В | Дж |
24 | К | к | МОЖЕТ | ] | х | Х | К |
25 | л | л | В | ^ | и | И | л |
26 | М | м | СУБ | _ | С | С | М |
27 | Н | н | ЭКУ | ФНК1 | { | Н | |
28 | ТО | тот | ФС | | | ТО | ||
29 | П | п | GS | } | П | ||
30 | вопрос | д | РС | хибит | ~ | вопрос | |
31 | Р | р | НАС | ПРИНАДЛЕЖАЩИЙ | Р | ||
32 | С | с | С | ||||
33 | Т | т | Т | ||||
34 | В | в | В | ||||
35 | V | v | V | ||||
36 | В | В | В | ||||
37 | Х | х | Х | ||||
38 | И | и | И | ||||
39 | С | С | С |
режим ЭДИФАКТ
[ редактировать ]В режиме EDIFACT используется шесть битов на символ, при этом четыре символа упакованы в три байта. Он может хранить цифры, заглавные буквы и множество знаков препинания, но не поддерживает строчные буквы.
Код | Значение |
---|---|
0–30 | Коды ASCII 64–94 |
31 | Вернуться в режим ASCII |
32–63 | Коды ASCII 32–63 |
Базовый режим 256
[ редактировать ]Данные режима Base 256 начинаются с индикатора длины, за которым следует количество байтов данных. Длина от 1 до 249 кодируется как один байт.и более длинные длины хранятся в виде двух байтов.
- L1 = пол (длина / 250) + 249, L2 = длина по модулю 250
Желательно избегать длинных строк нулей в закодированном сообщении, поскольку они становятся большими пустыми областями в символе Data Matrix, что можетпривести к потере синхронизации сканера. (По этой причине в кодировке ASCII по умолчанию не используется нуль.) Чтобы сделать это менее вероятным,длина и байты данных скрываются путем добавления псевдослучайного значения R(n), где n — позиция в потоке байтов.
- R(n) = (149 × n) по модулю 255 + 1
Патентные вопросы
[ редактировать ]До истечения срока действия патента США № 5 612 524 в ноябре 2007 года компания Acacia Technologies, занимающаяся интеллектуальной собственностью, утверждала, что Data Matrix частично покрыта его содержимым. Как владелец патента, Acacia предположительно связалась с пользователями Data Matrix и потребовала лицензионных отчислений, связанных с патентом.
Cognex Corporation , крупный производитель устройств двумерного штрих-кодирования, подала жалобу на декларативное решение 13 марта 2006 года после получения информации о том, что Acacia связалась со своими клиентами с требованием лицензионных сборов. 19 мая 2008 года судья Джоан Н. Эриксен из Окружного суда США в Миннесоте вынесла решение в пользу Cognex. [13] Постановление постановило, что патент '524, в котором утверждалось, что он охватывает систему захвата и считывания двухмерных символических кодов, является недействительным и не имеющим исковой силы из-за несправедливого поведения ответчиков во время приобретения патента.
Хотя решение было вынесено после истечения срока действия патента, оно исключило претензии о нарушении прав, основанные на использовании Data Matrix до ноября 2007 года.
Заявка на патент Германии DE 4107020 была подана в 1991 году и опубликована в 1992 году. Этот патент не цитируется в вышеупомянутых патентных заявках США и может признать их недействительными. [ нужна ссылка ]
См. также
[ редактировать ]- PDF417
- Ацтекский кодекс
- Цветной штрих-код большой емкости
- Максикод
- Электронная книга Нинтендо
- QR-код
- Семакод
- SPARQКод
- Надежный бумажный ключ
Ссылки
[ редактировать ]- ^ «Штрих-код матрицы данных» . Архивировано из оригинала 14 сентября 2017 года.
- ^ Стивенсон, Рик (декабрь 2005 г.). «Матричные коды лазерной маркировки на печатных платах» (PDF) . Проектирование и производство печатных плат . Проверено 31 мая 2007 г.
- ^ Стефан, В. (2012). Использование 2D-кодов при разработке мобильных приложений с базой данных. Валахский журнал экономических исследований, 3 (2), 105–114. Получено с https://econpapers.repec.org/article/vlhjournl/v_3a3_3ay_3a2012_3ai_3a2_3ap_3a105-114.htm.
- ^ «Немец программирует «Hello World» на пшеничном поле» . arstechnica.com . 11 июня 2007 года . Проверено 22 февраля 2017 г.
- ^ «Первая в мире анимированная татуировка - блог Digital Buzz» . digitalbuzzblog.com . Проверено 22 февраля 2017 г.
- ^ «Первая в мире анимированная татуировка – от KARL» youtube.com . Архивировано из оригинала 12 декабря 2021 года . Проверено 22 февраля 2017 г.
- ^ «Фейсбук» . Facebook.com . Проверено 22 февраля 2017 г.
- ^ «Матрица данных и тест целостности данных PDF417» (PDF) . idautomation.com . Архивировано из оригинала (PDF) 20 августа 2019 года . Проверено 20 августа 2019 г.
- ^ Энгин, Томас. «Сканер QR-кодов онлайн» . Проверено 27 февраля 2022 г.
- ^ Страница электронной торговли ISO для этого стандарта http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=44230.
- ^ «GitHub — zxing/zxing: домашняя страница официального проекта ZXing («Пересечение зебры»)» . гугл.com . Проверено 22 февраля 2017 г.
- ^ «Домашняя страница libdmtx» . sourceforge.net . Проверено 22 февраля 2017 г.
- ^ «Cognex аннулирует патент акации '524; дальше? Подает в суд за клевету на бизнес» . Гроклав . 23 июня 2008 г. Архивировано из оригинала 5 мая 2010 г.