QRkoder
Aztec-код: что это, структура и где применяется
БлогQRkoder59

Aztec-код: что это, структура и где применяется

11 мин чтения

Aztec-код (по-русски часто пишут «ацтек код») — двумерный штрихкод с квадратной мишенью в самом центре. Именно эта мишень дала ему имя: концентрические квадраты напоминают вид сверху на ступенчатую пирамиду ацтеков. Его придумал в 1995 году Эндрю Лонгакр в компании Welch Allyn, и сегодня вы держите Aztec в руках чаще, чем думаете: он напечатан на билете РЖД, на посадочном талоне в аэропорту, на проездном в турникете метро. В отличие от QR, Aztec не требует пустого поля вокруг и находит себя по центральной точке, а не по трём углам, — поэтому он компактнее и лучше читается на мятой бумаге. Разберём его структуру, ёмкость, коррекцию Рида-Соломона, «руны» Aztec Runes и отличия от QR и Data Matrix.

Aztec-код с центральной мишенью-финдером на билете — QRkoder
Aztec-код узнаётся по концентрической мишени в центре — отсюда и «пирамида ацтеков» в названии.

Что такое Aztec-код

Aztec — матричный двумерный штрихкод: данные хранятся не полосами разной ширины, как у магазинного EAN-13, а сеткой из чёрных и белых квадратных ячеек-модулей. Значение имеет положение каждой ячейки, поэтому в маленький квадрат помещается на порядки больше данных, чем в линейный код.

Изобрёл его Эндрю Лонгакр (Andrew Longacre Jr.) вместе с Робертом Хасси в 1995 году в американской компании Welch Allyn — производителе медицинского оборудования и промышленных сканеров. Формат сразу отдали в открытый доступ: правообладатель заявил, что не будет требовать отчислений за патент, — благодаря этому Aztec без юридических барьеров разошёлся по транспортным системам мира. В 2008 году код закрепили международным стандартом ISO/IEC 24778 (до этого он с 1997 года описывался спецификацией ANSI/AIM BC13), определяющим раскладку модулей, контрольную сумму и коррекцию ошибок.

Главная зрительная примета Aztec — «яблочко» (bullseye) в центре: несколько вложенных друг в друга квадратных рамок. У QR-кода опознавательные метки стоят в трёх углах, у Data Matrix — сплошная L-образная рамка по двум сторонам, а у Aztec всё собрано в одну точку посередине. Название чисто визуальное: вложенные квадраты со ступенчатым нарастанием напоминают вид сверху на пирамиду ацтеков — теокалли, вроде храма в Теночтитлане. Русскоязычные пользователи ищут код по-разному — «aztec код», «ацтек код», «aztec code», «код на билете», «штрихкод на посадочном талоне» — не зная точного названия; всё это один формат.

Структура: мишень-финдер, кольца данных и режимный слой

Aztec строится изнутри наружу от центра. Разберём его слои.

Центральная мишень (finder pattern)

Сердце кода — концентрические квадратные кольца в центре. Сканер находит мишень и по ней понимает: перед ним Aztec, где середина и каков масштаб модуля. Мишень бывает двух вариантов:

  • Compact Aztec — мишень 2 кольца (минимум 11×11 модулей), для небольших объёмов данных.
  • Full-range Aztec — мишень 3 кольца, код наращивается до 151×151 модуля.

Опорная сетка и ориентировочные точки

Вокруг мишени в full-range версиях через каждые 16 модулей проходят опорные линии (reference grid) — «клетка», которая помогает сканеру не сбиться при чтении крупного кода на изогнутой бумаге. По углам мишени стоят фиксированные ориентировочные точки: по ним считыватель определяет поворот кода и читает его под любым углом, хоть вверх ногами.

Слой режима и слои данных

Кольцо сразу вокруг мишени — служебная зона (mode message): в ней зашиты два числа — сколько слоёв данных в коде и сколько кодовых слов занято полезной информацией. Этот слой сам защищён коррекцией Рида-Соломона, чтобы сканер понял геометрию кода даже при повреждённых углах. Дальше квадратными кольцами наружу наматываются данные: каждое кольцо — новый «слой» (layer). Compact-версии имеют от 1 до 4 слоёв, full-range — до 32: чем больше слоёв, тем больше информации и крупнее код.

