Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Двумерный матричный штрих-код
Two dimensional matrix barcode
Data Matrix – это двумерный код, состоящий из черно-белых "ячеек" или точек, расположенных в квадратном или прямоугольном рисунке, также известном как матрица. Информация, подлежащая кодированию, может быть представлена текстом или числовыми данными. Типичный размер данных варьируется от нескольких байт до 1556 байт. Длина кодируемых данных зависит от количества ячеек в матрице. Для повышения надежности часто используются коды коррекции ошибок: даже если одна или несколько ячеек повреждены и становятся нечитаемыми, сообщение все равно можно прочитать. Символ Data Matrix может хранить до 2335 буквенно-цифровых символов. Символы Data Matrix имеют прямоугольную форму, обычно квадратную, и состоят из квадратных "ячеек", представляющих биты. В зависимости от используемого кодирования, "светлая" ячейка представляет 0, а "темная" – 1, или наоборот. Каждый Data Matrix состоит из двух сплошных смежных границ в форме буквы "L" (называемых "паттерном поиска") и двух других границ, состоящих из чередующихся темных и светлых "ячеек" или модулей (называемых "паттерном синхронизации"). Внутри этих границ расположены строки и столбцы ячеек, кодирующих информацию. Паттерн поиска используется для определения местоположения и ориентации символа, а паттерн синхронизации обеспечивает подсчет количества строк и столбцов в символе. По мере увеличения объема кодируемых данных увеличивается количество ячеек (строк и столбцов). Каждый код уникален. Размеры символов варьируются от 10×10 до 144×144 в новой версии ECC 200 и от 9×9 до 49×49 в старой версии ECC 000–140.
A Data Matrix is a two dimensional code consisting of black and white "cells" or dots arranged in either a square or rectangular pattern, also known as a matrix. The information to be encoded can be text or numeric data. Usual data size is from a few bytes up to 1556 bytes. The length of the encoded data depends on the number of cells in the matrix. Error correction codes are often used to increase reliability: even if one or more cells are damaged so it is unreadable, the message can still be read. A Data Matrix symbol can store up to 2,335 alphanumeric characters. Data Matrix symbols are rectangular, usually square in shape and composed of square "cells" which represent bits. Depending on the coding used, a "light" cell represents a 0 and a "dark" cell is a 1, or vice versa. Every Data Matrix is composed of two solid adjacent borders in an "L" shape (called the "finder pattern") and two other borders consisting of alternating dark and light "cells" or modules (called the "timing pattern"). Within these borders are rows and columns of cells encoding information. The finder pattern is used to locate and orient the symbol while the timing pattern provides a count of the number of rows and columns in the symbol. As more data is encoded in the symbol, the number of cells (rows and columns) increases. Each code is unique. Symbol sizes vary from 10×10 to 144×144 in the new version ECC 200, and from 9×9 to 49×49 in the old version ECC 000 – 140.
Приложения
Наиболее популярным применением Data Matrix является маркировка мелких изделий благодаря способности кода кодировать пятьдесят символов в символе, который считывается на расстоянии, и тому факту, что код может быть прочитан даже при контрастности всего 20%. Data Matrix масштабируем: существуют коммерческие приложения с изображениями размером от (лазерной гравировки на кремниевом устройстве) до 1 метра (3 фута) в квадрате (нанесенные на крышу грузового вагона). Единственным ограничением является точность систем маркировки и считывания. Американский альянс электронной промышленности (EIA) рекомендует использовать Data Matrix для маркировки небольших электронных компонентов. Коды Data Matrix становятся все более распространенными на печатных носителях, таких как этикетки и письма. Код может быть быстро считан сканером штрих-кодов, что позволяет отслеживать носитель, например, когда посылка отправлена получателю. Для целей промышленной инженерии коды Data Matrix могут наноситься непосредственно на компоненты, обеспечивая идентификацию только предназначенного компонента с данными, закодированными в Data Matrix. Коды могут наноситься на компоненты различными способами, но в аэрокосмической промышленности обычно используются промышленная струйная печать, точечная маркировка, лазерная маркировка и электрохимическая травление (ECE). Эти методы обеспечивают постоянную маркировку, которая может сохраняться на протяжении всего срока службы компонента. Коды Data Matrix обычно проверяются с помощью специализированного камерного оборудования и программного обеспечения. Эта проверка гарантирует соответствие кода соответствующим стандартам и обеспечивает его читаемость на протяжении всего срока службы компонента. После ввода компонента в эксплуатацию код Data Matrix может быть считан считывающей камерой, которая декодирует данные Data Matrix, которые затем могут быть использованы для различных целей, таких как отслеживание перемещения или проверка складских запасов. Коды Data Matrix, наряду с другими кодами с открытым исходным кодом, такими как 1D штрих-коды, также могут быть прочитаны с помощью мобильных телефонов путем загрузки специализированных мобильных приложений. Хотя многие мобильные устройства способны считывать 2D-коды, включая Data Matrix, лишь немногие расширяют декодирование для обеспечения мобильного доступа и взаимодействия, что позволяет использовать коды безопасно и в различных областях, например, в системах отслеживания и прослеживаемости, борьбе с контрафактом, электронном правительстве и банковских решениях.
The most popular application for Data Matrix is marking small items, due to the code's ability to encode fifty characters in a symbol that is readable at and the fact that the code can be read with only a 20% contrast ratio. A Data Matrix is scalable; commercial applications exist with images as small as (laser etched on a silicon device) and as large as a 1 metre (3 ft) square (painted on the roof of a boxcar). Fidelity of the marking and reading systems are the only limitation. The US Electronic Industries Alliance (EIA) recommends using Data Matrix for labeling small electronic components. Data Matrix codes are becoming common on printed media such as labels and letters. The code can be read quickly by a barcode reader which allows the media to be tracked, for example when a parcel has been dispatched to the recipient. For industrial engineering purposes, Data Matrix codes can be marked directly onto components, ensuring that only the intended component is identified with the data matrix encoded data. The codes can be marked onto components with various methods, but within the aerospace industry these are commonly industrial ink jet, dot peen marking, laser marking, and electrolytic chemical etching (ECE). These methods give a permanent mark which can last up to the lifetime of the component. Data Matrix codes are usually verified using specialist camera equipment and software. This verification ensures the code conforms to the relevant standards, and ensures readability for the lifetime of the component. After component enters service, the Data Matrix code can then be read by a reader camera, which decodes the Data Matrix data which can then be used for a number of purposes, such as movement tracking or inventory stock checks. Data Matrix codes, along with other open source codes such as 1D barcodes can also be read with mobile phones by downloading code specific mobile applications. Although many mobile devices are able to read 2D codes including Data Matrix Code, few extend the decoding to enable mobile access and interaction, whereupon the codes can be used securely and across media; for example, in track and trace, anti counterfeit, e. govt, and banking solutions.
Продовольственная промышленность
Коды Data Matrix используются в пищевой промышленности в системах автоматической кодировки для предотвращения ошибочной упаковки и маркировки пищевых продуктов. Коды хранятся во внутренней базе данных производителя и связаны с каждым уникальным продуктом, например, с различными вариантами ингредиентов. Для каждой производственной партии уникальный код передается принтеру. Дизайн этикетки должен обеспечивать возможность оптимального позиционирования 2D-кода Data Matrix для сканирования. Для кодов черного цвета на белом фоне тестирование не требуется, если нет проблем с качеством печати, но все цветовые варианты необходимо протестировать перед началом производства, чтобы гарантировать их читаемость.
Data Matrix codes are used in the food industry in autocoding systems to prevent food products being packaged and dated incorrectly. Codes are maintained internally on a food manufacturers database and associated with each unique product, e. g. ingredient variations. For each product run the unique code is supplied to the printer. Label artwork is required to allow the 2D Data Matrix to be positioned for optimal scanning. For black on white codes testing isn't required unless print quality is an issue, but all color variations need to be tested before production to ensure they are readable.
Искусство
В мае 2006 года немецкий программист Бернд Хопфенгартнер создал большую матрицу данных в пшеничном поле (подобно тому, как создаются круги на полях). Сообщение гласило: "Hello, World!". В июне 2011 года парижский тату-мастер K. A. R. L., в рамках рекламной кампании шотландского виски Ballantine's, создал первую в мире анимированную татуировку, использующую код Data Matrix в процессе совместной работы, транслировавшейся в прямом эфире на Facebook.
In May 2006 a German computer programmer, Bernd Hopfengärtner, created a large Data Matrix in a wheat field (in a fashion similar to crop circles). The message read "Hello, World!". In June 2011 the Parisian tattoo artist K. A. R. L., as part of a promotion for Ballantine's scotch whisky, created the world's first animated tattoo utilizing a Data Matrix code in a collaborative process streamed live on Facebook.
Технические спецификации
Символы Data Matrix состоят из модулей, расположенных внутри периметрального маркера и временной шкалы. Они могут кодировать до 3116 символов из полного набора символов ASCII (с расширениями). Символ состоит из областей данных, содержащих модули, расположенные в виде регулярной сетки. Большие символы содержат несколько областей. Каждая область данных ограничена маркером, который со всех четырех сторон окружен полем защиты (отступом). (Примечание: модули могут быть круглыми или квадратными, стандарт не определяет конкретную форму. Например, ячейки, выполненные точечной травкой, обычно круглые.)
Data Matrix symbols are made up of modules arranged within a perimeter finder and timing pattern. It can encode up to 3,116 characters from the entire ASCII character set (with extensions). The symbol consists of data regions which contain modules set out in a regular array. Large symbols contain several regions. Each data region is delimited by a finder pattern, and this is surrounded on all four sides by a quiet zone border (margin). (Note: The modules may be round or square no specific shape is defined in the standard. For example, dot peened cells are generally round.)
Матрица данных ECC 000140
Старые версии 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, можно распознать по модулю в правом верхнем углу, который имеет инвертированный цвет по отношению к фону (единичный бит). Согласно ISO/IEC 16022, "ECC 000–140 следует использовать только в закрытых приложениях, где одна и та же сторона контролирует как создание, так и считывание символов и несёт ответственность за общую производительность системы".
Older versions of Data Matrix include ECC 000, ECC 050, ECC 080, ECC 100, ECC 140. Instead of using Reed–Solomon codes like ECC 200, ECC 000–140 use a convolution based error correction. Each varies in the amount of error correction it offers, with ECC 000 offering none, and ECC 140 offering the greatest. For error detection at decode time, even in the case of ECC 000, each of these versions also encode a cyclic redundancy check (CRC) on the bit pattern. As an added measure, the placement of each bit in the code is determined by bit placement tables included in the specification. These older versions always have an odd number of modules, and can be made in sizes ranging from 9 × 9 to 49 × 49. All symbols utilizing the ECC 000 through 140 error correction can be recognized by the upper right corner module being the inverse of the background color. (binary 1). According to ISO/IEC 16022, "ECC 000–140 should only be used in closed applications where a single party controls both the production and reading of the symbols and is responsible for overall system performance."
Исправление ошибок
Коды Data Matrix используют коррекцию ошибок Рида — Соломона над конечным полем (или GF(2^(8))), элементы которого кодируются как 8-битные байты; байт со стандартным числовым значением кодирует элемент поля, где α считается примитивным элементом, удовлетворяющим условию α^256 = 1. Примитивный полином равен x^8 + x^4 + x^3 + x + 1, что соответствует многочленному числу 301, с начальным корнем, равным 1. Код Рида — Соломона использует один из 37 различных многочленов над GF(2^(8)), со степенями от 7 до 68, в зависимости от количества байтов, добавляемых для коррекции ошибок.
Data Matrix codes use Reed–Solomon error correction over the finite field (or GF(2^(8))), the elements of which are encoded as bytes of 8 bits; the byte with a standard numerical value encodes the field element where is taken to be a primitive element satisfying The primitive polynomial is , corresponding to the polynomial number 301, with initial root = 1. The Reed–Solomon code uses one of 37 different polynomials over , with degrees ranging from 7 to 68, depending on how many error correction bytes the code adds.
Кодирование
Процесс кодирования описан в стандарте ISO/IEC 16022:2006. Опубликовано программное обеспечение с открытым исходным кодом для кодирования и декодирования варианта ECC 200 Data Matrix. На диаграммах ниже показано расположение данных сообщения в символе Data Matrix. Сообщение – "Wikipedia", и оно расположено в несколько сложной диагональной схеме, начиная с верхнего левого угла. Некоторые символы разделены на две части, например, начальная буква W, а третья 'i' находится в "угловом рисунке 2" вместо обычной L-образной компоновки. Также показаны код конца сообщения (отмеченный как End), заполнение (P) и байты коррекции ошибок (E), а также четыре модуля неиспользованного пространства (X). Для хранения различных типов сообщений используются несколько режимов кодирования. Режим по умолчанию хранит один символ ASCII на каждое 8-битное кодовое слово. Для переключения между режимами предусмотрены управляющие коды, как показано ниже.
The encoding process is described in the ISO/IEC standard 16022:2006. Open source software for encoding and decoding the ECC 200 variant of Data Matrix has been published. The diagrams below illustrate the placement of the message data within a Data Matrix symbol. The message is "Wikipedia", and it is arranged in a somewhat complicated diagonal pattern starting near the upper left corner. Some characters are split in two pieces, such as the initial W, and the third 'i' is in "corner pattern 2" rather than the usual L shaped arrangement. Also shown are the end of message code (marked End), the padding (P) and error correction (E) bytes, and four modules of unused space (X). Multiple encoding modes are used to store different kinds of messages. The default mode stores one ASCII character per 8 bit codeword. Control codes are provided to switch between modes, as shown below. Codeword Codeword hexadecimal Interpretation 0 0 Not used 1–128 1 80 ASCII data (ASCII value + 1) 129 81 End of message 130–229 82 e5 Digit pairs 00–99 230 e6 Begin C40 encoding 231 e7 Begin Base 256 encoding 232 e8 FNC1 233 e9 Structured append. Allows a message to be split across multiple symbols. 234 ea Reader programming 235 eb Set high bit of the following character 236 ec 05 Macro 237 ed 06 Macro 238 ee Begin ANSI X12 encoding 239 ef Begin Text encoding 240 f0 Begin EDIFACT encoding 241 f1 Extended Channel Interpretation code 242–255 f2 ff Not used
Кодовое слово Шестнадцатеричное представление кодового слова Интерпретация
0 0 Не используется
1–128 1 80 Данные ASCII (ASCII-значение + 1)
129 81 Конец сообщения
130–229 82 e5 Числовые пары 00–99
230 e6 Начало кодирования C40
231 e7 Начало кодирования Base 256
232 e8 FNC1
233 e9 Структурированное добавление. Позволяет разделить сообщение на несколько символов.
234 ea Программирование устройства чтения
235 eb Установка старшего бита следующего символа
236 ec Макрос 05
237 ed Макрос 06
238 ee Начало кодирования ANSI X12
239 ef Начало кодирования текста
240 f0 Начало кодирования EDIFACT
241 f1 Код расширенной интерпретации канала
242–255 f2 ff Не используется
The encoding process is described in the ISO/IEC standard 16022:2006. Open source software for encoding and decoding the ECC 200 variant of Data Matrix has been published. The diagrams below illustrate the placement of the message data within a Data Matrix symbol. The message is "Wikipedia", and it is arranged in a somewhat complicated diagonal pattern starting near the upper left corner. Some characters are split in two pieces, such as the initial W, and the third 'i' is in "corner pattern 2" rather than the usual L shaped arrangement. Also shown are the end of message code (marked End), the padding (P) and error correction (E) bytes, and four modules of unused space (X). Multiple encoding modes are used to store different kinds of messages. The default mode stores one ASCII character per 8 bit codeword. Control codes are provided to switch between modes, as shown below. Codeword Codeword hexadecimal Interpretation 0 0 Not used 1–128 1 80 ASCII data (ASCII value + 1) 129 81 End of message 130–229 82 e5 Digit pairs 00–99 230 e6 Begin C40 encoding 231 e7 Begin Base 256 encoding 232 e8 FNC1 233 e9 Structured append. Allows a message to be split across multiple symbols. 234 ea Reader programming 235 eb Set high bit of the following character 236 ec 05 Macro 237 ed 06 Macro 238 ee Begin ANSI X12 encoding 239 ef Begin Text encoding 240 f0 Begin EDIFACT encoding 241 f1 Extended Channel Interpretation code 242–255 f2 ff Not used
Патентные вопросы
До истечения срока действия патента в ноябре 2007 года компания Acacia Technologies заявила, что Data Matrix частично попадает под его действие. Как владелец патента, Acacia предположительно связалась с пользователями Data Matrix, требуя лицензионные отчисления, связанные с патентом. Cognex Corporation, крупный производитель устройств для считывания 2D-штрихкодов, 13 марта 2006 года подала исковое заявление о признании патента недействительным, получив информацию о том, что Acacia связалась с ее клиентами, требуя лицензионные сборы. 19 мая 2008 года судья Джоан Н. Эриксен из окружного суда США по Миннесоте вынесла решение в пользу Cognex. В решении было установлено, что патент № 524, который претендовал на охват системы захвата и чтения 2D-символических кодов, является недействительным и не подлежит исполнению в связи с недобросовестным поведением ответчиков при получении патента. Хотя решение было вынесено после истечения срока действия патента, оно исключило возможность предъявления претензий о нарушении, связанных с использованием Data Matrix до ноября 2007 года. Немецкая патентная заявка DE 4107020 была подана в 1991 году и опубликована в 1992 году. Этот патент не упоминается в вышеуказанных заявках на патенты США и может служить основанием для признания их недействительными.
Prior to the expiration of in November 2007, intellectual property company Acacia Technologies claimed that Data Matrix was partially covered by its contents. As the patent owner, Acacia allegedly contacted Data Matrix users demanding license fees related to the patent. Cognex Corporation, a large manufacturer of 2D barcode devices, filed a declaratory judgment complaint on 13 March 2006 after receiving information that Acacia had contacted its customers demanding licensing fees. On 19 May 2008 Judge Joan N. Ericksen of the U. S. District Court in Minnesota ruled in favor of Cognex. The ruling held that the '524 patent, which claimed to cover a system for capturing and reading 2D symbology codes, is both invalid and unenforceable due to inequitable conduct by the defendants during the procurement of the patent. While the ruling was delivered after the patent expired, it precluded claims for infringement based on use of Data Matrix prior to November 2007. A German patent application DE 4107020 was filed in 1991, and published in 1992. This patent is not cited in the above US patent applications and might invalidate them.