
Aztec-код: что это, структура и где применяется
11 мин чтения
Aztec-код (по-русски часто пишут «ацтек код») — двумерный штрихкод с квадратной мишенью в самом центре. Именно эта мишень дала ему имя: концентрические квадраты напоминают вид сверху на ступенчатую пирамиду ацтеков. Его придумал в 1995 году Эндрю Лонгакр в компании Welch Allyn, и сегодня вы держите Aztec в руках чаще, чем думаете: он напечатан на билете РЖД, на посадочном талоне в аэропорту, на проездном в турникете метро. В отличие от QR, Aztec не требует пустого поля вокруг и находит себя по центральной точке, а не по трём углам, — поэтому он компактнее и лучше читается на мятой бумаге. Разберём его структуру, ёмкость, коррекцию Рида-Соломона, «руны» Aztec Runes и отличия от QR и Data Matrix.
Что такое 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-кода решают разные задачи:
| Параметр | Aztec | QR-код | Data Matrix |
|---|---|---|---|
| Год / автор | 1995, Welch Allyn | 1994, Denso Wave | 1987, RVSI Acuity CiMatrix |
| Стандарт ISO | ISO/IEC 24778 | ISO/IEC 18004 | ISO/IEC 16022 |
| Финдер | мишень в центре | 3 квадрата по углам | L-рамка + пунктир |
| Тихая зона | не нужна | 4 модуля обязательно | 1 модуль |
| Макс. цифр | ~3832 | 7089 | 3116 |
| Коррекция | плавно 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.
Хотите разобраться в родственных форматах? Определение формата — в глоссарии Aztec Code, механика восстановления данных — код Рида-Соломона, а обзор всех символик — в статье про виды штрих-кодов.