Ключевое отличие от QR: Aztec не требует «тихой зоны» (quiet zone) — пустого белого поля по краям. QR без рамки в 4 модуля может не считаться, а Aztec узнаётся по центральной мишени и печатается вплотную к другим элементам, экономя место в тесной вёрстке билета.

Ёмкость Aztec-кода

Объём данных зависит от числа слоёв. В максимальной full-range конфигурации (32 слоя, 151×151 модуль) Aztec вмещает:

Тип данныхМаксимальная ёмкость
Цифрыдо 3832 знаков
Буквы и цифры (текст)до 3067 символов
Байты (произвольные данные)до 1914 байт

Для сравнения: QR-код версии 40 берёт до 7089 цифр — то есть по «потолку» QR ёмче. Но в реальной жизни на билет никто не пишет мегабайты: посадочному талону хватает 100–300 символов, а на таком объёме Aztec занимает меньше физической площади, чем QR той же плотности, за счёт центрального финдера и отсутствия тихой зоны. Именно компактность, а не рекордная ёмкость — причина, по которой транспорт выбрал Aztec.

Коррекция ошибок Рида-Соломона

Aztec, как QR и Data Matrix, устойчив к повреждениям благодаря математике кода Рида-Соломона: к данным добавляются избыточные проверочные кодовые слова, и если часть модулей затёрта, порвана или заклеена, декодер восстанавливает исходную информацию по оставшимся.

У Aztec уровень коррекции задаётся гибко — от 5% до 95% ёмкости под проверочные символы. По умолчанию спецификация рекомендует резервировать примерно 23% плюс 3 кодовых слова. Это выше среднего уровня QR и объясняет, почему Aztec выбрали для билетов: бумажный билет мнут, суют в карман, он трётся о турникет — и всё равно должен считаться с первого раза. В отличие от QR с его фиксированными уровнями L/M/Q/H, доля коррекции у Aztec настраивается плавно — это тонко балансирует надёжность и размер кода под носитель.

Aztec Runes — миниатюрные «руны»

Отдельная разновидность формата — Aztec Runes, крошечные коды из одной центральной мишени практически без слоёв данных. Руна кодирует всего одно число от 0 до 255 (один байт) и занимает минимальную площадь — 11×11 модулей. Смысл рун — быстрая машинная идентификация объектов, когда нужно просто выдать номер: пометить деталь на конвейере, зону на складе, точку маршрута. Сканер мгновенно распознаёт руну по той же мишени, что и полноразмерный Aztec, и возвращает число — это не для текста, а для служебной маркировки, своего рода «штрихкодовый ярлык» на 256 значений.

Где применяется Aztec-код

Aztec стал де-факто стандартом транспортных билетов: печатается на дешёвой бумаге, читается мятым и не требует полей.

Железнодорожные билеты (РЖД и Европа)

На электронных и бумажных билетах РЖД и у большинства европейских железных дорог (Deutsche Bahn, SNCF, ÖBB, SBB) в углу напечатан именно Aztec — так предписывает международный стандарт UIC 918.3. В коде зашиты номер поезда, вагон, место, дата, тариф и контрольная подпись. Контролёр подносит терминал к коду и мгновенно видит, действителен ли билет: интернет не нужен, всё лежит внутри кода.

Авиационные посадочные талоны

Стандарт IATA BCBP (Bar Coded Boarding Pass) допускает несколько символик, и Aztec — одна из основных наряду с QR и PDF417. Когда вы прикладываете посадочный к сканеру на выходе на посадку, в коде — имя пассажира, номер рейса, место, класс, номер бронирования (PNR) и подпись авиакомпании.

Городской транспорт, счета и документы

Метро, электрички и автобусные системы ряда городов печатают Aztec на разовых билетах: код на чеке открывает турникет — компактность критична, билет узкий, поля под код нет. Встречается Aztec и на счетах и квитанциях как носитель платёжных реквизитов, и в производственной маркировке.

Aztec против QR и Data Matrix

Три самых массовых 2D-кода решают разные задачи:

