ISO/IEC 18004
Международный стандарт, описывающий структуру, способ кодирования и декодирования QR-кодов модели 2 — общепринятая основа всех совместимых сканеров и генераторов.
ISO/IEC 18004:2015 — действующая редакция международного стандарта, регламентирующего QR-код модели 2 (QR Code Model 2). Документ издан Международной организацией по стандартизации совместно с МЭК и полностью определяет физическую структуру символа, режимы кодирования данных, алгоритм коррекции ошибок Рида — Соломона, способ размещения модулей в матрице и процедуру декодирования. Любой совместимый сканер или генератор обязан соответствовать этой спецификации.
Версии и ёмкость
Стандарт описывает 40 версий кода (от 21×21 до 177×177 модулей). Каждая следующая версия добавляет 4 модуля к стороне квадрата. Максимальная ёмкость для версии 40 при уровне коррекции L составляет 7089 цифр, 4296 буквенно-цифровых символов (цифры, заглавные латинские буквы и 9 спецсимволов) или 2953 байта произвольных двоичных данных. В режиме кандзи (японские иероглифы) — до 1817 символов.
- Числовой режим (Numeric) — кодирует только цифры; наиболее компактный (10 бит на 3 цифры).
- Буквенно-цифровой режим (Alphanumeric) — цифры, A–Z, пробел и 8 символов ($,%,*,+,-,.,/,:); 11 бит на 2 символа.
- Байтовый режим (Byte) — произвольный бинарный контент, обычно UTF-8; 8 бит на символ.
- Режим кандзи (Kanji) — двухбайтные символы Shift-JIS; 13 бит на символ.
Уровни коррекции ошибок
Стандарт определяет четыре уровня устойчивости к повреждениям: L (Low) — восстанавливает до 7 % данных, даёт максимальную ёмкость; M (Medium) — 15 %, баланс размера и надёжности, рекомендован по умолчанию; Q (Quartile) — 25 %, подходит для промышленных сред; H (High) — 30 %, используется при частичном перекрытии кода логотипом. Именно уровень H позволяет размещать изображения в центре QR-кода без нарушения считываемости — практика, формально допустимая, поскольку алгоритм Рида — Соломона восстановит повреждённые модули.
Служебные элементы матрицы — три угловых позиционных маркера, маркеры выравнивания (alignment patterns, начиная с версии 2), тихая зона шириной 4 модуля по периметру, строки синхронизации (timing patterns) и маска формата — занимают фиксированную область и не несут полезных данных. Генераторы QR-кодов, в том числе используемые на платформе QRcode.website, строго соблюдают эти требования стандарта, что гарантирует совместимость со всеми сертифицированными сканерами.