QRkoder

Матричный код

Матричный код — двумерный штрих-код, где данные записаны в прямоугольной сетке модулей (ячеек): QR, Data Matrix, Aztec, MaxiCode.

Определение матричного кода

Матричный код (matrix code) — разновидность двумерного штрих-кода, в которой данные закодированы в прямоугольной или квадратной сетке из чёрных и белых модулей (ячеек). Каждый модуль — это один бит: чёрный обычно означает «1», белый — «0». Информация читается по обеим осям сразу, поэтому такой код называют матричным, а сканером выступает камера (imager), а не лазер.

К матричным кодам относятся QR-код (ISO/IEC 18004), Data Matrix (ISO/IEC 16022), Aztec (ISO/IEC 24778), MaxiCode (ISO/IEC 16023) и китайский Han Xin (ISO/IEC 20830, 2017). Их противоположность — стековые (stacked) коды вроде PDF417, где 2D-структура собирается из нескольких строк обычного линейного штрих-кода, наложенных друг на друга.

Как устроен матричный код

У любого матричного кода есть три группы элементов. Первая — финдер-паттерны (finder patterns): фиксированные метки, по которым камера находит код в кадре и определяет его ориентацию. У QR это три квадрата в углах, у Data Matrix — L-образная сплошная рамка, у Aztec и MaxiCode — концентрическая мишень (bullseye) в центре. Вторая — тайминг-паттерны, задающие координатную сетку и размер матрицы. Третья — область данных с полезной нагрузкой и байтами избыточности.

Избыточность обеспечивает алгоритм коррекции ошибок Reed-Solomon: даже при повреждении части поверхности (у QR — до 30%) код декодируется полностью. Именно матричная структура плюс двумерные финдеры позволяют считывать код под наклоном, с поворотом и с зеркальным отражением — то, что недоступно линейным штрих-кодам.

Связанные концепции

  • Двумерный код — надкатегория: включает и матричные, и стековые форматы.
  • Стековые коды (PDF417) — 2D из наложенных линейных строк, читаются лазером.
  • Финдер-паттерн — метка поиска и ориентации, ключевой признак матричного кода.
  • Reed-Solomon — алгоритм коррекции ошибок во всех матричных форматах.

Создать матричный QR-код можно в нашем генераторе QR-кодов.

Частые вопросы

Чем матричный код отличается от стекового?

В матричном коде (QR, Data Matrix, Aztec) данные лежат в единой двумерной сетке модулей и читаются по обеим осям камерой. Стековый код (PDF417, MicroPDF417) — это несколько строк обычного линейного штрих-кода, наложенных друг на друга; его можно сканировать даже лазером построчно. Матричные форматы компактнее и вмещают больше данных на единицу площади.

Какие коды считаются матричными?

К матричным относят QR-код (ISO/IEC 18004), Data Matrix (ISO/IEC 16022), Aztec (ISO/IEC 24778), MaxiCode (ISO/IEC 16023) и китайский Han Xin (ISO/IEC 20830). Все они кодируют данные в квадратной или прямоугольной сетке ячеек и требуют камерного сканера. PDF417 в эту группу не входит — это стековый формат.

Зачем матричному коду финдер-паттерны?

Финдер-паттерны — фиксированные метки, по которым камера мгновенно находит код в кадре и вычисляет его ориентацию и масштаб. У QR это три угловых квадрата, у Data Matrix — L-образная рамка, у Aztec и MaxiCode — центральная мишень. Без них сканер не смог бы прочитать код под наклоном или поворотом.

Какой матричный код самый распространённый?

QR-код — безусловный лидер по массовости: он вмещает до 7089 цифр, читается любым смартфоном и применяется в платежах, маркетинге и билетах. Data Matrix доминирует в маркировке товаров (в России — «Честный знак») благодаря компактности. MaxiCode используется в логистике UPS, Aztec — в транспортных билетах и посадочных талонах.

Как сканируется матричный код?

Только камерным сканером (imager) или камерой смартфона: устройство захватывает всё изображение целиком, находит финдер-паттерны, восстанавливает сетку модулей и декодирует данные с коррекцией Reed-Solomon. Лазерный сканер, читающий линию, для матричных кодов не подходит — исключение составляют стековые PDF417, но они не относятся к матричным.

Создавайте QR-коды бесплатно

Динамические QR-коды с аналитикой, дизайном и без ограничений по сканированиям.

Начать бесплатно