ПараметрAztecQR-кодData Matrix
Год / автор1995, Welch Allyn1994, Denso Wave1987, RVSI Acuity CiMatrix
Стандарт ISOISO/IEC 24778ISO/IEC 18004ISO/IEC 16022
Финдермишень в центре3 квадрата по угламL-рамка + пунктир
Тихая зонане нужна4 модуля обязательно1 модуль
Макс. цифр~383270893116
Коррекцияплавно 5–95%4 уровня L/M/Q/Hфиксированная ECC 200
Типичная сферабилеты, транспортмаркетинг, платежи, ссылкимаркировка, фарма, детали

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

Нужен код, который клиент отсканирует телефоном? Для маркетинга, оплаты и ссылок Aztec избыточен — универсальный QR читается любой камерой без приложений.

Создать QR-код онлайн

Как считать Aztec-код

Aztec — открытый стандарт, декодирование встроено в большинство сканирующих движков. Три способа:

  • Сканеры и терминалы. Промышленные 2D-сканеры (Honeywell, Zebra, Datalogic) и билетные валидаторы РЖД, аэропортов и метро читают Aztec «из коробки» — символика в прошивке. Контролёр или турникет считывает билет за доли секунды.
  • Смартфон. Штатная «Камера» на iPhone и Android заточена под QR и Aztec распознаёт не всегда. Надёжнее взять приложение-сканер с движком ZXing или Scandit и навести камеру так, чтобы центральная мишень попала в кадр целиком.
  • Программно. Декодирование доступно в библиотеках ZXing (Java/Kotlin/JS-порты), OpenCV и коммерческих SDK. Передаёте изображение — библиотека сама находит мишень, определяет версию и уровень коррекции и возвращает данные.

Важный нюанс: содержимое билетного Aztec — не текст «для человека», а служебная строка по стандарту перевозчика (UIC 918.3 для ж/д, IATA BCBP для авиа), поэтому расшифровать его умеет только система перевозчика.

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

Чем Aztec-код отличается от QR-кода?

Тремя вещами. Первое — метка поиска: у QR это три квадрата в углах, у Aztec — концентрическая мишень в центре, вокруг которой кольцами наращиваются данные. Второе — тихая зона: QR обязательно нужно пустое поле в 4 модуля по периметру, иначе он может не считаться, а Aztec узнаётся по центру и читается вплотную к другим элементам, что экономит место. Третье — сфера: QR стал универсальным потребительским кодом для ссылок, оплаты и меню, а Aztec заточен под транспортные билеты, где важны компактность и живучесть на мятой бумаге. По максимальной ёмкости QR обходит Aztec (7089 цифр против примерно 3832), но на билете в 100–300 символов Aztec компактнее. Нужен код для клиента с телефоном — берите QR, билетную систему — Aztec.

Почему код называется «ацтекским»?

Название чисто визуальное и не связано с содержимым кода. В центре Aztec находится мишень из вложенных друг в друга квадратных рамок со ступенчатым нарастанием. Если посмотреть на неё сверху, она напоминает вид с высоты птичьего полёта на ступенчатую пирамиду ацтеков — теокалли, вроде храмов древнего Теночтитлана. Изобретателю Эндрю Лонгакру из компании Welch Allyn эта аналогия в 1995 году показалась удачной, и рабочее имя «Aztec» закрепилось за форматом. К математике кодирования и к самой цивилизации ацтеков это отношения не имеет — просто метафора для формы центральной метки. По-русски код часто ищут как «ацтек код», хотя правильное написание — Aztec, латиницей; это один и тот же формат ISO/IEC 24778.

Где я чаще всего вижу Aztec-код в повседневной жизни?

Скорее всего, на билетах и посадочных, даже если не обращали внимания. Самое массовое место — железнодорожные билеты: у РЖД и практически всех европейских железных дорог (Deutsche Bahn, SNCF, ÖBB, SBB) в углу напечатан именно Aztec по международному стандарту UIC 918.3. Второе место — авиационные посадочные талоны: стандарт IATA BCBP допускает Aztec как одну из основных символик, и на выходе на посадку часто считывается именно он. Третье — городской транспорт: метро, электрички и автобусы ряда городов печатают Aztec на разовых билетах, которыми открывается турникет. Причина популярности — компактность (не нужна пустая рамка) и высокая коррекция ошибок, из-за чего мятый билет считывается с первого раза.

