Модуль QR-кода
Модуль — наименьший структурный элемент QR-кода: один квадрат в матрице, который может быть тёмным (1) или светлым (0). Вся информация кода закодирована именно в чередовании таких квадратов.
Модуль QR-кода — элементарная ячейка матрицы, один квадрат тёмного или светлого цвета. Именно из модулей складывается всё: данные, служебные зоны, позиционные маркеры, байты коррекции ошибок. Смартфон при сканировании считывает яркость каждой ячейки и восстанавливает из последовательности 0 и 1 исходную строку.
Версии QR и число модулей
Стандарт ISO/IEC 18004 определяет 40 версий QR-кода. Каждая версия увеличивает размер матрицы на 4 модуля в каждую сторону:
- Версия 1 — матрица 21×21 = 441 модуль
- Версия 2 — 25×25 = 625 модулей
- Версия 10 — 57×57 = 3 249 модулей
- Версия 20 — 97×97 = 9 409 модулей
- Версия 40 — 177×177 = 31 329 модулей
Формула: (21 + (N−1) × 4)², где N — номер версии. Чем больше данных нужно закодировать, тем выше версия и тем мельче получается каждый модуль при фиксированном физическом размере кода.
Размер модуля при печати
Минимальный рекомендованный размер одного модуля — 0,33 мм (примерно 1 пт при 96 dpi). На практике для уличной печати ориентируются на другой параметр: дистанция сканирования в сантиметрах должна быть примерно равна 10-кратному размеру всего кода в сантиметрах. Код 3×3 см на визитке читается с 30 см, код 30×30 см на баннере — с трёх метров.
Для версии 1 (21 модуль в стороне) при размере кода 21 мм размер модуля ровно 1 мм — это и есть нижний предел для полиграфии. Версия 10 при том же физическом размере даёт модуль 0,37 мм — на грани. Версия 25 и выше при коде меньше 30 мм надёжно читаются только с хорошей камерой вплотную.
Влияние на считывание
Размер модуля напрямую определяет три параметра надёжности кода:
- Угол сканирования. Мелкий модуль допускает меньшее угловое смещение камеры — матрицу нужно держать ровнее.
- Устойчивость к загрязнениям. Если модуль 0,5 мм, пятно размером 0,3 мм уже затрагивает больше половины ячейки. При модуле 2 мм то же пятно практически незаметно.
- Коррекция ошибок. Уровни L/M/Q/H восстанавливают 7–30% повреждённых данных, но они работают с целыми модулями: если ячейка прочитана неверно, она уходит в резерв коррекции. Мелкие модули «сжигают» этот резерв быстрее.
Практическое правило: для открытого воздуха, наклеек, этикеток с возможным потёртостями — выбирайте уровень коррекции Q или H и проверяйте, что размер модуля не меньше 0,6–0,8 мм.
Частые вопросы
Сколько модулей в обычном QR-коде на упаковке?
Большинство потребительских кодов на упаковках — версия 3–7, то есть матрица 29×29 до 45×45 = от 841 до 2 025 модулей. Размер кода при этом обычно 20–25 мм, что даёт модуль 0,4–0,9 мм — надёжный диапазон для любой камеры.
Можно ли сделать QR-код меньше, не теряя данные?
Да, но только через сокращение объёма закодированных данных. Короткий URL вместо длинного — меньше версия, меньше модулей, крупнее каждый при той же печатной площади. Сокращение ссылки с 80 до 25 символов нередко снижает версию с 5 до 2, то есть матрица уменьшается с 37×37 до 25×25.
Что такое «тихая зона» и как она связана с модулями?
Тихая зона — обязательный белый отступ вокруг матрицы, минимум 4 модуля с каждой стороны (согласно ISO 18004). При модуле 1 мм тихая зона — не менее 4 мм на сторону. Без неё сканер не находит границы матрицы и отказывает в чтении.
Зависит ли число модулей от уровня коррекции ошибок?
Нет. Уровень коррекции (L/M/Q/H) не меняет размер матрицы — только перераспределяет, сколько модулей отведено под данные, а сколько под резервные байты восстановления. При большем объёме коррекции данных помещается меньше, поэтому для того же URL с уровнем H нужна более высокая версия, чем с уровнем L.
Почему QR-код выглядит «зернистым» при печати?
Это следствие слишком мелкого модуля: растеризация на низком dpi создаёт артефакты на границах ячеек. Решение — печатать в векторе (SVG или PDF) или повышать разрешение до 300+ dpi при растре. Генератор на qrcode.website отдаёт SVG по умолчанию, что полностью исключает зернистость при любом масштабе.