Какова ёмкость Aztec-кода и хватит ли её для моих задач?

В максимальной full-range конфигурации из 32 слоёв (сетка 151×151 модуль) Aztec вмещает до 3832 цифр, до 3067 буквенно-цифровых символов или до 1914 байт произвольных данных. Для сравнения, QR-код версии 40 берёт до 7089 цифр, то есть по абсолютному потолку QR ёмче. Но на практике этот потолок почти никогда не нужен: транспортному билету достаточно 100–300 символов — номер поезда или рейса, место, дата, тариф и подпись. На таком объёме Aztec выигрывает не ёмкостью, а компактностью: за счёт центрального финдера и отсутствия тихой зоны он занимает меньше площади, чем QR той же плотности. Нужно хранить длинный текст — лучше QR или PDF417, короткий защищённый идентификатор на маленькой площади — Aztec идеален.

Как отсканировать Aztec-код смартфоном?

Штатное приложение «Камера» на iPhone и большинстве Android заточено под QR-коды, и Aztec оно распознаёт не всегда. Надёжнее установить приложение-сканер, движок которого явно поддерживает Aztec — например, на основе открытой библиотеки ZXing или коммерческого Scandit. Откройте сканер, наведите камеру так, чтобы центральная мишень кода целиком попала в кадр, держите телефон параллельно поверхности. Приложение найдёт код по мишени, определит версию и коррекцию и выдаст содержимое. Важно понимать: содержимое билетного Aztec — не удобная ссылка, а служебная строка по стандарту перевозчика (UIC 918.3 для ж/д, IATA BCBP для авиации), поэтому вы увидите набор символов, а расшифровать его умеет только система перевозчика.

Нужно ли платить за использование Aztec-кода?

Нет, Aztec — открытый формат без лицензионных отчислений. Хотя изначально символику запатентовала Welch Allyn, правообладатель официально заявил, что не будет требовать роялти за использование патента, а с 2008 года формат закреплён свободным стандартом ISO/IEC 24778. Именно эта открытость позволила Aztec без юридических барьеров разойтись по транспортным системам мира — от РЖД до европейских железных дорог и авиакомпаний. Вы можете свободно генерировать и считывать Aztec-коды: символика встроена в открытые библиотеки вроде ZXing и в промышленные сканеры Honeywell, Zebra, Datalogic. Стоит различать формат и данные внутри: картинку Aztec сделать бесплатно, но валидный билет РЖД формирует система перевозчика со своей цифровой подписью — подделать её нельзя.

Что такое Aztec Runes и зачем они нужны?

Aztec Runes — миниатюрная разновидность формата: крошечный код 11×11 модулей, состоящий практически из одной центральной мишени почти без слоёв данных. Руна кодирует всего одно число от 0 до 255, то есть один байт. Смысл рун — не хранить текст, а служить быстрым машиночитаемым ярлыком-идентификатором, когда достаточно выдать номер: пометить деталь на конвейере, обозначить зону на складе, отметить точку маршрута. Сканер распознаёт руну по той же центральной мишени, что и полноразмерный Aztec, и мгновенно возвращает число — это самый компактный способ нанести метку на 256 значений. Руны не предназначены для ссылок или оплаты — это служебный инструмент производственной и логистической маркировки.

Когда брать Aztec, а когда QR

Aztec — узкоспециализированный чемпион транспортных билетов: компактный за счёт центральной мишени, живучий благодаря высокой коррекции Рида-Соломона, работающий без тихой зоны. Строите билетную или пропускную систему по стандартам UIC 918.3 или IATA BCBP — это ваш формат. Но для массовых потребительских задач (ссылка, оплата, меню, визитка, промо) Aztec избыточен и хуже узнаётся камерами смартфонов. Здесь выигрывает QR: его читает любой телефон без приложений, а динамический QR вдобавок даёт смену ссылки после печати и аналитику сканирований, чего у статичного Aztec нет.

Готовы попробовать?

Соберите QR-код онлайн — бесплатно, без регистрации, экспорт в PNG, SVG и PDF.

Создать QR-код

Хотите разобраться в родственных форматах? Определение формата — в глоссарии Aztec Code, механика восстановления данных — код Рида-Соломона, а обзор всех символик — в статье про виды штрих-кодов.

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

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

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